GNU/Linux >> Tutoriels Linux >  >> Linux

Qu'est-ce qu'une base de données orientée objet

Présentation

Bases de données orientées objet sont un type de système de gestion de base de données. Différents systèmes de gestion de base de données offrent des fonctionnalités supplémentaires. Les bases de données orientées objet ajoutent la fonctionnalité de base de données aux langages de programmation objet, créant ainsi des bases de code plus gérables.

Cet article donne un aperçu détaillé des bases de données orientées objet avec des exemples.

Définition de la base de données d'objets

Une base de données d'objets est gérée par un o objet-o rienté d atab comme m s de gestion système (OODBMS). La base de données combine des concepts de programmation orientée objet avec des principes de base de données relationnelle.

  • Objets sont le bloc de construction de base et une instance d'une classe, où le type est soit intégré, soit défini par l'utilisateur.
  • Cours fournir un schéma ou un plan pour les objets, définissant le comportement.
  • Méthodes déterminer le comportement d'une classe.
  • Pointeurs aider à accéder aux éléments d'une base de données d'objets et à établir des relations entre les objets.

La principale caractéristique des objets dans OODBMS est la possibilité de types construits par l'utilisateur . Un objet créé dans un projet ou une application est enregistré dans une base de données tel quel.

Les bases de données orientées objet traitent directement les données comme des objets complets. Toutes les informations sont regroupées dans un package d'objets disponible instantanément au lieu de plusieurs tables.

En revanche, les blocs de construction de base des bases de données relationnelles, telles que PostgreSQL ou MySQL, sont des tables avec des actions basées sur des connexions logiques entre les données de la table.

Ces caractéristiques rendent les bases de données d'objets adaptées aux projets avec des données complexes qui nécessitent une approche de programmation orientée objet. Un système de gestion orienté objet fournit une fonctionnalité prise en charge adaptée à la programmation orientée objet où les objets complexes sont centraux. Cette approche unifie les attributs et les comportements des données en une seule entité.

Concepts de programmation orientée objet

Les bases de données orientées objet sont étroitement liées aux concepts de programmation orientée objet. Les quatre idées principales de la programmation orientée objet sont :

  • Polymorphisme
  • Héritage
  • Encapsulation
  • Abstraction

Ces quatre attributs décrivent les caractéristiques essentielles des systèmes de gestion orientés objet.

Polymorphisme

Polymorphisme est la capacité d'un objet à prendre plusieurs formes. Cette capacité permet au même code de programme de fonctionner avec différents types de données. Une voiture et un vélo sont capables de casser , mais le mécanisme est différent. Dans cet exemple, l'action break est un polymorphisme. L'action définie est polymorphe — le résultat change en fonction des performances du véhicule.

Héritage

Héritage crée une relation hiérarchique entre les classes liées tout en rendant des parties de code réutilisables. La définition de nouveaux types hérite de tous les champs et méthodes de classe existants et les étend davantage. La classe existante est le parent classe, tandis que l'enfant la classe étend le parent.

Par exemple, une classe parent appelée Vehicle aura des classes enfants Voiture et Vélo . Les deux classes enfants héritent informations de la classe parent et étendre la classe mère avec de nouvelles informations en fonction du type de véhicule.

Encapsulation

Encapsulation est la possibilité de regrouper des données et des mécanismes en un seul objet pour assurer la protection des accès. Grâce à ce processus, des informations et des détails sur le fonctionnement d'un objet sont masqués , ce qui garantit la sécurité des données et des fonctions. Les classes interagissent les unes avec les autres via des méthodes sans avoir besoin de savoir comment fonctionnent des méthodes particulières.

Par exemple, une voiture a des caractéristiques descriptives et des actions. Vous pouvez changer la couleur d'une voiture, mais le modèle ou la marque sont des exemples de propriétés qui ne peuvent pas changer. Une classe encapsule toutes les informations de la voiture dans une seule entité, où certains éléments sont modifiables tandis que d'autres ne le sont pas.

Abstraction

Abstraction est la procédure consistant à représenter uniquement les caractéristiques de données essentielles pour la fonctionnalité nécessaire . Le processus sélectionne les informations vitales tandis que les informations inutiles restent cachées. L'abstraction aide à réduire la complexité des données modélisées et permet la réutilisation.

Par exemple, il existe différentes façons pour un ordinateur de se connecter au réseau. Un navigateur Web a besoin d'une connexion Internet. Cependant, le type de connexion n'a pas d'importance. Une connexion établie à Internet représente une abstraction , alors que les différents types de connexions représentent différentes implémentations de l'abstraction.

Exemples de bases de données orientées objet

Il existe différents types d'implémentations de bases de données d'objets. La plupart contiennent les fonctionnalités suivantes :

Fonctionnalité Description
Langage de requête Langage pour trouver des objets et récupérer des données de la base de données.
Persistance transparente Capacité à utiliser un langage de programmation orienté objet pour la manipulation de données.
Transactions ACID Les transactions ACID garantissent que toutes les transactions sont terminées sans modifications conflictuelles.
Mise en cache de la base de données Crée une réplique partielle de la base de données. Permet d'accéder à une base de données à partir de la mémoire du programme au lieu d'un disque.
Récupération Reprise après sinistre en cas de défaillance de l'application ou du système.

Pierre gemme/S

Pierre gemme/S est un système de base de données d'objets basé sur Smalltalk - un langage de programmation orienté objet influencé par Java. Les développeurs qui écrivent des applications en Smalltalk s'adaptent facilement à cette base de données. GemStone/S s'intègre parfaitement aux applications Smalltalk existantes, améliorant ainsi la vitesse et la productivité.

Gemstone/S est idéal pour les projets à haute disponibilité. Il existe plusieurs options de licence en fonction de la taille du projet. Le serveur de base de données est disponible pour diverses plates-formes, notamment Linux, Windows, macOS, Solaris, AIX, ainsi que Raspberry Pi.

ObjectDB

ObjectDB est une base de données d'objets NoSQL pour le langage de programmation Java. Comparé à d'autres bases de données NoSQL, ObjectDB est conforme à ACID. ObjectDB ne fournit pas d'API et nécessite l'utilisation de l'une des deux API de base de données Java intégrées :

  • JPA avec le langage de requête JPA (JPQL) basé sur la syntaxe Java.
  • JDO avec le langage de requête JDO (JDQL) basé sur la syntaxe SQL.

ObjectDB inclut tous les types de données de base en Java, les classes définies par l'utilisateur et les collections Java standard. Chaque objet a un identifiant unique. Le nombre d'éléments n'est limité que par la taille maximale de la base de données (128 To). ObjectDB est disponible sur plusieurs plates-formes et les performances de référence sont exceptionnelles.

ObjectDatabase++

ObjectDatabase++ est une base de données d'objets intégrables en temps réel conçue pour les applications côté serveur. La maintenance externe requise est minime.

ObjectDatabase++ prend en charge :

  • Multi-processus avec des applications serveur multi-thread.
  • Contrôle total des transactions.
  • Récupération en temps réel.
  • Langages liés à C++, VB.NET et C#.

La base de données d'objets est basée sur C++. L'une des principales fonctionnalités est la récupération automatique avancée en cas de panne du système sans compromettre l'intégrité de la base de données.

Objectivité/DB

Objectivité/DB utilise la puissance des objets et répond aux exigences complexes du Big Data. La base de données d'objets est flexible en prenant en charge plusieurs langues :

  • C++
  • C#
  • Python
  • Java

Les changements de schéma se produisent de manière dynamique sans nécessiter de temps d'arrêt, permettant des requêtes en temps réel sur n'importe quel type de données. Objectivity/DB est disponible pour plusieurs plates-formes, y compris macOS, Linux, Windows ou Unix.

ObjectStore

ObjectStore s'intègre à C++ ou Java et assure la persistance de la mémoire pour améliorer les performances de la logique d'application. La base de données d'objets est conforme à ACID. La réactivité permet aux développeurs de créer des applications distribuées multiplateformes, que ce soit sur site ou dans le cloud.

La principale caractéristique est l'évolutivité du cloud, qui permet d'accéder à la base de données de n'importe où. ObjectStore simplifie le processus de création et d'échange de données de manière transparente.

Versant

Versant fournit une persistance d'objet transparente primaire à partir de C++, Java et .NET. Cependant, il existe également un support pour Smalltalk et Python. Versant prend en charge différentes API en fonction du langage utilisé. Des requêtes SQL standard sont également disponibles, faisant de Versant une base de données NoSQL.

La base de données d'objets est une base de données client-serveur multi-utilisateurs. Versant fonctionne mieux lorsqu'il est utilisé pour des systèmes de transaction en ligne avec de grandes quantités de données et des utilisateurs simultanés.

Avantages et inconvénients de la base de données orientée objet

Chaque technique de modélisation de base de données présente des avantages et des inconvénients. Avant d'opter pour les bases de données orientées objet, vous devez connaître les langues disponibles en plus de l'intention de l'application.

Avantages

Les principaux avantages sont :

  • Des données complexes et une plus grande variété de types de données par rapport aux types de données MySQL
  • Facile à enregistrer et à récupérer rapidement des données.
  • Intégration transparente avec les langages de programmation orientés objet
  • Plus facile de modéliser les problèmes avancés du monde réel.
  • Extensible avec des types de données personnalisés

Inconvénients

Certains inconvénients incluent :

  • Pas aussi largement adopté que les bases de données relationnelles
  • Pas de modèle de données universel. Manque de fondements théoriques et de normes.
  • Ne prend pas en charge les vues.
  • Une complexité élevée entraîne des problèmes de performances.
  • Un mécanisme de sécurité adéquat et des droits d'accès aux objets n'existent pas.

Linux
  1. Qu'est-ce qu'un utilisateur Linux ?

  2. Comment déterminer le format de base de données utilisé par votre site

  3. Qu'est-ce qu'un administrateur système ?

  4. Que fait "lc_all=c" ?

  5. Qu'est-ce qu'une base de données relationnelle ?

Qu'est-ce qu'une base de données documentaire ?

Qu'est-ce qu'une base de données OLTP ?

Qu'est-ce que la dénormalisation de la base de données ?

Qu'est-ce que la normalisation de base de données ?

Qu'est-ce qu'une base de données ?

Qu'est-ce qu'une base de données distribuée et à quoi servent les systèmes de données distribués ?