Introducción a las bases de datos relacionales. Diseño conceptual Carmen Graciani Díaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla
Bases de datos relacionales: ideas preliminares Informalmente, BD relacional: conjunto de tablas que almacenan datos, relacionadas entre sí. Las tablas se organizan en registros (filas) y campos (columnas). Por ejemplo, puedo tener una tabla de departamentos: Tiene como vemos 4 campos, y en este momento contiene 12 registros.
Bases de datos relacionales: ideas preliminares Registro: cada una de las filas de la tabla. Recoge los datos asociados a un individuo/una ocurrencia de la tabla en cuestión: Ej: (1, Álgebra, ALG, 1). Campo: cada una de las partes en las que se desglosa todo registro. La tabla DEPARTAMENTO está formada por 4 campos: iddepto, nombre, siglas y facultad (id de la facultad sede del departamento). Tabla: conjunto formado por la definición de todos los campos y sus propiedades, junto con los datos de todos los registros.
Nos valdría cualquier conjunto de tablas Tablas planas: una tabla recopila todos los datos. Problema: duplicación de datos (ej: nombre, dirección ciudad...). Solución: tablas relacionales (datos organizados en distintas tablas con campos con contenido común).
Bases de datos relacionales Tabla AUTOR (3 registros, 5 campos). Tabla AUTOR (4 registros, 3 campos). Nota: el campo Autor de la tabla ESCRIBE y el campo DNI de la tabla AUTOR permiten enlazar ambas tablas relacionales.
Orígenes de las bases de datos relacionales El modelo de datos relacional fue propuesto por Edgar F. Codd en 1970. Idea principal: los datos se organizan mediante tablas relacionadas. El diseño conceptual está basado en el Modelo Entidad-Relación (Entidad-Interrelación, P. Chen, 1976). La mayoría de SGBD más empleados siguen siendo relacionales. El lenguaje de definición, manipulación y consulta estandar de estas bases de datos es SQL (Structured Query Language).
Diseño de bases de datos relacionales 3 fases principales: Diseño conceptual Diseño lógico. Diseño físico.
Diseño conceptual Punto de partida: especificación de requisitos (descripción detallada de la información a recoger en la base de datos y las prestaciones y funcionalidades a ofrecer). Producto: esquema conceptual. Lenguaje del modelo: modelo conceptual, en este caso empleando diagrama Entidad-Interrelación de Chen.
Diseño lógico Punto de partida: esquema conceptual. Producto: esquema lógico. Lenguaje del modelo: modelo lógico, en este caso empleando modelo relacional de Codd.
Diseño físico Punto de partida: esquema lógico. Producto: esquema físico. Lenguaje del modelo: descripción de características técnicas y de implementación de la base de datos en un determinado SGBD, detallando estructuras físicas, métodos de acceso o modelo de seguridad, entre otros.
Diseño Lógico Modelo Entidad-Interrelación (ER, DER, ERD) Modelo Entidad-Relación se sustenta en una serie de conceptos principales para describir la información más relavante de una parcela de la realidad mediante representaciones gráficas: Entidad Atributo Interrelación El esquema conceptual resultante se denomina Diagrama Entidad-Interrelación (DER).
Entidad Entidad Cualquier objeto concreto o abstracto del que se requiere almacenar información. Una persona, lugar, objeto, suceso, concepto... Tiene asociado un NOMBRE (generalmente, sustantivo singular). Ej: AUTOR, LIBRO, PRÉSTAMO, DEPARTAMENTO, ALUMNO, MATRICULACIÓN... Representación gráfica: rectángulo.
Interrelación Interrelación Correspondencia o asociación entre dos o más entidades. Tiene asociado un NOMBRE (generalmente, un verbo). Ej: interrelación ESCRIBE, entre las entidades AUTOR y LIBRO. Ej: la relación ESTUDIA, entre ALUMNO y ASINATURA Representación gráfica: rombo.
Atributo Atributo Propiedad o característica de interés sobre una entidad o interrelación. Ej: nombre del autor, fecha de nacimiento... Rango o dominio del atributo: conjunto de valores que puede tomar. Nota: solamente permitimos atributos univaluados. Representación gráfica: óvalo.
Atributo - Ejemplos Ejemplos: Atributos de la entidad ALUMNO: DNI, nombre, domicilio, edad. Dominio(edad): número entero Dominio(nombre): cadena de texto Dominio(domicilio): cadena de texto Atributos de la interrelación PRESTA: fecha. Dominio(fecha): fecha/hora.
Tipos de entidades Regular o fuerte: existe por sí misma, independientemente de cualquier otra. Débil: depende de alguna entidad existente. Si desaparece la anterior, desaparecerá la débil vinculada a la misma. Representación gráfica: doble rectángulo.
Tipos de entidades débiles Existencia (E) o fuerte: cada instancia (ocurrencia única) de la entidad débil se puede identificar por sus propios atributos. Identificación (ID): las instancias de la entidad no pueden ser identificadas por sus propios atributos. Se necesita añadir atributos de la entidad de la que depende para identificarse. Nota: diremos que la entidad débil tiene dependencia en existencia/identificación de la entidad de la que depende.
Tipos de entidades débiles - Ejemplos LIBRO(isbn,título,páginas,editorial,año) EJEMPLAR(código,tipo-pasta) EJEMPLAR es una entidad débil en existencia. La entidad EJEMPLAR depende de la entidad fuerte LIBRO, pero se identifican las ocurrencias de la entidad mediante el código único asociado a cada ejemplar de la biblioteca.
Tipos de entidades débiles - Ejemplos CUENTA- BANCARIA(codigoCuenta,titulo,fechaApertura,saldo) OPERACION(numOperacionCuenta,tipo,fecha,cantidad) OPERACION es una entidad débil en identificación, que depende en identificación de la entidad fuerte. El número de la operación dentro de la cuenta desde su apertura (1, 2, 3, 4...) no basta para identificarla, necesitamos además el código de la cuenta a la que está asociada.
Claves y discriminadores Clave de una entidad: conjunto de atributos que permiten identificar de forma única a cada instancia de la entidad. Debe ser minimal (ningún subconjunto de la misma puede actuar como clave). Clave candidata: cada conjunto de atributos que puede actuar como clave de una entidad. Clave primaria (PK, primary key): clave candidata elegida por el diseñador para identificar las instancias de la entidad. Representación gráfica: atributo subrayado (ĺınea continua).
Claves y discriminadores - Ejemplos ALUMNO(nif,nombre,código,edad,población) Claves candidatas: {nif} {código} Nota: {nombre,apellidos} no es una clave, ya que pueden existir en la bd dos alumnos con el mismo nombre y apellidos. PRESTAMO(ISBN-libro,título,nif,fecha,codPréstamo) Claves candidatas: {codprestamo} {ISBN-libro,nif,fecha}
Discriminador de una entidad débil Una entidad débil con dependencia en identificación NO puede identificar por sí sola a las instancias de la entidad (para identificarse necesita además datos de la entidad fuerte a la que está vinculada). Por tanto, NO posee clave primaria. Pero es necesario identificar, distinguir entre sí a cada instancia de la entidad débil vinculada a una instancia concreta de la entidad fuerte asociada. Este es el papel del discriminador. Discriminador: conjunto minimal de atributos que, junto con la clave primaria de la entidad fuerte de la que depende en identificación, permiten identificar a cada instancia de la entidad débil.
Discriminador de entidad débil en ID - Ejemplos CUENTA(código,nif-titular,fecha-apertura,saldo) OPERACION(numOperacionCuenta,tipo,fecha,cantidad) OPERACION tiene dependencia en ID de CUENTA. El atributo código es una clave candidata, que elegimos como clave primaria, de la entidad fuerte CUENTA. El atributo numoperacioncuenta es un discriminador para OPERACION puesto que, junto con el atributo código de la entidad CUENTA, permite diferenciar cada operación de la CUENTA.
Cardinalidad y tipo de una interrelación Cardinalidad de una interrelación: Sea una interrelación R asocia a las entidades E 1 y E 2. Cardinalidad de la entidad E 1 en la interrelación R: es el par (a, b) que indica el número mínimo a y máximo b de instancias de E 1 que pueden estar asociadas a una instancia fija de E 2. Son posibles las cardinalidades (0, 1), (1, 1), (0, n), (1, n). Nota: n significa varios, muchos.
Cardinalidad y tipo de una interrelación - Ejemplos Interrelación PERTENECE entre CLIENTE y PEDIDO. PEDIDO participa con cardinalidad (1, n): Fijado un CLIENTE, al menos, tendrá asociado un pedido, y puede tener asociados varios pedidos. CLIENTE participa con cardinalidad (1, 1): Fijado un PEDIDO, tendrá asociado obligatoriamente un cliente, y sólo uno.
Cardinalidad y tipo de una interrelación - Ejemplos Interrelación CURSA entre las entidades ALUMNO y ASIGNATURA. ASIGNATURA participa con cardinalidad (1, n): Fijado un ALUMNO, al menos, estará matriculado en una asignatura, y puede cursar varias asignaturas. ALUMNO participa con cardinalidad (0, n): Fijada una ASIGNATURA, puede que ningún alumno se haya matriculado de la asignatura, y puede ser cursada por muchos alumnos.
Cardinalidad y tipo de una interrelación - Ejemplos Interrelación ES entre las entidades PAIS y CAPITAL. CAPITAL participa con cardinalidad (1, 1): Fijado un PAIS, tendrá asociado obligatoriamente una capital, y sólo una. PAÍS participa con cardinalidad (1, 1): Fijada una CAPITAL, tendrá asociado obligatoriamente un país, y sólo uno.
Cardinalidad y tipo de una interrelación - Ejemplos Interrelación PERTENECE entre las entidades CUENTA y OPERACION (relación débil en identificación). CUENTA participa con cardinalidad (1, 1): Fijada una OPERACION, tendrá asociada obligatoriamente una cuenta, y sólo una. OPERACION participa con cardinalidad (0, n): Fijada una CUENTA, puede no tener asociada ninguna operación, y puede tener asociada muchas operaciones. Nota: En una relación débil en identificación, la entidad fuerte participa con cardinalidad (1, 1).
Tipo de una interrelación Sea R una interrelación entre dos entidades E 1 y E 2 : Tipo de R: par (a : b), donde a y b son las cardinalidades máximas de E 1 y E 2 en R. Los tipos que se pueden dar son: Una a una (1 : 1). Una a muchas (1 : N), o cero a muchas (0 : N). Muchas a muchas (N : M).
Tipo de una interrelación - Ejemplos Una a una (1 : 1): una instancia de E 1 está asociada con una, y sólo una, instancia de E 2. (Ejemplo: País y Capital) Una a muchas (1 : N): una instancia de E 1 puede estar asociada con muchas instancias de E 2, pero una instancia de E 2 sólo puede estar asociada con una instancia de E 1. (Ejemplo: Cliente y Pedido)
Tipo de una interrelación - Ejemplos Muchas a Muchas (N : M): una instancia de E 1 puede estar asociada con muchas instancias de E 2 y viceversa. (Ejemplo: Alumno y Asignatura)
Jerarquías de generalización/especialización Jerarquías de generalización/especialización Descomposición de una entidad padre (o supertipo) en varias entidades hijo (o subtipos). Los subtipos heredan los atributos de la entidad padre. Los subtipos pueden además poseer atributos propios. Ejemplo: La entidad padre Documento se divide en los subtipos: Libro, Artículo y Revista. Para incluir jerarquías en el modelo E R, se emplean relaciones de especialización ES-UN (en inglés, IS-A).: Representación gráfica: triángulo invertido.
Clases de Jerarquías Clases de Jerarquías de generalización/especialización Total o parcial: Total (ĺınea doble): cada instancia del supertipo pertenece obligatoriamente a un subtipo. Parcial (ĺınea simple): puede haber instancias del supertipo que no pertenecen a ningún subtipo. Nota: si añadimos un subtipo Otros a una jerarquía parcial, se convierte en total. Exclusiva o solapada: Exclusiva (disjoint, d): una instancia del supertipo solamente puede pertenecer a un subtipo. Solapada (overlapping, o): una instancia del supertipo puede pertenecer a más de un subtipo. Nota: si añadimos un subtipo Otros a una jerarquía parcial, se convierte en total.
Clases de Jerarquías - Ejemplos El supertipo Persona y los subtipos Hombre, Mujer forman una jerarquía total y exclusiva. El supertipo Socio y los subtipos Trabajador, Estudiante, Jubilado, Otros forman una jerarquía total y solapada (un socio puede estudiar y trabajar a la vez).
Clases de Jerarquías - Ejemplos El supertipo Obra y los subtipos Pintura, Escultura forman una jerarquía parcial y exclusiva (puede que una obra no sea ni escultura ni pintura). El supertipo Obra y los subtipos Libro, Artículo, Recopilación forman una jerarquía parcial y solapada (una recopilación es también un libro).
Interrelaciones reflexivas Interrelaciones reflexivas Interrelación reflexiva: es una relación que asocia una entidad consigo misma. Ejemplo: algunos empleados que pueden ser jefes de otros empleados. Definimos la interrelación Supervisa, que asocia la entidad Empleado consigo misma. Nota: Si los empleados pueden dividirse en jefes y subordinados, es preferible usar una jerarquía de generalización. Ahora bien, si un jefe puede a su vez tener otro jefe de nivel superior y así recursivamente es necesario usar una relación reflexiva.
Interrelaciones reflexivas - Roles En una relación reflexiva la misma entidad participa 2 veces. Ahora bien, cada vez cumpliendo un papel o rol distinto. Ejemplo: Empleado participa en la relación Supervisa: Una vez cumpliendo el rol: ser jefe de. Otra vez cumpliendo el rol: estar subordinado a. Nota: cuando en un DER aparecen relaciones reflexivas, deben escribirse los correspondientes roles. Es esencial para determinar las cardinalidades en la relación.
Interrelaciones históricas Para dos entidades de un DER podemos considerar más de una relación que las asocie. Útil para almacenar información histórica completa. Ejemplo: proyectos en los que trabaja actualmente un empleado y proyectos en los que ha trabajado anteriormente. Establecemos dos relaciones Trabaja y Trabajaba entre las entidades EMPLEADO y PROYECTO.
Interrelaciones de grado K 3 Interrelaciones de grado K 3 En un DER pueden aparecer relaciones que asocien a más de dos entidades, esto es, de grado k 3. Ejemplo: La relación ternaria Nota asocia las entidades Alumno, Asignatura y Convocatoria.
Interrelaciones de grado K 3 - Simplificación Siempre es posible transformar un DER en otro equivalente en el cual sólo aparecen relaciones binarias. Método: Supongamos que R asocia las entidades E 1, E 2, E 3 : 1 Eliminar la interrelación R. 2 Añadir una nueva entidad E 4 con los atributos de R. 3 Añadir tres relaciones binarias nuevas: R 1 entre E 4 y E 1. R 2 entre E 4 y E 2. R 3 entre E 4 y E 3.
Algunos ejercicios A continuación se proporcionan enlaces a algunos ejercicios sobre diseño conceptual: Pedidos Centro comercial Videoteca - Discoteca Parques naturales Ejercicios adicionales Podemos realizar los diseños mediante el programa Dia Diagram Editor.