Algebra Relacional y SQL

Anuncio
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
Descargar