Académique Documents
Professionnel Documents
Culture Documents
3.1 Introduction
La base de donnes de lAS400 sappelle DB2/400 ; elle fait partie intgrante de lOS/400 . Cest une base de donnes relationnelle . lle est base sur deu! t"pes dob#ets $ les fi%&iers p&"si'ues 'ui sont l'ui(alent des tables ) et les fi%&iers logi'ues 'ui sont l'ui(alent des (ues et des #ointures . On peut a%%der * %es fi%&iers de diffrentes +ani,res $ - par progra++e ./01)COBOL)2A3A)CL )C et%45 - par S6L - par des outils sp%ifi'ues de lOS400 %o++e le 67 /8 'ui per+et de gnrer fa%ile+ent des rapports . Les +anipulations des fi%&iers peu(ent 9tre %ontr:les par des triggers . Les a%%,s %on%urrents au! +9+es fi%&iers sont bien entendu grs .gestion de (errous et%45 Les tables peu(ent 9tre inde!es . Contraire+ent * %e 'ui se passe a(e% dautres bases de donnes )il ne!iste 'uune seule instan%e de DB2 sur le s"st,+e OS400 .elle porte dans larbores%en%e le no+ S;<C=20 5 . 0our grer lindpendan%e des ob#ets.tables)(ues)pro%dures e+bar'ues et%45 %rs par les diffrents utilisateurs ) DB2 .tout %o++e dautres DB 5 utilise des > espa%es de no++age ? appels > s%&+as ? . 0rati'ue+ent un s%&+a %orrespond * une librairie de 6S8S .C&a'ue utilisateur de notre s"st,+e poss,de don% un s%&+a 'ui lui est propre . Lors'uil fait appel * ob#et de son propre s%&+a lutilisateur utilise la no+en%lature @o+Ob#et . !e+ple $ sele%t A fro+ %lients5 . Los'uil fait appel * un ob#et dun autre s%&+a il utilise la no+en%lature $ @o+DuS%&+a.@o+Ob#et. !e+ple $ sele%t A fro+ 2000B.CLC @DS 5 . La gestion de DB2/400 se ralise ais+ent grE%e * loutil C< @a(igator .
On en%ode ensuite toutes les %olonnes a(e% leur t"pe et leurs sp%ifi%its %o++e par e!e+ple une gnration auto+ati'ue de (aleurs nu+ri'ues .Le t"pe d%i+al %on(ient parti%uli,re+ent au! (aleurs nu+ri'ues %ar il %adre bien a(e% le for+at pa%Fed de%i+al de lOS400 .
3.2.2 Contraintes de cl $
=a%tures $
Dtail $
Le for+at den%odage des dates est AAAA-HH-22 . !e+ple $ 200I-02-20 Les %&a+ps boolens dans DB2/400 sont reprsents par des %&a+ps de t"pe %ara%t,re et de longueur B .La (aleur =ALS est reprsente par le %ara%t,re J0 .Kro5 et la (aleur D/7 par le %ara%t,re JB .
Les diffrentes a%tions possibles sont $ suppression $ o @OACDCO@ %ontr:le lors du COHHCD .#ournalisation obligatoire5 o / SD/CCD %ontr:le i++diat .#ournalisation fa%ultati(e5 o CASCAD entraLne la suppression des enregistre+ents dpendants dans a%&ats .#ournalisation obligatoire5 o S D@7LL entraLne la +ise * blan% des %ls trang,res dans a%&ats.#ournalisation obligatoire5 o S DD=D entraLne la +odifi%ation des %ls trang,res * leur (aleur par dfaut..#ournalisation obligatoire5
+ise * #our $
o @OACDCO@ %ontr:le lors du COHHCD .#ournalisation obligatoire5 o / SD/CCD %ontr:le i++diat .#ournalisation fa%ultati(e5
@o+bre initial de lignes $ @o+bre de re%ords initiale+ent rser(s pour la table dans lespa%e dis'ue. Cn%r+entation du no+bre de lignes $ @o+bre de lignes a#outes lors de %&a'ue in%r+entation de lespa%e dis'ue allou en %as de dpasse+ent de lespa%e initial . @o+bre +a!i+al din%r+ents $ sans %o++entaire . Delle 'uelle est para+tre %i-dessus ) la table %lients pourra don% %ontenir au +a!i+u+ $ B00 N< A <0 G O<0 lignes . Ce &ui )er%et de sto))er un )rogra%%e &ui boucle et re%)lit la table de %ani*re inte%)esti+e , Si ce )ara%trage nest )as effectu - la))lication fauti+e sera sto))e lors&ue le &uota dis&ue allou au )ro)ritaire de la table sera atteint ..out nou+el acc*s au s/st*%e sera alors gra+e%ent )erturb .
-+ode le%ture seule -+ode %riture seule -+ode +ise * #our n %as da%%,s %on%urrents ) on pr(oit lors de la %ration du fi%&ier ) un te+ps dattente +a!i+u+ pour les progra++es en attente .par dfaut ;0 se%5. !e+ple $ Soient deu! progra++es pg+B et pg+2 a%%dant au +9+e fi%&ier et au +9+e re%ord de %e fi%&ier . pg+B et pg+2 a%%,dent tous deu! en +ode +ise * #our .Dout enregistre+ent lu * des fins de +ise * #our est (errouill. Don% si pg+B a%%,de le pre+ier * un re%ord donn ) il (errouille %elui-%i et e+p9%&e pg+2 d" a%%der . Ber %as $ pg+B ne lib,re pas le re%ord a(ant le te+ps dattente +a!i+u+ $ pg+2 (a rester blo'u )pendant le te+ps dattente +a!i+u+ )au ni(eau de linstru%tion de le%ture a(ant de d%len%&er une e!%eption .Cette e!%eption ) si elle nest pas inter%epte ) plantera pg+2 . n 2A3A ) on utilise les %lauses tr" et %at%& pour grer %es e!%eptions . 2,+e %as $ pg+B lib,re le re%ord a(ant le te+ps dattente +a!i+u+ $ au +o+ent de la +ise * #our et de la libration du re%ord par pg+B ) pg+2 a%%,de au re%ord en +ise * #our et (errouille * son tour le re%ord .
Dlai dattente +a!i+al $ te+ps dattente de la table globale a(ant un ti+e-out . Dlai dattente de ligne +a!i+al $ te+ps dattente dun re%ord de la table a(ant ti+e-out .
3.0 1ues :
Si les tables sappuient sur des ob#ets appels fi%&iers p&"sis'ues ) les (ues )elles) sappuient sur des ob#ets appels fi%&iers logi'ues . lles per+ettent de %rer des inde! suppl+entaires pour la%%,s * une table . lles ne renfer+ent 'ue des infor+ations sur les %&a+ps * affi%&er et sur leur inde!ation ; elles ne %ontiennent au%une donne p&"si'ue .
3. .1 Vues simples $
3. .2 ,ointures )
@ous pou(ons gale+ent %rer des %&a+ps %al%uls grE%e au bouton =O/H7L oprer des regroupe+ents grE%e * loption 1/O70 B8.3oir Cours5.
ou en%ore
nfin ldition S6L per+et dapporter les derni,res +odifi%ations au %ode S6L gnr auto+ati'ue+ent .
3.2 3ournalisation :
7n #ournal est un ob#et dans le'uel sont prises en %o+pte toutes les +odifi%ations apportes * une ou plusieurs tables . LPutilisation du #ournal per+et au s"st,+e de garder une tra%e $ - des >i+ages apr,s? .option par dfaut5..A=D /5 - des >i+ages a(ant? et >i+ages apr,s? .BODQ5 La fon%tion #ournal repose sur lPutilisation de 2 t"pes dPob#ets.
- Le #ournal .t"pe $ A2/@5 - Le r%epteur de #ournal .t"pe $ A2/@/C35 La #ournalisation est obligatoire pour la gestion de %ertaines %ontraintes dintgrit .(oir %idessus5 ou la +ise en Ru(re de transa%tions.(oir %&apitres sui(ants5 .
Cette option per+et d%rire dire%te+ent des instru%tions S6L sans passer par les assistants grap&i'ues . lle per+et gale+ent de sau(egarder en lo%al puis de r%uprer les s%ripts dits .Dans les illustrations 'ui sui(ent nous utilisons %et outil pour +ettre en Ru(re lune des pro%dures e+bar'ues %res %i-desss .
!9<8 : =>3?
=>5?
96cution du &uer/ : /7@6/8 37 CLC /7@6/8 37 =ACD /e+ar'ue $ 0our les 'ueries gnrant un fi%&ier p&"si'ue ) il faut dabord effa%er le fi%&iers gnr par les e!%utions pr%dentes du 'uer" . !odification dun &uer/ : S/T6/8 U=4V (ara%trage d'un &uer/ : a5@ous %rons le 'uer" WCLC3A/2W interrogeant le fi%&ier %lients par la pro%dure &abituelle . b5@ous sle%tionnons les re%ords par lPinter+diaire de (ariables . : no+XdeX(ariable5
%5 @ous a%%dons au 'uer" CLC3A/2 (ia le pg+ CL CLCLC3A/ sui(ant $ PGM PARM(&NOM &PRENOM) DCL VAR(&NOM) TYPE(*CHAR) LEN(10) DCL VAR(&PRENOM) TYPE(*CHAR) LEN(10) DCL VAR(&GUIL) TYPE(*CHAR) LEN(1) VALUE(X'7D') DCL VAR(&NTOT) TYPE(*CHAR) LEN(12) DCL VAR(&PTOT) TYPE(*CHAR) LEN(12) CHGVAR VAR(&NTOT) VALUE(&GUIL *TCAT &NOM *TCAT &GUIL) CHGVAR VAR(&PTOT) VALUE(&GUIL *TCAT &PRENOM *TCAT &GUIL) STRQMQRY QMQRY(CLIVAR2) AL QRYD!N(*YES) " QM!ORM(*QMQRY) SETVAR((NR &NTOT) (PR &PTOT)) ENDPGM /6 $ ALS6/8D=@.A8 S5 GV per+ettre la re%&er%&e du 'uer" par+i %eu! %rs (ia lPutilitaire 67 /8. 6H=O/H.A6H6/85 GGV +ise en for+e du rsultat sui(ant les indi%ations du 'uer" original . d5Lan%e+ent du pg+ CL $ CALL CLCLC3A/ 0A/H.PD70O@DP YP /CCP5
A0/ S $