NoSQL

f:id:utouto97:20210725220657j:plain

NoSQL

このブログでも、ここまで何度か出てきたデータベースのPostgreSQLは関係データベース(リレーショナルデータベース、RDB)です。
MySQLなどもリレーショナルデータベース(RDB)です。

リレーショナルデータベース(RDB)では、テーブルでデータを管理し、整合性を保つために正規化の必要もあります。
また、データ数が多くなってきた場合に、クエリに時間がかかるようになるといった問題点もあります。

そこで、リレーショナルデータベースではないデータベースとして、NoSQLがでてきました。
NoSQLはNot Only SQLからネーミングされています。

NoSQLはデータをテーブルで管理するのではなく、キーバリュー型やドキュメント型などがあります。
キーバリュー型は、Pythonの辞書型やJavaScriptのハッシュのようなイメージです。
ドキュメント型は、JSON形式といったイメージです。
その他、カラム指向型やグラフ指向型などもあります。

「NoSQLの強みは?」

NoAQLのメリットとしては、データ構造が単純で、分散しやすいことが挙げられます。
RDBのテーブルのように、一元管理する必要がないため、マシン毎に分散して管理することができます。
つまり、水平分割しやすいということで、パフォーマンス向上のためには、マシンの台数を増やせばよく、それが容易であるということになります。
ただし、RDBのように厳密な整合性を保つことが難しいといったデメリットも存在します。

「NoSQLって具体的にはどんなものがある?」

キーバリュー型 - Amazon DynamoDB

ドキュメント型 - MongoDB

カラム型 - Cassandra

グラフ型 - Neo4j

終わり