Initiation Aux Bases de Données
Initiation Aux Bases de Données
Initiation Aux Bases de Données
Licence, Semestre 2
Introduction
Les bases de données ont pris aujourd’hui une place essentielle dans l’informatique, plus
particulièrement en gestion. Au cours des trente dernières années, des concepts, méthodes
et algorithmes ont été développés pour gérer les données sur mémoires secondaires ; ils
constituent aujourd’hui l’essentiel de la discipline « Bases de Données ». Cette discipline est
utilisée dans de nombreuses applications. Il existe un grand nombre de Systèmes de Gestion
de Bases de Données (SGBD) qui permettent de gérer efficacement de grandes bases de
données. De plus, une théorie fondamentale sur les techniques de modélisation des données
et les algorithmes de traitement a vu le jour. Les bases de données constituent donc une
discipline s’appuyant sur une théorie solide et offrant de nombreux débouchés pratiques.
Vous avez sans doute une idée intuitive des bases de données. Prenez garde cependant, car
ce mot est souvent utilisé pour désigner n’importe quel ensemble de données ; il s’agit là d’un
abus de langage qu’il faut éviter. Une base de données est un ensemble de données
modélisant les objets d’une partie du monde réel et servant de support à une application
informatique. Pour mériter le terme base de données, un ensemble de données non
indépendantes doit être interrogeable par le contenu, c’est-à-dire que l’on doit pouvoir
retrouver tous les objets qui satisfont à un certain critère, par exemple tous les produits qui
coûtent moins de 100 francs. Les données doivent être interrogeables selon n’importe quel
critère. Il doit être possible aussi de retrouver leur structure, par exemple le fait qu’un produit
possède un nom, un prix et une quantité.
Dans la suite de ce cours, nous intéresserons essentiellement aux bases de données
informatisées.
1 sur 40
Introduction aux Bases de Données Généralités
Il est difficile de donner une définition exacte de la notion de base de données. Une
définition très générale pourrait être :
Peu importe le support utilisé pour rassembler et stocker les données (papier, fichiers,
etc.), dès lors que des données sont rassemblées et stockées d'une manière organisée
dans un but spécifique, on parle de base de données.
Comme cela a été précisé dans l’introduction de ce chapitre, Les bases de données ont
pris une place importante en informatique, et particulièrement dans le domaine de la
gestion. L'étude des bases de données a conduit au développement de concepts,
méthodes et algorithmes spécifiques, notamment pour gérer les données en mémoire
secondaire (i.e. disques durs). En effet, dès l'origine de la discipline, les informaticiens
ont observé que la taille de la RAM ne permettait pas de charger l'ensemble d'une base
2 sur 40
Introduction aux Bases de Données Généralités
de données en mémoire. Cette hypothèse est toujours vérifiée, car le volume des
données ne cesse de s'accroître sous la poussée des nouvelles technologies du WEB.
Ainsi, les bases de données de demain devront être capables de gérer plusieurs
dizaines de téraoctets de données, géographiquement distribuées à l'échelle
d'Internet, par plusieurs dizaines de milliers d'utilisateurs dans un contexte
d'exploitation changeant (on ne sait pas très bien maîtriser ou prédire les débits de
communication entre sites) voire sur des nœuds volatiles. En physique des hautes
énergies, on prédit qu'une seule expérience produira de l'ordre du pétaoctet (1 000
000 000 000 000 octets) de données par an.
Une base de données hiérarchique est une forme de système de gestion de base de
données qui lie des enregistrements dans une structure arborescente de façon à ce
que chaque enregistrement n'ait qu'un seul possesseur (par exemple, une paire de
chaussures n'appartient qu'à une seule personne).
Les structures de données hiérarchiques ont été largement utilisées dans les premiers
systèmes de gestion de bases de données conçus pour la gestion des données du
programme Apollo de la NASA. Cependant, à cause de leurs limitations internes, elles
ne peuvent pas souvent être utilisées pour décrire des structures existantes dans le
monde réel.
Les liens hiérarchiques entre les différents types de données peuvent rendre très simple
la réponse à certaines questions, mais très difficile la réponse à d'autres formes de
questions. Si le principe de relation « 1 vers N » n'est pas respecté (par exemple, un
malade peut avoir plusieurs médecins et un médecin a, a priori, plusieurs patients),
alors la hiérarchie se transforme en un réseau.
3 sur 40
Introduction aux Bases de Données Généralités
Ce modèle de bases de données a été inventé par C.W. Bachman. Pour son modèle, il
reçut en 1973 le prix Turing.
Une base de données relationnelle est une base de données structurée suivant les
principes de l'algèbre relationnelle.
Le père des bases de données relationnelles est Edgar Frank Codd. Chercheur chez
IBM à la fin des années 1960, il étudiait alors de nouvelles méthodes pour gérer de
grandes quantités de données, car les modèles et les logiciels de l'époque ne le
satisfaisaient pas. Mathématicien de formation, il était persuadé qu'il pourrait utiliser
des branches spécifiques des mathématiques (la théorie des ensembles et la logique
des prédicats du premier ordre) pour résoudre des difficultés telles que la redondance
des données, l'intégrité des données ou l'indépendance de la structure de la base de
données avec sa mise en œuvre physique.
4 sur 40
Introduction aux Bases de Données Généralités
modèle, grâce à un Langage de Description des Données (LDD). Cette description est
appelée schéma.
Une fois la base de données spécifiée, on peut y insérer des données, les récupérer, les
modifier et les détruire. C'est ce qu'on appelle manipuler les données. Les données
peuvent être manipulées non seulement par un Langage spécifique de Manipulation
des Données (LMD), mais aussi par des langages de programmation classiques.
Quel que soit le modèle, un des problèmes fondamentaux à prendre en compte est la
cohérence des données. Par exemple, dans un environnement où plusieurs utilisateurs
peuvent accéder concurremment à une colonne d'une table par exemple pour la lire
ou pour l'écrire, il faut s'accorder sur la politique d'écriture. Cette politique peut être :
les lectures concurrentes sont autorisées, mais dès qu'il y a une écriture dans une
colonne, l'ensemble de la colonne est envoyé aux autres utilisateurs l'ayant lue pour
qu'elle soit rafraîchie.
Des objectifs principaux ont été fixés aux SGBD dès l'origine de ceux-ci, et ce, afin de
résoudre les problèmes causés par la démarche classique. Ces objectifs sont les
suivants :
Indépendance physique : La façon dont les données sont définies doit être
indépendante des structures de stockage utilisées.
Accès aux données : L'accès aux données se fait par l'intermédiaire d'un Langage de
Manipulation de Données (LMD). Il est crucial que ce langage permette d'obtenir des
réponses aux requêtes en un temps « raisonnable ». Le LMD doit donc être optimisé,
5 sur 40
Introduction aux Bases de Données Généralités
Non-redondance des données : Afin d'éviter les problèmes lors des mises à jour,
chaque donnée ne doit être présente qu'une seule fois dans la base.
Sécurité des données : Les données doivent pouvoir être protégées contre les accès
non autorisés. Pour cela, il faut pouvoir associer à chaque utilisateur des droits d'accès
aux données.
Résistance aux pannes : Que se passe-t-il si une panne survient au milieu d'une
modification, si certains fichiers contenant les données deviennent illisibles ? Il faut
pouvoir récupérer une base dans un état « sain ». Ainsi, après une panne intervenant
au milieu d'une modification deux solutions sont possibles : soit récupérer les données
dans l'état dans lequel elles étaient avant la modification, soit terminer l'opération
interrompue.
Pour pouvoir être utilisable, le SGBD doit communiquer avec les utilisateurs à l’aide
d’un langage. En pratique, on distingue :
Le langage de définition des données (LDD) : Il permet de décrire les entités et les
associations qui vont constituer les schémas conceptuels, externes et internes de la
base.
6 sur 40
Introduction aux Bases de Données Généralités
Pour atteindre certains de ces objectifs (surtout les deux premiers), trois niveaux de
description des données ont été définis par la norme ANSI/SPARC.
Les données étant omniprésentes autour de nous, les bases de données le sont aussi.
Nous pouvons citer entre autres :
7 sur 40
Introduction aux Bases de Données Généralités
Il existe de nombreux systèmes de gestion de bases de données, en voici une liste non
exhaustive :
PostgreSQL
MySQL
Oracle
IBM DB2
Microsoft SQL
Sybase
Informix :
Conclusion
8 sur 40
CHAPITRE 2
Initiation à la Conception des Bases de
Données : Modèle (E-A)
Introduction
Il est difficile de modéliser un domaine sous une forme directement utilisable par un
SGBD. Une ou plusieurs modélisations intermédiaires sont donc utiles, le modèle
entités-associations constitue l'une des premières et des plus courantes. Ce modèle
permet une description naturelle du monde réel à partir des concepts d'entité et
d'association. Basé sur la théorie des ensembles et des relations, ce modèle se veut
universel et répond à l'objectif d'indépendance données-programmes. Ce modèle,
utilisé pour la phase de conception, s'inscrit notamment dans le cadre d'une méthode
plus générale et très répandue : MERISE.
MERISE propose une démarche, dite par niveaux, dans laquelle il s'agit de hiérarchiser
les préoccupations de modélisation qui sont de trois ordres : la conception,
l'organisation et la technique. En effet, pour aborder la modélisation d'un système, il
convient de l'analyser en premier lieu de façon globale et de se concentrer sur sa
fonction : c'est-à-dire de s'interroger sur ce qu'il fait avant de définir comment il le fait.
Ces niveaux de modélisation sont organisés dans une double approche
données/traitements. Les trois niveaux de représentation des données, puisque ce sont
eux qui nous intéressent, sont détaillés ci-dessous.
Niveau conceptuel : le modèle conceptuel des données (MCD) décrit les entités du
monde réel, en termes d'objets, de propriétés et de relations, indépendamment de
toute technique d'organisation et d'implantation des données. Ce modèle se concrétise
par un schéma entités-associations représentant la structure du système d'information,
du point de vue des données.
9 sur 40
Introduction aux Bases de Données Initiation à la Conception des Bases de Données : Modèle (E-A)
Niveau logique : le modèle logique des données (MLD) précise le modèle conceptuel
par des choix organisationnels. Il s'agit d'une transcription (également appelée
dérivation) du MCD dans un formalisme adapté à une implémentation ultérieure, au
niveau physique, sous forme de base de données relationnelle ou réseau, ou autres.
Les choix techniques d'implémentation (choix d'un SGBD) ne seront effectués qu'au
niveau suivant.
Niveau physique : le modèle physique des données (MPD) permet d'établir la manière
concrète dont le système sera mis en place (SGBD retenu).
l'objet ou entité ;
l'association ;
la propriété.
L'objet est une entité ayant une existence propre. L'association est un lien ou relation
entre objets sans existence propre. La propriété est la plus petite donnée d'information
décrivant un objet ou une association.
II-1-1 Entité
Définition 1 | Occurrence d’entité : Une occurrence d’entité est un objet, une chose
concrète ou abstraite qui peut être reconnue distinctement et qui est caractérisée par
son unicité.
Définition 2 | Entité : Une entité est la représentation d’un objet concret ou abstrait
du monde réel, ayant un intérêt pour le domaine étudié.
Les personnes, les livres et les voitures sont des exemples d’entité.
Remarque : Une entité désigne un ensemble d'occurrences d’entités qui possèdent une
sémantique et des propriétés communes.
PERSONNE
Figure 2-0-1 : Représentation graphique d'un exemple d’entité
10 sur 40
Introduction aux Bases de Données Initiation à la Conception des Bases de Données : Modèle (E-A)
La figure 2.1 montre la représentation graphique d'un exemple d’entité (Personne) sans
ses propriétés associées.
Les entités Personne, caractérisée par un nom et un prénom, et Voiture, caractérisée par
un nom et une puissance, ne peuvent pas être regroupées, car ils ne partagent pas
leurs propriétés (le prénom est une chaîne de caractères et la puissance un nombre).
Les entités Personne, caractérisée par un nom et un prénom, et Livre, caractérisée par
un titre et un auteur, possèdent tous les deux, deux attributs du type chaîne de
caractères. Pourtant, ces deux entités ne peuvent pas être regroupées, car ils ne
partagent pas une même sémantique : le nom d'une personne n'a rien à voir avec le
titre d'un livre, le prénom d'une personne n'a rien à voir avec un auteur.
Figure 2-2 : Représentation graphique d'un exemple d’entité comportant trois attributs
Exemples d'attribut : le nom d'une personne, le titre d'une livre, la puissance d'une
voiture.
La figure 2.2 montre la représentation graphique d'un exemple d’entité (Personne) avec
trois attributs.
Règle 1 : Un attribut ne peut en aucun cas être partagé par plusieurs entités ou
associations.
Règle 2 : Un attribut est une donnée élémentaire, ce qui exclut des données calculées
ou dérivées.
Règle 3 : Une entité et ses attributs doivent être cohérents entre eux (i.e. ne traiter que
d'un seul sujet).
11 sur 40
Introduction aux Bases de Données Initiation à la Conception des Bases de Données : Modèle (E-A)
Par exemple, si le modèle doit comporter des informations relatives à des articles et à
leur fournisseur, ces informations ne doivent pas coexister au sein d'une même entité.
Il est préférable de mettre les informations relatives aux articles dans une entité Article
et les informations relatives aux fournisseurs dans une entité Fournisseur. Ces deux
entités seront probablement ensuite reliées par une association.
Figure 2.3 : Représentation graphique d'un exemple d’entité comportant quatre attributs dont un est un
identifiant : deux personnes peuvent avoir le même nom, le même prénom et la même adresse, mais pas le
même numéro de sécurité sociale.
Il est donc impossible que les attributs constituant l'identifiant d'une entité
(respectivement association) prennent la même valeur pour deux occurrences d’entités
(respectivement deux occurrences d’associations) distinctes. Exemples d'identifiant : le
numéro de sécurité sociale pour une personne, le numéro d'immatriculation pour une
voiture, le code ISBN d'un livre pour un livre (mais pas pour un exemplaire).
Ainsi, chaque entité possède au moins un attribut qui, s'il est seul, est donc forcément
l'identifiant.
12 sur 40
Introduction aux Bases de Données Initiation à la Conception des Bases de Données : Modèle (E-A)
II-1-4 Association
PERSONNE LIVRE
NumSecuriteSociale NumLivre
EMPRUNTER Titre
Nom
Prenom DateEmprunt Auteur
Adresse ... Editeur
Figure 2.4 : Représentation graphique d'un exemple d’association liant deux entités.
Une association décrit un lien entre plusieurs entités. Les occurrences de cette
association lient des occurrences de ces entités.
Comme les entités, les associations sont définies à l'aide d'attributs qui prennent leur
valeur dans les occurrences d’associations.
Règle 5 : Un attribut peut être placé dans une association uniquement lorsqu'il dépend
de toutes les occurrences d’entités liées par l’association.
Une association peut ne pas posséder d'attribut explicite et cela est relativement
fréquent, mais on verra qu'il possède au moins des attributs implicites.
Règle 6 : La concaténation des identifiants des entités liées à une association constitue
un identifiant de cette association et cet identifiant n'est pas mentionné sur le modèle
(il est implicite).
13 sur 40
Introduction aux Bases de Données Initiation à la Conception des Bases de Données : Modèle (E-A)
II-1-5 Cardinalité
PERSONNE LIVRE
NumPersonne NumLivre
0,n 1,1 Titre
Nom Etre l'auteur
Prenom Editeur
Adresse
Figure 2.5 : Représentation graphique des cardinalités d'une association. Dans cet exemple pédagogique,
on suppose qu'un livre ne peut posséder qu'un auteur.
Exemple de cardinalité : une personne peut être l'auteur de 0 à n livre, mais un livre ne
peut être écrit que par une personne (cf. figure 2.5).
Une cardinalité minimale est toujours 0 ou 1 et une cardinalité maximale est toujours
1 ou n.
Ainsi, si une cardinalité maximale est connue et vaut 2, 3 ou plus, alors nous
considérons qu'elle est indéterminée et vaut n. En effet, si nous connaissons n au
moment de la conception, il se peut que cette valeur évolue au cours du temps. Il vaut
donc mieux considérer n comme inconnue dès le départ. De la même manière, on ne
modélise pas des cardinalités minimales qui valent plus de 1, car ces valeurs sont
également susceptibles d'évoluer. Enfin, une cardinalité maximale de 0 n'a pas de sens,
car elle rendrait l’association inutile.
0,1 : une occurrence de l’entité peut exister tout en n'étant impliquée dans aucune
occurrence de l’association et peut être impliquée dans au maximum une occurrence
de l’association.
0, n : c'est la cardinalité la plus ouverte ; une occurrence de l’entité peut exister tout en
n'étant impliquée dans aucune occurrence de l’association et peut être impliquée, sans
limitation, dans plusieurs occurrences de l’association.
1,1 : une occurrence de l’entité ne peut exister que si elle est impliquée dans
exactement (au moins et au plus) une occurrence de l’association.
14 sur 40
Introduction aux Bases de Données Initiation à la Conception des Bases de Données : Modèle (E-A)
1, n : une occurrence de l’entité ne peut exister que si elle est impliquée dans au moins
une occurrence de l’association.
Une cardinalité minimale de 1 doit se justifier par le fait que les occurrences de l’entité
en question ont besoin de l'occurrence de l’association pour exister. Dans tous les
autres cas, la cardinalité minimale vaut 0. Ceci dit, la discussion autour d'une cardinalité
minimale de 0 ou de 1 n'est intéressante que lorsque la cardinalité maximale est 1. En
effet, nous verrons que, lors de la traduction vers un schéma relationnel, lorsque la
cardinalité maximale est n, nous ne ferons pas la différence entre une cardinalité
minimale de 0 ou de 1.
Figure 2.6 : Exemple d'associations plurielles entre une entité Personne et une entité Livre. Sur ce schéma,
une association permet de modéliser que des personnes écrivent des livres et une autre que des personnes
critiquent (au sens de critique littéraire)
Deux mêmes entités peuvent être plusieurs fois en association (c'est le cas sur la figure
2.6).
PERSONNE
NumPersonne 0,n enfant
Nom
Prenom
0,n
Adresse
0,n
Etre frère
Figure 2.7 : Exemple d'associations réflexives sur l’entité Personne. La première association permet de
modéliser la relation parent/enfant et la deuxième association la relation de fraternité.
15 sur 40
Introduction aux Bases de Données Initiation à la Conception des Bases de Données : Modèle (E-A)
1,n
CLIENT
NumClient
Nom
Prenom
Adresse
16 sur 40
Introduction aux Bases de Données Initiation à la Conception des Bases de Données : Modèle (E-A)
FACTURE PRODUIT
NumFacture 1,n Contient 0,n
NumProduit
DateFacture Prix Description
Quantite
...
1,1
Reçoit
1,n
CLIENT
NumClient
Nom
Prenom
Adresse
Figure 2.9 : association ternaire de la figure 2.8 corrigé en deux associations binaires.
Figure 2.10 : Exemple d’association ternaire entre les entités Créneau horaire, Salle et Film.
La figure 2.10 nous montre un exemple d’association ternaire entre les entités Créneau
horaire, Salle et Film. Il est toujours possible de s'affranchir d'une association n-aire
(n>2) en se ramenant à des associations binaires de la manière suivante :
17 sur 40
Introduction aux Bases de Données Initiation à la Conception des Bases de Données : Modèle (E-A)
CRENEAU HORAIRE
NumCreneau 0,n
Date Avoir lieu pendant
HeureDeDebut
1,1
PROJECTION FILM
NumProjection 1,1 0,n NumFilm
Concerner Titre
Tarif
Duree
1,1
SALLE
NumSalle 0,n
Capacite Avoir lieu dans
Figure 2.11 : Transformation de l’association ternaire de la figure 2.10 en une entité et trois associations
binaires.
La figure 2.11 illustre le résultat de cette transformation sur le schéma de la figure 2.10.
L'avantage du schéma de la figure 2.11 est de rendre plus intelligible la lecture des
cardinalités. Il ne faut surtout pas le voir comme un aboutissement, mais comme une
étape intermédiaire avant d'aboutir au schéma de la figure 2.10. Ainsi, le mécanisme,
que nous venons de détailler ci-dessus, de passage d'une association n-aire (n>2) à
une entité et n associations binaires est tout à fait réversible à condition que :
toutes les pattes des associations binaires autour de l’entité centrale ont une
cardinalité maximale de 1 au centre et de n à l'extérieur ;
les attributs de l’entité centrale satisfont la règle de bonne formation des
attributs de l’association.
18 sur 40
Introduction aux Bases de Données Initiation à la Conception des Bases de Données : Modèle (E-A)
PILOTE
NumPilote
0,n
Nom TRAJET
Prenom
NumTrajet
Vol AeroportDepart
0,n
Date AeroportArrivee
HeureDecollage DureeVol
AVION
...
NumAvion
Compagnie 0,n
Type
Figure 2.12 : Modèle représentant une association ternaire Vol liant trois entités Avion, Trajet et Pilote.
PILOTE
NumPilote 0,n Assurer
Nom
Prenom 1,1
TRAJET
VOL NumTrajet
NumVol AeroportDepart
1,1 0,n
Date Correspondre AeroportArrivee
HeureDecollage DureeVol
AVION
1,1
NumAvion
Compagnie 0,n
Type Etre affreté pour
Figure 2.13 : Transformation de l’association ternaire de la figure 2.12 en une entité et trois associations
binaires.
19 sur 40
Introduction aux Bases de Données Initiation à la Conception des Bases de Données : Modèle (E-A)
PILOTE
NumPilote 0,n Assurer
Nom
Prenom 1,n
TRAJET
VOL NumTrajet
NumVol AeroportDepart
1,1 0,n
Date Correspondre AeroportArrivee
HeureDecollage DureeVol
AVION
1,1
NumAvion
Compagnie 0,n
Type Etre affreté pour
Passer par cette étape intermédiaire ne comportant pas d’association n-aire (n>2) peut,
dans certains cas, éviter d'introduire une association n-aire inapproprié. Imaginons par
exemple une association ternaire Vol liant trois entités Avion, Trajet et Pilote comme
représenté sur la figure 2.12.
Le modèle correct modélisant cette situation est celui de la figure 2.14 où l’entité Vol ne
peut être transformée en une association ternaire Vol comme sur la figure 2.12.
20 sur 40
CHAPITRE 3
Le Modèle Relationnel
Le modèle relationnel a été introduit en 1970 par Edgar Frank Codd, informaticien
britannique travaillant à IBM. La première volonté du modèle relationnel fut d’être un
modèle ensembliste simple, supportant des ensembles d’enregistrements aussi bien
au niveau de la description que de la manipulation. Le modèle relationnel est donc
basé sur la théorie mathématique des relations sachant que le concept de relation
découle directement de la théorie des ensembles. Il est aujourd’hui la base de
nombreux systèmes, et les architectures permettant d’accéder depuis une station de
travail à des serveurs de données s’appuient en général sur lui. Le relationnel a donc
atteint ses objectifs au-delà de toute espérance.
III-1- Présentation
Les données sont représentées par des tables, sans préjuger de la façon dont les
informations sont stockées dans la machine. Les tables constituent donc la structure
logique1 du modèle relationnel. Au niveau physique, le système est libre d'utiliser
n'importe quelle technique de stockage (fichiers séquentiels, indexage, adressage
dispersé, séries de pointeurs, compression…) dès lors qu'il est possible de relier ces
structures à des tables au niveau logique. Les tables ne représentent donc qu'une
abstraction de l'enregistrement physique des données en mémoire.
1 La structure logique correspond ici au niveau conceptuel et aux niveaux externes vus précédemment.
21 sur 40
Introduction aux Bases de Données L’Algèbre Relationnelle
les données sont organisées sous forme de tables à deux dimensions, encore
appelées relations, dont les lignes sont appelées n-uplet ou tuple en anglais ;
les données sont manipulées par des opérateurs de l'algèbre relationnelle ;
l'état cohérent de la base est défini par un ensemble de contraintes d'intégrité.
Produit cartésien : le produit cartésien d’un ensemble de domaines D1, D2,..., Dn est
l’ensemble des vecteurs <v1, v2..., vn> où, pour i variant de 1 à n, vi est une valeur de Di.
22 sur 40
Introduction aux Bases de Données L’Algèbre Relationnelle
Kodjo Algèbre
Kodjo ATO
Toto Algèbre
Toto ATO
Jean Algèbre
Jean ATO
Représentation
Une relation se présente sous la forme d’un tableau à deux dimensions dont les
colonnes correspondent aux domaines et les lignes sont les n-uplets (tuples).
Domaine
Ex :
N-uplet (tuple) : C’est une ligne d’une relation (ou table) correspondant à un
enregistrement.
Attribut : C’est une colonne d’une relation caractérisée par un nom. Il explicite le rôle
joué par un domaine dans une relation.
23 sur 40
Introduction aux Bases de Données L’Algèbre Relationnelle
relation.
Domaine primaire : C’est un domaine sur lequel est définie une clé primaire
(donc mono-attribut)
Clé étrangère : un attribut qui n’est pas clé primaire mais qui est défini sur un
domaine primaire dans une autre relation est dit clé étrangère. Elle exprime les
associations entre entités.
Principe de Codd
Soit une relation R1 ayant une clé primaire multi-attributs. Si l’attribut A de la clé
primaire de R1 est défini sur un domaine primaire D, alors, pour chaque valeur v de A
dans R1, il doit y avoir une relation R2 dans la base de données avec une clé primaire
définie sur D (donc mono-attribut) ayant v comme valeur.
1. Chaque entité donne naissance à une relation. Chaque attribut de cette entité
devient un attribut de la relation. L'identifiant est conservé en tant que clé de
la relation.
24 sur 40
Introduction aux Bases de Données L’Algèbre Relationnelle
2. Chaque association dont aucune patte n'a pour cardinalité maximale 1 donne
naissance à une relation. Chaque attribut de cette association devient un
attribut de la relation. L'identifiant, s'il est précisé, est conservé en tant que clé
de la relation, sinon cette clé est formée par la concaténation des identifiants
des entités qui interviennent dans l’association.
3. Une association dont au moins une patte a une cardinalité maximale à 1 (cette
association devrait être binaire et n'a généralement pas d'attribut) ne devient
pas une relation. Elle décrit en effet une contrainte d’intégrité fonctionnelle*.
La relation correspondant à l’entité dont la patte vers l’association a une
cardinalité maximale valant 1, se voit simplement ajouter comme attribut (et
donc comme clé étrangère) l'identifiant de l'autre entité.
* Contrainte d’intégrité fonctionnelle (en abrégé CIF) se définit par le fait que l'une des
entités participant à l'association est complètement déterminée par la connaissance
d'une ou plusieurs autres entités participant dans cette même association.
EMPLOYE DEPARTEMENT
0,1 DIRIGER 1,1
NumMatric CodeDep
NomEmp LibelDep
PrenomEmp ...
Dans l'exemple ci-dessus, toutes les cardinalités maximales de l’association Diriger sont
de 1. L'application des règles de passage du modèle entités-associations au modèle
relationnel énoncées plus haut nous donnerait :
L'attribut CodeDep dans la relation Employé est une clé étrangère de la relation
Département. De même, l'attribut NumMatric dans la relation Département est une clé
étrangère de la relation Employé.
25 sur 40
Introduction aux Bases de Données L’Algèbre Relationnelle
L’association Diriger étant du type 1 vers 1, elle est entièrement matérialisée dans la
relation Département par l'attribut NumMatric. Il est donc inutile de la rematérialiser
dans la relation Employé. L'attribut CodeDep dans la relation Employé doit donc être
supprimé. D'autre part, dans la relation Département, l'attribut NumMatric, en plus
d'être une clé étrangère, constitue une clé candidate. On peut donc se passer de la clé
CodeDep.
où NumMatric, en plus d'être la clé de la relation Département, est une clé étrangère
de la relation Employé.
III-3-2 Cas particulier d'une entité sans attribut autre que sa clé
DATE
DateEmprunt
0,n
PERSONNE
EXEMPLAIRE EMPRUNTER NumPersonne
0,n
NumExemplaire DateRetour Nom
DateAchat 0,n
Prenom
Adresse
Par exemple, l’entité Date de la figure ci-dessus ne doit pas se traduire par une relation.
Le schéma relationnel adéquat correspondant au modèle entités-associations de la
figure est donc :
26 sur 40
Introduction aux Bases de Données L’Algèbre Relationnelle
RAYON
CodeRayon
LibRayon
1,n DATE
DateEmprunt
APPARTENIR
0,n
1,1
PERSONNE
EXEMPLAIRE EMPRUNTER NumPersonne
0,n
NumExemplaire DateRetour Nom
0,n
DateAchat Prenom
Adresse
27 sur 40
CHAPITRE 4
L’algèbre relationnelle
Les opérateurs unaires (la sélection et la projection), qui sont les plus simples,
permettent de produire une nouvelle table à partir d’une table.
Les opérateurs binaires ensemblistes (l’union, l’intersection et la différence)
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 (le produit cartésien, la jointure et la division)
permettent de produire une nouvelle table à partir de deux ou plusieurs autres
tables.
28 sur 40
Introduction aux Bases de Données L’Algèbre Relationnelle
IV-1 La sélection
Notation : σ [prédicat] R
R1=SELECTION (R0, Condition1, Condition2,…)
R2=PROJECTION (R1, Liste de colonnes)
Définition : La sélection travaille sur R et définit une relation qui ne contient que les
tuples de R qui satisfont à la condition (ou prédicat) spécifiée.
Exemple :
Produit
Référence Marque Prix Origine
GM-1 BMW 8 000 € Allemagne
FR-2 PEUGEOT 7 450 € France
JP-1 TOYOTA 6 725 € Japon
FR-1 CITROEN 7 000 € France
Remarque :
IV-2 La Projection
Notation : π [a ,…, a ] R
1 k
29 sur 40
Introduction aux Bases de Données L’Algèbre Relationnelle
Exemple :
Si R est vide, la relation qui résulte de la projection est vide, mais pas forcément
IV-3 L’Union
Définition : L’union est une opération portant sur deux relations R1 et R2 ayant le
même schéma et construisant une troisième relation constituée des n-uplets
appartenant à l’une ou l’autre des deux relations R1 et R2 sans doublon.
Notation : R1 U R2
R1 R2 R1 U R2
Nom Prénom Nom Prénom Nom Prénom
ABALO Félix ALFA Nassifatou ABALO Félix
KUMAKO Koffi NGUEMA Jean KUMAKO Koffi
ALFA Nassifatou ADZOH Afi ALFA Nassifatou
COMLAN Pierre COMLAN Pierre
NGUEMA Jean
ADZOH Afi
30 sur 40
Introduction aux Bases de Données L’Algèbre Relationnelle
Remarques :
IV-4 L’Intersection
Définition : L’intersection est une opération portant sur deux relations R 1 et R2 ayant
le même schéma et construisant une troisième relation dont les n-uplets sont
constitués de ceux appartenant aux deux relations.
Notation : R1 ⋂ R2
R1 R2 R1 ⋂ R2
Nom Prénom Nom Prénom Nom Prénom
ABALO Félix AYIVI Alex AYIVI Alex
KUMAKO Koffi NGUEMA Jean ALFA Nassifatou
ALFA Nassifatou ADZOH Afi
COMLAN Pierre ALFA Nassifatou
AYIVI Alex
Remarque :
31 sur 40
Introduction aux Bases de Données L’Algèbre Relationnelle
IV-5 La différence
Définition : La différence est une opération portant sur deux relations R1 et R2 ayant le
même schéma et construisant une troisième relation dont les n-uplets sont constitués
de ceux ne se trouvant que dans la relation R1.
Notation : R1 - R2
R1 R2 R1 - R2
Nom Prénom Nom Prénom Nom Prénom
ABALO Félix AYIVI Alex ABALO Félix
KUMAKO Koffi NGUEMA Jean KUMAKO Koffi
ALFA Nassifatou ADZOH Afi COMLAN Pierre
COMLAN Pierre ALFA Nassifatou
AYIVI Alex
Remarque :
Définition : Le produit cartésien est une opération portant sur deux relations R 1 et R2
et qui construit une troisième relation regroupant exclusivement toutes les possibilités
de combinaison des occurrences des relations R1 et R2.
Notation : R1 x R2
32 sur 40
Introduction aux Bases de Données L’Algèbre Relationnelle
Exemple :
Remarque :
IV-7-1 La Jointure
Définition : La jointure est une opération portant sur deux relations R 1 et R2 qui
construit une troisième relation regroupant exclusivement toutes les possibilités de
combinaison des occurrences des relations R1 et R2 qui satisfont l’expression logique
E.
Notation : R1 ⋈[E] R2
33 sur 40
Introduction aux Bases de Données L’Algèbre Relationnelle
Exemple :
Personne Cadeau
Nom Prenom AgeP AgeC Article Prix
AGUIAR Lisa 6 99 Livre 3 000
TOGBE Carole 42 6 Poupée 6 000
SENA Laure 16 20 Baladeur 4 500
10 Déguisement 1 500
Remarque :
IV-7-2 La thêta-jointure
Définition : La thêta-jointure est une jointure dans laquelle l’expression logique E est
une simple comparaison entre un attribut A1 de la relation R1 et un attribut A2 de la
relation R2.
Notation : R1 ⋈[E] R2
34 sur 40
Introduction aux Bases de Données L’Algèbre Relationnelle
- Equi-jointure
C’est une thêta-jointure dans laquelle l’expression logique E est un test d’égalité entre
un attribut A1 de la relation R1 et un attribut A2 de la relation R2. L’équi-jointure est
notée R1 ⋈ [A1 = A2] R2
Définition : Une jointure naturelle est une jointure dans laquelle l’expression logique
E 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. Notation : R1 ⋈ R2
Exemple :
Personne Cadeau
Nom Prénom Age Age Article Prix
AGUIAR Lisa 6 40 Livre 3.000
TOGBE Carole 40 6 Poupée 6.000
SENA Laure 20 20 Baladeur 4.500
DOSSOU Fidèle 6
Personne ⋈ Cadeau
Nom Prénom Age Article Prix
AGUIAR Lisa 6 Poupée 6.000
TOGBE Carole 40 Livre 3.000
SENA Laure 20 Baladeur 4.500
DOSSOU Fidèle 6 Poupée 6.000
Remarque :
35 sur 40
Introduction aux Bases de Données L’Algèbre Relationnelle
bien une jointure naturelle sur l’attribut A1, mais R1 ⋈ R2 est une jointure
naturelle sur le couple d’attributs A1, A2, ce qui produit un résultat très différent !
IV-8 La division
Définition : La division est une opération portant sur deux relations R1 et R2, telles que
le schéma de R2 est strictement inclus dans celui de R1, qui génère une troisième
relation regroupant toutes les parties d’occurrences de la relation R 1 qui, associées à
toutes les occurrences de la relation R2, se retrouvent dans R1.
Autrement dit, la division de R1 par R2 (R1 ÷ R2) génère une relation qui regroupe tous
les n-uplets qui, concaténés à chacun des n-uplets de R2, donne toujours un n-uplet
de R1.
Notation : R1 ÷ R2
36 sur 40
Introduction aux Bases de Données L’Algèbre Relationnelle
Remarque :
Cet opérateur est utile avant les jointures (homonymie, synonymie) ou avant les
opérations ensemblistes (même nom requis).
37 sur 40
Bibliographie indicative
- www.developpez.net
- www.openclassrooms.com
38 sur 40
Table des matières
Généralités sur les Bases de Données ................................................................................................... 1
Introduction ................................................................................................................................................................................1
I-1 Qu'est-ce qu'une base de données ? ........................................................................................................................2
I-1-1 Notion de base de données .....................................................................................................................................2
I-1-1-a Description Générale ..............................................................................................................................................2
I-1-1-b Base de Données informatisée ............................................................................................................................2
I-1-1-c Enjeux des Bases de Données...............................................................................................................................2
I-1-2 Modèles de Bases de Données ...............................................................................................................................3
I-1-2-a Modèle hiérarchique ................................................................................................................................................3
I-1-2-b Modèle Réseau ..........................................................................................................................................................3
I-1-2-c Modèle Relationnel ...................................................................................................................................................4
I-1-2-d Modèle Objet ..............................................................................................................................................................4
I-2 Système de Gestion de Bases de Données (SGBD) .............................................................................................4
I-2-1 Principes de fonctionnement ...................................................................................................................................5
I-2-2 Les objectifs des SGBD ...............................................................................................................................................5
I-2-3 Les Langages dans les SGBD ...................................................................................................................................6
I-2-4 Niveaux de description des données ANSI/SPARC ........................................................................................7
I-2-5 Exemples d’application des Bases de Données et de SGBD .......................................................................7
Conclusion ...................................................................................................................................................................................8
39 sur 40
II-2-3-c Détection d'une erreur de modélisation par décomposition d'une association n-aire ............ 19
40 sur 40