Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@k-tetsuhiro

Azure Cosmos DB ~NoSQLについて~

More than 1 year has passed since last update.

はじめに

マイクロソフトのCosmosDBの勉強会に行ってきました。
いままでNoSQLについてあまり触れる機会がなかったので、
できるだけわかりやすいようにまとめました。

データベースの種類

MySQLは誰もが1回は触ったことがあるデータベースだと思います。
MySQLはリレーショナルデータベース(RDB)という種類のデータベースです。
しかし最近はNoSQLと呼ばれるものがあります。

このリレーショナルデータベース(RDB)NoSQLは何が違うのでしょうか。

リレーショナルデータベースのメリット

・リレーションでデータをつなげることが出来る
たとえばuserテーブルにユーザーの情報を持ち、そのidを別のテーブルにuser_idなどとして持つと、
テーブルの連結ができる

・データの型が決まっている
CHAR型、 INT型, DATE型などで入れられるデータが決まっているので
それ以外のものを入れられないので変なデータが入らず、整合性が高まる

・トランザクションで整合性が保てる
トランザクションを複数行ではれるので、途中で失敗してもロールバックすることですべてをもとに戻せる。

リレーショナルデータベースのデメリット

・データ量が増加することにより、パフォーマンス低下に繋がる
膨大なデータ(例えばユーザーログ)等とは相性が悪い。

・データの型が決まっているので自由にデータを入れられない
JSON型のデータなどを扱うには相性が悪く、さらにカラムを1個追加する場合はSQLが必要である。

基本的にはスケールアップ(DBサーバーのスペックを上げること)でしか対応できない
スケールアップにも限界があるので、巨大なシステムになるといつか詰む。

NoSQLのメリット

・データの型が決まってないので自由にデータを入れられる
JSON型でもINT型でもDATE型でも、どんなデータでも自由に入れられるので拡張性がある。

・スケールアップでなくスケールアウト出来る
DBサーバーの台数を増やせるので柔軟に対応出来る

・拡張性に優れている
何個も簡単にレプリカつくれたりする

NoSQLのデメリット

・一貫性ががない
トランザクション処理に弱いので、ここからここまでで一個のトランザクションっていうのが出来ない
※基本的には1トランザクション1件になる

NoSQLは万能なわけではない

NoSQL向きなものとして例をあげると
ツイッターのメッセージ等は投稿してすぐに世界中のみんなが見れなくても特に問題にはならない
そのかわり、毎日大量に投稿される

逆にNoSQLに向いてないものとして整合性が重視されるものがある
銀行口座の金額は必ず正確でなければいけないし、予約システムでは二重予約などがおこってはいけない。
こういうものはリレーショナルデータベースが向いている

最後に

これらの基礎知識をもったうえで次はAzure CosmosDBについて実際にに触れていく
→次へ続く...

1
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
k-tetsuhiro
東京→福岡に移住してエンジニアをしてます! YoutubeやインスタでFukuokaBaseでも活動しています〜! Youtube : https://www.youtube.com/channel/UCZ7rtcqhTJCBpy9gTMHp5SQ Instagram : https://www.instagram.com/fukuokabase/

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?