つらくないマルチテナンシーを求めて: 全て見せます! SmartHR データベース移行プロジェクトの裏側 / builderscon 2018
「論理削除が云々について - mike-neckのブログ」を読んで。 データベース設計において、「テーブルの書き換えをするな、immutableなマスタと更新ログによって全てを構成しろ」というこの記事の主張はモデリング論として全く正しい。 だが、残念なことに、ディスクやメモリが貴重な資源だった時代の技術であるRDBは、そのようなモデリングに基づいて設計されたデータベースには必ずしも適していない。 第一の問題は、RDBに対してなされる様々な「更新」(トランザクション)は不定形(どのテーブルをどのように修正するかはアプリケーション依存)だという点。不定形な「更新」を時系列にそってRDBに記録していくのは、設計と並走性の点において困難あるいは煩雑なコーディングが必要になる(というか、そのような「イベント」による「変化」はREDOログに書き、その更新された「状態」をテーブルに反映していくというのが
トランザクション処理を重視する一般的なデータベースは、1行ごとにデータを扱う。カラム型データベースはそれとは異なり、列方向にまとめでデータを扱うことで集計作業などを得意とし、データウェアハウス用途などに用いられている。 「カラム型」あるいは「カラムストア型」「列指向型」などと呼ばれるデータベースの話題が目立つようになってきました。 例えばSAPのHANA、IBMが買収したNetezza、ヒューレット・パッカードが買収したVertica、オラクルのExadata、それにNoSQLの代表的なデータベースCassandraなどがカラム型データベースの機能を備えています。また、マイクロソフトの次期SQL Serverにもカラム型データベース機能が統合されると伝えられています。 とはいえカラム型データベースは最近登場した技術ではなく、Sybase IQでは10年以上前から採用されていた仕組みでした。
一般的なシステムで広く利用されているリレーショナルデータベースですが、システムの進化と共にデータベースの構造も複雑になりがちです。RestMQの作者、Gleicon Moraes氏の公開したスライドがシステムが複雑化していく様子をわかりやすく説明した上で「アンチパターン」を提示していました。 それによるとデータベースのアンチパターンは以下の通り。 動的なテーブルの作成 テーブルをキャッシュとして使う テーブルをキューとして使う テーブルをログとして使う 分散したグローバルなロック ストアドプロシージャ 使われない項目 JOIN地獄 ORMによって繰り返されるクエリ 負荷のコントロール どれも理由があって採用されるデザインですが、確かに後に問題を引き起こした経験もあり耳が痛い感じですね。スライド内ではそれぞれの問題についての解決策としてMongoDBやRestMQなどの利用を進めています。「
2018.12.11OSS-DB Silver出題範囲「運用管理 - インストール方法(initdbコマンドの使い方)」に関する例題解説を追加しました。 2018.12.10年末年始休業のご案内 Holiday Closing Notice 2018.12.08ビジネスパートナー制度説明会開催のお知らせ(12/11、12/18、1/8、1/15、1/22、1/29、2/5、2/12、2/19、2/26) 2018.12.07アカデミック認定校制度説明会開催のお知らせ(12/13、12/20、1/10、1/17、1/24、1/31、2/7、2/14、2/21、2/28) 2018.12.05『OSS-DB Exam Gold 技術解説無料セミナー』@東京 12/2(日)開催結果のご報告 2018.11.27OSS-DB Silver出題範囲「開発/SQL - SQLコマンド(SELECT文)
昨日箱崎の IBM 本社で開かれた勉強会 Club DB2 第103回で、ゲスト講師として話してきました。DB2 の勉強会なのにデータベースと SQL の一般論をぶってしまって大丈夫かな、と思ったのですが「たまにはそういう話もいいものです」という主催者側の寛大なおはからいにより、好きなこと喋らせてもらいました。 Ustream で中継流したり、Twitter で質疑を受け付けたり、新しい形のコミュニケーションが体験できて面白かった。こんなとき、インターネットというのは本当に良いものだと実感。 当初は50人ぐらいだろうと予想していたら、蓋を開けてみたら100人部屋が満杯になってびっくり。人生で一番名刺交換とサインをした日になりました。飲み会でも色んな人と話ができて楽しかった。本の著者にとって、なかなか読んでくれた人の生の声を聞ける機会は少ないので、「この本のおかげで助かった」という人にお会い
世間では、今Gumblar祭りが勃発中であり、SQLインジェクションがニュースに出てくることは少なくなったが、だからと言ってSQLインジェクションの脅威がなくなったわけではない。SQLインジェクションはGumblarを仕掛ける手段としても利用されることがあり、Webアプリケーションを提供する全ての人にとって、対策を講じなければいけない驚異であることに変わりはない。SQLインジェクションという攻撃手法が認識され、大いに悪用されているにも係わらず、その本質に迫って解説している記事は少ないように思う。従来のWeb屋だけでなく、今やアプリケーション開発の主戦場はWebであると言っても過言ではなく、そういう意味ではSQLインジェクションについて理解することは、全てのプログラマにとっての嗜みであると言えるだろう。 というわけで、今日は改めてSQLインジェクションについて語ってみようと思う。 SQLイン
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く