PHP/Elixirエンジニアのブログ

有益なアウトプットを心がけます。

【Webシステム】RDBMSってなに?

いつもご覧いただきありがとうございます。

Webシステム基礎シリーズ、


RDBMSとは何か」について書いていきます。



# RDBMSとは

極論、データを表形式で扱うデータベースのことです。

RDBMSとはRelational Database Management Systemの略で

関係データベースという意味です。

# RDBMSの歴史

データベースが提唱された1960年代、コンピュータで情報を

管理するためのいくつかの方式が研究されていました。

(データベースの種類は前回のブログに記載しています)

【WEBシステム】DB? DBMS? データベースってなに? - プロになるためのWeb技術を学び始めた実務未経験者がアウトプットするために開設した毎晩0:00ギリギリに焦って更新するブログ

 1960 年代後半にネットワーク型データモデルと、IBM 社 の階層型データベース管理システム IMS が発表され、一気にデータベースの関心が高まってきました。
この二つのデータモデルは、発表された当初は注目されていましたが、1980 年代にリレーショナルデータベース管理システム (RDBMS) が実用化されてからは、RDBMS に関心を奪われてしまいます。

 この RDBMS は万能で、ユーザからのデータアクセスやトランザクションを捌くフロントエンドの役割からビジネスデータの解析等を行うバックエンドの役割までこなすことができ、データ管理の定番として長年使われ続けています。

# クラウド型データベースの登場
 しかし、Web が社会の情報基盤として使われるようになると、データ量やアクセス数が凄まじい勢いで増加し、これによって RDBMS ボトルネックになることが多くなりました。これは、RDBMS が多くのサーバに分散してデータを保管したり、処理することが困難である、つまり、スケールアウト面に問題があるためです。

 この問題を解決すべく、二つのデータベースが登場しました。
一つは、2006年に登場した GoogleBigtable で、もう一つは、AmazonDynamo です。後者の方は、2007 年に登場しました。
 これらは、RDBMS が備えている一貫性 (Consistency) と可用性 (Availability) のうち、どちらか一つを犠牲にする代わりに、RDBMS には無い分割耐性 (Partition Tolerance) を備えていて、データの保管や処理を多くのサーバに分散できるスケールアウト可能なデータベースでした。
 これらのデータベースは、上記の問題に悩ませていた多くの人々に影響を与え、これらをもとにしたスケールアウト可能なデータベースの開発が活発化し、2009 年 6 月にそれらの内容を取り上げた「NoSQL meetup」というイベントが開催されました。
 そこから「NoSQL (Not Only SQL) 」という言葉が広まり、主に分割耐性を持つスケールアウト可能なデータベースをそう呼ぶようになりました。

そして現在は、超大規模なデータを扱うシステムの定番になりつつあります。

本日は簡単にRDBMSとは何かについてかんたんにまとめさせていただきました。 

最後までご覧いただきありがとうございました。