Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso...
-
Upload
montserrat-pinto-blazquez -
Category
Documents
-
view
220 -
download
0
Transcript of Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso...
![Page 1: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/1.jpg)
Bases de Datos 1
Prof. Daniel Obando Fuentes
![Page 2: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/2.jpg)
Optimizando el diseño• Normalización: Proceso mediante el cual una base de datos es
diseñada de modo que se remueven las redundancias y se incrementa la claridad de la organización de los datos.
• Es un proceso recursivo• Busca que cada tabla llegue a su HNF (Highest Normal Form)• Reduce el número de posibles anomalías• Ventajas
• Hace el diseño escalable• Incrementa la eficiencia • Reduce el espacio de almacenamiento• Protege la integridad de los datos
• Desventajas• Es un dolor de h…cabeza
![Page 3: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/3.jpg)
ANOMALÍAS
Sucursal Empresa Tfno CIF Un. Prod Precio Proveedor
1 C. Inglés 193 CI 12 P1 123 Agro
2 C. Inglés 294 CI 18 P1 123 Agro
2 C. Inglés 294 CI 7 P2 827 Telna
2 C. Inglés 294 CI 86 P3 123 Agro
2 C. Inglés 294 CI 45 P6 123 Agro
2 C. Inglés 294 CI 98 P2 827 Telna
1 Galerías 185 CG 103 P2 123 Agro
1 Galerías 185 CG 40 P5 308 Xcon
2 Galerías 200 CG 27 P7 126 Agro
![Page 4: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/4.jpg)
ANOMALÍAS
• Inserción• Si Agro saca un nuevo product PX, no se podría inserter ya que no se
conocen datos como Empresa o Tfno
• Actualización• Si P1 sube a 200, habría que modificar 2 tuplas
• Borrado• Si se quiere eliminar la sucursal DOS de Galerías, se borrará la única
referencia al producto P7
![Page 5: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/5.jpg)
DEPENDENCIAS FUNCIONALES
• Una dependencia funcional es una conexión entre uno o más atributos. Por ejemplo si se conoce el valor de DNI tiene una conexión con Apellido o Nombre .
• El atributo principal es llamado DETERMINANTE• Las dependencias funcionales del sistema se escriben utilizando una
flecha, de la siguiente manera:• FechaDeNacimiento Edad
• X Y
![Page 6: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/6.jpg)
AXIOMAS DE ARMSTRONG• Dependencia Funcional Reflexiva o Completa:
• Si Y está incluído en X entonces X Y
• DNI nombre
• Dependencia Funcional Aumentativa:• X Y entonces XZ YZ
• DNI nombre entonces DNI,Dirección nombre, dirección
• Dependencia Funcional Transitiva:• Sean X, Y, Z tres atributos (o grupos de atributos) de la misma entidad. Si Y depende
funcionalmente de X y Z de Y, pero X no depende funcionalmente de Y, se dice entonces que Z depende transitivamente de X. Simbólicamente sería:
• X Y, Y Z entonces X Z
• FechaDeNacimiento Edad
• Edad Conducir
• FechaDeNacimiento Edad Conducir
![Page 7: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/7.jpg)
PROPIEDADES DEDUCIDAS
• Unión• x y, x z entonces x yz
• Pseudo-transitiva• x y, wy z entonces wx z
• Composición• A B, C D entonces A,C B,D
• Descomposición• x y, z está incluido en y entonces x z
![Page 8: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/8.jpg)
DEPENDENCIAS FUNCIONALES
A B C D E
a b z w q
e b r w p
a d z w t
e d r w q
a f z s t
e f r s t
• A C• C A• B D• A,B E
![Page 9: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/9.jpg)
Formas Normales• 1NF, 2NF, 3NF
• Atributos no key dependen solo del primary key• 4NF y 5NF
• Representación de relaciones 1:M y M:M• 6NF
• Si hay más de 2 PK’s en una tabla, crear tablas aparte con estas
![Page 10: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/10.jpg)
DE DEPENDENCIAS A RELACIONES
• Si A->B y B->A, entonces B y A deben estar en la misma tabla• Si A,B -> C pero C -/> A,B, entonces A-/>C ó B-/>C. (2NF)
• Si A->C y C->A entonces A y C deben estar en una table aparte
• Si A->B y B->C, entonces A->C (3NF)
• B->C deberían estar en una tabla aparte.
• Si A->B y C->D, A y C deben ser PKS en distintas tablas (BYNC)
![Page 11: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/11.jpg)
ID Cliente Nombre Apellido Teléfono123 Rachel Ingram 555-861-2025456 James Wright 555-403-1659
555-776-4100789 Cesar Dure 555-808-9633
1NF• Cada celda de la tabla debe contener solo un dato, y no puede haber filas
duplicadas.
• Ie: Una valor por columna
![Page 12: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/12.jpg)
1NF
ID Cliente Nombre Apellido Teléfono 1 Teléfono 2 Teléfono 3
123 Rachel Ingram 555-861-2025
456 James Wright 555-403-1659
555-776-4100
789 Cesar Dure 555-808-9633
![Page 13: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/13.jpg)
1NF
ID Cliente Nombre Apellido123 Rachel Ingram456 James Wright
789 Cesar Dure
ID ID Cliente Teléfono1 123 555-861-2025
2 456 555-403-1659
3 456 555-776-4100
4 789 555-808-9633
![Page 14: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/14.jpg)
2NF• Dada una clave primaria y cualquier atributo que no sea un
constituyente de la clave primaria, el atributo no clave depende de toda la clave primaria en vez de solo de una parte de ella.
• Todas las columnas que no sean PK deben depender funcionalmente de manera complete de la PK
• Cumple con 1NFID curso ID Semestre Aula Nombre Curso
IT101 2014-1 100 Programming
IT101 2014-2 100 Programming
IT102 2014-1 200 DatabasesIT102 2013-1 150 DatabasesIT103 2014-2 120 Web Design
![Page 15: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/15.jpg)
2NF• ID Curso -> Nombre Curso• Nombre Curso -> ID Curso• ID Semestre -/> Nombre Curso
ID curso ID Semestre Aula Nombre Curso
IT101 2014-1 100 Programming
IT101 2014-2 100 Programming
IT102 2014-1 200 DatabasesIT102 2013-1 150 DatabasesIT103 2014-2 120 Web Design
![Page 16: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/16.jpg)
2NF
ID curso ID Semestre Aula
IT101 2014-1 100IT101 2014-2 100IT102 2014-1 200IT102 2013-1 150IT103 2014-2 120
ID curso Nombre Curso
IT101 ProgrammingIT102 DatabasesIT103 Web Design
![Page 17: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/17.jpg)
3NF•Cada columna de la tabla se relaciona solo con el primary key de la tabla.•Ningún atributo que no sea PK depende transitivamente de la PK•Cumple con 2NF
ID curso ID Semestre
Aula Id Profesor Nombre Profesor
IT101 2014-1 100 332 Mr Jones
IT101 2014-2 100 332 Mr Jones
IT102 2014-1 200 495 Mr Bentley
IT102 2013-1 150 332 Mr Jones
IT103 2014-2 120 242 Mr Smith
![Page 18: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/18.jpg)
3NF•ID Curso, ID Semestre -> Id Profesor•ID Profesor -> Nombre Profesor•Entonces: ID Curso, ID Semestre -> Nombre Profesor
• Ojo: ID Curso -> Id Profesor -> Nombre Profesor NO se cumpleID curso ID
SemestreAula Id Profesor Nombre
Profesor
IT101 2014-1 100 332 Mr Jones
IT101 2014-2 100 332 Mr Jones
IT102 2014-1 200 495 Mr Bentley
IT102 2013-1 150 332 Mr Jones
IT103 2014-2 120 242 Mr Smith
![Page 19: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/19.jpg)
3NF
ID curso ID Semestre Aula Id Profesor
IT101 2014-1 100 332IT101 2014-2 100 332IT102 2014-1 200 495IT102 2013-1 150 332IT103 2014-2 120 242
Id Profesor Nombre Profesor
332 Mr Jones
495 Mr Bentley
242 Mr Smith
![Page 20: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/20.jpg)
BOYCE-CODD NF (BCNF)• En una relación, todo determinante es una PK• Si A->B y C->D, A y C deben ser PKS en distintas tablas
N. Estudiante
Id Curso N. Curso Id Profesor N. Profesor
Gómez 100 Mate I 1 AriasGómez 200 Física 2 FloresPérez 100 Mate I 1 AriasPérez 300 Álgebra 3 Sánchez
Ramos 200 Física 2 FloresRamos 100 Mate I 4 García
![Page 21: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/21.jpg)
BCNF• Id Profesor -> N. Profesor• Id Curso -> N. Curso
Id Profesor N. Profesor
1 Arias2 Flores3 Sánchez
Id Curso N. Curso
100 Mate I200 Física300 Álgebra
![Page 22: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/22.jpg)
4NF• Las tablas no pueden tener dependencias multivalor en PKs
• Si A,B -> C dónde A,B,C son PK, se debe separar la tabla.• No se recomiendan PKs de más de 2 columnas• Cumple con 3NF
Restaurant Pizza Variety Delivery Area
A1 Pizza Thick Crust Springfield
A1 Pizza Thick Crust Shelbyville
A1 Pizza Thick Crust Capital City
A1 Pizza Stuffed Crust Springfield
A1 Pizza Stuffed Crust Shelbyville
A1 Pizza Stuffed Crust Capital City
Elite Pizza Thin Crust Capital City
Elite Pizza Stuffed Crust Capital City
Vincenzo's Pizza Thick Crust Springfield
Vincenzo's Pizza Thick Crust Shelbyville
Vincenzo's Pizza Thin Crust Springfield
Vincenzo's Pizza Thin Crust Shelbyville
![Page 23: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/23.jpg)
4NFRestaurant Pizza Variety
A1 Pizza Thick Crust
A1 Pizza Stuffed Crust
Elite Pizza Thin Crust
Elite Pizza Stuffed Crust
Vincenzo's Pizza Thick Crust
Vincenzo's Pizza Thin Crust
Restaurant Delivery Area
A1 Pizza Springfield
A1 Pizza Shelbyville
A1 Pizza Capital City
Elite Pizza Capital City
Vincenzo's Pizza Springfield
Vincenzo's Pizza Shelbyville
![Page 24: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/24.jpg)
5NF (PROJECTION-JOIN)• No deben haber dependencias cíclicas en llaves compuestas
• A->B,C, B->A,C, C->A,B, donde A,B,C son PKs• Cumple con 4NF• Problema: Liz Claiborne empieza a vender Jeans
Buyer vendor Ítem
Sally Liz Claiborne BlousesMary Liz Claiborne BlousesSally Jordach JeansMary Jordach JeansSally Jordach Sneakers
![Page 25: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/25.jpg)
5NFBuyer Vendor
Sally Liz Claiborne
Mary Liz Claiborne
Sally Jordach
Mary Jordach
Buyer Item
Sally Blouses
Mary Blouses
Sally Jeans
Mary Jeans
Sally Sneakers
Vendor Ítem
Liz Claiborne Blouses
Liz Claiborne Jeans
Jordach Jeans
Jordach Sneakers
![Page 26: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/26.jpg)
6NF
ID Estudiante
Nombre Estudiante Id Libro Nombre Libro Días Préstamo
1 B. Ruiz 10 C++ 52 C. Borges 11 PHP 33 K. Navas 12 Java 22 C. Borges 13 SQL 51 B Ruiz 14 C# 3
• Relaciones M:M deben tener tablas intermedias.• Cumple con 5NF
![Page 27: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/27.jpg)
6NFID Estudiante Nombre Estudiante
1 B. Ruiz2 C. Borges3 K. Navas2 C. Borges1 B. Ruiz
Id Libro Nombre Libro10 C++11 PHP12 Java13 SQL14 C#
ID Estudiante Id Libro Días Préstamo
1 10 52 11 33 12 22 13 51 14 3
![Page 28: Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso mediante el cual una base de datos es diseñada de modo que.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5665b4b81a28abb57c938106/html5/thumbnails/28.jpg)
PRÁCTICA: APLIQUE 3NF A LA SIGUIENTE TABLA
nss nombre puesto salario emails
111 Juan Pérez Jefe de Área 3000 [email protected]; [email protected]
222 José Sánchez Administrativo 1500 [email protected]
333 Ana Díaz Administrativo 1500 [email protected]; [email protected]