LoginSignup
8
5

More than 3 years have passed since last update.

こんにちは! 私はグウェン(https://twitter.com/gwenskiesHere)です。
アプリを開発始める前に、アプリのストラクチャーとかデザインとかデータベースを決めることが必要です。
1つの重要なものはデータベースです。これはすべてアプリの必要なデータを格納するからです。
だからこそ、今日はSQLとNoSQLの違いについて説明したいと思います。

Untitled presentation.png

SQLデータベースとは

SQLデータベースは 「リレーショナルデータベース」です。SQLは「Structured Query Language」の略語で、データーベースをアクセスし、管理することという言語です。データベース内のデータを作成とか更新とか削除ができます。
SQLデータベースは制限的です。だから、SQLデータベースを使用する前に、データの構造を決定するために事前定義スキーマを使用する必要があります。

データベーススキーマの例画像

image.png

SQLテクノロジ

  • MySQL
  • PostgreSQL
  • Oracle
  • Sqlite
  • MS-SQL

NoSQLとは

NoSQLは非構造化データのために動的なスキーマです。
フレキシブルなので、色々な方法でデーターを蔵し、表現することができます。例えば、「column-oriented」や「document-oriented」や「graph-based 」の方法です。

NoSQLでのデータ表現

image.png

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

8
5
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
8
5