第1回:データベースを取り巻く状況 (1/4)

近未来データベース
近未来データベース

第1回:データベースを取り巻く状況
著者:NTTデータ先端技術  鈴木 幸市   2005/8/8
1   2  3  4  次のページ
はじめに

   これから何回かに渡り、データベースエンジンを取り巻く状況や課題、今後の技術動向などについて解説していきます。

   Webサービスが当たり前の世の中になり、情報管理、アクセスをつかさどるデータベースの役割は増すばかりです。SQL言語を使ったデータアクセスは、データベースを使う上で基本的かつ重要な技術です。その上データベースは、複数のアプリケーションやユーザに「同じ」データを「同時に」「矛盾なく」読み書きできる機能を提供しています。また「書いた」データを障害や誤操作から守るという重要な機能も提供しているのです。

   さらに、データベースはコンピュータのメモリよりはるかに巨大な量のデータを扱うこともできますし、これらのデータが障害や誤操作で壊れることがないように守ることもデータベースの重要な役割になっています。ある意味、SQL以上に重要といってもいいでしょう。

   この連載では、SQL以外のこれらのデータベースの重要な役割がシステムを作る上でどのように役立っているのか、データベースに対する要件はどのようなものがあるのか、それに応えるためにどのような課題があり、どのような試みがなされているのかを紹介していきます。

   データベース管理者(DBA:DataBase Administrator)向けの記事ではありますが、データベースアプリケーションを作成する方々にも是非知っておいていただきたいことです。第1回目は他のミドルウェアと比較した場合のデータベースの特徴を、システムプラットフォームの観点から解説します。次回以降は次のような内容を予定しています。

  1. データベースをスケールアウトさせる:並列分散データベース
  2. データベースを二重化する:データベースレプリケーション
  3. データベース実装技術者を育てる:教育用データベースの提案


データベースは他のミドルウェアと何が違う?

   まずは、典型的なWebシステムの構成を図1に示します。

典型的なWebシステムの構成
図1:典型的なWebシステムの構成
(画像をクリックすると別ウィンドウに拡大図を表示します)

   スタティックな文書を表示するだけのWebサーバであれば、Webサーバの中にHTML文書を蓄えておくだけでいいのですが、eコマースやblogなど、ほとんどのWebサーバではスタティックな文書だけではできていません。

   その後ろにデータを蓄えておいて、ブラウザとのやり取りに応じて蓄えたデータを使って文書をダイナミックに組み立てています。セキュリティのために、外部からはデータベースサーバには容易に入れないように、データベースサーバの前に別なスイッチなどを置きますが、ここでは省略しています。

   そこで単なるWebサーバに、様々なアプリケーションを動作させるアプリケーションサーバをつなげ、この後ろにデータを蓄えるデータベースを置いておくのがよく見られるWebサーバの構成になっています。特にオープンソースソフトウェア(OSS:Open Source Software)には、このような構成に適したソフトが多く開放されています。

   WebサーバとしてはApache、アプリケーションサーバとしてはTomcatやJBoss、データベースとしてはPostgreSQLやMySQLが有名です。これらがやはりオープンソースのOS(オペレーティングシステム)であるLinuxの上で動くようになっています。アプリケーションは、JavaやPHPで書くことが多く、PHPもオープンソースのプログラム言語です。LAMP(Linux-Apache-MySQL-PHP)やLAPP(Linux-Apache-PostgreSQL-PHP)として知られている構成です。

   ここに現れているソフトウェアは、アプリケーションには関係なくどこでも使えるソフトウェアです。カーネル以外に、汎用でアプリケーションにサービスするソフトウェアをミドルウェアと呼ぶことがあります。Webサーバもアプリケーションサーバもデータベースもすべてミドルウェアに分類されます(LinuxなどのOSから見ると、これらのミドルウェアもアプリケーションも区別がないことに注意してください)。

   さて図1で注意してほしいことがあります。ブラウザからのリクエストは、負荷分散装置(これを行うOSSもあります)で振り分けられ、何台ものハードウェア上のWebサーバやアプリケーションサーバで分担して処理されます。

   これは1台のサーバが相手にできるブラウザの数には限りがあるので、それ以上の数のブラウザを相手にしようとするときには台数を増やして処理しているのです。ちょうど、銀行の窓口やスーパーのレジがたくさんあるのに似ていますね。

   このようにサーバの台数を増やして処理能力を増やすことを「スケールアウト」といいます。一方サーバ1台の処理能力を増やして、例えば高速なCPUを使ったり、メモリを増やしたりして処理能力を増やすことを「スケールアップ」といいます。

   スケールアウトもスケールアップもどちらもシステムの能力を上げるには重要な手法です。Webサーバの場合やアプリケーションサーバの場合は、一般にはスケールアウトもスケールアップもどちらの手法も使うことができます。

   一方データベースは2つのサーバがありますが(図1)、データは1つしかありません。実はこの2つのサーバは、片方がクラッシュした場合に備えてもう片方が控えのサーバになっているのです。同時に動いているデータベースサーバは1つです。データベースは簡単にはスケールアウトできないのです。

1   2  3  4  次のページ


NTTデータ先端技術株式会社 鈴木 幸市
著者プロフィール
NTTデータ先端技術株式会社  鈴木 幸市
Unixにおける日本語ハンドリング、Oracleの移植、オブジェクトリレーショナルデータベースのエンジンの開発などに携わる。現在、NTTデータ先端技術にてLinux、PostgreSQLなどのオープンソースソフトウェアに関する技術を統括している。著書に「RDBMS解剖学」(翔泳社)、訳書に「オブジェクト指向データベース入門」(共立出版)など。


INDEX
第1回:データベースを取り巻く状況
はじめに
 なぜデータベースのスケールアウトは難しいのか
 データベースとはどんなソフトウェアか
 信頼性
近未来データベース
第1回データベースを取り巻く状況
第2回データベースのスケールアウト(前半)
第3回データベースのスケールアウト(後半)
第4回データベースレプリケーション
第5回データベース技術者を育むために

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30