proyecto base de datos entrega final

Anuncio
UNIVERSIDAD DIEGO PORTALES
FACULTAD DE INGENIERÍA
ESCUELA DE INGENIERÍA INDUSTRIAL
BASES DE DATOS ICI3022-3
PROYECTO
Profesor: Alberto Abudinen
Alumno: Nicolás A. Vargas Molina
Fecha: 12/noviembre/2010
Tabla de contenidos
TABLA DE CONTENIDOS ............................................................................................................ 2
ELECCIÓN DE LA EMPRESA ........................................................................................................ 3
DESCRIPCIÓN DE LA EMPRESA .................................................................................................. 3
VISIÓN ............................................................................................................................................... 3
MISIÓN.............................................................................................................................................. 3
DESCRIPCIÓN GENERAL ......................................................................................................................... 4
REQUERIMIENTOS DEL NEGOCIO .............................................................................................. 4
MODELO ENTIDAD RELACIÓN ................................................................................................... 5
P.K MODELO ENTIDAD RELACIÓN.............................................................................................. 6
MODELO RELACIONAL .............................................................................................................. 6
ENTIDADES ......................................................................................................................................... 6
RELACIONES ....................................................................................................................................... 6
TABLAS MODELO RELACIONAL ................................................................................................................ 7
MODELO RELACIONAL .......................................................................................................................... 9
NUEVO MODELO RELACIONAL ................................................................................................ 10
NUEVAS CONSULTAS .............................................................................................................. 11
FORMULARIO ......................................................................................................................... 12
SENTENCIAS S.QL. DE CADA CONSULTA ................................................................................... 13
Nicolás Andrés Vargas Molina
2
Elección de la empresa
IMEEDEN es una empresa que se dedica a la venta de pastillas y cremas
dermatológicas, esta posee clientes y proveedores.
 Para cada cliente: Cada cliente poseerá R.U.T, dirección (varias) nombre y
descuento.
 Para cada proveedor: Cada proveedor poseerá R.U.T, dirección (varias) y
nombre.
 Para cada artículo: Cada artículo tendrá N° de serie, N° de lote, descripción.
 Para cada pedido: Cada pedido tendrá R.U.T del cliente, cant. de artículos,
N° serie artículo, forma de pago y fecha.
 Para cada dirección: Cada dirección tendrá N° dirección, nombre de calle,
comuna y región.
Descripción de la Empresa
Visión
Constituirse como una de las empresas líderes en Chile, en la comercialización de
productos dermatológicos, desarrollar la mayor eficiencia en nuestros procesos e innovar
constantemente para ser una empresa proactiva frente a los cambios, obteniendo así una
ventaja competitiva frente a la competencia.
Misión
Promover una cultura organizacional orientada a satisfacer las necesidades de
nuestros clientes, entregando productos y servicios de máxima calidad, con un eficiente
sistema de distribución en todo el país, generando rentabilidades positivas para nuestra
empresa.
Nicolás Andrés Vargas Molina
3
Descripción general
Esta empresa se dedica a la venta de productos dermatológicos enfocados en el
cuidado de la piel, además se realizan mediciones de piel para una correcta
recomendación de estos productos, por lo que poseen una amplia variedad de productos.
Esta empresa funciona como cliente y proveedor.
Requerimientos del negocio











Listar ventas del producto “x” en la fecha “x”.
Listar pedidos del cliente “x” para la fecha “x”.
Listar clientes o proveedores de la región “x”.
Mostrar stock del producto “x”.
Mostrar datos del cliente o proveedor “x”.
Mostrar número de serie del producto “x” perteneciente al lote “x”.
Mostrar consumo del cliente “x”.
Mostrar recaudación en $ del mes “x”.
Mostrar información (modo de uso, contraindicaciones, ingredientes, etc.) sobre el
producto “x”.
Mostrar cheques por vencer a la fecha “x”.
Mostrar deuda del cliente “x”.
Nicolás Andrés Vargas Molina
4
Modelo entidad relación
Nicolás Andrés Vargas Molina
5
P.K Modelo Entidad Relación
 Para la entidad “Direcciones” la P.K estará formada por N° de Dirección, Nombre
de calle y Comuna.
 Para la entidad “Persona” la P.K estará formada R.U.T.
 Para la entidad “Pedido” la P.K estará formada por Fecha y R.U.T cliente.
 Para la entidad “Artículos” la P.K estará formada por N° de serie.
 Para la relación “Tiene” la P.K estará formada por R.U.T y Dirección.
 Para la relación “Realiza” la P.K estará formada por R.U.T cliente y fecha.
 Para la relación “Incluyen” la P.K estará formada por cant. De artículos pedidos y
N° de serie del artículo.
Modelo relacional
Entidades




“Persona” (Tipo de persona, R.U.T, nombre, descuento).
“Dirección” (N° Dirección, nombre, comuna, región).
“Pedido” (Fecha, cantidad artículos, R.U.T cliente, forma pago, N° serie artículo).
“Artículos” (N° serie artículo, N° lote, descripción).
Relaciones
 “Tiene”, entre persona y dirección; de 1 a ∞; [No tendrá tabla].
 “Realiza”, entre persona y pedido; de 1 a ∞; [No tendrá tabla].
 “Se incluyen”, entre pedido y artículos; de 1 a ∞; [No tendrá tabla].
Nicolás Andrés Vargas Molina
6
Tablas modelo relacional
 Persona.
Campo
Descripción
Tipo
persona
Especifica si es
cliente o
proveedor
Identificación del
cliente o
proveedor
Nombre del cliente
o proveedor
Descuento que se
le realiza al cliente
R.U.T
Nombre
Descuento
Tipo de
dato
String
Tamaño
9
Acepta
nulo
NO
P.K F.K Restricciones
Integer
8
NO
String
250
NO
NO NO
NO
Integer
2
NO
NO NO
NO
Tipo de
dato
Date
Tamaño
8
Acepta
nulo
NO
Integer
8
NO
Integer
3
Integer
String
NO NO
SI
SI
NO
NO
 Pedido.
Campo
Descripción
Fecha
Fecha en que se
realiza el pedido
R.U.T del cliente
que realiza el
pedido
Cantidad de
artículos que se
comprarán
N° único de cada
artículo
Cómo se pagará el
pedido (Efectivo,
cheque o tarjeta.)
R.U.T
Cant.
Artículos
N° de serie
de artículo
Forma de
pago
Nicolás Andrés Vargas Molina
P.K F.K Restricciones
SI
NO
NO
SI
NO
NO
NO
NO NO
NO
7
NO
NO
NO
8
NO
NO NO
SI
NO
7
 Dirección.
Campo
Descripción
N°
Dirección
N° de la oficina,
casa o
departamento
Nombre de la calle
Comuna donde se
encuentra la calle
Región donde se
encuentra la
dirección
R.U.T del cliente o
proveedor
Nombre
Comuna
Región
R.U.T
Tipo de
dato
Integer
Tamaño
4
Acepta
nulo
NO
String
String
300
100
NO
NO
String
100
Integer
P.K F.K Restricciones
SI
NO
NO
SI
SI
NO
NO
NO
NO
NO
NO NO
NO
8
NO
NO
NO
Tipo de
dato
Integer
Tamaño
7
Acepta
nulo
NO
Integer
7
NO
NO NO
NO
String
10000
NO
NO NO
NO
SI
 Artículos.
Campo
Descripción
N° de serie
N° único de cada
producto
N° de lote del que
proviene cada
artículo
Detalle de cada
producto
N° de lote
Descripción
Nicolás Andrés Vargas Molina
P.K F.K Restricciones
SI
SI
NO
8
Modelo Relacional
Nicolás Andrés Vargas Molina
9
Nuevo modelo relacional
Nicolás Andrés Vargas Molina
10
Nuevas consultas
1.
Listar ventas del producto “x” en la fecha “x” (PARÁMETRO).
2.
Listar clientes y proveedores de la región “x” (UNIÓN DE DOS TABLAS).
3.
Información del cliente o proveedor “x” (UNIÓN TABLA Y PARÁMETRO).
4.
Mostrar cheques por vencer después de la fecha “x” (FECHA).
5.
Mostrar información sobre el producto “x” (NORMAL).
6.
Clientes que han comprado más de una vez (HAVING).
7.
Cliente que consume más (CONSULTA SOBRE CONSULTA).
8.
Cantidad de ventas por producto (GROUP BY).
9.
Regiones que venden el producto que más se vende (UNIÓN DE CONSULTAS).
10. Proveedor que realiza la venta más cara y cliente que realiza la compra más cara (UNIÓN).
Nicolás Andrés Vargas Molina
11
Formulario
Nicolás Andrés Vargas Molina
12
Sentencias S.QL. de cada consulta
1.
SELECT cantidad_art AS cantidad_artículos, codigo_prod AS código_producto, rut,
forma_pago AS forma_de_pago, id_pedido_venta, precio_total
FROM venta
WHERE fecha = ingrese_fecha and nombre_prod = ingrese_producto;
Como ejemplo se ingresará la fecha 01/01/2010 y nombre del producto será imedeen, con
esto el resultado será:
2.
SELECT persona.nombre AS nombre_persona, direccion.region AS region
FROM persona, direccion
WHERE persona.rut=direccion.rut and direccion.region = ingrese_región;
Como ejemplo se ingresará la región Santiago, con esto el resultado será:
3.
SELECT persona.rut, persona.tipo_persona, direccion.Ndireccion, direccion.nombre_calle,
direccion.comuna, direccion.region
FROM persona, direccion
WHERE persona.rut = direccion.rut and persona.nombre = ingrese_nombre;
Como ejemplo se ingresará el nombre nicolas Vargas, con esto el resultado será:
Nicolás Andrés Vargas Molina
13
4.
SELECT cheques.id_pedido_venta AS numero_venta, persona.nombre AS persona_que_emite
and cheques.fecha_vencimiento AS fecha_vencimiento
FROM cheques, persona, venta
WHERE persona.rut=venta.rut and venta.id_pedido_venta=cheques.id_pedido_venta and
venta.forma_pago=’cheque’ and cheques.fecha_vencimiento > DateValue (Ingrese_fecha);
Como ejemplo se ingresará la fecha 30/03/2010, con esto el resultado será:
5.
SELECT descripcion
FROM articulos
WHERE nombre_prod=ingrese_producto;
Como ejemplo se ingresará el producto xp, con esto el resultado será:
6.
SELECT persona.nombre AS nombre_persona, SUM (venta.precio_total) AS gastos_totales
FROM persona_venta
WHERE persona.rut = venta.rut and persona.tipo_persona = ’cliente’
GROUP BY persona.nombre
HAVING COUNT (venta.precio_total) > 1;
Con esto el resultado será:
Nicolás Andrés Vargas Molina
14
7.
SELECT persona.nombre AS nombre_persona
FROM persona, venta
WHERE persona.rut = venta.rut and persona.tipo_persona = ‘cliente’ and
venta.precio_total = (SELECT MAX (precio_total) FROM venta);
Con esto el resultado será:
8.
SELECT COUNT (precio_total) AS totales, nombre_prod AS nombre_producto
FROM venta
GROUP BY nombre_prod;
Con esto el resultado será:
9.
SELECT direccion.region AS region, Sum(venta.precio_total) AS totales
FROM direccion, venta
WHERE venta.rut=direccion.rut
GROUP BY direccion.region
HAVING COUNT (venta.precio_total) = (SELECT MAX (totales) FROM Consulta8GROUPBY);
Con esto el resultado será:
Nicolás Andrés Vargas Molina
15
10. SELECT persona.nombre AS nombre_persona, persona.tipo_persona AS tipo_persona
FROM persona, venta
WHERE persona.rut=venta.rut and persona.tipo_persona='proveedor' and
venta.precio_total= (SELECT MAX (venta.precio_total) FROM venta, persona WHERE
persona.tipo_persona='proveedor' and persona.rut=venta.rut)
UNION SELECT persona.nombre AS nombre_persona, persona.tipo_persona AS tipo_persona
FROM persona, venta
WHERE persona.rut=venta.rut and persona.tipo_persona='cliente' and venta.precio_total=
(SELECT MAX (venta.precio_total) FROM venta, persona WHERE
persona.tipo_persona='cliente' and persona.rut=venta.rut);
Con esto el resultado será:
Nicolás Andrés Vargas Molina
16
Descargar