base-donnees by dandanhuanghuang

VIEWS: 33 PAGES: 53

									   Bases de Donnees

       Dr. M.Benkhalifa
Faculte des Sciences de Rabat
         Fevrier 2006

                                1
           Introduction Generale
• Historique des Bases de donnees (Pre-relationel      
  Relationel  post-Relationel)
       • Emploi des fichiers (ensemble d‟enregistrements)
       • Passage au Systeme de fichiers pour gerer un ensemble
         plus complexe de fichiers.
       • Systeme de fichiers conventionnels = problemes.
       • 1ere generation des SGBD (hierarchique /reseau):
         separation des programes d‟applications des donnees.
       • 2eme generation des SGBD (relationnel): model relationnel.
       • BD orientees objet
       • Entrepots de donnees. ( data warehouses)
• Parallelisme entre SGBD et compilateurs :
       • Langages : machine --- langage naturel
       • SGBD: interface entre utilisateur et donnees.

                                                                      2
•   Exemples de Bases de donnees:
          • Systeme de cartes de credits
          • Stock
          • Banques,universites…..
          • Agences de voyages
          • Reservations d‟hotels
          • Companies de ventes…
•   Systeme de Gestion de Fichiers:
          • Chaque departement possede ses propres applications et fichiers.
          • Exemple d‟un SGF – voir le transparet suivant.
          • Limites des SGF
                – Gestion des donnees.
                    » Exige trop de programmation en language (3GL)
                    » Consomme du temps
                    » Les requetes ad-hoc sont impossible a satisfaire
                    » Mene au “ islands of information”
                – Dependances des donnees
                – Dependance structurelle.
                – Redondance  anomalies, non integrite, inconsistence
•   Systeme de Gestion de Base de Donnees:
          • Tous les departements partagent la meme BD, qui est une large collection de donnees
             geree par un logiciel appele SGBD.

                                                                                                  3
SGF




      4
Environement BD




                  5
SGF ## BD




            6
• Pourquoi une BD?
     • Exemple: 3 departements: vie, autos, locaux
        3 programmes d‟applications pour chaque dept:
        – gestion des assurances: F1: assures;P1,P2, P3
        – gestion des sinistres: F2:sinistres; P4,P5
        – Reglement des sinistres: F1, F2; P6
        – Figure
     • Problemes de cette conception?
        –   Redondance de l‟information
        –   Inconsistence de l‟information
        –   Les pgs sont dependants des donnees
        –   Les donnees sont accessibles uniquement a travers des pgs
        –   Trop grand delais de reponse.


                                                                        7
          SGF                             BD
• redondance de l‟information   • unicite de l‟information
• dependance des pgs des        • independence des pgs
donnees                         des donnees
• donnees sont accessibles      • des pgs generaux :
seulement a travers des pgs     langages de requettes
                                accessibles par les non
                                informaticiens
•Donnees dispersees             • integration des donnees
•Chacun a ses propres           • partage des donnees par
fichiers                        plusieurs utilisateurs




                                                             8
• Tâches/rôles dans l‟environement des BDs:
      • Utilisateur: (naif, specialiste) accede aux données a travers des
        programmes/ à travers des langages de requêtes.
      • Programmeur: developpe des programmes pour d‟autres
        utilisateurs.
      • Administrateur de la BD: responsable de la conception, creation et
        la maintenance de la BD. = super-utilisateur
      • Administrateur de données: responsabe d‟établir la politique des
        données.




                                                                             9
                Chapitre 1
         Concepts de base d‟une BD
• Qu‟est ce qu‟une BD?
     • Information # données.
     • 2 concepts fondamentaux:
        – La base de données:
            » Ensemble structure de données interdependants, stockées
              sans redondance inutile sur des supports accessibles par
              ordinateur, organisées de manière indépendante des pgs
              pour satisfaire simultanement plusieurs utilisateurs de
              façon selective et en un temps oportun. Il est sous le
              contrôle d‟une seule autorité qui est l‟administrateur de la
              BD.
        – Un SGBD:
            » Un logiciel qui permet à un utilsateur d‟intéragir avec une
              BD. (stocker, chercher, mettre a jour, …..)


                                                                        10
Les fonctions d‟un SGBD:

 –   Stocker les données sur les supports péripheriques.
 –   Rechercher des informations.
 –   Selectioner des données.
 –   Decription des données: langage de description des
     données.
        » Logique /physique
 –   Utilisation: interaction avec la BD
 –   Intégrite: definir des règles (contraintes) pour maintenir
     l‟ntégrité de la BD.
 –   La confidentialité:
 –   Synchronisation des acces:
 –   Sécurite

                                                                  11
    Importance d‟un SGBD
• Gestion de données plus efficace
• Le langage de requêtes permet des réponses rapides
  aux requêtes Ad-hoc
• Favorise une integration de toutes les operations de
  l‟entreprise.




                                                     12
• Les differents niveaux de representation d‟une BD
      • 3 niveaux suivant que l‟on regarde du coté utlisateur ou du coté
        stockage physique:
          – Le niveau conceptuel: correspond au schéma conceptuel de la BD (la
            partie fondamentale de la BD)
          – Le niveau extrene: schémas extrenes qui correspondent aux différents
            groupes d‟utilisateurs.
          – Le niveau interne: schéma physique.
          – Figure des 3 niveaux.
      • Niveau interne: comment les données sont stockées en terme de
        fichiers physiques, types d‟addressage, indexes…..
      • Niveau conceptuel: le passage du monde reel (ce qu‟on veut
        stocker dans la BD) au schéma conceptuel correspond à un
        processus de modélisation. = modèle de données : entité
        relation.

                                                                               13
    – Exemple:
         » Modèle de données permet de décrire les associations (relations)
            entre les objets.
         » Dans une BD univeraitaire: (etudiants, enseignants, cours,…)
         » Inscription: elle associe un étudiant à un enseignement.
         » On distingue 3 grandes catégories de modèles qui se distinguent
            par la nature des associations qu‟ils permettent de modéliser:
                    modèle hierarchique
                    modèle reseau
                    modèle relationel.
• Le niveau extrene: correspond à la vision de tous ou une partie du schéma
  conceptuel par un groupe d‟utilisateurs concernés par une application.
    – Exemple:
         » Utilisateurs concernés par l‟inscription des étudiants n‟ont pas
            besoin d‟avoir une vue globale sur la BD.== sous schema. (vue)




                                                                         14
• Mise en oeuvre d‟un SGBD:
  – Comment est t-il possible qu‟un utilisateur intéragit avec la BD à
    travers un SGBD?
      • = langages pour décrire et pour manipluer les données.
      • Langage de description de données: primitives  construction du
        schéma conceptuel ainsi que les sous schémas, les contraintes
        d‟integrité.
      • Langage de manipulation de données: langage de requêtes.
          – 2 objetifs: 1) être autonome 2) peut être utilise avec un langage
            evolué.
  – Execution d‟une requête par un SGBD:
      • Un programmeur écrit son programme à partir des connaissances sur le
        schéma extrene. Le SGBD convertit la requête en terme de schéma
        conceptuel puis en commandes sur la BD physique.== figure.
      • Architecture d‟un SGBD:== figure
                                                                                15
• Administration d‟une BD:
      •   Creation de la BD.
      •   Gestion des autorités d‟access:
      •   Amelioration des performances.
      •   Securité et coherence des données.
      •   Manipulation du dictionnaire des données.
      •   Structures de stockage et méthodes d‟access
      •   Rédaction avec l‟utilisateur du schéma extrene.




                                                            16
                      Chapitre 2
           Organisation Physique d‟une BD
•   Nature des Traitements avec les BDs (requettes, partage d‟informations…)
    = but: efficacite du stockage et du recouvrement des donnees:
    localisation d‟un enregistrement a partir d‟une cle au cout le plus bat.
•   2 grandes categories d‟organisations physiques:
     – Les organisations primaires:
         • Organisation sequentielle: les enregistrements sont arranges en une
           sequence physique par une valeur d‟un attribut, appele attribut de sequence
           . (cle)
         • Organisation sequentielle indexee: l‟organisation sequentielle qui utilise un
           indexe, qui est une liste qui montre ou les enregisrements sont stockes.
         • Organisation directe: permet un acces aleatoire
              – Stockage utilise un attribut special de l‟enregistrement pour calculer
                 l‟adresse cible.
              – Recherche emploie la cle pour determiner l‟adresse.



                                                                                      17
    • inconvenient:
        – Capacite d‟acces aux donnees limitee: emploi d‟une cle
          uniqueau lieu de cles multiples.
– Organisations secondaire: structures de donnees.
       – permettent un acces rapide et direct aux donnees.
       – Fichiers inverses:
            » Les enregisrements sont stockes sous la forme originale
              sans pointeurs.
            » Une liste inversee qui contient les valeurs de certains
              elements cles.
            » Exemple
       – Linked lists:
            » Utilise les pointeurs pour definir la sequence des
              enregistrements.
            » Exemple.

                                                                        18
– Organisation arborescente:
    » Utilise plusieurs niveaux d‟index . Elle emploi un arbre qui est une
      herrchie de noeuds.
    » Binary tree: exemple
    » B-tree :exemple.




                                                                        19
      Conception Logique d‟une BD
• Les BD constituent le cœur du système d‟information. La
  conception de ces bases est la tâche la plus ardue du
  processus de développement du système d‟information.
• Les méthodes de conception préconisent une démarche
  en étapes et font appel à des modèles pour représenter
  les objets qui composent les systèmes d‟information, les
  relations existantes entre ces objets ainsi que les
  règles sous-jacentes.
• La modélisation se réalise en trois étapes principales qui
  correspondent à trois niveaux d‟abstraction différents :



                                                          20
21
• voir fichier conception des BDs




                                    22
                                  Chapitre 4
                               Model Hierarchique

•   Definition: un modele hierarchique est un ensemble de definitions
    d‟arborescences.
•   Une definition d‟arboresence est un diagramme de donnees dans lequel
    chaque entite sauf la racine a un seul arc incident de type 1:N, et 0, 1 ou
    plusieurs arcs emergents de type 1:N.
•   Chaque arc entre 2 entites est unique par consequent il n‟est pas
    necessaire de l‟identifier par une etiquette.
•   Exemples:
•   Une base de donnees hierarchique est un ensemble d‟occurences de
    definitions d‟arborescence.
     – Exemples: du model hierarchique a la BD hierarchique.
     – La relation Parent-Enfant:
         • Une occurrence d‟entite d‟un niveau i est dite parent si elle est associee au moins avec
           une occurrence d‟entite de niveau i+1.
         • Exemple.


                                                                                                 23
•   Defauts du modele hierarchique:
     – Defauts de mise a jour:
         • Exemple:
         • Probleme de suppression: elimination d‟une occurrence entraine l‟elimination de tous
           ses descendants.
         • Exp:
         • Probleme d‟insertion: on ne peut inserer une occurrence d‟un segement fils tant qu‟on
           n‟a pas inserer au prealable tous les parents hierarchiques et ceci juqu‟a la racine.
         • Exemple.
         • Probleme de modification: entraine un risque d‟incoherence et un cout tres eleve.
         • Probleme de consultation: requettes non satisfaites.
     – En plus
         • Difficulte d‟exprimer les liens mailles.
         • Une modification de la conception par l‟utilisateur peut entrainer une perte d‟efficacite
           du systeme.
               – Exp.
         • Espace de stockage tres important.
         • Impossible d‟exprimer des parents multiples.
         • Limitation quant au nonmbre de sous schemas.

                                                                                                       24
• Avantages du modele hierarchique:
   – Conceptuellement simple a comprendre et a utiliser
   – Plusieurs applications necessitent uniquement des relations 1:N.




                                                                        25
                               Chapitre 5
                           Le Modele Reseau
•   L‟approche hierarchique est un cas particulier d‟une structure reseau.
•   Le modele reseau est plus general du fait qu‟une occurrence d‟une entite
    donnee peut avoir n‟importe quel nombre de parents immediats.
•   l‟approche reseau nous permet de modeliser une relation de type N:M
    d‟une facon plus directe que l‟approche hierarchique.
•   L‟une des facons pour representer une structure reseau est celle qui est
    basee sur les relations binaires et qui correspond au modele DBTG (Data
    Base Task Group)
•   Le modele DBTG est base sur la notion du SET qui represente une relation
    binaire entre 2 types d‟enregistrements:
     – Le 1er type est appele posseur (owner)
     – Le 2eme type est appele membre (member)
•   Construction de SET dans differentes structures:
     – Structure hierarchique a un niveau: exemple
     – Structure hierrachique a plusieurs niveaux: exemple.
     – Les lien mailles: exemple.

                                                                           26
•   La mise a jour des donnees:
     – Il n‟ya pas d‟anomalies de MAJ :
         • Suppression:
         • Modification:
         • Insertion:
     – La representation naturelle des liens mailles
     – Proceduralite des LMD == l‟utilisateur doit naviguer les chaines de pointeurs.
                   » ==== le chemin optimal pour retrouver l‟information.




                                                                                    27
                                     Chapitre 6
                             Modele Relationnel


•   Introduction:
     – Le modele relationnel repose sur le concept de relation.
     – La difference entre le modele relationnel et les autres modeles:
         • Les autres modeles considerent des le deaprt certaines associations
           priviligies entre entites comme etant des contraintes du systeme.
               – Exp:
         • Le modele relationnel consider les entites comme etant autonomes et
           permet l‟etablissement de toute association nouvelle dont le besoin survient
           par la suite = le modele relationel n‟est pas fige.
         • Dans le modele relationnel, une entite sera consideree comme une relation.
         • Au modele relationnel est associe une theorie tres importante connue sous
           le nom de la theorie de NORMALISATION de relations.
         • Les objectifs de cette theorie:
               – Eliminer les anomalies semantiques qui peuvent provenir de la MAJ
               – Eliminer la redondance des informations.


                                                                                     28
•   Les concepts de base du modele relationnel:
     – Domaine: l‟ensemble des valeurs d‟une categorie dinformation donnee.
     – Une relation: une relation R sur les domaines D1, D2,…..,Dn est un sous
       ensemble du produit cartesien D1xD2x….xDn forme des tuples (d1,d2,….,dn)/
       chaque di d‟un tuple donne appartient au domaine Di correspondant.
     – Dans le cadre des BD, une realtion est caracterisee par un nom et elle peut etre
       vue comme une table a 2 dimensions dans le quel les colonnes correspondent
       aux domaines et les lignes aux tuples.
     – Les elements d‟une relation sont les tuples et ils correspondent a un sous
       ensemble dun produit cartesien d‟une liste de domaines.
          • Exp:
     – Il ne peut pas y avoir 2 tuples identiques dans une relation (2 tuples identiques
       ssi pour chaque domaine ils ont la meme valeur)
     – Un attribut (ou plusieurs) permettant d‟identifier chaque tuple sans ambiguite est
       une cle possible.
          • Exp:


                                                                                       29
•   L‟analogie entre le relationnel et les autres modeles:
     – Relation ------ fichier
     – Tuple (ligne) ------ occurrence
     – Attribut (colonne) -- un element de donnees
•   Representation d‟une relation:
     – Exemple.
•   Une BD relationnelle: l‟ensemble des schemas de relations et dont les
    occurences sont les tuples de ces relations.

•   Voir fichier conception relationnelle.

     – Règles à suivre pour concevoir un schéma relationnel




                                                                            30
       Normalisation d‟un schéma
               relationnel
• Mises à jour et cohérence
   – But d'un schéma logique : décrire une BD qui va
       effectivement être utilisée
   – chargée , accédée , mise à jour (maj)
   – Les maj (insertions, suppressions, modifications) doivent
       conserver la cohérence de la base de données
       • intégrité référentielle
       • toute contrainte d'intégrité
       • en particulier les dépendances entre attributs
   – Selon le schéma c'est + ou - facile
       • Plus la bd contient de redondances, plus les maj avec
         maintien de la cohérence est difficile


                                                                 31
     Exemple d'anomalies de maj

              LivraisonTot ( N°f , adrF , N°p , typeP , qté )
                                 3   ausanne     52 meuble 12
                                22   Bienne      10 ordinateur 6
                                22   Bienne      25 papier 210
                                3    Lausanne   25 papier 560
                                3    Vevey      10 ordinateur 15
• Définition : Le fournisseur N°f, qui est actuellement à telle
    adresse adrF, a livré au total telle quantité du produit N°p,
    produit qui est de tel type.
• Si un fournisseur change d‟adresse et qu‟un seul tuple est
  mis à jour ⇒ incohérence
• Si un nouveau tuple est inséré pour un fournisseur connu,
  avec une adresse différente ⇒ incohérence
• Impossibilité d'enregistrer un nouveau fournisseur sans
  livraison

                                                                    32
         Qu’est-ce qu’une BD relationnelle
                   ‘incorrecte’ ?


• Une relation n‟est pas correcte si :
• elle implique des répétitions au niveau de
  sa population
• elle pose des problèmes lors des maj
  (insertions, modifications et suppressions)
• Les conditions pour qu'une relation soit
  correcte peuvent être définies
  formellement :
           => règles de normalisation
                                             33
                  Exemple (suite)

       LivraisonTot     ( N°f , adrF , N°p , typeP , qté )
                          3 ausanne     52    meuble 12
                          22 Bienne      10    ordinateur 6
                          22 Bienne      25    papier 210
                          3  Lausanne   25    papier 560
                          3  Vevey      10    ordinateur 15

• L‟adresse du fournisseur ne dépend que du fournisseur et pas
  du produit.
• Le type du produit ne dépend que du produit et pas du
  fournisseur
       ⇒ REDONDANCES
       ⇒ Anomalies de mise à jour
• Cette relation n'est pas correcte. Il faut la normaliser.


                                                                 34
     Normalisation d'un schéma
              logique
• Processus de transformation d'un schéma S1 pour
  obtenir un schéma S2 :
   – qui est équivalent (même contenu)
   – dont les maj assurant la cohérence de la bd sont simples
• maj simple :
   – un changement élémentaire dans le monde réel se traduit
     par une mise à jour d'un tuple
• Exemples de changements élémentaires
   – LivraisonTot (N°f, adrF, N°p, typeP, qté)
   – La quantité totale pour un produit et un fournisseur est mise à
     jour => 1 tuple à m.a.j.
   – Un fournisseur change d'adresse => N tuples à m.a.j.

                                                                       35
   Normalisation d'une relation

• Processus de décomposition d'une relation à
  maj
  complexes en plusieurs relations à maj simples
• Processus sur le schéma relationnel formel
• Exemple :
  – La relation
• LivraisonTot (N°f, adrF, N°p, typeP, qté)
  sera décomposée en :
  – LivraisonTot‟ (N°f, N°p, qté)
  – Fournisseur (N°f, adrF)
  – Produit (N°p, typeP)
                                                   36
            Normalisation

• On mesure la qualité d'une relation par
  son degré de normalisation :
• 1FN (première forme normale), 2FN, 3FN,
  FNBC (forme normale de Boyce Codd),
  4FN, etc.




                                        37
•   Dependances fonctionnelles:
     – Une DF represente une contrainte d‟integrite du systeme dans le modele
       relationnel. Soit une relation R ayant au moins deux attributs A et B. on dit que
       l‟attribut B est fonctionnellement dependant de A si a chaque instant la valeur de
       l‟attribut A determine celle de B, en d‟autres termes quqand on connait A on
       connait B. la Df est notee par A -------determine---- B.
          • Exemples:
     – La DF est transitive:
          • Exemple
     – Si un attribut est FD d‟un groupe d‟attributs sans qu‟il le soit avec une partie de
       ce groupe alors dans ce cas cet attribut est totalement dependant de la
       concatenation de ces attributs: c‟est la DF totale.
          • Exemple.




                                                                                             38
• Exemple de Conception d‟un schema relationnel:
   – on veut modeliser par des relations la possession des voitures par des
     personnes.
       • Une seule relations appelee PROPRIETAIRE. (nom-personne, CIN, N
         voiture, Marque, adresse, type, puissance, couleur, date achat, prix)
   – Exercise:
       •   Trouver toutes les DF simples et transitives
       •   Les anomalies de cette relation:
       •   LA REDONDANCE === marque, type, nom-personne
       •   Risque d‟inconsistence
       •   Problemes de MAJ (suppression, insertion)
       •   ==== solution : DECOMPOSITION DES RELATIONS
       •   Approche par decomposition: elle tend a partir d‟une relation composee de
           tous les attributs a decomposer cette relation en un ensemble de relations
           qui ne souffrent pas des anomalies:

                                                                                    39
   == la relation precedente peut etre remplacee par 3 relations:
            – Personne (CIN, nom, adresse)
            – Voiture (N voiture, Marque, type, puissance, couleur)
            – Propriete ( CIN, N Voiture, date achat, prix)
• Les Operations sur les BD relationelles:
   – La comprehension de la theorie de decomposition des relations
     necessite la connaissance de 2 operations de manipulation de relations:
       • PROJECTION
       • JOINTURE
   – La projection:
       • La projection d‟une relation de schema R(A1,A2,….,An) sur les attributs
         (Ai1, Ai2,….,Aip) avec p <= n et ij#ik est une relation R‟ de schema
         (Ai1,Ai2,…..,Aip) dont les tuples sont ceux obtenus par elimination des
         valeurs des attributs de R qui n‟appartienent pas a R‟ et par suppression des
         tuples en double. La projection est notee par Π.
            – Exp.



                                                                                    40
       • La jointure: l‟operation inverse de la projection. La jointure de 2 relations R
         et S de schems respectifs R(A1,A2,….,An) et S (B1,B2,….,Bp) est une
         relation T ayant pour attributs l‟union des attributs de R et de S. la jointure
         se fait par au moins un attribut commun.
             – Exp.
• La theorie de normalisation:
   – La normalisation des relations est un concept base sur un processus de
     decomposition de relations de base de telle sorte d‟aboutir a un ensemble de
     relations qui ne souffrent des pbs de redondances et de MAJ et ceci sans perte
     d‟informations (cad la jointure naturelle des relations permet de retrouver les
     relations de base). La theorie de normalisation est basee sur une serie de
     formes normales (1FN, 2FN, ….6FN).
   – 1ere forme normale:une relation est en 1FN si tous ses attributs sont:
       •   Simples
       •   Atomiques
       •   Non decomposables
       •   Ne forment pas de groupes repetitifs
             – Exp.



                                                                                           41
•       Comment mettre ces relations en 1FN?
          1.    Prendre la relation de base et inserer sa cle dans toutes les autres relations (dons
                ceci modifie les cles des autres relations)
          2.    Supprimer dans la relation de base les attributs non atomiques .
          3.    Repeter la meme operation pour chaque relation ayant des attributs non atomiques.

          Exercice: appliquer cet algorithme sur les relations de l‟exemple afin de les convertir en
               1FN.
–       2eme forme normale:
    –      Une relation est en 2eme FN si:
          –     Elle est en 1ere FN.
          –     Tout attribut n‟appartenant pas a la cle primaire ne depend pas d‟une partie de cette
                cle (depend de toute la cle)
          –     Exp:
          –     Autrement dit: une relationm est en 2eme FN si:
                –    Elle set en 1ere FN
                –    Si l‟une des 3 conditions suivantes est verifiee:
                      –      La cle primaire est formee d‟un seul attribut
                      –      La cle primaire contient tous les attributs de la relation
                      –
                                                                                                                    42
                             Tout attribut qui ne fait pas partie de la cle depend de toute celle ci et pas seulement
                             d‟une partie.
•   3eme Forme normale:
     – Une relation est en 3eme FN si:
          • Elle est en 2eme FN
          • Tout attribut n‟appartenant pas a la cle ne depend pas d‟un attribut non cle (aucun
            attribut non cle ne peut dependre d‟un autre qui ne fait pas partie de la cle primaire)
          • Exp:
•   4eme forme normale:?
•   Transformation d‟un modele quleconque en un model relationnel normalise:
     – Hierarchique --- relationnel : exp.
     – Reseau -- relationnel : exp




                                                                                                      43
                                   INTRODUCTION A ORACLE


•   ORACLE is un SGBD relationnel compose d‟un noyau, SQL (Structured Query Language), UFI (User Friendly
    Interface) et des utilitaires.
•   SQL est l‟interface principale pour ORACLE. Elle est consideree comme “on line query language”.
•   SQL dispose de plusieurs commandes pour des taches differentes:
      – Requettes
      –    insertion, mise a jour, et suppression des donness dans les tables
      –    creation, remplacement, modification et elimination des tables.
      –    controler les acces aux database et tables
      –    guarantir l‟ integrite des donnees
•   creation des TABLES et ajout des donnees :
     –   CREATE, INSERT === EXEMPLES
     –   DESCRIBE, START, SPOOL, ….., SPOOL OFF/SPOOL OUT.==== EXEMPLES
     –   ALTER, DROP
     –   SET ECHO ON, SET LINESIZE
•   algebre relationnelle: c‟est un language reservee principalement a la recherceh des
    donnees . Elle est basee sur un ensemble d‟operateurs unaires et binaires qui operent sur des
    tables.
     –   SELECT COMMAND: (sur une table)
           • Syntax: SELECT (liste des attributs) FROM <table> [ WHERE <Conditions>]
                      SELECT    * FROM <table> [ WHERE <conditions>]

              •   Exp: relation INVOICE (inv-no, cust-no, inv-date, amount)
                     – SELECT inv-no, cust-no FROM INVOICE;
                     – SELECT DISTINCT Cust-no FRON INVOICE;


                                                                                                        44
–   Requettes simples:
       • Copier des tuples a partir d‟autres tables:
       • Populate une table durant la creation avec des donnees d‟une autre table:
       • SELECT * FROM INVOICE;
       • SELECT * FROM INVOICE WHERE Cust-no = 101;
       • SELECT * FROM INVOICE WHERE Cust-no = 101 AND amount > 500;
       • SELECT invno FROM INVOICE WHERE inv-date != ‟02-JAN-92‟;
            – Cette requette n‟inclut pas l‟enregistrement numero 6 .
      • SELECT COUNT(*) FROM INVOICE WHERE inv-date = NULL; ERREUR
      • SELECT COUNT(*) FROM INVOICE WHERE inv-date IS NULL;
      • SELECT * FROM INVOICE WHERE amount BETWEEN 60 AND 90;
      • SELECT * FROM INVOICE WHERE cust-no IN (100, 101);
      • SELECT * FROM INVOICE ORDER BY amount;
      • SELECT * FROM INVOICE ORDER BY amount DESC;
–   Recherche par group:
      • SELECT AVG(amount) FROM INVOICE ;
      • SELECT AVG(amount) “average amount” FROM INVOICE;
      • SELECT AVG(amount) FROM INVOICE;
      • SELECT COUNT(inv-date) FROM INVOICE;
      • SELECT COUNT(inv-date), AVG (amount) FROM INVOICE GROUP BY cust-no;
      • SELECT cust-no, COUNT(*), AVG (amount) FROM INVOICE GROUP BY cust-no;
      • SELECT cust-no, COUNT(*) FROM INVOICE GROUP BY cust-no HAVING COUNT(*) >=3;

       •   Exp2 : on considere une autre table CUSTOMER (cust-no, name, address, credit-lim)

       •   SELECT * FROM CUSTOMER            WHERE     name LIKE „A_C%‟;


                                                                                               45
•   Modification et elimination des donnees:
     – Update command: utilisation de WHERE pour specifier la ligne a modifier.
     – Delete command :                 utilisation de WHERE pour specifier la ligne a eliminer.
•   Recherche a travers des jointures:
            •   Jointure simple de 2 tables:
                   –   On a besoin du client (nom et adresse) qui a commande la facture numero 2.?
            •   Jointure avec alias:
                   –   La meme requette:
            •   Self joins:
                   –   Pour chaque client, on a besoin de la liste de tous les autres clients qui une limite de credit superieure.?
            •   Autres jointures:
                   –   La liste des clients avec leurs factures (les numeros uniquement).    les attributs NULL?
                   –   La meme liste ou apparait les attributs NULLs?
•   L‟editeur SQL :
            •   Commande change :
            •   La commande LIST ldonne le contenu du buffer SQL.
            •   L‟etoile (*) indique la ligne courante. Taper une serie de commandes
            •   SQL> C/cusno/name ?
            •   Typer la numero de la ligne pour changer la ligne couranet (SQL> 2) .
            •   La commande INPUT insert une ou plusieurs lignes apres la ligne courante.
            •   La commande DEL supprime la ligne courante.
            •   La commande APPEND texte = insert du texte a la fin de la ligne courante.
            •   La commande RUN pour executer ou bien /
            •   Les commandes Save and GET .
            •   Les commandes EDIT and START.



                                                                                                                                      46
• Les commandes de formattage des rapports:
   – on besoin de la liste des clients (leurs noms), avec leurs factures (inv-
     numbers, inv-dates, inv-amounts) triees pae les noms des clients.
   – On peut ameliorer l‟apparence des resultats de la meme requette:
   – TTITLE CENTER/LEFT/RIGHT „…………text…..‟ = genere le titre
     du haut de la page.
   – SKIP 2 = saute 2 lignes
   – BTITLE RIGHT „page‟ SQL.PNO == insert le titre du bas de la
     page avec une variable systeme SQL.PNO.
   – BREAK ON NAME SKIP 1 == eliminates les clients doubles et
     insert une ligne vide chaque fois que le client change.
   – COMPUTE SUM OF invamt ON NAME = calcule le total des Qtes
     pour chaque nom client .
   – COMPUTE SUM OF invamt ON REPORT == calcule les grand
     totaux.
   – COLUMN name HEADING „………‟ == insert un titre pour la
     colonne du rapport.

                                                                            47
•   Des requettes plus complexes:
     – Sous requette:
     – Sous requettes correles.
     – Operateur EXISTS/NOT EXISTS.




                                      48
•   Les Indexes :
     – Buts : 1)reduction du temps d‟acces et 2) renforcer l‟unicite de la cle primaire.
     – Creation des indexes:
          • Syntaxe: CREATE INDEX <index-name> ON TABLE <table-name> (col-name1,
            col-name2,……)
          • Exp: create index inv-index on invoice (custno)
          • Unique index: = CREATE UNIQUE INDEX <index-name> ON TABLE <table-
            name> (col-name1, col-name2, ……)
          • Exp: create unique index customer-index on customer (custno);
          • Exp: create unique index invoice-index on invoice (invno, custno);
          • == jusqu‟a 16 colonnes pour un indexe
          • == les indexes sont logiquement et physiquement independent des donnees . =
            les indexes peuvent etre crees et detruits a n‟importe quel moment.
     – Dropping un index:
          • DROP INDEX index-name;




                                                                                           49
•   Contraintes d‟integrite:
     –   Unique key: 2 lignes d‟une table ne peuvent pas avoir les memes valeurs pour une ou
         plusieurs colonnes . Cette constrainte genere automatiquement un index unique pour les
         colonne(s), mais elle ne met pas ces dernieres a NOT NULL.
     –   Primary key: 2 lignes d‟une table ne peuvent pas avoir les memes valeurs pour une ou
         plusieurs colonnes, et valeurs NULL ne sont pas permises pour ces colonnes. Cette
         constrainte genere automatiquement un index unique pour les colonne(s), elle met ces
         dernieres a NOT NULL.
     –    Exp: create table deparment (
                   deptno number(4) PRIMARY KEY,
                   deptname varchar2(20) UNIQUE,
                    ……. )
     –   Foreign key: renforce l‟ integrite referentielle..
     –   Exp: 2 tables: Employee(empno, empname, salary, deptno)
                        department (deptno, dept-name, deptchief)
                       deptno (in employee table) est une cle etrangere qui refernce la cle primaire
                       deptno dans la table department == Oracle s‟assure que chaque valeur
                       de deptno dans la table employee doit correspondre a une valuer de deptno
                       dans la table department ou bien avoir une valeur NULL .

                                                                                                   50
•   Create table employee (
     Empno numbre(4) primary key,
     Empname varchar2(20),
     Salary number(6),
     Deptno number(4) foreign key references department (deptno));
•   Contrainte CHECK :
     –   Utilises pour une ou plueieurs colonnes qui doivent satisfaire des conditions:
           • Exp: a table parts(partid, color, maxdiscount) ou color pourra etre RED ou BLACK
               et la valeur maximum de discount est 50%.
           • == create table parts (
                         partid number primary key,
                         color varchar2(5)    CONSTRAINT VALID_COLOR CHECK(COLOR
                         IN(„RED‟, „BLACK‟)),
                         maxdiscount number (2) NOT NULL CONSTRAINT VALID_DISCOUNT
                         CHECK (maxdiscount , 50));
•   Desactiver les contraintes:
     – Alter table employee DISABLE Primary key;
     – Alter table parts DIABLE CONSTRAINT VALID_COLOR;


                                                                                            51
•   Creation et utilisation des vues: ==         tables virtuelles
     –   Creation:     create view viewname [col-name,…..]
                      AS query
                      [WITH CHECK OPTION]

           • EXP: creer une vue a partir de la table invoice table qui contient les details invoice
             details du client numero 101 seulement:
                – Create view inv101
                    AS select invno, cusno, invdate, invamt
                    from invoice where cusno=101;
                – Insert into inv101 values (9, 999, ‟02-jan-93‟, 99); insert ces donnes dans la
                   table invoice.
                – Create view inv101
                    AS select invno, cusno, invdate, invamt
                    from invoice where cusno=101 WITH CHECK OPTION;
                – Insert into inv101 values (9, 999, ‟02-jan-93‟, 99) ; genere une erreur.



                                                                                                      52
•   Exemples:
     –   Creer une vue contenant le sous ensemble des colonnes (custno, custname) a partir de la
         table customer
     –   Creer une vue qui, pour chaque client, donne le montant total des factures.
     –   Creer une vue contenant les details invoice (de la table invoice ) avec le nom client (de la
         table customer )
•   Elimination des vues:
     –   DROP VIEW viewname;
     –   Exp: Drop view inv101;




                                                                                                   53

								
To top