Bienvenidos a un nuevo curso. Ahora estoy en el ciclo de grado superior: Desarrollo de aplicaciones multiplataforma. Y voy a ser parte del experimento de la formación dual. Estaré haciendo practicas durante un año, y a la vez finalizando la formación.

Deseadme suerte.

martes, 10 de noviembre de 2015

Teoría de la normalización

0

Si hubiéramos obtenido el modelo relacional directamente, sin esquema conceptual, la aplicación de la teoría de normalización sería obligatoria.
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

Related Posts:

  • Teoría de la normalizaciónSi hubiéramos obtenido el modelo relacional directamente, sin esquema conceptual, la aplicación de la teoría de normalización sería obligatoria. Ejemp… Read More
  • Ejercicios de normalización 37.- VENTAS(id_vendedor, calle, ciudad, id_articulo, cantidad) ---- grafo id_vendedor --> calle, ciudad id_vendedor, id_articulo… Read More
  • Repaso normalización Repaso 1 FN ALUMNOS(num_matricula, nombre, apellidos, dirección,[teléfono]) No esta en 1FN porque tiene grupos repetitivos. Pasamos a 1FN ALUMNOS1… Read More

0 comentarios:

Publicar un comentario

Etiquetas actuales

BD (67) DEF (64) PROG (64) SQL (44) Java (29) PRACTICAS (20) php (18) DI (16) PRESTASHOP (16) PROGRAMACIÓN WEB (16) HTML (13) SGE (12) ERP (9) CONSULTAS (8) css (8) Linux (5) XML (5) Android (4) PDM (4) C (3) NetBeans (3) PSP (3) SMARTY (3) comandos (3) HOOK (2) POST (2) XSD (2) cURL (2) JS (1) MEDIA-QUERYS (1) PDO (1) RESPONSIVE (1) TPL (1) TRADUCCIÓN (1) app_inventor (1)

Todas las etiquetas

EJER (78) BD (67) DEF (64) PROG (64) SQL (44) c# (40) Programación (39) Ficheros (36) Java (29) bases de datos (21) PRACTICAS (20) lenguajes de marcas (19) AD (18) Entorno de desarrollo (18) php (18) PROCEDIMIENTOS (17) DI (16) FORM (16) PRESTASHOP (16) PROGRAMACIÓN WEB (16) lenguaje C (16) E/R (14) HTML (13) SGE (12) Sistemas informáticos (10) ERP (9) CONSULTAS (8) TRANSACCIONES (8) TRIGGER (8) VISUAL BASIC (8) css (8) FUNCIONES (7) html5 (6) Ada (5) EXAMEN (5) Linux (5) XML (5) estructuras (5) Android (4) DISEÑO (4) INTERFAZ (4) LOG (4) OpenBravo (4) PDM (4) ACTUALIZAR (3) C (3) DIAGRAMA (3) Directorios (3) NEW (3) NOR (3) NetBeans (3) OLD (3) PSP (3) SMARTY (3) comandos (3) css3 (3) AISLAMIENTOS (2) C++ (2) CONTROLERRORES (2) ELIMINAR (2) HOOK (2) INSERTAR (2) INST (2) MULTITABLA (2) POST (2) RECURSIVIDAD (2) SUBCONSULTAS (2) VISTAS (2) XSD (2) cURL (2) punteros (2) AJENA (1) BLOQUEOS (1) Byte (1) CREACION (1) CRM (1) Configuración (1) Controles (1) Datos (1) GOTFOCUS (1) IMAGENES (1) INDICES (1) JS (1) Lenght (1) MEDIA-QUERYS (1) Mingw (1) MonoDeveloped (1) OPTIMISTA (1) PDO (1) PESIMISTA (1) RESPONSIVE (1) SPEAK (1) Scanner (1) Serializacion (1) Streams (1) System (1) TPL (1) TRADUCCIÓN (1) USUARIOS (1) UseSystemPasswordChar (1) app_inventor (1) char (1) examenes (1) libreoffice (1) make (1) redes (1)