『Expert MySQL』翻訳——chapter 2.解剖データベースシステム(1)

4296 ワード

注:第1章はオープンソースソフトウェアの基本的な概念を話して、翻訳しないで、みんなはオープンソースに興味があれば十分です.
冒頭
データベースシステムで何が起こっているのか気になったことがありますか?リレーショナル・データベースに関する基礎知識も知っているかもしれませんが、データベースの管理は専門的ですが、データベース・システムにドリルダウンして内部の作業メカニズムを見たことがありません.私たちの多くはデータベースを管理した経験がありますが、学校でも会社でもデータベースシステムの構造にあまり触れたことがありません.データベースの仕事をしている専門家は、これらの知識を知る必要はありません.しかし、これらの構造メカニズムを理解すれば、データベースを最適化する方法と、データベースが提供する機能と特性を最大限に使用する方法を知ることができます.
この章では,主にリレーショナル・データベース(RDBS)がどのサブモジュールを含むか,およびそれらがどのように構成されているかについて述べる.MySQLを解剖して、リレーショナル・データベースの重要なコンポーネントを説明します.これらの構造をよく知っていて、MySQLのアーキテクチャを直接見たい場合は、次のセクションにジャンプすることができます.
データベースシステムアーキテクチャ
データベースを構築し、維持し、データベースに基づいてアプリケーションを開発するには、内部の作業メカニズムを本当に理解する必要はないかもしれませんが、データベースシステムがどのように組織されているかを理解することで、本質的にその特性と機能を修正し、拡張することができます.また、いくつかのポピュラーなデータベース・ワークメカニズムの基本原則を理解することは、異なるデータベースとリレーショナル・データベースの比較を理解するのに役立ちます.△私はサボっていませんよ.この節はこれだけの内容ですが、実は踊ることはありません.
データベース・システムのタイプ
ほとんどのデータベース・プロフェッショナルはリレーショナル・データベースを使用していますが、他のタイプのデータベースも流行しています.次のセクションでは、オブジェクト・データベース、オブジェクト-リレーショナル・データベース、リレーショナル・データベースの概要について説明します.これらの概要は、MySQLのアーキテクチャや従来の機能を理解する上で重要であり、コードを通じてこれらの概念を深く理解することもできます.コードを通じて、私はあなたにこの中の仕事のメカニズムを説明することができます.
これらの概要に詳しい場合は、「リレーショナル・データベースのアーキテクチャ」というセクションに直接ジャンプできます.
オブジェクト向けデータベース
オブジェクト向けデータベースは,オブジェクト向け開発においてデータをオブジェクトに抽象化し,これらのオブジェクトを直接介してデータの格納と検索を行うことをサポートできるメカニズムである.プログラム内のオブジェクトを永続化するための真のオブジェクト向けシステムが含まれています.しかし、このような大きな欠点は、標準的なクエリー文がないことです(一部の例外はまだありますが、ほとんどの場合、クエリー文はサポートされていません).これらのデータを処理することです(特定のアプリケーションのインタフェースを通じてこれらのオブジェクトにアクセスします).したがって、この点では、厳密な意味でのデータベース管理システムではありません.
オブジェクト向けデータベースはリレーショナル・データベースの一種であり、特に応用面では、モデルの構築が特に複雑であるか、リレーショナル・データベースを通じてデータをオブジェクトとして格納するのが特に非効率である場合、これを使用するとよい.これらのアプリケーションは、削除できないデータの山を維持し、各データ・オブジェクトの変更履歴を管理する必要があります.オブジェクト向けデータベースの最もユニークな機能は、オブジェクト向けプログラミング(OOP)のインタフェースでデータを同時に定義し、これらのデータを処理する方法です.
オブジェクト向けデータベースは特に現実世界のものをモデリングするのに適しており、そのために各エンティティの間に様々な奇妙な不自然な関係を導入する必要はありません.オブジェクト向けの思想は真実の世界を全面的にモデリングする観点を提供した.この観点は,特にアーキテクチャされたデータにオブジェクト向けのメソッドを追加する際に,曖昧なものを処理するのに重要である.オープンソースにはオブジェクト向けのデータベースがたくさんありますが、ほとんどはリレーショナル・データベースに基づいています.したがって、クエリー言語を使用してデータをクエリーすることをサポートします.この観点から、オブジェクト向けのデータベースではありません.本当にオブジェクト向けのデータベースは、プログラムのインタフェースを介してデータにアクセスする必要があります.
オブジェクト・データベース向けの使用面には、地理情報システム、科学的および統計的に関連するデータベース・システム、マルチメディア・システム、ピクチャ取得およびソーシャル・システム、およびXMLデータベース・システムが含まれます.
オブジェクト向けデータベースは、データと対応する処理方法を同時に持つオブジェクトに最適です.ほとんどのオブジェクト向けデータベースシステムでは、オブジェクト向けメソッドに基づいてデータを記述し、表現能力の高いデータソリューションを構築することを考慮して設計されています.したがって、オブジェクト向けデータベースは、従来のアプリケーションのために設計されたものではなく、特別な実装です.リレーショナル・データベースのように記述応答クラス(statement-response-type)のインタフェースもありません.
オブジェクト-リレーショナル・データベース
オブジェクト-リレーショナル・データベースは、リレーショナル・データベースへのオブジェクト・コンセプトの応用です.オブジェクトリレーショナル・データベースは、データベース・デザイナーがオブジェクト向けのデータ概念を使用してデータ・ストレージを構造化し、検索メカニズムを実現するメカニズムを提供します.オブジェクト-リレーショナル・データベースは、リレーショナル・モデルの基礎を提供します.これは、オブジェクトを中心とした考え方で、リレーショナル・モデルの格納と検索メカニズムを拡張することを意味します.ほとんどの場合、オブジェクト向けのコンセプトをリレーショナルコンセプトにマッピングするのが最善の試みです.リレーショナル・モデルの変更と拡張には、SQLの変更が含まれます.これにより、オブジェクトのタイプ、ID、アクション・セット(関数またはメソッドのセット)、および継承関係を表現できます.
しかし,複雑な関係では,これらのマッピングは通常比較的緩やかである.このようなやり方は表現的であるが、SQLの拡張は、データのオブジェクト向け操作やオブジェクト向けレベルの制御を本当にサポートすることはできない.最もポピュラーなオブジェクト・リレーショナル・データベースはESRIのArcGIS地理情報データベース・システムにほかならない.その他の例には、OracleおよびInformixも含まれます.
オブジェクト-リレーショナル・データベースで使用されるテクノロジーは、リレーショナル・モデルに基づいています.ほとんどのオブジェクト-リレーショナル・データベースは、Microsoft SQLやOracleなどの既存のリレーショナル・データベースで実装されます.これらのデータベースはリレーショナル・データベースに基づいているため、オブジェクト向けの概念をリレーショナル・メカニズムに変換するプロセスは面倒です.以下に、リレーショナル・データベースを使用してオブジェクト向けアプリケーションをサポートするいくつかの問題を示します.
   1.                             。

  2.                       。

  3.            。

  4.           。

  5.         ,       。

  6.                         ,           。

  7.             select all ... where         ,            ,      join。

(未完待機)