scripobjetobanco.sql

Download ScripObjetoBanco.sql

If you can't read please download the document

Upload: anita-sichique

Post on 13-Nov-2015

224 views

Category:

Documents


6 download

TRANSCRIPT

-----------BASE DE DATOS ORIENTADA A OBJETOS-------------------------INTEGRANTES: ------------------------------------Calle Paul --Palacios Cristian --Sichique Anita--Zhunio Jhonatan---------------------------------Creacion Usuario---------------------------------create user usr_objetobanco identified by objetobanco;---------------------------------Asignar Recursos---------------------------------grant connect, resource to usr_objetobanco;----------------------------------Coneccion---------------------------------------connect usr_objetobanco/objetobanco@XE; ----------------------------------NESTED TABLE------------------------------------------------------------ Hacer table nested--------------------------------------------Create or replece type: Sirve para crear la espesificacion de un tipo de objeto en SQL--Creacion del objeto obj_bancos: obj_bancos para calcular los anios de antiguedad--Creacion obj_antgAnios_cab_tab: Tabla table of que guarda los atributos que son:(ancab_id,ancab_anio) -- del type obj_antgAnios_cab--NESTED TABLE 1--primer pasocreate or replace type objBancos_t as object (ban_id number (6),ban_ruc number (15),ban_nombre varchar2 (100));--segundo pasocreate or replace type objBancos_tab is table of objBancos_t;--NESTED TABLE 2create or replace type tipTansaciones_t as object (tptr_id number (6),tptr_nombre varchar2 (100));create or replace type tipTansaciones_tab is table of tipTansaciones_t;-----------------------------------OBJETOS---------------------------------------- --*OBJETOS INTERNOS*--create or replece type: Sirve para crear la espesificacion de un tipo de objeto en SQL--creacion nombre del objetp: 'objeto direcciones_t' donde 't' es un estander para espesificar que es un objeto--REF: Es el alcance del objeto que tiene sobre otro objeto-- Primero definimos un objeto direcciones_t, cargos_t,tipo_roles_t,rubros_t que seran parte-- de los objetos de las tablas create or replace type direcciones_t as object (calle_principal varchar2 (100), calle_secundaria varchar2 (100), ciudad varchar2(60)); create or replace type monedas_t as object (nombre varchar2 (100));create or replace type tipo_cuentas_t as object(nombre varchar2 (50));create or replace type tipo_transacciones_t as object (nombre varchar2 (100)); --***OBJETOS DE LA TABLAS*** --En esta seccion se ase uso de los objetos creados anteriormente, y se --declara los metodos que van a ser usados create or replace type clientes_t as object (clie_id number (6),clie_cedula_ruc varchar2 (10), clie_nombres varchar2 (100), clie_apellidos varchar2 (100), clie_telefono varchar2 (10), clie_celular varchar2(10),clie_fecha date, clie_direccion direcciones_t, member FUNCTION F_VALIDAR_CEDULA(p_cedula varchar2) RETURN VARCHAR2);create or replace type cuentas_t as object(cuen_id number (6),cuen_numero_cuenta number (10), cuen_f_inicio date, cuen_f_fin date,cuen_saldo number(9,2),cuen_estado varchar2 (10),cuen_cliente ref clientes_t,cuen_moneda monedas_t,cuen_cuenta tipo_cuentas_t); create or replace type transacciones_t as object(tran_id number (6),tran_fecha date,tran_cuentas ref cuentas_t,tran_tipo_transaccion tipo_transacciones_t);create or replace type intereses_t as object (inte_id number (6),inte_nombre varchar2(100),inte_valor_tasa number(10),inte_estado varchar2(10),inte_f_inicio date,inte_f_fin date,inte_transaccion ref transacciones_t);--tercer paso create or replace type bancoSucursal_t as object (suc_id number (6),suc_nombre varchar2 (100),suc_cliente ref clientes_t,suc_banco objBancos_tab);--create or replace type cantiTransaciones_t as objet (ctran_id number(6),ctran_-----------------------------------CREATE TABLE--------------------------------------------TABLAS CON CAMPOS TIPO OBJETOS --SCOPE: Puede ser como alcance a una tabla de objetos del tipo declarado o de cualquier subtipo del tipo declarado --store as: Muestra la tabla que almacena una instancia del .--nested table : almacema las filas de una table anidad en una table de almacenamineto independiente---Ahora el tipo de objeto se define lo podemos usar como un tipo de datos en una tabla.--Create table de objetos:, es una tabla que utiliza un tipo de objeto, --se define explcitamente a mantener instancias de objetos de un tipo determinadocreate table clientes_tab of clientes_t(clie_id PRIMARY KEY );create table cuentas_tab of cuentas_t(PRIMARY KEY(cuen_id),SCOPE FOR (cuen_cliente) IS clientes_tab);create table transacciones_tab of transacciones_t(PRIMARY KEY (tran_id),SCOPE FOR (tran_cuentas) IS cuentas_tab);create table intereses_tab of intereses_t(PRIMARY KEY(inte_id),SCOPE FOR (inte_transaccion) IS transacciones_tab);---- CREAR TABLA ANIDADcreate table bancoSucursal_tab of bancoSucursal_t(PRIMARY KEY(suc_id ),SCOPE FOR (suc_cliente) IS clientes_tab)nested table suc_banco store as sucbanco_tab;-------------------------------------INSERT INTO-------------------------------------Podemos insertar datos en una tabla de dos maneras, --1.-- La sentecia insert into 'nombre de la tabla' values: se utiliza para anadir nuevas filas de datos en una tabla a un --objeto sencillo--------------CLIENTES--Para insertar datos en la tabla EMPLEADOS debemos usar la direcciones_t () constructor.insert into clientes_tab values(1,'0105721435','Paul','Calle','2895478','0989945895','01/02/2013',direcciones_t('Sangurima','Miguel Velez','Cuenca')); insert into clientes_tab values(2,'0123243443','Christian ','Palacios','2889346','0983435568','01/02/2013',direcciones_t('Manuel Vega','Lamar','Cuenca')); insert into clientes_tab values(3,'0705339646','Anita','Sichique','2890327','0908585765','01/03/2012',direcciones_t('Calle Vieja','Erohes de Verde Loma','Cuenca')); insert into clientes_tab values(4,'0107457689','Jhonatan','Zhunio','2847389','0944676789','01/03/2013',direcciones_t('Loja','Don Bosco','Cuenca'));--------------CUENTAS ---2.Insertar datos en una tabla a travez de una instruccion select.---Se inserta los datos en todas las columnas ---REF: donde referenciamos la tabla que esta enlasada con la tabla que vamos a insertar los datos. ----------CUENTASINSERT INTO cuentas_tabselect 100,55326588,'01/02/2005','20/12/2016',800,'A',REF(cli),monedas_t('DOLARES'),tipo_cuentas_t('CORRIENTE')from clientes_tab cliwhere cli.clie_id=1;INSERT INTO cuentas_tabselect 101,55326589,'01/02/2000','20/12/2018',600,'A',REF(cli),monedas_t('SOLES'),tipo_cuentas_t('CORRIENTE')from clientes_tab cliwhere cli.clie_id=2;INSERT INTO cuentas_tabselect 102,55326590,'01/03/2012','01/11/2015',350,'A',REF(cli),monedas_t('DOLARES'),tipo_cuentas_t('CORRIENTE')from clientes_tab cliwhere cli.clie_id=3;INSERT INTO cuentas_tabselect 103,55326591,'01/02/2012','20/12/2015',500,'A',REF (cli),monedas_t('DOLARES'),tipo_cuentas_t('AHORRO')from clientes_tab cliwhere cli.clie_id=4;-----------------TRANSACCIONESINSERT INTO transacciones_tabselect 200,'01/01/2013',REF(cue),tipo_transacciones_t('TRASPASO')from cuentas_tab cuewhere cue.cuen_id=100;INSERT INTO transacciones_tabselect 201,'01/03/2013',REF(cue),tipo_transacciones_t('DEPOSITO')from cuentas_tab cuewhere cue.cuen_id= 101;INSERT INTO transacciones_tabselect 202,'01/11/2014',REF(cue),tipo_transacciones_t('RETIRO')from cuentas_tab cuewhere cue.cuen_id= 102;INSERT INTO transacciones_tabselect 203,'01/05/2014',REF(cue),tipo_transacciones_t('PAGO PRESTAMO')from cuentas_tab cuewhere cue.cuen_id=103;---------------INTERESESINSERT INTO intereses_tabselect 300,'CREDITO',18.96,'ACTIVO','20/06/2011','20/07/2011',REF(tr)from transacciones_tab trwhere tr.tran_id=200;INSERT INTO intereses_tabselect 301,'POLIZA',2.96,'ACTIVO','25/08/2011','25/11/2014',REF(tr)from transacciones_tab trwhere tr.tran_id=201;INSERT INTO intereses_tabselect 302,'AHORRO LARGO PLAZO',1.50,'ACTIVO','18/06/2010','18/06/2015',REF(tr)from transacciones_tab trwhere tr.tran_id=202;INSERT INTO intereses_tabselect 303,'MORA',9.50,'ACTIVO','20/04/2000','20/04/2010',REF(tr)from transacciones_tab trwhere tr.tran_id=203;------------------------------insertar nested table------------------------------------------------------nested table : almacema las filas de una table anidad en una table de almacenamineto independiente --insercion de los datos en una tabla anida en una tabla de almacenamineto independiente.--INSERTAR DATOS DE TABLE NESTEDINSERT INTO bancoSucursal_tabselect 400,'PICHINCHA GUAYAQUIL',REF(cl),objBancos_tab(objBancos_t(500,0101257810,'PICHINCHA'))from clientes_tab clwhere cl.clie_id=1;INSERT INTO bancoSucursal_tabselect 401,'QUITO',REF(cl),objBancos_tab(objBancos_t(501,0101257822,'AUSTRO'))from clientes_tab clwhere cl.clie_id=2;INSERT INTO bancoSucursal_tabselect 402,'AMBATO',REF(cl),objBancos_tab(objBancos_t(502,0101255462,'LOJA'))from clientes_tab clwhere cl.clie_id=3;INSERT INTO bancoSucursal_tabselect 403,'ZAMORA',REF(cl),objBancos_tab(objBancos_t(503,0198257822,'INTERNACIONAL'))from clientes_tab clwhere cl.clie_id=4;--****************************************BIBLIOGRAFIA************************************************************--[1]http://www.kybele.etsii.urjc.es/docencia/BD/2012-2013/Material/[BD-2010-2011]PLSQL.ObjectTypes.pdf--[2]http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_8002.htm--[3]http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4002.htm#i2115685--[4]http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_8001.htm#i2083561--[5]http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/create_type_body.htm#LNPLS01376--[6]http://www.oracle-base.com/articles/8i/object-types.php--[7]http://www.java2s.com/Tutorial/Oracle/0620__Object-Oriented/Createtypebody.htm--[8]http://es.softuses.com/110945--forma de calcular el bono de las vaciones--[9]http://www.aguirreyasociados.ec/phocadownload/vacaciones%202012.pdf