CC BASES DE DATOS OTOÑO 2018

Documentos relacionados
CC BASES DE DATOS OTOÑO Clase 6: Actualizaciones, Restricciones, Formas Normales. Aidan Hogan

CC BASES DE DATOS PRIMAVERA Clase 11: Integridad, Transacciones, ACID (I) Aidan Hogan

CC BASES DE DATOS PRIMAVERA Clase 2: Modelo Relacional. Aidan Hogan

CC BASES DE DATOS OTOÑO 2018

CC BASES DE DATOS OTOÑO Clase 2: Modelo Relacional / ER. Aidan Hogan

CC BASES DE DATOS PRIMAVERA Clase 4: Modelo Relacional (III) Aidan Hogan

CC BASES DE DATOS OTOÑO 2018

CC BASES DE DATOS PRIMAVERA Clase 9: SQL (IV) Una nueva esperanza Bases de datos (inter)activas. Aidan Hogan

CC BASES DE DATOS OTOÑO Clase 3: ER II y Álgebra Relacional. Aidan Hogan

CC BASES DE DATOS PRIMAVERA Clase 3: Modelo Relacional (II) Aidan Hogan

CC BASES DE DATOS OTOÑO 2018

CC BASES DE DATOS PRIMAVERA Clase 9: SQL (V) Bases de datos (inter)activas. Aidan Hogan

Modelo Relacional. El modelo relacional...1 El modelo entidad relación (que vimos ayer) es un modelo conceptual que sirve

Fundamentos de Bases de Datos Facultad de Ciencias UNAM

CC BASES DE DATOS PRIMAVERA Clase 7: SQL (II) Aidan Hogan

CC BASES DE DATOS OTOÑO Clase 5: SQL (II) Aidan Hogan

CC BASES DE DATOS OTOÑO 2018

CC BASES DE DATOS PRIMAVERA Clase 5: Álgebra Relacional. Aidan Hogan

CC BASES DE DATOS OTOÑO 2018

CC BASES DE DATOS PRIMAVERA Clase 6: Cálculo Relacional & SQL (I) Aidan Hogan

Fundamentos de Normalización

Bases de Datos y Sistemas de Información. Fundamentos de Normalización

CC BASES DE DATOS OTOÑO 2018

Carlos A. Olarte Ligaduras de Integridad y Restricciones sobre la BD

Diseño Lógico Modelo Relacional. Ges3ón y Modelación de Datos María Constanza Pabón

Teoría de la Normalización

Ing. Yim Isaias Apestegui Florentino

División Académica de Informática y Sistemas

CC BASES DE DATOS OTOÑO Clase 10: Transacciones y ACID. Aidan Hogan

CC BASES DE DATOS PRIMAVERA Clase 13: Datos Semiestructurados: Arboles. Aidan Hogan

Guía del Curso Curso de Bases de Datos Relacionales

Formas Normales. - Facultad de Ingeniería Curso : Fundamentos de Bases de Datos Tema 1. Introducción y Conceptos Generales 1

Bases de Datos OTROS ASPECTOS MODELO E-R

CC BASES DE DATOS OTOÑO 2018

Tema 2. DISEÑO LÓGICO DE BASES DE DATOS Parte 2

Bases de datos 1. Teórico: Normalización

[3.3] Restricciones. Unidad 3) Modelo Relacional Gestión de Bases de Datos, ciclo de ASIR

Modelo relacional. El modelo relacional

Bases de datos Unidad 4 Modelo Relacional

TEORÍA DE LA NORMALIZACIÓN GESTIÓN Y MODELACIÓN DE DATOS

BB.DD. relacionales. BB. DD. Relacionales T Dpto. Lenguajes y Sistemas Informáticos. Universidad de Alicante

CC BASES DE DATOS OTOÑO Clase 11: Datos Semiestructurados: Arboles. Aidan Hogan

Capítulo 2: Modelo relacional (Parte 2) Dr. Edwin E. González Carril SICI-4015: Archivo y base de datos agosto 2017

MODELO RELACIONAL. Andrés Moreno S. Modelo Relacional. Separación, Modelo Relacional

AUTOR NACIONALIDAD COD_LIBRO TÍTULO EDITORIAL AÑO

Esquema Lógico FOROFO. EQUIPO (nombre:cadena, ciudad:cadena, país:cadena) CP (nombre) CAj (ciudad, país) CIUDAD

Normalización. CC20A 1 Computación II Auxiliar 10 Iván Bustamante. Clase Auxiliar 10 1

Bases de datos 1. Teórico: Normalización

Diseño de Bases de Datos

El Modelo Relacional. Carlos A. Olarte BDI

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

El Modelo Relacional de Bases de Datos

Diseño de Bases de Datos. Normalización

Mayo Fecha de elaboración: 28 de mayo de 2010 Fecha de última actualización: F1016 Modelado, diseño y manejo de bases de datos 1/11

Universidad Veracruzana Facultad de Estadística e Informática

Tema 7. Diseño de bases de datos relacionales.

CONOCIMIENTOS DE CONCEPTOS BASES DE DATOS

CC BASES DE DATOS PRIMAVERA Clase 1: Introducción. Aidan Hogan

Modelo de Datos Relacional. Tecnólogo en Informática, sede Paysandú Bases de Datos 1

Bases de Datos Relacionales y SQL: Una Introducción

Diseño Lógico Específico. Diseño Lógico Tema 13

Mayo Fecha de elaboración: 28/05/2010 Fecha de última actualización: 16/06/2010. F1016 Modelado, diseño y manejo de bases de datos 1/12

PRESTAMO LE# LI# NOMBRE CIUDAD NºHAB T_LIBRO TITULO TIPO

Terminología Equivalente

Diseño de Bases de Datos. Normalización

Modelo Entidad Relación

Unidad 2. Bases de Datos Relacionales

Asignatura: Bases de datos Código: Año académico: Centro: Escuela Politécnica Superior Departamento: Lenguajes y Computación Área:

Tema 4 DISEÑO LÓGICO: EL MODELO RELACIONAL

Normalización. Fund. Bases de Datos Ing. Felipe Alanís González -ITD- 1

Guía práctica SQL. (c) Francisco Charte Ojeda

Diseño lógico El modelo Relacional. José Muñoz Jimeno Febrero 2015

4. FUNDAMENTOS DEL MODELO RELACIONAL

Dep. Multivaluadas y Cuarta F.N.

INTEGRIDAD REFERENCIAL

Diseño de Base de Datos

Normalización. Universidad Nacional de Colombia Facultad de Ingeniería

TEMA 6: LENGUAJE DE DEFINICIÓN DE DATOS (LDD)

INDICE Parte I. Conceptos Básicos Capitulo 1. Sistema de información y Bases de Datos Capitulo 2. El Sistema de Gestión de la Base de Datos

Base de Datos. Docente: Ing. Francisco Rodríguez BASE DATOS. Resultados. Internet. Requerimientos

Teoría formal de la normalización de esquemas relacionales. Definición formal de las tres primeras Formas Normales

Introducción a SQL (DDL)

Normalización de Modelos Relacionales

ESCUELA SUPERIOR POLITECNICA DEL LITORAL

NORMALIZACIÓN BASES DE DATOS. Prof. Karen Quiroga

Base de Datos. Grupo 404, Ingeniería en Computación MCC Omar

CC BASES DE DATOS OTOÑO Clase 13: Conclusión. Aidan Hogan

BASES DE DATOS (IG18 Semipresencial) El Modelo Relacional Reglas de Integridad

Tema 2: Diseño de Bases de Datos (Diseño Lógico)

Normalización de Bases de Datos Relacionales

Catedra de Base de Datos

CC BASES DE DATOS PRIMAVERA Clase 12: Implementación de ACID. Aidan Hogan

Técnicas de Modelamiento de Datos

Para el siguiente trabajo utilizamos IBM Data Studio Version Un ABM completo de una tabla. 1.a) Alta de una sucursal.

Transcripción:

CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 7: Actualizaciones, Restricciones, Formas Normales Aidan Hogan aidhog@gmail.com

Las preguntas de hoy Pero cómo se puede 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

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

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: Borrar tuplas

SQL: Borrar columnas

SQL: Crear columnas

SQL: Modificar columnas

Postgres: Cargar datos Algún problema aquí? Especifico de Postgres Concatena los datos

(Integrity Constraints) SQL: RESTRICCIONES 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 intuitiva 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 de ni una tabla ni 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 puede comparar valores del domino con otros valores como fuera 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 suporte tipos compuestos...

Tipos: un tipo compuesto

Tipos: un tipo compuesto

FORMAS NORMALES Capítulo 12 Ramakrishnan / Gehrke

Todo bien Pero si un cliente puede tener varios números de teléfono?

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

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

Todo bien con sola la 1NF? Algún problema aquí?

Todo bien con sola la 1NF? No Soluciones con nulos no cuentan aquí. Algún problema aquí? Redundancia Pero por qué es un problema? Sólo 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 hasta tengamos 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.

Todo bien con sola la 1NF? No 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) Dado 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í)

Todo bien con sola la 1NF? No La solución? Crear otra tabla con rut y fono Pero cómo podemos definir el problema aquí? pero rut es sóla parte de una llave candidata

2NF: Segunda Forma Normal (Second Normal Form) No existe: 2NF: Satisface 1NF y tal que: A sea un subconjunto propio de una llave candidata y b sea un atributo no primo.

2NF: Segunda Forma Normal (Se asume que haya una persona por cuenta) Está en la 2NF? Sí!

Todo bien con sola la 2NF? (Se asume que haya una persona por cuenta) Está en la 2NF? Sí! Se pueden tener anomalías?

Todo bien con sola la 2NF? No (Se asume que haya una persona por cuenta) Está en la 2NF? Sí! Se pueden tener anomalías? Sí! Por ejemplo... Dónde está el problema?.. pero el atributo cuenta_destina no es primo

3NF: Tercera Forma Normal (Third Normal Form) (Se asume que haya una persona por cuenta) No existe: 3NF: Satisface la 2NF y tal que : z sea no primo y y

Todo bien con sola la 3NF? (Se asume que haya una persona por cuenta) Está en la 3NF? No! Porque existe donde y no es primo y

Todo bien con sola la 3NF? (Se asume que haya una persona por cuenta y haya una cuenta por persona) Está en la 3NF ahora? Sí! no cuenta ahora porque rut_destino es un atributo primo (dado que es una llave candidata) Hay una posibilidad de anomalías?

Todo bien con sola la 3NF? No (Se asume que haya una persona por cuenta y haya una cuenta por persona) Está en la 3NF ahora? Sí! no cuenta ahora porque rut_destino es un atributo primo dado que es una llave candidata Hay una posibilidad de anomalías? Sí! Por ejemplo...

BCNF: Forma Normal de Boyce Codd (Se asume que haya una persona por cuenta y haya una cuenta por persona) Para cada: BCNF: Satisface la 1NF y X es una súper llave o

Todo bien con la BCNF? (Se asume que un cliente tenga un ejecutivo por banco y dos bancos no puedan tener el mismo ejecutivo) Está en la BCNF? No! Porque existe... donde { ejecutivo_rut } no es una súper llave y Un ejemplo de una anomalía?

Todo bien con la BCNF? (Se asume que un cliente tenga un ejecutivo por banco y dos bancos no puedan tener el mismo ejecutivo) Cómo podemos rediseñar el modelo para obtener la BCNF?

Todo bien con la BCNF? (Se asume que un cliente tenga un ejecutivo por banco y dos bancos no puedan tener el mismo ejecutivo) 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...

Todo bien con la BCNF? (Se asume que un cliente tenga un ejecutivo por banco y dos bancos no puedan tener el mismo ejecutivo) 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)

Todo bien con la BCNF? Hay formas normales más fuertes que BCNF? Para cada: BCNF: Satisface la 1NF y X es una súper llave o

Todo bien con la BCNF? 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 más y más raras entonces pararemos aquí con BCNF. Para cada: BCNF: Satisface la 1NF y X es una súper llave o

Formas Normales Qué piensan ustedes? Son útiles las formas normales? Siempre hay que obtener (al menos) la BCNF? Para cada: BCNF: Satisface la 1NF y X es una súper llave o

A veces, los nulos no son tan malos

Calendario Lab: 17 de abril (gestionar tablas) Proyecto: 23 de abril Proyecto: 25 de abril Clase: 30 de abril (optimización con Sebastián) Lab: 2 de mayo (optimización)...

Preguntas?