SlideShare una empresa de Scribd logo
1 de 56
Descargar para leer sin conexión
Le modèle relationnel

   8Les structures de données
   8Les règles d’intégrité structurelle
   8L’algèbre relationnelle
Le modèle relationnel

Inventé par E. F. Codd en 1970

Fondé sur la théorie mathématique des
ensembles et sur la notion de base qui lui
est rattachée : la relation.



                                             2
Objectifs d’un modèle relationnel:
                                      Rappel
 Proposer une indépendance des données et
 des traitements.
 Permettre de gérer les problèmes de
 cohérence et de redondance des données.
 Utiliser des structures de données simples
 et issues de la vie courante (tables).
 Proposer des langages de manipulation de
 données non procéduraux
 Permettre des vues utilisateurs différentes
 des relations implantées                    3
Le modèle relationnel :
                Les 10 concepts clés (1/2)
La définition du domaine d’un attribut

Le concept de relation

Les attributs

Les tuples

Le schéma d’une relation
                                         4
Le modèle relationnel :
               Les 10 concepts clés (2/2)
La clé

La contrainte référentielle

Les valeurs nulles

La contrainte d’entité

La contrainte de domaine
                                        5
Les structures de données :
                       Domaine d’un attribut
Définition : ensemble des valeurs prises
par un attribut

Un domaine se définit soit :
 • en extension
   8ex. : couleur_yeux = {bleu, vert, marron, noir}
 • en compréhension
   8ex. : âge_enfants = {0, 15}


                                                      6
Définition du produit cartésien:
                                                   Rappel

Soient deux ensembles O et P, on appelle
Produit cartésien de O et P, l'ensemble
noté O×P , des couples (x,y) où x∈O et
y∈P.
       Étudiants={ A , T , M }
       Professeurs = { L , Y }
       Étudiants ×Professeurs={ (A,L) , (A,Y) , (T,L) , (T,Y) ,
       (M,L) , (M,Y) }


                                                                  7
Les structures de données :
                                                         la relation
    Définition : Sous-ensemble du produit cartésien d’un ensemble
Nom de la relation
                             d’attributs
                                           Attributs , champs
           PRODUIT
                          N u m _ p ro d N o m _ p ro d Q té _ sto c k
        Occurrences ,     24             C h a ise       63
        Tuples,           141            T a b le        27
        Enregistrements   67             L it            12


Caractérisée par :
         ♦ Cardinalité de la relation (nombre de lignes)
         ♦ Unicité du nom des attributs
         ♦ Indifférence de l’ordre des lignes et des colonnes
         ♦ Nombre de colonnes = degré
                                                                         8
Les structures de données :
                                      Schéma de relations
4 Le schéma de relation représente la structure invariante
d’une relation.
4Il est constitué du nom de la relation suivi de la liste des
attributs et de leurs domaines associés

PRODUIT (N°PRODUIT : entier, NOM : chaîne, QTE EN STOCK : entier>0)



       Nom          Attributs (clé)
                                           Attributs non clé
      relation        (souligné)
                                                               9
Règles d’intégrité structurelle


Assertions qui doivent être vérifiées par les
données contenues dans la base.

 • Règles inhérentes au modèle relationnel




                                             10
Règles d’intégrité structurelle du
              modèle relationnel
Unicité de clé

Contrainte de référence

Contrainte d’entité

Contrainte de domaine
                                11
Clé d’une relation
Une relation étant un ensemble de tuples, il
ne peut y avoir deux tuples identiques dans
une relation.

Clé : ensemble minimal d’attributs dont la
connaissance des valeurs permet d’identifier
un tuple unique


                                           12
Contrainte référentielle(1/2)
Contrainte d’intégrité portant sur une relation R1,
consistant à imposer que la valeur d’un groupe
d’attributs apparaisse comme valeur de clé dans
une autre relation R2.

    8Elles définissent des liens obligatoires
     entre relations.
    8Garantissent le succès des opérations de
     mise à jour.

                                                  13
Contrainte référentielle(2/2)
Les contraintes de référence sont liées à la notion de clés
étrangères :
     8Lors de l’insertion d’un tuple dans une relation
      soumise à une contrainte référentielle (« relations
      référençantes ») , il faut vérifier que les valeurs de
      clés étrangères existent dans les relations référencées.

    8Lors de la suppression d’un tuple dans une relation
     référencée, il faut vérifier qu’aucun tuple de la
     relation référençante ne fasse référence au tuple que
     l’on souhaite supprimer.
       – soit le SGBD refuse la suppression
       – soit il la répercute en cascade.                14
Contrainte d’entité
Lorsque la valeur d’un attribut est inconnue,
on utilise une valeur conventionnelle appelée
valeur nulle

La contrainte d’entité impose que toute
relation possède une clé primaire et que tout
attribut participant à cette clé primaire soit
non null.

                                           15
Contrainte de domaine


Les valeurs d’un attribut doivent vérifier
une assertion logique




                                             16
Algèbre relationnelle :
                                   Définition
Collection      d’opérations   formelles   qui
agissent sur des relations et produisent une
relation en résultat.
Dans la plupart des systèmes relationnels,
la réponse à une requête s’obtient par
l’utilisation d’un ou plusieurs opérateurs
relationnels.
                                            17
Algèbre relationnelle :
                    Opérateurs relationnels
• Opérateurs unaires :
  8Sélection
  8Projection
  8Complément
• Opérateurs binaires :
  8Union
  8Intersection
  8Différence
                               Théorie des ensembles
  8Les produits et Jointures
  8Division

                                                  18
Algèbre relationnelle :
                  Sélection (ou restriction) (1/3)
Elimination des occurrences de la relation qui ne satisfont
pas à une condition donnée.
 Ex. : Considérons la relation Commande
       N° COMMANDE          DATE       MONTANT
              28        Octobre            1986
              29        Octobre            2024
              30        Novembre           1610
              52        Décembre            512

La sélection permet de répondre à la question : Donnez les
commandes passées après le mois d’octobre
      N° COMMANDE          DATE        MONTANT
             30        Novembre           1610
             52        Décembre            512


La condition peut contenir plusieurs critères
                                                          19
Algèbre relationnelle :
             Sélection (ou restriction) (2/3)
Opération sur une relation R1 produisant une relation
R2 de même schéma, mais comportant les seuls
tuples qui vérifient la condition précisée en
argument.

Notation : σcondition (R1)

           R2=selection (R1,condition)



                                                    20
Algèbre relationnelle :
          Sélection (ou restriction) (3/3)

Opérateurs de comparaison
    =, ≠, <, >, ≤, ≥, BETWEEN, IN, LIKE


Combinaison de plusieurs conditions
reliées par des opérateurs logiques :
    AND, OR, NOT


Valeurs NULL
                                          21
Algèbre relationnelle :
                                              Projection (1/2)
   Consiste à supprimer des attributs d’une relation
   Soit la relation ETUDIANT :
      Num_étu         Nom_étu       Nom_départ          Adr_départ
       521            Nom1         Informatique        Fes
       632            Nom2         Mathématique        Meknes
       569            Nom3         Informatique        Rabat
       451            Nom1         Informatique        Rabat
La projection sur nom_étu,          La projection sur nom_départ,
nom_départ donne :                  adr_départ donne :
  Nom_étu        Nom_départ
                                        Nom_départ     Adr_départ
   Nom1         Informatique
   Nom2         Mathématique           Informatique    Fes
   Nom3         Informatique           Mathématique    Meknes
                                       Informatique    Rabat
                                                                     22
Algèbre relationnelle :
                          Projection (2/2)
Opération sur une relation R1 consistant à
composer une relation R2 en enlevant à la
relation initiale tous les attributs non
mentionnés en opérandes.

Notation: π A1, A2, …, An (R1)
         R2=projection(R1;A1,A2,…,An)

                                             23
Algèbre relationnelle :
                                      Complément (1/2)
Consiste à construire la relation qui contient toutes les occurrences
qui n’existent pas (c’est la relation qui exprime le FAUX)

Soit la        Professeur   Elève
                                      Le complément de R sera :
relation R :   Prof1        Nom2
               Prof1        Nom1
                                         Professeur   Elève
               Prof2        Nom2
               Prof2        Nom1         Prof1        Nom4
                                         Prof3        Nom2
               Prof2        Nom4
               Prof3        Nom1
               Prof3        Nom4




                                                                24
Algèbre relationnelle :
                       Complément (2/2)

Ensemble des tuples du produit cartésien
des domaines des attributs d’une relation
n’appartenant pas à cette relation

Notation: Not (R1)
          R2=Comp (R1)


                                            25
Algèbre relationnelle :
                                                  Union (1/2)
Permet de fusionner deux relations en une seule.
Cette opération n’est possible que sur des relations ayant les
mêmes attributs.
Soit la relation OUVRIER          Soit la relation CADRE
   Num_empl    Nom_empl                Num_empl     Nom_empl
      15        Nom1                     3           Nom5
      17        Nom3                     21          Nom6
      56        Nom2

L’union permet de construire la relation EMPLOYE
                 Num_empl   Nom_empl
                   3         Nom5
                   21        Nom6
                   15        Nom1
                   17        Nom3
                   56        Nom2                              26
Algèbre relationnelle :
                             Union (2/2)

Opération portant sur deux relations de
même schéma R1 et R2, consistant à
construire une relation de même schéma
R3 ayant pour tuples ceux appartenant à R1
ou (inclusif) R2.

Notation: R1∪R2
          R3=Union (R1,R2)
                                        27
Algèbre relationnelle :
                                      Intersection (1/2)
Permet de fournir des occurrences présentes dans l’une et l’autre
des relations. Cette opération n’est possible que sur des relations
ayant les mêmes attributs.
 Soit la relation INGENIEUR Soit la relation CHEF DE SERVICE
     Num_empl   Nom_empl
                                          Num_empl   Nom_empl
       3         Nom5
                 Nom6                       3         Nom5
       21
                 Nom1                       15        Nom1
       15
                 Nom2                       28        Nom4
       56


L’intersection permet de construire la relation suivante
                   Num_empl    Nom_empl
                     3          Nom5
                     15         Nom1

                                                                28
Algèbre relationnelle :
                          Intersection (2/2)
Opération portant sur deux relations de
même schéma R1 et R2 consistant à
construire une relation de même schéma
R3 ayant pour tuples ceux appartenant à la
fois à R1 et R2.

Notation: R1 ∩ R2
          R3=Intersection (R1,R2)

                                             29
Algèbre relationnelle :
                                             Différence (1/2)
Permet d’obtenir les occurrences de la relation 1 qui n’appartiennent
pas à la relation 2. Les deux relations doivent avoir les mêmes
attributs. Cette opération n’est pas commutative.

   Soit la relation INSCRITS                 Soit la relation RECUS
        Nom_étu    Nom_UV
                                               Nom_étu   Nom_UV
          Nom2      Maths
                    Maths                        Nom2     Maths
          Nom5
                    Physique                     Nom5     Maths
          Nom2
                    Chimie                       Nom2     Chimie
          Nom2
          Nom5      Chimie

   La différence permet de construire la relation suivante
                      Nom_étu     Nom_UV
                         Nom2     Physique
                         Nom5     Chimie                           30
Algèbre relationnelle :
                        Différence (2/2)

Opération portant sur deux relations de
même schéma R1 et R2, consistant à
construire une relation de même schéma
R3 ayant pour tuples ceux appartenant à R1
et n’appartenant pas à R2.

Notation : R1 – R2
           R3=Difference(R1,R2)
                                        31
Algèbre relationnelle :
                                 Produit cartésien (1/2)
Le produit cartésien se construit en combinant toutes les possibilités.
Soit la relation LIVRE                Soit la relation EDITION
    Titre      Auteur                         Couleur     Edition
     X         Nom2                             Rouge     Luxe
     Y         Nom1                             Blanc     Broché
                                                Vert      Cartonné

   Le produit cartésien permet de construire la relation suivante
     Titre              Auteur      Couleur             Edition
       X            Nom2           Rouge                Luxe
       X            Nom2           Blanc                Broché
       X            Nom2           Vert                 Cartonné
       Y            Nom1           Rouge                Luxe
       Y            Nom1           Blanc                Broché
       Y            Nom1           Vert                 Cartonné
                                                                     32
Algèbre relationnelle :
                   Produit cartésien (2/2)
Opération portant sur deux relation R1 et
R2, consistant à construire une relation R3
ayant pour schéma la concaténation de
ceux des relations opérandes et pour tuples
toutes les combinaisons des tuples des
relations opérandes

Notation: R1 × R2
          R3=Produit (R1,R2)
                                          33
Algèbre relationnelle :
             Thêta-produit (thêta-jointure) (1/4)
  Le thêta-produit consiste en un produit cartésien doublé d’une sélection.
  On ne retient que les occurrences qui vérifient une condition logique.
  Thêta prend les valeurs : <, <=, >, >=, != ou <>
Soit la relation EMPLOYE                    Soit la relation CHEF
 Nom_emp      Salaire_emp                      Nom_chef      Salaire_chef
   E1          20000                             Nom2        25000
   E2          10000                             Nom1        12000
   E3           6000

 Le thêta-produit permet de répondre à la question : Donnez le nom
 des employés qui gagnent plus qu’un chef de service
 On effectue d’abord un produit cartésien puis une sélection dont
 la condition est salaire_emp > salaire_chef

                                                                            34
Algèbre relationnelle :
             Thêta-produit (thêta-jointure) (2/4)
Produit cartésien
       Nom_emp      Salaire_emp   Nom_chef   Salaire_chef
        E1            20000       Nom2          25000
        E1            20000       Nom1          12000
        E2            10000       Nom2          25000
        E2            10000       Nom1          12000
        E3             6000       Nom2          25000
        E3             6000       Nom1          12000

Sélection
       Nom_emp      Salaire_emp   Nom_chef   Salaire_chef
        E1            20000       Nom1          12000




                                                            35
Algèbre relationnelle :
    Thêta-produit (thêta-jointure) (3/4)
Opérande consistant à rapprocher selon une
condition les tuples de deux relations R1 et
R2 afin de former une relation R3 qui
contient l’ensemble de tous les tuples
obtenus en concaténant un tuple de R1 et
un de R2 vérifiant la condition de
rapprochement.


                                          36
Algèbre relationnelle :
     Thêta-produit (thêta-jointure) (4/4)
Notation: R1 θ condition R2

  R3= θ-jointure(R1,R2; condition)




                                       37
Algèbre relationnelle :
          Jointure naturelle (équijointure) (1/4)
La jointure naturelle permet de réaliser une liaison logique entre
deux tables. La condition de sélection est l’égalité entre les deux
clés des deux relations.
C’est un thêta-produit qui prend la valeur " = " entre des attributs
identiques.
 Soit la relation EMPLOYE                      Soit la relation SERVICE
Num_emp      Nom_emp         Num_service
                                               Num_service    Nom_service
 02            Nom2           S1                  S1         Informatique
 10            Nom1           S8                  S6         Mathématiques
 72            Nom2           S6                  S8         Sociologie
 62            Nom4           S1                  S4         Anglais




                                                                   38
Algèbre relationnelle :
         Jointure naturelle (équijointure) (2/4)
La jointure naturelle permet de répondre à la question : Donnez le
nom des employés et le nom de leur service.
       Num_emp      Nom_emp        Num_service    Nom_service
        02           Nom2          S1             Informatique
        10           Nom1          S8             Sociologie
        72           Nom2          S6             Mathématiques
        62           Nom4          S1             Informatique

Rq : Le service S4 Anglais qui n’a pas « d’associé », n’est pas
présent dans la jointure.

La jointure naturelle est l’une des opérations fondamentales de
l’algèbre relationnelle.

                                                                  39
Algèbre relationnelle :
 Jointure naturelle (équijointure) (3/4)

Opérande consistant à rapprocher les tuples
de deux relations R1 et R2 afin de former
une troisième relation R3 dont les attributs
sont l’union des attributs de R1 et R2, et
dont les tuples sont obtenus en composant
un tuple de R1 et un tuple de R2 ayant
mêmes valeurs pour les attributs de même
nom.
                                          40
Algèbre relationnelle :
  Jointure naturelle (équijointure) (4/4)
Notation: R1 θ condition R2
        R3=jointure(R1, R2; condition)




                                         41
Algèbre relationnelle :
                                  Jointure externe (1/3)
Il s’agit d’une jointure naturelle qui permet de faire figurer les
occurrences qui n’ont pas « d’associé » dans l’autre relation. On
leur associe alors la valeur nulle (symbole ).
 Soit la relation EMPLOYE                   Soit la relation SERVICE
Num_emp      Nom_emp        Num_service
                                            Num_service   Num_bâtiment
 02            emp1          S1                S1            B8
 10            emp2          S8                S6            B9
 72            emp1          S6                S8            B3
 62            emp3          S1                S4            B3
 25            emp4          S5                S2            B1




                                                                 42
Algèbre relationnelle :
                                Jointure externe (2/3)
La jointure extérieure conduit à la relation :

    Num_emp       Nom_emp         Num_service    Num_bâtiment
     02             emp1              S1            B8
     10             emp2              S8            B3
     72             emp1              S6            B9
     62             emp3              S1            B8
     25             emp4              S5            
                                    S4            B3
                                    S2            B1




                                                                43
Algèbre relationnelle :
                    Jointure externe (3/3)
R3 contient les tuples issus de la jointure
de R1 et R2 ainsi que ceux de R1 et R2 ne
participant pas à la jointure, avec des
valeurs nulles pour les attributs non
renseignés.




                                              44
Algèbre relationnelle :
                        Jointure externe gauche (1/3)
Permet de faire apparaître en totalité les occurrences d’une des
deux relations.
On définira une semi-jointure gauche ou une semi-jointure droite.

 Exemple de semi-jointure droite :
  Soit la relation EMPLOYE                  Soit la relation SERVICE
 Num_emp      Nom_emp        Num_service
                                            Num_service   Num_bâtiment
  02            emp1         S1                 S1           B8
  10            emp2         S8                 S6           B9
  72            emp1         S6                 S8           B3
  62            emp3         S1                 S4           B3
  25            emp4         S5                 S2           B1

                                                                 45
Algèbre relationnelle :
                    Jointure externe gauche (2/3)
Le résultat de la semi-jointure gauche donne le résultat suivant :

     Num_emp      Nom_emp          Num_service    Num_bâtiment
      02             emp1              S1            B8
      10             emp2              S8            B3
      72             emp1              S6            B9
      62             emp3              S1            B8
      25             emp4              S5            _




                                                                 46
Algèbre relationnelle :
           Jointure externe gauche (3/3)
Opération portant sur R1 et R2 donnant en
résultat les tuples de R1 qui participent à la
jointure des deux relations




                                            47
Algèbre relationnelle :
                       Auto-jointure (1/2)
C’est une jointure naturelle dans laquelle
les deux relations initiales sont R1 et R1.
Soit la relation Enseignant
Num_ens   Nom_ens       Grade       Salaire
 12         emp1        Assistant     9 500
 56         emp2        MDC          10 500
 27         emp1        Assistant    11 500
 43         emp3        MDC          12 000
 51         emp4        MDC          12 500




                                              48
Algèbre relationnelle :
                      Auto-jointure (2/2)

L’auto-jointure permet de répondre à la
question suivante : « Donnez le nom des
assistants qui gagnent plus qu’un MDC ? »

Relation résultat
            Nom_ens
             emp1

                                        49
Algèbre relationnelle :
                                     Division (1/3)
  Permet d’obtenir les occurrences de R1 qui sont
  associées à toutes les occurrences de R2. Une relation
  est donc divisée par une autre relation contenant
  exclusivement des attributs de la première relation

Soit la relation suivante        Soit la relation suivante
   Nom_étu     Nom_prof                  Nom_étu
     Etu1       Prof3
                                            Etu1
     Etu2       Prof1
                                            Etu2
     Etu3       Prof3
     Etu4       Prof4
     Etu1       Prof1
     Etu2       Prof3
     Etu3       Prof4
                                                         50
Algèbre relationnelle :
                                         Division (2/3)
La division permet de répondre à la question suivante :
Donnez le nom des profs qui enseignent conjointement aux
élèves figurant dans la seconde relation.




         La relation résultat est :   Nom_prof
                                        Prof3
                                        Prof1




                                                           51
Algèbre relationnelle :
                      Division (3/3)

Notation R1 ÷ R2




                                  52
Fonctions de calcul (1/2)
Expression arithmétique construite à partir
d’attributs d’une relation, de constantes,
d’opérateurs arithmétiques et de fonctions
   8Opérateurs arithmétiques
                    +       -   /   *
   8Fonctions
         »   somme
         »   moyenne
         »   maximum, minimum
         »   compte

                                          53
Fonctions de calcul (2/2)
Ces fonctions sont liées à une opération
 • Par exemple, avec une projection on a :
                 π A1, A2*A4-10 (R1)




                                             54
Les agrégats (1/2)
Partitionnement horizontal d’une relation
en fonction des valeurs d’un groupe
d’attributs, suivi d’un regroupement des
valeurs de chaque groupe par application
d’une fonction de calcul.




                                            55
Les agrégats (2/2)
    Notation :
      Agrégat (R1 ; attribut de regroupement ; attribut de calcul)
     • Cumul
R = cumul(relation, attribut de regroupement, attribut de calcul)
Ou
R=regrouper_calculer (relation,attribut de regroupement,
   cumul(attribut de calcul))
     • Compte
R = compte(relation, attribut de regroupement)

                                                                56

Más contenido relacionado

La actualidad más candente

Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniShellmates
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfacesAziz Darouichi
 
Base de donnees Avancees et Intro à NoSQL.ppt
Base de donnees Avancees et Intro à  NoSQL.pptBase de donnees Avancees et Intro à  NoSQL.ppt
Base de donnees Avancees et Intro à NoSQL.pptIdriss22
 
Ch2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfFadouaBouafifSamoud
 
Cours langage c
Cours langage cCours langage c
Cours langage ccoursuniv
 
Formation python
Formation pythonFormation python
Formation pythonj_lipaz
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationECAM Brussels Engineering School
 
Synchronisation sous systeme linux
Synchronisation sous systeme linuxSynchronisation sous systeme linux
Synchronisation sous systeme linuxFadwa Gmiden
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionECAM Brussels Engineering School
 
Cours Visual Basic.NET
Cours Visual Basic.NETCours Visual Basic.NET
Cours Visual Basic.NETAziz Darouichi
 
Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesLilia Sfaxi
 
Cours d'introduction aux HTML5 & CSS3
Cours d'introduction aux HTML5 & CSS3Cours d'introduction aux HTML5 & CSS3
Cours d'introduction aux HTML5 & CSS3Abel LIFAEFI MBULA
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfacesAmir Souissi
 
Présentation python
Présentation pythonPrésentation python
Présentation pythonSarah
 
Introduction aux bases de données
Introduction aux bases de donnéesIntroduction aux bases de données
Introduction aux bases de donnéesAbdoulaye Dieng
 

La actualidad más candente (20)

Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El Hassani
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfaces
 
Base de donnees Avancees et Intro à NoSQL.ppt
Base de donnees Avancees et Intro à  NoSQL.pptBase de donnees Avancees et Intro à  NoSQL.ppt
Base de donnees Avancees et Intro à NoSQL.ppt
 
Ch2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdf
 
Cours langage c
Cours langage cCours langage c
Cours langage c
 
Chapitre 01 - Notions de base
Chapitre 01 - Notions de baseChapitre 01 - Notions de base
Chapitre 01 - Notions de base
 
Formation python
Formation pythonFormation python
Formation python
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulation
 
Synchronisation sous systeme linux
Synchronisation sous systeme linuxSynchronisation sous systeme linux
Synchronisation sous systeme linux
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exception
 
Chap1: Cours en C++
Chap1: Cours en C++Chap1: Cours en C++
Chap1: Cours en C++
 
COURS_PYTHON_22.ppt
COURS_PYTHON_22.pptCOURS_PYTHON_22.ppt
COURS_PYTHON_22.ppt
 
Cours Visual Basic.NET
Cours Visual Basic.NETCours Visual Basic.NET
Cours Visual Basic.NET
 
Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de Classes
 
Cours d'introduction aux HTML5 & CSS3
Cours d'introduction aux HTML5 & CSS3Cours d'introduction aux HTML5 & CSS3
Cours d'introduction aux HTML5 & CSS3
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfaces
 
Uml classes Par les exemples
Uml classes Par les exemplesUml classes Par les exemples
Uml classes Par les exemples
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
 
Présentation python
Présentation pythonPrésentation python
Présentation python
 
Introduction aux bases de données
Introduction aux bases de donnéesIntroduction aux bases de données
Introduction aux bases de données
 

Similar a Algebre relationelle

3-Approche Relationnelle.pptx
3-Approche Relationnelle.pptx3-Approche Relationnelle.pptx
3-Approche Relationnelle.pptxsalimtayaadine
 
Coursbase de donnees relationnelle sql server
Coursbase de donnees relationnelle sql serverCoursbase de donnees relationnelle sql server
Coursbase de donnees relationnelle sql serverLahcensabir2
 
cours-bd-Algebre relationnelle.pdf
cours-bd-Algebre relationnelle.pdfcours-bd-Algebre relationnelle.pdf
cours-bd-Algebre relationnelle.pdfUbaldKouokam
 
coursMLD.pdf djnvvvvvvvvvvvvvvvv jd dvjjjjjjjjjjjjjjj
coursMLD.pdf djnvvvvvvvvvvvvvvvv jd           dvjjjjjjjjjjjjjjjcoursMLD.pdf djnvvvvvvvvvvvvvvvv jd           dvjjjjjjjjjjjjjjj
coursMLD.pdf djnvvvvvvvvvvvvvvvv jd dvjjjjjjjjjjjjjjjobaghat60
 
coursMLD.pdfnw wx c c c c c c cc c c c c c cckck
coursMLD.pdfnw wx c c c c c c cc c c c c c cckckcoursMLD.pdfnw wx c c c c c c cc c c c c c cckck
coursMLD.pdfnw wx c c c c c c cc c c c c c cckckobaghat60
 
coursMLD.pdf dnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn...
coursMLD.pdf dnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn...coursMLD.pdf dnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn...
coursMLD.pdf dnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn...obaghat60
 
18_3_BDModeleRelationnel.ppt
18_3_BDModeleRelationnel.ppt18_3_BDModeleRelationnel.ppt
18_3_BDModeleRelationnel.pptElyes ELEBRI
 
Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zinebZineb ELGARRAI
 
Techniques du data mining
Techniques du data miningTechniques du data mining
Techniques du data miningDonia Hammami
 
Les algorithmes de génération des règles d association
Les algorithmes de génération des règles d associationLes algorithmes de génération des règles d association
Les algorithmes de génération des règles d associationHajer Trabelsi
 
Les algorithmes de génération des règles d association
Les algorithmes de génération des règles d associationLes algorithmes de génération des règles d association
Les algorithmes de génération des règles d associationHajer Trabelsi
 
Design patterns french
Design patterns frenchDesign patterns french
Design patterns frenchmeriem sari
 

Similar a Algebre relationelle (20)

3-Approche Relationnelle.pptx
3-Approche Relationnelle.pptx3-Approche Relationnelle.pptx
3-Approche Relationnelle.pptx
 
Coursbase de donnees relationnelle sql server
Coursbase de donnees relationnelle sql serverCoursbase de donnees relationnelle sql server
Coursbase de donnees relationnelle sql server
 
cours-bd-Algebre relationnelle.pdf
cours-bd-Algebre relationnelle.pdfcours-bd-Algebre relationnelle.pdf
cours-bd-Algebre relationnelle.pdf
 
Chapitre 3
Chapitre 3Chapitre 3
Chapitre 3
 
coursMLD.pdf djnvvvvvvvvvvvvvvvv jd dvjjjjjjjjjjjjjjj
coursMLD.pdf djnvvvvvvvvvvvvvvvv jd           dvjjjjjjjjjjjjjjjcoursMLD.pdf djnvvvvvvvvvvvvvvvv jd           dvjjjjjjjjjjjjjjj
coursMLD.pdf djnvvvvvvvvvvvvvvvv jd dvjjjjjjjjjjjjjjj
 
coursMLD.pdfnw wx c c c c c c cc c c c c c cckck
coursMLD.pdfnw wx c c c c c c cc c c c c c cckckcoursMLD.pdfnw wx c c c c c c cc c c c c c cckck
coursMLD.pdfnw wx c c c c c c cc c c c c c cckck
 
coursMLD.pdf dnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn...
coursMLD.pdf dnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn...coursMLD.pdf dnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn...
coursMLD.pdf dnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn...
 
Bdr sql
Bdr sqlBdr sql
Bdr sql
 
18_3_BDModeleRelationnel.ppt
18_3_BDModeleRelationnel.ppt18_3_BDModeleRelationnel.ppt
18_3_BDModeleRelationnel.ppt
 
Bdd sql
Bdd sqlBdd sql
Bdd sql
 
Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zineb
 
Techniques du data mining
Techniques du data miningTechniques du data mining
Techniques du data mining
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Les algorithmes de génération des règles d association
Les algorithmes de génération des règles d associationLes algorithmes de génération des règles d association
Les algorithmes de génération des règles d association
 
Les algorithmes de génération des règles d association
Les algorithmes de génération des règles d associationLes algorithmes de génération des règles d association
Les algorithmes de génération des règles d association
 
Design patterns french
Design patterns frenchDesign patterns french
Design patterns french
 
Cours Système d'Information
Cours Système d'InformationCours Système d'Information
Cours Système d'Information
 
Cours3 gdm sql
Cours3 gdm sqlCours3 gdm sql
Cours3 gdm sql
 
Qualité de code et bonnes pratiques
Qualité de code et bonnes pratiquesQualité de code et bonnes pratiques
Qualité de code et bonnes pratiques
 

Último

La Projection orthogonale en dessin technique
La Projection orthogonale en dessin techniqueLa Projection orthogonale en dessin technique
La Projection orthogonale en dessin techniquessuser4dbdf2
 
Rapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFERapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFEAhmam Abderrahmane
 
Exercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositionsExercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositionslaetitiachassagne
 
Semaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptxSemaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptxMartin M Flynn
 
Formation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changementFormation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changementM2i Formation
 
Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2JeanLucHusson
 
Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024frizzole
 

Último (7)

La Projection orthogonale en dessin technique
La Projection orthogonale en dessin techniqueLa Projection orthogonale en dessin technique
La Projection orthogonale en dessin technique
 
Rapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFERapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFE
 
Exercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositionsExercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositions
 
Semaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptxSemaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptx
 
Formation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changementFormation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changement
 
Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2
 
Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024
 

Algebre relationelle

  • 1. Le modèle relationnel 8Les structures de données 8Les règles d’intégrité structurelle 8L’algèbre relationnelle
  • 2. Le modèle relationnel Inventé par E. F. Codd en 1970 Fondé sur la théorie mathématique des ensembles et sur la notion de base qui lui est rattachée : la relation. 2
  • 3. Objectifs d’un modèle relationnel: Rappel Proposer une indépendance des données et des traitements. Permettre de gérer les problèmes de cohérence et de redondance des données. Utiliser des structures de données simples et issues de la vie courante (tables). Proposer des langages de manipulation de données non procéduraux Permettre des vues utilisateurs différentes des relations implantées 3
  • 4. Le modèle relationnel : Les 10 concepts clés (1/2) La définition du domaine d’un attribut Le concept de relation Les attributs Les tuples Le schéma d’une relation 4
  • 5. Le modèle relationnel : Les 10 concepts clés (2/2) La clé La contrainte référentielle Les valeurs nulles La contrainte d’entité La contrainte de domaine 5
  • 6. Les structures de données : Domaine d’un attribut Définition : ensemble des valeurs prises par un attribut Un domaine se définit soit : • en extension 8ex. : couleur_yeux = {bleu, vert, marron, noir} • en compréhension 8ex. : âge_enfants = {0, 15} 6
  • 7. Définition du produit cartésien: Rappel Soient deux ensembles O et P, on appelle Produit cartésien de O et P, l'ensemble noté O×P , des couples (x,y) où x∈O et y∈P. Étudiants={ A , T , M } Professeurs = { L , Y } Étudiants ×Professeurs={ (A,L) , (A,Y) , (T,L) , (T,Y) , (M,L) , (M,Y) } 7
  • 8. Les structures de données : la relation Définition : Sous-ensemble du produit cartésien d’un ensemble Nom de la relation d’attributs Attributs , champs PRODUIT N u m _ p ro d N o m _ p ro d Q té _ sto c k Occurrences , 24 C h a ise 63 Tuples, 141 T a b le 27 Enregistrements 67 L it 12 Caractérisée par : ♦ Cardinalité de la relation (nombre de lignes) ♦ Unicité du nom des attributs ♦ Indifférence de l’ordre des lignes et des colonnes ♦ Nombre de colonnes = degré 8
  • 9. Les structures de données : Schéma de relations 4 Le schéma de relation représente la structure invariante d’une relation. 4Il est constitué du nom de la relation suivi de la liste des attributs et de leurs domaines associés PRODUIT (N°PRODUIT : entier, NOM : chaîne, QTE EN STOCK : entier>0) Nom Attributs (clé) Attributs non clé relation (souligné) 9
  • 10. Règles d’intégrité structurelle Assertions qui doivent être vérifiées par les données contenues dans la base. • Règles inhérentes au modèle relationnel 10
  • 11. Règles d’intégrité structurelle du modèle relationnel Unicité de clé Contrainte de référence Contrainte d’entité Contrainte de domaine 11
  • 12. Clé d’une relation Une relation étant un ensemble de tuples, il ne peut y avoir deux tuples identiques dans une relation. Clé : ensemble minimal d’attributs dont la connaissance des valeurs permet d’identifier un tuple unique 12
  • 13. Contrainte référentielle(1/2) Contrainte d’intégrité portant sur une relation R1, consistant à imposer que la valeur d’un groupe d’attributs apparaisse comme valeur de clé dans une autre relation R2. 8Elles définissent des liens obligatoires entre relations. 8Garantissent le succès des opérations de mise à jour. 13
  • 14. Contrainte référentielle(2/2) Les contraintes de référence sont liées à la notion de clés étrangères : 8Lors de l’insertion d’un tuple dans une relation soumise à une contrainte référentielle (« relations référençantes ») , il faut vérifier que les valeurs de clés étrangères existent dans les relations référencées. 8Lors de la suppression d’un tuple dans une relation référencée, il faut vérifier qu’aucun tuple de la relation référençante ne fasse référence au tuple que l’on souhaite supprimer. – soit le SGBD refuse la suppression – soit il la répercute en cascade. 14
  • 15. Contrainte d’entité Lorsque la valeur d’un attribut est inconnue, on utilise une valeur conventionnelle appelée valeur nulle La contrainte d’entité impose que toute relation possède une clé primaire et que tout attribut participant à cette clé primaire soit non null. 15
  • 16. Contrainte de domaine Les valeurs d’un attribut doivent vérifier une assertion logique 16
  • 17. Algèbre relationnelle : Définition Collection d’opérations formelles qui agissent sur des relations et produisent une relation en résultat. Dans la plupart des systèmes relationnels, la réponse à une requête s’obtient par l’utilisation d’un ou plusieurs opérateurs relationnels. 17
  • 18. Algèbre relationnelle : Opérateurs relationnels • Opérateurs unaires : 8Sélection 8Projection 8Complément • Opérateurs binaires : 8Union 8Intersection 8Différence Théorie des ensembles 8Les produits et Jointures 8Division 18
  • 19. Algèbre relationnelle : Sélection (ou restriction) (1/3) Elimination des occurrences de la relation qui ne satisfont pas à une condition donnée. Ex. : Considérons la relation Commande N° COMMANDE DATE MONTANT 28 Octobre 1986 29 Octobre 2024 30 Novembre 1610 52 Décembre 512 La sélection permet de répondre à la question : Donnez les commandes passées après le mois d’octobre N° COMMANDE DATE MONTANT 30 Novembre 1610 52 Décembre 512 La condition peut contenir plusieurs critères 19
  • 20. Algèbre relationnelle : Sélection (ou restriction) (2/3) Opération sur une relation R1 produisant une relation R2 de même schéma, mais comportant les seuls tuples qui vérifient la condition précisée en argument. Notation : σcondition (R1) R2=selection (R1,condition) 20
  • 21. Algèbre relationnelle : Sélection (ou restriction) (3/3) Opérateurs de comparaison =, ≠, <, >, ≤, ≥, BETWEEN, IN, LIKE Combinaison de plusieurs conditions reliées par des opérateurs logiques : AND, OR, NOT Valeurs NULL 21
  • 22. Algèbre relationnelle : Projection (1/2) Consiste à supprimer des attributs d’une relation Soit la relation ETUDIANT : Num_étu Nom_étu Nom_départ Adr_départ 521 Nom1 Informatique Fes 632 Nom2 Mathématique Meknes 569 Nom3 Informatique Rabat 451 Nom1 Informatique Rabat La projection sur nom_étu, La projection sur nom_départ, nom_départ donne : adr_départ donne : Nom_étu Nom_départ Nom_départ Adr_départ Nom1 Informatique Nom2 Mathématique Informatique Fes Nom3 Informatique Mathématique Meknes Informatique Rabat 22
  • 23. Algèbre relationnelle : Projection (2/2) Opération sur une relation R1 consistant à composer une relation R2 en enlevant à la relation initiale tous les attributs non mentionnés en opérandes. Notation: π A1, A2, …, An (R1) R2=projection(R1;A1,A2,…,An) 23
  • 24. Algèbre relationnelle : Complément (1/2) Consiste à construire la relation qui contient toutes les occurrences qui n’existent pas (c’est la relation qui exprime le FAUX) Soit la Professeur Elève Le complément de R sera : relation R : Prof1 Nom2 Prof1 Nom1 Professeur Elève Prof2 Nom2 Prof2 Nom1 Prof1 Nom4 Prof3 Nom2 Prof2 Nom4 Prof3 Nom1 Prof3 Nom4 24
  • 25. Algèbre relationnelle : Complément (2/2) Ensemble des tuples du produit cartésien des domaines des attributs d’une relation n’appartenant pas à cette relation Notation: Not (R1) R2=Comp (R1) 25
  • 26. Algèbre relationnelle : Union (1/2) Permet de fusionner deux relations en une seule. Cette opération n’est possible que sur des relations ayant les mêmes attributs. Soit la relation OUVRIER Soit la relation CADRE Num_empl Nom_empl Num_empl Nom_empl 15 Nom1 3 Nom5 17 Nom3 21 Nom6 56 Nom2 L’union permet de construire la relation EMPLOYE Num_empl Nom_empl 3 Nom5 21 Nom6 15 Nom1 17 Nom3 56 Nom2 26
  • 27. Algèbre relationnelle : Union (2/2) Opération portant sur deux relations de même schéma R1 et R2, consistant à construire une relation de même schéma R3 ayant pour tuples ceux appartenant à R1 ou (inclusif) R2. Notation: R1∪R2 R3=Union (R1,R2) 27
  • 28. Algèbre relationnelle : Intersection (1/2) Permet de fournir des occurrences présentes dans l’une et l’autre des relations. Cette opération n’est possible que sur des relations ayant les mêmes attributs. Soit la relation INGENIEUR Soit la relation CHEF DE SERVICE Num_empl Nom_empl Num_empl Nom_empl 3 Nom5 Nom6 3 Nom5 21 Nom1 15 Nom1 15 Nom2 28 Nom4 56 L’intersection permet de construire la relation suivante Num_empl Nom_empl 3 Nom5 15 Nom1 28
  • 29. Algèbre relationnelle : Intersection (2/2) Opération portant sur deux relations de même schéma R1 et R2 consistant à construire une relation de même schéma R3 ayant pour tuples ceux appartenant à la fois à R1 et R2. Notation: R1 ∩ R2 R3=Intersection (R1,R2) 29
  • 30. Algèbre relationnelle : Différence (1/2) Permet d’obtenir les occurrences de la relation 1 qui n’appartiennent pas à la relation 2. Les deux relations doivent avoir les mêmes attributs. Cette opération n’est pas commutative. Soit la relation INSCRITS Soit la relation RECUS Nom_étu Nom_UV Nom_étu Nom_UV Nom2 Maths Maths Nom2 Maths Nom5 Physique Nom5 Maths Nom2 Chimie Nom2 Chimie Nom2 Nom5 Chimie La différence permet de construire la relation suivante Nom_étu Nom_UV Nom2 Physique Nom5 Chimie 30
  • 31. Algèbre relationnelle : Différence (2/2) Opération portant sur deux relations de même schéma R1 et R2, consistant à construire une relation de même schéma R3 ayant pour tuples ceux appartenant à R1 et n’appartenant pas à R2. Notation : R1 – R2 R3=Difference(R1,R2) 31
  • 32. Algèbre relationnelle : Produit cartésien (1/2) Le produit cartésien se construit en combinant toutes les possibilités. Soit la relation LIVRE Soit la relation EDITION Titre Auteur Couleur Edition X Nom2 Rouge Luxe Y Nom1 Blanc Broché Vert Cartonné Le produit cartésien permet de construire la relation suivante Titre Auteur Couleur Edition X Nom2 Rouge Luxe X Nom2 Blanc Broché X Nom2 Vert Cartonné Y Nom1 Rouge Luxe Y Nom1 Blanc Broché Y Nom1 Vert Cartonné 32
  • 33. Algèbre relationnelle : Produit cartésien (2/2) Opération portant sur deux relation R1 et R2, consistant à construire une relation R3 ayant pour schéma la concaténation de ceux des relations opérandes et pour tuples toutes les combinaisons des tuples des relations opérandes Notation: R1 × R2 R3=Produit (R1,R2) 33
  • 34. Algèbre relationnelle : Thêta-produit (thêta-jointure) (1/4) Le thêta-produit consiste en un produit cartésien doublé d’une sélection. On ne retient que les occurrences qui vérifient une condition logique. Thêta prend les valeurs : <, <=, >, >=, != ou <> Soit la relation EMPLOYE Soit la relation CHEF Nom_emp Salaire_emp Nom_chef Salaire_chef E1 20000 Nom2 25000 E2 10000 Nom1 12000 E3 6000 Le thêta-produit permet de répondre à la question : Donnez le nom des employés qui gagnent plus qu’un chef de service On effectue d’abord un produit cartésien puis une sélection dont la condition est salaire_emp > salaire_chef 34
  • 35. Algèbre relationnelle : Thêta-produit (thêta-jointure) (2/4) Produit cartésien Nom_emp Salaire_emp Nom_chef Salaire_chef E1 20000 Nom2 25000 E1 20000 Nom1 12000 E2 10000 Nom2 25000 E2 10000 Nom1 12000 E3 6000 Nom2 25000 E3 6000 Nom1 12000 Sélection Nom_emp Salaire_emp Nom_chef Salaire_chef E1 20000 Nom1 12000 35
  • 36. Algèbre relationnelle : Thêta-produit (thêta-jointure) (3/4) Opérande consistant à rapprocher selon une condition les tuples de deux relations R1 et R2 afin de former une relation R3 qui contient l’ensemble de tous les tuples obtenus en concaténant un tuple de R1 et un de R2 vérifiant la condition de rapprochement. 36
  • 37. Algèbre relationnelle : Thêta-produit (thêta-jointure) (4/4) Notation: R1 θ condition R2 R3= θ-jointure(R1,R2; condition) 37
  • 38. Algèbre relationnelle : Jointure naturelle (équijointure) (1/4) La jointure naturelle permet de réaliser une liaison logique entre deux tables. La condition de sélection est l’égalité entre les deux clés des deux relations. C’est un thêta-produit qui prend la valeur " = " entre des attributs identiques. Soit la relation EMPLOYE Soit la relation SERVICE Num_emp Nom_emp Num_service Num_service Nom_service 02 Nom2 S1 S1 Informatique 10 Nom1 S8 S6 Mathématiques 72 Nom2 S6 S8 Sociologie 62 Nom4 S1 S4 Anglais 38
  • 39. Algèbre relationnelle : Jointure naturelle (équijointure) (2/4) La jointure naturelle permet de répondre à la question : Donnez le nom des employés et le nom de leur service. Num_emp Nom_emp Num_service Nom_service 02 Nom2 S1 Informatique 10 Nom1 S8 Sociologie 72 Nom2 S6 Mathématiques 62 Nom4 S1 Informatique Rq : Le service S4 Anglais qui n’a pas « d’associé », n’est pas présent dans la jointure. La jointure naturelle est l’une des opérations fondamentales de l’algèbre relationnelle. 39
  • 40. Algèbre relationnelle : Jointure naturelle (équijointure) (3/4) Opérande consistant à rapprocher les tuples de deux relations R1 et R2 afin de former une troisième relation R3 dont les attributs sont l’union des attributs de R1 et R2, et dont les tuples sont obtenus en composant un tuple de R1 et un tuple de R2 ayant mêmes valeurs pour les attributs de même nom. 40
  • 41. Algèbre relationnelle : Jointure naturelle (équijointure) (4/4) Notation: R1 θ condition R2 R3=jointure(R1, R2; condition) 41
  • 42. Algèbre relationnelle : Jointure externe (1/3) Il s’agit d’une jointure naturelle qui permet de faire figurer les occurrences qui n’ont pas « d’associé » dans l’autre relation. On leur associe alors la valeur nulle (symbole ). Soit la relation EMPLOYE Soit la relation SERVICE Num_emp Nom_emp Num_service Num_service Num_bâtiment 02 emp1 S1 S1 B8 10 emp2 S8 S6 B9 72 emp1 S6 S8 B3 62 emp3 S1 S4 B3 25 emp4 S5 S2 B1 42
  • 43. Algèbre relationnelle : Jointure externe (2/3) La jointure extérieure conduit à la relation : Num_emp Nom_emp Num_service Num_bâtiment 02 emp1 S1 B8 10 emp2 S8 B3 72 emp1 S6 B9 62 emp3 S1 B8 25 emp4 S5    S4 B3   S2 B1 43
  • 44. Algèbre relationnelle : Jointure externe (3/3) R3 contient les tuples issus de la jointure de R1 et R2 ainsi que ceux de R1 et R2 ne participant pas à la jointure, avec des valeurs nulles pour les attributs non renseignés. 44
  • 45. Algèbre relationnelle : Jointure externe gauche (1/3) Permet de faire apparaître en totalité les occurrences d’une des deux relations. On définira une semi-jointure gauche ou une semi-jointure droite. Exemple de semi-jointure droite : Soit la relation EMPLOYE Soit la relation SERVICE Num_emp Nom_emp Num_service Num_service Num_bâtiment 02 emp1 S1 S1 B8 10 emp2 S8 S6 B9 72 emp1 S6 S8 B3 62 emp3 S1 S4 B3 25 emp4 S5 S2 B1 45
  • 46. Algèbre relationnelle : Jointure externe gauche (2/3) Le résultat de la semi-jointure gauche donne le résultat suivant : Num_emp Nom_emp Num_service Num_bâtiment 02 emp1 S1 B8 10 emp2 S8 B3 72 emp1 S6 B9 62 emp3 S1 B8 25 emp4 S5 _ 46
  • 47. Algèbre relationnelle : Jointure externe gauche (3/3) Opération portant sur R1 et R2 donnant en résultat les tuples de R1 qui participent à la jointure des deux relations 47
  • 48. Algèbre relationnelle : Auto-jointure (1/2) C’est une jointure naturelle dans laquelle les deux relations initiales sont R1 et R1. Soit la relation Enseignant Num_ens Nom_ens Grade Salaire 12 emp1 Assistant 9 500 56 emp2 MDC 10 500 27 emp1 Assistant 11 500 43 emp3 MDC 12 000 51 emp4 MDC 12 500 48
  • 49. Algèbre relationnelle : Auto-jointure (2/2) L’auto-jointure permet de répondre à la question suivante : « Donnez le nom des assistants qui gagnent plus qu’un MDC ? » Relation résultat Nom_ens emp1 49
  • 50. Algèbre relationnelle : Division (1/3) Permet d’obtenir les occurrences de R1 qui sont associées à toutes les occurrences de R2. Une relation est donc divisée par une autre relation contenant exclusivement des attributs de la première relation Soit la relation suivante Soit la relation suivante Nom_étu Nom_prof Nom_étu Etu1 Prof3 Etu1 Etu2 Prof1 Etu2 Etu3 Prof3 Etu4 Prof4 Etu1 Prof1 Etu2 Prof3 Etu3 Prof4 50
  • 51. Algèbre relationnelle : Division (2/3) La division permet de répondre à la question suivante : Donnez le nom des profs qui enseignent conjointement aux élèves figurant dans la seconde relation. La relation résultat est : Nom_prof Prof3 Prof1 51
  • 52. Algèbre relationnelle : Division (3/3) Notation R1 ÷ R2 52
  • 53. Fonctions de calcul (1/2) Expression arithmétique construite à partir d’attributs d’une relation, de constantes, d’opérateurs arithmétiques et de fonctions 8Opérateurs arithmétiques + - / * 8Fonctions » somme » moyenne » maximum, minimum » compte 53
  • 54. Fonctions de calcul (2/2) Ces fonctions sont liées à une opération • Par exemple, avec une projection on a : π A1, A2*A4-10 (R1) 54
  • 55. Les agrégats (1/2) Partitionnement horizontal d’une relation en fonction des valeurs d’un groupe d’attributs, suivi d’un regroupement des valeurs de chaque groupe par application d’une fonction de calcul. 55
  • 56. Les agrégats (2/2) Notation : Agrégat (R1 ; attribut de regroupement ; attribut de calcul) • Cumul R = cumul(relation, attribut de regroupement, attribut de calcul) Ou R=regrouper_calculer (relation,attribut de regroupement, cumul(attribut de calcul)) • Compte R = compte(relation, attribut de regroupement) 56