CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional...

68
CC3201-1 BASES DE D ATOS PRIMAVERA 2016 Clase 6: Cálculo Relacional & SQL (I) Aidan Hogan [email protected]

Transcript of CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional...

Page 1: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

CC3201-1BASES DE DATOS

PRIMAVERA 2016

Clase 6: Cálculo Relacional & SQL (I)

Aidan Hogan

[email protected]

Page 2: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

RESUMEN DE LOS CONTENIDOS ANTERIORES

Page 3: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Renombramiento

Sea R una relación.

devuelve una nueva relación

igual a R pero con Ai renombrado a Aj

Formalmente es necesario, pero no vamos a utilizar esta forma aquí. Utilizaremos subíndices simples para distinguir nombres de atributos en un producto para evitar ser innecesariamente verbosos. Implícitamente,

cuando usemos subíndices, implica el uso de este operador.

Actualizada.

Page 4: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Deberíamos utilizar renombramiento aquí

¿Cuáles son las pares de nombres de

cervezas donde la primera cerveza

sea más fuerte que la segunda?

Page 5: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Operadores unarios vs. binarios

• Operadores unarios:

– Mencionan sola una relación:

• Operadores binarios:

– Mencionan dos relaciones:

¿Se necesitan todos estos operadores?

Page 6: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Modelando Intersección con otros operadores

¿Cómo se puede hacerla?

Page 7: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Modelando Intersección con otros operadores

¿Cómo se puede hacerla?

Page 8: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

El Álgebra Relacional (Mínima / Clásica)

Page 9: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Extensiones del Álgebra Relacional

• Extensiones sintácticasSe puede modelar estas extensiones con el álgebra clásica (son como abreviaturas)

• Varios tipos de join, división (), etc.

• Extensiones algebraicasNo se puede modelar estas extensiones con el álgebra clásica (facilitan nuevos tipos de consultas)

• Agregación, transitividad, etc.

• Extensiones semánticasIntroducen cambios en las definiciones del modelo

• Tablas ordenadas, tablas con duplicados, nulos, etc.

Page 10: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

¿Cómo se puede representar esta pregunta en el álgebra relacional?

Formalizando demasiadas preguntas

¿Cuáles marcas de vino tienen un

vino de cada región de vinos?

Una tarea.

Page 11: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se
Page 12: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

La intuición: los pares que no existen

¿Cómo se pueden computar los pares que no existen?

Page 13: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

La solución completa …

Page 14: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

División (una extensión del algebra clásica)

¿Cuáles marcas de vino tienen un

vino de cada región de vinos?

Page 15: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

EL CÁLCULO RELACIONAL(En breve)

Capítulo 4.3 Database Management Systems,Ramakrishnan / Gehrke (Third Edition)

Page 16: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Maravilloso …

… ¿hay otra forma de

formalizar consultas?

… pero …

Page 17: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

El Cálculo Relacional: Tuplas

¿Cuáles cervezas hay?

Page 18: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

El Cálculo Relacional: Selección

¿Cuáles cervezas de la marca

“Austral” hay?

Page 19: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

El Cálculo Relacional: Selección (>, ∧, etc.)

¿Cuáles ales son

más fuertes que 4,8?

Page 20: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

El Cálculo Relacional: Proyección

Un paso atrás …

¿Cuáles tipos de cerveza hay?

Page 21: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

El Cálculo Relacional:Selección + Proyección

Y ¿cuáles tipos tienen una cerveza

más fuerte que 4,8?

Page 22: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

El Cálculo Relacional: Selección + Proyección + Intersección

Estoy curioso ¿cuáles marcas de

cerveza tienen un ale y un lager?

Page 23: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

El Cálculo Relacional: Selección + Proyección + Diferencia

Y ¿cuáles marcas de cervezas

tienen un ale pero no un lager?

Page 24: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

El Cálculo Relacional: Selección + Proyección + Unión

Y ¿cuáles marcas de cervezas

tienen un ale o un lager?

¿En el cálculo?

Page 25: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

El Cálculo Relacional: Selección + Proyección + Unión

Y ¿cuáles marcas de cervezas

tienen un ale o un lager?

Page 26: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

El Cálculo Relacional: Join

¿Cuáles son los pares de nombres de

cervezas donde la primera cerveza

sea más fuerte que la segunda?

Page 27: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

El Cálculo Relacional: División

¿Cuáles marcas de vino tienen un

vino de cada región de vinos?

¿En el cálculo?

Page 28: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

El Cálculo Relacional: División

¿Cuáles marcas de vino tienen un

vino de cada región de vinos?

Page 29: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

El Cálculo Relacional (de tuplas)

• Fórmulas atómicas:

• Una fórmula puede ser

– Una fórmula atómica o

– Sean (recursivamente) p y q formulas:

Page 30: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Consultas (no) seguras

• Sintácticamente correcta pero …

• Pide todas las tuplas que no estén en Cerveza (pero que satisfagan el esquema de Cerveza)

– ¡Puede ser infinito! (“No segura”)

Una consulta es segura si puede generar

todas las soluciones considerando solo las

constantes en los datos y la consulta.

Una definición aproximada

Page 31: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

El álgebra versus el cálculo (seguro)

… tienen la misma expresividad.

Page 32: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

El álgebra versus el cálculo (seguro)

… tienen la misma expresividad.

¿Qué piensan ustedes?¿Cuál es mejor … el álgebra o el cálculo?

Page 33: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

STRUCTURED QUERY LANGUAGE(SQL)

El lenguaje estructurado de consulta

Capítulo 5 Database Management Systems,Ramakrishnan / Gehrke (Third Edition)

Page 34: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

El álgebra y el cálculo

… ¿cómo se pueden expresar estos lenguajes matemáticos en un lenguaje computacional?

Page 35: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Los inicios de SQL …

Conceptualizado por

Donald Chamberlin (IBM) y Raymond F. Boyce (IBM)

en 1974

Page 36: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

1974 …

Page 37: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

La evolución de SQL

Page 38: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Sistemas de bases de datos (con SQL)

http://db-engines.com/en/ranking/relational+dbms

¡Varios sistemas pueden tener varias interpretaciones del estándar de SQL!

Pero normalmente el “core” de SQL es compatible en los sistemas más populares.

Page 39: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

SQL en alto nivel

• Lenguaje de Manipulación de Datos (LMD)– o DML: Data Manipulation Language en inglés

– Actualizar filas, consultar tablas, etc.

• Lenguaje de Definición de Datos (LDD)– o DDL: Data Definition Language en inglés

– Crear y definir tablas

• Disparadores (triggers), transacciones, seguridad, SQL dinámico, etcétera

Page 40: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Los planetas

Page 41: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Mientras tanto en Plutón …

Page 42: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Forma básica de una consulta de SQL

Page 43: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Proyectar todo: SELECT *

Page 44: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

¡Cuidado!

Page 45: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Proyectar algo: SELECT [v1, …, vn]

Page 46: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Seleccionar filas: WHERE (=|<>|<|<=|etc.)

Page 47: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Seleccionar filas: WHERE … AND … (OR|NOT)

Page 48: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Duplicados: SELECT

¿Algún problema aquí?

Page 49: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se
Page 50: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Distinto: SELECT DISTINCT

SQL “torce las reglas” del álgebra relacional a veces, por ejemplo, para permitir duplicados,

orden, extensiones, etcétera.

¿Qué piensan ustedes?¿Duplicados en tablas/resultados son útiles?

Page 51: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Ordenar resultados: ORDER BY [DESC|ASC]

Page 52: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Reunir tablas: JOIN

Page 53: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Alias: AS Actualizada.

Page 54: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Alias: tablas Actualizada.

Page 55: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Unión (distinta): UNION

Page 56: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Unión (con alias): UNION + AS

Page 57: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Unión (bruta): UNION ALL

Page 58: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Diferencia: EXCEPT

Page 59: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Intersección: INTERSECT

Page 60: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Patrones simples: LIKE

Page 61: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Patrones simples: NOT LIKE

Page 62: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

LIKE

¡Distinción de mayúsculas depende de

la configuración de un sistema en particular!

Page 63: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Abreviatura: IN

Page 64: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Abreviatura: BETWEEN

Page 65: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Una tarea

• Pensar en la forma de representar estas consultas usando el álgebra y el cálculo

Page 66: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

LA PROXIMA VEZ, CONTINUAREMOS CON MÁS:

STRUCTURED QUERY LANGAUGE(SQL)

Capítulo 4 & 5, Database Management Systems,Ramakrishnan / Gehrke (Third Edition)

Page 67: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

El horario:

• Tendremos clases:

– El jueves (6 de octubre)

• Un lab: Cálculo y SQL

– El lunes (9 de octubre)

– El martes (11 de octubre)

• Una clase: SQL II

Page 68: CC3201-1 B DATOS P 2016 Clase 6: Cálculo Relacional ...aidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016...Extensiones del Álgebra Relacional •Extensiones sintácticas Se

Preguntas?