¡GoConqr estrena diseño! Cuéntanos qué te parece.

Apuntes

NORMALIZAR DE BASE DE DATOS

Wilder Efraín Orellana Lemus Laboratorio de Informática III y IV Español 1 página

Contenido del apunte (1)

Página 1

Normalización de una base de datos

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.

Objetivo de la normalización

Las bases de datos relacionales se normalizan para:

·

Evitar la redundancia de los datos.

·

Evitar problemas de actualización de los datos en

las tablas.

·

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. No se permiten

los duplicados.

·

Todos los datos en una columna deben ser del mismo

tipo.

Terminología equivalente

·

Relación= tabla o archivo

·

tupla= registro, fila o renglón

·

atributo= campo o columna

·

base de datos= banco de datos

·

dependencia multivaluada= dependencia

multivalor

·

clave= llave

·

clave primaria= superclave

·

clave ajena= clave extranjera o clave

foránea

·

RDBMS= del inglés Relational Data Base Manager System

que significa, Sistema Gestor de Base de Datos Relacionales

Dependencia funcional Una

dependencia funcional son conexiones entre uno o más atributos. Por ejemplo, si

conocemos el valor de 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.

De la normalización (lógica) a la implementación (física o real) puede ser

sugerible tener éstas dependencias funcionales para lograr mayor eficiencia en

las tablas.

Dependencia funcional transitiva Supongamos

que los estudiantes solo pueden estar matriculados en un solo curso y

supongamos que los profesores solo pueden dar un curso. ID_Estudiante ->

Curso_Tomando Curso_Tomando -> Profesor_Asignado ID_Estudiante ->

Curso_Tomando -> Profesor_Asignado

Entonces tenemos que ID_Estudiante determina

a Curso_Tomando y el Curso_Tomando determina a Profesor_Asignado,

indirectamente podemos saber a través del ID_estudiante el Profesor_Asignado.

Entonces tenemos una dependencia transitiva.

Claves:

Clave ajena

Cuando se tienen dos tablas o más, una clave ajena

es aquella columna de una tabla que hace referencia a una clave primaria de

otra tabla.

También existe el caso de Relaciones Autorreferenciales.

Sucede cuando en la misma relación se tiene una clave ajena que hace referencia

a la clave primeria de la misma relación. Por otro lado, las claves ajenas

pueden tomar valores nulos.

Regla de Integridad Referencial

La base de datos no debe contener valores de clave

ajena sin concordancia. Así como los valores de clave primaria representan

identificadores de entidades, las claves ajenas representan referencia a

entidades.

La regla dice: Si B hace referencia a A entonces A

debe existir. Surgen los siguientes dos puntos:

·

La integridad referencial exige concordancia en las

claves ajenas, con las claves primerias, no con las claves alternativas.

·

Los conceptos de clave ajena e integridad

referencial se definen uno en término del otro.

Clave candidata

Por lo general la forma más eficiente y segura para

escoger o hacer la clave primaria es poniendo un número y aumentando éste a

medida que se van añadiendo filas, pero sí de casualidad se diera el caso de

que existan varias claves candidatas de las cuales se deba escoger la clave

primaria, esta elección se hace utilizando el sentido común.

Claves alternativas

Son aquellas claves candidatas que no han sido

elegidas.

Clave simple

Es una clave que está compuesta solo de un

atributo.

Clave compuesta

Es una clave que está compuesta por más de un

atributo.

Formas Normales

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, éste introdujo

la normalización en un artículo llamado A Relational Model of Data for Large

Shared Data Banks.

Primera Forma Normal (1FN)

Sea α un conjunto de atributo perteneciente (Є) a

la relación R, en donde R está en la Primera Forma Normal si todos los atributos

α[n] son atómicos, es decir no pueden seguir dividiéndose. Por ejemplo:

La Relación:

cursos: nombre, código, vacantes, horario,

bibliografía

Queda después de aplicar la Forma Normal 1 de la

siguiente manera:

cursos1: nombre, código, vacantes horario1: código,

día, módulo bibliografia1: código, nombre, autor

Segunda Forma Normal (2FN)

Dependencia completa. Está en 2FN si esta en 1FN y

si sus atributos no principales dependen de forma completa de la clave

principal.

Tercera Forma Normal (3FN)

Está en segunda forma normal y todo atributo no

primo es implicado por la clave primaria en una secuencia no transitiva. Se

eliminan las dependencias transitivas.

Forma normal de Boyce-Codd (FNBC)

Una tabla está en FNBC sí y sólo sí las únicas

dependencias funcionales elementales son aquellas en las que las claves

primarias determinan un atributo.

Cuarta Forma Normal (4FN)

Está en forma normal de Boyce-Codd y se eliminan

las dependencias multivaluadas y se generan todas las relaciones externas con

otras tablas u otras bases de datos.

Quinta Forma Normal (5FN)

Está en cuarta forma normal y toda dependencia-join

viene implicada por claves candidatas.

Reglas de Codd

Codd se dio de cuenta que existían bases de datos

en el mercado las cuales decían ser relacionales, pero lo único que hacían era

guardar la información en las tablas, sin estas tablas estar literalmente

normalizadas; entonces éste publicó 12 reglas que un verdadero sistema relacional

debería de tener, en la práctica algunas de ellas son difíciles de realizar. Un

sistema podrá considerarse "más relacional" cuanto más siga estas

reglas.

Regla No. 1 - La Regla de la información

Toda la información en un RDBMS está explícitamente

representada de una sola manera por valores en una tabla. Cualquier cosa que no

exista en una tabla no existe del todo.

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.

Regla No. 2 - La regla del acceso garantizado

Cada ítem de datos debe ser lógicamente accesible

al ejecutar una búsqueda que combine el nombre de la tabla, su clave primaria,

y el nombre de la columna.

Esto significa que 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. Por esta razón la definición de claves

primarias para todas las tablas es prácticamente obligatoria.

Regla No. 3 - Tratamiento sistemático de los

valores nulos

La información inaplicable o faltante puede ser

representada a través de valores nulos.

Un RDBMS (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.

Regla No. 4 - La regla de la descripción de la base

de datos

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.

La información de tablas, vistas, permisos de

acceso de usuarios autorizados, etc, debe ser almacenada exactamente de la misma

manera: En tablas. Estas tablas deben ser accesibles igual que todas las

tablas, a través de sentencias de SQL.

Regla No. 5 - La regla del sub-lenguaje Integral

Debe haber al menos un lenguaje que sea integral

para soportar la definición de datos, manipulación de datos, definición de

vistas, restricciones de integridad, y control de autorizaciones y

transacciones.

Esto significa que debe haber por lo menos un

lenguaje con una sintaxis bien definida que pueda ser usado para administrar

completamente la base de datos.

Regla No. 6 - La regla de la actualización de

vistas

Todas las vistas que son teóricamente

actualizables, deben ser actualizables por el sistema mismo.

La mayoría de las RDBMS permiten actualizar vistas

simples, pero deshabilitan los intentos de actualizar vistas complejas.

Regla No. 7 - La regla de insertar y actualizar

La capacidad de manejar una base de datos con

operandos simples aplica no solo para la recuperación o consulta de datos, sino

también para la inserción, actualización y borrado de datos.

Esto significa que 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.

Regla No. 8 - La regla de independencia física

El acceso de usuarios a la base de datos a través

de terminales o programas de aplicación, debe permanecer consistente

lógicamente cuando quiera que haya cambios en los datos almacenados, o sean

cambiados los métodos de acceso a los datos.

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.

Regla No. 9 - La regla de independencia lógica

Los programas de aplicación y las actividades de

acceso por terminal deben permanecer lógicamente inalteradas cuando quiera que

se hagan cambios (según los permisos asignados) en las tablas de la base de

datos.

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.

Regla No. 10 - La regla de la independencia de la

integridad

Todas las restricciones de integridad deben ser

definibles en los datos, y almacenables en el catálogo, no en el programa de

aplicación.

Las reglas de integridad son:

·

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. Las combinaciones de estas reglas aseguran

que haya Integridad referencial.

Regla No. 11 - La regla de la distribución

El sistema debe poseer un lenguaje de datos que

pueda soportar que la base de datos esté distribuida físicamente en distintos

lugares sin que esto afecte o altere a los programas de aplicación.

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 una única base de datos en una sola máquina.

Regla No. 12 - Regla de la no-subversión

Si el sistema tiene lenguajes de bajo nivel, estos

lenguajes de ninguna manera pueden ser usados para violar la integridad de las

reglas y restricciones expresadas en un lenguaje de alto nivel (como SQL).

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.

FUETE: https://www.ecured.cu/Normalizaci%C3%B3n_de_una_base_de_datos

Información

Descripción
Laboratorio de Informática III y IV Apunte sobre NORMALIZAR DE BASE DE DATOS, creado por Wilder Efraín Orellana Lemus el 08/03/2017.
Creado por
Wilder Efraín Orellana Lemus · mar 2017
Actualizado
8 mar 2017
Visitas
1
Valoración

Escríbenos

¿Sobre qué es tu mensaje?

¿Qué te parece el nuevo diseño?

¿Te gusta?