Académique Documents
Professionnel Documents
Culture Documents
Esquemas
Entidad-Interrelacin a
Esquemas Relacionales
1. PRESENTACIN
2. EL MODELO RELACIONAL
2.1 Introduccin
6
6
7
8
10
12
12
14
16
19
20
21
21
22
24
25
26
4. EJEMPLO
28
5. BIBLIOGRAFA
38
_______________________________________________________________________________
BASES DE DATOS
1. Presentacin
Los Sistemas de Gestin de Bases de Datos ms populares actualmente en
computadores son los relacionales. Estos SGBD relacionales estn disponibles en una
amplia gama de equipos y bajo varios sistemas operativos.
Este captulo en su primera parte introduce brevemente el modelo relacional, en
su segunda parte trata de la transformacin de un esquema Entidad Interrelacin en un
esquema relacional, es decir se partir de un diseo conceptual en un modelo de ms
alto nivel (modelo Entidad-Interrelacin, que en el texto se encontrar como ER) y se
harn corresponder los esquemas conceptuales con los esquemas lgicos relacionales
correspondientes.
El esquema Entidad-Interrelacin no es muy diferente de un esquema relacional:
no incluye generalizaciones ni subconjuntos. Se necesitan realizar otras simplificaciones
como la eliminacin de atributos compuestos y polivalentes, el modelado de identificadores externos como internos y la eliminacin de interrelaciones. Este proceso de correspondencia se analizar en posteriores apartados, en los que se trata estos aspectos
de manera independiente.
En este trabajo se har adems una transformacin del esquema relacional al
lenguaje de datos SQL (Structured Query Language), por ser el lenguaje estndar de los
Sistemas de Gestin de Bases de Datos Relacionales. Utilizaremos la sintaxis del SQL
propuesto como lenguaje lgico estndar, que es una ampliacin del estndar actual,
ISO 9075, segn las propuestas elaboradas para el SQL2, ISO(1992) (El SQL del ao 92
es tambin llamado SQL2). En cada regla de transformacin del modelo EntidadInterrelacin al modelo Relacional se incluir adems su correspondencia en SQL2
[DEMI93, cap 23].
Por ltimo se mostrar un caso de estudio para afianzar los conceptos tericos
obtenidos del tema. Se presentar un diseo conceptual en el modelo ER (Ser la representacin de la realidad), partiendo de este modelo y aplicando las correspondientes
reglas de transformacin obtendremos el Esquema Relacional correspondiente para
posteriormente representar este esquema en SQL2.
Los requisitos para poder realizar un seguimiento del trabajo sera el estudio de
una introduccin a las Bases de Datos para el entendimiento de los conceptos bsicos de
stas. Sera necesario adems un estudio del nivel conceptual de Bases de Datos, as
como el pleno entendimiento del modelo Entidad-Interrelacin para tener claros conceptos que se utilizarn en el trabajo y para ver el punto de partida de ste (el punto de
partida como ya se ha dicho sera el esquema Entidad-Interrelacin).
_______________________________________________________________________________
BASES DE DATOS
Pgina
2. El modelo relacional
2.1 Introduccin
Este modelo de datos es un modelo simple, potente y formal para representar la
realidad. Tambin ofrece una base firme para enfocar y analizar formalmente muchos
problemas relacionados con la gestin de bases de datos, como el diseo de la base de
datos, la redundancia, la distribucin, etc. Son fundamentales para el diseo de las bases de datos relacionales el formalismo y una base matemtica.
El elemento bsico del modelo es la relacin, y un esquema de base de datos
relacional es una coleccin de definiciones de relaciones. El esquema de cada relacin
es una agregacin de atributos; el conjunto de todos los valores que puede adoptar un
atributo en particular se denomina dominio de ese atributo.
Una ocurrencia instancia de relacin, llamado tambin extensin de la relacin es una tabla con filas y columnas. Las columnas de las relaciones corresponden a
los atributos; las filas, denominadas tuplas, son colecciones de valores tomados de
cada atributo, y desempean la misma funcin que los casos individuales de entidades
en el modelo ER.. El grado de una relacin es el nmero de columnas; la cardinalidad
es el nmero de tuplas. En el ejemplo 1 se muestra un ejemplo con la relacin ESTUDIANTE:
______________ ejemplo 1 _____________
Esquema: ESTUDIANTE (NOMBRE,EDAD,SEXO)
Ocurrencia: estudiante
NOMBRE
EDAD
SEXO
Juan Gonzlez
19
Varn
Antonia Snchez
23
Hembra
Antonio Hernndez
25
Varn
Alberto Redondo
20
Varn
_______________________________________________________________________________
BASES DE DATOS
Pgina
NOMBRE
EDAD
SEXO
Juan Gonzlez
19
Varn
Antonia Snchez
23
Hembra
Antonio Hernndez
25
Varn
Alberto Redondo
20
Varn
Cristina Tejero
19
Hembra
CODIGO
INSTRUCTOR
C11
Piedrabuena
C12
Franca
C13
Mrquez
_______________________________________________________________________________
BASES DE DATOS
Pgina
NUMERO_CURSO
NOMBRE_ESTUDIANTE
CALIFICACION
C11
Juan Gonzlez
A+
C11
Antonia Snchez
B-
C12
Antonio Hernndez
C14
Juan Gonzlez
B+
NOMBRE
CIUDAD
SE_
MATRICULA
NUM_ESTUDIANTE
ESTUDIANTE
APELLIDO
EDAD
CODIGO_COLEGIO
COLEGIO
NOMBRE
CIUDAD
CODIGO_COLEGIO
ESTUDIANTE
NUM_ESTUDIANTE
APELLIDO
EDAD
PERSONA
SEXO
CALLE
DIRECCION
CIUDAD
PROVINCIA
EDAD
SEXO
CALLE
CIUDAD
PROVINCIA
APELLIDO
PERSONA
EDAD
SEXO
DIRECCION
CODIGOS_MATERIALES (1,n)
DESCRIPCION
PRECIO
DESCRIPCION
PRECIO
CODIGO_ARTCULO
MATERIAL_PRODUCTO
CODIGO_MATERIAL
_______________________________________________________________________________
BASES DE DATOS
Pgina
DEPARTAMENTO
NUMERO_TELEFONO
(0,m)
NUM_MAX_EXTUDIANTE
OFRECE
TRIMESTRE (1,n)
(1,n)
NUM_CURSO
CURSO
COD_PROFESOR
PROFESOR
DEPARTAMENTO
COD_PROFESOR
NUMERO_TELEFONO
OFERTA_CURSO
(0,m)
NUM_CURSO
NUM_MAX_EXTUDIANTE
SEMESTRE
OFRECE
(1,n)
NUM_CURSO
CURSO
E_CIVIL
Modelo Relacional :
DOMINIO E_CIVIL CHAR(1) IN (S,C,V,D)
En el SQL2 expresamos el dominio de la siguiente forma :
CREATE DOMAIN Estados_Civiles AS CHAR(1)
CHECK (VALUE IN (S,C,V,D))
[DEMI93, cap 23.3]
10
domicilio
telfono
ALUMNO
tipo
nombre
apellido
Telfono
3238060
3141932
3981265
5667676
Tipo
P
P
I
A
Clave primaria
_______________________________________________________________________________
BASES DE DATOS
Pgina
11
12
(1,N)
Cod_artculo
escribe
(0,N)
ESCRITOR
ARTICULO
N:N
13
titulo
Cod_editorial
(0,N)
LIBRO
nombre
(1,1)
Pertenece
EDITORIAL
1:N
_______________________________________________________________________________
BASES DE DATOS
Pgina
14
Num_telefono
num_pedido
fecha
descuento
(1,n)
COMERCIANTE
(0,1)
establece
PEDIDO
1:N
En el modelo relacional:
COMERCIANTE (NOMBRE,NUM_TELFONO)
PEDIDO (NUM_PEDIDO,FECHA)
PEDIDO_VENTAS (NUM_PEDIDO,NOMBRE,DESCUENTO)
_______________________________________________________________________________
BASES DE DATOS
Pgina
15
(0,1)
PERTENECE
1:N
3.4.3 Interrelaciones 1 : 1
Una interrelacin de tipo 1:1 es un caso particular de una N:N o, ms restrictivamente, de una 1:N, por lo que no hay una regla fija para la transformacin de este tipo
de interrelacin en el modelo relacional estndar, pudindose aplicar la regla explicada
para interrelaciones N:M (con lo que crearamos una relacin) o aplicar la regla de las
interrelaciones 1:N (Esto es, propagar la clave correspondiente). En este ltimo caso hay
que observar que en una interrelacin 1:1, la propagacin de la clave puede efectuarse
en ambas direcciones.
_______________________________________________________________________________
BASES DE DATOS
Pgina
16
(0,1)
HOMBRE
(0,1)
matrimonio
MUJER
1:1
Modelo relacional:
_______________________________________________________________________________
BASES DE DATOS
Pgina
17
(0,1)
responsable
EMPLEADO
AREA
Modelo Relacional:
EMPLEADO (Cod_Empleado,.....)
AREA (Cod_area,....., Cod_Empleado)
clave ajena
not null
En su representacin en SQL2 se emplea lo ya explicado.
3.- Si las dos entidades E1 y E2 que se relacionan tienen participacin
total, es decir, de la forma R (E1(1,1):E2(1,1)), se pueden entonces plantear dos casos:
a) Caso que las dos entidades tengan las mismas claves primarias;
Las dos relaciones correspondientes se integran en una relacin combinando todos sus
atributos e incluyendo la clave primaria slo una vez. Este caso se ve en el ejemplo 15.
_____________ ejemplo 15 ______________
En el modelo ER:
num _proveedor
nom bre
num _proveedor
(1,1)
PRO VEEDO R
direc c in_envo
(1,1)
CON
IN F O R _P R O
1:1
En el modelo relacional:
ENVIO_PROVEEDOR (num_proveedor,nombre,direccin_envo)
b) Si las dos entidades tienen claves primarias diferentes tambin
se integran en una relacin, combinando todos los atributos e incluyendo las claves primarias de ambas, teniendo que elegir una de las claves primarias como clave primaria de
la relacin resultante. Lo vemos en el ejemplo 16.
_______________________________________________________________________________
BASES DE DATOS
Pgina
18
num_proveedor
(1,1)
PROVEEDOR
nombre
(1,1)
CON
INFOR_PRO
1:1
En el modelo relacional:
ENVIO_PROVEEDOR (num_proveedor,direccin,nombre)
[DEMI93, cap23.3]
Cod_autor
derechos
(1,N)
AUTOR
Cod_libro
(0,N)
escribe
LIBRO
N:M
Modelo Relacional:
19
_______________________________________________________________________________
BASES DE DATOS
Pgina
20
(1,1)
REVISTA
(0,N)
ID
tiene
EJEMPLAR
1:N
En el modelo relacional:
REVISTA (Cod_revista,......)
EJEMPLAR ( Cod_revista, cod_ejemplar,...)
clave ajena
not null
on delete cascade
on update cascade
_______________________________________________________________________________
BASES DE DATOS
Pgina
21
_______________________________________________________________________________
BASES DE DATOS
Pgina
22
(0,1)
ARTCULO
LIBRO
cdigo_editorial
ao_edicin
Modelo Relacional:
a.- Resolvindolo como en el primer caso:
DOCUMENTO (codigo,titulo,idioma,....,)
ARTCULO (cdigo,...)
LIBRO (cdigo,ao_editorial,ao_edicin,...)
ARTCULO (cdigo,titulo,idioma,...)
LIBRO (cdigo,ttulo,idioma,...)
[DEMI, cap 23.4]
_______________________________________________________________________________
BASES DE DATOS
Pgina
23
_______________________________________________________________________________
BASES DE DATOS
Pgina
24
TIEMPO (FECHA_INICIO,HORA_INICIO,HORA_FIN,MINUTOS_I,...)
Sin embargo, cuando la dimensin temporal la hemos recogido en el esquema
E/R a travs de atributos de interrelacin de tipo FECHA, la transformacin en el Modelo Lgico Estndar consiste en pasarlos a atributos de la relacin que corresponda.
Sobre este punto debemos tener cuidado a la hora de elegir la clave primaria de la relacin resultante, dependiendo de los supuestos semnticos del entorno. Vemoslo en el
ejemplo 18.
______________ ejemplo 18 ______________
Modelo ER:
cod_alumno
(0,N)
fecha_inicio
presta
cod_libro
fecha_fin
(0,N)
LIBRO
ALUMNO
N:M
_______________________________________________________________________________
BASES DE DATOS
Pgina
25
Modelo Relacional:
PRESTA (cod_alumno,cod_libro,fecha_inicio,fecha_fin)
ALUMNO (cod_alumno,.....)
LIBRO (cod_libro,.....)
Por ejemplo en esta figura podemos comprobar que la clave primaria de la relacin obtenida de la interrelacin un socio toma prestado un libro de la biblioteca durante un periodo de tiempo determinado no es slo la concatenacin del atributo identificador principal de ALUMNO y el de LIBRO, sino que si se supone que un alumno
puede tomar prestado un mismo libro en distintos periodos de tiempo, es necesario, a fin
de formar la clave primaria, aadir a los cdigos de ALUMNO y de LIBRO el atributo
fecha_inicio. La transformacin, por lo tanto, es directa, pero debemos tener en cuenta
lo que acabamos de sealar respecto a la clave primaria a fin de salvaguardar la integridad de la base de datos.
Es preciso observar que esta aparente sencillez en la transformacin de algo tan
complicado como es la dimensin temporal es debido a la poca semntica y precisin
del Modelo E/R para tratar los aspectos temporales. En sistemas de informacin en los
que la dimensin temporal es fundamental, como es el caso de los sistemas estadsticos,
el modelo E/R no resuelve muchos de los problemas de modelizacin relativos a la dimensin temporal. [DEMI93, cap 23.4]
1:N
(1,N)
EJEMPLAR
(1,1)
ID
tiene
REVISTA
titulo
N_ejemplares
_______________________________________________________________________________
BASES DE DATOS
Pgina
26
_______________________________________________________________________________
BASES DE DATOS
Pgina
27
4. Ejemplo
A partir del esquema conceptual en el modelo Entidad/Interrelacin extendido
obtendremos el esquema lgico relacional por transformacin y criterios utilizados en
cada caso. Se dibujar adems el grafo relacional correspondiente.
Diagrama Entidad Interrelacin:
censo
v_nulos
v_blanco
(1,N)
v_obtenidos
VOTOS
MESA
(1,N)
N_mesa
ES_DE
(1,1)
direccion
COLEGIO
(1,N)
(1,N)
porcentaje
PERTENECE
siglas
(1,N)
(1,1)
candidatura
N_municipio
(1,N)
PARTIDO
(1,1)
nombre
MUNICIPIO
direccin _sede
calle
N_distrito
n_concejales
v_obtenidos
codigo
nombre
N_colegio
poblacin
(0,N)
localidad cp
zona
alcalde
n_concejales
censo
nombre_alcalde
v_nulos
v_blanco
_______________________________________________________________________________
BASES DE DATOS
Pgina
28
PARTIDO
se transforma en:
nombre
PARTIDO
direccin_sede
direccin_sede
calle
localidad cp
Transformacin de dominios
Los atributos del tipo cdigos: DOMINIO CODIGOS CHAR(3)
Los atributos del tipo nmeros: DOMINIO NMEROS INTEGER(8)
Los atributos del tipo direcciones: (incluye calle, localidad y cp)
DOMINIO DIRECCIONES CHAR(30)
Los atributos del tipo nombres: DOMINIO NOMBRES CHAR(20)
Los atributos del tipo concejales: DOMINIO CONCEJALES INTEGER(2)
Los atributos del tipo siglas: DOMINIO SIGLAS CHAR(10)
El atributo del tipo porcentaje: DOMINIO PORCENTAJE CHAR(3)
Transformacin de entidades:
* La entidad PARTIDO se transforma en:
_______________________________________________________________________________
BASES DE DATOS
Pgina
29
_______________________________________________________________________________
BASES DE DATOS
Pgina
30
Colegio
Municipio
Municipio
Partido
Partido
_______________________________________________________________________________
BASES DE DATOS
Pgina
31
Transformacin de restricciones
En el ejemplo tendremos las siguiente restricciones de integridad:
1.- El n de concejales de un municipio es:
Si Poblacin <500: 5
de 500 a 999 :
7
de 1000 a 1999:
9
de 2000 a 4999:
11
de 5000 a 9999:
13
de 10000 a 19999: 15
de 20000 a 49999: 17
mas de 49999:
17 + 2 por cada fraccin
Esta restriccin se har mediante un CHECK cuando creemos la tabla correspondiente a la entidad MUNICIPIO (En SQL2)
2.- Tenemos el siguiente subesquema:
_______________________________________________________________________________
BASES DE DATOS
Pgina
32
(1,N)
(1,N)
votos
MESA
PARTIDO
v_obtenidos (a)
(1,N)
(1,N)
candidatura
MUNICIPIO
Los votos obtenidos(a) en Municipio por un partido son la suma de los obtenidos
en las mesas del municipio(b). (Lo haremos en SQL2 mediante la restriccin: CREATE
ASSERTION) .
_______________________________________________________________________________
BASES DE DATOS
Pgina
33
CHAR(3)
INTEGER(8)
CHAR(20)
INTEGER(2)
CHAR(10)
* tablas :
CREATE TABLE Mesa
(
nmunicipio
ndistrito
ncolegio
n_mesa
censo
v_nulos
v_blanco
cdigos,
cdigos,
cdigos,
cdigos,
nmeros,
nmeros,
nmeros,
Codigos,
cdigos,
cdigos,
direcciones,
34
cdigos,
tiposiglas,
nombres,
direcciones,
35
cdigos,
cdigos,
cdigos,
cdigos,
cdigos,
tiposiglas,
nombres,
nmeros,
_______________________________________________________________________________
BASES DE DATOS
Pgina
36
Grafo Relacional
codigo (de partido)
nmunicipio
MUNICIPIO
codigo
CANDIDATURA
PARTIDO
n municipio
codigo
COLEGIO
nmunicipio, n_distrito, n_colegio
MESA
VOTOS
_______________________________________________________________________________
BASES DE DATOS
Pgina
37
5. Bibliografa
Bsica:
[BATI94]
_______________________________________________________________________________
BASES DE DATOS
Pgina
38