el modelo relacional - grupo de investigacióndbd_lade]b3.elmodelorelacional.pdf · las relaciones...
TRANSCRIPT
EL MODELO RELACIONAL
Tema 7. El Modelo Relacional: Estática
Tema 8. El Modelo Relacional: Dinámica y Álgebra
Relacional
© 2008 Grupo Kybele3
1. Presentación y Objetivos
2. Estructura del MR
2.1. Elementos del MR
2.2. Definición Formal de Relación
2.3. Claves
2.4. Restricciones
3. El MR y la Arquitectura ANSI
4. Los Valores Nulos y la Lógica Trivaluada
5. Las 12 Reglas de Codd
6. Bibliografía
Índice
© 2008 Grupo Kybele4
1. Presentación y Objetivos
2. Estructura del MR
2.1. Elementos del MR
2.2. Definición Formal de Relación
2.3. Claves
2.4. Restricciones
3. El MR y la Arquitectura ANSI
4. Los Valores Nulos y la Lógica Trivaluada
5. Las 12 Reglas de Codd
6. Bibliografía
Índice
© 2008 Grupo Kybele5
Objetivos del Modelo Relacional
A finales de los años sesenta E. F. Codd introdujo la teoría matemática de
las relaciones en el campo de las Bases de Datos (BD).
El Modelo Relacional fue propuesto por Codd en su artículo titulado “A
relational model of data for large shared data banks” (Codd, 1970).
Los objetivos de Codd con el Modelo Relacional son:
• Independencia física.- Almacenamiento/manipulación. Un cambio físico no
afecta a los programas.
• Independencia lógica.- Añadir, eliminar o modificar elementos en la BD no
debe repercutir en los programas y/o usuarios que acceden a ellos.
• Flexibilidad.- Ofrecer al usuario los datos en la forma más adecuada a
cada aplicación.
• Uniformidad.- Las estructuras lógicas de los datos son tablas. Facilita la
concepción y utilización de la BD por parte de los usuarios.
• Sencillez.- Por las características anteriores y por los lenguajes de usuario
sencillos, el modelo relacional es fácil de comprender y utilizar por parte del
usuario final.
1. Presentación y Objetivos
Concepto de RELACIÓN como estructura básica
© 2008 Grupo Kybele6
Evolución del Modelo Relacional 1968 - 1970 Surge el modelo
1970 . . . Desarrollos teóricos
1973 - 1978 Prototipos (Ingres, sistema R de IBM, ect. . .)
1978 QBE (Query by Example) de IBM
1979 Oracle (1er SGBD Relacional)
1980 Ingres
1981 SQL
1982 DB2
1986 SQL/ANS
1987 SQL ISO (9075)
1989 SQL Addendum
1989 Manifiesto de los SGBO
1990 Modelo Relacional Versión 2
1990 Manifiesto de los SGBO-3G
1992 SQL 92
1995 3er Manifiesto
1999 SQL:1999
2003 SQL:2003
P
R
E
R
R
E
L
A
C
I
O
N
A
L R
E
L
A
C
I
O
N
A
L
P
O
S
T
R
E
L
A
C
I
O
N
A
L
1. Presentación y Objetivos
Actual Estándar Relacional
© 2008 Grupo Kybele7
VENTAS MUNDIALES DE SGBD 1991-1999
Tecnología de
bases de datos
1991 1992 1993 1994 1995 1996 1997 1998 1999 Crecim.
(%)
1994-
1999
Prerrelacional 2.000 2.090 2.109 2.050 1.866 1.721 1.701 1.689 1.638 Crecimiento - 4,5 0,9 -2,8 -9,0 -7,8 -1,2 -0,7 -3,0 -4,4 Cuota de
mercado52,0 45,5 38,8 31,6 24,0 18,4 15,2 12,6 10,3
Relacional 1.844 2.502 3.328 4.435 5.925 7.652 9.513 11.685 14.254 Crecimiento - 35,7 33,0 33,3 33,6 29,1 24,3 22,8 22,0 26,3 Cuota de
mercado48,0 54,5 61,2 68,4 76,0 81,6 84,8 87,4 89,7
SGBD total 3.844 4.592 5.437 6.485 7.791 9.373 11.214 13.374 15.892
Crecimiento - 19,5 18,4 19,3 20,1 20,3 19,6 19,3 18,8 19,6
VENTAS MUNDIALES DE SGBD
FUENTE: Estudio IDC
1. Presentación y Objetivos
© 2008 Grupo Kybele8
0
2
4
6
8
10
12
14
16
1994 1995 1996 1997 1998
Miles
de m
illo
nes
de d
óla
res
Total ingresos por las ventas mundiales de SGBD
Orientado al objeto
Pre-relacionales
Relacionales
FUENTE: PriceWaterhouse 1996
1. Presentación y Objetivos
© 2008 Grupo Kybele9
1. Presentación y Objetivos
2. Estructura del MR
2.1. Elementos del MR
2.2. Definición Formal de Relación
2.3. Claves
2.4. Restricciones
3. El MR y la Arquitectura ANSI
4. Los Valores Nulos y la Lógica Trivaluada
5. Las 12 Reglas de Codd
6. Bibliografía
Índice
© 2008 Grupo Kybele10
Ejemplo de una relación
NOMBRE NACIONALIDAD … ATRIBUTO N
RODRÍGUEZ ESPAÑOLA … XXXX
SÁNCHEZ ESPAÑOLA … XXXX
… … … …
XXXX XXXX … XXXX
Tupla 1
Tupla 2
Tupla M
. . .
Representación de la relación “AUTOR” en forma de tabla de grado N y
cardinalidad M.
2. Estructura del MR
AUTOR
© 2008 Grupo Kybele11
Relación
Es la estructura básica del modelo relacional. Se representa mediante una tabla.
Atributo
Representa las propiedades de la relación. Se representa mediante una columna.
Dominio
Es el conjunto válido de valores que toma un atributo.
Tupla
Es una ocurrencia de la relación. Se representa mediante una fila.
2.1. Elementos del MR
2. Estructura del MR
© 2008 Grupo Kybele12
Grado
Es el número de atributos de la relación (columnas de la tabla).
2.1. Elementos del MR
Cardinalidad
Es el número de tuplas de la relación (filas de la tabla).
2. Estructura del MR
© 2008 Grupo Kybele1313
Características de una relación:
2.1. Elementos del MR
No puede haber tuplas duplicadas.
El orden de las tuplas es irrelevante.
La tabla es plana, es decir, en el cruce de un atributo y una tupla
sólo puede haber un valor.
El orden de los atributos no es significativo.
2. Estructura del MR
© 2008 Grupo Kybele14
Nombre Nacionalidad Institución
Date, C.J.
Codd, E.F.
Ceri, S.
Saltor, F.
Norteamericana
Norteamericana
Italiana
Española
Relational Institute
Relational Institute
Politécnico de Milán
U.P.C.
Grado 3
Atributos
T
U
P
L
A
S
Cardinalidad
4
AUTOR
xxxxxxxx
25
Española
Francesa
Italiana
Norteamericana
Inglesa
U.P.M.
U.P.C.
Politécnico de Milán
Relational Institute
NOMBRES NACIONALIDADES INSTITUCIONES
DOMINIOS
2.1. Elementos del MR
2. Estructura del MR
© 2008 Grupo Kybele15
RELACIÓN TABLA FICHERO
TUPLA
ATRIBUTO
GRADO
CARDINALIDAD
FILA
COLUMNA
Nº DE COLUMNAS
Nº DE FILAS
REGISTRO
CAMPO
Nº DE CAMPOS
Nº DE REGISTROS
~ ~
Comparación de la terminología relación, tabla, fichero
2.1. Elementos del MR
2. Estructura del MR
© 2008 Grupo Kybele16
Las vistas son “tablas virtuales” que se definen sobre una o más
tablas.
Las vistas son ventanas sobre tablas “reales” de las que sólo se
almacena su definición; no tienen representación directa en el
almacenamiento.
Vista:
2.1. Elementos del MR
ALUMNO
Dni Nombre Edad
1 A0001 José 17
2 A0002 María 21
3 A0003 Juan 20
Num_MatVista de ALUMNO:
V_Alumnos_MayoresEdad:
Incluye el número de la
matrícula, nombre y edad de los
alumnos mayores de edad.
2. Estructura del MR
© 2008 Grupo Kybele1717
2.1. Elementos del MR
Ventajas del uso de vistas:
Mecanismo de seguridad potente y flexible al ocultar partes de la
BD a ojos de ciertos usuario. Los usuarios no son conscientes de la
existencia de ningún atributo o tupla no incluida en la vista.
Acceso a los datos de forma personalizada para las necesidades de
los usuarios.
Simplifican las operaciones complejas sobre relaciones base.
2. Estructura del MR
© 2008 Grupo Kybele1818
2.1. Elementos del MR
Actualización de las vistas:
Todas las actualizaciones efectuadas en una relación base deben verse inmediatamente reflejadas en todas las vistas que hagan referencia a esa relación base.
De forma similar, si se actualiza una vista, la relación base subyacente debe reflejar el cambio.
Sin embargo, existen restricciones en los tipos de modificaciones que pueden efectuarse mediante vistas:
Una vista es actualizable si está definida utilizando una consulta simpleen la que esté involucrada una única relación base y que contenga laclave principal o una clave candidata de la relación base.
Una vista NO es actualizable si implica múltiples relaciones base.
Una vista NO es actualizable si implica operaciones de agregación o de agrupación.
2. Estructura del MR
© 2008 Grupo Kybele19
Con nombre
Sin nombre(son siempre temporales)
Persistentes
Temporales
Base (definición + extensión)
Vistas (definición)
Instantáneas (definición +datos)
Autónomas (o base temporales)
Vistas temporales
Instantáneas Temporales
Resultado final de una consulta
Resultados intermedios de una consulta
Clases de relación:
2.1. Elementos del MR
Derivadas
2. Estructura del MR
© 2008 Grupo Kybele20
El Universo del Discurso (UD) de una base de datos relacional está compuesto
por un conjunto de dominios {Di} y de relaciones {Ri} definidas sobre los
dominios.
Un dominio es un conjunto nominado, finito y homogéneo de valores atómicos.
Cada dominio se especifica lógicamente mediante un nombre y un formato, el
cual puede definirse por extensión (dando sus posibles valores) o por intensión
(mediante un tipo de datos y ciertas restricciones, como un rango de valores).
Un atributo (A) es la interpretación de un determinado dominio en una relación,
es decir el “papel” que juega en la misma; si D es el dominio de A se denota:
D = Dom (A).
Una relación definida sobre un conjunto de dominios D1...Dn (no necesariamente
distintos) es un subconjunto del producto cartesiano de los n dominios (n es el
grado de la relación).
R D1x D2x...Dn
2.2. Definición Formal de Relación
2. Estructura del MR
© 2008 Grupo Kybele21
Un esquema de relación (intensión) se compone de un nombre de relación
R, de un conjunto de n atributos {A1} y de un conjunto de n dominios (no
necesariamente distintos) {Di}, donde cada atributo será definido sobre un
dominio:
R ( A1 : D1, A2 : D2, . . . An : Dn)
Una relación r(R) (extensión) es un conjunto de m elementos denominados
tuplas {tj}. Cada tuplaj es conjunto de pares (<A1:v1j>,...<Ai:vij>,...<An:vnj>)
donde cada Ai es el nombre de un atributo y vij es un valor del
correspondiente dominio Di sobre el que está definido el atributo:
r(R) = tj {(<A1:v1j>, . . . <Ai:vij>, . . . <An:vnj>) : vij Di }
2.2. Definición Formal de Relación
2. Estructura del MR
© 2008 Grupo Kybele22
ESQUEMA DE RELACIÓN (INTENSIÓN):
AUTOR (Nombre: Nombres, Nacionalidad: Nacionalidades, Institución: Instituciones)
RELACIÓN (EXTENSIÓN, ESTADO u OCURRENCIA):
Nombre Nacionalidad Institución
Date, C.J.
Saltor, F.
Ceri, S.
Norteamericana
Española
Italiana
Relational Institute
U.P.C.
Politécnico de Milán
AUTOR
2.2. Definición Formal de Relación
cabecera
de la relación
cuerpo
de la relación
2. Estructura del MR
© 2008 Grupo Kybele23
Clave Candidata
Es el conjunto no vacío de atributos que identifica unívoca y mínimamente
cada tupla de una relación.
Clave Primaria (primary key)
Es la clave candidata que elige el usuario para identificar las tuplas de la
relación. Se dice que una clave primaria es compuesta cuando está
formada por más de un atributo.
Regla de Integridad de Entidad
Ningún atributo principal, es decir, ningún atributo que forme parte de la
clave primaria, puede tomar un valor nulo.
Clave Alternativa (unique)
Aquella clave candidata que no ha sido elegida como clave primaria.
2.3. Claves
2. Estructura del MR
© 2008 Grupo Kybele24
Clave Ajena (foreign key)
La clave ajena de una relación R2 es un conjunto no vacío de atributos
cuyos valores han de coincidir con los valores de la clave primaria de una
relación R1 (R1 y R2 no son necesariamente distintas).
La clave ajena y la correspondiente clave primaria han de estar definidas
sobre los mismos dominios.
La clave ajena sirve para relacionar tablas.
2.3. Claves
R2 (A1, A2, A3, A4)
R1(B1, B2)
Clave Ajena
2. Estructura del MR
© 2008 Grupo Kybele25
LIBRO (código, título, idioma…, nombre-e)
EDITORIAL (nombre-e, dirección, ciudad, país…)
Nombre-e es clave ajena de LIBRO, y referencia a EDITORIAL (nombre-e
es clave primaria de EDITORIAL). Esta última tabla (EDITORIAL) se
denomina tabla referenciada.
Ejemplo de relación entre tablas 1:N
2.3. Claves
2. Estructura del MR
© 2008 Grupo Kybele26
Ejemplo de relación entre tablas N:M
AUTOR (Nombre, Nacionalidad, Institución, …)
LIBRO (Código, Título, Idioma, Editorial, …)
ESCRIBE (Nombre, Cod_Libro)
clave ajena clave ajena
2.3. Claves
2. Estructura del MR
© 2008 Grupo Kybele27
Si una relación R2 tiene un atributo que es clave primaria de la relación R1,
entonces los valores de dicho atributo deben concordar con los de la clave
primaria de la tabla referenciada o tener valores nulos.
Regla de Integridad Referencial
Ejemplo:
Código Título Idioma Nombre_e
001 Bases de
Datos
Español Ra-ma
002 Data
Base
Inglés
003 Diseño de
Bases de
Datos
Español Ra-ma
LIBRO
Nombre_e Dirección Ciudad País
Ra-ma Pez, 20 Madrid España
Addison-
Wesley
24 Lennon London UK
Paraninfo Entenza, 5 Barcelona España
EDITORIAL
2.3. Claves
2. Estructura del MR
© 2008 Grupo Kybele28
Restricciones Inherentes
Derivadas de la definición de relación:
No hay 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 sobre el que
está definido, no admitiéndose por tanto los grupos repetitivos. Se dice
que una tabla que cumple esta condición está normalizada (o también
que está en primera forma normal).
Regla de Integridad de Entidad (ningún atributo que forme parte de la clave
primaria, puede tomar un valor nulo).
Regla de Integridad Referencial (si una relación R2 tiene un atributo que es
clave primaria de la relación R1, entonces los valores de dicho atributo
deben concordar con los de la clave primaria o tener valores nulos).
2.4. Restricciones
2. Estructura del MR
© 2008 Grupo Kybele29
Nombre Nacionalidad Institucion
Date, C.J.
Codd, E.F.
Ceri, S.
Saltor, F.
Norteamericana
Norteamericana
Italiana
Española
Relational Institute
Relational Institute
Politécnico de Milan
U.P.C.
Idiomas
Inglés, Español
Inglés
Italiano, Inglés
Español, Catalán
AUTOR1
Nombre Nacionalidad Institucion
Date, C.J.
Date, C.J.
Codd, E.F.
Ceri, S.
Ceri, S.
Saltor, F.
Saltor, F.
Norteamericana
Norteamericana
Norteamericana
Italiana
Italiana
Española
Española
Relational Institute
Relational Institute
Relational Institute
Politécnico de Milan
Politécnico de Milan
U.P.C.
U.P.C.
Idioma
Inglés
Español
Inglés
Italiano
Inglés
Español
Catalán
AUTOR2
2.4. Restricciones
2. Estructura del MR
© 2008 Grupo Kybele30
Restricciones Semánticas
• Clave primaria (PRIMARY KEY). Permite declarar un atributo o un conjunto de
atributos como clave primaria de una relación por lo que sus valores no se podrán
repetir ni se admitirán los nulos (o valores “ausentes”).
• Unicidad (UNIQUE). Mediante la cual se indica que los valores de un conjunto de
atributos (uno o más) no pueden repetirse en una relación. Esta restricción permite
la definición de claves alternativas.
• Obligatoriedad (NOT NULL), de uno ó mas atributos, con lo que se indica que el
conjunto de atributos no admite valores nulos.
• Integridad referencial (FOREIGN KEY). Si una relación R2 (relación que
referencia) tiene un descriptor que es una clave candidata de la relación R1
(relación referenciada), todo valor de dicho descriptor debe, bien concordar con un
valor de la clave candidata referenciada de R1, bien ser nulo. El descriptor es, por
tanto, una clave ajena de la relación R2. Las relaciones R1 y R2 no son
necesariamente distintas. Además, cabe destacar que la clave ajena puede ser
también parte (o la totalidad) de la clave primaria de R2.
2.4. Restricciones
2. Estructura del MR
© 2008 Grupo Kybele31
CREATE TABLE editorial (
nombre_e CHAR(20) PRIMARY KEY,
dirección CHAR(50) NOT NULL,
ciudad CHAR (15),
país CHAR(15));
CREATE TABLE libro (
código CHAR(3),
titulo CHAR (50) UNIQUE,
idioma CHAR(25),
nombre_e CHAR(20),
PRIMARY KEY (código),
FOREIGN KEY (nombre_e) REFERENCES editorial
ON DELETE SET NULL
ON UPDATE CASCADE);
2.4. Restricciones
Ejemplo:
2. Estructura del MR
© 2008 Grupo Kybele32
NO ACTION: rechazar la operación de borrado o actualización.
CASCADE: propagar la modificación o borrar las tuplas de la tabla que
referencia.
SET NULL: poner a valor nulo en la Clave Ajena de la tabla que
referencia.
SET DEFAULT: poner valor por defecto en la Clave Ajena de la tabla que
referencia.
Opciones de Borrado y Actualización en la Clave Ajena
2.4. Restricciones
2. Estructura del MR
© 2008 Grupo Kybele33
PROGRAMA ( Cód_Programa , Nombre, Departamento )
ESTUDIANTE ( Cód_Estudiante, Nombre, Apellidos, DNI, … )
BECA ( Cód_Beca, Nombre, Requisitos, … )
CURSO_DOCTORADO ( Cód_Curso, Nombre, N_Horas, Cód_Programa, F_ Com)
Clave Ajena
Modificación: Cascada
Borrado: puesta a nulos
SOLICITA ( Cod_Estudiante, Cód_Beca,)
Clave Ajena
Modificación: Cascada
Borrado: Cascada
Clave Ajena
Modificación: NO ACTION
Borrado: NO ACTION
SE_MATRICULA ( Cód_Estudiante, Cod_Curso )
Clave Ajena
Modificación: Cascada
Borrado: Cascada
Clave Ajena
Modificación: Cascada
Borrado: Cascada
CONCEDE (Cód_Estudiante, Cód_Beca)
2.4. Restricciones
Ejemplo:
2. Estructura del MR
© 2008 Grupo Kybele34
• Verificación (CHECK). Comprueba, en toda operación de actualización, si el
predicado es cierto o falso y, en el segundo caso, rechaza la operación. La
restricción de verificación se define sobre un único elemento (dominio, relación) y
puede o no tener nombre.
• Aserción (ASSERTION). Actúa de forma idéntica a la anterior, pero se diferencia de
ella en que puede afectar a varios elementos (por ejemplo, a dos relaciones distintas)
y su definición, por tanto, no va unida a la de un determinado elemento por lo que
siempre ha de tener un nombre, ya que la aserción es un elemento más del
esquema que tiene vida por sí mismo.
• Disparador (“trigger”). Restricciones en las que el usuario pueda especificar
libremente la respuesta (acción) ante una determinada condición. Así como las
anteriores reglas de integridad son declarativas, los disparadores son
procedimentales, siendo preciso que el usuario escriba el procedimiento que ha de
aplicarse en caso de que se cumpla la condición.
Otras Restricciones Semánticas
2.4. Restricciones
2. Estructura del MR
© 2008 Grupo Kybele35
1. Presentación y Objetivos
2. Estructura del MR
2.1. Elementos del MR
2.2. Definición Formal de Relación
2.3. Claves
2.4. Restricciones
3. El MR y la Arquitectura ANSI
4. Los Valores Nulos y la Lógica Trivaluada
5. Las 12 Reglas de Codd
6. Bibliografía
Índice
© 2008 Grupo Kybele36
SQL - Manipulación
VISTA 1 VISTA 2 VISTA m
TABLA BASE
TB 1
TABLA BASE
TB 2
TABLA BASE
TB p
RELACIONAL
DATOS ALMACENADOS (Registros de las tablas base, índices, agrupamientos, etc.)
EXTERNO
CREATE VIEW +
sentencia de manipulación
(SELECT)
CONCEPTUAL
(CREATE TABLE,
CREATE DOMAIN,
CREATE ASSERTION
…)
INTERNO
(CREATE INDEX,
CREATE PARTITION,
CREATE CLUSTER,
…)
Independen-
cia lógica
Independen-
cia física
…...
N
I
V
E
L
L
O
G
I
C
O
N
I
V
E
L
F
I
S
I
C
O
3. El MR y la Arquitectura ANSI
© 2008 Grupo Kybele37
ANS I RELACIONAL
L
O
G
I
C
O
F
I
S
I
C
O
S
Q
L
PRODUCTOS
Nivel Externo Vistas
Relaciones Base
Nivel Conceptual Relaciones Base
Nivel Interno Datos Almacenados
- Relaciones base almacenadas
- Indices
- Punteros
- Direcciones de página
- ...
3. El MR y la Arquitectura ANSI
© 2008 Grupo Kybele38
1. Presentación y Objetivos
2. Estructura del MR
2.1. Elementos del MR
2.2. Definición Formal de Relación
2.3. Claves
2.4. Restricciones
3. El MR y la Arquitectura ANSI
4. Los Valores Nulos y la Lógica Trivaluada
5. Las 12 Reglas de Codd
6. Bibliografía
Índice
© 2008 Grupo Kybele39
Valor nulo:Señal utilizada para representar información desconocida,
inaplicable, inexistente, no válida, no proporcionada, indefinida, etc.
Necesidad de los valores nulos en BD:
• Crear tuplas (filas) con ciertos atributos desconocidos en ese
momento, p.e. el año de edición de un libro.
• Añadir un nuevo atributo a una relación existente; atributo que, en
el momento de añadirse, no tendría ningún valor para las tuplas de la
relación.
• Atributos inaplicables a ciertas tuplas, por ejemplo, la editorial para
un artículo (ya que un artículo no tiene editorial) o la profesión de un
menor.
4. Los Valores Nulos y la Lógica Trivaluada
© 2008 Grupo Kybele40
El tratamiento de valores nulos exige definir:
• operaciones de comparación
• operaciones aritméticas
• operaciones algebraicas
• funciones de agregación
Tablas de Verdad de la Lógica Trivaluada:
4. Los Valores Nulos y la Lógica Trivaluada
NOT A A B A AND B A OR B
F T T T T
F T F F T
F T N N T
T F F F F
T F N F N
N N N N N
T: True
F: False
N: Null
© 2008 Grupo Kybele41
1. Presentación y Objetivos
2. Estructura del MR
2.1. Elementos del MR
2.2. Definición Formal de Relación
2.3. Claves
2.4. Restricciones
3. El MR y la Arquitectura ANSI
4. Los Valores Nulos y la Lógica Trivaluada
5. Las 12 Reglas de Codd
6. Bibliografía
Índice
© 2008 Grupo Kybele42
5. Las 12 Reglas de Codd
Codd definió un conjunto de reglas que un SGBD debe satisfacer para
que sea considerado relacional en su artículo titulado:
“Is your DBMS really relational” (Codd, 1985 en ComputerWorld).
Se denominan las 12 Reglas de Codd, aunque en realidad definió
13 reglas para considerar un sistema relacional (Regla 0- Regla 12).
© 2008 Grupo Kybele43
Regla 1.- Representación de la información:
Toda información almacenada en una base de datos relacional debe
representarse explícitamente a nivel lógico, y de manera única, por medio de
valores en tablas. Podríamos decir que éste es el principio básico del
modelo relacional.
5. Las 12 Reglas de Codd
Tabla
A1 A2 A3 A4
Los nombres de las tablas, nombres de los atributos y toda la información
necesaria para el funcionamiento de la BD se representa mediante tablas
Catálogo del sistema es una BD relacional
© 2008 Grupo Kybele44
Regla 2.- Acceso garantizado:
Todo dato debe ser accesible mediante una combinación de un nombre de
tabla, un valor de su clave y el nombre de una columna. Es una forma de
insistir en la obligatoriedad de la clave primaria.
5. Las 12 Reglas de Codd
ALUMNO
Dni Nombre Edad
1 José 18
2 María 21
3 Juan 20
¿Nombre de
ALUMNO
Con DNI =2?
María
En una BD Relacional los datos NO se referencian por su posición física.
© 2008 Grupo Kybele45
Regla 3.- Tratamiento sistemático de valores nulos:
Los valores nulos, información desconocida o inaplicable, han de ser tratados
sistemáticamente por el sistema, el cual ha de ofrecer las facilidades
necesarias para su tratamiento.
5. Las 12 Reglas de Codd
ALUMNO
Dni Nombre Edad
1 José 18
2 NULL 21
3 Juan NULL
© 2008 Grupo Kybele46
Regla 4.- Catálogo activo en línea basado en el modelo relacional:
La representación de la metainformación (descripción de la base de datos)
debe ser igual a la de los otros datos y su acceso debe poder realizarse por
medio del mismo lenguaje relacional que se utiliza para los demás datos; es
decir, el modelo de datos para la metainformación debe ser también el
relacional.
5. Las 12 Reglas de Codd
En un SGBD Relacional hay dos tipos de tablas:
•Tablas de usuario con datos
•Tablas del sistema que contienen datos que describen la estructura de la
BD Catálogo
© 2008 Grupo Kybele47
Regla 5.- Sublenguaje de datos completo:
Debe existir un lenguaje que permita un completo manejo de la base de
datos (definición de datos, definición de vistas, manipulación de datos,
restricciones de integridad, autorizaciones y gestión de transacciones).
5. Las 12 Reglas de Codd
El lenguaje SQL aporta todas estas funciones.
© 2008 Grupo Kybele48
Regla 6.- Actualización de vistas:
Toda vista teóricamente actualizable debe poder ser actualizada por el
sistema.
5. Las 12 Reglas de Codd
Esta regla obliga al SGBD a ser capaz de actualizar cualquier vista que
se haya definido en el sistema y que cumpla con las condiciones teóricas
que hagan posible la actualización de datos a través de ella.
© 2008 Grupo Kybele49
Regla 7.- Inserciones, modificaciones y eliminaciones de alto nivel:
Todas las operaciones de manipulación de datos (consulta, inserción,
modificación y borrado) deben operar sobre conjuntos de filas (lenguaje no
navegacional).
Los sistemas existentes hasta el momento en el que surge el modelo relacional
actuaban registro a registro obligando al programador de una base de datos a
navegar por la misma.
5. Las 12 Reglas de Codd
© 2008 Grupo Kybele50
Regla 8.- Independencia física de los datos:
El acceso lógico a los datos debe mantenerse incluso cuando cambien los
métodos de acceso o la forma de almacenamiento.
Los programas de las aplicaciones y las operaciones sobre la BD deben
mantenerse inalterados desde el punto de vista lógico, aunque se
produzcan cambios en los mecanismos de almacenamiento (p.e. ubicación
física de los ficheros de la BD ) y acceso de la BD (p.e. índices).
5. Las 12 Reglas de Codd
© 2008 Grupo Kybele51
Regla 9.- Independencia lógica de los datos:
Los programas de aplicación no deben verse afectados por cambios realizados
en las tablas que estén permitidos teóricamente y que preserven la información.
No habrá que modificar los programas de las aplicaciones aunque se
realicen cambios sobre las tablas, siempre que esos cambios mantengan la
información que en ellas hubiese.
5. Las 12 Reglas de Codd
© 2008 Grupo Kybele52
Regla 10.- Independencia de la integridad:
Las reglas de integridad de una base de datos deben ser definibles por medio
del sublenguaje de datos relacional y habrán de almacenarse en el catálogo de
la base de datos (metabase), no en los programas de aplicación.
5. Las 12 Reglas de Codd
© 2008 Grupo Kybele53
Regla 11.- Independencia de la distribución:
Debe existir un sublenguaje de datos que pueda soportar bases de datos
distribuidas sin alterar los programas de aplicación cuando se distribuyan los
datos por primera vez o se redistribuyan éstos posteriormente.
Un programa de aplicación no debe notar la diferencia entre trabajar
sobre la BD cuando esta se encuentra centralizada en una máquina y
cuando los datos se distribuyen entre varias máquinas. El sistema debe ser
responsable de presentar los datos al usuario final como si estuvieran en
una única máquina.
PERO: Para que un sistema sea relacional no tiene obligatoriamente que
dar soporte a las BD distribuidas.
5. Las 12 Reglas de Codd
© 2008 Grupo Kybele54
Regla 12.- Regla de la no subversión:
Si un SGBD soporta un lenguaje de bajo nivel que permite el acceso fila a fila,
éste no puede utilizarse para saltarse las reglas de integridad expresadas por
medio del lenguaje de más alto nivel.
El SGBD debe controlar todos los accesos a la BD de forma que la
integridad de la BD no pueda verse comprometida sin conocimiento del
usuarios y el administrador de la BD.
5. Las 12 Reglas de Codd
© 2008 Grupo Kybele55
Regla 0.- Regla básica:
Cualquier sistema que se anuncie como sistema gestor de bases de datos
relacionales debe ser capaz de gestionar por completo las BD utilizando sus
capacidades relacionales.
El SGBD Relacional NO debe recurrir a operaciones NO relacionales
para completar sus capacidades de gestión de datos (definición y
manipulación).
5. Las 12 Reglas de Codd
© 2008 Grupo Kybele56
1. Presentación y Objetivos
2. Estructura del MR
2.1. Elementos del MR
2.2. Definición Formal de Relación
2.3. Claves
2.4. Restricciones
3. El MR y la Arquitectura ANSI
4. Los Valores Nulos y la Lógica Trivaluada
5. Las 12 Reglas de Codd
6. Bibliografía
Índice
© 2008 Grupo Kybele57
Tecnología y Diseño de Bases de Datos
M.Piattini, E. Marcos, C.Calero y B. Vela
Ed.: RA-MA, 2006 Octubre
Parte II, capítulo 6
Fundamentos y Modelos de Bases de Datos
A. de Miguel y M. Piattini
Ed.: RA-MA, 1997
Capítulo 5 (Pág. 123-166)
Sistemas de Bases de Datos
T. M. Connolly y C. E. Begg
Ed.: Addison Wesley, Cuarta Edición, 2001
Parte II , capítulo 3 (Pág. 61-78)
Introducción a las Bases de Datos. El Modelo Relacional
O. Pons et al.
Ed.: Thomson, 2005
Capítulo 5 (Pág. 141-159)
Introducción a los Sistemas de Bases de Datos
C. J. Date
Ed.: Prentice Hall, Séptima Edición, 2001
Parte II (Pág. 109-149)
Diseño de Bases de Datos. Problemas Resueltos.
A. de Miguel et al.
Ed.: RA-MA, 2001
6. Bibliografía
© 2008 Grupo Kybele59
1. Introducción
2. Álgebra Relacional
2.1. Operación de Asignación y Renombrado
de Atributos
2.2. Operadores Primitivos
2.3. Operadores Derivados
3. Bibliografía
Índice
© 2008 Grupo Kybele60
1. Introducción
2. Álgebra Relacional
2.1. Operación de Asignación y Renombrado
de Atributos
2.2. Operadores Primitivos
2.3. Operadores Derivados
3. Bibliografía
Índice
© 2008 Grupo Kybele61
La dinámica del modelo relacional permite la transformación
entre estados de la BD que se realiza aplicando un conjunto
de operadores (inserción, borrado, modificación y consulta) al
estado origen, para obtener el estado destino.
O (BDi) = BDj
Lenguajes relacionales:
Algebráicos.- las operaciones se aplican sobre
operandos (relaciones) y el resultado es otra relación.
Álgebra Relacional
Predicativos (orientados a tuplas o a dominios).- se
define el estado sin indicar las operaciones.
Cálculo Relacional
1. Introducción
© 2008 Grupo Kybele62
1. Introducción
2. Álgebra Relacional
2.1. Operación de Asignación y Renombrado
de Atributos
2.2. Operadores Primitivos
2.3. Operadores Derivados
3. Bibliografía
Índice
© 2008 Grupo Kybele63
Álgebra Relacional:
Operadores Primitivos + Operadores Derivados
Operadores primitivos:
• Proyección ()
• Selección ()
• Unión ()
• Diferencia (-)
• Producto Cartesiano (x)
Operadores derivados:
• Combinación o Join ()
• Intersección ()
• División (:)
O. Unarios
O. Binarios
2. Algebra Relacional
© 2008 Grupo Kybele64
Asignación ():
• Renombrado de atributos.
• Cambiar nombre a relación existente.
RELACION_NUEVA(A1,A2, ...,An) O(R)
• Almacenar resultado de una consulta en una nueva relación.
• Denominar resultados intermedios (para dividir una única
operación compleja en una secuencia de operaciones más
simples).
RELACION_NUEVA O(R)
2.1 Operadores de Asignación y Renombrado de Atributos
Para especificar una consulta en Álgebra Relacional es preciso
definir 1 o más pasos que sirven para ir construyendo mediante
operadores del Álgebra Relacional UNA NUEVA RELACIÓN.
2. Álgebra Relacional
© 2008 Grupo Kybele65
Proyección (): La proyección de una relación sobre un conjunto de sus atributos
es otra relación definida sobre ellos, eliminando las tuplas
duplicadas que hubieran podido resultar.
Nombre Nacionalidad Institución
Date Norteamericana Relat. Institute
Saltor Española U.P.C.
Bertino Italiana U. Milan
Autor nacionalidad (Autor)
Nacionalidad
Norteamericana
Española
Italiana
SELECT distinct (nacionalidad)
FROM autor;
2.2 Operadores Primitivos
2. Álgebra Relacional
© 2008 Grupo Kybele66
Selección (): La selección de una relación mediante una expresión lógica
(predicado de selección) da como resultado una relación formada
por el conjunto de tuplas que satisfacen dicha expresión.
Nombre Nacionalidad Institución
Date Norteamericana Relat. Institute
Saltor Española U.P.C.
Bertino Italiana U. Milan
Autor nacionalidad=”Española” (Autor)
SELECT *
FROM autor
WHERE nacionalidad=“Española”;
Nombre Nacionalidad Institución
Saltor Española U.P.C.
2.2 Operadores Primitivos
2. Álgebra Relacional
© 2008 Grupo Kybele67
Dos relaciones son compatibles en su esquema si:
• Si tienen el mismo grado.
• Si se puede hacer una correspondencia de cada uno de los
atributos de las dos relaciones y si estos están definidos sobre el
mismo dominio.
2. Álgebra Relacional
© 2008 Grupo Kybele68
Unión (): La unión de dos relaciones R1 y R2, compatibles en su esquema,
es otra relación definida sobre el mismo esquema de relación, cuya
extensión estará constituida por el conjunto de tuplas que
pertenezcan a R1, a R2 o a ambas (sin duplicar).
Nombre Nacionalidad Institución
Date Norteamericana Relat. Institute
Saltor Española U.P.C.
Bertino Italiana U. Milan
Nombre Nacionalidad Institución
Chen Norteamericana ER Institute
Yao Norteamericana U.N.Y
Bertino Italiana U. Milan
Autor Editor
Autor Editor Nombre Nacionalidad Institución
Date Norteamericana Relat. Institute
Saltor Española U.P.C.
Bertino Italiana U. Milan
Chen Norteamericana ER Institute
Yao Norteamericana U.N.Y
2.2 Operadores Primitivos
2. Álgebra Relacional
© 2008 Grupo Kybele69
Diferencia (-): La diferencia de dos relaciones R1 y R2, compatibles en su
esquema, es otra relación definida sobre el mismo esquema de
relación, cuya extensión estará constituida por el conjunto de
tuplas que pertenecen a R1 y no pertenecen a R2.
Nombre Nacionalidad Institución
Date Norteamericana Relat. Institute
Saltor Española U.P.C.
Bertino Italiana U. Milan
Nombre Nacionalidad Institución
Chen Norteamericana ER Institute
Yao Norteamericana U.N.Y
Bertino Italiana U. Milan
Autor Editor
Autor - Editor Nombre Nacionalidad Institución
Date Norteamericana Relat. Institute
Saltor Española U.P.C.
2.2 Operadores Primitivos
2. Álgebra Relacional
© 2008 Grupo Kybele70
Producto Cartesiano (x):
El producto cartesiano de dos relaciones R1 y R2 de cardinalidades
m1 y m2 respectivamente, es una relación definida sobre la unión de
los atributos de ambas relaciones y cuya extensión estará constituida
por las m1 x m2 tuplas formadas concatenando cada tupla de la
primera relación con cada una de las tuplas de la segunda relación.
2.2 Operadores Primitivos
2. Álgebra Relacional
© 2008 Grupo Kybele71
LIBRO x EDITORIAL
LIBRO EDITORIAL
ENombre Dirección Ciudad País
Ra-ma Pez, 20 Madrid España
Addison-
Wesley
24
Lennon
London UK
Código Título Idioma Nombre_e
001 Bases de
Datos
Español Ra-ma
003 Diseño de
BD
Español Ra-ma
Código Título Idioma Nombre_e ENombre Dirección Ciudad País
001 BD Español Ra-ma Ra-ma Pez, 20 Madrid España
001 BD Español Ra-ma Addison-
Wesley
24
Lennon
London UK
003 Diseño
de BD
Español Ra-ma Ra-ma Pez, 20 Madrid España
003 Diseño
de BD
Español Ra-ma Addison-
Wesley
24
Lennon
London UK
2.2 Operadores Primitivos
2. Álgebra Relacional
© 2008 Grupo Kybele72
a
b
c
x
y
a
a
b
b
c
c
x
y
x
y
x
y
Selección () Proyección ()Producto (x)
Unión () Diferencia ( - )
2.2 Operadores Primitivos
2. Álgebra Relacional
© 2008 Grupo Kybele73
Operadores derivados: Se pueden expresar en función de los operadores primitivos.
• Combinación o Join ()
• Intersección ()
• División (:)
2.3 Operadores Derivados
2. Álgebra Relacional
© 2008 Grupo Kybele74
Combinación o JOIN ():
La combinación (join) de dos relaciones, R1 y R2, respecto a una
cierta condición de combinación, es otra relación constituida por
todos los pares de tuplas ti y tj concatenadas, tales que, en cada par,
las correspondientes tuplas satisfacen la condición especificada.
La condición de combinación, en el caso más sencillo, está referida
a dos atributos A1i y A2j, cada uno de los cuales pertenece a una de
las relaciones, unidos por un operador de comparación.
2.3 Operadores Derivados
R1 R2R1.A1i Op R2.A2j
{Siendo Op un operador de comparación }
Para poder comparar dos atributos, será preciso que éstos estén
definidos sobre el mismo dominio o dominios compatibles.
2. Álgebra Relacional
© 2008 Grupo Kybele75
Combinación Natural o Equi-JOIN (*):
Si se trata de una condición de combinación simple por igualdad
se denomina Combinación Natural (denotada con *).
En esta combinación por igualdad se elimina uno de los dos atributos
cuyos valores son idénticos. Es el caso más utilizado de combinación
para relaciones que tienen un atributo común.
La combinación natural puede hacerse entre relaciones que tengan
más de un atributo común. En este caso, la combinación natural se
realizarán sobre le conjunto de atributos comunes.
2.3 Operadores Derivados
R1 * R2A1i = A2j
Cuando el atributo común tiene el mismo nombre en ambas
relaciones, se suele omitir la condición de combinación.
R1 * R2
2. Álgebra Relacional
© 2008 Grupo Kybele76
LIBRO * EDITORIAL
Nombre_e = Nombre_e
LIBRO EDITORIALNombre_e Dirección Ciudad País
Ra-ma Pez, 20 Madrid España
Addison-
Wesley
24
Lennon
London UK
Código Título Idioma Nombre_e
001 Bases de
Datos
Español Ra-ma
003 Diseño de
BD
Español Ra-ma
Código Título Idioma Nombre_e Dirección Ciudad País
001 BD Español Ra-ma Pez, 20 Madrid España
003 Diseño
de BD
Español Ra-ma Pez, 20 Madrid España
SELECT *
FROM LIBRO, EDITORIAL
WHERE LIBRO.nombre_e=EDITORIAL.nombre_e
2.3 Operadores Derivados
Se elimina el
atributo repetido
(de la condición
de igualdad)
2. Álgebra Relacional
© 2008 Grupo Kybele77
Libro.Código, Libro.Título, Libro.Nombre_e, Editorial.Dirección, Editorial.Ciudad, Editorial.País(
Libro.Nombre_e=Editorial.Nombre_e( LIBRO x EDITORIAL))
LIBRO EDITORIAL
Nombre_e Dirección Ciudad País
Ra-ma Pez, 20 Madrid España
Addison-
Wesley
24
Lennon
London UK
Código Título Idioma Nombre_e
001 Bases de
Datos
Español Ra-ma
003 Diseño de
BD
Español Ra-ma
Código Título Idioma Nombre_e Nombre_e Dirección Ciudad País
001 BD Español Ra-ma Ra-ma Pez, 20 Madrid España
001 BD Español Ra-ma Addison-
Wesley
24
Lennon
London UK
003 Diseño
de BD
Español Ra-ma Ra-ma Pez, 20 Madrid España
003 Diseño
de BD
Español Ra-ma Addison-
Wesley
24
Lennon
London UK
LIBRO * EDITORIAL
Nombre_e = Nombre_e
2.3 Operadores Derivados
2. Álgebra Relacional
© 2008 Grupo Kybele78
Combinación Externa o OUTER JOIN:
Es un operador especial para el tratamiento de los valores nulos.
Impide que desaparezcan tuplas por no tener correspondencia con
ninguna de la otra relación (cuando se aplica la combinación interna).
Por lo tanto, evita que las tuplas de una relación que no casan con
ninguna tupla de la otra desaparezcan en el resultado .
La combinación externa entre dos relaciones R1 y R2 consiste en
variantes de combinación que conservan en el resultado, todas las
tuplas de R1 (izquierda), todas las tuplas de R2 (derecha) o de
ambas relaciones.
2.3 Operadores Derivados
2. Álgebra Relacional
© 2008 Grupo Kybele79
Combinación Externa Izquierda o Left Outer JOIN (/* o i ):
La combinación externa izquierda entre dos relaciones R1 y R2
conserva en el resultado todas las tuplas de R1 (de la relación de la
izquierda).
R1 /* R2
2.3 Operadores Derivados
2. Álgebra Relacional
© 2008 Grupo Kybele80
Combinación Externa Izquierda o Left Outer JOIN (/* o i ):
Autor /* LibroLibro = Cod_Libro
2.3 Operadores Derivados
AUTOR
Cod_Autor Nombre Año_Nac Libro
A1 Date 1939 L1
A2 Piattini 1965
A3 De Miguel 1940
LIBRO
Cod_Libro Titulo Año_P ISBD
L1 BD 1980 1-10-80
L2 Ing.Sw. 1965 2-20-80
L3 El ME/R 1940 3-30-80
Cod_Autor Nombre Año_Nac Libro Título Año_P ISBN
A1 Date 1939 L1 BD 1980 1-10-80
A2 Piattini 1965 NULL NULL NULL NULL
A3 De Miguel 1940 NULL NULL NULL NULL
2. Álgebra Relacional
© 2008 Grupo Kybele81
2.3 Operadores Derivados
La combinación externa derecha entre dos relaciones R1 y R2
conserva en el resultado todas las tuplas de R2 (de la relación de la
derecha).
R1 */ R2
Combinación Externa Derecha o Right Outer JOIN (*/ o d ):
2. Álgebra Relacional
© 2008 Grupo Kybele82
Combinación Externa Derecha o Right Outer JOIN (*/ o d ):
Autor */ LibroLibro = Cod_Libro
2.3 Operadores Derivados
AUTOR
Cod_Autor Nombre Año_Nac Libro
A1 Date 1939 L1
A2 Piattini 1965
A3 De Miguel 1940
LIBRO
Cod_Libro Titulo Año_P ISBD
L1 BD 1980 1-10-80
L2 Ing.Sw. 1965 2-20-80
L3 El ME/R 1940 3-30-80
Cod_Autor Nombre Año_Nac Cod_Libro Título Año_P ISBN
A1 Date 1939 L1 BD 1980 1-10-80
NULL NULL NULL L2 Ing.Sw. 1965 2-20-80
NULL NULL NULL L3 El ME/R 1940 3-30-80
2. Álgebra Relacional
© 2008 Grupo Kybele83
2.3 Operadores Derivados
La combinación externa plena entre dos relaciones R1 y R2 conserva
en el resultado todas las tuplas de R1 y todas las tuplas de R2.
R1 /*/ R2
Combinación Externa Completa/Plena o Full Outer JOIN (/*/ o p ):
2. Álgebra Relacional
© 2008 Grupo Kybele84
Combinación Externa Plena o Full Outer JOIN (/*/ o p ):
Autor /*/ LibroLibro = Cod_Libro
2.3 Operadores Derivados
AUTOR
Cod_Autor Nombre Año_Nac Libro
A1 Date 1939 L1
A2 Piattini 1965
A3 De Miguel 1940
LIBRO
Cod_Libro Titulo Año_P ISBD
L1 BD 1980 1-10-80
L2 Ing.Sw. 1965 2-20-80
L3 El ME/R 1940 3-30-80
Cod_Autor Nombre Año_Nac Libro Cod_Libro Título Año_P ISBN
A1 Date 1939 L1 L1 BD 1980 1-10-80
A2 Piattini 1965 NULL NULL NULL NULL NULL
A3 De Miguel 1940 NULL NULL NULL NULL NULL
A1 Date 1939 L1 L1 BD 1980 1-10-80
NULL NULL NULL NULL L2 Ing.Sw. 1965 2-20-80
NULL NULL NULL NULL L3 El ME/R 1940 3-30-80
2. Álgebra Relacional
© 2008 Grupo Kybele85
Intersección () :
La intersección de dos relaciones R1 y R2 compatibles en su
esquema es otra relación definida sobre el mismo esquema
de relación y cuya extensión estará constituida por las tuplas
que pertenecen a ambas relaciones.
R1 R2 = R1 - (R1 - R2)
R1 R2 = R2 - (R2 – R1)
AUTOR EDITOR
NOMBRE NACIONALIDAD INSTITUCION
Ceri, S. Italiana Politéc. Milán
NOMBRE NACIONALIDAD INSTITUCION
Date, C.J. Norteamericana Relational Inst.
Saltor, F. Española U.P.C.
Ceri, S. Italiana Politéc. Milán
AUTOR
NOMBRE NACIONALIDAD INSTITUCION
Chen, P. Norteamericana ER Institute
Yao, L. Norteamericana U.N.Y.
Ceri, S. Italiana Politéc. Milán
EDITOR
2.3 Operadores Derivados
2. Álgebra Relacional
© 2008 Grupo Kybele86
División (:) :
La división de una relación R1(dividendo) por otra relación R2 (divisor)
es una relación R (cociente) tal que, al realizarse su combinación con el
divisor, todas las tuplas resultantes se encuentran en el dividendo.
NOMBRE NACIONALIDAD EDITORIAL
Date, C.J.
Cervera, J.
Saltor, F.
Ceri, S.
Costilla, C.
Norteamericana
Española
Española
Italiana
Española
Addison
Rama
Paraninfo
Clup
Diaz de Santos
Codd, E.
Cervera, J.
Norteamericana
Española
Prentice Hall
Addison
EDITORIAL
Addison
Rama
AUTOR_EDITORIALEDITORIAL
NOMBRE NACIONALIDAD
Cervera, J. Española
AUTOR_EDITORIAL: EDITORIAL
R1 : R2 = C(R1) - C(R2 x C(R1)-R1)
2.3 Operadores Derivados
2. Álgebra Relacional
© 2008 Grupo Kybele87
1. Introducción
2. Álgebra Relacional
2.1. Operación de Asignación y Renombrado
de Atributos
2.2. Operadores Primitivos
2.3. Operadores Derivados
3. Bibliografía
Índice
© 2008 Grupo Kybele88
Tecnología y Diseño de Bases de Datos
M.Piattini, E. Marcos, C.Calero y B. Vela
Ed.: RA-MA, 2006 Octubre
Parte II, capítulo 7 (Pág. 199-240)
Fundamentos y Modelos de Bases de Datos
A. de Miguel y M. Piattini
Ed.: RA-MA, 1997
Capítulo 6 (Pág. 167-213)
Sistemas de Bases de Datos
T. M. Connolly y C. E. Begg
Ed.: Addison Wesley, Cuarta Edición, 2001
Parte II , capítulo 4 (Pág. 79-99)
Introducción a las Bases de Datos. El Modelo Relacional
O. Pons et al.
Ed.: Thomson, 2005
Capítulo 6 (Pág. 165-211)
Introducción a los Sistemas de Bases de Datos
C. J. Date
Ed.: Prentice Hall, Séptima Edición, 2001
Parte II (Pág. 150-197)
Diseño de Bases de Datos. Problemas Resueltos.
A. de Miguel et al.
Ed.: RA-MA, 2001
3. Bibliografía