54
Servicios Web - Introducción Diseño de bases de datos – Modelo relacional y reglas de integridad Bases de Datos Modelo relacional | Reglas de integridad Agosto 2014

Modelo relacional y reglas de integridad

Embed Size (px)

Citation preview

Page 1: 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

Page 2: Modelo relacional y reglas de integridad

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

Page 3: Modelo relacional y reglas de integridad

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

Page 4: Modelo relacional y reglas de integridad

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

Page 5: Modelo relacional y reglas de integridad

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

Page 6: Modelo relacional y reglas de integridad

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

Page 7: Modelo relacional y reglas de integridad

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

Page 8: Modelo relacional y reglas de integridad

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

Page 9: Modelo relacional y reglas de integridad

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

Page 10: Modelo relacional y reglas de integridad

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

Page 11: Modelo relacional y reglas de integridad

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

Page 12: Modelo relacional y reglas de integridad

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

Page 13: Modelo relacional y reglas de integridad

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

Page 14: Modelo relacional y reglas de integridad

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

Page 15: Modelo relacional y reglas de integridad

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

• DESPACHOS(edificio, número, superficie)

15

Page 16: Modelo relacional y reglas de integridad

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

• DESPACHOS(edificio, número, superficie)

16

Page 17: Modelo relacional y reglas de integridad

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

Page 18: Modelo relacional y reglas de integridad

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

Page 19: Modelo relacional y reglas de integridad

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

Page 20: Modelo relacional y reglas de integridad

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

20

Page 21: Modelo relacional y reglas de integridad

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

Page 22: Modelo relacional y reglas de integridad

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

Page 23: Modelo relacional y reglas de integridad

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

Page 24: Modelo relacional y reglas de integridad

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

Page 25: Modelo relacional y reglas de integridad

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

Page 26: Modelo relacional y reglas de integridad

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

Page 27: Modelo relacional y reglas de integridad

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

Page 28: Modelo relacional y reglas de integridad

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

Page 29: Modelo relacional y reglas de integridad

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

Page 30: Modelo relacional y reglas de integridad

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

Page 31: Modelo relacional y reglas de integridad

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

Page 32: Modelo relacional y reglas de integridad

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

Page 33: Modelo relacional y reglas de integridad

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

• Caso de borrado: EDIFICIOS <Diagonal, …>

33

Page 34: Modelo relacional y reglas de integridad

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

• Caso de borrado: EDIFICIOS <Diagonal, …>

34

Page 35: Modelo relacional y reglas de integridad

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

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

35

Page 36: Modelo relacional y reglas de integridad

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

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

36

Page 37: Modelo relacional y reglas de integridad

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

Page 38: Modelo relacional y reglas de integridad

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

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

38

Page 39: Modelo relacional y reglas de integridad

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

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

39

Page 40: Modelo relacional y reglas de integridad

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

Page 41: Modelo relacional y reglas de integridad

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

Page 42: Modelo relacional y reglas de integridad

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

Page 43: Modelo relacional y reglas de integridad

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

• Relación muchos a muchos:

43

2

Page 44: Modelo relacional y reglas de integridad

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

• Relaciones n-arias:

44

2

Page 45: Modelo relacional y reglas de integridad

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

Page 46: Modelo relacional y reglas de integridad

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

46

Page 47: Modelo relacional y reglas de integridad

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

Page 48: Modelo relacional y reglas de integridad

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

Page 49: Modelo relacional y reglas de integridad

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

Page 50: Modelo relacional y reglas de integridad

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

Page 51: Modelo relacional y reglas de integridad

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

Page 52: Modelo relacional y reglas de integridad

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

Page 53: Modelo relacional y reglas de integridad

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

Page 54: Modelo relacional y reglas de integridad

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