Chapter 3
Chapter 3
Relacional
Julio J. Águila
G.
Paso de
modelo E-R a Recopilador: Julio J. Águila G.1
modelo
relacional Autores: César Guerrero Saldivia2 , Mauricio Marı́n3
Ejercicios
propuestos
1 Universidad de Magallanes
2 Universidad de Chile
3 Universidad de Santiago de Chile
29 de agosto de 2019
Julio J. Águila
G.
Prólogo
1 Prólogo
Modelo
relacional
2 Modelo relacional
Bases de datos
relacionales
Paso de
modelo E-R a 3 Bases de datos relacionales
modelo
relacional
5 Ejercicios propuestos
Modelo
Relacional
Julio J. Águila
G.
Prólogo
1 Prólogo
Modelo
relacional
2 Modelo relacional
Bases de datos
relacionales
Paso de
modelo E-R a 3 Bases de datos relacionales
modelo
relacional
5 Ejercicios propuestos
Modelo
Relacional Modelo entidad-relación para una empresa genérica
Julio J. Águila
G.
Prólogo
Modelo
relacional
Bases de datos
relacionales
Paso de
modelo E-R a
modelo
relacional
Ejercicios
propuestos
Modelo
Relacional
Julio J. Águila
G.
Modelo
Relacional Ejemplo de una tabla
Julio J. Águila
G. DNOMBRE DNUMERO RUTGERENTE GERFECHAINIC
Of. Central 1 88866555 19-6-71
Prólogo
Administración 4 98765432 1-1-85
Modelo Investigación 5 33344555 22-5-78
relacional
Bases de datos
relacionales
Paso de
modelo E-R a
modelo
relacional
Ejercicios
propuestos
Modelo
Relacional
Julio J. Águila
G.
Prólogo
1 Prólogo
Modelo
relacional
2 Modelo relacional
Bases de datos
relacionales
Paso de
modelo E-R a 3 Bases de datos relacionales
modelo
relacional
5 Ejercicios propuestos
Modelo
Relacional
Julio J. Águila
G.
Prólogo
Dominios
Modelo
relacional Definición Un dominio D es un conjunto de valores
Bases de datos atómicos. En la práctica los dominios son tipos
relacionales
de datos, e.g.:
Paso de
modelo E-R a
modelo números departamentos: int(2).
relacional
nombres departamentos: char(15).
Ejercicios
propuestos ruts: int(8).
fechas: char(10), formato
“####-##-##”.
Modelo
Relacional Esquema de una relación
Julio J. Águila
G.
Un esquema de relación R denotado por
R(A1 : D1 , A2 : D2 , . . . , An : Dn ) está constituido por un
Prólogo
nombre de relación R y una lista de atributos A1 , A2 , . . . , An
Modelo
relacional con dominios D1 , D2 , . . . , Dn respectivamante. Cada Di es el
Bases de datos dominio de Ai y se denota dom( Ai )= Di . El grado de una
relacionales
Paso de
relación es el número n de atributos del esquema de la relación,
modelo E-R a e.g.:
modelo
relacional
DEPARTAMENTO( DNUMERO: números
Ejercicios
propuestos departamentos, DNOMBRE: nombres departamentos,
RUTGERENTE: ruts, GERFECHAINIC: fechas)
DEPARTAMENTO tiene grado n = 4.
dom( DNUMERO)= números departamentos.
dom( DNOMBRE)= nombres departamentos.
dom( RUTGERENTE)= ruts.
dom( GERFECHAINIC)= fechas.
Modelo
Relacional Instancia de una relación
Julio J. Águila
G.
Definición Una instancia de relación r del esquema de
relación R(A1 : D1 , A2 : D2 , . . . , An : Dn ),
Prólogo
denotado como r (R), es un conjunto de m tuplas
Modelo
relacional r (R) = {t1 , t2 , . . . , tm }. Cada tupla ti es una lista
Bases de datos ordenada de n valores, i.e.
relacionales
ti =< vi1 , vi2 , . . . , vin >, donde cada valor
Paso de
modelo E-R a vij , 1 ≤ j ≤ n, es un elemento de dom(Aj ) o es un
modelo
relacional valor nulo. La cardinalidad de una relación es el
Ejercicios número m de tuplas de la instancia.
propuestos
Ejemplo:
r (DEPARTAMENTO) = { t1 =< “Of. Central”, 1,
88866555, “1971-06-19”>, t2 =< “Administración”, 4,
98765432, “1985-01-01”>, t3 =< “Investigación”, 5,
33344555, “1978-05-22”>}.
r (DEPARTAMENTO) tiene cardinalidad m = 3.
Modelo
Relacional
Julio J. Águila
G.
Prólogo Tupla
Modelo
relacional Una instancia r (R) es un subconjunto del producto cartesiano
Bases de datos de los dominios que definen R:
relacionales
Paso de
modelo E-R a r (R) ⊆ (dom(A1 ) × dom(A2 ) × . . . × dom(An )
modelo
relacional
El número máximo de m tuplas que puede tener r (R) está
Ejercicios
propuestos dado por:
Modelo
Relacional
Restricción de llave primaria
Julio J. Águila
G.
Una relación R se define como un conjunto de m tuplas. Por
Prólogo definición todos los elementos de un conjunto son distintos,
Modelo luego todas las tuplas de una relación deben ser distintas. Esto
relacional
implica que dos tuplas no pueden tener la misma combinación
Bases de datos
relacionales de valores para todos sus atributos.
Paso de
modelo E-R a
Sea S un subconjunto de atributos de R con la propiedad de
modelo que no hay dos tuplas en r (R) tal que tengan la misma
relacional
Ejercicios
combinación de valores para esos atributos. Entonces para cada
propuestos dos tuplas distintas tp y tq tenemos la siguiente restricción de
llave primaria:
tp [S] 6= tq [S]
Por ejemplo:
t1 [DNUMERO] 6= t2 [DNUMERO] 6= t3 [DNUMERO].
Modelo
Relacional
Julio J. Águila
G.
Prólogo
Llave primaria
Modelo
relacional En general, un esquema de relación puede tener más de una
Bases de datos llave, y en ese caso, cada una de las llaves es una llave
relacionales
Paso de
candidata. Una de las llaves candidatas se designa como llave
modelo E-R a
modelo
primaria de la relación:
relacional
DEPARTAMENTO( DNUMERO: números departamentos,
Ejercicios
propuestos DNOMBRE: nombres departamentos, RUTGERENTE:
ruts, GERFECHAINIC: fechas) PRIMARY KEY
(DNUMERO).
Modelo
Relacional
Julio J. Águila
G.
Relaciones para una empresa genérica
Prólogo
EMPLEADO( RUT, NPILA, APPAT, APMAT, FNAC,
Modelo
relacional DIRECCION, SEXO, SUELDO, RUTSUPERV, NDEPTO).
Bases de datos
relacionales
DEPARTAMENTO( DNUMERO, DNOMBRE,
Paso de
RUTGERENTE, GERFECHAINIC).
modelo E-R a
modelo UBICACIONES DEPTO( DNUMERO, DUBICACION).
relacional
Ejercicios
PROYECTO (PNOMBRE, PNUMERO, PUBICACION,
propuestos DNUM).
TRABAJA EN (ERUT, PNO, HORAS).
CARGA (ERUT, NOMBRE CARGA, SEXO, FNAC,
PARENTESCO).
Modelo
Relacional
Julio J. Águila
G.
Prólogo
Llaves primarias y llaves externas
Modelo
relacional El concepto más relevante de este modelo es el término
Bases de datos
relacionales
relacional. En términos prácticos esto significa que de alguna
Paso de
manera las relaciones están asociadas. Esta asociación se logra
modelo E-R a
modelo
a través de las llaves externas que pertenecen a los esquemas
relacional de las relaciones. No todos los esquemas de relación tienen
Ejercicios
propuestos
llaves externas; cuando esto ocurre, significa que la llave
externa de la relación está haciendo referencia a la llave
primaria de otra relación.
Modelo
Relacional
Julio J. Águila
G.
Restricción de llave externa o llave foránea
Prólogo
Modelo
Definición Un subconjunto de atributos F del esquema de
relacional relación R1 es una llave externa de R1 si satisface
Bases de datos
relacionales
las siguientes reglas:
Paso de 1 Los atributos en F tienen el mismo dominio
modelo E-R a
modelo que los atributos de la llave primaria P en
relacional
Ejercicios
otro esquema de relación R2 . En este caso se
propuestos dice que los atributos F de R1 hacen
referencia a los atributos P en R2 .
2 Un valor de F en una tupla ti de R1 es nulo o
tiene un valor de P en alguna tupla tj de R2 .
Modelo
Relacional Ejemplo de llaves externas
Julio J. Águila
NPILA APPAT APMAT RUT FNAC DIRECCION SEXO SUELDO RUTSUPERV NDEPTO
G.
Juan Pérez Garcı́a 12345678 9-1-55 Toesca 965 M 120 33344555 5
Alicia Zelaya Roa 99988777 19-7- Blanco 2120 F 105 98765432 4
Prólogo 58
Juana Besa Martı́nez 98765432 20-6- Mapocho F 240 88866555 4
Modelo 31 2540
relacional Francisco Cea Daza 33344555 8-12- Condell 221 M 310 88866555 5
45
Bases de datos Jaime Ramos Salas 88866555 10-11- Vitacura M 360 nulo 1
relacionales 30 1015
Paso de
modelo E-R a
modelo
relacional
Ejercicios
propuestos
Modelo
Relacional
Julio J. Águila
G. Ejemplo de llaves externas
Prólogo RUTSUPERV de EMPLEADO referencia a RUT de
Modelo EMPLEADO, además NDEPTO de EMPLEADO referencia a
relacional
DNUMERO de DEPARTAMENTO. Esto se define de la
Bases de datos
relacionales siguiente forma:
Paso de
modelo E-R a EMPLEADO( RUT: ruts, NPILA: nombres, APPAT:
modelo
relacional apellidos, APMAT: apellidos, FNAC: fechas, DIRECCION:
Ejercicios direcciones, SEXO: sexos, SUELDO: remuneraciones,
propuestos
RUTSUPERV: ruts, NDEPTO: números departamentos)
PRIMARY KEY ( RUT), FOREIGN KEY ( RUTSUPERV)
REFERENCES [Link], FOREIGN KEY
(NDEPTO) REFERENCES
[Link].
Modelo
Relacional
Julio J. Águila
G.
Prólogo
Modelo
relacional
Instancias dinámicas versus esquemas estáticos
Bases de datos
relacionales
Una instancia de relación contiene solo las tuplas válidas que
Paso de
modelo E-R a representan un estado en un tiempo particular, lo cual puede
modelo
relacional ser dinámico a través del tiempo. En cambio, el esquema de
Ejercicios una relación es relativamente estático ( o invariante).
propuestos
Modelo
Relacional
Julio J. Águila
G.
Prólogo
1 Prólogo
Modelo
relacional
2 Modelo relacional
Bases de datos
relacionales
Paso de
modelo E-R a 3 Bases de datos relacionales
modelo
relacional
5 Ejercicios propuestos
Modelo
Relacional
Julio J. Águila
G.
DBMS relacional
Prólogo
Modelo
Relacional MySQL Language
Julio J. Águila CREATE TABLE IF NOT EXISTS ‘Empresa‘.‘DEPARTAMENTO‘
G.
(
Prólogo
‘DNOMBRE‘ VARCHAR(20) NULL COMMENT ’’,
Modelo
relacional ‘DNUMERO‘ DECIMAL NOT NULL COMMENT ’’,
Bases de datos ‘GERFECHAINI‘ VARCHAR(45) NULL COMMENT ’’,
relacionales
‘RUTGERENTE‘ VARCHAR(8) NULL COMMENT ’’,
Paso de
modelo E-R a PRIMARY KEY (‘DNUMERO‘) COMMENT ’’,
modelo
relacional INDEX ‘fk_DEPARTAMENTO_EMPLEADO1_idx‘
Ejercicios (‘RUTGERENTE‘ ASC) COMMENT ’’,
propuestos
CONSTRAINT ‘fk_DEPARTAMENTO_EMPLEADO1‘
FOREIGN KEY (‘RUTGERENTE‘)
REFERENCES ‘Empresa‘.‘EMPLEADO‘ (‘RUT‘)
ON DELETE NO ACTION
ON UPDATE NO ACTION
)
ENGINE = InnoDB;
Julio J. Águila G. (UMAG) Modelo Relacional 29 de agosto de 2019 22 / 39
Bases de datos relacionales
Modelo
Relacional
Tablas de una base de datos relacional
Julio J. Águila
G. En términos del DBMS la base datos está compuesta por tablas
Prólogo
que se pueden representar gráficamente como matrices donde
Modelo la primera fila contiene los nombres de los atributos y las filas
relacional
siguientes contienen a las entidades presentes en la tabla. Cada
Bases de datos
relacionales fila es un conjunto de valores asociados con el dominio
Paso de respectivo señalado por el nombre de la columna
modelo E-R a
modelo correspondiente, e.g.:
relacional
Ejercicios
propuestos Tabla EMPLEADO
NPILA APPAT APMAT RUT FNAC DIRECCION SEXO SUELDO RUTSUPERV NDEPTO
Juan Pérez Garcı́a 12345678 9-1-55 Toesca 965 M 120 33344555 5
Alicia Zelaya Roa 99988777 19-7- Blanco 2120 F 105 98765432 4
58
Juana Besa Martı́nez 98765432 20-6- Mapocho F 240 88866555 4
31 2540
Francisco Cea Daza 33344555 8-12- Condell 221 M 310 88866555 5
45
Jaime Ramos Salas 88866555 10-11- Vitacura M 360 nulo 1
30 1015
Modelo
Relacional
Modelo
Relacional
Julio J. Águila
G.
Tablas TRABAJA EN y CARGA
Prólogo
ERUT PNO HORAS
Modelo
relacional 12345678 1 32.5
12345678 2 7.5
Bases de datos 33344555 2 10.0
relacionales
99988777 10 10.0
Paso de 98765432 10 10.0
modelo E-R a 98765432 20 15.0
modelo 88866555 20 nulo
relacional
Modelo
Relacional Restricciones de integridad
Julio J. Águila La restricción de llave primaria se especifica en cada tabla y se
G.
usa para evitar que dos filas tengan el mismo conjunto de
Prólogo valores para la llave definida, e.g. RUT es diferente para cada
Modelo fila de la tabla EMPLEADO.
relacional
La restricción de integridad referencial se especifica entre dos
Bases de datos
relacionales tablas y se usa para mantener la consistencia entre filas de las
Paso de
dos tablas. Informalmente, una fila en una tabla que hace
modelo E-R a
modelo
referencia a otra tabla debe referirse a una fila existente en esa
relacional tabla o puede ser un valor nulo, e.g. RUTSUPERV de
Ejercicios EMPLEADO debe coincidir con el RUT de alguna fila de la
propuestos
tabla EMPLEADO o ser un valor nulo. Al mismo tiempo
NDEPTO debe coincidir con algún valor de la tabla
DEPARTAMENTO o ser nulo.
NOTA: se puede observar que el nombre DNUMERO se usa en
DEPARTAMENTO y UBICACIONES DEPTO. Pero el mismo
atributo se llama NDEPTO en EMPLEADO y DNUM en
PROYECTO. No hay problema que el mismo atributo tenga
nombres distintos en distintas tablas.
Julio J. Águila G. (UMAG) Modelo Relacional 29 de agosto de 2019 26 / 39
Bases de datos relacionales
Modelo
Relacional
Julio J. Águila
G.
Prólogo
Modelo
relacional Restricciones semánticas
Bases de datos
relacionales Las restricciones anteriores no consideran las restricciones
Paso de semánticas que existen en el “mundo real”. Por ejemplo, “el
modelo E-R a
modelo sueldo de un empleado no puede exceder el de su supervisor”,
relacional
“el número máximo de horas que puede trabajar un empleado
Ejercicios
propuestos en todos los proyectos es 45”.
Modelo
Relacional
Julio J. Águila
G.
Prólogo
1 Prólogo
Modelo
relacional
2 Modelo relacional
Bases de datos
relacionales
Paso de
modelo E-R a 3 Bases de datos relacionales
modelo
relacional
5 Ejercicios propuestos
Modelo
Relacional
Julio J. Águila
G.
Prólogo
Modelo
relacional
¿Cómo se puede obtener la definición de la base de datos?
Bases de datos A saber, se podrı́a obtener de forma analı́tica en función de la
relacionales
experiencia del diseñador. Otra alternativa es utilizar una
Paso de
modelo E-R a metodologı́a matemática como la que se explicará en otro
modelo
relacional capı́tulo. Finalmente, una combinación de ambas alternativas
Ejercicios sugiere obtener la definición de la base de datos a partir de un
propuestos
diagrama E-R, aplicando un método de transformación.
Modelo
Relacional Modelo E-R para una empresa genérica
Julio J. Águila
G.
Prólogo
Modelo
relacional
Bases de datos
relacionales
Paso de
modelo E-R a
modelo
relacional
Ejercicios
propuestos
Modelo
Relacional Método de transformación
Julio J. Águila 1 Para cada atributo multivaluado, crear una relación
G.
agregando la llave primaria de la entidad a la cual
Prólogo pertenece.
Modelo 2 Convertir todas las entidades del diagrama en relaciones
relacional
Bases de datos
indicando sus atributos y dominios, estos últimos como
relacionales tipos de datos convencionales ( int, double, char, date).
Paso de 3 Para cada relación del diagrama:
modelo E-R a
modelo Si es de cardinalidad M:N, crear una relación con las llaves
relacional
primarias de las entidades que están asociadas, y los
Ejercicios
propuestos atributos propios de la relación —si los tuviera—.
Si es de cardinalidad N:1, se debe agregar la llave primaria
y los atributos propios en la relación que representa a la
entidad marcada con N.
Si es de cardinalidad 1:1, se debe agregar la llave primaria
y los atributos propios en la relación que tenga un grado de
opcionalidad completa. Si ninguna tiene grado de
opcionalidad completa, es indistinto donde se agregue la
llave de una o de otra —pero no en ambas—.
Julio J. Águila G. (UMAG) Modelo Relacional 29 de agosto de 2019 31 / 39
Paso de modelo E-R a modelo relacional
Modelo
Relacional
Julio J. Águila
G.
Método de transformación
Prólogo
1 ...
Modelo
relacional 2 ...
Bases de datos
relacionales 3 ...
Paso de
modelo E-R a
4 Para cada nueva relación, indicar cuál es su llave primaria
modelo
relacional
mediante la notación PRIMARY KEY
Ejercicios (lista de atributos).
propuestos
5 Para cada relación, creada o modificada, agregar cuáles
son llaves externas mediante la notación FOREIGN KEY
(lista de atributos) REFERENCES
nombre [Link] atributo.
Modelo
Relacional
Julio J. Águila
Resultado simplificado
G.
El lector podrá comprobar que aplicando la metodologı́a se
Prólogo obtienen los esquemas de relaciones equivalentes a los que se
Modelo muestran a continuación:
relacional
Modelo
Relacional
Julio J. Águila
G.
Prólogo
Modelo
relacional
Nombres de los atributos
Bases de datos Nótese que los nombres han cambiado en relación al diagrama
relacionales
de la Figura. Además, los nombres de los atributos no siguen
Paso de
modelo E-R a las convenciones dadas en el capı́tulo anterior. No es necesario
modelo
relacional detenerse en esto, el ejemplo ha sido transcrito literalmente
Ejercicios desde la fuente y se explicará a su debido tiempo las ventajas o
propuestos
desventajas de realizar esto.
Modelo
Relacional
Julio J. Águila
G.
Prólogo
1 Prólogo
Modelo
relacional
2 Modelo relacional
Bases de datos
relacionales
Paso de
modelo E-R a 3 Bases de datos relacionales
modelo
relacional
5 Ejercicios propuestos
Modelo
Relacional Notación
Julio J. Águila Dado los esquemas de relación de la base de datos para una
G.
empresa genérica, responda las preguntas y definiciones que se
Prólogo piden a continuación:
Modelo
relacional
1 Para la relación EMPLEADO, describa los dominios de los
Bases de datos siguientes atributos: NPILA, DIRECCIÓN, SEXO y
relacionales
SUELDO.
Paso de
modelo E-R a
2 ¿Cuál es el grado de cada una de las relaciones?
modelo 3 ¿Cuál es el número de tuplas de cada una de las
relacional
relaciones?
Ejercicios
propuestos 4 Para la tabla EMPLEADO, ¿cuál es el valor o significado
de las siguientes notaciones?:
1 r = {t|t = t2 ∨ t = t5 }.
2 t3 = {v8 = 360, v10 = 1}.
3 dom(A10 ).
4 dom(A7 ) × dom(A7 ).
5 |dom(A8 )| ∗ |dom(A8 )|.
6 t2 [A4 , A1 , A2 , A3 ].
7 t[A1 , A2 ].
Modelo
Relacional
Julio J. Águila
G.
Prólogo
Método de transformación
Modelo
relacional Utilizando el método de transformación, propuesto en este
Bases de datos
relacionales
capı́tulo, obtenga el modelo relacional de los problemas
Paso de presentados en el Capı́tulo 2:
modelo E-R a
modelo Compañı́a de capacitación.
relacional
Modelo
Relacional Método analı́tico
Julio J. Águila Los organizadores de la Copa América 2019 han encargado a su
G.
empresa hacer una primera aproximación de una base de datos
Prólogo usando el modelo relacional. Para ello a usted se le ha
Modelo entregado la siguiente información que debe representar en la
relacional
base de datos:
Bases de datos
relacionales El año y paı́s donde se han realizado las copas anteriores,
Paso de
modelo E-R a
además de las sedes donde se jugaron los partidos.
modelo Los paı́ses participantes y los jugadores de cada selección,
relacional
indicando nombre, fecha de nacimiento, equipo en que
Ejercicios
propuestos juega, y posición dentro del equipo. Es importante saber
que un mismo jugador puede estar en varias copas y jugar
en posiciones diferentes (en una misma copa juega en una
misma posición) pero siempre por el mismo paı́s.
Los partidos efectuados, indicando entre que paı́ses y el
marcador. Si hubo definición a penales, éstos se toman
como goles del encuentro. Considere la etapa en que se
jugó el partido (octavos de final, cuartos de final, etc).
Julio J. Águila G. (UMAG) Modelo Relacional 29 de agosto de 2019 38 / 39
Ejercicios propuestos
Modelo
Relacional
Julio J. Águila
G.
Paso de
modelo E-R a Recopilador: Julio J. Águila G.1
modelo
relacional Autores: César Guerrero Saldivia2 , Mauricio Marı́n3
Ejercicios
propuestos
1 Universidadde Magallanes
2 Universidad
de Chile
3 Universidad de Santiago de Chile
29 de agosto de 2019