Download Laboratorio de Bases de Datos II
Document related concepts
no text concepts found
Transcript
Laboratorio de Bases de Datos II Ayudante: Daniel Inostroza Rodríguez [email protected] • SQL • Álgebra Relacional • Consultas Conjuntivas La Tienda Informática 1.- Obtener los nombres y precios de los productos de la tienda. SQL: SELECT Nombre, Precio FROM ARTICULOS Álgebra Relacional: ∏Nombre, Precio(ARTICULOS) Consultas Conjuntivas: Answer(Nombre, Precio) :- ARTICULOS(Codigo,Nombre,Precio,Fabricante) La Tienda Informática 2.- Obtener el nombre de los productos cuyo precio sea inferior a $200 SQL: SELECT Nombre FROM ARTICULOS WHERE Precio < 200 Álgebra Relacional: ∏Nombre(σPrecio<200(ARTICULOS)) Consultas Conjuntivas: Answer(Nombre) :- ARTICULOS(Codigo,Nombre,Precio,Fabricante),Precio<200 La Tienda Informática 3.- Obtener todos los datos de los productos cuyo precio esté entre $60 y $120 SQL: SELECT * FROM ARTICULOS WHERE Precio>60 AND Precio< 120 Álgebra Relacional: ∏Codigo,Nombre,Precio,Fabricante(σPrecio>60,Precio<120(ARTICULOS)) Consultas Conjuntivas: Answer(Codigo,Nombre,Precio,Fabricante) :- ARTICULOS(Codigo,Nombre,Precio,Fabricante), Precio>60,Precio<120 La Tienda Informática 4.- Obtener un listado completo de los artículos, incluyendo por cada artículo los datos del artículo y de su fabricante. SQL: SELECT ARTICULOS.*, FABRICANTES.* FROM ARTICULOS INNER JOIN FABRICANTES ON ARTICULOS.Fabricante=FABRICANTES.Codigo Álgebra Relacional: ∏ARTICULOS:Codigo,ARTICULOS.Nombre,ARTICULOS.Precio, (ARTICULOS ARTICULOS.Fabricante=FABRICANTES.CodigoFABRICANTES) ARTICULOS.Fabricante,FABRICANTES:Nombre Consultas Conjuntivas: Answer(Codigo,Nombre,Precio,Fabricante,NombreFab) :- ARTICULOS(Codigo,Nombre,Precio,Fabricante), FABRICANTES(Fabricante,NombreFab) La Tienda Informática 5.- Obtener un listado de artículos, incluyendo el nombre del artículo, su precio y el nombre de su fabricante SQL: SELECT ARTICULOS.Nombre, ARTICULOS.Precio, FABRICANTES.Nombre FROM ARTICULOS INNER JOIN FABRICANTES ON ARTICULOS.Fabricante=FABRICANTES.Codigo Álgebra Relacional: ∏ARTICULOS.Nombre,ARTICULOS.Precio,FABRICANTES:Nombre(ARTICULOS ARTICULOS.Fabricante=FABRICANTES.Codigo FABRICANTES) Consultas Conjuntivas: Answer(Nombre,Precio,NombreFab) :- ARTICULOS(Codigo,Nombre,Precio,Fabricante), FABRICANTES(Fabricante,NombreFab) Demostraciones Demostraciones • Demuestre que el Álgebra Relacional SPCR (que incluye selección, proyección, producto cartesiano y renombrado) es equivalente al Álgebra Relacional SPJR (que incluye selección, proyección, Join natural y renombrado) • Para demostrar que los lenguajes son equivalentes (ARSPCR ARSPJR) debemos mostrar que toda consulta em Algebra Relacional SPCR puede ser reescrita en Algebra Relacional SPJR. Para que esto sea verdad, lo único que necesitamos mostrar es que el producto cartesiano puede ser reescrito con los operadores de ARSPJR y que el JOIN puede ser reescrito com los operadores del ARSPCR (ya que son los únicos operadores em los que difieren) • Teniendo las tablas P(A1, . . . , An, B1, . . . , Bm) y R(A1, . . . , An, C1, . . . , Ck). 1. Reescribiendo x con ARSPJR: P x R = (ρA1P.A1,…,BmP.BmP) (ρA1R.A1,…,CkR.CkR) 2. Reescribiendo con ARSPCR P R = ρP.A1A1,…,P.AnAn,P.B1B1,…,P.BmBm,R.C1C1,…,R.CkCk(S) S = ∏P.A1,…,P.An,P.B1,…,P.Bm,R.C1,…,R.Ck(σ P.A1=R.A1^…^P.An=R.An(P x R))