diseño de base de datos

22
DISEÑO DE BASE DE DISEÑO DE BASE DE DATOS DATOS DEPENDENCIA FUNCIONAL DEPENDENCIA FUNCIONAL Un tipo particular de restricción se Un tipo particular de restricción se llama dependencia funcional. llama dependencia funcional. La noción de dependencia funcional es La noción de dependencia funcional es una generalización de la noción de una generalización de la noción de clave. Las dependencias funcionales clave. Las dependencias funcionales son una restricción al conjunto de son una restricción al conjunto de relaciones legales; nos permiten relaciones legales; nos permiten expresar hechos acerca de la empresa expresar hechos acerca de la empresa que estamos modelando con la base de que estamos modelando con la base de datos. datos. Se dice que existe una dependencia Se dice que existe una dependencia funcional entre los atributos funcional entre los atributos A y B si para cada valor del atributo A y B si para cada valor del atributo A le corresponde un único valor para A le corresponde un único valor para el atributo B. el atributo B.

Upload: stalin-borja-plazarte

Post on 18-Dec-2015

212 views

Category:

Documents


0 download

DESCRIPTION

universidad politécnica salesiana

TRANSCRIPT

  • DISEO DE BASE DE DATOS DEPENDENCIA FUNCIONALUn tipo particular de restriccin se llama dependencia funcional.La nocin de dependencia funcional es una generalizacin de la nocin de clave. Las dependencias funcionales son una restriccin al conjunto de relaciones legales; nos permiten expresar hechos acerca de la empresa que estamos modelando con la base de datos.Se dice que existe una dependencia funcional entre los atributos A y B si para cada valor del atributo A le corresponde un nico valor para el atributo B.

  • DISEO DE BASE DE DATOSR(A, B, C, D)A B (A DETERMINA FUNCIONALMENTE A B)(B DEPENDE FUNCIONALMENTE DE A)La dependencia funcional entre A y B se cumple tambin si para dos valores iguales de A se tienen los valores de B iguales.t1(A) = t2(A) ti(B) = t2(B)Utilizando la notacin de dependencia funcional decimos que K es una clave de R si se cumple que K Rt1(K) = t2(K) t1(R) = t2(R)t1 = t2Las dependencias funcionales nos permiten expresar restricciones que no pueden expresarse por medio de claves.

  • DISEO DE BASE DE DATOSEjmPRESTAMO ( nombre_sucursal, numero_prestamo, nombre_cliente, cantidad)Si un prstamo dado puede hacerse a mas de un cliente entonces no se esperara que el atributo numero_prestamo fuera una superclave. Sin embargo la dependencia funcional:Numero_prestamo cantidadDebe cumplirse puesto que cada numero de prstamo debe estar asociado precisamente a una cantidad.Usaremos las dependencias funcionales de dos formas:

  • DISEO DE BASE DE DATOSPara especificar restricciones en el conjunto de relaciones legales.Asi pues nos interesa solo por las relaciones que satisfagan un conjunto dado de dependencias funcionales.Para probar si una relacin es legal bajo un conjunto dado de dependencias funcionales.El conocimiento de las dependencias funcionales resulta indispensable para redisear esquemas de bases de datos que eliminen la redundancia.

  • DISEO DE BASE DE DATOSUna dependencia funcional sobre una relacin R es una proposicin de la forma Si dos tuplas de R concuerdan en los atributos A1,A2,An ( es decir, las tuplas poseen los mismos valores en sus componentes respectivas para cada uno de esos atributos), tambin lo harn en otro atributo B. esta dependencia la escribiremos como A1 A2An B y decimos que A1,A2,An determinan funcionalmente a B. Si un conjunto de atributos A1,A2,An determinan funcionalmente a mas de un atributo digamos

  • DISEO DE BASE DE DATOSA1 A2AnB1A1 A2AnB2A1 A2AnBmEntonces se puede escribir de forma abreviadaA1 A2AnB1 B2BmEjemplo:

  • DISEO DE BASE DE DATOSAnalizamos que dependencias se cumplen:Se cumple que ACSin embargo no se cumple la DF CASe dice que algunas dependencias son triviales porque se satisfacen por todas las relaciones.

  • DISEO DE BASE DE DATOSPROBLEMAS EN UN MAL DISEO DE BASES DE DATOSUna base de datos mal diseada puede tener muchos defectos.Entre las propiedades que un mal diseo tiene estan:Repeticin de informacinPerdida de informacinImposibilidad para representar cierta informacin.Ejm.

  • DISEO DE BASE DE DATOSEn este ejemplo los datos de nombre_prod y costo_prod deben repetirse para cada pedido que se realiza de un producto.Adems si queremos eliminar del pedido el producto marcador se elimina la informacin relacionada del precio de ese producto.Y finalmente existe la imposibilidad de representar el precio de un producto si no se tiene un pedido de ese producto.Descomposicin de producto sin perdida de informacionPedido = producto x pedio x detalle

  • DISEO DE BASE DE DATOS2 NORMALIZACION DE DATOSLa normalizacin de datos es un procedimiento que asegura que un modelo de datos se ajusta a algunos estndares tiles. Estos estndares se han definido para minimizar la duplicacin de datos, proporcionar flexibilidad necesaria para soportar requisitos funcionales y para permitir que el modelo se estructure sobre una amplia variedad de diseos alternativos de bases de datos.La teora de la normalizacin esta basada en el concepto de formas normales. Se dice que una relacin esta en una forma normal particular si satisface cierto conjunto especifico de restricciones.

  • DISEO DE BASE DE DATOSPRIMERA FORMA NORMAL (1FN)Eliminar los atributos repetidos o grupos de atributos.Se dice que una relacin esta en la primera forma normal si y solo si satisface la restriccin de contener nicamente valores atmicos (en 1 atributo no podemos tener 2 valores).Si existe mas de un valor a la vez para un atributo o para mas de uno con el mismo nombre, se define una entidad nueva, la cual se describe mediante ese atributo. El identificador nico de esta nueva entidad consta de uno de los atributos que se fueron con ella y la relacin muchos a uno se lleva a la entidad original.

  • DISEO DE BASE DE DATOSVUELO#* fecha#* hora#* num_vuelo* nombre_linea_aerea* nombre_aeropuerto tipo_avion capacidad_de_asientos nombre_tripulacion1 funcion_tripulacion1 nombre_tripulacion2 funcion_tripulacion2 nombre_tripulacion3 funcion_tripulacion3

  • DISEO DE BASE DE DATOS

  • DISEO DE BASE DE DATOS2 SEGUNDA FORMA NORMAL (2FN)Eliminar atributos dependientes solo en parte del identificador nico.Si una entidad tiene un identificador nico compuesto de mas de un atributo, y si otro atributo depende solo de parte de este identificador compuesto, entonces el atributo, y la parte del identificador del que depende, debern formar la base de una nueva entidad. La entidad nueva se identificara por la parte emigrada del identificador nico de la entidad original y tiene una relacin de uno a muchos unido a la entidad original.Toda relacin cuya clave esta formada por un solo atributo esta en la 2FN.

  • DISEO DE BASE DE DATOSEjm1. ORDEN (CODORDEN, FECHAORDEN, ISBN, CODCLI, NOMLIBRO, PRECIO)ORDEN(CODORDEN, FECHAORDEN, ISBN, CODCLI)LIBRO(ISBN, NOMLIBRO, PRECIO)Ejm2. PEDIDO (NUM_PEDIDO, COD_PRODUCTO, NOMBRE_PRODUCTO, COSTO, FECHA_PEDIDO, CANTIDAD )NUM_PEDIDO Y COD_PRODUCTO es el identificador pero adems tenemos dos dependencias funcionales entre Num_pedido y fecha_pedido y entre Cod_producto y nombre_producto.

  • DISEO DE BASE DE DATOSPEDIDO (NUM_PEDIDO, FECHA_PEDIDO)PRODUCTO (COD_PRODUCTO, NOMBRE_PRODUCTO, COSTO)DETALLE (NUM_PEDIDO, COD_PRODUCTO, CANTIDAD)Ejm 3 ESTUDIANTE (NUM_ESTUDIANTE, NOMBRE_ESTUDIANTE)CURSO (NUM_CURSO)EXAMEN (NUM_ESTUDIANTE, NUM_CURSO, PROFESOR, CALIFICACION)El par Num_estudiante, Num_curso es el identificador en Examen, pero si cada curso tiene solo un profesor, se cumple la dependencia funcional entre Num_curso y Profesor y por lo tanto no esta en la 2FN.

  • DISEO DE BASE DE DATOSESTUDIANTE (NUM_ESTUDIANTE, NOMBRE_ESTUDIANTE)CURSO (NUM_CURSO, PROFESOR)EXAMEN (NUM_ESTUDIANTE, NUM_CURSO, CALIFICACION)

  • DISEO DE BASE DE DATOS

  • DISEO DE BASE DE DATOSTERCERA FORMA NORMAL (3FN)Eliminar los atributos dependientes de atributos que no son parte del identificador nico.Si un atributo de una entidad es dependiente de otro atributo, que no es parte del identificador nico, entonces estos atributos deberan formar la base de una entidad nueva, que tenga una relacin de uno a muchos con la entidad original. El identificador nico de la entidad nueva es ese atributo del que depende el otro atributo.No debe haber dependencias funcionales entre los atributos no claves.

  • DISEO DE BASE DE DATOSLa 3FN permite las dependencias funcionales cuyo lado izquierdo no sea una clave.Una entidad esta en la 3FN si se encuentra en la segunda forma normal y no tiene ninguna dependencia funcional transitiva.Se dice que la dependencia entre A y C es una dependencia transitiva si se puede inferir a partir de las dependencias entre A y B y entre B y C.Ejm. EMPLEADO (NUM_EMPL, NOMBRE)DEPARTAMENTO ( NUM_DPTO, NUM_DIVISION, ADMINISTRADOR)

  • DISEO DE BASE DE DATOSDepartamento no se encuentra en la 3FN porque existe una DF transitiva.EMPLEADO (NUM_EMPL, NOMBRE)DEPARTAMENTO ( NUM_DPTO)DIVISION (NUM_DIVISION, ADMINISTRADOR)Ejm2 . EMPLEADO (NSS, NOMBRE)DEPARTAMENTO (NUM_DPTO, NOMBRE)TRABAJA (NSS, NUM_DPTO, NUM_PROYECTO, PRESUPUESTO, NUM_HORAS_TRAB)

  • DISEO DE BASE DE DATOSEMPLEADO y DEPARTAMENTO se encuentran en la 3FN pero TRABAJA no se encuentra ya que existen dependencias transitivas.EMPLEADO (NSS, NOMBRE)DEPARTAMENTO (NUM_DPTO, NOMBRE)TRABAJA (NSS, NUM_DPTO, NUM_PROYECTO, NUM_HORAS_TRAB)PROYECTO (NUM_PROYECTO, PRESUPUESTO)