Normalización de una base de datos
Keywords: Normalización de una base de datos, Base de datos, Edgar F. Codd, Tabla, Wikipedia
| Tabla de contenidos |
|
4.1 Llave primaria |
Introducción
El proceso de normalización de una base de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo E-R (entidad-relación) al modelo relacional.
Las bases de datos relacionales se normalizan para:
- Evitar la redundancia de los datos.
- Problemas de actualización.
- Proteger la integridad de los datos.
En el modelo relacional es frecuente llamar tabla a una relación, aunque para que una tabla bidimensional sea considerada como una relación tiene cumplir con algunas restricciones:
- Cada columna debe tener su nombre único.
- No puede haber dos filas iguales.
- Todos los datos en una columna deben de ser del mismo tipo.
Terminología equivalente
Imagen no existente Tabla_mostrando_Tuple.png Esta imagen esta mostrando lo que se conoce como un tupla, registro o fila (figura 2.0) |
Imagen no existente Tabla_mostrando_atributo.png Esta imagen esta mostrando lo que se conoce como atributo, columna o campo (figura 1.0) |
- relación = tabla o archivo
- tupla = registro o fila
- atributo = campo o columna
- base de datos = banco de datos
- dependencia multivaluada = dependencia multivalor
- llave = clave
- llave primaria = superclave
- llave ajena = llave extranjera o llave foránea
Dependencias
Dependencia funcional
Una dependencia funcional es una conexión entre uno o más atributos. Por ejemplo si conocemos el valor FechaDeNacimiento podemos conocer el valor de Edad.
Las dependencias funcionales se escriben utilizando una flecha, de la siguiente manera:
FechaDeNacimiento->Edad
Aquí a FechaDeNacimiento se le conoce como un determinante. Se puede leer de dos formas FechaDeNacimiento determina a Edad o Edad es funcionalmente dependiente de FechaDeNacimiento.
Dependencia funcional transitiva
Tabla_mostrando_dependecia_transitiva.png
Supongamos que en la relación de la figura 3.0 los estudiantes solo pueden estar matriculados en un solo curso y supongamos que los profesores pueden dar un curso.
ID_Estudiante -> Curso_Tomando
Curso_Tomando -> Profesor_Asignado
ID_Estudiante -> Curso_Tomando -> Profesor_Asignado
Entonces tenemos que ID_Estudiante determina ha Curso_Tomando y el Curso_Tomando determina ha Profesor_Asignado, indirectamente podemos saber a través del ID_estudiante el Profesor_Asignado. Entonces en la figura 3.0 tenemos una dependencia transitiva.
Llaves
Imagen no existente Tabla2_mostrandoLlaveExterna.jpg (figura 4.0) |
Imagen no existente Tabla1_mostrandoLlaveExterna.jpg (figura 5.0) |
Llave primaria
Una llave primaria es aquella columna (pueden ser también dos columnas o más) que identifica únicamente a esa tupla. En la figura 4.0 NumeroCliente es una llave primaria. En otras palabras la llave primaria es un identificador (número) que va a ser único para cada fila. Se acostumbra a poner la llave primaria como la primera columna de la tabla pero esto no tiene que ser necesario, si no es más una conveniencia.
Llave ajena
Cuando se tienen dos tablas o más una llave ajena es aquella columna de una tabla que hace referencia a una llave primaria de otra tabla. Supongamos que tenemos una base de datos con las dos tablas en la figura 4.0 y la figura 5.0 .Como podemos ver en la tabla de la figura 4.0 la columna NumeroCliente hace de llave primaria, pero en la tabla de la figura 5.0 la columna de NumeroCliente hace de llave externa. La llave primaria NumeroCliente de la figura 4.0 hace referencia a toda la fila, evitando así errores tipográficos y ahorrando espacio físico.
Llave candidata
En la firuga 1.0 podemos ver que tenemos al atributo ID_empleado como llave primaria, aunque podemos ver que tenemos a otro atributo llamado Seguro Social que tambien lo podemos utilizar de llave primaria, entonces decimos que tanto ID_empleado como Seguro Social son llaves candidatas.Esta departe del diseñador del banco de datos escoger la llave primaria entre las llaves candidatas.
Llave alternativa
Son aquellas llaves candidatas que no han sido elegidas.
Llave simple
Es una llave que esta compuesta solo de un atributo.
Llave compuesta
Es una llave que esta compuesta de más de un atributo.
Formas Normales
Las primeras tres formas normales son suficientes para cubrir las necesidades de las mayorias de las bases de datos.El creador de estas 3 primeras formas normales (o reglas) fue Edgar F. Codd.
Primera Forma Normal (1FN)
Se eliminan los grupos repetitivos. Los atributos han de ser atómicos. Gráficamente las celdas de la tabla contienen solo un valor, en cada uno de los atributos sólo se puede incluir un dato, aunque sea compuesto, pero no se pueden incluir una lista de datos. Se trata de de que cada atributo guarde la menor cantidad de información posible.
Para eliminar los grupos repetitivos se pone cada uno de ellos en una relación aparte, heredando la clave primaria de la relación en la que se encontraban.
Segunda Forma Normal (2FN)
Una tabla está en Segunda Forma Normal o 2FN cuando está en 1FN y todo atributo que no pertenece a la clave primaria tiene una dependencia funcional de la clave completa y no de parte de ella.Luego, si la clave principal está formada por un solo atributo y ya está en 1FN, ya estará en 2FN. La segunda forma normal solo se aplica a tablas en que la llave primaria se compone de dos o más atributos.
Tercera Forma Normal (3FN)
Se eliminan las dependencias funcionales transitivas.Se dice que hay dependencia funcional transitiva entre dos atributos cuando un atributo que no pertenece a la clave primaria permite conocer el valor de otro atributo.Para que una tabla esté en 3FN tiene que estar previamente en 2FN.
Forma normal de Boyce-Codd (FNBC)
Si la clave primaria está formada por un solo atributo y está en 3FN, ya está en FNBC.
Cuarta Forma Normal (4FN)
Se eliminan los multivalores de una tabla.
Quinta Forma Normal
Enlaces externos
http://www.scourdesign.com/articulos/BD-FN.php
| WikiLetra | Este artículo es, por ahora, sólo un esbozo. Ampliándolo ayudarás a mejorar Wikipedia. Puedes encontrar fuentes en las wikipedias en otras lenguas. Si lo amplias hasta el punto de que este cartel no sea necesario por favor, elimínalo. |
