sábado, 9 de julio de 2011
FORMAS NORMALES
Formas Normales
Las formas normales son aplicadas a las tablas de una base de datos. Decir que una base de datos está en la forma normal N es decir que todas sus tablas están en la forma normal N.
Diagrama de inclusión de todas las formas normales.
En general, las primeras tres formas normales son suficientes para cubrir las necesidades de la mayoría de las bases de datos. El creador de estas 3 primeras formas normales (o reglas) fue Edgar F. Codd.1
Primera Forma Normal (1FN)
Una tabla está en Primera Forma Normal si:
§ Todos los atributos son atómicos. Un atributo es atómico si los elementos del dominio son indivisibles, mínimos.
§ La tabla contiene una clave primaria unica.
§ La clave primaria no contiene atributos nulos.
§ No debe existir variación en el número de columnas.
§ Los Campos no clave deben identificarse por la clave (Dependencia Funcional)
§ Debe Existir una independencia del orden tanto de las filas como de las columnas, es decir, si los datos cambian de orden no deben cambiar sus significados
Una tabla no puede tener múltiples valores en cada columna. Los datos son atómicos. (Si a cada valor de X le pertenece un valor de Y y viceversa)
Esta forma normal elimina los valores repetidos dentro de una BD
Segunda Forma Normal (2FN)
Dependencia Funcional. Una relación está en 2FN si está en 1FN y si los atributos que no forman parte de ninguna clave dependen de forma completa de la clave principal. Es decir que no existen dependencias parciales. (Todos los atributos que no son clave principal deben depender únicamente de la clave principal).
En otras palabras podríamos decir que la segunda forma normal está basada en el concepto de dependencia completamente funcional. Una dependencia funcional
es completamente funcional si al eliminar los atributos A de X significa que la dependencia no es mantenida, esto es que
. Una dependencia funcional
es una dependencia parcial si hay algunos atributos
que pueden ser eliminados de X y la dependencia todavía se mantiene, esto es
.
Por ejemplo {DNI, ID_PROYECTO}
HORAS_TRABAJO (con el DNI de un empleado y el ID de un proyecto sabemos cuántas horas de trabajo por semana trabaja un empleado en dicho proyecto) es completamente dependiente dado que ni DNI
HORAS_TRABAJO ni ID_PROYECTO
HORAS_TRABAJO mantienen la dependencia. Sin embargo {DNI, ID_PROYECTO}
NOMBRE_EMPLEADO es parcialmente dependiente dado que DNI
NOMBRE_EMPLEADO mantiene la dependencia.
Tercera Forma Normal (3FN)
La tabla se encuentra en 3FN si es 2FN y si no existe ninguna dependencia funcional transitiva entre los atributos que no son clave.
Un ejemplo de este concepto sería que, una dependencia funcional X->Y en un esquema de relación R es una dependencia transitiva si hay un conjunto de atributos Z que no es un subconjunto de alguna clave de R, donde se mantiene X->Z y Z->Y.
Por ejemplo, la dependencia SSN->DMGRSSN es una dependencia transitiva en EMP_DEPT de la siguiente figura. Decimos que la dependencia de DMGRSSN el atributo clave SSN es transitiva vía DNUMBER porque las dependencias SSN→DNUMBER y DNUMBER→DMGRSSN son mantenidas, y DNUMBER no es un subconjunto de la clave de EMP_DEPT. Intuitivamente, podemos ver que la dependencia de DMGRSSN sobre DNUMBER es indeseable en EMP_DEPT dado que DNUMBER no es una clave de EMP_DEPT.
Formalmente, un esquema de relacion R está en 3 Forma Normal Elmasri-Navathe,2 si para toda dependencia funcional
, se cumple al menos una de las siguientes condiciones:
1. X es superllave o clave.
2. A es atributo primo de R; esto es, si es miembro de alguna clave en R.
Además el esquema debe cumplir necesariamente, con las condiciones de segunda forma normal.
Forma normal de Boyce-Codd (FNBC)
La tabla se encuentra en FNBC si cada determinante, atributo que determina completamente a otro, es clave candidata. Deberá registrarse de forma anillada ante la presencia de un intervalo seguido de una formalizacion perpetua, es decir las variantes creadas, en una tabla no se llegaran a mostrar, si las ya planificadas, dejan de existir.
Formalmente, un esquema de relación R está en FNBC, si y sólo si, para toda dependencia funcional
válida en R, se cumple que
1. X es superllave o clave.
De esta forma, todo esquema R que cumple FNBC, está además en 3FN; sin embargo, no todo esquema R que cumple con 3FN, está en FNBC.
Cuarta Forma Normal (4FN)
Una tabla se encuentra en 4FN si, y sólo si, para cada una de sus dependencias múltiples no funcionales X->->Y, siendo X una super-clave que, X es o una clave candidata o un conjunto de claves primarias.
Quinta Forma Normal (5FN)
Una tabla se encuentra en 5FN si:
§ La tabla está en 4FN
§ No existen relaciones de dependencias no triviales que no siguen los criterios de las claves. Una tabla que se encuentra en la 4FN se dice que está en la 5FN si, y sólo si, cada relación de dependencia se encuentra definida por las claves candidatas.
BOYCE COOD
FORMA NORMAL DE BOYCE-CODD
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 . 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 , 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 terminos menos formales, una tabla está en FNBC si está en 3FN y los únicos determinantes son claves candidatas
Ejemplo
La cuestión es que un trabajador o trabajadora puede trabajar en varios departamentos. En dicho departamento hay varios responsables, pero cada trabajador sólo tiene asignado uno. El detalle importante que no se ha tenido en cuenta, es que el o la responsable sólo puede ser responsable en un departamento. Este detalle último produce una dependencia funcional ya que: Responsable→Departamento Por lo tanto hemos encontrado un determinante que no es clave candidata. No está por tanto en FNBC. En este caso la redundancia ocurre por mala selección de clave. La redundancia del departamento es completamente 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):
| Referencia cruzada de Tutor/Estudiante | ||
| ID Tutor | Número de seguro social del tutor | ID Estudiante |
| 1078 | 088-51-0074 | 31850 |
| 1078 | 088-51-0074 | 37921 |
| 1293 | 096-77-4146 | 46224 |
| 1480 | 072-21-2223 | 31850 |
- {ID Tutor, ID Estudiante}
- {Número de seguro social del tutor, ID Estudiante}
Recuerde que la 2NF prohíbe dependencias funcionales parciales de atributos no-primarios en las claves candidatas, y la 3NF prohíbe dependencias funcionales transitivas de atributos no-primarios en claves candidatas. Dado que la tabla de arriba carece de cualquier atributo no-primario, está en 2NF y 3NF.
La FNBC es más rigurosa que la 3NF en que no permite ninguna dependencia funcional en la cual el conjunto determinante de atributos no sea una clave candidato (o superconjunto de eso). La dependencia de ID Tutor en Número de seguro social del tutor es ese tipo de dependencia. Por consiguiente, la tabla de arriba no está en FNBC
Cualquier tabla que sea insuficiente en FNBC será vulnerable a inconsistencias lógicas. En la tabla de arriba podía ser representada una combinación inconsistente de ID Tutor y Número de seguro social del tutor.
En este caso, corregir el problema sería una simple cuestión de usar solo un esquema de identificación para los tutores: o el ID, o el número del seguro social, pero no ambos
QUE ES UN ATRIBUTO, ENTIDAD Y RELACION
QUE ES FORING KEY
es un campo agregado en una tabla A que debe contener el valor de la clave primaria de otra tabla B, la cual corresponde al registro de la B con el que un registro de la tabla A se relaciona. Un ejemplo sería: Un vehículo X usa motor de tamaño Y, entonces en el registro del vehículo, donde va el nombre del modelo de motor, va en realidad la clave en la tabla MOTOR donde está la descripción del motor que usa.
Una FK debe cumplir las mismas condiciones básicas de cualquier clave: No puede ser NULL, pero además requiere que esa clave debe existir en la tabla referida, es decir, no puede apuntar a NULL.
Una FK debe cumplir las mismas condiciones básicas de cualquier clave: No puede ser NULL, pero además requiere que esa clave debe existir en la tabla referida, es decir, no puede apuntar a NULL.
QUE ES PRIMARY KEY
sirve para identificar de forma unica un registro!
EJMPLO DE PRIMARY KEY
create table usuarios(
nombre varchar2(20),
clave varchar2(10),
primary key(nombre)
);
nombre varchar2(20),
clave varchar2(10),
primary key(nombre)
);
EJEMPLO DE FOREINGKEY
alter table NOMBRETABLA1
add constraint NOMBRERESTRICCION
foreign key (CAMPOCLAVEFORANEA)
references NOMBRETABLA2 (CAMPOCLAVEPRIMARIA);
add constraint NOMBRERESTRICCION
foreign key (CAMPOCLAVEFORANEA)
references NOMBRETABLA2 (CAMPOCLAVEPRIMARIA);
QUE UNA HERRAMIENTA CASE
Las herramientas CASE (Computer Aided Software Engineering,
son diversas aplicaciones informaticas destinadas a aumentar
la productividad en el desarrollo de software reduciendo el coste de las mismas en términos de tiempo y de dinero
Estas herramientas nos pueden ayudar en todos los aspectos del ciclo de
vida de desarrollo del software en tareas como el proceso de realizar
un diseño
del proyecto, cálculo de costes, implementación de parte del código
automáticamente con el diseño dado, compilación automática,
documentación o detección de errores entre otras.
Estas herramientas nos pueden ayudar en todos los aspectos del ciclo de
vida de desarrollo del software en tareas como el proceso de realizar
un diseño
del proyecto, cálculo de costes, implementación de parte del código
automáticamente con el diseño dado, compilación automática,
documentación o detección de errores entre otras.
QUE ES UN ATRIBUTO, ENTIDAD Y RELACIO
QUE ES FORING KEY
es un campo agregado en una tabla a que debe contener el valor de la clave primaria de otra tabla b, la cual corresponde al registro de la b con el que un registro de la tabla a se relaciona. un ejemplo sería: un vehículo x usa motor de tamaño y, entonces en el registro del vehículo, donde va el nombre del modelo de motor, va en realidad la clave en la tabla motor donde está la descripción del motor que usa.
una fk debe cumplir las mismas condiciones básicas de cualquier clave: no puede ser null, pero además requiere que esa clave debe existir en la tabla referida, es decir, no puede apuntar a null.
una fk debe cumplir las mismas condiciones básicas de cualquier clave: no puede ser null, pero además requiere que esa clave debe existir en la tabla referida, es decir, no puede apuntar a null.
QUE ES PRIMARY KEY
sirve para identificar de forma unica un registro!
EJMPLO DE PRIMARY KEY
create table usuarios(
nombre varchar2(20),
clave varchar2(10),
primary key(nombre)
);
EJEMPLO DE FOREINGKEY
alter table nombretabla1
add constraint nombrerestriccion
foreign key (campoclaveforanea)
references nombretabla2 (campoclaveprimaria);
QUE UNA HERRAMIENTA CASE
las herramientas case (computer aided software engineering,
Suscribirse a:
Comentarios (Atom)
