Académique Documents
Professionnel Documents
Culture Documents
INTRODUCTION
HBNJM 1
COURS DE BADE DE DONNEES MYSQL
HBNJM 2
COURS DE BADE DE DONNEES MYSQL
INTRODUCTION
De nos jours, l’utilité des bases de données (BD) n’est plus à démontrer car
les données sont au cœur des grandes applications informatiques mais aussi
essentiellement à la plupart de nos activités et des interactions. La gestion d’une base
de données, sa consultation et, d’une manière générale, la manipulation des données
qu’elle contient, constituent des opérations complexes. C’est la raison pour laquelle
on fera appel à des logiciels spécialisés appelés Systèmes de Gestion de Bases de
Données (SGBD). Ces logiciels offrent un ensemble de fonctions permettant la
définition, l’exploitation et la gestion des données.
Dans ce cours, nous allons aborder plus en détail la genèse, les concepts
l’architecture et les utilisateurs des bases de données au chapitre
HBNJM 3
COURS DE BADE DE DONNEES MYSQL
Les données d’un fichier sont directement associées à un programme par une description
contenue dans le programme de traitement lui-même. Il n’existe aucune indépendance
entre le programme et les données. Toute modification de la structure des données
nécessite la récréation du programme. Toute manipulation du fichier exige trois (03)
niveaux d’intervention et trois (03) couches logicielles.
HBNJM 4
COURS DE BADE DE DONNEES MYSQL
et toujours utilisés dans le domaine bancaire, les SGBD hiérarchiques souffrent toutefois
de nombreux inconvénients.
La figure suivante illustre un modèle hiérarchique de données dans lequel les
compagnies aériennes peuvent embaucher plusieurs pilotes, un pilote peut travailler
pour le compte de plusieurs compagnies différentes. Les inconvénients récurrents sont
toujours la forte dépendance entre les données stockées et les méthodes d’accès. Les
chainages internes impliquent forcément une programmation complexe. Outre ces
problèmes de programmation, ce modèle montre les lacunes lors de l’accès à la base :
-Extraire la liste des pilotes implique le parcours de toutes les compagnies
-L’insertion peut se révéler problématique : l’ajout d’un pilote sans compagnie n’est
pas possible à moins d’ajouter une compagnie fictive.
-La suppression peut se révéler dangereuse : une compagnie disparait, alors de fait,
ses pilotes aussi
-La modification est souvent problématique : les incohérences proviennent
d’éventuelles redondances (le nom ou l’adresse d’un pilote qui change doit se répercuter
sur tous les enregistrements).
c- Le modèle réseau
Quelques années plus tard C.W.Bachmar pionnier dans le domaine informatique,
s’est esseillé aux bases de données en inventant un modèle brisant cette hiérarchie plutôt
arbitraire. Les bases de données réseaux étaient nées avec le modèle CODASYL, la
première norme décidée sans IBM.
Bien que résolvant quelques limitations du modèle hiérarchique et annonçant les
performances en lecture honorable, le modèle réseau n’est ni plus ni moins qu’une usine
à gaz gavée de pointeur. Pour preuve, plus personne n’utilise de telles SGBD où la
dépendance entre les données stockées et les méthodes d’accès existe toujours et est très
couteuse en termes de recompilation de pointeurs. Ce modèle ressemble bien à une telle
usine à gaz, même pas question de stocker ainsi les données. Ce sera bien trop compliqué
de conserver le bon graphe, le modèle de données se doit d’être plus simple.
d- Le modèle relationnel
En 1970, E. COLD publie l’article de référence posant les bases du modèle relationnel.
D’un seul coup, toutes les limitations des précédents modèles sont résolues. Le but initial
de ce modèle était d’améliorer l’indépendance entre les données et les traitements. Cet
aspect des choses est réussi avec d’autres fonctionnalités apparentent :
-Normalisation (dépendance fonctionnelle) et théorie des ensembles (algèbre
relationnel)
-Cohérence des données (non-redondance)
-Langage SQL (déclaratif et normalisé)
HBNJM 5
COURS DE BADE DE DONNEES MYSQL
Depuis quelques années, le volume de données à traiter sur le web a mis à rude
épreuve les SGBD relationnels, qui ont été jugé non adapté à de nombreuses montées
en charges. Les grands acteurs du BIG DATA, comme Google, Amazon, Linked IN ou
Facebook ont été amenés à créer leur propre système de stockage et de traitement de
l’information (Big table, Dynamo Cassandra).
Les implémentations d’architecture Open source comme Hadoop et des SGBD comme
H Base, Redis, Riak, Mongo DB ou encore Couch DB ont permis de démocratiser ce
nouveau domaine de l’informatique reparti. On distingue plusieurs modèles de données
permis les SGBD No SQL du moment : Clé-valeur, Orienté-colonne, documents et
graphe. Plus le modèle est complexe, moins le système est apte à évoluer rapidement en
raison de la montée en charge.
HBNJM 6
COURS DE BADE DE DONNEES MYSQL
(lourd). Les SGBD les plus connus sont : H Base, (l’implémentation du Big table de
Google) et Cassandra (projet Apache) qui reprend à la fois l’architecture du Dynamo,
d’Amazon et Big table.
HBNJM 7
COURS DE BADE DE DONNEES MYSQL
HBNJM 8
COURS DE BADE DE DONNEES MYSQL
HBNJM 9
COURS DE BADE DE DONNEES MYSQL
HBNJM 10
COURS DE BADE DE DONNEES MYSQL
Programme d’application
Sous-modèle A Sous-modèle B
Modèle principal
Archivage
-Niveau conceptuel : on précise à ce niveau les tables, les relations entre les tables,
les contraintes d’intégrité, les vues et les droits par groupe d’utilisateurs. Ce niveau
concerne l’administrateur et les développeurs.
-Niveau interne : On définit les indexes et tous les éléments informatiques
susceptibles d’optimiser les ressources et les accès aux données. Ce niveau concerne
l’administrateur.
-Niveau externe : Au niveau externe, les utilisateurs et les développeurs
d’applications ont une perception limitée de la base de données, on parle de vue. Une
vue peut être considérée comme une restriction du schéma logique à un type
d’utilisateurs. Ce niveau concerne les utilisateurs et les développeurs.
I- LANGAGE DE DEFINITION DE DONNEES LDD
Le langage de définition de données est un langage orienté au niveau de la
structure de la base de données. Il permet de créer, modifier, supprimer les objets, de
définir le domaine des données et d’ajouter les contraintes de valeurs sur les données.
HBNJM 11
COURS DE BADE DE DONNEES MYSQL
HBNJM 12
COURS DE BADE DE DONNEES MYSQL
HBNJM 13
COURS DE BADE DE DONNEES MYSQL
attribut doivent exister dans l’attribut colonne qui possède une contrainte PRIMARY
KEY où UNIQUE dans la table. En absence de précision d’attribut colonne, l’attribut
retenu est celui correspondant à la clé primaire de la table spécifiée.
-Foreign key (colonne) références table on délecte cascade Set null : Est une
contrainte d’intégrité référentiel pour un ensemble d’attributs de la table en cours de
définition. Les valeurs prises par l’attribut doivent exister dans l’ensemble d’attribut
spécifié et posséder une contrainte Primary key ou UNIQUE dans la table.
1- Ajout
Pour ajouter une ligne ou un élément dans une base de données, il faut faire :
INSERT IN TO nom de la table.
EX : (id, nom, prén, E) values (¨ ¨, ¨Koffi¨, ¨paul¨, ¨Koffipaul@gmail.com¨) ;
2-La suppression
Pour supprimer une table dans une base de données, il faut faire : DELETE
FROM nom de la table.
3- La modification
Pour modifier une table dans une base de données, il faut faire : UPDATE nom de
la table.
4- Interrogation d’une base de données
Pour interroger une base de données, il faut utiliser les mots suivants : SELECT,
WHERE FROM, GROUP BY, ODER BY, UNION, INTERSECT.
HBNJM 14
COURS DE BADE DE DONNEES MYSQL
-Select : cette clause permet de spécifier les attributs que l’on désir voir apparaitre
dans le résultat de la requête.
-Where : cette clause permet de filtrer les n-uplets, en imposant une condition à
remplir pour qu’il soit présent dans le résultat de la requête.
-From : cette clause spécifie les tables sur lesquelles porte la requête.
-Group By : cette clause permet de définir les groupes.
-Oder By : cette clause permet de trier les n-uplets de résultats.
-Union et Intersect : ces permettent d’effectuer des opérations ensemblistes entre
plusieurs résultats de requêtes.
III- Langage de contrôle de données LCD
Le langage de contrôle de données (LCD) est un langage de programmation et un
sous ensemble de SQL qui permet de contrôler l’accès aux données d’une base de
données.
HBNJM 15