Introduction aux bases de données Hiver 2021

Geoffrey Glangine, M.Sc.

8TRD151

L'algèbre relationnelle

introduction

Toute l'algèbre relationnelle est basée sur 5 opérateurs de bases :

  • Union (∪)
  • Différence (-)
  • Projection (π)
  • Restriction (sélection) (σ)
  • Produit cartésien (✕)

introduction

Avec les 5 opérateurs de base on peut créer les 3 opérateurs suivants:

  • Intersection
  • Jointure
  • division

Les opérateurs les plus utilisés :

  • Projection
  • Restriction
  • Produit
  • Jointure (⋈)

Les opérateurs complémentaires :

  • Jointure naturelle
  • Jointure externe
  • Opérateurs ensemblistes
  • division

La projection

La projection est un opérateur unaire. La projection de R1 sur une partie de ses attributs donne une relation R2 dont le schéma est limité par les attributs spécifiés par la projection.

Que se passe t'il en cas de doublons ?

Il est possible que lors d'une projection, certains doublons apparaissent, dans ce cas ils sont considérés comme étant mathématiquement identiques et sont donc supprimés.

Exercice :

Soit la relation suivante :

Personne

Tremblay

Pierre

20

Gagné

Jean

30

Personne (Nom, Prénom, Age)

Quel est le résultat de l'opération :

R = Projection (Personne, Nom, Age)

Solution :

R

Tremblay

20

Gagné

30

La restriction

La restriction est un opérateur unaire. La restriction de R1, étant donnée une condition C, produit une relation R2 de même schéma que R1 et dont les tuples sont les tuples de R1 vérifiant la condition C.

Exercice :

Soit la relation suivante :

Personne

Tremblay

Pierre

20

Gagné

Jean

30

Personne (Nom, Prénom, Age)

Quel est le résultat de l'opération :

R = Restriction (Personne, Age>25)

Solution :

R

Gagné

Jean

30

Le produit (ou produit cartésien)

  • Il est une opération binaire commutative. Le produit de R1 par R2 produit une relation R3 ayant pour schéma la juxtaposition de ceux des relations R1 et R2 et pour tuples l'ensemble des combinaisons possibles entre les tuples de R1 et ceux de R2.
  • Le nombre de tuples résultant du produit de R1 par R2 est égal au nombre de tuples de R1 fois le nombre de tuples de R2.
  • Le nombre de colonne du produit de R1 par R2 est égal au nombre de colonne de R1 plus le nombre de colonnes de R2.

Exercice :

Soit les deux relations suivantes :

Homme (Nom, Prénom, Age)
Voiture (Type, Marque)
Homme

Tremblay

Pierre

20

Gagné

Jean

30

Voiture

Tesla

Model X

Dodge

Ram 1500

Quel est le résultat de l'opération suivante :

R = Produit (Homme, Voiture)

Solution :

On obtient alors la relation R composée des tuples suivants :

R

Tremblay

Pierre

20

Tesla

Model X

Tremblay

Pierre

20

Dodge

Ram 1500

Gagné

Jean

30

Tesla

Model X

Gagné

Jean

30

Dodge

Ram 1500

Le produit cartésien est rarement utilisé seul, mais il est la base de la jointure !

La jointure

La jointure est une opération binaire. La jointure de R1 et R2, étant donné une condition C portant sur des attributs de R1 et de R2, de même domaine, produit une relation R3 ayant pour schéma la juxtaposition de ceux des relations R1 et R2 et pour tuples l'ensemble de ceux obtenus par concaténation des tuples de R1 et de R2, et qui vérifient la condition C.

Exercice :

Soit les deux relations suivantes :

Homme (Nom, Prénom, Age)
Voiture (Type, Marque, Propriétaire)
Homme

Tremblay

Pierre

20

Gagné

Jean

30

Voiture

Tesla

Model X

Tremblay

Dodge

Ram 1500

Gagné

Dodge

caravan

Tremblay

Quel est le résultat de l'opération suivante :

R = Jointure (Homme, Voiture, Homme.Nom=Voiture.Propriétaire)

Exercice :

Homme

Tremblay

Pierre

20

Gagné

Jean

30

Voiture

Tesla

Model X

Tremblay

Dodge

Ram 1500

Gagné

Dodge

caravan

Tremblay

Quel est le résultat de l'opération suivante :

R = Jointure (Homme, Voiture, Homme.Nom=Voiture.Propriétaire)

Solution :

R

Tremblay

Pierre

20

Tesla

Model X

Tremblay

Tremblay

Pierre

20

Dodge

caravan

Tremblay

Gagné

Jean

30

Dodge

Ram 1500

Gagné

R(Nom, prenom, age, type, marque, propriétaire )
La jointure est créée à base d'un produit et d'une restriction.

La jointure naturelle

Une jointure naturelle est une jointure dont la condition est l'égalité des attributs de même nom des deux tables impliquées dans la jointure.

soit deux relations :

R1 (A, B, C)
R2 (A, D)

alors ces deux notations sont équivalentes

Jointure(R1,R2,R1.A=R2.A)
JointureNaturelle(R1,R2)

Jointure externe

La jointure entraine la perte de certains tuples (ceux qui ne répondent pas à la condition, plus précisément ceux qui n'ont pas de correspondance dans l'autre relation). Dans certains cas on veut quand même inclure ces tuples. Pour faire cela, on utilise une jointure externe.

Jointure externe

Il existe 3 types de jointures externes :

  • La jointure externe
  • La jointure externe gauche
  • La jointure externe droite

Exercice :

Soit les deux relations suivantes :

Homme (Nom, Prénom, Age)
Voiture (Type, Marque, Propriétaire)
Homme

Tremblay

Pierre

20

Gagné

Jean

30

Voiture

Tesla

Model X

Tremblay

Dodge

Ram 1500

Null

Quel est le résultat de l'opération suivante :

R = JointureExterne (Homme, Voiture, Homme.Nom=Voiture.Propriétaire)

Solution

R

Tremblay

Pierre

20

Tesla

Model X

Tremblay

Gagné

Jean

30

NULL

NULL

NULL

NULL

NULL

NULL

Dodge

Ram 1500

NULL

Exercice :

Soit les deux relations suivantes :

Homme (Nom, Prénom, Age)
Voiture (Type, Marque, Propriétaire)
Homme

Tremblay

Pierre

20

Gagné

Jean

30

Voiture

Tesla

Model X

Tremblay

Dodge

Ram 1500

Null

Quel est le résultat de l'opération suivante :

R = JointureExterneGauche (Homme, Voiture, Homme.Nom=Voiture.Propriétaire)

Solution

R

Tremblay

Pierre

20

Tesla

Model X

Tremblay

Gagné

Jean

30

NULL

NULL

NULL

Exercice :

Soit les deux relations suivantes :

Homme (Nom, Prénom, Age)
Voiture (Type, Marque, Propriétaire)
Homme

Tremblay

Pierre

20

Gagné

Jean

30

Voiture

Tesla

Model X

Tremblay

Dodge

Ram 1500

Null

Quel est le résultat de l'opération suivante :

R = JointureExterneDroite (Homme, Voiture, Homme.Nom=Voiture.Propriétaire)

Solution

R

Tremblay

Pierre

20

Tesla

Model X

Tremblay

NULL

NULL

NULL

Dodge

Ram 1500

NULL

Les opérateurs ensemblistes

Les opérateurs ensemblistes ne s'effectuent que sur des relations de même schéma.

  • Différence
  • Union
  • Intersection

Différence (-)

La différence entre deux relation R1 et R2 retourne une nouvelle relation contenant tous les éléments qui sont dans R1 mais pas dans R2.

Union (∪)

L'union entre deux relation R1 et R2 retourne une nouvelle relation contenant tous les éléments sont dans R1 ou dans R2. le "ou" est un "ou" inclusif !

Intersection (∩)

L'intersection entre deux relation R1 et R2 retourne une nouvelle relation contenant tous les éléments qui ne sont ni dans R1 ni dans R2

Soit 2 relations :

Chien
Nom Sexe
felix
mâle
Pixel
femelle
olaf mâle
Chat
Nom Sexe
felix
mâle
minette
femelle
simba mâle

Chien ∪ Chat

R
Nom Sexe
felix
mâle
minette
femelle
simba mâle
Pixel
femelle
olaf mâle

Chien ∩ Chat

R
Nom Sexe
felix
mâle

Chien - Chat

R
Nom Sexe
Pixel
femelle
olaf mâle

Division (÷)

La division est une opération binaire. Elle ne peut se faire que si les deux relations ont un attribut en commun (même nom et domaine). R1÷R2 produit une relation R3 qui comporte les attributs appartenant à R1 mais n'appartenant pas à R2 et l'ensemble des tuples qui concaténés à ceux de R2 donnent toujours un tuple de R1.

Cette opération est très peu utilisée.

Elle est obtenue en combinant le produit, la restriction et la différence.

Exemple

Pratique

personne

age

métier

Tremblay

20

Ingénieur

Tremblay

20

Professeur

Gagné

30

Professeur

Métier

métier

Ingénieur

Professeur

pratique ÷ métier

Résultat

personne

age

Tremblay

20