You are on page 1of 6

LABORATORIO 2

Sistemas de Bases de Datos (ESI

ALONSO LIZAOLA
IS713405, IS, (18%)
9 Abril 2018
SISTEMAS DE BASE DE DATOS
LEONARDO OCHOA
LAB2: Consultas de álgebra relacional y su traducción a SQL.
Objetivos
1. Practicar con los operadores de algebra relacional
2. Transformar las consultas de álgebra relacional a SQL utilizando una base de datos previamente
creada y poblada
Propósitos del curso a los que apoya esta práctica
4. Extraer y manipular información de conjuntos de datos de forma eficiente y precisa
aprovechando los lenguajes actuales
para el acceso a bases de datos.
Actividades
1. Restaura la base de datos Northwind (El archivo recuperacion.swf es un video que muestra
paso a paso como hacerlo).
2. Analiza el esquema de la base de datos, en concreto: sus tablas, sus tipos de datos, sus llaves
primarias y foráneas
3. Responde a las siguientes preguntas utilizando algebra relacional, SQL y una captura de pantalla
como en el siguiente ejemplo
SISTEMAS DE BASE DE DATOS
LEONARDO OCHOA
Consultas de una Tabla
Algebra Relacional SQL Captura de pantalla
a) ¿Cuáles son los
nombres
(ContactName),
SELECT
direcciones
ContactName,Address,Country
(Address), y países
FROM Customers;
(Country), de todos
los clientes
(Customers) ?
b) ¿Cuáles son los
clientes que viven
en México? Para
SELECT
cada uno me
CustomerID,Address,Phone
interesa su clave de
FROM Customers WHERE
cliente
Country='Mexico';
(CustomerID), su
dirección(Address) y
su teléfono (Phone)
c) ¿Cuáles son los SELECT
productos con precio ProductName,UnitsinStock
unitario (UnitPrice) FROM Products where
mayor a 10 y menor a UnitPrice >10 AND
20? Para cada uno me UnitPrice<20;
interesa saber su
descripción
(ProductName) y sus
existencias
(UnitsinStock)
d) ¿Cuáles son los SELECT
nombres CompanyName,Address,Coun
(Companyname), try From Suppliers;
direcciones (Address) y
países (Country) de
todos los proveedores?
e) ¿Cuáles son los SELECT
proveedores que viven SupplierID,Address,City
en Tokyo? Para cada uno From Suppliers where
me interesa su clave de City='Tokyo';
proveedor (SupplierID),
su
dirección (Address) y su
teléfono (Phone)?

SISTEMAS DE BASE DE DATOS

LEONARDO OCHOA
SELECT * FROM Orders
where OrderID=10254;

f) ¿Cuál es el detalle de
la orden 10254? Incluir
todos los atributos
(OrderId,
ProductId,UnitePrice,…)

Select CategoryID from


g) ¿Cuál es el Categories where
identificador de la CategoryName =
categoría (categoryId) 'Seafood';
Seafood?
(SELECT productName AS
productOrCategory FROM
Products )
h) ¿Cuál es el nombre de UNION
todos los productos (SELECT categoryName
(ProductName) y de FROM Categories);
todas las categorías
(CategoryName) (
Product and
Categories tables)? Una
sola columna

(SELECT FirstName AS
employeeOrSupplier FROM
i) ¿Cuál es el nombre de Employees ) UNION
todos los empleados (SELECT companyName
(First name) y FROM Suppliers) ;
proveedores de la Gran
Bretaña ( Company
Name)? ( Employees
and Suppliers tables).
Una sola columna

SISTEMAS DE BASE DE DATOS


LEONARDO OCHOA
Consultas de dos o más tablas
Algebra
SQL Captura de pantalla
Relacional
A) ¿Cuáles son los
nombres SELECT
(ProductName), ProductName,UnitPrice,Category
precios (unitprice), y Name FROM Products as
categorias prod,Categories as cat
(CategoryName), where
para todo los cat.CategoryID=prod.CategoryID
productos ;
(Product, categories)
?
B) ¿Todas las
ordenes(orderId) y
fecha(orderdate) de
la empleada Laura SELECT * from Orders as
ord,Employees as emp
(FirstName),
Where
(Employees, Orders) ?
emp.EmployeeID=ord.EmployeeID
 Consulta producto and emp.FirstName='Laura';
Cartesiano
 Opcional usar
renombramiento

C) Todas las
ordenes(orderId) que
contengan Tofu.
Incluye la SELECT prod.ProductName,
cantidad(quantity) y det.Quantity from Orders as
el ord,[Order Details] as
nombre(productNam det,Products as prod
e) de producto. where ord.OrderID=det.OrderID
(Orders,Orders and det.ProductID =
details, Product) ? prod.ProductID and
 Consulta producto prod.ProductName='Tofu';
Cartesiano
 Opcional usar
renombramiento
D) Todos las
empleados(
FirstName) que tenga SELECT emp.FirstName from
como territorio ( Employees as emp,
TerritoryDescription) EmployeeTerritories as
los valores ‘Chicago’ y et,Territories as ter
where emp.EmployeeID =
‘Boston’. (
et.EmployeeID and
Employees ,
et.TerritoryID =
EmployeeTerritories, ter.TerritoryID and
Territories) ? ter.TerritoryDescription =
 Consulta producto 'Chicago';
Cartesiano
 Opcional usar
renombramiento
E) La region y nombre de SELECT emp.FirstName,emp.Region
empleado para from Employees as emp,
RegionDescription ( EmployeeTerritories as
et,Territories as ter,Region as
Northern) y Employee reg
(Laura). Region,
territories, where emp.EmployeeID=et.EmployeeID
EmployeeTerrotories, and et.TerritoryID=ter.TerritoryID
Employee and ter.RegionID=reg.RegionID
Consulta producto
and emp.FirstName = 'Laura';
Cartesiano
Opcional usar
renombramiento ( dificultad
elevada)

Problemas
No sabia como convertir varias columnas en una sola ,al final me di cuenta de que se utilizaba una
unión de las 2 columnas (proyectadas)

Conclusiones
Las consultas arrojaron el resultado esperado , me ayudo ver el diagrama a la hora de hacer
consultas con múltiples tablas para ver de que manera estaban relacionas , me di cuenta de que
tengo que verificar que atributos deben coincidir en las relaciones parte del producto cartesiano

El producto cartesiano combinado con la selección permite hacer consultas mas o


menoscomplejas sin necesidad de JOINS u otras operaciones

You might also like