Cela m'est arrivé lorsque j'ai lu à propos de PostgreSQL sur sa page wiki où il se réfère lui-même à un ORDBMS. J'ai toujours entendu parler de Microsoft SQL Server, qui est un système RDBM. Quelqu'un peut-il m'aider à comprendre les principales différences entre le système de gestion de base de données relationnelle (SGBDR) et le système de gestion de base de données relationnelle à objet (ORDBMS), et dans quels scénarios dois-je utiliser l'un d'eux?
De plus, ma question clé est liée au fait que dans le monde de Microsoft SQL Server, nous utilisons souvent une couche d’Entity Framework (EF) pour effectuer le mappage relationnel-objet côté application. Ainsi, dans le monde ORDBMS, toutes les responsabilités d'un ORM sont déjà remplies par la base de données elle-même dans son intégralité ou pourrait-il y avoir des cas d'utilisation ou des scénarios dans lesquels je finirais par utiliser un ORM comme Entity Framework en plus de ORDBMS? Est-ce que les gens utilisent même les ORM en plus d'un système ORDBMS?
La plupart des lecteurs de bases de données ne le prennent pas en charge, ou ne le supportent pas exclusivement. C'est complexe, et pas utilisé largement. Même si les "données" sont OO, les bases de données existaient déjà il y a plusieurs décennies et elles ne pouvaient pas prendre ORDBMS (ou OODBMS). La courbe d'apprentissage pose également des problèmes.
ORDBMS/OODBMS sont similaires à la vue de registre virtuelle que vous voyez dans l’Éditeur du Registre. Le contenu est arboré objets. Mais en interne, ils peuvent être stockés de manière plate/hiérarchique ou de manière relationnelle. Vous ne vous en souciez vraiment pas - les API vous fournissent les vues des informations de registre.
De même, même si les principaux acteurs ne supportent pas (et ne soutiendront pas) OO nature de la base de données, ils peuvent fournir certaines extensions. Ou bien, vous devrez peut-être créer votre propre cadre pour les données OO. Une base de données de films contenant des acteurs et des réalisateurs peut être représentée à l'aide de relations (tables). Les acteurs, les réalisateurs, les lieux de tournage seraient également des classes/objets, et peuvent facilement être représentés à l'aide de tables et de l'intégrité référentielle imposée par le concepteur de base de données/base de données.
En tant que développeur, vous feriez de cette nature relationnelle des données une forme orientée objet ayant pour classe Movie
, référencement acteurs/réalisateurs (1: 1 ou 1: N). Je ne sais pas comment/quoi EE
facilite cela, mais cela ne ferait que cartographier de cette façon.
Bases de données relationnelles-objet
Le diagramme suivant montre comment accéder aux données.
Extrait de http://www.aspfree.com/c/a/database/introduction-to-rdbms-oodbms-and-ordbms/ :
SGBDR
Les principaux éléments du SGBDR sont basés sur les 13 règles de Ted Codd pour un système relationnel, le concept d’intégrité relationnelle et la normalisation. Les trois principes de base d'une base de données relationnelle sont que toutes les informations doivent être conservées sous la forme d'un tableau, où toutes les données sont décrites à l'aide de valeurs de données. Le deuxième principe fondamental est que chaque valeur trouvée dans les colonnes du tableau ne se répète pas. Le principe fondamental final est l’utilisation du langage SQL (Standard Query Language).
Les avantages du SGBDR sont que le système est simple, flexible et productif. Les tables étant simples, les données sont plus faciles à comprendre et à communiquer avec les autres. Les SGBDR sont flexibles car les utilisateurs ne doivent pas utiliser de clés prédéfinies pour saisir des informations. De plus, les SGBDR sont plus productifs car SQL est plus facile à apprendre. Cela permet aux utilisateurs de passer plus de temps à saisir qu'au lieu d'apprendre. Plus important encore, le principal avantage du SGBDR est la facilité avec laquelle les utilisateurs peuvent créer et accéder à des données et les étendre si nécessaire. Une fois la base de données d'origine créée, de nouvelles catégories de données peuvent être ajoutées sans modifier l'application existante.
Le système de gestion de base de données relationnelle est limité. Premièrement, les bases de données relationnelles ne disposent pas d’une zone de stockage suffisante pour gérer des données telles que des images, des fichiers numériques et audio/vidéo. Le système a été créé à l'origine pour gérer l'intégration de supports, de données de terrain traditionnelles et de modèles. Une autre limite de la base de données relationnelle est son incapacité à fonctionner avec des langages autres que SQL. Après son développement original, des langages tels que C++ et JavaScript ont été formés. Cependant, les bases de données relationnelles ne fonctionnent pas efficacement avec ces langues. Une troisième limite est l'exigence selon laquelle les informations doivent figurer dans des tables où les relations entre entités sont définies par des valeurs.
ORDMS
La base de données relationnelle-objet (ORDBMS) est le troisième type de base de données commun aujourd'hui. Les ORDBMS sont des systèmes qui «tentent d’étendre les systèmes de bases de données relationnelles avec les fonctionnalités nécessaires pour prendre en charge une classe plus large d’applications et, à bien des égards, d’offrir un pont entre les paradigmes relationnels et orientés objet»
ORDBMS a été créé pour gérer de nouveaux types de données telles que les fichiers audio, vidéo et images que les bases de données relationnelles n'étaient pas équipées pour gérer. En outre, son développement est le résultat d’une utilisation accrue des langages de programmation orientés objet et d’une importante non-concordance entre ceux-ci et le logiciel SGBD.
Un des avantages de ORDBMS est qu’il permet aux organisations de continuer à utiliser leurs systèmes existants sans avoir à apporter de modifications majeures. Le deuxième avantage est qu’il permet aux utilisateurs et aux programmeurs de commencer à utiliser des systèmes orientés objet en parallèle.
La mise en œuvre d'un ORDBMS pose des défis. Le premier concerne les méthodes de stockage et d'accès. Le second est le traitement des requêtes et le troisième est l'optimisation des requêtes.