sábado, 13 de noviembre de 2010

Proyecto módulo Base de datos

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



Consultas

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)));


 9.    Papelería con más usuarios.

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)));