SQL Basico Algebra Relacional v6
-
Upload
carlos-navarrete -
Category
Documents
-
view
43 -
download
0
Embed Size (px)
Transcript of SQL Basico Algebra Relacional v6
-
Sistemas de DatosCurso: Ernesto Chinkes
SQL Bsico Algebra Relacional
-
Sistemas de DatosCurso: Ernesto Chinkes
Modelo Relacional
Conceptos Relacin Esquema Operaciones del Algebra Relacional
Seleccin Proyeccin Unin Diferencia Producto Cartesiano
-
Sistemas de DatosCurso: 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 DatosCurso: Ernesto Chinkes
Algebra RelacionalProyeccin ()Permite extraer columnas (atributos) de una
relacin, dando como resultado un subconjunto vertical de atributos de la relacin
A1, A2,, An(R)
Por Ej:
Apellido, Nombre, Numero_Registro(Alumno)
-
Sistemas de DatosCurso: 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 DatosCurso: 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 DatosCurso: 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 DatosCurso: Ernesto Chinkes
Algebra Relacional
Otras Operaciones Interseccin de Conjuntos Reunin natural
-
Sistemas de DatosCurso: Ernesto Chinkes
Otras OperacionesInterseccin ()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 DatosCurso: 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 DatosCurso: 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 DatosCurso: Ernesto Chinkes
Modelo de Ejemplo - Casas
Trabajamos con tres relaciones:
-
Sistemas de DatosCurso: Ernesto Chinkes
Seleccin
Listar la calle y el nmero de las casas.
En algebra relacional,hacemos la proyeccin
de Calle y Numerode la relacin Casa
En SQL, escribimos:SELECT Calle, Numero
FROM Casa
La lista que sigue al SELECTnos marca los atributos
que proyectamos
La tabla luego del FROMrepresenta la relacinsobre la que hacemos
la proyeccin
-
Sistemas de DatosCurso: Ernesto Chinkes
Seleccin
Listar todas las casas de la calle Moreno
En algebra relacional,hacemos la seleccin
en la relacin Casadonde Calle=Moreno
En SQL, escribimos:SELECT *
FROM CasaWHERE Calle=Moreno
La tabla luego del FROMrepresenta la relacinsobre la que hacemos
la proyeccin
La condicin que sigue alWHERE representa
el predicado de la seleccin
Calle, Numero, Valor (Casa)
-
Sistemas de DatosCurso: Ernesto Chinkes
Seleccin
Listar los numeros de las casas de la calle Moreno
En algebra relacional,hacemos la seleccin
en la relacin Casadonde Calle=Moreno
y la proyeccin delatributo Numero
En SQL, escribimos:SELECT Numero
FROM CasaWHERE Calle=Moreno
La tabla luego del FROMrepresenta la relacinsobre la que hacemos
la seleccin y la proyeccin
La condicin que sigue alWHERE representa
el predicado de la seleccin,y la lista luego del SELECT
los atributos a proyectar
Calle=Moreno (Casa)
-
Sistemas de DatosCurso: Ernesto Chinkes
InsercinAgregar 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 INTOindica la relacin a la
cual le agregamos la tupla
La lista luego del VALUEScontiene los datos de la
tupla a agregar
-
Sistemas de DatosCurso: Ernesto Chinkes
Insercin
Agregar a Casas los datos de la tabla Otras_Casas
En algebra relacional,Agregamos a la relacin
Casas un conjunto de tuplasProducto de una seleccin
En SQL:INSERT INTO Casas
SELECT * FROMOtras_Casas
Luego del INTO tenemosla relacin sobre la que
vamos a agregar laInformacin.
A continuacin tenemos laexpresin del algebrarelacional que indica
el conjunto de tuplas aagregar. En este caso
una seleccin.
-
Sistemas de DatosCurso: Ernesto Chinkes
Modificacin
Aumentar en 10 % el valor de las propiedades de la calle Moreno
En algebra relacional,realizamos una seleccinde tuplas y modificamosel valor de algn atributo
En SQL:UPDATE Casa
SET Valor = Valor * 1.1WHERE Calle=Moreno
Luego del UPDATE tenemosla relacin a modificar.
Luego del SET, los atributosque se modificarn
Luego del WHERE, tenemoslas condiciones de la
operacin de seleccin. Si noseleccionamos, modificare-
mos todas las tuplas dela relacin.
-
Sistemas de DatosCurso: Ernesto Chinkes
EliminacinQueremos borrar todas
las casas de la calle Azurduy
En algebra relacional,realizamos una seleccin
de tuplas y laseliminamos
En SQL:DELETE FROM Casa
WHERE Calle=Azurduy
Luego del DELETE FROMtenemos la relacin
de la cual borraremos
Luego del WHERE, tenemoslas condiciones de la
operacin de seleccin. Sino seleccionamos,
borraremos todas lastuplas de la relacin
-
Sistemas de DatosCurso: Ernesto Chinkes
Consultas Multitabla
Queremos mostrar los telfonos de las casas de la calle Pedraza
En algebra relacional,realizamos una reuninnatural. Comprende unproducto cartesiano y
una seleccin
En SQL: SELECTc.Calle, c.Numero, tc.Telefono
FROM Casa c INNER JOINTelefono_Casa tc ON
(c.Calle = tc.Calle ANDc.Numero = tc.Numero)
WHERE Calle=Pedraza
Luego del ONidentificamos los atributos
repetidos en ambosesquemas
Luego del WHERE, tenemoslas condiciones de la
operacin de seleccin.
c.Calle=tc.Calle;c.Numero=tc.Numero
(Casa c X Telefono_Casa tc)
SQL Bsico Algebra RelacionalModelo RelacionalAlgebra RelacionalAlgebra RelacionalAlgebra RelacionalAlgebra RelacionalAlgebra RelacionalAlgebra RelacionalOtras OperacionesOtras OperacionesAlgebra RelacionalModelo de Ejemplo - CasasSeleccinSeleccinSeleccinInsercinInsercinModificacinEliminacinConsultas Multitabla