RDB・NoSQLについて

たまに見かける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の違い

RDBNoSQL
スキーマ×
トランザクション×
大規模データ×

これらの特徴を生かして、以下のように用途を使い分けていけるといい感じに!

RDB
→ 一貫性が必要(データの削除や変更を多くする)な場合やデータが複雑な構造をしている時(多 対 多関係)などに使用する
NoSQL
→ 参照のみのデータや大規模な単純な構造をしているデータ(ツリー型・階層型)などに使用する