Bases de Datos 1 Prof. Daniel Obando Fuentes. Optimizando el diseño Normalización: Proceso...

28
Bases de Datos 1 Prof. Daniel Obando Fuentes

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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]