お久しぶりです。とーるです。
 最近は艦これと刀剣とねこあつめに忙しい日々ですがいかがお過ごしですか。

 勉強会の主催、すろっくさん(BLOGTwitter)が「BLOGに書くまでが勉強会だからね!」って言っていたので久々にPCでブログ書いてますよ。
 でも主催のブログ記事が見当たりませんよおかしいね?
 トラバも打てないこんな世の中じゃってやつですね。

 さて。前置きはこれくらいに致しまして。

 今回の勉強会、『すろっくとゆかいななかまたちの技術系勉強会.vol1 』ですが、タイトル殻はわからぬものの、テーマはデータベースでした。

 TwitterでNoSQLとPostgreSQLとMySQLみたいな話題になった時に、オラオラーって開催が決まっていたような気がするんですが、ツイ廃すぎてログが追えない。きっと主催がなんとかしてくれる。

 そんなわけで、その場のノリで参加を決めた勉強会ではありましたが、大変勉強になりました。
 面倒なことは続きに入れておきますが、日帰り弾丸で東京行った甲斐はございました。
 次はぱんださんかすろっくさん、お肉食べさせてください。


さて本題。

スピーカーは主催のすろっくさんと、ちづるさん。
サクサク当日のメモを以下に張り付けていくよ。
 

RDBのおさらいと使いドコロ


RDB=Relational Database のこと。
関係モデル→関連データを持つ。
テーブル単位でデータを管理するので、クエリ結合が前提。

NoSQL=Not Only SQL のこと。
RDB以外のDBプロダクト全般。
DB=RDBだった歴史からDBの使い方を考えなおす概念。

NoSQLにはいくつか種類がある。

キーバリュー:キーと値
ソート済みカラム型:ソートキーがアレば、横に持っていい カサンドラ、HBASE
ドキュメント思考:XML、Jsonなど、スキーマレスで。
    MongoDB、CouchDB

列指向DBとNoSQLは違う。
列指向:Redshift、BigQueryなどのこと。
大量のデータを取り出すためのもの。

Key-Value Store
キーを元に取り出す
アトミック制の担保…トランザクションはアトミックの一つ
Joinは向かない
トランザクション処理と異なり複数キーの扱いに向かない
高速な性能の活用
RDBっぽく使うの向かないどころか不幸になる。

例外:ドキュメント指向DB
    →使えなくはないけど闇が深い

NoSQLはRDBをサポートするためのDBプロダクト

理想的な使い方は
データはRDB
キャッシュにNoSQL……Webアプリケーション、ソシャゲ

透過キャッシュにNoSQL
フロントアプリケーション→DB制御アプリケーション→透過NoSQL→RDB
 

怖くないぞうさん

===ちょっと解説===
この界隈でぞうさんといえばPostgreSQLです。
なお、スライドのぞうさんは決して可愛いものではありませんでした。
気になる方はPostgreSQL公式ページをご覧ください。
===ここまで解説===

SQLにはISOがあるけれど、ISOに準拠といっても
→ISOにはLimitもOffsetもない
※そもそもSQLは方言と独自拡張の塊だった。それを素に出来上がったのがISOだから仕方ない。

SQLのポータビリティとは
→変えなくてもPostgresでもMySQLでも動くレベル
→複雑なSQLになるほどポータビリティは下がる
→複雑なことしない限りはだいたい行ける

複雑だから遅い×→下手だから遅い

ポータビリティの確保
→ライブラリに任せよう
→SQL::Makerとか、javaならJOOQ
→ORMを使うのも手→速度はちょっと…

Postgresには
・クラスタリングの課題(MySQLは標準)
・PostgreSQLには3rd Partyしかない

レプリケーションは
・MySQLには標準
・PostgreSQLは無かった(8.4〜)

MySQLは標準でいろいろできる。

現状性能にそれほど差はないので、好みで選べばいいのよ
シンプルならPostgreSQLがいいかも
クラスタリングするならMySQLがいいかもね

休憩後訪れるハンズオン。
通称ぱんださんのく●PMのふりをしたすろっくさんが、それはそれは残念なDBを作るので、これを正規化してね!
という話。

で、うちのチームが正規化したのがこちらです。(クリックで原寸/作成ツールはERMaster
ER

目的としたのは、「要素の正規化」で「最適なDB」ではありません。というのもターゲットアプリが不明瞭だったから。多分、求める検索性能とかによっては、もっと一見冗長な構成であったとしても、そのほうが良い場合がありますね。
何でもかんでもマスターにすりゃいいってもんでもないんだぜという話。
 

まとめ

 個人的に超楽しく超勉強になりました!
 機会があったらまたぜひ!
コメント
コメントする
トラックバック
この記事のトラックバックURL