• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Unidad 4 Modelo De Datos Para La ImplementacióN
 

Unidad 4 Modelo De Datos Para La ImplementacióN

on

  • 3,384 views

 

Statistics

Views

Total Views
3,384
Views on SlideShare
3,342
Embed Views
42

Actions

Likes
0
Downloads
131
Comments
0

4 Embeds 42

http://aegxxi-desarrollo.blogspot.com.ar 32
http://aegxxi-desarrollo.blogspot.com.es 4
http://aegxxi-desarrollo.blogspot.com 3
http://aegxxi-desarrollo.blogspot.mx 3

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Unidad 4 Modelo De Datos Para La ImplementacióN Unidad 4 Modelo De Datos Para La ImplementacióN Presentation Transcript

    • Bases de Datos Unidad IV Modelo de Datos para la Implementación Modelo Relacional de Datos Sergio Sánchez Rios. Ingeniero en Informática – Licenciado en Informática Docente Jornada Parcial Universidad Viña del Mar
    • Proceso de Diseño de Base de Datos Una vez que hemos llevado a cabo el proceso de análisis de datos y obtenido el esquema conceptual o lógico de nuestra BD, es necesario implantarla en un sistema a través de un proceso de DISEÑO, que nos permitirá trasladar la estructura actual a un modelo de datos implementable. En este modelo nos centraremos
    • Modelo Relacional de Datos Introducción Este es el modelo seguido por la familia actual de sistemas de gestión de bases de datos. Este modelo fue propuesto por E. F. Codd en 1970, imponiéndose sobre los modelos anteriores (red y jerárquicos) durante la década de los 80. El motivo de su éxito reside por un lado en su sencillez (el usuario percibe la base de datos como un conjunto de “tablas”: datos organizados en filas y columnas) y por otro lado el carácter declarativo de su lenguaje de manipulación (el usuario, al formular una consulta, expresa lo que desea obtener, y no como obtenerlo).
    • Modelo Relacional de Datos Introducción
      • Existen dos vistas para el estudio del modelo relacional: vista algebraica y vista lógica.
        • Vista Algebraica: presenta el modelo relacional como un conjunto de estructuras de datos donde éstas son definidas en el mismo marco teórico en el que se estudia la teoría de tipos de datos, es decir, definiendo sus operadores especiales.
        • Vista Lógica: se justifica por el hecho de que el lenguaje aceptado como estándar actual para los sistemas relacionales, el lenguaje SQL, es un lenguaje de tipo lógico.
    • Modelo Relacional de Datos Especificación Algebraica
      • Estructuras: Tupla y Relación.
      • El Modelo Relacional proporciona dos estructuras de datos la tupla y la relación:
        • Tupla: coincide con el tipo de datos registro presente en todos los lenguajes de programación.
        • Relación: es especifica del modelo relacional, y es la que lo caracteriza.
    • Modelo Relacional de Datos Especificación Algebraica
      • Tupla
      • Un tipo de tupla se define como un conjunto de pares de la forma { ( A1, D1), (A2, D2), ………, (An, Dn) }, denominado esquema Tupla.
      • En la definición:
          • { A1, A2, ………, An} ( n > 0 ) conjunto de nombres de atributos.
          • { D1, D2, ……..., Dn} son los dominios asociados a dichos atributos, que no tienen que ser necesariamente distintos.
    • Modelo Relacional de Datos Especificación Algebraica Tupla Ejemplo: Dado los dominios dom_dni: entero dom_nom: tira (20) dom_dir: tira (15) dom_edad: entero Sea el siguiente esquema de tupla: Persona = { (dni, dom_dni), (nombre, dom_nom), (dirección, dom_dir), (edad, dom_edad) }
    • Modelo Relacional de Datos Especificación Algebraica
      • Tupla
      • Ejemplo:
      • Sea t una variable declarada de tipo Persona, el comportamiento de los operadores del tipo tupla son:
        • t  Tupla ( (dni, 12345678), (nombre, ‘Sergio Sánchez’), (dirección, ‘Paz 10’), (edad, 37) )
        • Consultar (t, nombre) = ‘Sergio Sanchez’
        • Asignar (t, dirección, ‘Colon 20’ ) =
      • { (dni, 12345678), (nombre, ‘Sergio Sánchez’), (dirección, ‘Colon 10’), (edad, 37) }
    • Modelo Relacional de Datos Especificación Algebraica
      • Tupla
      • Existe otra notación “Punto”:
        • Para consultar: t.Atributo
        • Para Asignar: t.Atributo  Valor
    • Modelo Relacional de Datos Especificación Algebraica Relación Un tipo relación se define como un conjunto de pares de la forma: { (A1,D1), (A2,D2), ……. , (An,Dn) }. Una relación de esquema { (A1,D1), (A2,D2), …… , (An,Dn) } es un conjunto de Tuplas de dicho esquema. Es importante destacar que el esquema de una relación coincide con el esquema de sus tuplas. Se denomina “grado” de una relación al número de atributos de su esquema y “cardinalidad” de una relación al número de tuplas que la forma. La nomenclatura que se utilizara para una relación es: R ( A1:D1, A2:D2, ………. , An:Dn )
    • Modelo Relacional de Datos Especificación Algebraica Relación Ejemplo: Una relación de nombre PERSONA del esquema PERSONA se definiría: PERSONA (dni: dom_dni, nombre: dom_nom, dirección: dom_dir, edad: dom_edad) Su valor en un instante podría ser este conjunto de tuplas: PERSONA: { { (dni, 12345678), (nombre,’Pepa’), (dirección, ‘Colon’), (edad, 37) } , { (dni, 20450120), (nombre,’Juan’), (dirección, ‘Blanco’), (edad, 39) } } TUPLA
    • Modelo Relacional de Datos Especificación Algebraica Relación Se habla de la relación PERSONA definida del tipo (o esquema) { (dni: dom_dni, nombre: dom_nom, dirección: dom_dir, edad: dom_edad) } ; esta relación (objeto persistente) estará inicialmente vacía, y podrá tomar como valor cualquier relación (conjunto de tuplas) de dicho esquema. El conjunto de definiciones de relación que representan un sistema de información se denomina esquema relacional , y los valores (o extensiones) de las relaciones del esquema en un instante determinado constituyen la base de datos.
    • Modelo Relacional de Datos Especificación Algebraica Relación La representación como un conjunto de tuplas, a menudo resulta tediosa y poco clara; una forma mas cómoda y sencilla de representar gráficamente una relación es mediante una tabla en la cada fila representa una tupla y cada columna esta etiquetada con un nombre de atributo. PERSONA Atributos TUPLAS 34 Blanco Juan 20450120 39 Colon Pepa 12345678 edad dirección nombre dni
    • Modelo Relacional de Datos Especificación Algebraica Relación Concepto Relacional v/s Tabular Número de Filas Cardinalidad Fila Tupla Número de Columnas Grado Columna Atributo Tabla Relación Concepto Tabular Concepto Relacional
    • Modelo Relacional de Datos Especificación Algebraica
      • Relación
      • Se ha definido la relación como un “conjunto de tuplas”, pero en la teoría de los tipos de datos, una estructura de datos no queda completamente definida hasta que no se especifican sus operadores de consulta y de actualización. Estos operadores son:
      • Relación: constructor de valores de tipo relación.
      • Ej.: Persona  Relación ( Tupla( (dni, 12345678), (nombre, ‘Sergio’), (dirección, ‘Colon’), (edad, 37) ), Tupla ( (dni, 20450120), (nombre, ‘Juan’), (dirección, ‘Cuenca’), (edad, 28) ) )
      28 Cuenca Juan 20450120 37 Colon Sergio 12345678 edad dirección nombre dni
    • Modelo Relacional de Datos Especificación Algebraica
      • Relación
      • Selección: la relación resultante de aplicar una condición de selección a una relación, esta nueva relación contiene las tuplas que cumplen la condición especificada.
      • Ej.: Persona Donde edad > 30. Esta operación selecciona las tuplas de la relación Persona que tienen en el atributo edad un valor mayor que 30, dando como resultado la siguiente relación.
      37 Colon Sergio 12345678 edad dirección nombre dni
    • Modelo Relacional de Datos Especificación Algebraica
      • Relación
      • Proyección: este operador aplicado a una relación extrae de sus tuplas los valores de los atributos especificados en la operación.
      • Ej.: Persona [dni, nombre]  crea una relación con solo los atributos mostrados entre corchetes.
      Juan 20450120 Sergio 12345678 nombre dni
    • Modelo Relacional de Datos Especificación Algebraica
      • Relación
      • Inserción: añade una tupla a la relación.
      • Ej.: Insertar( Persona, {(nombre,’Carolina’), (dni, 11222333), (dirección, ‘Cuba’), (edad, 50) } )
      28 Cuenca Juan 20450120 50 Cuba Carolina 11222333 37 Colon Sergio 12345678 edad dirección nombre dni
    • Modelo Relacional de Datos Especificación Algebraica
      • Relación
      • Borrar: elimina una tupla de la relación.
      • Ej.: Borrar ( Persona, {(nombre,’Sergio’), (dni, 12345678), (dirección, ‘Colon’), (edad, 37) } )
      28 Cuenca Juan 20450120 50 Cuba Carolina 11222333 edad dirección nombre dni
    • Modelo Relacional de Datos Especificación Algebraica Relación Las operaciones no son excluyentes, es decir puede existir una cierta combinación entre ellas para lograr algunos resultados. Ej.: Persona Donde edad > 30 [nombre, edad] 37 Sergio edad nombre
    • Modelo Relacional de Datos Esquema Relacional – Representación de la Realidad Sea el siguiente esquema relacional Río ( rcod: dom_rcod, nombre: dom_nom) Provincia (pcod: dom_pcod, nombre: dom_nom) Pasa_por (pcod: dom_pcod, rcod: dom_rcod) La base de datos correspondiente a este esquema permite gestionar información geográfica. Para cada objeto de la realidad del cuál se quiere tener información se define una relación (Río, Provincia) y sus atributos o cualidades de los cuales se desea tener información. Para representar las asociaciones (relaciones) entre objetos, se utilizan referencias explicitas mediante atributos que identifican a los objetos referidos (por ejemplo: cada tupla de la relación Pasa_por denota que un río, definido por el atributo rcod, pasa por una provincia, referida por el atributo pcod).
    • Modelo Relacional de Datos Restricciones de Integridad La definición de relación como un conjunto de tuplas de un mismo esquema, permite la existencia de relaciones que no representan estados válidos de la parcela del mundo real que se está representando. Ejemplo: Considere Empleado (dni : dom_dni, nombre: dom_nom, dirección: dom_dir, nº_emp: dom_nº, dep: dom_dep,) Departamento ( cod_dep: dom_dep, descripción: dom_des) Donde el atributo nº_emp de la relación Empleado es el número de ese empleado en la empresa, y el atributo dep de la relación Empleado indica a qué departamento está asignado, en caso de estarlo.
    • Modelo Relacional de Datos Restricciones de Integridad Empleado Departamento
      • Anomalías que se observan en la RELACION EMPLEADO:
      • Hay dos empleados con el mismo DNI.
      • Hay dos empleados con el mismo número de trabajador.
      • Hay un empleado sin nombre.
      • Aparece una referencia a un departamento que no existe en la relación departamento.
      Para evitar estos problemas y aumentar la capacidad expresiva del Modelo Relacional éste se extiende incorporando el concepto de restricción de integridad. En este Modelo se contemplan 4 tipos de restricciones: Restricción de valor no nulo, Restricción de unicidad, Restricción de clave primaria, Restricción de Integridad referencial. ? ? ? 45.255.369 1 D8 Cuenca Ana 12.345.678 5 D2 Colon Pepa 12.345.678 4 D2 ? María 35.784.843 3 D2 Blasco José 12.904.569 2 D1 Cuenca Juan 20.450.120 1 Dep dirección nombre dni Nº_emp Contabilidad D3 Compras D2 Ventas D1 descripción Cod_dep
    • Modelo Relacional de Datos Restricciones de Integridad Restricción de Valor no Nulo La definición de una restricción de valor no nulo sobre un conjunto de atributos K de la relación R expresa la siguiente propiedad: “No debe haber en R una Tupla que tenga el valor nulo en algún atributo de K”. Ejemplo: Según el enunciado anterior deberían definirse con restricción de valor no nulo: dni, nº_emp y nombre de la Relación Empleado, y cod_dep y descripción de la Relación Departamento. Cabe destacar que la definición de esta propiedad para un atributo es una decisión del diseñador.
    • Modelo Relacional de Datos Restricciones de Integridad Restricción de Unicidad La definición de una restricción de unicidad sobre un conjunto de atributos K de la relación R expresa la siguiente propiedad: “ No debe haber en R dos tuplas que tengan el mismo valor en todos los atributos del conjunto K”. Ejemplo: Con el significado obvio para ambos esquemas de relación, los atributos que deberían definirse con restricción de unicidad son: dni y nº_emp de la relación Empleado, cod_dep de la relación Departamento.
    • Modelo Relacional de Datos Restricciones de Integridad
      • Concepto clave primaria. Integridad de clave primaria.
      • La definición de relación como conjunto de tuplas significa que en una relación no existen dos tuplas iguales; es decir, que cualquier tupla es distinta de cualquier otra y que por lo tanto es identificable de forma única dando los valores los valores de sus atributos.
      • Por ello, y con el fin de facilitar la manipulación de las relaciones en una base de datos relacional, se introduce en el modelo el concepto de clave primaria .
      • Una clave primaria de una relación es un conjunto de atributos de su esquema que son elegidos para servir de identificador unívoco de sus tuplas . Para cumplir con esto la clave primaria debe cumplir ciertos requisitos:
          • Sus atributos deberán tener siempre un valor para cada tupla (no nulo).
          • El valor de la clave primaria deberá ser único para cada tupla (unicidad).
    • Modelo Relacional de Datos Restricciones de Integridad Concepto clave primaria. Integridad de clave primaria. Ejemplo: En la relación Empleado hay dos posibles claves primarias, los conjuntos {dni} y {nº_emp}, ya que ambos cumplen las condiciones exigidas. En este caso, parece más aconsejable elegir como clave primaria {nº_emp}, ya que, en el contexto de una empresa, es razonable que este atributo sea el identificador interno para sus trabajadores. En la relación Departamento, la clave primaria sólo puede ser el conjunto de atributos {cod_dep}.
    • Modelo Relacional de Datos Restricciones de Integridad Concepto de clave ajena. Integridad Referencial Las claves ajenas son el mecanismo que proporciona el Modelo Relacional para expresar asociaciones entre los objetos representados por las relaciones del esquema de la base de datos . La forma de hacerlo consiste en incluir en el esquema de una relación R atributos identificadores de otra relación S; a este conjunto de atributos se les conoce como claves ajenas de la relación R que hace referencia a la relación S. Para que la clave ajena cumpla su función de referencia se debe asegurar de que los valores que toman sus atributos en las tuplas de R aparecen en alguna tupla de S.
    • Modelo Relacional de Datos Restricciones de Integridad
      • Concepto de clave ajena. Integridad Referencial
      • Tipos de Integridades Referenciales.
      • (NOTA: Siendo R y S relaciones, K atributos, J clave primaria de S, CA clave ajena.)
      • Integridad Referencial Débil: si en una tupla de R todos los valores de los atributos de K tienen un valor que no es nulo, entonces debe existir una tupla en S que tome esos mismos valores en los atributos de J.
      • Integridad Referencial Parcial: si en una tupla de R algún atributo de CA tiene un valor que no es nulo, entonces debe existir una tupla en S que tenga en los atributos de J los mismos valores que los atributos de CA que no son nulos.
      • Integridad Referencial Completa: en una tupla de R todos los atributos de CA deben tener valor nulo, o bien todos deben tener un valor que no es nulo, en cuyo caso debe existir una tupla en S que tome en los atributos de J los mismos valores que los atributos de CA.
    • Modelo Relacional de Datos Restricciones de Integridad Concepto de clave ajena. Integridad Referencial Cuando se define una clave ajena en una relación, se debe especificar el tipo de integridad referencial que se exige, excepto en caso de que la clave ajena conste sólo de un atributo o cuando todos ellos sufran restricciones de valor no nulo, ya que en estos casos los tipos de integridad coinciden. Ejemplo: El atributo dep de la relación Empleado debe definirse como clave ajena a la relación Departamento, de forma que nunca podrá haber un empleado asignado a un departamento que no aparezca en la relación Departamento. En este caso como la clave ajena consta de un único atributo y la referencia se hace a través de la clave primaria de la relación referida, no se necesita definir la integridad.
    • Modelo Relacional de Datos Restricciones de Integridad Concepto de clave ajena. Integridad Referencial Ejemplo: Sea el siguiente esquema relacional referente a una agencia de viajes especializada en organizar visitas culturales a distintas ciudades del mundo. La relación Viaje contiene la programación actual de viajes; la relación Oferta_guía contiene información sobre la disponibilidad de guías para las distintas ciudades; la relación Guía contiene los datos personales de los guías con los que trabaja la agencia; la relación Ciudad contiene información sobre las ciudades. Viaje(código: dom_código, destino: dom_destino, guía: dom_agente, fecha: dom_fecha) Clave Primaria: {código} Clave Ajena: {destino, guía}  Oferta_guía f (destino) = ciudad f (guía) = guía
    • Modelo Relacional de Datos Restricciones de Integridad Concepto de clave ajena. Integridad Referencial Ejemplo: Oferta_guía (ciudad: dom_ciudad, guía: dom_agente) Clave Primaria: {ciudad, guía} Clave Ajena: {guía}  Guía f (guía) = dni Clave Ajena: {ciudad}  Ciudad f (ciudad) = nombre Guía (dni: dom_agente, nombre: dom_nombre) Clave Primaria: {dni} Ciudad (nombre: dom_ciudad, país: dom_país) Clave Primaria: {nombre}
    • Modelo Relacional de Datos Restricciones de Integridad Concepto de clave ajena. Integridad Referencial Ejemplo: La clave ajena Viaje puede ser parcialmente nula, por lo tanto es importante indicar el tipo de integridad referencial que se exige. Para entender mejor la implicancia de la elección de integridad considere la siguiente extensión de la base de datos. Viaje Guía Oferta_Guía Ciudad ? Qbvfb V5 ? Valencia V4 ? ? V3 2 Cáceres V2 1 Valencia V1 Guía destino código Carmen 2 Pepe 1 Nombre Dni 2 Valencia 1 Cáceres 1 Valencia guía ciudad E Cáceres E Valencia país nombre
    • Modelo Relacional de Datos Restricciones de Integridad
      • Concepto de clave ajena. Integridad Referencial
      • Ejemplo:
      • Sea cual sea el tipo de integridad referencial elegido, las tres primeras tuplas de la relación Viaje tiene el mismo tratamiento:
        • El viaje V1 es válido. Es decir, la inserción de esta tupla sería aceptada por el SGBD, ya que sus atributos no son nulos, y existe una tupla en Oferta_guía con esos valores en ciudad y guía.
        • El viaje V2 no es valido, ya que la clave ajena tiene un valor que no es nulo en todos sus atributos {destino} = ‘Cáceres’ y {guía} = 2, y no existe ninguna tupla en Oferta_guía con esos valores en ciudad y guía respectivamente.
        • El viaje V3 también es valido en los tres tipos de integridad referencial, porque la clave ajena tiene valor nulo en todos sus atributos.
    • Modelo Relacional de Datos Restricciones de Integridad
      • Concepto de clave ajena. Integridad Referencial
      • Ejemplo:
      • En los demás viajes la clave ajena es parcialmente nula, por lo que los viajes serán validos o no según el tipo de integridad referencial elegido:
        • Integridad referencial débil: los viajes V4 y V5 son ambos válidos, ya que en este tipo de integridad sólo se realiza la comprobación cuando la clave ajena (todos sus atributos) tiene un valor que no es nulo.
        • Integridad referencial parcial: en este caso la comprobación se realiza aunque la clave ajena no este completa, es decir, para los atributos de la misma que no tienen valor nulo. Así el V4 es valido ya que el destino existe en Oferta guía. Sin embargo el V5 no es valido, porque su destino no existe en Oferta_guía.
        • Integridad referencial completa: en este caso, no está permitido que la clave ajena sea parcialmente nula, por lo que los viajes V4 y V5 no son válidos.
    • Bibliografía
      • “ Introducción a los Sistemas de Base de Datos”, C. J. Date, Prentice Hall – Séptima Edición, 2001.
      • “ Bases de Datos Relacionales”, Matilde Celma Giménez & Juan Casamayor & Laura Mota, Prentice Hall, 2003.
      • Cátedra “Introducción a las bases de datos”, Profesor L. Marti, Universidad de Valparaíso, 2004.