Le développement des traitements informatiques nécessite la manipulation de données de plus en plus nombreuses.
Pour que ce traitement soit efficace, il est nécessaire que les données soient structurées.
Jusqu'à présent, nous avons essentiellement utilisé des structures de données comme des tableaux, des dictionnaires, qui supposent l'existence d'un ordre permettant le classement de l'information.
Un tel classement présente des limites car d'autres critères peuvent être pertinents et ranger ces données dans un tableau exige d'en privilégier certains au détriments d'autres.
Les bases de données relationnelles (BDR) permettent d’organiser, de stocker, de mettre à jour et d’interroger des données structurées volumineuses utilisées simultanément par différents programmes ou différents utilisateurs.
Les bases de données relationnelles (BDR) qui offrent un moyen d'organiser efficacement les données et de les manipuler grâce à des requêtes.
Schématiquement, une base de données est un ensemble de tables contenant des données reliées entre elles par des relations ; on y extrait de l'information par le biais de requêtes exprimées dans un langage spécifique. Les traitements peuvent conjuguer le recours au langage SQL et à un langage de programmation.
Des systèmes de gestion de bases de données (SGBD) de très grande taille (de l’ordre du pétaoctet) sont au centre de nombreux dispositifs de collecte, de stockage et de production d’informations.
Parmi les SGBDR, la situation de SQLite est un peu particulière. En effet, celui-ci repose sur un accès fichier (et non réseau). Il est destiné à gérer de petites bases de données non administrées, à usage individuel. Et puisque son code source a été placé dans le domaine public, il peut s'intégrer facilement à d'autres logiciels. Ceci en fait l'un des SGBDR les plus utilisés dans le monde, puisque à ce jour on peut dénombrer plus d'un milliard de copies et plus de 1000 milliards de bases de données SQLite.
Le fonctionnement des SGBDR s'appuie sur le modèle relationnel créé par E.F. Codd en 1970, qui est une formalisation mathématique des données en table, similaires à celles rencontrées avec le format CSV (Comma-separated values).
Voici un exemple de table présentant des ouvrages en bibliothèque.
Cette table est la représentation de la relation Ouvrage composée :
d'une en-tête comptant 6 attributs (noms de colonnes) : numero, titre, date, auteur, naissance et mort, qui possèdent chacun un domaine de valeurs spécifique :
Ces informations sont condensées dans ce qu'on appelle le schéma relationnel de la relation Ouvrage afin d'en donner la structure :
pseudo
Ouvrage(numero:entier, titre:texte, parution:année, auteur:caractères[128], naissance:année, mort:année)
pseudo
(142, "Le Dernier Jour d'un condamné", 1829, "Victor Hugo", 1802, 1885)
Ainsi, la relation est un ensemble de tuples, et la base de données, un ensemble de relations.
Remarque :
Comme ce modèle se fonde sur la théorie des ensembles, il ne peut y avoir deux tuples identiques dans une relation, et donc deux lignes identiques dans une table. Pas plus que d'ordre entre ces lignes.
Pour résumer, le modèle relationnel apporte une vision théorique de la table :
À y regarder de plus près, la table Ouvrage n'est pas très satisfaisante :
Cette organisation en une seule table pose donc problèmes. Compte tenu de l'analyse précédente il convient de concevoir autrement cette base de données en dissociant ouvrage et auteur, tout en maintenant le lien entre les deux.
Voici les tables obtenues en séparant les données :
id_auteur
appelé clé primaire.id_auteur
est qualifiée de clé étrangère car elle se réfère à la clé primaire id_auteur
de la table des auteurs.La relation Auteur est composée de 3 tuples comportant 4 attributs :
id_auteur
qui tient le rôle de clé primaire en permettant d'identifier un auteur ;nom
qui est le nom de l'auteur ;naissance
qui correspond à l'année de naissance de l'auteur ;mort
qui correspond à l'année de la mort de l'auteur.Son schéma relationnel est :
pseudo
Auteur(id_auteur:entier, nom:caractères[128], naissance:année, mort:année)
La relation Ouvrage est toujours composée de 10 tuples, mais on ne trouve plus que 4 attributs :
numero
qui est la clé primaire identifiant de manière unique chaque ouvragetitre
qui est le titre de l'ouvrageparution
qui est l'année de publication de l'ouvrageid_auteur
qui est la clé étrangère faisant référence à l'auteur de l'ouvrageSon schéma relationnel est :
pseudo
Ouvrage(numero:entier, titre:texte, parution:année, #id_auteur:entier)
Ces deux schémas relationnels forment le schéma relationnel de la base de données.
Le diagramme UML suivant illustre ce schéma relationnel et l'association entre les deux relations :
Ce diagramme rassemble les différents attributs ainsi que les clés primaire (souligné ou préfixé par PK pour primary key) et étrangère (préfixé par # ou par FK pour foreign key) de chaque relation.
Il précise en outre l'association Écrire qui lie Auteur et Ouvrage.
la présence des valeurs 1 et 0.., qu'on appelle des multiplicités dans un diagramme UML, informe qu'un auteur a écrit entre 0 et un nombre quelconque d'ouvrages ( représentant un entier naturel quelconque), tandis qu'un ouvrage a été écrit par 1 auteur.
Afin de maintenir des données valides et cohérentes tout au long de la vie de la base de données, il faut s'assurer en permanence du respect des contraintes d'intégrité suivantes qui sont fixées à la création de la base données :
Contenus | Capacités attendues | Commentaires |
---|---|---|
Modèle relationnel : relation, attribut, domaine, clef primaire, clef étrangère, schéma relationnel. | Identifier les concepts définissant le modèle relationnel. | Ces concepts permettent d’exprimer les contraintes d’intégrité (domaine, relation et référence). |
Base de données relationnelle. | Savoir distinguer la structure d’une base de données de son contenu. Repérer des anomalies dans le schéma d’une base de données. |
La structure est un ensemble de schémas relationnels qui respecte les contraintes du modèle relationnel. Les anomalies peuvent être des redondances de données ou des anomalies d’insertion, de suppression, de mise à jour. On privilégie la manipulation de données nombreuses et réalistes. |
Ce document, basé sur les travaux de Jean DIRAISON et d'autres enseignants de la liste NSI, est mis à disposition selon les termes de la Licence Creative Commons Attribution - Partage dans les Mêmes Conditions 4.0 International.
Pour toute question, suggestion ou commentaire : eric.madec@ecmorlaix.fr