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 = (ρA1P.A1,…,BmP.BmP) (ρA1R.A1,…,CkR.CkR)
2. Reescribiendo con ARSPCR
P R = ρP.A1A1,…,P.AnAn,P.B1B1,…,P.BmBm,R.C1C1,…,R.CkCk(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))