miércoles, 30 de noviembre de 2011

BASE DE DATOS CASO DE ESTUDIO 2P2011


CASO DE ESTUDIO FARMACIA LA SALUD
ESQUEMA RELACIONAL

MEDICAMENTO=(cod_med I NN PK, nom_med VC(30), cod_tipo_med I FK NN, 
unidad_exist I, precio_unit DB, cod_estado I FK NN, cod_tipo_venta I FK NN, 
cod_lab I FK NN)
ESTADO=(cod_estado I PK NN, nom_estado VC(20))
TIPO_VENTA=(cod_tipo_venta I PK NN, nom_tipo_venta VC(20))
TIPO_MED= (cod_tipo_med I NN PK, nom_tipo_med VC(20))
LABORATORIO=(cod_lab I NN PK, nom_lab VC(30), tel_lab VC(20), 
dir_lab VC(30), cod_contacto I NN FK, cod_ciudad I FK NN)
CONTACTO=(cod_contacto I NN PK, nom_contacto VC(30), tel_contacto VC(20))
ENFERMEDAD=(cod_enf I NN PK, nom_enf VC(50))
FAMILIA=(cod_familia I PK NN, cod_med I FK NN, cod_enf I NN FK)
CLIENTE=(cod_cliente I PK NN, nom_cliente VC(30), dir_cliente VC(30), 
tel_cliente VC(20), cod_ciudad I NN FK)
CIUDAD=(cod_ciudad I PK NN, nom_ciudad VC(60), cod_depto_dane VC(5) FK)
VENTA=(cod_venta I PK NN, fecha_venta DT, valor_venta DB, cod_cliente I FK NN)
DETALLE_VENTA=(cod_detalle I PK NN, cod_venta I FK NN, 
cod_med I FK NN, unid_vendida I,valor DB)
DEPARTAMENTO=(cod_depto I PK NN, nom_depto VC(50), cod_dane VC(5) UK)

I = INTEGER   
NN = NOT NULL       
PK = PRIMARY KEY   
FK = FOREIGN KEY
D = DATE   
DB = DOUBLE PRECISION
VC = VARCHAR   
UK = UNIQUE KEY
DT = DATETIME - TIMESTAMP


NOTA: LOS TIPOS DE DATOS VC(30) DEBEN SER ASOCIADOS A UN DOMINIO.

domingo, 27 de noviembre de 2011

REQUERIMIENTO FINAL PARA BASES DE DATOS Y LABORATORIO 2P-2011

REQUERIMIENTO FINAL PARA BASES DE DATOS Y LABORATORIO
2P-2011
En la farmacia se requiere una catalogación de todos los medicamentos existentes, de cada uno se necesita almacenar su código de medicamento, nombre del medicamento, tipo de medicamento (jarabe, comprimido, pomada, etc.), unidades en stock, y precio.  Existen medicamentos, de venta libre y otros que solo pueden dispensarse con receta médica.

La farmacia compra cada medicamento a un laboratorio o bien los fabrica ella misma.  Se desea conocer el código de laboratorio, nombre, teléfono, dirección y fax, así como el nombre de la persona o personas de contacto y algunos datos de interés de ellas. Para un mismo laboratorio puede existir más de un contacto y una misma persona puede ser el contacto de varios laboratorios.

Existe una catalogación además de todas las enfermedades existentes, y los medicamentos se agrupan dependiendo de las enfermedades a las que dicho medicamento se aplica.  De este modo, si la farmacia no dispone de un medicamento concreto, puede vender otro similar aunque de distinto laboratorio.

La farmacia tiene clientes que realizan los pedidos o compras, se quiere mantener las unidades de cada medicamento comprado, así como la fecha de compra, el valor total de la compra y el empleado que atendió el pedido. Cada pedido es atendido por un solo empleado. Los empleados de la farmacia se identifican por un número de expediente y de ellos interesa conocer el nombre, apellidos y dirección particular.

En cada pedido aparecen varios medicamentos, cada medicamento de cada pedido, va acompañado de la cantidad solicitada.

(PRIMERA PARTE Y SEGUNDA PARTE)

1. Dibuje un DER con notación de Martin, para representar la situación de la farmacia.
2. Transforme el modelo anterior en un modelo relacional.
3. Implemente el modelo relacional en el motor de bases de datos Firebird
4. Cree para cada una de las tablas su llave primaria, generador y su disparador de auto incremento.
5. Implemente las restricciones de Integridad para cada una de las relaciones existentes en la base de datos.
6. Utilice dominios para definir algunos tipos de datos. los que usted considere puede ser uno solo.
7. Cree un vista llamada JARABE de tal manera que se visualicen todos los medicamtentos de tipo JARABE.
8. Realice las Instrucciones INSERT que se consideren necesarias. puede hacerlo por archivos planos, por sentencia insert o por uso de la opción datos (botonera).
9. Realice 10 consultas en donde evidencie el uso de las operaciones fundamentales del algebra relacional. (no se olvide que puede usar between, in,  subconsultas,  not in,  funciones agregadas (SUM, MAX, AVG, etc.))
10. Cree un disparador con una excepción, que valide la entrada de valores negativos  en el precio unitario del medicamento, las unidades existentes y el valor de la venta.
11. Defina un procedimiento almacenado que reciba como parámetro de entrada el código de un medicamento y muestre su tipo de venta, su tipo de venta, precio, laboratorio y calcule un precio de venta al publico (el precio real del producto incrementado en un 10%).
12. Cree un procedimiento almacenado que permita calcular el valor de venta al público de todos los medicamentos de la farmacia, teniendo en cuenta: si el precio del  medicamento es menor a 10000 se vende con un 10% de incremento, si el precio del medicamento está entre 10000 y 20000 se vende con un 10% de descuento, si el precio es mayor a 20000 el precio de venta al público es el mismo precio del producto aumentado en 5000 pesos.

Fecha de entrega para ambas jornadas: Martes 6 de dic. a lñas 6 pm.

martes, 31 de mayo de 2011

DIAGRAMA MODELO ENTIDAD RELACION CASO 1P2011

DIAGRAMA MODELO ENTIDAD RELACION – COMERCIALIZADORA DE PRODUCTOS

EN EL CONJUNTO PEDIDO FALTA EL COD_EMPLEADO COMO LLAVE FORANEA  Y EL VALOR TOTAL DEL PEDIDO 


jueves, 26 de mayo de 2011

REQUERIMIENTO FINAL BASES DE DATOS

REQUERIMIENTO FINAL PARA BASES DE DATOS
1p-2011

Dibuje un DER con notación de Martin, para representar la situación de una empresa comercializadora e importadora, de la cual se conoce:

• La empresa trabaja con diferentes productos. De cada uno se conoce su código que lo identifica, nombre, precio y categoría a que pertenece. (Existe una catalogo con todas las categorías, son cerca de 10 categorías)

• Cada producto tiene un único suministrador.

• De cada suministrador se conoce el código que lo identifica, nombre, dirección y teléfono.

• En la empresa se elaboran diferentes pedidos de productos. Cada pedido tiene un número que lo identifica, la fecha en que se confeccionó, la forma en que será despachado (D=Domicilio, P=Personal), el valor total del pedido y el cliente a quien corresponde. Además cada pedido es atendido por un empleado.

• De los clientes se conoce su código, nombre, dirección, ciudad y teléfono.

• Los empleados de la empresa se identifican por un número de expediente y de ellos interesa conocer el nombre, apellidos, dirección particular y fecha de ingreso.

• En cada pedido aparecen varios productos, cada producto de cada pedido, va acompañado de la cantidad solicitada y el precio vendido.

2. Transforme el modelo anterior en un modelo relacional.

3. Implemente el modelo relacional en el motor de bases de datos Firebird 2.0.

4. Cree para cada una de las tablas su llave primaria, generador y su disparador de auto incremento.

5. Implemente las restricciones de Integridad para cada una de las relaciones existentes en la base de datos. Nota: el detalle maestro entre los pedidos y los productos debe tener regla de borrado en cascada.

6. Utilice dominios para definir algunos tipos de datos.

7. Para algunas categorías de productos defina vistas cuyos nombres sean descriptivos.

8. Realice las Instrucciones INSERT que se consideren necesarias.

9. Indique para cada una de las siguientes operaciones una expresión en SQL:


• Obtener los detalles completos de todos los pedidos que han realizado los clientes cuyo nombre comienza con un carácter pasado como parámetro.

• Listar los vendedores, ordenados por el nombre indicando por cada uno cual es el valor total de las ventas que ha realizado y la cantidad de las mismas.

• Obtener el nombre del vendedor que ha despacho el pedido de mayor valor.

• Obtener el nombre del artículo mas vendido por la compañía.

• Obtener los nombres de los vendedores que hayan despachado pedidos cuyo valor total sea mayor al promedio de venta total de todos los pedidos.

10. Cree un disparador que valide la entrada de la forma de despacho, de tal manera que solo se inserten valores ‘D’ ó ‘P’ y no se reciban nulos en este campo.

11. Defina un procedimiento almacenado que reciba como parámetro de entrada el código de un producto y muestre su categoría, nombre, precio y calcule un precio de venta al publico (el precio real del producto incrementado en un 10%).

12. Cree un procedimiento almacenado que permita calcular el valor de venta al público de todos los productos de la compañía de acuerdo a los siguientes criterios: si el precio del producto es menor a 10000 se vende con un 10% de incremento, si el precio del producto está entre 10000 y 20000 se vende con un 10% de descuento, si el precio es mayor a 20000 el precio de venta al público es el mismo precio del producto aumentado en 2500 pesos.