Fundamentos de BD-U3 Modelo Relacional

30
TECNOLÓGICO NACIONAL DE MÉXICO Instituto Tecnológico Superior de Guasave FUNDAMENTOS DE BASE DE DATOS; UNIDAD III

description

Desarrollo de la unidad 3

Transcript of Fundamentos de BD-U3 Modelo Relacional

Presentacin de PowerPoint

TECNOLGICO NACIONAL DE MXICOInstituto Tecnolgico Superior de Guasave

FUNDAMENTOS DE BASE DE DATOS; UNIDAD III

FUNDAMENTOS DE BASE DE DATOSCompetencia EspecficaAplicar el modelo relacional para la generacin de esquemas de bases de datos.

Desarrollo de la UnidadRevisa el modelo relacional, como uno de los ms utilizados en el modelado de base de datos.

FUNDAMENTOS DE BASE DE DATOS4Modelo de datos relacional: Teora formal que constituye los cimientos de los sistemas relacionales

Aspectos de los datos de los que se ocupa el modelo relacional:Estructura

Integridad

ManipulacinIntroduccinFUNDAMENTOS DE BASE DE DATOS45Atributo 1Atributo 2...Atributo nxxxxxx...xxxxxxxxx...xxx............xxxxxx...xxxNOMBRETupla 1Tupla 2...Tupla mColumnas Representan las propiedades de las tablasFilas Contienen los valores que toma cada atributo para cada relacinTrminos importantes en la estructura de datos relacional: Relacin Corresponde con la idea general de tabla Tupla Corresponde con una fila Atributo Corresponde con una columna Cardinalidad Nmero de tuplas (m) Grado Nmero de atributos (n) Clave primaria Identificador nico (no hay dos tuplas con igual identificador) Dominio Coleccin de valores de los cuales el atributo obtiene su valorLa estructura relacionalFUNDAMENTOS DE BASE DE DATOS6PersonaDNINombreApellidosDireccinTelfonoNacimiento14.167.654AlbertoGmez MartnezPedrones, 496378787823/02/195864.237.935LuisaRipoll AlbertDenia, 6496357389512/06/196345.126.579Jos LuisPrez CerdnEscandinavia, 1296387333312/06/196367.677.887AndreaMartnez ZannPoeta Ms Gil, 3796377256410/02/1965TuplaAtributos1234123456Clave primaria DNIDominios:nombre, apellidos, direccin textoDNI enterotelfono entero de 9 dgitosNacimiento fechaCardinalidad 44Grado 66Ejemplo de relacinFUNDAMENTOS DE BASE DE DATOS6Antes de pasar a explicar de manera formal cada uno de estos trminos de la estructura relacional, hay que comentar que...7 Comparacin de terminologaEn las relaciones:No se admiten filas duplicadasLas filas y columnas no estn ordenadasEl cruce entre una fila y una columna solo puede ser un nico valor Relacin TablaFUNDAMENTOS DE BASE DE DATOSRELACIN

CARDINALIDAD

GRADO

ATRIBUTO

TUPLA

TABLA

N DE FILAS

N DE COLUMNAS

COLUMNA

FILA

ARCHIVO

N DE REGISTROS

N DE CAMPOS

CAMPO

REGISTRO

7UNA RELA CIN ES ALGO DIFERENTE A UNA TABLA.....

Pasemos ahora a describir formalmente los elementos de la estructura relacional

8Valores escalaresSon la menor unidad semntica de informacin (el valor de un dato individual). Dominio Conjunto de valores escalares, todos ellos del mismo tipo.

Los atributos estn definidos sobre un nico dominio y toman sus valores reales del dominio Si los atributos podan ser simples o compuestos, entonces tenemos:Dominios simplesDominio de valores escalaresDominios compuestosCombinacin de dominio simplesEj: La fecha (entero/entero/entero)DominiosFUNDAMENTOS DE BASE DE DATOSUna Relacin sobre un conjunto de dominios se compone de dos partes, la cabecera y el cuerpo. La cabecera est formada por un conjunto fijo de pares atributo-dominio (viene a ser la fila de cabeceras de columnas).RelacionesFUNDAMENTOS DE BASE DE DATOS

El nmero de tuplas que hay en el cuerpo puede variar con el tiempo y nos indica la cardinalidad de la relacin.El nmero de atributos que tenemos en la cabecera, el cual no cambia, nos indica el grado. El cuerpo est formado por el conjunto de tuplas (sera el conjunto de filas de datos) que a su vez estn formadas por los pares atributo-valor, uno para cada atributo de la cabecera. Consideraciones:FUNDAMENTOS DE BASE DE DATOS

No existen tuplas repetidas: La existencia de una clave primaria impide que existan tuplas repetidas. Las tuplas no estn ordenadas: Una relacin est definida como un conjunto, y en un conjunto no se establece una relacin de orden .Los atributos no estn ordenados: Puesto que la cabecera de una relacin tambin se define como un conjunto, no existe un orden preestablecido.Todos los valores de los atributos son atmicos: Otra forma de expresar esta propiedad es diciendo que todos los valores de los atributos simples son atmicos, slo toman un valor en cada caso. Las propiedades de las relaciones derivadas de la definicin:

FUNDAMENTOS DE BASE DE DATOSTipos de relaciones:Vistas (o relaciones virtuales): Es una relacin derivada, con nombre.Resultados de consultas: Es una relacin final resultante de alguna consulta especificada. Puede o no tener nombre. No tienen persistencia en la BD.Resultados intermedios: Son relaciones resultantes de alguna expresin relacional anidada dentro de alguna otra expresin relacional mayor.Relaciones temporales: Es una relacin con nombre, pero que se destruye de forma automtica en el momento apropiado.FUNDAMENTOS DE BASE DE DATOSNo es exclusivo del modelo relacional, pero en este contexto es dnde se ha abordado su estudio de manera ms sistemtica y donde se estn realizando ms investigaciones a fin de formalizar su tratamiento.

Qu es el valor nulo?

Definicin: Es como una seal utilizada para representar informacin desconocida, inaplicable, inexistente, no vlida, no proporcionada, indefinida, etc.

Concepto de valor nuloFUNDAMENTOS DE BASE DE DATOSPor qu es necesario el valor nulo?

Motivos de necesidad en las B.D.:Crear tuplas con ciertos atributos desconocidos en ese momento. P.ej. Nueva persona sin telfonoAadir un nuevo atributo a una relacin existente (al aadirse, no tiene ningn valor para las tuplas de la relacin). P.ej. Aadir ProfesinAtributos inaplicables a ciertas tuplas.

P.ej. la profesin para un menorConcepto de valor nuloFUNDAMENTOS DE BASE DE DATOSCmo se trabaja con el valor nulo?

El tratamiento de valores nulos exige definir unas operaciones especficas para el caso de que alguno de los operandos tome valores nulos, y a introducir operadores especiales. Concepto de valor nuloFUNDAMENTOS DE BASE DE DATOSP.ej.: Operacin de comparacin

PreguntaEs el telfono de Alberto igual al de Luisa?NDINombreApellidosDireccinTelfonoNacimiento14.167.654AlbertoGmez MartnezPedrones, 423/02/195864.237.935LuisaRipoll AlbertDenia, 6412/06/196345.126.579Jos LuisPrez CerdnEscandinavia, 1296387333312/06/196367.677.887AndreaMartnez ZannPoeta Ms Gil, 3796377256410/02/1965RespuestaNo podemos decir que es cierto que sean iguales puesto que estaramos afirmando que no son valores tan desconocidos...Pero tampoco podemos decir que es falso que sean iguales...La nica solucin que nos queda es decir que quiz sean iguales.Introduciremos operadores especiales que respondan a la pregunta:Es un valor desconocido?personaFUNDAMENTOS DE BASE DE DATOSLimitaciones en la representacin de los datos Debidas a imposiciones del mundo realP.ej: Un nio de 2 aos no puede ser viudo Debidas al modelo de datosP.ej: El modelo relacional no permite dos tuplas iguales en la misma relacin Definicin de RestriccionesSon las limitaciones impuestas por: el modelo de datos o por la situacin que se modelaRestricciones inherentesRestricciones de integridad o semnticas- Propias del modelo Varan de un modelo a otro Restricciones inherentes Restricciones de integridad Facilidades ofrecidas al diseador para poder representar lo ms fielmente posible la semntica de los datos en el esquema Suelen ser especficas de la B.D. sobre la que se aplican Pero el modelo relacional incluye 2 reglas de integridad generales relacionadas con las claves primarias y ajenasReglas de integridad relacionalFUNDAMENTOS DE BASE DE DATOS17El siguiente aspecto de que se ocupaba el modelo relacional era de la integridad de los datosLos elementos no permitidos o restricciones son debidos a que no todos los valores, cambios de valor o estructuras estn permitidos en el mundo real. Por ejemplo, un nio de dos aos no puede estar viudo, etc. Adems, cada modelo de datos tambin impone por s mismo limitaciones a las estructuras que admite; as, el modelo relacional no permite que dos filas de la misma tabla sean iguales.Estas limitaciones, que unas veces las impone el modelo de datos y otras vienen impuestas por la situacin real que estamos modelando se denominan restricciones. Las restricciones impuestas por el modelo son restricciones inherentes, y las que responden a que el sistema de informacin es un reflejo del mundo real son restricciones de integridad o semnticas. Las restricciones inherentes son propias del modelo y, por tanto, varan de un modelo a otro. Por el contrario, las restricciones de integridad son facilidades que se ofrecen al diseador a fin de que pueda representar en el esquema, lo ms fielmente posible, la semntica de los datos.En general, todas las reglas de integridad se aplican a las relaciones base.La mayor parte de las reglas de integridad son especficas, en cuanto que se aplican a una base de datos especfica. Sin embargo, el modelo relacional incluye dos reglas generales de integridad, puesto que se aplican a cualquier base de datos, y se refieren a las claves primarias y claves ajenas. Veamos cuales son:

Claves primariasSuperclave: conjunto de atributos que identifican de modo nico las tuplas de una relacinClave candidata: menor subconjunto de atributos de una superclave que sigue siendo un identificador nicoClave primaria: clave elegida entre las candidatas para identificar las tuplasClaves alternativas: el resto de claves candidatas

Definiciones:Unicidad: no existen dos tuplas con igual valor de clave candidataMinimalidad: no se puede eliminar ningn atributo de la clave candidata sin destruir la unicidadPropiedades de las claves candidatas:FUNDAMENTOS DE BASE DE DATOSRegla de integridad de las entidadesNingn componente de la clave primaria de una relacin puede aceptar nulos (las claves primarias compuestas deben ser no nulas en su totalidad)Justificacin:1. - En la realidad las entidades se identifican de modo nico tambin en el modelo relacional2. - La identificacin se realiza por las claves primarias3.- Si una clave primaria tiene un nulo, no se puede aplicar la definicin de clave primaria sobre la entidad4.- Por tanto, la entidad no se puede identificar, y esto contradice la definicinEn una base de datos relacional no se puede almacenar informacin sobre algo que no se puede identificarFUNDAMENTOS DE BASE DE DATOSClaves ajenasDefinicin: Sean dos relaciones R1 y R2 (no teniendo porqu ser distintas)Clave ajena: es un atributo (o conjunto de atributos) de la relacin R2 cuyos valores son:o completamente nuloso coinciden con la clave primaria de la relacin R1Problema de la integridad referencial: Es el problema de garantizar que la base de datos no incluya valores no vlidos para una clave ajenaRestriccin referencial: Es la restriccin por la cul, los valores de una clave ajena determinada, deben concordar con los valores de la clave primaria correspondienteRelacin referencial: Relacin que contiene a la clave ajenaRelacin referida u objetivo: Relacin que contiene a la clave primariaFUNDAMENTOS DE BASE DE DATOSComentarios:La clave ajena y la clave primaria correspondiente deben definirse sobre el mismo dominioLa clave ajena no tiene porqu formar parte de la clave primaria de la relacin que la contieneUna relacin referida puede ser tambin referencial con respecto a otro conjunto de atributosEn el caso de que una relacin sea referida y referencial a la vez podemos hablar de relacin autoreferencialLas claves ajenas pueden admitir nulos, las claves primarias no.Ejemplo:DNINombreApellidosDireccinTelfonoNacimiento14.167.654AlbertoGmez MartnezPedrones, 496333445523/02/195864.237.935LuisaRipoll AlbertDenia, 6496345678912/06/1963empleadoId_cajadescripcinDNI1Caja nmero 1 de la salida 114.167.6542Caja nmero 2 de la salida 164.237.9353Caja nmero 1 de la salida 2puestoClave primaria de la relacin empleadoClave ajena en la relacin puestoRelacin referida u objetivoRelacin referencialFUNDAMENTOS DE BASE DE DATOSRegla de integridad referencialLa base de datos no debe contener valores de clave ajena sin concordancia (cualquier valor no nulo de la clave ajena debe tener asociado un valor en la clave primaria de la relacin objetivo)Manejo de la integridad referencial por el SGBD: Impedir que se introduzca informacin que no garantice la integridad referencial Permitir la introduccin y realizar las acciones necesarias para garantizarla (depende completamente del diseo)FUNDAMENTOS DE BASE DE DATOSRegla de integridad referencialEjemplo: Borrar un valor que es clave primaria en una relacin y ajena en otraImpedir que se pueda borrarBorrar todas las entradas en la relacin referencial cuyo valor de la clave ajena sea el de la clave primaria en cuestin.Operacin en cascadaFUNDAMENTOS DE BASE DE DATOSCodd propuso dos alternativas para establecer la base formal en lo referente a la manipulacin de la informacin por parte del modelo relacional: lgebra relacionalClculo relacionalDiferencias:El lgebra relacional: ofrece un conjunto de operadores que permiten construir una relacin que contiene la informacin que se busca en la B.D.La formulacin es prescriptiva (proporciona un procedimiento para resolver el problema)El clculo relacional: Solo define la notacin que permite describir las propiedades que deben cumplir las tuplas de la relacin resultanteLa formulacin es descriptiva (solo plantea el problema)

Codd demostr que ambos formalismos son equivalentes para cada expresin del lgebra existe su expresin en el clculo y viceversaManipulacinFUNDAMENTOS DE BASE DE DATOS24La ltima parte del modelo hace referencia a la manipulacin de la informacin

Si definimos los lenguajes procedimentales como aquellos en el que el usuario da instrucciones al sistema para que realice una secuencia de operaciones de manera que se obtenga el resultado deseado, y los no procedimentales como los que el usuario describe la informacin que desea obtener sin especificar cmo llegar a obtenerla, entonces, el lgebra relacional se puede decir que es procedimental mientras que el clculo es no procedimental.Esta equivalencia fue demostrada por Codd en su Algoritmo de Reduccin.

Dado que ambos formulismos son equivalentes, y debido a la brevedad de este curso, veremos tan solo el lgebra relacional.

Reglas generales:Toda entidad se convierte en relacin

Las relaciones M:N originan la creacin de una nueva relacin

Toda relacin 1:N se traduce en una propagacin de la clave (o se crea una nueva relacin)TRANSFORMACIN DE LOS DIAGRAMAS E/R EN RELACIONALESFUNDAMENTOS DE BASE DE DATOS25El objetivo del diseo lgico es convertir un esquema conceptual en un esquema lgico que se ajuste al sistema de gestin de base de datos a utilizar, definiendo unas claves primarias y ajenas de todas las relaciones y cuyo esquema incluya las reglas de integridad necesarias.La conversin del diseo conceptual, en forma de esquema E-R, al diseo lgico de modelo relacional se basaba principalmente en los tres principios siguientes:

Aplicacin de las reglas generalesTransformacin de las relacionesRelaciones M:N Nueva relacin (incluye los atributos de la relacin, si hay, y las claves primarias de las entidades)Relaciones 1:N Dos modos de transformar:Propagar la clave de la entidad con cardinalidad 1 a la de NCrear una nueva relacin. Recomendable cuando:1) Pueden aparecer muchos nulos (cardinalidad mnima de la entidad 1 es cero)2) Se prev que la relacin pase a ser M:N en el futuro3) Si la relacin tiene atributos propiosRelaciones 1:1 Caso particular de las anteriores.Relacin 1Relacin 2Accin(0 , 1)(0 , 1)Crear nueva relacin(0 , 1)(1 , 1)Propagar clave de R2 a R1(1 , 1)(1 , 1)Propagacin indiferente Transformacin de las entidadesCada tipo de entidad se debe convertir en una relacin baseTransformacin de los atributos de las entidadesCada atributo de una entidad se debe transformar en una columna en la relacin baseLos atributos principales de la entidad pasan a ser la clave primaria de la relacinEl resto de atributos son columnas de la relacin y pueden tomar valores nulosFUNDAMENTOS DE BASE DE DATOSTransformacin de atributos de relacionesSe convierten en columnas de la relacinSi alguno de los atributos es principal formar parte de la clave primariaTransformacin de las relaciones exclusivasSe debern definir las restricciones pertinentes (CHECK)Transformacin de atributos compuestosEl modelo relacional no los contempla. Alternativas:- Consideramos el atributo compuesto como simple- Considerar cada uno de los componentes como simpleTransformacin de Entidades/Relaciones dbilesUna entidad dbil iba asociada a relaciones 1:N propagar la clave de la entidad fuerte a la dbil formando parte de la clave primaria de la dbilTransformacin de la generalizacin- Englobar los atributos de la entidad y los subtipos en una sola relacin (con el atributo de distincin de subtipos)- O crear una relacin para el supertipo y tantas relaciones como subtipos existan.- Crear solo relaciones para los subtipos aadiendo los atributos del supertipoTransformacin de la agregacinSe transforma primero el nivel ms alto y despus se trata la relacin resultante como si fuera una nueva entidad a relacionar con el nivel ms bajoFUNDAMENTOS DE BASE DE DATOS27Transformacin de tipos y subtipos (Generalizacin)Los tipos y subtipos no son objetos que se puedan representar en el modelo relacional estndar. Existen pues, varias posibilidades para su transformacin: Englobar todos los atributos de una entidad y sus subtipos en una sola relacin, aadiendo el atributo que permite distinguir los subtipos. Tambin habr que especificar las restricciones semnticas adecuadas. Crear una relacin para el supertipo, y tantas relaciones como subtipos existan. Esta es la mejor opcin desde el punto de vista semntico, pero es menos eficiente que la opcin anterior. Crear slo relaciones para los subtipos, aadiendo en cada una de ellas los atributos pertenecientes al supertipo.(Usaremos esta opcin).

28Ejemplo resuelto

Transformacin de las entidadesCada tipo de entidad se debe convertir en una relacin base

Transformacin de atributos de relacionesSe convierten en columnas de la relacinSi alguno de los atributos es principal formar parte de la clave primaria

Transformacin de Entidades/Relaciones dbilesUna entidad dbil iba asociada a relaciones 1:N propagar la clave de la entidad fuerte a la dbil formando parte de la clave primaria de la dbilTransformacin de las relacionesRelaciones M:N Nueva relacin (incluye los atributos de la relacin, si hay, y las claves primarias de las entidades)Transformacin de atributos de relacionesSe convierten en columnas de la relacinSi alguno de los atributos es principal formar parte de la clave primaria

Presentacin realizada por Ariadna Fuertes. Departamento de Informtica. Universidad de ValenciaEjercicio propuestoTenemos una empresa que dispone de varias tiendas distribuidas por diferentes ciudades y que se abastece de unos almacenes que tambin estn ubicados en diferentes ciudades.

Necesitamos conocer la existencia de productos tanto en tiendas como en almacenes. En la B.D. deber haber informacin sobre las caractersticas de estos productos tales como, el peso, las dimensiones, descripcin y su precio por unidad.

Adems, debemos guardar informacin sobre los pedidos de las tiendas a los almacenes. Se requiere crear una base de datos mediante el modelo E-R y pasar el diseo a modelo relacional.

FUNDAMENTOS DE BASE DE DATOSBibliografaFundamentos de bases de datos. Cuarta edicin. Abraham Silberschatz et al. McGraw Hill. Madrid. Ebook. 2002.FUNDAMENTOS DE BASE DE DATOS

Ejemplar

Autor

Libro

Socio

Tema

Tiene

Escribe

Escrito en

Trata

Presta

(1,M)

Idioma

(0,N)

(1,1)

(1,M)

(1,M)

(1,N)

(1,M)

(0,N)

(0,M)

(1,N)

Nombre

Cod_idi

Descrip

Cod_tem

Descrip

Cod_aut

Cod_lib

Titulo

Ao

Cod_eje

DNI

Tf

Nombre

Fech_pre

Fech_dev

Codigo_autor

Nombre

AUTOR

Codigo_libro

Titulo

Ao

LIBRO

Codigo_ejemplar

EJEMPLAR

Codigo_idioma

Descripcin

IDIOMA

Codigo_tema

Descripcin

TEMA

DNI

Nombre

Telefono

SOCIO

Codigo_autor

Nombre

AUTOR

Codigo_libro

Titulo

Ao

LIBRO

Codigo_libro

Codigo_ejemplar

EJEMPLAR

Codigo_idioma

Descripcin

IDIOMA

Codigo_tema

Descripcin

TEMA

DNI

Nombre

Telefono

SOCIO

Codigo_autor

Nombre

AUTOR

Codigo_libro

Titulo

Ao

LIBRO

Codigo_libro

Codigo_ejemplar

EJEMPLAR

Codigo_idioma

Descripcin

IDIOMA

Codigo_tema

Descripcin

TEMA

DNI

Nombre

Telefono

SOCIO

Codigo_libro

Codigo_ejemplar

DNI

Fecha_prest

Fecha_dev

PRESTA

Codigo_autor

Codigo_libro

ESCRIBE

Codigo_libro

Codigo_tema

TRATA

Codigo_libro

Codigo_idioma

ESCRITO_EN