1 Page/Page

publicité
Chapitre 1
Introduction générale
Le monde de l’informatique a connu une évolution effervescente depuis l’apparition du
premier ordinateur l’EDVAC en 1945 jusqu’à aujourd’hui. Au début de l’ère informatique,
l’utilisation de l’ordinateur s’est limité à effectuer des calculs. Grâce à l’apparition des supports de stockage comme les bandes magnétiques (Figure 1.1) et les disques durs (Figure
1.2), les informaticiens se sont intéressés à la sauvegarde et à la gestion des données.
F IGURE 1.1 – Bande Magnétique
F IGURE 1.2 – Disque dur
Historiquement les premières techniques de gestion des données se basent sur la notion
des fichiers. Un fichier est une collection d’informations numériques réunies sous le même
nom. On parle alors des systèmes de gestion de fichiers (SGF) qui ont été utilisés à partir
des années 50. Vers des années 70 on commence à parler des Systèmes de Gestion des
Bases de Données (SGBD), proposant une philosophie différente de celle des SGFs.
Dans ce chapitre vous allez découvrir les SGFs et leurs inconvénients, les bases de données
et leurs avantages, et les systèmes de gestion des bases de données.
1.1
Quelques concepts de base
Une donnée est une représentation de l’information. Une donnée possède un type et
une valeur. Le type de donnée définit la nature du codage et les opérations autorisées sur
une donnée. Une donnée peut être simple ou complexe. Elle est dite simple si elle est non
décomposable, alors qu’elle est dite complexe si elle est composée de données simples ou
complexes.
1
1.2. L’APPROCHE FICHIER
Systèmes de Gestion des Bases de Données - Notes de Cours
E XEMPLE 1.1.
On pose NCC une donnée pour représenter la note de contrôle continu. NCC est de type
Réel (codée sur 4 octets), les opérations permises sur NCC sont : l’addition, la soustraction, la multiplication et la division. 12,75 est un exemple de valeur de l’attribut NCC.
E XEMPLE 1.2.
On pose Adr une donnée pour représenter l’adresse d’un étudiant. Adr est de type
chaine de caractères. Un exemple de valeur de l’attribut Adr est : Route Mahdia Km
2,5. Sfax. 3000. TUNISIE. Cette adresse peut être décomposée en un ensemble d’autres
attributs : Rue, Ville, Code postal, et Pays. Par conséquent Adr est une donnée
complexe.
Faiez CHARFI (ISET Sfax)
Les données doivent être mémorisées pour pouvoir être exploitées ultérieurement. On distingue trois mémoires :
— La mémoire centrale est une mémoire volatile. Il s’agit de la RAM. Cette mémoire
sert à héberger les programmes en cours d’exécution et leurs données.
— La mémoire secondaire est une mémoire permanente. Il s’agit du disque dur. Elle
sert à stocker les données dans des fichiers ou des bases de données.
— La mémoire tertiaire est une mémoire permanente utilisée pour la sauvegarde. Il
s’agit de disque dur externe, disque optique (CD, DVD), clé USB, etc. Ce type de
mémoire sert généralement à transférer les données ou à les dupliquer pour des
raisons de sécurité.
1.2
L’approche fichier
L’approche fichier est l’approche traditionnelle. Dans cette approche les données des fichiers sont décrites dans les programmes. Chaque application se base sur un ou plusieurs
fichiers.
E XEMPLE 1.3.
Soit deux applications : Paie et Facturation (Figure 1.3). La Facturation se base sur un
fichier Ventes afin de pouvoir générer les factures clients, et la Paie permet de cacluler
le salaire des employés en se basant sur leurs salaires de base (fichier Salaires) et sur le
pourcentage des ventes réalisées (fichier Ventes).
Dans l’exemple 1.3 précédent chacune des deux applications utilise un fichier Ventes. On
remarque que ces deux fichiers ont été utilisés au lieu d’un seul. Ceci nous renvoie à certains inconvénients de l’approche par fichier.
2
INTRODUCTION GÉNÉRALE
Systèmes de Gestion des Bases de Données - Notes de Cours
F IGURE 1.3 – Exemple de l’approche par fichier
1.2.1
Inconvénients de l’approche par fichier
1.2.2
Système de Gestion de fichiers
Cette section présente sommairement la notion de gestion de fichiers. Tout d’abord, rappelez vous qu’un fichier est un ensemble de données semblables physiquement regroupées
sur un support. Un fichier est composé d’un ensemble d’articles. Un article est une unité
d’information associée à une instance d’un fichier. Par exemple, les informations d’un seul
livre du fichier Livre. Un article est composé par un ensemble de rubriques ou de champs.
Par exemple, les articles du fichier Livre sont composés des champs :
Code
Titre
Auteur
Editeur
Document edité avec LATEX
Les principaux inconvénients de l’approche par fichier sont :
— Redondance des données : Cette redondance génère certains problèmes, à savoir, la multiplication des tâches de saisies et des mises à jour, la multiplication des
programmes de contrôles, l’augmentation du volume des données sur le support de
stockage physique et l’incohérence des données.
— Impossibilité de partager les données entre les applications car elles ne peuvent
pas accéder simultanément aux fichiers.
— Difficultés d’accès à l’information : Il n’existe pas une seule technique pour accéder aux informations dans un fichier. De plus, les fichiers ne se trouvent pas forcément sur le même support logique ou physique. Il est à noter que le programme
permettant d’extraire une information à partir d’un fichier volumineux peut consommer beaucoup de temps pour réaliser cette tâche.
Date
La figure 1.4 montre un exemple qui illustre le contenu du fichier Livre. Ce fichier
comporte trois lignes de données ou encore trois articles.
Le champ CodeLivre permet d’identifier un article du fichier Livre. Par conséquent, ce
champ est appelé Clé.
Un système de gestion des fichiers doit assurer les opérations suivantes :
— Création et destruction d’un fichier.
— Ouverture et fermeture d’un fichier.
— Insertion, modification et suppression d’un article.
— Rechercher un article dans un fichier.
3
1.3. L’APPROCHE BASE DE DONNÉES
Systèmes de Gestion des Bases de Données - Notes de Cours
F IGURE 1.4 – Un exemple de fichier de données : Livre.dat
1.3
1.3.1
L’approche base de données
Définitions
D ÉFINITION 1.1.
Une base de données est un ensemble de données qui sont fortement structurées,
persistantes, et dont la structure est définie dans un schéma. Les données d’une base de
données sont gérées par un système de gestion de base de données.
Faiez CHARFI (ISET Sfax)
D ÉFINITION 1.2.
Un système de gestion des bases de données est un logiciel spécialisé pour la gestion
automatisée des bases de données.
4
1.3.2
Les bases de données
L’approche Base de données a été proposée pour résoudre les problèmes de l’approche
par fichier, notamment la redondance, l’incohérence, le partage de données et l’accès à l’information. Une base de données est une collection de données qui peuvent être reliées entre
elles, et qui sont stockées sans redondance inutile. Une base de données peut être utilisée
par plusieurs applications.
Les données doivent être bien structurées pour permettre un développement cohérent des
applications futures, sachant que la structure de stockage des données doit être indépendante des applications. Autrement il y a une séparation entre les données et les traitements. Un utilisateur peut manipuler directement ou via des applications les données stockées. Cette manipulation consiste à réaliser quatre opérations possibles :
— Insertion
— Modification
— Suppression
— Extraction
La figure 1.5 illustre l’approche par base de données. Selon cette figure vous pouvez remarquer que les données sont centralisées, elles sont partagés entre plusieurs applications, et
qu’il n’y a plus redondance.
F IGURE 1.5 – Approche Base de données
1.3.3
INTRODUCTION GÉNÉRALE
Systèmes de Gestion des Bases de Données - Notes de Cours
Les Systèmes de Gestion des Bases de Données
Un Système de Gestion de Bases de Données (SGBD) est un ensemble de programmes
permettant d’assurer la gestion et le contrôle automatique des Bases de données. Les principales fonctions que doit assurer un SGBD sont :
Description : A partir d’une représentation abstraite des données, le SGBD doit assurer
la description de la structure physique des données. Pour effectuer cette description
un SGBD offre un langage de définition de données (LDD)
Extraction : Un SGBD permet l’interrogation de la base de données, d’une manière interactive ou via des programmes.
De même un SGBD doit garantir la confidentialité des données de la base, et ceci via
le contrôle des autorisations et des droits d’accès des utilisateurs. Il doit assurer qu’une
base de données soit partagée entre plusieurs utilisateurs en même temps et ceci via des
mécanismes de contrôle d’accès concurrents. L’accès concurrent consiste à gérer des
transactions simultanées sur les même lignes de données toute en préservant la cohérence de la base de données.
Document edité avec LATEX
Manipulation : La manipulation de données consiste à ajouter, modifier, supprimer et
extraire des données. Un SGBD permet de manipuler les données via un langage
de manipulation de données (LMD). L’interrogation de données peut être effectuée d’une manière interactive via le LMD ou bien avec des programmes. Lors de la
manipulation des données le SGBD doit garantir le contrôle d’intégrité des données.
Les utilisateurs exigent que leurs bases de données soient sécurisées, autrement pas de
risque de perte de données. Pour garantir cette sécurité un SGBD possède des mécanismes de reprise après panne et de journalisation permettant d’assurer la continuité
et la restauration l’état des données suite à des pannes éventuelles.
Extraire une information à partir d’une base de données volumineuse est une tâche qui
peut consommer du temps. Pour garantir un accès rapide et performant aux données, un
SGBD utilise des techniques tel que l’indexation, le hashage, les arbre balancés, etc.
5
1.3. L’APPROCHE BASE DE DONNÉES
Systèmes de Gestion des Bases de Données - Notes de Cours
F IGURE 1.6 – Exemple d’une base de données
E XEMPLE 1.4.
Faiez CHARFI (ISET Sfax)
Soit une base de données qui gère les données de scolarité. Cette BD contient une table
dans laquelle sont enregistrées les notes des étudiants par module (Figure 1.6).
Plusieurs utilisateurs peuvent accéder à cette base de données. Cet exemple se limite à
deux étudiants, ayant respectivement les matricules 125621 et 125622, et un
administrateur.
6
Contrôle d’intégrité : La valeur de la note de Devoir de Contrôle (NDC) doit être
comprise entre 0 et 20.
Contrôle et droit d’accès : Un étudiant ne peut accéder qu’aux lignes de données qui
le concerne. Le SGBD ne l’autorise pas à accéder aux données d’un autre étudiant.
L’accès d’un étudiant à ces propres données s’effectue en mode lecture seule.
L’administrateur peut accéder à toutes les lignes de données des notes des
étudiants. Il a le droit d’ajouter, modifier, supprimer et de lire ces données.
Accès concurrent : L’admisitrateur et un étudiant veulent accéder simultanément à
la même ligne de données. L’administrateur veut modifier la note de DC et
l’étudiant veut lire toutes ces notes. Une des solution que le SGBD peut effectuer
est de vérrouiller l’accès à la valeur de DC jusuq’à ce que la modification soit
terminée.
1.3.4
Architecture des SGBDs
L’architecture des SGBDs modernes est basée sur l’architecture ANSI 1 /SPARK 2 . C’est
une architecture fonctionnelle qui s’articule sur trois niveaux : interne, conceptuel et externe (Figure 1.7).
INTRODUCTION GÉNÉRALE
Systèmes de Gestion des Bases de Données - Notes de Cours
F IGURE 1.7 – Architecture d’un SGBD
Avec cette architecture il y a une indépendance des données, indépendance logique et
indépendance physique :
Indépendance physique : Elle consiste à permettre la modification de la structure de
stockage ou les index sans répercussions sur les applications. Ainsi, les disques, les
méthodes d’accès aux données, et le codage des données ne sont pas apparents aux
utilisateurs (voir Exemple 1.6).
E XEMPLE 1.5. (Indépendance logique)
Document edité avec LATEX
Indépendance logique : Les applications des utilisateurs ont des vues différentes des
données. La modification du schéma logique de la base de données par les administrateurs n’a aucun impact sur les applications et leurs vues (voir Exemple 1.5).
Les données d’un institut ou école : Enseignants, Etudiants, Notes, Livres, Emprunts,
Salle, etc. Chaque application a une vue de la base de données :
— Application 1 : Gestion des notes (MatriculeEtd, CodeMod, CodeMat, NNP, NDC,
NDS, Moyenne)
— Application 2 : Gestion des Enseignants(NSS, Prenom, Nom, Adr, NumTel1,
NumTel2, Specialité)
— Application 3 : Gestion des Livres (CodeLivre, Titre, Auteurs, Editeur,
DateEdit, ISBN)
1. American National Standards Institute
2. Standards Planning And Requirements Committee
7
1.4. MODÉLISATION DES DONNÉES
Systèmes de Gestion des Bases de Données - Notes de Cours
E XEMPLE 1.6. (Indépendance physique)
Structure Logique : {Nom, Prénom, Adresse, Fonction, Enfants {Prénom,
Age}}
Structure Physique : Un seul fichier, ou deux fichiers Employé et Enfant, reliés par
des pointeurs.
1.3.5
Exemples de SGBDs
Le tableau suivant illustre les SGBDs les plus populaires sur marché.
Faiez CHARFI (ISET Sfax)
Nom
Logo
Editeur
Licence
ORACLE Database
Oracle
Propriétaire
MySQL
Oracle & MySQL AB
GPL
PostgreSQL
GPL
SQLite
GPL
SQLServer
MicroSoft
Propriétaire
MicroSoft Office Access
MicroSoft
Propriétaire
OpenOffice Base
Oracle
LGPL
LibreOffice Base
The Document Foundation
LGPL
1.4
Modélisation des données
La modélisation conceptuelle est une phase importante pour réussir une application de
base de données. Une application de base de données réfère à la base de données et les
applications qui y sont associées. Dans cette section, vous allez découvrir les différentes
étapes nécessaires pour concevoir les données, les différents types de modèles de données,
et un aperçu sur le modèle Entité/Association.
1.4.1
Modèles de données
La figure 1.8 illustre les principales phases de modélisation de données. Avant la conception et l’implémentation d’une application de bases de données, il est nécessaire d’effectuer
des interviews avec les utilisateurs de l’application future. C’est l’étape d’analyse et de captures des besoins. Ces interviews permettent de savoir quel est le besoin en information
8
et quels sont les règles utilisées pour traiter les informations et pour réaliser les calculs.
A partir de cette étape on peut déterminer le besoin de données, qui est une sorte de dictionnaire de données dans lequel on trouve les descriptions de données récoltées {Attribut,
Type, Taille, Description, Contrainte}.
Après la phase d’analyse on passe par trois étapes de modélisation : Conceptuelle, Logique
et Physique. Un modèle de données correspond à chacune de ces étapes.
Modèle Conceptuel de Données (MCD) : Ce modèle est obtenu à partir des besoins de
données collectées après la phase de l’analyse et capture des besoins. Le MCD est
une description concise des données requises par les utilisateurs. Le MCD inclut une
description détaillée des Entités, des relations entre elles et des contraintes.
Il existe plusieurs formalismes permettant de créer un MCD : Entité/Association
(E/A), UML, MERISE, SADT/SART, OMT, etc.
Document edité avec LATEX
F IGURE 1.8 – Principales phases de la conception des données
INTRODUCTION GÉNÉRALE
Systèmes de Gestion des Bases de Données - Notes de Cours
Modèle Logique de Données (MLD) : Après avoir conçu les données il faut les implémenter sur un SGBD. La modélisation des données dans un SGBD peut être selon
l’un des modèles :
— Réseau
— Hiérarchique
— Relationnel
— Objet
9
1.4. MODÉLISATION DES DONNÉES
Systèmes de Gestion des Bases de Données - Notes de Cours
La plupart des SGBDs modernes se basent sur la modélisation relationnelle ou la
modélisation objet. Le type de modèle qui va être utilisé dans cet ouvrage est le modèle relationnel. Le Modèle Logique de Données est la traduction du MCD en vue de
l’implémenter dans un SGBD.
Modèle Physique de Données (MPD) : Ce modèle est obtenu dans la phase de modélisation physique, qui consiste à spécifier la structure de stockage, les index, les chemins d’accès, et les paramètres de la base de données.
E XEMPLE 1.7. Cet exemple illustre les deux modèles conceptuel et logique des
données. Pour la modélisation conceptuelle, deux formalismes sont présentés :
Entité/Association et UML. Le modèle logique est présenté sous forme de modèle
relationnel.
MCD
UML
Entité/Association
Faiez CHARFI (ISET Sfax)
MLD
Acteur
Film
Joue
1.4.2
(NumActeur, NomActeur, PrenomActeur)
(NumFilm, Titre, Réalisateur, Producteur, Catégorie)
(#NumActeur,#NumFilm, Rôle)
Modèle Entité/Association
Le modèle Entité/Association (E/A) décrit les données en tant que Entités, Associations
et Attributs (Figure 1.9).
F IGURE 1.9 – Le modèle Entité/Association
10
Entité C’est l’objet basique que représente le modèle E/A, qui est une représentation d’un
objet réel avec une existence indépendante. Une entité peut être un objet matériel
(par exemple, une personne, une maison, une voiture) ou un objet avec une existence
immatérielle (par exemple, un travail, un cours). Un entité est décrite par son nom et
ses attributs.
Attribut est une propriété qui contribue à la description d’une Entité. Par exemple, un
Employé peut être décrit par son numéro de carte d’identité, nom, âge, salaire et
travail.
Instance Une entité particulière peut avoir des valeurs pour ces attributs. Les valeurs
des attributs qui décrivent une entité sont considérés comme une instance de l’entité
dans la base de données. Par exemple, (01111110, Ali, 27, 750, Ouvrier) est
une instance de l’Entité Employé.
INTRODUCTION GÉNÉRALE
Systèmes de Gestion des Bases de Données - Notes de Cours
Identifiant est un attribut ou un groupe d’attributs permettant d’identifier une Entité.
Deux occurrences (instances) d’une même Entité ne doivent pas posséder le même
identifiant.
Association est une représentation d’un lien entre deux Entités ou plus. Une associations
peut avoir des propriétés (attributs) particulières.
Cardinalité elle définie le nombre d’associations entre les instances d’entités. Elle est
composée d’une cardinalité minimale et maximale.
a) Cardinalité minimale : Elle définit le nombre minimal qu’une occurrence d’une
Entité participe aux occurrences de l’association.
b) Cardinalité maximale : Elle définit le nombre maximal qu’une occurrence d’une
Entité participe aux occurrences de l’association.
Le modèle Entité/Association sera traité avec plus de détails dans l’annexe A.
1.4.3
Modèle relationnel
Le modèle relationnel est l’ensemble des relations permettant de modéliser le monde
réel. De point de vue MCD/MLD, les relations représentent les Entités et les Associations.
Pour traduire un modèle E/A en un modèle relationnel, une entité se transforme en une
relation (avec les mêmes attributs) et une association se transforme en une relation (avec
les mêmes attributs plus les identifiants des Entités participantes).
Document edité avec LATEX
Pour le cas du modèle E/A de l’exemple 1.7, un acteur peut ne pas jouer dans aucun film,
et il joue au maximum dans plusieurs film. Un film peut être joué par au moins un acteur
et au maximum plusieurs acteurs. Dans ce modèle, NumActeur est l’identifiant de l’entité
Acteur et NumFilm est l’identifiant de l’entité Film.
Le MLD de l’exemple 1.7 illustre le modèle relationnel qui correspond au modèle E/A du
MCD, qui le précède. Vous pouvez remarquer que les relations Acteur et Film possèdent
les mêmes attributs que les Entités qui leurs correspond. Par contre, la relation Joue possède l’attribut de l’association plus les attributs des Entités participantes, qui constituent
l’identifiant de cette relation.
La clé de la relation Acteur est NumActeur tout comme l’entité Acteur. La clé de la relation
Film est Numfilm tout comme l’entité Film. Par contre, la clé de la relation Joue est une
clé composée (NumActeur,NumFilm).
11
1.4. MODÉLISATION DES DONNÉES
Systèmes de Gestion des Bases de Données - Notes de Cours
Les données d’une relations sont représentées sous la forme d’une Table, comme indiqué
dans l’exemple 1.8 suivant.
E XEMPLE 1.8.
Soit la relation Personne(NumCIN, Nom, Age, Salaire, Travail).
La table Personne, suivante, représente les données de cette relation.
NumCIN
Table Personne
Nom Age Salaire
Travail
01111110
Ali
27
750
Ouvrier
02222220
Omar
34
850
Technicien
03333330
Lotfi
22
440
Apprentit
L’un des facteurs de popularité du modèle relationnel sont ces avantages, dont nous citons :
— Simplicité de représentation des données sous forme de tables.
— Les opérations réalisées sur les données sont des opérations relationnelles utilisant
des assertions et se basant sur l’algèbre relationnelle.
— Indépendances physique et logique
— Maintien de l’intégrité : Les contraintes d’intégrité sont définies au niveau du schéma
de données.
Faiez CHARFI (ISET Sfax)
1.4.4
12
Modélisation Physique des Données
Dans les sections précédentes, nous avons présenté le modèle Entité/Association en
tant que représentation du modèle conceptuel des données (MCD) et le modèle relationnel
en tant que modèle logique des données (MLD). Le modèle physique des données (MPD)
est l’implémentation du MLD avec les outils offerts par le SGBD. Les figures 1.10 et 1.11
montrent l’implémentation de la table PERSONNE dans le SGBD MySQL et le gestionnaire de données MS Access.
Dans le modèle physique, est une description détaillé des données en vue de leurs implémentation. Par rapport au modèle logique, le modèle physique comporte des informations
supplémentaires, tel que :
— Clé primaire
— Type des attributs
— Taille des attributs
— Format des valeurs attributs
— Contraintes d’intégrité
— Valeur par défaut
— Indexation
— etc.
INTRODUCTION GÉNÉRALE
Systèmes de Gestion des Bases de Données - Notes de Cours
F IGURE 1.10 – Implémentation de la relation Personne avec phpMyAdmin/MySQL
Document edité avec LATEX
F IGURE 1.11 – Implémentation de la relation Personne avec MS Access
Il est à noter que l’implémentation du modèle physique des données dépend des spécificités
du SGBD et elle peut changer d’un SGBD à un autre.
13
1.5. EXERCICES
Systèmes de Gestion des Bases de Données - Notes de Cours
1.5
Exercices
1. Quelle est la différence entre une Base de données et un SGBD ?
2. Quelle est la différence entre un SGF et un SGBD ?
3. Quels sont les avantages des bases de données ?
4. Quels sont les avantages d’un SGBD ?
5. Quels sont les avantages d’une base de données relationnelle ?
6. Quels sont les différents niveaux de données ?
7. Quels sont les différents modèles de données ?
8. Expliquer le principe d’indépendance physique et logique.
9. Quels sont les modèles conceptuels les plus populaires ?
10. Quel est le modèle logique adopté dans cet ouvrage ?
11. Quelle est la différence entre une Entité et une association ?
12. Quelle est la différence entre une Association et la relation qui implémente cette
association ?
13. Quels sont les avantages du modèle relationnel ?
14. Citez les noms de quelques SGBDs ?
15. Pourquoi MicroSoft Office Access est considéré comme un Gestionnaire de Base de
Données et non pas un SGBD ?
Faiez CHARFI (ISET Sfax)
16. Quels sont les progiciels équivalents à Access et qui peuvent fonctionner sous Linux ?
14
Téléchargement