Vous êtes sur la page 1sur 15

COURS DE BADE DE DONNEES MYSQL

PROGRAMME DE BASE DE DONNEES

INTRODUCTION

CHAPITRE I : GENERALITE SUR LES BASES DE DONNEES

I- CONCEPT DE BASE DE DONNEES

1- Les fichiers et leurs limites

2- La définition d’une base de données


3- Les différents modèles de base de données
a- Les fichiers et COBOL
b- Le modèle hiérarchique
c- Le modèle réseau
d- Le modèle relationnel
e- Les modèle No SQL

CHAPITRE II : LE SYSTEME DE GESTION DE BASE DE DONNEES

I- LES FONCTIONS D’UN SYSTEME DE GESTION DE BASE DE


DONNEES

1- Définition de données LDD

2- La manipulation des données LMD


3- L’intégrité des données
4- La gestion d’accès-concurrent
5- La confidentialité
6- La sécurité de fonctionnement
II- ACCES AUX DONNEES
1- Gestion des droits d’accès
2- Rôle
CHAPITRE III : ARCHITECTURE D’UN SYSTEME DE GESTION DE BASE DE
DONNEES
INTRODUCTION
I- LANGAGE DE DEFINITION DE DONNEES LDD

HBNJM 1
COURS DE BADE DE DONNEES MYSQL

1- Création, modification et suppression d’objets


a- Créer une tab
b- Modifier une table
c- Supprimer une table
d- Renommer une colonne d’une table
e- Ajout d’une contrainte de table
2- Création, suppression et utilisation d’une base de données
a- Création
b- Utilisation d’une base de données
c- Suppression d’une base de données
d- Voir toutes les bases de données
3- Types de données

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

I. Au chapitre II, les SGBD et le langage SQL au dernier chapitre. L’objectif de ce


cours est de décrire de manière détaillée les caractéristiques des structures de données
offertes par les SGBD relationnels ainsi que leurs conséquences dans l’extraction et
la modification des données et la terminologie des bases de données.

HBNJM 3
COURS DE BADE DE DONNEES MYSQL

CHAPITRE I : GENERALITE SUR LES BASES DE DONNEE

I- CONCEPT DE BASE DE DONNEES

1- Les fichiers et leurs limites

Les fichiers sont définis pour 1 ou plusieurs programmes de traitement.

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.

2- La définition d’une base de données


Une base de données est un ensemble structuré et organisé de données permettant le
stockage de grandes quantités d’informations afin d’en faciliter leur utilisation (ajout,
mise à jour, recherche et éventuellement l’analyse dans les systèmes les plus évolués)
généralement gérés par un système spécialisé (système de gestion de bases de données
SGBD). Ce terme vient de l’anglais data-base apparut pour la première fois en 1964.Elle
désigne alors un ensemble d’informations numérisées, échangées entre plusieurs
utilisateurs d’un système informatique. Elle organise l’information qu’elle contient en
table, en champs (colonnes) et en enregistrement (lignes).
3- Les différents modèles de base de données
a- Les fichiers et COBOL
Le stockage de données a commencé dans les années 1960 avec le système de
gestion de fichiers et le langage COBOL (Common business oriented langage). Loin
d’être passé, ce dernier fut le plus utilisé en 1960 et 1980.
En 2002, il permet une programmation de type objet, la gestion des informations
UNICODE et une intégration avec XML. En 2005 le GARTNER GROUP estimait que
COBOL manipulait près de 75 % des données de gestion stockées. Le principal
inconvénient de l’application COBOL est la forte dépendance qui existe entre les
données stockées et les traitements. En effet, le fait de déclarer dans chaque programme
les fichiers utilisés impose une maintenance lourde si la structure d’un fichier doit être
modifiée. De plus, les instructions de manipulation (ouvert, lecture, et modification)
sont très liées à la structure de chaque fichier. La structure des fichiers s’apparente à
celle d’une table (suite de champs de type numérique où alphabétique).
b- Le modèle hiérarchique
Les bases de données hiérarchiques ont introduit un modèle de données du même
nom. Il s’agit de déterminer une arborescence de données où l’accès à un enregistrement
de niveau inférieur n’est possible sans passer par le niveau supérieur. Promut par IBM,

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

-Accès aux données optimisées (choix du chemin par SGBD).


Les liens entre les enregistrements de la base de données sont réalisés non pas à l’aide
des pointeurs physiques mais à l’aide des valeurs des clés étrangères et des clés
primaires. Pour cette raison, le modèle relationnel est dit (modèle à valeur). La force de
ce modèle de données réside dans le fait qu’il repose sur les primitives simples et permet
de modéliser les données complexes. Le modèle relationnel est à l’origine du grand
succès que connaissent aujourd’hui les grands auditeurs de SGBD à savoir : ORACLE,
IBM, MICROSOFT et SY BASE, dans différents domaines :
-OLPT (online transaction processing) où les mises à jour des données sont
fréquentes, les accès concurrents et les transactions nécessaires.
-OLAP (online analytical processing) où les données sont multidimensionnelles
(cubes), les analyses complexes et l’informatique décisionnelle.
-SIG (système d’information géographique) où la majorité des données sont
exprimées en 2 ou 3D et suivent des variations temporaires.

e- Les modèle No SQL

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.

-Modèle de données clé-valeur : Le mode de stockage du modèle clé-valeur (key-


table) s’appuie à une table de hachage persistante, qui associe une clé à une valeur (de
toutes natures et de tous types divers, la clé 1 pouvant référencer un nom, la clé 2, une
date etc.). C’est à l’application cliente de comprendre la structure de ce blob. L’intérêt
de ces systèmes est de pouvoir mutualiser cette table sur un ou plusieurs serveurs. Les
SGBD les plus connus sont : Memcached, Couch Base, Redis et Vol de mort (Linked
IN).

-Modèle de données orienté-colonne : Le modèle orienté-colonne ressemble à une


table dénormalisée (sans la présence du NULL toutefois) dont la structure est dynamique

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.

-Modèle de données orienté-document : Le modèle orienté-document est toujours


basé sur une association clé-valeur dans laquelle la valeur est un document (JSON
généralement ou XML). Les implémentations (base de données) les plus populaires
sont : Couch DB (Apache), Raven DB, Riak et Mongo DB.

-Modèle de données orienté-graphe : Le modèle de données orienté-graphe se base


sur le nœud et les arcs orientés et éventuellement évalués. Ce modèle est très bien adapté
au traitement des données des réseaux sociaux où on recherche les relations entre
individus de proche en proche. Les principales solutions du marché sont Néo 4J (Java)
et Flock DB (Twiter).

HBNJM 7
COURS DE BADE DE DONNEES MYSQL

CHAPITRE II : LE SYSTEME DE GESTION DE BASE DE DONNEES

I- LES FONCTIONS D’UN SYSTEME DE GESTION DE BASE DE


DONNEES

1- Définition de données LDD

Un système de gestion de base de données permet la description des entiers (Ex :


Elève, Classe), des propriétés ou des attributs des entiers (Ex : nom-élève, libellé-
classe), des liens entre les entités (Ex : un élève est inscrit dans une classe), des
contraintes (Ex : l’effectif d’une classe de BTS ne doit pas dépasser 30 étudiants). Pour
assurer cette fonction, les SGBD offrent un langage spécifique comme : ¨langage de
définition de données LDD.

2- La manipulation des données LMD

Les SGBD offrent les capacités de création, de rechercher, de modifier et de


supprimer des données grâce à un langage dit : ¨Langage de manipulation de données¨.
Ex : Insertion d’un nouvel étudiant, modification du numéro de téléphone d’un étudiant
suite à la perte de son téléphone, recherche de la moyenne d’un étudiant.
3- L’intégrité des données
Il s’agit de s’assurer que les contraintes (règles) d’intégrité, fournies par le LDD
soient respectées à chaque manipulation de la base de données.
Ex : L’Age d’un étudiant de BTS ne doit pas dépasser 27 ans ou l’identifiant de
l’étudiant doit être unique.
4- La gestion d’accès-concurrent
Le SGBD gère l’accès simultané des utilisateurs de la base de données. Il doit offrir
des mécanismes de gestion des conflits d’accès (l’autorisation d’accès multiples en
consultation, verrouillage lors d’accès aux modifications).
Ex : Lors de la mise à jour des données concernant un étudiant, le SGBD interdit la
modification de ces données par un autre utilisateur non autorisé.
5- La confidentialité
Tous les utilisateurs d’une base de données ne sont pas supposés pouvoir consulter
où modifier toutes les informations dont il faut établir des règles et droit d’accès et de
modification de données par le biais des mots de passe et des privilèges d’accès.
Ex : Seul le gestionnaire de la base de données peut changer l’affectation d’un étudiant
d’une classe à une autre.

HBNJM 8
COURS DE BADE DE DONNEES MYSQL

 L’administrateur principal de la base : définit le schéma conceptuel, définit les


modalités de protection des données.
 Les administrateurs d'applications : définissent le sous modèle adapté à
l'application, l’élaboration des schémas externes, la définition des règles de
correspondance entre externe et conceptuel.
 Programmeurs d'application : leur rôle est d'établir des bibliothèques de
programmes de manipulation et de traitement de la base. Ils utilisent le
Langage de Manipulation de Données qui peut être autonome ou associé à un
langage hôte et qui dispose des caractéristiques des langages algorithmiques.
 Les utilisateurs avisés : ont les connaissances nécessaires pour utiliser le
langage de commande du SGBD et accèdent aux données à partir de leur
ordinateur personnel. Ils ont été autorisés par l'administrateur à voir certaines
informations et à les modifier. Ils peuvent rechercher, ajouter, modifier ou
supprimer des données en utilisant le langage de commande du SGBD.
 Les utilisateurs profanes : accèdent aux informations à travers un logiciel
applicatif. Ils exécutent des commandes ou choisissent des menus et n'ont pas
connaissance du langage de commande ni de l'organisation de la base de
données. Les opérations effectuées par ces utilisateurs sont moins
sophistiquées et limitées aux possibilités offertes par le logiciel applicatif
6- La sécurité de fonctionnement
L’offre des mécanismes de récupération des données comme la journalisation et les
procédures de reprise après panne en cas d’incident matériel où logiciel.
Ex : Sauvegarde de la base de données une fois par semaine.
II- ACCES AUX DONNEES
1- Gestion des droits d’accès
Les droits aux accès d’une base de données sont omniprésents dans la gestion de
celle-ci. Ils nécessitent l’autorisation aux accès en imposant des restrictions. Il est
question de la gestion de sécurité. Pour assurer la sécurité des bases de données, nous
avons :
-La confidentialité : Seules les personnes autorisées, ont accès aux ressources de
la base de données qui sont des données stockées dans la base ainsi que les traitements
sur ces données.

HBNJM 9
COURS DE BADE DE DONNEES MYSQL

-L’intégrité : Les ressources de la base de données ne doivent pas être


corrompues, les données stockées et échangées doivent être protégées de toutes
modifications illicites (destruction, altération, substitution).
-Disponibilité : L’accès aux ressources de la base de données est garanti de façon
permanente.
2- Rôle
On crée un rôle auquel on attribue des droits puis des rôles à des utilisateurs ou
connexion.
Rôles prédéfinis :
-Rôle serveur : L’administration du serveur, configuration des paramètres
nouveau-serveur, l’exécution de certaines procédures stockées et d’ajout des serveurs
liés, gestion des connexions serveur, gestion des traitements au sein du serveur, création
ou modification des bases de données, gestion des fichiers sur le disque, exécution
d’instructions BULK INSERT.
-Rôle base de données : Propriétaire base de données, ajout et suppression des
utilisateurs de base de données, utilisation d’instructions SELECT, utilisation
d’instructions (INSERT U PDATE, DELETE, DROP), les opérations sur les objets de
base de données, l’utilisation des BACKUPS, interdire l’instruction SELECT, interdire
l’écriture sur la base de données.

CHAPITRE III : ARCHITECTURE D’UN SYSTEME DE GESTION DE BASE DE


DONNEES
INTRODUCTION
Un SGBD est fréquemment décrit par une structure en couche correspondant à des
perceptions différentes des données, associées à des taches pour différents acteurs. Nous
distinguerons en général trois (03) types d’acteurs :
-Les acteurs appelés administrateurs de la base de données ;
-Les acteurs appelés développeurs de la base de données ;
-Les acteurs appelés les utilisateurs.
Au niveau externe, proche de l’utilisateur, la perception est totalement indépendante
du matériel et des techniques mises en œuvre tandis qu’au inférieur se trouvent les
détails de l’organisation sur disque et en mémoire.

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

Il permet enfin d’autoriser ou d’interdire l’accès aux données et d’activer ou de


désactiver l’audite pour un utilisateur donné.
1- Création, modification et suppression d’objets
a- Créer une table
Pour créer une table, il faut faire : Create table+ le nom de la table.
Ex : Create table nom_table (nom_champ 1, type 1, nom_champ 2, type 2…).
b- Modifier une table
Pour modifier une table, il faut faire : ALTER Table+ le nom de la table.
Ex : ALTER Table nom_table ((add / modify) nom_champ 1, type 1, nom_champ 2,
type 2…).
c- Supprimer une table
Pour supprimer une table, il faut faire : DROP Table+ le nom de la table.
Ex : DROP Table nom_table.
d- Renommer une colonne d’une table
Pour renommer une colonne d’une table, il faut faire : ALTER Table+ le nom de
la table rename column ancien_nom to nouveau_nom.
e- Ajout d’une contrainte de table
Pour ajouter une contrainte à une table, il faut faire : QLTER Table+ nom de la
table ADD (Constraint nom_contrainte) contrainte ;
2- Création, suppression et utilisation d’une base de données
a- Création
Pour créer une base de données, il faut faire : CREATE Data base+ le nom de la
base de données.
Ex : CREATE Data base nom_data base ;
b- Utilisation d’une base de données
Pour utiliser ou indexer ou monter une base de données, il faut faire : USE+ le
nom de la base de données ;
Ex : USE nom_base ;
c- Suppression d’une base de données
Pour supprimer une base de données, il faut faire : DROP Data base+ le nom de la
base de données ;

HBNJM 12
COURS DE BADE DE DONNEES MYSQL

Ex : DROP Data base nom_base ;


d- Voir toutes les bases de données
Pour voir toutes les bases de données, il faut faire : SHOW Data base
3- Types de données
-INTEGER : Il permet de stocker les entiers signés et codés sur 4 octets ;
-BIGINT : Permet de stocker les entiers signés et codés sur 8 octets ;
-REAL : Permet de stocker les réels comportant 6 chiffres significatifs codés sur 4
octets ;
-DOUBLE PRECISION : Permet de stocker les réels comportant 15 chiffres
significatifs et codés sur 8 octets ;
-NUMERIC (précision, longueur) : Il permet de stocker les données numériques à
la fois entières et réelles avec une précision de 1000 chiffres significatifs. La longueur
précise le nombre maximal de chiffres significatifs stockés et la précision donne le
nombre maximal de chiffres après la virgule.
-CHAR (longueur) : Permet de stocker les chaines de caractères de longueur fixe.
La longueur doit être inférieur à 255, sa valeur par défaut est 1.
-VARCHAR (longueur) : Permet de stocker les chaines de caractères de longueur
variable. La longueur doit être inférieur à 2000, il n’y a pas de valeur par défaut.
-DATE : Permet de stocker des données constituées d’une date.
-TIMESTAMP : Permet de stocker les données constituées d’une table et d’une
heure.
-BOOLEAN : Permet de stocker des valeurs booléennes.
-MONEY : Permet de stocker les valeurs monétaires.
-TEXT : Permet de stocker les chaines de caractères de longueur variable.
-UNIQUE : Désigne l’attribut comme clé secondaire se la table. Il peut recevoir
des valeurs identiques pour cet attribut, mais l’insertion des valeurs nulles est toutefois
autorisée. Cette contrainte peut paraitre plusieurs fois dans l’insertion.
-Primary key : Désigne l’attribut comme clé primaire de la table. La clé primaire
étant unique, cette contrainte ne peut apparaitre qu’une fois dans l’instruction. La
définition d’une clé primaire composée se fait par l’intermédiaire d’une contrainte de
table. En fait, la contrainte clé primaire (primary key) est totalement équivalente à la
contrainte UNIQUE Not null.
-Références table (colonne) on délecte cascade : Est une contrainte d’intégrité
référentiel pour l’attribut de la table en cours de définition. Les valeurs prises par cet

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.

II- Langage de manipulation des données LMD


Le langage de manipulation des données(LMD) est l’ensemble de commandes
concernant la manipulation des données dans une base de données. Il permet l’ajout, la
suppression et la modification des lignes, la visualisation du contenu des tables et les
verrouillages.

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

Vous aimerez peut-être aussi