Modelo relacional y reglas de integridad

Post on 26-Jul-2015

1.253 views 1 download

Transcript of Modelo relacional y reglas de integridad

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

Bases de Datos

Modelo relacional | Reglas de integridad

Agosto 2014

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

Modelo relacional

• Una base de datos relacional consiste en un conjunto de tablas (relaciones).

• A cada tabla se le asigna un nombre exclusivo.

• Cada fila de una tabla representa una relación entre un conjunto de valores (tupla).

• Un atributo es el nombre de una columna.

2

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Una tabla (relación) se compone del esquema y la extensión.– Esquema: Consiste de un nombre de relación R y un conjunto de

atributos {a1, a2, …, an}

3

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• El grado de una tabla es el número de atributos que tiene.

• La cardinalidad de una tabla es el número de tuplas que tiene.

4

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• El dominio de un atributo es el conjunto de valores legales que puede poseer.– Dominio(Ai) = dominio (Ai)– En el esquema de la relación EMPLEADOS,

dominio(DNI) = númerosDNI.

• Puede haber atributos diferentes con un mismo dominio.– PERSONAS(DNI, nombre, apellido, telcasa, teltrabajo)– dominio(telcasa)= teléfono– dominio(teltrabajo) = teléfono.

5

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Extensión de la relación de esquema R(A1, A2,..., An)– es un conjunto de tuplas ti(i = 1, 2,..., m),

– cada tupla ti es un conjunto de pares ti= {<A1:vi1>, <A2:vi2> ... <An:vin>}

– para cada par <Aj:vij>, se cumple que vij:• es un valor de dominio(Aj), • o un valor especial nulo.

6

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• No ordenación de los atributos. – Pueden aparecer en cualquier orden.

• Los siguientes esquemas de relación, ¿son iguales?– EMPLEADOS(DNI, nombre, apellido, sueldo)– EMPLEADOS(nombre, apellido, DNI, sueldo)

7

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

Propiedades de las relaciones

• Cada tabla (relación) tiene un nombre y es distinto de todas las demás.

• No hay dos atributos que se llamen igual (en una misma tabla).

• El orden de los atributos no altera.

• Cada tupla debe ser diferente de las demás.

• El orden de las tuplas no importa.

8

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

Llaves: Superllaves

• Superllave (superkey).– Conjunto de uno o más atributos, que de manera conjunta permiten

identificar una entidad de entre las demás.

– Subconjunto de atributos tal que no puede haber dos tuplas que tengan la misma combinación de valores para los atributos de dicho subconjunto.

– EMPLEADOS(DNI, NSS, nombre, apellido, teléfono)• ¿Posibles superclaves?

9

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Superllave (superkey).– Conjunto de uno o más atributos, que de manera conjunta permiten

identificar una entidad de entre las demás.

– Subconjunto de atributos tal que no puede haber dos tuplas que tengan la misma combinación de valores para los atributos de dicho subconjunto.

– EMPLEADOS(DNI, NSS, nombre, apellido, teléfono)– {DNI, NSS, nombre, apellido, teléfono}, – {DNI, apellido}, – {DNI} – {NSS}

10

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

Llaves: Llave candidata

• Llave candidata. – Superllave mínima.– Cumple que ningún subconjunto propio es superllave.– Un atributo y una superllave no forman una llave candidata.

– EMPLEADOS(DNI, NSS, nombre, apellido, teléfono)– {DNI, NSS, nombre, apellido, teléfono}, – {DNI, apellido}, – {DNI} – {NSS}

11

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Llave candidata. – Superllave mínima.– Cumple que ningún subconjunto propio es superllave.– Un atributo y una superllave no forman una llave candidata.

– EMPLEADOS(DNI, NSS, nombre, apellido, teléfono)– {DNI} – {NSS}

12

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

Llaves: llave primaria

• Llave primaria. – Denota una llave candidata que es elegida por el diseñador de la BD

como el medio principal para identificar entidades.– Las llaves candidatas no elegidas como primaria se denominan llaves

alternativas.– R(A1, A2, ..., Ai, ..., An)

– EMPLEADOS(DNI, NSS, nombre, apellido, teléfono)

13

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Llave primaria. – Denota una llave candidata que es elegida por el diseñador de la BD

como el medio principal para identificar entidades.– Las llaves candidatas no elegidas como primaria se denominan llaves

alternativas.– R(A1, A2, ..., Ai, ..., An)

– EMPLEADOS(DNI, NSS, nombre, apellido, teléfono)– EMPLEADOS(DNI, NSS, nombre, apellido, teléfono)

14

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• DESPACHOS(edificio, número, superficie)

15

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• DESPACHOS(edificio, número, superficie)

16

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

Llaves: Llave foránea

• Llave foránea.– Llaves que conectan tuplas entre tablas.– Tiene el conjunto de atributos de una tabla que referencian la clave

primaria de otra (o la misma) tabla.

17

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Valores de la llave foránea:– deben estar presentes en la clave primaria correspondiente.– o bien deben ser valores nulos.

– < 42.240.103, Jorge, López, NULO, Diagonal, 102 >– <55.555.555, María, Casagran, NULO, París, 400>– <13.333.981, Pedro, Contreras, 33.567.710, Marina, 122>

18

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Propietario(num_P, nombre, direccion, tel)

Inmueble(clave_I, tipo, alquiler, num_P)

• Propietario Inmueble

19

Atributo Dominio Descripción Definición num_P numero_propietario Clave numérica de propietario 3 dígitos nombre nombre_propietario Nombre de propietario 30 caracteres tel num_tel Número de teléfono de propietario 9 dígitos

Num_P

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

20

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

Integridad

• Propiedad de los datos de corresponder a representaciones plausibles del mundo real.

• EMPLEADOS(DNI, nombre, apellido, sueldo)• ¿Una tupla con sueldo = -1000?

21

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

Reglas de integridad

• Restricción de dominio.• Reglas de negocios.• Regla de integridad de unicidad de la clave primaria.• Regla de integridad de entidad de la clave primaria.• Regla de integridad referencial.

22

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Restricción de dominio. – A cada atributo se le impone un dominio (conjunto de valores

permitidos).– Un valor no nulo de un atributo debe pertenecer al dominio de ese

atributo.

• Reglas de negocios.– Los usuarios o los administradores de la BD pueden imponer ciertas

restricciones específicas sobre los datos.

23

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Regla de integridad de unicidad de la clave primaria.– Toda llave primaria no debe tener valores repetidos.

24

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Regla de integridad de unicidad de la clave primaria.– Toda llave primaria no debe tener valores repetidos.

– ¿Insertar? <Diagonal, 120, 30>– ¿Modificar? <Marina, 122, 15> por <Marina, 120, 15>

25

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Regla de integridad de entidad de la clave primaria.– Ninguno de los atributos que componen la llave primaria puede

ser nulo.

– Si <NULO, 120, 30>• ¿Se trata del edificio Marina, Diagonal, otro o no se sabe?

26

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Regla de integridad referencial.– Se aplica a las claves externas (foráneas).– Sus valores deben coincidir con los valores de la llave primaria a

la que hacen referencia o ser nulos.

– Agregar <56.666.789, Pedro, López, Valencia, 325> ¿?

27

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Inserción de <12.764.411, Jorge, Puig, Diagonal, 220> en EMPLEADOS.

• Modificación de <40.444.255, Juan, García, Marina, 120> de EMPLEADOS por <40.444.255, Juan, García, Marina, 400>.

• Borrado de <Marina, 120, 10> de DESPACHOS.

• Modificación de <Diagonal, 120, 10> de DESPACHOS por <París, 120, 10>

28

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Políticas para evitar violar reglas de integridad referencial:

– Restricción.

– Actualización en cascada.

– Anulación.

29

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Restricción. – No aceptar la operación de actualización.

– Caso de borrado. No borrar una tupla si tiene una clave primaria referenciada por alguna clave foránea.

– Caso de modificación. No modificar ningún atributo de la clave primaria de una tupla si está referenciada por alguna clave foránea.

30

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• ¿Borrar? Cliente numcliente=10• ¿Borrar? Cliente numcliente=18• ¿Modificar? Cliente numcliente=15

31

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Actualización en cascada. – Al actualizar una tupla, se efectúen operaciones compensatorias que

actualicen a otras tuplas que sean referenciadas por la modificada.

– Caso de borrado. Permite borrar un tupla t cuya llave primaria es referenciada, borrando las demás tuplas que la usen como llave foránea.

– Caso de modificación. Permite la modificación de atributos de la llave primaria de una tupla t modificando las demás tuplas que hagan referencia a t.

32

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Caso de borrado: EDIFICIOS <Diagonal, …>

33

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Caso de borrado: EDIFICIOS <Diagonal, …>

34

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Caso de modificación: EDIFICIOS <Marina, …> por <Mar,…>

35

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Caso de modificación: EDIFICIOS <Marina, …> por <Mar,…>

36

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Anulación. – Permite la actualización de una tupla, haciendo operaciones

compensatorias que pongan en nulo a los atributos de la clave foránea de las tuplas referenciadas.

– Sólo aplica si los atributos de la clave foránea admiten valores nulos.

– En caso de borrado o modificación: Permite el borrado/modificación de una tupla t que tiene una clave referenciada y modifica las tuplas que le hacen referencia (los atributos de la clave foránea toman valor nulo).

37

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Anulación en caso de borrado. VENDEDORES <1,…>

38

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Anulación en caso de borrado. VENDEDORES <1,…>

39

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Anulación en caso de modificación. VENDEDORES <2,…> por <5,…>

40

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Anulación en caso de modificación. VENDEDORES <2,…> por <5,…>

41

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

Paso de ER al modelo relacional

• Las entidades pasan a ser tablas.• Los atributos pasan a ser columnas.• Identificares a claves primarias.

42

3

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Relación muchos a muchos:

43

2

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Relaciones n-arias:

44

2

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Relación uno a varios:– Relación binaria no requiere transformarse en una tabla.– La tabla del lado «muchos» (n) incluye:

• La llave foránea de la otra tabla.• Atributos de la relación.

45

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

46

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Jugador(clave, nombre, id_equipo)• Equipo(id, nombre)

• *Nota*: SOLO si el número mínimo de la relación es 0, se deben permitir nulos en la llave foránea.

47

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Relación uno a uno:– La relación no se convierte en tabla. – El identificador de una se indica como clave externa en la otra.

– Si una entidad participa opcionalmente en la relación, su identificador es el que se usara como llave externa en la otra tabla.

48

Novio Noviatiene1 1

Empleado Cargo_Politicotiene1 1

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Relación recursiva:– Igual que en los casos anteriores, pero:– Un mismo atributo puede aparecer dos veces.

49

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Relación recursiva:– Igual que en los casos anteriores, pero:– Un mismo atributo puede aparecer dos veces.

50

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

• Generalización y especificación:– Las subentidades se vuelven tablas.– Si la clave de la superentidad es distinta a la de las subentidades, su

identificador se usa como llave externa en las subentidades.

51

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

– Si la clave es la misma, las entidades tendrán la misma clave como atributo identificador.

52

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

– La superentidad se convierte en una tabla sólo si existe la posibilidad de que haya ejemplares en ella que no sean ejemplares de las subentidades.

– Si no, basta con convertir en tablas las subentidades (heredando los atributos de la superior).

53

Servicios Web - IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad

Referencias bibliográficas• Date C., An introduction to database system, Addison Wesley.• Sánchez J., Principios sobre Bases de Datos Relacionales, Licencia Creative

Commons, 2004. Disponible en • http://www.jorgesanchez.net/bd/. Última visita agosto 2014.• Costal Costa D., El modelo relacional y el álgebra relacional, UOC, GNU

Free Document License, 2007.• Marqués Mercedes, Bases de datos, Universitat Jaume I, ISBN: 978-84-

693-0146-3, Licencia Creative Commons, 2011.

54