CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No...

89
CC3201-1 BASES DE DATOS O TOÑO 2019 Clase 7: Actualizaciones, Restricciones, Formas Normales Aidan Hogan [email protected]

Transcript of CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No...

Page 1: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

CC3201-1BASES DE DATOS

OTOÑO 2019

Clase 7: Actualizaciones, Restricciones, Formas Normales

Aidan Hogan

[email protected]

Page 2: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Las preguntas de hoy

Pero ¿cómo se pueden crear y actualizar las tablas?

Y ¿cómo se puede saber si es un buen diseño relacional o no?

Page 3: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

SQL: GESTIONAR Y CREAR TABLAS

Capítulo 3.1.1 | Ramakrishnan / Gehrke

Page 4: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

SQL: Esquema

¿Para que sirven los esquemas?

Podemos configurar agrupaciones de tablas usando esquemas …

Page 5: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

SQL: Privilegios de Esquema

Page 6: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

SQL: Crear tablas

Page 7: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

SQL: Borrar tablas

¿Hay que poner el esquema cada vez?

Page 8: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

SQL: Camino de esquema

Seleccionará el primer esquema en el camino.P. ej., si hay y

, leerá de la primera tabla

Page 9: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

SQL: ACTUALIZAR TABLAS

Capítulo 3.1.1 | Ramakrishnan / Gehrke

Page 10: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

SQL: Insertar tuplas

Page 11: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

SQL: Insertar tuplas

Page 12: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

SQL: Insertar tuplas

Page 13: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

SQL: Insertar tuplas

Page 14: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

SQL: Insertar tuplas

Page 15: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

SQL: Insertar tuplas

Page 16: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

SQL: Editar tuplas

Page 17: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

SQL: Actualizar tuplas de otra tabla

Page 18: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

SQL: Borrar tuplas

Page 19: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

SQL: Borrar columnas

Page 20: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

SQL: Crear columnas

Page 21: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

SQL: Modificar columnas

Page 22: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Postgres: Cargar datos

Específico de Postgres

Concatena los datos¿Algún problema aquí?

Page 23: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

SQL: RESTRICCIONES

(Integrity Constraints)

Capítulo 5.7 | Ramakrishnan / Gehrke

Page 24: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Abre una cuenta

Page 25: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Y (por supuesto) hay una base de datos

Page 26: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Modelo Relacional: Restricciones

Restricciones (de integridad):

son restricciones formales

que imponemos a un esquema

que todas sus instancias

deben satisfacer

Page 27: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Restricciones básicas: llaves, nulos, domino

Page 28: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Restricciones básicas: valores por defecto

Page 29: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Restricciones de unicidad

La llave primaria implica una restricción de unicidad. La unicidad representa una llave candidata: se pueden tener varias llaves candidatas pero una sola llave primaria.

Page 30: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Nombrar (y borrar) restricciones

Más fácil cambiar restricciones posteriormente.

Si hay una violación, el mensaje de error será más intuitivo si las restricciones

tienen nombres intuitivos.

Page 31: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Restricciones de llaves foráneas

Cada cuenta en Ingreso tiene que estar en Cuenta.número.

Page 32: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Restricciones de llaves compuestas

Page 33: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Restricciones sobre varias columnas

Page 34: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Restricciones sobre varias tablas

Page 35: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Restricciones sobre varias tablas (!)

¿Por qué la ponemos en Ingreso cuando involucra Gasto igualmente? Por

ejemplo, si agregáramos la milésima tupla (con la misma cuenta y fecha) a Gasto, ¡no tendríamos una violación!

¿Algún problema aquí? …

¿Alguna solución?

Duplicar la restricción en Gasto o …

Page 36: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Asertos: Restricciones independientes

La restricción no depende ni de una tabla ni de la otra.

Rechazará alguna operación en el esquema que violaría la restricción

… pero puede ser más costosa/compleja así.

Page 37: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

¡Garantizar integridad con restricciones!

Page 38: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Postgres no permite consultas anidadas en CHECK ni asertos

(son caros!)

Page 39: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

DEFINIR DOMINIOS Y TIPOS

Page 40: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Crear dominios:

Page 41: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Crear dominios:

Page 42: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Dominios: compatibles con el tipo base

Se pueden comparar valores del domino con otros valores como si fueran del tipo base

Page 43: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Tipos: son distintos a otros tipos

No se pueden comparar valores del nuevo tipo con valores de otros tipos (solo entre sí).

Page 44: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Tipos: son distintos a otros tipos

No se pueden usar funciones del tipo base con valores del nuevo tipo.

Page 45: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Tipos son estándares (en SQL)

Pero Postgres solo soporta tipos compuestos ...

Page 46: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Tipos: un tipo compuesto

Page 47: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Tipos: un tipo compuesto

Page 48: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

FORMAS NORMALES

Capítulo 12 | Ramakrishnan / Gehrke

Page 49: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Todo bien

¿Y si un cliente tiene varios números de teléfono?

Page 50: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

UNF: Forma No Normalizada (UnNormalised Form)

UNF:

Varias multiplicidades de valores en una columna de la tabla

Page 51: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

1NF: Primera Forma Normal (First Normal Form)

1NF:

Un valor en cada celda de la tabla

Page 52: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

1NF: Primera Forma Normal (First Normal Form)

¿Algún problema aquí? …

Page 53: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

1NF: Primera Forma Normal (First Normal Form)

¿Algún problema aquí? …

Redundancia

Pero ¿por qué es un problema? ¿Solo por el espacio? …

Anomalía de actualización:Por ejemplo, se puede actualizar la dirección de Rankine en un

lugar sin actualizar todos los valores

Anomalía de inserción:No podemos insertar un nuevo cliente a la tabla si no tenemos

un número de teléfono

Anomalía de borrado:Si el número de teléfono ahora está invalido, tendremos que

borrar la fila entera con la dirección, etc.

Soluciones con nulos no cuentan aquí.

Page 54: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

1NF: Primera Forma Normal (First Normal Form)

¿La solución? …

Crear otra tabla con rut y fono

Pero ¿cómo podemos definir el problema aquí? …

Page 55: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de
Page 56: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Modelo Relacional: Restricciones (Llaves)

Un conjunto de atributos de una relación

forma una llave candidata

si es una súper llave

y no hay un subconjunto propio de esos atributos

que es una súper llave

Page 57: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Modelo Relacional: Restricciones (Llaves)

¿Hay otra llave candidata?

Probablemente …

… o puede ser …

(si no tenemos un tipo como Gengis Kan)

Page 58: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Modelo Relacional: Restricciones (Llaves)

Un atributo es primo

si está en alguna llave candidata

Page 59: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Modelo Relacional: Restricciones (Dependencias funcionales)

Dada una relación

y dos conjuntos de atributos X, Y

X determina funcionalmente Y

si y solo si

cada valor de X en la relación

tiene asociado un solo valor de Y

Page 60: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Modelo Relacional:Restricciones (Dependencias funcionales)

¿Hay una dependencia funcional aquí?

(al menos aquí)

Page 61: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de
Page 62: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

1NF: Primera Forma Normal

¿La solución? …

Crear otra tabla con rut y fono

Pero ¿cómo podemos definir el problema aquí? …

… pero rut es solo parte de una llave candidata

Asumiendo:

Page 63: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

2NF: Segunda Forma Normal

2NF: Satisface 1NF y …

No existe:

tal que:

A sea un subconjunto propio de una llave candidata

y b sea un atributo no primo.

¿El ejemplo está en la 2NF? …

Depende ...

Page 64: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

2NF: Segunda Forma Normal

2NF: Satisface 1NF y …

No existe:

tal que:

A sea un subconjunto propio de una llave candidata

y b sea un atributo no primo.

¿El ejemplo está en la 2NF? …

Asumiendo:

¡Sí! Todos los atributos son primos. Por ejemplo:

... pero el atributo dirección es primo

Page 65: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

2NF: Segunda Forma Normal

2NF: Satisface 1NF y …

No existe:

tal que:

A sea un subconjunto propio de una llave candidata

y b sea un atributo no primo.

¿El ejemplo está en la 2NF? …

¡No! Por ejemplo:

Asumiendo:

Page 66: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

2NF: Segunda Forma Normal

2NF: Satisface 1NF y …

No existe:

tal que:

A sea un subconjunto propio de una llave candidata

y b sea un atributo no primo.

¿La solución? …

Asumiendo:

Page 67: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

2NF: Segunda Forma Normal

2NF: Satisface 1NF y …

No existe:

tal que:

A sea un subconjunto propio de una llave candidata

y b sea un atributo no primo.

¿El ejemplo está en la 2NF? …

¡Sí! Contacto no puede tener atributos no primos y ...Si no hay atributos no primos

Si no, no hay subconjuntos propios de una llave candidata

Page 68: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

2NF: Segunda Forma Normal

2NF: Satisface 1NF y …

No existe:

tal que:

A sea un subconjunto propio de una llave candidata

y b sea un atributo no primo.

¿El ejemplo está en la 2NF? …

¡Sí!

Asumiendo:

Page 69: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

2NF: Segunda Forma Normal

¿Se pueden tener anomalías? …

¡Sí! Por ejemplo ...

¿Dónde está el problema? …

... pero el atributo cuenta_destino no es primo

Asumiendo:

Page 70: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

3NF: Tercera Forma NormalAsumiendo:

3NF: Satisface la 2NF y …

No existe:

tal que :

z sea no primo

y y

¿El ejemplo está en la 3NF? …

¡No! Por ejemplo:

Page 71: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

3NF: Tercera Forma NormalAsumiendo:

3NF: Satisface la 2NF y …

No existe:

tal que :

z sea no primo

y y

¿La solución? …

Page 72: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

3NF: Tercera Forma Normal

3NF: Satisface la 2NF y …

No existe:

tal que :

z sea no primo

y y

¿El ejemplo está en la 3NF? …

¡Sí!

Asumiendo

Page 73: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

3NF: Tercera Forma Normal

3NF: Satisface la 2NF y …

No existe:

tal que :

z sea no primo

y y

¿El ejemplo está en la 3NF? …

¡No!

Asumiendo

Page 74: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

3NF: Tercera Forma NormalAsumiendo

3NF: Satisface la 2NF y …

No existe:

tal que :

z sea no primo

y y

¿El ejemplo está en la 3NF? …

¡No!

Page 75: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

3NF: Tercera Forma NormalAsumiendo

3NF: Satisface la 2NF y …

No existe:

tal que :

z sea no primo

y y

¿El ejemplo está en la 3NF? …

¡Sí!

Page 76: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

3NF: Tercera Forma Normal

¿Hay una posibilidad de anomalías? …

¡Sí! Por ejemplo ...

Asumiendo

Page 77: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

BCNF: Boyce–Codd

¿Hay una posibilidad de anomalías? …

BCNF: Satisface la 1NF y …

Para cada:

X es una súper llave

o

¿El ejemplo está en la BCNF? …

¡No!

Asumiendo

Page 78: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

BCNF: Boyce–Codd

¿Hay una posibilidad de anomalías? …

BCNF: Satisface la 1NF y …

Para cada:

X es una súper llave

o

¿La solución? …

Asumiendo

Page 79: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

BCNF: Boyce–Codd

¿El ejemplo está en la BCNF? …

¡Sí! Por ejemplo ...Si entonces es una súper llave

Si no, entonces no hay problema.

BCNF: Satisface la 1NF y …

Para cada:

X es una súper llave

o

Page 80: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

BCNF: Boyce–CoddAsumiendo

BCNF: Satisface la 1NF y …

Para cada:

X es una súper llave

o

¿El ejemplo está en la BCNF? …

¡No!

Page 81: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

BCNF: Boyce–CoddAsumiendo

BCNF: Satisface la 1NF y …

Para cada:

X es una súper llave

o

¿Un ejemplo de una anomalía?

Page 82: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

BCNF: Boyce–Codd

¿Cómo podemos rediseñar el modelo para obtener la BCNF?

Asumiendo

Page 83: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

BCNF: Boyce–Codd

Dos tablas: EjecutivoDeCliente y BancoDeEjecutivo

¿Algún problema aquí? …

¿Cómo podemos rediseñar el modelo para obtener la BCNF?

Todavía hay anomalías posibles ...

Asumiendo

Page 84: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

BCNF: Boyce–Codd

Dos tablas: EjecutivoDeCliente y BancoDeEjecutivo

¿Una alternativa? …

¿Cómo podemos rediseñar el modelo para obtener la BCNF?

Usar una llave foránea con la 3NF (la BCNF no siempre es mejor)

Asumiendo

Page 85: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

BCNF: Boyce–Codd

BCNF: Satisface la 1NF y …

Para cada:

X es una súper llave

o

¿Hay formas normales más fuertes que la BCNF? …

Page 86: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

BCNF: Boyce–Codd

BCNF: Satisface la 1NF y …

Para cada:

X es una súper llave

o

¿Hay formas normales más fuertes que la BCNF? …

¡Sí, hay más formas normales! La 4NF, 5NF, 6NF, …Pero las anomalías posibles son cada vez más raras …

… entonces pararemos aquí con BCNF.

Page 87: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Formas Normales

BCNF: Satisface la 1NF y …

Para cada:

X es una súper llave

o

¿Qué piensan ustedes?¿Son útiles las formas normales?

Page 88: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

A veces, los nulos no son tan malos

Page 89: CC3201 Bases de Datosaidanhogan.com/teaching/cc3201-1-2019/lectures/BdD2019...UNF: Forma No Normalizada (UnNormalised Form) UNF: Varias multiplicidades de valores en una columna de

Preguntas?