Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Me 4
Me 4
UNIDAD Nº II
Construyendo un Modelo Relacional Normalizado
1 www.iplacex.cl
SEMANA 4
Consideraciones previas
2 www.iplacex.cl
Introducción
Tras ser postuladas sus bases en 1970 por Edgar Frank Codd, de los laboratorios IBM en
San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos
de base de datos.
El modelo relacional desarrolla un esquema de base de datos (data base schema) a partir
del cual se podrá realizar el modelo físico o de implementación en el DBMS.
Este modelo está basado en que todos los datos están almacenados en tablas
(entidades/relaciones) y cada una de estas es un conjunto de datos, por tanto, una base
de datos es un conjunto de relaciones. La agrupación se origina en la tabla: tabla -> fila
(tupla) -> campo (atributo)
• La estructura de datos.
• La manipulación de datos.
• La integridad de los datos.
• Atributos (columnas).
• Tuplas (Conjunto de filas).
3 www.iplacex.cl
Ideas fuerza
4 www.iplacex.cl
Índice
Introducción ..................................................................................................................... 3
Ideas fuerza ...................................................................................................................... 4
Diseño Lógico .................................................................................................................. 7
Modelo Relacional ........................................................................................................... 8
Objetivos del Modelo Relacional .................................................................................... 9
Características del Modelo Relacional ........................................................................ 10
Las 12 Reglas de Codd ................................................................................................. 12
Terminología del Modelo Relacional ........................................................................... 14
Relación o Tabla ................................................................................................................... 15
Atributos ............................................................................................................................... 16
Dominio ................................................................................................................................. 16
Tupla, Grado y Cardinalidad ................................................................................................ 17
Claves.................................................................................................................................... 18
Restricciones de las Relaciones ......................................................................................... 19
Tipos de datos para los Atributos ................................................................................ 21
Transformación del Modelo Entidad Relación Normalizado al Modelo Relacional . 23
Transformación de Entidad-Fuerte ..................................................................................... 23
Transformación de las relaciones 1:N ................................................................................ 24
Transformación de las relaciones M:N ............................................................................... 25
Transformación de las relaciones 1:1 ................................................................................. 26
Transformación de las relaciones recursivas .................................................................... 27
Transformación de Entidades Débiles ................................................................................ 28
Transformación de Relaciones de Exclusividad ................................................................ 29
Transformación de Relaciones de Jerarquías .................................................................... 30
1. Diseño de los subtipos y supertipo en una sola Relación. ................................................... 30
2. Diseño de los Subtipos en Relaciones separadas ................................................................. 31
3. Diseño del supertipo y los subtipos en Relaciones separadas ............................................ 32
5 www.iplacex.cl
Solución Caso 1 Modelo Relacional No Gráfico ......................................................... 44
Conclusión ..................................................................................................................... 51
Bibliografía ..................................................................................................................... 52
6 www.iplacex.cl
Desarrollo
Diseño Lógico
El objetivo del diseño lógico es convertir los esquemas conceptuales en un esquema lógico
que se ajuste al modelo del SGBD (Sistema Gestor de Bases de Datos) sobre el que se
vaya a implementar el sistema.
7 www.iplacex.cl
Modelo Relacional
En 1970, el modo en que se veían las bases de datos cambió por completo cuando Edgar
Frank Codd introdujo el Modelo Relacional.
En aquellos momentos, el enfoque existente para la estructura de las bases de datos que
se basaban en el modelo de red y el modelo jerárquico, los dos modelos lógicos que
constituyeron la primera generación de los SGBD.
Codd demostró que esta primera generación de bases de datos limitaba en gran medida
los tipos de operaciones que los usuarios podían realizar sobre los datos. Además, estas
bases de datos eran muy vulnerables a cambios en el entorno físico.
El Modelo Relacional representa la segunda generación de los SGBD. En él, todos los
datos están estructurados a nivel lógico para ser convertidos posteriormente en tablas
formadas por filas y columnas.
La ventaja del modelo relacional es que los datos se representan conceptualmente como
se almacenarán de un modo en que los usuarios entienden con mayor facilidad.
8 www.iplacex.cl
Objetivos del Modelo Relacional
9 www.iplacex.cl
Los objetivos que este modelo persigue son:
▪ Independencia Lógica: Las aplicaciones que utilizan la base de datos no deben ser
modificadas por que se inserten, actualicen y eliminen datos.
▪ Uniformidad: Las estructuras lógicas de los datos siempre tienen una única forma
conceptual (las tablas), lo que facilita la creación y manipulación de la base de datos
por parte de los usuarios.
▪ Sencillez: Las características anteriores hacen que este Modelo sea fácil de
comprender y de utilizar por parte del usuario final.
10 www.iplacex.cl
Las características más importantes de los Modelos Relacionales son:
▪ Los datos en la tabla tienen un solo valor, es decir son atómicos o monovalorados;
no se admiten valores múltiples, por lo tanto una columna tiene un solo valor, nunca
un conjunto de valores (1FN).
▪ Los datos de cualquier columna son de un solo tipo. Por ejemplo, una columna
puede contener nombres de clientes, y en otra puede tener fechas de nacimiento.
▪ Las columnas de una relación se conocen como atributos. Cada atributo tiene un
dominio, que es una descripción física y lógica de valores permitidos.
11 www.iplacex.cl
Las 12 Reglas de Codd
Preocupado por los productos que decían ser Sistemas Gestores de Bases de Datos
Relacionales (RDBMS o SGBDR) sin serlo, Codd publica las 12 reglas que debe cumplir
todo RDBMS para ser considerado Relacional.
Estas reglas en la práctica las cumplen pocos sistemas relacionales en su totalidad, pero
una BD Relacional debería cumplir con el mayor número de ellas. Las reglas y sus
significados son:
▪ Actualización De Vistas: El SGBD debe encargarse de que las vistas (objetos que
permitan mostrar información específica para cada usuario) muestren la última
información.
12 www.iplacex.cl
▪ Independencia De Integridad: Las restricciones de integridad deben estar
separadas de los programas, almacenadas en el catálogo de la BD para ser
editadas mediante un sublenguaje de datos.
13 www.iplacex.cl
Terminología del Modelo Relacional
14 www.iplacex.cl
Relación o Tabla
Una relación puede ser vista como una tabla, con filas llamadas tuplas y con cabecera de
columnas llamadas atributos.
▪ Los valores de los atributos son atómicos: en cada tupla, cada atributo (columna)
toma un solo valor. Se dice que las relaciones están normalizadas.
15 www.iplacex.cl
Atributos
Un Atributo en el Modelo Relacional representa una propiedad que posee esa Relación y
equivale al atributo del Modelo E-R.
En el caso de que sean varios los atributos de una misma tabla, definidos sobre el mismo
dominio, habrá que darles nombres distintos, ya que una tabla no puede tener dos
atributos con el mismo nombre.
Dominio
16 www.iplacex.cl
El dominio dentro de la estructura del Modelo Relacional es el conjunto de valores que
puede tomar un atributo.
▪ Un dominio contiene todos los posibles valores que puede tomar un determinado
atributo. Dos atributos distintos pueden tener el mismo dominio.
▪ Los dominios poseen un nombre para poder referirnos a él y así poder ser
reutilizable en más de un atributo.
▪ Tupla: es cada una de las filas de la relación. Representa por tanto el conjunto de
cada elemento individual (ejemplar u ocurrencia) de esa tabla. En la relación
OFICINA, cada tupla tiene cinco valores, uno para cada atributo. Las tuplas de una
relación no siguen ningún orden.
17 www.iplacex.cl
▪ Cardinalidad: número de tuplas de una relación (número de filas). Ya que en las
relaciones se van insertando y borrando tuplas a menudo, la cardinalidad de estas
varía constantemente.
Claves
Ya que en una relación no hay tuplas repetidas, éstas se pueden distinguir unas de otras,
es decir, se pueden identificar de modo único. La forma de identificarlas es mediante los
valores de sus atributos.
▪ Clave primaria: clave candidata que se escoge como identificador de las tuplas. Se
elige primaria la candidata que identifique mejor a cada tupla en el contexto de la
base de datos. Por ejemplo, un atributo con el RUT sería clave candidata de una
tabla de clientes, aunque si en esa relación existe un atributo de código de cliente,
18 www.iplacex.cl
este sería mejor candidato para clave principal, porque es mejor identificador para
ese contexto.
▪ Clave alternativa: Cualquier clave candidata que no sea primaria y que también
puede identificar de manera única una tupla. Al momento de crear la relación como
tabla en la Base de Datos se debe definir una constraints de tipo UNIQUE.
▪ Clave candidata: conjunto de atributos que identifican en forma única cada tupla de
la relación. Es decir, columnas cuyos valores no se repiten para esa tabla.
▪ Clave externa, ajena o foránea: atributo cuyos valores coinciden con una clave
candidata (normalmente primaria) de otra tabla.
Una restricción es una condición que deben cumplir los datos de la base de datos.
Las restricciones propias y que son definidas por el hecho de que la base de datos es
relacional son:
▪ Cada atributo sólo puede tomar un valor en el dominio en el que está inscrito.
▪ Clave primaria (PRIMARY KEY): hace que los atributos marcados como clave
primaria no puedan tener valores repetidos. Además, obliga a que esos atributos
deben tener un valor. Si la clave primaria la forman varios atributos, ninguno de
ellos podrá estar vacío.
▪ Unicidad (UNIQUE): impide que los valores de los atributos marcados de esta
forma puedan repetirse. Esta restricción debe indicarse en todas las claves
alternativas.
19 www.iplacex.cl
▪ Obligatoriedad (NOT NULL): obliga que el atributo marcado de esta forma debe
tener un valor, es decir impide que pueda contener el valor nulo (NULL).
▪ Integridad referencial (FOREIGN KEY): sirve para indicar una clave externa o
foránea. Cuando una clave se marca con integridad referencial no se podrán
introducir valores que no estén incluidos en los atributos relacionados con esa clave
de la relación “padre”. Esto último causa problemas en las operaciones de borrado
y modificación de registros, ya que si se ejecutan esas operaciones sobre la tabla
principal quedarán filas en la tabla secundaria con la clave externa sin integridad.
20 www.iplacex.cl
Tipos de datos para los Atributos
21 www.iplacex.cl
22 www.iplacex.cl
Transformación del Modelo Entidad Relación Normalizado al
Modelo Relacional
Transformación de Entidad-Fuerte
23 www.iplacex.cl
Transformación de las relaciones 1:N
▪ La Relación del lado muchos (tabla relacionada) incluye como clave externa o
foránea (FK) las columnas que forman la clave primaria de la Relación del lado uno
(relación principal). A esta clave foránea se le debe asignar un nombre.
24 www.iplacex.cl
Transformación de las relaciones M:N
▪ Para las relaciones Muchos a Muchos del modelo E/R que no pudieron ser
eliminadas se debe generar una Relación Intermedia en el Modelo Relacional a la
cual se le debe asignar un nombre adecuado.
25 www.iplacex.cl
Transformación de las relaciones 1:1
▪ Las relaciones uno a uno en el Modelo E/R son poco comunes. En muchos casos
puede implicar que las dos entidades son en realidad una sola y se deben unir.
26 www.iplacex.cl
Transformación de las relaciones recursivas
▪ Las relaciones recursivas se tratan de la misma forma que las otras, sólo que el
atributo identificador único puede figurar dos veces en una Relación como resultado
de la transformación y además es clave foránea. Por ello, se le debe asignar otro
nombre a esa columna.
27 www.iplacex.cl
Transformación de Entidades Débiles
▪ Toda entidad débil incorpora una relación implícita con una entidad fuerte.
28 www.iplacex.cl
Transformación de Relaciones de Exclusividad
▪ El Diseño de Arco explícito crea una columna clave foránea para cada relación
incluida en el arco.
29 www.iplacex.cl
Transformación de Relaciones de Jerarquías
Para las Relaciones de Jerarquías (Supertipos/Subtipos) del Modelo E-R existen tres
formas de poder efectuar la transformación al Modelo Relacional:
3. Diseño del supertipo y los subtipos en Relaciones separadas: en este caso cada
entidad se transforma en una Relación por separado.
Consiste en diseñar una tabla para el supertipo con toda la información de los subtipos.
En otras palabras, la tabla resultante contiene las instancias de todos los subtipos.
Es apropiado cuando los subtipos tienen pocos atributos y la consulta de los datos
suele incluir datos de distintos subtipos.
b. Crear una columna “tipo” para identificar a cuál subtipo pertenece la fila o
tupla.
c. Crear una columna para cada uno de los atributos del supertipo.
d. Crear una columna para cada uno de los atributos de los subtipos.
e. Crear columnas claves foráneas para cada una de las relaciones del
supertipo.
f. Crear columnas claves foráneas para cada una de las relaciones de los
subtipos.
30 www.iplacex.cl
En el ejemplo, se crea la Relación VEHICULO con los atributos del supertipo y subtipos.
Además, se crea la columna tipo_vehiculo para poder saber si la información que se
almacenará será de un camión o remolque.
Se usa este diseño cuando los subtipos tienen muchos atributos y relaciones
específicas.
b. En cada tabla de un subtipo crear las columnas para los atributos del
supertipo.
31 www.iplacex.cl
En el ejemplo, se crea las Relaciones CAMION y REMOLQUE cada una con sus atributos
y además con los atributos del supertipo incluyendo su clave primaria.
a. Crear una tabla para el supertipo con sus propias columnas y clave principal.
b. En cada tabla de los subtipos crear las columnas para los atributos que cada
entidad del subtipo posee.
c. En cada tabla de los subtipos las columnas de la clave principal del supertipo
se crean como clave externa o foránea y además como clave primaria.
32 www.iplacex.cl
En el ejemplo, se crean las Relaciones VEHICULO, CAMION y REMOLQUE cada uno
con sus propios atributos. Los subtipos además hereden los atributos de clave primaria
del supertipo que además se transforma en clave foránea.
33 www.iplacex.cl
Construcción del Modelo Relacional Gráfico y No Gráfico
Caso 1
De los hoteles se sabe su código, la ciudad y el país en que se encuentra cada hotel.
Además, se conoce su nombre (que es único dentro de cada ciudad), todos sus teléfonos
y su dirección de página web.
Cada hotel tiene un conjunto de habitaciones con un número que las identifica dentro del
mismo. Existen dos tipos de habitaciones. Las habitaciones dobles, que tienen al menos
una cama matrimonial y las habitaciones simples que tienen 1 o 2 camas de una plaza.
De las habitaciones dobles se sabe que algunas tienen una cama de una plaza extra, en
este caso, interesa saber cuáles. De las simples, interesa registrar cuantas camas de una
plaza hay en cada habitación.
Las reservas de habitaciones que realizan los clientes son únicas y se les asignan un
número automático interno. Interesa registrar la fecha de la reserva, fecha de llegada y
salida. Una reserva considera una o varias habitaciones.
Los empleados que trabajan en los hoteles pueden trabajar en uno o varios hoteles de la
cadena en jornadas diferentes. De ellos se conoce su rut, su nombre, un teléfono y el tipo
de empleado según el puesto que desempeñe. De acuerdo con esto es el valor de su
salario base y el porcentaje de beneficio.
34 www.iplacex.cl
Modelo Entidad Relación Normalizado:
35 www.iplacex.cl
Luego, marcamos la opción “Lógico” y en “Tipo” buscamos el tipo de datos adecuado para
cada atributo. Por lo general, usamos Varchar para texto, Numeric para números enteros
y flotantes y Date para fechas.
Una vez hayamos ingresado los tipos de datos de los atributos de todas las entidades,
vamos a “Realizar Ingeniería a Modelo Relacional”:
36 www.iplacex.cl
Presionamos “Realizar Ingeniería”:
37 www.iplacex.cl
Se abrirá una nueva ventana: Modelo Relacional:
Lo primero será ordenar las entidades, para comenzar a ingresar nombres para relaciones
intermedias (generadas por las relaciones M:N), nombres de PK (claves primarias) y
claves FK (claves foráneas).
38 www.iplacex.cl
Si nos fijamos entre las tablas RESERVA y HABITACIÓN, se generó una nueva tabla, una
tabla intermedia, producto de la transformación de la relación M:N que existía en el Modelo
Relacional. Lo mismo sucede entre las tablas HOTEL y EMPLEADO.
Lo primero que haremos será darles un nombre apropiado a dichas tablas. En el caso de
la tabla entre RESERVA y HABITACION, podríamos nombrarla justamente como
RESERVA_HABITACION.
Para cambiar el nombre de una tabla, se realiza de la misma manera que con las
entidades, es decir, entrando a las propiedades de esta.
39 www.iplacex.cl
A continuación, asignaremos a cada una de las entidades un nombre apropiado para las
claves primarias (PK): Recordemos que una buena práctica es que las claves primarias
de las tablas sean llamadas: PK_NOMBRE_TABLA. Por ejemplo: PK_PAIS.
Para cambiar el nombre de las PK, entramos a las propiedades de la tabla y vamos a la
opción: Clave Primaria. Y renombramos la PK.
40 www.iplacex.cl
Replicamos estos pasos en todas las entidades:
Por último, renombramos las claves foráneas (FK) en aquellas entidades que posean. El
nombre apropiado es: FK_tablarelacionada_tablaprincipal. Ejemplo: En el caso de la tabla
CIUDAD, su clave foránea (proveniente de la tabla PAIS) sería: FK_CIUDAD_PAIS.
41 www.iplacex.cl
Para cambiar el nombre de las FK, entramos a las propiedades de la tabla y vamos a la
opción: Claves Ajenas. Y renombramos la FK. En el caso que una tabla posea más de una
clave foránea, por las relaciones con otras tablas, repetimos el proceso en cada clave
foránea.
** Hay que recordar que los nombres de las tablas, de los atributos, claves primarias y
claves foráneas NO pueden superar los 30 caracteres, por tanto, en caso de ser necesario,
se puede abreviar el nombre.
42 www.iplacex.cl
Repetimos estos pasos en todo el Modelo Relacional:
43 www.iplacex.cl
Modelo Entidad Relación Normalizado:
44 www.iplacex.cl
Por tanto:
Por último, resolvemos la relación entre ellos, que es una relación 1:N. La regla de
transformación de las relaciones 1:N señala que:
▪ La Relación del lado muchos (tabla relacionada) incluye como clave externa o
foránea (FK) las columnas que forman la clave primaria de la Relación del lado uno
(relación principal). A esta clave foránea se le debe asignar un nombre.
45 www.iplacex.cl
Transformamos la relación entre CIUDAD y HOTEL. Nuevamente una relación 1:N
Ahora, transformamos la relación M:N que existe entre HOTEL y EMPLEADO. La regla de
transformación de las relaciones M:N señala:
▪ Para las relaciones Muchos a Muchos del modelo E/R que no pudieron ser
eliminadas se debe generar una Relación Intermedia en el Modelo Relacional a la
cual se le debe asignar un nombre adecuado.
46 www.iplacex.cl
Por tanto, el Modelo Relacional quedaría:
Transformamos la relación entre EMPLEADO y CARGO. Es una relación 1:N. Por tanto:
47 www.iplacex.cl
Ahora, representamos el lado derecho, de arriba hacia abajo. Por tanto, comenzamos
representando la entidad RESERVA:
HABITACION (num_habitacion)
48 www.iplacex.cl
Transformamos la relación existente entre RESERVA y HABITACION. Es una relación
M:N, ya sabemos cómo debemos transformar:
HABITACION (num_habitacion)
Para las Relaciones de Jerarquías (Supertipos/Subtipos) del Modelo E-R existen tres
formas de poder efectuar la transformación al Modelo Relacional:
3. Diseño del supertipo y los subtipos en Relaciones separadas: en este caso cada
entidad se transforma en una Relación por separado.
49 www.iplacex.cl
CIUDAD (cod_ciudad, nom_ciudad, cod_pais*)
HABITACION (num_habitacion)
50 www.iplacex.cl
Conclusión
En esta semana se profundizó en torno a los conceptos del Diseño Lógico y el Modelo
Relacional: sus características, sus objetivos, las 12 reglas de Codd que aseguran la
correcta construcción de este modelo, entre otros elementos.
Por otro lado, se ahondó sobre la terminología que posee el Modelo Relacional y, sobre
todo, acerca de cómo transformar un Modelo Entidad-Relación Normalizado en un Modelo
Relacional, tanto en forma gráfica, como no gráfica.
51 www.iplacex.cl
Bibliografía
Antolin Muñoz Chaparro. (2018). Oracle 12c SQL. Curso práctico de formación.
España: RC Libros.
52 www.iplacex.cl
53 www.iplacex.cl