Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo...

22
1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado a registro. Usa una colección de tablas para representar tanto los datos como sus relaciones Sólida base teórica. Implementado en muchos SGBD. 2 Modelo relacional El concepto principal es la tabla o relación Cada tabla o relación es un conjunto de tuplas donde cada una de ellas corresponde a una fila de la tabla Cada tupla corresponde a la descripción, en el diagrama ER, de una entidad particular o a la descripción de una relación particular entre varias entidades particulares. No hay que confundir las tablas con las relaciones del modelo Entidad Relación. Las tablas (o relaciones) valen para tipos de relaciones igual que para tipos de entidades.

Transcript of Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo...

Page 1: Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado

1

Modelo relacional

Creado por Ted Codd a Principios de los 70

Modelo de implementación, orientado a registro.

Usa una colección de tablas para representar tanto los datos como sus relaciones

Sólida base teórica.

Implementado en muchos SGBD.

2

Modelo relacional

El concepto principal es la tabla o relaciónCada tabla o relación es un conjunto de tuplas donde cada una deellas corresponde a una fila de la tabla

Cada tupla corresponde a la descripción, en el diagrama ER, de una entidad particular o a la descripción de una relación particular entre varias entidades particulares.

No hay que confundir las tablas con las relaciones del modelo Entidad Relación.

Las tablas (o relaciones) valen para tipos de relaciones igual que para tipos de entidades.

Page 2: Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado

3

Terminología del modelo relacional

EntidadIgual que en el esquema ER.Las entidades particulares se representan como tuplas o filas de la tabla.

AtributoIgual que en el esquema ER.Se representan como las columnas de la tabla.

Los valores de los atributos de las tuplas deben ser atómicos.No puede haber atributos compuestos

O se representan sus componentes individuales como atributosO se junta toda la información en un único atributo

Ej: secretaría => domicilio como atributo simple con toda la información

No puede haber atributos multivalorVeremos como convertirlos en atributos monovalor

4

Terminología del modelo relacional

Esquema de una tabla o relaciónviene dado por el nombre de la tabla y una lista de atributos.

Alumnos (DNI, ApellidosYNombre, domicilio, teléfono, acceso)

El orden de los atributos en la lista no importa.

Lo fijamos porque nos viene bien para representarlo como tabla, pero cualquier permutación es válida.

Instancia de una tabla => Conjuntos de entidades particulares.

Cada entidad particular se representa como una tupla.

Cada componente de la tupla corresponde con el valor del atributo correspondiente, según el orden enunciado en el esquema de la tabla.

Page 3: Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado

5

Ejemplo secretaría

Ejemplo: Instancia de la tabla Alumnos:{ (01234567Z, Vázquez Prieto Manuel, Calle del Jazmín 7 4 Izq, 91-12345678, normal), ....}

normal9112345678Calle del Jazmín 7 4 Izq

Vázquez Prieto Manuel01234567Z

accesoteléfonodomicilioApellidosYNombreDNI

6

Terminología del modelo relacional

Un tabla no puede contener tuplas repetidasExiste un conjunto de atributos que determina unívocamente a cada tupla

Los conceptos de superclave, clave candidata y clave primaria explicados en el modelo ER son válidos para el modelo relacional

Cada tabla debe tener una clave primariaLos atributos que forman la clave primaria nunca pueden tomar valores nulos

Page 4: Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado

7

Paso del modelo ER al modelo relacional

Se puede transformar un diagrama ER (diseño conceptual) en un modelo relacional (diseño lógico) mediante una serie de transformaciones

Tipos de entidades

Atributos multivalor

Tipos de relacionesRestricciones de cardinalidad

Entidades débiles

Generalizaciones

Agregaciones

8

Tipos de entidades

Para cada tipo de entidad que no sea débil se crea una tabla con el mismo nombre y conjunto de atributos.

La clave primaria es la del diagrama ERatributo subrayado

En este punto no se indica nada acerca de los tipos de relaciones en los que participa el tipo de entidades.

Page 5: Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado

9

Ejemplo secretaría

En el caso de la BD de secretaría los tipos de entidades dan lugar a las tablas:

Alumnos(DNI, ApellidosYNombre, domicilio, teléfono, acceso)Suponiendo teléfono atributo monovalor

Asignaturas(Código, título, núm créditos)

Profesores(DNI, ApellidosYNombre, domicilio, teléfono)

Aulas(Edificio, núm. aula)

10

Ejemplo secretaría

Ejemplo: Instancia de la tabla Alumnos{ (01234567Z, Vázquez Prieto Manuel , Calle del Jazmín 7 4 Izq, 91-12345678, normal), ....}

normal911234567Calle del Jazmín 7 4 Izq

Vázquez Prieto Manuel

01234567Z

accesoteléfonodomicilioApellidosYNombreDNI

Page 6: Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado

11

Ejemplo secretaría

Ejemplo: Instancia de la tabla Asignaturas:{ (520, FBD, 12), ....}

12FBD520

num. créditostítuloCódigo

12

Atributos multivalor

Se crea una tabla nueva para el atributo multivalor que incluirá como atributos

la clave primaria de la entidadSerá una clave externa que apuntará a la clave primaria de la entidad

un atributo monovalor para representar valores individuales del atributo multivalor

La clave primaria de la tabla será la conjunción de la clave externa y el atributo monovalor.

EMPLEADOS (DNI, …..)

TELEFONOS (DNI, TELEF.)

Page 7: Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado

13

Tipos de relaciones

Para cada tipo de relación R se crea una tabla con los siguientes atributos

Los atributos de la propia relación.Los atributos que corresponden a las claves primarias de las entidades que participan en la relación

A estos atributos se les denomina claves externas, porque apuntan a claves primarias de otras tablas

Las claves externas no tiene porque ser claves primariasLos valores de las claves externas o bien aparecen en alguna tupla de otra tabla asociada a ésta, o bien son nulos.

La unión de todas las claves externas constituye una superclave de la tabla

La clave primaria depende de las restricciones de cardinalidad

En ocasiones hay que renombrar atributos para evitar tener varios con el mismo nombre.

Ej: relaciones recursivasUsar roles

14

Ejemplo secretaría

Ej: En el caso de la BD de secretaría los tipos de relación dan lugar a las tablas:

Matrícula(DNI, código, nota)

Supervisa(DNISupervisor, DNISupervisado)

Imparte(DNI, código, edificio, num. aula)

ALUMNOS (DNI, …..)

MATRICULA (DNI, Código, Nota)

ASIGNATURAS (Código, …..)

Page 8: Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado

15

Ejemplo secretaría

Ejemplo: Instancia de la tabla Matricula:{ (01234567Z, 520, 8), ....}

852001234567Z

notacódigoDNI

16

Restricciones de cardinalidad

Sea R relación binaria entre E1 y E2. Clave primaria de E1

Conjunto de atributos c1

Clave primaria de E2Conjunto de atributos c2

T tabla construida a partir de RAtributos de T: c1 + c2 + Atributos de R

Page 9: Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado

17

Restricciones de cardinalidad

Una a una

Dos superclaves para Tc1 y c2

Puede escogerse cualquiera como clave primaria

E1 E2R

18

Restricciones de cardinalidad

Una a varias

Superclave para Tc2

Clave primaria

E1 E2R

Page 10: Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado

19

Restricciones de cardinalidad

Varias a varias

Superclave para Tc1 ∪ c2

Clave primaria

E1 E2R

20

Relaciones ternarias

Supongamos que la tabla proviene de un tipo de relación R entre tres tipos de entidad E1, E2, E3

Claves primarias c1, c2, c3

Si todas la entidades participan con cardinalidad varios en R, entonces una superclave es la unión de las claves primarias de E1, E2, E3.

c1 ∪ c2 ∪ c3Clave primaria

Si algún tipo de entidad participa con cardinalidad una en R, entonces su clave primaria se puede eliminar de la superclave.

Page 11: Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado

21

BD secretaría

Alumnos(DNI, Apellidos y Nombre, Domicilio, teléfono, COU)

Asignaturas(Código, título, núm.créditos)

Profesores(DNI, Apellidos y nombre, Domicilio, teléfono)

Aulas(Edificio, núm. aula)

Matricula(DNI, Código, Nota)

Supervisa(DNISupervisor,DNISupervisado)

Imparte(DNI, Codigo, Edificio,NumAula)

22

Tipos de entidades débiles

Una entidad débil se transforma en una tabla que incluye como atributos

Los atributos que corresponden a las claves primarias de las entidades que identifican a la entidad débil

Claves externas

Los atributos de la propia entidad débilClave parcial

La clave primaria de la tabla se forma con las claves primarias de las entidades de las que depende (claves externas) más la clave parcial

EMPLEADOS (DNI, …..)

HIJOS (DNI, NOM_HIJO, F_NAC)

Page 12: Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado

23

Ejemplo

Traspasar el siguiente diagrama entidad-relación a modelo relacional:

CD’s

títuloCD intérprete

Núm.serie

en

Autor

compositores DNI

canciones

título duración

NombreyApe

24

Solución

compositores(DNI, NombreYApe)

CDs(Num.Serie, títuloCD, intérprete)

canciones(titulo, duración, Núm.Serie)

autor(DNI, titulo, duración, Núm.Serie)

Page 13: Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado

25

Generalizaciones

Se tratan igual que en el caso de las entidades débiles.

La relación IsA no se transforma en relación

alumnos profesores

personas

is a

Apellidos y Nombre Domicilio TeléfonoDNI

acceso

26

Ejemplo secretaría

personas(DNI, ApellidosyNombre, Domicilio, teléfono).

alumnos(DNI, acceso)

profesores(DNI)

alumnos profesores

personas

is a

Apellidos y Nombre Domicilio Teléfono DNI

acceso

Page 14: Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado

27

Agregaciones

La tablas asociadas a las entidades o relaciones dentro o fuera de la agregación se construyen de la manera habitual

La tabla asociada a la relación que asocia la agregación a otra entidad se construye de la siguiente manera

Tiene como atributos ala clave primaria de la entidad

la clave primaria de la relación de la agregación con la que se asocia

sus propios atributos si los tuviera

La clave primaria se construye de la forma habitual según el tipo de restricción de cardinalidad

28

Ejemplo

Equipos (nombre, …..)

Juega (casa, fuera, resultado)

Empresas (nombre, …)

Arbitro (DNI, …)

Anuncia (casa, fuera, nombre)

Arbitra (casa, fuera, DNI)

Equipos

Árbitros

Resultado

Fuera de casa

Juega

Casa

Arbitra

Partidos

Empresas

Anuncia

Page 15: Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado

29

Cuestiones de diseño

A veces se pueden combinar 2 o más tablas en una solaRelación binaria con restricciones uno a uno

Relación binaria con restricciones varios a uno

Generalizaciones

30

Cuestiones de diseño

Relación binaria con restricciones uno a unoElegir una de las entidades e incluir en su esquema de tabla

como clave externa a la clave primaria del otro esquema

más los atributos de la propia entidad.

mantener las claves primarias

si alguna participación es parcial pueden aparecer valores nulosclave externa en entidad con participación total

Combinar los esquemas de tabla correspondientes a las dos entidades en un solo esquema.

con los atributos de las dos entidades

como clave primaria una de las claves primarias iniciales

es apropiado cuando las dos participaciones son totales

Page 16: Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado

31

Cuestiones de diseño

Ejemplo 1: participación total de una entidad y parcial de la otra

Utilizando la transformación habitual en restricciones uno a unoquedaría el siguiente esquema de base de datos:

EMPLEADOS (DNI, …..) DEPTOS(COD, …)

DIRIGE (DNI, COD)

En este ejemplo la tabla de empleados almacena datos sobre muchos de ellos que no dirigen departamentos (la participación en la relación es parcial)

32

Cuestiones de diseño

Si incluimos en la tabla EMPLEADOS una clave externa a la clave primaria de DEPTOS podemos eliminar la tabla DIRIGE

Si incluimos en la tabla EMPLEADOS una clave externa a la clave primaria de DEPTOS podemos eliminar la tabla DIRIGE

Está última es la más eficiente debido a la participación total de DEPTOS

No hay valores nulos

EMPLEADOS (DNI, …..COD)

DEPTOS(COD, …)

DEPTOS (COD, …., DNI)

EMPLEADOS (DNI, …)

Page 17: Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado

33

Cuestiones de diseño

Ejemplo 2: participación total de las dos entidades

Utilizando la transformación habitual en restricciones uno a uno quedaría el siguiente esquema de base de datos:

Examinando detenidamente la semántica del esquema se aprecia que las dos entidades participan totalmente de la relación, por lo que es posible almacenar la misma información sin utilizar la tabla DIRIGE

DIRECTORES (DNI, …..) DEPTOS(COD, …)

DIRIGE (DNI, COD)

34

Cuestiones de diseño

Si incluimos en la tabla DIRECTORES una clave externa a la claveprimaria de DEPTOS podemos eliminar la tabla DIRIGE

DIRECTORES (DNI, …..COD)

DEPTOS(COD, …)

Con esta alternativa duplicamos menos informacióntambién colocando DNI como clave externa en DEPTOS

Pero podemos dejarlo en una sola tabla si combinamos los esquemas de ambas tablas

DIRIGE (DNI, …..COD, ….)

Page 18: Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado

35

Cuestiones de diseño

Relación binaria con restricciones varios a unoIncluir en el esquema de tabla de la entidad con restricción varios

como clave externa a la clave primaria del otro esquema

más los atributos de la propia entidad.

mantener las claves primarias

si la participación de la parte varios es parcial pueden aparecer valores nulos

36

Cuestiones de diseño

EsquemaPersonas(DNI, Apell.)Países(Nombre)Nacida(DNI, Nombre)

Nuevo Esquema:Personas(DNI,Apell, PaisNac)Países(Nombre)

Personas Países Nacida Apell.

DNI

Nombre

Page 19: Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado

37

Cuestiones de diseño

Ejemplo 3: BD SecretaríaLa relación Supervisa puede fusionarse en una única tabla.

EsquemaProfesores(DNI, Apellidos y nombre, Domicilio, teléfono)

Supervisa(DNISupervisor,DNISupervisado)

Nuevo EsquemaProfesores(DNI, Apellidos y nombre, Domicilio, teléfono, DNISupervisor)

38

Cuestiones de diseño

GeneralizaciónSe puede reducir a una sola tabla poniendo un campo discriminante y poniendo los atributos de todas las alternativas

Ejemplo secretaría

Esquemapersonas(DNI, ApellidosyNombre, domicilio, teléfono).alumnos(DNI, acceso)profesores(DNI)

Esquema modificadopersonas(DNI, ApellidosyNombre, domicilio, teléfono, AlumnOProfe, acceso)

Page 20: Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado

39

Cuestiones de diseño

Generalización 2Se puede utilizar una tabla por entidad concreta repitiendo en cada tabla los atributos comunes.

Ejemplo secretaría

Esquemapersonas(DNI, ApellidosyNombre, domicilio, teléfono).

alumnos(DNI, acceso)

profesores(DNI)

Esquema modificadoalumnos(DNI, ApellidosyNombre, domicilio, teléfono, acceso)

profesores(DNI, ApellidosyNombre, domicilio, teléfono)

40

Resumen de transformaciones

E1(AE11, AE12) E2(AE21, AE22)R(AE11, AE21, AR)

E1(AE11, AE12) E2(AE21, AE22)E3(AE31, AE32)R(AE11, AE21, AE31, AR) Si E3 tuviera cardinalidad 1R(AE11, AE21, AE31, AR)

N N

N NN

E1(AE11, AE21, AE12, AR) E2(AE21, AE22)N 1

Page 21: Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado

41

Resumen de Transformaciones (cont.)

E1(AE11, AE12) E2(AE21, AE22)R(AE11, AE21, AR) ó

E2(AE21, AE22) E1(AE11, AE12, AE21*, AR*)

*Los atributos pueden ser nulos

N 1

E1(AE11, AE21, AE12, AR) E2(AE21, AE22) ó

E1(AE11, AE12) E2(AE21, AE11, AE22, AR) ó

E1(AE11, AE12, AE21, AE22, AR)

1 1

E2(AE21, AE22)E1(AE11, AE12, AE21, AR)N 1

42

Resumen de Transformaciones (cont.)

E1(AE11, AE21, AE12, AR) E2(AE21, AE22)

E1(AE11, AE21*, AE12, AR*) E2(AE21, AE22) ó

E1(AE11, AE12) E2(AE21, AE11*, AE22, AR*)ó

E1(AE11, AE12) E2(AE21, AE22)R(AE11, AE21, AR)

*Los atributos pueden ser nulos

1 1

1 1

Page 22: Tema 2.2 Modelo relacional v14profayadira.yolasite.com/resources/Tema 2.2 Modelo...1 Modelo relacional Creado por Ted Codd a Principios de los 70 Modelo de implementación, orientado

43

Ejemplo

Se necesita una base de datos para una empresa, cuyos requisitos son los siguientes:

La compañía está dividida en departamentos. Cada uno de los departamentos tiene un nombre único, un número único y un cierto empleado que lo dirige, interesando además almacenar la fecha en la que el empleado comenzó a dirigir el departamento. Un departamento puede estar distribuido en varios lugares (puede tener distintas direcciones).Cada departamento controla un cierto número de proyectos, cada uno de los cuales tiene un nombre y un número únicos.Para cada empleado se almacenará el nombre y apellidos, DNI, dirección, salario, sexo y fecha de nacimiento. Todo empleado está asignado a un departamento, y podrá trabajar en varios proyectos que no necesariamente deberán ser controlados por el mismo departamento. Interesa almacenar el número de horas por semana que un empleado trabaja en cada proyecto, y también quién es el supervisor de cada empleado.Se quieren tener datos también de la familia (mujer e hijos) de cada empleado para cuestiones del seguro social. Estos datos serán el nombre, el sexo, la fecha de nacimiento y su parentesco con el empleado.

44

Cardinalidad versus Participación

Cardinalidad de una relaciónLa cardinalidad de una relación es el número de entidades particulares que están relacionadas con una entidad particular de otro conjunto de entidades.

Participación de una entidad en una relaciónSe dice que una entidad E tiene participación total en una relación r si cada entidad particular e ∈ E se encuentra en alguna tupla de ren otro caso se dice que la participación es parcial.

Una restricción de participación (min, max) de un tipo de entidades E en un tipo de relación R indica que en todas las instancias válidas de la BD se verifica que para cada entidad particular de E aparecen entre min y max tuplas en la relación.

Participación total => min = 1Participación parcial => min = 0