DB(データベース)について
今回はデータベースに関する基礎的な内容を具体例を合わせて紹介していく。
1. データベースとは
まずそもそもの話として、データベースと実態を持たない概念であることを理解する必要がある。
よく「データベースの更新」や「データベースの異常」というように実態を持っているかのように扱われることがあるが、これらの使われ方は「データベース化されたデータ」 を指し示しており、本来のデータベースの意味とは少し異なっている。
ではデータベースの本来の意味とは何なのか。明確な定義はないものの以下の意味が本来の意味合いである。
・ある特定の規則に基づいたデータの集まり
一方で「DBMS(データベースマネージメントシステム)」を指し示すこともある。こちらに関しては、今回の記事で詳細までは述べないが、データベースを管理するためのアプリケーションであると認識してもらえれば問題ない。
以下ではDBの成立ちと具体例を挙げながら説明していく。
2. データベースの成立ち
データベースという言葉自体が生まれたのは第二次世界大戦中である。当時の米軍内でデータや資料保管の機密性に課題があることから、外部からの攻撃や干渉に耐えうる堅牢な施設で集中管理することが考案され、その施設の名前が「DATA(データ)+BASE(基地)」としてデータベースと名付けられた。
現在ではデータベースは主としてIT業界で使われているが、元々の語源は上記のような軍事用語であった。では、いつかはIT業界で使われるようになったのか。
IT界隈で用いられる意味・定義の元となったのは、1959年に発表された論文で言及された「Source File」という概念である(ソースコードの書かれたファイルのことではない)。「Source File」とは、「あるシステムに関係するデータを1つにまとめたファイル」と言い換えることができる。例として、あるシステムに①アカウント情報と②住所情報というサブシステムがあり、必要なデータをそれぞれが独自の形式で保存しているとする。
①アカウント情報
・名前
・メールアドレス
・電話番号
②住所情報
・名前
・郵便番号
・住所
・電話番号
これらのデータは、システム同士でデータの重複やデータの形式(名前の敬称の有無、ハイフン有無など)が違っている場合がある。そこで、1つ、ないし少数のファイルで一括して管理しようと「Source File」の概念が提唱されるようになった。
3. DBMSとその構造
データベースには様々な種類があり、過去より多くのDBMSと共に、開発がなされてきた。世界初のDBMSは、IDS(Integrated Data Store)であり、ナビゲーショナルデータベースというデータベースを採用している。
このナビゲーショナルデータベースでは、データ同士に「親」「子」という関係を設定するものである。例として、「『こーびー』は『Crossover』のメンバー」「『こーびー』は『技術開発部門』を担当している」「『技術開発部門』は『Crossover』に属する」という関係性があった場合、以下のような表現となる。
◼︎ Crossove
Ⅰ - ◼︎ 技術開発部門
Ⅰ - Ⅰ - ◼︎ こーびー
IDSに続いて開発されたのが、IMS(Information Management System)であり、こちらとナビゲーションデータベースを採用しているが、データ構造が少し異なり、IDSの例と同様に記すと以下のようになる。
◼︎ Crossove
Ⅰ - ◼︎ 技術開発部門
Ⅰ - ◼︎ こーびー
IDSで採用している方式は関係性を自由に構築できる一方、構造が複雑になりがちである。対して、IMSで採用されている方式はシンプルで動作速度も早い一方、「たなきんさんは『マネジメント部門』と『営業部門』を兼任している」といった状況を表現することが難しい。
① IDS
◼︎ Crossover
Ⅰ - ◼︎ マネジメント部門
Ⅰ Ⅰ ------------
Ⅰ - ◼︎ 営業部門 Ⅰ
Ⅰ ----------- ◼︎たなきん
→構造が複雑化
② IMS-1
◼︎ Crossover
Ⅰ - ◼︎ マネジメント部門
Ⅰ Ⅰ - ◼︎ たなきん
Ⅰ - ◼︎ 営業部門
Ⅰ - ◼︎たなきん
→たなきんが二つあり、更新漏れが懸念
②IMS-2
◼︎ Crossover
Ⅰ - ◼︎ マネジメント部門
Ⅰ - ◼︎ 営業部門
Ⅰ - ◼︎ マネジメント部門兼営業部門
Ⅰ - ◼︎たなきん
→例外が増えるほどシステムが煩雑化
IDSとIDMでは同じナビゲーショナルデータベースを採用しているが、データベースモデル(データベースの構造)が違うため、両者にはそれぞれ名前がついており、IDSで採用している方法を Network Database Model(ネットワーク型データベースモデル)、IMSで採用している方法をHierarchical Database Model(階層型データベースモデル)と呼ばれている。
4. リレーショナルデータベースの台頭
1970年頃からそれまでメインに使われていたナビゲーショナルデータベースに対して、新たなデータベースであるリレーショナルデータベースがが開発された。
大きな違いとして、ナビゲーションデータベースではデータ同士に「親」「子」関係に基づきデータを参照していたのに対し、リレーショナルデータベースでさ、列と行の組み合わせで目的のデータを参照する。先程の「『こーびー』は『Crossover』のメンバー」「『こーびー』は『技術開発部門』を担当している」「『技術開発部門』は『Crossover』に属する」の関係性を例にすると、下記のようなデータとして保存される。
(こーびー, Crossover, 技術開発部門)
リレーショナルデータベースの利点としては、データ構造が変化しても、プログラムの書き換えが必要ない点がある一方で、処理速度の低下がデメリットとして挙げられる。そのため開発された1970年台には、すぐに商業用として用いられることはなく、ナビゲーショナルデータベースの補助として使われる程度であった。しかしながら、現在ではPCの処理能力の進歩もあり、ほとんどのDBMSがリレーショナルデータベースを採用している。No CodeであるBubbleのデータベースもリレーショナルデータベースが用いられている。
5. まとめ
今回はデータベースの概念とこれまで使用されてきたデータベースの種類と構造について説明した。今回の記事ではDBMSでの、データベース構造までしか述べなかったが、機会があればDBMSの持つその他の特徴も説明出来ればと思う。
また、今回の記事だけではこのデータベースをどの様に実プロダクトにて活用するかも分かりにくいと思うので、今後プロダクトと合わせての紹介もしていきたい。
この記事が気に入ったらサポートをしてみませんか?