SQL Básico – Algebra Relacional

Anuncio
Sistemas de Datos
Curso: Ernesto Chinkes
SQL Básico – Algebra
Relacional
Sistemas de Datos
Curso: Ernesto Chinkes
Modelo Relacional
„
Conceptos
„
„
„
Relación
Esquema
Operaciones del Algebra Relacional
„
„
„
„
„
Selección
Proyección
Unión
Diferencia
Producto Cartesiano
Sistemas de Datos
Curso: Ernesto Chinkes
Algebra Relacional
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)
Sistemas de Datos
Curso: Ernesto Chinkes
Algebra Relacional
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)
Sistemas de Datos
Curso: Ernesto Chinkes
Algebra Relacional
Unión (U)
Retorna el conjunto de tuplas que estan en
R, o en S, o en ambas. R y S deben ser
relaciones compatibles:
RUS
Por Ej:
Alumno U Profesor
Sistemas de Datos
Curso: Ernesto Chinkes
Algebra Relacional
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
Sistemas de Datos
Curso: Ernesto Chinkes
Algebra Relacional
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
Sistemas de Datos
Curso: Ernesto Chinkes
Algebra Relacional
„
Otras Operaciones
„
„
Intersección de Conjuntos
Reunión natural
Sistemas de Datos
Curso: Ernesto Chinkes
Otras Operaciones
Intersección (∩)
La intersección, como en Teoría de conjuntos,
corresponde al conjunto de todas las tuplas que
estan en R y en S, siendo R y S relaciones
compatibles:
R∩S
Por Ej:
Alumno ∩ Profesor
Sistemas de Datos
Curso: Ernesto Chinkes
Otras Operaciones
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
Sistemas de Datos
Curso: Ernesto Chinkes
Algebra Relacional
„
Operaciones del álgebra relacional
extendida
„
„
„
„
„
Agregación (Count, Sum, Avg, Etc)
Reunión externa
Reunión externa completa
Reunión externa por la derecha
Reunión externa por la izquierda
Sistemas de Datos
Curso: Ernesto Chinkes
Modelo de Ejemplo - Casas
Trabajamos con tres relaciones:
Sistemas de Datos
Curso: Ernesto Chinkes
Selección
Listar la calle y el número de
las casas.
En algebra relacional,
hacemos la proyección
de Calle y Numero
de la relación Casa
En SQL, escribimos:
SELECT Calle, Numero
FROM Casa
La tabla luego del FROM
representa la relación
sobre la que hacemos
la proyección
La lista que sigue al SELECT
nos marca los atributos
que proyectamos
Sistemas de Datos
Curso: Ernesto Chinkes
Selección
Listar todas las casas
de la calle Moreno
En algebra relacional,
hacemos la selección
en la relación Casa
donde Calle=“Moreno”
En SQL, escribimos:
SELECT *
FROM Casa
WHERE Calle=‘Moreno’
Π Calle, Numero, Valor (Casa)
La tabla luego del FROM
representa la relación
sobre la que hacemos
la proyección
La condición que sigue al
WHERE representa
el predicado de la selección
Sistemas de Datos
Curso: Ernesto Chinkes
Selección
Listar los numeros de las
casas de la calle Moreno
En algebra relacional,
hacemos la selección
en la relación Casa
donde Calle=“Moreno”
y la proyección del
atributo Numero
En SQL, escribimos:
SELECT Numero
FROM Casa
WHERE Calle=‘Moreno’
σ Calle=“Moreno” (Casa)
La tabla luego del FROM
representa la relación
sobre la que hacemos
la selección y la proyección
La condición que sigue al
WHERE representa
el predicado de la selección,
y la lista luego del SELECT
los atributos a proyectar
Sistemas de Datos
Curso: Ernesto Chinkes
Inserción
Agregar una casa en
Moreno al 325, por
valor de 25000
En algebra relacional,
agregamos una tupla
a la relación Casa
En SQL:
INSERT INTO Casa
(Calle, Numero, Valor)
VALUES
(‘Moreno’, 325, 25000)
La tabla luego del INTO
indica la relación a la
cual le agregamos la tupla
La lista luego del VALUES
contiene los datos de la
tupla a agregar
Sistemas de Datos
Curso: Ernesto Chinkes
Inserción
Agregar a Casas los datos
de la tabla Otras_Casas
En algebra relacional,
Agregamos a la relación
Casas un conjunto de tuplas
Producto de una selección
En SQL:
INSERT INTO Casas
SELECT * FROM
Otras_Casas
Luego del INTO tenemos
la relación sobre la que
vamos a agregar la
Información.
A continuación tenemos la
expresión del algebra
relacional que indica
el conjunto de tuplas a
agregar. En este caso
una selección.
Sistemas de Datos
Curso: Ernesto Chinkes
Modificación
Aumentar en 10 % el valor
de las propiedades de la
calle Moreno
En algebra relacional,
realizamos una selección
de tuplas y modificamos
el valor de algún atributo
En SQL:
UPDATE Casa
SET Valor = Valor * 1.1
WHERE Calle=‘Moreno’
Luego del UPDATE tenemos
la relación a modificar.
Luego del SET, los atributos
que se modificarán
Luego del WHERE, tenemos
las condiciones de la
operación de selección. Si no
seleccionamos, modificaremos todas las tuplas de
la relación.
Sistemas de Datos
Curso: Ernesto Chinkes
Eliminación
Queremos borrar todas
las casas de la calle
Azurduy
En algebra relacional,
realizamos una selección
de tuplas y las
eliminamos
En SQL:
DELETE FROM Casa
WHERE Calle=‘Azurduy’
Luego del DELETE FROM
tenemos la relación
de la cual borraremos
Luego del WHERE, tenemos
las condiciones de la
operación de selección. Si
no seleccionamos,
borraremos todas las
tuplas de la relación
Sistemas de Datos
Curso: Ernesto Chinkes
Consultas Multitabla
Queremos mostrar los teléfonos
de las casas de la calle
Pedraza
En algebra relacional,
realizamos una reunión
natural. Comprende un
producto cartesiano y
una selección
En SQL: SELECT
c.Calle, c.Numero, tc.Telefono
FROM Casa c INNER JOIN
Telefono_Casa tc ON
(c.Calle = tc.Calle AND
c.Numero = tc.Numero)
WHERE Calle=‘Pedraza’
σ c.Calle=tc.Calle;
c.Numero=tc.Numero
(Casa c X Telefono_Casa tc)
Luego del ON
identificamos los atributos
repetidos en ambos
esquemas
Luego del WHERE, tenemos
las condiciones de la
operación de selección.
Descargar