Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Diseño Conceptual y Lógico de Bases de Datos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 64

TEMA 2 – Diseño conceptual y lógico de

Bases de Datos.
TEMA 2: Diseño conceptual de base de datos

Contenidos:

1. Introducción …………………………………………………………………………………………… 2
2. Modelo conceptual, Diagramas E/R: ………………………………………………………………. 3

o 2.1 Entidades ………………………………………………………………………………. 4


o 2.2 Atributos o campos o columnas ……………………………………………………… 4
o 2.3 Ocurrencias o registros ……………………………………………………………… 5
o 2.4 Tipos de atributos ……………………………………………………………………… 6
o 2.5 Relaciones ……………………………………………………………………………. 9
o 2.6 Grado de una relación ………………………………………………………………… 9
o 2.7 Cardinalidades mínimas y máximas (participaciones) …………………………… 13
o 2.8 Cardinalidad de una relación ………………………………………………………… 15
o 2.9 Atributos de una relación ……………………………………………………………. 25

3. Modelo E/R ampliado (Jerarquías) ………………………………………………………………… 31

o 3.1 Propiedades de las relaciones jerárquicas ……………………...…………………… 32


o 3.2 Especializaciones de las jerarquías ………………………………………………… 33

4. Modelo Relacional (Paso a tablas) ………………………………………………………………… 41

o 4.1 Relaciones 1:1 ………………………………………………………………………… 42


o 4.2 Relaciones 1: N ………………………………………………………………………… 44
o 4.3 Relaciones N:M ………………………………………………………………………… 46
o 4.4 Relaciones ternarias …………………………………………………………………… 48
o 4.5 Relaciones reflexivas ………………………………………………………………… 51
o 4.6 Relaciones jerárquicas ………………………………………………………………… 53

5. Normalización ………………………………………………………………………………………… 59
6. Resumen ……………………………………………………………………………………………… 62
7. Autoevaluación ………………………………………………………………………………………… 62

1
¿Sabías que …

Cuando creas en tu ordenador un listado por ejemplo con los libros de tu casa, las películas de DVD, o
los CD de música para saber los autores, los géneros, títulos, etc lo más eficiente es crear una base de
datos. Con ella podrás realizar consultas para saber si tienes el título de una película que te pide un
amigo, o sacar un listado de los álbumes de un grupo musical en concreto.

En una empresa la necesidad de tener una base de datos es todavía más importante para poder gestionar
y dar servicio a los distintos clientes y proveedores.

En estos siguientes temas aprenderás a diseñar la base de datos y posteriormente a cargar los datos,
para que definitivamente puedas llegar al proceso de explotación de base de datos, realizando todas las
consultas y listados que necesites.

1. INTRODUCCIÓN

El objetivo de este tema es el de analizar un enunciado o texto que nos hayan dado, interpretarlo, extraer
todos los datos relevantes y conseguir diseñar un esquema gráfico que dé solución al problema planteado.

Estudiadas las ventajas de trabajar con Sistemas Gestores de Bases de Datos frente a los sistemas de
ficheros, veremos cómo crear el Modelo Conceptual o Modelo Entidad Relación (E/R). Para ello vamos
a ir aprendiendo algunos aspectos como:

➢ Conocer los diversos elementos para diseñar diagramas E/R


➢ Identificar aquellos elementos de los cuáles vamos a guardar información
➢ Aplicar condiciones o reglas si fuesen necesarias
➢ …

2
Figura 1. Ejemplo sencillo de un diagrama Entidad Relación (E/R)

El Diseño Conceptual de una base de datos recoge los requerimientos definidos por usuarios, los hechos
y reglas que implementaremos en la base de datos. Para trabajar con este esquema, se utiliza el Modelo
Conceptual, representado por los diagramas Entidad-Relación.

El Diseño Conceptual que se realiza es válido para cualquier Sistema Gestor de Base de Datos que utilice
el usuario.

2. MODELO CONCEPTUAL, DIAGRAMAS E/R

El Modelo Conceptual también llamado Entidad Relación (E-R), fue propuesto por Peter Chen en 1976
para la representación conceptual de los problemas del mundo real. En 1988, el ANSI (American National
Standards Institute) lo seleccionó como modelo estándar.

Vamos a ir viendo como comentábamos en la introducción los diversos elementos de los que se compone:

3
2.1 ENTIDADES →

Es la representación gráfica de objetos de los que se guarda información en el sistema.

Por ejemplo: ALUMNOS, PERSONAS, EMPLEADOS, CIUDADES. Se representan mediante un


rectángulo con su nombre dentro y el nombre en mayúsculas.

Una entidad se convierte en una tabla (concepto estudiado en el tema anterior) cuando más adelante lo
implementemos en la base de datos, en nuestro caso los haremos sobre Oracle.

2.2 ATRIBUTOS O CAMPOS O COLUMNAS →

Son las unidades de información que describen propiedades de las entidades. Otra definición: Cada
una de las características o propiedades de una entidad.

Ejemplos:

➢ La entidad ALUMNOS puede tener los atributos: DNI, Nombre, Dirección, Población y
Teléfono.

➢ La entidad LIBROS puede tener los atributos ISBN, Título, Número de páginas, etc.

Se representan mediante una elipse con el nombre en su interior. La primera letra en mayúsculas y
el resto en minúsculas.

4
Conceptos asociados a los atributos:

• Valor o Dato → Son los datos que se guardan en ese atributo.

Ejemplo:

El atributo Nombre de la entidad ALUMNOS puede ser Juan, Pedro, María, etc.

• Dominio → Es el conjunto de posibles valores que puede tomar ese atributo.

Ejemplos:

Para el atributo Nombre su dominio va a ser una combinación de letras del abecedario
entre la letra “A” a la “Z”.

Para el atributo Edad podemos definir su dominio como el conjunto de valores enteros
desde 0 hasta 150.

Para el atributo Casado podemos definir su dominio como el conjunto de dos valores “SI”
o “NO.

2.3 OCURRENCIAS O REGISTROS →

Se puede definir como una fila de datos de esa entidad.

Ejemplo:

La siguiente figura nos muestra la entidad EMPLEADOS con una serie de atributos. Una ocurrencia o
registro sería el conjunto de datos que están en el rectángulo rojo e identifican a un empleado concreto.

En este ejemplo tenemos tres ocurrencias de empleados o registros.

5
2.4 TIPOS DE ATRIBUTOS

Una vez que ya tenemos claro el concepto de atributo, vamos a ver los cómo los podemos clasificar.
Vamos a explicarlo basándonos en este ejemplo:

Tenemos la entidad ALUMNOS con los siguientes atributos: DNI, NSS (número seguridad social),
Nombre, Teléfono, Dirección, Edad.

Figura 2. Representación de la entidad Alumnos con sus atributos

- Atributo candidato →

Es aquel atributo o atributos que permite identificar de forma única a cada ocurrencia de la entidad.

Por ejemplo, para la entidad ALUMNOS, podemos tener el atributo DNI y NSS (número de la
seguridad social) que identifican a cada alumno sin lugar a dudas.

6
- Atributo principal o Clave primaria o Clave principal (PRIMARY KEY)→

De las tres formas de decirlo, nos quedaremos con clave primaria cuando se haga referencia en
los temas.

Es aquel atributo identificador candidato que decidimos que va a identificar de forma única a cada
ocurrencia de la entidad.

Por ejemplo, para la entidad ALUMNOS, como diseñadores de la base de datos podemos decidir
que sea el atributo DNI o bien porque nuestro cliente nos ha dicho que para él ese atributo es el
más importante de los dos.

Se representa mediante una elipse con el nombre en su interior y el nombre del atributo subrayado.

Características que debe cumplir una clave primaria:

▪ No puede contener valores nulos. Un valor nulo es cuando no hay información en dicho
atributo. ¡El 0, NO es un valor nulo, ¡como tal el 0 es un valor!
▪ Ha de ser conocida y sencilla de crear.
▪ No ha de variar con el tiempo.

- Atributo alternativo →

Es aquel atributo identificador candidato no elegido como atributo identificador principal.

Por ejemplo, para la entidad ALUMNOS, como elegimos el atributo DNI como clave
primaria, NSS será el atributo alternativo.

- Atributo foráneo o Clave ajena →

De las tres formas de decirlo, nos quedaremos con clave ajena cuando se haga referencia en los
temas.

Es el atributo o conjunto de atributos de una entidad que forman la clave primaria en otra entidad.
Las claves ajenas van a representar las relaciones entre tablas. (Este concepto lo explicaremos
más detalladamente cuando veamos las relaciones).

7
ACTIVIDAD RESUELTA 1

Invéntate dos entidades, con cinco atributos de cada entidad. Dos de los cinco atributos deben ser
atributos candidatos, tienes que especificar cuáles son.

Por último, invéntate tres registros (ocurrencias) de cada entidad

SOLUCIÓN DE LA ACTIVIDAD

Entidades: LIBROS y SUSCRIPTORES

Atributos de LIBROS: ISBN, Título, Género, Número de páginas, Editorial).

Atributos de SUSCRIPTORES: DNI, Nombre, Apellidos, Teléfono, Edad).

Registros de LIBROS:

➢ 978-84-481-4879-9, Sistemas Gestores de Bases de Datos, Informática, 453, Mc


Graw Hill

➢ 978-84-616-6319-4, Pentesting con FOCA, Informática, 263, Garceta

➢ 978-84-245-9982-2, Ofimática, Informática, 182, Paraninfo

FIN DE LA ACTIVIDAD RESUELTA 1

8
2.5 RELACIONES

Se podría definir como una unión entre dos o más entidades.

Se representan mediante un rombo con un verbo en su interior que representa una acción entre las
dos entidades.

Concepto importante: en la imagen de arriba puedes ver que podemos darle la vuelta a la relación. No
hay problema en hacerlo.

2.6 GRADO DE UNA RELACIÓN

Es el número de entidades que participan en una relación. Teniendo en cuenta lo anterior podemos hacer
la siguiente clasificación:

➢ Relaciones Reflexivas o Grado 1 → Son aquellas que relacionan una entidad consigo misma.

Por ejemplo, la relación es jefe que se establece entre un empleado y su empleado jefe.

9
➢ Relaciones Binarias o Grado 2 → Son aquellas que relacionan dos entidades.

➢ Relaciones Ternarias o Grado 3 → Son aquellas que relacionan tres entidades.

➢ Relaciones n-arias → Son aquellas donde hay una relación entre más de tres entidades. Son muy
raras.

ACTIVIDAD RESUELTA 2

Invéntate dos relaciones de cada grado de relación.

- Dos relaciones reflexivas o de grado 1


- Dos relaciones binarias o de grado 2
- Dos relaciones ternarias o de grado 3

Para ayudarte con el uso de la aplicación DIA tienes varios VIDEOTUTORIALES donde te explico cómo
utilizar los diversos elementos que necesitas. Visualízalos para entender cómo se ha solucionado
esta actividad.

10
SOLUCIÓN DE LA ACTIVIDAD

➢ Relaciones reflexivas o de grado 1

➢ Dos relaciones binarias o de grado 2

11
➢ Dos relaciones ternarias o de grado 3

FIN DE LA ACTIVIDAD RESUELTA 2

12
2.7 CARDINALIDADES MÍNIMAS Y MÁXIMAS (PARTICIPACIONES)

Indican el número máximo y mínimo de veces que la relación puede estar asociada a una entidad.

Podemos tener las siguientes participaciones:

Participación
(0,1)
(1,1)
(0,N)
(1,N)

El valor de “N” representa un número a partir de 2. Representa el concepto de “muchos”.

En cualquiera de los cuatros casos hay un concepto que es el valor mínimo y otro que es el valor
máximo. Por ejemplo, en el caso de participación (0,1) el valor mínimo será 0 y el valor máximo será 1.

Si el valor máximo es un 1 se dibujará con una línea continua

Si el valor máximo es una N (significa muchos) en el diagrama se dibujará con una línea continua y una
flecha al final

Vamos a explicar todos estos conceptos a través de un ejemplo. ¿Cómo se lee o entiende una
relación? Es quizás uno de los aspectos más importantes que debes saber.

Ejemplo:

Tenemos un contexto normal en la vida real en la que hay personas (hombres) que tienen hijos de forma
biológica. Queremos hacer una base de datos que nos guarde esa información, los datos de las personas
(hombres), los datos de los hijos y quién es padre o hijo de quién (relación).

13
• Vamos a ver cómo hemos obtenido la participación (0,N). Para ello leo la relación de izquierda a
derecha y me hago esta pregunta:

- Una persona ¿cuántos hijos puede tener? En el contexto que estamos que es la vida real
se pueden dar casos de personas que no tengan hijos “0” (valor mínimo) y también
personas que tengan más de un hijo “N” (valor máximo). Con “N” representamos a aquellas
personas que tengan 2 hijos o más.

• Vamos a ver cómo hemos obtenido la participación (1,1). Para ello leo la relación de derecha a
izquierda y me hago esta pregunta:

- Un hijo ¿cuántas personas puede tener como padre? En el contexto que estamos que es
la vida real un hijo sólo puede tener un padre como mínimo y como máximo “1”.

En la siguiente imagen puedes ver un ejemplo de lo que significa lo que hemos representado
gráficamente:

Juan, Pedro y José son los padres.


Jaime, Mario, Daniel, María y Luis son los hijos.

Caso participación (0,N) →

Juan es un padre que no tiene hijos y por eso pusimos “0” como valor mínimo. Si hubiésemos
puesto “1” como cardinalidad mínima NO podríamos guardar los datos de este padre en la base
de datos.

José es un padre que tiene cuatro hijos según las líneas del dibujo, por eso pusimos “N” como
valor máximo (valores a partir de 2).

14
Caso participación (1,1) →

Elige cualquier hijo y verás que la línea sólo le lleva a un padre. “1” como valor mínimo y máximo

Concepto importante →

En este caso el verbo que tenemos en la relación es Tiene.


A la hora de que leamos las relaciones y saquemos las participaciones se puede sustituir el verbo
Tiene por cualquier otro verbo que tengan el mismo significado, es decir, que sean sinónimos.
No hay que cambiar el verbo Tiene en el rombo de la relación, simplemente en el proceso de
sacar la participación se ha tenido en cuenta otro verbo sinónimo.

2.8 CARDINALIDAD DE UNA RELACIÓN

Se calcula a través de las participaciones que hay entre las relaciones. Podemos clasificarlas de la
siguiente manera:

➢ 1:1 Uno a uno → A cada elemento de la primera entidad le corresponde sólo uno de la segunda
entidad y a la inversa.

Se pone encima del rombo 1:1 que se obtiene con los valores máximos de las
participaciones de los dos lados (flechas rojas).

Vamos a explicar cómo hemos obtenido la participación de cada lado:

15
Caso participación (1,1) (al lado de CAPITALES) →
Para ello leo la relación de izquierda a derecha y me hago esta pregunta:

- Un país ¿cuántas capitales puede tener? La respuesta es un país como mínimo tiene que
tener una capital, “1” valor mínimo y como valor máximo un país sólo puede tener también
una capital “1”.

Caso participación (1,1) (al lado de PAISES) →


Para ello leo la relación de derecha a izquierda y me hago esta pregunta:

- Una capital ¿cuántos países lo pueden tener? La respuesta es una capital seguro que
corresponde a una capital al menos, “1”, valor mínimo y una capital ¿puede corresponder
a más de un país? A sólo “1”, valor máximo.

➢ 1: N Uno a muchos → A cada elemento de la primera entidad le corresponde uno o más elementos
de la segunda entidad y a cada elemento de la segunda entidad le corresponde uno solo de la
primera entidad.

Se pone encima del rombo 1:N que se obtiene con los valores máximos de las
participaciones de los dos lados (flechas rojas).

16
Vamos a explicar cómo hemos obtenido la participación de cada lado:

Caso participación (1,N) (al lado de PROVINCIAS) →


Para ello leo la relación de izquierda a derecha y me hago esta pregunta:

- Un país ¿cuántas provincias puede tener? La respuesta es un país como mínimo tiene
que tener una provincia (si no, no sería un país), “1” como valor mínimo y como valor
máximo un país puede tener más de dos provincias “N”.

Caso participación (1,1) (al lado de PAIS) →


Para ello leo la relación de derecha a izquierda y me hago esta pregunta:

- Una provincia ¿a cuántos países pertenece? La respuesta es que una provincia seguro
que corresponde a un país al menos, “1”, valor mínimo y una provincia ¿puede
corresponder a más de un país? No, por lo que “1”, valor máximo.

Importante → Fíjate que al analizar la segunda participación lo hecho sustituyendo el verbo Tiene
del rombo por otros verbos que tienen el mismo significado (son sinónimos) que son Pertenece y
Corresponde. No hay problema en hacerlo.

17
➢ N:M Muchos a muchos → A cada elemento de la primera entidad le corresponde uno o más
elementos de la segunda entidad y a cada elemento de la segunda entidad le corresponde uno o
más elementos de la primera entidad.

Se pone encima del rombo N:M que se obtiene con los valores máximos de las
participaciones de los dos lados (flechas rojas). Por un tema de estándares la segunda es
una M en vez de una N (significa lo mismo, el concepto de más de dos, de muchos).

Vamos a explicar cómo hemos obtenido la participación de cada lado:

Caso participación (1,N) (al lado de ARTÍCULOS) →


Para ello leo la relación de izquierda a derecha y me hago esta pregunta:

- Un vendedor ¿cuántos artículos puede vender? La respuesta es que un vendedor como


mínimo tiene que vender al menos un artículo, “1” como valor mínimo y como valor máximo
un vendedor puede vender muchos artículos “N”.

Caso participación (1,N) (al lado de VENDEDORES) →


Para ello leo la relación de derecha a izquierda y me hago esta pregunta:

- Un artículo ¿cuántos vendedores se pueden encargar de venderlo? La respuesta es que


un artículo al menos un vendedor se tiene que encargar de venderlo, “1” como valor mínimo
y puede que lo vendan más de dos vendedores, “N”, como valor máximo.

18
Importante → Bien para este ejemplo o cualquier otro. Imagínate que el empresario al cual
estamos haciendo el diseño E/R nos dice que en su empresa un ARTÍCULO sólo lo vende un
VENDEDOR. Es decir, el contexto ha cambiado por lo que la solución del diseño E/R va a ser
distinto.

➢ Cardinalidad de las relaciones ternarias → Para averiguar la participación vamos a tener que
analizarlo tomando una ocurrencia concreta de dos entidades y combinándolo con la otra entidad.

Se pone encima del rombo los valores máximos de las participaciones de todos los lados
(flechas rojas).

Ejemplo: Suponemos un contexto en el que queremos guardar una base de datos de empresas,
empresas auditoras y los informes que se obtienen de cuando una empresa hace auditorías de
otras empresas.

19
Vamos a explicar cómo hemos obtenido la participación de cada lado:

Caso participación (1,N) (al lado de INFORMES) →

- Una empresa concreta y una auditora concreta ¿cuántos informes puede hacer (esa
auditora en concreto a esa empresa en concreto)? Mínimo ha tenido que hacerle una “1” y
puede que haya alguna empresa a la que le hayan hecho más de un informe “N”

Caso participación (1,1) (al lado de EMPRESAS) →

- Un informe concreto y una auditora concreta ¿a cuántas empresas puede pertenecer (ese
informe concreto de esa auditora concreta)? Sólo va a poder pertenecer a una empresa ya
que tendrá su código de informe que irá asociado a una empresa. Por lo tanto, en este
caso tanto el valor mínimo como máximo coinciden “1”.

Caso participación (1,N) (al lado de AUDITORAS) →

- Una empresa concreta y un informe concreto ¿cuántas auditoras han podido realizarlo
(ese informe concreto para esa empresa concreta)? Sólo lo habrá podido hacer una
auditora en concreto, “1”, como valor mínimo y máximo.

➢ Cardinalidad de las relaciones reflexivas → Para averiguar la participación vamos a tener que
analizarlo teniendo en cuenta que la misma entidad tiene dos papeles distintos en la relación. Hay
que obtener las participaciones según dos roles distintos.

Contexto del ejemplo: Queremos guardar datos de los empleados y jefes de una empresa. Todos
los empleados tienen un jefe y sólo un jefe menos el presidente de la empresa.

Ejemplo: En la imagen la entidad EMPLEADO tiene dos roles

- Un rol en el que el empleado es jefe de otros empleados


- Un rol en el que el empleado es un empleado (un subordinado)

20
Vamos a explicar cómo hemos obtenido la participación de cada lado:

Caso participación (1,N) → Rol en el que el empleado es jefe de otros empleados.

- Un jefe ¿cuántos empleados puede tener? Al menos tendrá uno “1”, valor mínimo y puede
tener varios “N”, valor máximo.

Caso participación (0,1) → Rol en el que el empleado es un empleado (un subordinado)

- Un empleado (subordinado) ¿cuántos jefes puede tener? Según el contexto, si es el


presidente ninguno, por lo que el valor mínimo va a ser “0”. Como ves hay que contemplar
todas las posibles situaciones, si hubiésemos puesto “1” como valor mínimo NO
hubiésemos podido introducir los datos del presidente ya que el diseño no lo permite.
Como valor máximo según el contexto un empleado sólo puede tener un jefe por lo que
“1”.

ACTIVIDAD RESUELTA 3

Plantea un contexto e invéntate dos entidades con su relación por cada cardinalidad de relación, poniendo
las participaciones y explicando el razonamiento tal y como se hace en el tema.

❖ Para todos los apartados: Un contexto explicado brevemente para situarnos y un razonamiento de
cómo se obtienen las participaciones.

- Dos entidades con una relación 1:1 y sus participaciones


- Dos entidades con una relación 1:N y sus participaciones.
- Dos entidades con una relación N:M y sus participaciones
- Tres entidades con una relación ternaria y sus participaciones
- Una entidad con una relación reflexiva y sus participaciones

21
SOLUCIÓN DE LA ACTIVIDAD

➢ Relación y participaciones que sea 1:1


Contexto: Imaginemos que queremos crear una base de datos para guardar datos de coches y
las características de sus motores. Todos los motores que tenemos en la base de datos están
montados en algún motor.

Caso participación (1,1) (al lado de COCHE) →

- Un coche ¿cuántos motores tiene? seguro que tiene un motor “1”, valor mínimo y no
puede tener más de un motor montado, “1”, valor máximo.

Caso participación (1,N) (al lado de MOTOR) →

- Un motor ¿en cuántos coches está montado? En solo uno, “1”

➢ Relación y participaciones que sea 1:N


Contexto: Imaginemos que queremos crear una base de datos para guardar datos de periodistas
que escriben en periódicos. Suponemos que cada periodista tiene un contrato y que no puede
trabajar en más de un periódico. Todos los periodistas que tenemos almacenados trabajan en
algún periódico.

22
Caso participación (1,1) (al lado de PERIODICO) →

- Un periodista ¿en cuántos periódicos puede trabajar? En sólo un periódico como máximo
y como mínimo también sabemos que trabaja en alguno según la información del contexto,
“1”.

Caso participación (1,N) (al lado de PERIODISTA) →

- En un periódico ¿cuántos periodistas pueden trabajar? Al menos tiene que haber uno,
“1”, valor mínimo y puede haber varios, “N”, valor máximo.

➢ Relación y participaciones que sea N:M


Contexto: Imaginemos que queremos crear una base de datos sobre un colegio para guardar
datos de alumnos y asignaturas.

Caso participación (1,N) (al lado de ASIGNATURAS) →

- Un alumno ¿cuántas asignaturas cursa? Al menos tiene que estar cursando una
asignatura “1”, valor mínimo y puede haber alumnos que cursen más de una asignatura,
que es lo normal “N”.

Caso participación (1,N) (al lado de ALUMNOS) →

- Una asignatura ¿cuántos alumnos la pueden cursar? Al menos tiene que haber un alumno
que la curse, “1”, valor mínimo y puede haber varios, “N”, valor máximo.

23
➢ Relación y participaciones de una ternaria
Contexto: Suponemos que queremos crear una base de datos para guardar datos de proveedores
que suministran una serie de materiales (ladrillos, cemento, ventanas, etc) a proyectos de
construcción de casas (urbanizaciones). Se puede dar casos de proveedores que sólo suministren
un solo material (ya que por ejemplo sólo se dediquen a fabricar ventanas, etc.).

Caso participación (1,N) (al lado de PROVEEDOR) →

- Un proyecto concreto y un material concreto ¿cuántos proveedores pueden suministrarlo?


Mínimo tiene que haber un proveedor que lo suministre, “1” y puede que haya más de un
proveedor que suministre ese material, “N”.

Caso participación (1,N) (al lado de PROYECTOS) →

- Un proveedor concreto y un material concreto ¿a cuántos proyectos distintos se puede


suministrar? Seguro que ese material al menos se suministra a un proyecto, “1” y seguro
que hay materiales que se suministran a varios proyectos,” N”.

Caso participación (1,N) (al lado de MATERIALES) →

- Un proveedor concreto y un proyecto concreto ¿cuántos materiales han usado? Seguro


que “1” como valor mínimo y “N” como máximo.

FIN DE LA ACTIVIDAD RESUELTA 3

24
2.9 ATRIBUTOS DE UNA RELACIÓN

Normalmente las relaciones no tienen atributos, pero se dan situaciones en las que el atributo va a
depender de las dos entidades. Ejemplo:

En la imagen anterior podemos ver que el atributo Unidades está ligado a la relación. ¿Por qué? Porque
el atributo Unidades depende del número de pedido y del artículo para que se pueda definir una cantidad.
No podríamos ponerlo como atributo de PEDIDOS o de ARTICULOS ya que es necesario conocer el valor
de la otra entidad.

ACTIVIDAD RESUELTA 4

El ejercicio consiste en analizar y entender este enunciado. Hay que obtener las entidades,
atributos y relaciones y plasmarlas en el diseño Entidad Relación (E/R).

Una empresa vende productos a varios clientes. Se necesita conocer los datos personales de los clientes
(nombre, apellidos, dni, dirección y fecha de nacimiento).
Cada producto tiene un nombre y un código, así como un precio unitario. Un cliente puede comprar varios
productos a la empresa, y un mismo producto puede ser comprado por varios clientes. Para dar de alta a
un cliente en la base de datos se hace cuando compra su primer producto.

Los productos son suministrados por diferentes proveedores. Se debe tener en cuenta que un producto
sólo puede ser suministrado por un proveedor, y que un proveedor puede suministrar diferentes
productos. De cada proveedor se desea conocer el NIF, nombre y dirección”.

25
SOLUCIÓN DE LA ACTIVIDAD

Hay mucha información en los enunciados que no nos sirve para nuestro diseño E/R. Nos dan información
del contexto nada más y hay aspectos que no se pueden ni se quieren implementar en la base de datos.
Nuestro trabajo como analistas es filtrar esa información y quedarnos con lo importante.

Paso 1 → Lo primero es ver qué entidades hay en el enunciado y buscar sus atributos. Para obtenerlas
tenemos que analizar qué objetos hay en el enunciado de los cuales me interesa guardar información.

- Vemos que de los CLIENTES hay que guardar el Nombre, Apellidos, Dni, Dirección y Fecha de
nacimiento.

- Vemos que de PRODUCTOS hay que guardar su Código, Nombre y Precio unitario

- Vemos que de PROVEEDORES hay que guardar su Nif, Nombre y Dirección

Paso 2 → Hay que buscar qué nexos de unión hay entre las entidades lo que nos dará sus relaciones.

- “Un cliente puede comprar varios productos a la empresa, y un mismo producto puede ser
comprado por varios clientes.”

Esta frase me da a entender que hay una relación entre CLIENTES y PRODUCTOS. Si analizamos
la frase para obtener las participaciones como vimos en los puntos anteriores del tema obtenemos
lo siguiente:

- “Los productos son suministrados por diferentes proveedores. Se debe tener en cuenta que un
producto sólo puede ser suministrado por un proveedor, y que un proveedor puede suministrar
diferentes productos.”

Esta frase me da a entender que hay una relación entre PRODUCTOS y PROVEEDORES. Si
analizamos la frase para obtener las participaciones como vimos en los puntos anteriores del tema
obtenemos lo siguiente:

26
Paso 3 → Unimos las entidades con sus relaciones y ponemos los atributos. Obtenemos el siguiente
resultado.

FIN DE LA ACTIVIDAD RESUELTA 4

ACTIVIDAD RESUELTA 5

Obtén el Diseño Entidad-Relación (E/R) del siguiente enunciado:

Enunciado:

La clínica “SAN JUAN DE DIOS” necesita llevar un control informatizado de su gestión de pacientes y
médicos.

De cada paciente se desea guardar el dni_pac, nombre, apellidos, dirección, población, teléfono.
De cada médico se desea guardar el dni_med, nombre, apellidos, teléfono y especialidad.
De los ingresos se desea guardar el código_ingreso y problema.

27
Se desea llevar el control de cada uno de los ingresos que el paciente hace en el hospital. Cada ingreso
que realiza el paciente queda registrado en la base de datos. De cada ingreso se guarda la fecha de
ingreso y el número de habitación en la que el paciente realiza el ingreso.

Un médico puede atender varios ingresos, pero el ingreso de un paciente solo puede ser atendido por un
único médico. Un paciente puede realizar varios ingresos en el hospital.

SOLUCIÓN 1

SOLUCIÓN 2

Otra forma de hacerlo podría ser en este caso con una ternaria ya que vemos una relación estrecha entre
las tres entidades. Cuando analizamos la relación que hay entre ellas tal y como se ha explicado en el
tema vemos que es posible y que tiene sentido.

No siempre es viable o tiene sentido hacer una relación ternaria.

28
FIN DE LA ACTIVIDAD RESUELTA 5

29
ACTIVIDAD A RESOLVER 1

Tienes que solucionar esta actividad en la aplicación DIA y entregarme ese archivo.

Obtén el Diseño Entidad-Relación (E/R) con la aplicación DIA del siguiente enunciado:

ENUNCIADO 1:

Se desea informatizar la gestión de una empresa de transportes que reparte paquetes por toda España.
Los encargados de llevar los paquetes son los camioneros, de los que se quiere guardar el dni, nombre,
teléfono, dirección, salario y población en la que vive.

De los paquetes transportados interesa conocer el código de paquete, descripción, destinatario y dirección
destino. Un camionero distribuye muchos paquetes, y un paquete sólo puede ser distribuido por un
camionero.

De las ciudades a las que llegan los paquetes interesa guardar el código de ciudad y el nombre. Un
paquete sólo puede llegar a una ciudad. Sin embargo, a una ciudad pueden llegar varios paquetes.

De los camiones que llevan los camioneros, interesa conocer la matrícula, modelo, tipo y potencia. Un
camionero puede conducir diferentes camiones en fechas diferentes, y un camión puede ser conducido
por varios camioneros”.

FIN DE LA ACTIVIDAD A RESOLVER 1

30
3. MODELO E/R AMPLIADO (JERARQUÍAS)

Jerarquía → Se da cuando analizamos un problema y vemos que hay entidades similares que difieren
en pocos atributos. Se representa mediante un triángulo invertido con las palabras “es un” o “es”:

Vamos a usar dos tipos de entidades especiales:

➢ Entidad supertipo o superclase → Es aquella entidad que contiene una serie de atributos
principales.

➢ Entidad subtipo o subconjunto → Contiene atributos que sólo le pertenecen a él. Hereda los
atributos de la entidad supertipo, es decir los atributos de la entidad supertipo también son de la
entidad subtipo.

Vamos a analizar el siguiente ejemplo:

31
¿Cuál es la entidad supertipo? PERSONA

¿Qué atributos tiene la entidad supertipo PERSONA? DNI, Nombre, Dirección y Teléfono.

¿Cuáles son las entidades subtipo? PROFESOR y ALUMNO

¿Qué atributos tiene la entidad subtipo PROFESOR? Las que hereda de la entidad supertipo
PERSONA: DNI, Nombre, Dirección y Teléfono, además de las suyas propias: Sueldo, Especialidad y
Años trabajados.

¿Qué atributos tiene la entidad subtipo ALUMNO? Las que hereda de la entidad supertipo PERSONA:
DNI, Nombre, Dirección y Teléfono, además de las suyas propias: Estudios y Curso.

3.1 PROPIEDADES DE LAS RELACIONES JERÁRQUICAS:

- La relación jerárquica puede ser n-aria. Esto quiere decir que la entidad supertipo puede tener dos
o más entidades subtipo.

- Las entidades subtipo heredan las propiedades y el comportamiento de la entidad supertipo


(herencia).

- El comportamiento y las propiedades de la entidad subtipo puede cambiar respecto al resto de


entidades subtipo. Se pueden redefinir las propiedades y comportamiento (polimorfismo). Ejemplo:

32
En este caso, el atributo piel no va a guardar ni la misma información, ni el mismo tipo de datos o
características para las entidades subtipo.

Para la entidad ACUATICO el atributo piel guardará por ejemplo cuántas escamas, grosor, tipo,
etc.

Para la entidad VOLADOR el atributo piel guardará por ejemplo cuántas plumas, tipo, color, etc.

Para la entidad TERRESTRE el atributo piel guardará otras características que no tiene nada que
ver con las escamas o las plumas.

3.2 ESPECIALIZACIONES DE LAS JERARQUÍAS

Podemos clasificarlos en los siguientes tipos:

➢ EXCLUSIVA o INCLUSIVA

➢ TOTAL o PARCIAL

Vamos a definirlas y ver cómo se representan. Para entender mejor las definiciones al final del documento
tienes unos ejemplos de la vida real que te pueden ayudar.

- Exclusiva

Una ocurrencia de la entidad supertipo es una ocurrencia de una y sólo una entidad subtipo. Se
representa gráficamente de la siguiente forma:

- Inclusiva

Una ocurrencia de la entidad supertipo puede ser una ocurrencia de varias entidades subtipo a la
vez. Se representa gráficamente de la siguiente forma:

33
- Total

Una ocurrencia de la entidad supertipo obligatoriamente debe ser una ocurrencia de alguna
entidad subtipo. Se representa gráficamente de la siguiente forma:

- Parcial

Una ocurrencia de la entidad supertipo puede no ser una ocurrencia de ninguna entidad subtipo.
Se representa gráficamente de la siguiente forma:

Podemos combinarlas de la siguiente forma y su representación gráfica es:

➢ INCLUSIVA Y PARCIAL
➢ INCLUSIVA Y TOTAL
➢ EXCLUSIVA Y PARCIAL
➢ EXCLUSIVA Y TOTAL

INCLUSIVA Y PARCIAL INCLUSIVA Y TOTAL EXCLUSIVA Y PARCIAL EXCLUSIVA Y TOTAL

34
En la aplicación DIA para representar el triángulo, la semicircunferencia y el círculo puedes usar los
elementos recuadrados en rojo:

Ejemplos:

➢ Relación exclusiva total:

Contexto: Imagina que queremos guardar una base de datos de personas en función de su edad y las
podemos clasificar en bebé, niño, adolescente, adulto y anciano.

Es exclusiva porque una persona en un momento determinado sólo puede ser o un bebé o un niño o un
adolescente o un adulto o un anciano (una ocurrencia de la entidad supertipo, PERSONA, es una
ocurrencia de una y sólo una entidad subtipo).

Es total porque una persona seguro que es una de estas cosas: un bebé o un niño o un adolescente o
un adulto o un anciano, no puede ser otra cosa (una ocurrencia de la entidad supertipo, PERSONA,
obligatoriamente debe ser una ocurrencia de alguna entidad subtipo).

35
➢ Relación exclusiva parcial:

Contexto:

Imagina que queremos guardar una base de datos de diferentes tipos de enfermedades, en concreto
víricas y bacterianas. Sabemos que hay otros tipos como autoinmunes, alergias, endocrinas, etc, pero no
nos interesa guardar información de ese tipo de enfermedades.

Es exclusiva porque una enfermedad en un momento determinado sólo puede ser o vírica o bacteriana
(una ocurrencia de la entidad supertipo, ENFERMEDAD, es una ocurrencia de una y sólo una entidad
subtipo).

Es parcial porque existen enfermedades que no son ni víricas ni bacterianas (una ocurrencia de la entidad
supertipo, ENFERMEDAD, puede no ser una ocurrencia de ninguna entidad subtipo). Como hemos
comentado hay otro tipo de enfermedades que hay que tenerlas en cuenta para esta clasificación, aunque
en nuestro contexto NO nos interese guardar información de ellas en este momento.

36
➢ Relación inclusiva total:

Contexto:

Imagina que queremos guardar una base de datos de mamíferos en función de cómo viven en su
ambiente. Pueden ser acuáticos, voladores y terrestres.

Es inclusiva porque puede haber mamíferos que se ubiquen en varias entidades subtipo a la vez.

Ejemplo: los castores se pueden clasificar como acuáticos y terrestres (una ocurrencia de la entidad
supertipo, MAMIFEROS, puede ser una ocurrencia de varias entidades subtipo a la vez).

Es total porque no existe ningún mamífero que no sea terrestre, acuático o volador.

37
➢ Relación inclusiva parcial:

Contexto:

Imagina que queremos guardar una base de datos de personas que estudian y trabajan. Sabemos que
hay otro tipo de personas como parados, jubilados, etc.

Es inclusiva porque una persona puede estudiar y trabajar a la vez (una ocurrencia de la entidad
supertipo, PERSONA, puede ser una ocurrencia de varias entidades subtipo a la vez).

Es parcial porque hay personas que no son ni estudiantes ni trabajadores.

38
ACTIVIDAD RESUELTA 6

Diseñad el diagrama E/R según este enunciado:

Consideramos un contexto en el que los profesores imparten clases en dos tipos de centros educativos:
públicos y privados. Un profesor puede impartir clase en varios centros. Los centros educativos para este
contexto sólo pueden ser de estos dos tipos (públicos y privados), aunque sabemos que también hay
centros concertados.

Los atributos específicos para los centros públicos son el presupuesto y los servicios. Para los privados
son la organización y la cuota. Los atributos que tiene profesor son: Cod_profesor, nombre, especialidad,
dirección y teléfono. Los atributos que tiene centro son: Cod_centro, nombre, dirección, num_alumnos

SOLUCIÓN DE LA ACTIVIDAD

La jerarquía es exclusiva porque un centro o es público o privado. Es parcial porque puede haber otro
tipo de centros como los concertados como comenta.

FIN DE LA ACTIVIDAD RESUELTA 6

39
ACTIVIDAD A RESOLVER 2

Tienes que solucionar esta actividad en la aplicación DIA y entregarme ese archivo.

Diseñad el diagrama E/R según este enunciado:

Se quiere representar la formulación química inorgánica. Para ello es necesario conocer información de
los elementos (H, O, Fe, …) y de los compuestos (H2O, HSO4, CO2, …).

Un elemento puede estar dentro de diversos compuestos y un compuesto está formado por la suma de
varios elementos. También interesa saber en qué proporción participa cada elemento en un compuesto.

De los elementos se guardará la información que aparece en la tabla periódica: cod_elemento, nombre,
símbolo, peso atómico y número atómico.

La información básica será la misma para todos los compuestos, se guardará el cod_compuesto y el
nombre del compuesto, pero dispondrán de información específica en función de que su estado sea
sólido, líquido o gaseoso. Si son gases, interesa guardar el coeficiente de expansión y la temperatura de
licuación. Si son líquidos, la densidad y la temperatura de evaporación. Si son sólidos, el color, olor y
dureza. Un compuesto en un instante determinado sólo puede estar en un estado concreto.

FIN DE LA ACTIVIDAD A RESOLVER 2

40
4. MODELO RELACIONAL (PASO A TABLAS)

Todo lo anterior nos ha ayudado a obtener el esquema conceptual, es decir el diagrama Entidad Relación
(E/R). Ahora vamos a dar el siguiente paso que es el de transformar lo anterior en elementos que vamos
a poder codificar en la base de datos que deseemos, Access, Oracle, SQL Server etc.

Regla a seguir:

➢ Las entidades de transforman en tablas y los atributos se transforman en columnas dentro de esa
tabla.

Ejemplo:

La anterior entidad transformado al modelo relacional quedaría de esta forma:

EMPLEADO (DNI, Nombre, Dirección)

41
PASO DE LAS RELACIONES A MODELO RELACIONAL

Vamos a recordar el concepto de atributo clave ajena o foránea → Consiste en coger un atributo que es
clave primaria en una entidad y copiarla en otra entidad según las reglas que vamos a explicar a
continuación.

Así como la clave primaria se representa subrayado con una línea continua, la clave ajena la
representaremos con subrayado, pero de líneas discontinuas.

4.1 RELACIONES 1:1

La clave de una entidad se introduce como clave ajena en la tabla de la otra entidad.

EJEMPLO 1:

- Tenemos la entidad EMPLEADO con los siguientes atributos: DNI, Nombre, Dirección

- Tenemos la entidad VEHICULO con los siguientes atributos: MATRÍCULA, Marca, Modelo

SOLUCIÓN PASO A TABLAS:

En este caso hay dos alternativas de solución posibles. Se elegirá una u otra en función de cómo se
quiera organizar la información para facilitar las consultas.

OPCIÓN 1 → Introducir la clave primaria de EMPLEADO como clave ajena en la entidad


VEHÍCULO.

EMPLEADO (DNI, Nombre, Dirección)


VEHICULO (MATRÍCULA, Marca, Modelo, DNI)

OPCIÓN 2 → Introducir la clave primaria de VEHÍCULO como clave ajena en la entidad


EMPLEADO

EMPLEADO (DNI, Nombre, Dirección, MATRICULA)


VEHICULO (MATRÍCULA, Marca, Modelo)

42
EJEMPLO 2: Con atributos de la relación

- Los atributos de la relación pasan a la tabla donde se introduce la clave ajena.

SOLUCIÓN PASO A TABLAS:

OPCIÓN 1 → Introducir la clave primaria de EMPLEADO como clave ajena en la entidad


VEHÍCULO.

EMPLEADO (DNI, Nombre, Dirección)


VEHICULO (MATRÍCULA, Marca, Modelo, DNI, Período)

OPCIÓN 2 → Introducir la clave primaria de VEHÍCULO como clave ajena en la entidad


EMPLEADO

EMPLEADO (DNI, Nombre, Dirección, MATRICULA, Período)


VEHICULO (MATRÍCULA, Marca, Modelo)

EJEMPLO 3: Participación (0,1) sólo en una entidad

- Si alguna entidad (pero no las dos) tiene participación (0,1) se pone la clave ajena en la entidad
que tiene la participación (0,1).

Por ejemplo, supongamos que algún empleado no tiene coche

SOLUCIÓN PASO A TABLAS:

EMPLEADO (DNI, Nombre, Dirección)


VEHICULO (MATRÍCULA, Marca, Modelo, DNI)

43
EJEMPLO 4: Participación (0,1) en las dos entidades

- Si las dos entidades tienen participación (0,1) se crea una nueva tabla para la relación.

Por ejemplo, supongamos que algún empleado no tiene coche y que algún coche no es asignado
a ningún empleado.

SOLUCIÓN PASO A TABLAS:

EMPLEADO (DNI, Nombre, Dirección)


VEHICULO (MATRÍCULA, Marca, Modelo)
TIENE (DNI, MATRÍCULA)

4.2 RELACIONES 1:N

La clave primaria de la entidad cuyo valor máximo de la participación sea 1 se pasa como clave ajena a
la entidad cuyo valor máximo de la participación sea N.

EJEMPLO 1:

- Tenemos la entidad PERSONA de la cual se quiere almacenar los siguientes atributos: DNI,
Nombre, Dirección, Edad, Peso.

- Tenemos la entidad TELÉFONOS de la cual se quiere almacenar los siguientes atributos:


COD_TELEFONO, Número, Propio-empresa, Compañía

SOLUCIÓN PASO A TABLAS:

PERSONA (DNI, Nombre, Dirección, Edad, Peso)


TELEFONOS (COD_TELEFONO, Número, Propio-empresa, Compañía, DNI)

44
EJEMPLO 2: Participación (0,N)

- En este caso se hace lo mismo que en el caso anterior

EJEMPLO 3: Participación (0,1)

- Tenemos la entidad PERSONA de la cual se quiere almacenar los siguientes atributos: DNI,
Nombre, Dirección, Edad, Peso.

- Tenemos la entidad ANIMALES de la cual se quiere almacenar los siguientes atributos:


COD_ANIMAL, Tipo, Edad, Precio

SOLUCIÓN PASO A TABLAS:

- La relación TIENE genera tabla ya que la participación es (0,1). Su clave primaria será la de la
entidad cuyo valor mínimo de participación NO sea 0. En este caso de la entidad ANIMALES.
Tanto COD_ANIMAL como DNI son claves ajenas.

PERSONA (DNI, Nombre, Edad, Peso)


ANIMALES (COD_ANIMAL, Tipo, Edad, Precio)
TIENE (COD_ANIMAL, DNI)

45
EJEMPLO 4: Atributos en la relación

- Pasan a la tabla donde se ha incorporado la clave ajena

- Tenemos la entidad EMPLEADO de la cual se quiere almacenar los siguientes atributos: DNI,
Nombre, Dirección, Edad, Peso.

- Tenemos la entidad VIDEOCLUB de la cual se quiere almacenar los siguientes atributos:


COD_TIENDA, Nombre, Dirección

SOLUCIÓN PASO A TABLAS:

EMPLEADO (DNI, Nombre, Edad, Peso, COD_TIENDA, Horas)


VIDEOCLUB (COD_TIENDA, Nombre, Dirección)

4.3 RELACIONES N:M

Siempre generan una tabla nueva, cuya clave primaria está formada por las claves primarias de las dos
entidades (clave primaria compuesta). Estas claves primarias a su vez son claves ajenas.

Si hay atributos de la relación, éstos pasan a la nueva tabla que se crea. Habrá que analizar si alguno de
estos atributos o todos deben pertenecer también a la clave primaria compuesta para ser capaces de
identificar de forma única a cada ocurrencia de la tabla nueva.

EJEMPLO 1:

- Tenemos la entidad ALUMNOS de la cual se quiere almacenar los siguientes atributos: DNI,
Nombre, Dirección, Edad, Peso

- Tenemos la entidad ASIGNATURAS de la cual se quiere almacenar los siguientes atributos:


COD_ASIGNATURA, Nombre, Troncal, Horas-semana

46
SOLUCIÓN PASO A TABLAS:

ALUMNOS (DNI, Nombre, Edad, Peso)


ASIGNATURAS (COD_ASIGNATURA, Nombre, Troncal, Horas-semana)
ALUM_ASIG (DNI, COD_ASIGNATURA)

EJEMPLO 2: Con participación (0,N)

- En este caso se hace lo mismo que en el caso anterior

EJEMPLO 3: Con atributos en la relación

- Tenemos la entidad CONDUCTOR de la cual se quiere almacenar los siguientes atributos: DNI,
Nombre, Edad, Peso, Años_experiencia

- Tenemos la entidad AUTOBÚS de la cual se quiere almacenar los siguientes atributos:


NUM_MATRÍCULA, Año_fabricación, color

SOLUCIÓN PASO A TABLAS:

CONDUCTOR (DNI, Nombre, Edad, Peso, Años_experiencia)


AUTOBÚS (NUM_MATRÍCULA, Año_fabricación, color)
COND_AUTOB (DNI, NUM_MATRÍCULA, FECHA)

El atributo Fecha en la tabla COND_AUTOB debe ir como clave primaria.

47
4.4 RELACIONES TERNARIAS

La relación genera una nueva tabla cogiendo como clave primaria compuesta las claves primarias de las
tres entidades siempre que su participación sea (1,N). Si alguna participación es (1,1) es ese caso la clave
primaria de esa entidad no entraría a formar parte de la clave primaria compuesta. Estas claves primarias
a su vez son claves ajenas.

EJEMPLO 1: Todas las participaciones son (1,N)

- Tenemos la entidad FARMACIA con los siguientes atributos: ID_FARMACIA, Dirección, Teléfono.

- Tenemos la entidad CLIENTE con los siguientes atributos: DNI, Nombre, Apellidos.

- Tenemos la entidad PRODCUTO con los siguientes atributos: COD_PRODUCTO, Nombre,


Descripción

SOLUCIÓN PASO A TABLAS:

FARMACIA (ID_FARMACIA, Dirección, Teléfono)


CLIENTE (DNI, Nombre, Apellidos)
PRODUCTO (COD_PRODUCTO, Nombre, Descripción)
FAR_CLI_PROD (ID_FARMACIA, DNI, COD_PRODUCTO)

48
EJEMPLO 2: Una o varias participaciones son (1,1)

- La relación genera una nueva tabla con las claves primarias de las tres entidades. En este caso
la clave primaria compuesta de la nueva tabla sólo va a contener las claves primarias de las
entidades con participación (1,N)

- Tenemos la entidad DEPARTAMENTO con los atributos: COD_DEPARTAMENTO, Nombre,


Tipo

- Tenemos la entidad TRABAJADOR con los atributos: DNI, Nombre, Apellidos

- Tenemos la entidad TAREA con los atributos: COD_TAREA, Nombre

SOLUCIÓN PASO A TABLAS:

DEPARTAMENTO (COD_DEPARTAMENTO, Nombre, Tipo)


TRABAJADOR (DNI, Nombre, Apellidos)
TAREA (COD_TAREA, Nombre)
DEP_TRA_TAR (DNI, COD_TAREA, COD_DEPARTAMENTO)

49
EJEMPLO 3: Caso de que tengamos atributos en la relación

Los atributos de la relación se incluyen en la nueva tabla que se crea de la relación. Hay que analizar si
esos atributos tienen que formar parte de la clave primaria o no.

- Tenemos la entidad CONDUCTORES con los siguientes atributos: DNI, Nombre, Dirección, Edad.

- Tenemos la entidad AUTOBUSES con los siguientes atributos: MATRÍCULA, Color, Años.

- Tenemos la entidad LUGARES con los siguientes atributos: COD_LUGAR, Descripción,


Código_GPS.

SOLUCIÓN PASO A TABLAS:

CONDUCTORES (DNI, Nombre, Dirección, Edad)


AUTOBUSES (MATRÍCULA, Color, Años)
LUGARES (COD_LUGAR, Descripción, Código_GPS)
COD_AUT_LUG (DNI, MATRÍCULA, COD_LUGAR, FECHA)

50
EJEMPLO 4: Caso de que la cardinalidad de la relación sea 1:1:1

En este caso se elige un atributo como clave primaria de entre los tres atributos que son clave ajena.
Suele ser el más relevante, el que tiene más importancia, …

4.5 RELACIONES REFLEXIVAS

Generarán tabla o no en función de la cardinalidad

EJEMPLO 1: Cardinalidad 1:1

En la tabla persona se introduce dos veces el DNI, uno es clave y el otro no. Para distinguirlos, uno se
llama DNI y el otro DNI_Conyuge.

- Tenemos la entidad PERSONA de la cual se quiere almacenar los siguientes atributos: DNI,
Nombre, Dirección, Edad, Peso.

SOLUCIÓN PASO A TABLAS:

PERSONA (DNI, DNI_Cónyuge, Nombre, Dirección, Edad, Peso)

EJEMPLO 2: Cardinalidad 1:N

51
SOLUCIÓN PASO A TABLAS:

En este caso hay dos opciones de solución:

OPCIÓN 1 → Igual que en el caso anterior. Se introduce en la entidad PERSONA el DNI_padre

PERSONA (DNI, DNI_padre, Nombre, Dirección, Edad, Peso)

OPCIÓN 2 → La relación que genera una nueva tabla

PERSONA (DNI, Nombre, Dirección, Edad, Peso)


ES_PADRE_DE (DNI, DNI_padre)

¡Importante! Si en lugar de la participación (1,1) hubiese sido (0,1) obligatoriamente habría que
hacer esta segunda opción.

EJEMPLO 3: Cardinalidad N:M

Recordamos que en este caso la entidad PERSONAS guardaban datos de enfermos y datos de los
cuidadores (sanitarios).

SOLUCIÓN PASO A TABLAS:

Se crea una nueva tabla para la relación.

PERSONA (DNI, Nombre, Dirección, Edad, Peso)


CUIDA_DE (DNI_ENFERMO, DNI_CUIDADOR)

52
4.6 RELACIONES JERÁRQUICAS

Las relaciones jerárquicas son un caso especial. Se pueden dar algunas guías que sirvan de referencia,
pero en la mayoría de los casos va a depender del problema en concreto:

EJEMPLO 1: Jerarquía exclusiva con atributos en las entidades subtipo

- Tenemos la entidad CENTROS que tiene los siguientes atributos: COD_CENTRO, Nombre,
Dirección, Teléfono, Número_alumnos, Año_fabricación.

- Para la entidad PUBLICOS queremos guardar unos atributos específicos que son: Presupuesto y
Servicios

- Para la entidad PRIVADOS queremos guardar unos atributos específicos que son: Organización
y Cuota

SOLUCIÓN PASO A TABLAS:

CENTROS (COD_CENTRO, Nombre, Dirección, Teléfono, Número_alumnos, Año_fabricación)


PUBLICOS (COD_CENTRO, Presupuesto, Servicios)
PRIVADOS (COD_CENTRO, Organización, Cuota)

53
EJEMPLO 2: Jerarquía exclusiva con alguna entidad subtipo sin atributos

- Supongamos que de la entidad PRIVADOS no se quieran almacenar atributos

SOLUCIÓN PASO A TABLAS:

Si hubiese más de dos entidades subtipo sin atributos, se añadiría el atributo TIPO a la entidad
CENTROS, para poder saber qué tipo de centro es el que está almacenado.

CENTROS (COD_CENTRO, Nombre, Dirección, Teléfono, Número_alumnos, Año_fabricación)


PUBLICOS (COD_CENTRO, Presupuesto, Servicios)

EJEMPLO 3: Jerarquía inclusiva

- Tenemos la entidad PERSONA de la cual se quiere almacenar los siguientes atributos: DNI,
Nombre, Dirección, Edad, Peso.

- Tenemos la entidad ESTUDIANTE de la cual se quiere almacenar los siguientes atributos: Beca,
Curso

54
SOLUCIÓN PASO A TABLAS:

Se crea una tabla para cada una de las entidades subtipo tengan o no atributos. Se crea una tabla para
la entidad supertipo y no se incorpora en ella el atributo que genera la jerarquía. En este caso el atributo
OCUPACIÓN.

PERSONA (DNI, Nombre, Dirección, Edad, Peso)


ESTUDIANTE (DNI, Beca, Curso)
TRABAJADOR (DNI)

ACTIVIDAD RESUELTA 7

Siguiendo las reglas anteriores de transformación del diseño Entidad Relación (E/R) al modelo relacional
(paso a tablas) vamos a resolver los siguientes ejercicios:

ENUNCIADO 1:

SOLUCIÓN DE LA ACTIVIDAD

CLIENTES (DNI, Nombre, Apellidos, Dirección, Fecha de nacimiento)


PRODUCTOS (CODIGO_PROD, Nombre, Precio unitario, NIF)
PROVEEDORES (NIF, Nombre, Dirección)
CLI_PROD (DNI, COD_PROD)

55
ENUNCIADO 2:

SOLUCIÓN DE LA ACTIVIDAD

PROFESORES (COD_PROFESOR, Nombre, Especialidad, Dirección, Teléfono)


CENTROS (COD_CENTRO, Nombre, Dirección, Num alumnos)
PROF_CENTROS (COD_PROF, COD_CENTRO)
PUBLICOS (COD_CENTRO, Presupuesto, Servicios)
PRIVADOS (COD_CENTRO, Organización, Cuota)

56
ENUNCIADO 3:

SOLUCIÓN DE LA ACTIVIDAD

CINES (ID_CINE, Dirección, Teléfono)

SALAS (ID_SALA, Nombre, Butacas, ID_CINE)

FUNCIONES (ID_FUNC, Dia, Hora, ID_PELICULA)

PROMOCIONES (ID_PROMOC, Descuento, Descripción)

PELICULAS (ID_PELICULA, Titulo, Género)

OPINIONES (ID_OPINION, Fecha, Nombre, Edad, ID_PELICULA)

SALA_FUN (ID_SALA, ID_FUNCION)

FUN_PROM (ID_FUNCION, ID_PROMOCION, Fecha inicio, Fecha fin)

FIN DE LA ACTIVIDAD RESUELTA 7

57
ACTIVIDAD A RESOLVER 3

Dados los siguientes modelos E/R transfórmalos al modelo relacional (paso a tablas):

ENUNCIADO 1:

FIN DE LA ACTIVIDAD A RESOLVER 3

58
5. NORMALIZACIÓN

El objetivo de la normalización es obtener modelos relacionales exentos de redundancias. Para ello


tenemos una serie de técnicas para organizar datos que nos ayuden a determinar qué está equivocado
en un diseño y nos enseña la manera de corregirlo.

A lo largo de este tema se ha ido explicando y diseñando la mejor manera de realizar los diseños y paso
a tablas para evitar las situaciones que a continuación se comentan y consiguiendo tener unos diagramas
que cumplen las reglas de normalización.

Existen en total 6 formas normales, aunque las cuatro últimas están fuera del objetivo de este curso:

• Primera forma normal (1FN)


• Segunda forma normal (2FN)
• Tercera forma normal (3FN)
• Forma Normal de Boyce/Codd (FNBC)
• Cuarta forma normal (4FN)
• Quinta forma normal (5FN)

Si no se cumple alguna regla de Normalización, la relación se debe descomponer en varias relaciones


que sí las cumplan.

➢ 1ª FN: Se cumple cuando el valor que contiene cada atributo es único y elemental, es decir, no existen
grupos repetidos.

Ejemplo, disponemos de la siguiente entidad:

PERSONA (DNI, NOMBRE, APELLIDO, TITULACIONES)

DNI NOMBRE APELLIDO TITULACIONES


30.654.231 T Felipe SÁNCHEZ Informática
Caminos
Secretariado
14.234.544 G Antonia LÓPEZ Magisterio

NO está en primera forma normal ya que el atributo Titulaciones para la ocurrencia Felipe tiene más
de un valor.

¿Cómo se resuelve? Creamos dos nuevas entidades: Titulaciones y Tiene.

59
TITULACIONES

COD_TITUL NOM_TITULACION
1 Informática
2 Caminos
3 Magisterio

PERSONA

DNI NOMBRE APELLIDO


30.654.231 T Felipe SÁNCHEZ
14.234.544 G Antonia LÓPEZ
TIENE
DNI COD_TITUL
30.654.231 T 1
30.654.231 T 2
14.234.544 G 3

PERSONA (DNI, NOMBRE, APELLIDO)


TITULACIONES (COD_TITUL, NOM_TITULACION)
TIENE (DNI, COD_TITUL)

➢ 2ª FN: Se cumple cuando cada atributo que no forma parte de la clave candidata tiene dependencia
funcional completa de toda la clave y no de parte de ella.

Dependencia funcional completa

Dados los subconjuntos X e Y, (constando X de varios atributos), se dice que Y tiene dependencia
funcional completa si depende de todos los atributos de X para tener sentido.

X→Y

Ejemplo:

Supongamos que tenemos una empresa que realiza pedidos y cada pedido consta de líneas de
pedidos de artículos.

Tenemos la entidad LineaPedido (REFPED, CODART, FechaPed, CantArt, DescripArt,


PVPArt).

60
Descripción de los atributos:

FechaPed → Es la fecha cuando se realizó el pedido


CantArt → Cantidad de un artículo que va en un pedido concreto
DescripArt → Es la descripción de un artículo concreto
PVPArt → Es el precio de un artículo concreto que no varía (no hay descuentos por volumen de
pedido

Análisis de dependencia de cada uno de los siguientes atributos:

(REFPED, CODART) → FechaPed

Sólo es necesario saber la REFPED para saber su valor. NO tiene una dependencia
funcional completa.

(REFPED, CODART) → CantArt

Depende del pedido y el artículo para establecer su valor. SI tiene una dependencia
funcional completa.

(REFPED, CODART) → DescripArt

Sólo es necesario saber el CODART para saber su descripción. NO tiene una dependencia
funcional completa.

(REFPED, CODART) → PVPArt

Sólo es necesario saber el CODART para saber su precio. NO tiene una dependencia
funcional completa

¿Cómo se resuelve?

Hay que clasificar cada uno de los atributos creando una nueva relación y analizando la relación
entre esas nuevas entidades.

PEDIDO (REFPED, FechaPed)


TIENE (REFPED, CODART, CantArt)
ARTÍCULO (CODART, DescripArt, PVPArt)

61
6. RESUMEN

Resumen

El Diseño Conceptual de una base de datos recoge los requerimientos definidos por los usuarios y las
reglas necesarias para definir el diseño de la base de datos.

EL diagrama que representa la base de datos que se quiere diseñar se llama Entidad-Relación (E/R) y
este diseño es válido para cualquier Sistema Gestor de Base de Datos que se utilice, como por ejemplo
Access, Oracle, MySQL, SQL Server, etc.

Los componentes de un E/R son los siguientes: Entidades, Atributos, Relaciones, Participaciones y
Cardinalidades.

Las relaciones según su grado pueden ser reflexivas o grado1, binarias o grado2, ternarias o grado3 y n-
arias.

La cardinalidad de una relación que puede ser 1:1, 1:N o N:M se calcula tomando las el valor máximo de
las participaciones.

El modelo E/R permite representar el diseño de la Base de Datos, es un modelo entendible por los
diseñadores, y el siguiente paso es pasarlo a un modelo que sea entendible por el ordenador, el modelo
relacional.

La normalización consiste en seguir una serie de normas para verificar que los diagramas E/R están bien
diseñados.

7. AUTOEVALUACIÓN

Contesta a las cuestiones test planteadas para este tema.

62
63

También podría gustarte