こんにちはもきおです!☺️
データベースについて理解したい!でもネットの情報は分散していてなかなかひとまとめになったページを見つけれず苦労している方も多いのでは?
ここではデータベースの全体像を理解するため、広く、わかりやすくデータベースの種類や基礎知識についてまとめています。
データベース(DB)とは
使いやすい形に整理されたデータの集まりのことです。
データを管理しておく入れ物と捉えるとわかりやすいと思います。『DB』と略して使われることもあります。
データベースマネジメントシステム(DBMS)とは
データベースを扱うためのシステム、ソフトウェアのことです。データベースを使う時に様々なサポートをしてくれます。データベースはデータの入れ物であるだけでこのデータベースマネジメントシステムを利用しないと何も機能してくれません。
RDBMS(Relational DataBase Management System)とは
DBMSの中でもSQLを利用する専用のデータ管理システム、ソフトウェアのことです。関係データベースを使う時に様々なサポートをしてくれます。
大きく分けたデータベースの種類
データベースには4つの種類がありますが階層型とネットワーク型は現在ほとんど使われていません。現在は関係型が主流であり、新しく出てきたのがNoSQLです。
階層型
階層型はツリーのように階層ごとに分かれているデータベースです。
ネットワーク型
ネットワーク型は網目状になっており、多数の複雑なデータを扱う際に用いられます。
関係型(リレーショナル型)(RDB)(relational database)
Excelの様なデータを表形式で扱います。また、表同士をくっつけたりと柔軟に整理することができます。この関係型データベースのことをRDB(relational database)と略して使われることもあります。現在最も主流となっているデータベースです。
主な製品はOracle、SQL Server(MS SQL)、MySQL、PostgreSQL、MariaSQL、SQL Lite などがあります。
No SQL(Not only SQL)
データの問い合わせや操作に用いるSQL言語を使わずに管理することからこのように呼ばれます。RDBMS以外のDBMS(データベース管理システム)の総称です。(くくりはまだ曖昧です)そもそもビッグデータの流行に伴い、既存のRDBでビッグデータを扱うのは不向きでした。(処理速度が低下するため) そのためNoSQLデータベースが作られたのです。膨大なデータ量に対しても高速な処理を実現します。
NoSQLはデータモデルとして『キー・バリュー型』『カラムストア型』『グラフ型』『ドキュメント型』の4つに分けられます。
キー・バリュー型
『キー』『バリュー』をペアにして格納するシンプルな仕組みのデータベースのことです。
主な製品:Redis、Riak、Memcached、Amazon DynamoDB
(製品名をクリックすると製品公式ページに飛びます)
カラムストア型(カラム指向型)
RDBの様な行単位での処理ではなく、カラム型は列単位で処理を行います。キー・バリュー型にカラムの概念を追加したデータモデルとなっています。
(製品名をクリックすると製品公式ページに飛びます)
グラフ型
データをグラフ構造に格納します。グラフは『ノード』『エッジ』『プロパティ』という3つの要素で構成されています。
主な製品:Neo4j
(製品名をクリックすると製品公式ページに飛びます)
ドキュメント型(ドキュメント指向型)
JSONやXMLのドキュメント形式をそのまま格納することができるデータベースのことです。スキーマレス(データ構造の定義を持たない)という特徴を持っています。
(製品名をクリックすると製品公式ページに飛びます)
関連する用語
ここからは関連する用語についてまとめました。データベースを利用する上でよく使う用語や間違えて覚えやすい用語を入れているので参考にしてください。
SQLserver (Micro Soft SQL Server)(MS Server)
Microsoft社が開発したRDBMS(データベース管理システム)の事です。呼び名が色々あるのでここにも書いておきました。
phpMyAdmin
PHPベースでありオープンソース(無料)でブラウザ上にてMySQLとの操作ができます。(MySQLとMariaSQLのみ)
Adminer
こちらもphpMyAdmin同様でブラウザ上にて操作ができるサービスですが、こちらは対応するDBMSが多く存在します。
Postgre SQL,SQL Lite,MS SQL,Oracle,SimpleDB,Elasticssearch,MongoDB,MySQL など
AZURE(アジュール)
マイクロソフト社が出しているサービス名である。僕はAZUREをしばらくDBMSだと勘違いしていましたがAZUREには様々なサービスがあり、その中にSQLServer(MSSQL)があります。
SQL言語(SQL)
データベースを操作する言語のことです。
API(Application Programming Interface)
他のサービスの機能を連携できる仕組みのことです。APIはWeb上で通信して利用するのが一般的なので『Web API』と呼ばれていることが多いです。代表例はGoogleMapAPIでWebページの中にGoogle マップが設置されているケースはよく見かけると思いますがこれらはGoogleMapAPIが使用されているのです。データベースにおいてもデータベースと連携したり、接続したりするときに利用したりします。
ストアドプロシージャ
通常のプログラミング言語のような感覚でデータベースを操作することができます。
最後のまとめ
データベースの基礎概念や種類、主要製品についてをこのページにて説明していきました。データベースは "何かを開発する" にあたってほとんど必要となってきます。なので基礎を知り、しっかり活用できる様にしておきましょう。
以上もきおのデータベースまとめでした。
コメント