この記事では、データベース構築にあたり、知っておきたい基礎知識について、説明する。
タイトルの通り、初心者向けの記事になっているので、そのつもりで読んでほしい。
目次
1.データベースの定義とは
まず、データベースとは何か定義をする必要がある。データベースソフトで有名なオラクル社では、データベースを以下のように定義している。
データベースとは、構造化した情報またはデータの組織的な集合であり、通常はコンピューター・システムに電子的に格納されています。
データベースは通常、データベース管理システム(DBMS)で制御します。データとDBMS、およびそれらに関連するアプリケーションをまとめてデータベース・システムと呼びます。多くの場合は単にデータベースと呼んでいます。
現在運用されている最も一般的なタイプのデータベースに格納されているデータは、処理とデータのクエリを効率化するために、一連のテーブルの行と列でモデル化されていることが普通です。
このようにデータをモデル化すれば、アクセス、管理、変更、更新、制御、および整理が容易になります。
ほとんどのデータベースでは、データの書き込みとクエリに構造化クエリ言語(SQL)を使用します。
Oracle Japan 公式サイト『データベースとは』より一部抜粋
もう少しかみ砕くと、「ある一定の規則に従って関連性のあるデータのかたまり」をデータベースと呼んでいる。
また、データベースと言うと電子的なものを想像しがちであるが、辞書や電話帳なども一種のデータベースである。(ただし、この記事では、電子的なデータベースを対象とする。)
そして、データベースには、次のような特徴がある。
- 独立性
- 冗長性の排除
- 同時処理の制御
➀独立性
データベース自体が独立しており、格納構造を変更しても、アプリケーションプログラムに影響を及ぼさない
②冗長性の排除
データベースは、冗長性を排除する必要がある。そのため、データを論理的な関係に基づいて設計・管理するべきである。
③同時処理の制御
データベースは、同じデータを同時に処理できないよう制御する必要がある。そのため、排他制御により、データを保護し整合性を保つべきである。
2.データモデルについて
データモデルとは、データ同士の関係性などを論理的に記述したものである。
代表的なデータモデルは以下の通りである。
- 関係モデル
- ネットワークモデル
- 階層モデル
2-1.関係モデル
関係モデルは、データの従属関係は度外視して、表形式で表すデータモデルである。最も一般的なデータベースの型であるリレーショナルデータベースも関係モデルである。
関係データベースは、表、行、列で出来ており、それぞれの呼び名や何を指しているかは必ず覚えてほしい。
表(テーブル) | 複数のデータを収容する場所 |
行(レコード、組) | 1件分のデータを表す |
列(フィールド、属性) | データを構成する各項目を表す |
2-2.階層モデル
階層モデルは、階層構造(木構造)によってデータを管理するデータモデルである。
2-3.ネットワークモデル
ネットワークモデルは、階層構造を多対多で持つデータモデルである。階層モデルが、「1対多」なのに対し、ネットワークモデルは、「多対多」である点が異なる。
2-4.オブジェクト志向モデル
オブジェクト志向モデルは、データと処理手続きを一体化したオブジェクト志向のデータ構造をもつデータモデルである。写真・画像・音声などの異なるデータを統合して扱うことができる。
3.スキーマとは
スキーマとは、データの性質、形式、他のデータとの関連などのデータ定義の集合をいう。
ANSI(米国規格協会)の規格によると、下記の3層に分けて仕様が定義される。(3層スキーマ)
3層に定義を分けることで、論理データと物理データの独立性を高めている。
- 外部スキーマ
- 概念スキーマ
- 内部スキーマ
3-1.外部スキーマ
外部スキーマでは、利用者の必要とするデータの見方を表現する。外向きの概念であり、プログラムに加えた変更は、外部スキーマまでしか影響しない。
3-2.概念スキーマ
概念スキーマでは、事象を抽象化してデータの論理的関係を表現する。いわゆるデータベース本体である。プログラムからもハードウェアからも切り離されており、データの独立性が保たれている。
3-3.内部スキーマ
内部スキーマでは、記憶装置(物理装置)上にどのような形式や編成で記録するかというようなデータの物理的関係を表現する。概念スキーマをコンピュータ上に実装するための記述である。
ハードウェア的な変更は、このスキーマで影響を吸収する。
4.DBMSとは
DBMSとは、Data Base Management Systemの略であり、ユーザとデータベースの中間に位置し、データベースの定義や操作、制御などを行うミドルウェアである。
DBMSは、次のような機能を保有している。
- 定義機能
- リカバリ機能
- セキュリティ機能
- 再編成機能
- 排他制御機能
- オプティマイズ機能
4-1定義機能
各種スキーマの定義を行う機能。
4-2.リカバリ機能
破壊されたデータベースを復元する機能。
4-3.セキュリティ機能
データの不当な漏洩や改ざんを未然に防止するために、アクセスを制御する機能。
4-4.再編成機能
データベースの格納位置などを再編成し、アクセス性能を向上させる機能
4-5.排他制御機能
複数の利用者が同じ情報を更新する際の不整合を防止するために、アクセス制御する機能。なお、排他制御の方法は大きく2つに分けられる。
(1)共有ロック
共有ロックとは、編集者以外のユーザがデータを読むことは出来るが、書くことは出来ないロックの方法である。
(2)専有ロック
専有ロックとは、編集者以外のユーザがデータを読むことも書くことも出来ないロックの方法である。
デッドロックとは、複数のトランザクションがデータをロックすることで、お互いがお互いのデータをロックしてしまい、待ち状態が永遠に続いてしまう状態のこと指す。デッドロックになってしまった場合、いずれかのトランザクションを強制的にキャンセルする必要がある。
4-6.オプティマイズ機能
SQL文での問い合わせを最適化し、処理の実行計画をつくる機能。
5.クレンジング
クレンジングとは、データを扱いやすくするために、重複や誤記、表記の揺れなどを探し出し、削除や修正、正規化などを行い、データの品質を高めることである。
・半角全角、スペースなどのルールを統一する
・NULL値はDBの世界では扱いにくい。NULL値はDB上に何もデータがないことを表す。
【まとめ】システム設計をするにはデータベースの基本を知っておいたほうが良い
いかがだろうか。今回はデータベースの基本について説明した。
データベースは、ほとんどのシステムに必要なものであり、基本的な概念は押さえておいたほうが良い。
この記事が少しでもお役に立てば幸いである。
↓↓この記事がお役に立ったならば、応援クリックを押していただけると大変嬉しいです↓↓