Mostrando entradas con la etiqueta NORMALIZACION. Mostrar todas las entradas
Mostrando entradas con la etiqueta NORMALIZACION. Mostrar todas las entradas

martes, 5 de junio de 2012

LAS 12 REGLAS DE CODD


Preocupado por los productos que decían ser sistemas gestores de bases de datos relacionales, sin serlo, Codd publica las 12 reglas que debe cumplir, para ser considerado relacional. Estas reglas en la práctica las cumplen pocos sistemas relacionales.
1) Información.
Toda la información de la base de datos debe estar representada explícitamente en el esquema lógico. Es decir, todos los datos están en las tablas.
Toda la información, incluyendo nombres de tablas, nombres de vistas, nombres de columnas, y los datos de las columnas deben estar almacenados en tablas dentro de las bases de datos. Las tablas que contienen tal información constituyen el Diccionario de Datos.
2) Acceso garantizado.
Todo dato es accesible sabiendo el valor de su clave y el nombre de la columna o atributo que contiene el dato.
Dado un nombre de tabla, dado el valor de la clave primaria, y dado el nombre de la columna requerida, deberá encontrarse uno y solamente un valor.
3) Tratamiento sistemático de los valores nulos.
El DBMS debe permitir el tratamiento adecuado de estos valores
El Sistema Gestor de Bases de Datos Relacionales debe ser capaz de soportar el uso de valores nulos en el lugar de columnas cuyos valores sean desconocidos o inaplicables.
4) Catálogo en línea basado en el modelo relacional.
Los metadatos deben de ser accesibles usando un esquema relacional.
"La descripción de la base de datos es almacenada de la misma manera que los datos ordinarios, esto es, en tablas y columnas, y debe ser accesible a los usuarios autorizados".
5) Sublenguaje de datos completo.
Al  menos  debe  de  existir  un  lenguaje  que permita el manejo completo de la base de datos. Este lenguaje, por lo tanto, debe permitir realizar cualquier operación.
Debe haber por lo menos un lenguaje con una sintaxis bien definida que pueda ser usado para administrar completamente la base de datos.
6) Actualización de vistas.
El DBMS debe encargarse de que las vistas muestren la última información.
"Todas las vistas que son teóricamente actualizables, deben ser actualizables por el sistema mismo".
7) Inserciones, modificaciones y eliminaciones de dato nivel.
Cualquier operación de modificación debe actuar  sobre conjuntos de filas, nunca deben actuar registro a registro.
 Las cláusulas SELECT, UPDATE, DELETE e INSERT deben estar disponibles y operables sobre los registros, independientemente del tipo de relaciones y restricciones que haya entre las tablas.
8) Independencia física.
Los datos deben de ser accesibles desde la lógica de la base de datos aún cuando se modifique el almacenamiento.
El comportamiento de los programas de aplicación y de la actividad de usuarios vía terminales debería ser predecible basados en la definición lógica de la base de datos, y éste comportamiento debería permanecer inalterado, independientemente de los cambios en la definición física de ésta.
9) Independencia lógica.
Los programas no deben verse afectados por cambios en las tablas.
La independencia lógica de los datos especifica que los programas de aplicación y las actividades de terminal deben ser independientes de la estructura lógica, por lo tanto los cambios en la estructura lógica no deben alterar o modificar estos programas de aplicación.
10) Independencia de integridad.
Las reglas de integridad deben almacenarse en la base de datos (en el diccionario de datos), no en los programas de aplicación.
Las reglas de integridad combinadas aseguran que haya Integridad referencial: 
·         Ningún componente de una clave primaria puede tener valores en blanco o nulos. (esta es la norma básica de integridad).
·         Para cada valor de clave foránea deberá existir un valor de clave primaria concordante. La combinación 
11) Independencia de la distribución.
El sublenguaje de datos debe permitir que sus instrucciones funciones igualmente en una base de datos distribuida que en una que no lo es.
El soporte para bases de datos distribuidas significa que una colección arbitraria de relaciones, bases de datos corriendo en una mezcla de distintas máquinas y distintos sistemas operativos y que esté conectada por una variedad de redes, pueda funcionar como si estuviera disponible como en una única base de datos en una sola máquina.
12) No subversión.
Si el DBMS posee un lenguaje que permite el recorrido registro a registro, éste no puede utilizarse para incumplir las reglas relacionales.
Algunos productos solamente construyen una interfaz relacional para sus bases de datos No relacionales, lo que hace posible la subversión (violación) de las restricciones de integridad. Esto no debe ser permitido. 

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.
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.


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 llave primaria única.
§  La llave primaria no contiene atributos nulos.
§  No debe existir variación en el número de columnas.
§  Los Campos no llave deben identificarse por la llave (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 (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).
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.
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 formalización 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   está en FNBC, si y sólo si, para toda dependencia funcional   válida en , se cumple que
1.      es superllave o clave.
De esta forma, todo esquema   que cumple FNBC, está además en 3FN; sin embargo, no todo esquema   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 súper-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.


DEPENDENCIA RACIONAL TRANSITATIVA


Una receta:
Si   X   …..Y         ….. Z entonces X    ……Z
Si:
 X son los ingredientes
Y son las cantidades
¿Cómo? Pues así.
    Sean X,Y,Z tres atributos (o grupos de atributos) de la misma entidad. Si Y depende funcionalmente de X y Z de Y, pero X no depende funcionalmente de Y, se dice que Z depende transitivamente de X

DEPENDENCIA RACIONAL AUMENTATIVA


X… Y entonces XZ …. YZ
Ejemplo
Dni…  nombre
Dni, dirección … nombre, dirección
¿Cómo? Pues así.
    Si con el dni (documento nacional de identificación) se determina el nombre de una persona, entonces con el dni mas la dirección también se determina el nombre o su dirección.

DEPENDENCIA FUNCIONAL REFLEXIVA


Si “y” está incluido en “x” entonces x      y
¿Cómo? Pues así.
Si el nombre y/o la fecha de nacimiento de una persona están en su CURP, entonces con la CURP podemos determinar su fecha de nacimiento y/o su nombre.

DEPENDENCIA FUNCIONAL

       Una dependencia funcional son conexiones entre uno o más atributos.
 EJEMPLO:
Dato en el cual nos dice que la fecha de  nacimiento de Julia es el 23-abril-2008.
La dependencia funcional aplica porque ahora sabemos su cumpleaños.
A la FECHA DE NACIMIENTO la nombraremos DETERMINANTE.
¿COMO SE ESCRIBE UNA DEPENDENCIA FUNCIONAL?
Fecha De Nacimiento→Edad 





e

CLAVES


—Una clave primaria es aquella columna (o conjunto de columnas) que identifica únicamente a una fila.La clave primaria es un identificador que va a ser siempre único para cada fila. Se acostumbra a poner la clave primaria como la primera columna de la tabla pero es más una conveniencia que una obligación. Muchas veces la clave primaria es numérica auto-incrementada, es decir, generada mediante una secuencia numérica incrementada automáticamente cada vez que se inserta una fila.
—En una tabla puede que tengamos más de una columna que puede ser clave primaria por sí misma. En ese caso se puede escoger una para ser la clave primaria y las demás claves serán claves candidatas.—La visualización de todas las posibles claves candidatas en una tabla ayudan a su optimización. Por ejemplo, en una tabla PERSONA podemos identificar como claves su DNI, o el conjunto de su nombre, apellidos, fecha de nacimiento y dirección. Podemos usar cualquiera de las dos opciones o incluso todas a la vez como clave primaria, pero es mejor en la mayoría de sistemas la elección del menor número de columnas como clave primaria.
—Una clave ajena (foreign key o clave foránea) es aquella columna que existiendo como dependiente en una tabla, es a su vez clave primaria en otra tabla.—Una clave compuesta es una clave que está compuesta por más de una columna.
—Una clave alternativa es aquella clave candidata que no ha sido seleccionada como clave primaria, pero que también puede identificar de forma única a una fila dentro de una tabla. Ejemplo: Si en una tabla clientes definimos el número de documento (id_cliente) como clave primaria, el número de seguro social de ese cliente podría ser una clave alternativa. En este caso no se usó como clave primaria porque es posible que no se conozca ese dato en todos los clientes.

¿QUE ES NORMALIZACION?


La normalización es el proceso mediante el cual se transforman datos complejos a un conjunto de
estructuras de datos más pequeñas, que además de ser más simples y más estables, son más fáciles 
de mantener. 
—También se puede entender la normalización como una serie de reglas que sirven para ayudar a los 
diseñadores de bases de datos a desarrollar un esquema que minimice los problemas de lógica.
—

TERMINOLOGIA RELACIONAL EQUIVALENTE

Relación --> tabla o archivo
Tupla --> registro, fila o renglón
Atributo --> columna o campo
Clave --> llave o código de identificación Clave Candidata --> superclave mínima
Clave Primaria --> clave candidata elegida
Clave Ajena --> clave externa o clave foránea
Clave Alternativa --> clave secundaria
Dependencia Multivaluada --> dependencia multivalor
RDBMS --> Del inglés Relational Data Base Manager System que significa, Sistema Gestor de Bases         de Datos Relacionales.
1FN --> Significa, Primera Forma Normal o 1NF del inglés First Normal Form.
Los términos Relación, Tupla y Atributo derivan del álgebra y cálculo relacional, que constituyen la fuente teórica del modelo de base de datos relacional.
Los términos Relación, Tupla y Atributo derivan del álgebra y cálculo relacional, que constituyen la fuente teórica del modelo de base de datos relacional.




—Todo atributo en una tabla tiene un dominio, el cual representa el conjunto de valores que el mismo puede tomar. Una instancia de una tabla puede verse entonces como un subconjunto del producto cartesiano entre los dominios de los atributos. Sin embargo, suele haber algunas diferencias con la analogía matemática, ya que algunos RDBMS permiten filas duplicadas, entre otras cosas. Finalmente, una tupla puede razonarse matemáticamente como un elemento del producto cartesiano entre los dominios.