Capítulo 3: Álgebra Relacional - Parte 2
Capítulo 3: Álgebra Relacional - Parte 2
Capítulo 3: Álgebra Relacional - Parte 2
Relaciones r, s:
r÷s:
División
Relaciones r, s:
r÷s:
División: ejemplo 1
libro(título,ISBN,editorial,edición)
libroBib(numInv,ISBN,nombreBib)
biblioteca(nombreBib,calle,número)
• Encontrar los títulos de los libros que están en todas las bibliotecas.
• Proceso para hacer una consulta con división
1. Identificar tablas a usar
2. Reescribir consulta en español de modo que quede más claro dónde se usa
división y la división sea más evidente.
3. Identificar partes de la división
A. Escribirlas primero en español
B. Luego pasarlas a AR
4. Usar proyecciones para que partes cumplan con esquemas exigidos por
división.
5. Escribir división, chequearla usando la definición de división y corregirla
6. Hacer la consulta completa en AR que involucra división.
División
Sea q = r ÷ s entonces
– q es la relación más grande que satisface q x s ⊆ r
División: ejemplo 2
course(course id, title, dept name, credits)
student(ID, name, dept name, tot cred)
takes(ID, course id, sec id, semester, year, grade)
• Obtener los estudiantes que han tomado todos los cursos de
Biología.
• Proceso para hacer una consulta con división
1. Identificar tablas a usar
2. Reescribir consulta en español de modo que quede más claro dónde se usa
división y la división sea más evidente.
3. Identificar partes de la división
A. Escribirlas primero en español
B. Luego pasarlas a AR
4. Usar proyecciones para que partes cumplan con esquemas exigidos por
división.
5. Escribir división, chequearla usando la definición de división y corregirla.
6. Hacer la consulta completa en AR que involucra división.
Agregación
Función de Agregación: toma una colección de valores y
retorna un valor simple como resultado.
En AR se consideran las siguientes funciones de agregación:
avg, min, max, sum, count (cantidad de valores).
Hay casos donde debemos eliminar múltipes occurrencias de
un valor antes de computar una función de agregación.
o Si queremos eliminar duplicados usamos los mismos nombres de
función, con la adición de “distinct” al final.
o Ejemplo: countdistinct.
Agregación
• Ejemplo: instructor(ID, name, dept name, salary)
– ¿Cuál es el máximo salario?
– ¿Cuántos departamentos tienen instructores?
– Obtener el máximo salario y la cantidad de departamentos
con instructores
• ¿Cómo se puede hacer para obtener resultados para
las preguntas anteriores?
• Ayuda: usar las funciones de agregación anteriores.
Agregación
• Operación de agregación en AR
F1( A1), F2( A2),…, Fn(An) (E)
o E expresión de AR
o Cada Fi es una función de agregación
o Cada Ai es un nombre de atributo
• Semántica: el resultado tiene una tupla (a1, a2, …, an) donde,
para cada i, ai es el resultado de aplicar la función de
agregación Fi al multiconjunto de valores del atributo Ai en E.
• Ejemplo: instructor(ID, name, dept name, salary)
¿Cuál es el máximo salario?
Agregación
• Operación de agregación en AR
F1( A1), F2( A2),…, Fn(An) (E)
o E expresión de AR
o Cada Fi es una función de agregación
o Cada Ai es un nombre de atributo
• Semántica: el resultado tiene una tupla (a1, a2, …, an) donde,
para cada i, ai es el resultado de aplicar la función de
agregación Fi al multiconjunto de valores del atributo Ai en E.
• Ejemplo: instructor(ID, name, dept name, salary)
¿Cuál es el máximo salario?
max(salario) (instructor)
Agregación
Relación r
sum(c) (r)
Agregación
Relación r
sum(c) (r)
Agregación
• Ejemplo: instructor(ID, name, dept name, salary)
– ¿Cuál es el máximo salario de cada departamento?
– ¿Cuántos instructores tiene cada departamento?
– Obtener para cada departamento el máximo salario y la
cantidad de instructores.
• ¿Cómo se puede hacer para obtener resultados para
las preguntas anteriores?
• Ayuda: ¿cómo usar las funciones de agregación
anteriores?
Agregación
Operación de agregación en AR (caso más complejo)
instructor teaches
ID name dept_name course_id
10101 Srinivasan Comp. Sci. CS-101
12121 Wu Finance FIN-201
Reunión externa a la izquierda
instructor teaches
ID name dept_name course_id
10101 Srinivasan Comp. Sci. CS-101
12121 Wu Finance FIN-201
15151 Mozart Music null
Calcula: Profesores que no enseñan ninguna materia y profesores
que enseñan materia más código de la materia enseñada.
• Es útil para saber a quién hay que asignarle materia para enseñar.
Reuniones Externas