データベースとは
データベースの語源は、1950年頃のアメリカ国防総省において、各所に分散していた軍事などの情報を1カ所に集め、
管理できるような「データの基地(DATA BASE)」を作るということからきたと言われています
データベースの役割
データベース本来の役割は、
◆1か所で集中管理する
◆システムから独立させる
ことにあるということです
システムからの独立とは、データベースとプログラミング言語を分離させることでデータ管理の容易性と開発効率、保守効率を実現することにあります
データベースと言った場合、OracleやMysqlに代表されるリレーショナル(関係)データベースを指すことが多いです
しかし、データベースとは、リレーショナル(関係)データベースだけではありません
リレーショナル(関係)データベースも含め、以下のようなデータベースがあります
◆階層型(ハイアラキカル)データベース
レコードを親子関係に分け、親子関係を階層構造(木構造)で表す構造型データベースの1つである
親レコードと子レコードとが1:n(1対多)の関係となり、子レコードから見ると親レコードは1つしか存在しません
会社などの組織構造をイメージするとわかりやすいです
◆ネットワーク型データベース
階層型データベースで、親レコードと子レコードとがm:n(多対多)の関係となり、子レコードから見ても親レコードは複数存在する構造となります
◆リレーショナル(関係)データベース
関係データベースは、1件のデータ(レコード)を複数の項目(フィールド)の集合として表現し、データの集合をテーブルと呼ばれる表(非構造型データベース)で表します
ID番号や名前などのキーとなるデータを利用し、データの結合や抽出を容易に行うことができます
データベースの操作は、一般的にSQLと呼ばれる言語を使います
◆オブジェクト指向型データベース
オブジェクト指向(操作対象となるオブジェクト(データの集合と手続き)で管理する)に則した形で格納するデータベースです
現在はリレーショナル(関係)データベースが主流
現在は関係データベースが主流ですが、なぜでしょう?
階層型やネットワーク型が構造に依存していたためです
つまり、階層型やネットワーク型は構造を理解しないと、システム開発できないのです
もちろん、リレーショナル(関係)データベースも構造を理解する必要があるではないかと思われるかも知れません
リレーショナル(関係)データベースの場合は、構造というより、表(テーブル)の関連を理解する必要はありますが、
データベースそのものの構造は行と列という至ってシンプルな構造です
それに引き替え、階層型やネットワーク型は構造そのものを理解し、
併せて階層やアクセスパスなどを熟知しないとシステム開発できない属人的な構造なのです
ご存じの通り属人的であることは、柔軟性がないということです
柔軟性がないということは結果的に高コストになるということでもあるのです
リレーショナル(関係)データベースは、操作対象となる表(テーブル)と操作(SQL)を分けて扱うことができるため設計者、開発者、運用者など、関係データベースの理論が分かれば分業することが可能なのです
また、リレーショナル(関係)データベースは関係代数や正規化などの数学理論によって成り立っていることも、普及した原因であると考えられます
これらの理由でリレーショナル(関係)データベースが主流になったのです