Chapitre 1 : Initiation aux Bases de
Données
Qu'est-ce qu'une base de données ?
o Un ensemble de données bien structuré présentant le moins de
redondance possible et qui décrivent les activités d'une ou plusieurs
organisations.
o Ces données servent de support à une application informatique et
doivent être accessible par plusieurs utilisateurs à la fois.
2
Fonctions d'une base de données
L'utilité d'une base de données est traduite par sa capacité à répondre
à certaines exigences telles que :
o Stocker l'information de façon fiable
o Traiter de grands volumes de données
o Traiter rapidement les données
o Sécuriser les accès aux données
o Contrôler la qualité des données
o Partager les données
o Rendre accessible les données en réseau 3
La gestion des bases de données
o La gesGon de la base de données se fait grâce à un système appelé
SGBD (système de gesGon de bases de données).
o Un SGBD est un ensemble de logiciels permeOant la prise en charge
de la structuraGon, du stockage, de la mise à jour et de la
maintenance d'une base de données.
Exemples : MySQL, PostgreSQL, Oracle Database, MongoDb, ...
4
Principales fonctionnalités d’un SGBD
o CréaGon et mise à jour de la structure de la base de données
o AdministraGon de la base de données
o Saisie et mise à jour des données
o InterrogaGon des données selon différents critères et/ou en
effectuant des calculs
o Sécurité de foncGonnement
5
Les différents modèles de bases de données (1/3)
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 quatre modèles de SGBD, différenciés selon
la représentation des données qu'elle contient :
o Le modèle hiérarchique
o Le modèle réseau
o Le modèle objet
o Le modèle relationnel
7
Les différents modèles de bases de données (2/3)
o Le modèle hiérarchique : les données sont
classées hiérarchiquement, selon une
arborescence descendante. Ce modèle uGlise des
pointeurs entre les différents enregistrements. Il
s'agit du premier modèle de SGBD
8
Les différents modèles de bases de données (3/3)
o Le modèle rela6onnel : les données sont
enregistrées dans des tableaux à deux
dimensions (lignes et colonnes). La manipulaGon
de ces données se fait selon la théorie
mathémaGque de l’algèbre relaGonnelle.
11
Architecture logique d’un SGBD
La plupart des SGBD suivent l’architecture standard ANSI/SPARC qui
permet d’isoler les différents niveaux d’abstraction nécessaires pour un
SGBD.
o Niveau interne ou physique : décrit le modèle de stockage des
données et les fonctions d’accès.
o Niveau conceptuel ou logique : décrit la structure de la base de
données globalement à tous les utilisateurs.
o Niveau externe : correspond aux différentes vues des utilisateurs.
12
Les caractéristiques d'un SGBD (1/3)
L'architecture à trois niveaux définie par le standard ANSI/SPARC
permet d'avoir une indépendance entre les données et les traitements.
D'une manière générale un SGBD doit avoir les caractéristiques
suivantes :
o Indépendance physique : le niveau physique peut être modifié
indépendamment du niveau conceptuel. Cela signifie que tous les
aspects matériels de la base de données n'apparaissent pas pour
l'utilisateur, il s'agit simplement d'une structure transparente de
représentation des informations.
14
Les caractéristiques d'un SGBD (2/3)
o Indépendance logique : le niveau conceptuel doit pouvoir être
modifié sans remettre en cause le niveau physique, c'est-à-dire que
l'administrateur de la base doit pouvoir la faire évoluer sans que cela
gêne les utilisateurs.
o Manipulabilité : des personnes ne connaissant pas la base de
données doivent être capables de décrire leur requête sans faire
référence à des éléments techniques de la base de données.
o Rapidité des accès : le système doit pouvoir fournir les réponses aux
requêtes le plus rapidement possible, cela implique des algorithmes
de recherche rapides.
15
Les caractéristiques d'un SGBD (3/3)
o Administra6on centralisée : le SGBD doit permeOre à
l'administrateur de pouvoir manipuler les données, insérer des
éléments, vérifier son intégrité de façon centralisée.
o Limita6on de la redondance : le SGBD doit pouvoir éviter dans la
mesure du possible des informaGons redondantes, afin d'éviter d'une
part un gaspillage d'espace mémoire mais aussi des erreurs
o Vérifica6on de l'intégrité : les données doivent être cohérentes entre
elles, de plus lorsque des éléments font référence à d'autres, ces
derniers doivent être présents.
o Partageabilité des données : le SGBD doit permeOre l'accès
simultané à la base de données par plusieurs uGlisateurs 16
Chapitre 2 : Modèle Rela;onnel
Modèle Relationnel
• Le modèle relationnel est fondé sur le concept mathématique de
relation de la théorie des ensembles, autrement dit : l'algèbre
relationnelle.
• Le modèle relationnel permet de produire une représentation simple
des données sous forme de tables constituées de lignes et de
colonnes.
19
Objectifs du Modèle Relationnel
Il s'agit d'un modèle simple et puissant à la base de la majorité des
bases de données, dont les principaux objectifs sont :
• Assurer l'indépendance des applications et de la représentation
interne des données.
• Gérer les problèmes de cohérence et de redondance des données.
• Utiliser des langages de données basés sur des théories solides.
20
Les concepts Fondamentaux du Modèle
Relationnel
• La relaGon
• Les aOributs
• Le domaine
• Les n-uplets (ou tuples)
• Clé d’une relaGon
• Le schéma d’une relaGon
21
Relation
Les relations sont des tableaux à deux dimensions, appelés tables.
Exemple : La relation « Vol »
22
A*ribut
On appelle attribut d'une relation, une colonne de cette relation. Un
attribut est caractérisé par un nom et un domaine dans lequel il prend
ses valeurs.
23
Domaine
• Un domaine est un ensemble non vide de valeurs, caractérisé par un
nom, que peut prendre un attribut.
• un domaine se définit soit :
• en extension : en donnant la liste des valeurs du domaine ;
• en intention : en donnant les propriétés caractéristiques des valeurs du domaine.
Exemples :
• Domaines définis en extension :
• Couleur : {Vert, Rouge, Bleu, Jaune, Blanc, Noir}
• Ville : {Casablanca, Rabat, Marrakech, Essaouira, Safi}
• Domaines définis en intension :
• Les booléens
• Tous les nombres entiers
24
Tuple
• On appelle tuple d'une relation, une ligne de cette relation. Un tuple
prend une valeur pour chaque attribut de la relation.
• Synonymes : N-uplet, Enregistrement, Ligne.
25
Clé d’une relation
• Une clé est un groupe d'attributs minimum qui permet d'identifier de
façon unique un tuple dans une relation.
• Toute relation doit comporter au moins une clé, ce qui implique qu'une
relation ne peut pas contenir deux tuples identiques.
• Afin d'être déterminants pour l'identification d'un enregistrement, tous
les attributs d'une clé doivent avoir une valeur, c'est-à-dire qu'aucun ne
peut avoir de valeur null.
26
Clé primaire et clés candidates
• Clé primaire :
Si plusieurs clés existent dans une relation, on en choisit une parmi
celles-ci. Cette clé est appelée clé primaire.
• Clés candidates :
On appelle clés candidates l'ensemble des clés d'une relation qui n'ont
pas été choisies comme clé primaire (elles étaient candidates à cette
fonction).
27
Clé étrangère et clés artificielle
• Clé étrangère :
Une clé étrangère est un aOribut qui est clé primaire d’une autre relaGon.
• Clés ar6ficielle :
S'il est impossible de trouver une clé primaire, ou que les clés candidates sont
trop complexes, il est possible de faire appel à une clé ar6ficielle.
Une clé ar6ficielle est un aOribut supplémentaire ajouté au schéma de la
relaGon, qui n'est lié à aucune significaGon, et qui sert uniquement à idenGfier
de façon unique les enregistrements et/ou à simplifier les références de clés
étrangères.
28
Schéma d’une relation
• Le schéma d'une relaGon est la descripGon d’une relaGon.
• Le schéma d'une relaGon est composé de :
• Son nom
• La liste des a;ributs qu'elle comporte et des domaines associés
• La liste des a;ributs composant la clé (la clé est soulignée)
• Syntaxe :
• Nom_RelaDon (Clé:Domaine, A;ribut2:Domaine2, … , A;ributN:DomaineN)
Ou bien
• Nom_RelaDon (Clé, A;ribut2, … , A;ributN)
29
Exemple d’un schéma relationnel
30
Contraintes d’intégrité
• Défini&on :
Ensemble de règles permeOant de garanGr la cohérence du schéma
relaGonnel d’une base de données .
• Objec&f :
Contrôler la cohérence des valeurs prises à travers des contraintes
d’enGté, des contraintes d’intégrité référenGelles et des contraintes
de domaine.
31
Contraintes d’intégrité
• Contraintes d’en-té :
Impose que toute table possède une clé primaire. Ce7e clé doit être
unique ( pas de doublons ) et non nulle ( toujours spécifiées ).
• Contraintes d’intégrité référen-elles :
Consistent à imposer que les valeurs de clés étrangères sont des valeurs de
la clé primaire auxquelles elles font référence ou bien sont 'NULL’.
• Contraintes de domaine :
Les valeurs d’un a7ribut doivent appartenir au domaine correspondant.
32
Chapitre 3 : Algèbre Relationnelle
Algèbre Relationnelle
• C’est un ensemble d’opérations qui permettent de manipuler des
relations.
• Une requête est une expression algébrique qui s’applique à un
ensemble de relations (la base de données) et produit une relation
finale (le résultat de la requête).
• On peut voir l’algèbre relationnelle comme un langage de
programmation très simple qui permet d’exprimer des requêtes sur
une base de données relationnelle.
34
Opérateurs fondamentaux :
projection, restriction et jointure
Projection
• Défini&on :
La projecGon est une opéraGon unaire. La projecGon de R1 sur une
parGe de ses aOributs {a1, a2, ...} produit une relaGon R2 dont le
schéma est restreint aux aOributs menGonnés en opérande,
comportant les mêmes tuples que R1, et dont les doublons sont
éliminés.
• Syntaxe :
R = ProjecGon (R1, a1, a2, …)
R = ∏!",!$,⋯ (R1)
37
Exemple
• Soit la relation suivante : Personne (nom, prénom, age)
• Soit l'opération : R = Projection (Personne, nom, age)
38
Exemple (suite)
• On obtient alors la relation R composée des tuples suivants :
39
Remarque
• La projection élimine les doublons
Après suppression d'une partie des attributs du schéma, la relation peut
comporter des doublons. Étant donné que l'on ne pourrait plus identifier
ces doublons les uns par rapport aux autres, la seule solution sensée est
donc de considérer que deux doublons sont équivalents, et donc de n'en
garder qu'un seul dans la relation résultante.
40
Restriction (Sélection)
• Définition :
La restriction est une opération 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.
• Syntaxe :
R = Restriction (R1, condition)
R = 𝜎&'()*+*'( (R1)
41
Exemple
• Soit la relation suivante : Personne (nom, prénom, age)
• Soit l'opération : R = Restriction (Personne, age>25)
42
Exemple (suite)
• On obtient alors la relation R composée de l'unique tuple restant suivant :
43
Produit
• Défini&on :
Le produit cartésien est une opéraGon binaire. Le produit de R1 par
R2 donne une relaGon R3 ayant pour schéma la juxtaposiGon de ceux
des relaGons R1 et R2 et pour tuples l'ensemble des combinaisons
possibles entre les tuples de R1 et ceux de R2.
• Syntaxe :
R = Produit (R1, R2)
R = R1 × R2
44
Exemple
• Soit les deux relaGons suivantes : Personne (nom, prénom, age) et
Voiture (type, marque)
• Soit l'opéraGon : R = Produit (Personne, Voiture)
46
Exemple (suite)
• On obtient alors la relation R composée des tuples suivants :
47
Remarques
• Le produit cartésien est rarement utilisé seul, mais il est à la base de la
jointure.
• 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.
48
Jointure
• Définition :
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, donne 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.
• Syntaxe :
R = Jointure (R1, R2, condition)
49
Exemple
• Soit les deux relations suivantes : Personne (nom, prénom, age) et Voiture (type,
marque, propriétaire)
• Soit l'opération : R = Jointure (Personne, Voiture, Personne.Nom=Voiture.Propriétaire)
50
Exemple (suite)
• On obtient alors la relation R composée des tuples suivants :
51
Remarque
La jointure n'est pas une opération de base, elle peut être réécrite en
combinant le produit et la restriction.
52
Opérateurs ensemblistes :
union, intersection et différence
Union
• Définition :
L’union est une opération binaire. L'union de deux relations R1 et R2
de même schéma donne une relation R3 de même schéma
constituée de l'ensemble des tuples appartenant à R1 et/ou à R2.
• Syntaxe :
R = Union (R1, R2)
R = R1 ⋃ R2
54
Différence
• Définition :
La différence est une opération binaire. La différence entre deux
relations R1 et R2 de même schéma donne une relation R3 de même
schéma constituée de l'ensemble des tuples de R1 n'appartenant pas
à R2. Notons que la différence entre R1 et R2 n'est pas égale à la
différence entre R2 et R1.
• Syntaxe :
R = Différence (R1, R2)
R = R1 − R2
55
Intersection
• Définition :
L'intersection est une opération binaire. L'intersection de deux
relations R1 et R2 de même schéma donne une relation R3 de même
schéma constituée de l'ensemble des tuples appartenant à la fois à
R1 et à R2.
• Syntaxe :
R = Intersection (R1, R2)
R = R1 ∩ R2
56
Opérateurs ensemblistes :
union, intersection et différence
Les opérateurs ensemblistes éliminent les doublons.