Base de données relationnelle.

BoTTom |    Changer de couleur
 
  B A S E   D E   D O N N E E S   R E L A T I O N N E L L E
 
 
  BASE DE DONNEES BASEE SUR LA THEORIE DES ENSEMBLES.
 
 
    TERMINOLOGIE:
   ---------------
     DOMAINE: Ensemble de valeurs (toutes les valeurs pouvant être prises
                                   par une information)
 
              Domaine d'une info numérique  : (0,1,2,3,4,5,6,.....)
 
              Domaine d'une info booléenne  : (0,1)
 
              Domaine d'une info représentant
                      une agence par ex.    : (PARIS,TOULOUSE,NANTES)
 
 
 
 


|    Changer de couleur
 
     PRODUIT CARTESIEN :ensemble de toutes les possibilité de combinaisons
                        entre une liste de domaine
         ex: Produit cartésien du domaine boleen et du domaine agence
                               ...................
                               :   0  : PARIS    :
                               :   1  : PARIS    :
                               :   0  : TOULOUSE :
                               :   1  : TOULOUSE :
                               :   0  : NANTES   :
                               :   1  : NANTES   :
                               :......:..........:
 
     RELATION          : sous ensemble d'un produit cartesien
                         une relation est en général caractérisée par
                             un nom
                     .............................
                     : AGENCE  :   1  : PARIS    :
                     :.........:   0  : TOULOUSE :
                               :   1  : NANTES   :
                               :......:..........:
 


|    Changer de couleur
 
     ATTRIBUT:   Le domaine d'une information ne suffisant pas
                  à son identification on nomme les informations
 
                     ...........................
                     : AGENCE  : TEST : VILLE  :
                     :.........:......:........:
                               :   1  :  BLEU  :
                               :   0  :  BLANC :
                               :   1  :  BLANC :
                               :......:........:
 
     TUPLE   :   Une ligne d'une relation.
 
     REMARQUES IMPORTANTES:
 
                 Dans une relation l'ordre des colonnes n'importe pas
                                   l'ordre des lignes n'importe pas
 
 
 
 


|    Changer de couleur
 
    Ce sont des concepts bien réels sur un ordinateur:
 
            Domaine:   Variable, champs.(information élémentaire)
 
            Relation:  Fichier,Table.
 
            Attribut:  Définition et caractéristiques d'un champs.
 
            Ensemble de relations: Base de données.
 
 
 
 
 
 
 
 
 
 
 
 


|    Changer de couleur
  EXEMPLE:     RELATION  CLIENTS
 
                                  !-- ATTRIBUTS (noms de zone)
                                  v
      ...........................................................
      : NUMCLI : NOM         : PRENOM   : AGENCE : COD : DATE   :
      :........:.............:..........:........:.....:........:
      :  101   : DUBOIS      : Eric     :   01   : 07  : 930405 :
      :  107   : ERNST       : Patrick  :   01   : 12  : 891215 :
  I-> :  110   : DUPONT      : Alain    :   02   : 14  : 890405 :
  I   :  102   : MERCIER     : Anne     :   03   : 18  : 910302 :
  I   :  104   : BOZUFFI     : Ricardo  :   03   : 12  : 900302 :
  I   :  121   : GARDEL      : Sophie   :   01   : 17  : 921215 :
  I   :  130   : FLAVARD     : Cecile   :   02   : 09  : 920405 :
  I   :  132   : GOUDE       : Jean     :   02   : 13  : 890405 :
  I   :  103   : FORTRAN     : Yves     :   03   : 17  : 900302 :
  I   :  105   : DUBROVNIK   : Marie    :   01   : 16  : 931215 :
  I   :........:.............:..........:........:.....:........:
  I            !<--DOMAINE-->!
  I                 (Colonne)
  I
 TUPLE (enregistrement)


|    Changer de couleur
 
 
 
 
 
 
                  RELATION  AGENCES
 
                   ..........................
                   : AGENCE :   LIBAGE      : <--ATTRIBUTS
                   :........:...............:
      TUPLE ------>:   01   : PARIS         :
                   :   02   : TOULOUSE      :
                   :   03   : LYON          :
                   :........:...............:
                       I
                       I----DOMAINE
 
 
 
 
 


|    Changer de couleur
    ACCES AUX DONNEES
   -------------------
      SELECTION    Restriction de lignes
 
      PROJECTION   Restriction/reorganisation des colonnes
 
      UNION        Regroupement de deux relations (l'une apres l'autre)
 
      JONCTION     Restriction sur le produit cartésien de X relations
 
 
 
      SELECTION (clients de l'agence 01)
      ..................................................
      : NUMCLI :   NOM            :  PRENOM   : AGENCE :
      :........:..................:...........:........:
      :  101   :   DUBOIS         :  Eric     :   01   :
      :  107   :   ERNST          :  Patrick  :   01   :
      :  121   :   GARDEL         :  Sophie   :   01   :
      :........:..................:...........:........:
 
 


|    Changer de couleur
 
 
      PROJECTION (nom,agence)
      .............................
      :   NOM            : AGENCE :
      :...........................:
      :   DUBOIS         :   01   :
      :   ERNST          :   01   :
      :   DUPONT         :   02   :
      :   MERCIER        :   03   :
      :   BOZUFFI        :   03   :
      :   GARDEL         :   01   :
      :   FLAVARD        :   02   :
      :   GOUDE          :   02   :
      :   FORTRAN        :   03   :
      :   DUBROVNIK      :   02   :
      :..................:........:
 
 
 
 
 


|    Changer de couleur
 
 
      JONCTION (sur agence)
 
 
      .........................................................
      : NUMCLI : NOM        : PRENOM   : AGENCE : LIBAGE      :
      :........:............:..........:........:.............:
      :  101   : DUBOIS     : Eric     :   01   : PARIS       :
      :  107   : ERNST      : Patrick  :   01   : PARIS       :
      :  110   : DUPONT     : Alain    :   02   : NANTES      :
      :  102   : MERCIER    : Anne     :   03   : LYON        :
      :  104   : BOZUFFI    : Ricardo  :   03   : LYON        :
      :  121   : GARDEL     : Sophie   :   01   : PARIS       :
      :  130   : FLAVARD    : Cecile   :   02   : NANTES      :
      :  132   : GOUDE      : Jean     :   02   : NANTES      :
      :  103   : FORTRAN    : Yves     :   03   : LYON        :
      :  105   : DUBROVNIK  : Marie    :   01   : PARIS       :
      :........:............:..........:........:.............:
 
 
 


|    Changer de couleur
    TYPES DE BASE DE DONNEES
   -------------------------
 
   1/ SGDB semi-relationnel    (38 avant V7)
 
 
      Structure des données   (SDD)
      Sélection et projection (fichiers logiques)
 
   2/ SGDB relationnel minimal (38 depuis V7)
 
 
      semi-relationnel +
        Jonction               (logiques joints)
 
   3/ SGDB relationnel complet
 
 
      relationnel minimal +
      langage relationnel      (SQL/400)
                           (OPNQRYF sur 38 depuis V8 bien que
                            n'etant pas vraiment "relationnel")


|    Changer de couleur
    TYPES DE BASE DE DONNEES
   -------------------------
 
   4/ SGDB relationnel total
 
 
      relationnel complet +
        integrite
 
                     -l'integrite des données est assurée
                      par OS/400. (en autre fonction journal)
 
                     -l'intégrité référentielle est assurée depuis
                      la V3R10 :
                      il est impossible de supprimer une
                      entete de commande s'il reste des lignes
                      dans le fichier détail.
 
                     - Avec la V4R20, DB2/400 supporte les contraintes
                        de domaines
 
                       (rpix doit être > 0 et datliv > datcde)


|    Changer de couleur
 
  NORMALISATION
 ---------------
 
  Tout d'abord RECENSEMENT DES DONNEES aux différents échelons:
 
                        + postes de travail
                        + responsables/direction.
 
  Ce travail a pour but d'aboutir à la rédaction d'un "dictionnaire"
  où les données seront identifiées par :
 
                                 + un  NOM
                                 + une DEFINITION (en clair)
                                 + une STRUCTURE  (alpha,num..)
                                 + un  TYPE (calcul ,saisie,...)
                                 + une QUANTIFICATION
                                           (nb de valeurs possibles)
                                 + des EXEMPLES(relevés sur les documents)
                                 + des COMMENTAIRES
 
 


|    Changer de couleur
 
    puis  SYNTHESE DES DONNEES  afin d'établir un dictionnaire définitif
 
    ce travail a pour but d'éliminer
 
       + les SYNONYMES: deux termes différents recouvrant la même réalité
 
                        "article" et "produit"
 
 
       + les POLYSEMES: un seul terme recouvrant deux réalités
 
                        "prix article" utilisé pour prix de vente
                                                et  prix d'achat.
 
 
 
 
 
 
 
 


|    Changer de couleur
 
 Et enfin Organisation logique des données:
 
    1/ A PARTIR DES REGLES DE GESTION
                TROUVER LES RELATIONS ENTRE LES DONNEES
 
        "UN pour UN"              ------       ------
                                  !    !-<--->-!    !
                                  ------       ------
 
        "UN pour PLUSIEURS"       ------       ------
                                  !    !-<-->>-!    !
                                  ------       ------
 
        "PLUSIEURS p. PLUSIEURS"  ------       ------
                                  !    !-<<->>-!    !
                                  ------       ------
 
 
 
 
 


|    Changer de couleur
 
          Organisation logique des données:
 
    2/
                TROUVER LES ENTITES QUI IDENTIFIENT CES RELATIONS
 
        Suivant le modele de "CODD" une ENTITE représente un objet
         concret ou abstrait.
 
        Une entité est dite associative si elle exprime un lien (n,m)
         entre deux entités
 
        Une entité est dite descriptive si elle exprime un lien (1,m)
         entre deux entités
 
        Une entité est dite déterminante si elle exprime un lien (n,1)
         entre deux entités
 
 
 
 
 


|    Changer de couleur
 
          Organisation logique des données:
 
    3/          CE QUI PERMET DE METTRE EN EVIDENCE
                        LES DEPENDANCES FONCTIONNELLES (DF)
 
        On dit QUE X -> Y (X détermine Y ou
                           Y dépend fonctionnellement de X)
        SI à une valeur de X correspond une valeur de Y et UNE SEULE.
 
      Ex: un commercial à un lieu unique de rattachement
 
                       (COMMERCIA -> AGENCE)
 
          un client, n'a qu'un interlocuteur commercial.
 
                       (CLIENT -> COMMERCIA)
 
          à l'inverse un commercial à plusieurs clients
                      ______________________
                       (COMMERCIA -> CLIENT)
 


|    Changer de couleur
 
 
   Ces DF suggerent déja des regroupements en sous ensembles:
 
 
        Données liées aux commerciaux
 
        Données liées aux agences
 
        Données liées aux clients
 
 
   A ce stade il doit être possible de distinguer une clé permettant
     d'identifier un élément (enregistrement)
 
   CLE = ATTRIBUT ou ENSEMBLE PERMETTANT D'IDENTIFIER TOUS LES AUTRES
 
    On parle de clé PRIMAIRE
 
    On parle de clé candidate pour désigner une clé quelconque.
                              (autre que clé primaire)
 


|    Changer de couleur
 
  LES FORMES NORMALES (proposées par le modele de "CODD") :
 
      1ere forme normale 1NF 
 
      Une relation est en première forme normale si:
       tout attribut contient une valeur atomique.
 
       ==> PAS D'OCCURRENCE.
           PAS DE REGROUPEMENT DE DONNEES.
 
           Il faut définir les informations au plus fin.
 
      2eme forme normale 2NF 
 
      Une relation est en deuxieme forme normale si:
       elle est en 1NF et
       tout attribut n'appartenant pas à la clé ne depend pas d'une
        PARTIE de celle ci.
                                     -----CLE-------
        Ex: dans un fichier commande N°cde,N°article,Désignation article
 


|    Changer de couleur
 
      3eme forme normale 3NF 
 
      Une relation est en troisieme forme normale si:
       elle est en 2NF et
       tout attribut n'appartenant pas à la clé ne depend pas d'un
       attribut non clé.
                                     ----CLE------
        Ex: dans un fichier commande N°cde,N°ligne,code article,prix
 
       EN RESUME:
 
          TOUS LES ATTRIBUT DEPENDENT DE LA CLE,
                                      DE TOUTE LE CLE,
                                      UNIQUEMENT DE LA CLE.
 
 
 
 
 
 
 


|    Changer de couleur
 
 MISE EN APPLICATION SUR AS/400:
 
      1/ dans une relation l'ordre des colones
                           l'ordre des lignes n'importe pas.
 
 
      Ce qui nous pousse à créer des physiques sans clé.
             et des fichiers logiques pour les définir.
 
      Les pgm travaillant avec les logiques,en cas de modif du fichier
          physique,il suffira de définir une projection sur le logique
          pour que la modif soit transparente aux yeux des pgms.
 
      Pour certaines manips(sauvegarde et surtout copie de fichier)
          le système va plus vite avec des physiques sans clé.
 
 
 
 
 
 


|    Changer de couleur
 
 MISE EN APPLICATION SUR AS/400:
 
      2/ éliminer les synonymes et les polysemes
 
      Les synonymes pour utiliser au mieux le MOVE CORR COBOL
          et la mémoire de travail RPG.
 
      Les polysemes, RPG ne vous le pardonnera pas.
 
 
 
 
 
 
 
 
 
 
 
 
 


|    Changer de couleur
 
 MISE EN APPLICATION SUR AS/400:
 
      3/ normalisation
 
      Valeurs atomiques: ==> ANNEE,MOIS,JOUR plutot que date
                             DEPART,BDISTRI  plutot que code postal
 
                         + sélection plus simple
                         + contrôles de saisie plus simples
                         + avec SDD : CONCAT plus souple que SST.
 
      Respecter les 3 formes normales va nour ammener à "éclater" les
       fichier (décomposition)
 
      Une jonction sur des décompositions doit toujours être capable
       de reconstituer le schéma d'origine.
 
      La jonction fonctionne très bien sur AS
 
      (32 avec SDD,QUERY,SQL et 32 x 32 sous réserves avec OPNQRYF)
 





©AF400