Définition des fichiers physiques

BoTTom |    Changer de couleur
                          ######################## 
                          ##  FICHIER PHYSIQUE  ## 
                          ######################## 
 
 
 
 
     C'EST LE RESERVOIR DE DONNEES 
 
           - DESCRIPTION  -----> Caractéristiques du Fichier 
                                 Format ou Longueur d'Enregistrement 
 
           - CHEMIN D'ACCES  ----! 
                                 !----> Autant que de Membres 
           - DONNEES         ----! 
 
 
 
 
 
 
 


|    Changer de couleur
                          ######################## 
                          ##  FICHIER PHYSIQUE  ## 
                          ######################## 
 
 
                                                 ######################## 
                  DESCRIPTION -----------------> ##                    ## 
                                                 ######################## 
                                                 ##  °°°°       °°°°   ## 
                  CHEMIN D'ACCES (index)-------> ##  °  °       °  °   ## 
                                                 ##  °°°°       °°°°   ## 
                                                 ######################## 
                                                 ## °°°°°°     °°°°°°  ## 
                  DONNEES (membres)------------> ## °    °     °    °  ## 
                                                 ## °°°°°°     °°°°°°  ## 
                                                 ######################## 
 
 
 
 
 
 


|    Changer de couleur
                          ######################## 
                          ##  FICHIER PHYSIQUE  ## 
                          ######################## 
 
 
                                                 ######################## 
                   DESCRIPTION -----------------> ##                    ## 
                                                 ######################## 
                                                 ##                    ## 
      - Attribut de L'Objet.                     ##                    ## 
      - Longueur de L'Enregistrement             ##                    ## 
        (sans SDD, on dit fichiers en interne)   ######################## 
                 OU                              ##                    ## 
        Format de L'Enregistrement               ##                    ## 
        (création avec SDD ou fichiers externes) ##                    ## 
                                                 ######################## 
 
 
 
 
 
 


|    Changer de couleur
                          ######################## 
                          ##  FICHIER PHYSIQUE  ## 
                          ######################## 
 
 
                                                 ######################## 
                                                 ##                    ## 
                                                 ######################## 
                                                 ##                    ## 
                   CHEMIN D'ACCES --------------> ##                    ## 
                                                 ##                    ## 
      - Organisation apparente des Données       ######################## 
      #######################################    ##                    ## 
      - Si le Chemin d'Accès n'est pas Défini    ##                    ## 
        explicitement, le Fichier est :          ##                    ## 
            EN ORDRE D'ARRIVEE.(FIFO)            ######################## 
 
 
 
 
 
 


|    Changer de couleur
                          ######################## 
                          ##  FICHIER PHYSIQUE  ## 
                          ######################## 
 
 
                                                 ######################## 
                                                 ##                    ## 
                                                 ######################## 
                                                 ##                    ## 
                                                 ##                    ## 
                                                 ##                    ## 
                                                 ######################## 
                                                 ##                    ## 
                   DONNEES ---------------------> ##                    ## 
                                                 ##                    ## 
   - Devront être amenées dans le membre         ######################## 
      après la création: 
               . par programme RPG,SQL,...
               . par une commande de COPIE (CPYF, ...)
               . par l'utilitaire D.F.U 
               . .....
 


|    Changer de couleur
                          ######################## 
                          ##  FICHIER PHYSIQUE  ## 
                          ######################## 
 
 
 
     DESCRIPTION D'UN FICHIER PHYSIQUE 
 
        La Description du FICHIER PHYSIQUE est créée a partir d'informations
          fournies: 
                   - dans la commande de création CRTPF , comme SIZE(10000)
                   - dans le membre source qui contient les spécifications
                      de données (SDD) 
                   - par le système (date création, etc...)
 
 
 
 
 
 
 
 


|    Changer de couleur
                          ######################## 
                          ##  FICHIER PHYSIQUE  ## 
                          ######################## 
 
 
     SPECIFICATIONS DE DESCRIPTIONS DE DONNEES 
 
        Permettent de: 
                - donner le nom du format (qui sera désormais connu en tant 
                   que tel par le système) 
                - décrire le dessin d'enregistrement (en citant dans l'ordre 
                   les zones composant le format) 
                - solliciter certaines fonctions par l'intermédiaire de mots
                   clés et de paramètres 
          NB: il n'y a qu'un seul format par FICHIER PHYSIQUE 
 
        chaque ligne est découpée comme suit :
 
                1 1        223   33333      4
     6          7 9        890   45678      5
     A..........T.NOM+++++++RLG+++TD+U......FONCTION+++++++++++++++++++++++
 


|    Changer de couleur
                          ######################## 
                          ##  FICHIER PHYSIQUE  ## 
                          ######################## 
 
 
     SPECIFICATIONS DE DESCRIPTIONS DE DONNEES 
 
        Un source SDD est décomposé en QUATRE niveaux :
 
        + Niveau fichier (avant le premier format)
                                                                             
                 définit les mots-clés valables pour l'ensemble du fichier
 
                  Ex: REF(fichier-répertoire)  (col 45)
 
        + Niveau format (à partir du nom du format et jusqu'à la première
                         définition de zone)
                 col 17    : R (record)
 
                 col 19-28 : nom du format
 
                 col 45    : mots-clés


|    Changer de couleur
                          ######################## 
                          ##  FICHIER PHYSIQUE  ## 
                          ######################## 
 
 
     SPECIFICATIONS DE DESCRIPTIONS DE DONNEES 
 
        Un source SDD est décomposé en QUATRE niveaux :
 
        + Niveau zone (avant le format suivant ou avant le niveau C.A)
                                                                             
                 col 17    : à blanc
 
                 col 19-28 : nom de la zone
 
              __ col 29    : référence
          OU |
             |__ col 30-34 : longueur
 
                 col 35    : type
 
                 col 36-37 : nb de décimales


|    Changer de couleur
                          ######################## 
                          ##  FICHIER PHYSIQUE  ## 
                          ######################## 
 
       NATURE ET LONGUEUR DE LA ZONE 
           1.  ZONE ALPHA      (nb de décimales à blanc)
               type de zone  A ou BLANC  valeur par défaut 
 
           2 . ZONE NUMERIQUE  (nb de décimales renseigné)
               - par défaut les zones numériques sont en condensé 
               - la longueur fournie doit être la longueur totale(avec déc.)
 
               type de zone  P ou BLANC  packée (valeur par défaut) 
                             S           étendue (signée)
                             B           binaire 
           3. DATES/HEURES 
                             L           date
                             T           horaire
                             Z           horodatage:date,heure,microsecondes
 
      TOUJOURS LONGUEUR LOGIQUE DE LA ZONE, C'EST LA MACHINE QUI
      CALCULERA LA LONGUEUR DE STOCKAGE 


|    Changer de couleur
                          ######################## 
                          ##  FICHIER PHYSIQUE  ## 
                          ######################## 
   MOTS-CLE COMPLEMENTAIRES. 
 
     1) DOCUMENTATION D'APPLICATION (colonne 45) 
 
          TEXT('TEXTE DE LA ZONE OU DU FORMAT') 
          COLHDG('ENTET1' 'ENTET2' 'ENTET3') 
 
     2) CONTROLES DE SAISIE         (colonne 45) 
 
          COMP(XX val)   xx = EQ(=),NE(<>),GT(>),GE(>=),...
          RANGE(borneinf bornesup)
          VALUES(val1 val2 val3 ...)
          CHECK(xx)      XX = VN nom valide,M10 = modulo 10,..(contraignant)
     3) PRESENTATION DES DONNEES NUMERIQUES      
 
          EDTCDE(x)         un édit-code prédéfini
          EDTWRD('zzzzzzzz') masque d'édition
     4) DATES ET HEURE                           
          DATFMT, DATSEP, ... 


|    Changer de couleur
 
     EDTCDE 
     ------                |<----- montants négatifs ----->|<- positif -->|
+-------------------------------------------------------------------------+
! Impression ! Impression !!  Pas  ! Symbole!   Symbole    ! X Ajout du   !
!    des     !  montants  !!  de   !   CR   !      -       !   signe +    !
!   points ? !  nuls ?    !! signe !        ! à D  ! à G   ! Y Ajout des  !
!--------------------------------------------------!-------!   '/' (date) !
!    OUI     !    OUI     !!   1   !    A   !   J  !   N   ! Z Suppression!
!    OUI     !    NON     !!   2   !    B   !   K  !   O   !   des zeros  !
!    NON     !    OUI     !!   3   !    C   !   L  !   P   !   de gauche, !
!    NON     !    NON     !!   4   !    D   !   M  !   Q   ! pas de signe !
+-------------------------------------------------------------------------+
 
     DATFMT    !       DATSEP             !    exemple
     ------    !       ------             !   -----------
     *DMY      !       '/', '.', etc ..   !   15/02/98
     *YMD      !        idem              !   98/02/15
               !                          !
     *ISO      !       imposé             !   1998-02-15
     *EUR      !       par le format      !   15.02.1998
               !                          !                       A suivre. 


|    Changer de couleur
                          ######################## 
                          ##  FICHIER PHYSIQUE  ## 
                          ######################## 
 
 
     SPECIFICATIONS DE DESCRIPTIONS DE DONNEES 
 
        Dernier niveau (facultatif avec les PF) :
 
        + Niveau C.A (en fin de source, dernier niveau)
                                                                             
                 col 17    : K = définition de clé
 
                 col 19-28 : nom de la zone
 
                 col 45    : définition complémentaire
 
 
                               DESCEND : tri en ordre décroissant
 
 
 


|    Changer de couleur
 
Exemple :
 
                R CLIENTF1                  TEXT('FICHIER CLIENT')
                  NOCLI          6  0       TEXT('N° CLIENT')
                                            COLHDG('N°' 'du' 'Client')
                                            EDTCDE(Z) COMP(GT 0)
                  NOMCLI        30          TEXT('NOM CLIENT')
                                            COLHDG('NOM Client')
                                            COMP(NE ' ')
                  DEP            2S 0       TEXT('DEPARTEMENT DU CLIENT')
                                            COLHDG('DEPT')
                                            RANGE(01 98)
 ... / ///
 
                  DATCRT           L        TEXT('Date création')
                                            COLHDG('Date' 'Création')
                                            DATFMT(*EUR)
                  CACLI         13  2       TEXT('CA ANNUEL')
                                            COLHDG('CA' 'Annuel')
                                            EDTCDE(L) COMP(GE 0)
 


|    Changer de couleur
 Il est possible d'utiliser la fonction Répertoire pour la définition de
  votre base de données.
 
 L'AS/400 propose de définir toutes les zones manipulées par votre
  application dans un fichier UNIQUE, auquel vous allez attribuer la
   fonction "logique" de répertoire (ou dictionnaire de données)
 
 Il s'agit d'un fichier traditionnel pour l'AS/400 contenant toutes les
 définitions de données et dans lequel vous ne placerez JAMAIS de données.
 
 Puis à la création de vos fichiers physiques vous nommerez les zones devant
  composer le format d'enregistrement, sans les définir, en demandant au
  système de copier la définition se trouvant dans le répertoire.
 
  (Faire REFERENCE)
     A                                      REF(REPERTOIRE) 
     A          R FORMAT                    TEXT('------------------')
     A            ZONE1     R 
     A            ZONE2     R 
     A            ZONE3     R 
     A            ZONE4     R 
     A            ZONE5     R 


|    Changer de couleur
 
 Cela permet d'avoir une définition unique des données de l'entreprise.
 
      définition physique.
      contrôles de validité.
      fonctions documentaires.
      Présentation des données numériques.
 
 Toutes ces définitions seront répercutées dans le fichier physique et, plus
  tard, utilisées par les utilitaires de développement:
 
                  -QUERY ou QM (liste de fichiers)
                  -DFU         (maintenance de fichiers)
                  -RLU         (conception d'états)
                  -SDA         (conception d'images-écran)
 
 Plus grande cohérence, Plus grande productivité.
 
 Le répertoire peut être modifié à tout moment,le lien REPERTOIRE<->PF
  n'existe que pendant la création du fichier.
 
 Toute modification du répertoire est IGNOREE par les fichiers physiques.


|    Changer de couleur
  VUE D'ENSEMBLE. 
                            ________                   ------------  DSPF 
               REPERTOIRE  <________>                  ! déf.     !
                           ! déf.   ! ---------------> !  formats !
                           ! unique ! ------------     ------------
                           !  zones !            !    /          /
                     !---- <________> ---!       !   ------------     PRTF 
                  ___v____          _____v___    !          ----------------
           PF1   <________>   PF2  <_________>   !--------> ! déf.    ----/
            <<<<<! déf.   !>>    <<! déf.    !>>>           ! formats/
          <<     !--------! >> <<  !---------! >>>>         !-------/
         <<      ! données! ><<    ! données ! >>  >>
        <<       <________> ><     <_________> >>    >>>>>>>>>>>>>>>
 LF11 __v_____          ____v____             __v_____          ___v_____
     <________>  LFJx  <_________>     LF21  <________>  LF22  <_________>
     ! déf.   !        ! déf jonc!           ! déf.   !        ! déf.    !
     !--------!        !---------!           !--------!        !---------!
     ! index  !        ! index   !           ! index  !        ! index   !
     <________>        <_________>           <________>        <_________>
 
Le lien entre répertoire et fichiers (physiques ou unités) est fugace
(le temps de la création).Le lien entre PF et LF est bien entendu permanent.


|    Changer de couleur
 
 Quelques commandes associées :
 
 
    - DSPFD     = description générale
 
    - DSPFFD    = liste des champs
 
    - DSPPFM    = voir le contenu (non formaté)
 
 
    - DSPDBR    = relations base de donées (relations PF <-> LF)
 
 
 
    - STRDFU    = utilitaire de maintenance de fichiers
                  & UPDDTA = modifier le contenu
                    DSPDTA = voir le contenu (formaté)
 
    - STRQRY   = utilitaire de génération de listes
                  & RUNQRY = lister le contenu (écran ou état)
 


|    Changer de couleur
    - CPYF copie de fichiers
 
           FROMFILE                      fichier d'origine
                             *LIBL    
           TOFILE                        fichier de destination
                             *LIBL    
           FROMMBR        *FIRST         membre d'origine
           TOMBR          *FIRST           "    de destination
 
           MBROPT         *NONE          option : *NONE ==> création
                                                  *ADD      Ajout
                                                  *REPLACE  Remplacement
           CRTFILE        *NO            création ?
 divers:
           FRMRCD/TORCD   sélection sur le rang (de a)
 
           INCREL         sélection sur une colonne
 
           FMTOPT         conversion *NONE fichiers identiques
                                     *DROP des colonnes peuvent disparaitre
                                     *MAP  copie zone à zone avec conversion
                                    et initialisation des nouvelles colonnes


|    Changer de couleur
 
    - CPYTOIMPF/CPYFRMIMPF Exportation/Importation de fichiers
 
      TOSTMF/FRMSTMF : coordonnées du fichier IFS (fichier stream)
                        dans lequel exporter(TOSTMF) à importer(FRMSTMF)
 
      RCDDLM         : caractère de fin de ligne
 
                       *EOR  fin d'enregistrement
                       *CR   retour chariot , *LF   fin de ligne
                       *CRLF les deux précédents
 
      DTAFMT         : les données sont-elles délimitées
 
                       *DLM : oui
                              FLDDLM indique le délimiteur de zones    (;)
                              STRDLM indique le délimiteur de chaînes  (")
                       *FIXED : non
 
      RPLNULLVAL (CPYFRMIMPF) indique de remplacer la val. nulle par le dft.
 
      DECPNT,DATFMT,TIMFMT indiquent le format des décimales,dates et heures


|    Changer de couleur
 
 Définition d'une contrainte d'unicité
 
              ADDPFCST    FILE(client)
                          TYPE(*UNQCST)
                          CST(client_unique) <- nom de la contrainte
                          KEY(nocli)
 
 Définition d'une clé primaire
 
              ADDPFCST    FILE(client)
                          TYPE(*PRIKEY)
                          CST(num_client)  <- nom de la contrainte
                          KEY(nocli)
 
  Une clé primaire est une forme particulière de contrainte d'unicité.
      (valeur nulle non autorisée)
 
  Il peut y avoir plusieurs contraintes d'unicité (portant sur des zones
   différentes), il ne peut y avoir qu'une seule clé primaire.
 
 


|    Changer de couleur
 
 Intégrité référentielle
 
              ADDPFCST    FILE(command)
                          TYPE(*REFCST)
                          CST(clicommand)
                          KEY(numcli)      <- zone du fichier commande
                          PRNFILE(client)  <- fichier parent
                          PRNKEY(nocli)    <- clé primaire/fichier client
                          UPDRULE(*NOACTION)
                          DLTRULE(*CASCADE)
 
UPDRULE :  *NOACTION  contrôle lors du COMMIT (journalisation obligatoire) 
                               et après l'appel du trigger
           *RESTRICT  contrôle immédiat       (journalisation facultative) 
 
DLTRULE : les mêmes +  *CASCADE  , *SETNULL , *SETDFT
 
 
 Les attributs des clés (primaire et étrangère) doivent être identiques :
           même définition (type, lg, nombre de décimales)
 


|    Changer de couleur
 
 Si l'une des deux règles (UPDRULE ou DLTRULE) est différente de *RESTRICT :
 
 
  - vos fichiers DOIVENT être journalisés.
 
    s'ils ne le sont pas : - l'intégrité sera établie (ADDPFCST fonctionne).
 
                           - MAIS toutes vos demandes d'ouverture de fichier
                              seront refusées (erreur d' E/S).
 
============================================================================
 
 
 Il y a 4 états possibles:  - Etablie/active       <-- OK, contrôle en cours
 
                            - Etablie/desactivée   <-- suspendue
 
                            - Définie/activée      <-- (pas de membre)
 
                            - Définie/désactivée   <-- idem, suspendue
 


|    Changer de couleur
 
 Une contrainte peut être momentanément "suspendue"
 
 
  Et donc, une contrainte établie peut s'avérer fausse
 
 
 
  Si une contrainte est fausse
 
 
     - soit suite à une restauration
 
     - soit suite à une désactivation , puis modifs dans le fichier
 
  Elle est notée "Check Pending" (verif en instance)
 
 
 
 Il faut utiliser la commande WRKPFCST
 
 


|    Changer de couleur
 
   WRKPFCST
 
 ########################################################################## 
 #           Gestion des contraintes de fichier physique                  # 
 #                                                                        # 
 # 2=Modifier   4=Enlever  6=Afficher enreg en instance de vérif.         # 
 #                                                                        # 
 # Opt  Contrainte   Fichier   Biblio    Type    Etat    verif/instance   # 
 #      ARTICK1      ARTICP1   MABIB     *PRIKEY                          # 
 #      ARTICC1      ARTICP1   MABIB     *REFCST ETA/DES    Oui           # 
 #      ARTICC2      ARTICP1   MABIB     *REFCST ETA/ACT    Non           # 
 #       ....                                                             # 
 # ==>                                                                    # 
 #                                                                        # 
 ########################################################################## 
 
 2=CHGPFCST, 4=RMVPFCST, 6=DSPCPCST
 
 "Verif : Oui" signifie que le système à détecté au moins un incohérence
  (visualisable par l'option 6)
 


|    Changer de couleur
V4R20 :
 
  - Check Contraints ou contraintes de domaine :
 
      il s'agit d'établir un contrôle sur une zone (doit être > à , <> de ..
       devant être TOUJOURS vérifié.
 
      les contrôles demandés aujourd'hui (CHECK, RANGE, VALUES) ne sont
       vérifiés que dans un monde transactionnel (gestionnaire écran)
 
 
      les nouvelles contraintes seront vérifiés dans toutes les conditions
 
 
      en cas d'erreur ==> message CPF502F
 
 
    ............................................................
    : ADDPFCST FILE(CDEENTP1) TYPE(*CHKCST) CST(DATES_CST)     :
    :          CHKCST(DATLIV > DATCDE)                         :
    :..........................................................:
 


|    Changer de couleur
 
 et les contraintes peuvent être gérées par WRKPFCST :
 
............................................................................
:                                                                          :
:                 Gestion des contraintes de fichier physique              :
:                                                                          :
:Indiquez vos options, puis appuyez sur ENTREE.                            :
:  2=Modifier   4=Enlever   6=Afficher enreg en instance de vérif          :
:                                                                          :
:                                                              Vérification:
:                                                                    en    :
:Opt  Contrainte     Fichier     Biblio      Type      Etat       instance :
:     QSYS_CDEEN  >  CDEENTP1    FORMATION0  *CHKCST   ETB/DES      OUI    :
:                                                                          :
:..........................................................................:
 
 
   ici le fichier est "établie/désactivée" puisqu'il y a des enregistrements
     ne correspondant pas à la demande [datliv > datcde]
 
 


|    Changer de couleur
 
  l'Option 6 affiche le(les) enregistrement(s) en erreur :
 
  ..........................................................................
  :                               Affichage du rapport                     :
  :  Largeur . .:        71                                                :
  :  Colonne . .:         1                                                :
  :  Contrôle . . . .                                                      :
  :  Ligne  ....+....1....+....2....+....3....+....4....+....5....+....6   :
  :                N°       N°                                             :
  :                CDE    CLIENT  DATE CDE    DATE LIV                     :
  :           --------  --------  ----------  ----------                   :
  :  000001         3         1   01.01.1940  01.01.1940                   :
  :  ******  * * *  F I N  D E S  D O N N E E S  * * *                     :
  :                                                                        :
  :........................................................................:
 
 
   Après avoir modifié l'enregistrement il faut désactiver, puis réactiver
    la contrainte, qui devient alors "établie / active".
 
 


|    Changer de couleur
 
 Autre notion liée aux fichiers physiques :
 
  > les triggers :
 
    il s'agit d'associer à une action base de données un programme
 
       trois actions B de D sont valides              - INSERT
                                                        UPDATE
                                                        DELETE
 
       et deux moments peuvent leurs être associés    - BEFORE
                                                        AFTER
 
 Le programme recoit un buffer contenant des informations systèmes
  ainsi que les deux versions de l'enregistrement manipulé.
 
  il peut ainsi, répercuter l'action (fichier trace, interfacage)
                 signaler une erreur (intégrité)
                 modificer l'enregistrement recu (automatisation, an 2000)
 
     la commande est ADDPFTRG 


|    Changer de couleur
 
Enfin, dernier point, vous pouvez créer votre base avec le langage SQL
 
(vous obtiendrez toujours un fichier physique)
 
 
 
Saisissez dans un source l'ordre ou les ordres de création.
 
 
 Si vous placez plusieurs ordres dans un source, terminez chacun d'eux par ;
 
 
 il n'y a pas de compilation à proprement parlé, mais interprétation
  du script par la commande RUNSQLSTM
 
  (cette commande accepte tout ordre SQL valide sauf SELECT)
 
 
 Syntaxe de l'ordre CREATE TABLE :
 
 


|    Changer de couleur
 
 
         CREATE TABLE  nom
 
      !-->      (nomcolonne--FOR COLUMN-nom--type(lg)--------------
      !
      !          >-------------------------------------------------
  x   !              !                      !
      !              !-Clause WITH DEFAULT--!
 fois !
      !          >---------------------------------------------------)
      !              !                                 !
      ---            !--contrainte liée à une colonne--!
 
                 >---------------------------------------------------.
                      !                                        !
                      !--contrainte liée à plusieurs colonnes--!
 
 
 
  Exemple :
 


|    Changer de couleur
         CREATE TABLE  SQLDB/STGTBL
                (NUMEROSTAGIAIRE for column NOSTAG DEC(3, 0) not null ,
                 NOMSTAGIAIRE for column NOM  CHAR(15) not null ,
                 PRENOM CHAR(15) not null with default,
                 AGENCE NUMERIC(2, 0) not null REFERENCES FAGENCE,
                 NOTE   NUMERIC(4, 2) not null with default,
                 ENTREE DEC(6, 0) )
 
  Explications :
 
            Les noms longs sont acceptés (depuis la V3R10) :
 
                NUMEROSTAGIAIRE est le nom SQL   [30 c pour les colonnes,
                                                 128 c pour les objets]
                NOSTAG est le nom système
 
            il sont gérés comme des ALIAS pour les colonnes,
            pour les tables le nom OS/400 est généré à partir
             des cinq premiers caractères.
 
         Types de variable admis:  (l=longueur, d=nbr de décimales)
 


|    Changer de couleur
                + NUMERIC(l, d)  numérique étendu
 
                + DECIMAL(l, d)
                  ou DEC(l, d)   numérique packé
 
                + SMALLINT       binaire sur 2 octets
                + INTEGER        binaire sur 4 octets
                + BIGINT         binaire sur 8 octets (V4R50)
 
                + CHARACTER(l)
                  ou CHAR(l)     alphanumérique
 
                + VARCHAR(x) ALLOCATE(y) alphanumérique à lg variable
 
                          x est la plus grande longueur admise
 
                           y est la longeur minimum allouée par le système.
 
                          [DSPFFD et DSPPFM montre la zone de longueur X]
 
                + FLOAT et REAL  numérique virgule flottante
                                 (notation scientifique)


|    Changer de couleur
 
                + DATE           une date
 
                + TIME           un horaire
 
                + TIMESTAMP      horodatage (date+heure+microsecondes)
 
 
                + BLOB(n K|M)    champ binaire (souvent image) dont la
                                  taille peut atteindre 15 Mo
 
                + CLOB           champ texte (notion de CCSID) dont la
                                  taille peut atteindre 15 Mo
 
                + (un-type)      champ faisant référence à un type
                                  créé par l'utilisateur à l'aide de :
 
                                   CREATE DISTINCT TYPE
 
 
                + DATA LINK      champ contenant un lien vers un fichier
 


|    Changer de couleur
       >--------LINK TYPE URL----->
 
 
              -------NO LINK CONTROL-----------------------------------
       >-----                                                           - --
              ---FILE LINK CONTROL----                                -
                                     |   INTEGRITY ALL           *   |
                                     |   READ PERMISSION FS          |
                                     |   READ PERMISSION DB          |
                                     |-  WRITE PERMISSION FS        -|
                                         WRITE PERMISSION BLOCKED
                                         RECOVERY NO
                                         ON UNLINK RESTORE
                                         ON UNLINK DELETE
 
  * indique si le fichier reste accessible au système de fichier et avec
     quels droit (FS : les droits du système de fichier,
                  DB : les droits de la base uniquement)
 
 Avec FILE LINK CONTROL, le système vérifie la présence du fichier externe
  et garantie son intégrité, tant qu'il est référencé par la base
 


|    Changer de couleur
 
Contrôle de présence (val obligatoire/facultative)
 
 -----------------------------------------------------------------------.
      !-- NOT NULL---------------------------------------------------!
      !------------------------- WITH DEFAULT---------------------!
                                               !--'constante'----!
                                               !---NULL----------!
                                               !---USER----------!
                                               !--CURRENT_DATE---!
                                               !--CURRENT_TIME---!
                                               !CURRENT_TIMESTAMP!
       - pas d'indication = valeur nulle admise
 
             Vous pouvez retrouver l'information par programme en demandant
                 le placement de la colonne INTO :ZONE :IND
 
                      (IND est binaire et indique si ZONE est nulle)
 
       - NOT NULL              interdit la valeur nulle
 
       - NOT NULL WITH DEFAULT initialise à valeur par dft


|    Changer de couleur
 Contraintes d'entité: 
 
     - désignation d'une clé unique (pour les valeurs non nulles)
 
              -------------------------------- UNIQUE-------------------- 
               |--CONSTRAINT nom-contrainte-|         |-(zonea, zoneb)-| 
 
               + si CONSTRAINT nom-contrainte n'est pas renseigné le
                  système génère automatiquement un nom par défaut
 
               + utilisable associé directement à une colonne
 
                            CREATE TABLE (zone1 dec(3,0) UNIQUE,
                                          zone2 char(30), ...
 
                 ou fin de définition de table si l'unicité est demandée sur
                  plusieurs colonnes:
 
                            CREATE TABLE (zone1 dec(3, 0),
                                          zone2 char(30),
                                          zone3 dec(2, 0),
                                   UNIQUE(zone1, zone3))


|    Changer de couleur
 
            un index est créé avec la table (il fait partie de la table)
 
     - désignation d'une clé primaire (identifiant univoque).
 
              -------------------------------- PRIMARY KEY--------------- 
               |--CONSTRAINT nom-contrainte-|             |-(zonea, ..)-| 
 
               + les clés primaires doivent être définies NOT NULL
 
               + même syntaxe que l'unicité
 
               + il peut y avoir plusieurs contraintes d'unicité,
                  il ne peut y avoir qu'UNE SEULE clé primaire.
 
 
   CREATE TABLE (zone1 dec(3, 0),  |  CREATE TABLE (zone1 dec(3, 0),
                 zone2 char(30)    |                zone2 char(30),
                  PRIMARY KEY,     |                zone3 dec(2, 0),
                 zone3 dec(2, 0)   |         PRIMARY KEY(zone1, zone2))
                                   |
 


|    Changer de couleur
 
 Contraintes d'intégrité référentielle: 
 
            Il s'agit de concrétiser le lien exitant entre deux tables.
             par des déclarations de contraintes, comme avec ADDPFCST.
 
 
 syntaxe générale
 
     ---------------------------------------------------------------------->
       |                           |  |                          |
       |-CONSTRAINT nom-contrainte-|  |-FOREIGN KEY-(zone1, ...)-|
 
 
         >------------REFERENCES autre-table-----------------------------
                                             |                        |
                                             |--(zone1 [, zone2 ...])-|
 
         >---------------------------------------------------------------
                      |                   |  |                    |
                      |--ON DELETE action-|  |-- ON UPDATE action-|
 


|    Changer de couleur
Exemple :
               create table command (NUMCDE DEC(6, 0) NOT NULL,
                                     ARTCDE CHAR(6) REFERENCES article,
                                     NUMCLI DEC(6, 0) REFERENCES clients)
 
               ici le code article doit exister dans la table article
                   le n° de client doit exister dans la table clients.
 
   Comme avec les contraintes d'unicité et de clé primaire, si la clause
    CONSTRAINT n'est pas employée, le système génère un nom par défaut.
 
Ou bien  (si la référence porte sur plusieurs colonnes)
 
               FOREIGN KEY(zone1, zone2, ..) REFERENCES table
 
               create table livraison (NUMLIV DEC(6, 0) NOT NULL,
                                       NUMCDE DEC(6, 0) NOT NULL,
                                       NOLIGN DEC(3, 0) NOT NULL,
                                       FOREIGN KEY(numcde, nolign)
                                               REFERENCES lcommand)
 
               ici une livraison doit référencer une commande existante.


|    Changer de couleur
 
 ON DELETE, ON UPDATE :
 
            que faire si l'on supprime une ligne du fichier parent
                      si l'on change la clé dans le fichier parent
 
    NO ACTION :  ne rien faire,l'événement est interdit.
                 le contrôle a lieu lors du COMMIT,
                  la journalisation est OBLIGATOIRE.
 
    RESTRICT  :  ne rien faire,l'événement est interdit.
                 le contrôle est immédiat, la journalisation facultative
 
    CASCADE   :  en cas de suppression, suppression des lignes associées
                  dans la table qui  référence.
                                   (en cas de suppression d'un client,
                                     suppression de toutes ses commandes)
 
    SET NULL  :  l'événement est autorisé et la clé étrangère de la table
                  qui référence est mise à NULL (NULL doit être autorisé)
 
    SET DEFAULT: idem SET NULL avec la valeur/dft


|    Changer de couleur
 
 Check Contraints  :
 
    il s'agit d'établir un contrôle sur une zone (doit être > à , <> de ...)
     devant être TOUJOURS vérifié.
 
    ces nouvelles contraintes seront vérifiés dans toutes les conditions
 
    en cas d'erreur ==> message CPF502F 
 
 
     ---------------------------------- CHECK ----------------------->
       |                           |
       |-CONSTRAINT nom-contrainte-|
 
 
     ---( test logique valide)---.
 
    ..........................................................
    : Create table  entcdep1  Datcde DATE , Datliv DATE      :
    :          Check (datliv > datcmd), ...                  :
    :........................................................:





©AF400