Ejemplos de Cálculo Relacional Fuentes http://www-db.stanford.edu/~ullman/fcdb.html Fundamentals of Database Systems, Elmasri y Navathe Database System Concepts,Silberschatz, Korth, Sudarshan Cálculo Relacional Lenguaje de consulta equivalente Algebra Declarativo Dos enfoques: Orientado a Tuplas: variables toman valores sobre tuplas (SQL) Orientado a Dominios: variables toman valores sobre Dominios (QBE) Elementos del lenguaje: variables, constantes, operadores de comparación, cuantificadores y conectivos lógicos Cálculo Relacional Subconjuntos de la Lógica de Primer Orden Expresiones en cálculo son fórmulas Respuestas son asignaciones a las variables que hacen verdadera la fórmula Cálculo Orientado a Tuplas Consulta {T | p(T)} p(T) es una fórmula en la que aparece la variable de tupla variable T Respuesta conjunto de todas las tuplas T que hacen verdadera la fórmula p(T) Cálculo Orientado a Tuplas Fórmula atómicas : para recuperar tuplas de las relaciones o comparar valores Compuestas: combinación de fórmulas y conectivos lógicos Ejemplos: • p∨ ∨q • ∃r (q(r)) • r.a ≠ s.a Ejemplos Profesores(cod-p, nomb, categoria, facultad) Asignaturas(cod-a, nombre, creditos) Matricula(cod-e, cod-a, grupo, calificación) Programación (cod-a, cod-p, cod-s ,grupo, horario, aula) Estudiante(cod-e, nombre, sexo, programa, promedio) Selección y Proyección Encuentre estudiantes con promedio mayor 4 {e |e ∈Estudiante ∧ e.promedio > 4} Encontrar nombres de profesores de Ingeniería que sean titulares o asociados {p | p∈ Profesor ∧ p.facultad=“ingenieria” ∧ p.categoría = (“titular” ∨ “asociado”)} Joins Listar las asignaturas que ofrece el profesor “Pedro Pérez” {a | a∈ ∈Asignatura ∧ ∃c(c∈ ∈Programación ∧ c.cod-a=a.cod-a ∧ ∃p (p ∈Profesor ∧ p.nombre = “Pedro Pérez” ∧ p.cod-p= c.cod-p)}