7€¦  · Web viewQBE fue desarrollado originalmente por IBM en la década de 1970 para ayudar a...

20
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja CIENCIAS DE LA COMPUTACIÓN QUINTO CICLO PROFESOR: Ing. Nelson Piedra AUTORA: Raquel Luzuriaga DESARROLLO DE LOS EJERCICIOS DEL CAPÍTULO 7

Transcript of 7€¦  · Web viewQBE fue desarrollado originalmente por IBM en la década de 1970 para ayudar a...

Page 1: 7€¦  · Web viewQBE fue desarrollado originalmente por IBM en la década de 1970 para ayudar a los usuarios a extraer datos de una base de datos. La utilidad QBE de Office Acess

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA

La Universidad Católica de Loja

CIENCIAS DE LA COMPUTACIÓN

QUINTO CICLO

PROFESOR:Ing. Nelson Piedra

AUTORA:Raquel Luzuriaga

LOJA – ECUADOR

DESARROLLO DE LOS EJERCICIOS DEL CAPÍTULO 7

Page 2: 7€¦  · Web viewQBE fue desarrollado originalmente por IBM en la década de 1970 para ayudar a los usuarios a extraer datos de una base de datos. La utilidad QBE de Office Acess

BASE TEÓRICA

Mediante el desarrollo de los siguientes ejercicios se ilustrará la utilidad de QBE (Quey-By-Example, consulta mediante ejemplo) utilizando el SGDB Microsoft Access 2003. QBE representa una técnica visual para acceder a los datos de una base de datos utilizando plantillas de consulta para representar la repuesta a una consulta.

QBE fue desarrollado originalmente por IBM en la década de 1970 para ayudar a los usuarios a extraer datos de una base de datos. La utilidad QBE de Office Acess resulta fácil de utilizar y tiene capacidades bastante potentes, por ejemplo podemos utilizarla para realizar peguntas acerca de los datos contenidos en una o más tablas y para especificar los campos que queremos que aparezcan en la respuesta.

Cuando se crea una base de datos utilizando Microsoft Office Access, se muestra la ventana DataBase que presenta los objetos existentes en la base de datos por ejemplo tablas, formularios, consultas e informes.

Para realizar una pregunta acerca de los datos contenidos en la base de datos de DreamHome, tenemos que diseñar una consulta que indique a Microsoft Office Access qué datos extraer.

A continuación describiré brevemente cada una de las consultas que se puede realizar en Microsoft Office Access:

Consulta de Selección.- Realiza una pregunta o define un conjunto de criterios acerca de los datos contenidos en una o más tablas.Consulta de Totalización (agregación).- Realiza una serie de cálculos sobre grupos de registros.Consulta Paramétrica.- Muestra uno o más cuadros de diálogo predefinidos en los que usuario puede introducir los valores de los parámetros.Consulta de localización de correspondencias.- Localiza registros duplicados en única tabla.Consulta de localización de no correspondencias.- Localiza registros diferentes en tablas relacionadas.Consulta Matricial.- Permite resumir y presentar grandes cantidades de datos en un formato compacto de hoja de cálculo.Consulta de Autobúsqueda.- Rellena automáticamente ciertos valores de campo para un nuevo registro.Consulta de acción (incluyendo consultas de borrado, adición, actualización y creación de tablas).- Realiza Cambios a muchos registros en una única operación. Dichos cambios incluyen la capacidad de borrar, agregar o modificar los registros de una tabla, así como crear una nueva tabla.Consultas SQL (incluyendo consultas de unión, de paso, de definición de datos y subconsultas).- Se utilizan para modificar las consultas descritas anteriormente y

Page 3: 7€¦  · Web viewQBE fue desarrollado originalmente por IBM en la década de 1970 para ayudar a los usuarios a extraer datos de una base de datos. La utilidad QBE de Office Acess

para establecer las propiedades de formularios e informes. Deben emplearse para crear consultas específicas de SQL, como consultas de unión, consultas de definición de datos, subconsultas y consultas de paso. Las consultas de paso envían comandos a una base de datos SQL, como por ejemplo Microsoft o Sybase SQL Server.

DESARROLLO DE LOS EJERCICIOS

7.1 . Cree las tablas de ejemplo del caso de estudio de DreamHome que se muestran en la Figura 3.3 y lleve a cabo los ejercicios ilustrados en este capítulo, usando (siempre que sea posible) la función QBE de su SGBD.

Luego de crear las tablas se puede observar las siguientes relaciones:

7.2. Cree las siguientes consultas adicionales QBE de selección para las tablas de ejemplo del caso de estudio de DreamHome, usando (siempre que sea posible) la función QBE de su SGBD.

(a) Extraiga el número de sucursal y la dirección de todas las sucursales.

Sentencias SQL:SELECT PropertyForRent.staffNo, PropertyForRent.branchNo, PropertyForRent.city, PropertyForRent.streetFROM PropertyForRent;

Cuadrícula QBE:

Page 4: 7€¦  · Web viewQBE fue desarrollado originalmente por IBM en la década de 1970 para ayudar a los usuarios a extraer datos de una base de datos. La utilidad QBE de Office Acess

Hoja de datos resultante:

(b) Extraiga el número de empleado, el puesto y el salario para todos los empleados que trabajen en la sucursal B003.Sentencias SQL:

SELECT Staff.staffNo, Staff.position, Staff.salaryFROM StaffWHERE (((Staff.branchNo)="B003"));

Cuadrícula QBE:

Hoja de datos resultante:

(c) Extraiga los detalles de todos los apartamentos (flat) situados en Glasgow.

Sentencias SQL:

Page 5: 7€¦  · Web viewQBE fue desarrollado originalmente por IBM en la década de 1970 para ayudar a los usuarios a extraer datos de una base de datos. La utilidad QBE de Office Acess

SELECT PropertyForRent.propertyNo, PropertyForRent.street, PropertyForRent.city, PropertyForRent.postcode, PropertyForRent.type, PropertyForRent.rooms, PropertyForRent.rent, PropertyForRent.ownerNo, PropertyForRent.staffNo, PropertyForRent.branchNoFROM PropertyForRentWHERE (((PropertyForRent.city)="Glasgow") AND ((PropertyForRent.type)="Flat")) OR (((PropertyForRent.city)="Glasgow") AND ((PropertyForRent.type)="Flat"));

Cuadrícula QBE:

Hoja de datos resultante:

(d) Extraiga los detalles de todos los empleados del sexo femenino que tenga más de 25 años.Sentencias SQL:

SELECT Staff.staffNo, Staff.fName, Staff.iName, Staff.position, Staff.sex, Staff.DOB, Staff.salary, Staff.branchNoFROM StaffWHERE (((Staff.sex)="F") AND ("DOB">(2007-25)));

Cuadrícula QBE:

Hoja de datos resultante:

Page 6: 7€¦  · Web viewQBE fue desarrollado originalmente por IBM en la década de 1970 para ayudar a los usuarios a extraer datos de una base de datos. La utilidad QBE de Office Acess

(e) Extraiga el nombre completo y el teléfono de todos los clientes que hayan visitado algún apartamento en Glasgow.

Sentencias SQL:SELECT Client.fName, Client.iName, Client.telNo, PropertyForRent.cityFROM PropertyForRent INNER JOIN Client ON PropertyForRent.Id = Client.IdWHERE (((PropertyForRent.city)="Glasgow"));

Cuadrícula QBE:

Hoja de datos resultante:

(f) Extraiga el número total de inmuebles, clasificados según el tipo de inmuebles.Sentencias SQL:

SELECT PropertyForRent.propertyNo, PropertyForRent.street, PropertyForRent.city, PropertyForRent.postcode, PropertyForRent.type, PropertyForRent.rooms, PropertyForRent.rent, PropertyForRent.ownerNo, PropertyForRent.staffNo, PropertyForRent.branchNoFROM PropertyForRentORDER BY PropertyForRent.type DESC;

Cuadrícula QBE:

Page 7: 7€¦  · Web viewQBE fue desarrollado originalmente por IBM en la década de 1970 para ayudar a los usuarios a extraer datos de una base de datos. La utilidad QBE de Office Acess

Hoja de datos resultante:

(g) Extraiga el número total de empleados que trabajan en cada sucursal, ordenando el listado se el número de sucursal.Sentencias SQL:

SELECT PropertyForRent.staffNo, PropertyForRent.branchNoFROM PropertyForRentORDER BY PropertyForRent.branchNo DESC;

Cuadrícula QBE:

Hoja de datos resultante:

7.3. Cree las siguientes consultas QBE avanzadas para las tablas de ejemplo en el caso de estudio DreamHome, utilizando (siempre que sea posible) la función QBE de su SGBD.

(a) Cree una consulta paramétrica que solicite un número de inmueble y luego muestre los detalles de dicho inmueble.

Sentencias SQL:SELECT PropertyForRent.propertyNo, PropertyForRent.street, PropertyForRent.city, PropertyForRent.postcode, PropertyForRent.type,

Page 8: 7€¦  · Web viewQBE fue desarrollado originalmente por IBM en la década de 1970 para ayudar a los usuarios a extraer datos de una base de datos. La utilidad QBE de Office Acess

PropertyForRent.rooms, PropertyForRent.rent, PropertyForRent.ownerNo, PropertyForRent.staffNo, PropertyForRent.branchNoFROM PropertyForRentWHERE (((PropertyForRent.propertyNo)=[Enter PropertyForRent]));

Cuadrícula QBE:

Cuadro de diálogo para ingresar el número de inmueble

Hoja de datos resultante:

(b) Cree una consulta paramétrica que solicite el nombre y apellido de un empleado y a continuación muestren los detalles de los inmuebles de los que ese empleado es responsable.

Sentencias SQL:SELECT PropertyForRent.propertyNo, PropertyForRent.street, PropertyForRent.city, PropertyForRent.postcode, PropertyForRent.type, PropertyForRent.rooms, PropertyForRent.rent, PropertyForRent.ownerNo, PropertyForRent.staffNo, PropertyForRent.branchNo, PrivateOwner.fName, PrivateOwner.iNameFROM PropertyForRent INNER JOIN PrivateOwner ON PropertyForRent.Id = PrivateOwner.IdWHERE (((PrivateOwner.fName)=[Enter fName]) AND ((PrivateOwner.iName)=[Enter iName]));

Cuadrícula QBE:

Page 9: 7€¦  · Web viewQBE fue desarrollado originalmente por IBM en la década de 1970 para ayudar a los usuarios a extraer datos de una base de datos. La utilidad QBE de Office Acess

Cuadro de diálogo que pide e nombre y apellido

Hoja de datos resultante:

(c) Añada más registros a la tabla PropertyForRent para reflejar el hecho de que los propietarios ‘Carol Farrel’ y ‘Tony Shaw’ poseen ahora numerosos inmuebles en diversas ciudades. Cree una consulta de selección para mostrar, para cada propietario, el número de inmuebles que posee cada ciudad. Ahora, convierta la consulta de selección en una consulta matricial y compruebe si la hoja de datos resultante es más o menos útil para comparar el número de inmuebles que cada propietario posee en cada ciudad.

Consulta de selección para mostrar, para cada propietario, el número de inmuebles que posee en cada ciudad.

Sentencias SQL:SELECT PropertyForRent.propertyNo, PropertyForRent.street, PropertyForRent.city, PropertyForRent.postcode, PropertyForRent.type, PropertyForRent.rooms, PropertyForRent.rent, PropertyForRent.ownerNo, PropertyForRent.staffNo, PropertyForRent.branchNoFROM PropertyForRentORDER BY PropertyForRent.city DESC;

Cuadrícula QBE:

Page 10: 7€¦  · Web viewQBE fue desarrollado originalmente por IBM en la década de 1970 para ayudar a los usuarios a extraer datos de una base de datos. La utilidad QBE de Office Acess

Hoja de datos resultante:

Consulta matricial

Instrucción SQLTRANSFORM Avg(PropertyForRent.rooms) AS PromedioDeroomsSELECT PropertyForRent.propertyNo, PropertyForRent.street, PropertyForRent.city, PropertyForRent.postcode, PropertyForRent.rent, PropertyForRent.ownerNo, PropertyForRent.staffNo, PropertyForRent.branchNoFROM PropertyForRentGROUP BY PropertyForRent.propertyNo, PropertyForRent.street, PropertyForRent.city, PropertyForRent.postcode, PropertyForRent.rent, PropertyForRent.ownerNo, PropertyForRent.staffNo, PropertyForRent.branchNoORDER BY PropertyForRent.city DESC PIVOT PropertyForRent.type;

Cuadrícula QBE

Hoja de Datos Resultante

Page 11: 7€¦  · Web viewQBE fue desarrollado originalmente por IBM en la década de 1970 para ayudar a los usuarios a extraer datos de una base de datos. La utilidad QBE de Office Acess

Esta hoja resultante nos permite ver e número de inmuebles que cada propietario posee por ciudad.

(e) Utilice una consulta de localización de no correspondencias para identificar los empleados que tienen ningún inmueble asignado.

Instrucción SQL:SELECT PrivateOwner.fName, PrivateOwner.iName, PrivateOwner.address, PrivateOwner.telNoFROM PropertyForRent INNER JOIN PrivateOwner ON PropertyForRent.Id = PrivateOwner.IdWHERE (((PropertyForRent.ownerNo) Is Null));

Cuadrícula QBE:

Hoja de datos resultantes:

Esto quiere decir que todos los empleados tienen un inmueble asignado.

7.4. Utilice consultas de acción para llevar a cabo las siguientes tareas sobre las tablas de ejemplo del de estudio de DreamHome, empleando (siempre que sea posible) la función QBE de su SGBD.

(a) Cree una versión reducida de la tabla PropertyForRent denominada PropertyGlasgow, que tenga los campos propertyNo, street, postcode y type de la

Page 12: 7€¦  · Web viewQBE fue desarrollado originalmente por IBM en la década de 1970 para ayudar a los usuarios a extraer datos de una base de datos. La utilidad QBE de Office Acess

tabla original y contenga únicamente los detalles de los inmuebles situados en Glasgow. Instrucción SQL:

SELECT PropertyForRent.propertyNo, PropertyForRent.street, PropertyForRent.postcode, PropertyForRent.type INTO PropertyGlasgowFROM PropertyForRent;

Cuadrícula QBE:

Mensajes de Advertencia

Hoja de Datos Resultantes

(b) Elimine todos los registros de visitas de inmuebles que no tengan ningún dato en el campo comment.

Instrucción SQL

DELETE Viewing.*, Viewing.commentFROM ViewingWHERE (((Viewing.comment) Is Null));

Page 13: 7€¦  · Web viewQBE fue desarrollado originalmente por IBM en la década de 1970 para ayudar a los usuarios a extraer datos de una base de datos. La utilidad QBE de Office Acess

Cuadrícula QBE

Mensaje de Advertencia

Hoja de datos de la tabla donde se eliminaron los registros que no tienen ningún comentario

(c) Actualice el salario de todos los empleados, salvo de los gerentes (Manager), en un 12,5%.

Instrucción SQL:UPDATE Staff SET Staff.salary = [salary]*0.125;

Cuadrícula QBE:

Mensaje de Advertencia

Page 14: 7€¦  · Web viewQBE fue desarrollado originalmente por IBM en la década de 1970 para ayudar a los usuarios a extraer datos de una base de datos. La utilidad QBE de Office Acess

(d) Cree una tabla denominada NewClient que contenga los detalles de nuevos clientes. Añada estos datos a la tabla Client original.

Instrucción SQL:INSERT INTO Client ( clientNo, fName, iName, telNo, prefType, maxRent )SELECT NewClient.clientNo, NewClient.fName, NewClient.iName, NewClient.telNo, NewClient.prefType, NewClient.maxRentFROM NewClient;

Mensaje de Advertencia

Hoja de Datos de la Tabla después de insertar los nuevos registros

7.5 Utilizando las tablas de ejemplo del caso de estudio de DreamHome, cree consultas QBE equivalentes para los ejemplos de SQL dados e el Capítulo 5.

5.1 Generar un listado con todos los detalles de todos los miembros del personalInstrucción SQL

SELECT Staff.staffNo, Staff.fName, Staff.iName, Staff.position, Staff.sex, Staff.DOB, Staff.salary, Staff.branchNoFROM Staff;

Cuadricula QBE

Page 15: 7€¦  · Web viewQBE fue desarrollado originalmente por IBM en la década de 1970 para ayudar a los usuarios a extraer datos de una base de datos. La utilidad QBE de Office Acess

Hoja de datos resultante

5.2 Generar una lista con os salarios de todos los empleados e la que sólo se muestre el número de empleado, el nombre, el apellido y los datos salariales

Instrucción SQLSELECT Staff.staffNo, Staff.fName, Staff.iName, Staff.salaryFROM Staff;

Cuadricula QBE

Hoja de datos resultante

Page 16: 7€¦  · Web viewQBE fue desarrollado originalmente por IBM en la década de 1970 para ayudar a los usuarios a extraer datos de una base de datos. La utilidad QBE de Office Acess

5.3 Generar un listado con los números de inmueble de todos los inmuebles que hayan sido visitados.

Instrucción SQLSELECT Viewing.propertyNoFROM Viewing;

Cuadricula QBE

Hoja de datos resultante

5.8 Generar un listado con todos los gerentes y supervisoresInstrucción SQL

SELECT Staff.staffNo, Staff.fName, Staff.iName, Staff.positionFROM StaffWHERE (((Staff.position)='Manager')) OR (((Staff.position)='Supervisor'));

Cuadricula QBE

Hoja de datos resultante

Page 17: 7€¦  · Web viewQBE fue desarrollado originalmente por IBM en la década de 1970 para ayudar a los usuarios a extraer datos de una base de datos. La utilidad QBE de Office Acess