応用情報知識メモ12(DB)


確認問題

・選択、射影、結合について説明せよ。
・三層スキーマ構造を列挙し、それぞれの特性について説明せよ。具体例を用いて説明すること。
・主キー、外部キー、インデックス、正規化、について説明せよ。
・DDLの具体例を4つ挙げよ。
・ACID特性について説明せよ。
・分散データベースシステムについて説明せよ。その際「透過性」というキーワードを用いること。

関係演算(選択、射影、結合)

選択:テーブルの行を条件にしたがって抽出すること
射影:テーブルの列を条件にしたがって抽出すること
結合:テーブルの特定の列を結合すること

三層スキーマ構造

DBを考えるとき、見た目(ビュー)、内部の論理構造、内部の物理構造はそれぞれ互いに干渉しないようにしたほうが管理しやすい。それをスキーマという用語で分割している。
外部スキーマ:ユーザーから見たデータ。どのテーブルのデータを結合して結果として取得するか等、プログラム処理やSQLのSELECT文の内容など。ビューなどデータ利用時に関連するもの。
概念スキーマ:外部スキーマを管理しやすくするために重複を排除したり一位制約を課したり、正規化を実行するもの。ER図などでエンティティ間の関係性を示すことも含む。
内部スキーマ:データを物理的にどのように格納するか。データ型やデータ長を決めたり、インデックスをどこに設計するか、など。

主キー、外部キー、インデックス

既知のため説明なし。

正規化

正規化は第一から第三まである。最終的な管理しやすい状態が第三正規化
である。
第一、第二、第三をキッチリ理解することの重要性が低そうなので説明を省略する。一部の用語だけは説明しておく。
関数従属:いわゆる主キーによって値が一意に定まる関係性。
部分関数従属:複合キーの一部のキーだけで、値が一意に定まる関係性。

データ定義言語:DDL(Data Definition Language)

CREATE, ALTER, DROP, TRUNCATE。
CREATE VIEW、CREATE TABLE など。

データ操作言語:DML(Data Manipulation Language)

SQLの基本文については省略する。
select * from テーブル名 where id = '001' order 注文日付 asc; など。
また副問合せ(IN、EXISTS)についても省略する。
NULLを含むデータの扱いとして、WHERE句にて IS NULL にしなければ取得されない点に注意。
UPDATE、INSERT、DELETEについては省略。

ACID特性

ACIDとはトランザクション処理に求められる4つの特性である。
Atomicity(原子性):原子、つまりトランザクションという処理が最小単位であるように、ということ。トランザクションの途中で処理が終わるようなことはなく、処理が行われるか行われないか、の2択になる特性。
Consistency(一貫性):内容に一貫性があること。
Isolation(隔離性):処理同士が干渉しないように、排他処理がきちんとしていること。
Durability(耐久性):障害発生時の復旧手段があること。

分散データベースシステム

ユーザ側は一つのデータベースと認識しているが、実際は複数のデータベースで構成されているものを分散データベースシステムと呼ぶ。このユーザ側に意識させないことを透過性と呼ぶ。
透過性には以下の6つある。
データモデル:サーバのDBMSが別種類であっても意識しないこと
分割:実データが分割されて格納されていても意識しないこと
移動:データが別サーバに移動されても意識しないこと
複製:同一のデータが複数のサーバにあっても意識しないこと
位置:データベースの物理的な位置を意識しないこと
障害:障害が発生していても意識しないこと


この記事が気に入ったらサポートをしてみませんか?