Base de Datos leonardo.bravo@mail.udp.cl www.leobravo.cl/ayudantia
Reglas de normalización: FN4 FN3 FN2 FN1
Normalización -FN1 Está en FN1 si todos sus atributos son atómicos Un atributo atómico representa un solo concepto Nombre Edad Código Atributos que no generen otras tablas
Normalización -FN1 Ejemplo: Cursos: código, sección, rut_profesor, nombre_profesor, nombre_curso, horario, bibliografía
Normalización -FN1 Ejemplo: Cursos: código, sección, rut_profesor, nombre_profesor, nombre_curso, horario, bibliografía No son atributos atómicos!, son compuestos, impide la búsqueda
Normalización -FN1 Ejemplo: Cursos: código, sección, rut_profesor, nombre_profesor, nombre_curso. Horario: código, sección,día, hora. Bibliografía: código, sección, titulo, autor, editor, año.
Normalización -FN2 Esta en FN2 si está en FN1 y todos los atributos dependen de la llave primaria. Dependencia parcial: dado 2 atributos A, B B → A , si para valor de B existe un único A Ejemplo: Rut → Nombre, un rut tiene un nombre asociado, pero hay personas que tienen nombres iguales pero diferentes rut. B puede ser una llave compuesta.
Normalización -FN2 ¿Como identifico una llave primaria? Por medio de las llaves candidatas. Llaves candidatas: estas son los atributos q pueden convertirse en una llave primaria, es decir tienen la característica de ser única y no repetirse en las demás tuplas o filas de la tabla, ayudan a identificar a una fila.
Normalización -FN2 Ejemplo – identificación llaves primarias: Cursos: código, sección, rut_profesor, nombre_profesor, nombre_curso Horario: código, sección,día, hora. Bibliografía: código, sección, titulo, autor, editor, año.
Normalización -FN2 Ejemplo: Cursos: código, sección, rut_profesor, nombre_profesor, nombre_curso codigo seccion rut_profesor nombre_prof nombre_cur ct0001 1 123 Pablo Calculo 2 436 Juan Karate ct0002 674 Predro te0001 007 Bond Física
Normalización -FN2 Ejemplo – identificación llaves primarias: Cursos: código, sección, rut_profesor, nombre_profesor, nombre_curso Horario: código, sección,día, hora. ???? Bibliografía: código, sección, titulo, autor, editor, año.
Normalización -FN2 Ejemplo – identificación llaves primarias: Cursos: código, sección, rut_profesor, nombre_profesor, nombre_curso Horario: código, sección,día, hora. Bibliografía: código, sección, titulo, autor, editor, año.
Normalización -FN2 Ejemplo – identificación llaves primarias: Horario: código, sección,día, hora. codigo sección día hora ct001 1 Lunes 11:00 2 Martes 12:00
Normalización -FN2 Ejemplo – identificación llaves primarias: Cursos: código, sección, rut_profesor, nombre_profesor, nombre_curso Horario: código, sección,día, hora. Bibliografía: código, sección, titulo, autor, editor, año.
Normalización -FN2 Ejemplo: Cursos: código, sección, rut_profesor, nombre_profesor Cursos2: código, nombre_curso Horario: código, sección,día, hora. Bibliografía: código, sección, titulo, autor, editor, año. No depende de sección
Normalización -FN3 Esta en FN3 si está en FN2 y todos los atributos dependen directamente de la llave primaria. B → A , directamente, no existe un C donde B → C → A.
Normalización -FN3 Ejemplo: Cursos: código, sección, rut_profesor, nombre_profesor Cursos2: código, nombre_curso Horario: código, sección,día, hora. Bibliografía: código, sección, titulo, autor, editor, año.
Normalización -FN3 Ejemplo: Cursos: código, sección, rut_profesor Cursos2: código, nombre_curso Curso 3: rut_profesor, nombre_profesor Horario: código, sección,día, hora. Bibliografía: código, sección, titulo, autor, editor, año.
Normalización Ejercicio: Normalizar en FN3 la siguiente relación que se encuentra en FN1. R: A,B,C,D,E,F,G,H (A,B) → C (A,B) → D (A,B) → E B → C B → F B → G B → H D → E C → E
Normalización Ejercicio: Normalizar en FN3 la siguiente relación que se encuentra en FN1. R: A,B,C,D,E,F,G,H FN2: R1: (A,B), D, E R2: (B), C,F,G,H
Normalización Ejercicio: Normalizar en FN3 la siguiente relación que se encuentra en FN1. R: A,B,C,D,E,F,G,H FN2: R1: (A,B), D, E R2: (B), C,F,G,H FN3: R3:(A,B),D R4:(D), E R5: (B), C,F,G,H