NOSQL
システム開発にてデータを保存する際、Oracle,MySQLをはじめとするリレーション型のデータベース(RDBMS)が一般的に使われてきました。SQLと言われる言語を用いて、データを登録・更新・削除を行うシステムです。データ間に連携がある場合にもSQLは柔軟に対応しており、SQLを覚えることはデータベースアクセスに必須の言語でした。
昨今では、NOSQLと言われるデータベースが登場しつつあります。SQLを使わずにデータを登録・更新・削除する仕組みです。
個人的に私が経験したNOSQLなデータベースは以下です。
Apache River
私が経験したときはまだSunMicrosystemsが運営しておりJiniと言われていました。Javaのクラスをネットワーク上に共有する分散システムです。ストレージではなくネットワーク上の共有空間に、問合せやトランザクションが張れる仕組みでした。
※jiniはNOSQLという言葉が出てくる前の遠い昔の技術です・・・。
Realm
モバイル向けDBから始まったデータベースです。RealmObjectを継承したクラス単位にデータ保存が可能です。Androidアプリ開発では非常に便利に使えました。
いま気になっているデータベースはこれです。
MongoDB
大量データを捌くために開発されたデータベースです。
JSON単位でデータ保存が可能。利用率は世界第4位との情報も見受けられます。 www.mongodb.com
あとは大手クラウドは以下のようなサービスを展開しています。
Firebase
Google社が運営。GoogleCloudPlatformと連携可能。MonogoDBから始まってリアルタイムデータベースへ。データの変更がAndroidへリアルタイムにプッシュされたりします。
またモバイル側がオフラインでもモバイル側のキャッシュで動作するので、サーバレスなアプリが開発も可能と言われています。
DynamoDB
CosmosDB
Microsoftが運営。Azureで利用可能。