0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SQLとNoSQL

Posted at

これまでMySQLしか使ったことがありませんでしたが、新しく参加しているプロジェクトではMongoDBを使用しています。

MySQLはいわゆるSQLの部類であり、MongoDBはNoSQLの部類に属します。

それぞれの違いはわかっているつもりですが、あまり詳しく深ぼったことはなかったので、違いやそれぞれの得意分野について端的にまとめておきます。

また、特定のデータベースの使用法などに踏み込むことはありません。

SQL

概要

SQLは「RDBMS」(リレーショナル型データベース)とも呼ばれ、MySQLなどの表形式でデータベースを管理する形式です。保存するデータの形式はあらかじめスキーマとして定義する必要があります。

利点

  • データの形式が固定されているため、データの整合性と一貫性を保つことができる
  • SQL言語を用いた複雑なデータの更新、検索、関係構築が可能

欠点

  • スキーマの変更や拡張が困難で、データベースの柔軟性に制限がある
  • 大規模データセットや高いトランザクション負荷への対応が難しい場合がある

データベース例

  • MySQL
  • PostgreSQL
  • Oracle

NoSQL

概要

NoSQLはSQL以外のデータベース管理方法で、保存するデータの形式をより柔軟に扱うことができます。スキーマレスまたは動的スキーマを採用しています。

種類

  • 文書ベース(例: MongoDB)
  • キー・バリュー・ストア(例: Redis)
  • グラフデータベース(例: Neo4j)
  • 列指向データベース(例: Cassandra)

利点

  • スキーマレスのため、データモデルの拡張が容易で柔軟性に富む
  • 分散処理に優れ、大容量データの高速処理が可能
  • サーバーの追加によるスケールアップが容易

欠点

  • トランザクションの一貫性と整合性の保証が低い場合がある
  • 複雑なクエリやデータの関連性を扱うのに向いていない

データベース例

  • MongoDB
  • Cassandra
  • Redis
  • Neo4j

終わりに

これまで特にデータベースにこだわったことはなく、なんとなくMySQLを毎回選んでいましたが、これを機にそれぞれの特性に基づいて技術選択などができるとよいなと思いました。

参考

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?