Académique Documents
Professionnel Documents
Culture Documents
de Bases de données
Support de cours - IUT de Calais
Kevin GUERRIER
Préambule
Lien vers le support de cours :
https://bit.ly/2024-iut-nouveauxParadigmesBD-kguerrier
Au commencement…
Depuis le début de l’informatique, la question de la persistance des données a été révisée à de
nombreuses reprises. Bien qu’au début, les capacités physiques des systèmes de stockage étaient la
principale contrainte présente, l’arrivée du modèle relationnel a permis d’amener une certaine stabilité
dans la manière de concevoir le mode de stockage de données pour une application.
Pour autant, d’autres modes de stockage de données ont continué d’être utilisés pour des
situations spécifiques. Ainsi, si on prend l’exemple des fichiers textes, on retrouve :
● des fichiers CSV pour des bases à plat, par exemple pour les échanges de données
simples
● des fichiers textes “simples” conçus autour du principe clé=valeur, par exemple pour des
principes de traduction
L’objet de ce cours est donc de connaître les bases des différents principes de ces SGBDs et
surtout de savoir être pertinent dans nos choix avec ces nouveaux paradigmes de base de données.
Généralités
Un autre format important est le CSV, ou Comma-Separated Values, qui offre une manière
tabulaire de représenter les données. Très répandu dans les échanges de données, notamment entre
systèmes hétérogènes, le CSV permet une structure de données facilement manipulable par des
applications diverses, notamment les tableurs.
Plus avancés, les formats XML (eXtensible Markup Language) et JSON (JavaScript Object
Notation) sont devenus incontournables pour représenter des données semi-structurées. XML offre une
syntaxe basée sur les balises, ce qui permet de définir des structures complexes, tandis que JSON
propose une notation simple et lisible qui est rapidement devenue populaire pour les API et le stockage
de données.
Les SGBDs relationnels standards, tels que MySQL, PostgreSQL et Oracle Database, ont évolué
pour offrir des fonctionnalités avancées telles que :
Ces SGBD restent adaptés à de nombreuses applications, notamment celles où la structure des
données est stable et bien définie.
Ces systèmes NoSQL ont été développés pour répondre à des besoins spécifiques tels que la
gestion de grands volumes de données, la flexibilité de schéma, et la distribution sur de multiples
serveurs. Ils se répartissent en quatre principales catégories :
Ces bases de données stockent des documents au format semi-structuré, souvent en JSON ou
BSON (Binary JSON). Chaque document peut avoir une structure différente, offrant une grande
flexibilité. Elles sont particulièrement adaptées pour les applications avec des schémas évolutifs et des
données diversifiées.
Pour manipuler ces bases, vous pouvez par exemple utiliser les moteurs tels que MongoDB ou
Elasticsearch.
Ces systèmes fonctionnent sur un modèle simple : chaque donnée est associée à une clé
unique. Bien adaptées aux applications nécessitant une lecture ou écriture rapide de données
individuelles, elles offrent des performances élevées et une grande scalabilité.
Pour manipuler ces bases, vous pouvez par exemple utiliser les moteurs tels que Redis ou
Memcached.
Conçues pour stocker et interroger de grandes quantités de données, ces bases de données
organisent les données en colonnes plutôt qu'en lignes. Elles sont optimisées pour les requêtes
analytiques et les agrégations.
Pour manipuler ces bases, vous pouvez par exemple utiliser les moteurs tels que Cassandra,
AWS DynamoDB, ou encore HBase.
Elles modélisent les données sous forme de graphes, avec des nœuds représentant des entités
et des arêtes représentant les relations entre ces entités. Elles excellent dans le traitement de données
interconnectées, comme les réseaux sociaux ou les réseaux de transport.
Pour manipuler ces bases, vous pouvez par exemple utiliser les moteurs tels que Neo4j, Amazon
Neptune ou encore InfluxDB.
Si l'on utilisait un format textuel, rechercher des données spécifiques dans un texte brut serait
plus laborieux.
Si l'on choisissait un SGBD relationnel, la flexibilité dans la structure des données pourrait être
difficile à gérer, nécessitant potentiellement une conception complexe du schéma.
Si l'on stockait ces données dans un format textuel, la recherche rapide serait difficile à réaliser.
Dans un SGBD relationnel, l'indexation pour les accès rapides pourrait être complexe et
nécessiterait une attention particulière à chaque mise à jour, à chaque modification et/ou ajout de
contenu.
Si l'on optait pour un format textuel, la représentation et la navigation des relations complexes
serait considérablement plus difficile.
Dans un SGBD relationnel, la modélisation des relations pourrait être plus rigide et nécessiterait
potentiellement des jointures complexes.
Chaque type de base de données (NoSQL, formats textuels et relationnels) offre des avantages
spécifiques qui les rendent adaptés à des situations particulières. Comprendre ces distinctions et les
défis potentiels associés à d'autres types de SGBD est crucial pour faire des choix éclairés lors de la
conception et de l'implémentation d'un système de gestion de données.
Contexte
Vous travaillez sur le développement d'un système de gestion de contenu dynamique pour un
blog en ligne. Ce système doit être capable de gérer différents types de médias tels que textes, images
et vidéos. Il doit également permettre aux utilisateurs de commenter et de partager du contenu. Vous
devez donc à présent émettre des hypothèses sur le(s) type(s) de SGBD qui pourrai(en)t être
approprié(s) et justifier vos choix.
Hypothèses
Dans le cadre de cet exercice, nous pouvons par exemple considérer l’utilisation au choix d’un
SGBD relationnel, d’un SGBD orienté documents, et d’un SGBD orienté graphe.
Avantages et Inconvénients
Pour chaque SGBD envisagé, identifiez au moins deux avantages et deux inconvénients liés à la
gestion de contenu dynamique pour le blog en ligne.
Contexte
Vous êtes chargé de développer un système de gestion de stock pour une entreprise de
commerce électronique. Le système doit suivre les niveaux de stock en temps réel, gérer les
commandes et les expéditions, et générer des rapports sur les tendances de vente. Vous devez donc à
présent émettre des hypothèses sur le(s) type(s) de SGBD qui pourrai(en)t être approprié(s) et justifier
vos choix.
Hypothèses
Dans le cadre de cet exercice, nous pouvons par exemple considérer l’utilisation au choix d’un
d’un SGBD relationnel, d’un SGBD à colonnes et d’un SGBD clé-valeur.
Avantages et Inconvénients
Pour chaque SGBD que vous avez envisagé, identifiez au moins deux avantages et deux
inconvénients liés à la gestion de stock pour l'entreprise de commerce électronique.
Contexte
Vous êtes sollicité pour développer un système de suivi des transactions bancaires en temps réel
pour une grande institution financière. Le système doit être capable de gérer un grand volume de
transactions par seconde, de détecter les activités frauduleuses et de générer des rapports détaillés.
Vous devez donc à présent émettre des hypothèses sur le(s) type(s) de SGBD qui pourrai(en)t être
approprié(s) et justifier vos choix.
Hypothèses
Dans le cadre de cet exercice, nous pouvons par exemple considérer l’utilisation au choix d’un
d’un SGBD relationnel, d’un SGBD orienté colonnes ou encore d’un SGBD orienté graphe.
Avantages et Inconvénients
Pour chaque SGBD que vous avez envisagé, identifiez au moins deux avantages et deux
inconvénients liés au suivi des transactions bancaires en temps réel.
Voici un exemple de dossier qui pourrait correspondre à une réflexion sur le premier exercice :
Ce format est extrêmement populaire pour l'échange de données entre différentes applications et
systèmes. Il est largement utilisé dans des domaines tels que la gestion de bases de données, les
feuilles de calcul, et les rapports.
Dans cet exemple, chaque ligne représente une entrée distincte, et les champs sont séparés par
des virgules. Le premier enregistrement contient les en-têtes qui décrivent le contenu des champs (Nom,
Prénom, Age, Ville). Chaque enregistrement suivant contient alors les données correspondantes pour
chaque champ.
L'un des avantages clés du format CSV réside vraiment dans sa simplicité et sa lisibilité. Il peut
être ouvert et modifié avec un simple éditeur de texte, et il est facile à traiter par des scripts et des
programmes.
En résumé, le format CSV est un outil précieux pour l'échange de données tabulaires simples. Il
est largement utilisé dans de nombreuses applications et offre une manière efficace et concise de
stocker et de partager des informations tabulaires.
Le format XML
XML est un langage de balisage qui permet de structurer les données de manière hiérarchique.
Chaque élément est encadré par des balises, permettant ainsi de représenter des données complexes
et semi-structurées. Il est très utilisé dans les échanges de données entre systèmes hétérogènes.
Prenons un exemple concret de données XML représentant des informations sur des
commandes :
<commandes>
<commande>
<numero>12345</numero>
<produit>Ordinateur portable</produit>
<quantite>2</quantite>
<prix_ht>890.00</prix_ht>
<tx_tva>20.00</tx_tva>
</commande>
<commande>
<numero>12346</numero>
<produit>Écran 27 pouces</produit>
<quantite>1</quantite>
<prix_ht>190.00</prix_ht>
<tx_tva>20.00</tx_tva>
</commande>
</commandes>
Chaque commande est un élément <commande> contenant des sous-éléments tels que
<numero>, <produit>, <quantite>, <prix_ht>, et <tx_tva>. Cela permet une représentation claire et
structurée des données.
Dans cet exemple, nous avons un objet principal avec une clé "employés" qui contient une liste
d'objets représentant chaque employé.
Tout comme XML, JSON offre des fonctionnalités avancées pour le stockage et la requête de
données semi-structurées. Des langages comme JSONPath et JSONiq permettent de manipuler et de
requêter efficacement des données JSON.
Vous pouvez retrouver des informations sur l’intégration et la manipulation de types JSON en
MySQL à cette adresse : https://dev.mysql.com/doc/refman/8.0/en/json.html
Contexte
● Le système doit être capable de gérer différents types de médias tels que textes, images et
vidéos.
Avantages et Inconvénients
1. Concevez une structure de données pour représenter les articles, les images et les vidéos.
2. Utilisez le format textuel qui vous semble le plus adapté pour stocker ces données.
3. Imaginez et définissez la manière dont les administrateurs vont interagir avec l'application pour
gérer le contenu (scénarios, fonctionnalités des différentes interfaces, …) .
4. Imaginez et définissez la manière dont les utilisateurs vont interagir avec l'application pour
visualiser le contenu et laisser des commentaires.
5. Réfléchissez à la manière dont les données seront traitées dans le contexte du blog, par exemple
l'affichage, la recherche et le traitement...