Bases de datos relacionales y normalización
Clasificado en Informática
Escrito el en español con un tamaño de 3,46 KB
Bases de datos relacionales
Primera propuesta formulada por E.F. Codd, IBM en 1970.
Información organizada en:
- Tablas ó entidades
- Cada tabla contiene uno o varios registros ó filas
- Cada registro de la misma tabla tiene el mismo tipo de columnas, campos ó atributos
Suele incluirse una clave principal que identifica a cada registro con un valor único
Se pueden utilizar otras claves adicionales para otros cometidos
Cada clave corresponde a una columna o a la combinación de varias columnas
Ejemplo: una tabla para recoger información sobre alumnos
En una base de datos normalmente existen varias tablas entre las que se establecen relaciones
Relación uno-uno
Un registro de una tabla A está relacionado con un único registro de otra tabla B. Y viceversa, un registro de la tabla B está relacionado con un único registro de la tabla A.
Se utiliza para distribuir los datos de una tabla en dos tablas, disponiendo en una de ellas los datos más frecuentemente utilizados en búsquedas y en otra tabla los datos menos utilizados, con el objetivo de agilizar las búsquedas de información en la primera tabla.
Para establecer una relación entre dos tablas, se crea un campo adicional en la tabla B, denominado clave externa (foreignkey). En este campo sólo se pueden cargar valores válidos almacenados en la clave principal de la clave A, asegurando así la integridad de la base de datos (referentialintegrity).
Relación uno-varios
Un registro de una tabla A puede estar relacionado con varios registros de otra tabla B, pero cada registro de la tabla B sólo puede estar relacionado con un registro de la tabla A.
Relación varios-varios
Un registro de una tabla A puede estar relacionado con varios registros de otra tabla B. Y viceversa, un registro de B puede estar relacionado también con varios registros de A.
Para establecer esta relación es necesario crear una tabla adicional con claves foráneas a ambas tablas A y B.
Normalización
En el diseño de bases de datos es fundamental evitar almacenar información de forma repetida y también es necesario establecer dependencias de forma consistente.
Vamos a aplicarlo a un ejemplo donde se guarda información sobre alumnos matriculados en asignaturas. Cada registro en esta tabla contiene información de un determinado alumno, por lo que la clave principal puede estar constituida por las columnas Nombre y Apellidos:
Para ello podemos aplicar las siguientes reglas:
Primera forma normal
- En una tabla no pueden existir varios registros con la misma información en todos sus campos.
- Cada tabla tiene que disponer de una clave principal para poder identificar sus registros. No puede haber varios registros con los mismos valores en su clave principal.
- En cada campo de cada registro sólo puede haber un dato simple, indivisible.
Aplicado al anterior ejemplo, cada registro está identificado por el alumno y la asignatura:
Segunda forma normal
- Los campos que no forman parte de la clave principal tienen que depender de toda la clave principal y no de parte de ella.
En el ejemplo anterior, los campos Edad y Dirección dependen del alumno y no de la asignatura. Es necesario crear una tabla aparte para registrar a los alumnos.