TEMA 3
EL MODELO RELACIONAL
ÍNDICE
1. Conceptos previos.
2. Elementos básicos.
3. Dominios y atributos.
4. Relación.
5. Claves.
6. Restricciones.
7. Transformación de entidad/interrelación a relacional.
CONCEPTOS PREVIOS
●
El modelo relacional fue introducido por E.F. Codd en
1970.
●
Se trata de un modelo donde los datos se representan
mediante relaciones.
●
Una relación es una tabla de 2 dimensiones que
contiene filas y columnas de datos.
●
Un atributo de la relación es una columna de las
mismas.
●
Las dependencias entre relaciones se denominan
interrelaciones.
CONCEPTOS PREVIOS
●
Para obtener el modelo relacional hay 2 enfoques:
– No se realiza el modelo E/R, sino que se obtiene
directamente el modelo relacional, siendo necesario un
proceso de normalización (es el enfoque tradicional).
– Transforma el modelo E/R en uno relacional, siguiendo una
serie de pasos. El modelo resultante estará normalizado.
ÍNDICE
1. Conceptos previos.
2. Elementos básicos.
3. Dominios y atributos.
4. Relación.
5. Claves.
6. Restricciones.
7. Transformación de entidad/interrelación a relacional.
ELEMENTOS BÁSICOS
Son:
– Relación: Estructura básica representada por tablas.
– Atributo: Propiedades de la relación representados por
columnas.
– Dominio: Conjunto válido de valores para un atributo.
– Tupla: Ocurrencias de la relación representadas por filas.
ELEMENTOS BÁSICOS
Nombre
de la
relación
ELEMENTOS BÁSICOS
Dos aspectos relacionados con las relaciones son:
– Cardinalidad: Número de filas de una relación
– Grado: Número de columnas de una relación
COMPARACIÓN TERMINOLOGÍA
RELACIÓN-FICHERO
ÍNDICE
1. Conceptos previos.
2. Elementos básicos.
3. Dominios y atributos.
4. Relación.
5. Claves.
6. Restricciones.
7. Transformación de entidad/interrelación a relacional.
DOMINIOS Y ATRIBUTOS
Características de un Dominio(D):
●
Se identifica por un nombre.
●
Tiene un número finito de valores.
●
Todos los valores son del mismo tipo.
●
Los valores son atómicos, es decir, no pueden ser a su vez
una relación, un grupo repetitivo, etc
Pueden definirse de dos maneras:
– Extensión (dando sus posibles valores): días de la semana
= {lunes, martes, miércoles, jueves, viernes, sábado,
domingo}
– Intensión (mediante un tipo de datos):edad = entero
DOMINIOS Y ATRIBUTOS
●
Atributo:
“Es la interpretación de un dominio en una relación”.
●
Un atributo y un dominio pueden llamarse igual, pero:
– Un atributo está siempre asociado a una relación, mientras que
un dominio tiene existencia propia con independencia de las
relaciones.
– Un atributo representa una propiedad de una relación.
– Un atributo toma valores de un dominio.
– Varios atributos distintos (de la misma o de diferentes
relaciones) pueden tomar sus valores del mismo dominio.
DOMINIOS Y ATRIBUTOS
●
Dominio compuesto (Combinación de dominios
simples a la que se puede aplicar ciertas restricciones de
integridad)
Ejemplo: el dominio compuesto denominado Fecha
se construye por agregación de los dominios simples
Día, Mes y Año, incorporando las adecuadas
restricciones de integridad a fin de que no aparezcan
valores no válidos para la fecha.
(NOTA: Al igual que es posible definir dominios
compuestos, existen también atributos compuestos.)
ÍNDICE
1. Conceptos previos.
2. Elementos básicos.
3. Dominios y atributos.
4. Relación.
5. Claves.
6. Restricciones.
7. Transformación de entidad/interrelación a relacional.
RELACIÓN
●
Una relación se define sobre el conjunto de dominios
D1...Dn de sus atributos.
●
Elementos de una relación:
– Nombre: se utiliza para su identificación.
– Cabecera de relación: Conjunto de n pares atributo-
dominio donde n es el grado; se corresponde con la primera
fila cuando la relación se representa como tabla.
– Contexto de la relación: conjunto de atributos sobre
los que se define la relación.
RELACIÓN
– Cuerpo de la relación: Conjunto de m tuplas, siendo cada tupla
un conjunto de n pares atributo-valor.
– Cardinalidad: Número de tuplas m. Mientras que la cabecera
es invariante, el cuerpo varía en el transcurso del tiempo, al igual
que la cardinalidad.
– Esquema de una relación: Constituido por el nombre R -si
existe- y la cabecera. Representa la parte definitoria y estática y
también se denomina intensión.
– Estado r de una relación de esquema R, al que también
denominaremos simplemente relación, se representa como r(R)
y está constituido por el contexto y el cuerpo de la relación:
r(R) = <contexto, cuerpo> siendo el cuerpo el conjunto de tuplas
que, en un instante dado, satisface el correspondiente esquema
de relación. También se llama extensión.
EJEMPLO RELACIÓN
Relación TRABAJADOR
ID_TRABAJADOR NOMBRE TARIFA_HR TIPO_OFICIO ID_SUPV
1235 M. Faraday 12,50 Electricista 1311
1412 C. Nemo 13,75 Fontanero 1520
2920 R. Garret 10,00 Carpintero
3231 P. Mason 17,40 Albañil
1520 H. Rickover 11,75 Fontanero
1311 C. Coulomb 15,50 Electricista
3001 J. Barrister 8,20 Albañil 3231
INTENSIÓN Y EXTENSIÓN DE
UNA RELACIÓN
INTENSIÓN DE UNA RELACIÓN
TRABAJADOR (Id_trabajador: Códigos, Nombre: Nombres, Tarifa_hr: Horas,
Tipo_oficio: Oficios, Id_Supv: Códigos)
EXTENSIÓN DE UNA RELACIÓN
ID_TRABAJADOR NOMBRE TARIFA_H TIPO_OFICIO ID_SUPV
R
1235 M. Faraday 12,50 Electricista 1311
1412 C. Nemo 13,75 Fontanero 1520
2920 R. Garret 10,00 Carpintero
3231 P. Mason 17,40 Albañil
1520 H. Rickover 11,75 Fontanero
1311 C. Coulomb 15,50 Electricista
3001 J. Barrister 8,20 Albañil 3231
ÍNDICE
1. Conceptos previos.
2. Elementos básicos.
3. Dominios y atributos.
4. Relación.
5. Claves.
6. Restricciones.
7. Transformación de entidad/interrelación a relacional.
CLAVES
Clave Candidata (Candidate Key):
●
Conjunto mínimo de atributos que identifican unívocamente cada
tupla de la relación.
●
Siempre existe, al menos, una clave candidata (al ser una relación
un conjunto y no existir dos tuplas iguales, el conjunto de todos los
atributos siempre tiene que identificar unívocamente a cada tupla).
●
Una relación puede tener más de una clave candidata. En
este caso se debe distinguir entre:
– Clave Primaria (Primary Key): Es la clave candidata que el
usuario escoge para identificar las tuplas de la relación. (siempre
existe clave primaria).
– Claves Alternativas (Alternative Key): Las claves candidatas
que no han sido escogidas como clave primaria.
EJEMPLO DE CLAVES
PERSONA (DNI, NOMBRE, NSS, DIRECCION, TELEFONO, FECHA_NAC)
CLAVE PRINCIPAL CLAVE ALTERNATIVA
CLAVES
Claves Ajenas:
●
Una BD relacional es una colección de relaciones (o
tablas en términos de implementación).
●
Entre estas tablas o relaciones existen interrelaciones o
asociaciones, que se establecen a través del concepto de
clave ajena.
●
Se denomina clave ajena de una relación R2 a un
conjunto no vacío de atributos de dicha relación cuyos
valores han de coincidir con los valores de la clave
principal de una relación R1.
●
- R1 y R2 pueden ser la misma relación (en ese caso se
habla de interrelación recursiva).
●
- La clave ajena y la correspondiente clave principal han
de estar definidas sobre el mismo dominio.
EJEMPLO DE CLAVES PRIMARIAS Y
CLAVES AJENAS
EJEMPLO DE INTERRELACIÓN
RECURSIVA
TRABAJADOR (ID_TRABAJADOR, NOMBRE, TARIFA_HR, TIPO_OFICIO, ID_SUPV)
ESQUEMA DE UNA BD RELACIONAL
●
Es un listado que muestra los nombres de las
relaciones, los nombres de los atributos y las claves
ajenas.
MODELO E/R ESQUEMA MODELO RELACIONAL
ÍNDICE
1. Conceptos previos.
2. Elementos básicos.
3. Dominios y atributos.
4. Relación.
5. Claves.
6. Restricciones.
7. Transformación de entidad/interrelación a relacional.
RESTRICCIONES
Las hay de 2 tipos:
●
Restricciones inherentes
●
Restricciones semánticas
RESTRICCIONES INHERENTES
●
Vienen impuestas por el propio MD.
●
Están asociadas a las propiedades intrínsecas de una
relación:
- No puede haber dos tuplas iguales (obligatoriedad de la
clave primaria)
- El orden de las tuplas no es significativo.
- El orden de los atributos no es significativo.
- Cada atributo sólo puede tomar un único valor del
dominio subyacente; no se admiten grupos repetitivos
RESTRICCIONES SEMÁNTICAS
●
Son las facilidades que el modelo ofrece a los usuarios
para que puedan reflejar en el esquema, lo más
fielmente posible, la semántica del mundo real.
●
Los tipos de restricciones semánticas permitidos en el
MR son, entre otros:
– Integridad de clave:
– Integridad Referencial:
RESTRICCIONES SEMÁNTICAS
Integridad de clave:
●
Exige que todos los atributos de la clave primaria
(PRIMARY KEY), así como de las claves alternativas,
han de contener valores no nulos (NOT NULL) y
distintos entre sí (UNIQUE) para diferentes registros.
●
La existencia de clave primaria es otra exigencia del
modelo relacional.
EJEMPLO DE INTEGRIDAD DE
CLAVE
ID_TRABAJADOR NOMBRE TARIFA_HR TIPO_OFICIO ID_SUPV
1235 M. Faraday 12,50 Electricista 1311
1412 C. Nemo 13,75 Fontanero 1520
2920 R. Garret 10,00 Carpintero
3231 P. Mason 17,40 Albañil
1520 H. Rickover 11,75 Fontanero
1311 C. Coulomb 15,50 Electricista
3001 J. Barrister 8,20 Albañil 3231
La clave, Id_trabajador, no puede tener valores repetidos, pues
no permitiría identificar a las distintas tuplas de forma unívoca
RESTRICCIONES SEMÁNTICAS
Integridad referencial:
●
Si una relación R1 tiene un atributo CA que es clave
ajena, es decir, que referencia a la clave primaria CP de
una relación R2, todo valor de CA debe coincidir con
un valor de CP, o ser nulo.
●
Por la antes dicho, CA y CP deben estar definidos sobre
un mismo dominio.
EJEMPLO DE INTEGRIDAD
REFERENCIAL
BORRADO Y MODIFICACIÓN DE CA
●
Si sobre la clave primaria CP, de R1, se lleva a cabo una
operación de modificación o de borrado, que hace que
deje de verificarse lo dicho antes hay 4 opciones para que
la regla vuelva a cumplirse:
– NO ACTION: rechazar la operación.
– CASCADE: propagar la modificación o borrar las tuplas de la
tabla R2 en los que CA tome los mismos valores de CP que han
sido modificados o borrados respectivamente.
– SET NULL: poner valor nulo en los valores de CA que se
correspondan con los valores de CP que han sido borrados.
– SET DEFAULT: poner el valor que se ha definido por defecto
para CA en las tuplas donde CA tomara el mismo valor que se
ha borrado para CP en R1.
EJEMPLO
ÍNDICE
1. Conceptos previos.
2. Elementos básicos.
3. Dominios y atributos.
4. Relación.
5. Claves.
6. Restricciones.
7. Transformación de entidad/interrelación a relacional.
TRANSFORMACIÓN DE
ENTIDAD/INTERRELACIÓN A RELACIONAL
●
R1: Transformación de entidades.
●
R2: Transformación de atributos de entidades
●
R2.1 Atributos identificadores principales.
●
R2.2 Atributos multivaluados.
●
R3: Transformación de interrelaciones.
●
R3.1 Interrelaciones N:M.
●
R3.2 Interrelaciones 1:N.
●
R3.3 Interrelaciones 1:1.
●
R3.4 Interrelaciones de grado > 2.
TRANSFORMACIÓN DE
ENTIDAD/INTERRELACIÓN A RELACIONAL
●
R4: Transformación de dependencias en identificación
y en existencia.
●
R5: Transformación de
generalizaciones/especializaciones.
TRANSFORMACIÓN DE
ENTIDAD/INTERRELACIÓN A RELACIONAL
Transformación de entidades:
●
Cada tipo de entidad se convierte en una tabla (relación)
que se llamará igual que el tipo de entidad.
Transformación de atributos de entidades:
●
Cada atributo de una entidad se transforma en una
columna de la tabla a la que ha dado lugar la entidad.
– Atributos identificadores principales: Los atributos que son
identificadores principales (AIP) pasan a formar la clave
primaria de la tabla.
(NOTA: los atributos compuestos se decomponen en
atributos simples y pasan a depender directamente de la
entidad original, fecha se descompone en dia, mes y año, 3
atributos simples).
TRANSFORMACIÓN DE
ENTIDAD/INTERRELACIÓN A RELACIONAL
Ejemplo de transformación de un tipo de entidad y sus atributos
TRANSFORMACIÓN DE
ENTIDAD/INTERRELACIÓN A RELACIONAL
– Atributos multivaluados:
El modelo relacional no permite dominios multivaluados.
Se creará una nueva tabla cuyos únicos atributos (y clave primaria)
será la concatenación de la clave primaria de la entidad original y el
atributo multivaluado.
La clave primaria de la entidad original será clave ajena en la nueva
tabla y hará referencia a la tabla primera.
TRANSFORMACIÓN DE
ENTIDAD/INTERRELACIÓN A RELACIONAL
Transformación de interrelaciones N:M:
●
Un tipo de interrelación N:M se transforma en una tabla que tendrá
como clave primaria la concatenación de los AIP de los tipos de
entidad que asocia
●
Además, cada uno de los atributos que forman la clave primaria de
esta tabla también son claves ajenas que referencian a las tablas en
que se han convertido las entidades interrelacionadas (claves
primarias).
●
Para cada clave ajena así obtenida deberá estudiarse cuales son los
modos de borrado y modificación adecuados. Las opciones
permitidas son:
– Operación restringida (en caso de no especificar la acción o poner
NO ACTION),
– Puesta a nulo (SET NULL),
– Puesta a valor por defecto (SET DEFAULT)
– Operación en cascada (CASCADE).
TRANSFORMACIÓN DE
ENTIDAD/INTERRELACIÓN A RELACIONAL
Ejemplo de transformación de un tipo de entidad y sus atributos
TRANSFORMACIÓN DE
ENTIDAD/INTERRELACIÓN A RELACIONAL
Transformación de interrelaciones 1:N:
Existen dos soluciones:
●
Propagar los AIP del tipo de entidad que tiene de cardinalidad
máxima 1 a la que tiene N (propagación de clave). Esta es la regla
habitual.
●
Transformar la interrelación en una tabla como si se tratara de una
interrelación N:M; pero ahora la clave primaria de la tabla creada
es sólo la clave primaria de la tabla a la que le corresponde la
cardinalidad n. Esta opción se utiliza cuando:
– La cardinalidad mínima de la entidad, con cardinalidad (0,1),
que propaga su clave es 0.
– Se prevé que la interrelación en un futuro se convertirá en una de
tipo N:M.
– La interrelación tiene atributos propios y no es deseable
propagarlos.
TRANSFORMACIÓN DE
ENTIDAD/INTERRELACIÓN A RELACIONAL
Transformación de interrelaciones 1:N propagando la clave
TRANSFORMACIÓN DE
ENTIDAD/INTERRELACIÓN A RELACIONAL
PERSONA (dni, Nombre)
PERSONA
(1,n)
SINDICATO (id_sindicato, Nombre)
afilia
AFILIA (id_sindicato, dni)
(0,1)
SINDICATO
Transformación de interrelaciones 1:N creando una nueva relación
TRANSFORMACIÓN DE
ENTIDAD/INTERRELACIÓN A RELACIONAL
Transformación de interrelaciones 1:1:
●
Una interrelación de tipo 1:1 es un caso particular de
una 1:N, por lo que se pueden aplicar las dos opciones
ya comentadas:
– Crear una nueva tabla. EJEMPLO
– Propagar la clave, teniendo en cuenta que ahora la
propagación de la clave puede efectuarse en ambos sentidos.
●
Veamos algunos casos especiales:
EJEMPLO
TRANSFORMACIÓN DE
ENTIDAD/INTERRELACIÓN A RELACIONAL
Transformación de interrelaciones 1:1:
●
Si las entidades poseen cardinalidades (0,1), suele ser conveniente
transformar la interrelación 1:1 en una tabla.
TRANSFORMACIÓN DE
ENTIDAD/INTERRELACIÓN A RELACIONAL
Transformación de interrelaciones 1:1:
●
Si las entidades que participan en la interrelación poseen
cardinalidades (0,1) y (1,1), conviene propagar la clave de la
entidad con cardinalidades (1,1) a la tabla resultante de la entidad
con cardinalidades (0,1).
TRANSFORMACIÓN DE
ENTIDAD/INTERRELACIÓN A RELACIONAL
Transformación de interrelaciones de grado > 2:
●
Las interrelaciones ternarias, cuaternarias, etc, se
representan igual que las interrelaciones N:M, es decir,
creando una nueva tabla cuya clave primaria será la
concatenación de las claves primarias de los tipos de
entidades participantes. EJEMPLO
●
En caso de que todas las entidades tengan cardinalidad
Mx N: EJEMPLO
●
En caso de que alguna entidad tenga cardinalidad Mx 1:
TRANSFORMACIÓN DE
ENTIDAD/INTERRELACIÓN A RELACIONAL
Transformación de dependencias en existencia y en
identificación:
●
Se utiliza la propagación de clave, creando una clave
ajena, en la que no se permiten los nulos, en la tabla de la
entidad dependiente.
●
Se establece la obligación de una modificación y un
borrado en cascada.
●
En el caso de dependencia en identificación la clave
primaria de la tabla en la que se ha transformado la
entidad débil debe estar formada por la concatenación de
las claves de las dos entidades participantes en la
interrelación.
TRANSFORMACIÓN DE
ENTIDAD/INTERRELACIÓN A RELACIONAL
Ejemplo de transformación de una dependencia en ID
TRANSFORMACIÓN DE
ENTIDAD/INTERRELACIÓN A RELACIONAL
Transformación de generalizaciones/especializaciones (I):
Existen 3 soluciones:
●
Englobar todos los atributos de la entidad y sus subtipos en una sola
tabla. Se debe adoptar esta solución cuando:
– Los subtipos se diferencian en muy pocos atributos.
– Las interrelaciones que los asocian con el resto de las entidades del
esquema sean las mismas para todos (o casi todos) los subtipos.
TRANSFORMACIÓN DE
ENTIDAD/INTERRELACIÓN A RELACIONAL
Transformación de generalizaciones/especializaciones (I):
TRANSFORMACIÓN DE
ENTIDAD/INTERRELACIÓN A RELACIONAL
Transformación de generalizaciones/especializaciones (II):
●
Crear una tabla para el supertipo y tantas tablas como subtipos
haya, con sus atributos correspondientes. Esta es la solución
adecuada cuando:
– Existen muchos atributos distintos entre los subtipos.
– Se quieren mantener de todas maneras los atributos comunes a
todos ellos en una tabla.
TRANSFORMACIÓN DE
ENTIDAD/INTERRELACIÓN A RELACIONAL
Transformación de generalizaciones/especializaciones (II):
TRANSFORMACIÓN DE
ENTIDAD/INTERRELACIÓN A RELACIONAL
Transformación de generalizaciones/especializaciones (III):
●
Considerar tablas distintas para cada subtipo, que contengan,
además de los atributos propios, los atributos comunes. Se elegirá
esta opción cuando:
– Se dan las mismas condiciones que en el caso anterior (muchos
atributos distintos).
– Los accesos realizados sobre los datos de los distintos subtipos
siempre afectan a atributos comunes.
TRANSFORMACIÓN DE
ENTIDAD/INTERRELACIÓN A RELACIONAL
Transformación de generalizaciones/especializaciones (III):