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