たまに見かけるNoSQLという言葉について、あまり詳しくなかったので調べて見ました
RDB
「Relational Database」の略
SQL言語通じてデータをやりとりする前提がある
特徴
- データをテーブルで整理(カラムとレコード)
- 外部キーを使って、テーブルごとの関係を記述する (テーブルの結合などが可能)
- 複雑なデータの保持・更新などが得意
ex) Mysql, PostrgreSQLとかとか
NoSQL
「Not only SQL」の略
SQL言語を用いずにデータを管理する
特徴
- 多くは、Key-Valueストア型、JsonやXMLで管理するものもある
- 大量のデータの参照に得意
ex) MongoDB, Redis, DynamoDBとかとか
KVS
Key-Valueストア型データベースの略。1つののキーに対して、データが1つしかない形式のことを言う
RDBとNoSQLの違い
RDB | NoSQL | |
---|---|---|
スキーマ | ◯ | × |
トランザクション | ◯ | × |
大規模データ | × | ◯ |
これらの特徴を生かして、以下のように用途を使い分けていけるといい感じに!
RDB
→ 一貫性が必要(データの削除や変更を多くする)な場合やデータが複雑な構造をしている時(多 対 多関係)などに使用する
NoSQL
→ 参照のみのデータや大規模な単純な構造をしているデータ(ツリー型・階層型)などに使用する