You are on page 1of 5

FORMAS NORMALES SUPERIORES

La Forma Normal de Boyce-Codd (o FNBC) es una forma normal utilizada en la normalización de bases de datos. Es una versión ligeramente más fuerte de la Tercera forma normal (3FN). La forma normal de Boyce-Codd requiere que no existan dependencias funcionales no triviales de los atributos que no sean un conjunto de la clave candidata. En una tabla en 3FN, todos los atributos dependen de una clave, de la clave completa y de ninguna otra cosa excepto de la clave (excluyendo dependencias triviales, como). Se dice que una tabla está en FNBC si y solo si está en 3FN y cada dependencia funcional no trivial tiene una clave candidata como determinante. En términos menos formales, una tabla está en FNBC si está en 3FN y los únicos determinantes son claves candidatas. Consideremos una empresa donde un trabajador puede trabajar en varios departamentos. En cada departamento hay varios responsables, pero cada trabajador sólo tiene asignado uno. Tendríamos una tabla con las columnas: IDTrabajador, IDDepartamento, IDResponsable La única clave candidata es IDTrabajador (que será por tanto la clave primaria). Si añadimos la limitación de que el responsable sólo puede serlo de un departamento, este detalle produce una dependencia funcional ya que: Responsable → Departamento Por lo tanto hemos encontrado un determinante (IDResponsable) que sin embargo no es clave candidata. Por ello, esta tabla no está en FNBC. En este caso la redundancia ocurre por mala selección de clave. La repetición del par [IDDepartamento + IDResponsable] es innecesaria y evitable. Solamente en casos raros una tabla en 3NF no satisface los requerimientos de la FNBC. Un ejemplo de tal tabla es (teniendo en cuenta que cada estudiante puede tener más de un tutor):

está en FNBC. INTEGRIDAD DE LA BASE DE DATOS Integridad de las Bases de Datos. Además de conservar la seguridad en un sistema de bases de datos que permite el acceso a múltiples usuarios en tiempos paralelos. En la tabla de ejemplo anterior existen dos claves candidatas y ambas comparten el atributo ID Estudiante. por lo tanto no está en FNBC. lo siguiente:   Si no existen claves candidatas compuestas (con varios atributos).El propósito de la tabla es mostrar qué tutores están asignados a qué estudiantes. ID Estudiante} Una forma sencilla de comprobar si una relación se encuentra en FNBC consiste en comprobar. no está en FNBC. la integridad en una base de datos es la corrección y exactitud de la información contenida. además de que esté en 3FN. ID Estudiante} {Número de seguro social del tutor. . Si existen varias claves candidatas compuestas y éstas tienen un elemento común. Las claves candidatas de la tabla son:   {ID Tutor.

debe velar por su cumplimiento. porque se consideran preestablecidas para todas las base de datos de un modelo. Las reglas de integridad de modelo: son condiciones propias de un modelo de datos. Los SGBD deben proporcionar la forma de definir las restricciones de integridad de usuario de una base de datos y una vez definida. Un SGBD relacional tendrá que garantizar el cumplimiento de esta regla de integridad en todas las inserciones y en todas las modificaciones que afecten a atributos que pertenecen a la clave primaria de la relación. son las que se deben cumplir en una base de datos articular con unos usuarios concretos. y se deben cumplir en toda base de datos que siga dicho modelo.Condiciones de la Integridad Las condiciones que garantizan la integridad de los datos pueden ser de dos tipos: Las restricciones de integridad de usuario: son condiciones específicas de una base de datos concreta. Si las claves primarias tuviesen valores nulos. en cambio. Un SGBD de un modelo determinado debe velar por el cumplimiento de las reglas de integridad preestablecidas por su modelo. pero que no son necesariamente relevantes en otra Base de Datos. entonces la extensión de R no puede tener en ningún momento dos tuplas con la misma combinación de valores para los atributos de CP. Esta regla es necesaria para que los valores de las claves primarias puedan identificar las tuplas individuales de las relaciones. Reglas de Integridad Regla de integridad de unicidad de la clave primaria La regla de integridad de unicidad está relacionada con la definición de clave primaria que establece que toda clave primaria que se elija para una relación no debe tener valores repetidos por lo que el conjunto de atributos CP es la clave primaria de una relación R. Las reglas de integridad del modelo. es posible que algunas tuplas no se pudieran distinguir. Regla de integridad de entidad de la clave primaria La regla de integridad de entidad de la clave primaria dispone que los atributos de la clave primaria de una relación no pueden tener valores nulos. no se deben definir para cada base de datos concreta. Regla de integridad referencial La regla de integridad referencial está relacionada con el concepto de clave foránea. lo que determina que todos los valores que toma una clave foránea deben ser valores .

Actualización en cascada La actualización en cascada consiste en permitir la operación de actualización de la tupla. la anulación en caso de borrado consiste en permitir el borrado de una tupla t que tiene una clave referenciada y. La actualización en cascada en caso de borrado consiste en permitir el borrado de una tupla t que tiene una clave primaria referenciada. y modificar del mismo modo todas las tuplas que referencian t. además. consiste en no permitir borrar una tupla si tiene una clave primaria referenciada por alguna clave foránea y la restricción en caso de modificación consiste en no permitir modificar ningún atributo de la clave primaria de una tupla si tiene una clave primaria referenciada por alguna clave foránea. de modo que los atributos de la clave foránea correspondiente tomen valores nulos y la anulación en caso de modificación consiste en permitir la modificación de atributos de la clave primaria de una tupla t que tiene una clave referenciada y. Anulación La anulación consiste en permitir la operación de actualización de la tupla y en efectuar operaciones compensatorias que pongan valores nulos a los atributos de la clave foránea de las tuplas que la referencian. modificar todas las tuplas que referencian t. y en efectuar operaciones compensatorias que propaguen en cascada la actualización a las tuplas que la referenciaban. Esta regla establece dos condiciones. se actúa de este modo para mantener la integridad referencial. además. . sólo se puede aplicar la política de anulación si los atributos de la clave foránea sí los admiten. Regla de integridad de dominio La regla de integridad de dominio está relacionada con la noción de dominio. Más concretamente. Restricción La restricción en caso de borrado. modificar todas las tuplas que referencian t. Si un valor de una clave foránea no estuviese presente. de modo que los atributos de la clave foránea correspondiente tomen valores nulos.nulos o valores que existen en la clave primaria que referencia. Los SGBD relacionales permiten establecer que un determinado atributo de una relación no admite valores nulos. La necesidad de esta regla es debido a que las claves foráneas tienen por objetivo establecer una conexión con la clave primaria que referencian. esta acción se lleva a cabo para mantener la integridad referencial. y borrar también todas las tuplas que referencian t y la actualización en cascada en caso de modificación consiste en permitir la modificación de atributos de la clave primaria de una tupla t que tiene una clave primaria referenciada.

es decir. es decir.  La primera condición consiste en que un valor no nulo de un atributo Ai debe pertenecer al dominio del atributo Ai.   La segunda condición sirve para establecer que los operadores que pueden aplicarse sobre los valores dependen de los dominios de estos valores. Esta condición implica que todos los valores no nulos que contiene la base de datos para un determinado atributo deben ser del dominio declarado para dicho atributo. un operador determinado sólo se puede aplicar sobre valores que tengan dominios que le sean adecuados. . debe pertenecer a dominio(Ai).