こんにちは! 私はグウェン(https://twitter.com/gwenskiesHere)です。
アプリを開発始める前に、アプリのストラクチャーとかデザインとかデータベースを決めることが必要です。
1つの重要なものはデータベースです。これはすべてアプリの必要なデータを格納するからです。
だからこそ、今日はSQLとNoSQLの違いについて説明したいと思います。
SQLデータベースとは
SQLデータベースは 「リレーショナルデータベース」です。SQLは「Structured Query Language」の略語で、データーベースをアクセスし、管理することという言語です。データベース内のデータを作成とか更新とか削除ができます。
SQLデータベースは制限的です。だから、SQLデータベースを使用する前に、データの構造を決定するために事前定義スキーマを使用する必要があります。
データベーススキーマの例画像
SQLテクノロジ
- MySQL
- PostgreSQL
- Oracle
- Sqlite
- MS-SQL
NoSQLとは
NoSQLは非構造化データのために動的なスキーマです。
フレキシブルなので、色々な方法でデーターを蔵し、表現することができます。例えば、「column-oriented」や「document-oriented」や「graph-based 」の方法です。
NoSQLでのデータ表現
NoSQLテクノロジ
- MongoDB
- Redis
- Hbase
- Neo4j
- CouchDb
SQL vs NoSQL
スケーラビリティ
スケーラビリティの場合にSQLデータベースでは、CPUやRAMやSSDなどを増やすことで、単一サーバーの負荷を増やすことができます。
NoSQLは、分割するか、NoSQLデータベースにサーバーを追加することで、より多くのトラフィックを処理します。
ストラクチャ
SQLデータベースはテーブルベースです。
一方、データベースは「document-based」とか「key-value pairs」とか「graph databases」とか「wide-column stores」です。
サポート
SQLは業界で長年にわたって知られてきました、それはすでにそのベンダーとコミュニティから優れたサポートを確立しました。 一方、NoSQLにはコミュニティサポートしかなく、限られた専門家しかサポートを受けられません。
データを照会する性能
SQLは効率的にクエリを実行し、データを早く取得して編集します。 これは非常に軽量で宣言的なので、学ぶのは簡単です。
NoSQLクエリを実行するには、データに対して追加の処理を実行する必要があります。 データベース層で心配するのではなく、多くの開発者が照会機能をアプリケーション層に組み込んでいます。
まとめ
一つの重要な決定はプライマリデータベースとしてSQLデータベースとNoSQLデータベースのどちらを使用するか、そしてニーズを満たすのために両方を使うする必要があるかどうかです。
SQLデータベースは、構造が頻繁に(またはまったく)変更されず、データの整合性が最優先されるトランザクションデータに大きな利点を提供します。 高速の分析クエリにも最適です。
NoSQLデータベースははるかに高い柔軟性とスケーラビリティを提供し、それは急速な開発と反復に向いています。
読んでくれてありがとうございます。
ソース:
https://www.thorntech.com/2019/03/sql-vs-nosql/
https://www.xplenty.com/blog/the-sql-vs-nosql-difference/
https://www.thegeekstuff.com/2014/01/sql-vs-nosql-db