Académique Documents
Professionnel Documents
Culture Documents
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 ?
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
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).
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.
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é :
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
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.
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
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.
2) Opérateurs de base
a. Sélection
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
Exercices de sélection
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 :
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
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.
b. Projection
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. π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.
7. tous les noms, adresse et âge de ses amis qui ont moins de 25 ans.
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.
Page 10 sur 19
c. Union
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.
Exemple d'union
Exercices d'union
Considérez les relations Personne1 et Personne2 données ci-dessus et calculez les expressions
suivantes.
d. Intersection
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.
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
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.
e. Différence
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.
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.
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
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
Page 13 sur 19
g. Produit cartésien
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.
Considérez les relations BonneAmie et Cadeau données ci-dessus et calculez les expressions
suivantes.
1. Cadeau × BonneAmie
h. Jointure
Page 14 sur 19
Exemple de jointure
SousChef Chef
nomSousChef salaireSousChef nomChef salaireChef
Durand 2000 Lenoir 2500
Dupont 1200 Leblanc 1200
Dubois 600
Exercice de jointure
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.
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) :
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
BonneAmie CadeauDéjàFait
nom prénom nomAmie article prix
Durand Caroline Durand collier 1000
Dupont Rose-Marie Dupont roses 20
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.
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).
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).
F ilière
M A X ( age )
( E tu d ian t )
Filière MAX(Age)
MPSI 18
PCSI 19
On suppose que l’on veut par exemple calculer la moyenne d’âge de la Filière « MPSI » :
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).
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 :
Page 19 sur 19