Vous êtes sur la page 1sur 19

Introduction Aux Bases De Données

I- Généralités
1) Qu’est-ce
ce qu'une base de données ?

Une base de données est un ensemble structuré de données1 enregistrées sur supports
accessible l’ordinateur2 pour satisfaire simultanément plusieurs utilisateurs3 de manières
sélective4 et en un temps opportun5

1 : Organisation et Description des tables et des liens entre ces tables à l’aide d’un Langage de
Description des Données (LDDLDD).
2 : Stockage sur Disque
3 : Partage de l’information, gestion des accès, facilité d’utilisation (à l’aide d’un Langage de
Manipulation des Données
onnées (LMD).
(
4 : Confidentialité, sécurité.
5 : Performance

Remarque :
La notion de base de données est généralement couplée à
celle de réseau,
seau, afin de pouvoir mettre en commun ces
informations, d'où le nom de base.
base

2) Qu’est-ce
ce qu'un SGBD ?

Un SGBD est un ensemble de logiciels qui fournit un environnement pour :


 Décrire
 Mémoriser
 Manipuler
 Traiter des collections de données
Tout en assurant leur
 Sécurité
 Confidentialité
 Intégrité
3) Exemples de SGBD

 SQL Server
 My SQL
 SQLite
 Oracle
 PostgreSQL
 DB2

Page 1 sur 19
4) Modèles
odèles de bases de données

Les bases de données sont apparues à la fin des années 60, à une époque où la nécessité d'un
système de gestion de l'information souple se faisait ressentir. Il existe cinq modèles de SGBD,
différenciés selon la représentation des données qu'elle contient :

 le
e modèle hiérarchique:
hiérarchique les données sont classées
hiérarchiquement, selon une arborescence descendante. Ce
modèle utilise des pointeurs entre les différents
enregistrements. Il s'agit du premier modèle de SGBD

 le modèle relationnel (SGBDR, Système de gestion de


bases de données relationnelles élaborés par CODD): les
données sont enregistrées dans des tableaux à deux
dimensions (lignes et colonnes). La manipulation de ces
données se fait selon la théorie mathématique des
relations

A la fin des années 90 les bases relationnelles sont les bases de données les plus répandues
(environ trois quarts des bases de données).

II- L'architecture client-serveur


client
L'environnement client-serveur désigne un mode de communication à travers un réseau entre
plusieurs programmes ou logiciels : l'un, qualifié de client,, envoie des requêtes ; l'autre ou les autres,
qualifiés de serveurs,, attendent les requêtes des clients et y répondent. Par extension, le client désigne
également l'ordinateur sur lequel est exécuté le logiciel client, et le serveur, l'ordinateur sur lequel est
exécuté le logiciel serveur.

En général, les serveurs sont des ordinateurs dédiés au logiciel serveur qu'ils abritent, et dotés de
capacités supérieures à celles des oordinateurs personnels en termes de puissance de calcul
calcul, d'entrées-
sorties et de connexions réseau.. Les clients sont souvent des ordinateurs personnels ou des appareils
individuels (téléphone, tablette), mais pas systématiquement. Un serveur peut répondre aux requêtes
d'un grand nombre de clients.

Page 2 sur 19
Il existe une grande variété de logiciels serveurs et de logiciels clients en fonction des besoins à servir :
un serveur web publie des pages web demandées par des navigateurs web ; un serveur de messagerie
électronique envoie des mails à des clients de messagerie ; un serveur de fichiers permet de stocker et
consulter des fichiers sur le réseau ; un serveur de données à communiquer des données stockées dans
une base de données, etc.

Caractéristiques d'un processus serveur :

 il attend une connexion entrante sur un ou plusieurs ports réseaux ;


 à la connexion d'un client sur le port en écoute, il ouvre un socket local au système
d'exploitation;
 suite à la connexion, le processus serveur communique avec le client suivant le protocole prévu
par la couche application du modèle OSI.

Caractéristiques d'un processus client :

 il établit la connexion au serveur à destination d'un ou plusieurs ports réseaux ;


 lorsque la connexion est acceptée par le serveur, il communique comme le prévoit la couche
applicative du modèle OSI.

Le client et le serveur doivent bien sûr utiliser le même protocole de communication au niveau de la
couche transport du modèle OSI. Un serveur est généralement capable de servir plusieurs clients
simultanément. On parle souvent d'un service pour désigner la fonctionnalité offerte par un processus
serveur. On définit aussi comme serveur, un ordinateur spécialisé ou une machine virtuelle ayant pour
unique tâche l'exécution d'un ou plusieurs processus serveur.

 Architecture à 2 tiers/niveaux

Ce type d'architecture caractérise les environnements client-serveur où le poste client demande une
ressource au serveur qui la fournit à partir de ses propres ressources.

 Architecture à 3 tiers/niveaux

Dans cette architecture, aussi nommée trois tiers en français, un niveau supplémentaire est ajouté :

 Un client (l'ordinateur demandeur de ressources) équipé d'une interface utilisateur (généralement


un navigateur web) chargée de la présentation.
 Un serveur d'application (appelé middleware) qui fournit la ressource, mais en faisant appel à un
autre serveur.
 Un serveur de données qui fournit au serveur d'application les données requises pour répondre
au client.

Page 3 sur 19
III- Le modèle relationnel
Le modèle relationnel est basé sur une organisation des données sous forme de tables. La manipulation
des données se fait selon le concept mathématique de relation de la théorie des ensembles, c'est-à-dire
l'algèbre relationnelle.
L'algèbre relationnelle a été inventée en 1970 par Codd, le directeur de recherche du centre IBM de San
José. Elle est constituée d'un ensemble d'opérations formelles sur les relations. Les opérations
relationnelles permettent de créer une nouvelle relation (table) à partir d'opérations élémentaires sur
d'autres tables (par exemple l'union, l'intersection, ou la différence).
La théorie des ensembles met en œuvre deux notions :
 la notion de domaine
 la notion de produit cartésien

1) Éléments du modèle relationnel

 Attribut : est un identificateur (un nom) décrivant une information stockée dans une base.
Ex : l’âge d’une personne, le nom d’une personne, le numéro CIN.

 Domaine d’un attribut : est l’ensemble, fini ou infini, de ses valeurs possibles.
Exemple :
l’attribut CIN a pour domaine l’ensemble des combinaisons des chiffres et caractères.
l’attribut Nom a pour domaine l’ensemble des combinaisons de lettres (chaîne de
caractère).

 Relation : est un sous-ensemble du produit cartésien de n domaines d’attributs (n > 0). Elle est
représentée sous la forme d’un tableau à deux dimensions dans lequel les n attributs correspondent
aux titres des n colonnes.

 Schéma de relation : précise le nom de la relation ainsi que la liste des attributs avec leurs
domaines.

Exemple du schéma de relation :


Employé (CIN : Chaîne, Nom : Chaîne, Prénom : Chaîne, Salaire : Réel)

CIN Nom Prénom Salaire


A24578 ALAMI AHMED 5500.00
JE4569 FAOUZI SAID 6200.00
AB6593 DAOUDI YOUSSEF 4000.00
B1234 ARABI FATIMA 8500.00
J3659 FELAH AMNIA 7550.00
 Degré d’une relation : est son nombre d’attributs.
 Occurrence, ou n-uplets, ou tuples : est un élément de l’ensemble figuré par une relation.
Autrement dit, une occurrence est une ligne du tableau qui représente la relation.
 Cardinalité d’une relation : est son nombre d’occurrences.
 La clé primaire d’une relation : constituée d’un ou plusieurs attributs qui permettent de distinguer
d’une manière unique une occurrence de la relation des autres occurrences. Pour signaler la clé
primaire, ses attributs sont généralement soulignés.
Exemple : Employé (CIN , Nom, Prénom, Salaire)
 Une clé étrangère dans une relation : est formée d’un ou plusieurs attributs qui constituent une
clé primaire dans une autre relation.
 Un schéma relationnel : est constitué par l’ensemble des schémas de relation.
 Une base de données relationnelle : est constituée par l’ensemble des n-uplets des différentes
relations du schéma relationnel.

Page 4 sur 19
2) Règles d’intégrité

Les règles d’intégrité (R.I.) sont des assertions qui doivent être vérifiées à tout moment par les
données contenues dans la base de données.
Trois types de R.I. complètent obligatoirement la description d’un schéma relationnel:
 Contrainte de clé : La contrainte de clé impose que chaque relation possède une clé primaire.
 Contrainte d’entité : impose que tout attribut faisant partie de la clé primaire d’une relation soit
non nul.
 Contrainte de référence : porte sur une relation R et impose que la valeur d’un attribut (clé
étrangère) apparaisse comme valeur de clé primaire dans une autre relation S.
Exemple :
Employé (R)
CIN Nom Prénom Salaire Nom_Soc
A24578 ALAMI AHMED 5500.00 Maroc Tele
JE4569 FAOUZI SAID 6200.00 BMCE
AB6593 DAOUDI YOUSSEF 4000.00 Coca
B1234 ARABI FATIMA 8500.00 Coca
J3659 DAOUDI AMNIA 7550.00 Maroc Tel
A3426 FAHMI ANASSE 7550.00 COPAG

Société (S)
Nom_Soc Ville
BMCE CASA
Coca AGADIR
Maroc Tele RABAT
COPAG TAROUDANT

IV- Algèbre relationnelle

1) Introduction

L’algèbre relationnelle est un support mathématique cohérent sur lequel repose le modèle relationnel.
L’objet de cette section est d’aborder l’algèbre relationnelle dans le but de décrire les opérations qu’il
est possible d’appliquer sur des relations pour produire de nouvelles relations.

On peut distinguer trois familles d’opérateurs relationnels :


 Les opérateurs unaires (Sélection, Projection) : ce sont les opérateurs les plus simples, ils
permettent de produire une nouvelle relation à partir d’une autre relation.
 Les opérateurs binaires ensemblistes (Union, Intersection Différence) : ces opérateurs
permettent de produire une nouvelle relation à partir de deux relations de même degré et de
même domaine.
 Les opérateurs binaires ou n-aires (Produit cartésien, Jointure, Division) : ils permettent de
produire une nouvelle relation à partir de deux ou plusieurs autres relation.

2) Opérateurs de base

a. Sélection

o Opération unaire essentielle

Page 5 sur 19
o Notation : σER (σ est la lettre grecque sigma.)
E : Expression logique (condition)
R : Relation

o Rôle : La sélection génère une relation regroupant exclusivement toutes les occurrences de la
relation R qui satisfont l’expression logique E.
En d’autres termes, la sélection permet de choisir des lignes dans le tableau.
Le résultat de la sélection est une nouvelle relation qui a les mêmes attributs que R.
Exemple de sélection

Personne σnuméro≥5 Personne


numéro nom prénom numéro nom prénom
5 Durand Caroline 5 Durand Caroline
1 Germain Stan 12 Dupont Lisa
12 Dupont Lisa
3 Germain Rose-Marie

Exercices de sélection

1. Considérez la relation Personne donnée ci-dessus et calculez les expressions suivantes :


Rappel d'algèbre booléenne : ∧ signifie ET, ∨ signifie OU, ¬ signifie NON.
1. σnom="Germain"Personne
2. σprénom="Paul"Personne
3. σ(numéro<6)∧(prénom≠"Stan")Personne
4. σ(numéro=12)∨(nom="Germain")Personne
5. σ¬(numéro<4)Personne
6. σnuméro<12(σnuméro>2Personne)
7. σnom="Germain"(σ(prénom="Stan")∨(prénom="Rose-Marie")Personne)
8. σ((prénom≠"Paul")∨(numéro≤6))∧(nom="Germain")Personne
9. σ((prénom≠"Paul")∧(numéro≤6))∨(nom="Germain") Personne
10.σ¬((numéro=12)∨(nom="Germain"))Personne

11.σ¬((numéro<4)∧(nom="Germain"))∧(prénom="Caroline")Personne

2. Soit la relation Employé( CIN, nom, prénom, salaire). Donnez une expression algébrique
quand on souhaite trouver :
1. tous les employés.
2. tous les employés qui ont un salaire dépassant 10000 DH.
3. l'employé dont le numéro CIN est JE4569.
4. tous les employés qui ont un salaire ne dépassant pas 7000 DH mais qui ont pour nom
DAOUDI.
5. tous les employés qui gagnent entre 4000 et 6000 DH mais aussi ceux qui gagnent
exactement 7550 DH et qui ne s'appellent pas DAOUDI.
6. tous les employés sauf ARABI FATIMA.

Page 6 sur 19
Correction
1. Considérez la relation Personne donnée ci-dessus et calculez les expressions suivantes :

Rappel d'algèbre booléenne : ∧ signifie ET, ∨ signifie OU, ¬ signifie NON.

1. σnom="Germain"Personne
numéro nom prénom
1 Germain Stan
3 Germain Rose-Marie

2. σprénom="Paul"Personne
numéro nom prénom

3. σ(numéro<6)∧(prénom≠"Stan")Personne
numéro nom prénom
5 Durand Caroline
3 Germain Rose-Marie

4. σ(numéro=12)∨(nom="Germain")Personne
numéro nom prénom
1 Germain Stan
12 Dupont Lisa
3 Germain Rose-Marie

5. σ¬(numéro<4)Personne
numéro nom prénom
5 Durand Caroline
12 Dupont Lisa

6. σnuméro<12(σnuméro>2Personne)
numéro nom prénom
5 Durand Caroline
3 Germain Rose-Marie

7. σnom="Germain"(σ(prénom="Stan")∨(prénom="Rose-Marie")Personne)
numéro nom prénom
1 Germain Stan
3 Germain Rose-Marie

8. σ((prénom≠"Paul")∨(numéro≤6))∧(nom="Germain")Personne
numéro nom prénom
1 Germain Stan
3 Germain Rose-Marie

9. σ((prénom≠"Paul")∧(numéro≤6))∨(nom="Germain") Personne
numéro nom prénom
5 Durand Caroline
1 Germain Stan
3 Germain Rose-Marie

Page 7 sur 19
10.σ¬((numéro=12)∨(nom="Germain"))Personne
numéro nom prénom
1 Germain Stan
12 Dupont Lisa
3 Germain Rose-Marie

11.σ¬((numéro<4)∧(nom="Germain"))∧(prénom="Caroline")Personne

numéro nom prénom


5 Durand Caroline
1 Germain Stan
12 Dupont Lisa
3 Germain Rose-Marie

2. Soit la relation Employé( CIN, nom, prénom, salaire). Donnez une expression algébrique
quand on souhaite trouver :
1. tous les employés.

σ Employé
2. tous les employés qui ont un salaire dépassant 10000 DH.

σsalaire>10000 Employé
3. l'employé dont le numéro CIN est JE4569.

σCIN='JE4569' Employé
4. tous les employés qui ont un salaire ne dépassant pas 7000 DH mais qui ont pour nom
DAOUDI.

σ(salaire<7000) ∧ (nom='DAOUDI') Employé


5. tous les employés qui gagnent entre 4000 et 6000 DH mais aussi ceux qui gagnent
exactement 7550 DH et qui ne s'appellent pas DAOUDI.

σ (4000≤salaire≤6000) ∨((salaire=7500) ∧(nom≠'DAOUDI')) Employé


6. tous les employés sauf ARABI FATIMA.

σ(nom≠'ARABI')∧ (prénom≠'FATIMA') Employé

b. Projection

o Opération unaire essentielle

o Notation : πAR (π est la lettre grecque PI.)


o Rôle : La projection génère une relation regroupant exclusivement toutes les occurrences de
la relation R réduites aux attributs de la liste d'attributs A.
En d'autres termes, la projection permet de choisir des colonnes dans le tableau.
Le résultat de la projection est une nouvelle relation dont les attributs sont ceux
présents dans A (avec élimination des doublons).

Page 8 sur 19
Exemple de projection

Personne πprénomPersonne
numéro nom prénom prénom
5 Durand Caroline Caroline
1 Germain Stan Stan
12 Dupont Lisa Lisa
3 Germain Rose-Marie Rose-Marie

Exercices de projection

1. Considérez la relation Personne donnée ci-dessus et calculez les expressions suivantes.

1. πnuméro,prénom Personne

2. πnuméro,nom,prénom Personne

3. πnom,prénom(σnuméro<4 Personne)

4. σ(numéro=12)∨(nom="Germain")(πnuméro,nom Personne)

5. πnom(σ(numéro=12)∨(nom="Germain")(πnuméro,nom Personne))

2. Soit la relation Ami(nom, prénom, adresse, âge). Donnez une expression algébrique quand on
souhaite trouver :
1. tous les nom et prénom de ses amis.
2. tous les noms, adresse et âge de ses amis qui ont moins de 25 ans.
3. l'adresse de son ami Paul Durand.
4. tous les nom et âge de ses amies prénommées Sophie.
5. tous les noms, prénom, adresse et âge de ses amis qui ne se prénomment pas Stan et qui
ont plus de 55 ans.

Correction:
3. Considérez la relation Personne donnée ci-dessus et calculez les expressions suivantes.

6. πnuméro,prénom Personne

nom prénom
Durand Caroline
Germain Stan
Dupont Lisa
Germain Rose-Marie

7. πnuméro,nom,prénom Personne

Page 9 sur 19
numéro nom prénom
5 Durand Caroline
1 Germain Stan
12 Dupont Lisa
3 Germain Rose-Marie

8. πnom,prénom(σnuméro<4 Personne)

nom prénom
Germain Stan
Germain Rose-Marie

9. σ(numéro=12)∨(nom="Germain")(πnuméro,nom Personne)

numéro nom
1 Germain
12 Dupont
3 Germain

10.πnom(σ(numéro=12)∨(nom="Germain")(πnuméro,nom Personne))

nom
Germain
Dupont

4. Soit la relation Ami(nom, prénom, adresse, âge). Donnez une expression algébrique quand on
souhaite trouver :
6. tous les nom et prénom de ses amis.

πnom, prénom Ami

7. tous les noms, adresse et âge de ses amis qui ont moins de 25 ans.

πnom, adresse, age (σage<25 Ami)

8. l'adresse de son ami Paul Durand.

πadresse (σ(nom="Durand") ∧ (prénom="Paul") Ami)

9. tous les nom et âge de ses amies prénommées Sophie.

πnom, âge (σ(prénom="Sophie") Ami)

10. tous les noms, prénom, adresse et âge de ses amis qui ne se prénomment pas Stan et qui
ont plus de 55 ans.

πnom, prénom (σ(âge>55) ∧ (prénom≠"Stan") Ami)

Page 10 sur 19
c. Union

o Opération binaire ensembliste commutative

o Notation : R1 ∪ R2
o Rôle : L'union génère une relation regroupant exclusivement toutes les occurrences de la
relation R1 et toutes les occurrences de la relation R2.

o Si une même occurrence existe dans R1 et dans R2, elle n'apparaît qu'une seule fois dans le
résultat de l'union.

o Contrainte : R1 et R2 doivent avoir les mêmes attributs.


o Le résultat de l'union est une nouvelle relation qui a les mêmes attributs que R1 et R2.

Exemple d'union

Personne1 Personne1 ∪ Personne2


nom prénom nom prénom
Durand Paul Durand Paul
Dupont Caroline Dupont Caroline
Dupont Corinne Dupont Corinne
Juny Carole
Fourt Lisa
Personne2
nom prénom
Juny Carole
Dupont Corinne
Fourt Lisa

Exercices d'union

Considérez les relations Personne1 et Personne2 données ci-dessus et calculez les expressions
suivantes.

1. πprénom Personne1 ∪ πprénom Personne2


2. πprénom Personne2 ∪ πprénom Personne1
3. Personne2 ∪ Personne2

d. Intersection

o Opération binaire ensembliste commutative

o Notation : R1 ∩ R2
o Rôle : L'intersection génère une relation regroupant exclusivement toutes les occurrences qui
existent à la fois dans la relation R1 et dans la relation R2.

o Contrainte : R1 et R2 doivent avoir les mêmes attributs.


o Le résultat de l'intersection est une nouvelle relation qui a les mêmes attributs que R1 et R2.
o Si R1 ou R2 ou les deux sont vides, la relation qui résulte de l'intersection est vide.
o Quelques propriétés remarquables :

Page 11 sur 19
o R ∩ R est identique à R.
o R1 ∩ (R1 ∪ R2) est identique à R1.
o R1 ∪ (R1 ∩ R2) est identique à R1.

Exemple d'intersection

Personne1 Personne1 ∩ Personne2


nom prénom nom prénom
Durand Paul Dupont Corinne
Dupont Caroline
Dupont Corinne

Personne2
nom prénom
Juny Carole
Dupont Corinne
Fourt Lisa

Exercice d'intersection

Considérez les relations Personne1 et Personne2 données ci-dessus et calculez les expressions
suivantes.

1. πprénom Personne1 ∩ πprénom Personne2


2. Personne2 ∩ Personne2
3. Personne2 ∪ (Personne1 ∩ Personne2)
4. Personne2 ∩ (Personne1 ∪ Personne2)

e. Différence

o Opération binaire ensembliste non commutative

o Notation : R1 - R2
o Rôle : La différence génère une relation regroupant exclusivement toutes les occurrences de
la relation R1 qui n'existent pas dans la relation R2.

o Contrainte : R1 et R2 doivent avoir les mêmes attributs.


o Le résultat de la différence est une nouvelle relation qui a les mêmes attributs que R1 et R2.
Exemple de différence

Personne1 Personne1 - Personne2


nom prénom nom prénom
Durand Paul Durand Paul
Dupont Caroline Dupont Caroline
Dupont Corinne

Personne2
nom prénom
Juny Carole
Dupont Corinne
Fourt Lisa

Page 12 sur 19
Exercice de différence

o Considérez les relations Personne1 et Personne2 données ci-dessus et calculez les expressions
suivantes.

1. πprénom Personne2 - πprénom Personne1


2. πprénom Personne1 - πprénom Personne2
3. Personne2 - Personne2
4. Personne2 - Personne1
f. Division

o Opération binaire non commutative

o Notation : R1 ÷ R2
o Rôle : La division génère une relation regroupant exclusivement toutes les parties
d'occurrence de la relation R1 qui sont associées à toutes les occurrences de la relation R2.
o Contraintes : R2 ne peut pas être vide. Tous les attributs de R2 doivent être présents dans
R1. R1 doit posséder au moins un attribut de plus que R2.
o Le résultat de la division est une nouvelle relation qui a tous les attributs de R1 sans aucun
de ceux de R2.
Exemple de division
Enseignement Enseignement ÷ Étudiant

nomEnseignant nomEtudiant nomEnseignant


Germain Dubois Germain
Fidus Pascal Fidus
Robert Dubois
Germain Pascal
Fidus Dubois
Germain Durand
Robert Durand

Etudiant
nomEtudiant
Dubois
Pascal

Exercice de division

Considérez les relations Enseignement et Étudiant données ci-dessus et calculez les expressions
suivantes.

1. Enseignement ÷ σnomÉtudiant="Dubois"Etudiant

2. (Enseignement - σnomÉtudiant="Durand" Enseignement) ÷ Étudiant

Page 13 sur 19
g. Produit cartésien

o Opération binaire commutative

o Notation : R1 × R2
o Rôle : Le produit cartésien génère une relation regroupant exclusivement toutes les
possibilités de combinaison des occurrences des relations R1 et R2.

o Le résultat du produit cartésien est une nouvelle relation qui a tous les attributs de R1 et tous
ceux de R2.
o Le nombre d'occurrences de la relation qui résulte du produit cartésien est le nombre
d'occurrences de R1 multiplié par le nombre d'occurrences de R2.

Exemple de produit cartésien

BonneAmie BonneAmie × Cadeau


nom prénom nom prénom article prix
Durand Caroline Durand Caroline collier 1000
Dupont Rose-Marie Durand Caroline roses 20
Rose-
Dupont collier 1000
Cadeau Marie
Rose-
article Prix Dupont roses 20
Marie
collier 1000
roses 20

Exercice de produit cartésien

Considérez les relations BonneAmie et Cadeau données ci-dessus et calculez les expressions
suivantes.

1. Cadeau × BonneAmie

2. Cadeau × πprix Cadeau

h. Jointure

o Opération binaire commutative essentielle, également appelée équi-jointure.

o Notation : R1 ▷◁A R2 si A est l'attribut commun ou R1 ▷◁A1,A2 R2


o Rôle : La jointure génère une relation regroupant exclusivement toutes les possibilités de
combinaison des occurrences des relations R1 et R2 pour lesquelles il y a égalité entre
l'attribut A (ou A1) de la relation R1 et l'attribut A (ou A2) de la relation R2.

o Contrainte : R1 et R2 ne peuvent pas avoir plus d'un attribut commun.


o Le résultat de la jointure est une nouvelle relation qui a tous les attributs de R1 et tous ceux
de R2.

Page 14 sur 19
Exemple de jointure

SousChef Chef
nomSousChef salaireSousChef nomChef salaireChef
Durand 2000 Lenoir 2500
Dupont 1200 Leblanc 1200
Dubois 600

SousChef ▷◁salaireSousChef,salaireChef Chef

nomSousChef salaireSousChef nomChef salaireChef


Dupont 1200 Leblanc 1200

Exercice de jointure

Considérez les relations BonneAmie et CadeauDéjàFait données ci-dessous et calculez les


expressions suivantes.
BonneAmie CadeauDéjàFait
nom prénom nom article prix
Durand Caroline Durand collier 1000
Dupont Rose-Marie Dupont roses 20

1. BonneAmie ▷◁nom CadeauDéjàFait

2. πprénom,article(BonneAmie ▷◁nom CadeauDéjàFait)

3. CadeauDéjàFait ▷◁nom CadeauDéjàFait

4. (πprénom BonneAmie) ▷◁prénom,nom CadeauDéjàFait

i. Jointure naturelle

Une jointure naturelle est une jointure dans laquelle l’expression logique est un test
d’égalité entre les attributs qui portent le même nom dans les relations R1 et R2. Dans la
relation construite, ces attributs ne sont pas dupliqués, mais fusionnés en une seule
colonne par couple d’attributs. La jointure naturelle est notée R1 ⋈ R2.

j. jointure externe

On ajoute au résultat d’une jointure interne, les tuples qui n’ont pas trouvé de
correspondant dans la jointure interne. Il existe trois types de jointures externes: gauche,
droite, ou complète.

Page 15 sur 19
Dans une jointure externe complète , tous les tuples de R1 et R2 sont

dans , et les tuples de R1 (resp. R2) qui n’ont pas de correspondant dans R2
(resp. R1), sont ajoutés avec la valeur NULL pour les attributs de R2 (resp. R1).

Dans une jointure externe gauche , tous les tuples de R1 et R2 sont dans

, et les tuples de R2 qui n’ont pas de correspondant dans R1, sont ajoutés avec
la valeur NULL pour les attributs de R1.

Dans une jointure externe droite , tous les tuples de R1 et R2 sont dans

, et les tuples de R1 qui n’ont pas de correspondant dans R2, sont ajoutés avec
la valeur NULL pour les attributs de R1.

k. Semi-Jointure

La semi-jointure permet de ne garder que les attributs d’une des deux relations. Le résultat
de la semi-jointure de R1 et R2 est une relation R3 qui a le même schéma que R1 ou R2
c'est à dire, elle a la même structure que R1 ou R2.

R1 R2 va garder les attributs de R1 seulement. De même, la


La semi-jointure

semi-jointure R1 R2 va garder les attributs de R2 seulement.


l. Thêta-Jointure

o Notation : R1 θE R2 (θ est la lettre grecque thêta.)


o Rôle : Le thêta-jointure génère une relation regroupant exclusivement toutes les possibilités
de combinaison des occurrences des relations R1 et R2 qui satisfont l'expression logique E.

o Contrainte : E doit être une comparaison (≠, <, >, ≤ ou ≥) entre un attribut de R1 et un
attribut de R2.

o Le résultat du thêta-produit est une nouvelle relation qui a tous les attributs de R1 et tous
ceux de R2.
o Une propriété remarquable (non exhaustif) :

R1 θE R2 est identique à σE(R1 × R2).

Exemple de thêta-jointure

Page 16 sur 19
SousChef SousChef θsalaireSousChef>salaireChef Chef
nomSousChef salaireSousChef
Durand 2000 nomSousChef salaireSousChef nomChef salaireChef
Dupont 1200 Durand 2000 Leblanc 1200
Dubois 600

Chef
nomChef salaireChef
Lenoir 2500
Leblanc 1200

Exercices de thêta-jointure

Considérez les relations BonneAmie et CadeauDéjàFait données ci-dessous et calculez les


expressions suivantes.

BonneAmie CadeauDéjàFait
nom prénom nomAmie article prix
Durand Caroline Durand collier 1000
Dupont Rose-Marie Dupont roses 20

1. BonneAmie θnom=nomAmie CadeauDéjàFait


2. σnom=nomAmie(BonneAmie × CadeauDéjàFait)
3. BonneAmie θnom≠nomAmie πnomAmie,prix CadeauDéjàFait

3) Fonctions d’agrégation :

Le concept d’agrégation permet de réaliser une partition de l’ensemble des lignes d’une relation R
(chaque élément de la partition constitue un agrégat) au moyen d’un certain critère portant sur les
attributs de la relation pour ensuite effectuer une même opération sur chacun des agrégats.

 Exemple : Soit la relation Etudiant de schéma S = (Nom, Filière, Age) :


Nom Filière Age
Yasser MPSI 18
Ilyass PCSI 17
Walid PCSI 19
Reda MPSI 17
Imane PCSI 18

On suppose que l’on veut par exemple calculer, le nombre d’étudiants (nombre de lignes ou n-uplets), la
moyenne, le maximum, le minimum d’âge. Les opérations de base de l’algèbre relationnelle ne
permettent pas de répondre à ce type de question, nous utiliserons alors les fonctions d’agrégations (On
ne considère ici que cinq fonctions).

Page 17 sur 19
Fonctions d’agrégation : s’appliquent à une colonne, en général de type numérique.
Ce sont :
1. COUNT qui compte le nombre de valeurs non nulles.
2. MAX et MIN.
3. AVG qui calcule la moyenne des valeurs de la colonne.
4. SUM qui effectue le cumul (somme).

La moyenne d’âge des étudiants :


 A V G ( a ge )
( E tu d ia n t )
AVG(Age)
17.8

Il est également possible de calculer la moyenne, le max, non pas sur l'ensemble des lignes, mais sur
chaque groupe de lignes reliées selon un certain critère. Par exemple, on peut calculer la moyenne d'âge
en fonction de la ville, le max d'âge en fonction de la filière.

La solution consiste alors à regrouper les lignes qui contiennent les mêmes valeurs dans le champ
‘Filière’ : ce regroupement s’appelle un agrégat. On applique ensuite à chaque sous-relation ainsi
constituée une opération statistique (AVG, MAX).

Le max d’âge en fonction de la ville :

F ilière
 M A X ( age )
( E tu d ian t )

Filière MAX(Age)
MPSI 18
PCSI 19

 Sélection en amont d’une agrégation :

On suppose que l’on veut par exemple calculer la moyenne d’âge de la Filière « MPSI » :

 AVG(age) o Filiere"MPSI" (Etudiant)

Page 18 sur 19
 Filiere"MPSI" (Etudiant)
La sélection est effectuée avant le regroupement en agrégat
et limite ainsi les valeurs considérées pour l’agrégation (calcul de la moyenne).

 Sélection en aval d’une agrégation (après application de


la fonction d’agrégation) :

On suppose que l’on veut par exemple afficher la liste des filières dont la moyenne d’âge est supérieure
ou égale à 18 :

 AVG ( age ) 18 o Filiere  AVG ( age ) (Etudiant)

Page 19 sur 19