Flexibilité du schéma et intégrité des données

La modélisation hybride des données – qui combine des données structurées et semi-structurées – permet de répondre aux exigences de flexibilité des applications Web, mobiles et IoT modernes, sans pour autant renoncer aux transactions ACID ni au langage SQL standard.

JSON + relationnel : comment utiliser les modèles de données hybrides

Découvrez comment modéliser des données structurées et semi-structurées, indexer et interroger des documents JSON à l'aide de SQL, et garantir l'intégrité des données de ces documents.

Regarder maintenant

Les 5 principales raisons d'utiliser Relational + JSON

   Vous pouvez utiliser des transactions pour insérer ou modifier plusieurs documents JSON.

   Vous pouvez appliquer des contraintes d'intégrité à des champs spécifiques au sein des documents JSON.

   Vous pouvez interroger des documents JSON à l'aide de fonctions SQL standard et JOIN entre des données JOIN et des tables existantes.

   Vous pouvez indexer des champs spécifiques au sein des documents JSON.

   Vous pouvez renvoyer des documents JSON sous forme de données relationnelles, et inversement.

Interrogation de modèles de données hybrides

Et si vous souhaitiez stocker les profils des utilisateurs dans une seule ligne ? En effet, un utilisateur dispose d'un identifiant (user_id), d'un nom et d'un pays (entre autres). Cependant, les utilisateurs peuvent avoir des adresses e-mail personnelles et professionnelles, ainsi que des numéros de téléphone portable et de bureau. Alors que certains utilisateurs possèdent des comptes Twitter et LinkedIn, d'autres peuvent avoir des comptes Facebook et Instagram. Et qu'en est-il de leurs centres d'intérêt ?

Grâce aux fonctions JSON, vous pouvez stocker les profils des utilisateurs dans une seule ligne.

user_idnompaysattr
sjohnsonShaneÉtats-Unis{
"email": {
"work": "shane.johnson@mariadb.com"},
"phone": {
"mobile": "(555) 555-5555"},
"social": {
"twitter": "@shane_dev",
"linkedin": "/in/shanekjohnson"},
"interests": [
"Science Fiction",
"Distributed Systems"]
SELECT ,
   JSON_VALUE(attr, "$.email.personal") AS e-mail,
   JSON_VALUE(attr, "$.social.twitter") AS twitter,
   JSON_VALUE(attr, "$.interests[0]") AS centre_d'intérêt_préféré
FROM  
WHERE  = "sjohnson";


nome-mailTwitterfavorite_interest
Shaneaucun@shane_devscience-fiction
bleu