Está en la página 1de 23

Sistemas de Datos

SQL Bsico Algebra Relacional


Rendimiento de Bases de Datos
Sistemas de Datos
Curso: Ernesto Chinkes
Conceptos
Relacin
Esquema
Operaciones Fundamentales del Algebra Relacional
Seleccin
Proyeccin
Renombramiento
Unin
Diferencia
Producto Cartesiano
Otras Operaciones
Interseccin
Reunin Natural
Unarias
Binarias
Rendimiento de Bases de Datos
Sistemas de Datos
Curso: Ernesto Chinkes
Conceptos
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
Modelo de Ejemplo
Rendimiento de Bases de Datos
Sistemas de Datos
Curso: Ernesto Chinkes
Algebra Relacional Seleccin
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)
Rendimiento de Bases de Datos
Sistemas de Datos
Curso: Ernesto Chinkes
Algebra Relacional Proyeccin
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)
Rendimiento de Bases de Datos
Sistemas de Datos
Curso: Ernesto Chinkes
Algebra Relacional Renombramiento
Renombramiento (p)
Permite poner nombre a las expresiones
del algebra relacional
p
A
1
,
A
2,,
A
n
(R)
Rendimiento de Bases de Datos
Sistemas de Datos
Curso: Ernesto Chinkes
Algebra Relacional Unin
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
Rendimiento de Bases de Datos
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
Rendimiento de Bases de Datos
Sistemas de Datos
Curso: Ernesto Chinkes
Algebra Relacional Producto Cartesiano
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
Rendimiento de Bases de Datos
Sistemas de Datos
Curso: Ernesto Chinkes
Algebra Relacional Interseccin
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
Rendimiento de Bases de Datos
Sistemas de Datos
Curso: Ernesto Chinkes
Algebra Relacional Reunin Natural
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
Rendimiento de Bases de Datos
Sistemas de Datos
Curso: Ernesto Chinkes
Modelo de Ejemplo - Casas
Trabajamos con tres relaciones:
Rendimiento de Bases de Datos
Sistemas de Datos
Curso: Ernesto Chinkes
Modelo de Ejemplo - 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 tabla luego del FROM
representa la relacin
sobre la que hacemos
la proyeccin
La lista que sigue al SELECT
nos marca los atributos
que proyectamos
Rendimiento de Bases de Datos
Sistemas de Datos
Curso: Ernesto Chinkes
Modelo de Ejemplo - 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
Calle, Numero, Valor (Casa)
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
Rendimiento de Bases de Datos
Sistemas de Datos
Curso: Ernesto Chinkes
Modelo de Ejemplo - Seleccin
Listar los nmeros 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
Calle=Moreno (Casa)
La condicin que sigue al
WHERE representa
el predicado de la seleccin,
y la lista luego del SELECT
los atributos a proyectar
La tabla luego del FROM
representa la relacin
sobre la que hacemos
la seleccin y la proyeccin
Rendimiento de Bases de Datos
Sistemas de Datos
Curso: Ernesto Chinkes
Modelo de Ejemplo - Insercin
Agregar una casa en Moreno
al 325, por valor de 25000
En SQL:
INSERT INTO Casa
(Calle, Numero, Valor)
VALUES
(Moreno, 325, 25000)
En algebra relacional,
agregamos una tupla
a la relacin Casa
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
Rendimiento de Bases de Datos
Sistemas de Datos
Curso: Ernesto Chinkes
Modelo de Ejemplo - 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
A continuacin tenemos la
expresin del algebra
relacional que indica
el conjunto de tuplas a
agregar. En este caso
una seleccin.
Luego del INTO tenemos
la relacin sobre la que
vamos a agregar la
Informacin.
Rendimiento de Bases de Datos
Sistemas de Datos
Curso: Ernesto Chinkes
Modelo de Ejemplo - 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 WHERE, tenemos
las condiciones de la
operacin de seleccin. Si no
seleccionamos, modificare-
mos todas las tuplas de
la relacin.
Luego del UPDATE tenemos
la relacin a modificar.
Luego del SET, los atributos
que se modificarn
Rendimiento de Bases de Datos
Sistemas de Datos
Curso: Ernesto Chinkes
Modelo de Ejemplo - 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 WHERE, tenemos
las condiciones de la
operacin de seleccin. Si
no seleccionamos,
borraremos todas las
tuplas de la relacin
Luego del DELETE FROM
tenemos la relacin
de la cual borraremos
Rendimiento de Bases de Datos
Sistemas de Datos
Curso: Ernesto Chinkes
Modelo de Ejemplo 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
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
operacin de seleccin.
Rendimiento de Bases de Datos
Sistemas de Datos
Curso: Ernesto Chinkes
SELECT - Partes y Orden de resolucin
SQL lgebra Relacional
Definicin de Relaciones (renombramiento, reunin
natural, etc.)
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
Seleccin
Proyeccin
Rendimiento de Bases de Datos
Sistemas de Datos
Curso: Ernesto Chinkes
SELECT - Partes y Orden de resolucin
SQL
Orden de Resolucin
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
6
1
2
3
4
5
Rendimiento de Bases de Datos
Sistemas de Datos
Curso: Ernesto Chinkes
SELECT - Partes y Orden de resolucin
SQL
apellido
COUNT (*) > 3
apellido
apellido Like P%
ALUMNO
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
apellido, MAX (Nro_Registro)

También podría gustarte