Définitions
Définition : Une base de données est un ensemble d'informations stocké par un ordinateur selon un structure définie.
Notation : BD
Définition : Un système de gestion de bases de données est un ensemble d'outils logiciels qui permet la manipulation de BD.
Notation : SGBD
Exemples de SGBD : Oracle, O2, Postgres, MySQL, DB2…
Exemples d'application courante
- gestion d'entreprise (stocks, personnels, clients…)
- banques (comptes, emprunts…)
- systèmes de réservation (avions, trains, spectacles…)
- bibliothèques, vidéothèques, médiathèques…
- bureautique (agendas, répertoires, photos, courriers…)
- géographie (cartes routières, cartes maritimes…)
- informatique (programmes, documentations…)
- …
Principes fondamentaux
BD et SGBD doivent respecter au mieux les principes suivants :
- fidélité
- La BD doit donner une image fidèle de la réalité qu'elle modélise.
- unicité
- Il ne doit pas y avoir redondance d'information dans la BD, chaque donnée doit être située physiquement à un seul endroit.
- indépendance
- Le SGBD doit être indépendant du modèle de stockage pour favoriser les évolutions et améliorations. (faux ami : optimisation)
- concurrence
- Le SGBD doit pouvoir gérer plusieurs accès simultanés à une même donnée.
Exemple classique de problème :
crédit ← 2000
- l'utilisateur 1 lit
crédit
- l'utilisateur 2 lit
crédit
- l'utilisateur 1 fait
crédit ← crédit + 1500 (donc crédit ← 3500)
- l'utilisateur 2 fait
crédit ← crédit - 100 (donc crédit ← 1900)
- On a donc
crédit = 1900 au lieu de crédit = 3400 !
- performance
- Les réactions du SGBD doivent se faire dans un temps raisonnable, des améliorations techniques peuvent être mises en œuvre pour cela. (faux ami : efficacité)
- confidentialité
- Toutes les données ne doivent pas forcément être accessibles à tous les utilisateurs du SGBD.
- intégrité
- La BD et le SGBD doivent offrir des garanties de fiabilité et de cohérence.
- robustesse
- Le SGBD doit être tolérant aux problèmes matériels, logiciels ou humains.
Sortes de base de données
- Première génération : modèles navigationnels
- SGBD hiérarchiques :
- modèle père-fils
- structure d'arbres
- langage navigationnel (rechercher le père, faire une opération sur tous les fils…)
- Exemple : IMS
- SGBD réseaux :
- modèle père-fils
- structure de graphes
- langage navigationnel
- Exemples : IDMS, IIDS, SOCRATE
- Deuxième génération : modèle relationnel (cf. chapitres 3 Modèle relationnel : concepts, 4 Modèle relationnel : formes normales et 5 Modèle relationnel : algèbre)
- SGBD relationnels (notation : SGBDR) :
- modèle relationnel
- modèle mathématique de base : présence d'une algèbre
- structure de tableaux
- langage de requêtes indépendant du système de stockage
- Exemples : Oracle, Focus, Ingres, Sybase, DB2, MySQL, Postgres
- les plus utilisés actuellement
- Troisième génération : modèles plus complexes
- SGBD déductifs :
- modèle logique
- algèbre booléenne
- souvent en association avec un autre SGBD (généralement relationnel) qui gère le stockage
- présence d'un moteur d'inférence
- SGBD à objets (ou orientés objets ; notation : SGBDOO) :
- modèle à objets inspiré des langages de programmation à objets tels Java, C++, Eiffel, Smalltalk, CLOS…
- utilisation de l'encapsulation, l'héritage, le polymorphisme, l'agrégation et la composition
- Exemples : O2, GEMSTONE, IRIS, FastObjects
- prometteurs mais encore peu utilisés
Un peu d'Histoire
Quelques dates phares dans le domaine des BD :
- 1961
- Apparition du premier système que l'on nommera bien plus tard un SGBD : IDS (Integrated Data Storage) réalisé par la société General Electric. Il pose les bases du modèle réseau.
- 1965-1970
- Les données sont traitées au moyen de systèmes de fichier. IBM développe le modèle hiérarchique avec IMS (Information Management System). IMS évolue vers IMS DB/DC (DataBase/DataCom) qui utilise le modèle réseau.
- 1970
- À partir du début des années 1970, les universitaires s'intéressent aux BD et les font dès lors progresser plus sensiblement. Le modèle relationnel (cf. chapitres 3 Modèle relationnel : concepts, 4 Modèle relationnel : formes normales et 5 Modèle relationnel : algèbre) apparaît.
- 1972-1975
- Premières conférences internationales sur le thème des BD. Début des travaux qui mèneront à la méthode Merise.
- 1976
- Définition de la méthode Merise et publication du modèle Entité-Association. (cf. chapitre 2 Modèle entité-association)
- 1975-1980
- Les premiers SGBDR sont diffusés, par exemple : SYSTEM-R d'IBM et INGRES de l'Université de Californie. Ils restent cependant, à ce stade, assez expérimentaux.
- 1980
- Les SGBDR prennent leur essor et conquièrent peu à peu le marché des BD, remplaçant les SGBD hiérarchiques et réseaux. Les outils logiciels deviennent de plus en plus performants et ergonomiques.
- 1990
- Dans les années 1990, les SGBDOO émergent peu à peu. Plus puissants que leurs équivalents relationnels, ils sont aussi plus complexes et ne se sont pas encore imposés à l'heure actuelle. Ils restent l'évolution future la plus probable en matière de BD.
Les niveaux de modélisation
- niveau conceptuel
- Il est formé :
- du schéma conceptuel qui décrit, dans un formalisme indépendant de tout SGBD, un domaine d'application et son fonctionnement et
- des schémas externes qui correspondent aux vues de tout ou partie du schéma conceptuel spécifiées plus précisément pour des groupes donnés d'utilisateurs.
- niveau logique
- Son but est de faire le lien entre le niveau conceptuel et le niveau physique. Il introduit pour cela, au sein de la modélisation réalisée au niveau conceptuel, certaines informations utiles à l'implantation comme le volume ou la fréquence d'exploitation des informations à stocker.
- niveau physique
- Il tient compte des matériels et logiciels (dont le SGBD) choisis et de leurs contraintes. Il implante la structure de données décrite par le niveau logique.
Les intervenants humains
- utilisateurs naïfs
- Ils font usage d'un SGBD sans même s'en rendre compte, souvent au travers d'une interface homme-machine graphique qui leur cache tout l'aspect technique. Ils n'ont souvent aucune compétence particulière dans le domaine des BD, voire en informatique.
- utilisateurs traditionnels
- Ils ont conscience d'utiliser un SGBD et possèdent souvent quelques connaissances en cette matière. Ils sont capables de réaliser des opérations simples par l'intermédiaire d'une interface graphique, voire quelques requêtes SQL. Avec les utilisateurs naïfs, ils sont les plus nombreux des intervenants humains dans le domaine des BD.
- utilisateurs confirmés
- Ils possèdent une technicité plus avancée, maîtrisent SQL ou un autre langage de requêtes et sont capables de concevoir des BD simples.
- concepteurs de BD
- Ils sont des utilisateurs confirmés. Plus important, ils sont aussi formés à l'identification et à la structuration des informations dans le but de concevoir un modèle cohérent (souvent relationnel) pour un SGBD. Ils maîtrisent au moins une méthode de conception et sont en mesure de normaliser une base.
- développeurs d'application
- Plus techniques encore que les concepteurs de BD, ils ont pour tâche de réaliser des programmes qui utilisent les données d'une base. Ils doivent prendre en compte les besoins et désirs des utilisateurs et maîtriser, en plus des BD, l'algorithmique et la programmation.
- administrateurs de BD
- Ils ont pour responsabilité la gestion de la confidentialité, de la robustesse mais aussi de la fiabilité et des performances d'une ou plusieurs bases. Ils doivent donc connaître les fondations techniques du SGBD (et plus seulement les bases) et, éventuellement, être en mesure de modifier, d'adapter son comportement.
- développeurs de SGBD
- Il s'agit de la catégorie requérant le plus de technicité. Les développeurs de SGBD, ou d'outils connexes aux SGBD, doivent évidemment connaître parfaitement l'utilisation et le fonctionnement de ces logiciels. Ils doivent de plus être très compétents en matière d'algorithmique et de programmation mais aussi familiers des techniques de compilation, de la théorie des langages, du fonctionnement des systèmes d'exploitation et des réseaux…
Bases de données vs langages de programmation
Les bases de données sont particulièrement adaptées au stockage des données, beaucoup moins à leur traitement. Elles s'approchent cependant peu à peu des langages de programmation en adjoignant au système de stockage un langage de traitement spécifique ou une interface de programmation (API : Application Programming Interface) vers un langage de programmation existant.
Les langages de programmation sont particulièrement adaptés au traitement des données, beaucoup moins à leur stockage. Ils s'approchent cependant peu à peu des BD en adjoignant au système de traitement des possibilités de stockage : on dit alors que le langage est persistant. Une alternative consiste à offrir une API vers un SGBD existant.