sql basico algebra relacional v6

Upload: carlos-navarrete

Post on 14-Oct-2015

46 views

Category:

Documents


0 download

TRANSCRIPT

  • 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