101
CC3201-1 BASES DE D ATOS PRIMAVERA 2016 Clase 5: Álgebra Relacional Aidan Hogan [email protected]

CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

CC3201-1BASES DE DATOS

PRIMAVERA 2016

Clase 5: Álgebra Relacional

Aidan Hogan

[email protected]

Page 2: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

RESUMEN DE LOS CONTENIDOS ANTERIORES

Page 3: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Modelo Relacional: Conceptos

• Relación: A cada tabla la llamamos una relación

– En este caso: Cervezas

• Atributo: A cada columna la llamamos un atributo

– En este caso: nombre, tipo, grados, ciudad origen

• Tupla: A cada fila, la llamamos una tupla

– En este caso, p.e.,

Page 4: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Modelo Relacional: Instancia

• Una instancia de un esquema es un conjunto de tuplas para cada relación de ese esquema

No hay orden en las filasNo se puede tener filas duplicadas

Page 5: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿PARA QUÉ NECESITAMOSEL ÁLGEBRA RELACIONAL?

Page 6: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿Para qué necesitamos tablas?

Page 7: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿… para colgarlas en la paredy reflexionar sobre ellas?

(Puede ser.)

Una obra maravillosa …

… personalmente yo definiría el atributo

‘ml’ como parte de la llave porque si hay

el mismo tipo de trago con distintos

volúmenes entonces tendremos problemas.

… pero …

Page 8: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

… pero más probablemente queramoscontestar preguntas prácticas!

(Por ejemplo.)

¿Cuál es la forma más económica de

emborracharme esta noche?

Page 9: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Consideremos algunas preguntas

¿Cuáles cervezas hay?

Page 10: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Consideremos algunas preguntas

¿Cuáles cervezas de la marca

“Austral” hay?

Page 11: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Consideremos algunas preguntas

¿Cuáles ales hay?

Page 12: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Consideremos algunas preguntas

4,5? Pff. ¿cuáles ales son

más fuertes que 4,8?

Page 13: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Consideremos algunas preguntas

Un paso atrás …

¿Cuáles tipos de cerveza hay?

Page 14: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Consideremos algunas preguntas

Y ¿cuáles tipos tienen una cerveza

más fuerte que 4,8?

Page 15: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Consideremos muchas preguntas

Pero odio cerveza.

¿Cuáles marcas, años y regiones

de vino hay?

Page 16: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Consideremos muchas preguntas

Y ¿cuáles vinos son del tipo

o Carménère o Syrah?

Page 17: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Consideremos demasiadas preguntas

Estoy curioso ¿cuáles marcas de

cerveza tienen un ale y un lager?

Page 18: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Consideremos demasiadas preguntas

Y ¿cuáles marcas de cerveza tienen

un ale pero no un lager?

Page 19: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Consideremos demasiadas preguntas

Y ¿cuáles marcas de cerveza tienen

un ale o un lager?

Page 20: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Consideremos demasiadas preguntas

Mi madre es de Maipo. ¿Cuáles

marcas de trago son de Maipo?

Page 21: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Consideremos demasiadas preguntas

Y ¿hay vinos con el mismo precio

que cervezas?

Page 22: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Consideremos demasiadas preguntas

Y ¿marcas de vino que tienen un

vino de cada región de vinos?

Page 23: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Consideremos demasiadas preguntas

¿Cuántos tipos de cerveza hay?

Page 24: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿Consideremos todas las preguntas?

¿Cuántas cervezas hay por tipo?

Page 25: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿Consideremos todas las preguntas?

¿Qué son las cervezas

en orden ascendente de grados?

Page 26: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿Consideremos todas las preguntas?

¡Se acabó! ¿Cuál es el trago con el

mejor cociente entre volumen total

de alcohol y precio?

Page 27: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿Consideremos la última pregunta?

¿Debería comprar este vino?

Page 28: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿Cuáles cervezas “Austral” hay?

¿Cuáles ales hay?

4,5? Pff. ¿cuáles ales son

más fuertes que 4,8?

Un paso atrás …

¿Cuáles tipos de cerveza hay?

Y ¿cuáles tipos tienen una cerveza

más fuerte que 6,0?¡Ay! Entonces ¿qué volúmenes de

botellas de lager hay?

Pero odio cerveza.

¿Cuáles marcas, años y regiones

de vino hay?Y ¿cuáles vinos son del tipo

o Carménère o Syrah?

Mi madre es de Maipo. ¿cuáles

marcas de trago son de Maipo?

Estoy curioso ¿cuáles marcas de

cerveza tienen un ale y un lager?

Y ¿hay vinos con el mismo precio

que cervezas?

Estoy curioso ¿cuáles marcas de

cerveza tienen un ale y un lager?¿Como se puede generalizar y

formalizar estas tipas de preguntas

sobre el modelo relacional?

Una pregunta inteligente (de Codd)

Page 29: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Como se puede generalizar estas preguntas …

(Las respuestas son tablas.)

Page 30: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Una idea inteligente (de Codd)

¿Cuáles cervezas “Austral” hay?

¿Cuáles ales hay?

4,5? Pff. ¿cuáles ales son

más fuertes que 4,8?

Un paso atrás …

¿Cuáles tipos de cerveza hay?

Y ¿cuáles tipos tienen una cerveza

más fuerte que 6,0?¡Ay! Entonces ¿qué volúmenes de

botellas de lager hay?

Pero odio cerveza.

¿Cuáles marcas, años y regiones

de vino hay?Y ¿cuáles vinos son del tipo

o Carménère o Syrah?

Mi madre es de Maipo. ¿cuáles

marcas de tragos son de Maipo?

Estoy curioso ¿cuáles marcas de

cervezas tienen un ale y un lager?

Estoy curioso ¿cuáles marcas de

cervezas tienen un ale y un lager?

Y ¿hay vinos con el mismo precio

que cervezas?

¿Como se puede generalizar y

formalizar estas tipas de preguntas

sobre el modelo relacional?

Entonces ¿podríamos formalizar

preguntas/consultas sobre tablas

como una secuencia de

operadores que transformen una

tabla a otra?

Page 31: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

EL ÁLGEBRA RELACIONAL (CLÁSICA)

Capítulo 4.1, 4.2.1–4.2.3 Database Management Systems,Ramakrishnan / Gehrke (Third Edition)

Page 32: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Formalizando algunas preguntas

¿Cuáles cervezas hay?

Page 33: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Formalizando algunas preguntas

¿Cuáles cervezas hay?

Page 34: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Relaciones

R es una relación (una referencia a una tabla).

Devuelve las filas de la tabla.

Con el mismo significado que en el modelo relacional (el nombre de una tabla),

pero no que en el modelo E/R (una relación que conecta múltiples entidades).

Page 35: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Referencia a tablas

¿Cuáles cervezas hay?

Page 36: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Formalizando algunas preguntas

¿Cuáles cervezas de la marca

“Austral” hay?

¿Se necesita un operador nuevo aquí?

Page 37: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¡Sí! Selección (de tuplas/filas)

Sea R una relación (una referencia a una tabla).

devuelve una nueva relación

que deja solo las tuplas en R que

satisfacen la condición

Las condiciones pueden utilizar Se puede combinar condiciones con

Page 38: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¡Sí! Selección (de tuplas/filas)

¿Cuáles cervezas de la marca

“Austral” hay?

Page 39: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿Se necesita un operador nuevo aquí?

Formalizando algunas preguntas

¿Cuáles ales hay?

Page 40: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¡No! Selección basta

¿Cuáles ales hay?

Page 41: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Formalizando algunas preguntas

¿Se necesita un operador nuevo aquí?

4,5? Pff. ¿cuáles ales son

más fuertes que 4,8?

Page 42: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¡No! Selección basta (con > y ∧)

4,5? Pff. ¿cuáles ales son

más fuertes que 4,8?

Page 43: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Formalizando algunas preguntas

¿Se necesita un operador nuevo aquí?

Un paso atrás …

¿Cuáles tipos de cerveza hay?

Page 44: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¡Sí! Proyección (de atributos/columnas)

Sea R una relación (una referencia a una tabla).

devuelve una nueva relación

que deja solo los atributos A1 , … , Ande R.

Page 45: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Proyección

Un paso atrás …

¿Cuáles tipos de cerveza hay?

Page 46: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Formalizando algunas preguntas

¿Se necesita un operador nuevo aquí?

Y ¿cuáles tipos tienen una cerveza

más fuerte que 4,8?

Page 47: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Selección + Proyección

Y ¿cuáles tipos tienen una cerveza

más fuerte que 4,8?

Page 48: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Selección + Proyección

Y ¿cuáles tipos tienen una cerveza

más fuerte que 4,8?

Page 49: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Selección + Proyección

Y ¿cuáles tipos tienen una cerveza

más fuerte que 4,8?

¿Y ? No! Así la proyección va a borrar el atributo grados

antes que la selección puede verlo. (¡Error!)

Page 50: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Formalizando muchas preguntas

¿Se necesita un operador nuevo aquí?

Y ¿cuáles marcas de vino tienen un

tipo o Carménère o Syrah?

Page 51: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Selección + Proyección

Y ¿cuáles marcas de vino tienen un

tipo o Carménère o Syrah?

Page 52: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Selección + Proyección

Y ¿cuáles marcas de vino tienen un

tipo o Carménère o Syrah?

¿Y ? ¡Sí, funciona igual!

Page 53: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿Se necesita un operador nuevo aquí?

Formalizando demasiadas preguntas

Estoy curioso ¿cuáles marcas de

cerveza tienen un ale y un lager?

Page 54: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¡Sí! Intersección (de relaciones)

Sean R1 y R2 relaciones.

devuelve una nueva relación

con todas las tuplas en R1 y R2.

R1 y R2 deben tener los mismos atributos.

Page 55: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Selección + Proyección + Intersección

Estoy curioso ¿cuáles marcas de

cerveza tienen un ale y un lager?

Page 56: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Selección + Proyección + Intersección

Estoy curioso ¿cuáles marcas de

cerveza tienen un ale y un lager?

Page 57: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Selección + Proyección + Intersección

Estoy curioso ¿cuáles marcas de

cerveza tienen un ale y un lager?

¡No!(Resultado vacío)

Page 58: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿Se necesita un operador nuevo aquí?

Formalizando demasiadas preguntas

Y ¿cuáles marcas de cerveza tienen

un ale pero no un lager?

Page 59: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¡Sí! Diferencia

Sean R1 y R2 relaciones.

devuelve una nueva relación

con las tuplas en R1 que no estén en R2.

R1 y R2 deben tener los mismos atributos.

Page 60: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Selección + Proyección + Diferencia

Y ¿cuáles marcas de cerveza tienen

un ale pero no un lager?

Page 61: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Selección + Proyección + Diferencia

Y ¿cuáles marcas de cerveza tienen

un ale pero no un lager?

Page 62: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Selección + Proyección + Diferencia

Estoy curioso ¿cuáles marcas de

cerveza tienen un ale y un lager?

¡No!(Todos los ales)

Page 63: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿Se necesita un operador nuevo aquí?

Formalizando demasiadas preguntas

Y ¿cuáles marcas de cerveza tienen

un ale o un lager?

Page 64: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿Se necesita un operador nuevo aquí?

Formalizando demasiadas preguntas

Y ¿cuáles marcas de cerveza tienen

un ale o un lager?

Page 65: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Selección + Proyección

Y ¿cuáles marcas de cerveza tienen

un ale o un lager?

Page 66: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿Se necesita un operador nuevo aquí?

Formalizando demasiadas preguntas

Mi madre es de Maipo. ¿Cuáles

marcas de trago son de Maipo?

Page 67: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¡Sí! Unión (de tablas)

Sean R1 y R2 relaciones.

devuelve una nueva relación

con todas las tuplas en R1 o R2 (o ambas).

R1 y R2 deben tener los mismos atributos.

Page 68: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Selección + Proyección + Unión

Mi madre es de Maipo. ¿Cuáles

marcas de trago son de Maipo?

Page 69: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Selección + Proyección + Unión

Mi madre es de Maipo. ¿Cuáles

marcas de trago son de Maipo?

¡No! Los atributos no son los mismos en ambas relaciones.

(¡Error!)

Page 70: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿Se necesita un operador nuevo aquí?

Formalizando demasiadas preguntas

¿Cuáles son las pares de nombres de

cervezas donde la primera cerveza

sea más fuerte que la segunda?

Page 71: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¡Sí! Producto cartesiano (o producto cruz)

Sean R1 y R2 relaciones.

devuelve una nueva relación

con todas las tuplas

tal que

R1 y R2 no pueden tener atributos en comunes.

Page 72: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¡También! 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, implique el uso de este operador.

Actualizada.

Page 73: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Selección + Proyección + Producto

¿Cuáles son las pares de nombres de

cervezas donde la primera cerveza

sea más fuerte que la segunda?

Page 74: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿Se necesita un operador nuevo aquí?

Formalizando demasiadas preguntas

Y ¿hay vinos con el mismo precio

que cervezas?

Page 75: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Selección + Producto

Y ¿hay vinos con el mismo precio

que cervezas?

Page 76: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Join (Reuniones)

En estricto rigor, no es un operador, porque es cubierto por los operadores de producto y selección, pero join es tan común se abrevia así.

Page 77: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Join = Selección + Producto

¿Cuáles son las pares de nombres de

cervezas donde la primera cerveza

sea más fuerte que la segunda?

Page 78: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Join = Selección + Producto

Y ¿hay vinos con el mismo precio

que cervezas?

Page 79: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿Se necesita un operador nuevo aquí?

Formalizando demasiadas preguntas

Y ¿marcas de vino que tienen un

vino de cada región de vinos?

Una tarea.

Page 80: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Operadores unarios vs. binarios

• Operadores unarios:

– Mencionan sola una relación:

• Operadores binarios:

– Mencionan dos relaciones:

¿Se necesitan todos estos operadores?

Actualizado.

Page 81: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Modelando Intersección con otros operadores

¿Cómo se puede hacerla?

Actualizado.

Page 82: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Modelando Intersección con otros operadores

¿Cómo se puede hacerla?

Actualizado.

Page 83: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

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

Page 84: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿PARA QUÉ NECESITAMOS EL ÁLGEBRA RELACIONAL?

Page 85: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿… para colgarla en la paredy reflexionar sobre ella?

(Puede ser.)

Una obra maravillosa …

… no entiendo nada.

… pero …

Page 86: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿Para qué tenemos el álgebra?

• Para definir preguntas en una forma general

• Para definir preguntas sin ambigüedad

• Provee el cimiento de lenguajes de consulta (como SQL)

• Optimizaciones …

Actualizado.

Page 87: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Ejemplo de una optimización

Y ¿cuáles marcas de vino tienen un

tipo o Carménère o Syrah?

Actualizado.

Page 88: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

NO EN EL ÁLGEBRA RELACIONAL (CLÁSICO)

Page 89: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Consideremos demasiadas preguntas

¿Cuántos tipos de cerveza hay?En SQL.

Page 90: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿Consideremos todas las preguntas?

¿Cuántas cervezas hay por tipo?En SQL.

Page 91: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿Consideremos todas las preguntas?

¿Qué son las cervezas

en orden ascendente de grados?

En SQL.

Page 92: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿Consideremos todas las preguntas?

¡Se acabó! ¿Cuál es el trago con el

mejor cociente entre volumen total

de alcohol y precio?

En SQL.

Page 93: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿Consideremos la última pregunta?

¿Debería comprar este vino?No en SQL.

Page 94: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

¿Cuál es el significado de la vida?No en SQL.

¿Una más?

Page 95: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

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 nuevas tipas de consulta)

• Agregación, transitividad, etc.

• Extensiones semánticasIntroducen cambios en las definiciones del modelo

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

Actualizado.

Page 96: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Extensiones de la Álgebra Relacional

• Extensiones sintácticasSe puede modelar estas extensiones con la á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 nuevas tipas de consulta)

• Agregación, transitividad, etc.

• Extensiones semánticasIntroducen cambios en las definiciones del modelo

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

Actualizado.

Solo hablaremos del álgebra clásica en este curso.

Pero veremos algunas de estas cosas específicamente en el contexto de SQL, como, por ejemplo, más tipos de

join, agregación, ordenamiento, duplicados (multiconjuntos o “bags”), nulos, etc.).

Page 97: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

LA PROXIMA VEZ, CONTINUAREMOS CON UN POCO DE:

EL CÁLCULO RELACIONAL

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

Page 98: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

LA PROXIMA VEZ, EMPEZAREMOS CON EL:

STRUCTURED QUERY LANGUAGE(SQL)

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

Page 99: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

El horario:

• Tendremos clases:

– El jueves (29 de septiembre)

• Un lab: Álgebra Relacional

– El lunes (3 de octubre)

• Una sesión auxiliar: Álgebra Relacional

– El martes (4 de octubre)

• Una clase: Cálculo y SQL

Page 100: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Controles

Dos controles:

1. 24 de octubre (lunes)

2. 1 de diciembre (jueves) [actualizada]

Se puede eximir el examen con una nota ≥ 5,5 en los controles

Page 101: CC3201-1 B DATOS P 2016 Clase 5: Álgebra Relacionalaidanhogan.com/teaching/cc3201-1-2016/lectures/BdD2016-05.pdf · Modelo Relacional: Conceptos •Relación: A cada tabla la llamamos

Preguntas?

¿Preguntas?