Diseo Lgico de Bases de Datos n Modelo Entidad/Relacin n Modelo Relacional n Paso a tablas Modelos de Datos Bases de Datos / O.E.I../ U.P.M. Modelo Entidad-Relacin n Formulado por P.P. Chen en 1976 n Modelo de datos que representa un esquema de base de datos mediante entidades y asociaciones n Describe una base de datos de una forma sencilla y global n Se realiza a partir de los requisitos de datos que debe cumplir una base de datos 2 Bases de Datos / O.E.I../ U.P.M. n Entidad Objeto del mundo real que tiene existencia pos s mismo Compuesto de ocurrencias de entidad Ejemplo Entidad Clientes Cliente Pepe Perez con DNI 12345678 Atributos: definen las propiedades de una entidad, basados en un dominio (conjunto de valores posibles que puede tomar) Entidades Bases de Datos / O.E.I../ U.P.M. Entidades n Atributo - Caracterstica propia de una entidad, comn para todas las ocurrencias del mismo tipo n Dominio - Conjunto de valores permitidos para un atributo n Para cada atributo hay que definir: Nombre Descripcin Dominio Funcin (identificacin o definicin) 3 Bases de Datos / O.E.I../ U.P.M. Entidades n Ejemplo: n Entidad: Empleado Nombre de atributo: Cdigo Descripcin: Cdigo nico por empleado asignado por la empresa Funcin: Identificacin (+Definicin) Dominio: Nmeros positivos de dos cifras Bases de Datos / O.E.I../ U.P.M. Entidades Mara Anguiano DNI: 36061281 Gran Va 9 Sucursal Barcelona Cdigo: 02 Ocurrencias de entidad Empleado Departamentos DNI Domicilio Nombre Cdigo Descrip. Entidades 4 Bases de Datos / O.E.I../ U.P.M. Modelo Entidad-Relacin n Relacin o Asociacin Expresa una asociacin entre ocurrencias de entidad Puede tener atributos propios Grado: nmero de entidades que asocia Cardinalidad: nmero de ocurrencias de una entidad que pueden asociarse con otra entidad Mxima - 1:1, 1:N, N:1, N:M Mnima - 0:0, 1:0, 0:1, 1:1 Bases de Datos / O.E.I../ U.P.M. Relaciones n Conjunto de ocurrencias de relacin del mismo tipo Empleado Departamento Trabaja en 5 Bases de Datos / O.E.I../ U.P.M. Relaciones n Las relaciones tambin pueden tener atributos Producto Cliente Compra Fecha Bases de Datos / O.E.I../ U.P.M. Relaciones n Es importante el rol o papel de cada ocurrencia n Se denomina grado de una relacin al nmero de entidades que relaciona Empleado Es Jefe de Jefe Subordinado 6 Bases de Datos / O.E.I../ U.P.M. Cardinalidad Mxima Nmero de ocurrencias de entidad que se pueden asociar como mximo a otra a travs de una relacin A B a 1 a 2 a n b 1 b 2 b m ... ... 1:1 Ej.:Una persona tiene un coche y un coche es de una sola persona Bases de Datos / O.E.I../ U.P.M. Cardinalidad A B a 1 a 2 a n b 1 b 2 b m ... ... 1:N Ej.:Una persona tiene varios coches y un coche es de una sola persona 7 Bases de Datos / O.E.I../ U.P.M. Cardinalidad A B a 1 a 2 a n b 1 b 2 b m ... ... N:1 Ej.: Una persona tiene un coche y un coche es de varias personas Bases de Datos / O.E.I../ U.P.M. Cardinalidad B a 1 a 2 a n b 1 b 2 b m ... ... N:M A Ej.:Una persona tiene varios coches y un coche es de varias personas 8 Bases de Datos / O.E.I../ U.P.M. Cardinalidad Mnima Nmero mnimo de ocurrencias de entidad que se deben asociar a otra a travs de una relacin Posibilidades: 0:0, 0:1, 1:0, 1:1 Nota: Hay que tener especial cuidado con las mnimas 1:1 Empleado Departamento Trabaja en (0,1) (1,N) Bases de Datos / O.E.I../ U.P.M. Cardinalidad n Ej.: Empleado Departamento Trabaja en Compaa Pertenece (1,M) (1,1) (0,N) (0,1) 9 Bases de Datos / O.E.I../ U.P.M. Modelo Entidad-Relacin n Clave de Entidad Atributo o conjunto de atributos que identifican de forma nica cada ocurrencia Si una entidad no tiene clave se dice que es dbil y que tiene dependencia de Identificacin Una entidad es dbil si depende de la existencia de otra entidad Bases de Datos / O.E.I../ U.P.M. Claves n Dependencia de Identificacin (ID) - La entidad no tiene clave primaria Cliente Factura Tiene (1,1) (0,M) C# Nombre Domicilio Cdigo Importe Si la factura tiene cdigos que se repiten por cliente, no tendr clave, pero s un discriminador Facturas tiene dependencia de ID respecto de Cliente 10 Bases de Datos / O.E.I../ U.P.M. Claves n Dependencia de existencia - La existencia de una ocurrencia de entidad dependende de la existencia de otra Cliente Factura Tiene (1,1) (0,M) C# Nombre Domicilio Cdigo Importe Aunque Factura tenga clave, si se da de baja un cliente hay que dar de baja todas sus facturas Bases de Datos / O.E.I../ U.P.M. Modelo Entidad-Relacin n Representacin grfica Entidades: rectngulos Atributos: incluidos en la entidad, o con elipses conectadas a sta Relaciones: rombos o hexgonos, uniendo las entidades asociadas Cardinalidad: se detalla encima de las lneas que asocian entidades 11 Bases de Datos / O.E.I../ U.P.M. Representacin grfica E# Nombre Categora Empleado Trabaja Fecha Entidad con atributos Relacin con atributos Bases de Datos / O.E.I../ U.P.M. Ejemplo Cliente Producto Compra (0,M) C# Nombre Domicilio Cdigo Precio Empleado Trabaja Departamento (1,1) (0,N) (0,M) (0,M) (0,N) Fecha (0,N) (1,M) Nombre E# D# Descripcin 12 Bases de Datos / O.E.I../ U.P.M. Modelo Entidad-Relacin n Ejemplo (Requisitos) n Departamentos: cdigo nico por departamento y el nombre n Proyectos: cdigo nico por proyecto y nombre. Cada proyecto se gestiona por un solo depto y un depto puede gestionar varios n Empleados: cdigo nico de empleado, nombre y apellidos, direccin, telfono, fecha de nacimiento, sexo, si est casado o no y sueldo que percibe. n Un empleado pertenece a un solo depto y en un depto puede haber varios empleados. Por otro lado cada departamento tiene un empleado como jefe. n Los empleados pueden participar en varios proyectos y en un proyecto pueden participar varios empleados, pero interesa saber el tiempo (en horas) que dedica cada empleado a los proyectos en los que participa. Bases de Datos / O.E.I../ U.P.M. Modelo Entidad-Relacin n Ejemplo (Diagrama Entidad-Relacin) EMPLEADO E# Nombre Apellidos Direccin Telefono FechaNac Sexo Casado Sueldo DEPARTAMENTO D# NombreDep PROYECTO P# NombreP ES JEFE DE (1,1) (0,1) REALIZA (0,N) (1,1) PERTENECE (1,N) (1,1) PARTICIPA (0,N) (0,M) Tiempo 13 Bases de Datos / O.E.I../ U.P.M. Modelo E/R: Restricciones n Si no se puede representar una relacin N:M, usar dos relaciones 1:M Producto Cliente Compra Fecha (0,M) (0,N) Producto Cliente Fecha Detalle de Compra Realiza Aparece (0,M) (1,1) (0,M) (1,1) Bases de Datos / O.E.I../ U.P.M. Modelo Relacional n Est basado en la teora de conjuntos y en el concepto matemtico de relacin n La estructura lgica principal son tablas o relaciones n Cada relacin tiene un nmero fijo de columnas o atributos (esquema o intensin) y un nmero variable de filas o tuplas (extensin) n Una BD relacional est compuesta por varias tablas o relaciones 14 Bases de Datos / O.E.I../ U.P.M. Modelo Relacional n Ejemplo DNI Matricula 38976 CC123 2145 C8790 M1234 DNI Nombre Domicilio 38976 Pepe Aqu 2145 Mara All 1234 Juan Aqu Personas Coches Matricula Modelo Ao M1234 Ford 1992 Citroen 1995 CC123 Ford 1989 C8790 2145 Tiene Bases de Datos / O.E.I../ U.P.M. Atributos n Conjunto de smbolos tomados del universo del modelo conceptual n Se usan letras para representarlos: A,B,C,... n Descriptor: conjunto de uno o ms atributos (usaremos X,Y,Z,...) n Cada atributo se asocia con un conjunto de valores posibles que denominamos dominio 15 Bases de Datos / O.E.I../ U.P.M. Tupla, cardinalidad y grado n Ejemplo: n Grado: Nmero de atributos n Cardinalidad: Nmero de tuplas A 1 A 2 A i A n a 11 a 12 a 1j a 1n a m1 a m2 a mj a mn R: Tupla Atributo Bases de Datos / O.E.I../ U.P.M. Condiciones para relaciones (I) Cada tabla debe contener un solo tipo de filas Cada fila debe ser nica (sin repeticiones) Cada columna tiene un nombre nico Cada columna tiene que ser nica Cada columna toma su valor de un dominio 16 Bases de Datos / O.E.I../ U.P.M. Condiciones para relaciones (II) Un dominio puede ser comn para diferentes columnas Las filas pueden estar en cualquier orden Las columnas pueden estar en cualquiert orden Bases de Datos / O.E.I../ U.P.M. Clave n Cada relacin tendr una combinacin de atributos que, tomados en conjunto, identifican de forma nica cada tupla. Si tiene ms de una, se elige la principal y las dems sern alternas DNI 321 134 123 Domicilio Aqu All Nombre Pepe Pepe Juan Telfono 987 789 789 All 17 Bases de Datos / O.E.I../ U.P.M. Clave Al menos debe existir una clave Tipos de claves Principal o primaria Secundarias a alternas Forneas o externas Simples Compuestas ATENCION a las reglas de integridad Bases de Datos / O.E.I../ U.P.M. Paso a Tablas (I) n Entidades Toda entidad se corresponde con una relacin Persona DNI Nombre Domicilio DNI Nombre Domicilio Persona DNI ser la clave principal 18 Bases de Datos / O.E.I../ U.P.M. Paso a Tablas (II) n Relaciones binarias Relacin N:M Siempre ser una tabla, con sus atributos + claves de entidades asociadas Relacin 1:N N:1 Aadir la clave de la tabla uno a la tabla muchos + atributos de la relacin (si procede) Relacin 1:1 Si mnima es 1:1: Aadir la clave de una tabla cualquiera a la otra tabla + atributos de la relacin (si procede) Si mnima es 0:1 1:0: Aadir la clave de la tabla uno a la tabla cero + atributos de la relacin (si procede) Bases de Datos / O.E.I../ U.P.M. Paso a Tablas (III) n Relaciones ternarias y n-arias Estudiar las relaciones de dos en dos y aplicar las reglas de relaciones binarias Atencin: se puede mejorar el diseo estudiando redundancias 19 Bases de Datos / O.E.I../ U.P.M. Ejemplo C# NombreDomicilio Cliente Cdigo Precio Producto E# Nombre Empleado D# Descripcin Departamento D# C# E# Cdigo Compra Fecha Bases de Datos / O.E.I../ U.P.M. Ejemplo (II) EMPLEADO (E#, Nombre, Apellidos, Direccin, Telefono, FechaNac, Sexo, Casado, Sueldo, D#) DEPARTAMENTO ( D#, NombreDep, E# PROYECTO (P#, NombreP, D#) PARTICIPA (E#, P#, Tiempo )