[#f7a98c5c]-=[[データベース]]-ビジネスプロセスの最終アウトプットを出すことを支援するために、情報提供が適切に行えるようにすることがDBの意義である。--これを自在に行える状態が活用である。--よって、DBはレポート志向で設計されるべきである。-プログラムを簡単に作るために、DBをプログラマの都合だけで勝手に設計を変えて使うことは、DBに対して不合理といえる。-DBが止まるとは、システムが止まることを意味する。--[[APサーバー]]や[[Webサーバー]]が1台止まる場合とはわけが違う。-「DBサーバーを再起動したら、APサーバーやアプリケーションも再起動しないとうまくいかない」という原因の多くは、APサーバーの設定やアプリケーションのプログラムにおいて、通信エラーが出たら今までの処理を捨てて再接続するという処理を考慮していないことが関係している。--DBサーバーを再起動した場合は、APサーバー側の[[ソケット]]は無効になる。APサーバーは一度ソケットは無効になる。そのため、APサーバーは一度ソケットを捨てて、再度繋ぐ必要がある。-DBでは磁気ディスク上にあるデータを中心に扱うので、データをメモリにロードしたり、書き戻したりする際に次のような工夫している。--データはなるべくファイルの先頭から順に読み書きする(シーケンシャルアクセス)。--複数のプロセスからの入出力要求を1箇所にまとめ、実質的な入出力回数を減らす。--ディスクの書き出しでは、必要以上の同期書き込みを行わない。---即ち、データはディスクに直接書き戻すのではなく、OSのキャッシュに書き出しておき、処理の空いたタイミングでディスクに書き出すようにする。[#d025fadc]-システムの中で複数のアプリケーションが共通に用いるデータを格納して、管理する。-アプリケーションから実際のデータの格納構造を隠蔽し、アプリケーションが必要とする論理構造のみが見えるようにする。-データ量が多く、メモリが入り切らない場合にも対応する。-複数のアプリケーションやユーザーが同時にデータにアクセスする場合でも、効率よく処理する。[#f0d6741a]-会計管理システム--企業の経理活動を記録する。-財務管理システム--財務の分析を行い、経営計画の指針を提供する。-顧客管理システム--顧客データを管理する。--営業活動の指針を提供する。-販売管理システム--販売データを管理する。--売上・利益を管理に必要な指針を提供する。-生産管理システム--生産データを管理する。--原材料の調達から製造までを管理する。-在庫管理システム--在庫量を監視し、品切れと過剰在庫が発生しないように管理する。-人事管理システム--社員情報を管理する。--給与なども管理対象とする。Commerce)--電子商取引。--BtoBやBtoCなどの形態がある。Sales)--販売時点管理システム。--コンビニなどで販売時点で売上を管理するシステムとして使われている。Interchange)--電子データ交換。Support)--製品の調達・設計など全般にかかわる情報化。Design)--製品設計支援システム。Manufacturing)--生産活動支援システム。Automation)--工場自動化。Manufacturing)--コンピュータ統合生産。[#d47b7065]-I/Oの性能劣化は待ち行列によるものが多い。--よって、分析の際には待ち行列がないかどうかを注意する。--[[待ち行列]]の理論では、サービスタイムとレスポンスタイムという2つの時間が存在する。---サービスタイムとはサービス(ここではI/O)を実施している時間である。レスポンスタイムとは、I/Oを実施していない待ち時間も含めた時間である。---ユーザーからすればレスポンスタイムが重要だが、サービスタイムとレスポンスタイムが大きくかけ離れているところこそが待ち行列が生じている箇所であるため、分析の詞兄はサービスタイムも調べることが重要と成る。-[[sarコマンド]]や[[iostatコマンド]]はOSから見たディスクの様子しかわからない。--OSからは1本に見えていても、実際のディスクは5本存在するかもしれない。-仮想化が進んでいる構成の場合は、できるだけ多くのポイントでiostatのような情報を取ることでボトルネックを見つけることができる。--DBMS、[[ボリュームマネージャ]]、[[OS]]([[デバイスドライバ]])、ストレージ用の[[スイッチ]]、ストレージといったポイントでI/Oの性能情報を得る。上位レイヤと下位レイヤで比較して、詰まっている箇所を見つければよい。[#gb6c44ec]-ブロックが増えてきた場合、管理の都合上からDBMSがツリーを高くするケースもある。-さらにインデックスの場合、データが削除されて領域が空いたからといって、どんなデータでも入れられるわけではない。順番に従ったデータのみが格納対象となる。--これはインデックスは特にフラグメントしやすいことを意味している。[#w7e18774]-デフラグメントにはexportなどでデータを抜き出してから、もう一度入れ直してブロック内のデータを整然と並べる方法がある。-DBMSの機能を用いて再構成(再編成)する方法がある。やさしく学ぶデータベース。