USAR LENGUAJE TRANSACCIONAL SOBRE LA BASE DE DATOS 1. Constr Construya uya los siguie siguiente ntes s proe!i proe!i"ie "iento ntos s Al"a Al"aena! ena!os os para inser inseri#n i#n !e registros$ % En &yS'L( para las ta)las *ro+esor, Curso, Estu!iante, Estu!iante-urso. Create proe!ure olegio/ Selet Selet 0 0 +ro" +ro" pro+esor, pro+esor, urso, estu!iante, estu!iante-u rso( all olegio/( all olegio/( % En ORACLE( para las ta)las Cliente, Artiulo, *e!i!o. Create or replae *ROCEDURE negoiosunos out SS2RE3CURSOR/ as BEGIN O*EN unos 3OR SELECT 0 3RO& liente, artiulo, pe!i!o( END negoios( % En el &otor !e su pre+erenia pre+erenia ORACLE O &yS'L/, para las ta)las, Co"pa45a, Co"pa45a, TiposAuto"otores, Auto"otores, Asegura"ientos, Ini!entes. Create proe!ure seguros/ Selet Selet 0 0 +ro" +ro" o"pa4ia, o"pa4ia, tiposauto"otores, auto"otore s, asegura"ientos, ini!entes( all seguros/( all seguros/( 6. En Ora Orale le ons onstr truy uya a los los proe proe!i !i"i "ien ento tos s al"a al"ae ena na!os !os para para real reali7 i7ar ar los los siguientes proesos$ % &uestre los salarios !e los pro+esores or!ena!os por ategor5a. reate or replae *ROCEDURE salariopro+esoruno out SS2RE3CURSOR/ as BEGIN O*EN uno 3OR SELECT sal2pro+ 3RO& pro+esor ORDER B ate2pro+( END salariopro+esor( % &uestre los ursos uyo 8alor sea "ayor a 9:;;.;;;. Create or replae *ROCEDURE 8alorursouno out SS2RE3CURSOR/ as BEGIN O*EN uno 3OR SELECT no"2urs 3RO& urso <=ERE 8alor2ur>?@:;;;;;@( END 8alorurso( % isuali7ar el no")re, apelli!o y !irei#n !e to!os auellos lientes ue ayan reali7a!o un pe!i!o el !5a 6: ;66;16. Create or replae *ROCEDURE pe!i!os;66:6;16uno out SS2RE3CURSOR/ as BEGIN
O*EN uno 3OR SELECT liente.no"2li, liente.ape2li, liente.!ir2li 3RO& liente, pe!i!o <=ERE pe!i!o.+e2pe!?@;66:6;16@( END pe!i!os;66:6;16( % Listar to!os los pe!i!os reali7a!os inluyen!o el no")re !el art5ulo. Create or replae *ROCEDURE to!ospe!i!osuno out SS2RE3CURSOR/ as BEGIN O*EN uno 3OR SELECT pe!i!o.i!2pe!, pe!i!o.i!2li2pe!, pe!i!o.+e2pe!, pe!i!o.8al2pe!, artiulo.tit2art 3RO& pe!i!o, artiulo( END to!ospe!i!os( % Listar los to!os !atos !e los auto"otores uya p#li7a e-pira en otu)re !e 6;1, este reporte !e)e 8isuali7ar la plaa, el "o!elo, la "ara, nF"ero !e pasaeros, ilin!rae no")re !e auto"otor, el 8alor !e la p#li7a y el 8alor asegura!o. Create or replae *ROCEDURE poli7aotu)reuno out SS2RE3CURSOR/ as BEGIN O*EN uno 3OR SELECT auto"otores.autoplaa, auto"otores.auto"o!elo, auto"otores.auto"ara, auto"otores.autonu"pasaeros, auto"otores.autoilin!rae, auto"otores.autotipo, asegura"ientos.aseosto, asegura"ientos.ase8alorasegura!o 3RO& auto"otores, asegura"ientos <=ERE asegura"ientos.ase+eae-piraion>@;H;6;1@ AND asegura"ientos.ase+eae-piraion@11;16;1@( END poli7aotu)re( . En &yS'L onstruya los proe!i"ientos al"aena!os para reali7ar los siguientes proesos$ % &uestre to!os los a"pos !e la ta)la urso en or!en asen!ente segFn el 8alor. CREATE *ROCEDURE ursoasen!ente/ NOT DETER&INISTIC CONTAINS S 'L S'L SECURIT DE3INER Selet 0 +ro" urso ORDER B 8alor2ur ASC( all ursoasen!ente/( % &ostrar los pe!i!os on los respeti8os art5ulos #!igo, no")re, 8alor y anti!a! pe!i!a/. Create proe!ure pe!i!osyartiulos/ Selet pe!i!o.i!2pe!,pe!i!o.i!2li2pe!, pe!i !o.+e2pe!, pe!i!o.8al2pe!,artiulo.i!2art, artiulo.tit2art, artiulo.pre2art,artiulo -pe!i!o.an2art2artpe! +ro" pe!i!o, artiulo,artiulo-pe!i!o all pe!i!osyartiulos/ % isuali7ar los !atos !e las e"presas +un!a!as entre el a4o 1HH1 y 1HHK. CREATE *ROCEDURE e"presa+un!a!a/ SELECT 0 3RO& o"pa4ia <=ERE o"a4o+un>?1HH1 AND o"a4o+un?1HHK all e"presa+un!a!a/ % isuali7ar to!os los lientes organi7a!os por apelli!o. Create proe!ure apelli!oslientes/ Selet 0 +ro" liente ORDER B ape2li
all apelli!oslientes/ % isuali7ar los !atos !e los ini!entes ue an teni!o un1/ eri!o, este reporte !e)e 8isuali7ar la plaa !el auto"otor, on los respeti8os !atos !e la p#li7a o"o son +ea !e iniio, 8alor, esta!o y 8alor asegura!o. CREATE *ROCEDURE ini!entesuneri!ouno int/ SELECTini!entes.iniplaa, i ni!entes.inianteri!os,asegura"ientos.ase+eainiio, asegura"ientos.aseost o,asegura"ientos.aseesta!o, asegura"ientos.ase8alorasegura!o3RO& ini!ente s, asegura"ientos <=ERE inianteri!os?uno all ini!entesuneri!o@1@/ % isuali7ar los ini!entes !el 8e5ulo on plaas 3LLM6;, este reporte !e)e 8isuali7ar la +ea, el lugar, la anti!a! !e eri!os !el ini!ente, la +ea !e iniio la !e e-pirai#n !e la p#li7a y el 8alor asegura!o. CREATE *ROCEDURE ini!entes3LLM6;+ll 8arar // SELECTini!entes.ini+e a,ini!entes.inilugar ,ini!entes.inianteri!os,asegura"ientos.ase+eainiio, asegura"ientos.ase+eae-piraion,asegura"ientos.ase8alorasegura!o3RO& in i!entes,asegura"ientos <=ERE iniplaa?+ll all ini!entes3LLM6;@3LLM6;@/ M. Realie las Siguientes +uniones en &yS'L$ % Cuente el nF"ero !e estu!iantes uya e!a! sea "ayor a 66. CREATE 3UNCTION ontarestu!iantesinput INT/ RETURNS INT11/ NOT DE TER&INISTIC CONTAINS S'L S'L SECURIT DE3INER BEGIN DECLARE an ti!a! int( SELECT COUNT0/ INTOanti!a! 3RO& estu!iante <=ERE e!a!2est>@ 66@( RETURN anti!a!( END SELECT ontarestu!iantesp;/ AS ontarestu!iantes % &uestre el no")re y la e!a! !el estu!iante "Ps o8en. CREATE 3UNCTION estu!ianteo8eninput INT/ RETURNS INT11/ NOT DETE R&INISTIC CONTAINS S'L S'L SECURIT DE3INER BEGIN DECLARE o8en i nt( Selet&INe!a!2est/ INTO o8en +ro" estu!iante( RETURN o8en( END SELECT estu!ianteo8enp;/ AS estu!ianteo8en( % Calule el 8alor pro"e!io !e los ursos uyas oras sean "ayores a M;. CREATE 3UNCTION 8alorpro"e!ioinput INT/ RETURNS INT11/ NOT DETE R&INISTIC CONTAINS S'L S'L SECURIT DE3INER BEGIN DECLARE pro"e !io int( SELECT AG8alor2ur/ INTO pro"e!io3RO& urso <=ERE oras2ur> ?@M;@( RETURN pro"e!io( END SELECT 8alorpro"e!iop;/ AS 8alorpro"e!io( % O)tener el suel!o pro"e!io !e los pro+esores !e la ategor5a 1. CREATE 3UNCTION suel!opro"e!ioinput INT/ RETURNS INT11/ NOT DET ER&INISTIC CONTAINS S'L S'L SECURIT DE3INER BEGIN DECLARE pro" e!io int( SELECT AGsal2pro+/ INTO pro"e!io3RO& pro+esor <=ERE ate2pro+ ?@1@( RETURN pro"e!io( END SELECT suel!opro"e!iop;/ AS suel!opro"e!io( % &uestre el no")re !el pro+esor on "enor suel!o. CREATE 3UNCTION "enorsuel!oinout INT/ RETURNS ARC=AR;/ NOT DETER&INISTIC CONTAINS S'L S'L SECURIT DE3INER BEGIN DECLARE
no")re 8arar ;/(SELECT no"2pro+ INTO no")re 3RO& pro+esor Qere sal2p ro+?selet "insal2pro+/ +ro" pro+esor/( RETURN no")re( END SELECT "enorsuel!op;/ AS "enorsuel!o( :. Realie las Siguientes +uniones en ORACLE$ % isuali7ar el no")re !el liente, la +ea y el 8alor !el pe!i!o "Ps ostoso. reate or replae 3UNCTION pe!i!o"asostos RETURN NU&BER IS 8alor NU&BER( BEGIN SELECT &A8al2pe!/ INTO 8alor 3RO& pe!i!o( RETURN 8alor( END( % &ostrar uantos art5ulos se tienen !e a!a e!itorial. reate or replae 3UNCTION ontare!itoriales RETURN NU&BER IS 8alor NU&BER( BEGIN SELECT COUNTe!i2art/ INTO 8alor 3RO& artiulo( RETURN 8alor( END( % isuali7ar to!os los !atos !e la p#li7a "Ps ostosa. reate or replae 3UNCTION poli7aostosa RETURN NU&BER IS 8alor NU&BER( BEGIN SELECT aseo!igo INTO 8alor 3RO& asegura"ientos <=ERE aseosto?selet "inaseosto/ +ro" asegura"ientos /( RETURN 8alor( END( % isuali7ar los ini!entes on el "5ni"o nF"ero !e autos in8olura!os, !e este ini!ente 8isuali7ar el esta!o !e la p#li7a y el 8alor asegura!o. reate or replae 3UNCTION "enosautos RETURN NU&BER IS 8alor NU&BER( BEGIN SELECT inio!igo INTO 8alor 3RO& ini!entes <=ERE inianautosin8olura!os?selet "ininianautosin8olura!os/ +ro" ini!entes/( RETURN 8alor( END( % isuali7ar los !atos !e la p#li7a uyo 8alor asegura!o es el "Ps ostoso, este reporte a!e"Ps !e 8isuali7ar to!os los !atos !e la p#li7a, !e)e presentar to!os los !atos !el 8e5ulo ue tiene !ia p#li7a. reate or replae 3UNCTION poli7aostosa RETURN NU&BER IS 8alor NU&BER( BEGIN SELECT aseo!igo INTO 8alor 3RO& asegura"ientos <=ERE ase8alorasegura!o?selet "a-ase8alorasegura!o/ +ro" asegura"ientos /( RETURN 8alor( END( . Construya los siguiente !ispara!ores para ontrolar la atuali7ai#n y )orra!o !e registros
% En &yS'L( para las ta)las *ro+esor, Curso, Estu!iante.
Actualización: Profesor
CREATE TRIGGER pro+esorup!ate BE3ORE U*DATE ON pro+esor 3OR EAC = RO< INSERT INTO trigger2pro+esores Dou"entoAnterior, No")reAnterior,Ap elli!oAnterior, CategoriaAnterior, SalarioAnterior, Dou"entoNue8o, No")reNue8o , Apelli!oNue8o, CategoriaNue8o, SalarioNue8o/ ALUES OLD.!o2pro+ , OLD.no "2pro+ , OLD.ape2pro+ ,OLD.ate2pro+ , OLD.sal2pro+ , NE<.!o2pro+ , NE<.no"2pr o+ , NE<.ape2pro+ , NE<.ate2pro+ , NE<.sal2pro+ /(
Curso
CREATE TRIGGER ursoup!ate BE3ORE U*DATE ON urso 3OR EAC= RO < INSERT INTO trigger2ursosCo!igoAnterior, No")reAnterior, =orasAnterior, alorAnterior, Co!igooNue8o, No")reNue8o,=orasNue8o, alorNue8o/ ALUES O LD.o!2urs, OLD.no"2urs, OLD.oras2ur , OLD.8alor2ur , NE<.o!2urs, NE <.no"2urs, NE<.oras2ur ,NE<.8alor2ur /(
Estudiante
CREATE TRIGGER estu!ianteup!ate BE3ORE U*DATE ON estu!iante 3OR E AC= RO< INSERT INTO trigger2estu!iante Dou"entoAnterior, No")reAnterior, Apelli!oAnterior, E!a!Anterior,Dou"entoNue8o, No")reNue8o, Apelli!oNue8o, E!a!Nue8o/ ALUES OLD.!o2est, OLD.no"2est, OLD.ape2est, OLD.e!a!2est, NE<.!o2est, NE<.no"2est, NE<.ape2est, NE<.e!a!2est/(
Borrado Profesor
CREATE TRIGGER pro+esor!elete A3TER DELETE ON pro+esor 3OR EAC= R O< INSERT INTO trigger2pro+esores Dou"entoAnterior, No")reAnterior, Apelli !oAnterior, CategoriaAnterior,SalarioAnterior, Dou"entoNue8o, No")reNue8o, A pelli!oNue8o, CategoriaNue8o, SalarioNue8o/ ALUES OLD.!o2pro+ , OLD.no" 2pro+ , OLD.ape2pro+ , OLD.ate2pro+ , OLD.sal2pro+ /(
Curso
CREATE TRIGGER urso!elete A3TER DELETE ON urso 3OR EAC= RO< I NSERT INTO trigger2ursosCo!igoAnterior, No")reAnterior, =orasAnterior, alor Anterior, Co!igooNue8o,No")reNue8o,=orasNue8o, alorNue8o/ ALUES OLD. o!2urs, OLD.no"2urs, OLD.oras2ur , OLD.8alor2ur /(
Estudiante
CREATE TRIGGER estu!iante!elete A3TER DELETE ON estu!iante 3OR EA C= RO< INSERT INTO trigger2estu!iante Dou"entoAnterior,No")reAnterior, A pelli!oAnterior, E!a!Anterior, Dou"entoNue8o, No")reNue8o, Apelli!oNue8o, E !a!Nue8o/ ALUES OLD.!o2est, OLD.no"2est, OLD.ape2est, OLD.e!a!2est/ % En ORACLE( para las ta)las Cliente, Artiulo, *e!i!o.
Actualización: Cliente
reate or replae trigger CLIENTEU*DATE BE3ORE up!ate on CLIENTE +or ea roQ
)egin INSERT INTO trigger2liente Co!igoAnterior, No")reAnterior, Apelli!oAnterior, DireionAnterior,Departa"entoAnterior, &esCu"pleAnterior, Co!igoNue8o, No")reNue8o, Apelli!oNue8o, DireionNue8o, Departa"entoNue8o, &esCu"pleNue8o/ ALUES $OLD.i!2li, $OLD.no"2li, $OLD.ape2li, $OLD.!ir2li, $OLD.!ep2li, $OLD."es2u"2li, $NE<.i!2li, $NE<.no"2li, $NE<.ape2li, $NE<.!ir2li, $NE<.!ep2li, $NE<."es2u"2li/( en!(
Articulo
reate or replae trigger ARTICULOU*DATE BE3ORE up!ate on ARTICULO +or ea roQ )egin INSERT INTO trigger2artiulo Co!igoAnterior, No")reAnterior, AutorAnterior, E!itorialAnterior, *reioAnterior, Co!igoNue8o, No")reNue8o, AutorNue8o, E!itorialNue8o, *reioNue8o/ ALUES $OLD.i!2art, $OLD.tit2art, $OLD.aut2art, $OLD.e!i2art, $OLD.pre2art, $NE<.i!2art, $NE<.tit2art, $NE<.aut2art, $NE<.e!i2art, $NE<.pre2art/( en!(
Pedido
reate or replae trigger *EDIDOU*DATE BE3ORE up!ate on *EDIDO +or ea roQ )egin INSERT INTO trigger2pe!i!o Co!igoAnterior, Dou"entoClienteAnterior, 3eaAnterior, alorAnterior, Co!igoNue8o, Dou"entoClienteNue8o, 3eaNue8o, alorNue8o/ ALUES $OLD.i!2pe!, $OLD.i!2li2pe!, $OLD.+e2pe!, $OLD.8al2pe!, $NE<.i!2pe!, $NE<.i!2li2pe!, $NE<.+e2pe!, $NE<.8al2pe!/( en!(
Borrado Cliente
reate or replae trigger CLIENTEDELETE A3TER !elete on CLIENTE +or ea roQ )egin INSERT INTO trigger2liente Co!igoAnterior, No")reAnterior, Apelli!oAnterior, DireionAnterior,Departa"entoAnterior, &esCu"pleAnterior, Co!igoNue8o, No")reNue8o, Apelli!oNue8o, DireionNue8o, Departa"entoNue8o, &esCu"pleNue8o/ ALUES $OLD.i!2li, $OLD.no"2li, $OLD.ape2li, $OLD.!ir2li, $OLD.!ep2li, $OLD."es2u"2li/( en!(
Articulo
reate or replae trigger ARTICULODELETE A3TER
!elete on ARTICULO +or ea roQ )egin INSERT INTO trigger2artiulo Co!igoAnterior, No")reAnterior, AutorAnterior, E!itorialAnterior, *reioAnterior, Co!igoNue8o, No")reNue8o, AutorNue8o, E!itorialNue8o, *reioNue8o/ ALUES $OLD.i!2art, $OLD.tit2art, $OLD.aut2art, $OLD.e!i2art, $OLD.pre2art/( en!(
Pedido
reate or replae trigger *EDIDODELETE A3TER !elete on *EDIDO +or ea roQ )egin INSERT INTO trigger2pe!i!o Co!igoAnterior, Dou"entoClienteAnterior, 3eaAnterior, alorAnterior, Co!igoNue8o, Dou"entoClienteNue8o, 3eaNue8o, alorNue8o/ ALUES $OLD.i!2pe!, $OLD.i!2li2pe!, $OLD.+e2pe!, $OLD.8al2pe!/( en!( % En el &otor !e su pre+erenia ORACLE O &yS'L/, para las ta)las, Auto"otores, Asegura"ientos, Ini!entes.
Actualización: Automotores
CREATE TRIGGER auto"otoresup!ate BE3ORE U*DATE ON auto"otores 3 OR EAC= RO< INSERT INTO trigger2auto"otores *laaAnterior, &araAnterior, TipoAnterior, &o!eloAnterior,Nu"ero*asaerosAnterior, Cilin!raeAnterior, Nu"ero CasisAnterior, *laaNue8o, &araNue8o, TipoNue8o, &o!eloNue8o, Nu"ero*as aerosNue8o, Cilin!raeNue8o, Nu"eroCasisNue8o/ALUES OLD.autoplaa, OL D.auto"ara, OLD.autotipo, OLD.auto"o!elo, OLD.autonu"pasaeros, OLD.auto ilin!rae, OLD.autonu"asis, NE<.autoplaa, NE<.auto"ara, NE<.autotipo,N E<.auto"o!elo, NE<.autonu"pasaeros, NE<.autoilin!rae, NE<.autonu"as is/
Aseguramientos
CREATE TRIGGER asegura"ientosup!ate BE3ORE U*DATE ON asegura"ien tos 3OR EAC= RO< INSERT INTO trigger2asegura"ientosCo!igoAnterior, 3e aIniioAnterior,3eaE-piraionAnterior, alorAsegura!oAnterior, Esta!oAnterior, CostoAnterior, *laaAnterior, Co!igoNue8o, 3eaIniioNue8o, 3eaE-piraionN ue8o, alorAsegura!oNue8o,Esta!oNue8o, CostoNue8o, *laaNue8o/ ALUES OLD.aseo!igo, OLD.ase+eainiio, OLD.ase+eae-piraion, OLD.ase8aloraseg ura!o, OLD.aseesta!o, OLD.aseosto, OLD.aseplaa,NE<.aseo!igo, NE<.ase+ eainiio, NE<.ase+eae-piraion, NE<.ase8alorasegura!o, NE<.aseesta!o, NE<.aseosto, NE<.aseplaa/
Incidentes
CREATE TRIGGER ini!entesup!ate BE3ORE U*DATE ON ini!entes 3OR E AC= RO< INSERT INTO trigger2ini!entesCo!igoAnterior, 3eaAnterior, *laa Anterior, LugarAnterior,Canti!a!=eri!osAnterior, Canti!a!3atali!a!esAnterior, Can ti!a!AutosIn8olura!osAnterior, Co!igoNue8o, 3eaNue8o, *laaNue8o, LugarN
ue8o, Canti!a!=eri!osNue8o,Canti!a!3atali!a!esNue8o, Canti!a!AutosIn8olura !osNue8o/ ALUES OLD.inio!igo, OLD.ini+ea, OLD.iniplaa, OLD.inilugar , OLD.inianteri!os, OLD.inian+atali!a!es,OLD.inianautosin8olura!os, NE <.inio!igo, NE<.ini+ea, NE<.iniplaa, NE<.inilugar , NE<.inianteri!os , NE<.inian+atali!a!es, NE<.inianautosin8olura!os/
Borrado Automotores
CREATE TRIGGER auto"otores!elete A3TER DELETE ON auto"otores 3OR EAC= RO< INSERT INTO trigger2auto"otores *laaAnterior, &araAnterior, Tip oAnterior, &o!eloAnterior,Nu"ero*asaerosAnterior, Cilin!raeAnterior, Nu"eroC asisAnterior, *laaNue8o, &araNue8o, TipoNue8o, &o!eloNue8o, Nu"ero*asae rosNue8o, Cilin!raeNue8o, Nu"eroCasisNue8o/ALUES OLD.autoplaa, OLD. auto"ara, OLD.autotipo, OLD.auto"o!elo, OLD.autonu"pasaeros, OLD.autoili n!rae, OLD.autonu"asis/
Aseguramientos
CREATE TRIGGER asegura"ientos!elete A3TER DELETE ON asegura"iento s 3OR EAC= RO< INSERT INTO trigger2asegura"ientosCo!igoAnterior, 3ea IniioAnterior,3eaE-piraionAnterior, alorAsegura!oAnterior, Esta!oAnterior, C ostoAnterior, *laaAnterior, Co!igoNue8o, 3eaIniioNue8o, 3eaE-piraionNu e8o, alorAsegura!oNue8o,Esta!oNue8o, CostoNue8o, *laaNue8o/ ALUES O LD.aseo!igo, OLD.ase+eainiio, OLD.ase+eae-piraion, OLD.ase8alorasegur a!o, OLD.aseesta!o, OLD.aseosto, OLD.aseplaa/
Incidentes
CREATE TRIGGER ini!entes!elete A3TER DELETE ON ini!entes 3OR EAC = RO< INSERT INTO trigger2ini!entesCo!igoAnterior, 3eaAnterior, *laaAnt erior, LugarAnterior,Canti!a!=eri!osAnterior, Canti!a!3atali!a!esAnterior, Canti! a!AutosIn8olura!osAnterior, Co!igoNue8o, 3eaNue8o, *laaNue8o, LugarNue 8o, Canti!a!=eri!osNue8o,Canti!a!3atali!a!esNue8o, Canti!a!AutosIn8olura!o sNue8o/ ALUES OLD.inio!igo, OLD.ini+ea, OLD.iniplaa, OLD.inilugar , OLD.inianteri!os, OLD.inian+atali!a!es,OLD.inianautosin8olura!os/