Implementacin de una Base de Datos Objeto Relacional
Implementación de una Base de Datos Objeto Relacional con un Caso Práctico en Oracle 8 i 2006
CASO RESUELTO CON EL MODELO RELACIONAL CASO PIZZERIA Se quiere implementar un sistema de control de ventas en una Pizzería. Este sistema debe permitir un control detallado de las ventas, accediendo a ingresos y consultas de las ventas realizadas, éstas llevan un código de venta, precio, nombre del cliente, dirección del local y cliente, nombre o código del repartidor y el producto con su cantidad vendida. La tienda se especializa sólo en la venta de Pizzas y no ofrece ningún tipo de promoción, las pizzas pueden ser de tres tamaños; Familiar, Mediana e Individual, además pueden contener sólo tres ingredientes; ingrediente 1, ingrediente 2 e ingrediente 3. Los repartidores de la tienda pueden entregar el producto a un cliente y el cliente puede pedir y recibir más de una pizza. Los repartidores no pueden comprar una pizza en el local que trabajan. Puede haber más de un local en la ciudad y las compras se deben realizar por teléfono.
Desarrollo del caso Pizzería con el MR:
CASO RESUELTO EN OBJETO RELACIONAL
Representación de objeto Relacional para el caso pizzería
MODELO LÓGICO OBJETO RELACIONAL
cargas_t Empleado_tab Rut_c Nombre_c Fecha_nac_c Tabla Cargas_tab_t Tabla anidada Tipo Empleado_t rut_e Nombre_emp Fecha_nac telefono direccion departamento cargas Direccion_t calle varray numero ciudad Telefono_t Departamento_tab_t Id_depto Nombre_depto Tabla anidada Direccion_depto Departamento_t
1. Crear un tipo varray ‘telefono_t’ de tamaño 10 de tipo varchar 2(10). SQL> CREATE TYPE telefono_t AS VARRAY(10) OF varchar 2(10) 2. Crear un tipo de objeto de nombre ‘direccion_t’ con los siguientes atributos (calle varchar 2(20), numero varchar 2(5), ciudad varchar 2(10)). CREATE TYPE direccion_t AS OBJECT ( 2 calle varchar 2(20), 3 numero varchar 2(5), 4 ciudad varchar 2(10))
3. Crear un tipo de objeto ‘departamento_t’ con los siguientes atributos (id_depto number(5), nombre_depto varchar 2(15), direccion_depto direccion_t). CREATE TYPE departamento_t AS OBJECT ( 2 id_depto number(5), 3 nombre_depto varchar 2(15), 4 direccion_depto direccion_t) 4. Crear un tipo colección tabla ‘departamento_tab_t’ como tabla de ‘departamento_t’ para después anidarla. SQL> CREATE TYPE departamento_tab_t AS TABLE OF departamento_t
5. Crear un tipo de objeto ‘cargas_t’ con los siguientes atributos (rut_c varchar 2(10), nombre_c varchar 2(20), fecha_nac_c date) CREATE TYPE cargas_t AS OBJECT ( 2 rut_c varchar 2(10), 3 nombre_c varchar 2(20), 4 fecha_nac_c date) 6. Crear un tipo colección tabla ‘cargas_tab_t’ como tabla de ‘cargas_t’ para después anidarla CREATE TYPE cargas_tab_t AS TABLE OF cargas_t
7. Crear un tipo de objeto ‘empleado_t’ con los siguientes atributos rut_e, nombre_emp, fecha_nac, telefono (de tipo telefono_t), direccion de tipo direccion_t, departamento (como tabla anidada de tipo departamento_t), cargas (como tabla anidada de tipo cargas_t). CREATE TYPE empleado_t AS OBJECT ( 2 rut_e varchar 2(10), 3 nombre_emp varchar 2(20), 4 fecha_nac date, 5 telefono_t, 6 direccion_t, 7 departamento_tab_t, 8 cargas_tab_t) 8. Crear una tabla ‘empleado_tab’ de tipo empleado_t (con tablas anidadas ‘departamento, cargas)) CREATE TABLE empleado_tab OF empleado_t 2 ( primary key(rut_e)) 3 NESTED TABLE departamento STORE AS departamento_tab 4 NESTED TABLE cargas STORE AS cargas_tab
- Slides: 12