unidad 4 modelo de datos para la implementación

36
Sergio Sánchez 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

Upload: sergio-sanchez

Post on 08-Jun-2015

3.284 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Bases de DatosUnidad IV

Modelo de Datos para la ImplementaciónModelo Relacional de Datos

Sergio Sánchez Rios.

Ingeniero en Informática – Licenciado en Informática

Docente Jornada Parcial Universidad Viña del Mar

Page 2: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

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

Page 3: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosIntroducció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).

Page 4: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosIntroducció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.

Page 5: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosEspecificació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.

Page 6: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosEspecificació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.

Page 7: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosEspecificació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) }

Page 8: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosEspecificació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) }

Page 9: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosEspecificación Algebraica

Tupla

Existe otra notación “Punto”:

Para consultar: t.Atributo

Para Asignar: t.Atributo Valor

Page 10: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosEspecificació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 )

Page 11: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosEspecificació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) } }

TUPLATUPLA

Page 12: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosEspecificació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.

Page 13: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosEspecificació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

dni nombre dirección edad

12345678 Pepa Colon 39

20450120 Juan Blanco 34

Atributos

TUPLAS

Page 14: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosEspecificación Algebraica

Relación

Concepto Relacional v/s Tabular

Concepto Relacional Concepto Tabular

Relación Tabla

Atributo Columna

Grado Número de Columnas

Tupla Fila

Cardinalidad Número de Filas

Page 15: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosEspecificació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) ) )

dni nombre dirección edad

12345678 Sergio Colon 37

20450120 Juan Cuenca 28

Page 16: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosEspecificació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.

dni nombre dirección edad

12345678 Sergio Colon 37

Page 17: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosEspecificació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.

dni nombre

12345678 Sergio

20450120 Juan

Page 18: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosEspecificació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) } )

dni nombre dirección edad

12345678 Sergio Colon 37

20450120 Juan Cuenca 28

11222333 Carolina Cuba 50

Page 19: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosEspecificación Algebraica

Relación

Borrar: elimina una tupla de la relación.

Ej.: Borrar ( Persona, {(nombre,’Sergio’), (dni, 12345678), (dirección, ‘Colon’), (edad, 37) } )

dni nombre dirección edad

20450120 Juan Cuenca 28

11222333 Carolina Cuba 50

Page 20: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosEspecificació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]

nombre edad

Sergio 37

Page 21: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosEsquema 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).

Page 22: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosRestricciones 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.

Page 23: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosRestricciones de Integridad

EmpleadoNº_emp dni nombre dirección Dep

1 20.450.120 Juan Cuenca D1

2 12.904.569 José Blasco D2

3 35.784.843 María ? D2

4 12.345.678 Pepa Colon D2

5 12.345.678 Ana Cuenca D8

1 45.255.369 ? ? ?

Cod_dep descripción

D1 Ventas

D2 Compras

D3 Contabilidad

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.

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.

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.

Page 24: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosRestricciones 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.

Page 25: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosRestricciones 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.

Page 26: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosRestricciones 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).

Page 27: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosRestricciones 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}.

Page 28: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosRestricciones 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.

Page 29: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosRestricciones 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.

Page 30: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosRestricciones 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.

Page 31: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosRestricciones 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

Page 32: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosRestricciones 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}

Page 33: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosRestricciones 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.

código destino Guía

V1 Valencia 1

V2 Cáceres 2

V3 ? ?

V4 Valencia ?

V5 Qbvfb ?

Viaje Dni Nombre

1 Pepe

2 Carmen

Guía

ciudad guía

Valencia 1

Valencia 2

Cáceres 1

Oferta_Guíanombre país

Valencia E

Cáceres E

Ciudad

Page 34: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosRestricciones 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.

Page 35: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

Modelo Relacional de DatosRestricciones 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.

Page 36: Unidad 4 Modelo De Datos Para La ImplementacióN

Sergio Sánchez

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.