Académique Documents
Professionnel Documents
Culture Documents
Gustavo A. Donoso M.
Diseo de Software
Gustavo A. Donoso M.
Capitulo 4: Diseo de Datos. (work in progress, casi casi)
4.1.- Objetivos
4.2.- Introduccin
Como ya se ha visto en captulos anteriores, el diseo de datos no
cumplira con la lgica de un gran espacio de solucin que contiene
alternativas divergentes. Si no ms bien se trata de un modelo de una
realidad que deriva en un diseo.
Tambin se revis, en forma general, algunas soluciones estndar de
representacin de relaciones entre datos; las estructuras de datos. En
este captulo veremos como los diseos de estructuras de datos
pueden ser especificados.
Las bases de datos corresponden a repositorios de datos que se
organizan en torno al modelo relacional y cmo a travs de ese
modelo se puede describir una realidad y la manera en que esos
diseos pueden ser especificados.
4.3.- Estructuras de Datos
Como se vea anteriormente la estructura de datos es la forma de
representar una realidad de modo de hacerla automatizable.
Un dato es un par (atributo, valor) que permite representar algo. Un
valor como 35 no significa, normalmente, nada del mundo real, es
cuando le asociamos un atributo que adquiere capacidad de
representar: (edad en aos, 35), (peso en kilos, 35), (altura en
metros, 35), etc.
Una estructura de datos corresponde a la representacin de un
conjunto de datos relacionados de alguna forma. La relacin ms
simple es la de pertenencia.
Supongamos que se quiere saber el peso y la altura de un nio,
entonces se requiere al menos tres datos relacionados, nombre del
nio, peso en kilos (kg) y altura en metros (m). As por ejemplo, Pedro
que mide 1.35 m y pesa 28.6 kg se representa como el conjunto de
esos tres datos:
(Nombre, Pedro) + (Altura en m, 1.35) + (Peso en kg, 28.6)
Captulo4.DiseodeDatosPgina1de20
Diseo de Software
Gustavo A. Donoso M.
Peso en kg
Altura en m
Pedro
1.35
28.6
Mara
1.30
25.8
Juan
1.40
38.3
Rosa
1.33
33.4
Diseo de Software
Gustavo A. Donoso M.
Captulo4.DiseodeDatosPgina3de20
Diseo de Software
Gustavo A. Donoso M.
Captulo4.DiseodeDatosPgina4de20
Diseo de Software
Gustavo A. Donoso M.
Captulo4.DiseodeDatosPgina5de20
Diseo de Software
Gustavo A. Donoso M.
Captulo4.DiseodeDatosPgina6de20
Diseo de Software
Gustavo A. Donoso M.
Captulo4.DiseodeDatosPgina7de20
Diseo de Software
Gustavo A. Donoso M.
Captulo4.DiseodeDatosPgina8de20
Diseo de Software
Gustavo A. Donoso M.
Captulo4.DiseodeDatosPgina9de20
Diseo de Software
Gustavo A. Donoso M.
Captulo4.DiseodeDatosPgina10de20
Diseo de Software
Gustavo A. Donoso M.
3.- Conflicto entre tipos de objetos en los que un atributo en una vista
es una entidad en otra o viceversa:
Captulo4.DiseodeDatosPgina11de20
Diseo de Software
Gustavo A. Donoso M.
Captulo4.DiseodeDatosPgina12de20
Diseo de Software
Gustavo A. Donoso M.
Calle
Persona
Direccin
Nmero
Ciudad
Persona
Calle
(1,n)
Direccin
Nmero
Ciudad
Modelo Relacional:
Persona(Rut, Nombre)
Direccin(Rut, Calle, Nmero, Ciudad) con Rut clave fornea que
referencia a Persona.
Captulo4.DiseodeDatosPgina13de20
Diseo de Software
Gustavo A. Donoso M.
Autor
(1,n)
Escribe
@cod-autor
(0,n)
Libro
@cod-libro + ttulo
Captulo4.DiseodeDatosPgina14de20
Diseo de Software
Gustavo A. Donoso M.
Relaciones 1:N
Aqu existen dos casos a considerar.
a. La entidad del lado de muchos tiene una participacin
obligatoria.
Ciudad
(1,1)
@nombre + habitantes
Pertenece
a
(1,n)
Regin
(0,1)
Pertenece
a
(1,n)
Vendedor
@nombre + fono
Captulo4.DiseodeDatosPgina15de20
Diseo de Software
Gustavo A. Donoso M.
(1,1)
(1,1)
Con
@num-cliente + nombre-cliente
InfoEnvo
@num-cliente + direccin-envo
(0,1)
@num-cliente + nombre
Posee
(1,1)
Tarjeta
Crdito
(0,1)
@rut + nombre
Matrimonio
fecha
(0,1)
Mujer
@rut + nombre
Captulo4.DiseodeDatosPgina16de20
Diseo de Software
Gustavo A. Donoso M.
Atributos de Relaciones
Si la relacin se transforma en una relacin del Modelo Relacional,
todos sus atributos pasan a ser columnas de la relacin.
En caso de que la relacin se transforme mediante propagacin de
clave, sus atributos migran junto con la clave a la relacin que
corresponda, aunque puede ser mejor crear una nueva relacin para
representar un interrelacin que tiene atributos.
Relaciones exclusivas (MEREs)
Para soportar interrelaciones exclusivas se deben definir las
restricciones pertinentes en cada caso.
Libro
(0,1)
edita1
(1,n)
Universidad
(0,1)
edita2
(1,n)
Editorial
Modelo Relacional:
Libro(Id-Libro, ..., Id-Editorial, Id-Universidad)
Universidad (Id-Universidad, ...)
Editorial (Id-Editorial, ...)
En este caso, se propagan las claves de Universidad y Editorial a
Libro. Para obligar a que se cumpla la exclusividad hay que introducir
las correspondientes restricciones en una clasula CHECK:
CHECK (( Id-Editorial IS NULL and Id-Universidad IS NOT NULL) OR (IdEditorial IS NOT NULL and Id-Universidad IS NULL))
Generalizaciones (MEREx)
Las generalizaciones no son objetos que puedan representarse
directamente en el modelo relacional. Ante una entidad y sus
subtipos caben varias soluciones de transformacin, con la
consiguiente prdida de semntica dependiendo de la estrategia
elegida, las cuales son 3:
1. Integrar la jerarqua de generalizacin en una sola entidad
uniendo los atributos de las subentidades y aadiendo estos
atributos a los de la superentidad. Esto se permite si la
distincin entre las subentidades no es significativa desde el
punto de vista de una aplicacin. Ms an, se aade un
atributo discriminativo para indicar el caso al cual pertenece la
Captulo4.DiseodeDatosPgina17de20
Diseo de Software
Gustavo A. Donoso M.
Postgrado
Gerente
Captulo4.DiseodeDatosPgina18de20
Diseo de Software
Gustavo A. Donoso M.
Subcontrato
(1,1)
tiene
(0,n)
EJEMPLAR
Captulo4.DiseodeDatosPgina19de20
Diseo de Software
Gustavo A. Donoso M.
En MR: LIBRO(cod_libro,...)
EJEMPLAR(cod_libro, cod_ejemplar,...)
clave fornea, NOT NULL, ON DELETE CASCADE, ON UPDATE
CASCADE.
Para dependencia en identificacin, la clave primaria de la entidad
dbil debe estar formada por la concatenacin de las claves de las
dos entidades participantes en la interrelacin.
Captulo4.DiseodeDatosPgina20de20