You are on page 1of 20

Sistemas de Datos

Curso: Ernesto Chinkes


SQL Bsico Algebra
Relacional
Sistemas de Datos
Curso: Ernesto Chinkes
Modelo Relacional
Conceptos
Relacin
Esquema
Operaciones del Algebra Relacional
Seleccin
Proyeccin
Unin
Diferencia
Producto Cartesiano
Sistemas de Datos
Curso: Ernesto Chinkes
Algebra Relacional
Seleccin ()
Permite seleccionar un subconjunto de tuplas
de una relacin (R), todas aquellas que
cumplan la(s) condicin(es) P:

P
(R)
Por Ej:

Apellido=Gomez
(Alumno)
Sistemas de Datos
Curso: Ernesto Chinkes
Algebra Relacional
Proyeccin ()
Permite extraer columnas (atributos) de una
relacin, dando como resultado un
subconjunto vertical de atributos de la
relacin

A
1
,
A
2,,
A
n
(R)
Por Ej:

Apellido
,
Nombre
,
Numero_Registro
(Alumno)
Sistemas de Datos
Curso: Ernesto Chinkes
Algebra Relacional
Unin (U)
Retorna el conjunto de tuplas que estan en
R, o en S, o en ambas. R y S deben ser
relaciones compatibles:
R U S
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 relacin, cuyo esquema corresponde a
una combinacin 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:
R x S
Por Ej:
Alumno x Profesor
Sistemas de Datos
Curso: Ernesto Chinkes
Algebra Relacional
Otras Operaciones
Interseccin de Conjuntos
Reunin natural
Sistemas de Datos
Curso: Ernesto Chinkes
Otras Operaciones
Interseccin ()
La interseccin, como en Teora 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
Reunin Natural ():
Hace un producto cartesiano de sus dos argumentos y realiza
una seleccin 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
Agregacin (Count, Sum, Avg, Etc)
Reunin externa
Reunin externa completa
Reunin externa por la derecha
Reunin externa por la izquierda
Sistemas de Datos
Curso: Ernesto Chinkes
Modelo de Ejemplo - Casas
Trabajamos con tres relaciones:
Sistemas de Datos
Curso: Ernesto Chinkes
Seleccin
Listar la calle y el nmero de
las casas.
En algebra relacional,
hacemos la proyeccin
de Calle y Numero
de la relacin Casa
En SQL, escribimos:
SELECT Calle, Numero
FROM Casa
La lista que sigue al SELECT
nos marca los atributos
que proyectamos
La tabla luego del FROM
representa la relacin
sobre la que hacemos
la proyeccin
Sistemas de Datos
Curso: Ernesto Chinkes
Seleccin
Listar todas las casas
de la calle Moreno
En algebra relacional,
hacemos la seleccin
en la relacin Casa
donde Calle=Moreno
En SQL, escribimos:
SELECT *
FROM Casa
WHERE Calle=Moreno
La tabla luego del FROM
representa la relacin
sobre la que hacemos
la proyeccin
La condicin que sigue al
WHERE representa
el predicado de la seleccin
Calle, Numero, Valor (Casa)
Sistemas de Datos
Curso: Ernesto Chinkes
Seleccin
Listar los numeros de las
casas de la calle Moreno
En algebra relacional,
hacemos la seleccin
en la relacin Casa
donde Calle=Moreno
y la proyeccin del
atributo Numero
En SQL, escribimos:
SELECT Numero
FROM Casa
WHERE Calle=Moreno
La tabla luego del FROM
representa la relacin
sobre la que hacemos
la seleccin y la proyeccin
La condicin que sigue al
WHERE representa
el predicado de la seleccin,
y la lista luego del SELECT
los atributos a proyectar
Calle=Moreno (Casa)
Sistemas de Datos
Curso: Ernesto Chinkes
Insercin
Agregar una casa en
Moreno al 325, por
valor de 25000
En algebra relacional,
agregamos una tupla
a la relacin Casa
En SQL:
INSERT INTO Casa
(Calle, Numero, Valor)
VALUES
(Moreno, 325, 25000)
La tabla luego del INTO
indica la relacin 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
Insercin
Agregar a Casas los datos
de la tabla Otras_Casas
En algebra relacional,
Agregamos a la relacin
Casas un conjunto de tuplas
Producto de una seleccin
En SQL:
INSERT INTO Casas
SELECT * FROM
Otras_Casas
Luego del INTO tenemos
la relacin sobre la que
vamos a agregar la
Informacin.
A continuacin tenemos la
expresin del algebra
relacional que indica
el conjunto de tuplas a
agregar. En este caso
una seleccin.
Sistemas de Datos
Curso: Ernesto Chinkes
Modificacin
Aumentar en 10 % el valor
de las propiedades de la
calle Moreno
En algebra relacional,
realizamos una seleccin
de tuplas y modificamos
el valor de algn atributo
En SQL:
UPDATE Casa
SET Valor = Valor * 1.1
WHERE Calle=Moreno
Luego del UPDATE tenemos
la relacin a modificar.
Luego del SET, los atributos
que se modificarn
Luego del WHERE, tenemos
las condiciones de la
operacin de seleccin. Si no
seleccionamos, modificare-
mos todas las tuplas de
la relacin.
Sistemas de Datos
Curso: Ernesto Chinkes
Eliminacin
Queremos borrar todas
las casas de la calle
Azurduy
En algebra relacional,
realizamos una seleccin
de tuplas y las
eliminamos
En SQL:
DELETE FROM Casa
WHERE Calle=Azurduy
Luego del DELETE FROM
tenemos la relacin
de la cual borraremos
Luego del WHERE, tenemos
las condiciones de la
operacin de seleccin. Si
no seleccionamos,
borraremos todas las
tuplas de la relacin
Sistemas de Datos
Curso: Ernesto Chinkes
Consultas Multitabla
Queremos mostrar los telfonos
de las casas de la calle
Pedraza
En algebra relacional,
realizamos una reunin
natural. Comprende un
producto cartesiano y
una seleccin
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
Luego del ON
identificamos los atributos
repetidos en ambos
esquemas
Luego del WHERE, tenemos
las condiciones de la
operacin de seleccin.
c.Calle=tc.Calle;
c.Numero=tc.Numero
(Casa c X Telefono_Casa tc)

You might also like