Le modèle relationnel

 

  1. Introduction
  2. Le modèle relationnel a été proposé par E.F. Codd en 1970 [Codd70]. Il est souvent considéré comme le plus simple et le plus élégant des modèles. Sa simplicité est due à une vision tabulaire des données très intuitive. Son élégance résulte de bases formelles issues de la théorie mathématique des ensembles.

    Les objectifs du modèle relationnel étaient différents de ceux des modèles réseau et hiérarchique: Parmi les lacunes de ces modèles auxquelles E.F. Codd souhaitait apporter une solution nous en retenons deux :

    Le modèle relationnel présente également de nombreux avantages dus au fait qu'il soit basé sur la théorie des ensembles : Langage de manipulation des données ensemblistes grâce à l'algèbre relationnelle et grâce à des langages assertionnels qui permettent de spécifier ce que l'on souhaite obtenir sans dire comment l'obtenir. Le SGBD est responsable de la politique d'exécution des requêtes.

     

    On considère le schéma relationnel suivant qui modélise une application sur la gestion de livres et de disques dans une médiathèque :

     

  3. Concepts du modèle relationnel
    1. Domaine
    2. Définition :
      Un domaine D est un ensemble de valeurs caractérisé par un nom. Du point de vue du modèle relationnel, chaque valeur du domaine est atomique et donc indivisible.
      Cette notion permet de définir les ensembles de départ. Un domaine peut être défini en extension en donnant la liste des valeurs composantes ou en compréhension en définissant une propriété caractéristique du domaine.

      voir l'exemple

      COULEUR = { jaune; vert; rouge; bleu; rose; orange; pourpre}
      ABONNE = { Personne possédant une carte d'abonné valide pour l'année en cours }

      Du point de vue de la réalisation informatique, le domaine se restreint à la notion de type de données. Néanmoins, il est essentiel au cours de l'étape de conception de clairement définir les domaines.

       

    3. Schéma de relation
    4. Définition
      Un schéma de relation R, dénoté R(A1:D1, A2:D2, ..., An:Dn) est un ensemble d’attributs. Chaque attribut Ai est le nom d’un rôle joué par son domaine Di dans le schéma de relation R.

      Un schéma de relation R est utilisé pour décrire une relation.

      voir l'exemple

      Relation ABONNE (NumAbo : entier, Nom : chaîne(30), Prénom : chaîne(40), Rue ...)

      Le schéma de relation ABONNE se compose de l’attribut NumAbo qui prendra pour valeur un entier représentant le numéro de l’abonné; l’attribut Nom aui prendra pour valeur le nom de l’abonné; l’attribut Prénom aui prendra pour valeur le prénom de l’abonné. Définir un schéma de relation revient à spécifier un nouveau type de données équivalent à un type RECORD en langage Pascal. Le modèle relationnel n’autorise qu’un seul niveau de structure. Il n'est pas possible par exemple de définir un attribut Adresse qui se décompose en Rue, Ville CodeP.

       

    5. Relation
    6. Définition
      Une relation r dénotée r(R) du schéma de relation R(A1:D1, A2:D2, ..., An:Dn) est un ensemble d'enregistrements. Chaque enregistrement ei est une liste ordonnée de n valeurs ei = <v1, v2, ...,vn> ou chaque vi est une valeur du domaine de l’attribut Ai ou une valeur nulle spéciale représentant l’absence d’information.

      Notons que la présence de valeurs nulles dans une relation est souvent difficile à interpréter et rend plus complexe les manipulations.

      voir l'exemple

      Relation ABONNE :

      NumAbo

      Nom

      Prénom

      Rue

      Ville

      CodeP

      Téléphone

      1

      Mounier

      Xavier

      6, rue du Plàtre

      Grenoble

      38100

      0476589521

      2

      Pernod

      Richard

      6, Avenue de la Libération

      Grenoble

      38000

      0687958475

      3

      Guichard

      Geoffroy

      45, Boulevard Thiers

      Saint-Etienne

      42000

      0477589610

      4

      Rouxel

      Jacques

      6, rue Circonflexe

      Grenoble

      38000

      0476851218

       

    7. Clé d’une relation
    8. Définition
      Une clé de relation est un sous-ensemble d'attributs qui permet de caractériser tout enregistrement d'une relation.
      Par définition, une relation est un ensemble de enregistrements et il ne peut donc pas y avoir deux enregistrements strictement identiques dans la même relation. Il existe généralement un sous-ensemble SC d’attributs d’un schéma de relation R pour lequel deux enregistrements de toute relation r(R) ne peuvent avoir la même combinaison de valeurs pour ces attributs.

      Quelque soit t1, t2 Î r(R), t1 [SC] ¹ t2 [SC].

      Tout ensemble d'attributs vérifiant cette propriété est appelé superclé du schéma R. Il existe au moins une superclé qui est l'ensemble de tous les attributs.

      Une clé C d'un schéma R est une superclé ayant la propriété suivante :
      si l'on enlève un attribut à C alors C n'est plus une superclé.
      De manière informelle, une clé est un ensemble minimum d'attributs dont la connaissance des valeurs permet d'identifier un enregistrement unique de la relation considérée [Gardarin89]. Une clé est invariante dans le temps.
      En général, il existe plusieurs clés pour une même relation R. Parmi les clés possibles, on choisit une clé qui sera appelée clé primaire . Lors de la définition d'un schéma cette clé est mise en évidence (soulignement).

      voir l'exemple

      Clés de ABONNE (NumAbo, Nom, Prenom, Rue, Ville, CodeP, Telephone)

      superclés
      (NumAbo)
      (NumAbo, Nom)
      (NumAbo, Prenom)
      (NumAbo, Rue)
      (NumAbo, Ville)
      (NumAbo, CodeP)
      (NumAbo, Telephone)
      (NumAbo, Nom, Prenom)
      (NumAbo, Nom, Rue)
      (NumAbo, Nom, Ville)
      (NumAbo, Nom, CodeP)
      (NumAbo, Nom, Telephone)
      (NumAbo, Prenom, Rue)
      (NumAbo, Prenom, Ville)
      (NumAbo, Prenom, CodeP)
      (NumAbo, Prenom, Telephone)
      (NumAbo, Rue, Ville)
      (NumAbo, Rue, CodeP)
      (NumAbo, Rue, Telephone)
      (NumAbo, Ville, CodeP)
      (NumAbo, Ville, Telephone)
      (NumAbo, CodeP, Telephone)
      (NumAbo, Nom, Prenom, Rue)
      (NumAbo, Nom, Prenom, Ville)
      (NumAbo, Nom, Prenom, CodeP)
      (NumAbo, Nom, Prenom, Telephone)
      (NumAbo, Nom, Rue, Ville)
      (NumAbo, Nom, Rue, CodeP)
      (NumAbo, Nom, Rue, Telephone)
      (NumAbo, Nom, Ville, CodeP)
      (NumAbo, Nom, Ville, Telephone)
      (NumAbo, Nom, CodeP, Telephone)
      (NumAbo, Prenom, Rue, Ville)
      (NumAbo, Prenom, Rue, CodeP)
      (NumAbo, Prenom, Rue, Telephone)
      (NumAbo, Prenom, Ville, CodeP)
      (NumAbo, Prenom, CodeP, Telephone)
      (NumAbo, Rue, Ville, CodeP)
      (NumAbo, Rue, Ville, Telephone)
      (NumAbo, Ville, CodeP, Telephone)
      (NumAbo, Nom, Prenom, Rue, Ville)
      (NumAbo, Nom, Prenom, Rue, CodeP)
      (NumAbo, Nom, Prenom, Rue, Telephone)
      (NumAbo, Prenom, Rue, Ville, CodeP, Telephone)
      (NumAbo, Prenom, Rue, Ville, Telephone)
      (NumAbo, Rue, Ville, CodeP, Telephone)
      (NumAbo, Nom, Prenom, Rue, Ville, CodeP)
      (NumAbo, Nom, Prenom, Rue, Ville, Telephone)
      (NumAbo, Nom, Prenom, Rue, Ville, CodeP, Telephone)
      (Nom, Prenom, Rue, Ville)
      (Nom, Prenom, Rue, Ville, CodeP)
      (Nom, Prenom, Rue, Ville, Telephone)
      (Nom, Prenom, Rue, Ville, CodeP, Telephone)
      (Nom, Prenom, Rue, CodeP)
      (Nom, Prenom, Rue, CodeP, Telephone)
      (Nom, Prenom, Telephone)
      (Nom, Prenom, Rue, Telephone)
      (Nom, Prenom, Ville, Telephone)
      (Nom, Prenom, CodeP, Telephone)
      (Nom, Prenom, Rue, CodeP, Telephone)
      (Nom, Prenom, Ville, CodeP, Telephone)

      clés
      (NumAbo)
      (Nom, Prenom, Rue, Ville)
      (Nom, Prenom, Rue, CodeP)
      (Nom, Prenom, Telephone)

      clé primaire
      (NumAbo)

       

    9. Schéma de base de données et contraintes d’intégrité
    10. Un schéma de base de données relationnel S est un ensemble de schémas de relation S = {R1, R2, …, Rp} et un ensemble de contraintes d'intégrité CI.

      Une contrainte d’intégrité est une propriété du schéma, invariante dans le temps.
      Il existe différents types de contraintes d'intégrité:
      liées au modèle (pas de doublons dans une relation.);
      de domaine (nb_heure < 100; pas de valeur nulle pour la clé primaire);
      référentielles dites de clé étrangère qui impose que la valeur d'attribut de la relation r1 apparaîssent comme valeur de clé dans une autre relation r2.

      voir l'exemple

      AUTEUR ( CodOuv, Identité ), CodOuv présent dans OUVRAGE.

       

    11. Instance de base de données relationnelle
    12. Une instance de base de données relationnelle BD est un ensemble d'instances de relations
      BD = {r1, r2, ..., rn} ou chaque ri respecte les contraintes d'intégrité.

     

  4. Algèbre relationnelle
  5. L’algèbre relationnelle est une collection d’opérations permettant d’opérer sur les concepts du modèle relationnel. Elle permet par exemple de sélectionner certains enregistrements d’une relation satisfaisant une condition ou encore de regrouper des enregistrements de relations différentes. Le résultat de toute opération de l’algèbre est une nouvelle relation. Cette propriété implique notamment qu’il n’y a pas de doublons dans le résultat et permet l’écriture d’expressions de calcul. Etant donnée, que le modèle relationnel est basé sur la théorie des ensembles, l’algèbre relationnelle utilise les opérateurs classiques de manipulation des ensembles (union, intersection, différence et produit cartésien) et introduit des opérateurs propres aux bases de données (sélection, projection, jointure, division).

    1. Opérateurs ensemblistes
      1. Union compatible
      2. Deux relations sont union-compatibles si elles ont le même nombre d'attribut et que ceux-ci ont le même domaine.
        È, Ç et - necéssitent que les relations soient union-compatibles.

         

      3. Opérateur union È
      4. Définition
        Soient R et S, deux relations de schémas respectifs X et Y. Les schémas X et Y doivent être union-compatibles c’est à dire posséder le même nombre d’attributs et que ceux-ci soient de même domaine. L’union des deux relations, R È S produit une nouvelle relation de schéma identique à R possédant les enregistrements appartenant à R ou à S ou aux deux relations.

        voir l'exemple

        R

        A

        B

        X1

        Y1

        X2

        Y2

        X3

        Y3

        S

        C

        D

        X4

        Y4

        X1

        Y1

        X2

        Y3

        R È S

        A

        B

        X1

        Y1

        X2

        Y2

        X3

        Y3

        X4

        Y4

        X2

        Y3

         

      5. Opérateur intersection Ç
      6. Définition
        Soient R et S, deux relations de schémas respectifs X et Y. Les schémas X et Y doivent être union-compatibles. L’intersection des deux relations R Ç S produit une nouvelle relation de schéma identique à R possédant les enregistrements appartenant conjointement à R et à S.

        voir l'exemple

         R Ç S

         A

         B

         X 1

         Y 1

         

      7. Opérateur différence /
      8. Définition
        Soient R et S, deux relations de schémas respectifs X et Y. Les schémas X et Y doivent être union-compatibles. La différence des deux relations R / S produit une nouvelle relation de schéma identique à R possédant les enregistrements présents dans R mais pas dans S.

        voir l'exemple

        R / S

         A

         B

         X2

         Y2

         X3

         Y3

         

      9. Opérateur produit cartésien X
      10. Le produit cartésien est un opérateur issu de la théorie des ensembles défini comme suit : si A et B sont deux ensembles, leur produit cartésien A X B contient toutes les paires (a, b) avec a Î A et b Î B [Plotkin94]. Ceci signifie que le produit cartésien permet d’obtenir toutes les combinaisons possibles entre les éléments de deux ensembles. Dans le cadre de l’algèbre relationnelle nous définirons donc le produit cartésien comme suit :

        Définition
        Soient R et S, deux relations de schémas respectifs X et Y. Les schémas X et Y doivent être disjoints c’est à dire ne pas avoir d’attributs communs. Le produit cartésien des deux relations R X S produit une nouvelle relation de schéma Z égal à l’union des schémas R et S et possédant comme enregistrements, la concaténation des enregistrements de R avec ceux de S.

        voir l'exemple

        R X S

         A

         B

         C

         D

         X1

         Y1

         X4

         Y4

         X1

         Y1

         X1

         Y1

         X1

         Y1

         X2

         Y3

         X2

         Y2

         X4

         Y4

         X2

         Y2

         X1

         Y1

         X2

         Y2

         X2

         Y3

         X3

         Y3

         X4

         Y4

         X3

         Y3

         X1

         Y1

         X3

         Y3

         X2

         Y3

         

    2. Opérateurs Bases de Données
      1. Affectation ¬
      2. Définition
        L'affectation permet d'identifier le résultat d'une expression algébrique afin de pouvoir réutiliser cette expression dans une autre expression ou bien de renommer une relation et ses attributs ou de construire une image d'une relation.

        Syntaxe
        R ( A1; A2; ...; An ) ¬ < relation >

        voir l'exemple

        R4 ¬ R2 Ç R3

         

      3. Sélection s
      4. Définition
        La sélection prend en entrée une relation R de schéma X et produit en sortie une nouvelle relation de schéma X ayant comme enregistrements ceux de R satisfaisant la condition de sélection.
        La condtion de sélection utilise les opérateurs de comparaison ( <; <=; >; =>; =; != ), les connecteurs logiques (et ou non) et les parenthèses.

        Syntaxe
        s < condition >

        voir l'exemple

        LIVRE

        CodeOuv

        Titre

        Genre

        Editeur

        Collection

        5894

        Le silence des agneaux

        Policier

        Marabout

        Classic

        4774

        Soeur Marie-Thérèse

        Bande dessinée

        Fluide glacial

        Humour noir

        2560

        Ramsès

        Historique

        Robert Laffont

        Best-seller

        8541

        La main verte

        Science-fiction

        J'ai lu

        Nuit

        Q1 ¬ s Genre='Policier' ou Editeur='Robert Laffont' ( LIVRE )

        Q1

        CodeOuv

        Titre

        Genre

        Editeur

        Collection

        5894

        Le silence des agneaux

        Policier

        Marabout

        Classic

        2560

        Ramsès

        Historique

        Robert Laffont

        Best-seller

         

      5. Projection p
      6. Définition
        La projection prend en entrée une relation R de schéma X et produit en sortie une nouvelle relation de schéma A1; A2; ...; An (schéma inclu dans X) ayant comme enregistrements ceux de R restreints au sous-schéma A1; A2; ...; An.

        Syntaxe
        p A1; A2; ...; An ( < relation > )

        voir l'exemple

        Q2 ¬ p Titre ( LIVRE )

        Q2

        Titre

        Le silence des agneaux

        Soeur Marie-Thérèse

        Ramsès

        La main verte

         

      7. Produit ou jointure *
      8. Définition
        Soient R et S deux relations de schéma respectif X et Y. Il faut que les schémas X et Y possèdent une intersection Z non vide.
        La relation résultat a un schéma qui est l'union des deux schémas X et Y et comme enregistrements la concaténation des enregistrements de R avec ceux de S s'ils ont la même valeur pour les attributs communs.

        Syntaxe
        R * S

        voir l'exemple

        R

        S

        R * S

        A

        B

        C

        x1

        y1

        z1

        x2

        y2

        z2

        x1

        y1

        z3

        x3

        y3

        z4

        B

        C

        D

        y1

        z1

        u1

        y1

        z1

        u2

        y1

        z3

        u4

        y8

        z8

        u8

        A

        B

        C

        D

        x1

        y1

        z1

        u1

        x1

        y1

        z1

        u2

        x1

        y1

        z3

        u4

         

      9. Division ¸
      10. Définition
        La relation résultat est définie sur le schéma X et comprend tous les n-uplets dont la concaténation avec tous les n-uplets de S appartiennent à R.

        Syntaxe
        R ¸ S
        R est défini sur un shéma X;
        S est défini sur un schéma Y.

        voir l'exemple

        Q4 : "Quels sont les hommes qui aiment toutes les femmes ?"

        AIME

        ELLES

        Q4

        Hommes

        Femmes

        Marc

        Julie

        Eric

        Claire

        Marc

        Céline

        Brice

        Julie

        Brice

        Claire

        Brice

        Céline

        Brice

        Laure

        Femmes

        Julie

        Claire

        Céline

        Laure

        Hommes

        Brice

         

  6. Exercices sur le modèle relationnel
  7. On souhaite créer une base de données concernant une entreprise. Une première étude a mis en évidence trois relations. Pour chacune des relations, la clé est soulignée.

    EMPLOYE (NumEmp, Nom, Prénom, Adresse, Téléphone, Qualification)
    SERVICE (NomService, Responsable, Téléphone)
    PROJET (NomProjet, DateDeb, DateFin, NumEmp)

    En considérant les possibilités offertes par ce schéma, répondre aux questions suivantes en justifiant vos réponses par rapport au modèle relationnel et par rapport à la sémantique intuitive des relations :

    Question 1 :
    Un employé peut il avoir plusieurs qualifications ?

    Question 2 :
    Un employé peut il faire plusieurs projets en même temps ?

    Question 3 :
    Une personne peut elle être responsable de plusieurs services ?

    Question 4 :
    Un service peut il avoir plusieurs responsables ?

     

     


    Introduction et définitions Le langage SQL