Вы находитесь на странице: 1из 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
Binarias Unarias

Otras Operaciones
Interseccin Reunin Natural

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 , A
1

2,, An

(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

pA , A
1

2,,

An

(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:

RUS
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:

RxS
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:

RS
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:

RS
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 Calle=Moreno (Casa) 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

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

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

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.

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 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, modificaremos todas las tuplas de la relacin.

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

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 c.Calle=tc.Calle; c.Numero=tc.Numero (Casa c X Telefono_Casa tc) Luego del ON identificamos los atributos repetidos en ambos esquemas 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 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
Proyeccin Definicin de Relaciones (renombramiento, reunin natural, etc.) Seleccin

SELECT FROM WHERE GROUP BY HAVING ORDER BY

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

SELECT apellido, MAX (Nro_Registro) FROM ALUMNO WHERE apellido Like P% GROUP BY apellido HAVING COUNT (*) > 3 ORDER BY apellido

Вам также может понравиться