Un avantage significatif de l’utilisation d’un SGBDR est « l’intégrité référentielle. » L’intégrité référentielle fait référence à l’exactitude et à la cohérence des données. Cette intégrité des données est obtenue en utilisant ces clés primaires et étrangères.
L’intégrité référentielle préserve l’intégrité des données grâce aux « contraintes ». Les contraintes sont les règles qui font respecter l’exactitude des données en empêchant la suppression d’un enregistrement lié sans avoir préalablement supprimé l’enregistrement primaire dans la table principale. Si une relation clé primaire-clé étrangère a été correctement ajoutée, toute tentative de suppression d’un enregistrement primaire sans suppression préalable des enregistrements liés des autres tables bloquera la transaction jusqu’à ce que les enregistrements liés soient supprimés. Cela permet d’éviter ce que l’on appelle les » enregistrements orphelins « , qui sont des enregistrements référencés dans une table qui n’ont plus d’enregistrement primaire dans la table principale.
Les trois règles que l’intégrité référentielle applique sont :
1. Une clé étrangère doit avoir une clé primaire correspondante. (Règle « Pas d’orphelins ».)
2. Lorsqu’un enregistrement dans une table primaire est supprimé, tous les enregistrements connexes faisant référence à la clé primaire doivent également être supprimés, ce qui est généralement accompli en utilisant une suppression en cascade.
3. Si la clé primaire d’un enregistrement change, tous les enregistrements correspondants dans d’autres tables utilisant la clé primaire comme clé étrangère doivent également être modifiés. Ceci peut être accompli en utilisant une mise à jour en cascade.
L’interrogation des données dans un système de gestion de base de données relationnelle se fait en utilisant le langage de requête structuré (SQL), qui est un langage robuste conçu pour gérer les données hébergées dans une base de données relationnelle.
SQL a les capacités de créer, récupérer, mettre à jour et supprimer des enregistrements et s’appuie fortement sur cette relation clé primaire/clé étrangère pour identifier les données liées à travers plusieurs tables. Les capacités de SQL font du système de base de données relationnelle le premier choix pour toute application nécessitant une forte fonctionnalité transactionnelle, une exploration de données et des rapports complexes.
Cette instruction SQL démontre la récupération d’un ensemble de résultats de la façon dont tous les enregistrements de ventes pour un seul employé dont EmployeeId = 1 seraient récupérés.
SELECT * FROM Employees
JOIN Sales ON Employees.EmployeeId = SALES.EmployeeId
WHERE EmployeeId = 1
Cette instruction SQL suivante est un exemple de requête mettant en œuvre des jointures sur plusieurs tables. Dans ce cas, la requête SQL récupère toutes les informations sur les employés, les ventes et les clients de la table Clients.
SELECT * FROM Employees
JOIN Sales ON Employees.EmployeeId = SALES.EmployeeId
JOIN Customers ON Customers.CustomerId = SALES.CustomerId
WHERE EmployeeId = 1
Les bases de données relationnelles fournissent également une fonctionnalité appelée « indexation ». Un index de base de données est une structure de données qui améliore la vitesse de récupération des données. Les index sont généralement ajoutés aux champs de données qui sont couramment utilisés pour interroger et joindre des tables. Dans les instructions SQL ci-dessus, EmployeeId et CompanyId seraient des candidats pour ce type d’optimisation.
- Bases de données non relationnelles
- Magasins de données de documents
- Magasins de données à colonnes (ou orientés colonnes)
- Stockages clés-valeurs
- Magasins de documents
- Bases de données graphiques
- En résumé
- Ce que vous devez savoir sur les bases de données relationnelles :
- Bases de données non relationnelles/NoSQL:
Bases de données non relationnelles
La base de données non relationnelle, ou base de données NoSQL, stocke des données. Cependant, contrairement à la base de données relationnelle, il n’y a pas de tables, de lignes, de clés primaires ou de clés étrangères. Au lieu de cela, la base de données non relationnelle utilise un modèle de stockage optimisé pour les exigences spécifiques du type de données stockées.
Certaines des bases de données NoSQL les plus populaires sont MongoDB, Apache Cassandra, Redis, Couchbase et Apache HBase.
Il existe quatre types non relationnels populaires : le magasin de données de documents, la base de données orientée colonne, le magasin clé-valeur et la base de données de graphes. Souvent, des combinaisons de ces types sont utilisées pour une seule application.
Magasins de données de documents
Un magasin de données de documents gère un ensemble de champs de chaînes nommés et de valeurs de données d’objets dans une entité appelée « document » généralement stockée sous la forme de documents JSON, qui peuvent être codés de diverses manières, notamment XML, YAML, JSON, BSON ou en tant que texte brut. Les champs des documents sont exposés, ce qui permet à une application d’interroger et de filtrer les données à l’aide des valeurs des champs.
Les magasins de documents n’exigent pas que tous les documents maintiennent des structures de données identiques, ce qui offre une grande flexibilité. Il est alors facile de voir comment cette flexibilité peut être exploitée à mesure que les exigences d’une organisation changent.
Magasins de données à colonnes (ou orientés colonnes)
Un magasin de données à colonnes organise les données en colonnes, ce qui est conceptuellement similaire à la base de données relationnelle. Le véritable avantage d’une base de données à colonnes réside dans son approche dénormalisée de la structuration des données éparses, qui provient de son approche orientée colonnes pour le stockage des données.
Stockages clés-valeurs
C’est la moins compliquée des bases de données NoSQL et, comme son nom l’indique, le stockage clés-valeurs est simplement une collection de paires clés-valeurs contenues dans un objet.
Magasins de documents
Les magasins de documents sont un peu plus complexes que les magasins clés-valeurs. Ils ne supposent pas une structure de document particulière spécifiée avec un schéma. Le magasin de documents est conçu pour stocker les documents de tous les jours tels quels, et ils permettent des requêtes compliquées.
MongoDB et CouchDB sont tous deux des exemples de magasins de documents.
Bases de données graphiques
Enfin, c’est le type de base de données non relationnelle le plus complexe. Il est conçu pour stocker efficacement les relations entre les entités. Lorsque les données sont grandement interconnectées, comme les systèmes d’achat et de fabrication ou le référencement de catalogues, les bases de données graphiques sont une bonne solution.
Les possibilités des bases de données NoSQL graphiques sont infinies, et comme les données que nous collectons sont de plus en plus interconnectées, les bases de données graphiques vont continuer à gagner en popularité, y compris la base de données relationnelle toujours dominante.
Au lieu du langage de requête de structure (SQL) utilisé par les bases de données relationnelles, la base de données NoSQL utilise le mappage objet-relationnel (ORM). Le concept d’ORM est la possibilité d’écrire des requêtes en utilisant votre langage de programmation préféré. Certains des ORM les plus populaires sont Java, Javascript, .NET et PHP.
En résumé
Ce que vous devez savoir sur les bases de données relationnelles :
-
Elles travaillent avec des données structurées.
-
Les relations dans le système ont des contraintes, ce qui favorise un niveau élevé d’intégrité des données.
-
Ils ont des capacités d’indexation illimitées, ce qui entraîne des temps de réponse plus rapides aux requêtes.
-
Ils sont excellents pour garder les transactions de données sécurisées.
-
Elles offrent la possibilité d’écrire des requêtes SQL complexes pour l’analyse des données et la création de rapports.
-
Leurs modèles peuvent garantir et appliquer des règles commerciales au niveau de la couche de données ajoutant un niveau d’intégrité des données que l’on ne trouve pas dans une base de données non relationnelle.
-
Elles sont orientées tables et lignes.
-
Elles utilisent le langage SQL (langage de requête structuré) pour façonner et manipuler les données, ce qui est très puissant.
-
Exemples de bases de données SQL : MySql, Oracle, Sqlite, Postgres et MS-SQL. Exemples de bases de données NoSQL : MongoDB, BigTable, Redis, RavenDb, Cassandra, Hbase, Neo4j et CouchDb.
-
Les bases de données SQL sont les mieux adaptées aux applications lourdes de type transactionnel.
Bases de données non relationnelles/NoSQL:
-
Elles ont la capacité de stocker de grandes quantités de données avec peu de structure.
-
Elles fournissent une évolutivité et une flexibilité pour répondre aux besoins changeants des entreprises.
-
Ils fournissent des options sans schéma ou avec schéma sur lecture.
-
Ils ont la capacité de capturer tous les types de données « Big Data », y compris les données non structurées.
-
Ils sont orientés vers les documents.
-
Les bases de données NoSQL ou non relationnelles exemples:MongoDB, Apache Cassandra, Redis, Couchbase et Apache HBase.
-
Elles sont les meilleures pour le développement rapide d’applications. NoSQL est la meilleure sélection pour un stockage de données flexible avec peu ou pas de limitations de structure.
-
Ils fournissent un modèle de données flexible avec la possibilité de stocker et de combiner facilement des données de n’importe quelle structure sans avoir besoin de modifier un schéma.
Alors, lequel choisir pour votre projet ? Pour la réponse à cette question, nous pouvons revenir au début de cet article. Ces deux types de bases de données très différents sont tout aussi utiles l’un que l’autre, mais pour des raisons et des cas d’utilisation contrastés. L’un n’est pas nécessairement meilleur que l’autre et les bases de données relationnelles et non relationnelles ont toutes deux leur place.
En bref, il n’y a pas une seule bonne réponse. La meilleure façon de déterminer quel type de base de données est le meilleur pour votre projet est d’analyser les besoins de l’organisation et la fonctionnalité de l’application que vous devez atteindre.