Tema 1: Bases De Datos Relacionales. Diseño Conceptual - Us

Transcription

Tema 1:Bases de datos relacionales.Diseño conceptual(2014/2015)Luis Valencia Cabreralvalencia@us.esCiencias de la Computación e IA(http://www.cs.us.es/)(http://www.cs.us.es/ lvalencia)Universidad de Sevilla

2Indice Bases de datos relacionales Introducción al diseño de BD El diagrama Entidad-Relación (DER) Claves y discriminadores Cardinalidad. Tipo de una relación Jerarquías de Generalización Tipos especiales de relación Fases para la obtención del DER

3Bases de datos relacionales

4Bases de datos relacionalesComo vimos el día anterior. Modelo de Datos Relacional Propuesto por Edgar F. Codd, 1970.Los datos se organizan mediante tablas relacionadas.Diseño de BD: basado en el Modelo Entidad–Relación oEntidad-Interrelación(P. Chen, 1976).Algunas apariciones históricas: (1974)Ingress de la Universidad de California en Berkeley.SQL(Structured Query Language) de IBMORACLE de Oracle Corporation.Sistemas relacionales para microordenadores: Access de Microsoft, Base de OpenOffice.org

5Bases de datos relacionales Una BD relacional es un conjunto de tablas quealmacenen datos, relacionadas entre sí. Las tablas se organizan en registros y campos. Tabla AUTOR (3 registros de 5 campos cada uno)

6Bases de datos relacionales Registro: cada fila de la tabla.(Un registro datos sobre un individuo)(44345789, Ana Pérez, C/Sol, 17, Sevilla, 19/5/1960) Campo: cada parte de los datos de los registros. La tabla AUTOR está formada por cinco campos:DNI, Nombre, Dirección, Ciudad y Fecha. Tabla: conjunto de todos los registros junto con sudefinición de campos.

7Bases de datos relacionales Tablas planas: una única tabla recoge todos losdatos. Problema: Duplicación de datos.Solución: Tablas relacionales: datos organizados en distintastablas con campos con contenido común.

8Bases de datos relacionales Tabla AUTOR (3 registros de 5 campos) Tabla ESCRIBE (4 registros de 3 campos) Nota: el campo Autor de la tabla ESCRIBE y el campo DNIde la tabla AUTOR permiten enlazar ambas tablas.

Introducción al diseño debases de datos

10Introducción al diseño debases de datos El diseño de una BD consta de 3 fases: Diseño conceptual Diseño lógico Diseño físico

11Introducción al diseño debases de datos Diseño conceptual: Se parte de:especificación de requisitos(descripción de la información que debe recoger laBD y las prestaciones a ofrecer). Se obtiene:esquema conceptual (descripción enlenguaje natural/gráfico de la estructura de la BD,independiente del modelo de datos elegido y del SGBDque se usará posteriormente para implementarla). Modelo conceptual: lenguaje natural o gráficoque se emplea para describir un esquema conceptual.

12Introducción al diseño debases de datos Diseño lógico: Se parte de: esquema conceptual.Se obtiene: esquema lógico (descripción de laestructura de la BD basada en el modelo dedatos elegido para implementarla). Ej: descripción gráfica de un conjunto de tablasrelacionales.Modelo lógico: lenguaje empleado para describir elesquema lógico. Es independiente del SGBD que seempleará para implementar la BD, pero sí depende delmodelo de datos elegido.

13Introducción al diseño debases de datos Diseño físico: Se parte de: esquema lógico.Objetivo: determinar estructuras de almacenamiento yestructuras de acceso para que las aplicaciones queaccedan a la BD obtengan un buen rendimiento. Se obtiene: esquema físico (descripción de laimplementación de la BD usando un determinado SGBD. Sedetallan las estructuras físicas de almacenamiento de datosen el ordenador, los métodos de acceso a dichos datos y elmodelo de seguridad del sistema).

14Introducción al diseño debases de datosNota 1. nos centraremosfundamentalmente en el diseñoconceptual y el diseño lógico de las BD. Nota 2. En este curso emplearemos. Modelo conceptual: modelo Entidad–Relación Modelo lógico: modelo de datos relacional

15Introducción al modeloEntidad-Relación

16Introducción al modeloEntidad–Relación El modelo Entidad–Relación (ER) (también llamadoentidad-interrelación) es el modelo conceptual másutilizado para el diseño conceptual de BD. Introducido porPeter Chen en 1976 en el artículo: The Entity–Relationship Model. Toward a Unified View ofData, Chen, P. Transactions on Database Systems, Vol.1, 1976Está formado por un conjunto de conceptos(entidad, atributo, relación) que permiten describir lainformación relevante de cierta parcela de larealidad mediante un conjunto de representacionesgráficas. El esquema conceptual asociado se denominaDiagrama Entidad–Relación (DER).

17Entidades Entidad: cualquier objeto concreto oabstracto del que se desea almacenarinformación. Una entidad puede ser una persona, unlugar, un objeto, un concepto, un suceso. Cada entidad tiene asociado un NOMBRE(usualmente, un sustantivo comúnsingular). Ejemplos: AUTOR, LIBRO, PRÉSTAMO. Representación gráfica: rectángulo.AUTOR

18Relaciones Relación: correspondencia o asociaciónentre dos o más entidades. Cada relación tiene asociado un NOMBRE(usualmente, un verbo en singular).Ejemplos:La relación ESCRIBE asocia la entidad AUTOR yla entidad LIBRO. La relación ESTUDIA asocia la entidad ALUMNOy la entidad ASIGNATURA. Representación gráfica: rombo.

19Grado de una relación Grado: número de entidades queintervienen en la relación. Nota: binaria grado 2, ternaria 3,.Nota: Podemos restringirnos a relacionesbinarias. En efecto, una relación de gradok 2 puede simularse añadiendo unanueva entidad y k nuevas relacionesbinarias.

20Atributos Atributo: propiedad o característica deinterés que describe a una entidad o a unarelación. Ejemplo: nombre del autor. Nota: sólo permitiremos atributos univaluados.Rango o dominio de un atributo: conjunto devalores que puede tomar el atributo.Representación gráfica: un óvalo.

21Atributos Ejemplos: DNI, Nombre, Domicilio, Edad son atributos de laentidad ALUMNO. Dominio(Edad) número enteroDominio(Nombre) cadena de textoDominio(Domicilio) cadena de texto Dominio(Fecha) formato fecha–hora Fecha atributo de la relación PRESTA que asocia lasentidades LIBRO y PERSONA.

22Tipos de entidades Regular o fuerte: tiene existencia por sí misma enel universo del discurso, independientemente decualquier otra entidad.Débil: depende de alguna entidad existente en eluniverso del discurso. Al desaparecer esta entidadsuperior, desaparecerá la entidad débil vinculadaa la misma.Ejemplo: EJEMPLAR (entidad débil) que dependede LIBRO (entidad fuerte)Representación gráfica: Entidad débil, rectángulodoble.

23Tipos de entidades débiles Una entidad débil lo puede ser. en Existencia(E): las instancias de la entidaddébil pueden ser identificadas por sus propiosatributos.en Identificación(ID): las instancias de laentidad no pueden ser identificadas por suspropios atributos. Es necesario añadir lainformación de uno, o varios, atributos de laentidad fuerte de la cual depende. Nota: Diremos también que la entidad débiltiene dependencia en identificación de laentidad fuerte.

24Tipos de entidades rial,año) EJEMPLAR(código,tipo-pasta) EJEMPLAR es una entidad débil enexistencia.La entidad EJEMPLAR, aunque dependede la entidad fuerte LIBRO, puedeidentificarse por sí misma (mediante elatributo: código).

25Tipos de entidades débiles.Ejemplos a,saldo)OPERACIÓN(número,tipo,fecha,cantidad) OPERACIÓN es una entidad débil enidentificación, que depende en identificaciónde la entidad fuerteCUENTA-BANCARIA. El número de la operación(0,1,2,3,4,.) no basta para identificarla,necesitamos además el código de la cuenta ala que la operación está asociada.

Claves y discriminadores

27Claves de una entidad Clave: conjunto de uno o más atributos quepermiten identificar de forma única a cadainstancia de la entidad. Además, dichoconjunto de atributos debe ser minimal, estoes, ningún subconjunto de atributos de laclave puede actuar también como clave.Clave candidata: cada uno de los conjuntosde atributos que pueden actuar como clavede una entidad.Clave primaria (PK Primary Key): clavecandidata elegida por el diseñador de la BDpara identificar una entidad.

28Claves de una entidad.Ejemplos n) Claves candidatas:

28Claves de una entidad.Ejemplos n) Claves candidatas: nif CódigoNota: (nombre,apellidos) no es una clave porque puedenexistir en la BD dos alumnos distintos con los mismos nombre yapellidos.

28Claves de una entidad.Ejemplos n) Claves candidatas: nif CódigoNota: (nombre,apellidos) no es una clave porque puedenexistir en la BD dos alumnos distintos con los mismos nombre yapellidos. o) Claves candidatas:

28Claves de una entidad.Ejemplos n) Claves candidatas: nif CódigoNota: (nombre,apellidos) no es una clave porque puedenexistir en la BD dos alumnos distintos con los mismos nombre yapellidos. o) Claves candidatas: cod-préstamo (ISBN-libro,nif,fecha)

29Discriminador de unaentidad débilSi una entidad débil tiene dependenciaen identificación, NO posee claveprimaria. En su lugar, posee undiscriminador. Discriminador: conjunto minimal deatributos que, junto con la clave primariade la entidad fuerte de la que dependeen identificación, permiten identificarcada instancia de la entidad.

30Discriminador de unaentidad débil. Ejemplo CUENTA(código,nif-titular,fecha-apertura,saldo) OPERACIÓN(número,tipo,cantidad,fecha) OPERACIÓN tiene dependencia enidentificación de la entidad fuerte CUENTA.El atributo código es una clave candidata (la única,de hecho) de la entidad fuerte CUENTA.El atributo número es un discriminador paraOPERACIÓN, puesto que junto con el atributocódigo de la entidad CUENTA permite determinarcada operación.

Cardinalidad.Tipo de una relación

32Cardinalidad Sea una relación R asocia a las entidades E1y E2.Cardinalidad de la entidad E1 en la relación R:es el par (a, b) que indica el número mínimo( a) ymáximo( b) de instancias de E1 que pueden estarasociadas a una instancia fija de E2.Son posibles las siguientes cardinalidades: (0, 1), (1, 1), (0, n), (1, n).Nota: n significa “varios”, “muchos”.

33Cardinalidad. Ejemplos Relación PERTENECE entre las entidades 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.

34Cardinalidad. Ejemplos Relación CURSA entre las entidades ALUMNO yASIGNATURA.ASIGNATURA participa con cardinalidad (1, n). Fijado un ALUMNO, al menos, estará matriculado en una asignatura, ypuede cursar varias asignaturas.ALUMNO participa con cardinalidad (0, n). Fijada una ASIGNATURA, puede que ningún alumno se haya matriculado de laasignatura, ypuede ser cursada por muchos alumnos.

35Cardinalidad. Ejemplos Relación ES entre las entidades PAIS y CAPITAL. CAPITAL participa con cardinalidad (1, 1). Fijado un PAIS, tendrá asociado obligatoriamente una capital, ysólo una. PAÍS participa con cardinalidad (1, 1). Fijada una CAPITAL, tendrá asociado obligatoriamente un país, ysólo uno.

36Cardinalidad. Ejemplos Relación PERTENECE entre las entidades CUENTA yOPERACION (relación débil en identificación).CUENTA participa con cardinalidad (1, 1). Fijada una OPERACION, OPERACION participa con cardinalidad (0, n). Fijada una CUENTA, (-) tendrá asociada obligatoriamente una cuenta, y sólo una.puede no tener asociada ninguna operación, ypuede tener asociada muchas operaciones.Nota: En una relación débil en identificación, la entidadfuerte participa con cardinalidad (1, 1).

37Cardinalidad.Tipo de una relaciónSea R una relación entre dos entidades R1y R2: El Tipo de R es el par (a : b) donde a y bson las cardinalidades máximas de E1 y E2en 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)

38Cardinalidad. Tipo de unarelación. Ejemplos Una a una (1:1): una instancia de E1 estéasociada con una, y sólo una, instanciade E2. (Ejemplo: País y Capital)

39Cardinalidad. Tipo de unarelación. Ejemplos Una a muchas (1:N): una instancia de E1puede estar asociada con muchas instanciasde E2, pero una instancia de E2 sólo puedeestar asociada con una instancia de E1.(Ejemplo: Cliente y Pedido)

40Cardinalidad. Tipo de unarelación. Ejemplos Muchas a Muchas (N:M): una instanciade E1 puede estar asociada con muchasinstancias de E2 y viceversa. (Ejemplo:Alumno y Asignatura)

Jerarquías deGeneralización/especialización

42Jerarquías de generalizació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 lossubtipos: Libro, Artículo y Revista.Para incluir jerarquías en el modelo E–R, se empleanrelaciones de especialización ES-UN (en inglés, IS-A).Representación gráfica: triángulo invertido

43Clasificación de jerarquías Total o Parcial Total (doble línea): cada instancia delsupertipo pertenece obligatoriamente a unsubtipo. Parcial (línea simple): existen instancias delsupertipo que no pertenecen a ningúnsubtipo. Nota: Una jerarquía parcial se transforma entotal añadiendo un nuevo subtipo Otros.

44Clasificación de jerarquías Exclusiva o Solapada: Exclusiva (disjoint, d): Una instancia de laentidad padre sólo puede pertenecer a unúnico subtipo. Solapada (overlapping, o): una instanciade la entidad padre puede pertenecer amás de un subtipo.

45Clasificación de Jerarquías.Ejemplos El supertipo Persona y los subtiposHombre, Mujer forman una jerarquía totaly exclusiva.

46Clasificación de Jerarquías.Ejemplos El supertipo Socio y los subtiposTrabajador, Estudiante, Jubilado, Otrosforman una jerarquía total y solapada (unsocio puede estudiar y trabajar a la vez).

47Clasificación de Jerarquías.Ejemplos El supertipo Obra y los subtipos Pintura,Escultura forman una jerarquÍa parcial yexclusiva (puede que una obra no sea niescultura ni pintura).

48Clasificación de Jerarquías.Ejemplos El supertipo Obra y los subtipos Libro,Artículo, Recopilación forman unajerarquía parcial y solapada (unarecopilación es también un libro).

Tipos especiales derelación

50Relaciones reflexivas Relación reflexiva: es una relación que asocia unaentidad consigo misma. Ejemplo: empleados que pueden ser jefes deotros empleados. Empleamos la relación Supervisaque asocia la entidad Empleado consigo misma.Nota: Si los empleados pueden dividirse en jefes ysubordinados, es preferible usar una jerarquía degeneralización. Ahora bien, si un jefe puede a suvez tener otro jefe de nivel superior y asírecursivamente es necesario usar una relaciónreflexiva.

51Relaciones reflexivas. Roles En una relación reflexiva una misma entidadparticipa dos veces.Ahora bien, cada vez lo hará cumpliendo un papelo rol distinto. Ejemplo: La entidad Empleado participa en la relaciónSupervisa: Una vez cumpliendo el rol: “ser jefe de”.Otra vez cumpliendo el rol: “estar subordinado a”.Nota: Cuando en un DER aparecen relacionesreflexivas, deben escribirse los correspondientes roles. Esesencial para determinar las cardinalidades en larelación.

52Relaciones históricas Para dos entidades de un DER podemosconsiderar más de una relación que las asocie. Útil para almacenar información históricacompleta.Ejemplo: proyectos en los que trabajaactualmente un empleado y proyectos en los queha trabajado anteriormente. Establecemos dos relaciones Trabaja y Trabajabaentre las entidades EMPLEADO y PROYECTO.

53Relaciones de grado K 3 En un DER pueden aparecer relacionesque asocien a más de dos entidades,esto es, de grado k 3. Ejemplo: La relación ternaria Nota asocialas entidades Alumno, Asignatura yConvocatoria.

54Relaciones de grado K 3 Para hallar la cardinalidad con la queparticipa E1 en una relación ternaria (engeneral, de grado k 3) se fija unacombinación de dos instancias de lasentidades restantes (en general, de k 1instancias de las entidades restantes); yse calcula el número mínimo y máximode instancias de E1 que se relacionancon dicha combinación.

55Relaciones de grado K 3 Ejemplo: Relación Nota entre Alumno, Asignatura yConvocatoria. ¿Cuántos alumnos se examinan de una asignatura en unaconvocatoria? Cardinalidad de Alumno: (0, n).¿De cuántas asignaturas puede examinarse un alumno enuna convocatoria? Cardinalidad de Asignatura: (0, n).¿En cuántas convocatorias puede examinarse un alumnode una asignatura? Cardinalidad de Convocatoria: (0, n)Tipo de la relación: (N:M:P)

56Relaciones de grado K 3 Ejemplo: Relación Pita entre las entidades Equipo(rol: local), Equipo (rol: visitante) y Árbitro. ¿Cuántos equipos han jugado como locales contra unequipo pitando un árbitro? Cardinalidad de Equipo (rol:local): (0, n).¿Cuántos equipos han jugado como visitantes contraun equipo pitando un árbitro? Cardinalidad de Equipo(rol: visitante): (0, n).¿Cuántos árbitros pueden pitar un partido entre dosequipos? Cardinalidad de Árbitro: (0, 1)Tipo de la relación: (1:N:M)

57Relaciones de grado K 3 Siempre es posible transformar un DER en otroequivalente en el cual sólo aparecen relacionesbinarias.Método: Supongamos que R asocia las entidadesE1, E2, E3.1.2.3.Eliminar la relación R.Añadir una nueva entidad E4 con los atributosde R.Añadir tres relaciones binarias nuevas: R1 entre E4 y E1.R2 entre E4 y E2.R3 entre E4 y E3.

58Relaciones de grado K 3

Fases para la obtencióndel DER

60Fases para la obtención delDER1.2.3.4.5.6.Identificar las entidades dentro del sistema (entidadesfuertes y entidades débiles).Identificar y describir los atributos de cada entidad.Determinar las claves primarias de las entidades.(Discriminadores para entidades débiles enidentificación).Establecer las relaciones entre las entidades y obtenersu cardinalidad y su tipo. Explicitar los roles en lasrelaciones reflexivas.Representar gráficamente el esquema obtenido.Verificación. (Eliminar relaciones redundantes,eliminar o añadir entidades, eliminar o añadiratributos, .)

61Bibliografía Diseño de Bases de Datos Relacionales,Adoración de Miguel, Mario Piattini, EsperanzaMarcos, RA–MA Editorial (1999). Apuntes de Bases de Datos, Mercedes Marqués,Universidad Jaume I en Castellón pdf Fundamentos de Sistemas de Bases de Datos, 5taEdición – Ramez Elmasri & Shamkant B. Navathe(2011).

Bases de datos relacionales Registro: cada fila de la tabla. (Un registro datos sobre un individuo) (44345789, Ana Pérez, C/Sol, 17, Sevilla, 19/5/1960) Campo: cada parte de los datos de los registros. La tabla AUTOR está formada por cinco campos: DNI, Nombre, Dirección, Ciudad y Fecha. Tabla: conjunto de todos los registros junto con su