Vous êtes sur la page 1sur 29

Captulo 4

Modelo Lgico
Objetivos
Tablas, Columnas, Filas y Campos(Primera Forma Normal)
Definicin de Primary Key y Foreign Key
Conversin de Entidades del Modelo Conceptual
Conversin de Relaciones:
1:1
1:M
M:M
Ternaria
Conversin de Relaciones Especiales
Supertipo-Subtipo
Dependencia
Recursiva
Resolucin de la Ubicacin de los Atributos de la Relacin
Modelo Lgico
El modelo lgico es el refinamiento del
Modelo Conceptual
Aqu se reducen y/o aumentan entidades y
solo quedan aquellas que van a ser
diseadas como tablas de la Base de Datos
Formas Normales (FN)
En la teora de bases de datos relacionales,
las formas normales (FN) proporcionan los
criterios para determinar el grado de
vulnerabilidad de una tabla a
inconsistencias y anomalas lgicas.
Tablas, Columnas, Filas y
Campos(Primera Forma Normal)
Una tabla de base de datos relacional que
se adhiere a la 1FN es una que satisface
cierto conjunto mnimo de criterios.
Estos criterios se refieren bsicamente a
asegurarse que la tabla es una
representacin fiel de una relacin y est
libre de "grupos repetitivos".
Tablas, Columnas, Filas y
Campos(Primera Forma Normal)
Una tabla est en 1FN si satisface las siguientes cinco condiciones:
1. No hay orden de arriba-a-abajo en las filas.
2. No hay orden de izquierda-a-derecha en las columnas.
3. No hay filas duplicadas.
4. Cada interseccin de fila-y-columna contiene exactamente un valor
del dominio aplicable y nada ms.
5. Todas las columnas son regulares es decir, las filas no tienen
componentes como IDs de fila, IDs de objeto, o timestamps ocultos.
Cedula Nombre Direccin Telfono
0876456324 Jorge
Santos
1234 Av.
10
2345678
0964532748 Luis Tinoco 6543 Av. 4 2654345
1345234567 Ana
Ramrez
34 Av. 6 2654567
Cedula
Nombre
Direccin
Telfono
CLIENTE
Tablas, Columnas, Filas y
Campos(Primera Forma Normal)
La violacin de cualesquiera de estas
condiciones significara que la tabla no es
estrictamente relacional, y por lo tanto no est
en 1FN.
Cedula Nombre Apellido Direccin Telfono
08764563
24
Jorge Santos 1234 Av.
10
2345678
09645327
48
Luis Tinoco 6543 Av. 4 2654345
13452345
67
Ana Ramrez 34 Av. 6 2654567
Cedula
Nombre
Apellido
Direccin
Telfono
CLIENTE
Tabla/fila/columna = archivo/registro/campo = relacin/tupla/
atributo
Tipos de Claves
Una clave es una o ms columnas de una
tabla que identifica una fila.
Una clave nica identifica una sola fila, una
no nica identifica a varias filas.
Una clave compuesta es una clave que
contiene dos o ms atributos.
Una tabla tiene una clave primaria nica y
puede tener claves nicas adicionales
llamadas claves candidatas.
Primary Key Clave primaria
Es usada para:
Representar la tabla en las relaciones
Organizar el almacenamiento de tabla
Generar ndices
Foreign Key Clave Fornea
Una clave fornea es una referencia a una
clave en otra tabla.
Las claves forneas no necesitan ser claves
nicas en la tabla donde estn y s a donde
estn referenciadas.
idEmpleado (pk)
Nombre
Direccin
Telfono
idDepartamento(fk)
EMPLEADO
idDepartamento(pk)
Nombre
DEPARTAMENTO
trabaja
Conversin de entidades
del modelo conceptual
Cada entidad del modelo conceptual se
transforma directamente en una tabla.
Los atributos de la entidad pasan a ser
automticamente las columnas de la tabla.
Entidad Tabla
Atributos Columnas
idCliente int (pk)
Nombre char(30)
Direccin char(50)
Telfono int
CLIENTE
idCliente
Nombre
Direccin
Telfono
CLIENTE
Conversin de Relaciones
Cada relacin de un modelo conceptual se
transforma directamente en una tabla.
Los campos de esta tabla son las claves
primarias de todas las entidades que
participen en la relacin ms todos aquellos
atributos que pudiera tener la relacin.
Relacin Tabla
Simplificacin del modelo lgico
El nmero de tablas que componen la base
de datos debe mantenerse en el mnimo
posible.
Esto mismo es aplicable a las relaciones
binarias con cardinalidad uno a uno.
Las tablas con un nico atributo se pueden
eliminar.
Relaciones 1:1
Si las entidades que se asocian poseen
cardinalidades (0,1), entonces la relacin se
transforma en una tabla, adems de las dos
tablas a las que se transforman cada una de
las entidades:
idHombre
Nombre
HOMBRE
idMujer
Nombre
MUJER
matrimonio
idHombre int (pk)
Nombre char(30)
HOMBRE
idMujer int (pk)
Nombre char(30)
MUJER
idMujer int (fk)
idHombre int (fk)
MATRIMONIO
idMujer= idMujer
idHombre= idHombre
Relaciones 1:1
Si una de las entidades que participa en la relacion posee
cardinalidad (0,1), mientras que en la otra es (1,1), conviene
propagar la clave de la entidad con cardinalidad (1,1) a la tabla
resultante de la entidad de cardinalidades (0,1) con el fin de
evitar que aparezcan valores nulos.
idEmpleado
Nombre
Direccin
Telfono

EMPLEADO
idDepartamento
Nombre
DEPARTAMENTO
dirige
idEmpleado int (pk)
Nombre char(30)
Direccin char(50)
Telfono int
EMPLEADO
idDepartamento
int(pk)
Nombre char(30)
idEmpleado int (fk)
DEPARTAMENTO
idEmpleado= idEmpleado
Relaciones 1:1
En el caso de que ambas entidades presenten cardinalidades
(1,1), se puede propagar la clave de cualquiera de ellas a la tabla
resultante de la otra, teniendo en cuenta en este caso los
accesos ms frecuentes y prioritarios a los datos de las tablas.

codigo
Nombre
aoFundacion


EQUIPO

cedula
Nombre
Apellido
PRESIDENTE
tiene
codigo= codigo


Cedula char (12) (pk)
Nombre char(30)
Apellido char(30)
Codigo int (fk)
PRESIDENTE

Codigo int (pk)
Nombre char(50)
aoFundacion int


EQUIPO
cedula= cedula

Cedula char (12) (pk)
Nombre char(30)
Apellido char(30)
PRESIDENTE
Codigo int (pk)
Nombre char(50)
aoFundacion int
Cedula char(12) (fk)


EQUIPO
Relaciones 1:M
Las tablas obtenidas como transformacin de
relaciones binarias con cardinalidad uno a
varios se pueden eliminar.
Los atributos que formaban parte de la tabla
pasan a formar parte de la tabla que
representa la entidad con cardinalidad varios.
Asimismo, si la relacin tuviera atributos
propios, tambin pasaran a la tabla que
representa la entidad con cardinalidad varios.
Relaciones 1:M
idEmpleado int (pk)
Nombre char(30)
Direccin char(50)
Telfono int
idDepartamento int(fk)
EMPLEADO
idDepartamento int (pk)
Nombre char(30)
DEPARTAMENTO
idDepartamento = idDepartamento
idEmpleado
Nombre
Direccin
Telfono

EMPLEADO
idDepartamento
Nombre
DEPARTAMENTO
trabaja
Relaciones 1:M
idUsuario= idUsusario
idUsuario
password
nombre
apellido

USUARIO
idReservacion
fechaLlegada
horaLlegada
diasPermanencia
RESERVACION
registra
fechaReservacion
horaReservacion
idUsuario char(30)(pk)
Password char(30)
Nombre char(30)
Apellido char(30)

USUARIO
idReservacion int (pk)
fechaLlegada date
horaLlegada time
diasPermanencia int
fechaReservacion date
horaReservacion time
idUsuario char(30) (fk)
RESERVACION
Relaciones M:M
idcliente
Nombre
Apellido
Direccin
Telfono
CLIENTE
codProducto
Descripcion
PRODUCTOS
compra
fechaCompra
Idcliente int (pk)
Nombre char(30)
Apellido char(30)
Direccin char(50)
Telfono int
CLIENTE
codProducto int (pk)
Descripcion
char(50)
PRODUCTOS
idCompra (pk)
idCliente int (fk)
codProducto int(fk)
fechaCompra date
COMPRA
i
d
C
l
i
e
n
t
e
=

i
d
C
l
i
e
n
t
e

c
o
d
P
r
o
d
u
c
t
o
=

c
o
d
P
r
o
d
u
c
t
o

Relaciones Ternarias


idCliente
Nombre
Direccion
Telefono
Ciudad


CLIENTE


idCliente int (pk)
Nombre char(30)
Direccion char(50)
Telefono int
Ciudad char(30)


CLIENTE


idFormaPago
descripcion


FORMADEPAGO


numFactura
montoTotal


FACTURA
paga


Fecha
hora




idFormaPago int (pk)
Descripcion char(50)


FORMADEPAGO


idFormaPago int (fk)
idCliente int (fk)
numFactura int (fk)
Fecha date
Hora time

PAGO


numFactura int (pk)
montoTotal numeric(20,2)


FACTURA
i
d
C
l
i
e
n
t
e
=

i
d
C
l
i
e
n
t
e

idFormaPago= idFormaPago
numFactura= numFactura
Conversin de Relaciones Especiales
Supertipo Subtipo
(a) Englobar todos los atributos de la entidad y sus subtipos en una
sola tabla. (Adoptaremos esta solucin cuando los subtipos se
diferencien en muy pocos atributos y las relaciones que los
asocian con el resto de entidades del modelo conceptual sean
las mismas para todos los subtipos.
(b) Crear una tabla para el supertipo y tantas tablas como subtipos
haya, con sus atributos correspondientes. Esta es la solucin
cuando existen muchos atributos distintos entre los subtipos y
se quieren mantener de todas las maneras los atributos
comunes a todos ellos en una tabla.
(c) Considerar las tablas distintas para cada subtipo, que
contengan adems los atributos comunes. Se elegir esta
opcin cuando se dieran las mismas condiciones que en el
caso anterior (muchos atributos distintos) y los accesos
realizados sobre los datos de los distintos subtipos siempre
afectan a atributos comunes.
Supertipo Subtipo


idCliente
Nombre
Direccion
Telefono
Ciudad

CLIENTE


RUC
Razon social

Empresa


Cedula
Estado civil

Persona


idCliente int (pk)
Nombre char(30)
Direccion char(50)
Telefono int
Ciudad char(30)
RUC char(14)
Razon social char(20)
Cedula char(12)
EstadoCivil char(10)

CLIENTE
(a)
Supertipo Subtipo


idCliente int (pk)
Nombre char(30)
Direccion char(50)
Telefono int
Ciudad char(30)


CLIENTE
(b)

idCliente
Nombre
Direccion
Telefono
Ciudad

CLIENTE


RUC
Razon social

Empresa


Cedula
Estado civil

Persona

idCliente int(fk)
RUC char(14) (pk)
Razon social char(20)
Empresa


idCliente int (fk)
Cedula char(12) (pk)
EstadoCivil char(10)

Persona
Supertipo Subtipo
(c)

idCliente
Nombre

CLIENTE


RUC
Razon social

Empresa


Cedula
Estado civil

Persona
RUC char(14) (pk)
idCliente int (pk)
Nombre char(30)
Razon social char(20)
Empresa

Cedula char(12) (pk)
idCliente int (pk)
Nombre char(30)
EstadoCivil char(10)

Persona
Dependencia
Edificio
Departamento
tiene
idEdificio
Nombre
direccion
idDepartamento
Numero
Piso
Edificio
Departamento
idEdificio int (pk)
Nombre char(30)
direccion char(50)
idDepartamento int (pk)
Numero int
Piso int
idEdificio int (fk)
idEdificio= idEdificio
Recursiva
Supervisa
idEmpleado
Nombre
Apellido
Direccin
Telfono
Empleado
idEmpleado int (pk)
Nombre char(30)
Apellido char(30)
Direccin char(50)
Telfono int
idEmpleado2 int(fk)
Empleado
idEmpleado= idEmpleado2
Diccionario de Datos
Es un documento que muestra una
descripcin de los elementos que componen
cada tabla.
Para cada atributo de la tabla se especifica:
Atributo Tipo de Dato Dominio Descripcin
Ejemplo de Diccionario de Datos

Vous aimerez peut-être aussi