PAPELERÍAS DE LA UIS
1. Objetivo: Aplicar los conocimientos adquiridos en el modulo Base de Datos.
Se tiene una base de datos que ayudará a los estudiantes a cotizar diversos artículos en las papelerías circundantes a la Universidad Industrial de Santander. Una cotización pertenece a una sola persona, pero una persona puede tener varias cotizaciones. Una cotización puede tener varios artículos, que a su vez está relacionado con un producto. La cotización es hecha por una papelería que tiene un determinado horario de atención.
2. Metodología de desarrollo:
- Identificar Las entidades involucradas.
- Encontrar las relaciones correspondientes entre las Entidades.
- Generar El modelo Entidad-Relación
- Realizar la Base de Datos
3. Entidades:
- Cotización
- Usuarios
- Artículo
- Producto
- Papelería
- Horario_atención
4. Modelo Entidad-Relación:
5. Relaciones en Access:
TABLAS:
COTIZACIÓN
· Id_cotizacion: Llave principal.
· Usuario: Persona que realiza la cotización.
· Fecha
· Papelería
· Item: Cada uno de los artículos consultados.
USUARIOS
· Id_usuario: Llave principal.
· Nombre: Persona que realiza la cotización.
· Telefono
ARTÍCULO
· Id_articulo: Llave principal.
· Precio: Valor del artículo.
· Cantidad
· Unidad_medida: Referente al artículo
· Producto: Un artículo puede estar conformado por varios productos. Especifica que producto o productos hacen parte del artículo.
PRODUCTO
· Id_producto: Llave principal.
· Nombre
PAPELERÍA
· Id_nombre: Llave principal.
· Dirección
· Telefono
· Horario
HORARIO_ATENCIÓN
· Id_horario: Llave principal.
· Horario
1. Papelerias que tienen el horario de atención número 1.
SELECT Id_nombre
FROM Papeleria
WHERE horario = 1;
2. Cotizaciones realizadas antes del 4 de noviembre de 2010.
SELECT Id_cotizacion, fecha
FROM Cotizacion
WHERE Fecha<4/11/2010;
3. Número de artículos disponibles en todas las papelerías.
SELECT count(Id_articulo)
AS cantidad_articulos
FROM Articulo;
4. Artículos con precio menor a $1000 o mayor a $2000.
SELECT Id_articulo,precio
FROM Articulo
WHERE (precio<1000) OR (precio >2000);
5. Artículo más vendido.
SELECT item, Precio
FROM Cotizacion inner join Articulo on item.cotizacion=Id_articulo.Articulo WHERE Item = ( SELECT Id_articulo
FROM Articulo
WHERE Precio = ( SELECT Max(precio)
FROM Articulo)
);
6. Cotización de mayor valor.
SELECT Id_cotizacion, SUM(SELECT Precio FROM Articulo) AS Ventas
FROM Cotizacion inner join articulo on item.cotizacion = Id_articulo
WHERE SUM(SELECT Precio FROM Articulo)= (SELECT MAX(SUM(SELECT Precio FROM Articulo)));
7. Todos los datos de papelerías que empiezan por i.
SELECT *
FROM Papeleria
WHERE Id_nombre LIKE 'i';
8. Nombre de la papelería con las menores ventas.
SELECT Id_nombre, SUM(SELECT Precio FROM Articulo) AS Ventas
FROM Papeleria inner join (cotizacion inner join articulo on item.cotizacion = Id_articulo) on papeleria.cotizacion = Id_nombre.papeleria
WHERE SUM(SELECT Precio FROM Articulo)= (SELECT MIN(SUM(SELECT Precio FROM Articulo)));
SELECT Id_nombre, count(Usuario) AS Num_usuarios
FROM Papeleria inner join Cotizacion on Papeleria.Cotizacion = Id_nombre.Papeleria
WHERE count(Usuario) = (SELECT Max(count(Usuario)));
10. Usuario con más compras en todas las papelerías.
SELECT Id_usuario, Nombre, SUM(Precio) AS Compras
FROM Usuario inner join (cotizacion inner join articulo on item.cotizacion = Id_articulo) on usuario.cotizacion = Id_usuario.papeleria
WHERE SUM(Precio) = (SELECT Max(SUM(Precio)));