Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Normalización BD C@rlos Alfredo Rodríguez Rojas
Profesor Universidad Distrital – F.M.R.N. Presentación Adptada
2
Contexto (I) Problema a Modelo modelar (E)ER Normalización Modelo
3/24/2017 Contexto (I) Problema a modelar Modelo (E)ER Entidades Atributos Normalización Modelo Relacional Relaciones (datos) Propiedades
3
Contexto (II) Mundo real Modelado de datos Normalización Diseño físico
3/24/2017 Contexto (II) Mundo real Modelado de datos Normalización Diseño físico Base de datos Denormalización Diseño conceptual Diseño lógico
4
Diseño de BDs Dos aproximaciones: Bottom-up (síntesis)
3/24/2017 Diseño de BDs Dos aproximaciones: Bottom-up (síntesis) Top-down (análisis)
5
Relaciones DiseñaBD: Entrada: conjunto de atributos Salida:
3/24/2017 Relaciones DiseñaBD: Entrada: conjunto de atributos Salida: conjunto de relaciones atributos de cada relación ¿Todas las tablas son relaciones?: Nombre único Atributos monovaluados Filas únicas Atributos (columnas) con nombre único Orden de filas/columnas irrelevantes Requisitos (genéricos)
6
Joins de Relaciones Customer ID Company Name Contact Phone Number
3/24/2017 Joins de Relaciones Customer ID Company Name Contact Phone Number Credit Limit Invoice ID Quantity Customer PO Employee ID Invoice Date Inventory ID Order Date Unit Price Discount Item ID Caffeinated Price On Hand
7
Parece Fácil, Pero... Problemas: Redundancia Anomalías: Solución:
3/24/2017 Parece Fácil, Pero... Problemas: Redundancia Anomalías: Actualización Inserción Borrado Creación Mantenimiento Modificación Solución: Normalizar (identificar y eliminar anomalías)
8
Objetivo Mejorar y validar el diseño lógico
3/24/2017 Objetivo Mejorar y validar el diseño lógico Evitar duplicaciones de datos: descomposición de relaciones Desarrollado inicialmente por E.F. Codd Relaciones bien estructuradas Normalización: proceso consistente en asegurar que cada tabla trata de un solo concepto
9
3/24/2017 ¿Es Necesaria? Un modelo E/R bien diseñado evita la necesidad de usarla PERO... Guía para evitar fallos (principiantes) Modo de probar la corrección del diseño Formalizan el sentido común Posibilidad de automatización
10
2 Noviembre, 2005 - Sergio Ilarri
3/24/2017 Ejemplo Employees B4 Manager 11 S. Elm Jill Emory S45 B8 Assistant 29 Market St. Matt Hoffa S15 Deputy 112 S. Main Leslie King S2 114 S. Main Ann Martin S23 B5 11 Wood St. Jane Doe S11 Fax_No Tel_No Bno Position SAddress SName Sno Clave primaria Nuevo empleado en sucursal B4 Nueva sucursal Despiden al primer empleado Cambia el número de teléfono de B4 2 Noviembre, Sergio Ilarri
11
Formas Normales MALAS 1FN 2FN 3FN Boyce-Codd 4FN 5FN
3/24/2017 Formas Normales MALAS 1FN 2FN 3FN Boyce-Codd 4FN 5FN Dependencias funcionales Dependencias multivaluadas Dependencias de join BUENAS
12
Relación Formas Normales
3/24/2017 Relations in BCNF Relations in 4NF Relaciones en BCFN Relaciones en 3FN Relaciones en 4FN Relaciones en 2FN
13
Conceptos Básicos Clave Clave candidata: clave primaria
3/24/2017 Conceptos Básicos Clave Clave candidata: clave primaria claves secundarias Clave extranjera (ajena)
14
Dependencia Funcional
3/24/2017 Dependencia Funcional A B determinante Ejemplos: ISBN BookTitle EmpID, Course_Title DateCompleted SSN Name, Address, Birthdate A R sii A es clave candidata Casos triviales (se excluyen): B es subconjunto de A
15
Obtención de Dependencias Funcionales
3/24/2017 Obtención de Dependencias Funcionales ¿Cuáles son las dependencias funcionales? A B 1 4 5 3 7 ¿Hay algo que se pueda deducir de los datos? De una instancia de una relación sólo pueden obtenerse contraejemplos
16
Dependencias Funcionales: Reglas de Inferencia
3/24/2017 Dependencias Funcionales: Reglas de Inferencia Amstrong Cierre de F
17
Primera Forma Normal (I)
3/24/2017 Primera Forma Normal (I) No atributos multivaluados Todas las relaciones Ejemplo: PROJECTS(PROJECT_ID, HOURS) EMP_PROJ(SSN, E_NAME, PROJECTS) EMP_PROJ(SSN, PROJECT_ID) PROJ_HOURS(PROJECT_ID, HOURS) EMP (SSN, E_NAME) Algunos prohíben atributos compuestos (ej: número de cuenta de 20 dígitos, una fecha)
18
Primera Forma Normal (II)
3/24/2017 Primera Forma Normal (II) Cómo evitar atributos multivaluados: en relación aparte con clave primaria la combinación expandir la clave con el atributo multivaluado sustituir por varios atributos Cómo evitar relaciones anidadas: propagar la clave primaria
19
¿Está en 1FN? (I) 3/24/2017 972-456-8842 972-456-8970 B4 Deputy
112 S. Main Leslie King S2 B8 Assistant 29 Market St. Matt Hoffa S15 114 S. Main Ann Martin S23 B5 Manager 11 Wood St. Jane Doe S11 Fax_No Tel_No Bno Position SAddress SName Sno
20
¿Está en 1FN? (II) 3/24/2017 972-456-8842 972-456-8970 B4 Manager
11 S. Elm Jill Emory S45 B8 Assistant 29 Market St. Matt Hoffa S15 Deputy 112 S. Main Leslie King S2 Deputy, 114 S. Main Ann Martin S23 B5 11 Wood St. Jane Doe S11 Fax_No Tel_No Bno Position SAddress SName Sno
21
Paso a Primera Forma Normal (I)
3/24/2017 Paso a Primera Forma Normal (I) 4 CB03 9/04/01 12494 1 BT04 BZ66 9/02/01 12491 11 AX12 12489 Number of Units Part Number Order Date Orders
22
Paso a Primera Forma Normal (II)
3/24/2017 Paso a Primera Forma Normal (II) 4 CB03 9/04/01 12494 1 BZ66 9/02/01 12491 BT04 11 AX12 12489 Number of Units Part Number Order Date Orders
23
¿Es 1FN Suficiente? Problemas: Dependencias funcionales:
3/24/2017 ¿Es 1FN Suficiente? Employee(EmpID, Name, DeptName, Salary, CourseTitle, DateCompleted) Problemas: Inserción: insertar un empleado que no esté en ningún curso Borrado: si borramos el último empleado que está en cierto curso Modificación de los datos de un empleado Dependencias funcionales: EmpID, CourseTitle DateCompleted EmpID Name, DeptName, Salary
24
Segunda Forma Normal (I)
3/24/2017 Segunda Forma Normal (I) 1FN y no dependencias funcionales parciales atributos no clave que dependen de parte de la clave 1FN equivale a 2FN si: no hay atributos no claves ó la clave es atómica Employee no está en 2FN: EmpID Name, DeptName, Salary
25
Segunda Forma Normal (II)
3/24/2017 Segunda Forma Normal (II) Cómo pasar a 2FN: asociar los atributos implicados sólo con la parte de la clave de la que depende
26
Paso a Segunda Forma Normal
3/24/2017 Paso a Segunda Forma Normal EmpID Salary DeptName Name CourseTitle DateCompleted Dependencias funcionales completas
27
Ejemplo (I) Student: Student_ID, Activity, Fee Clave:
3/24/2017 Ejemplo (I) Student: Student_ID, Activity, Fee Clave: Student_ID, Activity Dependencias funcionales: Activity Fee
28
Ejemplo (II) STUDENT_ACTIVITY Clave: Student_ID, Activity Student_ID
3/24/2017 Ejemplo (II) STUDENT_ACTIVITY Student_ID Activity ACTIVITY_COST Fee Clave: Student_ID, Activity Clave: Activity Activity Fee
29
Otro Ejemplo (I) Orders $149.99 1 Gas Grill BT04 9/05/01 12500 CB03
3/24/2017 $149.99 1 Gas Grill BT04 9/05/01 12500 CB03 BZ66 AX12 Part Number Bike Washer Iron Descript. $279.99 4 9/04/01 12494 $399.99 9/02/01 12491 $14.95 11 12489 Quoted Price Number of Units Order Date Orders
30
3/24/2017 Otro Ejemplo (II) Orders (Order Number, Order Date, Part Number, Part Description, Number of Units, Quoted Price) Dependencias funcionales: Order Number Order Date Part Number Part Description Order Number, Part Number Number of Units, Quoted Price Part Number Descript. Quoted Price of Units Order Date
31
Otro Ejemplo (III) 9/05/01 12500 9/04/01 12494 9/02/01 12491 12489
3/24/2017 Otro Ejemplo (III) 9/05/01 12500 9/04/01 12494 9/02/01 12491 12489 Order Date Number Orders CB03 BZ66 BT04 AX12 Part Number Parts Bike Washer Gas Grill Iron Descript. $149.99 1 BT04 12500 CB03 BZ66 AX12 Part Number $279.99 4 12494 $399.99 12491 $14.95 11 12489 Quoted Price of Units Order Order Line
32
Un Tercer Ejemplo (I) Student_Teacher: Student_ID, Subject, Teacher
3/24/2017 Un Tercer Ejemplo (I) Student_ID Subject Teacher Economy Leigh Management Gowan Roberts Marketing Reynolds Student_Teacher: Student_ID, Subject, Teacher Clave: Student_ID, Teacher Dependencias funcionales: Teacher Subject
33
Un Tercer Ejemplo (II) Subject Economy Management Marketing
3/24/2017 Un Tercer Ejemplo (II) Key: Student_ID, Teacher Key: Teacher Teacher Subject Student_ID STUDENT_TEACHER TEACHER_SUBJECT Teacher Subject Student_ID Teacher Leigh Gowan Roberts Reynolds Subject Economy Management Marketing
34
3/24/2017 ¿Es 2FN suficiente? (I) Customer(CustomerID, Name, Salesperson, Region) Dependencias funcionales: CustomerID Name, Salesperson Salesperson Region Problemas: Inserción: insertar un vendedor que no tenga cliente Borrado: si borramos el último cliente de cierto vendedor Modificación: de la región de un vendedor Redundancia: repetir la región cada vez que aparezca un vendedor
35
3/24/2017 ¿Es 2FN suficiente? (II)
36
Tercera Forma Normal 2FN y no dependencias transitivas
3/24/2017 Tercera Forma Normal 2FN y no dependencias transitivas Dependencia transitiva: dependencia funcional entre atributos no clave atributo no clave que depende indirectamente dependencia más específica que la de la clave ¿Qué pasa con los atributos clave que dependen indirectamente de la clave?
37
Ejemplo de Dependencia Transitiva
3/24/2017 Ejemplo de Dependencia Transitiva CustomerID Salesperson Region Atributo no clave
38
Paso a Tercera Forma Normal
3/24/2017 Paso a Tercera Forma Normal
39
Ejemplo (I) Student: Student_ID, Building, Fee Clave: Student_ID
3/24/2017 Ejemplo (I) Student: Student_ID, Building, Fee Clave: Student_ID Dependencias funcionales: Student_ID Building Building Fee
40
Ejemplo (II) STUDENT_HOUSING Clave: Student_ID Student_ID Building
3/24/2017 Ejemplo (II) Clave: Student_ID Student_ID Building Clave: Building Building Fee Student_ID STUDENT_HOUSING Building BUILDING_COST Fee
41
Otro Ejemplo (I) Miguel Diaz 12 $1500 $450.56 Al Williams 405 William
3/24/2017 Otro Ejemplo (I) Miguel Diaz 12 $1500 $450.56 Al Williams 405 William Smith 06 $750 $770.45 Tom Daniels 315 $1000 $345.54 Don Charles 311 $21.43 Ann Samuels 256 Mary Jones 03 $824.45 Sally Adams 124 Slsr First Name Slsr Last Sales Rep Number Credit Limit Balance Cust First Cust Last Customer
42
Otro Ejemplo (II) 12 $1500 $450.56 Al Williams 405 06 $750 $770.45 Tom
3/24/2017 Otro Ejemplo (II) 12 $1500 $450.56 Al Williams 405 06 $750 $770.45 Tom Daniels 315 $1000 $345.54 Don Charles 311 $21.43 Ann Samuels 256 03 $824.45 Sally Adams 124 Sales Rep Number Credit Limit Balance Cust First Name Cust Last Customer Miguel Diaz 12 William Smith 06 Mary Jones 03 Slsr First Name Slsr Last Sales Rep Number
43
¿Es 3FN suficiente? (I) Student(IDStudent, Subject, Teacher, Score)
3/24/2017 ¿Es 3FN suficiente? (I) Student(IDStudent, Subject, Teacher, Score) 3.5 Hawking Physics 678 3.7 Bach Music 789 3.2 Michener Lit 456 3.3 Mahler 123 4.0 Score Teacher Subject IDStudent
44
¿Es 3FN suficiente? (II) Score Teacher Subject IDStudent ¿En 1FN? Sí
3/24/2017 ¿Es 3FN suficiente? (II) Score Teacher Subject IDStudent ¿En 1FN? Sí ¿En 2FN? Sí ¿En 3FN? Sí Teacher Subject no es dependencia transitiva
45
¿Es 3FN suficiente? (III)
3/24/2017 ¿Es 3FN suficiente? (III) 3.5 Hawking Physics 678 3.7 Bach Music 789 3.2 Michener Lit 456 3.3 Mahler 123 4.0 Score Teacher Subject IDStudent Problemas Cambio del profesor de Física Inserción de un profesor de Economía Borrado del estudiante 789
46
Forma Normal de Boyce-Codd
3/24/2017 Forma Normal de Boyce-Codd Todo determinante de dependencias funcionales debe ser clave ¿Por qué no es la 4FN? Si un atributo no contribuye a la descripción de una clave, colocarlo en otra relación Score Teacher IDStudent Subject
47
Proceso de Normalización
3/24/2017 Proceso de Normalización Entidad no relación Eliminar atributos multivaluados y compuestos 1FN Eliminar dependencias parciales 2FN Eliminar dependencias transitivas 3FN Eliminar dependencias de claves no candidatas Boyce-Codd
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.