Documente Academic
Documente Profesional
Documente Cultură
El esquema fsico de una base de datos, depende del tipo de SGBD y de un SGBD especfico. El esquema fsico de una base de datos es una descripcin de la implementacin de una base de datos en memoria secundaria, describiendo las estructuras de almacenamiento y los mtodos de acceso a esos datos.
El modelo relacional En 1970, el modo en que se vean las bases de datos cambi por completo cuando E. F. Codd introdujo el modelo relacional. En aquellos momentos, el enfoque existente para la estructura de las bases de datos utilizaba punteros fsicos (direcciones de disco) para relacionar registros de distintos ficheros. Si, por ejemplo, se quera relacionar un registro con un registro , se deba aadir al registro un campo conteniendo la direccin en disco del registro . Este campo aadido, un puntero fsico, siempre sealara desde el registro al registro . Codd demostr que estas bases de datos limitaban en gran medida los tipos de operaciones que los usuarios podan realizar sobre los datos. Adems, estas bases de datos eran muy vulnerables a cambios en el entorno fsico. Si se aadan los controladores de un nuevo disco al sistema y los datos se movan de una localizacin fsica a otra, se requera una conversin de los ficheros de datos. Estos sistemas se basaban en el modelo de red y el modelo jerrquico, los dos modelos lgicos que constituyeron la primera generacin de los SGBD. El modelo relacional representa la segunda generacin de los SGBD. En l, todos los datos estn estructurados a nivel lgico como tablas formadas por filas y columnas, aunque a nivel fsico pueden tener una estructura completamente distinta. Un punto fuerte del modelo relacional es la sencillez de su estructura lgica. Pero detrs de esa simple estructura hay un fundamento terico importante del que carecen los SGBD de la primera generacin, lo que constituye otro punto a su favor. Dada la popularidad del modelo relacional, muchos sistemas de la primera generacin se han modificado para proporcionar una interfaz de usuario relacional, con independencia del modelo lgico que soportan (de red o jerrquico). Por ejemplo, el sistema de red IDMS ha evolucionado a IDMS/R e IDMS/SQL, ofreciendo una visin relacional de los datos. En los ltimos aos, se han propuesto algunas extensiones al modelo relacional para capturar mejor el significado de los datos, para disponer de los conceptos de la orientacin a objetos y para disponer de capacidad deductiva. El modelo relacional, como todo modelo de datos, tiene que ver con tres aspectos de los datos: Estructura de datos. Integridad de datos. Manejo de datos.
Estructura de datos relacional En este apartado se presenta la estructura de datos del modelo relacional: la relacin Relaciones
Definiciones informales El modelo relacional se basa en el concepto matemtico de relacin, que grficamente se representa mediante una tabla. Codd, que era un experto matemtico, utiliz una terminologa perteneciente a las matemticas, en concreto de la teora de conjuntos y de la lgica de predicados. Una relacin es una tabla con columnas y filas. Un SGBD slo necesita que el usuario pueda percibir la base de datos como un conjunto de tablas. Esta percepcin slo se aplica a la estructura lgica de la base de datos (en el nivel externo y conceptual de la arquitectura de tres niveles ANSI-SPARC). No se aplica a la estructura fsica de la base de datos, que se puede implementar con distintas estructuras de almacenamiento. Un atributo es el nombre de una columna de una relacin. En el modelo relacional, las relaciones se utilizan para almacenar informacin sobre los objetos que se representan en la base de datos. Una relacin se representa grficamente como una tabla bidimensional en la que las filas corresponden a registros individuales y las columnas corresponden a los campos o atributos de esos registros. Los atributos pueden aparecer en la relacin en cualquier orden. Por ejemplo, la informacin de las oficinas de la empresa inmobiliaria se representa mediante la relacin OFICINA, que tiene columnas para los atributos Onum (nmero de oficina), Calle, Area, Poblacin, Telfono y Fax. La informacin sobre la plantilla se representa mediante la relacin PLANTILLA, que tiene columnas para los atributos Enum (nmero de empleado), Nombre, Apellido, Direccin, Telfono, Puesto, Fecha_nac, Salario, DNI, Onum (nmero de la oficina a la que pertenece el empleado). A continuacin se muestra una instancia de la relacin OFICINA y una instancia de la relacin PLANTILLA. Como se puede observar, cada columna contiene valores de un solo atributo. Por ejemplo, la columna Onum slo contiene nmeros de oficinas que existen. OFICINA
Onum Calle Area Poblacin Telfono Fax O5 Enmedio, 8 Centro Castelln 964 201 240 964 201 340 O7 Moyano, s/n Centro Castelln 964 215 760 964 215 670 O3 San Miguel, 1 Villarreal 964 520 250 964 520 255 O4 Trafalgar, 23 Grao Castelln 964 284 440 964 284 420 O2 Cedre, 26 Villarreal 964 525 810 964 252 811 PLANTILLA Enu Nombr Apellid Telfon Direccin Puesto m e o o 964 EL2 Magallane Amelia Pastor 284 Director 1 s, 15 560 Castelln 964 EG3 Cubed Bayarri, Supervis Pedro 535 7 o 11 or 690 Villarreal 964 EG1 Collad Luis Borriol, 35 522 Administ. 4 o 230 Villarreal 964 Casalduc Supervis EA9 Rita Renau 257 h, 32 or 550 Castelln 964 EG5 Julio Prats Melilla, 23 524 Director 590 Villarreal 964 EL4 Herrero, Supervis Carlos Baeza 247 1 51 or 250 Castelln Fecha_n Salari DNI ac o 12/10/62 Onu m
3000 39432212 O5 0 E
24/3/57
1800 38766623 O3 0 X
9/5/70
1200 24391223 O3 0 L
19/5/60
1800 39233190 O7 0 F
19/12/50
2400 25644309 O3 0 X
29/2/67
1800 39552133 O5 0 T
Un dominio es el conjunto de valores legales de uno o varios atributos. Los dominios constituyen una poderosa caracterstica del modelo relacional. Cada atributo de una base de datos relacional se define sobre un dominio, pudiendo haber varios atributos definidos sobre el mismo dominio. La siguiente tabla muestra los dominios de los atributos de la relacin OFICINA. Ntese que en esta
relacin hay dos atributos que estn definidos sobre el mismo dominio, Telfono y Fax. Atributo Onum Nombre del Dominio NUM_OFICINA Descripcin Posibles valores de nmero de oficina Definicin 3 caracteres; rango O1O99 25 caracteres 20 caracteres 15 caracteres 9 caracteres 9 caracteres
Calle Area
NOM_CALLE NOM_AREA
Nombres de reas de las poblaciones de Espaa Nombres de las poblaciones de Poblacin NOM_POBLACION Espaa Telfono NUM_TEL_FAX Nmeros de telfono de Espaa Fax NUM_TEL_FAX Nmeros de telfono de Espaa
El concepto de dominio es importante porque permite que el usuario defina, en un lugar comn, el significado y la fuente de los valores que los atributos pueden tomar. Esto hace que haya ms informacin disponible para el sistema cuando ste va a ejecutar una operacin relacional, de modo que las operaciones que son semnticamente incorrectas, se pueden evitar. Por ejemplo, no tiene sentido comparar el nombre de una calle con un nmero de telfono, aunque los dos atributos sean cadenas de caracteres. Sin embargo, el importe mensual del alquiler de un inmueble no estar definido sobre el mismo dominio que el nmero de meses que dura el alquiler, pero s tiene sentido multiplicar los valores de ambos dominios para averiguar el importe total al que asciende el alquiler. Los SGBD relacionales no ofrecen un soporte completo de los dominios ya que su implementacin es extremadamente compleja. Una tupla es una fila de una relacin. Los elementos de una relacin son las tuplas o filas de la tabla. En la relacin OFICINA, cada tupla tiene seis valores, uno para cada atributo. Las tuplas de una relacin no siguen ningn orden. El grado de una relacin es el nmero de atributos que contiene. La relacin OFICINA es de grado seis porque tiene seis atributos. Esto quiere decir que cada fila de la tabla es una tupla con seis valores. El grado de una relacin no cambia con frecuencia. La cardinalidad de una relacin es el nmero de tuplas que contiene. Ya que en las relaciones se van insertando y borrando tuplas a menudo, la cardinalidad de las mismas vara constantemente.
Una base de datos relacional es un conjunto de relaciones normalizadas. Definiciones formales Una relacindefinida sobre un conjunto de dominios consta de: Cabecera: conjunto fijo de pares atributo:dominio
donde cada atributo corresponde a un nico dominio y todos los son distintos, es decir, no hay dos atributos que se llamen igual. El grado de la relacin es . Cuerpo: conjunto variable de tuplas. Cada tupla es un conjunto de paresatributo:valor:
con , donde es la cardinalidad de la relacin . En cada par se tiene que . La relacin OFICINA tiene la siguiente cabecera: {(Onum:NUM_OFICINA), (Calle:NOM_CALLE), (Area:NOM_AREA), (Poblacin:NOM_POBLACION), (Telfono:NUM_TEL_FAX), (Fax:NUM_TEL_FAX)}. Siendo la siguiente una de sus tuplas: {(Onum:O5), (Calle:Enmedio,8), (Area:Centro), (Poblacin:Castelln), (Telfono:964 201 240), (Fax:964 201 340)}. Este conjunto de pares no est ordenado, por lo que esta tupla y la siguiente, son la misma: {(Calle:Enmedio,8), (Fax:964 201 340), (Poblacin:Castelln), (Onum:O5), (Telfono:964 201 240), (Area:Centro)} Grficamente se suelen representar las relaciones mediante tablas. Los nombres de las columnas corresponden a los nombres de los atributos y las filas son cada una de las tuplas de la relacin. Los valores que aparecen en cada una de las columnas pertenecen al conjunto de valores del dominio sobre el que est definido el atributo correspondiente.
Propiedades de las relaciones Las relaciones tienen las siguientes caractersticas: Cada relacin tiene un nombre y ste es distinto del nombre de todas las dems. Los valores de los atributos son atmicos: en cada tupla, cada atributo toma un solo valor. Se dice que las relaciones estn normalizadas. No hay dos atributos que se llamen igual. El orden de los atributos no importa: los atributos no estn ordenados. Cada tupla es distinta de las dems: no hay tuplas duplicadas. El orden de las tuplas no importa: las tuplas no estn ordenadas.
Tipos de relaciones En un SGBD relacional pueden existir varios tipos de relaciones, aunque no todos manejan todos los tipos. Relaciones base. Son relaciones reales que tienen nombre y forman parte directa de la base de datos almacenada (son autnomas). Vistas. Tambin denominadas relaciones virtuales, son relaciones con nombre y derivadas: se representan mediante su definicin en trminos de otras relaciones con nombre, no poseen datos almacenados propios. Instantneas. Son relaciones con nombre y derivadas. Pero a diferencia de las vistas, son reales, no virtuales: estn representadas no slo por su definicin en trminos de otras relaciones con nombre, sino tambin por sus propios datos almacenados. Son relaciones de slo de lectura y se refrescan peridicamente. Resultados de consultas. Son las relaciones resultantes de alguna consulta especificada. Pueden o no tener nombre y no persisten en la base de datos. Resultados intermedios. Son las relaciones que contienen los resultados de las subconsultas. Normalmente no tienen nombre y tampoco persisten en la base de datos.
Resultados temporales. Son relaciones con nombre, similares a las relaciones base o a las instantneas, pero la diferencia es que se destruyen automticamente en algn momento apropiado. Claves Ya que en una relacin no hay tuplas repetidas, stas se pueden distinguir unas de otras, es decir, se pueden identificar de modo nico. La forma de identificarlas es mediante los valores de sus atributos. Una superclave es un atributo o un conjunto de atributos que identifican de modo nico las tuplas de una relacin. Una clave candidata es una superclave en la que ninguno de sus subconjuntos es una superclave de la relacin. El atributo o conjunto de atributos de la relacin es una clave candidata para si y slo si satisface las siguientes propiedades: Unicidad: nunca hay dos tuplas en la relacin con el mismo valor de .
Irreducibilidad (minimalidad): ningn subconjunto de tiene la propiedad de unicidad, es decir, no se pueden eliminar componentes de sin destruir la unicidad. Cuando una clave candidata est formada por ms de un atributo, se dice que es unaclave compuesta. Una relacin puede tener varias claves candidatas. Por ejemplo, en la relacin OFICINA, el atributo Poblacin no es una clave candidata ya que puede haber varias oficinas en una misma poblacin. Sin embargo, ya que la empresa asigna un cdigo nico a cada oficina, el atributo Onum s es una clave candidata de la relacin OFICINA. Tambin son claves candidatas de esta relacin los atributos Telfono y Fax. En la base de datos de la inmobiliaria hay una relacin denominada VISITA que contiene informacin sobre las visitas que los clientes han realizado a los inmuebles. Esta relacin contiene el nmero del cliente Qnum, el nmero del inmueble Inum, la fecha de la visita Fecha y un comentario opcional. Para un determinado nmero de cliente Qnum, se pueden encontrar varias visitas a varios inmuebles. Del mismo modo, dado un nmero de inmueble Inum, puede que haya varios clientes que lo hayan visitado. Por lo tanto, el atributo Qnum no es una clave candidata para la relacin VISITA, como tampoco lo es el atributo Inum. Sin embargo, la combinacin de los dos atributos s identifica a una sola tupla, por lo que los dos juntos son una clave candidata de VISITA. Si se desea considerar la posibilidad de que un mismo cliente pueda visitar un mismo inmueble en varias
ocasiones, habra que incluir el atributo Fecha para identificar las tuplas de modo nico (aunque ste no es el caso de la empresa que nos ocupa). Para identificar las claves candidatas de una relacin no hay que fijarse en un estado o instancia de la base de datos. El hecho de que en un momento dado no haya duplicados para un atributo o conjunto de atributos, no garantiza que los duplicados no sean posibles. Sin embargo, la presencia de duplicados en un estado de la base de datos s es til para demostrar que cierta combinacin de atributos no es una clave candidata. El nico modo de identificar las claves candidatas es conociendo el significado real de los atributos, ya que esto permite saber si es posible que aparezcan duplicados. Slo usando esta informacin semntica se puede saber con certeza si un conjunto de atributos forman una clave candidata. Por ejemplo, viendo la instancia anterior de la relacin PLANTILLA se podra pensar que el atributo Apellido es una clave candidata. Pero ya que este atributo es el apellido de un empleado y es posible que haya dos empleados con el mismo apellido, el atributo no es una clave candidata. La clave primaria de un relacin es aquella clave candidata que se escoge para identificar sus tuplas de modo nico. Ya que una relacin no tiene tuplas duplicadas, siempre hay una clave candidata y, por lo tanto, la relacin siempre tiene clave primaria. En el peor caso, la clave primaria estar formada por todos los atributos de la relacin, pero normalmente habr un pequeo subconjunto de los atributos que haga esta funcin. Las claves candidatas que no son escogidas como clave primaria son denominadasclaves alternativas. Por ejemplo, la clave primaria de la relacin OFICINA es el atributo Onum, siendo Telfono y Fax dos claves alternativas. En la relacin VISITA slo hay una clave candidata formada por los atributos Qnum e Inum, por lo que esta clave candidata es la clave primaria. Una clave ajena es un atributo o un conjunto de atributos de una relacin cuyos valores coinciden con los valores de la clave primaria de alguna otra relacin (puede ser la misma). Las claves ajenas representan relaciones entre datos. El atributo Onum de PLANTILLA relaciona a cada empleado con la oficina a la que pertenece. Este atributo es una clave ajena cuyos valores hacen referencia al atributo Onum, clave primaria de OFICINA. Se dice que un valor de clave ajena representa una referencia a la tupla que contiene el mismo valor en su clave primaria ( tupla referenciada). Esquema de una base de datos relacional Una base de datos relacional es un conjunto de relaciones normalizadas. Para representar el esquema de una base de datos relacional se debe dar el
nombre de sus relaciones, los atributos de stas, los dominios sobre los que se definen estos atributos, las claves primarias y las claves ajenas.
Modelo relacional
El modelo relacional para la gestin de una base de datos es un modelo de datos basado en la lgica de predicados y en la teora de conjuntos. Es el modelo ms utilizado en la actualidad para modelar problemas reales y administrar datos dinmicamente. Tras ser postuladas sus bases en 1970 por Edgar Frank Codd, de los laboratorios IBM en San Jos (California), no tard en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso de relaciones. Estas relaciones podran considerarse en forma lgica como conjuntos de datos llamados tuplas. Pese a que sta es la teora de las bases de datos relacionales creadas por Edgar Frank Codd, la mayora de las veces se conceptualiza de una manera ms fcil de imaginar, esto es, pensando en cada relacin como si fuese una tablaque est compuesta por registros (cada fila de la tabla sera un registro o tupla), y columnas (tambin llamadas campos).
ndice
[ocultar]
1 Descripcin
o o
Nombre de la relacin (su identificador). Nombre de los atributos (o campos) de la relacin y sus dominios; el dominio de un atributo o campo define los valores permitidos para el mismo, equivalente al tipo de dato por ejemplocharacter, integer, date, string...
Ciertos caracteres y nmeros (una sola columna de una sola fila). Algunas o todas las filas con todas o algunas columnas
Cada fila es una tupla. El nmero de filas es llamado cardinalidad. El nmero de columnas es llamado aridad o grado.
Una base de datos relacional es un conjunto de una o ms tablas estructuradas en registros (lneas) y campos (columnas), que se vinculan entre s por un campo en comn, en ambos casos posee las mismas caractersticas como por ejemplo el nombre de campo, tipo y longitud; a este campo generalmente se le denomina ID, identificador o clave. A esta manera de construir bases de datos se le denomina modelo relacional. Estrictamente hablando el trmino se refiere a una coleccin especfica de datos pero a menudo se le usa, en forma errnea como sinnimo del software usado para gestionar esa coleccin de datos. Ese software se conoce como SGBD (sistema gestor de base de datos) relacional o RDBMS (del ingls relational database management system).
Las bases de datos relacionales pasan por un proceso al que se le conoce como normalizacin de una base de datos, el cual es entendido como el proceso necesario para que una base de datos sea utilizada de manera ptima. Entre las ventajas de este modelo estn: 1. Garantiza herramientas para evitar la duplicidad de registros, a travs de campos claves o llaves. 2. Garantiza la integridad referencial: As al eliminar un registro elimina todos los registros relacionados dependientes. 3. Favorece la normalizacin por ser ms comprensible y aplicable.
3. Modelo relacional
3.1 Introduccin
En el captulo anterior se mencionaron 3 tipos de modelado: conceptual, lgico y fsico. El modelo e-r se considera un modelo conceptual ya que permite a un nivel alto el ver con claridad la informacin utilizada en algun problema o negocio. En este captulo nos concentraremos en desarrollar un buen modelo "lgico" que se conoce como "esquema de la base de datos" (database schema) a partir del cual se podr realizar el modelado fsico en el DBMS, es importante mencionar que es un paso necesario, no se puede partir de un modelo conceptual para realizar un fsico.
Creando un conjunto de tablas iniciales y aplicar operaciones de normalizacin hasta conseguir el esquema ms ptimo. Las tcnicas de nomalizacin se explican ms adelante en este captulo. Convertir el diagrama e-r a tablas y posteriormente aplicar tambin operaciones de normalizacin hasta conseguir el esquema ptimo.
La primer 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 primer tcnica no es as.
Relacin Pelculas 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.
3.3.2 Atributos
Los atributos son las columnas de un relacin y describen caractersticas particulares de ella.
3.3.3 Esquemas
Es 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)
3.3.4 Tuplas
Cada uno de los renglones en una relacin conteniendo valores para cada uno de los atributos. (Star Wars, 1977, 124, color)
3.3.5 Dominios
Se 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.
una tabla por cada conjunto de entidades o nombre de tabla = nombre de conjunto de entidades una tabla por cada conjunto de relaciones m-m o nombre de tabla = nombre de conjunto de relaciones definicin de columnas para cada tabla o conjuntos fuertes de entidades columnas = nombre de atributos o conjuntos dbiles de entidades columnas = llave_primaria (dominante) U atributos(subordinado) o conjunto de relaciones R (m-m) entre A, B columnas (R) = llave_primaria (A) U llave_primaria (B) U atributos(R) o conjunto de relaciones R (1-1) entre A y B columnas (A) = atribs(A) U llave primaria(B) U atributos(R) o conjunto de relaciones R (1-m) entre A y B columnas (B) = atribs(B) U llave primaria(A) U atributos(R)
A
LLP_A atribs_A
B1
LLP_B1 atribs_B1
B2
LLP_B2 atribs_B2 LLP_A attribs_rel_2
B3
LLP_B3 atribs_B3 LLP_A atribs_rel_3
A_B1
LLP_A LLP_B1 atribs_rel_1
Ejemplo:
escuela
id url nombre
departamento
clave url nombre id_escuela
curso
clave seccion nombre clave_depto
profesor
id nombre extension
estudiante
id nombre carrera
profesor_curso
id_prof clave_curso seccion_curso
estudiante_curso
id_estud clave_curso seccion_curso
crear una tabla para el conjunto de entidades A de mayor nivel columnas (A) = atributos(A) para cada conjunto de entidades B de menor nivel, crear una tabla tal que: columns (B) = atributos (B) U llave_primaria (A)
2.
o
si A es un conjunto de entidades de mayor nivel para cada conjunto de entidades B de menor nivel, crear una tabla tal que: columnas (B) = atributos (B) U atributos (A)
B1
atribs_B1 LLP_A
B2
atribs_B2 LLP_A
B3
atribs_B3
LLP_A
2) B1
atribs_B1 LLP_A atribs_A
B2
atribs_B2 LLP_A atribs_A
B3
atribs_B3 LLP_A atribs_A
Es importante mencionar que a pesar de que existen 2 mtodos para convertir una generalizacin a tablas, no hay una regla exacta de cual usar en determinado caso. A continuacin se mencionan algunos consejos tiles para la determinacin de cual mtodo emplear:
1. Si la entidad de nivel superior est relacionada con otra(s) entidades puede sugerirse emplear el mtodo (1) ya que de esa manera la tabla (A) ser la nica involucrada en la relacin, de otra forma se tendran tres tablas (B1,B2 y B3) formando parte de la relacin 2. Es importante tomar en cuenta la pertenencia de instancias, si se considera que hablamos de una generalizacin disjunta, donde no se puede pertenecer a varias entidades de nivel inferior, quizs sea recomendable el mtodo (1), en otro caso se podra pensar en el mtodo (2).
3. Tambin es importante analizar ambos casos con respecto a las "consultas" que se deseen realizar ya que esto tambin determina en muchos casos el mtodo a emplear.
Podemos observar que existe una relacin m-m entre "actor" y "serie", demostrando que un actor puede actuar en muchas series y que muchas
series tendrn a los mismos actores. La tabla que se creara sera: actor_serie
id_actor Joaqun Pardav Evita Muoz (Chachita) Joaqun Pardav Evita Muoz (Chachita) id_serie Gnesis Qu bonita familia Gnesis Hermelinda linda id_personaje Abel hermano bueno Dulce abuelita Can hermano malo Bruja Hermelinda
si se considera "id_actor, id_serie" como la llave primaria caemos en un problema porque esa combinacin no identifica de manera nica a la tupla, como es el caso de "Joaqun Pardav, Gnesis" ya que en la primer tupla tenemos que determina a "Abel hermano bueno" y en la tercera a "Can hermano malo". La relacin es correcta ya que un actor puede representar a varios personajes en la misma obra, pero entonces la llave "id_actor, id_serie" no es la correcta y en este caso lo ms recomendable sera emplear los tres atributos de la relacin "id_actor, id_serie, id_personaje"
3.5 Normalizacin
Una vez creadas las tablas hay que verificarlas y revisar si an se puede reducir u optimizar de alguna manera. Los problemas tales como la redundancia que ocurren cuando se abarrotan demasiados datos en un sola relacin son llamados anomalas. Los principales tipos son:
1. Redundancia: la informacin se repite innecesariamente en muchas tuplas. En la
relacin siguiente, length y filmType. 2. Anomalas de actualizacin: cuando al cambiar la informacin en una tupla se descuida el actualizarla en otra. Si en la relacin encontramos que el length de StarWars es 125 podramos cambiarlo nicamente para la primer tupla y olvidar actualizar las dems. 3. Anomalas de eliminacin: si un conjunto de valores llegan a estar vacos y se llega a perder informacin relacionada como un efecto de la eliminacin. Si eliminamos al actor Emilio Estevez, perdemos tambin la tupla de la pelcula MightyDucks. title Star Wars Star Wars Star Wars year length filmType studioName starName 1977 1977 1977 124 124 124 104 95 95 color color color color color color Fox Fox Fox Disney Paramount Paramount Carrie Fisher Mark Hamill Harrison Ford Emilio Estevez Dana Carvey Mike Meyers
En el diseo de esquemas de bases de datos el concepto de dependencia funcional (functional dependency) es vital para eliminar "redundancia", otros factores sera el manejo de dependencias multivaluadas y las restricciones de integridad referencial. Una dependencia funcional en una relacin R es una enunciado de la forma "si dos
tuplas de R concuerdan en los atributos A1,A2,...An (tienen los mismos valorespara cada atributo), entonces deben concordar tambin con otro atributo B" . Esta FD se escribira como A1,A2,....An --> B y se dice que "A1, A2,....An
determina funcionalmente a B". Por otro lado, si un conjunto de atributos A1,A2...An determina funcionalmente a ms de un atributo, A1, A2, ... An ---> B1
A1, A2, ... An ---> B2 A1, A2, ... An ---> Bm entonces podemos simplemente escribir este conjunto de FDs como: A1, A2, ...An ---> B1,B2,...Bm Movies(title, year, length, filmType, studioName, starName)
title Star Wars year length 1977 124 filmType studioName starName color Fox Carrie Fisher Mark Hamill Harrison Ford Emilio Estevez Dana Carvey Mike Meyers
Star Wars
1977 124
color
Fox
1977 124
color
Fox
1991 104
color
Disney
1992 95
color
Paramount
1992 95
color
Paramount
title, year --> length title, year --> filmType title, year --> studioName title, year -/-> starName podemos entonces afirmar que: title, year --> length, filmType, studioName Quizs las dependencias funcionales ms evidentes sean las llaves. Decimos que un conjunto { A1, A2,....An } es una llave de un relacin si:
1. Esos atributos determinan funcionalmente a "todos" los dems atributos de una relacin. 2. No hay un subconjunto de { A1, A2,....An } que determine funcionalmente a "todos" los dems atributos (incluyendo al resto del conjunto { A1, A2,....An })
La definicin anterior de llave es similar a la que se mencion anteriormente de superllave, sin embargo las superllaves no son llaves "mnimas", recordemos que una llave primaria se escoge de entre el conjunto de superllaves mnimas. Es importante hacer notar que una llave mnima no se refiere al nmero de atributos includos, se puede tener una llave mnima ABC y otra DE donde ambas son mnimas an cuando una de ellas sea todava de menor tamao que la otra. Al conjunto de dependencia funcionales de una relacin R se le denominar F.
entonces
---
*
es un conjunto de atributos entonces --> entonces -->
*Nota:
De manera general una dependencia funcional de la forma "dependencia funcional trivial" si Si al menos algn elemento de dependencia no trivial. no pertenece a
-->
se considera
se considera una
Unin: si
-->
entonces entonces y
Decomposicin: si
Pseudotransitividad: si
Para un esquema R y un conjunto de atributos superllave para determinar lo anterior se puede encontrar dependen funcionalmente de teniendo R(A,B,C,D,E)
, si
--> R entonces
es
si A+=(A,B,C,D,E), entonces A--> R entonces A es superllave La cerradura se puede calcular siguiendo el siguiente algoritmo: entrada: salida: +
result= while changes to result do for each ( ) do begin if result then result=result end end result --> (reflexividad) --> , --> --> F = =result
,F
(transitividad)
teniendo R (A,B,C,D,E,F) y F las dependencias: AB-->C, BC-->AD, D-->E, CF-->B. Comprobar que {A,B}+ ={A,B,C,D,E}
Si {A,B}+ = {A,B,C,D,E,F} entonces podramos afirmar que AB es superllave, pero para ello sera necesaria alguna dependencia adicional ej. AB --> CF El calcular la cerradura es empleado para:
Verificar si es una superllave, calculando todos los atributos de la relacin R. Verificar una dependencia funcional -->
+ y revisando si
+ contiene a
checando si +. Calcular F+ (la cerradura de todo el conjunto de dependencias F en una relacin R): Para cada R se calcula + y para cada elemento S --> S. + se obtiene una dependencia funcional
En 1a. NF
nombre apellido_paterno apellido_materno direccin telfono
Analizando todas las dependencias funcionales: { id,clave,depto} --> descripcin {clave,depto} --> descripcin { id,clave,depto} --> calificacin Para realizar la normalizacin (2NF) la relacin se descompondra en: curso
depto clave_curso descripcin
estud_curso
id depto clave_curso calificacin
Al descomponer una relacin R en varias relaciones R1 y R2 se debe verificar que no haya prdidas, es decir, que al volver a combinar las relaciones (producto entre R1 y R2) se obtengan exactamente las mismas tuplas. Decimos entonces que para una descomposicin en R1 y R2 no hay prdida si: { R1 R2 --> R1 } F+
o bien si { R1 R2 --> R2 } F+
F={ { id,clave,depto} --> descripcin, {clave,depto} --> descripcin, { id,clave,depto} --> calificacin } tiene F+= { { id,clave,depto} --> id,clave,depto,descripcin,calificacin, {clave,depto} --> descripcin } y dicha relacin se descompone en:
depto clave_curso descripcin
id_estudiante
depto
clave_curso
calificacin
donde R1
F2
...Fn
y la preservacin se verifica si F'+= F+ para el ejemplo anterior teniendo: F={ { id,clave,depto} --> descripcin, {clave,depto} --> descripcin, { id,clave,depto} --> calificacin } F+= { { id,clave,depto} --> id,clave,depto,descripcin,calificacin, {clave,depto} -> descripcin } F1= depto,clave_curso--> descripcin F2= id_estudiante,depto,clave_curso --> calificacin F' = F1 F2
depto,clave_curso--> descripcin id_estudiante,depto,clave_curso --> calificacin F'+= { { id,clave,depto} --> id,clave,depto,descripcin,calificacin, {clave,depto} -> descripcin } y como F'+= F+ entonces si hay preservacin de dependencias.
result= {R} done=false calcular F+ while (! done) do if(existe un esquema Ri en result que no est en BCNF) then si --> es una dependencia funcional no trivial en Ri tal que est en F+ y else done=true end =0 result= ( result - Ri ) ( Ri ) ( , ) --> Ri no
La superllave sera {AB} por lo tanto no cumple con BCNF (B-->CD y B no es superllave). Descomponiendo usando B-->CD (A,B) (B,C,D) Esta ltima en BCNF
A es miembro de una llave candidata de R Lo anterior no quiere decir que una sola llave candidata deba contener a todos los atributos de A, cada atributo de A puede estar contenido en llaves candidatas diferentes.
Se puede observar que las 2 primeras restricciones son las mismas que para BCNF pero existe una tercera que da flexibilidad a las relaciones. Podemos afirmar entonces que: "Si una relacin est en BCNF, est tambin 3NF; pero si una relacin est en 3NF no necesariamente est en BCNF". ejemplo, dada la relacin
branch-name customer-name banker-name office-number
banker-name --> branch-name office-number customer-name branch-name --> banker-name Se puede observar {customer-name branch-name} determina al resto de los atributos as que es la superllave de R. No est en 3NF porque:
Las DFs no son triviales En la primer dependencia, "banker-name" no es superllave de R Se puede observar que office-number y banker-name no son parte de alguna llave candidata
se descompondra en:
banker-name branch-name office-number
customer-name
branch-name
banker-name
customer-name branch-name --> banker-name banker-name --> branch-name Esta descomposicin si est en 3NF porque:
No hay dependencias funcionales triviales En la segunda relacin, la segunda DF no cumple que banker-name es superllave
En la segunda relacin, la segunda DF, branch-name es miembro de la llave candidata {customer-name, branch-name}
Al cumplirse la 3er regla se confirma que la descomposicin est en 3NF. Se puede observar que al no cumplir con las 2 primeras no est en BCNF pero gracias al relajamiento si est en 3NF Otro ejemplo: deptos
nombre_depto extensin id_jefe
id_empleado --> nombre_depto, id_jefe nombre_depto --> id_jefe No est en 3NF porque:
Las DFs no son triviales En la dependencia "nombre_depto-->id_jefe" de la segunda relacin, "nombre_depto" no es superllave de R Se puede observar nuevamente para la segunda relacin que id_jefe no es parte de alguna llave candidata
Se observa como la relacin no solo est en 3NF sino tambin en BCNF por cumplir con la segunda regla.
3.5.7.2 Algoritmo general de descomposicin tratando de alcanzar 3NF 3.5.7.2.1 Forma cannica de las FDs (Fc)
La forma cannica de F es aquel conjunto mnimo de dependencias funcionales equivalentes a F, sin dependencias redundantes o partes redundantes de dependencias. Para obtener la Fc se deben extraer todos los miembros "extraos", suponga un conjunto F de dependencias funcionales y la dependencia --> est en F.
si A --> })
y {( - A ) --> }
Ejemplo: F = { A --> C , AB --> C } B es extrao en AB --> C porque { A --> C, AB --> C } lgicamente implica A --> C (el resultado de quitar B de AB --> C ).
El atributo A es extrao en
si A
-->
})
--> (
- A ) } implica
Ejemplo: F = { A --> C , AB --> CD} C es extrao en AB --> CD porque A B --> C puede ser inferido an despus de eliminar C Test para verificar si un atributo es extrao Dado un conjunto de dependencias F y
-->
est en F
Para verificar si A
o o
es extrao en } - A )+ usando las dependencias en F } - A )+ contiene a es extrao en + usando solo las dependencias en: , si lo hace entonces A es extrao
Para verificar si A
o
F'=(F - {
o
-->
})
--> (
- A) }
verificar si
1. Para cada dependencia X --> Y en Fc, crear una relacin Ri (X,Y) 2. Si ninguna de las Ris contiene una de las superllaves de la relacin, crear Ri(X) donde X es una de las superllaves de la relacin original 3. Si Ri y Rj tienen una llave en comn, mezclar Ri y Rj 4. Eliminar relaciones redundantes
*El algoritmo anterior garantiza que en una descomposicin no haya prdida (al incluir por lo menos en una relacin una de las superllaves) y que se preserven las dependencias funcionales (al incluir cada una de ellas). Ejemplo:
sid
name
street student
city
zip
Fc: sid -->name,street,city street, city-->zip zip --> city Descomponer en 3NF
1. 2. 3. 4. R1(sid, name, street, city), R2(zip, street, city), R3(zip, city) Eliminar R3 sid name street city
R1 sid -->name,street,city
zip street city
est en 3NF pero no en BCNF puesto que "banquero" no es una superllave, normalizando: suc-banquero (sucursal, banquero) suc-cliente (sucursal, cliente) Nuevamente se presentan las prdidas de dependencias Qu es mejor ? BCNF o 3NF ?
De manera general se puede decir que ambas son buenas. El caso ideal es conseguir BCNF sin prdidas y con preservacin de dependencias. Si se alcanza BCNF pero no hay preservacin de dependencias se puede considerar una 3NF (recordando que 3NF siempre debe carecer de prdidas y debe preservar dependencias).
3.6 Conclusiones
De manera que las metas del diseo de bases de datos con dependencias funcionales son:
* Llegar a una forma BCNF puede llegar a ser complicado, debido a esto en muchas ocasiones es suficiente con alcanzar la 3NF para lograr un buen diseo.
La primera forma normal (1FN o forma mnima) es una forma normal usada en normalizacin de bases de datos. Una tabla de base de datos relacional que se adhiere a la 1FN es una que satisface cierto conjunto mnimo de criterios. Estos criterios se refieren bsicamente a asegurarse que la tabla es una representacin fiel de una relacin1 y est libre de "grupos repetitivos".2 Sin embargo, el concepto de "grupo repetitivo", es entendido de diversas maneras por diferentes tericos. Como consecuencia, no hay un acuerdo universal en cuanto a qu caractersticas descalificaran a una tabla de estar en 1FN. Muy notablemente, la 1FN, tal y como es definida por algunos autores excluye "atributos relacin-valor" (tablas dentro de tablas) siguiendo el precedente establecido por (E.F. Codd) (algunos de esos autores son: Ramez Elmasri y Shamkant B. Navathe 3 ). Por otro lado, segn lo definido por otros autores, la 1FN s los permite (por ejemplo como la define Chris Date).
ndice
[ocultar]
o o o o
2.1 Ejemplo 1: Dominios y valores 2.2 Ejemplo 2: Grupos repetidos a travs de columnas 2.3 Ejemplo 3: Repeticin de grupos dentro de columnas 2.4 Un diseo conforme con 1FN
3 Atomicidad 4 Normalizacin ms all de la 1NF 5 Notas y referencias 6 Vase tambin 7 Lectura adicional 8 Enlaces externos
2. No hay orden de izquierda-a-derecha en las columnas. 3. No hay filas duplicadas. 4. Cada interseccin de fila-y-columna contiene exactamente un valor del dominio aplicable (y nada ms). 5. Todas las columnas son regulares [es decir, las filas no tienen componentes como IDs de fila, IDs de objeto, o timestamps ocultos]. Chris Date, "What First Normal Form Really Means", pp. 127-8
4
La violacin de cualesquiera de estas condiciones significara que la tabla no es estrictamente relacional, y por lo tanto no est en 1FN. Algunos ejemplos de tablas (o de vistas) que no satisfacen esta definicin de 1FN son:
Una tabla que carece de una clave primaria. Esta tabla podra acomodar filas duplicadas, en violacin de la condicin 3.
Una vista cuya definicin exige que los resultados sean retornados en un orden particular, de modo que el orden de la fila sea un aspecto intrnseco y significativo de la vista.5 Esto viola la condicin 1. Las tuplas en relaciones verdaderas no estn ordenadas una con respecto de la otra.
Una tabla con por lo menos un atributo que pueda ser nulo. Un atributo que pueda ser nulo estara en violacin de la condicin 4, que requiere a cada campo contener exactamente un valor de su dominio de columna. Sin embargo, debe observarse que este aspecto de la condicin 4 es controvertido. Muchos autores consideran que una tabla est en 1FN si ninguna clave candidata puede contener valores nulos, pero se aceptan stos para atributos (campos) que no sean clave, segn el modelo original de Codd sobre el modelo relacional, el cual hizo disposicin explcita para los nulos.6
Suponga que un diseador principiante desea guardar los nombres y los nmeros telefnicos de los clientes. Procede a definir una tabla de cliente como la que sigue:
Cliente
Telfono
123
Rachel
Ingram
555-861-2025
456
James
Wright
555-403-1659
789
Cesar
Dure
555-808-9633
En este punto, el diseador se da cuenta de un requisito para guardar mltiples nmeros telfonicos para algunos clientes. Razona que la manera ms simple de hacer esto es permitir que el campo "Telfono" contenga ms de un valor en cualquier registro dado:
Cliente
Telfono
123
Rachel
Ingram
555-861-2025
456
James
Wright
555-403-1659 555-776-4100
789
Cesar
Dure
555-808-9633
Asumiendo, sin embargo, que la columna "Telfono" est definida en algn tipo de dominio de nmero telefnico (por ejemplo, el dominio de cadenas de 12 caracteres de longitud), la representacin de arriba no est en 1FN. La
1FN (y, para esa materia, el RDBMS) prohbe a un campo contener ms de un valor de su dominio de columna.
Cliente
Telfono 1
Telfono 2
Telfono 3
123
Rachel
Ingram
555-861-2025
456
James
Wright
555-403-1659 555-776-4100
789
Cesar
Dure
555-808-9633
Sin embargo, esta representacin hace uso de columnas que permiten valores nulos, y por lo tanto no se conforman con la definicin de la 1NF de Date. Incluso si se contempla la posibilidad de columnas con valores nulos, el diseo no est en armona con el espritu de 1NF. Telfono 1, Telfono 2, y Telfono 3, comparten exactamente el mismo dominio y exactamente el mismo significado; el dividir del nmero de telfono en tres encabezados es artificial y causa problemas lgicos. Estos problemas incluyen:
Dificultad en hacer consultas a la tabla. Es difcil contestar preguntas tales como "Qu clientes tienen el telfono X?" y "Qu pares de clientes comparten un nmero de telfono?".
La imposibilidad de hacer cumplir la unicidad los enlaces Cliente-aTelfono por medio del RDBMS. Al cliente 789 se le puede dar equivocadamente un valor para el Telfono 2 que es exactamente igual que el valor de su Telfono 1.
La restriccin de los nmeros de telfono por cliente a tres. Si viene un cliente con cuatro nmeros de telfono, estamos obligados a guardar
solamente tres y dejar el cuarto sin guardar. Esto significa que el diseo de la base de datos est imponiendo restricciones al proceso del negocio, en vez de (como idealmente debe ser el caso) al revs.
Cliente
Telfono
123
Rachel
Ingram
555-861-2025
456
James
Wright
555-403-1659, 555-776-4100
789
Cesar
Dure
555-808-9633
ste es defendiblemente el peor diseo de todos, y otra vez no mantiene el espritu de la 1NF. El encabezado "Telfono" llega a ser semnticamente difuso, ya que ahora puede representar, o un nmero de telfono, o una lista de nmeros de telfono, o de hecho cualquier cosa. Una consulta como "Qu pares de clientes comparten un nmero telefnico?" es virtualmente imposible de formular, dada la necesidad de proveerse de listas de nmeros telefnicos as como nmeros telefnicos individuales. Con este diseo en la RDBMS, son tambin imposibles de definir significativas restricciones en nmeros telefnicos.
Cliente
123
Rachel
Ingram
456
James
Wright
789
Cesar
Dure
ID Cliente
Telfono
123
555-861-2025
456
555-403-1659
456
555-776-4100
789
555-808-9633
En este diseo no ocurren grupos repetidos de nmeros telefnicos. En lugar de eso, cada enlace Cliente-a-Telfono aparece en su propio registro. Es valioso notar que este diseo cumple los requerimientos adicionales para la segunda (2NF) y la tercera forma normal (3FN).
[Hugh Darwen] y [Chris Date] han sugerido que el concepto de Codd de un "valor atmico" es ambiguo, y que esta ambigedad ha conducido a una extensa confusin sobre cmo debe ser entendida la 1NF.10 11 En particular, la nocin de un "valor que no puede ser descompuesto" es problemtica, pues parecera implicar que pocos, si algn, tipos de datos son atmicos:
Una cadena de caracteres parecera no ser atmica, ya que el RDBMS tpicamente proporciona operadores para descomponerla en subcadenas.
Una fecha parecera no ser atmica, ya que el RDBMS proporciona tpicamente operadores para descomponerla los componentes de da, mes, y ao.
Un nmero de punto fijo parecera no ser atmico, ya que el RDBMS proporciona tpicamente operadores para descomponerlo en componentes de nmeros enteros y fraccionarios.
Date sugiere que "la nocin de atomicidad no tiene ningn significado absoluto":12 un valor puede ser considerado atmico para algunos propsitos, pero puede ser considerado un ensamblaje de elementos ms bsicos para otros propsitos. Si esta posicin es aceptada, la 1NF no puede ser definida con referencia a la atomicidad. Las columnas de cualquier tipo de datos concebible (desde tipos de cadenas y tipos numricos hasta tipos de arreglos y tipos de tabla) son entonces aceptables en un tabla 1NF - aunque quizs no siempre deseable. Date discute que los atributos relacin-valor, por medio de los cuales un campo dentro de una tabla puede contener una tabla, son tiles en casos raros.13
Las formas normales ms arriba que la 1NF son pensadas para ocuparse de las situaciones en las que una tabla sufre de problemas de diseo que pueden comprometer la integridad de los datos dentro de ella. Por ejemplo, la tabla siguiente est en 1NF, pero no est en 2NF y por lo tanto es vulnerable a inconsistencias lgicas:
ID del subscriptor
Direccin de correo
108
steve@aardvarkmail.net
Steve
Wallace
252
carol@mongoosemail.org
Carol
Robertson
252
crobertson@aardvarkmail.net Carol
Robertson
360
hclark@antelopemail.com
Harriet
Clark
La clave de la tabla es {ID del subscriptor, Direccin de correo}. Si Carol Robertson cambia su apellido por el de matrimonio, el cambio debe ser aplicado a dos filas. Si el cambio es aplicado solamente a una fila, resulta en una contradiccin: la pregunta "cul es nombre del cliente 252?" tiene dos respuestas que estn en conflicto. La 2NF aborda este problema.
2.
Jump up "First normal form excludes variable repeating fields and groups." Kent, William. "A Simple Guide to Five Normal Forms in Relational Database Theory", Communications of the ACM 26 (2), Feb. 1983, pp. 120-125.
3.
Jump up Elmasri, Ramez and Navathe, Carlos C, Shamkant B. Fundamentals of Database Systems, Fourth Edition (AddisonWesley, 2003), p. 315.
4.
Jump up Date, C.J. "What First Normal Form Really Means" pp. 127-128.
5.
Jump up Such views cannot be created using SQL that conforms to the SQL:2003 standard.
6.
Jump up The third of Codd's 12 rules states that "Null values... [must be] supported in a fully relational DBMS for representing missing information and inapplicable information in a systematic way, independent of data type." Codd, E.F. "Is Your DBMS Really Relational?" Computerworld, October 14, 1985.
7.
Jump up Date, C.J. "What First Normal Form Really Means" p. 128.
8.
Jump up Codd, E.F. The Relational Model for Database Management Version 2 (Addison-Wesley, 1990).
9.
Jump up Codd, E.F. The Relational Model for Database Management Version 2 (Addison-Wesley, 1990), p. 6.
10. Jump up Darwen, Hugh. "Relation-Valued Attributes; or, Will the Real First Normal Form Please Stand Up?", in C. J. Date and Hugh Darwen, Relational Database Writings 1989-1991 (AddisonWesley, 1992). 11. Jump up "[F]or many years," writes Date, "I was as confused as anyone else. What's worse, I did my best (worst?) to spread that confusion through my writings, seminars, and other presentations." Date, C.J."What First Normal Form Really Means" in Date on Database: Writings 2000-2006 (Springer-Verlag, 2006), p. 108 12. Jump up Date, C.J. "What First Normal Form Really Means" p. 112. 13. Jump up Date, C.J. "What First Normal Form Really Means" pp. 121-126.
La segunda forma normal (2NF) es una forma normal usada en normalizacin de bases de datos. La 2NF fue definida originalmente por E.F. Codd1 en 1971. Una tabla que est en la primera forma normal (1NF) debe satisfacer criterios adicionales para calificar para la segunda forma normal. Especficamente: una tabla 1NF est en 2NF si y solo si, dada una clave primaria y cualquier atributo que no sea un constituyente de la clave primaria, el atributo no clave depende de toda la clave primaria en vez de solo de una parte de ella. En trminos levemente ms formales: una tabla 1NF est en 2NF si y solo si ninguno de sus atributos no-principales son funcionalmente dependientes en una parte (subconjunto propio) de unaclave primaria (Un atributo no-principal es uno que no pertenece a ninguna clave primaria). Observe que cuando una tabla 1NF no tiene ninguna clave candidata compuesta (claves candidatas consistiendo en ms de un atributo), la tabla est automticamente en 2NF.
ndice
[ocultar]
1 Ejemplo 2 2NF y las claves candidatas 3 Referencias 4 Lectura adicional 5 Vase tambin 6 Enlaces externos
Empleado
Habilidad
Jones
Mecanografa
Jones
Taquigrafa
Jones
Tallado
Bravo
Ellis
Alquimia
73 Industrial Way
Ellis
Malabarismo
73 Industrial Way
Harrison
La nica clave candidata de la tabla es {Empleado, Habilidad}. El atributo restante, Lugar actual de trabajo, es dependiente solo en parte de la clave candidata, llamada Empleado. Por lo tanto la tabla no est en 2NF. Observe la redundancia de la manera en que son representadas los Lugares actuales de trabajo: nos dicen tres veces que Jones trabaja en la 114 Main Street, y dos veces que Ellis trabaja en 73 Industrial Way. Esta redundancia hace a la tabla vulnerable a anomalas de actualizacin: por ejemplo, es posible actualizar el lugar del trabajo de Jones en sus registros "Mecanografa" y "Taquigrafa" y no actualizar su registro "Tallado". Los datos resultantes implicaran respuestas contradictorias a la pregunta "Cul es el lugar actual de trabajo de Jones?". Un alternativa 2NF a este diseo representara la misma informacin en dos tablas:
Empleados
Jones
Bravo
73 Industrial Way
Ellis
73 Industrial Way
Harrison
73 Industrial Way
Empleado
Habilidad
Jones
Mecanografa
Jones
Taquigrafa
Jones
Tallado
Bravo
Limpieza ligera
Ellis
Alquimia
Ellis
Malabarismo
Harrison
Limpieza ligera
Las anomalas de actualizacin no pueden ocurrir en estas tablas, las cuales estn en 2NF. Sin embargo, no todas las tablas 2NF estn libres de anomalas de actualizacin. Un ejemplo de una tabla 2NF que sufre de anomalas de actualizacin es:
Torneo
Ao
Ganador
Cleveland Open
Aunque el Ganador y la Fecha de nacimiento del ganador estn determinadas por una clave completa {Torneo, Ao} y no son partes de ella, particularmente las combinaciones Ganador / Fecha de nacimiento del ganador son mostradas redundantemente en mltiples registros. Este problema es tratado por la tercera forma normal (3NF).
Fabricante
Modelo
Forte
X-Prime
Forte X-Prime
Italia
Forte
Ultraclean
Forte Ultraclean
Italia
Dent-o-Fresh EZBrush
Dent-o-Fresh EZBrush
USA
Kobayashi
ST-60
Kobayashi ST-60
Japn
Hoch
Alemania
Hoch
Contender
Hoch Contender
Alemania
Aun si el diseador ha especificado la clave principal como {Nombre completo del modelo}, la tabla no est en 2NF. {Fabricante, Modelo} es tambin una clave candidata, y Pas del fabricante es dependiente en un subconjunto apropiado de l: Fabricante.
Date, C. J. (1999), An Introduction to Database Systems (8th ed.). Addison-Wesley Longman. ISBN 0-321-19784-4.
Kent, W. (1983) A Simple Guide to Five Normal Forms in Relational Database Theory, Communications of the ACM, vol. 26, pp. 120-125
La tercera forma normal (3NF) es una forma normal usada en la normalizacin de bases de datos. La 3NF fue definida originalmente por E.F. Codd1 en 1971. La definicin de Codd indica que una tabla est en 3NF si y solo si las dos condiciones siguientes se cumplen:
La tabla est en la segunda forma normal (2NF) Ningn atributo no-primario de la tabla es dependiente transitivamente de una clave primaria
Un atributo no-primario es un atributo que no pertenece a ninguna clave candidata. Una dependencia transitiva es una dependencia funcional X Z en la cual Z no es inmediatamente dependiente de X, pero s de un tercer conjunto de atributos Y, que a su vez depende de X. Es decir, X Z por virtud de X Y e Y Z. Una formulacin alternativa de la definicin de Codd, dada por Carlo Zaniolo2 en 1982, es sta: Una tabla est en 3NF si y solo si, para cada una de sus dependencias funcionales X A, por lo menos una de las condiciones siguientes se mantiene:
X contiene A, X es una superclave, A es un atributo primario (es decir, A est contenido dentro de una clave candidata)
La definicin de Zaniolo tiene la ventaja de dar un claro sentido de la diferencia entre la 3NF y la ms rigurosa forma normal de Boyce-Codd (BCNF). La BCNF simplemente elimina la tercera alternativa ("A es un atributo primario").
ndice
[ocultar]
1 "Nada excepto la clave" 2 Ejemplo 3 Derivacin de las condiciones de Zambruno 4 Normalizacin ms all de la 3NF 5 Referencias 6 Lectura adicional 7 Vase tambin 8 Enlaces externos
Torneo
Ao
Ganador
Cleveland Open
La nica clave candidata es {Torneo, Ao}. La violacin de la 3NF ocurre porque el atributo no primario Fecha de nacimiento del ganador es dependiente transitivamente de {Torneo, Ao} va el atributo no primario Ganador. El hecho de que la Fecha de nacimiento del ganador es funcionalmente dependiente en el Ganador hace la tabla vulnerable a inconsistencias lgicas, pues no hay nada que impida a la misma persona ser mostrada con diferentes fechas de nacimiento en diversos registros. Para expresar los mismos hechos sin violar la 3NF, es necesario dividir la tabla en dos:
Torneo
Ao
Ganador
Cleveland Open
Ganador
Fecha de nacimiento
Las anomalas de actualizacin no pueden ocurrir en estas tablas, las cuales estn en 3NF.
Date, C. J. (1999), An Introduction to Database Systems (8th ed.). Addison-Wesley Longman. ISBN 0-321-19784-4.
Kent, W. (1983) A Simple Guide to Five Normal Forms in Relational Database Theory, Communications of the ACM, vol. 26, pp. 120-125
Enlaces externos
La cuarta forma normal (4NF) es una forma normal usada en la normalizacin de bases de datos. La 4NF se asegura de que las dependencias multivaluadas independientes estn correctas y eficientemente representadas en un diseo de base de datos. La 4NF es el siguiente nivel de normalizacin despus de la forma normal de Boyce-Codd (BCNF).
ndice
[ocultar]
los valores de R - X -Y (donde R es el esquema), es decir Y es independiente de los atributos de R-X-Y. (Ctedra de Base de Datos 1, 2009) Una dependencia multivaluada de la forma X->> Y, es trivial cuando el conjunto de atributos {X,Y} conforma el total de los atributos del esquema.
Restaurante
Springfield
Shelbyville
Springfield
Shelbyville
Elite Pizza
Corteza fina
Capital City
Elite Pizza
Corteza rellena
Capital City
A1 Pizza
Corteza gruesa
Springfield
A1 Pizza
Corteza gruesa
Shelbyville
A1 Pizza
Corteza gruesa
Capital City
A1 Pizza
Corteza rellena
Springfield
A1 Pizza
Corteza rellena
Shelbyville
A1 Pizza
Corteza rellena
Capital City
Cada fila indica que un restaurante dado puede entregar una variedad dada de pizza a un rea dada. Note que debido a que la tabla tiene una clave nica y ningn atributo no-clave, no viola ninguna forma normal hasta el BCNF. Pero debido a que las variedades de pizza que un restaurante ofrece son independientes de las reas a las cuales el restaurante enva, hay redundancia en la tabla: por ejemplo, nos dicen tres veces que A1 Pizza ofrece la Corteza rellena, y si A1 Pizza comienza a producir pizzas de Corteza de queso entonces necesitaremos agregar mltiples registros, uno para cada una de las reas de envo de A1 Pizza. En trminos formales, esto se describe como que Variedad de pizza est teniendo una dependencia multivalor en Restaurante. Para satisfacer la 4NF, debemos poner los hechos sobre las variedades de pizza ofrecidas en una tabla diferente de los hechos sobre reas de envo:
Restaurante
Variedad de pizza
Restaurante
rea de envo
Elite Pizza
Corteza fina
Elite Pizza
Capital City
Elite Pizza
Corteza rellena
A1 Pizza
Springfield
A1 Pizza
Corteza gruesa
A1 Pizza
Shelbyville
A1 Pizza
Corteza rellena
A1 Pizza
Capital City
En contraste, si las variedades de pizza ofrecidas por un restaurante a veces variaran de un rea de envo a otra, la tabla original de la tres columnas satisfara la 4NF.
Ronald Fagin demostr que es siempre posible alcanzar la 4NF (pero no siempre deseable). El teorema de Rissanen es tambin aplicable en dependencias multivalor.
Comandos DML Comando SELECT INSERT DELETE UPDATE Anterior Descripcin Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado. Utilizado para cargar lotes de datos en la base de datos en una nica operacin. Utilizado para modificar los valores de los campos y registros especificados. Utilizado para eliminar registros de una tabla de una base de datos. Inicio Siguiente
DDL y DML
Lenguaje de definicin de datos (DDL: Data Definition Language):Sencillo lenguaje artificial para definir y describir los objetos de la base de datos, su estructura, relaciones y restricciones. En la prctica puede consistir en un subconjunto de instrucciones de otro lenguaje informtico. Aparte suele poseer dos subconjuntos de instrucciones:
Lenguaje de definicin del almacenamiento de los datos (DSDL: Data Storage Definition Language): permite especificar caractersticas fsicas de la base de datos (volmenes y archivos donde van a ser almacenados los datos, etc). Lenguaje de control de datos (DCL: Data Control Language): encargado del control y seguridad de los datos (privilegios y modos de acceso, etc).
Lenguaje de manipulacin de datos (DML: Data Manipulation Language): Lenguaje artificial de cierta complejidad que permite el manejo y procesamiento del contenido de la base de datos. En la prctica puede consistir en un subconjunto de instrucciones de otro lenguaje informtico. Las aplicaciones que trabajan sobre la base de datos se programan en un lenguaje de programacin (C, Cobol, ...) insertando en el cdigo fuente sentencias del DML. Al utilizar un DML se deben especificar los datos que sern afectados por las sentencias del lenguaje. Un DML
puede tener o no procedimientos, segn sea necesario especificar ademns cnmo deben obtenerse esos datos. Los DML con procedimientos tienen sentencias de control de flujo como bucles o condicionales. Los DML sin procedimientos son conocidos tambin como declarativos. Anterior Inicio Siguiente