Diplomado en Base de Datos Clase 7,8 y 9: Modelamiento de Datos Juan Guillermo Henao Montoya Juan.henao@cedesistemas.edu.co
MODELAMIENTO DE DATOS Presentación Qué es un modelo de datos? Es una manera diferente de ver la información Herramienta intelectual que nos permite estructurar los datos de forma que se capte la semántica de los mismos qué significan / que representan? cómo se relacionan? qué se puede hacer con ellos? ( cómo se almacena una factura? ) Cuales son sus características? No se refieren a los valores específicos que un elemento de datos deba tomar, sino que Trata los datos como grupos genéricos, que pueden tomar cualquier conjunto de valores específicos.
MODELAMIENTO DE DATOS Presentación Que es modelamiento de datos? Construcción de un modelo de datos que cumpla con las necesidades de los usuarios, expresadas en : Las necesidades del Usuario Requisitos del sistema Diagrama de Casos de Uso Diagrama de Clases Diagrama de Componentes Diagramas de Despliegue Modelo de casos de uso especificado por realizado por Modelo de análisis Modelo de Diseño distribuido por Modelo de Desplie gue implementa do por verificado por Modelo de Implementació n O K O K Modelo de Prueba
MODELAMIENTO DE DATOS Presentación MODELO DE DATOS Se compone de Representa Conjunto de conceptos Reglas de composición Sistema de Información
MODELAMIENTO DE DATOS Presentación Como hacer que el MODELO DE DATOS cumpla con las expectativas Precisa, Predecible Exacta de ambos? Impreciso, intuitivo, desordenado
MODELAMIENTO DE DATOS Presentación Como lograr que se cumplan las expectativas de los usuarios y de los aplicativos?
Requerimientos del usuario
MODELAMIENTO DE DATOS Presentación Cual es la herramienta para la elaboración de un modelo de datos? El Diagrama Entidad - Relación Fue propuesto por Peter Chen en 1976 Es un modelo sobre el cual se soporta el diseño conceptual de una base de datos Es una forma valiosa de obtener información y adentrarse en la estructura de los datos requeridos por una empresa, usuario o sistema antes implementar un S.I.
MODELAMIENTO DE DATOS Presentación Que es un diagrama entidad relación? Es la representación de información en términos de ENTIDADES y las Asociaciones entre estas, llamadas RELACIONES. Es el DER el modelo de datos? El DER es solo una parte, ya que este incluye además las definiciones de los objetos, la descripción de las reglas de integridad, los atributos y sus dominios.
MODELAMIENTO DE DATOS Tipos de Representación
Entidad : TÉCNICAS DE MODELAMIENTO Conceptos Básicos Todo objeto de datos que es diferenciable de otros objetos, ya sean abstractos o concretos. Tipo de cosas que tenemos que recordar para conducir nuestro negocio. Algo de interés y particular significado para una empresa acerca de los cual necesita guardar información. Ej.: Articulo, Persona, Pedido, Cliente
Relación: TÉCNICAS DE MODELAMIENTO Conceptos Básicos Conexión lógica entre dos entidades Asociación entre dos entidades únicamente Asociaciones entre entidades que deben ser recordadas Ej.: El CLIENTE hace PEDIDO ( Los negocios deben recordar cuando el cliente ordena que productos )
Conceptos Básicos Atributos : Describen las propiedades o características de las entidades. Cosas que describen las entidades Aspecto o propiedad, de significado único, que está asociado a la entidad. Su significado es relevante solamente cuando está asociado a la entidad. Ej.: Número del articulo, Nombre de persona.
Elaboración de un diagrama ER Una ENTIDAD se dibuja como una caja conteniendo el nombre en letras mayúsculas. CLIENTE
Elaboración de un diagrama ER Ejemplos de Entidades Personas : EMPLEADO, CLIENTE, VENDEDOR, ESTUDIANTE Lugares : ALMACÉN, OFICINA, EDIFICIO Artículos : PRODUCTO, REPUESTO, EQUIPO Conceptual : CLIENTE CORPORATIVO, POLITICA DE SEGURO, PROYECTO Actividad : PEDIDO, VENTA, DEPOSITO
Elaboración de un diagrama ER Ocurrencias de una entidad Cada uno de los valores que adquiere la entidad. Ejemplo: Para la entidad EMPLEADO, son ocurrencias: Pedro, Juan, José, etc...
Elaboración de un diagrama ER EMPLEADO ES ASIGNADO A PROYECTO JORGE MARIA OLGA PATRICIA FREDDY MARINA FABIO CARLOS ANALISIS DE NOMINA REVISION DE OPERACION CLIENTES ESPECIALES SISTEMA EN LINEA IMPACTO DEL METRO PLATAFORMA OCURRENCIAS DE LA ENTIDAD EMPLEADO OCURRENCIAS DE LA ENTIDAD PROYECTO
Elaboración de un diagrama ER Se ve mas claro en un diagrama de objetos :Empleado Nombre= Maria :Empleado Nombre= Marina :Proyecto Proy= Sistema en linea :Proyecto Proy= Plataforma Se identifica que hay una relación de muchos a muchos. Se resuelve con una clase de la relación
Elaboración de un diagrama ER RELACIÓN Una RELACIÓN se dibuja con una línea entre dos entidades, con el nombre de la relación encima y debajo de la línea en letras minúsculas. está localizado en HOTEL CIUDAD es la ubicación Las relaciones se leen en el sentido del reloj
Elaboración de un diagrama ER PARTICIPACIÓN La participación de una entidad en una relación se denomina opcionalidad y es mostrada por un circulo (o) cuando significa cero; o por una barra vertical cuando significa uno. Se colocan al final de la línea. HOTEL está localizado en es la ubicación CIUDAD 0 : Un hotel no tiene ciudades : Un hotel está localizado en una ciudad
Elaboración de un diagrama ER Relaciones Dependientes Una ocurrencia de una entidad puede solo existir si ella está relacionada a una ocurrencia de la otra, pero una ocurrencia de la otra puede existir independiente sin participar en la relación. HOTEL está localizado en es la ubicación CIUDAD
Elaboración de un diagrama ER Relaciones opcionales En estas relaciones no es necesario que una ocurrencia de alguna entidad esté relacionada con una ocurrencia de la otra entidad. PUESTO DE TRABAJO es ocupado por ocupa EMPLEADO
Elaboración de un diagrama ER Relaciones obligatorias En estas, cada entidad debe estar asociada con una ocurrencia de la otra entidad y viceversa. ORDEN contiene esta contenido DETALLE
Elaboración de un diagrama ER CARDINALIDAD La máxima relación entre las ocurrencias de las entidades involucradas en una relación, se denomina cardinalidad y es mostrada con una barra vertical ( ) para indicar uno (1) y una pata de gallina (<) para indicar muchos. ORDEN DETALLE
Elaboración de un diagrama ER Uno : Al menos una ocurrencia de la entidad está relacionada a una ocurrencia de la otra. ORDEN DETALLE Muchos : Muchas ocurrencias de la entidad están relacionadas con una ocurrencia de la otra. ORDEN DETALLE
Elaboración de un diagrama ER Clases de relaciones Relación uno a uno ( 1-1) ORDEN PEDIDO
Elaboración de un diagrama ER Clases de relaciones Relación uno a muchos ( 1 - M ) ORDEN DETALLE
Elaboración de un diagrama ER Clases de relaciones Relación Muchos a Muchos ( M - M) EMPLEADO HABILIDAD
Elaboración de un diagrama ER La lectura de un diagrama ER es realizada de acuerdo a la siguiente convención : Cada una (uno) < E1> < nombre de la relación> [ uno y solo uno, uno o muchos, cero o uno, cero o muchos ] <E2>
Elaboración de un diagrama ER Establecer todas las posibles reglas que se pueden dar para documentar esta relación para un cliente: CLIENTE realiza PEDIDO
Elaboración de un diagrama ER uno y solo un pedido Soluciones uno o muchos pedidos I < ninguno o un pedido cero o muchos pedidos O < I I O I Una relación documenta las reglas del negocio
Taller General Supóngase que la universidad desea conocer lo siguiente acerca de los diplomados : Dado un Conocer Modulo Alumno Profesor Diplomado Alumnos asistentes Módulos matriculados Módulos que atiende Módulos y Alumnos
Taller General Como representarlo en forma gráfica? MODULO PROFESOR ALUMNO DIPLOMADO
Consideraciones de calidad Características de un diagrama ER Debe mostrar la máxima cardinalidad y la participación para cada relación Mas de una relación puede existir entre dos entidades Es posible para una relación indicar la Asociación entre diferentes ocurrencias de la misma entidad Existen relaciones que pueden ser deducidas y no representarse en el diagrama por ser redundantes Antes de verificar relaciones redundantes, debe estar definida la máxima cardinalidad, la participación y la condición de existencia de la relación.
Consideraciones de calidad Evaluación de las relaciones Deben tener nombres significativos y precisos Las relaciones uno a uno, pueden ser una sola entidad Verifique las relaciones redundantes Confirme que la gran mayoría de las relaciones son uno a muchos y dependientes Cada participación obligatoria debe verificarse para ver si una ocurrencia de la entidad con la cual está asociada puede ser creada sin la entidad asociada Las relaciones muchos a muchos deben ser disueltas
Consideraciones de calidad Evaluación de las entidades Asegure que los nombres están en singular y no son ambiguos. Use términos del negocio donde sea posible Verifique las entidades sin relaciones Chequee las entidades con una sola ocurrencia Cada entidad debe tener algún atributo que sea relevante para el negocio
Consideraciones de calidad Consideraciones generales Asegúrese que el diagrama refleje las necesidades de datos requeridas Lea el diagrama y verifique que refleje los aspectos de la empresa en la forma como son tratados en ésta Valide el diagrama contra la definición de procesos y asegure que cualquier entidad o relación requerida está presente en el diagrama y que todas las relaciones o entidades son usadas
Proceso de Normalizacion Se estudia la normalizacion de la relaciones Consiste en descomponer las relaciones originales en otras mas pequenas con el fin de eliminar las anomalias de almacenamiento y manipulacion que se pueden dar en las relaciones iniciales y que conformaran la futura base de datos relacional.
Proceso de Normalizacion Se compone de un proceso de seis etapas llamada formas normales. El objetivo del proceso es llevar a que las relaciones de la base de datos se encuentren todas en 5ta forma normal
Proceso de Normalizacion Beneficios de una Base de Datos Correctamente Normalizada: Reducir los problemas asociados con el Creación y el Borrado de tuplas Reducir el tiempo asociado con modificaciones de las tuplas Identificar problemas potenciales que pueden requerir un análisis adicional Mejorar la información para la toma de decisiones referentes a la organización física de los datos.
Primera forma normal (1FN) En donde los atributos son diferentes y los valores de cada uno de estos son componentes atómicos ovimiento mpleado Numero Fecha Pago 1 123 2011/01/0 1 124 2011/01/0 1 Monto 1 Fecha pago 2 100000 2011/02/0 1 150000 2011/02/0 1 Numero Fecha Pago Monto 123 2011/01/01 100000 123 2011/02/01 200000 124 2011/01/01 150000 124 2011/02/01 250000 Monto 2 200000 250000
Primera forma normal (1FN) TOUR NumeroViaje Sitio 01-2011 Egipto, Piramides 02-2011 Israel, Muro de las lamentaciones Numero Viaje Ano Pais TipoSitio 01 2011 Egipto Piramides 02 2011 Israel Muro de las lamentaciones
Segunda forma normal (2FN) Si se encuentra en 1FN y ningun atributo no llave depende parcialmente de la Clave Primaria (Dependencia Parcial) Itinerario Numero Viaje (pk) Fecha Salida (pk) Tarifa Numero sitio Numero Turista 01 2011/01/01 100000 1001 43221345 02 2011/01/01 150000 1002 70555777 Itinerario Numero Viaje (pk) Fecha Salida (pk) Numero sitio Numero Turista 01 2011/01/01 1001 43221345 02 2011/01/01 1002 70555777 CostoItinerario Numero Viaje (pk) Tarifa 01 100000 02 150000
Tercera forma normal (3FN) Si se encuentra en 2FN y no existe Dependencia Transitiva sobre la clave primaria. Todos los campos no clave primaria son dependientes de la clave primaria. No hay atributos no clave primaria que dependen de otro atributo no clave primaria. Sea R(X,Y,Z) donde X,Y.Z son subconjuntos de atributos. Se verifica X Y No se verifica Y X, se verifica Y Z El ejemplo mas claro es el modelo de caso de estudio de CRM en especial el modelo de Personas
Tercera forma normal (3FN) Si se encuentra en 2FN y no existe Dependencia Transitiva Sea R(X,Y,Z) donde X,Y.Z son subconjuntos de atributos. Se verifica X Y No se verifica Y X, se verifica Y Z Itinerario Numero Viaje (pk) Fecha Salida (pk) Numero sitio Numero Turista 01 2011/01/01 1001 43221345 02 2011/01/01 1002 70555777 CostoItinerario Numero Viaje (pk) Tarifa 01 100000 02 150000 Itinerario Numero Viaje (pk) Fecha Salida (pk) Numero Turista 01 2011/01/01 43221345 02 2011/01/01 70555777 SitioVisitado Numero Turista (pk) Numero sitio 43221345 1001 70555777 1002
Tercera forma normal (3FNBC) Se encuentra en 3FNBC (Boyce Codd) si todos los atributos son determinados por Claves Itinerario Numero Viaje (pk) Fecha Salida (pk) Numero Turista 01 2011/01/01 43221345 02 2011/01/01 70555777 Regla de Integridad: Cada turista tiene una sola fecha de salida. Se traduce en una dependencia funcional NumeroTurista---FechaSalida Itinerario Numero Viaje (pk) Fecha Salida (pk) 01 2011/01/01 02 2011/01/01 SalidaTurista Numero Turista (pk) Fecha Salida 43221345 2011/01/01 70555777 2011/01/01
Cuarta forma normal (4FN) Si se encuentra en 3FNBC (Boyce Codd) y si cada vez que una dependencia multivaluada X Y se verifica, entonces X contiene a una Clave de R NumeroPersona(pk) FechaSiniestro (pk) FechaAviso (pk) 43111222 2011/01/01 2011/01/01 70555777 2011/01/01 2011/01/01 NumeroPersona (pk) FechaSiniestro NumeroPersona (pk) FechaAviso 43111222 2011/01/01 43111222 2011/01/01 43111222 2011/01/01 43111222 2011/01/01
Quinta forma normal (5FN) Se refiere a las llamadas dependencias producto que garantizan la descomposición de una relacion en tres o mas relaciones, manteniendo el contenido original y con menor redundancia Si cada dependencia producto [X1][X2] [Xn] de R esta inducida por las llaves candidatas de R, es decir cada Xi contiene una llave candidata de R EPS Especialista Especialidad EPS Sura Juan Perez Ortopedista SaludCoop Natalia Medina Dermatologa
Quinta forma normal (5FN) EPS EPS Sura SaludCoop Especialista Juan Perez Natalia Medina Especialista Juan Perez Natalia Medina Especialidad Ortopedista Dermatologa EPS EPS Sura SaludCoop Especialidad Ortopedista Dermatologa
TABLE Ejemplo: Owner= Name= TableSpace= Comment= Owner= ops$sini Name= tbt_rva DICCIONARIO DE DATOS TableSpace=TSD_BTS_TAB01 Comment= Contiene la informacion de la reserva
Colums Name= Type= Nullable= Default= DICCIONARIO DE DATOS Storage= (cuando existen LOBs) Comment= Ejemplo: Name=CDUEN Default= 114 Type= VARCHAR2(3) Storage= Nullable= YES Comment= Identificacion de la unidad estrategica de negocio
Keys Name= DICCIONARIO DE DATOS Type= Primary Foreign Columns= Enable= Ejemplo: Name=TBTS_RVA_PK Type= Primary Columns=NMEXPEDIENTE,CDRAMO Enable=YES
Checks Name= Condition= Enabled= DICCIONARIO DE DATOS Deferred = siempre la transaccion se realiza al final Last Change= Ejemplo: Name=TBTS_RVA_CDUEN_CK Condition=CDUEN IN ( 214, 219, 220 ) Enabled=YES Deferred=YES Last Change=9/9/2010 02:00:10
Indexes Ejemplo: Owner= Name= DICCIONARIO DE DATOS Type=unique-normal Columns = Owner=OPS$BTS Name=TBTS_RVA_I1 Type=unique Columns = nmpoliza,nmriesgo
Privileges Ejemplo: Grantee= Select= Insert= Update= Delete= DICCIONARIO DE DATOS Grantee= OPS$ORG Select=YES Insert=YES Update=YES Delete=YES