Bases de Datos
Bases de Datos
Bloque III
Bloque III
Informá
Informá
tica Básica - Curso 2014/20
tica Básica - Curso 2014/20
15
15
Oscar Pedreira, Susana Ladra Oscar Pedreira, Susana Ladra
Contenidos y bibli
Contenidos y bibli
ogra
ogra
fía
fía
Contenidos
Contenidos
3.1. Introduc
3.1. Introducción a las bases ción a las bases de datosde datos 3.2. Modelo relacional
3.2. Modelo relacional 3.3. Introducc
3.3. Introducción al diseño ión al diseño de BDde BD
Bibliografía
Bibliografía
–
– Elmasri, R.; Navathe, S. (2007). Elmasri, R.; Navathe, S. (2007). FundamenFundamentos de Sistemas detos de Sistemas de
Bases de
Bases de Datos. Addison-WDatos. Addison-Wesleyesley
–
– A. Silberschatz; H. Korth; S. Sudarshan (2006). Fundamentos deA. Silberschatz; H. Korth; S. Sudarshan (2006). Fundamentos de
Bases de Datos. Mc
3.1. Introducción a las bases de datos
3.1. Introducción a las bases de datos
Bloque III – Bases de Datos
Bases de datos
Bases de datos
•
•
¿Qué son las bases de datos?
¿Qué son las bases de datos?
–
– Muchas de Muchas de nuestras actividades cotidianas implican una consultanuestras actividades cotidianas implican una consulta
o un cambio en una base de datos. o un cambio en una base de datos.
Ej.: trámite bancario, reservar un libro en la biblioteca, ... Ej.: trámite bancario, reservar un libro en la biblioteca, ...
•
•
Definición de Base de Datos (BD)
Definición de Base de Datos (BD)
–
– UnaUna base de datosbase de datos es una es una colección de datos relacionados.colección de datos relacionados. –
– UnUn datodato es es un hecho conocido que se puede registrar y queun hecho conocido que se puede registrar y que
tiene un
Bases de datos
Bases de datos
•
•
Definición de Base de Datos (BD)
Definición de Base de Datos (BD)
–
– Una base de Una base de datos almacena datos de un determinadodatos almacena datos de un determinado dominiodominio
de interés. de interés.
–
– Algunos ejemplos:Algunos ejemplos: •
• Centro deportivo (abonados, actividades, material …)Centro deportivo (abonados, actividades, material …) •
• Universidad (alumnos, asignaturas, profesores …)Universidad (alumnos, asignaturas, profesores …) •
• Empresa (empleados, clientes, pedidos, facturas …)Empresa (empleados, clientes, pedidos, facturas …)
5
Bases de datos
Bases de datos
Ejemplo:
Ejemplo:
base de datos con información de los clientes de una
base de datos con información de los clientes de una
empresa
empresa
Ejemplo: Tabla “Clientes” Ejemplo: Tabla “Clientes”
DNI/N
DNI/NIF IF Nombre Nombre Dirección Dirección TTeléfonoeléfono
11.222.333-A Francisco
11.222.333-A Francisco Pérez Pérez C/. C/. MayorMayor, , 1 1 600 600 200300200300 22.111.333-B Antonio
22.111.333-B Antonio García García C/. C/. MayorMayor, , 2 2 600 600 400500400500 33.222.111-C
Bases de datos
Bases de datos
•
•
Definición de Base de Datos (BD)
Definición de Base de Datos (BD)
–
– Principales operPrincipales operaciones sobre una base aciones sobre una base de datos:de datos: • • ConsultarConsultar • • InsertarInsertar • • ActualizarActualizar • • EliminarEliminar 7 7
Sistemas de gestión de bases de datos
Sistemas de gestión de bases de datos
•
•
Sistema de Gestión de Bases de Datos (SGBD)
Sistema de Gestión de Bases de Datos (SGBD)
–
– Conjunto de programas que permiten a los usuarios crear yConjunto de programas que permiten a los usuarios crear y
manipular (consulta, inserción, actualización y borrado) bases de manipular (consulta, inserción, actualización y borrado) bases de datos.
datos.
–
– Software de propósito generalSoftware de propósito general Permite crear bases de datos Permite crear bases de datos
para cualquier dominio. para cualquier dominio.
Creación y manipulación de una BD
Creación y manipulación de una BD
•
•
Enfoque con ficheros:
Enfoque con ficheros:
–
– Podríamos implementar un programa que almacene los datos dePodríamos implementar un programa que almacene los datos de
la BD en ficheros la BD en ficheros
–
– Tendríamos que programarlo todo (complejo)Tendríamos que programarlo todo (complejo)
•
•
Sistema de Gestión de Bases de Datos (SGBD):
Sistema de Gestión de Bases de Datos (SGBD):
–
– Conjunto de programas que nos permiten crear y manipularConjunto de programas que nos permiten crear y manipular
bases de datos bases de datos
–
– Hace la mayor parte del trabajo por nosotros y Hace la mayor parte del trabajo por nosotros y nos oculta losnos oculta los
detalles de bajo nivel detalles de bajo nivel
9
Inconvenientes del enfoque con ficheros
Inconvenientes del enfoque con ficheros
•
•
Redundancia e inconsistencia
Redundancia e inconsistencia
–
– La misma información puede estar duplicada en diferentesLa misma información puede estar duplicada en diferentes
lugares, y puede haber contradicciones. lugares, y puede haber contradicciones.
•
•
Dificultad en el acceso a los datos
Dificultad en el acceso a los datos
–
– Tendríamos que programar todas las operaciones sobre la baseTendríamos que programar todas las operaciones sobre la base
de datos de datos
Pepe
Pepe C/. C/. Real, Real, 1 1 981 981 10 10 20 20 3030 Pepe
Pepe C/. C/. Real, Real, 2 2 981 981 10 10 20 20 3131
Inconsistencias
Inconsistencias
Redundancia
Inconvenientes del enfoque con ficheros
Inconvenientes del enfoque con ficheros
•
•
Acceso concurrente:
Acceso concurrente:
–
– Posibles inconsisPosibles inconsistencias cuando varios usuarios tencias cuando varios usuarios acceden deacceden de
forma
forma concurrenteconcurrente a un a un mismo datomismo dato
11
11
Nº
Nº de de cuenta cuenta Saldo Saldo ClienteCliente
2222
Inconvenientes del enfoque con ficheros
Inconvenientes del enfoque con ficheros
•
•
Seguridad y recuperación ante fallos
Seguridad y recuperación ante fallos
–
– Seguridad: Ej. no queremos que todos los usuarios puedanSeguridad: Ej. no queremos que todos los usuarios puedan
acceder a todos los
acceder a todos los datosdatos
–
– Recuperación ante fallos: Ej. pérdida de un fichero, errores de losRecuperación ante fallos: Ej. pérdida de un fichero, errores de los
usuarios, … usuarios, …
•
•
Problemas de integridad referencial
Problemas de integridad referencial
–
– Los datos de la Los datos de la BD está relacionados entre síBD está relacionados entre sí –
– Tendríamos que controlar también la integridad de esasTendríamos que controlar también la integridad de esas
relaciones (ej. el código de depto. de un empleado tiene que ser relaciones (ej. el código de depto. de un empleado tiene que ser de un departamento que existe).
Ventajas de los SGBD
Ventajas de los SGBD
•
•
Independencia entre los programas y los datos
Independencia entre los programas y los datos
–
– Nuestros programas no acceden directamente a los datos.Nuestros programas no acceden directamente a los datos. –
– El SGBD gestiona la El SGBD gestiona la BD por nosotros, ocultando los detalles deBD por nosotros, ocultando los detalles de
bajo nivel, y nuestros programas se comunican con él. bajo nivel, y nuestros programas se comunican con él.
13 13 SGBD SGBD Programa Programa (C, Pascal, (C, Pascal, Java, …) Java, …) Petición Petición Datos Datos Cliente
Ventajas de los SGBD
Ventajas de los SGBD
•
•
Contr
Control
ol de redundancia
de redundancia
–
– Cada dato (como el nombre o la fecha de nacimiento de unCada dato (como el nombre o la fecha de nacimiento de un
cliente) se almacena en un solo lugar de
cliente) se almacena en un solo lugar de la BD.la BD.
•
•
Control del acceso concurrente
Control del acceso concurrente
–
– El SGBD incluye mecanismos para controlar el accesoEl SGBD incluye mecanismos para controlar el acceso
concurrente de varios usuarios a los mismos datos concurrente de varios usuarios a los mismos datos
•
•
Control de integridad referencial
Control de integridad referencial
–
– El SGBD nos proporciona mecanismos para controlar la integridadEl SGBD nos proporciona mecanismos para controlar la integridad
referencial de los datos relacionados entre sí referencial de los datos relacionados entre sí
Ventajas de los SGBD
Ventajas de los SGBD
•
•
Administración centralizada de los datos
Administración centralizada de los datos
–
– PermitPermite al e al administradministrador de la ador de la base de base de datos establecer políticasdatos establecer políticas
de acceso y
de acceso y seguridad, mecanismos de recuperaciseguridad, mecanismos de recuperación, etc.ón, etc.
–
– Los datos y su administración están en el SGBD,Los datos y su administración están en el SGBD,
independientemente de cuántos programas accedan a ellos independientemente de cuántos programas accedan a ellos
•
•
Facilidad de acceso a los datos con SQL
Facilidad de acceso a los datos con SQL
–
– Lenguaje declarativLenguaje declarativo: le o: le decimos al sistema lo decimos al sistema lo que queremos, noque queremos, no
cómo hay que hacerlo. cómo hay que hacerlo.
SELECT nombre FROM alumnos; SELECT nombre FROM alumnos;
15
3.2. Modelo
3.2. Modelo relacion
relacional
al
Bloque III – Bases de Datos
Modelos de datos
Modelos de datos
•
•
¿Cómo organizamos los datos en la BD?
¿Cómo organizamos los datos en la BD?
–
– UnUn modelo de datosmodelo de datos establece la forma en que se estructuran losestablece la forma en que se estructuran los
datos y qué
datos y qué operaciones podemos realizoperaciones podemos realizar sobre ellos.ar sobre ellos.
•
•
Modelo de datos
Modelo de datos
–
– Colección de herramientas conceptuales que sirven para describirColección de herramientas conceptuales que sirven para describir
la estructura de la base de
la estructura de la base de datosdatos
•
• Estructura de los datosEstructura de los datos • • RestriccionesRestricciones • • Operaciones en la BDOperaciones en la BD 17 17
Modelo relacional
Modelo relacional
•
•
De forma simplificada, podemos decir que el modelo relacional
De forma simplificada, podemos decir que el modelo relacional
organiz
organiza los
a los datos en tablas
datos en tablas
–
– EstructurEstructura de a de los datos: los datos: relaciones (tablas)relaciones (tablas) –
– Restricciones: clave primaria, clave foránea, etc.Restricciones: clave primaria, clave foránea, etc. –
Caract
Caract
erísticas del modelo
erísticas del modelo
relacional
relacional
•
•
Modelo relacional
Modelo relacional
–
– Fue introducido por Edgar Codd (IBM Research, 1970)Fue introducido por Edgar Codd (IBM Research, 1970) –
– La mayoría de los SGBD actuales se basan en este modeloLa mayoría de los SGBD actuales se basan en este modelo
•
•
Principales características
Principales características
–
– Es un modelo simpleEs un modelo simple •
• Organiza los datos en tablas, de forma simple e intuitivaOrganiza los datos en tablas, de forma simple e intuitiva –
– Fundamentos matemáticosFundamentos matemáticos •
• El modelo se El modelo se apoya en una base matemática formalapoya en una base matemática formal –
– FlexibilidadFlexibilidad •
• Facilita el diseño de BD de forma sencilla en la mayoría de losFacilita el diseño de BD de forma sencilla en la mayoría de los
dominios dominios
19
Modelo relacional
Modelo relacional
•
•
Un primer ejemplo:
Un primer ejemplo:
NIF
NIF Nombre Nombre ……
12.345.657
12.345.657 Pepe Pepe …… Clientes Clientes
Código Nombre Precio
Código Nombre Precio
1293
1293 Portátil Portátil 700 700 €€ Productos Productos
NIF-cliente Cod-Prod Uds.
NIF-cliente Cod-Prod Uds.
12.345.657
12.345.657 1293 1293 22 Pedidos Pedidos
3.2.1 Relaciones
3.2.1 Relaciones
Bloque III – Bases de Datos
Relaciones
Relaciones
•
•
Concepto de relación
Concepto de relación
–
– El modelo relacional define la relación como la estructura paraEl modelo relacional define la relación como la estructura para
almacenar los datos de la BD almacenar los datos de la BD
–
– Una relación se parece a una tabla (aunque no es Una relación se parece a una tabla (aunque no es lo mismo)lo mismo) –
– La relación es el La relación es el conceptconcepto formal del modelo relacional de lo queo formal del modelo relacional de lo que
para nosotros son las tablas de la
para nosotros son las tablas de la base de datosbase de datos
–
Relaciones
Relaciones
•
•
Si vemos una relación como una tabla
Si vemos una relación como una tabla
–
– Cada fila representa hechos que se Cada fila representa hechos que se correspondcorresponden con unaen con una
entidad del mundo real entidad del mundo real
–
– El nombre de la tabla y El nombre de la tabla y los nombres de las columnas ayudan alos nombres de las columnas ayudan a
interpretar el significado de los valores que están en cada fila interpretar el significado de los valores que están en cada fila
–
– Como veremos, una fila es unaComo veremos, una fila es una tuplatupla, el , el nombre de una columnanombre de una columna
es un
es un atributoatributo y la y la tabla se denominatabla se denomina relaciónrelación
23
Relaciones
Relaciones
•
•
Concepto de relación
Concepto de relación
–
– UnaUna relaciónrelación almacena determinadosalmacena determinados atributosatributos de entidades de entidades
reales del mismo tipo reales del mismo tipo
•
• Ejemplo: la relaciónEjemplo: la relación Alumnos Alumnos almacena los atributosalmacena los atributos DNIDNI,,
nombre
nombre yy titulacióntitulación de todos los alumnosde todos los alumnos
–
– Un atributo admite valores de un determinadoUn atributo admite valores de un determinado dominiodominio, que es, que es
un conjunto de valores atómicos un conjunto de valores atómicos
•
• Ejemplo: el dominio DNI admite números de 8 Ejemplo: el dominio DNI admite números de 8 cifrascifras –
– Denotamos el dominio de un atributoDenotamos el dominio de un atributo A A porpor dom(A)dom(A) •
Relaciones
Relaciones
•
•
Esquema de relación
Esquema de relación
–
– UnUn esquema de relaciónesquema de relación RR, denotado por, denotado por R(AR(A11 , A , A22 , , …, …, AAnn ) ) está está
compuesto por un nombre de relación
compuesto por un nombre de relación RR y una lista de atributos y una lista de atributos
A
A11, A, A22, …, A, …, Ann
–
– El esquema de una relación la describe, mediante su nombre y laEl esquema de una relación la describe, mediante su nombre y la
lista de sus
lista de sus atributosatributos
•
• Ejemplo:Ejemplo: Alumnos(DNI, Alumnos(DNI, nombre, titulacinombre, titulación)ón)
–
– GradoGrado de una relación: número de atributosde una relación: número de atributos
25
Relaciones
Relaciones
•
•
Definición de relación
Definición de relación
–
– UnaUna relaciónrelación r r del esquema de del esquema de relaciónrelación R(AR(A11 , A , A22 , …, A , …, Ann ) ), denotado, denotado
por
por r(R)r(R), es un conjunto de tuplas, es un conjunto de tuplas r =r = {t{t11, t, t22, …, t, …, tmm}.}.
–
– CadaCada tuplatupla es una lista ordenada de n valores tes una lista ordenada de n valores tii = (v = (v11, v, v22, …, v, …, vnn),),
donde cada
donde cada valorvalor vv j jes un elemento del dominioes un elemento del dominio dom(Adom(A j j ) ) o bien o bien
es un
es un valor nulovalor nulo
–
– UnaUna relaciónrelación r(R)r(R) es un subconjunto del producto cartesiano de es un subconjunto del producto cartesiano de
los dominios de los
los dominios de los atributos:atributos:
•
Relaciones
Relaciones
• •Ejemplo:
Ejemplo:
27 27 Alumnos Alumnos DNIDNI Nombre Nombre TitulaciTitulaciónón
32555111
32555111 Pedro Pedro GIIGII 76112113
76112113 Ana Ana ETIXETIX 76555111
76555111 Alberto Alberto GIIGII Nombre de la relación Nombre de la relación Atributos Atributos Tuplas Tuplas
Relaciones
Relaciones
•
•
La BD es una colección de relaciones
La BD es una colección de relaciones
–
– Ejemplo: Alumnos(DNI, Ejemplo: Alumnos(DNI, nombre, titulación), Asignatura(nombrnombre, titulación), Asignatura(nombre,e,
curso, cuatrimestre), Profesor(DNI, nombre, departamento), etc. curso, cuatrimestre), Profesor(DNI, nombre, departamento), etc.
•
•
Preguntas
Preguntas
–
– ¿Una tabla puede tener filas repetidas?¿Una tabla puede tener filas repetidas? •
• SíSí –
– ¿Una relación puede tener filas ¿Una relación puede tener filas repetidas?repetidas? •
• No, porque es un conjunto.No, porque es un conjunto. –
– ¿Hay orden entre las tuplas de una relación?¿Hay orden entre las tuplas de una relación?
No, porque no hay orden entre los elementos de un conjunto. No, porque no hay orden entre los elementos de un conjunto.
Esquema y estado de una BD
Esquema y estado de una BD
•
•
Esquema y estado de una relación
Esquema y estado de una relación
–
– Esquema o intensión de una relaciónEsquema o intensión de una relación: la : la definición de la relación,definición de la relación,
es decir, su nombre y lista de atributos
es decir, su nombre y lista de atributos R(AR(A11 , A , A22 , …, A , …, Ann ) )
–
– Estado o extensión de una relaciónEstado o extensión de una relación: conjunto de tuplas de la: conjunto de tuplas de la
relación r(R)
relación r(R) ⊂⊂ dom(A dom(A11) x dom(A) x dom(A22) ) x x . . . x x dom(Adom(Ann))
•
•
Esquema y estado de una base de datos
Esquema y estado de una base de datos
–
– Esquema o intensión de una BDEsquema o intensión de una BD: definición de las relaciones que: definición de las relaciones que
forman la base de datos forman la base de datos
–
– Estado o extensión de una base de datosEstado o extensión de una base de datos: conjunto de tuplas: conjunto de tuplas
conten
contenidos en las idos en las relaciones que la formanrelaciones que la forman
29
Esquema y estado de una BD
Esquema y estado de una BD
•
•
Es decir:
Es decir:
–
– Esquema: definición de la estructurEsquema: definición de la estructura de la a de la base de datosbase de datos –
– Estado: contenidoEstado: contenido
•
•
Estado de una relación
Estado de una relación
–
– De todas De todas las posibles combinaciones (el producto cartesianlas posibles combinaciones (el producto cartesiano), uno), un
estado de una relación en un momento dado, el
estado de una relación en un momento dado, el estado actual deestado actual de la relación
la relación, refleja sólo , refleja sólo las tuplas las tuplas válidas que represenválidas que representan untan un
estado específico del mundo
Valores nulos
Valores nulos
•
•
Un valor nulo representa ausencia de información
Un valor nulo representa ausencia de información
–
– Porque desconocemos esa informaciónPorque desconocemos esa información •
• Ejemplo: no conocemos el número de teléfono de un alumnoEjemplo: no conocemos el número de teléfono de un alumno –
– Porque no procedePorque no procede •
• Ejemplo: un valor nulo en el Ejemplo: un valor nulo en el atributo comiatributo comisión de unsión de un
empleado represen
empleado representa que el ta que el empleado no tiene empleado no tiene derecho aderecho a comisión y que, por tanto, no procede almacenar su valor comisión y que, por tanto, no procede almacenar su valor
31
3.2.2 Restricciones
3.2.2 Restricciones
Bloque III – Bases de Datos
Restricciones
Restricciones
•
•
Restricción de dominio
Restricción de dominio
–
– El valor de cada atributoEl valor de cada atributo A A debe ser un valor debe ser un valor atómicoatómico del dominio del dominio
dom(A) dom(A)
–
– Es decir, el valor de un atributo de una relación debe ser un valorEs decir, el valor de un atributo de una relación debe ser un valor
único y pertenecer al
único y pertenecer al dominio de dicho atributodominio de dicho atributo
–
– Ejemplo:Ejemplo:
33
33
DNI
DNI Nombre Nombre TTeléfonoeléfono
23444111 23444111 Pepe Pepe 677 677 129846129846 65273081 Juan 65273081 Juan 623 982346623 982346 645 871839 645 871839 Violación de la
Restricciones
Restricciones
•
•
Restricción de clave
Restricción de clave
–
– Una relación se define como un conjunto de tuplas. Por tanto,Una relación se define como un conjunto de tuplas. Por tanto,
todas las tuplas de
todas las tuplas de la relación deben ser distintas.la relación deben ser distintas.
–
– Por lo regular, existen subconjuntos de atributos (Por lo regular, existen subconjuntos de atributos (SC SC ) de un) de un
esquema de relación
esquema de relación RR tal que para dos tuplas cualesquiera en untal que para dos tuplas cualesquiera en un
estado de relación r de
estado de relación r de RR, t, t11 y t y t22, se cumple:, se cumple:
tt
11[[
SC SC]]
≠ t≠ t22
[[
SC SC]]
–
Restricciones
Restricciones
•
•
Restricción de clave
Restricción de clave
–
– Una superclaveUna superclave SCSC especifica una restricción de unicidad en laespecifica una restricción de unicidad en la
relación, que significa que no puede haber dos tuplas con los relación, que significa que no puede haber dos tuplas con los mismos valores en los atributos de
mismos valores en los atributos de SCSC
–
– Ejemplo: Dada la Ejemplo: Dada la relaciónrelación Alumnos(DN Alumnos(DNI, nombre, tituI, nombre, titulación)lación)¿son¿son
superclaves? superclaves?
•
• SCSC = {DNI, nombre, titulación}= {DNI, nombre, titulación} •
• SCSC = {DNI, titulación}= {DNI, titulación} •
• SCSC = {nombre}= {nombre} •
• SCSC = {nombre, titulación}= {nombre, titulación}
35
Restricciones
Restricciones
•
•
Restricción de clave
Restricción de clave
–
– Un subconjunto de atributosUn subconjunto de atributos KK dede RR es unaes una claveclave si es una si es una
superclave mínima superclave mínima
–
– Una superclaUna superclave no es mínima si ve no es mínima si al eliminar alguno de susal eliminar alguno de sus
atributos sigue siendo una superclave atributos sigue siendo una superclave
–
– Ejemplo: Dada la Ejemplo: Dada la relaciónrelación Alumnos(DN Alumnos(DNI, nombre, titI, nombre, titulación)ulación)¿son¿son
claves? claves?
•
• KK = {DNI, = {DNI, nombre, titulación}nombre, titulación} •
• KK = = {nombre, titulación}{nombre, titulación} •
Restricciones
Restricciones
•
•
Clave primaria y claves candidatas
Clave primaria y claves candidatas
–
– En general, un esquema de En general, un esquema de relaciónrelación RR puede tener más de unapuede tener más de una
clave. En este caso, también se las denomina
clave. En este caso, también se las denomina claves candidatasclaves candidatas
–
– Una de las claves candidatas del esquema de relación se eligeUna de las claves candidatas del esquema de relación se elige
como
como clave primariaclave primaria de la relaciónde la relación
–
– LaLa clave primariaclave primaria de una relación es el subconjunto de atributosde una relación es el subconjunto de atributos
que utilizamos para identificar de forma unívoca las tuplas de esa que utilizamos para identificar de forma unívoca las tuplas de esa relación
relación
–
– Notación: subrayamos los atributos que forman la clave primariaNotación: subrayamos los atributos que forman la clave primaria •
• Ejemplo: Alumnos(DNI, nombre, titulación)Ejemplo: Alumnos(DNI, nombre, titulación)
37
Restricciones
Restricciones
•
•
Restricción de integridad de entidad
Restricción de integridad de entidad
–
– Ningún valor de la clave primaria puede ser un valor nuloNingún valor de la clave primaria puede ser un valor nulo –
– Ejemplo:Ejemplo:
Alumnos
Alumnos
DNI
DNI Nombre Nombre TitulaciTitulaciónón
32555111
32555111 Pedro Pedro GIIGII
NULL Ana ETIX
NULL Ana ETIX
76555111
76555111 Alberto Alberto GIIGII ¿Cómo identificamos a Ana? ¿Cómo identificamos a Ana?
Restricciones
Restricciones
•
•
Restricción de integridad referencial
Restricción de integridad referencial
–
– Un conjunto de atributosUn conjunto de atributos CFCF en el esquema de en el esquema de relaciónrelación RR11 es unaes una
clave foránea
clave foránea (o clave externa) de(o clave externa) de RR11 si se si se satisfacsatisfacen las dosen las dos
reglas siguientes: reglas siguientes:
•
• Los atributos deLos atributos de CFCF tienen el mismo dominio que los tienen el mismo dominio que los atributosatributos
de la
de la clavclave primariae primaria CPCP de otro esquema de relaciónde otro esquema de relación RR22. Se. Se
dice que los atributos
dice que los atributos CFCF hacen referencia o se refieren a lahacen referencia o se refieren a la
relación relación RR22..
•
• Un valor deUn valor de CFCF en una tupla ten una tupla t11 del estado actual del estado actual r r 11(R(R11 ) ) ocurre ocurre
como valor de CP en alguna tupla t
como valor de CP en alguna tupla t22 del estado actual del estado actual r r 22(R(R22 ) ) o o
bien es nulo. bien es nulo.
•
• En el primer caso tEn el primer caso t11[[CF CF ] = t] = t22[[CPCP], y decimos que la tupla t], y decimos que la tupla t11
hace referencia a la tupla t hace referencia a la tupla t22..
39
Restricciones
Restricciones
•
•
Restricción de integridad referencial
Restricción de integridad referencial
–
– UnaUna clave foráneaclave foránea es es conjuntconjunto de atributos de una relacióno de atributos de una relación RR11
que para cada tupla identifican a otra tupla
que para cada tupla identifican a otra tupla de una relaciónde una relación RR22
con la que está relacionada. con la que está relacionada.
–
– Las utilizamos para relacionar las tuplas de Las utilizamos para relacionar las tuplas de una relación conuna relación con
tuplas de otras
Restricciones
Restricciones
•
•
Restricción de integridad referencial
Restricción de integridad referencial
41
41
NIF
NIF Nombre Nombre ……
12.345.657
12.345.657 Pepe Pepe …… Clientes Clientes
Código Nombre Precio
Código Nombre Precio
1293
1293 Portátil Portátil 700 700 €€ Productos Productos
NIF-cliente Cod-Prod Uds.
NIF-cliente Cod-Prod Uds.
12.345.657
12.345.657 1293 1293 22 Pedidos Pedidos Identifica al cliente que realizó el pedido
Identifica al cliente que realizó el pedido
Identifica qué producto compró Identifica qué producto compró
Restricciones
Restricciones
•
Restricciones
Restricciones
•
•
Borrados y actualizaciones con claves foráneas
Borrados y actualizaciones con claves foráneas
–
– Cuando eliminamos o actualizo una fila de una tabla referenciadaCuando eliminamos o actualizo una fila de una tabla referenciada
por otra, tenemos dos opciones: por otra, tenemos dos opciones:
•
• Poner un valor nulo en la clave foránea. Ejemplo: cuandoPoner un valor nulo en la clave foránea. Ejemplo: cuando
borro un depto., el código de depto. de sus
borro un depto., el código de depto. de sus empleados esempleados es NULL
NULL
•
• Propagar en cascada el borrado/actualización a la clavePropagar en cascada el borrado/actualización a la clave
for
foránea. Ejemplo: si ánea. Ejemplo: si borro la fila borro la fila de un departamento, borrode un departamento, borro también las filas
también las filas de los de los empleados que le empleados que le refreferencian.erencian.
43
Restricciones
Restricciones
Deptno
Deptno Dname Dname LocLoc
10
10 Research Research CoruñaCoruña Dept
Dept
Empno
Empno … … deptnodeptno
10 10 … … 1010 Emp Emp Borrado/Actualización Borrado/Actualización
3.2.3 Ejercicios
3.2.3 Ejercicios
Bloque III – Bases de Datos
Ejercicio 1
Ejercicio 1
Dada la siguiente tabla: Dada la siguiente tabla:
a)
a) ¿E¿Es us una na rrelelacacióión? n? ¿P¿Por or ququé?é? b)
b) ¿Qu¿Qué reé restrstricciccioniones des del mel modeodelo rlo relaelaciocional nal no se cno se cumpumplenlen??
Nombre Edad Idioma Nivel
Nombre Edad Idioma Nivel
Luis
Luis 18 18 Inglés Inglés BienBien
Ana 23
Ana 23 InglésInglés Francés Francés Bien Bien Regular Regular Jaime
Jaime 19 19 Alemán Alemán MalMal María
Ejercicio 2
Ejercicio 2
Dadas las siguientes tablas: Dadas las siguientes tablas:
a)
a) ¿R¿Repepreresesentntan lan la mia mismsma rea relalaciciónón? ¿P? ¿Por quor qué?é?
Nombre Edad Idioma Nivel Nombre Edad Idioma Nivel
Luis
Luis 18 18 Inglés Inglés BienBien Ana
Ana 23 23 Inglés Inglés BienBien Jaime
Jaime 19 19 AleAlemán mán MalMal María
María 42 42 Italiano Italiano BienBien
Nombre Edad Idioma Nivel Nombre Edad Idioma Nivel
Jaime
Jaime 19 19 AleAlemán mán MalMal María
María 42 42 Italiano Italiano BienBien Luis
Luis 18 18 Inglés Inglés BienBien Ana
Ejercicio 3
Ejercicio 3
Dado el siguiente esquema de base de datos relacional:
Dado el siguiente esquema de base de datos relacional:
Pueblo (id_pbl, nombre, provincia, num_hab) Pueblo (id_pbl, nombre, provincia, num_hab)
Monumento (cod_mon, nombre, época, tipo, id_pbl) Monumento (cod_mon, nombre, época, tipo, id_pbl) Ruta (id_ruta, nombre,
Ruta (id_ruta, nombre, transporttransporte, e, duraciduración, longitud)ón, longitud) Pasa_por (id_ruta, id_pbl, orden)
Pasa_por (id_ruta, id_pbl, orden)
a)
a) Ind
Indic
ica las
a las cla
clave
ves pri
s primar
marias y f
ias y for
oráne
áneas. R
as. Repr
eprese
esent
ntaa
gráfic
Ejercicio 3
Ejercicio 3
b)
b) In
Intr
trod
oduc
uce en la
e en las ta
s tabl
blas l
as la si
a sigu
guie
ient
nte in
e inffor
ormac
mació
ión
n
“Roteiro dos castiñeiros (5 km de lonxitude, para facer a pe en 1 hora). Pasa “Roteiro dos castiñeiros (5 km de lonxitude, para facer a pe en 1 hora). Pasa por A Balada,
por A Balada, Neixón e Comba (nesta orde) todos eles pobos pequenos Neixón e Comba (nesta orde) todos eles pobos pequenos dede 1000 habitant
1000 habitantes e da es e da provincia da Coruña”provincia da Coruña”
“Roteiro dos petroglifos (20 km de lonxitude, para facer en coche en 2 horas). “Roteiro dos petroglifos (20 km de lonxitude, para facer en coche en 2 horas). Pasa por Neixón, Cespón, Agüeiros (nesta orde) e acaba de novo en Neixón. Pasa por Neixón, Cespón, Agüeiros (nesta orde) e acaba de novo en Neixón. Son pobos da provincia da coruña que (excepto Neixón) teñen 2500
Son pobos da provincia da coruña que (excepto Neixón) teñen 2500 habitant
habitantes. En Cespón es. En Cespón pódese ver apódese ver a Capela do LoretoCapela do Loreto, unha capela que data do, unha capela que data do
século XII” século XII”
Ejercicio 4
Ejercicio 4
Dado el siguiente esquema de base de datos relacional:
Dado el siguiente esquema de base de datos relacional:
Empresa(CIF, nombre, dirección, ciudad) Empresa(CIF, nombre, dirección, ciudad)
Inversor (NIF, nombre, apellidos, dirección, teléfono, NIF_asesor) Inversor (NIF, nombre, apellidos, dirección, teléfono, NIF_asesor) Asesor (NIF, nombre, teléfono, email, experiencia)
Asesor (NIF, nombre, teléfono, email, experiencia)
Invierte_en (NIF_inversor, CIF_empresa, participación) Invierte_en (NIF_inversor, CIF_empresa, participación)
a)
a) Ind
Indic
ica las
a las cla
clave
ves pri
s primar
marias y f
ias y for
oráne
áneas. R
as. Repr
eprese
esent
ntaa
gráfic
Ejercicio 4
Ejercicio 4
b)
b) In
Intr
trod
oduc
uce en la
e en las ta
s tabl
blas l
as la si
a sigu
guie
ient
nte in
e inffor
ormac
mació
ión
n
“Polo de agora só recompilamos datos de dúas empresas: “Polo de agora só recompilamos datos de dúas empresas:
Empresa1
Empresa1, ten o seu enderezo fiscal na Rúa de Arteixo, 5, 15008, A Coruña, e o seu CIF, ten o seu enderezo fiscal na Rúa de Arteixo, 5, 15008, A Coruña, e o seu CIF
é B6000000J. é B6000000J.
Empresa2
Empresa2, domiciliada na Rúa da Univer, domiciliada na Rúa da Universidade, 10, 08009, Barcelona, e o seu CIF sidade, 10, 08009, Barcelona, e o seu CIF éé
B0000005J. B0000005J.
Por outra banda, os inversores son: Por outra banda, os inversores son:
Manuel Iglesias (NIF. 47668432R), vive en na rúa de Monforte nº 120, no 28088 de Manuel Iglesias (NIF. 47668432R), vive en na rúa de Monforte nº 120, no 28088 de
Madrid. Está dispoñíbel no teléfono 91 555 2
Madrid. Está dispoñíbel no teléfono 91 555 2 3 47. Manuel ten invertid3 47. Manuel ten invertido 3000 € eno 3000 € en Empresa1, a recomendación de Xoan Neira (
Empresa1, a recomendación de Xoan Neira ([email protected]@meumail.com, 649888888), 649888888) que leva xa dous anos traballando niso.
que leva xa dous anos traballando niso.
Alexandra Montoto (NIF. 33556874X), está domiciliada na rúa Almirante, 67, no 36001 Alexandra Montoto (NIF. 33556874X), está domiciliada na rúa Almirante, 67, no 36001
de Pontevedra. O seu teléfono móbil é 649 87 25 11. Ten invertidos 2000 € en de Pontevedra. O seu teléfono móbil é 649 87 25 11. Ten invertidos 2000 € en
Empresa2 e outro tanto en Empresa1. Alexandra confía plenamente no seu asesor Empresa2 e outro tanto en Empresa1. Alexandra confía plenamente no seu asesor Ánxel García. É un home q
Ánxel García. É un home que leva xa 10 anosue leva xa 10 anos traballando nisto e que está sempretraballando nisto e que está sempre dispoñíbel tanto por mail (
Ejercicio 5
Ejercicio 5
Dado el siguiente esquema de base de datos relacional:
Dado el siguiente esquema de base de datos relacional:
Cliente(DNI, nombre, dirección) Cliente(DNI, nombre, dirección)
Coche (matrícula, marca, modelo, pagado, dni) Coche (matrícula, marca, modelo, pagado, dni) Taller (cif, nombre, dirección)
Taller (cif, nombre, dirección)
Accidente (cod_acc, dni, matricula, cif, fecha, coste) Accidente (cod_acc, dni, matricula, cif, fecha, coste)
a)
a) Ind
Indic
ica las
a las cla
clave
ves pri
s primar
marias y f
ias y for
oráne
áneas. R
as. Repr
eprese
esent
ntaa
gráfic
gráficamente este esquema
amente este esquema relacional.
relacional.
b)
b) Pa
Para
ra cada
cada cla
clave
ve for
foránea,
ánea, decid
decidir y
ir y just
justific
ificar s
ar si de
i debe ad
be admitir
mitir
valores nulos, y los modos de borrado y actualización más
valores nulos, y los modos de borrado y actualización más
Ejercicio 6
Ejercicio 6
Dada la siguiente base de
Dada la siguiente base de datos relacional, detecta las posibles
datos relacional, detecta las posibles
violaciones de las restricciones de dominio, integridad de entidad
violaciones de las restricciones de dominio, integridad de entidad
e integridad referencial.
e integridad referencial.
DNI
DNI Nombre Nombre DirecciónDirección
13 Juan
13 Juan Real, 3Real, 3 Mayor, 5 Mayor, 5 Pedro
Pedro Real, Real, 1010 18
18 Gonzalo Gonzalo MayorMayor, , 77 20
20 Agustín Diagonal, Agustín Diagonal, 22
Matrícula
Matrícula Marca Marca DNIDNI
1010 AAA 1010 AAA 1010AAA
1010AAA SeatSeat
13 13 18 18 2020 2020 BBB BBB BMW BMW 2121 3030 3030 CCC CCC AudiAudi 3031CCD 3031CCD Opel Opel 1313 Clientes Clientes Vehículos Vehículos
Ejercicio 7
Ejercicio 7
La base de
La base de datos de una empresa contiene las siguientes tablas:datos de una empresa contiene las siguientes tablas:
Persona (dni, nombre, dirección, telefono) Persona (dni, nombre, dirección, telefono) Empleado (dni,
Empleado (dni, fecha-alta, fecha-consolidación, salario, departamento, jefe)fecha-alta, fecha-consolidación, salario, departamento, jefe) Departament
Departamento o (#dep, nombre, (#dep, nombre, presupuespresupuesto)to)
Indica como modificarías/completarías este esquema para que Indica como modificarías/completarías este esquema para que contemple las siguientes restricciones:
contemple las siguientes restricciones: a)
a) No pNo pueuede de hahabeber dor dos ps perersosonanas cs con eon el mil mismsmo DNo DNI.I. b)
b) TTododo eo empmpleleadado eo es us una na peperrsonsona.a. c)
c) No pNo pueuede hde hababer der dos eos empmpleleadados cos con eon el mil mismsmo noo nombmbrere.. d)
d) TTododa pea persrsonona tia tienene une una dia direreccccióión.n. e)
e) Un eUn empmplealeado sdo solo olo puepuede pde perterteneenecer cer a un a un depdepartartameamentnto.o. f)
3.3. Introducción al diseño de BD
3.3. Introducción al diseño de BD
Bloque III – Bases de Datos
Problemas en el diseño
Problemas en el diseño
•
•
Dificultades en el diseño de BD
Dificultades en el diseño de BD
–
– Hasta ahora hemos pensado directamentHasta ahora hemos pensado directamente en e en las tablas quelas tablas que
necesitamos en la base de
necesitamos en la base de datosdatos
–
– Diseñar la BD Diseñar la BD de esta forma puede dar lugar a problemas en elde esta forma puede dar lugar a problemas en el
diseño resultante diseño resultante
•
• Información redundanteInformación redundante •
• Inconsistencias en los datosInconsistencias en los datos •
Problemas en el diseño
Problemas en el diseño
57 57 Coche_mod Coche_mod MatrículaMatrícula Marca Marca Modelo Modelo Color Color Potencia Potencia PesoPeso 5634HJI
5634HJI Seat Seat Córdoba Córdoba Rojo Rojo 100 100 10201020 2312FGT
2312FGT Seat Seat Ibiza Ibiza VVerde erde 100 100 10901090 1233HJT
1233HJT Peugeot Peugeot 206 206 VerVerde de 70 70 10201020 8954ERT
8954ERT Seat Seat Córdoba Córdoba Azul Azul 100 100 11201120 9876ERT
9876ERT Seat Seat IbiIbiza za Rojo Rojo 90 90 10801080
Ejemplo: Suponiendo que un modelo tiene una única potencia
Ejemplo: Suponiendo que un modelo tiene una única potencia
y un único peso, ¿qué problemas puede tener esta relación?
y un único peso, ¿qué problemas puede tener esta relación?
Problemas en el diseño
Problemas en el diseño
Libros
Libros
ID
ID Autor Autor Título Título Editorial Editorial PáginasPáginas 10
10 Juan Juan Bases Bases de de datos datos A A 623623 20
20 Pedro Pedro Sistemas Sistemas Operativos Operativos B B 234234 30
30 Juan Juan Bases de Bases de Datos Datos A A 523523
Ejemplo: Suponiendo que hay una única edición de
Ejemplo: Suponiendo que hay una única edición de cada libro,
cada libro,
¿qué problemas puede tener
Problemas en el diseño
Problemas en el diseño
59 59 Copia Copia ID ISBN ID ISBN 1 10 1 10 2 20 2 20 3 10 3 10 Libros Libros ISBNISBN Autor Autor Título Título Editorial Editorial PáginasPáginas 10
10 Juan Juan Bases Bases de de datos datos A A 623623 20
20 Pedro Pedro Sistemas Sistemas Operativos Operativos B B 234234
Los problemas de la relación anterior se podrían solucionar así:
Los problemas de la relación anterior se podrían solucionar así:
Proceso de diseño de una BD
Proceso de diseño de una BD
•
•
Proceso de diseño e implementación de una BD
Proceso de diseño e implementación de una BD
–
– No se piensa directamente en las tablas de la BDNo se piensa directamente en las tablas de la BD –
Proceso de diseño de una BD
Proceso de diseño de una BD
61 61 Análisis de Análisis de requisitos requisitos Modelo Modelo conceptual conceptual Modelo lógico Modelo lógico Implementación Implementación Dominio de Dominio de interés interés
Proceso de diseño de una BD
Proceso de diseño de una BD
Análisis de Análisis de requisitos requisitos Modelo Modelo conceptual conceptual Modelo lógico Modelo lógico Dominio de Dominio de interés
interés ••
Análisis de requisitos de la BD
Análisis de requisitos de la BD
–
– Normalmente, no conocemos losNormalmente, no conocemos los
detalles del dominio de interés detalles del dominio de interés
–
– Conocer y analizar las expectativas de losConocer y analizar las expectativas de los
usuarios y los usos que se
usuarios y los usos que se piensa dar a lapiensa dar a la base de datos
Proceso de diseño de una BD
Proceso de diseño de una BD
63 63 Análisis de Análisis de requisitos requisitos Modelo Modelo conceptual conceptual Modelo lógico Modelo lógico Implementación Implementación Dominio de Dominio de interés
interés ••
Modelo conceptual
Modelo conceptual
–
– Descripción conceptual del dominio deDescripción conceptual del dominio de
interés interés
–
– Se crea un modelo independiente delSe crea un modelo independiente del
SGBD en el que se
SGBD en el que se vayvaya a hacer laa a hacer la implementación de la BD
implementación de la BD
–
Proceso de diseño de una BD
Proceso de diseño de una BD
Análisis de Análisis de requisitos requisitos Modelo Modelo conceptual conceptual Modelo lógico Modelo lógico Dominio de Dominio de interés
interés ••
Modelo lógico
Modelo lógico
–
– Se crea un modelo que se Se crea un modelo que se corresponcorrespondada
con la
con la estructurestructura lógica específica dela lógica específica del SGBD en el
SGBD en el que se implementará la BDque se implementará la BD
–
– En BD En BD relacionalesrelacionales •
• MODELO RELACIONALMODELO RELACIONAL
–
Proceso de diseño de una BD
Proceso de diseño de una BD
65 65 Análisis de Análisis de requisitos requisitos Modelo Modelo conceptual conceptual Modelo lógico Modelo lógico Implementación Implementación Dominio de Dominio de interés
interés ••
Implementación
Implementación
–
– Se implementan las tablas en el SGBDSe implementan las tablas en el SGBD –
– Ejemplo SQL:Ejemplo SQL:
CREATE TABLE alumno ( CREATE TABLE alumno (
cod NUMERIC(5), cod NUMERIC(5), nombre VARCHAR(50), nombre VARCHAR(50), titulacion VARCHAR(3), titulacion VARCHAR(3),
CONSTRAINT pk_alum PRIMARY KEY (cod)); CONSTRAINT pk_alum PRIMARY KEY (cod));
3.1 Modelo Entidad/Relación
3.1 Modelo Entidad/Relación
Bloque III – Bases de Datos
Modelado conceptual
Modelado conceptual
•
•
¿Qué es un modelo?
¿Qué es un modelo?
–
– Esquema o representación abstracta de un sistema o realidadEsquema o representación abstracta de un sistema o realidad
compleja que se elabora para facilitar su comprensión y el compleja que se elabora para facilitar su comprensión y el estudio de su comportamiento.
estudio de su comportamiento.
•
•
Modelo conceptual de datos
Modelo conceptual de datos
–
– Un esquema de alto nivel de las necesidades de informaciónUn esquema de alto nivel de las necesidades de información •
• ¿De qué entidades del dominio hay que almacenar¿De qué entidades del dominio hay que almacenar
información? información?
•
• ¿Qué información hay que almacenar para cada entidad?¿Qué información hay que almacenar para cada entidad? •
• ¿Cómo se relacionan entre si las entidades?¿Cómo se relacionan entre si las entidades?
67
Modelo entidad relación (E/R)
Modelo entidad relación (E/R)
•
•
Modelo entidad relación (E/R)
Modelo entidad relación (E/R)
–
– Modelamos el dominio de interés como un conjunto deModelamos el dominio de interés como un conjunto de
entidades
entidades entre las que existenentre las que existen relacionesrelaciones
•
• ¿De qué entidades hay que almacenar información?¿De qué entidades hay que almacenar información? •
• ¿Qué información hay que almacenar para cada entidad?¿Qué información hay que almacenar para cada entidad? •
Entidades
Entidades
•
•
Entidades
Entidades
–
– UnaUna entidadentidad es una “cosa” u “objeto” del mundo real,es una “cosa” u “objeto” del mundo real,
distinguib
distinguible de le de los demás objetoslos demás objetos
•
• Ejemplo: empleados, departamentos, proyectos, …Ejemplo: empleados, departamentos, proyectos, … –
– Cada entidad tiene Cada entidad tiene propiedades específicpropiedades específicas, llamadasas, llamadas atributosatributos,,
que las describen que las describen
•
• Ejemplo empleados: código, nombre, salario, comisión, …Ejemplo empleados: código, nombre, salario, comisión, … –
– UnUn tipo de entidadtipo de entidad define una colección de entidades quedefine una colección de entidades que
poseen los mismos atributos poseen los mismos atributos
69
Entidades
Entidades
•
•
Representación gráfica
Representación gráfica
–
– Tipo de Tipo de entidad: Empleadoentidad: Empleado –
– AtributAtributos: código de os: código de empleado, nombre, salario y empleado, nombre, salario y comisióncomisión –
– La clave primaria se subrayaLa clave primaria se subraya
Empleado Empleado código código nombre nombre salario salario comisión comisión
Relaciones
Relaciones
•
•
Relaciones
Relaciones
–
– Dos entidades pueden estarDos entidades pueden estar relacionadasrelacionadas entre si entre si •
• Ejemplo: el empleado 7369 trabaja en el Ejemplo: el empleado 7369 trabaja en el departamentdepartamento 20o 20 –
– UnUn tipo de relacióntipo de relación representa un conjunto de relaciones entrerepresenta un conjunto de relaciones entre
entidades de dos tipos de
entidades de dos tipos de entidadentidad
71 71 Empleado Empleado código código nombre nombre salario salario comisión comisión Departamento Departamento código código nombre nombre localidad localidad trabaja trabaja en en
Relaciones
Relaciones
•
•
Cardinalidad y participación, notación (min, max)
Cardinalidad y participación, notación (min, max)
–
– Un empleado trabaja como mínimo e 1 departamento, y comoUn empleado trabaja como mínimo e 1 departamento, y como
máximo en 1 máximo en 1
–
– En un departamento trabajan como mínimo 0 empleados, En un departamento trabajan como mínimo 0 empleados, yy
como máximo n como máximo n Empleado Empleado código código nombre nombre salario salario comisión comisión Departamento Departamento código código nombre nombre localidad localidad trabaja trabaja en en (1,1) (1,1) (0,n)(0,n)
Relaciones
Relaciones
73 73 Empleado Empleado código código nombre nombre salario salario comisión comisión Departamento Departamento código código nombre nombre localidad localidad trabaja trabaja en en (1,1) (1,1) (0,n)(0,n)(min, max)
(min, max)
Participación
Cardinalidad
Participación
Cardinalidad
Relaciones
Relaciones
•
•
Cardinalidad de las relaciones
Cardinalidad de las relaciones
–
– Uno a uno (1:1)Uno a uno (1:1) •
• Un empleado dirige uno y solo Un empleado dirige uno y solo un departamentun departamento (0,1), y o (0,1), y unun
departament
departamento es dirigido por o es dirigido por solo un empleado (1,1)solo un empleado (1,1)
–
– De uno a muchos (1:N)De uno a muchos (1:N) •
• Un empleado trabaja en uno y Un empleado trabaja en uno y solo un departamento (1,1) ysolo un departamento (1,1) y
en un departamento trabajan de 0 a n
en un departamento trabajan de 0 a n empleados (1,n)empleados (1,n)
–
– De muchos a muchos (M:N)De muchos a muchos (M:N) •
• Un alumno estudia de 1 a n asignaturas (1,m), y en unaUn alumno estudia de 1 a n asignaturas (1,m), y en una
asignatur
Relaciones
Relaciones
•
•
Participación en las relaciones
Participación en las relaciones
–
– TotalTotal: cada entidad tiene que estar relacionada con otra: cada entidad tiene que estar relacionada con otra •
• Ejemplo: cada empleado tiene que trabajar en unEjemplo: cada empleado tiene que trabajar en un
departament
departamento o (1,1)(1,1)
–
– ParcialParcial: cada entidad no tiene que : cada entidad no tiene que estar relacionadestar relacionada con otraa con otra •
• Ejemplo: un empleado no tiene que Ejemplo: un empleado no tiene que estar asignado a unestar asignado a un
departamen
departamento to (0,1)(0,1)
75
Ejemplo -
3.2 Paso a modelo relacional
3.2 Paso a modelo relacional
Bloque III – Bases de Datos
Transformación modelo E/R a modelo relacional
Transformación modelo E/R a modelo relacional
•
•
Transformación de modelo E/R a modelo relacional
Transformación de modelo E/R a modelo relacional
–
– Transformamos el esquema entidad-relación de la BD en unTransformamos el esquema entidad-relación de la BD en un
conjunto de relaciones con claves primarias y claves foráneas conjunto de relaciones con claves primarias y claves foráneas
–
Transformación modelo E/R a modelo relacional
Transformación modelo E/R a modelo relacional
•
•
Regla 1: tipos de entidad
Regla 1: tipos de entidad
–
– Cada tipo de entidad en el esquema E/R se Cada tipo de entidad en el esquema E/R se convieconvierte en unarte en una
relación en el esquema
relación en el esquema relacionalrelacional
–
– La clave primaria de la relación es la La clave primaria de la relación es la clavclave primaria del tipo dee primaria del tipo de
relación relación
•
•
Regla 2: tipos de relación 1:1
Regla 2: tipos de relación 1:1
–
– Cada tipo de entidad que participa en el tipo de relación se haCada tipo de entidad que participa en el tipo de relación se ha
transformado en una relación (regla 1) transformado en una relación (regla 1)
–
– La clave primaria de una La clave primaria de una de las de las dos relaciones correspondidos relaciones correspondientes aentes a
los tipos de entidad se incluye como clave foránea en la otra los tipos de entidad se incluye como clave foránea en la otra relación
relación
79
Transformación modelo E/R a modelo relacional
Transformación modelo E/R a modelo relacional
•
•
Regla 3: tipos de relación 1:N
Regla 3: tipos de relación 1:N
–
– Cada tipo de entidad que participa en el tipo de relación se haCada tipo de entidad que participa en el tipo de relación se ha
transformado en una relación (regla 1) transformado en una relación (regla 1)
–
– La clave primaria de la La clave primaria de la relación corresporelación correspondientndiente al e al tipo detipo de
entidad del lado N se convierte en una clave foránea en la entidad del lado N se convierte en una clave foránea en la relación corr
relación correspondientespondiente al e al tipo de tipo de entidad del lado 1entidad del lado 1
•
•
Regla 4: tipos de relación N:M
Regla 4: tipos de relación N:M
–
– Se crea una nueva relación en la que se incluyen como clavesSe crea una nueva relación en la que se incluyen como claves
foráneas las claves primarias de las relaciones correspondientes a foráneas las claves primarias de las relaciones correspondientes a los tipos de entidad
Transformación modelo E/R a modelo relacional
Transformación modelo E/R a modelo relacional
•
•
Ejemplo
Ejemplo
81
Transformación modelo E/R a modelo relacional
Transformación modelo E/R a modelo relacional
•
•
Ejemplo
Ejemplo
Regla 1 (tipo de entidad
Transformación modelo E/R a modelo relacional
Transformación modelo E/R a modelo relacional
83
83
Empleado(código
Empleado(código, nombre,
, nombre, salario)
salario)
Departamento(c
Departamento(código, nombre,
ódigo, nombre, localidad)
localidad)
Proyecto(código, nombre, presupuesto)
Proyecto(código, nombre, presupuesto)
Transformación modelo E/R a modelo relacional
Transformación modelo E/R a modelo relacional
•
•
Ejemplo
Ejemplo
Regla 3 (tipo de relación 1:N
Transformación modelo E/R a modelo relacional
Transformación modelo E/R a modelo relacional
85
85
Empleado(código
Empleado(código, nombre,
, nombre, salario, deptno)
salario, deptno)
Departamento(c
Departamento(código, nombre,
ódigo, nombre, localidad)
localidad)
Proyecto(código, nombre, presupuesto)
Proyecto(código, nombre, presupuesto)
Transformación modelo E/R a modelo relacional
Transformación modelo E/R a modelo relacional
•
•
Ejemplo
Ejemplo
Regla 4 (tipo de relación N:M
Transformación modelo E/R a modelo relacional
Transformación modelo E/R a modelo relacional
87
87