Sistemas de Datos SQL Básico – Algebra Relacional Algebra Relacional y DML Basico Sistemas de Datos Curso: Ernesto Chinkes Esquema de la clase Operaciones del Algebra Relacional Unarias Binarias Conceptos SQL Conceptos SQL SQL Básico Algebra Relacional y DML Basico Sistemas de Datos Curso: Ernesto Chinkes Operaciones del Algebra Relacional Unarias Relación A Relación A Relación B Binarias Relación C Relación B Algebra Relacional y DML Basico Sistemas de Datos Curso: Ernesto Chinkes Operaciones Operaciones Fundamentales del Algebra Relacional • Selección (σ) • Proyección (Π) • Renombramiento (p) Unarias • Unión (U) • Diferencia (-) • Producto cartesiano (x) Binarias Otras Operaciones • Intersección (∩) • Reunión Natural (⋈) Algebra Relacional y DML Basico Sistemas de Datos Curso: Ernesto Chinkes Operaciones •Operaciones del álgebra relacional extendida • Funciones de Agregación (Count, Sum, Avg, Etc) •Reunión externa completa •Reunión externa por la derecha •Reunión externa por la izquierda Algebra Relacional y DML Basico Sistemas de Datos Curso: Ernesto Chinkes Algebra Relacional – Selección Selección (σ) Permite seleccionar un subconjunto de tuplas de una relación (R), todas aquellas que cumplan la(s) condición(es) P: σP(R) Por Ej: σApellido=Gomez(Alumno) Algebra Relacional y DML Basico Sistemas de Datos Curso: Ernesto Chinkes Algebra Relacional – Proyección Proyección (Π) Permite extraer columnas (atributos) de una relación, dando como resultado un subconjunto vertical de atributos de la relación ΠA , A 1 (R) 2,…, An Por Ej: ΠApellido, Nombre, Numero_Registro(Alumno) Algebra Relacional y DML Basico Sistemas de Datos Curso: Ernesto Chinkes Algebra Relacional – Renombramiento Renombramiento (p) Permite poner nombre a las expresiones del algebra relacional pA , A 1 2,…, An (R) Cliente CLI Algebra Relacional y DML Basico Sistemas de Datos Curso: Ernesto Chinkes Ejemplo Obtener las fechas de las reservas de la escuela con código 5 Relación RESERVA Selección Codigo=5 Proyección de fecha_reserva Resultado Πfecha_reserva(σCodigo_Escuela=5(Reserva) Algebra Relacional y DML Basico Sistemas de Datos Curso: Ernesto Chinkes Algebra Relacional -> SQL 3 SELECT Fecha_Reserva 1 FROM Reserva 2 WHERE Codigo_Escuela = 5 1 Identificación de las Relaciones involucradas 2 Selección (σ) 3 Proyección (Π) σCodigo_Escuela=5(Reserva) Πfecha_reserva (Reserva) Πfecha_reserva(σCodigo_Escuela=5(Reserva) Algebra Relacional y DML Basico Sistemas de Datos Curso: Ernesto Chinkes Algebra Relacional – Unión Unión (U) Retorna el conjunto de tuplas que están en R, o en S, o en ambas. R y S deben ser relaciones compatibles: RUS Por Ej: Alumno U Profesor Algebra Relacional y DML Basico Sistemas de Datos Curso: Ernesto Chinkes Algebra Relacional -> SQL SELECT Cod_Reserva, Fecha FROM Reserva WHERE Fecha = '30/04/2009' UNION Relaciones compatibles: ¾Cantidad de Atributos ¾Dominios Compatibles SELECT Cod_Reserva, Fecha_Hist FROM Reserva_Historica WHERE Fecha_Hist = '01/04/2005' ΠCod_Reserva, Fecha (σFecha = '30/04/2009' (Reserva)) U ΠCod_Reserva, Fecha_Hist (σFecha_Hist = '01/04/2005' (Reserva_Historica)) Algebra Relacional y DML Basico Sistemas de Datos Curso: Ernesto Chinkes Algebra Relacional – Diferencia Diferencia (-) Entrega todas aquellas tuplas que estan en R, pero no en S. R y S deben ser relaciones compatibles: R-S Por Ej: Alumno - Profesor Algebra Relacional y DML Basico Sistemas de Datos Curso: Ernesto Chinkes Algebra Relacional – Intersección Intersección (∩) La intersección, como en Teoría de conjuntos, corresponde al conjunto de todas las tuplas que están en R y en S, siendo R y S relaciones compatibles: R∩S Por Ej: Alumno ∩ Profesor Algebra Relacional y DML Basico Sistemas de Datos Curso: Ernesto Chinkes Algebra Relacional – Producto Cartesiano Producto cartesiano (x) Entrega una relación, cuyo esquema corresponde a una combinación de todas las tuplas de R con cada una de las tuplas de S, y sus atributos corresponden a los de R seguidos por los de S: RxS Por Ej: Alumno x Profesor Algebra Relacional y DML Basico Sistemas de Datos Curso: Ernesto Chinkes Algebra Relacional – Reunión Natural Reunión Natural (⋈): Hace un producto cartesiano de sus dos argumentos y realiza una selección forzando la igualdad de atributos que aparecen en ambas relaciones, eliminando repetidos: R⋈S Por Ej: Alumno ⋈ (Alumno.DNI=Profesor.DNI) Profesor Algebra Relacional y DML Basico Sistemas de Datos Curso: Ernesto Chinkes SQL Sintaxis BNF (Backus Naur Form) SELECT [ALL|DISTINCT] {nbColumna [, …]} FROM {expresión-tabla} WHERE {condición-de-búsqueda} Algebra Relacional y DML Basico Sistemas de Datos Curso: Ernesto Chinkes SQL Básico: SELECT Especificación de tabla Condición de selección Algebra Relacional y DML Basico Sistemas de Datos Curso: Ernesto Chinkes SQL Básico: Consultas de Resumen Algebra Relacional y DML Basico Sistemas de Datos Curso: Ernesto Chinkes Algebra Relacional -> SQL SELECT tel.Telefono Producto cartesiano (x) FROM Escuela esc, Telefono_Escuela tel WHERE esc.codigo_escuela = tel.codigo_escuela Πtelefono (σesc.codigo_escuela = tel.codigo_escuela (pesc(Escuela) x ptel(Telefono_Escuela))) Reunión Natural (⋈) EQUIVALENTES 1. Producto cartesiano (x) 2. Selección (σ) forzando la igualdad de atributos que aparecen en ambas relaciones, eliminando repetidos Reunión Natural (⋈) SELECT tel.Telefono FROM Escuela esc INNER JOIN Telefono_Escuela tel ON esc.codigo_escuela = tel.codigo_escuela Πtelefono (pesc(Escuela) ⋈ (esc.codigo_escuela = tel.codigo_escuela ) ptel(Telefono_Escuela)) Algebra Relacional y DML Basico Sistemas de Datos Curso: Ernesto Chinkes SELECT - Partes y Orden de resolución SQL Álgebra Orden deRelacional Resolución 6 Proyección SELECT apellido, MAX (Nro_Registro) de Relaciones (renombramiento, reunión 1 Definición FROM ALUMNO natural, etc.) 2 Selección Like ‘P%’ WHERE apellido 3 GROUP BY apellido 4 (*) > 3 HAVING COUNT 5 ORDER BY apellido