こんにちは😀
前回はDBMSをみてみましたが、今回はその続きとしてデータベースの構造をみていきます。
スキーマとは
データベースの構造や仕様を定義するものを、スキーマと言います。
標準的に使用されているANSI/X3/SPARCという規格では、3層スキーマ構造をしています。
これは、以下の3層に定義を分けることでデータの独立性を高めています。
外部スキーマ
利用者の必要とするデータの見方を表現します。
ビュー表はこれに該当します。
また、ユーザやプログラムに対して必要なデータだけを提供します。
概念スキーマ
データの論理的関係を表現します。
表の定義はここで行います。
プログラムからもハードウェアからも切り離されているので、どこにも依存することなく、データの独立性が保たれます。
内部スキーマ
データの物理的関係を表現します。
物理的にどう記憶させるかを定義します。
ハードウェア的な変更は、このスキーマで影響を吸収します。
主キーとは
データベースの表には、その中の行の1つ1つを識別できるようにキーとなる情報のことを、主キーと言います。
表の中で、一意であることが保証された列が1つであるとは限りません。
主キーになりうる列が2つ以上ある場合は、その片方を候補キーと言います。
データベースには、格納されているデータの整合性を保つために、いくつか制約が定められています。
この制約を整合性制約と言います。
主キーに選ばれた列には、以下の制約が課されます。
一意性制約
データに重複がなく、必ず一意であることを指します。
これが指定された列では、テーブルに含まれる全ての行で重複することはありません。
NOT NULL制約
NULLは値が設定されていない状態です。
この制約のある列には、必ず値が入っていなければいけません。
外部キーとは
表と表とを関係付けるため、他の表の主キーを参照することを外部キーと言います。
この外部キーにおいても整合性を保つための制約があります。
参照制約
外部キーに含まれる値は、参照先となる表の列内に必ず存在しなければなりません。
インデックスとは
データベースは検索性に優れているとはいえ、大量のデータがあると速度的な問題が発生します。
インデックスとは、索引として用いるキーのことです。
これを設定することで、検索効率を高め、速度の向上を図ることができます。
ただし、インデックスは表とは別にデータを保持するため、表の内容が更新されるとインデックス側の更新も必要となります。
そのため、データの追加・削除・更新の際の処理速度は低下します。
今回の一言・・・
今回はデータベースを扱う上での基本になります。
よく使う方法なのでしっかり確認しておきたいところです。
ここまで読んでくれてありがとう。
では、また次回。
コメント