RDBMSの仕組み #3: データベースのライフサイクル概要

はじめに

最近の数年間でインターネット上のデータは急速に増加しています。したがって、RDBMSの設計を学ぶ重要性が注目されています。この記事では、モデリングからデータ保存に至るステージの概要を紹介し、そのライフサイクルがどのように機能するかを発見できるでしょう。この操作を理解することで、そのアーキテクチャの各部分をより詳しく検討できるようになります。

データベースライフサイクル

データベースライフサイクルは、データベースを設計し、そのパフォーマンスを最大化するためのコンセプチュアルモデルから実装に至る基本的な手順です。この定義はPostgreSQLのようなリレーショナルデータベースに適用されます。分散型データベースのような他のタイプは、この記事の範囲を超えています。

本「Physical Database Design: the database professional's guide to exploiting indexes, views, storage, and more」の著者たちは、データベースライフサイクルを図1に示すように4部分で説明しています:

データベースライフサイクル。

図1 - データベースライフサイクル。著者によって作成されました。

1. 要件分析

ビジネスのニーズを満たすデータベースを確保するためには、どのデータを保存するか、それらの関連性、特性、および追加の重要な情報を定義することが不可欠です。このプロセスは通常、このデータを生成し使用する人々とのインタビューの形をとります。

また、実装に適切なプラットフォームを選択する段階でもあります。したがって、研究プロジェクトの記事を保存するためのデータベースを作成する必要があると仮定します。各記事は以下を持ちます:

  • タイトル;
  • 少なくとも1人の著者;
  • 出版日;
  • 出版場所;
  • 引用数。

各著者と出版場所もそれぞれの特性と関係を持っていますが、例を簡単にするために記事にのみ焦点を当てます。それらの関係は引用を通して行われます。記事はそれらを通じて強く関連づけられる必要があり、研究がよく根拠づけられていることを保証するためです。したがって、記事は他の記事を引用(参照)していると言えます。このデータベースを実装する優れたプラットフォームはPostgreSQLです。データを安全かつ効率的に保存するだけでなく、Apache AGE 拡張機能を使用して引用グラフを視覚化し、研究がしっかりと根付いているか、また、関連性のない「緩い」参照がないか、その他重要な情報を評価することができます。

2. 論理設計

論理設計段階では、すべての要件がコンセプチュアルモデルまたは論理モデルのいずれかに変換されます。コンセプチュアルモデルはデータとその関係を抽象的な形で表し、論理モデルはより詳細で実装指向の表現を提供します。ただし、このテキストの目的は各モデルの詳細を説明することではなく、データベース設計プロセスにおけるその役割を提示することです。

論理設計は、ユーザーの世界の現実をデータ要素とその関係性の観点から捉えます。前のセクションの例では、記事間の全ての関係を図の形で表現します。この例については今後の投稿でさらに詳しく掘り下げます。設計の目的は、クエリのプログラミングとデータの更新を容易にすることです。この段階で、SQLテーブルの正規化が既に行われています。正規化についてもっと学びたい場合は、この記事が良い例です。

3. 物理設計

物理設計の焦点は、高い効率でのデータの操作です。この段階では、ディスク上のテーブルの保存とアクセス方法を定義することが関わります。目標はデータベースのパフォーマンスを最大化することです。したがって、データベースシステムの動作方法を明確に理解することが不可欠です。データベースのパフォーマンスは2つの方法で測定できます:

  1. 特定のアプリケーションに対してデータベースがクエリに応答する時間、またはアップデートを完了するまでの時間;
  2. スループットとは、データベースシステムが指定された期間で処理できる秒間トランザクション数であり、データベースを使用するすべてのアプリケーションを考慮した場合です。

データベースアプリケーションの実行時に遅延を引き起こす可能性のある物理的リソースには、CPU、I/O(ディスクなど)、コンピュータネットワークがあります。

4. 実装、監視、および保守

これはデータベースシステムライフサイクルの最終段階であり、データベースの作成と保守が行われます。以下のように簡潔に説明できます:

実装: データ定義言語(DDL)を使用してデータベースにテーブルを作成し、データ操作言語(DML)で更新、クエリの実行、インデックスと制約の設定を行います。SQL言語は両方の言語を包含しています。

  • DDLの例:CREATE TABLEコマンド;
  • DMLの例:SELECTコマンド。

監視: データベースのパフォーマンスの監視。PostgreSQLはクエリのコストを提供することで、クエリのパフォーマンスを監視するのを助けるEXPLAINコマンド(本"The Internals of PostgreSQL"のセクション3.2参照)を実装しています。

保守: パフォーマンス要件やユーザー要件の変更に合わせたデータベースへの変更です。このフェーズでは、設計調整があり、これによりDBMSのライフサイクルが続きます。

結論

この記事では、適切なデータベースのライフサイクルの管理を保証するために、RDBMSのリソースと実装を学ぶことの重要性を理解しました。また、要件分析、論理設計、物理設計、実装、監視、および保守から成ることを見ました。次の投稿では、これらのコンセプトのいくつかを適用し、「要件分析」セクションで例として挙げた記事データベースをPostgreSQLを使用して実装し、Apache AGEでグラフの視覚化を行います。ですので、実際に試すのがお好きな方は、次の投稿をお見逃しなく!

訂正

信頼性のある情報源を通じて技術情報を提供することが私の意図です。不正確な情報を見つけた場合は、下のコメントでご貢献ください 😊。

関連記事

How an RDBMS works #1: Lessons from “The Internals of PostgreSQL”

How an RDBMS works #2: Reasons to study its design

PostgreSQLでのコスト見積もり

共同でイノベートする:ソーシャルネットワークがどのようにあなたの夢のペアプログラミングチームを見つけるのを助けるか

参考文献

Lightstone, Sam S., Toby J. Teorey, and Tom Nadeau. Physical Database Design: the database professional's guide to exploiting indexes, views, storage, and more. Morgan Kaufmann, 2010.

Microsoft. データベースの正規化の基本についての説明。2023. https://learn.microsoft.com/en-us/office/troubleshoot/access/database-normalization-descriptionで入手可能。2023年3月31日にアクセス。

SUZUKI, Hironobu. The Internals of PostgreSQL for database administrators and system developers. Interdb. 2015. https://www.interdb.jp/pg/で入手可能。2023年3月25日にアクセス。

Souza, Wander Inácio de. Database I Class Notes - Concepts and Architecture of Database Systems. Federal University of Ouro Preto. 2016. 未公開.

バナーはFreepikがデザインしたものです。

Apache AGEに貢献する

Apache AGE Webサイト:https://age.apache.org/

Apache AGE Github:https://github.com/apache/age

こちらの記事はdev.toの良い記事を日本人向けに翻訳しています。
https://dev.to/carlasanches/how-an-rdbms-works-database-life-cycle-overview-2gb4