Ejemplo:
Redundancia: Se repite nacionalidad cada
vez que aparece el mismo autor.
Anomalías de inserción: Si un libro es escrito por varios
autores, se tendrá que insertar tantas tuplas como número de ellos.
Anomalías de modificación: Si modifico la nacionalidad de Date
en una tupla, lo tendré que hacer en todas las que aparezca ese
autor sin dejarme ninguna.
Anomalías de borrado: Si damos de baja un libro perdemos los
datos de los autores (si sólo hubieran escrito un libro) y viceversa.
No podríamos almacenar libros
anónimos.
Principio básico a todo diseño: "Hechos distintos deben almacenarse en objetos distintos".
Solución del ejemplo:
Para cumplirlo se han creado 3 formas normales básicas:
La 1º forma normal la introdujo Codd, y es inherente al modelo relacional por lo que su
cumplimiento es obligatorio. Para que una relación esté en primera forma normal, no debe tener grupos repetitivos.
Ejemplo de una tabla que no esta en su primera forma normal:
Solución:
Para que una relación este en segunda forma normal deberá estar en 1fn y cada atributo no principal tiene dependencia funcional completa respecto de cada una de las claves.
Ejemplo de una tabla que no esta en su segunda forma normal:
ALUMNOS(dni, cod_curso, nombre, pellido1, nota)
Solución:
ALUMNOS1(dni, nombre, apellido1)
ALUMNOS2(dni,cod_curso, nota)
Para que una relación este en tercera forma normal deberá estar en 2fn y ningún atributo no principal depende transitivamente de ninguna clave de la relación.
Ejemplo de una tabla que no esta en su tercera forma normal:
BIBLIOTECA(cod_libro, titulo, autor, cod_editorial,nombre_ed, calle_ed, nombre_lector, fecha_dev)
Solución:
BIBLIOTECA1(cod_libro, titulo, autor, editorial)
BIBLITECA2(cod_editorial,nombre_ed, calle_ed)
BIBLIOTECA3(cod_libro, nombre_lector, fecha_dev)
Dependencias funcionales x-->y
Un atributo "Y" depende funcionalmente de otro "X" ó "X" determina o
implica a "Y", sí y sólo si cada valor de "X" tiene asociado en todo momento un
único valor de "Y".
Se dice que "Y" tiene dependencia funcional completa o plena de "X" si depende funcionalmente de "X" pero no de ningún
subconjunto del mismo.
Sea la relación R (X, Y, Z) en la que existen las dependencias funcionales
X -->Y, Y -->Z, Y--/-->X, se dice que "Z" tiene una dependencia transitiva respecto de "X" a través de "Y".
34.-
Alumnos
(id_alumnos, nombre,apellidos,
[telefono],dirección);
solución:
Alumnos1:
(id_alumno,nombre,apellido,dirección);
Alumnos2:(id_alumno,telefono);
35.-
NOTAS :
(id_alumno,nombre,dirección, [asignatura,aula,nota]);
Solución:
NOTAS1 :(
id_alumno,nombre,dirección);
NOTAS2 :
(id_alumno,asignatura,aula,nota); 1FN
(id_alumno,
asignatura) --> nota
asignatura --
>aula
NOTAS2.1 :
(id_alumno,asignatura,nota); 1FN,2FN
NOTAS2.2 :
(asignatura,aula); 1FN,2FN
36.-
ALUMNOS:(ID_ALUMNO,NOMBRE,TELEFONO,
ASIGNATURA,CURSO,NOTA);
Solución:
ESTA EN 1FN
PORQUE NO HAY GRUPOS REPETITIVOS
PERO NO ESTÁ EN
2FN PORQUE NO HAY DEPENDENCIA COMPLETA
(id_alumno,asignatura)-->nota
id_alumno
-->nombre, telefono
asignatura-->curso
ALUMNOS1:(ID_ALUMNOS,
ASIGNATURA, NOTA);
ALUMNOS2:(ID_ALUMNO,NOMBRE,TELEFONO);
ALUMNOS3:(
ASIGNATURA,CURSO);
YA ESTÁ EN 2FN
PORQUE AHORA SÍ QUE HAY DEPENDENCIAS COMPLETAS
gracias por los apuntes Jesús
0 comentarios:
Publicar un comentario