GNU/Linux >> Linux の 問題 >  >> Linux

オブジェクト指向データベースとは

はじめに

オブジェクト指向データベース データベース管理システムの一種です。さまざまなデータベース管理システムが追加機能を提供します。オブジェクト指向データベースは、データベース機能をオブジェクトプログラミング言語に追加し、より管理しやすいコードベースを作成します。

この記事では、オブジェクト指向データベースの詳細な概要と例を示します。

オブジェクトデータベースの定義

オブジェクトデータベースはoによって管理されます bject- o 方向付けられたd ata b ase m anagement s システム(OODBMS)。データベースは、オブジェクト指向プログラミングの概念とリレーショナルデータベースの原則を組み合わせたものです。

  • オブジェクト は基本的な構成要素であり、クラスのインスタンスであり、タイプは組み込みまたはユーザー定義のいずれかです。
  • クラス オブジェクトのスキーマまたは青写真を提供し、動作を定義します。
  • 方法 クラスの動作を決定します。
  • ポインタ オブジェクトデータベースの要素にアクセスし、オブジェクト間の関係を確立するのに役立ちます。

OODBMSのオブジェクトの主な特徴は、ユーザー作成型の可能性です。 。プロジェクトまたはアプリケーションで作成されたオブジェクトは、そのままデータベースに保存されます。

オブジェクト指向データベースは、データを完全なオブジェクトとして直接処理します。すべての情報は、複数のテーブルではなく、すぐに利用できる1つのオブジェクトパッケージで提供されます。

対照的に、PostgreSQLやMySQLなどのリレーショナルデータベースの基本的な構成要素は、テーブルデータ間の論理接続に基づくアクションを備えたテーブルです。

これらの特性により、オブジェクトデータベースは、プログラミングへのオブジェクト指向アプローチを必要とする複雑なデータを含むプロジェクトに適しています。オブジェクト指向管理システムは、複雑なオブジェクトが中心となるオブジェクト指向プログラミングに対応するサポートされた機能を提供します。このアプローチは、データの属性と動作を1つのエンティティに統合します。

オブジェクト指向プログラミングの概念

オブジェクト指向データベースは、オブジェクト指向プログラミングの概念と密接に関連しています。オブジェクト指向プログラミングの4つの主なアイデアは次のとおりです。

  • ポリモーフィズム
  • 継承
  • カプセル化
  • 抽象化

これらの4つの属性は、オブジェクト指向管理システムの重要な特性を説明しています。

ポリモーフィズム

ポリモーフィズム 複数の形式をとるオブジェクトの機能です。この機能により、同じプログラムコードが異なるデータ型で動作できるようになります。車も自転車も壊れる 、しかしメカニズムは異なります。この例では、アクションブレークはポリモーフィズムです。定義されたアクションは多形です —結果はどの車両の性能によって異なります。

継承

継承 コードの一部を再利用可能にしながら、関連するクラス間に階層関係を作成します。新しい型を定義すると、既存のすべてのクラスフィールドとメソッドが継承され、さらにそれらが拡張されます。既存のクラスはです クラス、子供 クラスは親を拡張します。

たとえば、 Vehicleという親クラス 子クラスがあります および自転車 。両方の子クラスが継承 親クラスからの情報と拡張 車種に応じて新しい情報を持つ親クラス。

カプセル化

カプセル化 データとメカニズムを単一のオブジェクトにグループ化して、アクセス保護を提供する機能です。このプロセスを通じて、オブジェクトの動作に関する情報と詳細が非表示になります。 、データと機能のセキュリティにつながります。クラスは、特定のメソッドがどのように機能するかを知る必要なしに、メソッドを介して相互に作用します。

例として、車には説明的な特性とアクションがあります。車の色は変更できますが、モデルやメーカーは変更できないプロパティの例です。クラスはカプセル化 すべての車の情報を1つのエンティティにまとめます。一部の要素は変更可能ですが、一部は変更できません。

抽象化

抽象化 必要な機能に不可欠なデータ機能のみを表す手順です。 。プロセスは重要な情報を選択しますが、不要な情報は隠されたままです。抽象化は、モデル化されたデータの複雑さを軽減し、再利用を可能にします。

たとえば、コンピュータがネットワークに接続するにはさまざまな方法があります。 Webブラウザにはインターネット接続が必要です。ただし、接続タイプは関係ありません。インターネットへの確立された接続は、抽象化を表します 、一方、さまざまなタイプの接続は、抽象化のさまざまな実装を表します。

オブジェクト指向データベースの例

オブジェクトデータベースの実装にはさまざまな種類があります。ほとんどの機能には次の機能が含まれています:

機能 説明
クエリ言語 オブジェクトを検索し、データベースからデータを取得するための言語。
透過的な永続性 データ操作にオブジェクト指向プログラミング言語を使用する機能。
ACIDトランザクション ACIDトランザクションは、競合する変更なしにすべてのトランザクションが完了することを保証します。
データベースキャッシング データベースの部分的なレプリカを作成します。ディスクではなくプログラムメモリからデータベースへのアクセスを許可します。
回復 アプリケーションまたはシステムに障害が発生した場合の災害復旧。

GemStone / S

GemStone / S は、Javaの影響を受けたオブジェクト指向プログラミング言語であるSmalltalkに基づくオブジェクトデータベースシステムです。 Smalltalkでアプリケーションを作成する開発者は、このデータベースに簡単に適応できます。 GemStone / Sは既存のSmalltalkアプリケーションとシームレスに統合され、速度と生産性が向上します。

Gemstone / Sは、高可用性プロジェクトに最適です。プロジェクトのサイズに応じて、ライセンスには複数のオプションがあります。データベースサーバーは、Linux、Windows、macOS、Solaris、AIX、RaspberryPiなどのさまざまなプラットフォームで利用できます。

ObjectDB

ObjectDB Javaプログラミング言語用のNoSQLオブジェクトデータベースです。他のNoSQLデータベースと比較して、ObjectDBはACIDに準拠しています。 ObjectDBはAPIを提供しないため、2つの組み込みJavaデータベースAPIのいずれかを使用する必要があります。

  • JPA JPAクエリ言語を使用 (JPQL)Java構文に基づいています。
  • JDO JDOクエリ言語を使用 (JDQL)SQL構文に基づいています。

ObjectDBには、Javaのすべての基本データ型、ユーザー定義クラス、および標準のJavaコレクションが含まれています。すべてのオブジェクトには一意のIDがあります。要素の数は、データベースの最大サイズ(128 TB)によってのみ制限されます。 ObjectDBはクロスプラットフォームで利用可能であり、ベンチマークのパフォーマンスは並外れています。

ObjectDatabase ++

ObjectDatabase ++ サーバーサイドアプリケーション用に設計されたリアルタイムの埋め込み可能なオブジェクトデータベースです。必要な外部メンテナンスは最小限です。

ObjectDatabase ++は以下をサポートします:

  • マルチスレッドサーバーアプリケーションを使用したマルチプロセス。
  • 完全なトランザクション制御。
  • リアルタイムリカバリ。
  • C ++関連の言語、VB.NET、およびC#。

オブジェクトデータベースはC++ベースです。主な機能の1つは、データベースの整合性を損なうことなく、システムクラッシュからの高度な自動回復です。

客観性/DB

客観性/DB オブジェクトの力を利用し、ビッグデータ内の複雑な要件を満たします。オブジェクトデータベースは、複数の言語をサポートすることで柔軟性があります:

  • C ++
  • C#
  • Python
  • Java

スキーマの変更はダウンタイムを必要とせずに動的に行われるため、任意のデータ型に対してリアルタイムのクエリを実行できます。 Objectivity / DBは、macOS、Linux、Windows、Unixなどの複数のプラットフォームで利用できます。

ObjectStore

ObjectStore C ++またはJavaと統合し、メモリの永続性を提供して、アプリケーションロジックのパフォーマンスを向上させます。オブジェクトデータベースはACIDに準拠しています。応答性により、開発者はオンプレミスでもクラウドでも、クロスプラットフォームの分散アプリケーションを構築できます。

主な機能はクラウドのスケーラビリティであり、どこからでもデータベースにアクセスできます。 ObjectStoreは、データの作成と交換のプロセスをシームレスに簡素化します。

Versant

Versant C ++、Java、および.NETからのプライマリ透過オブジェクトの永続性を提供します。ただし、SmalltalkとPythonもサポートされています。 Versantは、使用する言語に応じてさまざまなAPIをサポートします。標準のSQLクエリも利用できるため、VersantはNoSQLデータベースになります。

オブジェクトデータベースは、マルチユーザークライアントサーバーデータベースです。 Versantは、大量のデータと同時ユーザーがいるオンライントランザクションシステムに使用すると最高のパフォーマンスを発揮します。

オブジェクト指向データベースの長所と短所

すべてのデータベースモデリング手法には、長所と短所があります。オブジェクト指向データベースをオプトインする前に、アプリケーションの意図に加えて、使用可能な言語を知っている必要があります。

利点

主な利点は次のとおりです。

  • 複雑なデータと、MySQLデータ型と比較したさまざまなデータ型。
  • データの保存と取得が簡単です。
  • オブジェクト指向プログラミング言語とのシームレスな統合。
  • 高度な現実世界の問題をより簡単にモデル化できます。
  • カスタムデータ型で拡張可能。

デメリット

いくつかの欠点は次のとおりです。

  • リレーショナルデータベースほど広く採用されていません。
  • ユニバーサルデータモデルはありません。理論的根拠と基準が不足しています。
  • ビューをサポートしていません。
  • 複雑さが高いとパフォーマンスの問題が発生します。
  • 適切なセキュリティメカニズムとオブジェクトへのアクセス権が存在しません。

Linux
  1. Linuxユーザーとは何ですか?

  2. リレーショナルデータベースとは何ですか?

  3. nmコマンドのシンボル値は何を意味しますか?

  1. サイトで使用されているデータベース形式を確認する方法

  2. システム管理者とは何ですか?

  3. 「lc_all=c」は何をしますか?

  1. NoSQLデータベースとは何ですか? –NoSQLの説明

  2. リレーショナルデータベースとは何ですか?

  3. データベースサーバーとは何ですか?それは何のために使用されますか?