Cours Base de Donnes (S5-SMI) - Version 4-14
Cours Base de Donnes (S5-SMI) - Version 4-14
Cours Base de Donnes (S5-SMI) - Version 4-14
Filière SMI
Semestre V
Mohamed SABBANE
2022-2023
1
Préambules
Objectifs
Plan du cours :
2
Chapitre I
I.I. Introduction
Le besoin en information et en
traitement d’information est devenu
l’élément clé du développement
humain. Dans ce sens, les systèmes
d’informations numériques sont
devenus indispensables à l’humanité.
I.2. Les constituants d’un système d’information
Le système d’information ne se limite pas
à la partie logicielle ou matérielle.
Comme le montre le schéma ci-coté, les
constituants d’un système d’information
forment une chaine dont les maillons
sont de différentes natures : du logiciel
au matériel aux canaux de
communications. Toutefois, la base de données reste le cœur du système et elle
est son élément indispensable.
I.3. Les fonctionnalités d’un Système d’Information
Les fonctionnalités d’un système d’information sont nombreuses et on peut les
présenter en trois fonctions majeures à savoir :
Représentation : le système offre tous les outils de représentation des
informations décrivant une activité donnée. Il permet également le codage
de n’importe quel attribut par des valeurs numériques représentatives. (par
exemple : janvier est souvent représenté par le mois 1 …)
Sauvegarde : le système permet le stockage et la restitution des données
mesurant les attributs de l’activité cible du système d’information. On
3
utilise des supports (papier, magnétique, mémoire électronique) pour
stocker les données.
Manipulation : Le système offre les outils de traitement et de manipulation
des données pour les façonner ou les mettre à disposition des utilisateurs.
(Opérateur de calcul, mise en forme, représentation graphique …)
I.4. Notions à identifier
Dans un environnement numérique, il est important d’identifier le vocabulaire
couramment utilisé. Bien que ce vocabulaire est très vaste, il est utile de focaliser
certain d’entre eux comme ci-après :
I.4.1. L’utilisateur
Il représente tout ce qui peut communiquer avec le système d’information. Il peut
être :
Un être humain (employé, responsable, citoyen, professionnel … ),
Des êtres vivants ou environnement (contrôle automatique, arrosage
automatique … )
Un système d’information (lui-même ou autre) : un système qui se sert des
informations des autres systèmes pour construire ses propres informations
: exemple les fichiers journaux, les tendances des visiteurs, les pannes …)
Une machine (industrie génération 4.0 ou 4G).
I.4.2. L’information
C’est l’ensemble des attributs mesurables qui peuvent décrire une partite ou
l’ensemble d’un sujet (un objet, un lieu …). Elle peut se concrétiser comme un
élément de connaissance. Par exemple :
Le nom est une information
La distance est une information
I.4.3. La donnée
Une donnée est une mesure de l’information et associée à un contexte
interprétatif pour qu’elle ait un sens.
le nom est une information, « Mohamed » est une donnée,
La longueur = 2 (dimension ?)
Une donnée numérique peut être :
une chaîne de caractères,
4
un nombre,
une structure plus complexe telle qu’une date, un moment, une photo, une
vidéo ou un enregistrement sonore.
I.4.4. L’informatique
Le traitement automatique de l’information, avec toutes les fonctionnalités et
puissances qu’elle offre. Ce traitement devient indispensable lorsque le volume
ou la complexité des données deviennent grands. De même, la manipulation des
données numériques est plus facile alors que le support mémoire est d’autant
plus large en format numérique que dans d’autre format. Le lien entre
l’information/la donnée et le support mémoire peut être nettement différent
dans les cas suivants :
Un texte sur papier (une forme solide),
Un texte sur un fichier informatique (une forme fluide).
De même, le format représentatif conditionne l’usage :
Un texte simple,
Un document sous un logiciel sophistiqué,
Un tableau sous un tableur…
La forme du fichier numérique condamne la façon d’usage (le tri, la recherche, le
calcul etc…). Cependant, il faut bien modéliser ses données pour profiter de la
puissance informatique.
I.4.5. La base de données
La base de données et la partie du système d’information où les informations sont
représentées et les données sont stockées. C’est un document informatique
spécial pour :
Stocker, représenter les données,
manipuler les données,
fournir et publier l’information.
Historiquement, une base de données fait référence à un ensemble structuré de
données : cohérentes, durables, évolutives et indépendantes du matériel et
logiciels applicatifs. Par conséquent, les bases de données sont conçues avec le
maximum d’attention.
5
Le changement des outils (matériel et logiciel) ne doit pas affecter les données /
les informations du système d’information. Ces données devront servir pour
toujours.
I.4.6 Les Systèmes de Gestion de Base de données (SGBD)
Un Système de Gestion de Base de Données (SGBD) (Data Base Management
System : DBMS) est le logiciel spécialisé en la gestion complète des bases de
données.
Il offre toutes les fonctionnalités pour manipuler la base jusqu’à sa migration vers
d’autres systèmes différents. Ces fonctionnalités sont de la forme :
Créer, Modifier, Sauvegarder, Restaurer, Entretenir et Mettre à jours la
base de données elle-même,
Inscrire, Modifier, Supprimer, Trier, Transformer ou Publier les
données/les informations de la base de données,
Protéger les données contre les utilisations illicites ou falsification…
Les SGBD sont des logiciels :
libres ou propriétaires,
simples ou très performants,
dépendent des systèmes d’exploitations sur les quels sont installés,
dépendent de type de communication utilisée (monoposte, client/serveur,
réparti, cloud …).
I.4.7. La communication
Le support de communication qui relie les éléments d’un système d’information
joue un rôle déterminant à la réussite de ce système. Dans les enivrements
classiques, généralement client-serveur, la communication n’avait pas
d’importance majeure. Actuellement dans un monde distribué (base de données
réparties, cloud-computing,…) la gestion de la communication devienne de plus
en plus importante.
Eventuellement, il existe d’autres termes relevant des systèmes d’information, ou
qui peuvent devenir important dans l’avenir. Il serait plutôt intéressant de les
identifier le moment venu.
I.5. Conclusion
Les systèmes d’informations sont devenus l’outil de travail et de communication
par excellence. En industrie, on parle actuellement de la génération 4.0.
6
L’évolution technologique des moyens de calcul et de communication ouvre de
nouveaux horizons pour les développeurs de solutions informatiques.
Les bases de données forment l’élément déterminant dans un système
d’information. Cependant, l’analyse, la modélisation et la conception des bases de
données restent pour toujours un sujet ouvert à l’innovation et à l’imagination.
7
Chapitre II
II.1. Généralités
En principe, nous pouvons considérer tout logiciel qui offre les fonctionnalités de
base (écrire, sauvegarder, restaurer) comme un Système de Gestion de Base de
Données (SGBD).
Toutefois, l’usage des données et les contraintes liées à la cohérence, l’intégrité,
l’accès… définissent la nature et le type d’un SGBD. Par exemple, un texte simple
n’est rien d’autre qu’une succession de caractères dont l’ordre d’écriture et de
lecture est séquentiel.
Outre les fonctionnalités de base, d’autres opérations avancées ne sont pas
assurées par n’importe quel SGBD. Par exemple, la recherche d’un mot particulier
à travers des documents de grande taille ou le calcul du total d’une colonne
nécessitent des SGBD plus performant qu’un traitement de texte ordinaire. Il en
est de même pour les fonctions telles que le tri, le calcul, la sélection à travers
plusieurs documents …. A cet égard, les SGBD sont développés pour répondre aux
traitements spéciaux.
II.2. Historique
Historiquement, les SGBD ont beaucoup évolué depuis leurs premières versions
apparues au début des années 60. Il ne serait pas intéressant de citer les
différents SGBD qui ont apparu jusqu’à présent. Il est plutôt utile de focaliser
leurs types face aux nouveautés technologiques et aux différentes sortes d’usage
de l’information.
II.3. Types de Système (SGBD)
Le présent cours concerne les systèmes de gestion de base de données
compatible au langage SQL seulement. La présentation des autres systèmes ici,
les NoSQL, n’est introduite qu’à titre d’information.
8
En général, nous pouvons distinguer deux grandes familles des SGBD : SGBD- SQL
et SGBD-NoSQL. Les SGBD classiques utilisent le langage SQL (Structured Query
Language) pour manipuler les données. Ils font souvent référence aux bases de
données relationnelles (SGBDR).
Les SGBD NoSQL sont généralement récents par rapport à l’autre famille. Le
terme NoSQL se traduit simplement par « Not Only SQL » qui signifie qu’il s’agit là
des bases de données au-delà du type relationnel conforme à SQL.
II.3.1. Les SGBD de type « Not Only SQL »
La technologie multimédia et de l’internet fait exploser le volume de l’information
et le besoin humain d’un temps de réponse négligeable. A ce fait, le concept de
bases de données NoSQL s’est imposé par les systèmes d’information des
moteurs de recherche ou ceux des géants des réseaux sociaux. Pour ces derniers,
le temps de réponse du système devient lent quand on utilise les SGBDR.
La définition exacte de la famille des SGBD NoSQL est sujette de larges débat.
C’est que l’utilisation des systèmes d’informations en dehors des sujets classiques
de gestion nécessite des améliorations techniques même en dehors des normes
bien cadrées. Les bases de données NoSQL ne nécessitent pas de schéma fixe,
elles sont utilisées pour le Big data et les applications Web en temps réel…
Concept NoSQL
Les bases de données NoSQL n’ont pas toutes les mêmes concepts. On distingue
plusieurs approches de conception pour des finalités précises telles que :
Bases de données orientées documents : Ces bases de données associent
généralement chaque clé à une structure de données complexe appelée
9
document. Ce dernier peut contenir des paires de tableaux de clés ou des
paires clé-valeur ou même des documents imbriqués.
Magasins de valeurs clés : Chaque élément est stocké sous la forme d’une
paire de valeurs clés et de données. Les magasins de valeur clé sont les plus
simples parmi les bases de données NoSQL.
Mémoires à colonnes larges : Ces bases de données sont optimisées pour
les requêtes sur de grands ensembles de données. Au lieu de lignes, ils
stockent des colonnes de données ensemble.
Base de donnée orientée graph : Ces bases de données stockent des
informations sur les structures de type graphe. Ce mode de représentation
est convenable aux réseaux sociaux.
Quelques SGBD NoSQL
MONGODB : C’est un logiciel open source orientée document. Il utilise des
documents JavaScript Object Notation (JSON).
CASSANDRA : Il a été développé pour le traitement de très grandes
quantités de données structurées.
REDIS : Redis est le plus célèbre système de gestion de bases de type clé-
valeur.
HBASE : Il s’agit d’une base de données distribuée conçue pour la base de
données BigTable par Google.
NEO4J : une base de données de type graphe.
Les SGBD NoSQL ne font pas partie du présent cours, ils sont énoncés ici à titre
indicatif.
II.3.2. Les SGBD de type SQL
Les SGBD de norme SQL se limitent au langage SQL pour l’interrogation. Ils sont
aussi répartis en catégorie. En littérature, il existe plusieurs types tels que :
Hiérarchique : les données sont enregistrées dans une structure
arborescente.
Orienté objet et objet-relationnel : Ils sont destinés à offrir les
fonctionnalités des SGBD à des langages orientés objet.
A base de XML ou RDF : s’appuient sur le modèle de données fourni par
XML.
Mixte : de tels SGBD utilisent les différents paradigmes présentés
précédemment.
10
Relationnel : les données sont placées dans des tables avec des lignes et
des colonnes. Cette catégorie est plus très populaire en littérature et celle
qui nous intéresse dans le présent cours.
II.4. Les SGBD Relationnels
Ce sont les systèmes de gestion de base de données qui utilisent :
le langage SQL (Structured Query Language)
les bases de données relationnelles.
Ils sont connus en littérature sous le nom (SGBDR).
Les bases de données relationnelles se constituent de tables liées par des
relations et soumises à des contraintes d’intégrité.
II.4.1. Architecture des SGBDR
L’architecture des bases de données dépond du SGBDR, elle peut être :
Par exemple, certain sont capable de gérer de grosse base de données. De même,
ils permettent de gérer en même temps plusieurs bases de données…
11
Outre les données, une base de données
et dans sa globalité un ensemble de
volets complémentaires.
A cet objectif, les déclencheurs ou triggers sont des opérateurs enregistrés dans
la structure de la base de données utiles pour lancer le traitement approprié en
réponse à un événement précis.
12
Il est préférable d’utiliser un ensemble de données qui n’est pas à jour, mais
cohérentes, plutôt que mises à jour et illogiques. Il arrive que la cohérence de la
base ne soit pas maintenue rien que par des transactions incomplètes ou
l’alimentation par des données non contrôlées.
Pour éviter les conflits d’accès sur une même ressource, les systèmes de SGBD
intègrent des fonctions de verrouillage. Dans tous les cas, les événements de
l’exemple suivant illustrent des cas de problèmes que peut avoir une base :
En évitant les différents cas d’incohérence, les SGBDR optent par des
verrouillages comme première tâche. Ainsi, les données seront inaccessibles, tant
que la même tâche n’aura pas levé le verrou. De cette manière, la cohérence de la
base ne sera pas altérée par des accès portant sur les données en cours de
modification. Toutefois, le principe sécurisant du verrouillage peut conduire à des
situations de blocage tel que "verrou de la mort".
Le système est dit inter-bloqué ou verrou mortel lorsque des tâches s’attendant
mutuellement. Il est en situation de verrou mortel (deadlock).
Dans un tel cas, la seule solution est de détruire une des deux tâches bloquante.
(Les systèmes professionnels prennent en charge cette gestion).
Une transaction est l’exécution d’une requête sur la base de données. Ainsi,
l’évolution de la transaction affecte significativement l’état de la base.
Evidemment si tout se passe bien, la base devrait passer d’un état stable à un
autre état stable. Si par contre, un évènement surgisse et perturbe la transaction,
la base pourrait se trouver dans un état instable et éventuellement l’incohérence
des données est forte probable.
Les SGBD modernes proposent de regrouper l’ensemble des requêtes d’un même
lot en une unité insécable. Ainsi, la transaction complète sera garantie.
Le modèle ACID définit les règles des transactions pour garantir la cohérence des
bases de données :
14
Durabilité : une fois validés, les changements apportés par la transaction
sont durables.
II.5.Conclusion
15
Sujets de réflexion :
N.B : les propositions doivent prendre en compte des critères tels que :
16
Chapitre III
III.1. Généralités
L’importance de la base des données dans la structure globale d’un système
d’information est inestimable. Par conséquent, la conception de la base n’est pas
une tâche facile. Outre sa structure, la base doit répondre à une multitude
d’exigences professionnelles et techniques.
Parmi ces exigences, les données abritées dans la base doivent durer et persister
même si les technologies changent. De même, au cours du temps, le volume des
données augment en permanence. Ceci pourrait en principe dépasser les
capacités techniques disponibles.
Malgré tout, la base de données devrait fonctionner comme si aucune contrainte
n’est survenue !
La meilleurs façon pour garantir l’évolutivité seine de la base serait la mise en
place d’une structure optimale pour :
Minimiser au maximum l’usage des ressources,
17
Assurer la cohérence des données,
Assurer la portabilité et la migration des données d’une génération
technologique à l’autre.
III.2. Modéliser une base de données
Avant de commencer, il faut se rappeler qu'il existe aujourd'hui deux grandes
catégories de bases de données :
A présent nous sommes intéressés par les modèles traditionnels compatibles avec
SQL. Dans la littérature, deux méthodes majeures sont utilisées en modélisation:
La conception d’une base de données passe par plusieurs étapes. Dans aucun cas,
il n’est possible de sauter une étape. L’étape zéro du projet commence par
spécifier le métier ou la nature du système d’information. Naturellement, une
base est conçue pour servir une activité donnée.
18
Schéma 3.2 : étape de modélisation de la base de données
L’analyse des données collectées abouti au premier modèle dit : Modèle Entités –
Associations (MEA). Il sert à la modélisation au niveau plus bas en se basant sur 3
concepts principaux:
Le modèle MEA est convertit par la suite en modèle relationnel (MRD). Le MRD
est normalisé selon les règles de MERISE pour donner le modèle conceptuel de
données (MCD).
A vrai dire, le modèle MEA n’est pas suffisant. Il offre le concept global de la base,
mais il lui manque certains détails. Par exemple, l’association {acheté par} lui
manque certaines informations telles que : la date d’achat, l’agent qui effectué la
vente, le prix de vente, la livraison …
21
Concrètement, le modèle MEA est complété par l’ajout des entités
complémentaires afin de combler le manque. Par exemple, l’association
{acheté par} est remplacée par une entité intermédiaire pour contenir les
propriétés de l’opération vente ou achat.
Ensuite, les différentes entités sont transformées en relations ou tables dont les
colonnes représentent les propriétés et les lignes représentent les objets. Quant
aux associations, elles sont remplacées par des relations de dépendances.
22
Les flèches illustrent la dépendance des données d’une table à l’autre. Cette
dépendance est réalisée par l’équivalence des identifiants des lignes dont le nom
de la colonne commence par « ID… ». La cardinalité représente l’occurrence de
part et d’autre de chaque flèche. Ainsi, on peut facilement comprendre qu’une
société peut fabriquer zéro ou plusieurs ordinateurs (0..N) etc…
Comme indiqué dans le schéma 3.1, le MCD est le modèle abstrait indépendant
du modèle choisi pour les données non plus du SGBD. En revanche, le MLD
intègre les contraintes organisationnelles et logiques définies par Merise. Parmi
ces modèles nous utilisons le Modèle Relationnel des Données (MRD).
23
Chapitre IV
Le Modèle Relationnel des Données
IV.1. Généralités
25
IV.4.2 Règles de passage : Associations
Chaque association est transformée
en une jointure (relation) :
IV.5. La Normalisation
L'objectif de la normalisation est de construire un schéma de base de données
cohérent. Un mauvais schéma logique conduire certainement à un certain
nombre d'anomalies pendant la phase d'exploitation de la base de données.
Pour qu’un modèle relationnel soit normalisé, il faut qu’il respecte certaines
contraintes appelées les formes normales. Ces formes s’appuient sur les
dépendances fonctionnelles entre les attributs.
26
IV.5.2 Le processus de normalisation
Le processus de normalisation consiste à remplacer une relation donnée (une
table) par certaines projections afin que la jointure de ces projections permette
de retrouver la relation initiale.
La 1ère forme de normalisation est la base de toutes les autres formes d’ordre
supérieur. Dans ce sens, la 2ème est forcément d’ordre 1, la 3ème est forcément
d’ordre 1 et 2 … alors que la 1ère n’est pas forcément d’ordre 2…
dépendance fonctionnelle,
dépendance multivaluée (exemple adresse = {numero, rue, av. , ville …} )
dépendance de jointure.
27
Les notions : dépendance fonctionnelle, dépendance multivaluée et
dépendance de jointure sont des notions sémantiques (significations). Elles
acquirent leurs origines des contraintes du monde réel. Comme ces contraintes
participent à la sémantique de la situation, elles doivent avoir une manifestation
dans la base de données.
Dans le modèle relationnel, les domaines sont atomiques par principe. Ceci
implique que toutes les relations sont nécessairement en 1ère forme normale. La
table suivante ne respecte pas la 1ère forme Normale.
Table 4.2 : Semestres est une information qui n’est pas atomique
28
Dans la table ci-dessus, on ne peut pas sélectionner les semestres
indépendamment l’un de l’autre. Pour satisfaire ce critère, on peut représenter la
table 4.2 comme suit :
Une relation est en 2ème forme normale si elle est en 1ère forme normale et si
chaque attribut non-clé dépend totalement et non partiellement de la clé
primaire. Par exemple, à partir de l’identité d’un étudiant définie par {CNE/MASAR,
NOM, PRENOM, DATE NAISSANCE, BAC …. } , le nom, le prénom et la date de naissance
dépendent complètement du CNE/MASAR, alors le bac non. Car plusieurs
étudiants peuvent avoir le même bac.
Table 4.3 : Table qui est de la forme 1FN mais elle ne respecte pas (2FN)
La table ci-dessus ne respecte pas 2FN car, les attributs BAC, LN, INSCRIPTION ne sont
pas des clés mais ils ne dépendent pas uniquement du CNE/MASAR de l’étudiant.
Pour rendre la table 4.3 compatible 2FN, procède par la scinder comme suit :
Table 4.4 : Tables qui sont de la forme 1FN et respectent pas (2FN)
29
IV.5.4.3. 3ème forme normale (3FN)
Définition :
Nous pouvons dire facilement que les deux attributs NOM et PRENOM ne sont
pas des clés et par conséquent : le NOM ne dépend pas du PRENOM et le
PRENOM ne dépend pas du NOM. Dans cette table nous pouvons rencontrer
plusieurs noms mais de prénoms différents. Inversement, il est facile d’admettre
que pour le même prénom on peut rencontrer plusieurs noms. Par contre, les
noms et les prénoms dépendent vivement des valeurs de chacune des clés. De
même, les deux attributs de la clé candidate dépend l’un de l’autre. On ne peut
pas trouver un CNE pour un autre CIN, l’inverse est aussi vrai.
Les attributs de la table (Nom, Prénom, Note, Résultat) sont dépendants l’un de l’autres
même-si ils ne font pas partie de la clé candidate. Il est pratiquement rare de
rencontrer une telle combinaison répétée. De même, si nous espérons
représenter le cursus complet de l’étudiant, surtout pour celui doit passer un
rattrapage, on doit écraser la note 5 pour la remplacer par la nouvelle note de
rattrapage. Pour résoudre ce problème, la table ci-dessus doit être scindée en
deux autres comme suit :
30
Table 4.5 : Tables compatibles (3FN)
Définition :
Une relation est en forme normale de Boyce-Codd (BCNF) si, et seulement si, les
seules dépendances fonctionnelles élémentaires sont celles dans lesquelles une
clé détermine un attribut non-clé.
31
Chapitre V
L’Algèbre Relationnelle
V.1. Généralités
Ri
Opérateur Rk
Rj
Relation de fermeture
La sélection, dénotée :
La projection, dénotée :
Le renommage, dénoté :
Le produit cartésien, dénoté :
L’union :
La différence :
Les opérateurs sont groupés par famille. Ainsi, ils sont présentés comme suit :
32
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 table à partir de deux ou plusieurs
autres tables.
V.2. La sélection : σ
La comparaison peut être également entre deux attributs A1 et A2, qui s’écrit A1
A2 avec les mêmes opérateurs de comparaison que précédemment.
V.3. La projection :
33
V.4. Le produit cartésien :
V.5. La Différence :
La différence porte sur deux relations R1 et
R2 ayant le même schéma et construisant
une troisième relation R3 dont les nuplets
sont constitués de ceux qui se trouvent dans
R1 et pas dans R2. On la note R − R . C’est
une opération binaire ensembliste non commutative dont la signature est :
relation - relation → relation
V.6. L’union :
Il existe deux autres opérateurs binaires, qui
sont à la fois plus simples et moins
fréquemment utilisés.
Le premier est l’union. L’expression R1 R2
crée une relation comprenant tous les nuplets existant dans l’une ou l’autre des
relations R1 et R2. Il existe une condition impérative : les deux relations doivent
avoir le même schéma, c’est-à-dire même nombre d’attributs, mêmes noms et
mêmes types.
V.7 L’Intersection :
L'intersection est une opération portant
sur deux relations R1 et R2 ayant le même
schéma et construit une troisième relation
dont les nuplets sont constitués de ceux
appartenant en même temps aux deux
34
relations, on la note R1 ∩ R2 .
Il s'agit une opération binaire ensembliste commutative dont la signature est :
relation1 ∩ relation2 → relation3
R1 et R2 et le résultat de l'intersection R3 ont les mêmes attributs.
V.8. Les opérateurs de jointure ▷◁
Toutes les requêtes exprimables avec l’algèbre relationnelle peuvent se
construire avec les 6 opérateurs présentés ci-dessus. En pratique, les requêtes les
plus complexes s’obtiennent la composition des opérations de base. Par exemple,
la jointure consiste à faire une sélection sur un produit cartésien entre deux
relations.
La jointure porte sur deux relations R1 et R2
dont le résultat est une relation R3 dont les
occurrences sont ceux qui satisfont
l'expression logique E. Elle se note R1 ▷◁E
R2
Si R1 ou R2 ou les deux sont vides, la
relation qui résulte de la jointure est vide.
La jointure peut être le produit cartésien des deux relations suivies d'une
sélection conditionné : R1 ▷◁E R2 = σE (R1 × R2 )
V.8. 1. La jointure dite « naturelle »
Elle s’applique uniquement quand les attributs de jointure ont des noms
identiques dans les deux tables. La jointure naturelle s’effectue alors
automatiquement sur l’attribut commun. Alors elle ne conserve que l’un des
attributs dans le résultat, ce qui élimine l’ambiguïté. La syntaxe est très simple.
V.8.2. Thêta-jointure ou Équijointure
Une équijointure 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. Elle se note R1 ▷◁A1 ,A2 R2
Dans la pratique, il vaut mieux écrire R1 ▷◁A1 =A2 R2 au lieu R1 ▷◁A1 ,A2 R2.
Ceci permet de comprendre que l’Attribut A2 de R2 peut être différent de A1 et
élimine toute confusion avec une jointure naturelle explicite.
V.9. Les Opérateurs logiques « ET /OU» « AND /OR»
35
Les conditions de jointures peuvent êtres multiples. Cependant, on peut
construire une seule expression de sélection par combinaison de plusieurs
jointures à l’aide des opérateurs logiques ET/OU.
Sujet de réflexion :
36
Chapitre VI
Le langage SQL
VI.1. Généralités
Par la suite, le langage SQL (Structured Query Language) remplace son ancêtre est
devient le langage standard d'accès aux bases de données relationnelles. Depuis
son apparition en 1986, le langage SQL a fait l'objet de plusieurs versions de
normalisation : ANSI/ISO.
37
o Amélioration mineure sur les types distincts, curseurs et mécanismes
d'auto-incrémentation.
SQL:2011 :
o Ajout du support des tables temporelles (historisation automatique).
o Le langage SQL est simple à utiliser, il s’apuit sur le schéma conceptuel
pour construire les requêtes indépendamment des SGBD.
o Il est toujours adopté par la plupart des SGBD.
o créer, modifier, supprimer des objets et définir leur domaine des données,
o ajouter des contraintes de valeur sur les données.
o autorise ou interdit l'accès aux données,
o activer ou désactiver l'audit pour un utilisateur.
38
L'ajout, la suppression et la modification des données,
L’extraction et la visualisation des données,
Le verrouillage/deverrouillage des tables.
Ces opérations nécessitent la validation par transaction pour qu'ils soient pris en
compte. Les instructions du LMD sont :
Le langage de contrôle d'accès LCD gère les droits d'accès aux données. Ses
instructions sont :
GRANT, REVOKE.
39
Les instructions du SQL intégré sont :
Dans la pratique, il est tout à fait normal de suivre une démarche logique de la
manipulation des données dans une base. La première étape consiste à créer les
tables de la base. Eventuellement, les fonctions et les procédures stockées ainsi
que la configuration des trigger. Bien que ceci relève d’une phase avancée
d’utilisation des SGBD, la création des tables, y compris les différentes contraintes
d’intégrités, peut se faire en un seul scripte.
La création la plus simple d’une table est définie selon la syntaxe suivante :
Ensuite, il faut définir les contraintes liées à la table comme celle de l’intégrité
révérencielle ou les trigger. On peut également créer une table et la remplir avec
des données provenant du résultat d'une sélection avec SELECT : CREATE TABLE
nom_table [(nom_col1, nom_col2, ...)] AS SELECT ...
Les colonnes des tables peuvent subir différentes contraintes que l'on peut
déclarer dans la structure de la table. Ces contraintes sont les suivantes :
De même, les tables elles même peuvent avoir des contraintes qu’on peut
déclarer comme suit :
Les contraintes sont créer au moment de la création de la table. Mai il est possible
d’en ajouter, supprimer ou modifier par la suite. L’ajout d’une contrainte de
colonne est :
La commande INSERT permet d'insérer une ligne dans une table en spécifiant les
valeurs à insérer. La syntaxe est la suivante :
Les colonnes de la table qui ne figurant pas dans la liste auront la valeur NULL. La
liste des colonnes par défaut est l'ensemble des colonnes de la table. Il est
possible d'insérer dans une table des lignes provenant d'une autre table grâce à
l’instruction SELECT.
La commande UPDATE permet de modifier les valeurs des colonnes d’une table
dans plusieurs colonnes en une ou plusieurs lignes. La syntaxe est la suivante :
UPDATE nom_table
SET nom_col_1 = {expression_1 | ( SELECT ...) },
nom_col_2 = {expression_2 | ( SELECT ...) },
...
nom_col_n = {expression_n | ( SELECT ...) }
WHERE condition
Les valeurs sont modifiées dans toutes les lignes qui satisfont la condition. S’il y a
pas de condition alors toutes les lignes seront modifiées.
41
La commande DELETE permet de supprimer des lignes d'une table. La syntaxe est
la suivante :
L’instruction la plus courante de SQL consiste à lire des données depuis la base de
données. L’instruction SELECT retourne des enregistrements depuis une ou
plusieurs tables et les renvois sous forme d’une nouvelle table. L’instruction peut
également sélectionner une ou plusieurs colonnes d’une ou de plusieurs tables.
WHERE condition:
La condition de la clause SELECT peut être simple ou complexe selon la portée des
données recherchées en utilisant des opérateurs logiques (AND & OR) :
condition
condition 1 AND condition 2
condition 1 AND (condition 2 OR condition 3)
IN : nom_colonne IN ( valeur1, valeur2, valeur3, ... )
BETWEEN : nom_colonne BETWEEN ‘min' AND ‘max'
42
LIKE : colonne LIKE modèle
GROUP BY expression :
La commande GROUP BY est utilisée en SQL pour grouper plusieurs résultats et
utiliser une fonction de calcul de total sur un groupe de résultat. Par exemple, sur
la table qui contient toutes les notes d’un semestre d’un étudiant, il est par
exemple possible de calculer le total des notes du semestre d’un étudiant comme
suit :
HAVING condition:
43
SELECT * FROM table1 INTERSECT SELECT * FROM table2
EXCEPT : PostgreSQL
MINUS : MySQL et Oracle
ORDER BY expression:
La clause ORDER BY permet de trier les enregistrements du résultat d’une
requête. Il est possible de trier les données sur une ou plusieurs colonnes, par
ordre ascendant ou descendant.
LIMIT count
La clause LIMIT limite le nombre maximum de résultats que l’on souhaite obtenir.
Ceci permet d’effectuer la pagination des résultats. La syntaxe dépend des SGBD.
Par exemple, cette requête sélectionne au plus 25 lignes.
OFFSET start
L’offset est une clause pour délimiter les lignes à obtenir. Il définit le décalage à
partir du début, qui est l’offset par défaut. La syntaxe pour utiliser une limite et
un offset est la suivante :
44