データベースについて調べてみた

データベースについて調べたことのメモ。Oracle要素多めになる予定。

NoSQLについて調べてみた

Oracle要素多めになる予定と言いつつ、前から気になっていたNoSQL系のデータベースが何者かを調べてみたときのメモをまとめてみた。 

NoSQLとは…

  • NoSQLはNot Only SQLの略
  • SQLを使用しないでデータ操作ができるデータベースの総称
  • RDBMS以外のデータベース管理システムの総称
    RDBMSSQLを使用することから、SQLを使用しない≒RDBMS以外ということ
  • RDBMSよりもビッグデータの取り扱いに適している

 

何故ビッグデータに適しているのか?

NoSQLに関して以下の特徴があることから、RDBMSと比較してビッグデータに適しているのだと自分の中で理解。

  • スキーマレス
    事前にデータ構造を定義しておく必要がない。ビッグデータはテキストや画像などの非構造化データや、JSONなどの半構造化データが多いのため、格納に適している。
  • トランザクションレス
    最終的に整合性が保たれていればよい、結果整合性を前提とした設計思想になっている。
  • リレーションレス
    ビッグデータに必要となる処理速度やスケールアウト性を保つために、リレーションを原則持たない。
  • スケールアウトしやすい
    大量データの分散処理による高速処理や耐障害性の向上がはかれる。

 

NoSQL系データベースの種類

NoSQL系のデータベースは4つの系統に分類できるようだ。各系統と属するプロダクトは、以下の様な感じ。各系統の詳細は、気が向いたら調べてみようと思うので、気になる点も備忘兼ねて記載。

1.KVS

Key Value Storeの略で、KeyとValueがペアとなって格納されるデータベース。単純だけど、1つのKeyに複数のValueを入れたくなるときはどうするんだろうか。そういうときはKVSをそもそも選択しないのだろうか?複数のValueを1つのValueと見立てて格納するのだろうか。

  • Redis
  • DynamoDB
  • etc...

2.ドキュメントDB

ここでいうドキュメントはJSONXMLのようなデータのことで、これらを格納できるデータベース。RDBにCLOBとして単に格納するのとは違うメリットなどがあると思うので、後で調べてみよう。

3.カラムストア(ワイドカラムストア)

カラム方向に処理を行うデータベース。DWH的な使い方をしたいときに選択するのだろうか?TeradataやNetezzaとはどのあたりが違うのだろうか。

  • Cassandra
  • HBase
  • etc...

4.グラフDB

データをグラフ構造で格納するデータベースで、データ間のリレーションの扱いに特化している。リレーションに特化するためにどういうデータ構造になっているのか気になる。

  • Neo4J
  • etc...

 

参考文献

NoSQLのことを調べるためにインターネット上の様々なサイトも見つつ、10年以上前のものですが、下記の書籍も読みました。端的に書かれていて、NoSQLについて何となくわかった気分になれました。

NOSQLの基礎知識 (ビッグデータを活かすデータベース技術)

 著者:本橋信也, 河野達也, 鶴見利章, 太田 洋(監修)
出版社:リックテレコム

発売日:2012/04/15

 

 

次の記事:KVSについて調べてみた