Dr Mohamed Anis BACH TOBJI Cours Bases de données Dr Mohamed Anis BACH TOBJI Maître assistant à l’ESEN – Université de Manouba 2è LFIG – 2è LATSI – 2è LACE
Plan Introduction Historique des BD Caractéristiques des BD Modélisation des BD (le modèle E/A) Le modèle relationnel La normalisation des BD La gestion des transactions Le langage SQL Les vues, les indexes et les séquences Bibliographie
Introduction
Introduction Motivations (1) Données volatiles vs persistantes Variables dans un programme mémoire physique (RAM) Fin de l’exécution disparition des données Besoin de stockage/archivage Mémoire de masse (disques) Solution : les fichiers Programme Variables Données Programme
Introduction Motivations (2) Données volatiles vs persistantes Variables dans un programme mémoire physique (RAM) Fin de l’exécution disparition des données Besoin de stockage/archivage Mémoire de masse (disques) Solution : les fichiers
Introduction Motivations (3) Limites des fichiers Dépendance programmes – données (changement de structure de données changement du code) Pas de couche logicielle qui offre Sécurité Accès concurrentiel Langage de gestion de données Ainsi que d’autres fonctions (vus plus tard)
Introduction Définitions (1) Base de Données (BD) « Ensemble structuré d’éléments d’informations, souvent agencés sous forme de tables, dans lesquels les données sont organisées selon certains critères en vue de permettre leur exploitation pour répondre aux besoins d’information d’une organisation » [1].
Introduction Définitions (2) Système de Gestion de Base de Données (SGBD) « Logiciel le plus souvent produit par un éditeur commercial, qui gère et contrôle l’accès à une base de données, assurant ainsi une interface normalisée entre les applications et les bases de données » [1]. Les plus connus : DB2 (IBM), Oracle (Oracle), SQL Server (Microsoft)
Introduction Définitions (3) Application de base de données « Utilisation de moyens informatiques pour répondre à un besoin déterminé en faisant appel de manière importante à une ou à plusieurs bases de données à travers un SGBD » [1].
Historique des BD
Historique des BD (1) Apparition aux années 60 Fin des années 60 BD = fichiers reliés par des pointeurs Développement des systèmes IDS et IMS chez IBM pour le programme APOLLO Fin des années 60 Apparition des SGBD réseaux et hiérarchiques Séparation de la description des données de la manipulation par des programmes d’application TOTAL, IDMSn IDS 2, IMS2…
Historique des BD (2) Années 70 Années 80 Emergence du modèle relationnel dans les laboratoires de recherche Formulation du langage SQL, basé sur le langage algébrique de CODD Années 80 Commercialisation des SGBD relationnels (Oracle, DB2, Informix, Sybase, Ingres, SQL Server etc.) Extension objet du modèle relationnel
Historique des BD (3) Années 80 (suite…) Une structuration conjointe des programmes et des données, tout en conservant les acquis du relationnel (vision tabulaire des objets, et interrogation via un SQL étendu aux objets). Répartition des architectures, pour une meilleure collaboration entre les utilisateurs concurrents Oracle 8, DB2 Universal Database, Informix Universal Server sont les premeirs BD objet-relationnel
Historique des BD (4) Années 90 et 2000 Années 2010 Supporter les informations non-structurées, provenant du Web, des multimédias etc. SGBDS orientés aide à la prise de décision, et extraction des connaissances (Data Mining) Adaptation de SQL à l’interrogation de ce genre de données Années 2010 Les données deviennent très volumineuses, variées et véloces. On parle de BIG DATA (on parle de pétaoctets de données 250 octets). Les modèles et les technologies classiques sont inaptes à traiter ces données Apache Hadoop: framework Java permettant de manipuler les Big Data
Evolution des modèles (1) Modèle hiérarchique Une base de données hiérarchique est une forme de SGBD qui lie des enregistrements dans une structure arborescente de façon à ce que chaque enregistrement n’ait qu’un seul possesseur (par exemple, un produit n’est livré que par un seul Fournisseur). Ne tient pas compte de certains cas du monde réel. Exemple; un patient peut être traité par plusieurs médecins Le modèle hiérarchique ne modélise que les relations « 1 à N »
Evolution des modèles (2) Modèle réseau Modélise les relations de type « N à N » (un médecin peut avoir plusieurs patients et un patient peut être traité par plusieurs médecins. Le problème des modèles hiérarchiques et réseaux, c’est que les applications dépendent des structures logiques des données. Sur le marché IMS (hiérarchique), Codasyl (réseau)…
Evolution des modèles (3) Modèle relationnel Fondé sur la théorie mathématique des relations. La BD est représentée sous forme de tables (lignes et colonnes). Plus de pointeurs qui figeaient la structure de la base. Développement d’un langage non procédural de gestion de données (SQL). L’utilisateur ou le programmeur n’ont plus à naviguer dans la BD, ils formulent leurs requêtes et c’est le SGBD qui se charge de les exécuter et leur renvoyer le résultat. Sur le marché Oracle (Oracle), Informix, DB2 (IBM), Sybase (Sybase), SQL SERVER (Microsoft), Postgress, Mysql…
Evolution des modèles (4) Modèle Orienté Objet Enregistrement des données sous forme « d’objets » (au sens défini par la POO). Ainsi, les données sont enregistrées avec les fonctions/procédures qui les manipulent. Les éditeurs qui se sont intéressés à ce modèle se sont trouvés dans une impasse (certains ont disparu) au vu de la réussite et de la demande incessante des SGBDR (vs. SGBDOO). Sur le marché O2, Objectivity, Objectstore… (n’ont pas réussi)
Les niveaux de description (1) Niveaux de description des données (ANSI/SPARC) Niveau externe correspond à la perception de la base de données par les utilisateurs finaux. Niveau conceptuel description de toutes les données, de leurs propriétés, des liens entre elles sans se soucier de la manière avec laquelle les utilisateurs vont s’en servir (sans se soucier de l’implantation de la base). Niveau interne s’appuie sur un système de gestion de fichiers pour définir la stratégie de stockage, de placement et d’accès des données.
Les niveaux de description (2)
Types d’utilisateurs Types d’utilisateurs L’administrateur chargé de donner/enlever les droits d’accès aux utilisateurs, de la configurer, de la sauvegarder, de la reprise en cas de panne… Le programmeur créé les différents objets de la BD qui seront manipulés via son application. Il définit avec l’administrateur les droits d’accès pour les différents utilisateurs finaux. L’utilisateur final a accès aux données qui lui sont autorisées. En général, il utilise les données sans les définir.
Caractéristiques des BD
Caractéristiques des SGBD (1) 1- Indépendance des programmes aux données Possibilité de modifier les schémas conceptuels sans modifier les programmes d’application Ainsi, la maintenance des programmes est moins couteuse lors des modifications logiques (modifications de la structure de la BD), et physique (mode de stockage des données) 2- Manipulation des données par des langages non procéduraux Manipulation simple des données, sans avoir à écrire des programmes (algorithmes) d’accès. 3- Gestion de la cohérence et contrôle d’intégrité
Caractéristiques des SGBD (2) 4- Administration des données Outils de description et de mise à jour des structures des données Optimisation du fonctionnement de la BD, pour rendre l’accès aux données le plus efficace que possible 5- Description des données sous forme de métadonnées 6- Partage des données et accès concurrentiel 7- Sécurité des données Gestion des accès à la BD Récupération en cas de panne logicielle ou matérielle