2 - teorico parte ii

Upload: destrabafull-xboxfull

Post on 10-Jan-2016

4 views

Category:

Documents


0 download

DESCRIPTION

base de datos)

TRANSCRIPT

  • Base de DatosTerico

    Modelo Relacional

    ConceptosEl modelo relacional representa una Base de datos (BD) como una coleccin de relaciones. Puede resultar confuso el concepto de modelo entidad-relacin vs modelo relacional, quizs porque ambos comparten casi las mismas palabras. El objetivo del modelo relacional es crear un "esquema" (schema), lo cual como se mencionar posteriormente consiste de un conjunto de "tablas" que representan "relaciones", relaciones entre los datos. Estas tablas, pueden ser construidas de diversas maneras:

    Creando un conjunto de tablas iniciales y aplicar operaciones de normalizacin hasta conseguir el esquema ms ptimo.

    Convertir el diagrama E-R a tablas y posteriormente aplicar tambin operaciones de normalizacin hasta conseguir el esquema ptimo.

    La primera tcnica fue de las primeras en existir y, como es de suponerse, la segunda al ser ms reciente es mucho ms conveniente en varios aspectos:

    El partir de un diagrama visual es muy til para apreciar los detalles, de ah que se llame modelo conceptual.

    El crear las tablas iniciales es mucho ms simple a travs de las reglas de conversin. Se podra pensar que es lo mismo porque finalmente hay que "normalizar" las tablas de

    todas formas, pero la ventaja de partir del modelo e-r es que la "normalizacin" es mnima por lo general.

    Lo anterior tiene otra ventaja, an cuando se normalice de manera deficiente, se garantiza un esquema aceptable, en la primera tcnica no es as.

    Conceptos bsicos

    Tablas El modelo relacional proporciona una manera simple de representar los datos: una tabla bidimensional llamada relacin.

    ttulo ao duracin tipoStar Wars 1977 124 colorMighty Ducks 1991 104 colorWayne's World 1992 95 color

    Relacin Pelculas

    Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 1

  • Base de DatosTerico

    La relacin Pelculas tiene la intencin de manejar la informacin de las instancias en la entidad Pelculas, cada rengln corresponde a una entidad pelcula y cada columna corresponde a uno de los atributos de la entidad. Sin embargo las relaciones pueden representar ms que entidades, como se explicar ms adelante.

    AtributosLos atributos son las columnas de una relacin y describen caractersticas particulares de ella.

    EsquemasEs el nombre que se le da a una relacin y el conjunto de atributos en ella.

    Pelculas (ttulo, ao, duracin, tipo)En un modelo relacin, un diseo consiste de uno o ms esquemas, a este conjunto se le conoce como "esquema relacional de base de datos" (relational database schema) o simplemente "esquema de base de datos" (database schema).

    Notacin R (A1, ... , An): R es el nombre de la relacin. A1, ... , An su lista de atributos. D = dom(Ai) dominio del atributo Ai . Grado de la relacin: Nmero de atributos (n).

    Ejemplo Esquema de relacin de grado 7, que describe estudiantes universitarios

    ESTUDIANTE(Nombre, NSS, TelParticular, Direccion, TelOficina, Edad, Prom)

    TuplasCada uno de los renglones en una relacin conteniendo valores para cada uno de los atributos.

    (Star Wars, 1977, 124, color) Tuplas en una relacin:

    Las tuplas de una relacin no tienen un orden especfico.

    Valores dentro de una tupla:

    El orden de valores dentro de una tupla es importante. Son atmicos: No se permiten atributos compuestos o multivaluados Existe el valor nulo.

    DominiosSe debe considerar que cada atributo (columna) debe ser atmico, es decir, que no sea divisible, no se puede pensar en un atributo como un "registro" o "estructura" de datos.

    Consta de nombre, tipo de datos y formato.

    Ejemplos :

    Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 2

  • Base de DatosTerico

    Nmeros telefnicos Mdeo: Nmeros vlidos de 7 dgitos. Nombres: Conjunto de nombres de personas. Notas: Enteros entre 1 y 12. Edades empleados: Edades posibles de los empleados de una compaa; cada una debe ser un valor entre 18 y 70 aos de edad.

    RelacinSemeja una tabla Fila: Coleccin de valores relacionados entre s, que representan a entidad o vnculo del mundo real. Nombres de tabla y columnas: Identifican el significado de los valores. Valores de columna: Mismo tipo de datos.

    r r(R) de un esquema R(A1, A2, . . ., An) es un conjunto de n-tuplas r={t1, t2, . ., tm} tal que:

    Cada n-tupla es una lista ordenada de valores t=

    Cada vi

  • Base de DatosTerico

    En una relacin no puede haber dos tuplas que tengan la misma combinacin de valores para todos sus atributos. Superclave: subconjunto de atributos (SC), tal que no debe haber dos tuplas en r con la misma combinacin de valores para dichos atributos:

    t1[SC] t2[SC] Toda relacin tiene por lo menos una superclave: el conjunto de todos sus atributos.

    Clave Superclave mnima: una superclave a la cual no le podemos quitar atributos sin que deje de cumplirse la restriccin de unicidad.

    Clave candidata Cuando un esquema de relacin tiene ms de una clave posible

    Clave primaria (CP) Es la clave candidata cuyos valores sirven para identificar las tuplas en la relacin.

    Integridad de entidades Ningn valor de una clave primaria puede tener valor nulo. Al igual que las restricciones de clave estas se especifican sobre relaciones individuales.

    Integridad referencial Se especifica entre dos relaciones. Sirve para mantener consistencia entre tuplas de las 2 relaciones. Informalmente: la referencia deber ser a una tupla existente de la otra relacin. Ejemplos :

    EMPLEADO.ND y DEPARTAMENTO.NUMEROD

    Claves extranjeras o externas (CE)

    CE conjunto no vaco de atributos de R1. CE es clave extranjera si:

    CP es clave primaria de R2. Los dominios de CE coinciden con los de CP. CE hace referencia a CP:

    t1 R1 t2 R2 | t1 [CE] = t2[CP] . o bien t1 [CE] = valor nulo .

    Ejemplo: 1. EMPLEADO.ND hace referencia a DEPARTAMENTO.

    2. Puede hacer referencia a la propia relacin:

    EMPLEADO.NSS_SUPERV

    Restricciones de integridad semnticas

    El lenguaje de definicin de datos debe contar con mecanismos para especificar RI.

    Ejemplo: El salario de un empleado no debe ser superior al de su jefe.

    Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 4

  • Base de DatosTerico

    Ejemplo

    Operaciones de actualizacin Son las siguientes:

    Insertar.

    Eliminar.

    Modificar.

    Cuando se aplican no deben violar ninguna RI. Es decir, despus que se ejecuten se debe

    mantener la integridad referencial de la BD.

    Las operaciones de actualizaciones puede violar la RI, veremos qu acciones se pueden

    emprender en caso de violacin.

    Insertar Al introducir una nueva tupla en la relacin se pueden violar los 4 tipos de restricciones

    vistos.

    Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 5

  • Base de DatosTerico

    Dominio si se proporciona un valor de atributo que no aparezca en el dominio

    correspondiente.

    Clave si un valor clave de la nueva tupla ya existe en otra tupla de la relacin.

    Integridad de entidades si la clave primaria de la nueva tupla es nula.

    Integridad referencial si el valor de cualquier clave externa de t hace referencia a

    una tupla que no existe en la relacin referida.

    Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 6

  • Base de DatosTerico

    Insertar .

    Insertar .

    Insertar .

    Insertar .

    Insertar .

    Insertar

    Ante violacin de una o ms restricciones:

    Rechazar

    Corregir

    Por ejemplo en la ltima insercin, agregar un departamento 7 o cambiar al empleado

    de departamento.

    Eliminar

    La eliminacin slo puede violar la integridad referencial

    Ejemplo

    Eliminar la tupla de la relacin DEPARTAMENTO con NUMEROD=5

    Ante violacin de la restriccin:

    Rechazar

    Propagar la eliminacin

    Eliminar todas las tuplas con referencia a la eliminada. (Eliminacin en cascada).

    Modificar los valores del atributo de referencia.

    Modificar

    Para atributos que no sean clave primaria ni extranjera:

    No suelen producirse problemas salvo que el nuevo valor no sea un valor vlido del

    dominio.

    Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 7

  • Base de DatosTerico

    Si es clave primaria:

    Equivale a eliminar la tupla e insertar una nueva.

    Mismos problemas que en insertar y eliminar.

    Si es clave extranjera:

    Para mantener la integridad referencial el DBMS debe asegurar que el nuevo valor existe.

    Ejemplo

    Modificar el SALARIO del EMPLEADO con NSS=999887777 a 28.000.

    Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 8

  • Base de DatosTerico

    Paso del esquema ER al modelo relacional

    Transformaciones de entidades fuertes

    En principio las entidades fuertes del modelo Entidad Relacin son transformadas al modelo

    relacional siguiendo estas instrucciones:

    Entidades. Las entidades pasan a ser tablas.

    Atributos. Los atributos pasan a ser columnas.

    Identificadores principales. Pasan a ser claves primarias.

    Identificadores candidatos. Pasan a ser claves candidatas.

    Esto hace que la transformacin sea de esta forma:

    Transformacin de relaciones

    La idea inicial es transformar a cada relacin en una tabla en el modelo relacional. Pero hay que

    distinguir segn el tipo de relacin.

    Relaciones varios a variosEn las relaciones varios a varios, la relacin se transforma en una tabla cuyos atributos son:

    Los atributos de la relacin y las claves de las entidades relacionadas (que pasarn a

    ser claves externas).

    La clave de la tabla la forman todas las claves externas:

    Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 9

    NombreIdentificador Atributo1

    Atributo2 Atributo3

    Nombre (Identificador, Atributo 1, Atributo 2, Atributo 3)

    Transformacin de una entidad fuerte al esquema relacional

  • Base de DatosTerico

    Relaciones uno a varios y uno a unoLas relaciones binarios de tipo uno a varios no requieren ser transformadas en una tabla en el

    modelo relacional. En su lugar la tabla del lado varios (tabla relacionada) incluye como clave

    externa el identificador de la entidad del lado uno (tabla principal):

    As en el dibujo, el identificador2 en la tabla Entidad1 pasa a ser una clave externa. En el caso de

    que el nmero mnimo de la relacin sea de cero (puede haber ejemplares de la entidad uno sin

    relacionar), se deber permitir valores nulos en la clave externa identificador2. En otro caso no se

    podrn permitir (ya que siempre habr un valor relacionado).

    En el caso de las relaciones uno a uno, ocurre lo mismo: la relacin no se convierte en tabla, sino

    que se coloca en una de las tablas (en principio dara igual cul) el identificador de la entidad

    relacionada como clave externa. En el caso de que una entidad participe opcionalmente en la

    relacin, entonces es el identificador de sta el que se colocar como clave externa en la tabla que

    representa a la otra entidad.

    Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 10

    Nombre (Identificador1, Identificador2, Atributo1, Atributo2)

    Transformacin de una relacin varios a varios

    Identificador2

    Atributo1

    Atributo2

    Identificador1

    NombreN N

    Entidad2 (Identificador2, Atributo2)Entidad1 (Identificador1, Atributo1, Identificador2, Atributo3)

    Transformacin de una relacin uno a varios

    Entidad2

    Identificador2Atributo3

    Atributo1

    Entidad1Identificador1 NombreN N

    Atributo2

  • Base de DatosTerico

    Relaciones recursivasLas relaciones recursivas se tratan de la misma forma que las otras, slo que un mismo atributo

    puede figurar dos veces en una tabla como resultado de la transformacin:

    Entidades dbilesToda entidad dbil incorpora una relacin implcita con una entidad fuerte. Esta relacin no

    necesita incorporarse como tabla en el modelo relacional. S se necesita incorporar la clave de la

    entidad fuerte como clave externa en la entidad dbil. Es ms, normalmente esa clave externa

    forma parte de la clave principal de la tabla que representa a la entidad dbil.

    El proceso es:

    Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 11

    Entidad (Identificador, Atributo1, Identificador Rol 1) Entidad (Identificador, Atributo1)Relac (Identificador Rol 1, Identificador Rol 2, Atributo1)

    Transformacin de auto relaciones o relaciones recursivas

    Atributo1

    EntidadIdentificador Relac.

    N

    1

    Rol 2

    Rol 1

    Atributo1

    EntidadIdentificador Relac.

    N

    N

    Rol 2

    Rol 1

    EntidadFuerte (IDFuerte, Atributo1)EntidadDbil (IDDebil, IDFuerte, Atributo2)

    Transformacin de una entidad dbil en el modelo relacional

    Entidad Dbil

    ID Dbil

    Atributo1

    Entidad Fuerte ID Fuerte

    Atributo2

  • Base de DatosTerico

    En ocasiones el identificador de la entidad dbil es suficiente para identificar los ejemplares de

    dicha entidad, entonces ese identificador quedara como clave principal, pero el identificador de la

    entidad fuerte seguira figurando como clave externa en la entidad dbil.

    Generalizaciones Y EspecificacionesLas generalizaciones y/o especificaciones se convierten al modelo relacional de esta forma:

    Las subentidades pasan a ser tablas.

    Si la clave de la superentidad es distinta de las subentidades, entonces se coloca el identificador de la superentidad en cada subentidad como clave externa:

    Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 12

    Entidad2 (Identificador2, Atributo3)Entidad1 (Identificador1, Atributo1, Identificador2, Atributo2)

    Transformacin de una relacin uno a varios

    Entidad2

    Identificador2Atributo2

    Atributo1

    Entidad1Identificador1 NombreN N

    Atributo3

    Superentidad (Identificador1, Atributo1)Subentidad1 (Identificador2, Atributo2, Identificador1)Subentidad2 (Identificador3, Atributo3, Identificador1)Transformacin de una con clave propia

    Subentidad2

    Identificador3

    Atributo2

    Subentidad1Identificador2

    Atributo3

    Atributo1

    SuperentidadIdentificador1

  • Base de DatosTerico

    Si la clave es la misma, entonces todas las entidades tendrn la misma columna como identificador:

    La superentidad debe generar una tabla slo en el caso de que haya posibilidad de que exista un ejemplar de dicha entidad que no sea ejemplar de las subentidades. De otro modo basta con generar las tablas de las subentidades e incluir los atributos de la entidad superior:

    Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 13

    Superentidad (Identificador, Atributo1)Subentidad1 (Identificador, Atributo2)Subentidad2 (Identificador, Atributo3)

    Transformacin si tienen la misma clave

    Subentidad2

    Identificador

    Atributo2

    Subentidad1Identificador

    Atributo3

    Atributo1

    SuperentidadIdentificador

    Subentidad1 (Identificador, Atributo2, Atributo1)Subentidad2 (Identificador, Atributo3, Atributo1)

    Transformacin cuando toda superentidad figura como subentidad

    Subentidad2

    Identificador

    Atributo2

    Subentidad1Identificador

    Atributo3

    Atributo1

    SuperentidadIdentificador

    Conceptos bsicosTablasAtributosEsquemasR es el nombre de la relacin.A1, ... , An su lista de atributos.D = dom(Ai) dominio del atributo Ai .Grado de la relacin: Nmero de atributos (n).EjemploEsquema de relacin de grado 7, que describe estudiantes universitariosESTUDIANTE(Nombre, NSS, TelParticular, Direccion, TelOficina, Edad, Prom)TuplasLas tuplas de una relacin no tienen un orden especfico.El orden de valores dentro de una tupla es importante.Son atmicos: No se permiten atributos compuestos o multivaluadosExiste el valor nulo.DominiosEjemplos:Nmeros telefnicos Mdeo: Nmeros vlidos de 7 dgitos.Nombres: Conjunto de nombres de personas.Notas: Enteros entre 1 y 12.Edades empleados: Edades posibles de los empleados de una compaa; cada una debe ser un valor entre 18 y 70 aos de edad.RelacinFila: Coleccin de valores relacionados entre s, que representan a entidad o vnculo del mundo real.Nombres de tabla y columnas: Identifican el significado de los valores.Valores de columna: Mismo tipo de datos.r r(R) de un esquema R(A1, A2, . . ., An) es un conjunto de n-tuplas r={t1, t2, . ., tm} tal que:Cada n-tupla es una lista ordenada de valores t=Cada vi