F IGURE 1.2 – Disque dur Quelques concepts de base 1 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 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. 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. F IGURE 1.1 – Bande Magnétique 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. Introduction générale Chapitre 1 1.2. L’APPROCHE FICHIER 2 Faiez CHARFI (ISET Sfax) E XEMPLE 1.1. L’approche fichier 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. 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). E XEMPLE 1.3. 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. 1.2 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é. 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. E XEMPLE 1.2. 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. Systèmes de Gestion des Bases de Données - Notes de Cours Inconvénients de l’approche par fichier Système de Gestion de fichiers Titre Auteur Editeur Date 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. 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é. Code 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 : 1.2.2 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. 1.2.1 F IGURE 1.3 – Exemple de l’approche par fichier Document edité avec LATEX 3 1.3. L’APPROCHE BASE DE DONNÉES 4 Faiez CHARFI (ISET Sfax) Systèmes de Gestion des Bases de Données - Notes de Cours INTRODUCTION GÉNÉRALE Définitions 1.3.1 Les bases de données 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. 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. 1.3.2 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. 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. L’approche base de données 1.3 F IGURE 1.4 – Un exemple de fichier de données : Livre.dat Systèmes de Gestion des Bases de Données - Notes de Cours Les Systèmes de Gestion des Bases de 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. 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. Extraction : Un SGBD permet l’interrogation de la base de données, d’une manière interactive ou via des programmes. 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. 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) 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 : 1.3.3 F IGURE 1.5 – Approche Base de données Document edité avec LATEX 5 1.3. L’APPROCHE BASE DE DONNÉES 6 Faiez CHARFI (ISET Sfax) Systèmes de Gestion des Bases de Données - Notes de Cours INTRODUCTION GÉNÉRALE E XEMPLE 1.4. 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. 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. 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. Contrôle d’intégrité : La valeur de la note de Devoir de Contrôle (NDC) doit être comprise entre 0 et 20. 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. F IGURE 1.6 – Exemple d’une base de données Systèmes de Gestion des Bases de Données - Notes de Cours Architecture des SGBDs 1. American National Standards Institute 2. Standards Planning And Requirements Committee — 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) 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 : E XEMPLE 1.5. (Indépendance logique) 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). 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). Avec cette architecture il y a une indépendance des données, indépendance logique et indépendance physique : F IGURE 1.7 – Architecture d’un SGBD 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). 1.3.4 Document edité avec LATEX 7 1.4. MODÉLISATION DES DONNÉES 8 Faiez CHARFI (ISET Sfax) Systèmes de Gestion des Bases de Données - Notes de Cours INTRODUCTION GÉNÉRALE Exemples de SGBDs The Document Foundation LibreOffice Base Modélisation des données Oracle OpenOffice Base LGPL LGPL Propriétaire 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 1.4.1 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 MicroSoft Propriétaire SQLServer MicroSoft Office Access GPL SQLite MicroSoft GPL GPL Propriétaire Licence PostgreSQL Oracle & MySQL AB MySQL Editeur Oracle Logo ORACLE Database Nom Le tableau suivant illustre les SGBDs les plus populaires sur marché. 1.3.5 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. E XEMPLE 1.6. (Indépendance physique) 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 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. F IGURE 1.8 – Principales phases de la conception des données 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. 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}. Systèmes de Gestion des Bases de Données - Notes de Cours Document edité avec LATEX 9 1.4. MODÉLISATION DES DONNÉES 10 Faiez CHARFI (ISET Sfax) INTRODUCTION GÉNÉRALE MLD Modèle Entité/Association (NumActeur, NomActeur, PrenomActeur) (NumFilm, Titre, Réalisateur, Producteur, Catégorie) (#NumActeur,#NumFilm, Rôle) Entité/Association F IGURE 1.9 – 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). 1.4.2 Acteur Film Joue UML MCD 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. 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. 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. Systèmes de Gestion des Bases de Données - Notes de Cours Modèle relationnel 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). 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. 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). 1.4.3 Le modèle Entité/Association sera traité avec plus de détails dans l’annexe A. 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. b) Cardinalité maximale : Elle définit le nombre maximal qu’une occurrence d’une Entité participe aux occurrences de l’association. a) Cardinalité minimale : Elle définit le nombre minimal qu’une occurrence d’une Entité participe aux occurrences de l’association. Cardinalité elle définie le nombre d’associations entre les instances d’entités. Elle est composée d’une cardinalité minimale et maximale. 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. 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. 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é. 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. 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. Document edité avec LATEX 11 1.4. MODÉLISATION DES DONNÉES 12 Faiez CHARFI (ISET Sfax) Systèmes de Gestion des Bases de Données - Notes de Cours INTRODUCTION GÉNÉRALE Omar Lotfi 02222220 03333330 440 850 Travail Apprentit Technicien Ouvrier Modélisation Physique des Données 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. 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. 1.4.4 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. 22 34 750 Ali 01111110 27 Table Personne Nom Age Salaire NumCIN 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. Les données d’une relations sont représentées sous la forme d’une Table, comme indiqué dans l’exemple 1.8 suivant. Systèmes de Gestion des Bases de Données - Notes de Cours 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. F IGURE 1.11 – Implémentation de la relation Personne avec MS Access F IGURE 1.10 – Implémentation de la relation Personne avec phpMyAdmin/MySQL Document edité avec LATEX 13 1.5. EXERCICES 14 Faiez CHARFI (ISET Sfax) Systèmes de Gestion des Bases de Données - Notes de Cours INTRODUCTION GÉNÉRALE Exercices 16. Quels sont les progiciels équivalents à Access et qui peuvent fonctionner sous Linux ? 15. Pourquoi MicroSoft Office Access est considéré comme un Gestionnaire de Base de Données et non pas un SGBD ? 14. Citez les noms de quelques SGBDs ? 13. Quels sont les avantages du modèle relationnel ? 12. Quelle est la différence entre une Association et la relation qui implémente cette association ? 11. Quelle est la différence entre une Entité et une association ? 10. Quel est le modèle logique adopté dans cet ouvrage ? 9. Quels sont les modèles conceptuels les plus populaires ? 8. Expliquer le principe d’indépendance physique et logique. 7. Quels sont les différents modèles de données ? 6. Quels sont les différents niveaux de données ? 5. Quels sont les avantages d’une base de données relationnelle ? 4. Quels sont les avantages d’un SGBD ? 3. Quels sont les avantages des bases de données ? 2. Quelle est la différence entre un SGF et un SGBD ? 1. Quelle est la différence entre une Base de données et un SGBD ? 1.5 Systèmes de Gestion des Bases de Données - Notes de Cours