【2/17】今年は「濃厚」技術トーク!@ITメールセミナー スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷

第2回 後悔しないためのデータベース設計方針

データベースの設計や作成は、熟考のうえになされなければならない。配慮を欠いたデータベースは、必ず運用に支障をきたすだろう。では、どのような点に注意すべきだろうか?

今回の主な内容
データベース設計の検討事項
データベースの構成要素
 ・OSの「ファイル」であるもの
 ・データベースの内部に作られるもの

さかいひろあき(h.sakai@home.email.ne.jp)
2001/2/2

 前回は、データベースのインスタンスとその起動・停止方法についてお話しました。「インスタンス」とは、データベースシステムの単位を表す言葉でした。

 次にOracleマイスターにとって必要なことは何でしょうか? それはデータベースの設計と作成です。データベースをOracleのインストール時に作成した方も多いと思いますが、デフォルトデータベースはあくまでも「勉強」や「お試し」用なのです。これは、実際に業務に使うにはロールバックの大きさやシステムの領域が不十分なので、実運用を始めたとたんに動かなくなってしまった、などという例を数え切れないほど耳にします。

データベース設計の検討事項

 Oracleマイスターがデータベースを設計するときに、最低限考慮しなければならないポイントは以下のとおりです。

1.データベースの規模

 設計するデータベースがどれほどの量のデータを格納する予定なのかということです。これにより、どの程度ディスクを使用するか見積もらなくてはなりません。

2.データ更新処理(トランザクション)の頻度と、その1回当たりの「大きさ」

 データベースの更新処理がどの程度の規模で、どの程度の頻度で発生するのかということが設計に大きく影響します。1日に1度だけドカッとデータを入れ替えるだけで、ほとんどのユーザーは検索だけを行うようなデータベースもあるでしょう。また1分間(もしくは1秒間)に何十回と小さな更新処理が行われるような、コンビニのPOSレジシステムのようなデータベースも一般的です。このようなトランザクションの性質により、データベース設計は大きく変わってきます。

3.バックアップ計画

 コンピュータを扱う人は、だれしも1度くらいはデータを消してしまったり、ディスクの故障などで痛い目に遭った経験があるでしょう。PCなら笑い話で済むかもしれませんが(もちろんそうでない場合もあるでしょうが)、大事なデータを扱うOracleマイスターにとっては笑い話では済みません。何はなくともバックアップですが、ただ単にバックアップをとればいいというものではありません。厳重にバックアップをとればとるほど「コスト」に跳ね返りますし、サービスレベルの低下(パフォーマンスの悪化やサービス時間の短縮)につながってしまいます。管理するデータの重要性に見合ったバックアップ計画を立てる必要があります。

4.運用計画

 最後に大切なのが運用計画です。これは、どれくらいの頻度でデータベースを停止できるか、ということです。1日1回夜間に停止できるのか、3カ月に1回の定期点検のときだけなのか、はたまた1年365日まったく停止できないのか。これにより構成もバックアップ計画も大きく変わります。

 例えば、1日1回データを入れ替えて、日中は検索だけ、というような場合は、更新処理の後にコールドバックアップ(データベースを停止してとるバックアップ)で十分です。また、ずっと停止できないのであれば、「アーカイブログモード」で運用していく必要があります(アーカイブログ運用については、後の回で詳しく述べる予定です)。

 「データベースを設計する」とは、以上の点を考慮しながら「データベースを作成」し、「運用」していく計画を立てることなのです。

データベースの構成要素

 データベースを設計し、作成するためには、データベースの構成要素をしっかりと理解しておかなくてはなりません。最初はなじみのない言葉が多くて分かりにくいかと思いますが、逆引き的に何度もそれぞれの要素の内容と役割を確認し、理解していきましょう。

 データベースの構成要素には、大きく分けてOS(Linuxなど)にとって「ファイル」と認識されるものと、データベースの「内部」に作られるものに分けられます。

■OSの「ファイル」であるもの

  • 初期パラメータファイル
  • コントロールファイル
  • REDOログファイル
  • アーカイブログファイル
  • データファイル

 これらはOSにとってはただの「ファイル」であり、データベースだからといって(LinuxなどのOSにとって)特別なことはありません。よって、上記で述べた「コールドバックアップ」の場合は、これらのファイルすべてをバックアップすればよいことになります。つまり、データベースが停止している状態で単純にコピーコマンド(cp)やtarなどの通常のOSコマンドで、ほかのディスクやテープデバイスなどに退避しておけば十分というわけです。

■データベースの「内部」に作られるもの

  • システム領域(システムテーブルスペース)
  • システムテーブルとビュー
  • ロールバックセグメント
  • テンポラリテーブルスペース
  • ユーザーテーブルスペース

 これらの要素はデータファイルの中に作られます。テーブルやビューは、データファイルの中に作られたテーブルスペースの中に作成されます。

図1 データベース構成要素

 これらの構成要素は、「インスタンス」作成時にすべて作られなければなりません。次回から、それぞれについてもう少し詳しく見ていくことにします。

連載 Oracleマイスター養成講座


 Linux Squareフォーラム データベース関連記事
連載:快速MySQLでデータベースアプリ!(全11回)
軽快な動作で知られるRDBMS、MySQLでDBアプリの構築を行う。MySQLのインストールに始まり、PerlやRubyなどのスクリプトでデータベースを操作する方法までを完全解説
連載:今から始める MySQL入門(連載中)
定番のLAMP(Linux+Apache+MySQL+PHP)構成でWebアプリケーション開発に挑戦! サンプルアプリの構築を進めながら、基礎知識や操作方法について詳しく解説する
連載:Oracleマイスター養成講座(全6回)
本連載では、Oracleの管理・チューニング方法を紹介していく。これからOracleを始める人、そしてOracleをより深く理解したい人のための、一歩踏み込んだ実用講座
連載:DB2マイスター養成講座(全7回)
本連載では、DB2 UDBの実践的な運用・管理方法を紹介していく。DB2を利用するうえで必要な知識を、実運用を前提にDB2のプロが解説
特集:エンタープライズ市場に向かうMySQL 5.0[前編]
MySQL 5.0の新機能をアルファ版でチェック
1月に公開された5.0アルファ版は大幅に拡張されており、エンタープライズ市場への進出を予感させる
特集:Linuxで動くリレーショナルデータベース・カタログ
データベースサーバのOSとしてLinuxを採用するケースが増えている。Linuxで動作する7つの主なリレーショナルデータベースを紹介する。製品導入の際の参考にしてほしい

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します

ホワイトペーパーTechTargetジャパン

Linux Square フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)



- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  企業の仮想化に足りない“発想”とは?
仮想化運用管理のキモは意外なところに!

New!
  操作もマニュアルも分かりやすい!
ユーザー視点で開発されたPC管理ツール

New!
  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  セキュリティを知り尽くす上野氏が登壇!
@ITメールソリューションLive! in Tokyo

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  世界に通用するストレージの作り方とは?
製品に込めた思いを富士通の開発者に聞く

  OSSで手間も時間も、障害も減った――
「マピオンの事例」オープンソース活用法

  「ノートPCの持ち出し禁止」で大丈夫?
情報漏えいを防ぐ管理手法とインフラは?

  1日の処理を1秒に――MySQLの達人が語る
「コスト削減」できるチューニング

  ドキュメント作成を自動化して、SEの作業
効率を大幅アップ! Visio 2007の魅力

  急速に広がるHyper-Vでのサーバ仮想化
そのベストプラクティスをデルが解説

  @IT主催セミナーで語られた、「担当者に
求められるセキュリティ対策」をレポート

  @IT「Windows 7」 特設サイトオープン!
最新情報・移行ノウハウを公開しています