駆け出しのエンジニア日記

プログラミング言語勉強中の奮闘日記

データベース入門

データベースとは、管理しやすいように整理されたデータ群です。

なぜデータベースが欲しいのか??

一つにデータの永続性が欲しいからです。

これまではサーバーが再起動するたびにデータが消えてしまうので、使い物になりません。

 

メリットとして下記のことが挙げられます。

・大量のデータを効率的に扱い、保存が可能

・データの照会、挿入、更新を容易にするツールもある

・データへのアクセスを制限するセキュリティ機能もある

・スケールする

 

データベースの世界では、大きく2種類に分類することができます。

SQLデータベース・・・

MySQL/Postgre/SQLite/Oracle/Microsoft SQL server

No SQLデータベース・・・

Mongo DB/Couch DB/Neo4j/Cassandra/Redis

 

SQLデータベース

SQLという言語を用います。リレーショナルデータベースであり、すべてのデータはテーブルというものにいれ、そのテーブルの形をあらかじめ決めておき、データを挿入するものになります。

形というものは必ず守らないといけません。

「リレーション」

簡潔にまとめると、テーブル同士の関係を設定し、関連付けるものである。(Excelで言うところの別シートのデータを紐づける意味)

ちなみにSQL文の例

取得:SELECT * FROM テーブル名
追加:INSERT INTO テーブル名 VALUES(追加したいモノ)
更新:UPDATE テーブル名 SET カラム名 = 値, カラム名 = 値 WHERE id = 1
削除:DELETE FROM テーブル名 WHERE 条件

 

・No SQLデータベース

文字通り、SQL言語を使いません。

その代わりに多種多様な方法でデータを扱います。そして関係テーブルとは異なる方法

でデータを保存します。

NoSQLデータベースには、データモデルに基づいたさまざまなタイプがあり、主なタイ

プは、ドキュメント、キーバリュー、ワイドカラム、グラフです。

その中の例として、上記のMongo DB/Couch DB/Neo4j/Cassandra/Redis が挙げられるのです。

 

今後はドキュメントデータベースでもある、Mongo DBについて詳しく記述します。

ドキュメントデータベース・・・

JSONJavaScript Object Notation)オブジェクトに似たドキュメントにデータを保存します。

そしてスキーマレスでデータ構造が柔軟なものです。

あらかじめ形を決めておく必要がないので、幅広い使用例に適しており、汎用的なデータベースとして使うこ

とができます。