Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
2 HND ESI
Tema 2: Diseo lgico: Modelo Relacional
2
Diseo lgico:
Modelo Relacional
2.1
2.1.1
Elementos Bsicos..................................................................................................3
2.1.2
Tipos de Claves......................................................................................................4
2.1.3
2.1.4
Notacin.................................................................................................................7
2.2
Las tres reglas bsicas empleadas en la transformacin de un esquema E/R en un
esquema relacional son: .......................................................................................................7
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
2.2.7
Transformacin de Generalizaciones...................................................................11
2.2.8
2.3
Curso 2005/2006
2 HND ESI
Curso 2005/2006
INF-31 Base de datos Avanzadas
2 HND ESI
Tema 2: Diseo lgico: Modelo Relacional
La aparicin del modelo relacional representa un verdadero hito en el desarrollo de las bases
de datos, ya que ha marcado tres etapas diferentes, conocidas como generaciones de los
SGBDs:
La prerrelacional -primera generacin de BDs-, en la cual los SGBD se soportan
en los modelos Codasyl (en red) y Jerrquico.
La relacional -segunda generacin de BDs- donde los sistemas relacionales se van
aproximando a su madurez y los productos basados en este modelo van desplazando
poco a poco a los sistemas de primera generacin, hasta conseguir una mayor cuota en
el mercado de las bases de datos.
La postrelacional -tercera generacin de Bds- en la que aparecen otros modelos de
datos, en especial los orientados al objeto, que estn en estos momentos intentando
abrirse un hueco en el mercado de las bases de datos e integrndose como extensiones
en los SGBDs previos de la generacin relacional.
2.1.1 Elementos Bsicos
Atributo
Los atributos de una relacin se definen sobre dominios formados por un conjunto de valores
homogneos y atmicos. Representa las propiedades de la relacin y se representa mediante
una columna
Dominio
Es el conjunto vlido de valores que toma un atributo. Es posible definir dominios por
extensin, enumerando los posibles valores de los que consta el dominio, o binen indicando
un rango de valores.
Tupla
Es una ocurrencia de la relacin. Se representa mediante una fila
Relacin
Una relacin tiene un nombre, un conjunto de atributos que representan sus propiedades y un
Atributo 1
Atributo 2
Atributo 3 ....
Atributo n
conjunto de tuplas que incluyen los valores que cada uno de los atributos toma para cada
NOMBRE
CIUDA
COD_GRU
elemento de la COD_MATRCU
relacin.
LA
D
PO
La relacin es el elemento fundamental del modelo relacional (de ah el nombre del modelo),
tupla 1
101
JuanMontero
Alcorc
.
11
y se puede representar en forma de tabla de dos dimensiones, donde las columnas son los
tupla 2
atributos de la relacin y las filas son las tuplas. As pues lanrelacin. alumno sera:
.
....
.
tupla n
102
AliciaCristb
Legans
.
11
al
Una relacin no es una tabla. Existen
diferencias entre ambas. estructuras. La relacin Alumno
.
la representaremos de la siguiente forma:
.
ALUMNO(cod_matricula, nombre, ciudad, ..,cod_grupo)
...
....
....
.
....
.
.
.
-3-
Curso 2005/2006
INF-31 Base de datos Avanzadas
2 HND ESI
Tema 2: Diseo lgico: Modelo Relacional
Curso 2005/2006
2 HND ESI
BrownSq.2
3
EEU
U
LosAngele
s
Rama
Canillas,14
4
McGraw-Hill
Basauri,11
7
Espa Madrid
a
ISBN
Ttulo
Espa Madrid
a
Paraninfo
Virtudes,7
Espa Madrid
00345234
Int.Artificial
a
52
12243444 Concep.yDis
41 Ejemplo de integridad referencial
Figura 1.2
22981084
85
TurboC++
.
.
.
Editorial Libros
Paraninfo
Rama
McGrawHill
98765432 VirusInformticos
Adems de definir las claves ajenas,
55 hay que determinar las consecuencias que pueden
tener- ciertas
operaciones
(borrado
y modificacin)
realizadas
sobre tuplas
tuplas de
de la
RESTRICT: borrado o modificacin
restrictiva.
Si existen
la
09876546
SistemasOperativ
Rama
relacinrelacin
referenciada;
pudindose distinguir,
segn
ellaestndar
SQL92,
las
siguientes:
hija relacionadas
con
la
tupla
de
relacin
padre
sobre
la
que
se
78
os
realiza la operacin, entonces no se permitir llevar a cabo dicha operacin.
CASCADE: borrado o modificacin en cascada. El borrado o modificacin de
una tupla en la relacin padre ocasionar un borrado o modificacin de todas
- las tuplas relacionadas en la relacin hija.
SET NULL: borrado o modificacin con puesta a nulos. El borrado o
modificacin de una tupla de la relacin padre pone a valor nulo la clave ajena
de la tabla que referencia.
-5ESNE Escuela Superior de Negocios y Estudios Internacionales
Curso 2005/2006
INF-31 Base de datos Avanzadas
2 HND ESI
Tema 2: Diseo lgico: Modelo Relacional
Ambos modos (de borrado y de modificacin) son independientes, es decir, cada uno
tomar una de las cuatro opciones por separado.
Restricciones de rechazo. El usuario formula una condicin mediante un predicado
definido sobre un conjunto de atributos, tuplas o dominios, que debe ser verificado en
toda operacin de actualizacin para que el nuevo estado constituya una ocurrencia
vlida del esquema. En SQL92 existen dos clases:
- Verificacin (CHECK): Comprueba, en toda operacin de actualizacin, si el
predicado es cierto o falso y, en el segundo caso, rechaza la operacin. La
restriccin de verificacin se define sobre un nico elemento (dentro de un
CREATE TABLE) y puede o no tener nombre. Por ejemplo, en la tabla
ALUMNOS la edad deber ser mayor de 18.
CHECK N_HORAS > 30 en CURSO_DOCTORADO.
Asercin (ASSERTION): Acta de forma idntica a la anterior, pero se
diferencia de ella en que puede afectar a varios elementos (por ejemplo, a dos
tablas distintas). Por tanto, su definicin no va unida a la de un determinado
elemento del esquema y siempre ha de tener un nombre. Por ejemplo, solo
-podemos conceder una beca a los alumnos que la hayan solicitado
anteriormente.
CREATE ASSERTION CONCEDE_SOLICITA AS
CHECK (SELECT Cod_Estudiante, Cod_Beca FROM CONCEDE) IN
(SELECT Cod_Estudiante, Cod_Beca FROM SOLICITA));
Disparador (trigger): Restriccin en la que el usuario pueda especificar libremente la
respuesta (accin) ante una determinada condicin. 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
condicin. Por ejemplo: si una beca es solicitada por ms de 50 alumnos, se introduce
un texto en una tabla de mensajes para que la persona que gestiona las becas considere
si es necesario ofrecer ms becas.
CREATE TRIGGER Comprobar_Matriculados
AFTER INSERT ON SOLICITA
DECLARE
NUM_SOLICITUDES Number;
BEGIN
SELECT COUNT(*) INTO NUM_SOLICITUDES FROM SOLICITA;
IF NUM_SOLICITUDES > 50 THEN
INSERT INTO MENSAJES VALUES (Hay ms de 50 solicitudes);
END IF;
END Comprobar_Matriculados;
Curso 2005/2006
INF-31 Base de datos Avanzadas
2 HND ESI
Tema 2: Diseo lgico: Modelo Relacional
2.1.4 Notacin
Un esquema relacional se representa mediante un grafo, conocido como grafo relacional.
Bsicamente se trata de un grafo dirigido cuyos nodos son las relaciones de la Base de Datos
y los arcos representan las restricciones de clave ajena, y en el que aparecern adems de las
distintas relaciones con sus atributos y las restricciones de clave ajena las restricciones de
clave primaria, unicidad y obligatoriedad. Las convenciones utilizadas para la representacin
de este grafo son:
El nombre de las tablas ser representado en maysculas.
Primero aparecer el nombre de la relacin y a continuacin sus atributos entre
parntesis.
Las claves primarias aparecen subrayadas.
Las claves alternativas aparecen en negrita.
Las claves ajenas estn representadas en cursiva y referencian a la relacin en la que
son clave primaria mediante una flecha.
Los atributos que pueden tomar valores nulos aparecen con un asterisco.
B:C, Borrado en cascada.
Las opciones
la integridad
referencias
B:N,para
Borrado
con puesta
a nulos. son:
2.2
Curso 2005/2006
2 HND ESI
Nombre
Edad
Telefonos
TELEFONOS(DNI, Telefono)
PERSONA
Cod_Pelicula
M:N
2.2.2 Transformacin de interrelaciones M:N
Un tipo de interrelacin N:M se transforma en una relacin que tendr como clave primaria la
(1 n) principales de los
(1, n)
concatenacin de los identificadores
tipos de entidad que asocia. Adems,
cada uno de los atributos que forman la clava primaria de esta tabla tambin son claves ajenas
ACTORES
intervienen
que referencian PELICULAS
a las tablas en que se han convertido
las entidades interrelacionadas (claves
-8primarias).
ESNE Escuela Superior de Negocios y Estudios Internacionales
Para cada clave ajena as obtenida deber estudiarse cuales son los modos de borrado y
Camino Pardo de Vega/Jos ngel de Sande
modificacin adecuados.
Curso 2005/2006
2 HND ESI
PELICULAS(Cod_Pelicula,....)
B:C
ACTORES(Cod_Actor,....)
M:C
M:C
INTERVIENEN(Cod_Pelicula, Cod_Actor)
Las cardinalidades mnimas de las entidades participantes en la interrelacin se
pueden modelar utilizando restricciones, mediante
una asercin.
B:C
Si la interrelacin tiene atributos, stos pasarn a formar parte de la relacin. En caso
de que la interrelacin contenga un atributo multivaluado que no denote dimensin temporal,
la clave de la relacin deber incluir tambin este atributo.
Sin embargo, en el caso de atributos con dimensin temporal (generalmente atributos
que denotan fechas, horas o intervalos de tiempo), tanto si son multivaluados como
univaluados, es necesario estudiar la semntica del universo de discurso con el fin de
determinar cules sern los atributos que formen parte de la clave primaria de la relacin a al
que da lugar la interrelacin.
fecha_alquiler
Cod_Pelicula
(0 n)
Cod_Cliente
(1, n)
Clientes
PELICULAS
M:N
alquilan
PELICULAS(Cod_Pelicula,....)
B:C
M:C
M:C
CLIENTES(Cod_Clientes,....)
INTERVIENEN(Cod_Pelicula, Cod_Clientes,fecha_alquiler)
2.2.3 Transformacin de interrelaciones 1:N
Propagar los identificadores principales del tipo de entidad que tiene de cardinalidad
mxima 1 a la que tiene N (propagacin de clave). Esta es la regla habitual.
Cod_Departamento
Cod_Empleado
N:1
(1 n)
EMPLEADO
(1, 1)
DEPARTAMENTO
trabaja
Curso 2005/2006
2 HND ESI
EMPLEADO(Cod_Empleado, ...,cod_departamento)
B:C
M:C
Transformar la interrelacin en una tabla como si se tratara de una interrelacin N:M; pero
El nmero
la entidad
ahora laclave
primariadedeejemplares
la relacininterrelacionados
creada es slo la de
clave
primariaque
depropaga
la tabla asulaclave
que
es
muy
pequeo
y,
por
tanto,
existiran
muchos
valores
nulos
en la clave
le corresponde la cardinalidad N. Esta opcin se utiliza cuando:
propagada.
Se prev que la interrelacin en un futuro se convertir en una de tipo N:M.
La interrelacin tiene atributos propios y no es deseable propagarlos (a fin de
conservar la semntica).
Cod_Profesor
1:1
(1 ,1)
PROFESOR
(0, 1)
reponsable
DEPARTAMENTO
Curso 2005/2006
2 HND ESI
PROFESOR(Cod_Profesor, ......)
B:C
M:C
Tiene
(1, n)
HABITACION
HOTEL
1:N
HOTEL(Cod_Hotel, ......)
M:C
B:C
HABITACION(NumHabitacin,Cod _Hotel,....l)
Curso 2005/2006
INF-31 Base de datos Avanzadas
2 HND ESI
Tema 2: Diseo lgico: Modelo Relacional
opcin segunda es la mejor; y desde el punto de vista de la eficiencia deber tenerse en cuenta
que:
En la primera opcin el acceso a una fila que refleje toda la informacin de una
determinada entidad es mucho ms rpido (no hace falta combinar varias tablas).
El segundo opcin es la menos eficiente aunque es la mejor desde un punto de vista
exclusivamente semntico.
Con la opcin tercera se aumenta la eficiencia ante determinadas consultas (las que
afecten a todos los atributos, tanto comunes como propios, de un subtipo) pero se disminuye
ante otras. Esta solucin es en la que se pierde ms semntica; adems si existe solapamiento
se introduce redundancia que debe ser controlada si se quieren evitar inconsistencias.
Se deber elegir una estrategia u otra dependiendo de que sea la semntica o la eficiencia
la que prime para el usuario en un momento determinado.
En los ejercicios propuestos se adoptar preferentemente la segunda opcin. Es decir, se
crear una relacin por cada entidad participante en la jerarqua (una relacin para el
supertipo y otra para cada uno de los subtipos), de tal forma que el supertipo propaga su
Identificador Principal a cada uno de los subtipos que pasan a identificarse por el mismo
identificador (como clave ajena). La relacin creada para el supertipo tendr el atributo
discriminante de la jerarqua.
Tambin habr que especificar las restricciones semnticas de totalidad/parcialidad y
exclusividad/solapamiento.
La totalidad se controla prohibiendo las inserciones en el supertipo y con un disparador
que ante una insercin en el subtipo inserte tambin en el supertipo (el atributo discriminante
no podr tomar valores nulos). En el caso de la parcialidad no es necesario ningn disparador
(el atributo discriminante pude tomar valores nulos).
En cuanto a la exclusividad se requiere una asercin que compruebe que, si un ejemplar
pertenece a uno de los subtipos, entonces no puede pertenecer a los dems. Si se permite
solapamiento tambin es necesaria una asercin similar a la de la exclusividad pero que d
cabida a nuevos valores del atributo discriminante para los casos de solapamiento
comprobando que las ocurrencias estn en los subtipos adecuados.
Por ejemplo, la exclusividad entre ESPECIALIZADO y APRENDIZ (subtipos de
OPERARIOS) puede controlarse con una asercin de la siguiente forma.
CREATE ASSERTION controlar_exclusividad
Check ((Tipo=especializado AND EXIST ESPECIALIZADO
AND NOT EXIST APRENDIZ
OR
(Tipo=aprendiz AND EXIST APRENDIZ
AND NOT EXIST EXPECIALIZADO))
El atributo discriminante de la generalizacin podr admitir valores nulos en el caso de
que haya recubrimiento parcial y deber declararse como NOT NULL si el recubrimiento es
total.
El atributo discriminante constituir un grupo repetitivo (multivaluado), si los subtipos
solapan (generalizacin con solapamiento), debiendo, en este caso, separar este atributo en
Curso 2005/2006
2 HND ESI
una relacin aparte que tendr como clave la concatenacin de la clave del supertipo con el
atributo discriminante.
TRABAJADOR
VOLUNTARIO
Edad
Horas
ASALARIADO
Sueldo
Cargo
TRABAJADOR(Cod_Trabajador,....,Tipo)
B:C
M:C
B:C
M:C
Curso 2005/2006
2 HND ESI