Capítulo II: Modelos de Datos
2.1 Introducción
A través de los años, el hombre ha intentado entender y explicar el
comportamiento del entorno vital, utilizando su capacidad de abstracción; esta
capacidad es una simplificación del proceso de interpretación, al reducir el número
de parámetros, y de las relaciones que existen en los fenómenos naturales que se
desean interpretar.
Por eso en el entendimiento e interpretación de un problema, es necesario
analizar y reconocer las características de ese problema, es decir, hacer una
propuesta o modelo con las propiedades y con los parámetros, que son parte de
ese problema y lo identifican entre otros posibles problemas que existan.
Así, en ese modelo se identifica un dominio en el que esas propiedades pueden
definirse, dicho modelo tendrá las relaciones que existan entre las propiedades
que definen al problema bajo estudio, ese modelo ofrecerá bastante información y
datos, dicho modelo es una representación abstracta de un problema.
2.2 Modelo de Datos
Un Modelo de Datos, es una representación de los elementos que son parte de
un problema, de las relaciones que existen entre esos elementos, y del
comportamiento de sus elementos al variar el tiempo.
Los modelos de datos contienen:
Un conjunto de reglas con las que se puede representar gráficamente el
problema.
Un Pseudo lenguaje con el que se puede describir las propiedades del
modelo.
Un conjunto de restricciones que delimitan el ámbito en el que el modelo se
puede utilizar.
La representación de un problema mediante un modelo de datos, tiene tres
perspectivas:
Nivel Conceptual: En este nivel se presenta un modelo del problema, en el que
se describen cada uno de los tipos de elementos del mismo. Se describen sus
propiedades junto con los dominios de datos básicos en los que se pueden medir
esas propiedades, además de las restricciones o límites de los valores que
pueden tomar cada una de esas propiedades, se describen también las relaciones
entre objetos que forman parte del sistema.
Nivel Lógico: En este nivel se introducen en la representación del problema,
todas las restricciones que imponen los mecanismos, soportes, y plataformas, que
se van a utilizar para la representación y el tratamiento de la información del
problema.
El hardware y software que se utilizará para almacenar y procesar la información,
afectará de alguna manera a la representación del problema, en base al Modelo
de Base de Datos que se utilizará: relacional, de red, jerárquico, u orientado a
objetos, serán las reglas que se deberán seguir para la representación del
problema en ese modelo.
Nivel Físico: En este nivel, la representación del problema está basada en el
soporte utilizado para su representación, en los métodos y procedimientos que se
utilizarán en el tratamiento de la información correspondiente. El problema se va a
representar utilizando las estructuras de datos propias del modelo de base de
datos que se utilizará, que pueden ser: arreglos, pilas, colas, árboles, listas, o
algunas combinaciones de las estructuras anteriores.
La tabla que sigue describe los niveles de abstracción que existen en la
representación de problemas.
Nivel de Estructura Comportamiento
Descripción
Descripción de los objetos Descripción del comportamiento
del mundo real, de sus de los objetos: acciones,
Modelo atributos, propiedades, y las operaciones, y procesos que
relaciones entre los objetos. esos objetos realizan sobre
Conceptual otros objetos, y las que se
realizan sobre los objetos del
sistema.
Descripción de los objetos, Descripción de las tareas, que
Modelo y las relaciones que existen representan el comportamiento
entre los objetos lógicos, de los objetos. Esas tareas se
Lógico identificando sus atributos. agrupan en procedimientos y
rutinas.
Descripción de los objetos Descripción de las acciones que
físicos. La estructura y las se realizan para representar el
Modelo relaciones de los objetos se comportamiento de los objetos.
representan en forma Dichas acciones son
Físico adecuada para almacenar, representadas en el lenguaje de
recuperar y tratar la programación que se vaya a
información. utilizar.
En la representación de un problema, además de los tres niveles de abstracción
se tienen dos aspectos, el estático, y el dinámico; que comprenden la evolución
del sistema a través del tiempo, eso no es una tarea fácil ni rápida. Para generar la
representación de problemas del mundo real, teniendo en cuenta sus aspectos
estáticos y dinámicos, se deben considerar una serie de reglas básicas:
1: La representación del problema se debe realizar siguiendo una metodología o
plan pre establecido de antemano, que puede ser soportado por uno o varios
modelos de base de datos.
2: Iniciar haciendo una descripción del problema por representar, describir el
comportamiento global, los objetivos, y el alcance del sistema por generar, eso se
debe hacer generando un documento de requerimientos, a un nivel de abstracción
general, sin entrar en detalles del sistema en sí, de manera clara, exacta, y
concisa.
3: La descripción del sistema debe realizarse en los tres niveles de abstracción:
conceptual, lógico, y físico; con esa descripción se puede hacer una validación
entre los requerimientos y el producto que se obtendrá.
4: Realizar la representación de cada nivel de abstracción en etapas sucesivas,
partiendo de las visiones globales, hasta llegar a las visiones particulares de los
elementos del problema que se representan en el modelo; eso garantiza un
refinamiento de la representación realizada en cada etapa previa.
5: En cada etapa de la representación del problema, se debe generar un conjunto
de documentos, que permitan entender de buena forma las partes que integran el
sistema.
6: La documentación generada debe ser revisada con cuidado, para que cada uno
de los requerimientos dados al inicio, hayan sido tomados en cuenta, y así poder
cumplir con los objetivos planteados en el problema.
2.3 Modelo Entidad Relación
Una entidad es un ente, un objeto o una cosa concreta, que puede describirse por
medio de un conjunto de atributos o propiedades.
Ejemplos
a) Entidad Persona con atributos: nombre, domicilio, teléfono.
b) Entidad Empleado con atributos: nombre, domicilio, número de nómina,
salario.
c) Sucursal banco con atributos: nombre sucursal, ciudad sucursal, activo.
Cada atributo o propiedad de una entidad, tiene un rango de valores posibles
llamado Dominio del Atributo.
Una Relación es una asociación entre varias entidades, por ejemplo:
La entidad persona se relaciona con la entidad casa con la relación vive:
persona vive casa.
La entidad libro se relaciona con la entidad lector con la relación estudia:
lector estudia libro.
La entidad casa se relaciona con la entidad colonia con la relación
pertenece: casa pertenece colonia
La cardinalidad de una relación entre dos entidades, es el número de entidades
con las que puede asociarse una entidad a otra entidad, mediante una relación.
Dicha cardinalidad puede ser:
Una a Una, si una entidad en A está asociada con una de B, y una de B
está asociada sólo con una de A.
Una a Muchas, si una entidad en A está relacionada con varias de B, pero
una de B puede asociarse sólo con una de A.
Muchas a Una, si una entidad en A está asociada con una de B, y una de B
está asociada con varias de A.
Muchas a Muchas, si una entidad en A está asociada con varias entidades
de B, y una entidad de B está vinculada con varias de A.
Ejemplo:
Pensemos en una sucursal bancaria, hay dos entidades cliente y cuenta, algunos
de sus atributos son:
Cliente: nombre, domicilio, teléfono;
Cuenta: número y saldo.
Una relación entre cliente y cuenta es tiene, es decir, cliente tiene cuenta, la
cardinalidad de la relación tiene puede ser una a muchos, si un cliente tiene varias
cuentas y una cuenta sólo es de un cliente. O bien muchos a muchos, si varios
clientes tienen una o más cuentas y hay cuentas que son usadas por varios
clientes.
Una entidad se llama regular o fuerte si existe por méritos propios, una entidad
se llama débil, si la existencia de cada ocurrencia de ella depende de la
ocurrencia de una entidad regular.
Ejemplo: Libro es una entidad regular, y ejemplar es una entidad débil.
Dada una entidad y sus atributos:
Entidad (atributo1, atributo2, atributo3,…, atributo N)
Se debe elegir uno o varios atributos que identifiquen de forma única a las
ocurrencias de la entidad, si hay más de un atributo para ello, se elige uno como el
principal y los demás son alternativos.
Ejemplos
La entidad empleado tiene los atributos: CURP, nombre, domicilio, teléfono,
número empleado, sueldo,…), el atributo principal es CURP.
La entidad Libro tiene los atributos: título, código _libro, autor, año, idioma,…),
el atributo principal es código _libro.
Un diagrama Entidad Relación, es una gráfica formada por rectángulos que
representan entidades, elipses que representan atributos, rombos que representan
relaciones, y líneas que conectan los símbolos anteriores.
Ejemplos
1)
Emplead Trabaja en: Fabric
o a
Trabaja en
Atributos Empleado: Atributos Fábrica:
(Nombre, domicilio, (Razón social, giro, teléfono,
Número _empleado, giro industrial)
domicilio,….. CURP,
sueldo)
La cardinalidad de la relación trabaja en, es muchas a una
2)
Cuenta Tiene Cuent
habiente a
Atributos Cuenta Atributos Cuenta:
habiente: (Número, saldo)
(Nombre, domicilio,
teléfono, CURP)
La cardinalidad es una a muchos, o bien muchos a muchos.
3) Alumn
Libro Préstamo
o
Fecha préstamo
Fecha
Atributos Libro: Atributos alumno:(Nombre,
devolución
(Código _libro, titulo, matricula, semestre, secuencia)
autor)
Los símbolos utilizados en el modelo Entidad Relación son:
Entidad Fuerte Entidad Significado o Acción
Débil
Relación Relación
Débil
Ejemplos de uso
1)
Fabric
Empleado Trabaja
a
en
Es _un Emplea N: 1 trabaja en
Tiene (n: 1)
Subordinado Jefe
2)
Libro Préstamo Alumn
o
Estudia es leído
N: 1
Un Diagrama Entidad Relación consiste en un grafo dónde se muestran las
entidades y las relaciones que existen entre esas entidades.
Ejemplos
Trabaja Fabric
Empleado
en a
Horario
clave
Atributos Empleado: Atributos Fábrica:
(Nombre, domicilio, teléfono, (Razón social, giro, domicilio,
CURP, numero_empleado, RFC)
sueldo)
Supongamos que en un banco un cliente tiene una o más cuentas, por ejemplo: de
ahorro, de débito, de crédito.
Cliente Cuenta
Tiene
Atributos cliente:
(Nombre, domicilio, Atributos cuenta:
teléfono, CURP, numero (Número, saldo,
_empleado, saldo) estado, tipo)
2.4 Pasos para la realización de un modelo Entidad
Relación
Para realizar un diagrama Entidad Relación hay que ejecutar los pasos que siguen
1. Hacer dos listas, una de Entidades y una de relaciones, indicando la
cardinalidad entre las relaciones.
2. Elaborar una matriz de entidades de la forma:
Entidad 1 Entidad 2 Entidad 3 Entidad 4 Entidad n
Entidad 1 Relacion1 Relación 2 ________ ________ ________
Entidad 2 x Relación 3 ________ NO ________
Entidad 3 ________ __________ ________
_
Entidad N ________ _________ ...
3. La matriz es simétrica, la X indica que ya está, la línea ----------- o la palabra
NO indican que no hay relación.
4. Usando la matriz anterior, elaborar un primer diagrama Entidad Relación
agregando las cardinalidad de cada relación.
5. Refinar el diagrama Entidad Relación obtenido, tratando de eliminar ciclos,
sin perder contenido semántico.
Ejemplo 1
1. Diseñe un diagrama Entidad Relación que recoja la organización de un sistema
de información sobre delegaciones, viviendas y personas en la CDMX. Cada
persona sólo puede habitar en una vivienda y residir en una delegación, pero
puede ser propietaria de más de una vivienda.
La lista de entidades es:
Delegación
Vivienda
Persona
La lista de relaciones es:
Habitar entre persona y vivienda.
Residir entre persona y delegación.
Propiedad entre persona y vivienda.
Observación:
Cada persona sólo puede habitar en una vivienda y en una vivienda pueden
habitar muchas personas, así la relación habitar entre persona y vivienda
tiene cardinalidad: 1: N.
Cada persona puede ser propietaria de más de una vivienda, y una vivienda
puede ser propiedad de muchas personas, luego la cardinalidad de la
relación propiedad es M: N.
Una persona reside en una única delegación, así la relación residir entre
persona y delegación tiene cardinalidad 1: N.
Una delegación puede tener muchas viviendas, y una vivienda pertenece a
una sola delegación, luego la relación está en entre delegación y vivienda
tiene cardinalidad N: 1.
La matriz Entidad - Entidad es:
Persona Delegación Vivienda
Persona No Residir Habitar
Delegación X No Está en
Vivienda X X No
Una primera versión del diagrama Entidad Relación es:
N: 1
Residir
Persona
1: N M: N
Habitar Propiedad Delegació
n
N: 1
Viviend Estar en
a
Hay dos ciclos en el diagrama, el paso siguiente es ver si hay alguna relación
redundante, es decir, si puede obtenerse a partir de las otras.
Un ciclo lo forman las relaciones Residir, Estar en, y Propiedad, en este caso, la
relación Propiedad no es equivalente a Estar en y Residir, puesto que el poseer o
no una vivienda no influye en si la persona reside en la delegación donde está la
vivienda.
El otro ciclo lo forman las relaciones Habitar, Estar en, y Residir, en este caso, las
relaciones están relacionadas en su semántica. La relación Habitar no se puede
eliminar, la relación Estar en tampoco se puede eliminar. La relación Residir se
puede eliminar, pues es posible obtener su semántica a partir de Estar en y
Habitar.
Luego el diagrama Entidad Relación en su versión final es:
Persona
Delegació
n
1: N M: N
Habitar Propiedad
N: 1
Estar
en
Viviend
Las relaciones generadas son:
Persona (CURP, nombre, apellido paterno, apellido materno, sexo, edad)
Vivienda (clave _vivienda, dirección, tipo, delegación, dueños)
Delegación (clave _delegación, nombre, estado, población)
Habitar (CURP, clave _vivienda)
Los atributos en una forma un poco más clara son:
Persona (CURP, nombre, apellido paterno, apellido materno, sexo, edad)
Vivienda (clave _vivienda, dirección, tipo, delegación, dueños)
Municipio (clave delegación, nombre, estado, población)
Habitar (CURP, clave _vivienda)
Ejemplo 2
2. En una escuela se tiene un departamento de actividades deportivas, se desea
generar una base de datos con la información sobre la participación de los
alumnos en las actividades deportivas. La organización de los actos deportivos
está a cargo del departamento de actividades deportivas, el departamento
mencionado cuenta con una amplia variedad de actividades deportivas. Una
actividad deportiva puede contar con diferentes asesores, y a su vez un asesor
puede estar en diferentes actividades.
Un asesor cuenta con un salón y el equipo necesario para su trabajo, un alumno
puede estar en diferentes actividades, el alumno a lo largo de su estancia realizará
viajes, cada viaje puede ser a uno o varios destinos y tardar de uno a varios días
en cada destino.
Un alumno puede ser asignado a uno o más equipos dependiendo de las
actividades que realice, sin embrago, puede estar asignado a otro equipo en
distinto tiempo. Para cada alumno se registra un informe de los logros que obtiene.
Las Entidades son:
Departamento Deportivo, Alumno, Actividades, Asesor, Viaje, Equipo, Éxitos y
Destino.
Las Relaciones son:
Organiza entre departamento deportivo y Actividades.
Auxilia entre Asesor y Actividades.
Desarrolla entre Alumno y Actividades.
Realiza entre Alumno y Viaje.
Asignado entre Alumno y Equipo.
Obtener entre Alumno y éxitos.
Pasar a entre Viaje y Destino.
La matriz Entidad Relación es:
Dep. Alumno Actividades Asesor Viaje Equipo Éxitos Destino
Depvo
[Link] No No Organiza No No No No No
Alumno No No Desarrolla No Realiza Asignado Obtener No
Actividade No No No Auxilia No No No No
s
Asesor No No X No No No No No
Viaje No X No No No No No Pasar_a
Equipo No X No No No No No No
Éxitos No X No No No No No No
Destino No No No No X No No No
El diagrama Entidad Relación es:
Auxilia
Departamento Organiza Actividades
deportivo
Clave depto., nombre 1: N
Responsable, ubicación M: N
desarrolla Asesor
Equipo
Asignado
Clave equipo, nombre
Descripción Realiza
M: N Alumno
Obtener
Éxito Viaje
Destino Pasar
Las posibles Relaciones que se generan son:
Departamento (clave Depto., nombre, responsable, ubicación)
Se supone que en la escuela sólo hay un departamento de actividades deportivas.
Actividad (clave Activ, descripción)
Alumno (boleta, nombre)
Desarrolla (clave Activ, boleta)
Asesores (clave Activ, clave Asesor)
Asesor (clave Asesor, nombre, salón)
Asesor Asignado (boleta, logro, fecha, descripción)
Realiza (boleta, clave viaje)
Ejemplo 3
3. Elabore el diagrama Entidad Relación para diseñar una base de datos en una
agencia de viajes, que para ofrecer mejor servicio a sus clientes, considera de
interés tener registrada la información referente a los diferentes tours o paseos
que puede ofrecer, teniendo en cuenta lo siguiente:
Un paseo según su finalidad: cultural, histórica, deportiva, etc., tiene unos
determinados puntos de ruta y puede repetirse varias veces en un año.
Definimos por viaje, un paseo concreto a realizar a partir de una fecha
determinada. Los puntos de ruta en un paseo pueden ser ciudades,
monumentos, zonas geográficas, etcétera, y se consideran de visita
solamente o de visita y estancia. En este último caso el punto de ruta tiene
asignado uno o varios hoteles.
Entendemos por cliente de un viaje, a la persona que ha decidido hacerlo, y
ha hecho efectiva una señal. Un cliente puede confirmar su participación en
más de un viaje, (se sobre entiende que las fechas son diferentes).
Las personas que participan en un viaje pueden ser alojadas en los mismos
o en diferentes hoteles.
Las Entidades son:
Viaje
Cliente
Fecha _paseo (ciudad, monumentos, zonas Arq., etc.)
Visita (Entrada / Salida, Estancia)
Las Relaciones son:
Cliente realiza viaje
Cliente llega a un destino
Viaje lleva a un Destino
Cliente se Aloja en un Hotel
El diagrama Entidad Relación es:
CLIENTE VIAJE DESTINO HOTEL
CLIENTE NO Realiza Llega Aloja
VIAJE X NO lleva NO
DESTIN X X NO Tiene
O
HOTEL X NO X NO
El Diagrama Entidad relación es:
CLIENTE VIAJE
HACE
TIENE
ESCOGE
PASEO
FECHA
ASIGNA VISITA
Las relaciones generadas son:
Cliente (RFC Cliente, Nombre, Domicilio, Sexo)
Viaje (ID Viaje, Fecha Inicio, Duración, Destino, RFC Cliente)
Destino (ID Destino, Nombre CD, ID Viaje, Tipo Destino)
Ejemplo 4
4. Se desea diseñar una base de datos sobre la información de las reservaciones
realizadas en una empresa dedicada al alquiler de automóviles.
Elabore el diagrama Entidad Relación suponiendo que:
Un cliente puede hacer en un momento dado varias reservaciones.
Una reservación la realiza un cliente, pero puede involucrar a varios
coches.
Es importante registrar la fecha de comienzo de la reservación y la de
terminación.
Todo coche tiene siempre asignado un determinado garaje, que no puede
cambiar.
Cada reservación se realiza en una determinada agencia.
En la base de datos pueden existir clientes que no hayan realizado ninguna
reservación.
Cada entidad tiene una clave alfanumérica que la identifica de modo único.
Las Entidades son:
Cliente, Reservación, Coches, Fecha, Garaje
Las Relaciones son:
Cliente hace reservaciones, Coche tiene garaje, las reservaciones incluyen
coches, una reservación tiene fecha
La matriz Entidad - Entidad es:
CLIENTE COCHE RESERVACIÓN GARAJE AGENCIA
CLIENTE NO --------- HACE NO NO
COCHE ---------- NO NO TIENE NO
RESERVACION X Incluye NO NO NO
GARAJE NO X NO NO NO
AGENCIA NO NO NO NO NO
El diagrama Entidad Relación es:
Las posibles relaciones que se generan son:
Cliente (RFC Cliente, Nombre Cliente, Dirección, Sexo, Teléfono)
Coche (ID Coche, Tipo de Coche, ID Garage, ID reserva)
Reservación (ID reserva, RFC Cliente, Nombre Cliente, Fecha Inicio, Fecha Fin)
Garaje (ID Garage, ID Coche, Tipo de Coche)
Agencia (ID Agencia, Nombre Agencia)
Ejemplo 5
5. Se desea diseñar una base de datos que recoja la organización de una
Universidad, donde se considera que:
Los departamentos pueden estar en una sola facultad o ser inter
facultativos, agrupando en este caso cátedras que pertenecen a facultades
distintas.
Una cátedra se encuentra en un único departamento.
Una cátedra pertenece a una sola facultad.
Un profesor esta siempre asignado a un único departamento y adscrito a
una o varias cátedras, pudiendo cambiar de cátedra pero no de
departamento; interesa la fecha en que un profesor es adscrito a una
cátedra.
Las Entidades son: Profesor, Departamento, Facultad, Cátedra, Área de
conocimiento.
Las Relaciones son:
Asignado entre profesor y departamento.
Asignado entre profesor y cátedra.
Está en entre cátedra y facultad.
Pertenece entre departamento y cátedra.
Impartir entre departamento y cátedra
Investigar entre departamento y área de conocimiento.
La matriz Entidad - Entidad es:
Profesor Catedra Departamento Facultad Área de
Conocimiento
Profesor ----------- Asignad Asignado ------------ -------------------
o
Catedra X ------------ Impartir Está en -------------------
Departamento ------------ X -------------- Pertenece Investigar
Facultas ------------ X X ------------- -----------------
Área de ------------ ------------ ----------------- X -------------------
Conocimiento
El diagrama Entidad Relación es:
Nombre
Edad
Carrera
Profesor
1: 1
Asignar
Universidad
Nombre
Especialidad
N: 1 Carrera
Departamento Pertenece Facultad
Muestra
Nombre
Jefe
N: 1
Está
Área de
Conocimiento Imparte
Cátedra
Especialidad
Nombre
Nombre
Proyecto
No. de horas
Créditos
Cuatrimestre
Las relaciones que se generan son:
Profesor (nombre, edad, carrera,…)
Departamento (nombre, jefe,…)
Área de conocimiento (especialidad, nombre, proyectos,…)
Facultad (nombre, especialidad, universidad,…,)
Cátedra (nombre, no. de horas, créditos, carrera,…)