Vous êtes sur la page 1sur 11

Nouveaux Paradigmes

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

Enfin, plus récemment, de nouveaux besoins, notamment au niveau de la quantité de données à


stocker, à traiter, de leur diversité, du besoin de flexibilité concernant leur structure, a fait émerger les
systèmes NoSQL, nouvelle manière d’aborder les systèmes de gestion de bases de données (SGBD).

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

2023.09.25 Nouveaux Paradigmes de Base de données - Support de cours - IUT de Calais 1


Partie 1: Fichiers Textuels et SGBD Relationnel Standard

Fichiers Textuels : Configuration, CSV, XML, JSON


Dans le monde de la gestion de données, les fichiers textuels occupent une place fondamentale.
Ils représentent une forme simple et universelle de stockage de données. Parmi les formats couramment
utilisés, on retrouve les fichiers de configuration, tels que les fichiers INI, CONF ou YAML, qui permettent
de stocker des paramètres de configuration pour les applications. Ces fichiers sont particulièrement
appréciés pour leur lisibilité par les humains et leur simplicité de mise en œuvre.

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.

SGBD Relationnel Standard : Rappel des Concepts de Base


Les SGBDs relationnels ont longtemps été le pilier central de la gestion des données dans le
domaine de l'informatique. Ils se basent sur le modèle relationnel, qui organise les données en tables
comportant des lignes et des colonnes. Chaque table représente une entité du monde réel (par exemple,
les utilisateurs, les produits) et les relations entre ces entités sont établies par des clés étrangères.

Les SGBDs relationnels standards, tels que MySQL, PostgreSQL et Oracle Database, ont évolué
pour offrir des fonctionnalités avancées telles que :

● l'indexation : efficace pour accélérer les requêtes,


● la gestion des transactions : pour garantir l'intégrité des données,
● la normalisation : pour réduire la redondance et améliorer la cohérence des données.

Ces SGBD restent adaptés à de nombreuses applications, notamment celles où la structure des
données est stable et bien définie.

2023.09.25 Nouveaux Paradigmes de Base de données - Support de cours - IUT de Calais 2


Partie 2: Bases de Données Non Relationnelles (NoSQL)

Les Bases de Données NoSQL : Contexte et Évolution


Avec l'évolution des besoins en gestion de données, les Bases de Données Non Relationnelles,
communément appelées NoSQL, ont émergé comme une alternative aux SGBD relationnels
traditionnels. Le terme "NoSQL" (pour Not Only SQL) englobe une diversité de systèmes de gestion de
bases de données qui se distinguent par leur approche flexible de la modélisation des données.

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 :

● les bases de données orientées documents,


● les bases de données orientées clés-valeurs,
● les bases de données orientées colonnes,
● et les bases de données orientées graphes.

Les 4 types de Bases de Données NoSQL

Bases de données orientées Documents

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.

Bases de Données orientées Clés-Valeurs

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.

Bases de Données orientées Colonnes

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.

2023.09.25 Nouveaux Paradigmes de Base de données - Support de cours - IUT de Calais 3


Bases de Données orientées Graphes

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.

Cas d'Utilisation Appropriés pour Chaque Type de Base de Données :


Illustrations Pratiques
Pour choisir judicieusement entre les différentes catégories de bases de données (NoSQL,
formats textuels, relationnels, …), il est essentiel de comprendre les situations où chacune excelle, ainsi
que les éventuels inconvénients de l'usage exclusif d'un seul type. Voici des exemples concrets qui
mettent en lumière les cas d'utilisation adaptés à chaque type :

Bases de données orientées document (NoSQL)


Ces bases de données sont particulièrement efficaces pour gérer des données semi-structurées
ou non uniformes. Par exemple, dans le domaine de la gestion de contenu web, une base de données
orientée document permet de stocker des articles dont la structure peut varier en fonction du type de
contenu (texte, images, vidéos).

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.

Bases de Données Clé-Valeur (NoSQL)


Elles excellent dans les situations où la rapidité d'accès aux données individuelles est cruciale.
Un cas d'utilisation typique serait un système de caching pour un site web à forte charge, où chaque
page web est mise en cache avec une clé unique.

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.

Bases de Données à Colonnes (NoSQL)


Ces bases de données sont idéales pour les applications qui nécessitent l'analyse de grandes
quantités de données. Par exemple, dans le secteur de l'analyse financière, une base de données à
colonnes pourrait être utilisée pour stocker les historiques de transactions, ce qui permettrait d'effectuer
des requêtes complexes pour les rapports et les analyses de tendances.

Si l'on optait pour un format textuel, l'organisation et l'interrogation de grandes quantités de


données seraient plus complexes et particulièrement coûteuses.

2023.09.25 Nouveaux Paradigmes de Base de données - Support de cours - IUT de Calais 4


Dans un SGBD relationnel, bien que possible, la structure tabulaire pourrait nécessiter une
planification soignée pour optimiser les performances et augmenterait significativement le nombre de
relations et de clés pour obtenir des performances satisfaisantes.

Bases de Données Orientées Graphe (NoSQL)


Elles se prêtent parfaitement aux systèmes où les relations entre les entités sont aussi
importantes que les entités elles-mêmes. Par exemple, dans les réseaux sociaux, une base de données
orientée graphe peut être utilisée pour stocker les utilisateurs et leurs connexions, permettant ainsi des
requêtes rapides sur les amis d'amis ou les recommandations de contacts.

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.

Formats Textuels (ex : JSON, XML)


Les formats textuels sont très pertinents lorsque la portabilité et la lisibilité par des humains sont
essentielles. Par exemple, pour des configurations de logiciels ou des échanges de données entre
systèmes hétérogènes, les fichiers JSON ou XML offrent une manière standardisée et facile à
comprendre de stocker des informations.

Et enfin, les SGBDs Relationnels


Ils sont particulièrement appropriés lorsque la structure des données est bien définie et stable,
par exemple dans des applications de gestion d'inventaire ou de suivi de commandes. Les SGBD
relationnels permettent de garantir l'intégrité des données et de réaliser des requêtes complexes sur des
ensembles de données interconnectées.

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.

2023.09.25 Nouveaux Paradigmes de Base de données - Support de cours - IUT de Calais 5


Sujets de mise en pratique
Au travers des exercices suivants, vous êtes amenés à réfléchir sur 3 exemples de sujets de
développement, d’étudier des hypothèses sur 3 types de SGBDs, et de voir quels seraient les avantages
et les inconvénients de chacun si vous deviez les implémenter. Vous élaborerez donc un dossier dans
lequel vous identifierez les principales fonctionnalités, les modalités d’alimentation en données, les
traitements, et vous utiliserez ces éléments afin d’étudier les possibilités d’utilisation de plusieurs SGBD.
Dans le premier contexte, vous avez le champ libre pour imaginer et combiner n’importe quel SGBD
abordé ci-dessus, puis vous traiterez les hypothèses précisées et ce afin d’avoir des sujets de réflexions
en commun et pouvoir les discuter ensemble.

Exercice 1: Gestion de Contenu Dynamique

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.

Exercice 2: Système de Gestion de Stock

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.

2023.09.25 Nouveaux Paradigmes de Base de données - Support de cours - IUT de Calais 6


Exercice 3: Suivi des Transactions Bancaires

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.

Vous réaliserez ces 3 exercices en rédigeant un dossier d’argumentation

pour présentation lors de la prochaine séance.

Vous pouvez réaliser cet exercice en groupe de 2 ou 3

Cet argumentaire “dossier” est à me transmettre par mail à l’adresse

guerrier.k@gmail.com pour le ________

Note Complémentaire (25/09/2023) :

Voici un exemple de dossier qui pourrait correspondre à une réflexion sur le premier exercice :

Séance 1 - Exemple de dossier d'argumentation.pdf

Vous pouvez vous en inspirer pour refaire les exercices précédent

et ainsi vous imprégner de la démarche 🙂

2023.09.25 Nouveaux Paradigmes de Base de données - Support de cours - IUT de Calais 7


Gestion de Données Structurées et Semi-Structurées
Dans cette partie, nous allons revenir quelque peu sur la gestion des données structurées et
semi-structurées. Pour cela, nous allons reprendre les fichiers textuels et les nouveaux modèles de
données tels que XML et JSON. De plus, nous aborderons l'importance de l'intégration de ces données
dans les SGBD.

Les fichiers textuels

Utilisation dans le cadre d’une configuration


Les fichiers de configuration sont des éléments essentiels dans le fonctionnement d'une
application. Ils permettent de définir des paramètres qui influencent le comportement de l'application. Ils
sont facilement manipulables et ne demandent qu’un minimum de connaissances afin d’être ajustés.

Voici un exemple de fichier de configuration en format JSON :


{
"langue": "fr",
"theme": "clair",
"taillePolice": 14
}

Les fichiers CSV et tous ces dérivés


Le format CSV est une méthode courante pour stocker des données tabulaires sous forme de
texte brut. Comme son nom l'indique, les valeurs sont séparées par des virgules, bien que d'autres
délimiteurs puissent également être utilisés (comme des points-virgules, des tabulations ou autre, selon
le contexte).

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.

Voici un exemple de fichier qui contient les informations de 2 personnes :


Nom,Prénom,Age,Ville
Dupont,Jean,25,Paris
Martin,Marie,30,Lyon
Lefevre,Paul,22,Marseille

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.

2023.09.25 Nouveaux Paradigmes de Base de données - Support de cours - IUT de Calais 8


Cependant, il est important de rappeler que le format CSV a ses limites. Il n'est pas adapté pour
représenter des données complexes ou hiérarchiques. Par exemple, il peut être difficile de représenter
des structures de données imbriquées ou des relations complexes entre les enregistrements. Pour de
tels cas, des formats comme XML ou JSON peuvent être plus appropriés.

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.

En plus de sa capacité à représenter des données semi-structurées, XML offre des


fonctionnalités avancées pour le stockage et la requête de ces données. Il permet également la
manipulation de données XML à l'aide de langages tels que XPath et XQuery.

2023.09.25 Nouveaux Paradigmes de Base de données - Support de cours - IUT de Calais 9


Le format JSON
JSON est un format de données léger basé sur la syntaxe des objets JavaScript. Il est facile à
lire et à écrire, ce qui en fait un choix populaire pour les API Web. Voici un exemple de données au
format JSON représentant des informations sur des employés :
{
"employés": [
{
"nom": "Dupont",
"prénom": "Jean",
"âge": 25
},
{
"nom": "Martin",
"prénom": "Marie",
"âge": 30
}
]
}

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.

Intégration des Données XML/JSON dans les SGBD


L'intégration de données semi-structurées dans un SGBD relationnel est une étape cruciale pour
tirer pleinement parti des avantages de ces nouveaux modèles de données. Cela implique souvent
l'utilisation de fonctions spécifiques au SGBD pour extraire, transformer et charger les données
semi-structurées dans un format relationnel. Cela permet de combiner les avantages des modèles de
données relationnels et semi-structurés.

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

2023.09.25 Nouveaux Paradigmes de Base de données - Support de cours - IUT de Calais 10


Sujets de mise en pratique
Dans cet exercice, vous allez revenir sur le sujet de l’exercice 1 vu lors de la première session et
ainsi simuler le développement d'un système de gestion de contenu dynamique pour un blog en ligne.

Contexte

● Le système doit être capable de gérer différents types de médias tels que textes, images et
vidéos.

● Les utilisateurs doivent également avoir la possibilité de commenter et de partager du contenu.

● De plus, il est nécessaire de mettre en place des fonctionnalités d'administration permettant à un


ensemble d'administrateurs de s'authentifier et d'accéder à des interfaces dédiées pour créer,
modifier, supprimer et organiser tous les contenus.

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...

Vous réaliserez cet exercice en reprenant votre dossier d’argumentation précédent,

et idéalement avec le groupe précédent,

toujours dans le but de le présenter lors de la prochaine séance.

Cet argumentaire “dossier” est à me transmettre par mail à l’adresse

guerrier.k@gmail.com pour le ________

– TODO : Suite du support à réaliser –

2023.09.25 Nouveaux Paradigmes de Base de données - Support de cours - IUT de Calais 11

Vous aimerez peut-être aussi