Download pelicula
Document related concepts
Transcript
BASE DEDATOS I Modelo Entidad-Relación Mg. Samuel Oporto Díaz 1 /62 BASE DE DATOS 2 /62 Base de Datos • Es un conjunto de datos relacionados entre sí, almacenados en conjunto sin redundancias innecesarias e independientes de los programas que los usan. • Son persistentes en el tiempo. Usan un lenguaje para incluir, modificar o extraer los datos. • Es un conjunto de datos operativos, accesibles desde algún nivel de la empresa (Estratégico, Táctico, Operativo). • Una BD debe cumplir con las características de: Unicidad Consistencia Seguridad Privacidad Disponibilidad Integridad 3 /62 Archivos Vs BD Archivos Base de Datos Dependencia de relaciones externas a Independencia a relaciones externas a los datos los datos Datos sin compartir en toda la empresa Datos compartidos y compatibles en la empresa Redundancia de los datos Redundancia mínima y controlada Archivos no relacionados entre si Datos relacionados de acuerdo a un modelo Acceso limitado y con poca flexibilidad, Flexibilidad, Integridad, Eficiencia y eficiencia y seguridad seguridad 4 /62 Sistema de Gestión de Bases de Datos • Conjunto de programas que permite definir, construir y manipular bases de datos para diversas aplicaciones. – Definir una BD es especificar... • estructura de datos, • tipos de datos y • restricciones de los datos – Construir una BD es... • almacenar datos en algún medio de almacenamiento controlado por el SGBD – Manipular la BD es... • consultar datos • introducir/modificar/eliminar datos, para reflejar cambios. • generar informes a partir de los datos almacenados 5 /62 SGBD • DataBase Management System SGBD = DBMS 6 /62 Sistema de Base de Datos • Tiene por objetivo proporcionar un entorno práctico y eficiente para almacenar y recuperar la información de la base de datos. • No es necesarios un SGBD de propósito general para implementar una base de datos. • Se puede construir un conjunto de programas propios para crear y mantener la base de datos. Sistema de Base de Datos SBD = BD + DBMS + Software de Aplicación/Consultas 7 /62 Lenguajes DSL = DDL + DML • DDL. (Lenguaje de definición de datos).- Define o declara objetos y restricciones de la BD. Estático e Invariante. • DML. (Lenguaje de manipulación de datos).- Manipula o procesa objetos de la BD. Dinámico. Operaciones. • DSL. (Lenguaje de dominio específico - declarativo) – Representa un nexo entre el SBD y algún lenguaje anfitrión. Ejem: SQL, HTML – Provee herramientas a los lenguajes tradicionales para que se integren al Sistema de Base de Datos. Puede haber distintos tipos de DSL para un mismo sistema . 8 /62 DDL y DML DDL • Detalla la implementación del esquema de la BD • El compilador DDL genera la tablas que se almacena en el diccionario de datos • El diccionario de datos contiene la metadata (datos acerca de los datos) DML • Accesa o manipula los datos de la BD • Es un lenguaje de consultas – Procedimental – Qué y cómo obtener datos – No procedimental – Qué datos se necesitan, sin decir cómo obtenerlos. create table customer ( customer-id char(10), customer-name char(59)) select customer-nam from customer where customer-id = ‘192’ 9 /62 Niveles de Abstracción • Nivel de Vista: Describe una parte de la BD. Puede esconder información por seguridad VISTA • Nivel Lógico: Qué datos se almacenan en la BD y qué relaciones existen entre esos datos. LÓGICO • Nivel Físico: Cómo se almacenan los datos. FÍSICO 10 /62 Niveles de Abstracción ARQUITECTURA DE TRES NIVELES • Nivel Externo (Lenguaje de Programación “tipo Pascal”) tipo empleado = registro (no acceso al salario) n_empleado: cadena(6); n_depto: cadena(4); fin; • Nivel Conceptual (Lenguaje de definición de datos, DDL) EMPLEADO ( NUMERO_EMPLEADO CARACTER(6) CLAVE PRINCIPAL, NUMERO_DEPARTAMENTO CARACTER(4) NO NULO, SALARIO NUMERICO(5) NO NULO ) • Nivel Interno EMP_ALMACENADO LONGITUD=20 PREFIJO EMP# DEPTO# PAGA TIPO=BYTE(6), DESPLAZAMIENTO=0 TIPO=BYTE(6), DESPLAZAMIENTO=6, INDICE=IEMP TIPO=BYTE(4), DESPLAZAMIENTO=12 TIPO=PALABRA, DESPLAZAMIENTO=16 11 /62 Modelos de BD Existen diversos modelos para modelar los datos Modelo Jerárquico Primer modelo de BD, semejantes a un árbol, dificil de eliminar la redundania (IMS) Modelo de Redes Usa nodos, un nodo puede tener varios padres. Definido por C. Bachman, (IDMS) Modelo Entidad - Creado por Chen (76). Representa el mundo en un conjunto entidades (objetos) y relaciones entre objetos Relación Modelo Relacional Creado por Frank Codd (70). Basado en la lógica de predicado y en la teoría de conjuntos. (Oracle, Sybase, Informix) Modelo Semántico Creado por Quillian usado solo en investigación Modelo Binario Creado por Stonebraker basado en el modelo de Codd (Ingres) Modelo Orientado tTata de almacenar en BD objetos completos (estado y comportamiento). (Ilustra, O2 ) a Objetos Modelo Multirelacional Extensión al relacional con inversión total. 12 /62 Modelo Entidad - Relación • Modelo E-R del mundo real – Entidades (objeto o cosas del mundo real distinguible de otros) – Relaciones (asociación entre entidades) • Usado para el diseño de BD – El diseño de una BD en modelo E-R luego es convertido en un diseño de modelo Relacional, el cual es usado para almacenamiento y procesamiento. 13 /62 Modelo Relacional • El modelo relacional es un modelo de datos basado en la lógica de predicado y en la teoría de conjuntos. • Una base de datos relacional es un conjunto de dos o mas tablas estructuradas en registros (líneas) y campos (columnas), que se vinculan entre sí por un campo en común. 14 /62 Ejemplo 1 15 /62 Ejemplo 1 Ejemplo 2 17 /62 Ejemplo 2 18 /62 Ejemplo 3 19 /62 Ejemplo 3 20 /62 MODELO ENTIDAD-RELACION 21 /62 Introducción • Modelo de datos conceptual de alto nivel • Propuesto por Peter P. Chen en 1976 • Describe el “mundo real” como un conjunto de ENTIDADES y de RELACIONES entre ellas • Existe una familia de modelo ER • Soportado por herramientas software de diseño (CASE) 22 /62 Elementos 1. Entidad ( entity ) 2. Atributo ( attribute ) 3. Relación ( relationship ) 4. Dominio ( values set ) 23 /62 1. Entidad • Cosa u objeto del mundo real con existencia propia y distinguible del resto • Objeto con existencia... – física o real (una persona, un libro, un empleado) – abstracta o conceptual (una asignatura, un viaje) • Las entidades tienen atributos. – Ejemplo: las personas tienen nombre, dirección, etc. • Un conjunto de entidades es un conjunto de entidades del mismo tipo que comparten las mismas propiedades – Ejemplo: conjunto de todas las personas, empresas, árboles 24 /62 1. Entidad clienteid clientenombre clientecalle clienteciudad presta mo- monto 25 /62 2. Atributo • Propiedad o característica de una entidad • Una entidad particular es descrita por los valores de sus atributos: p1 e1 titulo = El alquimista impaciente genero = Thriller nacionalidad = España añoestreno = 2002 ... dni = 87654321 nss = 1122334455 nombre = Cristina Aliaga Gil nacionalidad = España ... 26 /62 2. Atributos Compuestos 27 /62 3. Relación • Una relación es una asociación entre diferentes entidades. • Ejemplo: Ortiz entidad cliente posee conjunto relaciones A-102 entidad cuenta • Una relación también puede tener atributos descriptivos 28 /62 4. Dominio • Conjunto de valores permitidos para cada atributo • Tipos de atributos: – Simples y compuestos – Univalorados y multivalorados • E.j. multivalorado : numero-telefono – Derivados • Puede ser derivado de valores de otros atributos o entidades • E.j. edad, dada la fecha de nacimiento 29 /62 1. ENTIDAD 30 /62 Instancias de una entidad • También... – Ocurrencia – Realización – Ejemplar – Entidad concreta o individual p3 PELICULA p2 titulo = El señor de los anillos genero = Fantasía nacionalidad = EEUU añoestreno = 2001 ... titulo = Amores perros genero = Drama nacionalidad = Méjico añoestreno = 1999 ... titulo = Amelie genero = Comedia nacionalidad = Francia añoestreno = 2001 ... p4 31 /62 Tipo de Entidad (entity set) • Define un conjunto de entidades que poseen los mismos atributos – PELICULA: titulo, genero, nacionalidad, añoestreno, numcopias – EMPLEADO: dni, nss, nombre, fechanacim, direccion, telefono, altura, nacionalidad, edad • Notación EMPLEADO PELICULA CLIENTE LOCAL VIDEOCLUB DIRECTOR ACTOR 32 /62 Tipo de Entidad • EMPLEADO: dni, nss, nombre, dirección, telefono, altura, fechanacim, nacionalidad, edad • Las instancias del tipo de entidad se agrupan en un conjunto de entidades o extensión e1 (87654321, 1122334455, “Cristina Aliaga Gil”, “Libertad, 2. Yecla. Murcia. 30510”, 968100200, 1’60, 28/07/1979, España, 23) e2 (12345678, 6677889900, “Antonio Gil Sánchez”, “Paz, 5. Murcia. Murcia.30012”, 968111222, 1’76, 14/04/1944, España, 58) e3 (11223344, 1234567890, “Julia Sauce”, “Justicia, 20. Yecla. Murcia. 30510”, 968000222, 1’59, 23/05/1947, España, 55) ... 33 /62 Claves • Claves (Llaves): Atributos que identifican una entidad dentro de un conjunto de entidades. • Superclave: Conjunto de atributos no vacío, que identifica en forma única una entidad dentro de un conjunto de entidades. Superclave = {superclaves} • Clave candidata: Es una superclave para la cual ningún subconjunto es superclave, excepto el mismo. • Clave primaria. Es la clave candidata escogida por el diseñador. Atributo o conjunto de atributos que permiten identificar en forma única una tupla en la tabla y ningún subconjunto de ella posee esta propiedad (subrayado). • Llave foránea: Es un atributo que es llave primaria en otra entidad con la cual se relaciona. Relacionar las entidades. 34 /62 Tipo de Entidad Débil • No tiene atributos clave propios • Una instancia se identifica por su relación con una instancia de otro tipo de entidad • Clave parcial (o discriminante) – Atributos de la entidad débil, que identifican de forma única cada instancia. • Clave = (clave_entidad_regular, clave_parcial) 35 /62 2. ATRIBUTOS 36 /62 Tipos de atributos • Simples o Compuestos simples y monovalorados • Almacenados o Derivados • Monovalorados o Multivalorados • Opcionales compuestos multivalorados derivados 37 /62 Atributos Simples o Compuestos • Atributos compuestos – Pueden dividirse en otros con significado propio fechanacim dia mes año direccion calle ciudad provincia codpostal – Valor compuesto = concatenación de valores de componentes • Atributos simples – No divisibles. Atómicos genero 38 /62 Atributos Almacenados o Derivados • Atributos derivados – Valor calculado a partir de otra información ya existente (atributos, entidades relacionadas) – Son información redundante... edad [de EMPLEADO], cálculo a partir de fechanacim » atributo derivado del valor de otro atributo numcopias [de una PELICULA], cuenta del número de entidades COPIA relacionadas con cada película concreta » atributo derivado de entidades relacionadas • Atributos almacenados fechanacim [de cada EMPLEADO] nacionalidad [de una PELICULA] 39 /62 Monovalorados o Multivalorados • Atributos monovalorados (monovaluados) – sólo un valor para cada entidad fechanacim [de un EMPLEADO particular] añoestreno [de cada PELICULA concreta] • Atributos multivalorados (multivaluados) – más de un valor para la misma entidad nacionalidad [PELICULA coproducida por varios países ] telefono [ EMPLEADO con varios teléfonos de contacto] – pueden tener límites superior e inferior del número de valores por entidad nacionalidad (1-2) telefono (0-3) 40 /62 Atributos Opcionales (nulos) • El nulo (null value) es usado cuando... – Se desconoce el valor de un atributo para cierta entidad • El valor existe pero falta altura [de un EMPLEADO] • No se sabe si el valor existe o no telefono [de un EMPLEADO] – La entidad no tiene ningún valor aplicable para el atributo: fechaalquiler [PELICULA sólo en vídeo-venta (no alquiler)] 41 /62 Notación para atributos [EN2002] calle ciudad provincia codpostal dirección fechanacim (0,3) (0,1) telefono EMPLEADO nombre altura (1,2) nss dni edad nacionalidad 42 /62 Atributos Clave • Atributo con valor distinto para cada instancia de un tipo de entidad dni en EMPLEADO • Una clave identifica de forma única cada entidad concreta atributo identificador calle codpostal dirección fechanacim n-f nombre provincia ciudad (0,3) (0,1) EMPLEADO nss (1,2) altura nacionalidad IP dni telefono edad 43 /62 3. RELACIONES 44 /62 RELACIÓN (relationship) • También “interrelación” • Asociación, vínculo o correspondencia entre instancias de entidades relacionadas. – el director “Alejandro Amenábar” ha rodado la película “Mar adentro” • Abstracción – un DIRECTOR ha rodado PELICULA’s DIRECTOR HA_RODADO PELICULA 45 /62 DIRECTOR HA_RODADO PELICULA Instancia del tipo de relación J. Médem C. Saura F. Trueba S. Segura A. Amenábar Vacas Tesis Belle Epoque Torrente Tierra Abre los ojos Los otros Tipo de Entidad: conjunto de instancias Tipo de Relación: conjunto de instancias 46 /62 Grado de un tipo de relación • Número de tipos de entidad que participan en el tipo de relación ACTOR ACTUA_EN PELICULA Binaria: grado 2 (el más frecuente) CONTINUACION DE PELICULA Reflexiva (o recursiva): grado 1 Ternaria: grado 3 CLIENTE ALQUILA PELICULA LOCAL_VIDEOCLUB 47 /62 Nombres de Rol (papel) • Todo tipo de entidad que participa en un tipo de relación juega un papel específico en la relación DIRECTOR realizador HA_RODADO film PELICULA • Los nombres de rol se deben usar, sobre todo, en los tipos de relación reflexivos, para evitar ambigüedad original VERSION_DE versión PELICULA 48 /62 Cardinalidad • Limitan las posibles combinaciones de entidades que pueden participar en las relaciones • Extraídas de la situación real que se modela “Una película debe haber sido dirigida por uno y sólo un director” “Un director ha dirigido al menos una película y puede haber dirigido muchas” • Número máximo de instancias de tipo de relación en las que puede participar una misma instancia de tipo de entidad – la cardinalidad de HA_RODADO es “1 a N” – HA_RODADO es de tipo “1 a N” 49 /62 Cardinalidad • Números mínimo y máximo de instancias de un tipo de entidad que pueden estar relacionadas con una instancia del otro tipo de entidad • Notación – (min, max) en la línea que une entidad y relación PERSONA PERSONA (0,m) (1,1) USA (1,n) EDIFICIO POSEE EDIFICIO p1 e1 e2 POSEE (0,n) p2 e3 p3 e4 50 /62 Cardinalidad • Razones de cardinalidad más comunes: – 1:1 (“uno a uno”) – 0:N (“cero o muchos”) – 1:N (“uno a muchos”) – M:N (“muchos a muchos”) trabajador 1 TRABAJA_EN 1 lugar trabajo EMPLEADO encargado 1 SUPERVISA sucursal N LOCAL_VIDEOCLUB ACTOR personaje M ACTUA_EN N film PELICULA 51 /62 Cardinalidad recursiva continuación (0,1) PELICULA versión (0,n) PELICULA precuela (0,1) original (0,1) SECUELA DE VERSIONA 1:1 N:1 52 /62 Razón de Participación • Especifica si toda la extensión de un tipo de entidad participa en un tipo de relación, o sólo parte de la extensión. • Clases de participación: – Participación total (dependencia en existencia) – Participación parcial trabajador 1 TRABAJA_EN 1 lugar trabajo EMPLEADO encargado 1 SUPERVISA sucursal N LOCAL_VIDEOCLUB DIRECTOR 1 HA_ RODADO N PELICULA ACTOR personaje M ACTUA_EN N film PELICULA 53 /62 Atributos de tipos de relación 1 horas TRABAJA_EN 1 EMPLEADO 1 SUPERVISA fechainicio N LOCAL_VIDEOCLUB 54 /62 Atributos de tipos de relación • Conceptualmente pertenecen a la relación – Un atributo de una M:N es propio de la relación – Un atributo de una 1:1 o 1:N “se puede llevar” a uno de los tipos de entidad participantes 1 horas TRABAJA_EN EMPLEADO 1 SUPERVISA horas fechainicio N 1 LOCAL_VIDEOCLUB fechainicio horas 55 /62 TIPO DE ENTIDAD DEBIL 56 /62 Tipo de entidad débil nss Tipo de Entidad Regular Tipo de Relación Identificador PACIENTE 1 ACUDE N PELICULA 1 TIENE N diahora VISITA_MEDICA titulo COPIA numcopia N Clave parcial o Discriminante ASISTIDA POR 1 MEDICO especialidad ncolegiado nombre Dependencia en existencia 57 /62 Tipo de entidad débil • Dependencia en existencia (entre entidades) – Si desaparece una instancia del tipo de entidad regular deben desaparecer las instancias de la entidad débil que dependen de ella – Etiqueta “E” en el tipo de relación débil • Dependencia en identificación – Además de la dependencia en existencia... – Una instancia del tipo de entidad débil no se puede identificar por sí misma – Su clave es (clave_entidad_regular, clave_parcial) – Etiqueta “ID” en el tipo de relación débil 58 /62 Tipo de entidad débil dni EMPLEADO 1:N E POSEE PELICULA Tipo de Relación Débil 1:N ID TIENE numlicencia tipo titulo numcopia PERMISO CONDUCCION PERMISO_CONDUCCION es débil, pues depende en existencia de EMPLEADO, pero no depende en identificación COPIA idcopia COPIA es débil, pues depende en existencia de PELICULA, y también depende en identificación 59 /62 4. DOMINIOS 60 /62 Dominio (values set) • Conjunto de valores • Cada atributo simple está asociado a un dominio, que especifica sus valores válidos Atributo Dominio Descripción Dominio nombre NOMBRES cadenas de hasta 30 caracteres alfabéticos telefono TELEFONOS cadenas de hasta 9 caracteres numéricos altura MEDIDAS números reales entre 0 y 2’5 (metros) ... ... ... No suele representarse, aunque una forma de hacerlo sería: nombre EMPLEADO telefono altura [MPM1999] NOMBRES TELEFONOS MEDIDAS 61 /62 Valores validos • Los valores validos para un atributo deben tener asignado información acerca de: – Tipo de Datos. Los tipos básicos son entero, decima, caractery fecha-hora. – Longitud. Es el número de dígitos o caracteres en el valor de un atributo. – Formato de Fecha. Peste puede ser dd/mm/yyyy o yyyy/mm/dd. – Rango. Especifica el intervalo entre los cuales se puede tomar valor un atributo. – Restricción. Son restricciones particulares sobre un atributo. – Soporte de NULL. El atributo puede aceptar valores NULL. – Defaul. El atributo toma un valor por defecto cuando se instancia. 62 /62 Ejercicio 1 • Se tiene una empresa desarrollando varios proyectos, a los que son asignados varios empleados, pero cada empleado solo esta vinculado a un proyecto, en un momento dado. • Cada proyecto consume diferentes recursos en cantidades determinadas: los empleados están a cargo de un supervisor, que es un empleado también. • Los empleados pueden tener personas beneficiarias (hijos, esposas, padres, etc.). 63 /62 Ejercicio 1 64 /62 Ejercicio 2 • Se desea diseñar una base de datos sobre la información de las reservas de una empresa dedicada al arriendo de automóviles. • Los supuestos son: – Un determinado cliente puede tener en un momento dado varias reservas. – Una reserva la realiza un único cliente, pero puede involucrar a varios autos. – Se debe conocer la fecha de comienzo y término de la reserva. – Todo auto tiene asignado un determinado garaje, que no puede cambiar. – Cada reserva se realiza en una determinada agencia. – Pueden existir clientes que no hayan hecho ninguna reserva. 65 /62