índice

Módulo A
Unidad didáctica 1: Introducción a las Bases de Datos
Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos

3
19

Módulo B
Unidad didáctica 1: Fase de análisis de requisitos – Modelo E/R
Unidad didáctica 2: Modelo Relacional

Módulo C

33
1113

189

Unidad didáctica 1: Álgebra relacional
Unidad didáctica 2: SQL – Lenguaje de consulta estructurado

199

MÓDULO A

UNIDADES DIDÁCTICAS:

1. Introducción a las Bases de Datos
2. Metodologías de Desarrollo de Bases de Datos

Definición de la Base de Datos 3. Herramientas de SGBD 7. Algunas arquitecturas de Sistemas de Bases de Datos x Qué es una base de datos y sus principales ventajas Qué es un sistema gestor de bases de datos y sus principales funciones Arquitectura de una base de datos según los tipos de usuarios Qué es el lenguaje SQL Diferencias entre Sistemas centralizados. Lenguajes de SGBD 6. sistemas paralelos y sistemas distribuidos . La Base de Datos como un componente de los sistemas de información 2. Sistema de Gestión de Bases de Datos 4.MÓDULO A OBJETIVOS En esta unidad aprenderás: Introducción a las Bases de Datos x x x x UNIDAD DIDÁCTICA 1 Índice de la unidad: 1. Arquitectura de Bases de Datos a tres niveles 5. cliente-servidor.

ventas. productos. vamos a La Base de Datos como un componente de los Sistemas de dar una definición más precisa de este componente que desglosaremos en todos Información sus aspectos.) y los usuarios finales con pocos conocimientos de informática que requieren consultas y actualizar los datos mediante interfaces adecuados a sus características. en unos grandes almacenes se tendrían los datos de clientes. Posteriormente. la confidencialidad y la integridad de los datos. encargado de asegurar la calidad de los datos almacenados y de permitir su uso correcto y permanente.Introducción a las Bases de Datos El componente que nos interesa en este libro. facturación. impresoras. - Equipo físico (hardware) formado por la unidad central de proceso y los equipos periféricos (discos. almacenados en un soporte de ordenador (por ejemplo. etc.. recuperación y mantenimiento) así como controlar las comunicaciones y dar soporte a tratamientos específicos (por ejemplo. A continuación. es decir. que ante cualquier tipo de catástrofe o fallo. estudiaremos la necesidad de las Bases de Datos Desglosando en detalle los componentes de un SI nos encontramos con en los sistemas de información actuales en contraposición a los sistemas de cinco grandes componentes: - ficheros. que sean correctos. terminales. se tengan los mecanismos adecuados de recuperación para que el sistema siga funcionando. - Un conjunto de Usuarios formado por las personas que acceden al sistema de información y que pueden ser de dos tipos: informáticos (analistas y programadores encargados de desarrollar las aplicaciones. - El Administrador. válidos y precisos. encuentra en el software del sistema de información. redes.). etc. los datos con su correspondiente descripción. documentación. que debe gestionar los datos (creación.). se 1. bases de datos.. . gestión de personal. lenguajes de programación. la Base de Datos. El Contenido. - Equipo lógico (software) compuesto por los programas. etc. etc. 5 6 . La disponibilidad se refiere a que los datos deben estar accesibles en todo momento. consulta. es decir. la confidencialidad se encarga de no desvelar datos a usuarios no autorizados y la integridad asegura que los datos no se falseen. es decir.). El administrador o administradores debe controlar la disponibilidad.

diferentes usuarios y aplicaciones. en un único almacén y son accedidos por todas las aplicaciones. etc. En ocasiones. 1 7 8 . etc. redundancia (a nivel de almacenamiento físico1) que mejora la eficiencia los datos se encuentran en distintos ficheros diseñados expresamente de la BD. Posteriormente se verá que los datos por ejemplo.. no debe existir redundancia (el término redundancia es - Descripción de los datos junto con los datos: la definición y descripción2 sinónimo de datos repetidos). Por ahora. los datos de un cliente de una empresa. se volverá al tema de la redundancia cuando se estudien redundancia controlada. Por otro lado.Introducción a las Bases de Datos partes de la BD y no se controlara: puede ocurrir que si un cliente 2. integradas con los mismos datos. nos basta saber que el nivel físico concierne a cómo se almacenan los datos en los ficheros de la BD. un programa en un lenguaje de programación en el que al sucedería si los datos de los clientes de una empresa se repiten en varias principio del código se define de qué tipo son las variables y las En secciones posteriores estudiaremos que se habla de tres niveles (conceptual. única y almacenada junto con (informáticos que desarrollan programas de acceso a la BD. mantener separados los datos de los tratamientos que los utilizan. todas ellas accediendo a los Los procedimientos de actualización y recuperación. los datos se encuentran se están usando"). esta redundancia siempre debe ser controlada por el encuentra junto con los programas de la aplicación. y la descripción de los datos se Sin embargo. las BD han de atender a múltiples usuarios de la organización ellos y su definición (estructura de la BD). aplicaciones de contabilidad. es necesaria cierta de recoger el máximo contenido semántico. ante determinados tipos de consultas de datos. diferencian de las BD. cambia de dirección postal y sólo se actualiza esta información en uno de Definición de Base de Datos los sitios. comunes y bien datos contenidos en la BD de la empresa). de facturación. por ejemplo. se ha de apoyar en un modelo de datos. dispositivos de memoria secundaria como responder a las necesidades de una aplicación determinada y apenas discos. una biblioteca. el cual ha de permitir usuarios de las aplicaciones. cintas. piense el lector qué ejemplo. es decir. Aunque no entraremos aquí en detalles de en qué Veamos en qué consiste cada uno de los aspectos mencionados en esta consisten los sistemas de ficheros que se utilizaban con anterioridad a la definición de Base de Datos que no son más que distintas definiciones según aparición de las BD sí indicaremos algunos aspectos relevantes que los distintas perspectivas. 2 En las siguientes secciones se verá que la descripción de los datos es lo que se denomina estructura o esquema de la BD. al (1999) tradicionales de ficheros. En los sistemas de ficheros. lógico y físico) en la arquitectura de una BD. facilitarán la seguridad del conjunto de los datos.) que se almacenan en un soporte En los sistemas basados en ficheros cada fichero se diseñaba para informático no volátil (es decir. estos aspectos son: - - La Base de Datos es un conjunto de datos relativos a una determinada - Independencia de datos y procesos: es el objetivo fundamental de las parcela del mundo real (por ejemplo. deben mantenerse independientes de con datos distintos en distintas partes de la BD). Recuérdese. no deben existir duplicidades del conjunto de datos contenidos en la BD deben ser únicas y estar perjudiciales ni innecesarias (a ser posible un determinado tipo de dato. De Esta visión unificada de los datos se contrapone con los sistemas Miguel et. (ad-hoc) para cada tipo de aplicación.) así como a distintas aplicaciones (por ejemplo. por sistema para que no se produzcan inconsistencias. almacenados en soporte secundario (no volátil) y con Posteriormente. etc. que hacen que los datos no desaparezcan "cuando no podían utilizarse por otra aplicación. administrativos los datos. captar las interrelaciones y restricciones existentes en el mundo real.. petroquímica. determinados. sólo deben están interrelacionados y estructurados de acuerdo a un modelo capaz aparecer en un sitio en la BD). Además. una universidad. una empresa BD. Los datos. que han de ser compartidos por los modelos de datos como herramientas de diseño de Bases de Datos. entonces la BD quedaría en estado inconsistente (el cliente Definición: Una Base de Datos (BD) es una colección o depósito de aparece datos integrados. etc. En las BD.

procedimientos. etc. disponibilidad e integridad) del conjunto de datos. Aplicación 1 Aplicación 2 Aplicación 3 SGBD Base de Datos Figura 1. los medios necesarios para describir y manipular los datos integrados en la BD. manteniendo su integridad . actualizar. Aplicación n De . Miguel et al. 9 10 . sólo decir que el conjunto de programas y herramientas que nos permite crear. confidencialidad y disponibilidad. - Procesos 3. (1999). manipular y mantener una BD. Database Management System (DBMS). necesarios El para SGBD el también mantenimiento proporcionará de la Sistemas de Gestión de Bases de Datos describir en profundidad qué es un SGBD y cuál es la funcionalidad que debe los proporcionar. seguridad (confidencialidad. de actualización y recuperación recuperación y actualización de los datos se bien establecidos: la En la sección anterior se ha estudiado qué es una BD y se ha mencionado realiza de acuerdo a alguna de las funcionalidades de un SGBD. Definición: Un Sistema de Gestión de Bases de Datos (SGBD4) es un conjunto coordinado de programas. que suministra. lenguajes. En esta sección nos centraremos en procesos bien determinados que se incluyen en el Sistema de Gestión de Bases de Datos3 instrumentos (SGBD). programadores o administradores de una BD.. Por ahora.. 4 En inglés. herramientas.. tanto a los usuarios no informáticos como a los analistas.1: Sistema de Bases de Datos 3 En el siguiente apartado se estudiará que es un SGBD.Introducción a las Bases de Datos estructuras de datos que se van a manejar en el programa que accede a los ficheros.

usuarios finales) con necesidades - diferentes. vamos a definir cuál es la arquitectura de una BD según la usuarios que acceden a la BD mediante las aplicaciones y la Base de Datos que visión que de ella tienen los distintos tipos de usuario. el administrador de la BD si necesita tener una vista completa los aspectos de seguridad que haya establecido el administrador de la de la BD de la empresa para llevar a cabo su trabajo. En las BD relacionales se emplea el SQL (Standard Query Language). etc. En una BD se identifican contiene toda la información. las productos de esa empresa. por suprimir o modificar los datos de la misma siempre y cuando se respeten ejemplo. un nivel lógico y un nivel físico.1 muestra la arquitectura 4. 11 12 .Introducción a las Bases de Datos Se denomina Sistema de Bases de Datos a la unión de una BD. los atributos que la componen. en ella se observa que el SGBD hace de interfaz entre los A continuación. por ejemplo. longitud de los campos. usuarios (administradores. mecanismos de seguridad y mantenimiento de la BD.). El nivel lógico se corresponde con la visión total de la empresa. como se estudiará más adelante. BD. se distingue Ya hemos mencionado en la sección anterior que existen distintos tipos de un nivel externo. herramientas necesarias para el administrador para establecer los caminos de acceso a los datos. programadores. particionamientos de memoria. un SGBD más las aplicaciones que acceden a la BD. Para que el SGBD pueda llevar a cabo estas funciones se necesita un La gestión de estos tres niveles debe estar soportada en cualquier SGBD. el SGBD proporciona un lenguaje una empresa no necesita conocer los datos relativos a las ventas de para la definición las tablas. Esto significa que no todos los usuarios necesitar una serie de funciones que se describen a continuación: conocer la BD completa sino que únicamente necesitan una vista parcial - Función de definición: permite a los diseñadores de la BD describir los de ella (la que le permita llevar a cabo su trabajo). restricciones semánticas así como las características de tipo físico o - almacenamiento. su estructura y las relaciones que existen entre administrativo que trabaje elaborando las nóminas de los empleados de ellos. - Función de control: esta función aúna los interfaces que requieren los El nivel físico se corresponde con la vista del soporte físico informático en cuanto a que se refiere a la forma en que se organizan los datos en el distintos tipos de usuarios para comunicarse con la BD así como las almacenamiento físico (índices o punteros. independiente tanto del equipo como de cada usuario en particular. Arquitectura de BD a tres niveles de un sistema de BD. Así. tres capas de estructuración según tres niveles de abstracción. La Figura 1. un elementos de datos. Para poder dar soporte a estos usuarios el SGBD debe proporcionar El nivel externo se corresponde con la visión de la BD que cada usuario tiene en particular. lenguaje que permita especificar lo que cada tipo de usuario necesita en su comunicación con la BD. esta vista global se interpone entre el nivel externo y el nivel físico siendo - Función de manipulación: permite a los usuarios de la BD añadir.

en los SGBD relacionales se - tiene el lenguaje SQL que de acuerdo a su función se descompone en: - diseño implementación de BD que generalmente incluyen diagramadores para esquemas conceptuales y lógicos de bases de datos. - externo) así como la estructura interna (nivel físico). suprimir. etc. existen: tipos de usuario puedan comunicarse con la BD. 5 Computer Aided Software Engineering 13 14 .) así como de protección frente a accesos no permitidos (autorizaciones y contraseñas. etc. Herramientas de un SGBD De acuerdo a las funciones a las que debe dar soporte un SGBD estudiadas Aparte de los lenguajes vistos en el apartado 5. - e Lenguaje de Definición de Datos (LDD): utilizado para definir la requeridas para el desarrollo de las diferentes aplicaciones (nivel - herramientas de ayuda al desarrollo (CASE5) en las fases de análisis. interfaces gráficas.). etc. estructura lógica de la BD (nivel lógico). modificar y programar en lenguajes convencionales buscar datos en la BD. la estructuras externas generadores de código SQL. - ésta ya está preparada para cargar los datos en las estructuras definidas generadores de aplicaciones basados en lenguajes de cuarta generación (4GL) que permiten a los usuarios desarrollar aplicaciones sin tener que y para su utilización. generadores de informes y pantallas que facilitan la presentación de los datos recuperados de la BD. Así. facilidades de usuario para facilitar la consulta de los datos (menús. perfiles de usuarios.Introducción a las Bases de Datos 5. los SGBD proporcionan otro en el apartado 3 y a los distintos niveles de estructuración de una BD vistos en tipo de herramientas de gran utilidad en el desarrollo de aplicaciones de Bases el apartado 4. Lenguajes de un SGBD 6. etc. Así. Es el SGBD el que se encarga de acceder al correspondiente soporte físico para localizar los datos con los que se - harán las operaciones especificadas. los SGBD deben proporcionar un lenguaje para que los distintos de Datos. Lenguaje de Control: el administrador de la BD utiliza este lenguaje para especificar los aspectos de seguridad física (copias de seguridad. el LMD permite añadir. Lenguaje de Manipulación de Datos (LMD): una vez se ha descrito la BD. Entre otras. rearranque de la BD en caso de caída. El lenguaje de control también se requiere para definir los interfaces que necesitan los distintos usuarios para comunicarse con la BD.).

sistemas paralelos y sistemas distribuidos. paralelas son: Según estos aspectos distinguimos sistemas centralizados. vuelta). En un sistema distribuido se En los sistemas cliente-servidor existe un reparto de funcionalidades. En estos sistemas podemos diferenciar entre: Disco compartido: Los procesadores comparten un disco común (cada procesador con su memoria) - Sistema monousuario formado por un ordenador personal o por una estación de trabajo con una única CPU y un sistema operativo monousuario (no permite que varios usuarios puedan acceder - Sin compartimiento: No hay compartición ni de disco ni de memoria - Jerárquico: modelo híbrido de los anteriores. Algunas arquitecturas de Sistemas de Bases de Datos Se distinguen dos tipos de servidores: En este apartado revisaremos brevemente algunos conceptos relacionados con las distintas arquitecturas de Sistemas de BD. en los sistemas distribuidos la BD se almacena en varios multiusuario con terminales conectados al sistema servidor. Paralelismo: acelerar la ejecución de tareas (transacciones. los sistemas clientes. El objetivo Distribución: Datos situados donde se han generado o donde son más es realizar operaciones simultáneamente mediante el uso de varios procesadores necesarios pero accesibles desde todos los sitios (sistemas de BD y varios discos en paralelo. Los sistemas servidores satisfacen las peticiones generadas por 7. En los sistemas centralizados existe un único sistema informático sin - interacción con otros ordenadores. sistemas cliente- servidor. Memoria compartida: Todos los procesadores comparten una memoria común. - - - Red: permite que algunas tareas se ejecuten en un sistema servidor y que otras se ejecuten en los clientes (son lo que se denominan sistemas en las que se realiza el procesamiento enviando después los datos de de BD cliente-servidor). etc. los terminales se sustituyen por ordenadores personales que gestionan el interfaz de usuario SQL.Introducción a las Bases de Datos interfaz gráfica. simultáneamente a la BD) - Sistema multiusuario formado por varias CPU y con sistema operativo Por último. diseñadores de informes e 15 16 . interfaz de formularios. - Servidores de datos (el servidor envía los datos a las máquinas clientes Respecto a los sistemas paralelos representan una solución al manejo de BD muy grandes o con un gran volumen de transacciones por segundo. estos ordenadores que no comparten ni memoria ni discos pero que se comunican terminales no poseen ninguna funcionalidad propia aparte de la de mediante redes de alta velocidad o líneas telefónicas. Estos ordenadores se visualizar el resultado de los procesos que se ejecutan en el servidor.) de acuerdo al sistema informático subyacente (sistemas de BD paralelos). En una arquitectura se - reflejan aspectos como la conexión en red. encuentran en varios lugares geográficos distintos. el paralelismo y la distribución: Servidores de transacciones (servidores de consultas) con un interfaz mediante el que los clientes envían peticiones para realizar una acción que el servidor ejecutará y cuyos resultados se devuelven al cliente. es dan dos tipos de transacciones: decir. Los modelos de arquitecturas para máquinas distribuidos).

Procesos de actualización y recuperación bien establecidos la autonomía en cuanto a que cada administrador controla su BD y. lenguajes. manipulación y control. confidencialidad y disponibilidad. etc. . el paralelismo y la distribución. almacenados en soporte secundario (no volátil) y con Las ventajas que proporcionan los sistemas distribuidos frente a los sistemas redundancia controlada. que suministra.Descripción de los datos junto con los datos . Sistemas Centralizados Monousuario Multiusuario Sistemas Cliente-Servidor Servidores de transacciones Servidores de datos Sistemas paralelos Memoria Compartida .Disco Compartido Sin compartimiento . programadores o administradores de una BD.. .Introducción a las Bases de Datos - Transacciones locales: Acceso a datos del ordenador en el que se inició la transacción - Transacciones globales: Acceso a datos de un ordenador distinto o acceso a datos de varios ordenadores distintos. por último. por ejemplo. En una arquitectura de bases de datos se reflejan aspectos como la conexión en red. tanto a los usuarios no informáticos como a los analistas. poder seguir trabajando. en particular. los medios necesarios para describir y manipular los datos integrados en la BD.El nivel lógico . Una Base de Datos (BD) es una colección o depósito de datos integrados. Según estos aspectos distinguimos sistemas centralizados. manteniendo su integridad .El nivel físico Un Sistema de Gestión de Bases de Datos (SGBD) es un conjunto coordinado de programas.Jerárquico Sistemas distribuídos 17 18 Transacciones Locales . procedimientos. Sus principales funciones son las de definición. herramientas. En una BD se identifican tres capas de estructuración según tres están los demás para niveles de abstracción. sistemas cliente-servidor. la disponibilidad de los datos pues si un ordenador falla.El nivel externo . sistemas paralelos y sistemas distribuidos. dos sucursales bancarias pueden compartir datos entre sí.Independencia de datos y procesos: . si hay duplicación de datos. Las ventajas que presentan son las siguientes: centralizados son la compartición de datos (acceso a datos en distintos sitios).

Modelos de datos como instrumentos de diseño de Bases de Datos 3.MÓDULO A OBJETIVOS En esta unidad aprenderás: Metodologías de Desarrollo de Bases de Datos UNIDAD DIDÁCTICA 2 Índice de la unidad: 1. creación del modelo relacional y posterior optimización de la base de datos. basada en la construcción de esquemas E/R. Una metodología de desarrollo de BD 3. Qué es una metodología y para qué sirve 2.1 Modelado Conceptual 3.2 Transformación de esquemas conceptuales E/R a esquemas relacionales 3.3 Diseño físico x x x Qué es metodología En qué consiste el diseño de una base de datos Descripción de una metodología propia de diseño de una base de datos. .

Por lo tanto. el producto software es una Base de Datos MODELOS Figura 1. en el caso que nos ocupa en este libro.". es decir. Los modelos son los instrumentos que empleamos para representar una determinada realidad (generalmente tienen una notación gráfica que facilita su comprensión y validación). labor en cada actividad definida en la metodología. Amescua et al. se utilizan en las técnicas para soportar la actividad que llevan a cabo. Qué es una metodología y para qué sirve Incorporadas Defición: Una metodología es un conjunto de procedimientos.2.2: Relación entre los componentes de una metodología Una metodología nos indica las actividades a seguir en el desarrollo de principio a fin de la Base de Datos. qué se produce como salida e Por último. Veamos en qué consiste cada uno metodológico que ayude al analista. proporcionan procedimientos para llevar a cabo cada tarea. diseñador o programador a desarrollar su de estos elementos. es como un libro de recetas de aplicación de las técnicas de una metodología así como a los modelos que cocina en el que se va indicando paso a paso todas las actividades a realizar incorporan. qué es lo que hay que realizar en cada actividad indicando qué se necesita como entrada. correspondientes a una metodología sino también dar soporte a toda la metodología Como muestra la Figura 1. Todos estos conceptos se estudiaran particularizados para una metodología Las técnicas representan cómo llevar a cabo cada una de las actividades o de BD en las siguientes secciones. En el siguiente apartado se estudiarán los modelos de datos involucrados en el diseño de una BD 21 22 . modelos y soporte CASE. generalmente se utilizan en tareas con un alto componente creativo). las herramientas CASE permiten dar soporte automatizado a la incluso quién está involucrado. en ocasiones estas técnicas son procedimentales (secuencia perfectamente definida de los pasos a realizar en una tarea como en un algoritmo) y en otros casos son heurísticas (reglas. recomendaciones o sugerencias a seguir que en ningún caso establecen el proceso exacto de realización de una tarea. (1995).Metodologías de Desarrollo de Bases de Datos SOPORTE CASE Automatizadas TÉCNICAS 1. Los entornos CASE no solo deben automatizar las técnicas aisladas para lograr la Base de Datos deseada. técnicas y ayudas Se apoyan en METODOLOGÍA a la documentación para el desarrollo de un producto software. pasos de los que consta la metodología. una metodología se apoya en los siguientes de desarrollo mediante la incorporación de un conductor elementos: técnicas.

Metodologías de Desarrollo de Bases de Datos

determinada realidad (estos elementos varían de un modelo a otro

2. Modelos de datos como instrumentos de diseño de Bases de

según su riqueza semántica).

Datos

- Elementos no permitidos: Son las restricciones que representan las
limitaciones impuestas a la estructura del modelo o a los datos que

El diseño de BD consiste en describir la estructura de la BD de forma que se

invalidan ciertos ejemplares de la BD. Las restricciones son de dos

represente fielmente la parcela del mundo real1 que se quiere almacenar. Ello se

tipos:

realiza mediante un proceso de abstracción (que se denomina modelado) que se
apoya en un modelo de datos. Un modelo de datos es el instrumento que se

i. Restricciones inherentes: son las limitaciones impuestas a

aplica a un UD para obtener una estructura de datos que se denomina esquema

las estructuras del modelo (reglas impuestas para la

de la BD (Figura 1.3).

utilización y combinación de los distintos constructores del
modelo).
ii. Restricciones

Mundo
Real

semánticas

(o

de

usuario):

son

las

restricciones que se deducen de los supuestos semánticos
explícitos o implícitos o derivados de nuestro conocimiento

Modelo
de Datos

del mundo real que se quiere reflejar en la BD (por
ejemplo,

"todo

empleado

debe

pertenecer

a

un

departamento", "el sueldo de un determinado empleado

Esquema
(Estructura
de Datos)

siempre será inferior al sueldo de su jefe", etc.).
B. Dinámica: Formada por un conjunto de operadores que permiten
manipular

Figura 1.3: Aplicación de un Modelo de Datos

los

datos

y

que

están

reflejados

en

el

Lenguaje

de

Manipulación de Datos. Como se estudiará después, esta parte dinámica
no tiene sentido para todos los modelos de datos.
Un modelo de datos proporciona un conjunto de conceptos, reglas y
Además, cada modelo de datos tiene una representación gráfica que suele

convenciones que nos permiten especificar y manipular los datos que queremos

ser en forma de grafos o tablas.

almacenar en la BD. Todo modelo de datos se compone de una parte estática y
una parte dinámica como se explica a continuación.

A lo largo del desarrollo de una BD se utilizan varios modelos de datos que

A. Estática: Conjunto de estructuras (también denominados constructores

nos permiten representar la realidad según las distintas fases de una

del modelo) que permiten definir los datos y sus restricciones asociadas

metodología y según distintos niveles de abstracción. Aunque los siguientes

especificados según un Lenguaje de Definición de Datos (apartado 5 del

capítulos se dedicarán al estudio pormenorizado de cada uno de los modelos, la

tema anterior). Esta parte estática consta de elementos permitidos y

Tabla 1 muestra la parte estática y dinámica del Modelo Entidad/Interpelación

elementos no permitidos:

(E/R) para modelado conceptual y el Modelo Relacional para diseño lógico de BD.

- Elementos permitidos: son los objetos, asociaciones entre objetos,
propiedades, etc. que proporciona el modelo para representar una

1

En el ámbito de las Bases de Datos se denomina Universo del Discurso (UD)
23

24

Metodologías de Desarrollo de Bases de Datos

Modelo E/R

Modelo Relacional

Elementos
permitidos

-

Entidades, atributos, interrelaciones, jerarquías,
dominios

Restricciones
inherentes

-

Obligatoriedad de Identificador Principal de Entidad. No existen interrelaciones entre interrelaciones.
-

-

-

-

-

-

Dinámica

-

Representación -

Restricciones sobre atributos: identificador principal,
identificador alternativo, simples/compuestos,
univaluados/multivaluados, obligatorios/opcionales y
atributos derivados.
Restricciones sobre interrelaciones: restricciones de

No existen grupos repetitivos.
Regla de integridad de entidad.

-

Definición de clave primaria.

-

Restricción de unicidad.
Restricción de obligatoriedad.
Integridad referencial (clave ajena).
Restricciones de verificación.

-

3. Una Metodología de desarrollo de Bases de Datos

Obligatoriedad de clave primaria.
Orden de tuplas y atributos no es
significativo.

-

-

Restricciones
semánticas

Relación, atributos, dominios

Aunque existen distintas metodologías para el desarrollo de BD, Elsmari y
Navathe (1997), en este libro se seguirá la propuesta en De Miguel et al. (1999)
que cubre las fases de diseño conceptual, diseño lógico estándar y diseño lógico
específico. La figura que se presenta a continuación muestra las fases de esta
metodología con los modelos que se aplican en cada una de ellas. Aunque el uso
de esquemas conceptuales facilita el diseño de BD no siempre la fase de
modelado conceptual se lleva a cabo. La parte derecha de la Figura muestra la
metodología completa de diseño de BD mientras que la parte izquierda muestra

cardinalidad, tipo de correspondencia, dependencia
en existencia, dependencia en identificación,
interrelaciones exclusivas
Restricciones sobre jerarquías:
exclusividad/solapamiento, totalidad/parcialidad

el diseño de BD partiendo del diseño relacional de una BD.

No es de interés puesto que es un modelo abstracto no implementable

Lenguaje SQL-92.

Grafos

Grafos y tablas.

-

MUNDO REAL
OBJETOS CON SUS SUCESOS,
PROPIEDADES,
ASOCIACIONES Y
RESTRICCIONES SEMÁNTICAS

Modelado Conceptual

ESQUEMA
CONCEPTUAL

MODELO
E/R

Transformación
al modelo lógico estándar

MODELO
RELACIONAL
(SQL-92)

ESQUEMA
LÓGICO
ESTÁNDAR

MODELO
RELACIONAL
(SQL-92)

Transformación
al modelo lógico específico

MODELO
RELACIONAL
(SGBD)

MODELO
INTERNO
(SGBD)

ESQUEMA
LÓGICO
ESPECÍFICO

MODELO
RELACIONAL
(SGBD)

ESQUEMA
INTERNO

MODELO
INTERNO
(SGBD)

Veamos a continuación en qué consiste cada una de estas fases:
25

26

Metodologías de Desarrollo de Bases de Datos

3. 1 Modelado Conceptual

3.2 Transformación de esquemas conceptuales E/R a esquemas
relacionales

Consiste en la representación del UD (parte del mundo real que se quiere
almacenar

los

Una vez se ha validado con el usuario el esquema E/R correspondiente a la

constructores del modelo E/R se recoge toda la semántica que puede

en

la

BD)

en

BD ya es posible realizar la transformación a un esquema lógico, en nuestro

obtenerse mediante la observación del UD o bien a partir de unas

caso, a un esquema relacional. Para este paso si que existe un procedimiento

especificaciones

la

exhaustivo a seguir con el fin de traducir todos los constructores del modelo

información que debe contener la BD. En este libro se construirán esquemas

E/R a constructores del modelo Relacional. En un primer paso, se hace una

conceptuales de BD a partir de esquemas descriptivos.

transformación al modelo relacional estándar (SQL-92). El modelo relacional

textuales

esquemas

(esquemas

conceptuales

descriptivos)

E/R.

que

Mediante

describan

estándar no es directamente implementable en un SGBD relacional pues cada

Esta primera fase de análisis tiene como objetivo poder validar con el

SGBD implementa de manera libre un subconjunto de este estándar. Es en la

usuario (persona o conjunto de personas que nos encargan una BD para

fase de transformación a un modelo lógico específico (es decir, el propio de

cubrir sus necesidades de negocio) la información que contendrá la BD. Por

cada SGBD comercial3) cuando ya se habla de BD directamente trasladables a

ello, los esquemas E/R son los de mayor nivel de abstracción (capacidad para

un producto comercial.

ocultar los detalles y fijarse en lo esencial), con constructores muy naturales
(estructuras muy cercanas al usuario y fácilmente comprensibles por personas
no informáticas). Nótese que los esquemas conceptuales no son directamente

3.3 Diseño Físico

implementables en un ordenador; por ello, no tienen ninguna connotación
física y pueden traducirse a cualquier modelo lógico2. El esquema E/R viene a

En esta fase se tienen en cuenta aspectos relacionados con la carga de la

ser para una BD como los planos de un arquitecto son imprescindibles para

BD, la optimización de consultas y otros aspectos relacionados con la

una casa: algo necesario a priori en la construcción de una BD. Sin estos

eficiencia en el almacenamiento y funcionamiento de la BD y que son

planos

realizadas por el administrador de la BD a través de las utilidades que

es

imposible

conocer

cuáles

son

los

requisitos

que

deberán

contemplarse en la BD.

proporciona el SGBD que se vaya a utilizar.

La construcción de esquemas E/R es una labor creativa que se realiza en

Como se observa en la parte izquierda de la Figura, también es posible

sucesivos pasos de refinamiento; consecuentemente, no todos los analistas

realizar el diseño de la BD directamente en el modelo relacional sin llevar a

obtendrán el mismo esquema E/R cuando modelan una determinada realidad

cabo previamente la fase de modelado conceptual. En este caso, el diseñador

pues dependerá de la labor intelectual que lleve a cabo cada uno en su visión

plasmará directamente en un esquema relacional la semántica del mundo real

del UD. Sin embargo, si es posible seguir una serie de heurísticas o

que debe quedar recogida en la BD.

recomendaciones de gran utilidad cuando se modela una BD. En el capítulo
dedicado al modelo E/R se estudiarán estas heurísticas en detalle.

3

Por ejemplo, Oracle, Access, SQL-Server, Informix, etc. son SGBD comerciales que no implementan de igual manera
el modelo relacional.

2 Aunque en este libro sólo se estudia el modelo relacional como modelo para Diseño Lógico de BD
existen otros modelos (jerárquico, en red, etc.).
27

28

Metodologías de Desarrollo de Bases de Datos Una metodología es un conjunto de procedimientos. Un modelo de datos es el instrumento que se aplica a un Universo de Discurso para obtener una estructura de datos que se denomina esquema de la BD Una metodología de bases de datos consta de tres partes fundamentales: o Modelado Conceptual a través del Modelo Entidad-Relación o Transformación de esquemas conceptuales E/R a esquemas o Diseño Físico. Eficiencia en el almacenamiento y relacionales funcionamiento de la base de datos 29 30 . técnicas y ayudas a la documentación para el desarrollo de un producto software.

Modelo Relacional .MÓDULO B UNIDADES DIDÁCTICAS: 1. Fase de Análisis de Requisitos: Modelo Entidad Interrelación (E/R) 2.

Elementos Básicos del Modelo Entidad/Relación 3. Cuáles son los pasos para obtener el Modelo Entidad/Relación a partir de los requisitos previos. .MÓDULO B OBJETIVOS En esta unidad aprenderás: Fase de Análisis de Requisitos: Modelo E/R UNIDAD DIDÁCTICA 1 Índice de la unidad: 1. Introducción 2. Diseño Caso Práctico – “Constructora” 7. Diseño Caso Práctico – “Mentor” 5. Diseño Caso Práctico – “Arte” x x x Qué es el modelo Entidad/Relación Cuáles son los elementos básicos del modelo Entidad/Relación y su representación gráfica. Diseño Caso Práctico – “Historia” 6. Extensiones del Modelo Entidad/Relación 4.

reglas y notaciones que permiten formalizar la semántica del mundo creación de bases de datos. a la estática del modelo E/R. la utilización de un modelo de datos que permita Aunque. Cada herramienta dispone de sus propios Datos. en este capítulo únicamente nos referiremos por supuesto la formación de personal cualificado en este campo.Fase de Análisis de Requisitos : Modelo E/R 1. como todos los modelos. pues la parte dinámica carece de utilidad al no ser soportada por ningún SGBD actual. utensilios de diseño. Una buena gestión de los datos puede influir de manera datos es fundamental el conocimiento del problema a modelar y es en este más que notable en los beneficios de cualquier organización. estudiándolo y ampliándolo. La real que se pretende modelar (también denominada Universo del Discurso) en respuesta no está en las herramientas en sí. en cómo se una representación gráfica o diagrama que denominamos esquema de la Base de diseña la base de datos. Además. ¿por qué se producen fallos?. conocimiento del mundo real que se desea representar a través de un análisis de Introducción los requisitos o especificaciones del problema. El modelo E/R. pero todas ellas parten del mismo concepto: el 1 Herramientas CASE (Computer Aided Software Engineering). pues está a un nivel de abstracción lo suficientemente elevado como para poder diseñar cualquier base de datos con independencia de la máquina en la que se implemente. En este capítulo se explican cuáles son los elementos básicos que componen conceptos que si se desconocen no pueden ser aplicados. pero todos ellos se basan en los mismos conceptos teóricos. Una utilización puede ser debida a la falta de formación de los empleados. entonces. consiguiendo así diversas variantes del modelo (distintas formas de representación de los objetos). la mala utilización de los mismos puede de la base de datos debe hacer tantas entrevistas como sean necesarias con los traer consigo pérdidas enormes para la empresa. El modelo E/R fue propuesto por Peter Chen en 1976. consiste en un conjunto de Hoy en día todas las empresas cuentan con herramientas informáticas de conceptos. base de datos que gestiona los datos. pero vez clarificados los objetivos y las necesidades se deberá pasar al diseño muchas veces es ocasionada por un mal diseño del sistema de información o propiamente dicho de la base de datos. y reincidiendo en el tema. todo modelo de datos tiene diseñar bases de datos a nivel conceptual (y por tanto muy cercana al usuario) y una parte estática y otra dinámica. Pongámonos en el conocimiento donde representan un papel primordial los usuarios finales del caso de una entidad bancaria y pensemos en los miles de clientes con cuyos sistema. en la actualidad disponemos en el mercado de una amplia gama de herramientas que automatizan en gran parte las tareas del diseño1 y que toman como base este modelo de datos. sí al menos muy conveniente. El modelo Entidad/Interrelación (E/R) es un modelo conceptual que ha demostrado ser muy válido para cumplir con este objetivo. si no completamente necesario. 35 36 . En ocasiones esta mala usuarios para conseguir clarificar todas las especificaciones del problema. Desde entonces muchos autores se han interesado por él. sino. como ya se comentó anteriormente. pues es en esta primera etapa de modelización en la que el diseñador datos se realizan operaciones diarias. Los datos constituyen en la actualidad el arma más poderosa de cualquier En la realización del esquema o diseño conceptual de cualquier base de organización o empresa. Por lo dicho anteriormente parece. el modelo E/R y cómo se utilizan a la hora de diseñar una Base de Datos.

Generalmente son personas. de otro de los elementos del modelo E/R. de una interrelación. negra. El primero representaría el conjunto de hemos definido para ella. adelante. (Nacionalidad. 91-675-65-65). Es Figura 2. nº 9.N. el concepto tipo de entidad ALUMNO. (Nombre. 7077777). Nombre. 91-678-98-99). El modelo E/R define estas de sus atributos podría ser Color (roja. describen propiedades de cada uno de los miembros que pertenecen al de un taller de vehículos dedicado a trabajos de chapa y pintura. A continuación se explican cada uno de ellos. entre los tipos de entidad que deberíamos de entidad se definen como los valores correspondientes a los atributos que definir estarían ALUMNO y CURSO. como veremos más textura.Fase de Análisis de Requisitos : Modelo E/R Supongamos que de cada alumno queremos la información referente a su 2.. también denominados ejemplares o elementos. cuanto aparecen formando parte de una entidad o. (Nombre. (Nacionalidad. también llamadas tipos de entidad. el segundo Por ejemplo dos ejemplares del tipo de entidad ALUMNO serían: recogería todos los cursos ofertados por el aula Mentor. Elementos básicos del Modelo E/R D. 1 Entidades Las entidades. interrelaciones. gráfica sería (véase el esquema de la figura 2. si cualidades como atributos.1: Dos ejemplos de entidades importante destacar que un mismo concepto no tiene por qué representarse siempre de la misma forma (por ejemplo. 2. como una entidad o como un 2. 7515958). atributos y dominios. de un tipo los alumnos de los cursos Mentor. lugares. de elementos con existencia propia y que se caracterizan por las mismas Nombre Dirección propiedades. cómo representamos los atributos en el modelo E/R. probablemente tendríamos una entidad denominada PRENDA y uno queremos recoger dentro de nuestro diseño.(Dirección. Española) (DNI.. Su representación gráfica se hace por medio de un Nacionalidad rectángulo dentro del cual se escribe el nombre de la entidad en mayúsculas Figura 2. estuviéramos hablando de una Base de Datos para gestionar la información etc. Sin embargo.). todos los alumnos que se inscriben en los diferentes cursos. representan conjuntos D. En la figura 2. 2 Atributos atributo).. Teléfono conceptos sobre los que necesitamos guardar información y distinguibles de ALUMNO los demás objetos.. Teléfono y Nacionalidad. Madrid)...I. así por ejemplo el nombre del alumno. aparece Los elementos u objetos básicos del modelo E/R son cuatro: entidades. Dirección. Juan). Su representación (DNI. Por ejemplo. cosas. si queremos diseñar una base de datos para gestionar todos Los ejemplares. pues decir. Así. si estuviéramos modelando una Base de Datos para una tienda Todo tipo de entidad tiene unas características o cualidades propias que de ropa.I.1). es de color puede tener tal importancia que pase a ser una entidad COLOR. (Teléfono. etc. Estas propiedades no tienen existencia propia. el teléfono. es decir. C/ Bailén.). (Dirección. tipo de mezcla.N. sólo tienen sentido en el esquema de la Base de Datos en tanto en tiene existencia propia y un conjunto de propiedades (código de color. (Teléfono.2. nº 9 Madrid). Española) ALUMNO CURSO Por lo tanto los valores de los atributos constituyen una parte importante de los datos que almacenaremos posteriormente en la Base de Datos.2: Un ejemplo de entidad con sus atributos (generalmente un sustantivo). Ana). etc. 37 38 . C/ Irún.

4. Esta es la representación que nos proporciona el modelo E/R para distinguir este tipo de atributo del resto de atributos que componen el tipo de entidad. indicando que su valor es único para cada ejemplar del tipo de entidad ALUMNO. el modelo E/R obliga a que cada vez que definimos un tipo de nombre. un IP. En nuestro ejemplo véase la definición del dominio Nacionalidad en la figura 2. ello significa que existen diversas formas de número de teléfono o que al fin y al cabo es un atributo cuyo valor no es recoger restricciones semánticas sobre los atributos de una entidad o de una demasiado importante y por eso no lo ponemos como obligatorio. sabiendo atributos que se estudiarán en el capítulo siguiente. este tipo de atributos se denominan Identificadores Alternativos (IA). Figura 2.N. indica es que el atributo o propiedad DNI es único para cada ejemplar del tipo Supongamos que para el tipo de entidad CURSO es importante recoger las entidad ALUMNO. la dirección de correo electrónico que este posee. supongamos que queremos añadir para el tipo de Existen otras formas de recoger restricciones semánticas sobre los entidad ALUMNO. interrelación. pero pueden existir distintos atributos que también identifiquen los CURSO ejemplares de esta.3: La entidad ALUMNO y sus atributos 39 40 . ya que cada curso tiene un nombre distinto. siguientes propiedades: nombre. un identificador alternativo porque toma valores únicos para cada curso y Por lo tanto en todos los tipos de entidad tiene que aparecer de forma libro de consulta sería un atributo opcional ya que permitimos que haya obligatoria una característica que identifique de forma única cada uno de los cursos que no tengan o que desconozcamos su libro de referencia. CURSO con sus atributos queda representada en la figura 2. IA y opcional Veamos un ejemplo.3.2 no todos los atributos se Opcional que nos informa de que existen alumnos que puede que no tengan representan de la misma forma. el atributo Teléfono aparece representado con una línea de puntos lo que significa que estamos ante un Atributo Como se puede observar en la figura 2. Un dominio se define por un nombre y un conjunto de D.4: Un ejemplo de atributos IP. con un círculo negro. dentro de un mismo tipo de tres características de CURSO elegiremos como identificador principal el entidad.I. Teléfono ALUMNO Nacionalidad Figura 2. véase figura 2. Nombre Dirección e-mail valores. Supongamos que el atributo nacionalidad. El atributo e-mail sería un estos conceptos.I. En un tipo de entidad sólo puede aparecer un Nombre Libro de consulta Dirección Web identificador principal. en donde ampliaremos que es única para cada uno de los alumnos. la dirección Web sería entidad se defina un atributo que identifique cada ejemplar. libro de consulta y dirección Web. Por tanto.5.6 resaltado en color azul y cursiva.3 se representa con un Dominios círculo mitad negro mitad blanco.Fase de Análisis de Requisitos : Modelo E/R Tipos de atributos En el ejemplo de la figura 2. es decir. De estas Para poder distinguir una ejemplar de otra. En el ejemplo aparece el atributo D. La entidad ejemplares. identificador alternativo y como vemos en la figura 2. sólo puede tomar los valores “española” o “extranjera”. Para los conjuntos de valores sobre los que se definen los atributos utilizaremos un objeto del modelo E/R denominado Dominio. este tipo de atributo se denomina cuando los valores de un atributo van a ser desconocidos o por alguna otra identificador principal (IP) y lo que causa no van a tener valor se denominan Atributos Opcionales.N.

como por ejemplo “un curso Mentor tiene asociados tutores (muchos) y los tutores pueden tutorar distintos cursos Mentor (muchos)”.6: Dominio Nacionalidad y su representación textual existente entre los alumnos que realizan cursos.7 se representa una interrelación de poder representar este concepto ya que aparece continuamente en el binaria. También existen las relaciones muchos a muchos. vemos la necesidad después). pero para poder intervienen en una interrelación debe ser de al menos dos. denominada así por tratarse de una interrelación entre dos tipos de mundo real. acerca del problema que estamos modelando. Nombre Dirección e-mail ALUMNO CURSO Realizar Teléfono ALUMNO Figura 2. pero para tener constancia de los valores que puede Para tomar un atributo se suele anotar después de la representación gráfica una poder recoger estas características que nos distinguen unas relaciones de otras. Podríamos definir una interrelación Realizar entre ambas entidades. en general se dividen = (Española. Las interrelaciones representan asociaciones del mundo real entre una o El grado de una interrelación es el número de entidades que intervienen en más entidades.7. En el ejemplo de la figura 2.5: Dominio Nacionalidad bancaria (uno) pero una entidad bancaria posee varias sucursales (muchos)”. “los tutores de los cursos Mentor tienen asignados una serie de alumnos”. D. suele coincidir con un verbo El atributo “Nacionalidad” toma valores del dominio Nacionalidad = (Española. como muestra la figura 2.7: Ejemplo de Interrelación Nacionalidad Nacionalidad Nacionalidad No todas las relaciones o asociaciones son iguales. Extranjera) en relaciones que denominamos de uno a muchos. como se verá muestre la asociación existente entre ellos. dentro del rombo se escribe el nombre Nacionalidad de la interrelación en minúsculas. como por ejemplo la que presentamos a continuación: “una sucursal es únicamente de una entidad Figura 2. recoger más información representación textual.N.1 presentábamos los alumnos y los ella. Teléfono Gráficamente las interrelaciones se representan mediante un rombo unido ALUMNO a los tipos de entidad mediante líneas. algunos ejemplos son: “las sucursales de una entidad bancaria 41 42 .I.Fase de Análisis de Requisitos : Modelo E/R están relacionadas con sus clientes”. es decir.N. Por lo tanto. “las editoriales se relacionan con los D. debe ser como mínimo dos. existe un caso expresar que un alumno esta matriculado en distintos cursos y que en un especial en el que sólo participa una entidad en la interrelación aunque de dos curso se pueden matricular alumnos necesitamos una Interrelación que nos formas distintas (es lo que se denomina interrelación reflexiva. etc. que nos permite. 3 Interrelaciones cardinalidad. que en general. el número de entidades que cursos del Mentor como entidades sin ningún tipo de relación. Por ejemplo. tipo de correspondencia y 2. En general los dominios no se suelen representar en el modelo por problemas de espacio. en la figura 2. Extranjera) en infinitivo. vamos a introducir los siguientes propiedades de una interrelación: grado. Volviendo al ejemplo anterior veamos como se representa la relación Figura 2. además.I. Nombre Dirección e-mail libros que publican”.

9: Tipo de Correspondencia N:1 De la misma manera.n) como se muestra en la figura 2.10.. y se siguiente forma: representaría de la manera que aparece en la figura 2.8: Tipo de Correspondencia N:M realizado como mínimo por un alumno y como máximo n”. alumno puede optar es ilimitado y el de alumnos que realizan un curso también. el número mínimo de alumnos que pueden matricularse se hace por medio de un par X:Y colocado sobre el rombo de la interrelación.8).12. línea que une el tipo de entidad con la interrelación. lo representaríamos de la entre ALUMNO y CURSO cambiaría.n) y por tanto tendríamos que representar la punta de flecha hacía la entidad CURSO y encima de esta línea la cardinalidad como se muestra en la figura 2 2.40) Realizar CURSO CURSO Figura 2. el número mínimo de cursos que puede realizar un alumno es uno y el máximo n. donde x indica el número mínimo e y el número máximo. Esta representación se puede generalizar en el caso de grado n. Su representación gráfica restricción adicional. El tipo de interrelaciones que aparece de forma habitual en el de un tipo que pueden relacionarse con un elemento de otro tipo de entidad. modelado de una Base de Datos es la interrelación binaria y a partir de ahora Para representar las cardinalidades utilizamos un par (x. por tanto la cardinalidad del tipo de estudio2.11: Ejemplo de cardinalidades Figura 2. por el contrario. y) situado sobre la nos centraremos solo en este tipo de interrelaciones. el tipo de correspondencia cursos Mentor como máximo admiten 40 alumnos. se dibuja una punta de flecha hacia la entidad correspondiente (figura 2.8). En nuestro ejemplo.. y cuando la cardinalidad máxima es El Tipo de correspondencia de una interrelación binaria se define como el n. de la forma X:Y:Z:.n) Realizar CURSO N:M ALUMNO Realizar Figura 2. número máximo de ejemplares de un tipo de entidad que pueden estar En el ejemplo que nos ocupa y suponiendo que no se establece ninguna asociados con un ejemplar del otro tipo de entidad. Si tuviéramos Si. en general. Además.9. por ejemplo. M:N ALUMNO N:1 ALUMNO Realizar (1.. en principio. la cardinalidad de CURSO es (1. en las especificaciones del problema se nos dijera que limitación en la matriculación de los alumnos en un curso. y el donde X e Y representan los ejemplares asociadas de los tipos de entidad en número máximo n (número ilimitado). 43 44 . el número de cursos a los que un entidad ALUMNO es (1. es decir. los cada alumno solo puede matricularse de un curso. M:N ALUMNO (1.. cuando el grado es tres se habla de La cardinalidad de un tipo de entidad que interviene en una interrelación interrelaciones ternarias y. por tanto la correspondencia sería N:M o muchos a muchos (Figura 2. De la misma forma.Fase de Análisis de Requisitos : Modelo E/R entidad. de interrelaciones n-arias cuando el binaria se define como el número mínimo y el número máximo de ejemplares grado es n. en un curso es uno (no tendría sentido un curso con 0 matriculados). sería 1:N o uno a muchos.10: Ejemplo de cardinalidades CURSO La interpretación de la interrelación Realizar sería “un curso Mentor es Figura 2.

15. EMPLEADO Por último.16. De cada empleado se desea la siguiente información: un código de empleado (número que le identifica).Fase de Análisis de Requisitos : Modelo E/R Los atributos nombre y dirección de EMPLEADO son obligatorios ya que dicha información la consideramos importante.n) (1. sin ellos no podríamos mandar la nómina o contactar por cualquier causa con los M:N ALUMNO (1.12: Cardinalidades de la interrelación Realizar alternativo. una localización y un número de teléfono. una como se muestra en la figura 2. EMPLEADO y DEPARTAMENTO. se indican las cardinalidades EMPLEADO entidades participantes en dicha interrelación (figura 2. figura 2. objetos que tienen existencia propia con determinadas características. el tipo de correspondencia es 1:N o de uno a muchos. figura 2. ¿Cuál sería su diseño en el DEPARTAMENTO con las características que la definen como se muestra en la modelo E/R?. dirección. Podemos detectar de forma clara que necesitamos dos entidades.15: Atributos de la entidad EMPLEADO completo. El teléfono lo podemos considerar como un atributo opcional y. Código DNI Nombre Dirección Veamos otro ejemplo con la relación que existe entre los empleados de NSS una empresa y el departamento en el que trabajan. ya que un empleado está Código Código DNI asignado a un departamento y a un departamento pertenecen varios empleados. por ejemplo. Para los departamentos necesitamos un nombre. como se puede apreciar.13: Entidad EMPLEADO y su IP que recogen explícitamente como se relacionan cada una de los ejemplares de las Figura 2.17). que es DEPARTAMENTO único para cada empleado será un atributo alternativo ya que hemos elegido el código como identificador principal por especificaciones del problema (figura 2. Para la entidad EMPLEADO tenemos como identificador principal el código de empleado. La entidad EMPLEADO con sus propiedades queda representada Las cardinalidades mínimas y máximas son. es binaria ya que relaciona dos entidades. único para cada uno de Un razonamiento similar nos llevará a representar la entidad ellos. Nombre Localización Teléfono EMPLEADO y DEPARTAMENTO. el número de afiliación de la seguridad social (NSS) al tomar valores únicos para cada empleado lo consideraremos un atributo Figura 2. Sabemos que un EMPLEADO empleado trabaja en un departamento y que a cada departamento se le Teléfono asigna al menos un empleado. por último. extensión del tipo de correspondencia y nos dan más información referente al tipo de interrelación que estamos representando. el DNI.16: Atributos de la entidad DEPARTAMENTO La interrelación que une las entidades representadas anteriormente.14).n) Realizar CURSO empleados de la empresa. Figura 2. DNI. Figura 2. nombre Figura 2.14: Entidad EMPLEADO con IP y IA 45 46 . teléfono y número de afiliación de la seguridad social.13.

(F_Comienzo. La Teléfono interpretación o lectura que tienen estos elementos es la siguiente: el alumno con DNI 7515458 ha realizado el curso “Iniciación a Internet” durante el Figura 2. los valores nos vienen dados de la siguiente forma: Juan ha (1. 7515458). 12-02- empleado y como máximo N”. {(DNI. los elementos que se encuentran en la interrelación “Realizar” son de la siguiente forma: Si interpretamos la figura 2. junto con los atributos propios de la interrelación.17: Interrelación Trabajar Figura 2.n) CURSO Nacionalidad Figura 2. como pueden ser asociación. (Nombre. Inciación a Internet). no depende del Sistema Gestor de Bases de Datos que utilizamos para su posterior implementación y que lo que intentará será recoger de la 47 48 .1) identificadores de los tipos de entidad ALUMNO y CURSO que están DEPARTAMENTO relacionados. los atributos no solo están referidos a los Hay que distinguir entre una ejemplar de un tipo de entidad y un tipo de tipos de entidad.N. interrelación. Como ya se ha mencionado.18: Interrelación Trabajar periodo del 12-02-96 al 05-06-96.I. (F_Finalización. (F_Comienzo. 15-03-97)}. Código Nombre Localización Teléfono DNI Nombre Dirección Todos estos ejemplares se corresponden con los valores de los atributos N:1 NSS EMPLEADO (1. Access Avanzado). 02-12-96). tendremos una representación sencilla y natural del caso que queremos modelar que. Los ejemplares no tienen representación gráfica en el modelo E/R las fechas de comienzo y de finalización de un curso. es decir. Algo parecido ocurre en el modelo E/R.n) Trabajar (1.Fase de Análisis de Requisitos : Modelo E/R Código Nombre Localización Teléfono DNI Nombre Dirección Nombre Dirección e-mail D. 96). pues una ejemplar de un tipo de interrelación existe siempre y atributos cuyos valores tienen sentido únicamente en el caso de que se cuando existan ejemplares de los tipos de entidad que intervienen en la establezca la relación entre los tipos de entidad que las une. Las interrelaciones también pueden tener atributos propios. 05-06-96)}. Hemos visto los elementos básicos del modelo E/R que nos permitirán el diseño de la Base de Datos de forma Conceptual.18 desde el tipo de entidad DEPARTAMENTO su lectura sería la siguiente: “En un departamento trabajan como mínimo un {(DNI. (Nombre. atributos se muestra en la figura 2.n) ALUMNO Libro F_Finalización Realizar Teléfono (1.19 en color verde.1)” y tendríamos una línea continua entre el rombo de la interrelación y la realizado el curso de “Iniciación a Internet” durante el periodo de 12-02-96 al entidad DEPARTAMENTO para reflejar este hecho. N:1 NSS Nombre F_Comienzo Teléfono EMPLEADO Trabajar (1. que no tienen sentido si pues se corresponden con los datos que realmente se almacenarán en la base dicho curso no es realizado por al menos un alumno. (F_Finalización.1) DEPARTAMENTO WWW M:N (1. el alumno con DNI 856593 ha realizado el Atributos de una interrelación curso “Access Avanzado” durante el periodo del 02-12-96 al 15-03-97. además. 856593). 05-06-96.19: Interrelación con atributos La interpretación de la interrelación Trabaja sería la siguiente: “Un ¿Cómo serían los ejemplares de la interrelación “Realizar”? Si pensamos en empleado trabaja como mínimo y como máximo en un solo departamento el mundo real. Un ejemplo de estos de datos y no con el diseño conceptual de ésta.

en una interrelación. de un tipo de entidad es el Atributo y binarias la que necesitamos guardar información. de una también denominado interrelación es la asociación de los valores de los atributos participantes en la interrelación.Fase de Análisis de Requisitos : Modelo E/R mejor forma posible todas las especificaciones del problema de manera que Grado de una sea fácilmente comprensible por usuarios no informáticos. ejemplar. Identificador máximo interrelaciones binaria los atributos definidos para ella. 49 50 . Característica o propiedad de un tipo Identifica y identificadores principales de las entidades de entidad. 1:1 Cardinalidades Mínima Entidad tipo de entidad que pueden estar asociados N:M interrelaciones el momento: Número máximo de ejemplares de un 1:N Correspondencia en Veamos un cuadro resumen de los conceptos del Modelo E/R tratados hasta modelo E/R Número de entidades que participan interrelación entidades. y) Máxima Ejemplar denominado ejemplar. Tipo de binarias Elementos del Representación Gráfica Descripción Ejemplar en Cosa u objeto con identidad propia de ENTIDAD de Un una entidad ejemplar. principal Número ejemplares de una entidad que puede una conjunto de los valores correspondientes a (x. con un ejemplar del otro tipo de entidad. también de manera única los ejemplares o ejemplares de una entidad Identificador Distingue alternativo de manera única los ejemplares o ejemplares de una entidad Atributo Indica que el atributo siempre debe Obligatorio tomar un valor para cada ejemplar de la entidad o interrelación a la que pertenece Atributo Indica que el atributo puede no tomar Opcional valor para cada ejemplar de la entidad o interrelación a la que pertenece Interrelación Asociación o relación que existe entre Interrelación mínimo de relacionarse con un único ejemplar de la otra. de interrelación Un ejemplar.

los ejemplares correspondientes a los alumnos del MENTOR queremos modelar. N:1 DEPARTAMENTO Teléfono (1. lugares. 1) (1.20: Interrelación Trabajar 3.Fase de Análisis de Requisitos : Modelo E/R pueden serlo por dos motivos: bien porque la existencia de sus ejemplares en 3. Esto significa que se le han llamados atributos externos) de otra entidad. 2 Interrelaciones binarias 3. él. cosas o eventos de interés. recoja mayor semántica.21: Notación gráfica de una entidad débil Figura 2. poseen identificadores internos que determinan de manera única la existencia de sus Dependencia en existencia. es decir. no dependen de ninguna otra entidad para existir en la base de datos. objetos principales sobre los que debe recogerse información y generalmente denotan personas. Además. añadido nuevos conceptos para que el modelo se adapte mejor a la realidad que Por ejemplo. n) Trabajar EMPLEADO DNI DNI ENTIDAD DÉBIL NSS Nombre Dirección Nombre Localización Teléfono Figura 2. Sin embargo. por Vamos a introducir algunos de estos nuevos conceptos retomando el ello la entidad ALUMNO es una entidad fuerte. Supongamos que la empresa es un consorcio de distintas librerías Una ejemplar de HABITACIÓN no tiene existencia por si misma porque especializadas en libros y revistas informáticas llamada INTERFAZ.21. La representación de una entidad débil difiere de la de una entidad regular pues el rectángulo de la entidad débil es de doble recuadro como se muestra en la figura 2. Este tipo de interrelación refleja que los ejemplares. en el caso de una ejemplo visto en el apartado anterior sobre una empresa en el que habíamos base de datos de una cadena hotelera podríamos tener el tipo de entidad representado la relación que existía entre los empleados y los departamentos de HABITACIÓN dependiente del tipo de entidad HOTEL ya que para que existan la empresa. Además. Sabemos que siempre estará asociada a una ejemplar de HOTEL. Las entidades débiles son dependientes de otras entidades y ejemplares del tipo de entidad débil que se relacionan con un determinado 51 52 . si se elimina un los empleados de INTERFAZ están asignados a un departamento y que la determinado ejemplar de la entidad HOTEL de la base de datos también relación entre EMPLEADO y DEPARTAMENTO se representa como se indica en la deberán desaparecer los ejemplares de la entidad HABITACIÓN asociadas a figura 2. es decir.20. ejemplares de HABITACIÓN es necesario que existan ejemplares de HOTEL. en las interrelaciones débiles podemos distinguir: Las entidades fuertes o regulares tienen existencia propia. En esta sección vamos Las interrelaciones regulares relacionan tipos de entidades regulares o a estudiar cómo las entidades pueden clasificarse por la fuerza de sus fuertes. Las interrelaciones débiles relacionan un tipo de entidad regular y un atributos identificadores. 1 Entidades La clasificación anterior entre entidades fuertes y débiles da lugar a dos En el apartado 2 se estudió que las entidades en un esquema E/R son los tipos de interrelaciones según los tipos de entidades que asocian. tipo de entidad débil. Extensiones del Modelo E/R la base de datos depende de una entidad fuerte bien porque sus ejemplares Posteriormente al modelo E/R propuesto por Chen se realizaron algunas requieran para su identificación de los atributos identificadores (algunas veces extensiones para darle más riqueza semántica.

los familiares sólo existen en Figura 2. n) dependen de la existencia de un ejemplar de la entidad regular. es decir. existen dos Supongamos que la empresa INTERFAZ necesita conocer los datos de los soluciones: familiares que están a cargo de cada empleado de la empresa (cónyuge. hijos. y más razonable. Su representación es la que se muestra en la figura 2.23: Ocurrencias de la entidad HABITACIÓN la base de datos si existe un empleado con el que se relacionen y si un determinado EMPLEADO se va de la empresa. Por (1. representada como muestra la figura 2. Teléfono EMPLEADO Encargado Así. veíamos anteriormente que la entidad HABITACIÓN era débil respecto al HOTEL al que Nombre WC pertenece. 53 54 N:1 Nombre Dirección Ejemplo de una interrelación con Dependencia en Identificación . etc.Fase de Análisis de Requisitos : Modelo E/R ejemplar del tipo de entidad regular dependen de él y. por ejemplo. entonces se eliminarán todas 1. tenemos una la habitación como IP. la habitación 1 “Sol”. cuyos atributos podrían ser el DNI (como IP). es decir. que denominaremos FAMILIAR.24.24: es suficiente para identificar cada ejemplar de esta. poner el nombre de los ejemplares de FAMILIAR que dependan de él. 1) HOTEL necesitan para su identificación el IP de la entidad regular. Así.22: Ejemplo de una interrelación con Dependencia en Existencia Nº Habitación Dependencia en Identificación: Este tipo de interrelación complementa a la Teléfono anterior en que. el nombre completo y parentesco con el habitación perteneciente al Hotel “SOL“ HABITACIÓN empleado. Así. Como se muestra en la figura 2. etc. o lo que es lo mismo que exista un ejemplar de El valor del IP se repite para hoteles distintos EMPLEADO que este relacionado con él. La segunda. Para solucionar este problema. Veamos un ejemplo que clarifique esta definición: se repite para distintos hoteles (la habitación número 1 existe en el hotel “Mar” y en el hotel “Sol”). 2. el número de habitación ellos también. La primera consiste en cambiar el IP. esto significa que los nombres de la habitación no interrelación de dependencia en existencia entre EMPLEADO y FAMILIAR pueden repetirse en los distintos hoteles y esto no es posible asegurarlo. 1) ejemplo. también HABITACIÓN I Posee (1. n) FAMILIAR E fuerte. además de que los ejemplares del tipo de entidad débil (1. Como se puede observar.) para de esta manera apoyar a aquellos cuya carga familiar sea 1 numerosa. si éste desaparece. 1 Para saber los familiares que dependen de cada empleado debemos crear Abeto Roja SI SI n°_habitación nombre WC habitación perteneciente al Hotel “MAR“ un nuevo tipo de entidad. habitación 1 “Mar”. cada ejemplar de HABITACIÓN está identificada por la concatenación de su número y del nombre del hotel en que se encuentra. consiste en crear una interrelación débil de dependencia en identificación. los ejemplares de la entidad débil requieren para su identificación de los atributos identificadores de la entidad N:1 (0.22. Si construimos las interrelación existente entre ambas entidades debemos pensar si el atributo “Nº de Habitación” de la entidad HABITACIÓN Figura 2.23 el IP. es decir. la existencia de un miembro de la familia depende plenamente de que ese miembro tenga a una persona de su familia trabajando en la empresa. NSS DNI DNI Nombre Parentesco Nombre Dirección Figura 2.

Fase de Análisis de Requisitos : Modelo E/R

Supongamos que en la entidad Empleado queremos recoger que un
empleado puede tener más de un teléfono, tendríamos un atributo Teléfonos

Otro tipo de interrelación es la denominada jerárquica que expresa la

que tendría cero o más valores, esto es lo que llamamos atributo multivaluado

clasificación de un determinado tipo de entidad en uno o más tipos de

y se representa como se muestra en la figura 2.26.

entidad. Por ejemplo, supongamos que la empresa Interfaz tiene tres
departamentos INFORMATICA, PUBLICACIONES y RECURSOS HUMANOS. Esta

Otro tipo de atributo es el atributo compuesto, que representa una

clasificación de los departamentos se representaría como una jerarquía

agregación de atributos simples. Vamos a modificar el atributo Nombre de la

(también denominada generalización). Las generalizaciones nos proporcionan

entidad EMPLEADO ya que queremos un atributo, Nombre Completo,

un mecanismo de abstracción que permite descomponer una entidad (que se

compuesto por Nombre y Primer Apellido. Su representación sería la que se

denominará supertipo) en subtipos. De esta forma vemos un conjunto de

muestra en la figura 2.26.

ejemplares de una entidad como de otra entidad. Así, por ejemplo, una
"Persona" es un "Animal" y un "Reptil" es un "Animal"; en este caso, "Animal"
puede considerarse el supertipo y "Persona" y "Reptil" son subtipos de

Nombre

Primer Apellido

"Animal". Los ejemplares o ejemplares de "Persona" lo son también de

Dirección
e-mail

"Animal" e igual sucede con las de "Reptil".

Nombre Completo

La figura 2.25 muestra la jerarquía de departamentos de la empresa

Teléfono
EMPLEADO

D.N.I.

INTERFAZ representada por un triángulo invertido que une el supertipo con

Nacionalidad

los subtipos.
Figura 2.26: Ejemplo de atributo compuesto

Además, todas las restricciones semánticas definidas para los atributos
Código

Nombre

pueden combinarse entre sí, es decir, (pueden existir en un esquema E/R

Ubicación

atributos

Número de empleados
DEPARTAMENTO

Nombre director

Teléfono contacto

PUBLICACIONES

Facturación

RECURSOS
HUMANOS

INFORMÁTICA

e-mail de
contacto

multivaluados

simples

opcionales,

univaluados

compuestos

opcionales, multivaluados obligatorios, multivaluados compuestos, etc.).

Número de equipos

Figura 2.25: Ejemplo de generalización total exclusiva

3. 3 Atributos
En este apartado ampliaremos nuestro conocimiento acerca de las
restricciones semánticas sobre los atributos de las entidades y de las
interrelaciones para de esta forma poder representar más fielmente los
requisitos que nos piden para el diseño de una determinada base de datos.
55

56

Fase de Análisis de Requisitos : Modelo E/R

quiere almacenar en la BD acerca de los tutores es la siguiente: DNI,
nombre completo y dirección de correo electrónico.
La información que se desea almacenar en la Base de Datos se refiere
Para este caso práctico se ha pensado en una continuación del ejemplo

a los alumnos matriculados en cada curso, teniendo en cuenta la

que se ha ido desarrollando a lo largo de este capítulo sobre el diseño de una

fecha de inicio y la fecha de finalización de cada alumno en un

Base de Datos que recoja información acerca del proyecto llevado a cabo por el

determinado curso y sabiendo que un alumno se ha podido matricular

Ministerio de Educación denominado MENTOR. Hay que tener en cuenta que los

de uno o varios cursos y que un curso tiene como mínimo un alumno.

supuestos semánticos de este ejemplo son hipotéticos. A continuación se
expondrán los requisitos que se van considerar en este apartado para llevar a

El proyecto MENTOR, además, tiene en cuenta que ha de facilitar a los

cabo el diseño de la base de datos. Dicho proyecto se encarga de ofertar cursos

alumnos el acceso a Internet y por lo tanto ha instalado aulas con

por Internet para alumnos del territorio nacional.

todos los servicios necesarios para el pleno desarrollo de los cursos.
Cada alumno pertenece a un aula y el mantenimiento tanto de los

La información que se desea almacenar en la Base de Datos se refiere a

ordenadores como de los programas se lleva a cabo por los

los alumnos matriculados en cada curso, teniendo en cuenta la fecha de inicio y

administradores de aula.

la fecha de finalización de cada alumno en un determinado curso y sabiendo que
un alumno se ha podido matricular de uno o varios cursos y que un curso tiene

Cada aula tiene asignado un código único, descripción y una dirección.

como mínimo un alumno.
La información que se necesita de cada administrador es su DNI,
nombre completo, dirección de correo electrónico.

De los alumnos se desea saber el DNI, nombre completo, dirección,
teléfono, nacionalidad, pero sólo interesa saber si la nacionalidad es
española o no, y la dirección de correo electrónico. La dirección de
correo electrónico es imprescindible para poder realizar los cursos y
además es única para cada alumno.
La información referente a los cursos consta del nombre, título del libro
de consulta que se utiliza (aunque existen cursos que no lo poseen) y
dirección de Internet donde se encuentra todo el material que se
puede utilizar durante el curso.
Cada curso tiene asociado un grupo de personas expertas, llamadas
tutores, que son las encargadas de resolver las dudas propuestas por
los alumnos, la evaluación de los mismos e incluso el hombro para
que estos se desahoguen. Dentro de los tutores de un mismo curso
existe una figura importante que es la de coordinador que se encarga
de realizar labores de unificación y planificación. No hay que olvidar
que una persona experta puede ser tutora de varios cursos y que
además un coordinador de curso es un tutor. La información que se

57

24

Fase de Análisis de Requisitos : Modelo E/R

La información referente a los cursos consta de nombre de este, título

4. DISEÑO PROPUESTO AL CASO PRÁCTICO - MENTOR

del libro de consulta que utiliza (aunque existen cursos que no lo
Para realizar el diseño conceptual de la BD en el modelo E/R seguiremos una

poseen) y dirección de Internet donde se encuentra todo el material

serie de pasos que nos ayudarán a identificar los elementos básicos del modelo.

del que consta. Curso es una entidad

Estos pasos son iterativos, es decir, un esquema E/R se construye según
distintas fases de refinamiento. Además, las soluciones no son únicas, cada

Cada curso tiene asociado un grupo de personas expertas, llamadas

diseñador puede ver el mundo real de distinta forma, dando lugar a distintos

tutores, que son las encargadas de resolver los problemas propuestos

esquema E/R válidos. Sin embargo, sí se puede estudiar si un determinado

por los alumnos, la evaluación de los mismos e incluso el hombro

esquema E/R refleja mejor que otro los supuestos semánticos del enunciado. No

para que estos se desahoguen. Dentro de los tutores de un mismo

hay que olvidar que en el esquema E/R de una base de datos hay que recoger la

curso existe una figura importante que es la de coordinador que se

mayor semántica posible y no dejar para las siguientes fases de desarrollo

encarga de realizar labores de unificación. No hay que olvidar que

(diseño lógico e implementación) ningún supuesto semántico, siempre que sea

una persona experta puede ser tutora de varios cursos y que además

posible.

un coordinador de curso es un tutor. La información que se quiere
almacenar en la BD acerca de los tutores es la siguiente: DNI,
nombre completo y dirección de correo electrónico. De este párrafo
1º paso: Identificar y enumerar las posibles entidades teniendo en

podemos extraer que, por un lado necesitamos una entidad para

cuenta la siguiente heurística: en general, un tipo de entidad es un

almacenar los datos de los tutores y por otro lado vemos que se

sustantivo dentro de una oración con una seria de propiedades o

destaca en el texto la labor del coordinador y se podría pensar si es o

características tales como, DNI del alumno, nombre del curso, etc.

no un atributo de la entidad tutores.
El proyecto MENTOR, además, tiene en cuenta que ha de facilitar a los

La información que se desea almacenar en la Base de datos se refiere a los

alumnos el acceso a Internet y por lo tanto a instalado aulas con

alumnos matriculados en cada curso. Teniendo en cuenta la fecha de inicio de

todos los servicios necesarios para el pleno desarrollo de los cursos.

cada alumno en un determinado curso así como su fecha de finalización y

Aunque, por ahora desconocemos posibles atributos de las aulas

sabiendo que un alumno se ha podido matricular de uno o varios cursos y que un

parece que interactúa lo suficiente como para pensar en que pueda

curso tiene como mínimo un alumno.

ser una entidad

En el texto presentamos en negrita y subrayado los tipos de entidad que

Cada alumno pertenece a un aula y el mantenimiento tanto de los

hemos detectado.

ordenadores como de los programas se lleva a cabo por los
administradores de aula. Aula va cogiendo peso como posible entidad

De los alumnos se desea saber el DNI, nombre completo, dirección,
teléfono, nacionalidad, pero sólo interesa saber si la nacionalidad es

Cada aula tiene asignado un código único, una descripción y una

española o no, y la dirección de correo electrónico. La dirección de

dirección.

correo electrónico es imprescindible para poder realizar los cursos y

Definitivamente

aula

es

una

entidad,

ya

nos

han

especificado sus atributos

además única para cada alumno. Observamos que del único
sustantivo que tenemos información que almacenar (DNI, nombre

La información que se necesita de cada administrador es su DNI,

completo, dirección, teléfono, nacionalidad,e-mail) es de alumnos

nombre completo, dirección de correo electrónico. Este párrafo

luego éste, será una entidad.

muestra claramente que administrador es una entidad ya que es
necesario almacenar información sobre él.
59

60

la evaluación de los mismos e incluso el hombro AULA y ADMINISTRADOR. todos los servicios necesarios para el pleno desarrollo de los cursos. por los alumnos. por un lado necesitamos una entidad para 2º paso: Identificar y enumerar las posibles interrelaciones. tiene en cuenta que ha de facilitar a los En el texto aparece un número correlativo como superíndice en los verbos alumnos el acceso a Internet y por lo tanto a instalado aulas con que indican la posible existencia de una interrelación. Observamos que del único Definitivamente aula es una entidad.Fase de Análisis de Requisitos : Modelo E/R Los tipos de entidades que hemos localizado son: ALUMNO. pero sólo interesa saber si la nacionalidad es española o no. Dentro de los tutores de un mismo es también un tipo de entidad. No hay que olvidar que interrelación. dejamos para más adelante la discusión sobre si curso existe una figura importante que es la de coordinador que se este concepto puede representarse como una entidad. por ahora desconocemos posibles atributos de las aulas los alumnos matriculados1 en cada curso. una interrelación viene almacenar los datos de los tutores y por otro lado vemos que se reflejada por un verbo dentro de una oración que relaciona dos objetos. además. Aula va cogiendo peso como posible entidad De los alumnos se desea saber el DNI. bien de sentido común. una descripción y una teléfono. necesario almacenar información sobre él. dirección. administradores de aula. dirección de correo electrónico. bien deducidas 61 62 . La información que se quiere almacenar en la BD acerca de los tutores es la siguiente: DNI. un atributo o una encarga de realizar labores de unificación.e-mail) es de alumnos muestra claramente que administrador es una entidad ya que es luego éste. ya nos han La información que se necesita de cada administrador es su DNI. teléfono. que son las encargadas de resolver los problemas propuestos interrelaciones que no aparecen explícitamente expresadas en los supuestos semánticos del enunciado pero que son. una persona experta puede ser tutora de varios cursos y que además un coordinador de curso es un tutor. dirección. teniendo en cuenta la siguiente heurística: en general. La información que se desea almacenar en la Base de datos se refiere a Aunque. nombre nombre completo. La información referente a los cursos consta de nombre de este. llamadas detectado. y la dirección de correo electrónico. nombre completo. De esta forma se facilita también la identificación de posibles tutores. CURSO. correo electrónico es imprescindible para poder realizar los cursos y especificado sus atributos además única para cada alumno. La dirección de dirección. De este párrafo podemos extraer que. Del enunciado se podría deducir que COORDINADOR para que estos se desahoguen. TUTOR. Teniendo en cuenta la parece que interactúa lo suficiente como para pensar en que pueda fecha de inicio de cada alumno en un determinado curso así como su ser una entidad fecha de finalización y sabiendo que un alumno se ha podido Cada alumno pertenece3 a un aula y el mantenimiento4 tanto de los matricular de uno o varios cursos y que un curso tiene como mínimo ordenadores como de los programas se lleva a cabo por los un alumno. El proyecto MENTOR. nacionalidad. Cada aula tiene asignado un código único. Este párrafo completo. nacionalidad. Curso es una entidad señalará en el cruce de filas y columnas aquellas interrelaciones que hemos Cada curso tiene asociado2 un grupo de personas expertas. será una entidad. título Para que nos sea más sencillo saber qué tipos de entidades están del libro de consulta que utiliza (aunque existen cursos que no lo relacionadas vamos a construir una matriz donde en la primera fila y la primera poseen) y dirección de Internet donde se encuentra todo el material columna se enuncian los tipos de entidad anteriormente enumerados y se del que consta. sustantivo que tenemos información que almacenar (DNI. nombre completo y dirección de correo electrónico. destaca en el texto la labor del coordinador y se podría pensar si es o no un atributo de la entidad tutores.

estas interrelaciones también tienen que aparecer en el esquema D.N. cardinalidad (1. del tipo de entidad CURSO o ALUMNO son únicos. nombre completo y dirección de correo. la información que se requiere para los interrelación Matricular.I. (1. Además de las interrelaciones extraídas del texto hay que estudiar si en las celdas vacías deberían aparecer nuevas interrelaciones. pero recordamos que el IP (identificador principal) de CURSO es Interrelación Asociar Nombre y el de ALUMNO es DNI.n). Los atributos Libro y Teléfono son opcionales.27: Interrelación Matricular Asociar 2 ¿Coordinar? El estudio del tipo de correspondencia y las cardinalidades máximas y Mantener 4 mínimas también se realizó durante el desarrollo del capítulo pero recordaremos que la correspondencia es de muchos a muchos (N:M) ya que un alumno puede matricularse de uno o varios cursos. Elegiremos el DNI aunque bien podría ser la dirección de correo si esta es única.Fase de Análisis de Requisitos : Modelo E/R del enunciado. podría existir la interrelación Coordinar entre TUTOR y CURSO.n) Matricular (1. es decir. Tanto el atributo WWW como el e-mail son Antes de analizar las propiedades de la interrelación Asociar veamos los identificadores alternativos.27 muestra el esquema E/R correspondiente a la Según se muestra en el enunciado. Nombre Dirección e-mail Nombre F_Comienzo Teléfono Libro WWW F_Finalización M:N ALUMNO 3º paso: Dibujar las interrelaciones (estudiando el tipo de correspondencia y las cardinalidades) y los tipos de entidad con los atributos correspondientes. Nombre Dirección ALUMNO WWW Teléfono ALUMNO Interrelaciones ALUMNO CURSO Libro Nombre e-mail E/R de la base de datos. CURSO Matricular 1 TUTOR AULA ADMINISTRADOR TUTOR AULA Pertenecer 3 Matricular CURSO Nacionalidad ADMINISTRADOR Figura 2.28: Interrelación Matricular con cardinalidades y atributos en la interrelación Interrelación Matricular Tanto los atributos de CURSO como de ALUMNO se presentaron a lo largo del capítulo.28) en el resto de las celdas.I.N. tutores es: DNI.n) CURSO Nacionalidad Figura 2.n). La figura 2. cardinalidad (1. se muestran fechas en las que un alumno inició y finalizó un curso se introducen dos atributos sombreadas las celdas que representan interrelaciones simétricas a las definidas que pertenecen a la interrelación Matricular (figura 2. los valores que toman para cada elemento atributos del tipo de entidad TUTOR. D. 63 64 . De estos tres atributos tenemos que elegir cual de ellos puede ser el IP. y en un curso se En la tabla se muestra el nombre de las interrelaciones y una numeración matriculan uno o varios alumnos. dejaremos esta interrelación entre interrogaciones con el fin de estudiar posteriormente si debe reflejarse de esta forma. Por lo que el e-mail será un atributo alternativo y el nombre completo un atributo obligatorio. Así. para saber las que indica el orden en el que han ido apareciendo en el texto. Además.

TUTOR como en las especificaciones no se restringe el número de cursos que un tutor puede impartir. Libro WWW N:M (0. la cardinalidad máxima será N.¿A cuántos cursos está asociado como máximo un TUTOR? En este caso. tenemos que estudiar el tipo de correspondencia y las cardinalidades máximas y mínimas para completar las propiedades de la DNI Nombre completo e-mail Nombre interrelación.29: Entidad TUTOR Gráficamente. De esta forma la cardinalidad mínima es 0. tenemos que mirar al tipo de Figura 2. Volviendo a releer el texto nos preguntamos ¿qué pasa con la figura del con lo que supondríamos que todos los tutores que tenemos en nuestra base de coordinador?.30).n) Asociar CURSO Veamos ahora las cardinalidades máximas y mínimas del tipo de entidad TUTOR en la interrelación Asociar. Un curso como mínimo ha de ser tutorado por un TUTOR WWW N:M Asociar TUTOR (cardinalidad mínima 1) y como máximo por N (cardinalidad máxima N). alternativa para poder dejar descanso a los tutores.29. ¿cuál sería su representación? 65 66 . o. para ello.Fase de Análisis de Requisitos : Modelo E/R El tipo entidad y sus atributos quedan representados como muestra la datos siempre estarán ocupados con algún curso.¿A cuántos cursos está asociado como mínimo un TUTOR? La respuesta podría ser 0 si consideramos que podemos tener tutores que en un momento En los pasos 1 y 2 dejamos sin estudiar el concepto de coordinador de los dado no estén tutorando ningún curso. es decir. La interrelación Asociar relaciona las entidades TUTOR y CURSO (véase la tabla del paso 2 y Figura 2.30: Interrelación Asociar Nombre completo e-mail Nombre Libro WWW N:M (1.32: Cardinalidades en la interrelación Asociar entidad TUTOR y preguntarnos: . por el contrario.n) TUTOR (0. CURSO DNI Figura 2. junto al tipo de entidad CURSO (Figura 2.32). Figura 2.31). las cardinalidades de la entidad TUTOR se representan al lado contrario de esta. podríamos poner un 1 cursos. DNI Nombre completo e-mail . De forma análoga se razonaría para el caso de las cardinalidades asociadas a DNI Nombre completo e-mail Nombre Libro CURSO (figura 2.31: Cardinalidad de TUTOR en la interrelación Asociar muchos a muchos. Nos quedamos con la primera figura 2.n) Si leemos detenidamente las especificaciones del texto tenemos que un tutor CURSO Asociar TUTOR puede realizar sus labores en varios cursos y que en un curso puede ser tutorado por varias personas expertas (tutores) por lo tanto la correspondencia es N:M o Figura 2.

además. Por lo que una solución puede ser con DNI 3446721 y 7423412 están definidos como coordinadores. El tutor con DNI 4567433 no es coordinador y los tutores realizar dos labores: tutor y coordinador.34. y el cual nos indicará coordinador.Fase de Análisis de Requisitos : Modelo E/R Como bien se indica en los supuestos semánticos del enunciado.34: Ejemplares de la interrelación Asociar 67 68 . ejemplares de la interrelación Asocia. la solución de la figura 2. entonces un curso con el que se relaciona (Figura 2. Esto significa que un tutor en figura 2. N:M (1. determinados cursos (pero solamente en aquellos donde participa) puede 7423412.n) (0. 4567433. entonces estamos permitiendo en el esquema E/R que un curso tenga más de un coordinador.35.35: Interrelación Coordinar.34 si contempla la restricción semántica consistente en que los coordinadores de los cursos deben ser tutores de los mismos. es decir. Si no considerar. Si bien esta propuesta de solución recoge a la perfección CURSO CURSO Asociar que el coordinador de un curso tenga que ser obligatoriamente un tutor de ese CURSO Diseño de BD curso (ver figura 2. Coordinador.n) CURSO Asociar TUTOR DNI Nombre completo Nombre e-mail Libro WWW N:M Coordinador Coordinador está definido dentro del Dominio VERDAD = (SI. sin embargo. Esto significa que no Otra posible solución para representar la semántica de la figura de respetamos uno de los supuestos semánticos del enunciado. Sin embargo. no se permita introducir ninguno más. Para controlar esta última restricción habría que incluir SI NO Diseño de BD un mecanismo en el diseño lógico que obligara a que el coordinador de un curso Diseño de BD debe ser un tutor del mismo. Figura 2. n) Asocia. coordinador de un curso consiste en utilizar otra interrelación denominada Coordinar entre TUTOR y CURSO con las cardinalidades mostradas en la figura 3446721 2. NO). 1) (0. entonces en el diseño lógico de la BD se debería definir algún con el valor SI que un determinado tutor desarrolla la función de coordinador en mecanismo que cuando se haya definido un coordinador para un curso. puede desarrollar una función Veámoslo con los ejemplos de ejemplares de la interrelación mostrados en la añadida de planificación en determinados cursos.33: Interpretación de la figura Coordinador 1:N Analicemos como se interpreta el atributo Coordinador en la interrelación (1. La interrelación Coordinar representa que un determinado TUTOR puede ser coordinador de más de un CURSO y que un CURSO tiene uno y solo un 7423412 4567433 Asociar TUTOR TUTOR la restricción de que un curso sólo tiene un coordinador. el curso “Diseño de BD” tiene tres tutores cuyos DNI son 3446721. no es posible definir un DNI Nombre completo e-mail Nombre Libro WWW coordinador de un curso que no sea tutor del mismo. no recoge SI Asociar TUTOR TUTOR que lo coordina. n) TUTOR (0.36).33). definido queremos violar la restricción semántica de que un curso no tenga más de un dentro del dominio Verdad que toma los valores (SI. dentro de la interrelación Asocia un atributo. el coordinador es también un tutor y. n) CURSO Asociar Figura 2. El atributo Coordinador toma un valor para cada ejemplar de la Coordinar interrelación Asociar.NO) (1. esto significa que como un determinado curso puede tener más de un tutor y el atributo Coordinador podría tomar el valor de SI en esas Figura 2.

no_española) (1. Se Para la interrelación Pertenecer tenemos un tipo de correspondencia de uno han mostrado las dos más significativas. De esta forma. el esquema E/R definido además.1) ya que el alumno está asignado a una y solo un AULA. DNI e-mail Nombre Dirección Figura 2. El código_aula será el IP. Diseño de BD 2223456 Diseño de BD Coordinar TUTOR Teléfono 1:N CURSO ALUMNO Pertenecer AULA Nacionalidad Diseño de BD e-mail Figura 2.38: Interrelación Pertenecer Aunque existen otras formas de representar la figura del coordinador de un curso.n) ya que no tendría mucho sentido mantener un aula sin alumnos (figura 2. Nombre DNI completo e-mail Nombre lLibro WWW N:M TUTOR (1. y el resto de atributos serán CURSO Asociar Diseño de BD obligatorios. n) (1.n) ALUMNO Nacionalidad e-mail DNI Nombre Dirección Figura 2.37: Esquema E/R parcial 69 70 . n) Asociar (0. NO) ALUMNO Nacionalidad El esquema E/R obtenido hasta el momento es el mostrado en la figura 2.36: Ejemplares de la interrelación Asociar y Coordinar Código_aula DNI DescripciónDirección Nombre Dirección Figura 2.37: cardinalidad mínima y máxima de ALUMNO es (1. Las asociadas a AULA serían (1.40. Para este caso práctico se ha seleccionado la primera propuesta de solución (considerar el a muchos porque según el enunciado cada ALUMNO pertenece a un AULA atributo (suponemos que un alumno no puede estar asociado a más de un aula). un AULA puede tener asociados varios ALUMNOS (figura 2. Coordinador en la interrelación Asocia).39). no vamos a presentarlas aquí con el fin de no complicar el ejercicio. Las hasta el momento se muestra en la figura 2.1) F_Finalización Matricular nacionalidad = (española.Fase de Análisis de Requisitos : Modelo E/R Interrelación Pertenecer 3446721 7423412 Esta interrelación asocia las entidades ALUMNO y AULA. CURSO Asociar descripción y dirección).39: Cardinalidades de la interrelación Pertenecer coordinador = (SI. n) F_Comienzo Coordinador 1:N CURSO AULA (1.38). En primer lugar se 4567433 TUTOR TUTOR TUTOR CURSO Asociar representarán los atributos del tipo de entidad AULA que (código_aula. n) Dirección Código_aula Descripcion N:M Teléfono Pertenecer Teléfono (1.

n) N:M (1. Así. n) (1. NO) administrador = (SI. el supertipo PERSONA no participaría en ninguna interrelación. no_española) (1. Podremos identificar generalizaciones si encontramos El tipo de correspondencia es de uno a muchos (1:N) ya que un una serie de atributos comunes a un conjunto de entidades. tienen atributos comunes. esta representación conceptual no es única.1) ALUMNO Teléfono Nacionalidad e-mail Nombre Dirección (1.1) Pertenecer AULA Código_aula Descrip Dirección DNI ALUMNO 1:N Teléfono Nacionalidad Pertenecer AULA e-mail Nombre Dirección DNI Código_aula Descripcion Dirección Figura 2. el diseño conceptual de la base de datos referente al proyecto MENTOR PERSONA con los atributos DNI. n) Asociar (0. 71 72 . sólo existirán subtipos si éstos van a tipo de entidad ADMINISTRADOR. participar en interrelaciones (aparte de las interrelaciones en las que participe el supertipo).n) (1. Sin embargo. Los atributos del tipo de entidad ADMISTRADOR son DNI. Lo importante es que el usuario o la persona que nos ha encargado el diseño este conforme con este y refleje lo más fielmente posible las características del problema.n) para el tipo de entidad AULA y (1. un atributo obligatorio y otro alternativo.1) para el el caso que nos ocupa. nombre completo y e-mail y representan el IP.n) ADMINISTRADOR e-mail DNI Interrelación Mantener La interrelación Mantener se da entre las entidades ADMINISTRADOR y Nombre Figura 2.41: Esquema E/R completo AULA. como es también las cardinalidades: (1. n) TUTOR CURSO F_Comienzo Coordinador Nombre Libro WWW Asociar (1.n) (1.413: ADMINISTRADOR que no tienen ningún atributo propio. n) F_Finalización nacionalidad = (española.1) 1:N Mantener (1. Observando el esquema E/R final. NO) 1:N (1. n) CURSO F_Comienzo Coordinador F_Finalización nacionalidad = (española. el supertipo Así. estos atributos ADMINISTRADOR solamente puede estar asignado a un AULA y sin embargo un comunes describirán al supertipo y los atributos particulares permanecerán en AULA puede ser mantenida por más de un ADMINISTRADOR lo que nos indica los subtipos.Fase de Análisis de Requisitos : Modelo E/R Nombre DNI completo e-mail Nombre DNI completo e-mail Nombre Libro WWW N:M N:M TUTOR (1. Puede ocurrir que los subtipos no tengan atributos propios. puede haber diversas interpretaciones. en ese caso. n) Matricular (0. como muestra la figura 2. nombre y e-mail y los subtipos TUTOR y se representa en la figura 2.40: Esquema E/R parcial (1. las entidades TUTOR y ADMINISTRADOR respectivamente. podemos tener. por ello. Los subtipos TUTOR y ADMINISTRADOR siguen participando en las mismas interrelaciones que en la figura 2.42.41. n) (1. propuesta. se ha optado por eliminar la generalización de la solución 3 Como se ha mencionado al principio del ejercicio. no_española) Matricular N:M coordinador = (SI.

fecha de nacimiento y apodo. Por último. teniendo en cuenta que un caballero pudo gobernar más de una provincia y que una provincia estuvo gobernada por diferentes caballeros en distintas fechas. Debemos crear una base PERSONA de datos que permita consultar la información más relevante de la Edad Media. corona y las provincias sobre las que reinaron. victoria o abandono). En aquella época ya se sabe que su ascendiente sería otro rey. los caballeros que participaron. Figura 2.Fase de Análisis de Requisitos : Modelo E/R Nombre DNI completo e-mail En este segundo caso práctico se ha pensado en el diseño de una Base de Datos para los estudiantes universitarios de Historia. número de habitantes y los caballeros que las gobernaron. 73 74 . De las cruzadas almacenaremos la información del nombre. Interesará conocer el año de inicio y el número de años que estuve gobernada por cada caballero. fecha de nacimiento.42: Generalización de PERSONA También será importante conocer las provincias de aquella época. y más concretamente de las cruzadas que se llevaron a cabo en dicha época. Veremos a continuación los requisitos que se plantean en este nuevo proyecto: TUTOR Interesa conocer la información de los caballeros más importantes de ADMINISTRADOR los que sea almacenará la información de su nombre. de las que guardaremos la información de su denominación. la fecha de inicio y la fecha de fin. interesa conocer para cada rey la información de su ascendente. la fecha en la que se retiraron y el resultado que obtuvieron (derrota. En esta época también fueron muy importantes los reyes. de los que nos interesa conocer el nombre y sus apellidos. la fecha en la que se incorporaron.

y las provincias sobre las que reinaron. Recordemos que las soluciones no son únicas. En aquella época ya se sabe que su ascendiente sería otro rey. nombre del curso. la fecha de estuvo gobernada por cada caballero. fecha de También será importante conocer las provincias de aquella época. cuenta la siguiente heurística: en general. corona. una interrelación viene reflejada por 1º paso: Identificar y enumerar las posibles entidades teniendo en un verbo dentro de una oración que relaciona dos objetos. provincia estuvo gobernada por diferentes caballeros en distintas fechas. mismos pasos que seguimos en el ejemplo anterior con el fin de identificar los CRUZADA y REY. los caballeros que participaron. victoria o abandono). corona. un tipo de entidad es un sustantivo dentro de una oración con una seria de propiedades o características. teniendo en cuenta la siguiente heurística: en general. PROVINCIA. Interesa conocer la información de los caballeros más importantes de los que sea almacenará la información de su nombre. interesa conocer para cada rey la información de su ascendente. Por ejemplo. y cada pueden existir distintos esquema E/R válidos. teniendo en cuenta También será importante conocer las provincias de aquella época. en los verbos con posiblidad de interrelación aparece un número correlativo que se muestra como superíndice. la fecha en la que se retiraron y el resultado En esta época también fueron muy importantes los reyes. 75 76 . de los que cuenta que una provincia pudo tener diferentes reyes. los que sea almacenará la información de su nombre. En el texto presentamos en negrita y subrayado los tipos de entidad que Interesa conocer la información de los caballeros más importantes de hemos detectado. número de habitantes y los caballeros que las gobernaron. nos interesa conocer el nombre y sus apellidos fecha de nacimiento.Fase de Análisis de Requisitos : Modelo E/R Por último. DNI del alumno. la fecha en la que se retiraron y el resultado que De las cruzadas almacenaremos la información del nombre. Por último. 2º paso: Identificar y enumerar las posibles interrelaciones. teniendo en cuenta fechas. las que guardaremos la información de su denominación. la fecha en la que se incorporaron. de los que que obtuvieron (derrota. fecha de nacimiento. la fecha obtuvieron (derrota. teniendo en En esta época también fueron muy importantes los reyes. la fecha en la que se incorporaron. Para realizar el diseño conceptual de la BD en el modelo E/R seguiremos los Las entidades que hemos encontrado son: CABALLERO. En aquella época ya se sabe que su ascendiente sería otro rey. Interesará conocer el año de inicio y el número de años que De las cruzadas almacenaremos la información del nombre. elementos básicos del modelo. de inicio y la fecha de fin. los caballeros que participaron2.HISTORIA ascendente. de que un caballero pudo gobernar1 más de una provincia y que una las que guardaremos la información de su denominación. victoria o abandono). número de provincia estuvo gobernada por diferentes caballeros en distintas habitantes y los caballeros que las gobernaron. Interesará conocer el año de inicio y el número de años que que un caballero pudo gobernar más de una provincia y que una estuvo gobernada por cada caballero. etc. inicio y la fecha de fin. de nacimiento y apodo. Igual que en el ejemplo visto anteriormente. DISEÑO PROPUESTO AL CASO PRÁCTICO . nos interesa conocer el nombre y sus apellidos. y la provincia sobre la que reinó más tiempo. interesa conocer para cada rey la información de su 5. fecha de nacimiento y apodo.

Como vemos. dos atributos que dependen de la interrelación Gobernar. máximas son (0. . son identifica de forma única a cada caballero.n) Gobernar PROVINCIA las entidades Caballero y Provincia con sus atributos . pero a lo largo de la historia pudo estar gobernada por diferentes caballeros (1. por lo que las cardinalidades mínimas y las cardinalidades) y los tipos de entidad con los atributos correspondientes. mientras que en el cruce de filas y columnas CABALLERO indicaremos las interrelaciones encontradas.n). Elegiremos como IP (identificador principal) el atributo Apodo. nos interesa conocer. recordaremos que en la primera fila y en la primera columna especificaremos las Denominación Num_Hab entidades localizadas en el texto. por cuántos caballeros estuvo gobernada? Siempre estuvo Interrelación Gobernar gobernada como mínimo por un caballero.¿Un caballero. en el texto. Se muestran sombreadas las celdas que representan interrelaciones Para hallar las cardinalidades.n) (0. . preguntaremos: simétricas. la Denominación y el Apodo Nombre . nos fijaremos en los requisitos indicados en el enunciado. según los requisitos del modelo.Fase de Análisis de Requisitos : Modelo E/R A continuación realizaremos la matriz de interrelaciones. donde se afirma que “Un caballero puede gobernar más de una provincia y que una provincia estuvo gobernada por deferentes caballeros en distintas fechas”. Fecha de nacimiento y Por último vemos que nos hablan de dos atributos: “Año de inicio y número Apodo. 77 78 . Número de Habitantes siendo el IP (identificador principal) la denominación Año_inicio Denominación Num_Hab Num_Años (única para cada provincia). En cuanto a la entidad PROVINCIA. y que habrá otros 3º paso: Dibujar las interrelaciones (estudiando el tipo de correspondencia y que habrán gobernado más de una. En esta interrelación participan las entidades CABALLERO y PROVINCIA.n). cuántas provincias pudo gobernar? Podemos pensar que habrá caballeros que no gobernaron ninguna provincia (0). Recordemos que la cardinalidad se expresa en sentido contrario. donde Fecha_Nac Apodo Nombre . y la representación de la Historia 2: Interrelación Gobernar con cardinalidades y atributos de interrelación interrelación Gobernar en el diagrama entidad-relación. Interrelaciones CABALLERO PROVINCIA REY Historia 1:: Interrelación Gobernar Participar 2 CABALLERO PROVINCIA CRUZADA PROVINCIA Gobernar Gobernar 1 CRUZADA REY Reinar 3 Ascender 4 Para el estudio de las cardinalidades.¿Una provincia. M:N CABALLERO La figura ”Historia 1: Interrelación Gobernar” muestra la representación de (1. Los atributos de la entidad CABALLERO son: Nombre. ya que de años” que un caballero estuvo gobernando una provincia. La numeración como en el ejemplo anterior. muestra el orden de aparición Además nos indican que debemos conocer el año de inicio y el número de años que estuvo gobernada por cada caballero.

cada cruzada. también interesa conocer para cada caballero que participó en CABALLERO. Como IP (identificador principal) elegiremos el atributo Nombre. la información de la fecha de incorporación.En una cruzada.n). victoria).n) CABALLERO Participar CRUZADA CABALLERO (1. de cada uno de los caballeros que participó en una cruzada.n) (1. que según .n) Nombre F_Retirada F_Incorpor Resultado N:M (1. donde intervienen las entidades CRUZADA y Ahora bien. la fecha de retirada y el resultado (derrota. ¿en cuántas cruzadas pudo participar? Como mínimo en una entidad CABALLERO ni de la entidad CRUZADA. La entidad y sus atributos quedan representados en la siguiente figura: Nombre Apodo completo Fecha_Nac Fecha_Inicio Nombre Fecha_Fin N:M Nombre Fecha_Inicio Fecha_Fin CABALLERO (1. Esta interrelación representa las cruzadas en las que participaron los caballeros.Un caballero. por lo tanto.Fase de Análisis de Requisitos : Modelo E/R Recordemos que la cardinalidad se representa gráficamente en sentido Interrelación Participar contrario. sino que la información depende y como máximo en muchas (1. ¿cuántos caballeros pudieron participar? Como mínimo un el enunciado deben ser: Nombre. El siguiente paso será establecer las cardinalidades entre las dos entidades de esta interrelación PARTICIPAR. abandono. Analizaremos los atributos de la nueva relación CRUZADA. son atributos de la interrelación PARTICIPAR: Nombre Apodo completo Fecha_Nac Nombre Fecha_Inicio Fecha_Fin Nombre Apodo completo Fecha_Nac (1.n) CRUZADA Participar CRUZADA Historia 5: Cardinalidad de CABALLERO y CRUZADA en la interrelación Participar Historia 3: Entidad CRUZADA Vemos que la cardinalidad de la interrelación es del tipo N:M.n) Participar Historia 4: Cardinalidad de CABALLERO en la interrelación Participar Historia 6: Esquema entidad/relación parcial 79 80 Fecha_Inicio CRUZADA Fecha_Fin . fecha en la finalizó. la fecha en la que comenzó la cruzada y la caballero y como máximo N. Estos atributos no son propios ni de la .

cuántos reyes reinaron? Uno o más de uno (en distintas fechas) Interrelación Ascender En esta interrelación participa únicamente la relación REY relacionada consigo misma. Sus atributos son: (1.Fase de Análisis de Requisitos : Modelo E/R Esta interrelación asocia las relaciones PROVINCIA y REY. Historia 7: Entidad REY Veamos la representación de la interrelación Reinar Fecha_Nac Nombre Denominación Num_Habitantes Corona N:1 PROVINCIA Nombre Denominación Num_Habitantes Fecha_Nac (1.n) Reinar (1. Apellidos. Fecha_Nac Nombre Denominación Num_Habitantes Interrelación Reinar Corona REY Historia 9 : Cardinalidad de la entidad Provincia Nombre Completo Fecha_Nac Corona REY Un rey. (ID Principal) Fecha de nacimiento y Corona.1) REY Corona Historia 10 : Cardinalidad de la interrelación PROVINCIA Reinar REY Historia 8 : Representación de la interrelación Reinar Por lo tanto la cardinalidad entre estas relaciones es 1:N .En una provincia. 81 82 . ¿cuántas provincias reinó? Puedo reinar sobre uno o más provincias.n) PROVINCIA Reinar Nombre.

n) (1.n) Ascender (1.n) (1.Relación completo (1. (Se incluye la información Nombre Fecha_Nac Completo CRUZADA de los Reyes y de las Reinas) Corona (1.Fase de Análisis de Requisitos : Modelo E/R Hasta ahora hemos representado todas las interrelaciones de forma parcial.n) . REY Fecha_Nac Año_inicio Denominación Num_Años Num_Hab M:N CABALLERO (1.Un rey.n) Ascender Historia 11: Interrelación Asociar M:N Nombre Para hallar la cardinalidad.n) Nombre Fecha_Nac Completo Ascender Corona REY Historia 13 : Diagrama Entidad.n) PROVINCIA Gobernar (1. ¿de cuántos Reyes es ascendiente? De uno o más de uno (en el REY caso de que haya tenido más de un hijo). por lo que el siguiente paso es la representación global de las interrelaciones a Nombre Fecha_Nac Completo través del diagrama entidad-relación: Corona Apodo Nombre .¿Un rey cuántos ascendientes tiene? Tendrá dos. preguntaremos: F_Retirada F_Incorpor Resultado Participar Fecha_Inicio M:N Reinar Fecha_Fin (1.n) (0.n) N:M Historia 12: Interrelación Asociar 83 84 N:M . la representación sería: (1.n) . Por lo tanto.

apellidos y la sucursal. población. Código del inmueble. nombre. etc.CONSTRUCTORA Seguiremos los mismos pasos que hemos visto en ejemplos anteriores. de una sucursal principal a la que enviará mensualmente todos sus informes de alquileres. de su dirección. Recordemos que las soluciones no son únicas. teléfono. nombre. nº de habitaciones. un tipo de entidad es un sustantivo dentro de una oración con una seria de propiedades o Cada sucursal se identifica por un código y se requiere la información características. código postal. 85 86 .Fase de Análisis de Requisitos : Modelo E/R 6. la fecha de fin y el importe máximo mensual que sucursal. Un cliente potencial será atendido por un único comercial. Se Se desea conocer los comerciales que trabajan en las distintas tendrá en cuenta que un inmueble será gestionado por una única sucursales. nombre. y precio máximo que está dispuesto a pagar por por diferentes clientes a lo largo del tiempo y nos interesará conocer el alquiler. DNI del alumno. Tendremos en cuenta que un inmueble puede ser alquilado habitaciones. apellidos. nombre. Tendremos en cuenta que un inmueble puede ser alquilado apellidos. apellidos y la hemos detectado. la fecha de fin y el importe máximo mensual que un cliente pagó por ese alquiler. y que pueden existir distintos En este tercer caso práctico se requiere el diseño de una Base de Datos esquemas E/R válidos. y el importe de su alquiler mensual. nombre del curso. Se desea almacenar la información de su negocio. su dirección. y el importe de su alquiler mensual. la fecha de inicio. DISEÑO PROPUESTO AL CASO PRÁCTICO . Los clientes reales son aquellos que tienen alquilado algún inmueble. Los clientes reales son aquellos que tienen alquilado algún inmueble. Sus clientes potenciales son aquellos que buscan el alquilar de un Nos interesa conocer la información de su DNI. Nos interesa conocer la información de su DNI. y inmueble. población y teléfono. su dirección. Cada sucursal se identifica por un código y se requiere la información De los inmuebles que gestiona cada sucursal interesa conocer el de su dirección. nº de teléfono. Cada sucursal depende a su vez. inmueble. Nos interesa conocer la información de su DNI. La sucursal Sus clientes potenciales son aquellos que buscan el alquilar de un principal tendrá a su cargo varias sucursales. Se desea conocer los comerciales que trabajan en las distintas En el texto presentamos en negrita y subrayado los tipos de entidad que sucursales. Se exponen a 1º paso: Identificar y enumerar las posibles entidades teniendo en continuación los requisitos para la creación de la base de datos: cuenta la siguiente heurística: en general. Se por diferentes clientes a lo largo del tiempo y nos interesará conocer tendrá en cuenta que un inmueble será gestionado por una única la fecha de inicio. población y teléfono. De los inmuebles que gestiona cada sucursal interesa conocer el Nos interesa conocer la información de su DNI. población. y Código del inmueble. De ellos se quiere conocer su Dni. un cliente pagó por ese alquiler. nombre. apellidos. código_postal. para una Constructora que dispone de varias sucursales dedicadas al alquiler de sus inmuebles. nº de baños. Por ejemplo. nº de baños. fecha de contratación. código_postal. código postal. nombre. De ellos se quiere conocer su Dni. fecha de contratación. teléfono.

mientras que en el cruce de filas y columnas indicaremos las interrelaciones encontradas. CLIENTE REAL y CLIENTE POTENCIAL. el texto. nº de baños. y el importe de su alquiler mensual. Un cliente potencial será atendido por un único comercial. principal tendrá a su cargo varias sucursales. teniendo en A cuenta la siguiente heurística: en general. enviará mensualmente todos sus informes de alquileres. Recordemos que la numeración. en los verbos con posiblidad de interrelación aparece un número correlativo que se muestra como superíndice. Se desea conocer los comerciales que trabajan1 en las distintas sucursales. nombre. Tendremos en cuenta que un inmueble puede ser alquilado por diferentes clientes a lo largo del tiempo y nos interesará conocer 87 88 . teléfono. principal tendrá a su cargo varias sucursales. su dirección. SUCURSAL Depender 5 COMERCIAL Trabajar 1 INMUEBLE Gestionar 2 CLIENTE Código del inmueble. de una sucursal principal a la que Sus clientes potenciales son aquellos que buscan el alquilar de un enviará mensualmente todos sus informes de alquileres. y precio máximo que está dispuesto a pagar por la fecha de inicio. código_postal. teléfono. y semánticas. Un cliente potencial será atendido4 por un único comercial. se corresponde con el orden de aparición en Los clientes reales son aquellos que tienen alquilado3 algún inmueble. Cada sucursal depende a su vez. la fecha de fin y el importe máximo mensual que el alquiler. Se muestran sombreadas las celdas que representan interrelaciones Nos interesa conocer la información de su DNI. Nos interesa conocer la información de su DNI. Interrelaciones SUCURSAL COMERCIAL INMUEBLE Cada sucursal se identifica por un código y se requiere la información de su dirección. una interrelación viene continuación realizaremos la matriz de interrelaciones. un cliente pagó por ese alquiler. teléfono. código postal. de una sucursal principal a la que COMERCIAL. donde recordaremos que en la primera fila y en la primera columna especificaremos las reflejada por un verbo dentro de una oración que relaciona dos objetos.Fase de Análisis de Requisitos : Modelo E/R apellidos. apellidos. población. La sucursal INMUEBLE. De ellos se quiere conocer su Dni. nombre. La sucursal inmueble. y precio máximo que está dispuesto a pagar por el alquiler. Igual que en el ejemplo visto anteriormente. Se tendrá en cuenta que un inmueble será gestionado por una única sucursal. nombre. Las entidades que hemos encontrado son: SUCURSAL. Cada sucursal depende5 a su vez. población y teléfono. apellidos. 2º paso: Identificar y enumerar las posibles interrelaciones. nº de CLIENTE REAL POTENCIAL Alquilar 3 CLIENTE REAL De los inmuebles que gestiona2 cada sucursal interesa conocer el CLIENTE Atender 4 POTENCIAL habitaciones. apellidos y la fecha de contratación. entidades localizadas en el texto.

nº de habitaciones. Dirección. 1:1 (Como mínimo trabajaría en una sucursal y como máximo también en una única sucursal).1) (1. nos preguntaremos lo siguiente: Esta interrelación representa los inmuebles que gestiona cada sucursal. apellidos y la fecha de un comercial trabaja únicamente en una sucursal. por lo que la cardinalidad sería contratación. ya que identifica de forma única a las distintas sucursales con las que cuenta la Constructora. Cod_Postal Direccion Población Teléfono Cod_Suc. En cuanto a la entidad COMERCIAL. Elegiremos como IP (identificador principal) el atributo Cod_Suc (Código de Sucursal).n) Trabajar SUCURSAL Trabajar Constructora 3:: Constructora 1:: COMERCIAL COMERCIAL Interrelación Trabajar Interrelación Trabajar Interrelación Gestionar Para el estudio de las cardinalidades. y el que la cardinalidad se expresa en el sentido contrario. su DNI que . Población y Teléfono. nos interesa conocer para cada uno de los comerciales. nº de mínimo 1 y como máximo N. Como IP (identificador principal) cada uno de los inmuebles de la constructora. elegiremos el atributo Código del inmueble ya que identificará de forma única a importe de su alquiler mensual. Cod_Postal. Constructora 2:: Interrelación Trabajar Los atributos de la entidad SUCURSAL son: Cod_Suc. 89 90 . Analizaremos los atributos de la nueva relación INMUEBLES. Cod_Postal Direccion Población Teléfono Nombre Apellidos Fecha_Contrato DNI SUCURSAL Interrelación Trabajar (1. Cod_Suc. La figura”Constructora 1: Interrelación Trabajar” muestra el diagrama parcial entidad-relación. su nombre. ¿ en cuántas sucursales trabaja? Lo lógico sería pensar que será el IP (identificador principal). código_postal.Un comercial. ¿cuántos comerciales trabajan? Puedes trabajar como del inmueble. Por lo tanto la cardinalidad será 1:N.Fase de Análisis de Requisitos : Modelo E/R 3º paso: Dibujar las interrelaciones (estudiando el tipo de correspondencia y las cardinalidades) y los tipos de entidad con los atributos correspondientes.n) COMERCIAL Trabajar En esta interrelación participan las entidades SUCURSAL y COMERCIAL. población. su dirección. En el enuanciado nos indican que las propiedades más relevantes para esta entidad son: Código .En una sucursal. Cod_Postal Direccion Población Teléfono Nombre Apellidos Fecha_Contrato DNI Nombre Apellidos Fecha_Contrato DNI 1:N SUCURSAL (1. Recordemos baños. Cod_Suc.

Población Num_Baños Num_Habitaciones. ¿cuántos inmuebles puede gestionar? Como mínimo podrá DNI. ya que en el enunciado nos indican que un inmueble será gestionado por una única sucursal. Num_Habitaciones.Una sucursal. nombre. Para . Nombre Apellidos Teléfono INMUEBLES CLIENTE (real) Constructora 5: Cardinalidad de SUCURSAL en la interrelación Gestionar Constructora 7: Entidad Cliente (Real) . donde intervienen las entidades SUCURSAL e INMUEBLE. Esta interrelación ALQUILAR asocia las entidades CLIENTE (real) e INMUEBLE. Los atributos de la entidad CLIENTE (real). Num_Habitaciones. Cod_Postal Direccion Población Teléfono 1:N Dirección. ¿por cuántas sucursales es gestionado? Como mínimo por una sucursal y como máximo también por 1.Importe_Alquiler Cod_Inmueble. Interrelación Alquilar El siguiente paso será establecer las cardinalidades de la interrelación GESTIONAR. apellidos. Num_Baños Cod_Inmueble. Importe_Alquiler Cod_Suc. A continuación estableceremos las cardinalidades ALQUILAR.1) SUCURSAL INMUEBLE INMUEBLE Gestionar Constructora 6: Cardinalidad de SUCURSAL e INMUEBLE Constructora 4: Entidad Inmueble Vemos que la cardinalidad de la interrelación es del tipo 1:N. preguntaremos: 91 92 de la interrelación e INMUEBLE. Cod_Postal Direccion Población Teléfono (1.n) SUCURSAL Gestionar DNI. Cod_Postal (1.Fase de Análisis de Requisitos : Modelo E/R El tipo de entidad y sus atributos quedan representados en la siguiente figura: Cod_Postal Dirección. donde intervienen las entidades CLIENTE (real) ello.n) (1. según el enunciado son: . Elegiremos como IP (Identificador Principal) gestionar 1 y como máximo N (Muchos). y teléfono. el atributo DNI y representaremos la entidad de la siguiente forma: Cod_Postal Dirección.Un inmueble. Importe_Alquiler Cod_Suc. Num_Baños Cod_Inmueble.

Antes de continuar. por lo que podemos DNI. sino que son propios de la relación. única a los clientes (pontenciales). Num_Habitaciones. podemos observar que los atributos de los clientes reales y clientes potenciales son prácticamente los mismos. ya que identifica de forma pudo estar alquilado por más de un cliente en distintas fechas.Un cliente ¿Cuántos inmuebles puede alquilar? Puede ser que alquile como mínimo 1.Fase de Análisis de Requisitos : Modelo E/R . Num_Habitaciones. Esos atributos no son propios ni de la entidad Cliente (real). Elegiremos alquilado por un cliente y como máximo por muchos (N). ni de la entidad Inmueble. DNI. Fecha_InicFecha_Fin Importe_Alquiler Importe_Max N:M (1.n) CLIENTE (real) Alquilar (1. nombre.Un inmueble. Importe_Alquiler (1. ¿por cuántos clientes es alquilado? Como mínimo estará teléfono.n) CLIENTE (real) hablar de una generalización. ya que un inmueble como IP (identificador principal) el atributo DNI. la fecha de fin y el Precio_Max importe máximo mensual que un cliente pagó por ese alquiler. . Num_Habitaciones. Num_Baños Cod_Inmueble. La . CLIENTE (REAL) CLIENTE POTENCIAL Constructora 11: Generalización de Cliente 93 94 (potencial). Los atributos de la entidad CLIENTE (potencial) son: DNI.n) CLIENTE (real) DNI. Nombre Apellidos Cod_Postal Dirección. donde crearemos un supertipo denominado Cod_Postal Dirección. y como máximo muchos (N).n) Alquilar CLIENTE y dos subtipos: CLIENTES (real) y CLIENTE representación de esta generalización se expone a continuación: INMUEBLE Nombre DNI Apellidos Constructora 9: Cardinalidad de la interrelación ALQUILAR Teléfono CLIENTE Ahora bien. Num_Baños Cod_Inmueble. Nombre Apellidos Teléfono Cod_Postal Dirección. también interesa conocer la fecha de inicio. Importe_Alquiler Teléfono (1. apellidos. y precio máximo que está dispuesto a pagar por el alquiler. Nombre Apellidos Teléfono N:M (1.n) Alquilar INMUEBLE Constructora 10: Cardinalidad y atributos de la interrelación ALQUILAR INMUEBLE Interrelación Atender Constructora 8: Cardinalidad de CLIENTE en la interrelación ALQUILAR En esta interrelación participan las entidades CLIENTE (potencial) y COMERCIAL. Num_Baños Cod_Inmueble. ya que puede alquilar diferentes inmuebles a lo largo del tiempo.

hemos visto que la cardinalidad entre las entidades CLIENTE POTENCIAL Y COMERCIAL es N:1. analizaremos la interrelación Depender. por lo que a partir de ahora ya no hablaremos CLIENTE POTENCIAL de cliente real y cliente potencial.Una sucursal. tienen los mismos atributos puesto DNI que la entidad cliente real no tiene ninguno propio.1) Atender Constructora 12:: SUCURSAL COMERCIAL Cardinalidad de Cliente Depender Constructora 14: Interrelación Depender . pasa a denominarse Cliente. La entidad participante es SUCURSAL ya que se relaciona consigo misma: .Un cliente potencial ¿por cuántos comerciales es atendido? Según se nos indica en el enunciado “Un cliente potencial será atendido por un único comercial” Dirección Población Cod_Postal Teléfono Cod_Sucural DNI Apellidos Precio_Max Nombre Teléfono Nombre Apellidos Fecha_Contrato DNI CLIENTE POTENCIAL (1. sino únicamente de cliente y cliente potencial: (1.Fase de Análisis de Requisitos : Modelo E/R Como la entidad cliente y cliente real. ¿de cuántas sucursales depende? Según se deduce del enunciado. Continuaremos analizando la cardinalidad entre las entidades CLIENTE POTENCIAL y COMERCIAL.n) (1. La entidad cliente Apellidos Nombre Teléfono Nombre Apellidos Fecha_Contrato N:1 DNI real. Interrelación Depender Comenzaremos por establecer la cardinalidad de la entidad CLIENTE POTENCIAL: Para finalizar.Un comercial ¿a cuántos clientes potenciales atiende? Como mínimo atenderá a 1 y como máximo a muchos (1:N) A continuación establecemos las cardinalidades: . se decide mantener únicamente las entidades cliente (real) y cliente potencial.1) Atender Constructora 13:: CLIENTE COMERCIAL Cardinalidad de la interrelación Atender CLIENTE POTENCIAL Por lo tanto. una sucursal dependerá únicamente de otra sucursal: 95 96 .

Nombre Apellido Teléfono (1.n) (1.1 Depender Constructora 15: Interrelación Depender Cod_Postal Dirección.n) CLIENTE POTENCIAL Constructora 17: Diagrama Entidad Relación Final 97 98 . Cod_Postal Direccion Población Teléfono 1:N (1.1) (1. estamos ante una cardinalidad N:1. Num_Habitaciones. Importe_Alquiler Cod_Suc.n) Importe_Max Fecha_Fin Fecha_Ini Dirección Población Cod_Postal Teléfono Cod_Sucural Trabajar Alquilar 1:N N:M SUCURSAL (1. (1.Fase de Análisis de Requisitos : Modelo E/R Diagrama Entidad-Relación Dirección Población Cod_Postal Teléfono Cod_Sucural SUCURSAL N:1 1:1 Depender (1. Precio_Max Apellidos Nombre Teléfono (1.n) COMERCIAL CLIENTE DNI Depender Fecha_Contrato Nombre Apellidos (1. ¿cuántas sucursales dependan? Pueden ser una o más de SUCURSAL (1.1) N:1 Constructora 16: Interrelación Depender DNI 1:N Atender Por lo tanto. Num_Baños Cod_Inmueble.n) INMUEBLE Gestionar una.1) De Una sucursal.n) 1:N 1:1 DNI.

nombre. nombre del curso. largo. creó. un tipo de entidad es un especificación de los requisitos de forma detallada: sustantivo dentro de una oración con una seria de propiedades o características tales como. saber el nombre y la dirección de la sede. así como el artista que la almacenará la información de su descripción. (alto. surrealista. etc. largo. Un artista puede trabajar distintos estilos (cubista. Un artista puede trabajar distintos estilos (cubista..) y diferentes técnicas (óleo. nombre. dimensiones impresionista. apellidos. apodo En el texto presentamos en negrita y subrayado los tipos de entidad que (quienes lo tengan). sexo.) (quienes lo tengan). por lo que es importante Además si la obra ha estado expuesta en alguna sede. De las obras es necesario recoger el nombre de la obra. DISEÑO PROPUESTO AL CASO PRÁCTICO – OBRAS DE ARTE Para la realización del diseño conceptual y con el fin de obtener el modelo entidad-relación. valor estimado por el tasador. apellidos. fecha de nacimiento y su dirección de correo hemos detectado. por lo que es importante almacenar la fecha en la que se realizo la exposición.Fase de Análisis de Requisitos : Modelo E/R 7. acuarela. DNI del alumno. se necesita almacenar la fecha en la que se realizó la exposición. …. Una obra puede haber sido expuesta en varias de la técnica empleada. De los artistas se requiere: DNI.. 99 100 . escultura. sedes y en una misma sede varias veces. almacenará la información de su descripción.. valor de la última subasta (si es que ha sido Cada estilo y cada técnica vendrán identificadas por un código y se subastada). así como la exposición en creó. valor de la última subasta (si es que ha sido Además si la obra ha estado expuesta en alguna sede. ancho). También se recogerá información del estilo al que pertenece y la que tuvo cabida. sexo. Una obra puede haber sido expuesta en varias sedes y en una misma sede varias veces. se necesita subastada). identificaremos los principales elementos del modelo.. También se recogerá información del estilo al que pertenece y De las obras es necesario recoger el nombre de la obra. fecha de nacimiento y su dirección de correo Cada estilo y cada técnica vendrán identificadas por un código y se electrónico. acuarela. valor estimado por el tasador. surrealista. dimensiones de la técnica empleada. electrónico.. apodo impresionista. Seguiremos los mismos pasos vistos en los casos prácticos anteriores: Se necesita almacenar la información en una base de datos de los artistas más importantes del momento. Se almacenará la información de sus obras y de las sedes donde 1º paso: Identificar y enumerar las posibles entidades teniendo en han permanecido expuestas.) (alto..) y diferentes técnicas (óleo. así como la exposición en la que tuvo cabida. Se presenta a continuación la cuenta la siguiente heurística: en general. De los artistas se requiere: DNI. escultura. …. así como el artista que la saber el nombre y la dirección de la sede. ancho).

Además si la obra ha estado expuesta6 en alguna sede. independientemente de la subasta. …. (quienes lo tengan). apellidos. así como el artista que la Estilo y Descripción. También se recogerá información del estilo al que pertenece4 y de la técnica empleada5. La Cada estilo y cada técnica vendrán identificadas por un código y se entidad ARTISTA presenta los atributos DNI. ancho). Del enunciado se podría deducir que SUBASTA es relaciones existentes entre las entidades. apellidos. fecha de nacimiento y su dirección de correo electrónico. valor estimado por el tasador. teniendo en cuenta la siguiente heurística: en general. nombre. Parece que cruce de filas y columnas aquellas interrelaciones que hemos detectado: dicha entidad no cobra peso en nuestro modelo. dimensiones Como IP se elige el atributo DNI ya que permite identificar de forma única a (alto. 101 102 . por lo que es importante almacenar la fecha en la que se realizo la exposición. En la primera fila y la primera columna también un tipo de entidad. apodo atributos correspondientes. pero parece ser que solo interesa conocer el valor de se enuncian los tipos de entidad anteriormente enumerados y se señalará en el la obra en la última subasta. 3º paso: Dibujar las interrelaciones (estudiando el tipo de correspondencia y las cardinalidades) y los tipos de entidad con los De los artistas se requiere: DNI. apodo almacenará la información de su descripción. OBRA y SEDE. Un artista puede trabajar1/2 distintos estilos (cubista.) Las entidades participantes de esta interrelación son ARTISTA y ESTILO.. (quienes lo tengan). valor de la última subasta (si es que ha sido cada uno de los artistas. ESTILO. La entidad ESTILO contará con los atributos Código de subastada). escultura. largo... se necesita saber el nombre y la dirección de la sede. Una obra puede haber sido expuesta en varias sedes y en una misma sede varias veces. acuarela. creó3. sexo. sexo. nombre. así como la exposición en La figura 1: Interrelación Trabajar muestra el esquema parcial E/R: la que tuvo cabida. una interrelación viene reflejada por un verbo dentro de una oración que relaciona dos objetos.) y diferentes técnicas (óleo. Interrelación Trabajar 1 impresionista. TECNICA OBRA Trabajar 1 Trabajar 2 Crear 3 Pertenecer 4 Emplear 5 SEDE Exponer 6 En el texto aparece un número correlativo como superíndice en los verbos que indican la posible existencia de una interrelación. Interrelaciones ARTISTA ESTILO ARTISTA ESTILO TÉCNICA OBRA SEDE 2º paso: Identificar y enumerar las posibles interrelaciones. A continuación realizaremos la matriz que nos permitirá conocer las TÉCNICA. surrealista. De las obras es necesario recoger el nombre de la obra. fecha de nacimiento y su dirección de correo electrónico.Fase de Análisis de Requisitos : Modelo E/R Los tipos de entidades que hemos localizado son: ARTISTA.

preguntaremos: La entidad ARTISTA ya la hemos visto anteriormente. para ver la cardinalidad de la entidad Artista. ¿cuántas técnicas trabaja? Puede trabajar una técnica o más de una. o más de uno.n) ESTILO Trabajar Artistas 3: Cardinalidad de la Interrelación Trabajar Interrelación Trabajar 2 Analizaremos a continuación las cardinalidades máximas y mínimas de la interrelación (1. preguntaremos: .Un estilo ¿cuántos artistas lo pueden trabajar? Un estilo lo puede trabajar un único artista o más de uno (1:N) De la misma forma que en el ejemplo anterior.n) Trabajar Cod_Técnica Fecha_Nac Apellidos Nombre Sexo Apodo E-mail Descripcion ESTILO ARTISTA Trabajar Artistas 2: Cardinalidad de Artista en la interrelación Trabajar Artistas 4: TÉCNICA Interrelación Trabajar Veremos ahora la cardinalidad de la entidad Estilo: .n) cardinalidad de la entidad Artista. (1:N) 103 104 . Las entidades participantes de esta interrelación son ARTISTA y TÉCNICA.Un artista. (1:N) La figura 1: Interrelación Trabajar muestra el esquema parcial E/R: DNI Cod_Estilo Fecha_Nac Apellidos Nombre Sexo Apodo E-mail Descripcion DNI ARTISTA (1. La entidad TÉCNICA . ¿cuántos estilos trabaja? Puede trabajar un estilo contará con los atributos Código de Técnica y Descripción.Un artista. Para ver Interrelación Trabajar la (1.Fase de Análisis de Requisitos : Modelo E/R DNI DNI Cod_Estilo Fecha_Nac Apellidos Nombre Sexo Apodo E-mail Descripcion Cod_Estilo Fecha_Nac Apellidos Nombre Sexo Apodo E-mail Descripcion N:M ARTISTA Artistas 1: ARTISTA ESTILO Trabajar Trabajar.

Los atributos de la OBRA entidad OBRA son: Nombre. TÉCNICA Analizaremos primero la cardinalidad de la entidad Obra.n) TÉCNICA Trabajar DNI Artistas 5: Cardinalidad de Artista en la interrelación Trabajar Fecha_Nac Apellidos Nombre Sexo Apodo E-mail Valor_Subasta Valor_Tasador Nombre Dimensiones 1:N ARTISTA . Artistas 7: En tidad OBRA 105 106 obra pertenece? Puede pertenecer a una o más .n) (1.Un estilo. Artistas 9: Cardinalidad de la Entidad Obra Artistas Valor_Subasta Nombre Dimensiones Valor_Tasador . Interrelación Crear Valor_Subasta Valor_Tasador Nombre Dimensiones Cod_Estilo Descripcion La interrelación Crear une las entidades OBRA y ARTISTA.Una obra.Una técnica ¿cuántos artistas la pueden trabajar? Una técnica la puede (1.n) Trabajar OBRA y ESTILO. dimensiones. Esta cardinalidad se representa en la figura 8 ARTISTA (1.Fase de Análisis de Requisitos : Modelo E/R La interrelación Crear presenta un tipo de cardinalidad de uno a muchos. Artistas 6: Cardinalidad de la Interrelación Trabajar . ¿ a cuántos estilos pertenece? Pertenecerá a uno y solo a uno. ¿a cuántas OBRA obras.1) Pertenecer ESTILO estimado por el tasador.1) (1.n) OBRA Crear trabajar un único artista o más de uno (1:N). DNI Fecha_Nac Apellidos Nombre Sexo Apodo E-mail porque una obra será creada por un único artista y un artista creará una o varias Cod_ Técnica Descripcion obras. valor de la última subasta y valor (1. Artistas 8: Cardinalidad de la Interrelación Crear DNI Fecha_Nac Apellidos Nombre Sexo Apodo E-mail Interrelación Pertenecer Cod_Técnica Descripcion Esta interrelación relaciona a dos entidades que ya han sido analizadas: N:M ARTISTA (1.

Una técnica. Veremos la cardinalidad de la interrelación: . Como identificador principal elegiremos el atributo Nombre ya que identificará de forma única a Artistas 10: Cardinalidad de la Interrelación Pertenecer cada una de las sedes.1) Emplear OBRA en la interrelación Exponer. Los (1. TÉCNICA Artistas 12: Cardinalidad de la Interrelación Pertenecer 107 108 .Una obra.1) (1. (1.Una obra.n) OBRA Exponer Artistas 14: Cardinalidad de la Entidad Obra Cod_Técnica Valor_Subasta Valor_Tasador Nombre Dimensiones SEDE Descripcion N:1 OBRA (1. ¿cuántas técnicas emplea? En una obra se empleará una única Dirección OBRA SEDE Exponer técnica predominante.n) (1. ¿ cuántas obras se pueden exponer? Una o más de una.En una sede.n) ESTILO Pertenecer atributos de la entidad Sede serán Nombre y Dirección. Interrelación Emplear Esta interrelación también relaciona dos entidades que ya han sido Nombre Valor_Subasta Valor_Tasador Nombre Dimensiones analizadas: OBRA y TÉCNICA.Fase de Análisis de Requisitos : Modelo E/R Cod_Estilo Valor_Subasta Valor_Tasador Nombre Dimensiones Descripcion Interrelación Exponer N:1 OBRA Esta última interrelación relaciona a las entidades OBRA y SEDE. Artistas 11:Cardinalidad de la Entidad Obra en la interrelación Emplear Nombre Valor_Subasta Valor_Tasador Nombre Dimensiones . TÉCNICA . ¿en cuántas sedes ha estado expuesta? Una obra puede haber sido expuesta en varias sedes. Artistas 13: Interrelación Exponer Cod_Técnica Valor_Subasta Valor_Tasador Nombre Dimensiones Descripcion Veremos a continuación las cardinalidades mínimas y máximas de la entidad OBRA (1. ¿en cuántas obras se emplea? Se puede emplear en una o Dirección más obras.1) Emplear .

1) Además. por lo que es importante almacenar la fecha en la obra Descripcion N:M 1:N (1.n) (1.n) Exponer Nombre Dirección Fecha_Exposición N:M (1.n) Valor_Subasta Dimensiones Valor_Tasador Nombre relación Exponer: Fecha en la obra se expuso en la sede OBRA Valor_Subasta Valor_Tasador Nombre Dimensiones Nombre Dirección Fecha_Exposición N:M (1.n) (1.1) (1.n) ARTISTA (1.1) se expuso en la sede.Fase de Análisis de Requisitos : Modelo E/R Diagrama Entidad-Relación Nombre Valor_Subasta Valor_Tasador Nombre Dimensiones Dirección N:M OBRA (1.n) (1.n) OBRA (1.n) SEDE Exponer DNI Apellidos Fecha_Nac Nombre Sexo Apodo E-mail Cod_Estilo Descripcion N:M Artistas 15: Cardinalidad de la Interrelación Exponer (1. nos encontramos con un atributo “Fecha de exposición” que no depende ni de la entidad obra.n) (1. ni de la entidad Sede sino que depende de la (1.n) misma sede varias veces. nos indican que “Una obra puede haber sido expuesta en una Cod_Técnica (1.n) Trabajar ESTILO (1.n) Exponer SEDE N:1 Artistas 15: Cardinalidad de la Interrelación Exponer Emplear N:1 Pertenecer 109 110 SEDE .n) TÉCNICA Como vemos. Crear Trabajar (1.

Dibujar las interrelaciones y los tipos de entidad con los atributos correspondientes.Interrelaciones: representan asociaciones del mundo real entre una o más entidades .Identificar y enumerar las posibles interrelaciones .Dominios: Conjunto de valores sobre los que se definen los atributos Los pasos que se deben seguir para obtener el modelo Entidad/Relación son los siguientes: .Fase de Análisis de Requisitos : Modelo E/R El modelo E/R. 111 . como todos los modelos. Los elementos básicos del modelo Entidad/Relación son: . .Atributos: Características o cualidades propias de las entidades que queremos recoger dentro de nuestro diseño.Entidades: representan conjuntos de elementos con existencia propia y que se caracterizan por las mismas propiedades .Identificar y enumerar las posibles entidades . consiste en un conjunto de conceptos. reglas y notaciones que permiten formalizar la semántica del mundo real que se pretende modelar (también denominada Universo del Discurso) en una representación gráfica o diagrama que denominamos esquema de la Base de Datos.

A conocer la parte estática y dinámica del modelo relacional.Modelo Relacional . Cuáles son las reglas básicas de transformación del modelo E/R al modelo relacional.Caso Práctico “Constructora” . En qué consiste la integridad referencial.Caso Práctico “Historia” .Caso Práctico “Arte” 5.Modelo Relacional .Normalización – Caso Práctico “Mentor” x x Cuáles son los elementos básicos del modelo relacional. Introducción 2. Estática del Modelo Relacional 4.MÓDULO B OBJETIVOS En esta unidad aprenderás: Modelo Relacional x x x UNIDAD DIDÁCTICA 2 En esta unidad aprenderás: 1.Modelo Relacional . Conocer las formas normales y aplicar las reglas de normalización.Caso Práctico “Mentor” . Introducción a las formas normales 6. Reglas básicas para la transformación del modelo E/R al modelo relacional . Formas Normales . Elementos Básicos del Modelo Relacional 3.Modelo Relacional . .

. Este modelo perseguía la sencillez representan las columnas de la tabla. 2. la dirección. atributos toman los valores. lo más 7 Alcalá de Henares significativo del estándar. En las relaciones se pueden existentes hasta ese momento por el investigador Edgar Codd. Torrejón de Ardoz. Introducción Elementos básicos del Modelo Relacional Los elementos básicos del modelo relacional son las relaciones. 43). lenguaje estructurado de consulta que permite crear.. s/n. cuya El modelo relacional fue propuesto en 1970 como alternativa a los modelos representación gráfica se realiza en forma de tabla. 21) y (Universidad de Alcalá de Henares.. “Dirección”. 13. El atributo “Zona” pertenece a un dominio Zonas = (Madrid. El Escorial. Alcalá de Henares. En un principio el modelo era simplemente un modelo teórico objeto de Supongamos que queremos modelar una base de datos para mantener investigación por parte de diversos centros. Santa Isabel. No obstante y como casi todas las normas. comerciales (ORACLE. Madrid. 13 Madrid 43 Centro de Arte Reina Santa Isabel. Este lenguaje fue Arqueológico Serrano. Serrano. Además de comprensión y de manipulación de la base de datos por parte del usuario también podemos incluir los dominios que son aquellos conjuntos de donde los final. “Zona” y “Sala”. Tendríamos la relación que se muestra en la figura 2. “Nombre”. )...Modelo Relacional 1.). a través del modelo de datos relacional. Madrid. En la parte dinámica se definen las operaciones que se pueden realizar con estos objetos y sobre la base de datos. no está soportada por ningún producto comercial. revisiones periódicas que hacen que Sofía continuamente se editen anexos de la norma. MUSEO Para que un SGBD pueda implementar un modelo de datos necesita apoyarse en un lenguaje de programación que gestione dicho modelo. S/N Alcalá de Henares normalizado por la Organización Internacional de Estándares (ISO) en 19922 y sufre. Las tuplas o filas son (Arqueológico.. Plaza de San Diego. Figura 2. 52. etc) y el número de salas que contiene. pero a medida que la tecnología fue información a cerca de los museos de la Comunidad de Madrid y las exposiciones evolucionando fueron surgiendo los primeros SGBD que lo soportaban y hoy en que en ellos se pueden visitar. La parte estática del modelo relacional consiste en la definición de los objetos permitidos. El Nombre lenguaje aceptado por todos los sistemas de bases de datos comerciales es el Dirección Zona Salas SQL1. los atributos que contiene y que base la teoría matemática de las relaciones. como todos los estándares. es decir. 115 116 . Alcalá de 1 Structured Query Languaje 2 Se conoce como SQL’92 Henares. la zona (Madrid. 7 ). 52 Madrid 21 Plaza de San Diego. (Centro de Arte Reina Sofía.43. De cada día el modelo relacional es el más conocido y difundido por los sistemas museo se desea almacenar su nombre. INFORMIX. dependiendo de cada sistema. los atributos o columnas son capítulo anterior. y las tuplas o filas de la tabla. cada SGBD Universidad de incorpora su propio SQL que recoge.43: Ejemplo de representación de una relación En este capítulo nos vamos a centrar en definir los elementos básicos del modelo y explicaremos una metodología de diseño de bases de datos relacionales mediante la traducción de los objetos del modelo E/R explicado en El nombre de la relación de la figura es MUSEO. manipular y obtener datos de todos los objetos que constituyen la base de datos. tomando como distinguir varios tipos de elementos: su nombre.

una relación se define mediante un nombre y unos atributos de la dicho que las relaciones son tablas. pues los atributos pueden tomar valores en un definiendo formalmente todos los objetos y comentando las sentencias básicas conjunto acotado definido previamente. este tipo de prohibiciones NOMBRE_RELACIÓN ( Atributo1: dominio1. no siguiente manera: son las tablas que normalmente manejamos. su contenido.44: Definición de relación A continuación presentamos la estática y la dinámica del modelo relacional Los dominios son opcionales. en nuestro caso tres.. hemos decir.. ser infinitas las del lenguaje SQL para tratarlas. pues no tendría mucho sentido disponer de una base de datos que almacenara en todo momento la misma información. posibilidades de un valor determinado.. en el caso de nuestro ejemplo el grado sería cuatro. La cardinalidad se nombre. Estática del Modelo Relacional la cardinalidad. Especialidad: Especialidades) Contenido de la relación: ARTISTA Nombre Nacionalidad Especialidad Agustín Redondella Dolores Dahlahaus Mario Scifano Nacional Internacional Internacional Pintura Fotografía Fotografía Figura 2.Modelo Relacional Dentro de una relación podemos distinguir además dos nociones: el grado y 3. El cuerpo de una relación. Atributo2: dominio2..45 se muestra un ejemplo de las partes de las que se compone una relación.. como podrían ser las transacciones efectuadas por los clientes de una sucursal bancaria en el año 1996. o bien y en principio.. AtributoN: dominioN ) pertenecen a las restricciones inherentes al modelo y las comentaremos más adelante en la siguiente sección. ya que en este caso con disponer de ficheros aislados para almacenarla podríamos tener suficiente3. pero estas tablas tienen sus limitaciones. unos atributos (con sus correspondientes dominios) y un conjunto de refiere al número de tuplas (filas) de la relación. Figura 2. por ejemplo. tuplas. es decir. archivos que recopilan información que ya no va a variar. El grado es el número de atributos (columnas) que posee la Una relación. es Hasta ahora hemos hablado de los elementos básicos del modelo. por su propia naturaleza varía con el tiempo. Definición de relación: ARTISTA (Nombre. que esta información no variara con el tiempo. Es necesario distinguir entre lo que es la relación en sí y su contenido. 117 118 .45: Definición y contenido de una relación 3 Estos son los llamados ficheros históricos. En la figura 2. en estas tablas se prohibe que exista más de un valor en cada celda. es el conjunto de tuplas de la relación que. Nacionalidad: Nacionalidades. como se dijo en el apartado anterior se compone de un relación..

no lo ha sido por otros motivos. una ejemplo. hablando si. en cuyo caso deberíamos modelar la relación de otra Hemos justificado la razón de nuestra elección de clave primaria. No piense el relaciones que provienen de otras relaciones base. una clave alternativa es aquella que aun pudiendo haber sido escogida como clave primaria de . Las relaciones base son relaciones con existencia propia. las vistas son artistas con el mismo nombre. habiendo escogido la “Fecha de nacimiento”. 4 5 Nótese que hemos dado un nombre a la vista. 119 120 En SQL se define UNIQUE . La Esto es lo mismo que decir que en cada una de las celdas de una tabla justificación de nuestra elección radica en motivos de eficiencia. De esta forma cada tupla sería distinta de las demás. qué ocurriría si en nuestro mundo real existiesen dos vistas. mientras que el nombre y la fecha distinta sería que en nuestro mundo real un artista pudiera tener varias ocuparían más. Este identificador se denomina en el más adelante en el capítulo. etc. es que represente una relación no puede haber más de un valor. a la que podríamos llamar FOTÓGAFO4. ni de cómo diseñar realmente una base de datos en dicho lo que se denomina en el modelo relacional clave primaria y en SQL se modelo. Podríamos actuar de forma negligente y no almacenar uno de los dos.45. una relación. pues una vista es un tipo de relación y por tanto debe constar de los elementos de toda relación.Todas las tuplas de una relación deben ser distintas.Ningún atributo puede tomar más de un valor para cada tupla. Otra Las relaciones se crean mediante el lenguaje SQL con las sentencias posibilidad sería pensar en añadir un nuevo atributo que identificara a “CREATE TABLE” o “CREATE VIEW” dependiendo del tipo de relación de que se cada artista unívocamente dando valores distintos a cada tupla. nacionalidad y especialidad.1 Restricciones inherentes. como las restricciones de usuario. Es decir. por ejemplo podría darse sería la relación ARTISTA de la figura 2. Hasta este momento únicamente hemos hablado de los objetos del modelo relacional.No importa el orden ni de las tuplas ni de los atributos. Algún lector avispado podría discrepar de la opción escogida para identificar a los artistas de nuestra relación. pero no hemos hecho mención de cómo interactúan estos objetos en Este atributo que identifica unívocamente cada tupla de una relación es la base de datos. se suele poner en negrita el o los atributos implicados en dicha permiten recoger con la mayor fidelidad posible el mundo real objeto de nuestro clave. el atributo “Nombre” identificarían por completo todas las tuplas. como trate. no sería válido que en la relación ARTISTA el artista Mario clave primaria corta en el sentido de que va a ser numérica o Scifano tuviera como especialidades Fotografía y Escultura. como pueden ser motivos . pues para qué se elige introducir un atributo cuyo contenido es tan pobre semánticamente 3. que son aquellas que relación. especialidades. Para ello debemos previamente comentar las restricciones. Para representar la clave primaria de una inherentes al modelo. diseño. tanto las define como “PRIMARY KEY”. junto con . de eficiencia. una vista sería la relación obtenida el caso de un artista contemporáneo que coincidiera en nombre con otro de seleccionar en la relación anterior aquellos artistas cuya especialidad fuera la clásico (al no almacenarse la fecha de nacimiento no habría forma de fotografía. Un ejemplo de relación base lector que este supuesto es tan descabellado. por ejemplo creando otra donde se almacenaran todas las obstante posibles especialidades y relacionándola con la primera. modelo relacional clave alternativa5. como veremos “Nombre” y “Fecha de nacimiento” sería también un identificador válido para la relación. Otra cosa alfanumérica de pocos caracteres. no manera.Modelo Relacional Dentro de las relaciones existen principalmente dos tipos: relaciones base y Pues bien. éste. Así por mucho más eficiente a la hora de almacenar nuestra base de datos. puede ser un “Código de Artista”. distinguirlos). con lo cual la obra de este autor quedaría sin reflejarse.

Es claro que en muchos Podríamos introducir el atributo Cod_artista en la relación ESCUELA casos este dato no se conocerá. . aun con todas las aclaraciones hechas en el artista al que se le ha concedido cada premio. en primer lugar debemos crear una reflejaría a través de “NOT NULL”. cuatro atributos de una relación que de una relación de manera mínima. por su propia definición. esto haría que el atributo de la relación PREMIO. información no necesaria. será una sola clave. Por ejemplo.4. datos de dos o más tablas se deben relacionar para no atentar contra la identifiquen perfectamente a cada tupla. es decir. esto significaría que un artista puede haber pertenecido a escuelas diferentes (en obligar a que el atributo especialidad tomara siempre valores. relacionada la primera. y que coincide con la clave apartado de restricciones inherentes. Se representa mediante una flecha que sale de la “Nombre” fuera único para cada tupla. porque la clave puede estar formada por varios atributos pero siempre . Supongamos que se desean . “Artista” es clave ajena haber dos artistas con el mismo nombre. que es clave candidata6 de otra tabla con la cual está clave primaria puede tomar un valor nulo.Atributos que deben tener siempre valores para todas las tuplas de la almacenar las Escuelas a las que pertenece cada artista relación. Se puede observar que posee un atributo “Artista” que almacena el Supongamos que. por tanto tendríamos entradas en la como clave ajena que llamara a la relación ARTISTA. pero pensemos en tabla cuya celda correspondiente a la obra estaría vacía. pero el lenguaje SQL mediante su definición de clave primaria ya lo contempla. artistas por la Real Academia y. 2. De aquí se deduce que toda clave primaria es única también. esto es de la clave primaria. el usuario decide que no puede primaria de la relación ARTISTA (“Cod_artista”). Supongamos que en la relación ARTISTA queremos almacenar también la extensión de la obra de cada autor.Valores de uno o varios atributos que no pueden repetirse.Modelo Relacional Es importante aclarar que se ha hablado de clave primaria y clave La obligatoriedad de valores en un atributo es también una propiedad alternativa y en el ejemplo hemos mencionado a dos atributos. pero si con solo tres de ellos integridad de la base de datos.Integridad Referencial. y la relación que existe entre cada escuela y los artistas de nuestra base de datos. en principio podemos pensar en varias soluciones: frecuente. . La integridad referencial se controla mediante lo que se denomina clave ajena. Una clave ajena de una tabla es un atributo o un conjunto Esta regla hace referencia a que ningún atributo que forme parte de la de atributos. Esta relación PREMIO aparece un la figura .2 Restricciones de usuario. para evitar que haya también las podemos identificar. supongamos que no está sabiendo que a una misma escuela pueden pertenecer varios artistas y permitido que un artista no tenga especialidad definida. relación ESCUELA cuyos atributos serán “Cod_escuela” (que será la clave primaria de la relación) y “Nombre”. Para aclarar conceptos supongamos que se desean almacenar en la base de datos de nuestro ejemplo los premios que les han sido concedidos a los 3. y el SQL lo distintos periodos de tiempo). teniendo en cuenta que un premio es otorgado a un único artista. en SQL se define como “FOREIGN KEY”. y en el caso que nos ocupa. Existen situaciones en los que el control de la integridad referencial no es tan sencillo como en el caso anterior. Una clave primaria es aquella que identifica cada tupla podríamos Se podría decir que la integridad referencial trata la forma en la que los encontrarnos por ejemplo. 6 121 122 Una clave candidata es aquel atributo o conjunto de atributos que pueden ser clave de una relación. Para relacionar los artistas con las El hecho de encontrarnos con atributos que no tengan valores es muy escuelas. es decir. clave ajena y apunta hacia la clave primaria de la tabla con la que se relaciona.Regla de integridad de la entidad. la clave estará formada por esos tres.

para PREMIO (Código. puesto que el modelo relacional no ARTISTA admite más de un valor en cada celda. son claves ajenas de las relaciones ARTISTA y ESCUELA respectivamente. ARTISTA (Cod_artista. Nombre. Además estos Nombre Caminos de hierro Ballantines Caja Madrid Cod_artista 1200004 1200004 0010508 atributos formarán en conjunto la clave primaria y de esta forma * Representación de la clave ajena por intensión de las relaciones: tendremos a cada artista con las distintas escuelas a las que pertenece y cada escuela con todos sus artistas. 7 Este atributo puede tomar valores nulos pues los artistas de una determinada escuela pueden seguir perteneciendo a ella en la actualidad.46: Ejemplo de utilización de clave ajena “Cod_escuela” por separado. Nacionalidad. PREMIO Código ¿Qué hacer entonces? 005-4 234-3 123-5 El problema se resuelve introduciendo una nueva relación PERTENECE cuyos atributos sean “Cod_artista” y “Cod_escuela”. Esto significaría que cada artista Nombre Especialidad Nacionalidad Agustín Redondella Dolores Dahlahaus Mario Scifano Nacional Internacional Internacional Pintura Fotografía Fotografía solo puede pertenecer a una escuela. tanto “Cod_artista” como Figura 2. como se puede ver en la figura 2. Nombre. Por cada escuela solo tendríamos un * Representación de la clave ajena por extensión de las relaciones: artista que perteneciera a ella. 123 124 .Modelo Relacional las filas de la tabla resultante.5. Por último. Especialidad) Podemos incluir dos nuevos atributos “Fecha inicio” y “Fecha fin” 7. supuesto que va en contra de lo que se pide en el enunciado. lo que no es correcto. Cod_artista Podríamos pensar en el caso simétrico e introducir el atributo 0010508 0012454 1200004 Cod_escuela en la relación ARTISTA. Cod_artista) recoger el periodo de tiempo en que cada artista pertenece a una escuela determinada.

se pueden definir ciertas operaciones de borrado y modificación que permiten mantener la integridad de los datos de nuestras bases de datos. Cod_artista_maestro) * Representación de la clave ajena por intensión de las relaciones: ARTISTA (Cod_artista. Estas operaciones son las siguientes: Figura 2. pero qué que contiene la clave ajena no se permite mientras existan tuplas sucede en el caso de que una relación deba interrelacionarse con ella en la relación a la que se referencia. que en el 8 125 126 También conocida como RESTRICT . Especialidad. en el caso de que exista. Cod_artista. Fecha inicio. un maestro a su vez * Representación de la clave ajena por extensión de las relaciones: es un artista y por tanto tiene todas las cualidades (atributos) de ellos.47: Ejemplo de utilización de clave ajena . Nombre) las relaciones.Modelo Relacional caso de nuestros artistas. Supongamos por ejemplo. aunque en principio pueda parecer atípica. Hasta el momento hemos visto como se pueden interrelacionar dos El borrado (DR) o la modificación (UR) de las filas de la relación relaciones distintas mediante la definición de clave ajena. Nombre. como se muestra en la figura 2. Pintura Fotografía Fotografía Nacional Internacional Internacional * Representación de la clave ajena por extensión de las relaciones: PERTENECE Cod_escuela 123/7 142/8 241/1 123/7 241/6 Cod_artista Fecha inicio Fecha 1200004 1200004 0010508 0012454 0010508 12/10/1965 12/4/1986 1/5/1969 16/2/1975 25/7/1991 12/12/1979 --24/16/1987 ----- ARTISTA Cod_artista 0010508 0012454 1200004 Nombre Nacionalidad Agustín Redondella Nacional Dolores Dahlahaus Internacional Internacional Mario Scifano Especialidad Cod_artista_maestro Pintura Fotografía Fotografía 0125000 1200004 ------ ESCUELA Nombre Cod_escuela 123/7 142/8 241/1 241/6 Impresionismo fotográfico Surrealismo de luz y sombras Modernismo Inglés Cubismo * Representación de la clave ajena por intensión de las relaciones: ARTISTA (Cod_artista. ocurre muchas veces en el mundo real. Podríamos introducir un atributo “Cod_artista_maestro” en la relación ARTISTA ARTISTA de manera que fuera clave ajena de ARTISTA que referencia a Cod_artista 0010508 0012454 1200004 Especialidad Nacionalidad Nombre Agustín Redondella Dolores Dahlahaus Mario Scifano la misma relación ARTISTA.Operación restringida (“NO ACTION”8). se desea recoger la relación que existe entre un artista y su maestro. esta situación. Fecha fin) Como consecuencia de la introducción de la noción de clave ajena en ESCUELA Cod_escuela. Nacionalidad.48. Nombre. Figura 2.48: Ejemplo de utilización de clave ajena PERTENECE (Cod_escuela. Nacionalidad. Esta situación ocurre por misma.

ALUMNOS ( Dni ) como clave alternativa (UNIQUE) el E-mail ya que proviene de un identificador alternativo. utilizando este tipo de operación. se llamará ALUMNOS. De esta no debemos permitir borrar ningún artista de la relación ARTISTA forma nos aseguraremos que la Base de Datos que implementemos se al que se le haya concedido algún premio. En cambio. solo podremos eliminar corresponda con lo que en un principio queríamos recoger y almacenar. se eliminará la relación que existe Nombre Dirección e-mail Teléfono entre este y la escuela a la que pertenecía. cuando se elimina (DC) o modifica (UC) una tupla de la relación que es referenciada. DNI. “Cod_artista_maestro”. realizado en el modelo Entidad/Interrelación a un esquema lógico.I.51: borramos un artista se borran también todos los datos de su maestro. D. Esta ejemplo de que en nuestra base de datos de artistas se desee fase es muy importante ya que para pasar de un esquema a otro debemos mantener siempre el histórico de todos los premios. ALUMNOS ( Dni. pero no los datos ALUMNO propios de la escuela. En este apartado explicaremos las reglas básicas para transformar un . Nacionalidad Estos dos tipos de operaciones sobre la clave ajena son los más habituales y los que implementan la mayoría de los SGBD Figura 2.Operación en cascada (“CASCADE”). en general. en este caso preservar todas las características recogidas en la primera de fase. en caso contrario se rechaza la En la segunda fase del diseño tenemos que transformar el esquema operación. si Supongamos que queremos transformar la entidad alumno. esquema E/R en un esquema relacional.51: La entidad ALUMNO y sus atributos comerciales. el caso del apartado anterior. a los artistas que no tienen premios. por lo que no es la mejor opción. aparece al final del capítulo y que desde aquí animamos a que se por tanto. si utilizamos la operación “CASCADE” en la relación PERTENECE. Figura 2. cuando eliminemos un artista. En nuestro ejemplo. los cambios se La primera de las reglas de transformación nos dice que toda entidad se transmiten en cascada a las tuplas de la relación que contiene la transforma en una relación o tabla. y los atributos o características asociadas a clave ajena cuyos valores se han modificado. Existen otros dos tipos de operaciones (puesta a nulos “SET NULL” y valor por defecto “SET DEFAULT”) que por su complejidad y falta de uso en los SGBD no se van a definir aquí. E-mail ) 127 128 . ya que no También se podría dar este tipo de operación en el caso por existe ningún Sistema Gestor de Bases de Datos que soporte el modelo E/R. Así por ejemplo en ella pasan a ser atributos de la relación. (PRIMARY KEY) el identificador principal de la entidad. Solamente eliminamos un artista cuando Reglas básicas para la transformación del modelo E/R al modelo relacional no tenga ningún maestro. Esta relación tendrá como clave primaria consulte. En este tipo de operación.N.Modelo Relacional ejemplo en la relación ARTISTA con la clave ajena 4. Según la regla de transformación esta entidad pasa a ser una relación cuyo no obstante hay una amplia bibliografía sobre el tema. la cual nombre. De esta forma iremos cubriendo todas las fases del diseño de una base de datos. es el plural del nombre de la entidad.

Libro_Consulta*.Modelo Relacional como atributos que no admiten valores (NOT NULL) tenemos Nombre. Nombre ) CURSO (Nombre. Por el contrario. Nombre. Nombre) Como podemos observar la primera regla de transformación se centra en uno de los elementos básicos del modelo E/R.53: Transformación de una interrelación N:M Teléfono N:M ALUMNO Matricular CURSO En el esquema relacional de la Figura 2. Donde en la relación CURSO tenemos como clave primaria el Nombre. Y por último. tenemos un atributo que puede admitir valores nulos. Teléfono*) queremos borrar a los alumnos que tengan cursos asociados en MATRICULAR 129 130 . ALUMNOS ( DNI.52). claves guiarán para realizar la transformación del otro elemento importante de este ajenas que referencian a las relaciones ALUMNOS y CURSO respectivamente. de modelo: la interrelación. Nombre. Nombre Dirección e-mail WWW Figura 2. esta forma nos aseguramos que los valores de estos atributos estén almacenados previamente en las relaciones CURSO y ALUMNOS. tanto el DNI como el Nombre al pertenecer a la clave primaria de la relación MATRICULAR no pueden tomar valores nulos ni Figura 2.52: Interrelación con correspondencia N:M valores por defecto. Dirección. Esto significa La segunda regla de transformación nos indica que las interrelaciones que un alumno no puede realizar un curso o lo que es lo mismo. Teléfono*) MATRICULAR (DNI. E-mail. Nacionalidad.I. como ALUMNOS ( Dni.N. Nombre. el DNI del Alumno y el Nombre del curso donde ambos formarán la clave primaria: ALUMNOS ( Dni. Dirección. Nombre. El primer paso a realizar es convertir las entidades y sus atributos en las Para recoger esta característica deberíamos tomar la opción de borrado en relaciones correspondientes: cascada al igual que si quisiéramos que las modificaciones en la relación ALUMNO se propagaran a la relación MATRICULAR. E-mail. Nacionalidad. E-mail. Nacionalidad.53 nos faltaría representar las Nacionalidad opciones de borrado y modificación que en este caso sólo pueden ser o restringidas o en cascada ya que. Teléfono Como la interrelación Matricular tiene correspondencia N:M crearemos una que proviene de un atributo opcional en el esquema E/R. CURSO (Nombre. WWW) Dirección y Nacionalidad ya que en el esquema E/R son atributos obligatorios. Teléfono*) Veamos con el ejemplo de la relación que existe entre ALUMNO y CURSO cómo se transforma la interrelación N:M (Figura 2. Si borramos un alumno ¿borraríamos todos los cursos que ha realizado?. las reglas que nos faltan nos Cada uno de los atributos de la relación MATRICULAR serán además. WWW) Libro de Nombre consulta D. Nacionalidad) alternativa WWW y como atributo que admite valores nulos Libro_Consulta. que exista una cuyo tipo de correspondencia es N:M se transforman en una nueva relación cuyo tupla en la relación MATRICULAR. Dirección. E-mail. Libro_Consulta*. primaria se compone de los atributos identificadores de las dos entidades que relaciona. sin que el alumno o el curso se hallan nombre se corresponde con el nombre de la interrelación y donde la clave registrado como tal. si no ALUMNOS ( DNI. MATRICULAR ( DNI. nueva relación compuesta de dos atributos. Dirección.

55: Interrelación Trabajar con correspondencia 1:N Transformamos las entidades en relaciones: EMPLEADOS (Código. Teléfono) DEPARTAMENTO (Nombre.54: Transformación de una interrelación N:M con las opciones de borrado y modificación esta departamento manera y que recogemos un que un departamento empleado puede tener trabaja en asociados un solo distintos empleados.56: Transformación de la Interrelación Trabajar BC:MC CURSO (Nombre. Nombre. Dirección. NSS. Teléfono) Y para representar el tipo de interrelación 1:N añadimos un nuevo atributo en la relación EMPLEADO. Dirección. DNI. Teléfono. representamos la semántica de una interrelación del tipo 1:N aunque perdemos el nombre de la interrelación. EMPLEADOS (Código. Nombre_D) ALUMNOS ( DNI. Teléfono) BC:MC MATRICULAR ( DNI. Nacionalidad. Código DNI Nombre Dirección Nombre LocalizaciónTeléfono N:1 NSS EMPLEADO Trabajar DEPARTAMENTO Teléfono Figura 2. NSS. Nombre. Nombre ) Figura 2. La tercera y última regla nos indica que la transformación de interrelaciones cuyo tipo de correspondencia es 1:N se traduce en una propagación de clave o en una nueva relación si la interrelación posee atributos. que será clave ajena que referencia a la relación DEPARTAMENTO. Teléfono*) DEPARTAMENTO (Nombre . Libro_Consulta*. DNI. E-mail. WWW) De Figura 2. Nombre_D. o lo que es lo mismo. Localización. Dirección.Modelo Relacional escogeríamos la opción de borrado restringida. 131 132 . Tomamos la primera alternativa explicada y razonamos de la misma forma para la clave ajena Nombre. Localización. Nombre. Veamos en que consiste el fenómeno de propagación de clave mediante el siguiente ejemplo.

no_española) Matricular N:M Una vez transformadas las entidades. Nacionalidad. y interrelación PERTENECER y las entidades ALUMNO y AULA que asocia. e-mail. quedando de esta manera. Dirección Dirección (1. NO) 1:N (1. si el atributo admite nulos o no. es decir. por lo que aplicando la tercera regla de transformación nacionalidad propagamos la clave de la relación AULAS a la relación ALUMNOS. aula) (1. n) (1. Dirección) ADMINISTRADOR e-mail DNI nombre Figura 2.n) (1. Dirección y Nacionalidad datos para el proyecto MENTOR. las opciones de borrado y modificación de esta. por lo que necesario que tengan el mismo nombre. Dirección. Descripción. n) F_Finalización nacionalidad = (española. Teléfono*.Modelo Relacional Objetos en el modelo E/R Transformación al modelo Entidad: ALUMNO relacional .1) Pertenecer AULA ALUMNO asocia. dirección código_aula DNI descripcion e-mail nombre dirección ALUMNOS (DNI. Dirección y Nacionalidad Atributos NOT NULL: Nombre.n) AULAS(Código_Aula.Relación: ALUMNOS teléfono Para afianzar los conocimientos sobre la aplicación de las reglas de ALUMNO transformación vamos a retomar retomamos el ejemplo que diseñamos el caso nacionalidad e-mail DNI nombre dirección práctico expuesto en la sección 1 de esta segunda parte. n) Asociar (0.1) 1:N Mantener (1. ya que es clave ajena. Pertenecer tienen un tipo de correspondencia 1:N y además no contiene teléfono ningún atributo. Nombre. Aula.57: Esquema E/R completo Observar que el nuevo atributo de la relación ALUMNOS. Atributos NOT NULL: Descripción. veamos que tipo de interrelación las coordinador = (SI. El esquema E/R correspondiente al diseño de la base de datos se muestra a continuación: Objetos en el modelo E/R Nombre DNI completo e-mail Entidad:AULAS nombre WWW libro AULA N:M TUTOR (1. Empezaremos por la pensar en las propiedades del mismo.Relación: AULAS nombre dirección Identificadorprincipal: Código_Aula Clave primaria: Código_Aula Atributos Obligatorios: Descripción. n) código_aula CURSO F_Comienzo Coordinador Transformación al modelo relacional . 133 134 . no se llama igual que la clave primaria de la relación a la que referencia ya que no es La transformación la haremos interrelación a interrelación.Al añadir un nuevo atributo debemos primero transformaremos las entidades asociadas a estas. acerca de una base de Clave primaria: DNI Identificador principal: DNI Atributos Obligatorios: Nombre.

ADMINISTRADOR Identificador Principal: DNI Clave Primaria: DNI Identificador Alternativo: e-mail Clave Alternativa: e-mail Atributos Obligatorios: Nombre y Atributos NOT NULL: Nombre y e-mail e-mail DNI Nombre Dirección Teléfono Nacionalidad e-mail Aula Pez. e-mail.25 4801325 Española as@mec. ADMINISTRADORES ( DNI. Nombre.Modelo Relacional Si obligamos a que el atributo Aula tenga un valor (NOT NULL). estaremos Si quisiéramos borrar la fila o tupla correspondiente al Código_Aula = ‘01’. Nombre. e-mail nombre dirección Objetos en el modelo E/R Entidad:ADMINISTRADORES Transformación al modelo relacional Relación: ADMINISTRADORES Ahora vamos a estudiar las opciones de borrado y modificación asociadas a la clave ajena. Si no adoptar la primera propuesta. asignados a esta aula? contrario. Juan López y Olga Calle. restringuido.es 01 56321411 Andrea Solís Bronce.15 4674039 Española Jl@mec. Aula. Coslada Irún 49. tendremos que elegir la opción de borrado esquema conceptual.n) DNI código_aula descripcdirección ALUMNO interrelación MANTENER asocia la entidad AULA con la entidad teléfono ADMINISTRADOR. Aula ) ( AREAS (Código_Aula. para no perder información recogida en el queremos perder esta información.18 7771482 Española 85669900 José Pérez La Cruz.es DNI nombre e-mail 01 02 Como la interrelación MANTENER es del tipo 1:N tendremos que aumentar con un nuevo atributo la relación ADMINISTRADORES. Un alumno pertenece a un y solo un aula La 1:N (1. En la tabla se muestra la transformación de la entidad Curso. de España 3. 135 136 . Transformaremos esta última a una nueva relación para nacionalidad comentar la transformación de la interrelación.es JP@mec. debemos dos filas en la relación ALUMNOS correspondientes a estos alumnos.es 03 36952144 Olga Calle Principe. Según se muestra en la siguiente figura. admitiríamos que existan alumnos en nuestra Base de Datos que no Si eligiéramos el borrado en cascada se eliminarían de forma automática las pertenezcan a ningún aula.1) Pertenecer AULA (1. acerca del código del aula a la que esta asignado un determinado administrador. que nos dará información Código_Aula Descripción Dirección 01 02 03 Los Carrascales El Hayedo La Nogalera Avd. La opción de modificación será en cascada.1 4671482 No_española 07545658 Juan López oc@mec. En caso ¿qué haríamos con los alumnos. Cercedilla Gran Vía 10. Dirección) La interrelación MATRICULAR es del tipo N:M y asocia las entidades CURSO y ALUMNO. recogiendo que un alumno siempre ha de tener un aula asignada.

html Libro Alumno.html Access 2000 www. ¿Esta clave primaria identifica cada una de En este caso la clave primaria de MATRICULAR identificaría cada una de las las tuplas pertenecientes a la relación MATRICULAR? tuplas.es 01 Atributos Obligatorios: WWW Atributos NOT NULL: WWW 85669900 José Pérez La Cruz. Alumno Curso F_Comienzo F_Finalización 07545658 Access 97 23-05-2000 19-12-2000 07545658 Access 2000 23-05-2000 30-01-2001 ALUMNOS (DNI. Teléfono*. y finalizó el 19-12- Discutamos ahora las opciones de borrado y modificación de las claves 2000 y el 30-1-2001. Nombre. 137 138 .15 4674039 Española Jl@mec.18 7771482 Española oc@mec.es 02 Atributos Opcionales: Libro Atributos NULL: libro CURSO nombre WWW libro Aplicando directamente la regla de transformación para interrelaciones N:M. que contiene valores de DNIs correspondientes a tuplas que aparecen en la relación ALUMNOS y Curso que almacena valores de los nombres de los cursos que se imparten en el Mentor.es/accss2000. F_Comienzo y F_Finalización.es/access97.Relación: CURSOS DNI Nombre Dirección Teléfono Nacionalidad e-mail Aula 07545658 Juan López Pez. el 23-05-2000.Modelo Relacional ALUMNO Objetos en el modelo E/R Transformación al modelo relacional .es 03 Identificador Alternativo: WWW Clave alternativa: WWW 36952144 Olga Calle Principe.25 4801325 Española as@mec. Curso WWW Access 97 www. Dirección. Nacionalidad. respectivamente.mentor. e-mail.1 4671482 No_española JP@mec. F_Comienzo. Supongamos que el alumno Juan López cuyo DNI es 07545658 se matriculó en dos cursos: “Access 97“ y “Access 2000“. ajenas de esta relación. WWW. MATRICULAR crearíamos una nueva relación donde incluiríamos los atributos asociados a la interrelación MATRICULAR. F_Finalización) CURSO CURSOS ( Nombre.mentor. además de esta forma controlaríamos que el mismo alumno no este matriculado en el mismo curso dos veces. aula) MATRICULAR ( Alumno.es 01 Entidad: CURSO Identificador Principal: Nombre Clave primaria: nombre 56321411 Andrea Solís Bronce. Libro*) La clave primaria de la relación MATRICULAR se compone de dos atributos. Curso.

Nombre Dirección e-mail Nombre completo e-mail Transformación al modelo Entidad: TUTOR relacional .n) Matricular Identificador Principal: DNII Clave primaria: DNI Identificador Alternativo: e-mail Clave alternativa: e-mail Atributos Obligatorios: Nombre Atributos NOT NULL: Nombre completo completo F_Finalización M:N ALUMNO Objetos en el modelo E/R (1. F_Comienzo.N. ya que si el alumno se da de baja es mejor BR:MC que no aparezca como matriculado en ningún curso del Mentor.Modelo Relacional Si borramos una fila de la relación alumno y este está matriculado en algún ALUMNOS (DNI.I. CURSOS ( Nombre. Libro. 139 140 . La mejor opción de borrado en ese caso sería la restringida. aula) curso. e-mail. Curso.Relación:TUTORES TUTOR Libro Nombre F_Comienzo Teléfono WWW (1. WWW. Libro*) ¿Qué pasaría si diéramos de baja un curso? Si borráramos una fila de la tabla CURSO y en la relación MATRICULAR aparecen tuplas con el código de este La última interrelación que nos falta por transformar es ASOCIAR. e-mail) primero avisaríamos a los alumnos matriculados en el curso que se pretende anular para indicarles si quieren matricularse en otro de los cursos del mentor y de esta forma asignarles al nuevo curso que elijan. Es_Coordinador) eliminación. CURSOS (Nombre. DNI D. Teléfono*. de esta forma TUTORES (DNI. aparezcan matriculados en ningún curso. que a su vez serán claves ajenas que referenciarán a las relaciones TUTORES y CURSOS. Curso. la opción de borrar en Cascada haría desaparecer estas filas lo que primeramente transformaremos la entidad TUTOR. Dirección. Para las opciones de modificación en ambas claves ajenas serán en cascada. F_Finalización) Pues parece normal que asi sea. respectivamente.n) CURSO Nacionalidad Un curso tiene al menos un alumno matriculado La interrelación ASOCIAR es del tipo N:M por lo que tendremos que crear una nueva relación. para luego proceder a la ASOCIAR (Tutor. Nombre. WWW) La clave primaria estará formada por dos atributos. Tutor y Curso. Nacionalidad. Eso haría que la base de datos no cumpliera los requisitos especificados en el modelo Conceptual. ¿Borraríamos las tuplas en las que aparece su DNI en la relación BC:MC MATRICULAR? MATRICULAR ( Alumno. pero curso. Nombre_completo. la cual participa en dicha conllevaría que los alumnos que estaban matriculados en este curso no interrelación.

Es_coordinador) BR/MC TUTORES ( DNI .n) TUTOR (0. e-mail.Modelo Relacional Si borramos un curso de la tabla CURSOS borraremos todas aquellas filas en TUTORES (DNI. Teléfono*. 141 142 e-mail) . Descripción. e-mail. Nombre_completo._completo. Nombre. Curso .n) Asociar CURSO Un curso tiene al menos un tutor La opciones de modificación en ambos casos sería en cascada. Nombre. Libro. la opción de borrado para la clave ajena tutor será restringida. Dirección. Dirección) BR/MC Un tutor puede estar asignado a 0 o n cursos ALUMNOS ( DNI . Curso . esto produciría una inconsistencia con BC/MC los requisitos especificados.n) El esquema relacional definitivo sería el siguiente: (0. F_Finalización) Sin embargo. Es_Coordinador) BC/MC DNI CURSOS (Nombre. ASOCIAR (Tutor. BR:MC de esta forma nos aseguramos que al dar de baja a un tutor en la relación CURSOS ( Nombre . ASOCIAR ( Tutor. Nacionalidad. aula) BC:MC MATRICULAR ( Alumno . DNI Nombre completo Nombre e-mail Libro WWW N:M (1. Aula) BR/MC AULAS ( Código_Aula . Libro*) TUTORES dejemos a algún curso sin tutor.n) CURSO Asociar TUTOR ADMINISTRADORES ( DNI . WWW . Nombre. Curso. F_Comienzo. e-mail) la tabla ASOCIAR que se relacionen con él y no nos importará que existan BR/MC tutores que no se relacionen con cursos porque cumplimos las especificaciones del modelo conceptual por lo tanto el borrado es en cascada. WWW) Nombre completo e-mail Nombre Libro WWW N:M (1.

n) (0.n) Denominación Num_Hab (1. Fecha_Nac Año_inicio Denominación Num_Años (1. Fecha_Nac estudiantes universitarios de Historia.n) Apodo Nombre Apellido .n) CRUZADA Nombre Fecha_Nac Completo Corona (1. Fecha_Nac (1. Atributos NOT NULL: Apellido. Recordaremos su representación en el modelo entidad-relación: Veamos a continuación la transformación al modelo relacional a partir del diagrama entidad-relación que obtuvimos para crear la base de datos de los Apodo Nombre Apellido . Apellido.n) PROVINCIA Gobernar (1. Año_inicio Denominación Num_Hab Num_Años M:N CABALLERO Apodo Nombre .n) (0.n) Relación: PROVINCIAS PROVINCIA Ascender Identificador principal: N:M Clave primaria: Denominación Denominación Atributos NOT NULL: Atributos Obligatorios: Num_Habitantes 143 144 Num_Habitantes .n) Gobernar PROVINCIA Num_Hab M:N CABALLERO (1. La primera que analizaremos será la interrelación GOBERNAR. Fecha_Nac Nombre. Fecha_Nac F_Retirada F_Incorpor Resultado Participar Fecha_Inicio Objetos en el modelo E/R Transformación al modelo relacional . con sus entidades CABALLERO y PROVINCIA.Modelo Relacional Analizaremos interrelación a interrelación.Relación: Entidad: CABALLERO M:N CABALLEROS CABALLERO Reinar Fecha_Fin Identificador principal: Apodo Clave primaria: Apodo Atributos Obligatorios: Nombre.n) M:N Nombre (1.n) Objetos en el modelo E/R REY Transformación al modelo relacional Entidad: PROVINCIA (1.

Denominación) Nombre Apodo completo Fecha_Nac CABALLERO Según el diagrama entidad-relación existen dos atributos que pertenecen a (1. Apellido.n) Participar Fecha_Inicio Fecha_Fin CRUZADA la interrelación Gobernar: Año de Inicio. Apellido. El borrado debe ser restringido y la modificación en cascada. Año_Inicio. Nombre. Año_Inicio. 145 146 . Num_Habitantes) Interrelación N:M con atributos de la interrelación y opciones de borrado y actualización Una vez transformadas las entidades. Nom bre. Fecha_Fin Fecha_Inicio. Num_Años) CRUZADA PROVINCIAS ( Denominación. Num_Habitantes) PROVINCIAS ( Denominación. provincias que gobernaron. no debemos permitir el borrado en cascada en la relación GOBERNAR. por lo que debemos representarlos dentro de la relación GOBERNAR (Apodo. Denominación. Año_Inicio. Fecha_Nac) relaciones: BR:MC GOBERNAR ( Apodo. Recordaremos su representación en el se compone de los dos atributos que son clave primaria en las entidades: modelo entidad-relación: GOBERNAR (Apodo. crearíamos una nueva relación GOBERNAR donde la clave primaria entidades CABALLERO y CRUZADA.Modelo Relacional Lo primero que haremos será transformar las entidades y sus atributos en CABALLEROS ( Apodo. La interrelación PARTICIPAR es del tipo N:M por lo que crearemos una nueva relación donde la clave primaria será la unión de las claves primarias de las Como se desea guardar la relación existente entre los caballeros y las relaciones CABALLERO y CRUZADA. Apellido.Num_Años). Nombre. Fecha_Nac) BR:MC PROVINCIAS ( Denominación. Denominación. Fecha_Fin Discutiremos a continuación las opciones de borrado y modificación de las claves ajenas de esta relación. por lo que aplicando la regla de transformación para esta Veamos a continuación la interrelación PARTICIPAR en la que intervienen las interrelación. Número de Años.n) Nombre F_Retirada F_Incorpor Resultado N:M (1. Fecha_Nac) Nombre Fecha_Inicio Fecha_Fin Entidad: CRUZADA Relación: CRUZADAS GOBERNAR ( Apodo. Denominación. Num_Años) CABALLEROS ( Apodo. vemos que las cardinalidades entre ambas en N:M. Lo primero que haremos será transformar la entidad CRUZADA: Objetos en el modelo E/R Transformación al modelo relacional CABALLEROS ( Apodo. Num_Habitantes) Identificador principal: Nombre Clave primaria: Nombre Atributos Obligatorios: Atributos NOT NULL: Fecha_Inicio.

Fecha_Inicio. Fecha_Retirada. Apellido. Corona Fecha_Nac. Fecha_Fin) De esta forma. Apellido. Fecha_Inicio.n) (1. su fecha de retirada y el resultado en su cruzada. la nos vimos anteriormente. REY 147 148 Identificador principal: Nombre Clave primaria: Nombre Atributos Obligatorios: Atributos NOT NULL: Fecha_Nac. Lo primero que A la relación PARTICIPAR debemos añadir los atributos propios de la haremos será recordar su representación en el modelo entidad-relación. Apellido. con la fecha en la que se incorporó cada centraremos uno. Fecha_Incorporación. mientras que la actualización sobre la relación PARTICIPAR será en Nombre cascada.Modelo Relacional CABALLEROS ( Apodo. Fecha_Retirada. Nombre. Nombre. Fecha_Incorporación. el borrado en la relación PARTICIPAR debe ser Objetos en el modelo E/R restringido. Fecha_Fin) Transformación de una interrelación N:M con atributos de la interrelación y opciones de borrado y actualización A continuación analizaremos la interrelación REINAR. Fecha_Nac) BR:MC PARTICIPAR ( Nombre_Cruzada. la entidad En este PROVINCIA caso. Corona . Fecha_Nac) Nombre Denominación Num_Habitantes BR:MC Fecha_Nac Corona M:N PARTICIPAR ( Nombre_Cruzada. podremos almacenar la información de los caballeros que Transformaremos participaron en las distintas cruzadas. Apodo.n) REY Reinar BR:MC CRUZADAS (Nombre_Cruzada. Como no debemos perder la información de las cruzadas en las que participaron los caballeros. Fecha_Inicio. se propague dicha actualización sobre la relación PARTICIPAR. Analizaremos por último para esta interrelación las opciones de borrado y modificación. Resultado ) BR:MC CRUZADAS (Nombre_Cruzada. las las entidad entidades REY ya que que intervienen. de tal forma que si se actualiza la información de las tablas Fecha_Nac Corona Transformación al modelo relacional Entidad: REY Relación: REYES CABALLEROS o CRUZADAS. Fecha_Fin) CRUZADAS (Nombre_Cruzada. Resultado ) PROVINCIA (1. interrelación: CABALLEROS ( Apodo. Nom bre. Fecha_Nac) CABALLEROS ( Apodo. Apodo ) PARTICIPAR ( Nombre_Cruzada. Apodo.

se propaque la actualización sobre la relación REY ( Nombre_Rey.n) REINAR ( Nombre_Rey. de tal forma que si actualizamos alguna tupla de las relaciones PROVINCIAS o REY. Recodemos que este tipo de cardinalidades No debemos permitir el borrado en cascada en la relación REINAR. Denominación_Provincia ) Ascender N:M REY ( Nombre_Rey. La relación REY ya la analizamos en el punto anterior por lo que recordaremos su representación en el modelo entidad-relación: 149 150 . Num_Habitantes ) (1. Denominación_Provincia ) BR:MC REY ( Nombre_Rey. sí debe realizarse en cascada. Nombre_Rey_Asc) BR:MC REINAR ( Nombre_Rey. Fecha_Nac. Fecha_Nac.Modelo Relacional Nombre Fecha_Nac Completo Vemos que la interrelación Reinar tiene una cardinalidad M:N. Num_Habitantes ) transformando la interrelación Ascender en un nueva relación donde la clave primaria es la unión ASCENDER ( Nombre_Rey. analizaremos la interrelación ASCENDER. provincias. Corona ) Transformación de una interrelación M:N con opciones de borrado y modificación Por último y para terminar con el modelo relacional. Fecha_Nac.n) PROVINCIAS ( Denominación . Corona ) REINAR. Por lo tanto. La actualización. el borrado será restringido. ya que se resuelven en el modelo relacional interesa conservar la información de los reyes que reinaron en las diferentes de las claves primarias de las relaciones a las que asocia. por lo que la Corona representación en el modelo relacional será la siguiente: REY (1. PROVINCIAS ( Denominación . Corona ) Transformación de una interrelación M:N Vemos que la cardinalidad en este caso es N:M.

1) PARTICIPAR (Nombre_Cruzada. aplicaremos la correspondiente regla transformación.Modelo Relacional MODELO RELACIONAL FINAL Para obtener el modelo relacional del proyecto de la Constructora. Num_Años) (1. Corona) N:M BR:MC (1. Fecha_Inicio.n) BR:MC REINAR( Nombre_Rey.n) CLIENTE POTENCIAL Teléfono de .1 BR:MC Cod_Postal Dirección. Fecha_Retirada. Cod_Postal Direccion Población Teléfono BR:MC 1:N (1. Fecha_Nac) N:1 Depender BR:MC (1.n) COMERCIAL CLIENTE DNI ASCENDER (Nombre_Rey. Apodo. Num_Habitantes) Cod_Suc. Resultado) SUCURSAL BR:MC (1. Fecha_Fin) Importe_Max Fecha_Fin Fecha_Ini Trabajar Alquilar 1:N REY (Nombre_Rey. Denominación_Provincia) DNI.1) (1. Fecha_incorporación. Nombre. Año_Inicio.1) BR:MC DNI 1:N Atender 151 152 Apellidos Nombre Teléfono (1.n) GOBERNAR (Apodo. partiremos del diagrama entidad-relación. CABALLEROS ( Apodo. Nombre_Rey_Ascendente) Fecha_Contrato Nombre Apellidos (1. Denominación. analizaremos cada interrelación y en función de las cardinalidades. Fecha_Nac. Importe_Alquiler PROVINCIAS ( Denominación. Num_Baños Cod_Inmueble.n) CRUZADAS (Nombre_Cruzada. Nombre Apellido (1.n) INMUEBLE Gestionar (1. Num_Habitaciones. Apellido.

Cod_Postal. Atributos NOT NULL: Nombre. Atributos NOT NULL: Dirección. Apellidos. Teléfono) representación en el modelo entidad-relación: COMERCIAL ( DNI. transformaremos las entidades y sus atributos en relaciones: su SUCURSAL ( Cod_Suc. por lo que el borrado será restringido. en la que intervienen las entidades SUCURSAL y COMERCIAL. Población. Recordemos su representación en el diagrama entidad-relación: 153 154 y . que relaciona a las entidades INMUEBLE COMERCIAL. Cod_Postal. Cod_Postal. Apellidos.1) (1.Relación: Entidad: COMERCIAL COMERCIALES Identificador principal: DNI Clave primaria: DNI Atributos Obligatorios: Nombre. Teléfono Cod_Postal. Dirección. 1:N COMERCIAL SUCUSAL (Cod_Suc._Teléfono) Objetos en el modelo E/R Nombre Apellidos Fecha_Contrato DNI COMERCIAL MC:BR Transformación al modelo COMERCIAL ( DNI. Fecha_Contrato) Una vez transformadas las entidades. Cod_Suc) relacional .n) Trabajar que nos dará información sobre la sucursal en la que están trabajando los comerciales. Cod_Postal Direccion Población Teléfono Nombre Apellidos Fecha_Contrato atributo en la relación COMERCIAL DNI SUCURSAL (1. Fecha_Contrato. Dirección. Población. Apellidos. vemos que la interrelación es del tipo 1:N por lo que aplicando la regla de transformación. sin embargo la modificación de una sucursal debe propagarse a los comerciales que trabajan en ella. Teléfono caso. Dirección. Apellidos. no debemos permitir eliminar los comerciales de una sucursal cuando ésta se elimine de la base de datos. SUCUSAL (Cod_Suc. Fecha_Contrato Apellidos. Cod_Postal. Población. añadiremos un nuevo Cod_Suc. Fecha_Contrato. Recordaremos A continuación. por lo que la actualización debe realizarse en cascada._Teléfono) COMERCIAL ( DNI. En este SUCURSAL Identificador principal: Cod_Suc Clave primaria: Cod_Suc Atributos Obligatorios: Dirección. Población. Población. Fecha_Contrato Transformación de una interrelación 1:N con opciones de Modificación y Borrado La segunda interrelación que transformaremos al modelo relacional será la denominada GESTIONAR.Modelo Relacional En primer lugar analizaremos será la interrelación TRABAJAR. Cod_Suc) Objetos en el modelo E/R Cod_Suc. Cod_Postal Direccion Población Teléfono Transformación al modelo Transformación de una interrelación 1:N relacional Entidad: SUCURSAL Relación: SUCURSALES Estudiaremos las opciones de borrado y modificación de las tuplas.

Dirección. Cod_Postal. Num Habitaciones.Modelo Relacional Veremos ahora las acciones en caso de modificación y borrado. Dirección. Importe_ Alquiler Cod_Suc. Añadiremos un nuevo atributo La tabla que se muestra a continuación presenta la transformación de las en la relación INMUEBLE que nos dará información sobre la sucursal en la que se entidades en relaciones: está gestionando su alquiler. Cod_Postal. por lo que aplicaremos la misma regla de transformación para pasar al modelo relacional. Num_Baños. Num_Baños Cod Inmueble. No se debe eliminar los inmuebles de una determinada sucursal. Cod_Postal Direccion Población T eléfono baja en la base de datos. Cod_Postal. Num_Habitaciones. Importe_Alquiler Importe_Alquiler DNI. Fecha_InicFecha_Fin Importe_ Alquiler Importe_Max N:M (1. Ahora bien. Dirección. Nombre Apellidos SUCUSAL (Cod_Suc._Teléfono) Teléfo Transformación al modelo relacional . Dirección. la interrelación Gestionar presenta una cardinalidad 1:N. Num_Baños. Num Habitaciones. si una Sucursal cambiara de código. INMUEBLE Gestionar SUCUSAL (Cod_Suc. la actualización se propagaría en cascada a 1 :N (1. si dicha sucursal se da de Cod_Postal Dirección. Importe_Alquiler. Importe_Alquiler. Objetos en el modelo E/R DNI. Población. Cod_Suc) CLIENTE (real) Transformación de una interrelación 1:N 155 156 Identificador principal: DNI Clave primaria: DNI Atributos Obligatorios: Nombre.Relación: Entidad: INMUEBLE Identificador principal: Transformación de una interrelación 1:N con opciones de modificación y borrado INMUEBLES Clave primaria: Cod_Inmueble Pasaremos a transformar la interrelación Alquilar que relaciona las entidades Cod_Inmueble CLIENTE e INMUEBLE. Nombre Apellidos T eléfono Cod_Postal Dirección. Num_Habitaciones. Num_Baños. Num_Habitaciones.n) (1. Cod_Postal. Población. Cod_Postal. Num_Baños. Atributos NOT NULL Nombre. Dirección.Relación: CLIENTES Entidad: CLIENTE INMUEBLE ( Cod_Inmueble. Su representación en el diagrama e-r es la siguiente: Atributos NOT NULL: : Atributos Obligatorios: Dirección._Teléfono) Objetos en el modelo E/R Nombre Apellidos Fecha_Contrato DNI COMERCIAL BR:MC INMUEBLE ( Cod_Inmueble. Apellidos y Teléfono Apellidos y Teléfono . Cod_Suc) Transformación al modelo relacional . por lo que el borrado será restringido.n) CLIENTE (real) (1.n) Alquilar INMUEBLE Igual que en la interrelación anterior (Trabajar).1) SUCURSAL todos sus registros relacionados en la tabla Inmueble. Num_Habitaciones. Num_Baños Cod Inmueble. Cod_Postal.

Como en nuestra base de datos interesa almacenar la relación Apellidos Nombre Teléfono Precio_Max CLIENTE POTENCIAL existente entre los clientes y los inmuebles. Precio_Max Apellidos. ALQUILAR ( DNI.Modelo Relacional La interrelación ALQUILAR es del tipo N:M por lo que crearemos una nueva CLIENTE ( DNI. Num_Baños. no se debe permitir el borrado en cascada en la relación ALQUILAR. Num_Habitaciones. Fecha_Fin. Apellidos. dichas modificaciones se propaguen en sus tuplas correspondientes de la relación ALQUILAR. Teléfono. por lo que el borrado debe ser restringido. Objetos en el modelo E/R DNI. Cod_Inmueble. Importe_Alquiler) La siguiente interrelación que vamos a transformar al modelo relacional es la interrelación Atender que relaciona las entidades CLIENTE POTENCIAL y COMERCIAL. 157 158 Transformación al modelo relacional . Atributos NOT NULL Nombre. Num_Habitaciones. Dirección. Importe_Alquiler) CLIENTE ( DNI. Num_Baños. Cod_Postal. fecha de fin e importe máximo mensual del alquiler. Dirección. Fecha_Inicio. Cod_Inmueble ) borrado y actualización INMUEBLE ( Cod_Inmueble. la fecha de fin y el importe máximo que pagó cada cliente por el alquiler del inmueble.1) Atender COMERCIAL INMUEBLE ( Cod_Inmueble. Apellidos. Apellidos. Importe_Max ) BR:MC INMUEBLE ( Cod_Inmueble. Fecha_Inicio.n) DNI (1. Nombre. Precio_Max . Importe_Alquiler) Una vez añadidos estos atributos a la interrelación. Su representación en el diagrama e-r es la siguiente: Debemos añadir los atributos propios de la interrelación ALQUILAR: Fecha de inicio. Teléfono. Num_Baños. Cod_Inmueble. Nombre. Dirección. Analizaremos por último para esta interrelación las opciones de borrado y modificación. Nombre. La modificación se realizará en cascada. Apellidos. Teléfono) Apellidos Precio_Max Nombre Teléfono Nombre Apellidos Fecha_Contrato N:1 ALQUILAR ( DNI. podremos conocer la información de la fecha de inicio.Relación: CLIENTES Entidad: CLIENTE POTENCIAL POTENCIALES Identificador principal: DNI Clave primaria: DNI Atributos Obligatorios: Nombre. Cod_Postal. Teléfono) Transformación de una interrelación N:M con atributos de la interrelación y opciones de ALQUILAR ( DNI. de tal forma que si se modifica el cógido de un cliente o el código de un inmueble. DNI CLIENTE ( DNI. Num_Habitaciones. Fecha_Fin. Importe_Max ) CLIENTE POTENCIAL (1. Teléfono) relación donde la clave primaria será la unión de las claves primarias de las BR:MC relaciones CLIENTE e INMUEBLE. Cod_Postal.

Precio_Max DNI_Comercial) SUCURSAL COMERCIAL ( DNI. Cod_Postal. Dirección. Apellidos. Teléfono. Nombre. añadiremos N:1 un nuevo atributo en la relación CLIENTE POTENCIAL que nos dará información sobre el COMERCIAL que le atiende en la búsqueda de un alquiler. la actualización debe realizarse en cascada.Modelo Relacional Dirección Población Cod_Postal Teléfono Cod_Sucural CLIENTE POTENCIAL (DNI. por lo que el borrado será SUCURSAL (Cod_Suc. Transformación de una interrelación N:1 con opciones de borrado y actualización BR:MC CLIENTE POTENCIAL (DNI. Recordemos la representación en el diagrama entidad-relación. Población. Apellidos. Cod_Suc) 1:N 1:1 Igual que en las interrelaciones Gestionar y Trabajar vistas anteriormente. Aplicando la regla de transformación para cardinalidad 1:N. la Depender interrelación Atender presenta una cardinalidad 1:N. Fecha_Contrato. Cod_Suc) restringido. Teléfono. Apellidos. Precio_Max DNI_Comercial) COMERCIAL ( DNI. No se debe permitir eliminar un COMERCIAL de nuestra base de datos mientras existan Clientes Potenciales asociados al comercial. Cod_Suc) Por último analizaremos la interrelación Depender. Teléfono. añadiremos en la tabla Sucursal un nuevo atributo: Veremos ahora las acciones en caso de modificación y borrado. 159 160 . Nombre. Apellidos. donde la entidad Sucursal se relaciona consigo misma. En este caso. Fecha_Contrato. Sin embargo.

Población. Num_Baños. Teléfono. Dirección. Precio_Max. COMERCIAL (Dni.Modelo Relacional MODELO RELACIONAL FINAL SUCURSAL ( Cod_Suc. Dirección. Importe_Max) ESTILO (1. Cod_Suc) A partir del diagrama entidad-relación que obtuvimos en nuestro ejemplo de las Obras y Artistas. Importe_Alquiler. Teléfono.1) Crear Trabajar (1.1) BR:MC Cod_Técnica (1. Cod_Suc) BR:MC CLIENTE_POTENCIAL (DNI. crearemos el modelo relacional.n) Trabajar BR:MC ALQUILAR (DNI. Apellidos. Fecha_Inicio. Cod_Suc) (1.n) (1.n) CLIENTE (DNI.n) TÉCNICA (1. Cod_Postal. Para ello. Cod_Postal. Apellidos.n) Exponer (1.n) N:1 Emplear N:1 Pertenecer 161 162 SEDE . Fecha_Contrato.n) (1. DNI_Comercial) DNI Apellidos Fecha_Nac Nombre Sexo Apodo E-mail Cod_Estilo Descripcion N:M INMUEBLE (Cod_Inmueble. iremos BR:MC analizando cada una de las interrelaciones tal y como hemos hecho hasta ahora.n) Valor_Subasta Valor_Tasador Nombre Dimensiones OBRA Nombre Dirección Fecha_Exposición N:M (1. Apellidos. Nombre. Cod_Inmueble. Teléfono) Descripcion N:M 1:N (1. Nombre. Num_Habitaciones.n) ARTISTA (1.1) BR:MC (1. Fecha_Fin.

Atributos NOT NULL Nombre. Descripción) Entidad: ESTILOS ESTILO Identificador principal: Transformación de una interrelación N:M con opciones de borrado y actualización Clave Primaria: Cod_Estilo Cod_Estilo Atributos NOT NULL: Atributos Obligatorios: Cod_Estilo.Relación: ESTILOS ESTILO (Cod_Estilo. Nombre. Como se desea guardar la Entidad: ARTISTA relación existente entre los artistas y sus estilos. Apodo. Apellidos. se realizará en cascada.n) Trabajar ARTISTA ( DNI. Fecha_Nac. E. Cod_Estilo) Cod_Estilo Objetos en el modelo E/R Descripcion Transformación al modelo BR:MC relacional. Fecha_Nac. Descripción las entidades ARTISTA y TÉCNICA. 163 164 . Sexo. Fecha_Nac. en la que intervienen Cod_Estilo. Nombre. La interrelación TRABAJAR presenta una cardinalidad del tipo N:M por lo que crearemos una nueva relación donde la clave primaria será la unión de las claves DNI primarias de las relaciones ARTISTA y ESTILO.Modelo Relacional Analizaremos en primer lugar la interrelación Trabajar en la que intervienen las entidades ARTISTA y ESTILO. Apellidos. ARTISTA ( DNI.Mail Apodo. Apodo. E-mail) ESTILO TRABAJAR ( DNI. sin embargo. por lo que el borrado debe realizarse de forma restringida. Apellidos.Relación: ARTISTAS vez obtenido este modelo relacional. Cod_Estilo) ESTILO (Cod_Estilo. Cod_Estilo Fecha_Nac Apellidos Nombre Sexo Apodo E-mail Descripcion N:M ARTISTA (1. Apodo.Mail en cascada sobre la relación TRABAJAR. Descripción Veremos a continuación la interrelación Trabajar (2). Fecha_Nac. Sexo. E. E-mail) BR:MC TRABAJAR ( DNI. Descripción) Objetos en el modelo E/R DNI Fecha_Nac Apellidos Nombre Sexo Apodo E-mail Transformación al modelo Una relacional .n) (1. analizaremos para esta interrelación las opciones de borrado y modificación. Sexo. Apellidos. Sexo. no debemos permitir el borrado ARTISTA Identificador principal: DNI Clave primaria: DNI Atributos Obligatorios: Nombre. La modificación.

Sexo. Valor_Subasta Valor_Tasador Nombre Dimensiones ARTISTA ( DNI. Descripción ARTISTA (1. Descripción) Transformación de una interrelación N:M con opciones de borrado y actualización Objetos en el modelo E/R Transformación al modelo relacional Entidad: TÉCNICA Cod_Técnica Descripcion TÉCNICA Relación: TÉCNICAS Identificador principal: A continuación transformaremos la interrelación Crear: Clave Primaria: Cod_Técnica Cod_Técnica DNI Atributos NOT NULL: Atributos Obligatorios: Fecha_Nac Apellidos Nombre Sexo Apodo E-mail 1:N Cod_Técnica. Nombre. Apellidos.n) Trabajar TÉCNICA ARTISTA ( DNI. Apodo.Modelo Relacional Las opciones de modificación y borrado serán la mismas que las vistas en la interrelación TRABAJAR (Artista y Estilo): Borrado restringido y modificación en DNI Cod_Técnica Fecha_Nac Apellidos Nombre Sexo Apodo E-mail cascada. Apodo. Sexo. una cardinalidad del tipo N:M. ValorTasador TÉCNICA (Cod_Técnica. al igual que la interrelación vista anteriormente. Descripción Valor_Subasta Valor_Tasador Nombre Dimensiones Cod_Técnica. Descripcion N:M ARTISTA (1. Nombre.1) (1. ValorTasador ValorSubasta. E-mail) BR:MC TRABAJAR ( DNI. E-mail) OBRA Entidad: OBRA Identificador principal: Relación: OBRAS Clave Primaria: Nombre Nombre Atributos NOT NULL: TRABAJAR ( DNI. Cod_Técnica) BR:MC TÉCNICA (Cod_Técnica. Fecha_Nac. Apellidos.n) (1.n) Crear OBRA La interrelación TRABAJAR(2) presenta. ValorSubasta. Fecha_Nac. creando una nueva relación donde la clave primaria será la Objetos en el modelo Transformación al modelo E/R relacional unión de las claves primarias de las relaciones ARTISTA y TÉCNICA. Dimensiones. Descripción) 165 166 . Aplicaremos la misma regla de transformación. Cod_Técnica) Atributos Obligatorios: Dimensiones.

Sexo. Nombre. DNI) En cuanto a las opciones de modificación y borrado. donde intervienen dos entidades ya vistas anteriormente: OBRA y ESTILO. Para su transformación al modelo relacional. la interrelación CREAR. Descripcion N:1 OBRA (1. añadiremos un nuevo atributo en la Cod_Estilo Valor_Subasta Valor_Tasador Nombre Dimensiones relación OBRA que nos dará información sobre el ARTISTA que la creó. Fecha_Nacimiento. Valor_Subasta.1) Pertenecer ESTILO ARTISTA (DNI. E-mail) De nuevo nos encontramos con una cardinalidad del tipo 1:N. Veremos ahora las acciones en caso de modificación y borrado. presenta una cardinalidad del tipo 1:N. Dimensiones. Descripción) BR:MC OBRA ( Nombre. Valor_Subasta. Dimensiones. El siguiente paso será analizar la interrelación PERTENECER. Apellidos. E-mail) BR:MC OBRA ( Nombre. ESTILO (Cod_Estilo.n) (1. Teléfono. Descripción) modificación de un artista debe realizar la modificación en cascada de sus obras. por lo que el borrado será restringido. Dimensiones.Modelo Relacional Esta vez. Valor_Tasador. Cod_Estilo) ARTISTA (DNI. Dimensiones. cuando este se borre de la base de datos. Apellidos. Valor_Subasta. Nombre. Valor_Tasador. Apodo. DNI) OBRA que nos dará información sobre el ESTILO al que pertenece. Valor_Tasador. Para su transformación al modelo relacional. Apodo. no se permitirá eliminar un estilo miestras existan obras que pertenezcan a dicho estilo. Sexo. En cambio la ESTILO (Cod_Estilo. No se debe permitir eliminar las obras pertenecientes a un artista. OBRA ( Nombre. Valor_Subasta. Teléfono. En cambio. Cod_Estilo) Transformación de una interrelación N:1 con opciones de borrado y actualización 167 168 . añadiremos un nuevo atributo en la relación OBRA ( Nombre. si Transformación de una interrelación N:1 con opciones de borrado y actualización modificamos los datos del estilo se modificarán en cascada todas las obras de dicho estilo. Valor_Tasador. Fecha_Nacimiento.

donde intervienen dos N:1 OBRA (1. Descripción) transformación. añadiremos un nuevo atributo en la relación OBRA que nos dará información sobre la técnica empleada. Valor_Subasta.1) Emplear entidades: OBRA y SEDE.n) (1. Cod_Técnica) Entidad: SEDE Nombre Dirección En cuanto a las opciones de borrado y actualización. en la que participan dos entidades ya vistas anteriormente: Cod_Técnica Valor_Subasta Valor_Tasador Nombre Dimensiones Descripcion Por último analizaremos la interrelación EXPONER. TÉCNICA (Cod_Técnica.Modelo Relacional Una de las últimas interrelaciones de nuestro modelo entidad-relación es EMPLEAR. por lo que crearemos una nueva relación donde la clave primaria BR:MC será la unión de las claves primarias de las relaciones SEDE y OBRA. la actualización se propagaría en Relación: SEDES Identificador principal: Nombre Clave Primaria: Nombre Atributos Obligatorios: Dirección Atributos NOT NULL: Dirección cascada a sus registros relacionados en la tabla OBRA. no eliminaremos una SEDE técnica de nuestra base de datos mientras tenga obras realizadas con dicha técinica.n) (1. Descripción) Objetos en el modelo E/R Transformación al modelo relacional OBRA ( Nombre. Dimensiones. Dimensiones. Valor_Subasta. Si una Técnica cambiara de código. Valor_Tasador. Cod_Técnica) 169 170 . OBRA ( Nombre. TÉCNICA Nombre Valor_Subasta Valor_Tasador Nombre Dimensiones OBRA Aplicando la regla correspondiente de transformación para cardinalidades del Dirección Fecha_Exposición N:M (1.n) Exponer SEDE tipo N:1. Cod_Estilo. Valor_Tasador. Cod_Estilo. Aplicaremos la regla de TÉCNICA (Cod_Técnica. La cardinalidad de la interrelación es del tipo N:M.

Fecha_Exposición) BC:MC OBRA (Nombre. Dimensiones. Valor Tasador. Valor Subasta. Cod_Estilo) Para poder conocer la fecha de exposición de las obras en las distintas BC:MC sedes. Dimensiones. Dirección) EXPONER ( Nombre_Sede. Cod_Técnica) Transformación de una interrelación N:M con opciones de borrado y actualización 171 172 . Descripción) BC:MC SEDE (Nombre. ESTILO (Cod_Estilo. Cod_Estilo. El borrado debe ser restringido. Fecha_Exposicion) realizará en cascada. Nombre_Obra. Cod_Técnica) Como nos interesa almacenar la información de las obras expuestas en las BC:MC distintas sedes. Apellidos. OBRA (Nombre. E-mail) BC:MC OBRA (Nombre. Cod_Técnica) BC:MC EXPONER ( Nombre_Sede. Dimensiones. Valor_Subasta. Nombre_Obra. DNI. no se permitirá el borrado en cascada sobre la relación EXPONER. Nombre. Descripción) BC:MC OBRA (Nombre. Dirección) SEDE (Nombre. Dirección) BC:MC EXPONER ( Nombre_Sede. Valor Subasta. Nombre_Obra) ARTISTA ( DNI. Sin embargo. Valor Subasta. BC:MC SEDE (Nombre. Cod_Estilo. Nombre_Obra. la actualización se EXPONER(Nombre_Sede. Cod_Técnica ) Analizaremos a continuación las opciones de Modificiación y Borrado. Sexo. Apodo. será necesario añadir un atributo más: Fecha de Exposición. Cod_Estilo. Valor Tasador. Cod_Técnica ) TRABAJAR_ESTILO (DNI. Cod_Estilo. Dimensiones. Dirección) BC:MC TRABAJAR_TECNICA (DNI.Modelo Relacional MODELO RELACIONAL FINAL SEDE (Nombre. Valor_Tasador. Valor Tasador . Fecha_Nac. Fecha_Exposición) TECNICA (Cod_Técnica.

Más . MATRÍCULA ( DNI. deben mantenerse las dependencias funcionales originales. NOMBRE. x Proteger la integridad de los datos. x Evitar problemas de actualización de los datos en las tablas. Introducción a las Formas Normales 6.Cada atributo de la relación. al menos en 1FN. TRABAJADORES (NOMBRE. la 4FN y 5FN respectivamente. ya estaría en 2FN. Todas las relaciones tienen que estar. Una relación se encuentra en uno u otro grado de normalización si cumple una serie de propiedades (restricciones). Se dice que una relación está en 1FN cuando no existen tuplas repetidas. NOTA. y por lo tanto. CURSO) y Clave primaria compuesta por los atributos: Las relaciones en 1FN tienen más redundancia de datos que los niveles y Dependencias funcionales: superiores. Ejemplo: Supongamos la siguiente relación: Dependencia funcional es la relación existente entre atributos. siempre que esta clave esté compuesta por más de un atributo. Si la clave primaria está compuesta por un único atributo. 3FN. Se dice que una relación se encuentra en 2FN si: Las tres primeras formas normales la definió Codd y se basan en las . Si la relación no tiene un buen nivel de diseño. APELLIDOS. TITULACIÓN) TRABAJADORES (NOMBRE. Formas Normales Dada una relación y un conjunto de dependencias funcionales. la normalización propone una descomposición 1FN de la relación teniendo en cuenta que: M La descomposición debe ser sin pérdida de información. Las dependencias funcionales se representan con una flecha de la forma AJB y la lectura sería la siguiente. que no es clave primaria. DNI + DNI determinan el ASIGNATURA ASIGNATURA 173 174 determinan una NOMBRE determinan y NOTA APELLIDOS CURSO DNI. No cumple la 1FN ya que hay tuplas repetidas Cumple la 1FN ya que no hay tuplas repetidas Existen seis niveles de normalización de una relación (1FN. el atributo A determina a B o el atributo B es dependiente del atributo A. N Si es posible.Se encuentra en 1FN dependencias funcionales que existen entre los atributos de la relación. 2FN. ASIGNATURA. TITULACIÓN) NOMBRE TITULACIÓN NOMBRE Miguel Pintor Miguel TITULACIÓN Pintor Isabel Industrial Isabel Industrial ¿Por qué se normalizan las bases de datos relacionales? Felipe Felipe Felipe Felipe Para: Felipe Agrónomo Felipe Agrónomo Miguel Pintor x Evitar la redundancia de los datos. basándose en las dependencias multivaluadas y en combinación se definieron dos niveles más de normalización. Posteriormente. más anomalías a la hora de actualizar los datos. tiene dependencia funcional completa respecto del atributo que es clave. FNBC. redefinió la 3FN y la denominó Forma Normal de Boyce Codd (FNBC). tarde y debido a que todavía existían anomalías. La 5FN es el grado máximo de Ejemplo: Supongamos la siguiente relación: normalización que puede alcanzar una relación. ASIGNATURA (DNI.ASIGNATURAJNOTA) (DNIJ NOMBRE y DNIJ APELLIDOS) (ASIGNATURA J CURSO) . 2FN 4FN y 5FN).Modelo Relacional 5.

LUGAR) DNIJ APELLIDOS CLASES (ASIGNATURA. dependerán directamente de la clave primaria. DIRECCIÓN. en: ALUMNOS (DNI. AULA. LOCALIDAD. NOTA. NOTA) primaria se encuentra en 2FN. El DNI determina. LUGAR) y Clave primaria: Para eliminar estos inconvenientes es necesario realizar un proceso de descomposición de la relación MATRÍCULA en dos relaciones que satisfagan la 2FN. NOTA) ALUMNOS De la relación de partida hemos obtenido la siguiente descomposición: MATRÍCULA ( (ASIGNATURA. APELLIDOS) (DNI. NOMBRE. LUGAR) en: UBICACIONES (AULA. (DNI. CURSO) IMPARTE (DNI. AULA) Solución: Descomponer la relación MATRÍCULA (DNI. MATRICULACIÓN Forma Normal de Boyce Codd (FNBC) ASIGNATURA. AULA. es decir. . NOMBRE.Modelo Relacional La relación no se encuentra en 2FN ya que existe una dependencia funcional no completa entre atributos de la relación que no forman parte de la clave primaria y la clave primaria: DNIJ NOMBRE DNIJ APELLIDOS ASIGNATURA 3FN Se dice que una relación está en 3FN si satisface la 2FN y cada atributo no J CURSO primario no depende de forma transitiva de la clave primaria. MATRÍCULA (DNI. La clave de esta relación es ASIGNATURA y el único atributo que no es clave primaria tiene una dependencia completa de la clave primaria (ASIGNATURAJ CURSO). AULA J LUGAR tenga una dependencia completa de la clave y además existe una dependencia transitiva entre la clave LUGAR. ł La relación CURSO) no se cumple que el atributo ASIGNATURA. Ejemplo: Supongamos la siguiente relación: ASIGNATURA. APELLIDOS. MATRÍCULA ALUMNOS (DNI. NOTA) NOMBRE. NOTA) El antecedente de cada dependencia funcional debe ser clave. APELLIDOS) DNI JDIRECCIÓN DNIJPROVINCIA Todas las dependencias funcionales cumplen que el antecedente es clave excepto la dependencia funcional: LOCALIDADJPROVINCIA Solución: Descomposición de la relación LOCALIDAD. en este caso el campo ASIGNATURA no es imprescindible para la obtención de los atributos NOMBRE y APELLIDOS. NOMBRE. ASIGNATURA. APELLIDOS. por sí sólo al NOMBRE y al APELLIDOS. y Clave primaria: Conclusión: DNI J NOMBRE_APELLIDOS DNIJLOCALIDAD LOCALIDADJPROVINCIA CURSO) ASIGNATURA. PROVINCIA) en: 175 176 ALUMNOS (DNI. APELLIDOS. NOMBRE_APELLIDOS. NOMBRE_APELLIDOS. La estructura de estas relaciones serían las siguientes: ASIGNATURA y Dependencias funcionales: ASIGNATURA J AULA AULA J LUGAR ASIGNATURA J LUGAR Esta relación no está en 2FN ya que en la dependencia funcional IMPARTE (ASIGNATURA. NOMBRE. Ejemplo: Supongamos la siguiente relación: MATRÍCULA Solución: (ASIGNATURA. DIRECCIÓN. PROVINCIA) DNI y Dependencias funcionales: DNI. Solución: ł La relación matrícula no se encuentra en 2FN ya que aún se Descomposición de la relación mantiene las dependencias funcionales no completas: DNIJ NOMBRE ASIGNATURA primaria y el atributo IMPARTE LUGAR MATRÍCULA (ASIGNATURA.

dependencias multivaluadas. restricción más. LOCALIDAD) PERSONAL ( PROFESOR. TLF) 5FN Informática C2 Biología C1 Para que una relación esté en 5FN. NOMBRE. 44 777777777 Observamos que existe una redundancia de datos en la tabla de para impartir Informática. PROFESIÓN) ( PROFESOR MATERIA C1 Juan Juanas C2 Susana Luís C1 Susana Luís C2 Susana Luís C1 MATERIA. deberá estar en 4FN y la relación no podrá Geología C2 ser descompuesta en otras. NOMBRE. Ejemplo: Supongamos la siguiente relación: Supongamos que en el enunciado para crear la base de datos nos piden que tengamos en cuenta la siguiente consideración: PERSONAL ( DNI.1 666666666 111111 Ana Juanas Fiscal. Solución: PERSONAL ( PROFESORES-CENTROS PERSONAL ( ( MATERIAS-CENTROS DNI. borrado y modificación en una relación provocados por motivos distintos a las dependencias funcionales que hemos visto hasta ahora. MATERIA. PROFESIÓN. Pianista Geranio. además se debe cumplir que toda dependencia Biología C1 multivaluada es consecuencia de la clave primaria. MATERIA) PROFESOR MATERIA Juan Juanas Informática Juan Juanas Informática Susana Luís Biología Separar en dos tablas.Modelo Relacional ALUMNOS (DNI. PROVINCIA) La 4FN y 5FN tienen que ver con atributos multivaluados 4FN PROFESOR MATERIA CENTRO Juan Juanas Informática C1 Juan Juanas Informática C2 Susana Luís Biología C1 Susana Luís Geología C2 Susana Luís Biología C1 Es posible que existan anomalías de inserción. TLF) Cuando un profesor está autorizado para trabajar en un centro DNI NOMBRE APELLIDOS PROFESIÓN DIRECCIÓN TLF 000000 Juan Pérez Juez. PROFESIÓN. LOCALIDADES NOMBRE_APELLIDOS. PROFESORES-MATERIAS PERSONAL ( PROFESOR. CENTRO) Juan Juanas DNI. Ejemplo: Supongamos la siguiente relación: 177 178 PROFESOR. Este tipo de dependencias surgen al normalizar estructuras El diseño de esta tabla sería correcto si no se realizaran ningún tipo de que no están en 1FN presentando valores repetidos.2 555555555 222222 Raquel Martín Profesora Jacinto. TLF) PROFESIONES ( . APELLIDOS. CENTRO) PROFESOR MATERIA Informática C1 DNI. DIRECCIÓN. DIRECCIÓN. APELLIDOS. CENTRO) (LOCALIDAD. NOMBRE. en una de ellas quedarían reflejadas las Susana Luís Geología profesiones del personal y en la otra sus datos personales. DIRECCIÓN. Susana Luís Biología ya que por cada una de las titulaciones de cada persona se repiten todos sus datos personales. El principal motivo son las Un profesor puede dar clase de distintas materias en centros distintos. Pintor Margarita. DIRECCIÓN. APELLIDOS. el profesor puede trabajar en dicho centro.

DNI . 1 FN El modelo relacional obtenido del caso práctico “Mentor” fue el siguiente: Se dice que una relación está en 1FN cuando no existen tuplas o registros repetidos. Nombre. Teléfono*. ASOCIAR ( Tutor. FNBC El antecedente de cada dependencia funcional debe ser clave primaria. Nacionalidad. e-mail. Aula) 2FN BR/MC AULAS ( Código_Aula . CURSOS ( Nombre . Pasamos a estudiar cada una de las relaciones La relación está en 3FN ya que todos los atributos dependen directamente de la clave primaria. 179 180 . el sistema no permitirá registros repetidos.Cada atributo de la relación. Dirección. Descripción. 3FN e-mail) Se dice que una relación está en 3FN si satisface la 2FN y cada atributo no primario no depende de forma transitiva de la clave primaria. F_Comienzo. ADMINISTRADORES ( La relación está en primera forma normal ya que al tener una clave primaria definida. Curso . que no es clave primaria. NOMBRE. Libro*) BC/MC La relación está en 2FN ya que la clave primaria está compuesta por un único atributo. dependerán directamente de la clave primaria. WWW . siempre que esta clave esté compuesta por más de un atributo.Se encuentra en 1FN BC:MC . tiene dependencia MATRICULAR ( Alumno . Curso . Dirección) BR/MC Se dice que una relación se encuentra en 2FN si: ALUMNOS ( DNI . Es_coordinador) BR/MC TUTORES ( DNI . F_Finalización) funcional completa respecto del atributo que es clave. no habiendo dependencias funcionales donde el antecedente no es clave primaria. es decir. Observamos que en todas las dependencias funcionales el antecedente es clave primaria luego la relación está en FNBC.Modelo Relacional Relación ADMINISTRADORES (DNI. AULA) (1) Dependencias funcionales obtenidas: DNI Æ nombre Veamos a continuación si el modelo relacional obtenido en el Caso Práctico DNI Æ e-mail DNI Æ aula (2) comprobar el estado de Normalización de la relación “Mentor” se encuentra en forma normal de Boice-Codd. Nombre. ya estaría en 2FN. Si la clave primaria está BR:MC compuesta por un único atributo. Nombre. e-mail._completo. E-MAIL. aula) .

* 3FN Observamos que en todas las dependencias funcionales el directamente de la clave primaria. WWW. no habiendo dependencias funcionales entre atributos que no son clave primaria CURSOSÆWWW CURSOSÆLIBRO (2) comprobar el estado de Normalización de la relación Observamos que en todas las dependencias funcionales el FNBC antecedente es clave primaria luego la relación está en FNBC. TELÉFONO. CURSO Æ F_COMIENZO (2) comprobar el estado de Normalización de la relación 1 FN La relación está en primera forma normal ya que al tener una (2) comprobar el estado de Normalización de la relación clave primaria definida. F_FINALIZACIÓN ) CÓDIGO_AULA ÆDIRECCIÓN (1) Dependencias funcionales obtenidas: ALUMNO.Modelo Relacional Relación AULAS (CÓDIGO_AULA. ya que es en los cursos mentor clave primaria definida. este caso no existe ninguna dependencia dependencia DESCRIPCION Æ DIRECCIÓN. DIRECCIÓN ) (1) Dependencias funcionales obtenidas: CÓDIGO_AULAÆDESCRIPCIÓN Relación MATRICULA (ALUMNO. 2FN La relación está en 3FN ya que todos los atributos dependen Comprobamos que los atributos F_Comienzo y F_Finalización directamente de la clave primaria. el sistema no permitirá registros repetidos. por lo que la relación está en 3ª FN La relación está en 3FN ya que todos los atributos dependen funcionales entre atributos que no son clave primaria** entre FNBC Observamos que en todas las dependencias funcionales el antecedente es clave primaria luego la relación está en FNBC. NOMBRE. ya que la fecha de comienzo no determina la fecha de (2) comprobar el estado de Normalización de la relación finalización. NACIONALIDAD. es decir. por lo DNI ÆNACIONALIDAD que dicha relación se encuentra en 2FN. E-MAIL. DESCRIPCION. CURSO. F_COMIENZO. Relación ALUMNOS (DNI. 2FN 3FN FNBC * En ALUMNO. DIRECCIÓN. el sistema no permitirá registros cada alumno lleva su propio ritmo de trabajo. dependen tanto funcionales entre atributos que no son clave primaria * del alumno como del curso. repetidos. no habiendo dependencias antecedente es clave primaria luego la relación está en FNBC. 181 182 . el sistema no permitirá registros compuesta por un único atributo.CURSO->F_FINALIZACIÓN 1 FN La relación está en primera forma normal ya que al tener una La relación está en 2FN ya que la clave primaria está clave primaria definida. 2FN La relación está en 2FN ya que la clave primaria está Relación CURSOS ( NOMBRE. no habiendo dependencias dependen de la totalidad de la clave. repetidos. 3FN (1) Dependencias funcionales obtenidas: La relación está en 3FN ya que todos los atributos dependen CURSOS ÆNOMBRE directamente de la clave primaria. LIBRO ) compuesta por un único atributo. DNI ÆNOMBRE ** No exite ninguna dependencia entre los atributos F_Comienzo y F_Finalización. ya que un alumno puede comenzar en una fecha determinada. 1 FN La relación está en primera forma normal ya que al tener una No podremos saber la fecha de finalización. AULA ) * Recordemos que un alumno de mentor puede realizar diferentes cursos y (1) Dependencias funcionales obtenidas: DNI ÆNOMBRE DNI ÆE-MAIL DNI ÆDIRECCIÓN DNI ÆAULA DNI ÆTELÉFONO comenzará y finalizará cada uno de ellos en una determinada fecha.

3FN (2) comprobar el estado de Normalización de la relación La relación está en 3FN ya que todos los atributos dependen directamente de la clave primaria. NOMBRE_COMPLETO. * En este caso. Es decir. TUTOR. no habiendo primaria * Observamos que en todas las dependencias funcionales el Relación ASOCIAR ( TUTOR. esta dependencia no es real.com 41875964 LUIS PEREZ PEREZ luisperez@gmail. 1 FN La relación está en primera forma normal ya que al tener una clave primaria definida. (1) Dependencias funcionales obtenidas: 2FN DNIÆNOMBRE_COMPLETO La relación está en 2FN ya que la clave primaria está compuesta por un único atributo.com 42568745 MARIA FERNANDEZ RUIZ Mfernandez@gmail. DNI NOMBRE_COMPLETO E-MAIL depende de Tutor y de Curso. ya que el nombre completo podría repetidos. de la forma: NOBRE_COMPLETOÆEMAIL. CURSO. ya que el hecho de ser coordinador vendrá determinado por el tutor y el curso. el sistema no permitirá registros primaria * repetidos. no habiendo 1 FN dependencias funcionales entre atributos que no son clave La relación está en primera forma normal ya que al tener una clave primaria definida.com atributo y por lo tanto no podrá haber dependencias que incumplan la 3ª FN. es decir. la dependencia es correcta. un Por lo tanto.Modelo Relacional 1 FN La relación está en primera forma normal ya que al tener una clave primaria definida. Observamos que en todas las dependencias funcionales el FNBC DNIÆE-MAIL 2FN antecedente es clave primaria luego la relación está en La relación está en 2FN ya que la clave primaria está compuesta por un único atributo. ES_COORDINADOR ) FNBC (1) Dependencias funcionales obtenidas: antecedente es clave primaria luego la relación está en FNBC. E-MAIL ) repetidos. Observamos que en todas las dependencias funcionales el FNBC antecedente es clave primaria luego la relación está en FNBC. repetirse en nuestra base de datos. el sistema no permitirá registros Relación TUTOR ( DNI. podemos ver que nuestra relación se encuentra en 3ª FN determinado tutor coordinará uno o más cursos.* 3FN La relación está en 3FN ya que en la relación hay un único 54258652 LUIS PEREZ PEREZ lperez@gmail.com 41203657 CARMEN PRIETO PEREZ cprieto@gmail. comprobamos si el atributo Es_coordinador depende de la totalidad de la clave primaria. en el caso de que existan dos personas con el mismo nombre y cada una de ellas tendrá un e-mail distinto: 2FN Igualmente. 183 184 . FNBC. 3FN La relación está en 3FN ya que todos los atributos dependen * No existe ninguna dependencia entre funcional entre los atributos www y directamente libro dependencias funcionales entre atributos que no son clave de la clave primaria. el sistema no permitirá registros Sin embargo. CURSO ÆES_COORDINADOR * En principio pudiera parecer que existe una dependencia funcional entre (2) comprobar el estado de Normalización de la relación atributos que no son clave primaria.

y las tuplas o filas de la tabla. y los atributos o características asociadas a ella pasan a ser atributos de la relación.La segunda regla de transformación nos indica que las interrelaciones cuyo tipo de correspondencia es N:M se transforman en una nueva relación cuyo nombre se corresponde con el nombre de la interrelación y donde la clave primaria se compone de los atributos identificadores de las dos entidades que relaciona. cuya representación gráfica se realiza en forma de tabla.La tercera y última regla nos indica que la transformación de interrelaciones cuyo tipo de correspondencia es 1:N se traduce en una propagación de clave o en una nueva relación si la interrelación posee atributos 185 . Además también podemos incluir los dominios que son aquellos conjuntos de donde los atributos toman los valores. Reglas básicas para la transformación del modelo entidad/relación al modelo relacional: . . Su idea fundamental es el uso de «relaciones». En las relaciones se pueden distinguir varios tipos de elementos: su nombre. . los atributos que contiene y que representan las columnas de la tabla.La primera de las reglas de transformación nos dice que toda entidad se transforma en una relación o tabla.Modelo Relacional . El modelo relacional para la gestión de una base de datos es el modelo más utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente.

MÓDULO C UNIDADES DIDÁCTICAS: 1. Algebra Relacional 2. SQL – Lenguaje de Consulta Estructurado .

proyección. Para qué sirve el álgebra relacional .Operadores relacionales .Unión. diferencia y producto cartesiano (operadores algebraicos) UNIDAD DIDÁCTICA 1 Índice de la unidad: 1. A realizar las siguientes operaciones: .Operadores algebraicos o boléanos . concatenación y división (operadores relacionales) .MÓDULO C OBJETIVOS En esta unidad aprenderás: Álgebra Relacional x x A conocer el álgebra relacional y sus operadores algebraicos y relacionales. Qué es el álgebra relacional 2. intersección.Selección.

1. 191 192 . deben tener (E F H).Diferencia (-) Los que están en la primera relación y no estén en la segunda 1.Intersección (ŀ) manipulación de datos que permite a los usuarios llevar a cabo tareas de La relación resultante está compuesta por las tuplas que consulta o manipulación de los datos.1 ¿Qué es álgebra relacional? 401 Se llama álgebra relacional a un conjunto de operaciones que pueden ser aplicadas sobre tablas relacionales y definen un pequeño lenguaje de . R ( A B C) Para el producto cartesiano los esquemas no tienen por qué ser compatibles . es decir. segunda relación. Los operadores se dividen en dos grupos: . Algebra Relacional 586 401 586 690 586 690 333 1.2 ¿Para qué sirve el álgebra relacional? Ejemplo: Dados dos esquemas de relación R (A B C) y S (E F H). Para crear una relación o tabla a partir de una o varias relaciones utilizando para ello operadores relacionales.2. La nueva relación o tabla de salida contendrá solamente la información que hemos demandado a través de R ( A B C) operadores del álgebra relacional. obtener la intersección de R y S. obtener la diferencia de R y S. el mismo número de atributos y los dominios de los atributos de las relaciones deben coincidir uno a uno. se pondrá. obtener la unión de R y S. los Ejemplo: Dados dos esquemas de relación R (A B C) y S esquemas de la relación deben ser compatibles.Operadores relacionales R ( E F H) R ŀS 179 333 179 345 179 586 586 401 690 586 .TÍTULO DE MÓDULO O BLOQUE Algebra Relacional 1. el nombre de la relación correspondiente. Intersección y diferencia. aparecen en las dos relaciones de origen. En la relación resultante no R ( E F H) 179 333 345 179 586 401 690 586 R -S 345 690 aparecen tuplas repetidas. R ( A B C) R ( E F H) Si coincide algún atributo en ambas relaciones. .Producto cartesiano (x) La relación resultante se formará por el producto de cada una Ejemplo: Dados dos esquemas de relación R (A B C) y S de las tuplas de la primera relación por todas las tuplas de la (E F H).Operadores algebraicos o boléanos . RUS 179 333 179 345 179 345 delante del atributo.Unión (U) La relación resultante está compuesta por cada una de las tuplas de las relaciones de origen.1 Operadores algebraicos o booleanos Para aplicar las operaciones de Unión.

Ejemplo: Obtener los nombre de la tabla alumnos. delante del atributo. el nombre de la para obtener columnas de una relación obtenido.2 Operadores Relacionales Elena Los operadores relacionales pueden ser unarios o binarios. NOMBRE. La selección se podría hacer 586179 sobre una tabla o sobre otra expresión. Kimla Antonio Pérez Ana Huete 1. se pondrá. 345333 Ejemplo: Obtener los alumnos matriculados en el curso 345179 1. 586401 586586 . R ( A B C) R ( E F H) 179 333 345 179 586 401 R x S (A B C E F H) Operadores unarios 179333 179179 . obtener el producto cartesiano de R X S (R. š nombre=1(ALUMNOS) D Ejemplo: Dados dos esquemas de relación R (A B C) y S (A F C).TÍTULO DE MÓDULO O BLOQUE Algebra Relacional Ejemplo: Dados dos esquemas de relación R (A B C) y S 756984B Elena 4 (E F H).C) resultado Juan M. correspondiente. CURSO) DNI NOMBRE CURSO 120546M Juan M. Kimla 3 478965J Antonio Pérez 2 687698P Ana Huete 1 relación.A F S. Automáticamente se eliminan las repeticiones del resultado 193 194 .2.A B R.Selección (ı) 179401 586 Obtiene tuplas de una relación que cumplan una determinada 179586 condición.C S. obtener el producto cartesiano de R y S.Proyección (š) Utilizado Si coincide el nombre de un atributo en ambas relaciones. Los ejemplos se realizarán sobre la siguiente tabla: ALUMNOS (DNI. Es unario cuando se aplica sobre una relación o tabla y binario si se aplica sobre dos. ı curso=1(ALUMNOS) 345401 345586 586333 D resultado 687698 P Ana Huete 1 La condición podría ser múltiple.

La cabecera de la relación siempre será R-S 195 196 .División (/) PILOTO ZGT-090 Paula Parla ZGT-090 ZGT-099 Gonzalo Ávila ZGT-099 ZGT-190 Paula Parla ZGT-190 Juan Toledo ZGT-099 Paula Parla ZGT-099 Paula Parla ZGT-090 Gonzalo Ávila ZGT-099 Paula Parla ZGT-190 Juan Toledo ZGT-099 Paula Parla ZGT-099 PILOTOS – AVIONES(AVIÓN) AVIÓN ZGT-090 ZGT-099 ZGT-190 realiza la concatenación equivaldría a un producto cartesiano. La concatenación equivale a un producto cartesiano más una selección Se queda con aquellas tuplas que en los atributos comunes a PILOTOS (PILOTO. AVIÓN) ambas tablas toman el mismo valor. Suponiendo que tenemos los esquemas de relación R y S y deseamos realizar la operación R / S. PILOTOS (PILOTO. AVIÓN) AVIONES(AVIÓN) AVIÓN AVIONES D PILOTOS Paula Parla Para poder realizar la división. debe darse que los datos de avión tienen que estar incluidos como atributos en la relación de pilotos.Concatenación (ZY) (Natural Join) disponibles. Cuando no hay atributos comunes en las tablas donde se Una combinación de dos relaciones es equivalente a: R ZYF S = ıF (R × S) .TÍTULO DE MÓDULO O BLOQUE Algebra Relacional Operadores binarios Ejemplo: Dados los siguientes esquemas de relación Obtener los pilotos capaces de manejar todos los aviones . En la relación de salida los PILOTO atributos comunes no aparecen duplicados.

Unión (U) .Intersección .Diferencia (-) .Selección (ı) .Algebra Relacional Se llama álgebra relacional a un conjunto de operaciones que pueden ser aplicadas sobre tablas relacionales y definen un pequeño lenguaje de manipulación de datos que permite a los usuarios llevar a cabo tareas de consulta o manipulación de los datos.Proyección (š) .Operadores relacionales .Producto cartesiano (x) .Concatenación (ZY) (Natural Join) .Operadores algebraicos o boléanos . Los operadores se dividen en dos grupos: .División (/) 197 .

borrado y actualización de los datos La sintaxis de las consultas en SQL que nos permitirán acceder a los datos de una o más tablas (join).Operaciones de actualización de datos 2. . Caso Práctico – “Recetas” 3. Repaso de Consultas SQL x x La sintaxis de las sentencias de inserción. Operaciones sobre las bases de datos .MÓDULO C OBJETIVOS En esta unidad aprenderás: SQL – Lenguaje de Consulta Estructurado UNIDAD DIDÁCTICA 2 Índice de la unidad: 1.Operaciones de recuperación de datos .

Fecha_fin) PELÍCULA Cod_película.52. Nombre.Modificaciones 1. Modificación de tuplas (de algunos de sus valores) 3. al igual que la dinámica de cualquier modelo de datos. Fecha_inicio.49. en la que entre otros objetos se almacenan las películas y los actores que intervienen en ellas (Figura 2. y lenguajes de especificación.Altas INSERT INTO (Figura 2. Título. UPDATE (Figura 2. a introducir las sentencias 1 básicas del SQL para la manipulación de una base de datos.Operaciones de actualización de datos de la base de datos. define las operaciones que se pueden hacer con la base de datos.50.) . Nacionalidad) PARTICIPA (Cod_película. Los lenguajes de manipulación pueden dividirse en lenguajes navegacionales. que consiste en un conjunto de sentencias que nos permiten manipular la base de datos. Estas .) . PELÍCULA Cod_película En este apartado vamos. en los que se debe indicar el camino para llegar al dato. Figura 2. Operaciones sobre la Base de Datos siguientes: La parte dinámica del Modelo Relacional.SQL – Lenguaje de Consulta Estructurado Las operaciones que se pueden hacer sobre la base de datos son las 1. El lenguaje de manipulación de datos del SQL (LMD) es un lenguaje de especificación. Cod_actor. Inserción de tuplas en la base de datos. ‘Entrevista con un Vampiro’. a través de un ejemplo. . Título Entrevista con un Vampiro Fecha_estreno 1/5/1997 Supongamos una base de datos de un videoclub.Bajas DELETE FROM (Figura 2.Operaciones de recuperación de datos de la base de datos (consultas).51.Consultas SELECT 2. Borrado de tuplas.49: Subesquema de la base de datos de un videoclub 201 202 . Estas operaciones pueden ser de varios tipos: .) operaciones son: .).50: Ejemplo de inserción de tuplas ACTOR(Cod_actor. en los cuales se recupera la información mediante la INSERT INTO PELÍCULA VALUES (1. Fecha_estreno) Figura 2. Estas operaciones se expresan mediante lenguajes de manipulación relacionales. 1/5/1997) imposición de condiciones y no indicando el camino.

Como se puede apreciar en la Figura 2. El formato general de las consultas es: Supongamos que tenemos la tabla PELÍCULA con las siguientes filas: SELECT-FROM-WHERE.51 : Ejemplo de borrado de tuplas Cod_actor Cod_película Fecha_inicio Fecha_fin Cod_actor Nombre Nacionalidad 1 TomCruise Norteamericana 1 1 1/1/1996 1/3/1996 2 BradPitt Norteamericana 2 1 4/3/1996 30/12/1996 3 PenélopeCruz Española 3 2 1/5/1997 31/10/1997 4 JavierBardem Española 4 2 1/5/1997 31/12/1997 PELÍCULA Cod_película Supongamos que queremos modificar la fecha de la película ‘Abre los Ojos’: Título Fecha_estreno 1 EntrevistaconunVampiro 1/5/1997 2 AbrelosOjos 7/3/1998 UPDATE PELÍCULA SET Fecha_estreno=25/3/1998 WHERE Título =‘Abre los Ojos’ Figura 2.52.54.: Ejemplo de modificación de tuplas puede hacerse por el total de las columnas (atributos) de la tabla 203 204 .Consultas sobre una sola tabla: En este caso la condición WHERE únicamente se utiliza en el caso de que queramos restringir el conjunto de filas que se recupere.SQL – Lenguaje de Consulta Estructurado Mención especial debe hacerse a las consultas.53: DELETE FROM PELÍCULA VALUES (1. la recuperación de las Figura 2. Las consultas las Fecha_estreno podemos dividir en consultas sobre una tabla y consultas sobre varias tablas. donde la cláusula WHERE es opcional. 1/5/1997) Cod_película 2 PARTICIPA ACTOR PELÍCULA Título Abre los Ojos Fecha_estreno 7/3/1998 Figura 2. dependerá de si imponemos alguna condición sobre las tuplas a seleccionar o bien de si PELÍCULA Cod_película Título 1 Entrevista con un Vampiro 1/5/1997 2 Abre los Ojos 7/3/1998 necesitamos unir varias tablas para obtener un resultado.53: Ejemplar del videoclub PELÍCULA Cod_película Título Fecha_estreno 1 Entrevista con un Vampiro 1/5/1997 2 Abre los Ojos 25/3/1998 . ‘Entrevista con un Vampiro’. Supongamos que tenemos la ejemplar del esquema relacional del videoclub que aparece en la Figura 2.

PARTICIPA WHERE PELICULA.Cod_actor Fecha_estreno 1 Entrevista con un Vampiro 1/5/1997 Entrevista con un Vampiro 1/5/1997 2 Abre los Ojos 7/3/1998 Abre los Ojos 7/3/1998 Nombre Titulo Tom Cruise Entrevista con un Vampiro Brad Pitt Entrevista con un Vampiro Penélope Cruz Abre los Ojos Javier Bardem Abre los Ojos •Selección de ciertos los atributos de una tabla que cumplen una determinada condición: SELECT Nombre FROM ACTOR WHERE Nacionalidad = ‘Española’ Nombre Penélope Cruz Javier Bardem Figura 2. AND ACTOR.54: Consultas sobre una única tabla Selección de los actores que intervienen en la película “Entrevista con un Vampiro”: .Cod_pelicula la clave ajena de una tabla y la clave primaria de la tabla a la que referencia. o bien seleccionando aquellos atributos que queramos obtener en la consulta.SQL – Lenguaje de Consulta Estructurado implicada en la consulta. Esta unión se realiza por WHERE PELICULA.Cod_actor = PARTICIPA. Fecha_estreno FROM PELÍCULA Cod _película Título Fecha_estreno Título FROM PELICULA. Selección de los actores y las películas en las que intervienen: SELECT Nombre •Selección de todos los atributos de una tabla: •Selección de ciertos los atributos de una tabla: SELECT * FROM PELÍCULA SELECT Título. como se muestra en la figura 2.Consultas sobre varias tablas: SELECT Nombre En este caso la condición WHERE no es opcional.Cod_pelicula = PARTICIPA.Cod_actor = PARTICIPA.Cod_pelicula = PARTICIPA.Cod_actor AND Titulo = ‘Entrevista con un Vampiro’ 1 Esta unión es lo que se denomina JOIN. Se debe utilizar para FROM PELICULA. 205 206 .Cod_pelicula AND ACTOR. ACTOR. PARTICIPA unir las tablas1 que intervienen en la consulta. ACTOR.55.

: Ejemplo de consultas en las que intervienen varias tablas coleccionando e incluyendo en su biblioteca desde que se inició en el arte culinario. en agradecimiento a tantas veladas de buena información y que pueden ser consultadas en la bibliografía que aparece en el comida. Verduras. vamos a diseñar una base de datos completa y a hacer ciertas Penélope Cruz consultas sobre ella. “Antonio es uno de tantos trabajadores que llega a casa cansado y Javier Bardem estresado. Es bien sabido por los amigos de Antonio que de cada receta que él prueba.. por lo que sería interesante almacenar si cada receta es idea surgida de una receta original.) e incorpora unos ingredientes de los que se desea saber su nombre y cantidad. proviene de una receta elaborada alguna vez ya por Antonio. realizar sobre una base de datos. y se desea almacenar su origen. Desde hace algún tiempo alivia su estrés elaborando recetas de cocina que luego prueban sus familiares y amigos.55. no obstante existen otras muchas funciones que se pueden aplicar sobre los atributos de una o varias tablas para recuperar Los amigos de Antonio. Para ello deben controlar todas las recetas que posee. o si por el contrario.. Además cada receta contiene una breve explicación de cómo mezclar los ingredientes y obtener el producto final y el título de la receta original de la que proviene.SQL – Lenguaje de Consulta Estructurado Nombre Tom Cruise Brad Pitt Para fijar los conocimientos del modelo relacional asimilados hasta el momento. Carnes. datos que le gestione su maravilloso gran hobbie. imposible de organizar de una manera hemos pretendido dar una visión general de las operaciones que se pueden efectiva. vino y compañía han decidido agradarle con una base de curso. Para ello se apoya en los múltiples manuales de cocina que ha ido Figura 2. y luego confecciona sus propias recetas. consigue nuevas recetas. Tanto ha sido su interés que en la actualidad posee un gran número de recetas Con lo explicado hasta ahora de la parte dinámica del Modelo Relacional nuevas a modo de apuntes.. 207 208 . incorporando ciertos cambios. Cada receta tiene un tipo (Sopas. teniendo en cuenta que: Cada receta proviene de una idea original de un libro de cocina de la biblioteca de Antonio.

Por lo tanto deberemos introducir en la relación RECETA el ISBN del libro. Descripción. consideraremos el atributo “Cod_ingrediente” como clave primaria. . LIBRO. Estos son: También sería interesante saber qué receta proviene de alguna otra y cual no. el título original (título de la receta en la que se basa) y la fecha de creación. pero como un mismo ingrediente puede ser usado en distintas cantidades para varias recetas.SQL – Lenguaje de Consulta Estructurado Lo que los amigos de Antonio quieren es que cuando él quiera pueda 2.). Como clave primaria podemos suponer el ISBN. 209 210 .INGREDIENTE. SOLUCIÓN AL CASO PRÁCTICO consultar las recetas por tipo y por ingrediente además de poder En primer lugar debemos detectar cuáles son las relaciones base que localizar el libro que le dio la idea de cada una de sus recetas.Título_original ) INGREDIENTE (Cod_ingrediente. LIBRO (ISBN. Además supondremos el atributo “Cod_receta” como clave primaria. Autor) RECETA (Cod_receta. Esta relación debe contener al menos el Título de la obra y el autor. 56: Relaciones elementales de las base de datos de Antonio Una vez encontradas las relaciones base hay que analizar como se intrrelacionan en función de los supuestos realizados en el enunciado: De cada receta se desea saber de donde (de qué libro se ha sacado). Fecha_creación. que como todos sabemos es único por cada libro editado. En principio. de momento solo introduciremos el nombre como atributo de la relación INGREDIENTE y veremos posteriormente como reflejar la cantidad. Nombre) Figura 2. Al igual que ocurriía en el caso de las recetas. de los ingredientes se desea almacenar el nombre y la cantidad que de él se ha empleado en cada receta.RECETA. . la descripción. De cada receta deberemos incluir el tipo . aparecen en el enunciado y qué atributos contienen (Figura 2. Título. 56.

provocaríamos redundancia. Los borrados y modificaciones de ambas originales y otra para las varaciones. ISBN) Cada receta está compuesta por ciertos ingredientes (uno o varios) y además un mismo ingrediente. respectivamente. La clave primaria Cada receta puede ser original.Título_original. sin tener en cuenta las cantidades del mismo. por lo que el borrado debemos considerarlo restringido (DR). claves ajenas de duplicásemos la relación RECETA y mantuviésemos una para las recetas las relaciones RECETA e INGREDIENTE. El ISBN introducido en la relación RECETA es clave ajena de ésta y referencia a la relación LIBRO. que. Por tanto debemos introducir una nueva relación COMPUESTA cuyos Figura 2. Cod_receta_padre) DR/UC En cuanto a las opciones de borrado y modificación.SQL – Lenguaje de Consulta Estructurado Parece claro que no pueda ser de otra manera pues si pensásemos en “variación”. Si eliminamos una receta que es una variación de otra. ISBN. como puede verse en la Figura 2. Título. cantidades de cada uno de los ingredientes que intervienen en una misma receta. puede hacerse en cascada pues no va a afectar a la receta padre introducir el código de receta en LIBRO. 59. en cambio la modificación de una receta 211 212 . nos dirá de qué otra receta proviene (si no contiene ningún valor es porque la receta correspondiente a la fila en la que este atributo no tiene valor es una receta original). es una receta y por tanto contendrá los mismos atributos que cualquier receta. RECETA(Cod_receta. la modificación puede ser en cascada (UC) para que los cambios se actualicen automáticamente (Figura 2. lo que significaría es que por cada libro (Figura 2. Autor) DR/UC RECETA (Cod_receta. el borrado debe ser restringido (DR). si “Cod_receta” y “Cod_ingrediente” son. valor. puede utilizarse en serlo de varias recetas. Lo mejor en estos casos es la relación existente entre la receta y sus ingredientes. en el caso de contener ingrediente en sí. “Cod_receta_padre” es una clave ajena de la relación RECETA que se referencia a sí misma. pues si eliminamos un libro no se debe permitir que se eliminen todas las recetas que Antonio sacó de él. 57). Antonio sólo sacó una receta (recuérdese que en el modelo relacional no puede haber más de un valor en cada celda de una tabla). Fecha_creación. Descripción. es decir sacada directamente de un estará formada por los dos primeros atributos y de esta forma tendremos qué libro de cocina. Descripción. Figura 2.57: Asociación entre LIBRO y RECETA atributos serán “Cod_receta”.Título_original. o bien ser una variación de una ya creada y este cantidad de un mismo ingrediente se ha utilizado en cada receta y todas las aspecto se desea recoger en la base de datos. Fecha_creación. 58). no debemos permitir que se borre la receta “padre”. pues a lo único que afectaría sería a definición de la relación RECETA se haría dos veces. Independientemente de que la receta sea original o variación. 58: Asociación entre RECETA original y no original LIBRO (ISBN. pues la claves ajenas pueden hacerse en cascada. “Cod_ingrediente” y “Cantidad”. pero no a la receta o al añadir un atributo “Cod_receta_padre” en RECETA.

8 1 puñado 4 200 grs. Lonchas de queso por encima y gratinar (1.50: Esquema relacional de las Recetas de Cocina Una vez realizado el diseño de la base de datos hay que gestionarla. 4 ---1 vasito 200 grs. es decir.SQL – Lenguaje de Consulta Estructurado LIBRO 84-404-9666-4 84-324-8776-3 84-403-6999-5 DC/UC COMPUESTA ( Cod_ingrediente.5 min. queda como Descripción 7 se refleja en la Figura 2. 1 diente 6 6 medianos 1/2 litro 50 grs.Título_original.). Supongamos la siguiente ejemplar del esquema: 213 214 Nombre Cintas Yemas de huevo Queso rallado Nata líquida Brecol Anchoas Aceitunas negras Lonchas de queso Coliflor Espinacas Puerros Zanahorias Judías verdes Ajos Pimientos Bechamel 7 7 7 7 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 Cod_ingrediente 4 5 6 7 4 8 9 10 11 4 8 9 10 11 12 13 14 15 16 17 14 18 19 6 Cantidad 300 grs. Cantidad) DC/UC Autor Título ISBN RECETA (Cod_receta. Incorporar la pasta cocida con las anchoas y las aceitunas. Cantidad) DC/UC INGREDIENTE Cod_ingrediente. Autor) 3 ------- 8 ------ COMPUESTA DR/UC Cod_receta RECETA (Cod_receta.Título_original. Fecha_creación. Nombre) ( Tipo Fecha creación Título original ISBN Cod_receta_padre Pasta La pasta se cuece y se saltea con un poco de aceite. 59: Asociación entre RECETA e INGREDIENTE Tras haber analizado todos los supuestos del enunciado el esquema relacional correspondiente a la base de datos de recetas de cocina. 100 grs.Chin Karlos Arguiñano Karlos Arguiñano RECETA Cod_receta INGREDIENTE Cod_ingrediente. 100 grs. 100 grs. Cubrir con salsa bechamel. Añadir la pasta cocida y el brecol. Nombre) ( Figura 2. Espolvorear con queso rallado y gratinar (5 min. LIBRO (ISBN. . insertar datos. anchoas y aceitunas. Cod_receta_padre) DR/UC INGREDIENTE Cod_ingrediente 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 DC/UC COMPUESTA (Cod_ingrediente. Cod_receta. 250 grs.) 8/3/1999 Cintas a la Crema 84-324-8776-3 8 Pasta Rehogar mantequilla. Cod_receta_padre) Guía Práctica de Cocina Oriental La Cocina Para Estar en Forma La Cocina Práctica K. 8 1 puñado 4 200 grs. ISBN. Colocar las lonchas de queso y gratinar (3 min. 13/6/1999 Cintas con Brecol 84-324-8776-3 9 Pasta Rehogar la verdura con el ajo. Mezclar la nata con las yemas de huevo batidas e incoporar a la pasta (a fuego lento). y realizar consultas a la base de datos. 200 grs. Título. Descripción. Descripción. modificar datos.) 26/6/1999 Cintas con Brecol 84-403-6999-5 10 Verduras Freir los aros de pimiento y colocar encima los puedrros cocidos. ISBN.C.) 30/6/1999 Puerros con bechamel 84-324-8776-3 Figura 2. Cod_receta. Fecha_creación. Fuera del fuego se le añade queso rellado y se gratina (2 min. 250 grs. 60.

5min. anchoas y aceitunas. Nombre y descripción de las recetas del tipo pasta realizadas en anteriores a junio de 1999. junio de 1999.Cod_receta = RECETA. Ingredientes y cantidad de los mismos utilizados en las recetas 2. LIBRO WHERE Tipo = ‘Verduras’ AND RECETA. Rehogar la verdura con el ajo.Chin Karlos Arguiñano Karlos Arguiñano Resultado: 13/6/1999 Cintas con Brecol Cantida d 4 Pasta 26/6/1999 Cintas con Brecol 4 Descripción Tipo Ejemplo 2. Recetas en las que intervienen las ‘Lonchas de queso’ . Lonchas de queso encima y gratinar (1.C. Rehogar la verdura con el ajo. Incorporar la pasta cocida con las anchoas y las aceitunas. Cod_ingrediente AND COMPUESTA.ISBN Cintas con Brecol Resultado: 215 216 . Ejemplo 1. Colocar llonchas de queso y gratinar (3 min.) Ejemplo 2. Añadir la Cintas con Brecol pasta cocida y elbrecol. anchoas y aceitunas. Título de los libros . Añadir pl asta cocida y el brecol.). COMPUESTA. Título de los libros .).) SELECT Título.Consultas de unión: 1. Título_original FROM RECETA. INGREDIENTE WHERE Nombre = ‘Lonchas de queso’ AND INGREDIENTE. Descripción. descripción y título original de las recetas de tipo ‘Verduras’ 1. 3.Cod_ingrediente = COMPUESTA. Colocar las lonchas de queso y gratinar (3min. Recetas en las que intervienen las ‘Lonchas Ejemplo 1.ISBN = LIBRO. Descripción. Libros de cocina de la biblioteca de Antonio. Libros de cocina de la biblioteca de Antonio de queso’ SELECT * FROM LIBRO SELECT Tipo.Cod_receta Resultado: LIBRO Autor Título ISBN 84-404-9666-4 84-324-8776-3 84-403-6999-5 Guía Práctica de Cocina Oriental La Cocina Para Estar en Forma La Cocina Práctica K.Consultas de selección 2.5min. Lonchas de queso por encima y gratinar (1. Título_original. descripción y título original de las recetas de tipo ‘Verduras’ RECETA Descripción Título_original Rehogar mantequilla. Cantidad FROM RECETA.SQL – Lenguaje de Consulta Estructurado Supongamos que queremos realizar las siguientes consultas. Fecha_creación. . Nombre y descripción de las recetas del tipo pasta realizadas en junio de 1999 SELECT Descripción. Incorporar la pasta cocida con las anchoas y las aceitunas. Título_original FROM RECETA WHERE Tipo = ‘Pasta’ AND Fecha_ creación >= 1/6/1999 Resultado: Fecha creación Título original Pasta Rehogar mantequilla.

Cantidad FROM RECETA.Cod_ingrediente = COMPUESTA. y también los operadores lógicos: NOT. >=. Ingredientes y cantidad de los mismos WHERE <condición de búsqueda> | utilizados en las recetas anteriores a junio de 1999 [GROUP BY <condición de búsqueda>] HAVING <condición de búsqueda> | SELECT Ingrediente. OR. Cubrir con salsa bechamel. Espolvorear con queso rallado y gratinar (5 min. nombre_tabla].. columna].>)| <expresión de función>] FROM <nombre_tabla> [[. 4 ---1 vasito DISTINCT: suprime filas duplicadas Operadores para la condición de búsqueda: <. =. in.) 3. En estos ejemplos iremos aplicando distintas consultas de menor a mayor dificultad con el fin de que mediante estos ejemplos se aprenda las distintas posibilidades que ofrece SQL para realizar consultas a una base de datos.. 217 218 . >. Cod_ingrediente AND COMPUESTA.SQL – Lenguaje de Consulta Estructurado Título Descripción La Cocina Para Estar en Forma Freir los aros de pimiento y colocar encima los puedrros cocidos... COMPUESTA. INGREDIENTE WHERE Fecha_creación < ‘1/6/1999’ AND IGREDIENTE. <=.. Presentaremos en este apartado varios ejemplos de bases de datos con las tablas y sus valores.Cod_receta = RECETA.. AND.. between. like. Repaso de Consultas en SQL Título original Puerros con bechamel La sintaxis de las consultas en SQL es: SELECT [(*|ALL|DISTINCT| <columna [.Cod_receta ORDER BY <lista de atributos> [ASC|DESC] | <columna> <operador> <sentencia de consulta> Resultado: Nombre Cintas Yemas de huevo Queso rallado Nata líquida donde: ALL: selecciona todas las columnas Cantidad 300 grs .] Ejemplo 3.

cod_grupo) Grupo(cod_grupo.000 150. Tablas: 3. precio. tipo_documento. García J. Nieto A. ext_telefónica) Departamento(numero_dept. nacionalidad) Escribe(nombre.1 BD sobre las que se muestran las consultas En esta base de datos contemplamos la información de una empresa con datos de los empleados y los departamentos a los que pertenecen dichos UNIVERSIDAD empleados. asignatura.000 125. Cuadra E.000 120. cod_profesor. salario) Impartir(cod_grupo. los grupos donde se han matriculado estos. cod_documento) Documento(cod_documento. Nombre Juan Montero Alicia Cristobal Ana Vallejo Ignacio López Leticia Martínez Grupo Cod_grupo BIBLIOTECA Ciudad Alcorcón Leganés Leganés Móstoles Alcorcón cod_grupo 11 11 21 31 -- Turno Curso Tablas: 11 12 21 22 31 Autor(nombre. salario.000 250. num_copias) Profesor Cod_profesor 1p 2p 3p 4p 5p 6p 7p Almacenaremos la información relativa a documentos con los autores que los han escrito. fecha_nac. turno) UNIVERSIDAD Profesor(cod_profesor. categoría. titulo.000 225. horas) Alumno cod_matricula 101 102 202 300 103 Base de datos en la que almacenamos los alumnos. curso. nombre. numero_dept. nombre. nombre) 219 220 1 1 2 2 3 Nombre D. los profesores y los grupos donde imparten clase indicando la asignatura que imparten.SQL – Lenguaje de Consulta Estructurado 3.2 Valores para las tablas de las BD que nos servirán de ejemplo Alumno(cod_matricula. Montero M T M T T Ciudad Madrid Las Rozas Alcorcón Madrid Madrid Madrid Madrid Categoría T1 T2 T1 T2 T3 T1 T3 Salario 200. ciudad. EMPRESA Tablas: Empleado(nombre. ciudad. Nieto P.000 .000 135. fecha_nac. Martínez C. Sierra C.

Lenguajes Técnico y Autómatas 4500 13 6000 3500 7 6 16 17 Cod_documento 11 12 15 13 14 16 17 17 17 Departamento Numero_dept 11 13 14 221 222 Numero_dept 14 13 11 13 14 11 Salario 220. Isasi D. Informática SGBD Ficheros y BD Diseño de BD Escribe Nombre Miguel de Cervantes Emily Bronte Isaac Asimov Christian Jacq Christian Jacq Ken Follet Paloma Martínez P.000 200.66 23-8-65 Documento Cod_documento Título 11 El Quijote 12 Cumbres Borrascosas Nacionalidad Española Inglesa Americana Francesa Inglesa Española Española Española Tipo_documento Novela Novela EMPRESA Empleado Nombre Pablo Montero Beatriz Cristobal J.000 350. Isasi D. Borrajo Horas 20 15 12 20 BIBLIOTECA Autor Nombre Miguel de Cervantes Emily Bronte Isaac Asimov Christian Jacq Ken Follet Paloma Martínez P.000 150.000 400.000 300. Borrajo Fecha_nac 9-10-1547 2-9-1818 23-4-1930 30-6-1947 5-8-1949 2-9-68 3-4.Luis Martín Almudena López Angel Vallejo Pedro García Precio Num_copias 5000 22 4000 12 13 14 La Pirámide Asesinada Novela La Ley del Desierto Novela 2000 2000 15 10 15 Introducción a la Divulgativo ciencia Los Pilares de la Tierra Novela Gramáticas.SQL – Lenguaje de Consulta Estructurado Impartir Cod_grupo 11 11 21 31 Cod_profesor 1p 2p 1p 2p Asignatura Intr.000 Fecha_nac 10-11-67 20-9-68 25-6-77 4-5-60 15-4-72 12-3-70 Nombre Contabilidad Marketing Informática Ext_telefónica 6543 6577 6433 6422 6321 6323 .

) Resultado: Nombre Isaac Asimov Miguel de Cervantes Paloma Martínez P. <= . paréntesis.3. fecha_nac FROM autor ORDER BY nacionalidad En la expresión del SELECT también pueden aparecer expresiones aritméticas (que dan lugar a columnas derivadas) con suma. carácter.2 . que unen: . =.Una columna y una constante (numérica. length (calcula la longitud de una cadena de caracteres). SELECT titulo.3 Con restricción (seleccionando filas. nacionalidad. la nacionalidad y la 3. resta.66 23-8-65 30-6-1947 2-9-1818 5-8-1949 Resultado: Título El Quijote Cumbres Borrascosas La Pirámide Asesinada La Ley del Desierto Tipo_documento Novela Novela Novela Novela Precio *1.Dos columnas de la tabla También pueden utilizarse expresiones alfanuméricas: lower (para poner los valores en minúsculas)... Ordenando Filas (ORDER BY) Ejemplo 3: seleccionar los autores cuya nacionalidad sea española.1 Selección de columnas SELECT (<columna [. Isasi D. Para obtenerlas ordenadas se aplica ORDER BY. etc. Se puede especificar ASC o DESC (por omisión es ASC). SELECT nombre.>|*) FROM <nombre_tabla> SELECT nombre. substr (extraer una subcadena de una cadena de caracteres). Lenguajes y Autómatas Divulgativo Novela Técnico 5175 6900 4025 3. Las filas se almacenan en el mismo orden en que han sido insertadas.3 Consultas sencillas (Sobre una sola tabla) fecha de nacimiento de todos los autores ordenada por nacionalidad. >. >=. Si se quiere restringir las filas seleccionadas se utiliza WHERE con las condiciones que deben cumplir las filas para ser visualizadas. tipo_documento. + (operador de concatenación).15 FROM documento Nacionalidad Fecha_nac Americana Española Española Española Española Francesa Inglesa Inglesa 23-4-1930 9-10-1547 2-9-68 3-4. 3.SQL – Lenguaje de Consulta Estructurado Ejemplo 2: seleccionar el nombre. 3. fecha) Las columnas que se referencian en la condición no tienen porque ser seleccionadas en el SELECT. nacionalidad. <>. WHERE) Hasta ahora se recuperaban todas las filas. upper (para ponerlos en mayúsculas). precio* 1. multiplicación y división con las prioridades habituales de la aritmética (izquierda a derecha. Consulta simple: La condición está compuesta por un operador <.3. fecha_nac FROM autor WHERE nacionalidad = ‘española’ 223 224 . columna].3. etc.15 5750 4600 2300 2300 Introducción a la ciencia Los Pilares de la Tierra Gramáticas. Borrajo Christian Jacq Emily Bronte Ken Follet Ejemplo 1: calcular la subida en un 15% en el precio de los documentos.

SQL – Lenguaje de Consulta Estructurado

Resultado:

Ejemplo 6: alumnos cuyos números de matricula estén
entre 200 y 400 (ambos inclusive).

Nombre
Miguel de Cervantes
Paloma Martínez
P. Isasi
D. Borrajo

Nacionalidad
Española
Española
Española
Española

Fecha_nac
9-10-1547
2-9-68
3-4- 66
23-8-65

SELECT *
FROM alumno
WHERE cod_matricula BETWEEN 200 AND 400
Resultado:

Consulta compleja: con operadores lógicos: NOT, AND, OR, IN,
BETWEEN AND, LIKE, NULL, NOT NULL. ¡¡Cuidado con las
prioridades!!

cod_matricula
202
300

nombre
Ana Vallejo
Ignacio López

ciudad
Leganés
Móstoles

cod_grupo
21
31

Ejemplo 4: seleccionar aquellos autores que no sean
alemanes nacidos después de la segunda guerra mundial.
Ejemplo 7: alumnos que no están asignados a un grupo
SELECT *
FROM alumno
WHERE cod_grupo IS NULL

SELECT nombre
FROM autor
WHERE nacionalidad <> ‘alemana’ AND fecha_nac> ‘02/09/1945’

Resultado:
Resultado:

Nombre
Christian Jacq
Ken Follet
Paloma Martínez
P. Isasi
D. Borrajo

cod_matricula
103

SELECT nombre
FROM autor
WHERE nacionalidad IS NOT NULL
Resultado:

SELECT *
FROM alumno
WHERE ciudad IN (‘Getafe’, ‘Leganés’)

Nombre
Miguel de Cervantes
Emily Bronte
Isaac Asimov
Christian Jacq
Ken Follet
Paloma Martínez
P. Isasi
D. Borrajo

Resultado:

nombre
Alicia Cristobal
Ana Vallejo

ciudad
Alcorcón

Ejemplo 8: autores que tienen nacionalidad

Ejemplo 5: alumnos que viven en Getafe o Leganés

cod_matricula
102
202

nombre
Leticia Martínez

ciudad
Leganés
Leganés

cod_grupo
11
21

225

226

cod_grupo
--

SQL – Lenguaje de Consulta Estructurado

funciones son los valores pertenecientes a una o más columnas.
Se pueden aplicar a uno o más grupos de filas de tabla
(dependiendo de si se utiliza el GROUP BY o no).

Cuando no conocemos el conjunto exacto de caracteres que forman
la constante para indicar la restricción se utiliza LIKE con unos
caracteres especiales _ (un carácter) y % (cualquier número de
caracteres)

Todas las funciones excluyen los valores nulos excepto COUNT(*)
- AVG: calcula la media de los valores de la colección

Ejemplo 9: autores cuyo nombre empiece por I

- MAX: calcula el máximo.
- MIN: calcula el mínimo

SELECT *
FROM autor
WHERE nombre LIKE ‘I%’

- SUM: calcula la suma de los valores de la colección
- COUNT(*): halla cuántos valores hay en la colección incluyendo
las nulas

Resultado:

Nombre
Isaac Asimov

Fecha_nac
23-4-1930

- COUNT(columna): cuenta el número de filas que tienen valor
distinto de nulo en la columna de cada grupo

Nacionalidad
Americana

- COUNT(DISTINCT columna): cuenta el número de filas distintas
que tienen valor distinto de nulo en la columna de cada grupo.

Se utilizará DISTINCT si no se quiere que aparezcan filas
recuperadas iguales.

Ejemplo 10: seleccionar las distintas nacionalidades que

Ejemplo 11: hallar el número de empleados de la

existen en la tabla autores.

empresa.

SELECT DISTINCT nacionalidad
FROM autor

SELECT COUNT (*) "Número de Empleados"
FROM empleado

Resultado:

Resultado:

Nacionalidad
Española
Inglesa
Americana
Francesa

Número de Empleados
6

Ejemplo 12: hallar el salario medio, el mínimo, el

3.3.4

máximo de todos los empleados

Agrupando filas (GROUP BY y HAVING)
Hasta ahora todas las consultas vistas devolvían un conjunto de
filas que cumplían una serie de condiciones. Es posible agrupar
las filas por determinados grupos de valores y aplicar funciones a
cada grupo.

SELECT AVG(salario) "Media", MIN(salario) "Mínimo” MAX(salario)
"Máximo"
FROM empleado
Resultado:

A las funciones que en vez de actuar sobre una solo fila actúan
sobre un grupo de filas se las denomina funciones de grupo y
devuelven un solo valor por cada grupo. El argumento de estas
227

228

SQL – Lenguaje de Consulta Estructurado

Media
270.000

Mínimo
150.000

Resultado:

Máximo
400.000

Tipo_documento
Novela
Divulgativo
Técnico

Ejemplo 13: hallar el número de empleados y de
extensiones telefónicas del departamento 14.

SUM(precio)
19.000
4500
3500

AVG(precio)
3800
4500
3500

Es posible indicar en el SELECT nombres de columnas con
funciones de agregación siempre y cuando se utilicen esos
nombres de columnas en el GROUP BY.

SELECT COUNT(*), COUNT(DISTINCT ext_telefonica)
FROM empleado
WHERE numero_dept=14.

Resultado:
Ejemplo 16: calcular la suma de los precios y el precio

2
2

medio de los documentos agrupados por tipo de documento
(novela, técnico, ...)
Ejemplo 14: ¿cuántos empleados que han nacido antes

de 1970?
SELECT SUM(precio), AVG(precio), tipo_documento
FROM documento
GROUP BY tipo_documento

SELECT COUNT(*) "Número de Empleados"
FROM empleado
WHERE fecha_nac< ‘01/01/1970’

Resultado:

Resultado:

Tipo_documento
Novela
Divulgativo
Técnico

Número de Empleados
3
El grupo por defecto es la tabla entera. Si se quiere dividir la tabla
en grupos se utiliza GROUP BY con la que se especifican la(s)
columna(s) por las que se quiere agrupar.

SUM(precio)
19.000
4500
3500

AVG(precio)
3800
4500
3500

Si se quiere restringir los grupos de salida se utiliza la cláusula
HAVING seguida de las condiciones que debe cumplir. El proceso
que se sigue es el siguiente: la cláusula WHERE restringe las filas
de la tabla, después se agrupan y sólo se seleccionan aquellas
que cumplas las condiciones de la cláusula HAVING.

Ejemplo 15: calcular la suma de los precios y el precio
medio de los documentos agrupados por tipo de documento
(novela, divulgación, ...)

Ejemplo 17: número de grupos que existen en cada
SELECT SUM(precio), AVG(precio)
FROM documento
GROUP BY tipo_documento

curso

SELECT curso, COUNT(*)
FROM grupo
229

230

000 125.SQL – Lenguaje de Consulta Estructurado GROUP BY curso Ejemplo 20: Hallar para cada categoría de profesorado Resultado: de Madrid el sueldo máximo y mínimo ordenado por categoría. pero sólo de aquellas categorías que tengan Curso 1 2 3 COUNT(*) asociados más de dos profesores 2 2 1 SELECT categoría. ORDER BY. GROUP BY. MAX(salario). 231 232 .4 Consultas basadas en más de una tabla Ejemplo 19: media del número de copias de los 3.000 120. SELECT AVG(num_copias).000 Curso 3 3. tipo_documento FROM documento GROUP BY tipo_documento HAVING AVG(num_copias)>10 La unión de dos tablas es otra tabla que tiene por columnas la unión de las columnas de las dos y por filas el producto cartesiano (cada fila de la primera tabla se concatena con todas y cada una de las filas de la otra). HAVING. MIN(salario) FROM profesor WHERE ciudad=’Madrid’ GROUP BY categoría HAVING COUNT(categoría) > =2 ORDER BY categoría Ejemplo 18: cursos que tienen un único grupo y que además es de tarde SELECT curso FROM grupo GROUP BY curso HAVING COUNT(*)=1 AND turno=’T’ Resultado: Categoría T1 T3 Resultado: MAX(salario) 200.4. Por medio de la combinación de tablas se pueden seleccionar datos de tablas diferentes.2 Divulgativo 13 Tipos de combinación: x . WHERE.1 Combinando tablas: Join documentos agrupados por tipo de documento y que la media sea mayor que 10. Tendrá que haber una condición de combinación para restringir las filas del producto cartesiano que realmente nos interesan. SELECT.000 MIN(salario) 135. Hasta ahora sólo hemos seleccionado datos de una única tabla.Producto cartesiano: sin restricciones El orden de ejecución es: FROM. Resultado: Tipo_documento AVG(num_copias) Novela 13.

tipo_documento FROM autor a. BETWEEN AND.cod_documento=c. el código y el tipo de documento escritos por el autor así como el título de los mismos. SELECT nombre. Borrajo No influye el orden en que se especifican las columnas en el SELECT y las tablas en el FROM. escribe b. ESCRIBE.nombre=b. documento c WHERE a. Nombre Miguel de Cervantes Paloma Martínez P. Seleccionar el nombre de autor. nacionalidad. >=. Nacionalidad Española Española Española Española Cod_documento 11 17 17 17 Para las combinaciones no comunes se puede utilizar >.nombre AND b.Combinación exterior: selecciona las filas de una tabla que no tienen correspondencia con alguna de la otra.Autocombinación: se combina una tabla consigo misma. Ejemplo 21: Considerando las tablas AUTOR y ESCRIBE (un autor escribe varios documentos y un documento puede estar escrito por varios autores). x . SELECT nombre.nombre DOCUMENTO (un autor escribe varios documentos y un documento puede estar escrito por varios autores). su fecha de nacimiento y Resultado: nacionalidad. <>.nombre=escribe.cod_documento Resultado: Nombre Miguel de Cervantes Emily Bronte Puede darse otra condición aparte de la de combinación.Combinación no común: la condición tiene un operador que no es el de igualdad.nombre AND autor. Ejemplo 22: Considerando las tablas AUTOR. cod_documento FROM autor. Borrajo Nacionalidad Española Inglesa Americana Francesa Francesa Inglesa Española Española Española Cod_documento 11 12 15 13 14 16 17 17 17 SELECT nombre. Isasi D. nacionalidad y el código de los documentos escritos por él. cod_documento.Combinación común: la condición de combinación tiene un operado de igualdad. Se pueden unir tantas tablas como se quiera pero siempre deberá haber n-1 condiciones de combinación para que la información sea coherente (n= número de tablas).nombre=escribe. Nombre Miguel de Cervantes Emily Bronte Isaac Asimov Christian Jacq Christian Jacq Ken Follet Paloma Martínez P. nacionalidad. cod_documento FROM autor. escribe WHERE autor. Isasi D. <.SQL – Lenguaje de Consulta Estructurado x . título. Seleccionar el nombre del autor. por ejemplo: Isaac Asimov Christian Jacq Christian Jacq 233 234 Fecha_nac Nacionalidad Cod_documen Título to 9-10-1547 Española 11 El Quijote 2-9-1818 Inglesa 12 Cumbres Borrascosas 23-4-1930 Americana 15 Introducción a la ciencia 30-6-1947 Francesa 13 La Pirámide Asesinada 30-6-1947 Francesa 14 La Ley del Desierto Tipo_documento Novela Novela Divulgativo Novela Novela .nacionalidad='española' x . nacionalidad. fecha_nac. escribe WHERE autor. Resultado: x .

66 Española 17 D. superior.nombre. hayan escrito documento alguno SELECT nombre. cod_documento FROM autor.000 150.nombre=escribe.4.000 350. Lenguajes y Autómatas Gramáticas. Se deben incluir también los autores que no La autocombinación se realiza por medio de columnas que contienen la misma información. Supongamos la siguiente relación empleado extendida con la información de los jefes: No existe ningún autor que no haya escrito documento.2 Operadores de conjunto (UNION. En estos operadores está implícita la cláusula DISTINCT y son incompatibles con ORDER BY.000 300.000 350.UNION: recupera todas las filas que han sido seleccionadas en los dos SELECT 8 .ext_telefónica FROM empleado emp. Lenguajes y Autómatas Novela Pedro García 200.SQL – Lenguaje de Consulta Estructurado Ken Follet 5-8-1949 Inglesa 16 Paloma Martínez 2-9-68 Española 17 P. Los SELECT debe tener el mismo número de columnas y deben corresponderse en tipo.000 400. salario y el nombre y la extensión Resultado: telefónica de su jefe.000 200.EXCEPT (MINUS): devuelve las filas que han sido seleccionadas por el primer mandato SELECT y no lo han sido por el segundo Jefe Beatriz Cristobal -Beatriz Cristobal Angel Vallejo -235 236 . empleado superior WHERE emp. Borrajo 23-8-65 Española 17 Los Pilares de la Tierra Gramáticas.nombre.000 6321 Angel Vallejo Técnico La combinación exterior selecciona aquellas tuplas que no tienen correspondencia (en inglés se denomina OUTER JOIN). escribe WHERE autor. superior. que puede ser LEFT OUTER JOIN.nombre(+) Ejemplo 23: seleccionar para cada empleado de la empresa su nombre. Lenguajes y Autómatas Gramáticas.000 Fecha_nac 10-11-67 20-9-68 25-6-77 4-5-60 15-4-72 12-3-70 Ext_telefónica 6543 6577 6433 6422 6321 6323 3.Luis Martín Almudena López Angel Vallejo Salario 220.000 Ext_telefónica 6577 -6577 6321 -- 9 .nombre 7 . Técnico Técnico Ejemplo 24: seleccionar los autores con los documentos que han escrito.Luis Martín Almudena López Angel Vallejo Pedro García Numero_dept 14 13 11 13 14 11 Salario 220. Isasi 3-4.INTERSECT: devuelve las filas comunes que han sido seleccionadas por los mandatos SELECT Resultado: Nombre Pablo Montero Beatriz Cristobal J. El resultado es otra tabla que tendrá por columnas dos veces las columnas de la tabla original y por filas el producto cartesiano de la tabla por sí misma.jefe=superior.000 150. SELECT emp. emp.salario. INTERSECT.000 300. luego el resultado es el mismo que sin (+) Empleado Nombre Pablo Montero Beatriz Cristobal J.000 400. EXPECT) Jefe Beatriz Cristobal -Beatriz Cristobal Angel Vallejo -Angel Vallejo Son los mismos que los de la Teoría de Conjuntos y combinan dos o más consultas en un mismo resultado. RIGHT OUTER JOIN Y FULL OUTER JOIN.

SELECT nombre FROM profesor INTERSECT SELECT nombre FROM coordinador 237 238 . Montero Supongamos que en el enunciado de la Universidad tenemos otra tabla denominada Coordinador de la siguiente forma: Coordinador Cod_coord 1p 2p 3p Nombre D. Nieto P. Cuadra E.000 225.000 250. nacionalidad FROM autor WHERE nacionalidad='española' UNION SELECT nombre.SQL – Lenguaje de Consulta Estructurado Ejemplo 25: Nombre de los autores de nacionalidad Resultado: española e inglesa (obsérvese que si la UNION se realiza sobre la misma tabla. Martínez Ciudad Madrid Las Rozas Alcorcón Categoría T1 T2 T1 Salario 200. Sierra C.000 Ejemplo 26 : Seleccionar los nombres de las personas que sean profesores y coordinadores. Martínez SELECT nombre. Nombre D. García J. bastaría una condición OR). Isasi D. Nieto P. Borrajo Emily Bronte Ken Follet Nacionalidad Española Española Española Española Inglesa Inglesa Resultado: Nombre C. Cuadra E. nacionalidad FROM autor WHERE nacionalidad='inglesa' Ejemplo 27 : Seleccionar los nombres de de los profesores que no son coordinadores SELECT nombre FROM profesor MINUS SELECT nombre FROM coordinador Resultado: Nombre Miguel de Cervantes Paloma Martínez P. Nieto A.

between. y también los operadores lógicos: NOT. <=. 239 . AND.. bajas.] WHERE <condición de búsqueda> | [GROUP BY <condición de búsqueda>] HAVING <condición de búsqueda> | ORDER BY <lista de atributos> [ASC|DESC] | <columna> <operador> <sentencia de consulta> donde: ALL: selecciona todas las columnas DISTINCT: suprime filas duplicadas Operadores para la condición de búsqueda: <. modificaciones y consultas.SQL – Lenguaje de Consulta Estructurado El lenguaje de manipulación de datos del SQL (LMD) es un lenguaje de especificación. La sintaxis de las consultas en SQL es: SELECT [(*|ALL|DISTINCT| <columna [.. =. >... in. OR.>)| <expresión de función>] FROM <nombre_tabla> [[. Las operaciones que se pueden hacer sobre la base de datos son: Altas... >=. nombre_tabla]. like.. que consiste en un conjunto de sentencias que nos permiten manipular la base de datos. columna].