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 Noviatiene
1 1
Empleado Cargo_Politicotiene
1 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

Modelo relacional y reglas de integridad

  • 1.
    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
  • 2.
    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
  • 3.
    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
  • 4.
    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
  • 5.
    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
  • 6.
    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
  • 7.
    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
  • 8.
    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
  • 9.
    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
  • 10.
    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
  • 11.
    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
  • 12.
    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
  • 13.
    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
  • 14.
    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
  • 15.
    Servicios Web -IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad • DESPACHOS(edificio, número, superficie) 15
  • 16.
    Servicios Web -IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad • DESPACHOS(edificio, número, superficie) 16
  • 17.
    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
  • 18.
    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
  • 19.
    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
  • 20.
    Servicios Web -IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad 20
  • 21.
    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
  • 22.
    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
  • 23.
    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
  • 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. 24
  • 25.
    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
  • 26.
    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
  • 27.
    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
  • 28.
    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
  • 29.
    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
  • 30.
    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
  • 31.
    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
  • 32.
    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
  • 33.
    Servicios Web -IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad • Caso de borrado: EDIFICIOS <Diagonal, …> 33
  • 34.
    Servicios Web -IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad • Caso de borrado: EDIFICIOS <Diagonal, …> 34
  • 35.
    Servicios Web -IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad • Caso de modificación: EDIFICIOS <Marina, …> por <Mar,…> 35
  • 36.
    Servicios Web -IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad • Caso de modificación: EDIFICIOS <Marina, …> por <Mar,…> 36
  • 37.
    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
  • 38.
    Servicios Web -IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad • Anulación en caso de borrado. VENDEDORES <1,…> 38
  • 39.
    Servicios Web -IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad • Anulación en caso de borrado. VENDEDORES <1,…> 39
  • 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,…> 40
  • 41.
    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
  • 42.
    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
  • 43.
    Servicios Web -IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad • Relación muchos a muchos: 43 2
  • 44.
    Servicios Web -IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad • Relaciones n-arias: 44 2
  • 45.
    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
  • 46.
    Servicios Web -IntroducciónDiseño de bases de datos – Modelo relacional y reglas de integridad 46
  • 47.
    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
  • 48.
    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 Noviatiene 1 1 Empleado Cargo_Politicotiene 1 1
  • 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. 49
  • 50.
    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
  • 51.
    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
  • 52.
    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
  • 53.
    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
  • 54.
    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

Notas del editor

  • #10 {DNI, NSS, nombre, apellido, teléfono}, {DNI, apellido}, {DNI} {NSS}
  • #11 {DNI, NSS, nombre, apellido, teléfono}, {DNI, apellido}, {DNI} {NSS}
  • #15 Conjunto de entidades débil. Conjunto de atributos que no es suficiente para formar una llave primaria. Conjunto de entidades fuerte. Caso contrario de la débil.