domingo, 1 de junio de 2014

modelos ,tipos y normalizacion

Base de datos relacionales 


Es un conjunto de información relacionada entre si , referente a un tema o algún propósito en particular y es la mas utilizada en la actualidad 


Tipos de relaciones

Relaciones “Unos a Varios"
este tipo de relacion es el mas comun, en esta relación un registro de la tabla A puede tener más de un registro coincidente en la tabla B,pero un registro de la tabla B tiene como máximo un registro coincidente en la tabla A 
→ ejemplo de la vida cotidiana 
a= madre
b= hijos 
una madre puede tener muchos hijos , pero los hijos solamente pueden tener una sola madre 





Relaciones “Varios a Varios”
Un registro de la tabla A puede tener un registro coincidente en la tabla B y viceversa, para detectar esta relación obsérvela en dos sentidos, por ejemplo: examine la relación pedidos y productos. Un pedido puede incluir más de un producto y un producto puede aparecer en varios pedidos, para resolver este problema la regla a seguir es crear una tercera tabla que rompa esta relación que incluiría la clave principal de cada una de las dos tablas anteriores como clave principal en esta tabla que garantiza un valor único para cada registro.  






Relación “Uno a Uno”

Un registro de la tabla A no puede tener más de un registro coincidente en la tabla B y viceversa. Este tipo de relación es poco frecuente y ocurre al aplicar técnicas de desnormalización, cuando una tabla es muy grande y se divide en dos, o cuando la información de algunos campos tiene un tiempo de vida útil limitado o cuando esa misma información solo la utilizan un grupo limitado de registros.


Normalizacion 

La normalización es el proceso de organizar los datos de una base de datos. Se incluye la creación de tablas y el establecimiento de relaciones entre ellas según reglas diseñadas tanto para proteger los datos como para hacer que la base de datos sea más flexible al eliminar la redundancia y las dependencias incoherentes.

Primera forma normal
  • Elimine los grupos repetidos de las tablas individuales.
  • Cree una tabla independiente para cada conjunto de datos relacionados.
  • Identifique cada conjunto de datos relacionados con una clave principal.
No use varios campos en una sola tabla para almacenar datos similares. Por ejemplo, para realizar el seguimiento de un elemento del inventario que proviene de dos orígenes posibles, un registro del inventario puede contener campos para el Código de proveedor 1 y para el Código de proveedor 2



Segunda forma normal
  • Cree tablas independientes para conjuntos de valores que se apliquen a varios registros.
  • Relacione estas tablas con una clave externa.
Los registros no deben depender de nada que no sea una clave principal de una tabla, una clave compuesta si es necesario. Por ejemplo, considere la dirección de un cliente en un sistema de contabilidad. La dirección se necesita en la tabla Clientes, pero también en las tablas Pedidos, Envíos, Facturas, Cuentas por cobrar y Colecciones. En lugar de almacenar la dirección de un cliente como una entrada independiente en cada una de estas tablas, almacénela en un lugar, ya sea en la tabla Clientes o en una tabla Direcciones independiente.

Tercera forma normal
  • Elimine los campos que no dependan de la clave.
Los valores de un registro que no sean parte de la clave de ese registro no pertenecen a la tabla. En general, siempre que el contenido de un grupo de campos pueda aplicarse a más de un único registro de la tabla, considere colocar estos campos en una tabla independiente. Por ejemplo, en una tabla Contratación de empleados, puede incluirse el nombre de la universidad y la dirección de un candidato. Pero necesita una lista completa de universidades para enviar mensajes de correo electrónico en grupo. Si la información de las universidades se almacena en la tabla Candidatos, no hay forma de enumerar las universidades que no tengan candidatos en ese momento. Cree una tabla Universidades independiente y vincúlela a la tabla Candidatos con el código de universidad como clave.


Normalizar una tabla de ejemplo
Estos pasos demuestran el proceso de normalización de una tabla de alumnos improvisada  
  1. Tabla sin normalizar:
Nº alumno
Tutor
Despacho-Tut
Clase1
Clase2
Clase3
1022
García
412
101-07
143-01
159-02
4123
Díaz
216
201-01
211-02
214-01
  1. Primera forma normal: no hay grupos repetidos

    Las tablas sólo deben tener dos dimensiones. Puesto que un alumno tiene varias clases, estas clases deben aparecer en una tabla independiente. Los campos Clase1, Clase2 y Clase3 de los registros anteriores son indicativos de un problema de diseño. 

    Las hojas de cálculo suelen usar la tercera dimensión, pero las tablas no deberían hacerlo. Otra forma de considerar ese problema es con una relación de uno a varios y poner el lado de uno y el lado de varios en tablas distintas. En su lugar, cree otra tabla en la primera forma normal eliminando el grupo repetido (Nº clase), según se muestra a continuación:

Nº alumno
Tutor
Despacho-Tut
Nº clase
1022
García
412
101-07
1022
García
412
143-01
1022
García
412
159-02
4123
Díaz
216
201-01
4123
Díaz
216
211-02
4123
Díaz
216
214-01
  1. Segunda forma normal: eliminar los datos redundantes

    Observe los diversos valores de Nº clase para cada valor de Nº alumno en la tabla anterior. Nº clase no depende funcionalmente de Nº alumno (la clave principal), de modo que la relación no cumple la segunda forma normal.

    Las dos tablas siguientes demuestran la segunda forma normal:

    Alumnos:
Nº alumno
Tutor
Despacho-Tut
1022
García
412
4123
Díaz
216


  1. Registro:
Nº alumno
Nº clase
1022
101-07
1022
143-01
1022
159-02
4123
201-01
4123
211-02
4123
214-01
  1. Tercera forma normal: eliminar los datos no dependientes de la clave

    En el último ejemplo, Despacho-Tut (el número de despacho del tutor) es funcionalmente dependiente del atributo Tutor. La solución es pasar ese atributo de la tabla Alumnos a la tabla Personal, según se muestra a continuación:

    Alumnos:
Nº alumno
Tutor
1022
García
4123
Díaz


  1. Personal:
Nombre
Habitación
Dept
García
412
42
Díaz
216
42









1 comentario: