Aidan Hogan aidhog@gmail.com CC3201-1 Bases de Datos Otoño 2019 Clase 7: Actualizaciones, Restricciones, Formas Normales Aidan.

Slides:



Advertisements
Presentaciones similares
IBD Clase 13.
Advertisements

Bases de Datos I UNIVERSIDAD DEL VALLE. Contenido 5. Diseño de Sistemas de Bases de Datos  Diseño relacional  Formas normales  Proceso de creación.
Base de Datos I – Ing. Mary Carlota Bernal J. BASE DE DATOS I Normalización.
Plan de clase Base de datos. Actividades  5:00-5:20 Retroalimentación  5:20-6:30 Ejercicios  6:30-7:00 Lectura apuntes  7:00-7:30 Receso  :00.
Normalización Consiste en designar y aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad- relación al modelo relacional.
Normalizacion Sesión 3 Dr. Ing. Lenin Herrera. Contenido Que es la Normalizacion Dependencias funcionales Formas normales   1FN   2FN   3FN  
Primera Forma Normal La regla de la Primera Forma Normal establece que las columnas repetidas deben eliminarse y colocarse en tablas separadas. Poner la.
Conferencia 12. Temas Avanzados de Integridad de Bases de Datos.
CC Bases de Datos Otoño Clase 8: SQL (IV) Acceso programático
Aidan Hogan CC Bases de Datos Primavera 2016 Clase 10: SQL (V) El Hacker Contraataca Acceso programático Aidan Hogan
CC Bases de Datos Otoño 2017 Clase 3: ER II y Álgebra Relacional
Modelo Entidad-Relación
SQL: Structured Query Language
INFORMÁTICA MÉDICA Juramento Hipocrático Material Complementario
Aidan Hogan CC Bases de Datos Primavera 2016 Clase 11: Integridad, Transacciones, ACID (I) Aidan Hogan
Conceptos a Base de Datos
Dependencias Funcionales
METODOLOGÍA DE SISTEMAS
Base de Datos Conjunto de información, la cual ha sido organizada y presentada para servir un propósito específico.
Lineamientos informales para un buen diseño
CC Bases de Datos Primavera Clase 12: Implementación de ACID
Conferencia 2. Modelo Relacional. Teoría de la Normalización.
Lineamientos para un buen diseño de base de datos
SQL: Structured Query Language
Stored Procedures Firebird.
Paul Leger Formas Normales Paul Leger
Normalización Unidad 1.
SQL Prof. Martín Contreras.
Técnicas y Herramientas de Computación
NORMALIZACION MsC (c) Esp. Alexis Ovany Torres Ch.
SQL 2: Structured Query Language
SQL: structured Query Language
Conferencia 6. Modelación de BD. ERStudio 6.0.1
Conferencia 4. Normalización. Forma Normal de Boyce – Codd (FNBC)
Lenguajes de programación
EL MODELO RELACIONAL Creado por Edgar Codd, 1970:
Arquitectura de una Base de Datos
Restricciones de integridad en el modelo relacional
TRABAJO BASE DE DATOS CARLOS MARTINEZ 7º3
Fecha: 25 de noviembre del 2013
Hotel “La Posada de Don Juan”
BASE DE DATOS relacional
MODELO RELACIONAL.
Diseño de bases de datos relacionales
Taller de Bases de Datos Ingeniería en Sistemas Computacionales Clave de la asignatura: SCA-1025 (Créditos) SATCA1: 0 – 4 – 4.
Normalización de la Base de Datos.
NORMALIZACION MsC (c) Esp. Alexis Ovany Torres Ch.
Dependencias Funcionales
Teoría Relacional Modelo Relacional Líder en Ciencia y Tecnología.
Bases de datos Introducción.
CC Bases de Datos Otoño Clase 3: Modelo Entidad-Relación (II)
DATOS Y GRAFICOS.
Unidad V :- Integridad de datos.
Sea la ecuación diferencial lineal de orden “n” y de coeficientes variables
CC Bases de Datos Otoño Clase 8: SQL: Acceso Programático,
Generaciones de Bases de Datos
BASES DE DATOS II.
Base de datos simples, relaciones Cardinalidad Claves.
MODELADO DE DATOS Tema 2: Normalizar un diseño de bases de datos.
CC Bases de Datos Otoño Clase 5: El Cálculo Relacional + SQL (I)
Indice ¿Qué es un Buyer Persona? ...…………………………………………………………. Slide 3
CC Bases de Datos Otoño Clase 3: Modelo Entidad-Relación (II)
CC Bases de Datos Otoño Clase 10: SQL: Vistas y Disparadores
CC Bases de Datos Otoño Clase 9: SQL: Acceso Programático,
CC Bases de Datos Otoño 2019 Clase 11: Transacciones y ACID
CC Bases de Datos Otoño 2019 Clase 4: El Álgebra Relacional
Integridad de Datos Relacional
ALGEBRA RELACIONAL UNIDAD 3 ALGEBRA RELACIONAL. INTRODUCCIÓN Se forma a partir de la matemática formal Creada por Edgar Frank Codd en 1972 Concede comportamineto.
BASES DE DATOS NORMALIZACION. Normalización  ¿Qué es la normalización?  Es la aplicación de un conjunto de reglas que permite aprobar la construcción.
Base de Datos Ing. Ricardo Tillero UNIDAD 3: NORMALIZACIÓN.
Transcripción de la presentación:

Aidan Hogan aidhog@gmail.com CC3201-1 Bases de Datos Otoño 2019 Clase 7: Actualizaciones, Restricciones, Formas Normales Aidan Hogan aidhog@gmail.com

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? …

SQL: Gestionar y crear tablas Capítulo 3.1.1 | Ramakrishnan / Gehrke

SQL: Esquema ¿Para que sirven los esquemas? Podemos configurar agrupaciones de tablas usando esquemas …

SQL: Privilegios de Esquema

SQL: Crear tablas

¿Hay que poner el esquema cada vez? SQL: Borrar tablas ¿Hay que poner el esquema cada vez? …

Seleccionará el primer esquema en el camino. SQL: Camino de esquema Seleccionará el primer esquema en el camino. P. ej., si hay SistemaSolar.Aterrizaje y public.Aterrizaje, leerá de la primera tabla

SQL: Actualizar tablas Capítulo 3.1.1 | Ramakrishnan / Gehrke

SQL: Insertar tuplas

SQL: Insertar tuplas

SQL: Insertar tuplas

SQL: Insertar tuplas

SQL: Insertar tuplas

SQL: Insertar tuplas

SQL: Editar tuplas

SQL: Actualizar tuplas de otra tabla

SQL: Borrar tuplas

SQL: Borrar columnas

SQL: Crear columnas

SQL: Modificar columnas

Postgres: Cargar datos Específico de Postgres ¿Algún problema aquí? … Concatena los datos

SQL: Restricciones (Integrity Constraints) Capítulo 5.7 | Ramakrishnan / Gehrke

Abre una cuenta

Y (por supuesto) hay una base de datos

Modelo Relacional: Restricciones Restricciones (de integridad): son restricciones formales que imponemos a un esquema que todas sus instancias deben satisfacer

Restricciones básicas: llaves, nulos, domino

Restricciones básicas: valores por defecto

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.

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.

Restricciones de llaves foráneas Cada cuenta en Ingreso tiene que estar en Cuenta.número.

Restricciones de llaves compuestas

Restricciones sobre varias columnas

Restricciones sobre varias tablas

Restricciones sobre varias tablas (!) ¿Algún problema aquí? … ¿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! ¿Alguna solución? Duplicar la restricción en Gasto o …

Asertos: Restricciones independientes Rechazará alguna operación en el esquema que violaría la restricción La restricción no depende ni de una tabla ni de la otra. … pero puede ser más costosa/compleja así.

¡Garantizar integridad con restricciones!

Postgres no permite consultas anidadas en CHECK ni asertos (son caros!)

Definir dominios y tipos

Crear dominios: VARCHAR

Crear dominios: INTEGER

Dominios: compatibles con el tipo base Se pueden comparar valores del domino con otros valores como si fueran del tipo base

Tipos: son distintos a otros tipos No se pueden comparar valores del nuevo tipo con valores de otros tipos (solo entre sí).

Tipos: son distintos a otros tipos No se pueden usar funciones del tipo base con valores del nuevo tipo.

Tipos son estándares (en SQL) Pero Postgres solo soporta tipos compuestos ...

Tipos: un tipo compuesto

Tipos: un tipo compuesto

Formas normales Capítulo 12 | Ramakrishnan / Gehrke

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

UNF: Forma No Normalizada (UnNormalised Form) Varias multiplicidades de valores en una columna de la tabla

1NF: Primera Forma Normal (First Normal Form) Un valor en cada celda de la tabla

1NF: Primera Forma Normal (First Normal Form) ¿Algún problema aquí? …

1NF: Primera Forma Normal (First Normal Form) ¿Algún problema aquí? … Soluciones con nulos no cuentan 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.

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í? … …

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

Modelo Relacional: Restricciones (Llaves) ¿Hay otra llave candidata? Probablemente … … o puede ser … (si no tenemos un tipo como Gengis Kan)

Modelo Relacional: Restricciones (Llaves) Un atributo es primo si está en alguna llave candidata

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

Modelo Relacional: Restricciones (Dependencias funcionales) ¿Hay una dependencia funcional aquí? (al menos aquí)

1NF: Primera Forma Normal Asumiendo: ¿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

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 ...

2NF: Segunda Forma Normal Asumiendo: 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í! Todos los atributos son primos. Por ejemplo: ... pero el atributo dirección es primo

2NF: Segunda Forma Normal Asumiendo: 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:

2NF: Segunda Forma Normal Asumiendo: 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? …

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

2NF: Segunda Forma Normal Asumiendo: 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í!

2NF: Segunda Forma Normal Asumiendo: ¿Se pueden tener anomalías? … ¡Sí! Por ejemplo ... ¿Dónde está el problema? … ... pero el atributo cuenta_destino no es primo

3NF: Tercera Forma Normal Asumiendo: 3NF: Satisface la 2NF y … No existe: tal que : z sea no primo y y ¿El ejemplo está en la 3NF? … ¡No! Por ejemplo:

3NF: Tercera Forma Normal Asumiendo: 3NF: Satisface la 2NF y … No existe: tal que : z sea no primo y y ¿La solución? …

3NF: Tercera Forma Normal Asumiendo 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í!

3NF: Tercera Forma Normal Asumiendo 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!

3NF: Tercera Forma Normal Asumiendo 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!

3NF: Tercera Forma Normal Asumiendo 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í!

3NF: Tercera Forma Normal Asumiendo 3NF: Tercera Forma Normal ¿Hay una posibilidad de anomalías? … ¡Sí! Por ejemplo ...

BCNF: Boyce–Codd BCNF: Satisface la 1NF y … Para cada: Asumiendo BCNF: Boyce–Codd BCNF: Satisface la 1NF y … Para cada: X es una súper llave o ¿Hay una posibilidad de anomalías? … ¿El ejemplo está en la BCNF? … ¡No!

BCNF: Boyce–Codd BCNF: Satisface la 1NF y … Para cada: Asumiendo BCNF: Boyce–Codd BCNF: Satisface la 1NF y … Para cada: X es una súper llave o ¿Hay una posibilidad de anomalías? … ¿La solución? …

BCNF: Boyce–Codd BCNF: Satisface la 1NF y … Para cada: X es una súper llave o ¿El ejemplo está en la BCNF? … ¡Sí! Por ejemplo ... Si entonces es una súper llave Si no, entonces no hay problema.

BCNF: Boyce–Codd BCNF: Satisface la 1NF y … Para cada: Asumiendo BCNF: Boyce–Codd BCNF: Satisface la 1NF y … Para cada: X es una súper llave o ¿El ejemplo está en la BCNF? … ¡No!

BCNF: Boyce–Codd BCNF: Satisface la 1NF y … Para cada: Asumiendo BCNF: Boyce–Codd BCNF: Satisface la 1NF y … Para cada: X es una súper llave o ¿Un ejemplo de una anomalía?

¿Cómo podemos rediseñar el modelo para obtener la BCNF? Asumiendo BCNF: Boyce–Codd ¿Cómo podemos rediseñar el modelo para obtener la BCNF?

BCNF: Boyce–Codd Asumiendo ¿Cómo podemos rediseñar el modelo para obtener la BCNF? Dos tablas: EjecutivoDeCliente y BancoDeEjecutivo ¿Algún problema aquí? … Todavía hay anomalías posibles ...

BCNF: Boyce–Codd Asumiendo ¿Cómo podemos rediseñar el modelo para obtener la BCNF? Dos tablas: EjecutivoDeCliente y BancoDeEjecutivo ¿Una alternativa? … Usar una llave foránea con la 3NF (la BCNF no siempre es mejor)

BCNF: Boyce–Codd BCNF: Satisface la 1NF y … Para cada: ¿Hay formas normales más fuertes que la BCNF? … BCNF: Satisface la 1NF y … Para cada: X es una súper llave o

BCNF: Boyce–Codd BCNF: Satisface la 1NF y … Para cada: ¿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.  BCNF: Satisface la 1NF y … Para cada: X es una súper llave o

Formas Normales ¿Qué piensan ustedes? ¿Son útiles las formas normales? BCNF: Satisface la 1NF y … Para cada: X es una súper llave o

A veces, los nulos no son tan malos

Preguntas?