Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Normalizacion
Normalizacion
2 HND ESI
La normalizacin de las
bases de datos. lgebra
relacional.
3.1
Teora de la normalizacin............................................................................... 2
3.2
Nocin intuitiva de las formas normales .......................................................... 4
3.3
Dependencias funcionales............................................................................... 5
3.3.1
Dependencia funcional completa.............................................................. 5
3.3.2
Dependencia funcional transitiva .............................................................. 6
3.3.3
Definicin formal de las tres primeras formas normales ........................... 6
3.4
Diagramas de dependencia funcional. Ejemplo de normalizacin................... 7
3.5
lgebra Relacional......................................................................................... 10
3.5.1
Operadores primitivos............................................................................. 11
3.5.2
Operadores Derivados............................................................................ 13
3.5.3
Operacin de asignacin y renombrado de atributos ............................. 14
Curso 2005/2006
2 HND ESI
Tema 3. La normalizacin de las Bases de Datos. lgebra relacional.
3.1
TEORA DE LA NORMALIZACIN
Cuando se disea una base de datos mediante el modelo relacional, al igual que ocurre en
otros modelos de datos, tenemos distintas alternativas, es decir, podemos obtener diferentes
esquemas relacionales y no todos son equivalentes, ya que algunos van a representar la
realidad mejor que otros.
Es necesario conocer qu propiedades debe tener un esquema relacional para
representar adecuadamente una realidad y cules son los problemas que se pueden derivar de
un diseo inadecuado.
La teora de la Normalizacin es un mtodo objetivo y riguroso que se aplica en el
diseo de bases de datos relacionales.
Cuando estudiamos la estructura del modelo relacional, nos dimos cuenta que la base
de datos puede representarse por medio de un conjunto de objetos (dominios y relaciones) y
de un conjunto de reglas de integridad.
El esquema relacional puede obtenerse de dos formas distintas:
Ambigedades
En conclusin el esquema relacional obtenido debe ser analizado para comprobar que no
presenta los problemas anteriores.
Analicemos la siguiente relacin: ESCRIBE
AUTOR
Date, C.
Norteamericana
98987
Database
Addison
1990
Date, C.
Norteamericana
97777
SQL Stan
Addison, W.
1986
Date, C.
Norteamericana
98987
Guide for
Addison, W.
1988
Curso 2005/2006
2 HND ESI
Tema 3. La normalizacin de las Bases de Datos. lgebra relacional.
Codd,E.
Norteamericana
7890
Relational
Addison,W.
1990
Gardarin
Francesa
12345
Basi Dati
Paraninfo
1986
Gardarin
Francesa
67890
Comp BD
Eyrolles
1984
Valduriez
Francesa
67890
Comp BD
Eyrolles
1984
Kim,W.
Norteamericana
11223
BD OO
ACM
1989
Lochovsky
Canadiense
11223
BD OO
ACM
1989
Redundancia, ya que la nacionalidad del autor se repite por cada ocurrencia del mismo.
Lo mismo sucede cuando un libro tiene mas de un autor, se repite la editorial y el ao de
publicacin.
Anomalas de modificacin, es fcil cambiar el nombre de una editorial en una tupla sin
modificar el resto de las que corresponden al mismo libro, lo que da lugar a incoherencias.
Anomalas de borrado, ya que si queremos eliminar un cierto libro, deberamos perder los
datos de su autor y viceversa.
En los casos anteriores, se deja en manos del usuario manejar la integridad de la base de
datos. Lo anterior sucede pues no se cumple un hecho bsico de todo diseo:
"hechos distintos, deben almacenarse en objetos distintos"
Una forma de evitar este tipo de problemas consiste en seguir la metodologa
propuesta en el curso, es decir, un riguroso diseo conceptual y un traspaso de ste al modelo
relacional. Sin embargo, ante posibles dudas respecto a si un esquema relacional est correcto,
aplicaremos a dicho esquema un mtodo formal de anlisis, que permita analizar errores y
generar esquemas correctos. Esta es la teora de la normalizacin.
En el ejemplo anterior, el conjunto de las siguientes relaciones no presenta estos
problemas:
LIBRO( cod_libro, titulo, editorial, ao )
AUTOR( nombre, nacionalidad )
ESCRIBE( cod_libro, nombre )
La normalizacin introduce una tcnica formal para disear bases de datos
relacionales, y permite mecanizar parte del proceso al disponer de algoritmos de
normalizacin.
-3ESNE Escuela Superior de Negocios y Estudios Internacionales
Camino Pardo de Vega/Jos ngel de Sande
Curso 2005/2006
2 HND ESI
Curso 2005/2006
2 HND ESI
DEPENDENCIAS FUNCIONALES
Curso 2005/2006
2 HND ESI
X Y si y solo si NO X X / X Y.
Ejemplos:
La relacin PUBLICA( articulo, revista, numero, pagina ), que representa la pagina
inicial en la que comienza un articulo en una revista. Un mismo articulo puede aparecer
publicado en distintas revistas y en cada una de ellas, en paginas distintas y una revista
publica varios artculos, se tiene:
articulo, revista, numero pagina
articulo | pagina
revista | pagina
numero | pagina
3.3.2 Dependencia funcional transitiva
Sea la relacin R( X,Y,Z ), en la que existen las siguientes dependencias funcionales:
X Y, Y Z y Y | X, se dice que Z tiene dependencia transitiva respecto a X, a travs
de Y.
ej: LIBRO_ED( codlibro, editorial, pas )
La dependencia entre codlibro y pas es transitiva, a travs de editorial. Intuitivamente
se interpreta como que PAIS es una informacin del libro, pero indirectamente, ya que es una
informacin de EDITORIAL y esta a su vez de LIBRO.
3.3.3 Definicin formal de las tres primeras formas normales
Primera Forma Normal:
No tiene grupos repetitivos, es decir, un atributo slo puede tomar un nico valor de un
dominio simple.
Segunda Forma Normal:
Est en 1FN
Cada atributo no principal tiene dependencia funcional completa respecto de cada una de
las claves.
Est en 2FN
Curso 2005/2006
2 HND ESI
Tema 3. La normalizacin de las Bases de Datos. lgebra relacional.
3.4
DIAGRAMAS
DE
NORMALIZACIN.
DEPENDENCIA
FUNCIONAL.
EJEMPLO
DE
Se trata de normalizar hasta la 3FN una base de datos de una academia que contenga
informacin sobre Cursos, Profesores, Libros, Editorial de los libros, Ciudad de la editorial,
Telfono de los profesores y aulas. Se imponen ahora las siguientes (aunque un tanto
extraas) condiciones:
-
Cada curso tiene un grupo bien definido de libros (se dan todos ellos).
Cada curso impartido por un profesor con un cierto libro se realizar en un aula
distinta.
Para plasmar todas estas condiciones, se incorpora a continuacin una hipottica tabla con
los tipos de datos anteriormente definidos.
Curso
Fsica
Fsica
Fsica
Fsica
Lengua
Lengua
Lengua
Lengua
Lengua
Lengua
Profesor
Luis
Luis
Paco
Paco
Pepe
Pepe
Ana
Ana
Juan
Juan
Libro
A
B
A
B
C
D
C
D
C
D
Aula
1
2
3
4
5
6
7
8
9
10
Editorial
Ciencia
Saber
Ciencia
Saber
Saber
Futuro
Saber
Futuro
Saber
Futuro
Ciudad
Madrid
Sevilla
Madrid
Sevilla
Sevilla
Barcelona
Sevilla
Barcelona
Sevilla
Barcelona
Telfono
212121
212121
434343
434343
545454
545454
323232
323232
121212
121212
Teniendo en cuenta el enunciado del problema y los datos de la tabla anterior, se puede
trazar el siguiente diagrama de dependencias funcionales:
Para normalizar hasta la tercera forma normal debemos seguir los siguientes pasos:
a. Determinar cuales son las claves de la relacin.
b. Determinar cual de estas claves funcionar como clave primaria.
En nuestro ejemplo, la clave primaria sera (Curso, Profesor, Libro)
c. Mirar si la relacin se encuentra en 1FN.
En nuestro ejemplo, podemos afirmar que la relacin se encuentra en primera forma
normal ya que los dominios son atmicos.
d. Mirar si la relacin se encuentra en 2FN.
-7ESNE Escuela Superior de Negocios y Estudios Internacionales
Camino Pardo de Vega/Jos ngel de Sande
Curso 2005/2006
2 HND ESI
Sea una relacin R(A,B,C,D) con clave primaria (A,B) y tal que RA -> RD, entonces la
relacin R puede descomponerse como
R1(A,D)
R2(A,B,C)
En el diagrama de dependencias funcionales, se muestra claramente que existen dos
dependencias no completas de la clave. Es decir, existen dos atributos que no dependen de la
clave completa, sino de parte de ella.
Curso 2005/2006
2 HND ESI
Sea una relacin R(A,B,C) con clave primaria (A) y tal que RB -> RC, entonces la relacin R
puede descomponerse como:
R1(A,B)
R2(B,C)
Aplicaremos el Teorema II para deshacer la dependencia transitiva en R3.
R5= (Libro, Editorial)
R6=(Editorial, Ciudad)
Ahora se puede afirmar que las relaciones R1, R4, R5 y R6 se encuentran en 3FN.
-9ESNE Escuela Superior de Negocios y Estudios Internacionales
Camino Pardo de Vega/Jos ngel de Sande
Curso 2005/2006
2 HND ESI
LGEBRA RELACIONAL.
El Modelo relacional, como todo modelo de datos, lleva asociado a su parte esttica
(estructura y restricciones) una dinmica que permite la transformacin entre estados de la
base de datos. Esta transformacin de un estado origen a un estado objetivo se realiza
aplicando un conjunto de operadores, mediante los cuales se llevan a cabo las siguientes
operaciones:
-
insercin de tuplas
borrado de tuplas
modificacin de tuplas.
consulta.
La dinmica del modelo relaciona acta sobre un conjunto de tuplas y se expresa mediante
lenguajes de manipulacin relacionales que asocian una sintaxis concreta a las operaciones.
La dinmica del modelo relacional, en lo que al lgebra se refiere, la constituye una coleccin
de operadores de alto nivel que, aplicados a las relaciones, dan como resultado nuevas
relaciones. Originalmente Codd defini ocho operadores para el lgebra relacional, divididos
en dos grupos de cuatro:
-
Curso 2005/2006
2 HND ESI
Tema 3. La normalizacin de las Bases de Datos. lgebra relacional.
Operadores primitivos que son los operadores esenciales que no pueden obtenerse de
otros.
Los operadores unarios son la proyeccin y restriccin. Los operadores binarios son la Unin,
Diferencia y Producto cartesiano.
3.5.1.1 Seleccin o restriccin
La seleccin, tambin llamada restriccin, extrae las tuplas de una relacin que satisfaga una
condicin especfica.
Un ejemplo de la operacin de restriccin sera el siguiente:
AUTOR
Nombre
Date C.J.
Saltor F.
Ceri, S
Ramos, I
Sanchis, J
Jonason, J
Nacionalidad
Norteamericana
Espaola
Italiana
Espaola
Espaola
Norteamericana
Institucin
Relational Institute
U.P.C.
Politcnico de Milan
U.P.V
U.P.C.
U.P.C.
Nacionalidad
Espaola
Espaola
Espaola
Institucin
U.P.C.
U.P.V
U.P.C.
Nacionalidad
Espaola
Espaola
Institucin
U.P.C.
U.P.C.
Curso 2005/2006
2 HND ESI
Tema 3. La normalizacin de las Bases de Datos. lgebra relacional.
3.5.1.2 Proyeccin
Construye una relacin con todas las tuplas que aparezcan en cualquiera de las dos relaciones
especificadas. Para usar este operador es necesario que las dos relaciones especificadas tengan
los mismos atributos definidos sobre los mismos dominios.
R= A
a1
a2
a3
a4
S= A
b1
b2
b2
b4
a1
a2
a5
RS= A
b1
b2
b5
a1
a2
a3
a4
a5
b1
b2
b2
b4
b5
3.5.1.4 Diferencia
Construye una relacin con las tuplas de la primera que no aparecen en la segunda. Para
utilizar este operador es necesario que las dos relaciones especificadas tengan los mismos
atributos definidos sobre los mismos dominios.
R= A
a1
a2
a3
a4
S= A
b1
b2
b2
b4
a1
a2
a5
R -S = A
b1
b2
b5
a3 b2
a4 b4
A partir de dos relaciones especificadas, construye una relacin concatenando cada tupla de la
primera con cada una de las tuplas de la segunda. La relacin resultante est definida sobre la
unin de los atributos de las dos relaciones especificadas.
R= A
a1
a2
a3
a4
b1
b2
b2
b4
S= D
RXS= A
d1
d2
a1
a1
a2
a2
a3
a3
a4
a4
b1
b1
b2
b2
b2
b2
b4
b4
d1
d2
d1
d2
d1
d2
d1
d2
Curso 2005/2006
2 HND ESI
Tema 3. La normalizacin de las Bases de Datos. lgebra relacional.
x
y
a
a
b
b
c
c
x
y
x
y
x
y
Con esta operacin se obtiene del producto cartesiano de dos tablas cuyas filas cumplen una
condicin determinada. La condicin determinar el criterio de combinacin de ambas tablas.
Se representar del siguiente modo: (Tabla1 * Tabla2) condicin.
R= A
S= A
R*S= A
a
b
c
u
v
w
a
a
b
x
y
z
a
a
b
u
u
v
x
y
z
3.5.2.2 Interseccin
Construye una relacin con aquellas tuplas que aparezcan en las dos relaciones especificadas.
Para usar este operador es necesario que las dos relaciones especificadas tengan los mismos
atributos definidos sobre los mismos dominios. La interseccin se puede definir en funcin de
la unin y la diferencia. Se representa de la siguiente manera: Tabla1 Tabla2
R= A
a1
a2
a3
a4
S= A
b1
b2
b2
b4
a1
a2
a5
b1
b2
b5
RS= A
a1 b1
a2 b2
3.5.2.3 Divisin
La divisin de una relacin R1 (dividendo) por otra R2 (divisor) es una relacin R (cociente)
tal que, al realizarse su combinacin con el divisor, todas las tuplas resultantes se encuentran
en el dividendo.
AUTOR_EDITORIAL
Nombre
Nacionalidad
Date, CJ
Norteamericana
Cervera, J.
Espaola
Saltor, F.
Espaola
Ceri, S.
Italiana
Editorial
Addison
Rama
Paraninfo
Clup
EDITORIAL
Editorial
Adisson
Rama
Curso 2005/2006
2 HND ESI
Tema 3. La normalizacin de las Bases de Datos. lgebra relacional.
Costilla, C.
Codd, E.
Cervera, J.
Espaola
Diaz de Santos
Norteamericana Prentice may
Espaola
Addison
AUTOR_EDITORIAL : EDITORIAL
Nombre
Nacionalidad
Cervera, J.
Espaola
3.5.3 Operacin de asignacin y renombrado de atributos