Вы находитесь на странице: 1из 17

Implementacin de Triggers

GUIA PARA EL DESARROLLO DE LABORATORIO DE


BASE DE DATOS
1. OBJETIVO
a. Conformar una Gua de Procesos para ser aplicado en el desarrollo del
Proec!o de Base de da!os"
2. CONTENIDO
La presen!e #ua pre!ende descri$ir paso a paso las acciones a lle%ar a ca$o para
el desarrollo de una propues!a orien!ada al uso de una $ase de da!os en una empresa.
PASO 1: ELABORACION DEL MODELADO DE DATOS EN ERWIN
DESCRIPCION DEL CASO
CONTROL DE PRESTAMOS Y DEVOLUCIONES DE LIBROS EN UNA BIBLIOTECA
La Bi$lio!eca es una ins!i!uci&n creada con la finalidad de pro%eer de li$ros"
manuales" re%is!as" CD" en!re o!ros ma!eriales de lec!ura" a los di%ersos usuarios Lec!ores
de C'im$o!e para cua !area se 'a definido el si#uien!e procedimien!o(
Los Lec!ores son personas na!urales iden!ificados con una fic'a de inscripci&n a
!ra%)s de su n*mero de D+I" nom$re comple!o" direcci&n" n*mero de !el)fono fi,o"
n*mero de !el)fono m&%il" e-mail un a!ri$u!o denominado es!ado .ue !endr/ los
si#uien!es %alores(
0. Lec!or cas!i#ado" 1. li$ro indefinidamen!e" 2. Lec!or amones!ado 'as!a
nue%o a%iso" 3. Lec!or separado.
Al#unos li$ros !ienen m/s de un e,emplar disponi$le para el ser%icio de lec!ura.
Asimismo" se lle%ar/ re#is!ro de los Au!ores.
Tendremos en cuen!a .ue un Au!or puede 'a$er escri!o uno o m/s li$ros un li$ro
puede es!ar escri!o por uno o m/s au!ores.
De i#ual manera se !endr/ en cuen!a la informaci&n de las Edi!oriales a las .ue
per!enecen los li$ros de la $i$lio!eca.
Los e,emplares de Li$ros pueden es!ar disponi$le para lec!ura en sala o a
domicilio.
Asimismo" los e,emplares !ienen re#is!ro de su es!ado ac!ual4 el mismo .ue puede
ser(
o 0( 5Buen es!ado6
o 1( 57anc'ado6
o 2( 5Ro!o6
o 3( 5Perdido6
Adem/s4 se lle%ar/ re#is!ro de la disponi$ilidad del e,emplar del li$ro4 es decir" si
dic'o e,emplar se encuen!ra en calidad de 5pres!ado6" para ello u!ili8aremos un
1
Implementacin de Triggers
a!ri$u!o del E,emplar .ue marcar/ 0 si el e,emplar es!/ pres!ado & marcar/ 1" si el
e,emplar es!/ disponi$le.
Cuando el e,emplar de un li$ro es en!re#ado en calidad de 5pr)s!amo6" el a!ri$u!o
disponi$ilidad pasar/ a 5pres!ado64 es decir" cam$iar/ de 0 a 1. Cuando el e,emplar
es de%uel!o por el lec!or" el a!ri$u!o cam$iar/ nue%amen!e a 5disponi$le64 es!o es"
ser/ modificado de 1 a 0.
La solici!ud del E,emplar de un Li$ro se lle%a a ca$o a !ra%)s de la 9ic'a de
Pr)s!amo en la cu/l se consi#nar/n los si#uien!es da!os( fec'a de pr)s!amo del
Li$ro" D+I del Lec!or" Tipo de pr)s!amo :0( Lec!ura en sala ; 1. Lec!ura a domicilio<"
fec'a a de%ol%er el e,emplar" fec'a de de%oluci&n :al in#resar el pr)s!amo del
e,emplar" es!ar/ en $lanco se car#ar/ en el re#is!ro de de%oluci&n<" Es!ado del
Li$ro :Se car#ar/ en el re#is!ro de de%oluci&n ser/( 0. Buen es!ado" 1.
7anc'ado" 2. Ro!o" 3. Perdido<.
Cuando un nue%o pr)s!amo se 5inser!e6 en la !a$la de pr)s!amos 'aremos los
si#uien!es con!roles(
o =erificar el es!ado del lec!or para sa$er si es!/ au!ori8ado.
o =erificar el es!ado del Li$ro para sa$er si es!/ disponi$le
o Ac!uali8ar el a!ri$u!o disponi$ilidad del e,emplar" .ue pasar/ de disponi$le
a 5pres!ado6.
Cuando un e,emplar 'a sido de%uel!o" 5Ac!uali8aremos6 la !a$la de pr)s!amos
lle%aremos a ca$o los si#uien!es con!roles(
o =erificar .ue la fec'a a de%ol%er sea menor o i#ual a la fec'a de de%oluci&n
del li$ro. Si no es asi" aplicar una sanci&n ac!uali8ar el 5es!ado6 del lec!or
!eniendo en cuen!a .ue su nue%o %alor ser/( 2. 5Lec!or amones!ado 'as!a
nue%o a%iso6.
o =erificar el es!ado del Li$ro compararlo con el es!ado del e,emplar4 si no
coinciden4 aplicar una sanci&n" ac!uali8ar el es!ado del Lec!or se#*n sea
el caso.
o Ac!uali8ar el a!ri$u!o disponi$ilidad del e,emplar" .ue pasar/ de 0. Pres!ado
a su nue%o %alor 1. Disponi$le.
Ela$orar el modelado de da!os normali8ado del caso descri!o" !eniendo en cuen!a
.ue 'a$r/ una !a$la donde se re#is!rar/ el mo%imien!o de li$ros" la misma .ue operar/ de
la si#uien!e manera(
a< Al Inser!ar un nue%o pr)s!amo de Li$ro se disparar/ un Tri##er .ue con!role los
casos descri!os" en consecuencia4 se desarrollar/ un !ri##er 9OR Inser!.
$< Al Ac!uali8ar la de%oluci&n de un Li$ro pres!ado" se disparar/ un Tri##er .ue
con!role los casos descri!os" en consecuencia4 se desarrollar/ un !ri##er 9OR
Upda!e.
El 7odelado propues!o" es el si#uien!e(
1
Implementacin de Triggers
PASO 2: IMPLEMENTACION DE UN TRIGGER EN ERWIN
TRIGGER PARA INSERCION EN LA TABLA MOVE_LIBROS
:Re#is!ro de un nue%o Pr)s!amo de Li$ro<
Crearemos el !ri##er desde ER>in llamado 5Inser!aPres!amos6 so$re la !a$la
7O=E?LIBROS para la operaci&n de I+SERCIO+4 de la si#uien!e manera(
@a#amos clicA derec'o so$re la !a$la 7O=E?LIBROS eli,amos la opci&n !ri##er4
asi(
1
Implementacin de Triggers
A con!inuaci&n %eremos la %en!ana Tri##ers" a.u pulsemos el $o!&n +e>B %eremos la
%en!ana( +e> !ri##er4 en!onces escri$iremos el nom$re del Tri##er" asi(
1
Implementacin de Triggers
En la si#uien!e %en!ana ele#iremos la opci&n Inser!" .uedar/ asi(
A'ora" pasaremos a la pes!aCa( Code $orraremos el c&di#o 'as!a de,arlo como se
indica a con!inuaci&n(
1
Implementacin de Triggers
En!onces escri$iremos el si#uien!e c&di#o Transac! SDL(
;E CREATE TRIGGER Inser!aPres!amos
O+ 7O=E?LIBROS
9OR I+SERT
AS E;
BEGI+
SET +OCOU+T O+4
DECLARE Fes!adoLec!or c'ar:G0<
DECLARE Fdisponi$ilidad c'ar:G0<
selec! Fes!adolec!or H
:selec! LEC?es!ado
from LECTORES L
inner ,oin inser!ed i
on L.LEC?dni H i.LEC?dni<
selec! Fdisponi$ilidad H
:selec! EIE?disponi$ilidad
from EIE7PLARES E
inner ,oin inser!ed i
on E.EIE?numero H i.EIE?numero<
if Fdisponi$ilidad H J0J A+D Fes!adolec!or H J3J
$e#in
UPDATE EIE7PLARES
SET EIE?disponi$ilidad H J1J
9RO7 EIE7PLARES E
inner ,oin 7O=E?LIBROS 7
on E.EIE?numero H 7.EIE?numero
UPDATE LECTORES
1
Implementacin de Triggers
SET LEC?es!adoHJ2J
from LECTORES L
inner ,oin 7O=E?LIBROS 7
on L.LEC?dni H 7.LEC?dni
end
ELSE
$e#in
if Fdisponi$ilidad H 1
Be#in
RAISERROR:JEl Li$ro es!a pres!adoJ" 0G"0<
ROLLBACK TRA+SACTIO+
End
I9 Fes!adolec!or H 0
Be#in
RAISERROR:JEl Lec!or !iene li$ro pres!ado fuera de fec'aJ" 0G"0<
ROLLBACK TRA+SACTIO+
End
I9 Fes!adolec!or H 1
Be#in
RAISERROR:JEl Lec!or es!a cas!i#adoJ" 0G"0<
ROLLBACK TRA+SACTIO+
End
I9 Fes!adolec!or H 2
Be#in
RAISERROR:JEl Lec!or !iene un li$ro pres!adoJ" 0G"0<
ROLLBACK TRA+SACTIO+
End
end
E+D
GO
TRIGGER PARA ACTUALIZAR LA TABLA MOVE_LIBROS
:Re#is!ro de la De%oluci&n de Li$ros<
Se#uiremos los pasos an!es seCalados en ER>in 'as!a %er la si#uien!e %en!ana(
1
Implementacin de Triggers
Pasaremos a la pes!aCa Code comple!aremos con el si#uien!e c&di#o Transac!
SDL(
;E CREATE TRIGGER de%olucionPres!amos
O+ 7O=E?LIBROS
9OR UPDATE
AS E;
BEGI+
SET +OCOU+T O+
DECLARE Fes!adoli$ro c'ar:G0<
DECLARE Ffec'aDe%uel!o da!e!ime
DECLARE Ffec'aDe%ol%er da!e!ime
selec! Fes!adoli$ro H
:selec! 7O=?es!adoli$ro
from inser!ed<
selec! Ffec'aDe%uel!o H
:selec! 7O=?es!adoli$ro
from inser!ed<
selec! Ffec'aDe%ol%er H
:selec! 7O=?es!adoli$ro
1
Implementacin de Triggers
from inser!ed<
I9:Fes!adoli$ro H 0<
BEGI+
UPDATE EIE7PLARES
SET EIE?disponi$ilidad H J0J
9RO7 inser!ed I
inner ,oin EIE7PLARES E
on E.LIB?codi#o H I.LIB?codi#o
and E.EIE?numero H I.EIE?numero
I9:Ffec'aDe%uel!o LH Ffec'aDe%ol%er<
BEGI+
UPDATE LECTORES
SET LEC?es!adoHJ0J -- @a$ili!ado
9RO7 inser!ed I
inner ,oin LECTORES L
on I.LEC?dni H L.LEC?dni
E+D
ELSE
BEGI+
UPDATE LECTORES
SET LEC?es!adoHJ2J -- In'a$ili!ado
9RO7 inser!ed I
inner ,oin LECTORES L
on I.LEC?dni H L.LEC?dni
E+D
-- Ac!uali8a el es!ado de los E,emplares
UPDATE EIE7PLARES
SET EIE?es!adoHFes!adoLi$ro
9RO7 inser!ed I
inner ,oin EIE7PLARES E
on E.LIB?codi#o H I.LIB?codi#o
and E.EIE?numero H I.EIE?numero
E+D
ELSE --+o es!/ permi!ido de%ol%er li$ros en mal es!ado
BEGI+
roll$acA !ransac!ion
raiserror:JLi$ro en mal es!adoJ" 0G" 0<
E+D
E+D
#o
PASO 3: IMPLEMENTACION DE LA BASE DE DATOS EN SQL SERVER 2005
A con!inuaci&n" pasaremos el modelo de da!os desarrollado en ER>in a la Base de
da!os en SDL Ser%er" de la si#uien!e manera(
In#resemos a ER>in eli,amos las si#uien!es opciones del 7en* Principal(
Tools 9or>ard En#ineers;Sc'ema #enera!ion ..
1
Implementacin de Triggers
=eremos la si#uien!e %en!ana(
Apli.uemos clicA en el $o!&n Pre%ie>B seleccionemos el c&di#o Transac! SDL
#enerado" lue#o copie al por!apapeles dic'o c&di#o" de la si#uien!e manera(
1
Implementacin de Triggers
A'ora" in#resemos a 7icrosof! SDL Ser%er 1GGM donde crearemos una nue%a $ase de
da!os con el nom$re BIBLIOTECA" asi(
Seleccionemos la opci&n +e> Duer del men* auNiliar pe#aremos el c&di#o Transac!
SDL del por!apapeles" en!onces la %en!ana .uedar/ asi(
1
Implementacin de Triggers
En es!e pun!o podremos pulsar 9M se e,ecu!ar/ el c&di#o Transac! SDL.
PASO : IMPLEMENTACION DE UNA APLICACI!N INTEGRADORA EN VISUAL
BASIC NET 2005
In#resemos a =isual Basic +e! 1GGM
Apli.uemos en( Arc'i%o +ue%o Proec!o
+om$re del Proec!o( OinProec!o
Apli.uemos en( Da!os A#re#ar nue%o ori#en de da!os B
=eremos la si#uien!e %en!ana(
1
Implementacin de Triggers
Apli.uemos en el cono Base de da!os 'a#amos clicA en el $o!&n Si#uien!e P
La ConeNi&n de da!os se refiere a la $ase de da!os( Bi$lio!eca" creada en SDL Ser%er.
A con!inuaci&n" clicAeamos en Si#uien!e P4 para #uardar la cadena de coneNi&n.
=eremos la si#uien!e %en!ana en la .ue ele#iremos el c'ecA Ta$la" asi(
1
Implementacin de Triggers
ClicA en el $o!&n 9inali8ar" en!onces %eremos la si#uien!e %en!ana(
A'ora" pasaremos la informaci&n de cada !a$la de da!os a cada formulario de acuerdo a
uno de los forma!os si#uien!es" 'aciendo clicA en cada !a$la4 %eamos(
Despues de ele#ir Da!aGrid=ie>" Arras!raremos la !a$la Au!ores al formulario %eremos(
1
Implementacin de Triggers
@aremos lo mismo en un nue%o formulario" por cada una de las !a$las lis!o4 a
podremos disponer de los da!os en formularios de la aplicaci&n.
D"#$%& '$( )&*+,(-*"& P*"./"0-(
A#re#aremos un nue%o formulario 'aciendo clicA derec'o so$re OinBi$lio!eca del
eNplorador de soluciones4 asi(
1
Implementacin de Triggers
En la si#uien!e %en!ana ele#iremos 9ormulario primario 7DI" asi(
1
Implementacin de Triggers
Se mos!rar/ el si#uien!e formulario en el .ue podremos diseCar el men* para acceder a
cada formulario donde 'aremos el in#reso de los da!os de cada !a$la.
El men* .uedar/ asi(
Para 5enla8ar6 cada opci&n del men* con cada formulario" 'aremos do$le clicA so$re la
opci&n escri$iremos el nom$re del formulario el m)!odo s'o>4 por e,emplo(
9orm0.s'o>
1

Вам также может понравиться