Quels sont les avantages et les inconvénients des bases de données objet ?

Il y a beaucoup d'informations là-bas sur objet-relationnels mappeurs et comment mieux éviter de désadaptation d'impédance, qui semblent être les points sans objet si l'on devait utiliser une base de données de l'objet. Ma question est pourquoi ce n'est pas utilisé plus fréquemment ? Est-ce à cause des raisons de performances ou parce que les bases de données objet causent vos données de devenir propriétaire de votre application ou est-ce à cause de quelque chose d'autre ?

répondre #1

  • Familiarité. Les administrateurs de bases de données connaissent les concepts relationnels ; objet ones, pas tellement.
  • Performance. Bases de données relationnelles ont été prouvées à l'échelle beaucoup mieux.
  • Maturité. SQL est un langage puissant, développé à la longue.
  • Charge du vendeur. Plus première partie vous pouvez choisir entre plusieurs (serveurs SQL Server) et tiers (interfaces administratives, les mappages et autres types d'intégration) des outils qu'est le cas avec OODBMSs.

Naturellement, le modèle orienté objet est plus familière pour le développeuret, comme vous le remarquer, épargnera de la moraine d'Oak Ridges. Mais jusqu'ici, le modèle relationnel s'est avérée pour être l'option la plus réaliste.

Voir aussi la question récemment, orienté objet et bases de données relationnelles.

répondre #2

J'ai utilisé db4o , qui est un OODB et il résout la plupart des inconvénients énumérés :

  • Familiarité - les programmeurs savent leur langue mieux alors SQL (voir requêtes natives)
  • Performance - celui-ci est très subjectif, mais vous pouvez prendre un coup d'oeil à PolePosition
  • Soutien du vendeur et la maturité - peut changer au fil du temps
  • Ne peut pas être utilisé par des programmes qui n'utilisent pas le même cadre - aussi il y a des normes OODB et vous pouvez utiliser différents cadres
  • Le versionnage est probablement un peu d'une chienne - Versioning est effectivement plus facile!

Les pros qui que m'intéressent sont :

  • Requêtes natives - Db4o vous laisse écrire des requêtes dans votre langage typé statique, donc vous n'avez pas à vous soucier de la frappe d'une chaîne et de trouver les données manquantes lors de l'exécution,
  • Facilité d'utilisation - définition buissiness logique dans la couche du domaine, la couche persistance (cartographie) et enfin la base de données SQL est certainement violation de sec. Avec OODB, vous définissez votre domaine où il appartient.

Je suis d'accord - OODB ont un long chemin à parcourir, mais ils sont en cours. Et il y a problèmes de domaine là-bas qui est mieux résolu par OODB,

répondre #3

Une opposition aux bases de données objet, c'est qu'elle crée un couplage étroit entre les données et de votre code. Pour certaines applications, cela peut être OK, mais pas pour d'autres. Une chose agréable qui donne une base de données relationnelle est la possibilité de mettre plusieurs points de vue sur vos données.

Ted Neward explique ceci et beaucoup plus sur OODBMSs beaucoup mieux que cela.

répondre #4

Elle n'a rien à voir avec la performance. Toutes les applications effectuer, c'est-à-dire essentiellement seraient mieux avec un OODB. Mais que serait également mis beaucoup de DBA de travail et d'apprendre une nouvelle technologie. Encore plus de gens seraient sans travail de correction des erreurs dans les données. C'est peu probable de faire OODBs très populaire auprès des entreprises établies. Gavin semble être totalement désemparés, un meilleur lien serait Kirk

répondre #5

Inconvénients :

  • Ne peut pas être utilisé par des programmes qui n'utilisent pas le même cadre aussi pour accéder à la Banque de données, rendant plus difficile à utiliser dans l'entreprise.

  • Moins de ressources disponibles en ligne pour la base de données SQL non

  • Aucune compatibilité entre les types de base de données (ne peut pas échanger à un fournisseur de db différents sans changer le code)

  • Le versionnage est probablement un peu d'une chienne. Je dirais d'ajouter qu'une nouvelle propriété à un objet n'est pas tout à fait aussi facile qu'ajouter une nouvelle colonne à une table.

répondre #6

Sören

Tous les motifs sont valables, mais je vois que le problème de OODBMS est le modèle de données logique. Le modèle d'objet (ou plutôt le modèle du réseau des années 70) n'est pas aussi simple que le relationnel et est donc inférieur.

répondre #7

jodonnel, je ne ' voir comment utiliser des bases de données objet couples code de l'application aux données. Vous pouvez encore Résumé votre demande de la OODB en utilisant un modèle de référentiel et remplacer par un ORM soutenu par base de données SQL si vous concevez les choses correctement.

Pour une application OO, une base de données OO offrira un choix plus naturel pour les objets persistants.

Ce qui est probablement vrai, c'est que vous attachez vos données à votre modèle de domaine, mais c'est l'essentiel !

Ne serait-il pas bon d'avoir un moyen simple de regarder les données, règles d'entreprise et des processus à l'aide d'un point de vue centré sur domaine ?

Un gros pro est donc qu'un OODB correspond à la plus moderne, entreprise niveau objet orientée vers les applications logicielles sont conçues, il n'y a aucun effort supplémentaire à la conception d'une couche de données à l'aide d'une conception différente du (relationnelle). Moins cher à construire et à entretenir et dans de nombreux cas général performances.

Inconvénients, en générales juste le manque de maturité et l'adoption que je estiment...


Tags lesen

     
 
logo_banner