LoginSignup
5
4

More than 1 year has passed since last update.

NoSQLについて学んでみた

Last updated at Posted at 2023-03-31

はじめに

普段MongoDBを使っているのですが、最近MySQLに触れる機会があってMySQLって便利だなと思ったと同時に、なぜNoSQLが採用されることがあるのだろうとふと思ったので調べてみました。

NoSQLデータベースとは

NoSQLはRDBMS以外のデータベースの総称です。

NoSQLが使われるようになった経緯

従来のRDBMSはデータの一貫性や複雑な検索や集計が可能といったメリットがある反面、拡張性が低くかったり、データが大量になると処理速度が遅くなるといったデメリットもありました。時代とともに大量の複雑なデータを扱う必要性が高まるなかで、豊富なデータを保存でき高速な処理を行えるNoSQLが台頭してきました。

NoSQLのメリット

高速な処理

RDBMSはトランザクションを使用してデータの整合性を保つために多くの処理が必要になるため、処理が遅くなる可能性があります。一方、NoSQLは必要な処理が少なく、処理速度が速いです。

柔軟なデータモデル

RDBMSはデータの整合性を保つために、データは固定の構造に従っている必要があります。これに対して、NoSQLは、データ構造が柔軟であり、構造化されたデータ以外にも、XMLやJSONなどのような半構造化データや画像や音声などのような非構造化データを扱うことができます。

スケーラビリティ

RDBMSはテーブルと呼ばれる形式でデータを整理し、データの整合性を保ちながら管理するために、元々1つのコンピュータ上で動作するように設計されています。
一方、NoSQLは、複数のサーバーにデータを分散させることができます。これにより、データの増加や負荷増加に対して、柔軟に拡張することができます。

NoSQLのデメリット 

整合性は欠ける

トランザクションを使用しないのでRDBMSに比べ整合性は欠けます。ただし最近ではトランザクションをサポートするNoSQLデータベースもあるようです。

クエリ言語の制限

SQLと比べ複雑なクエリを実行することが困難な場合があります。

まとめ

なぜ普段MongoDBを使っているのかわかった気がします。自分が使う技術の特徴を理解するのは大切だと感じました。

参考

https://atmarkit.itmedia.co.jp/ait/articles/1102/24/news098.html
https://www.integrate.io/jp/blog/the-sql-vs-nosql-difference-ja/
https://products.sint.co.jp/siob/blog/rdbms
https://www.itreview.jp/labo/archives/8914
https://zenn.dev/nameless_sn/articles/nosql-manual

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4