タグ

DBに関するy_uukiのブックマーク (18)

  • 非分散データベースを分散データベース化する「Dynomite」、Netflixがオープンソースで公開

    RedisやMemcachedといったインメモリデータベースは非常に高速にレスポンスを返してくれるデータストアですが、それ単体ではスケーラビリティや可用性などに限界があります。 The Netflix Tech Blog: Introducing Dynomite - Making Non-Distributed Databases, Distributed Netflixがオープンソースで公開した「Dynomite」(ダイナマイトとは綴りが違うのに注意)は、こうしたデータストアを分散データベース化し、高速なデータストアの特長を活かしつつ高いスケーラビリティや可用性を実現するためのソフトウェアです。 アプリケーション側でシャーディングのような面倒なデータ構造を設定することなく、RedisやMemcachedをノードとし、CassandraやAmazonクラウドのDynamoDBのような大規

    非分散データベースを分散データベース化する「Dynomite」、Netflixがオープンソースで公開
  • リレーショナルモデルのドメイン設計についての議論

    リレーショナルモデルを実践するには、ドメイン(≒データ型)を如何に正しく設計するかということが極めて重要になる。しかしながら、ドメインをどう設計すべきかという議論はあまりされていないように思う。その結果、ドメインについての理解はあまり進まず、データベース設計に失敗しているパターンが多いように思われる。 というわけで今日のテーマはドメインである。 集合を定義するリレーショナルモデルにおけるデータ型とは何か。リレーショナルモデルを実践するにはまずその点から理解する必要がある。 リレーショナルモデルでは、データ型はドメインと呼ばれる。ドメインとは、その属性(≒カラム)に入るべき値はどういったものかを集合として定義したものだ。言い換えると、属性値とはある集合の要素の一つであると言える。従って、ドメインを設計する際には、SQLで言うところのデータ型、つまりINTやCHARといったものだけでなく、その

    リレーショナルモデルのドメイン設計についての議論
    y_uuki
    y_uuki 2013/12/09
  • @nippondanji 氏の「データベース設計徹底指南!!」は神プレゼン!脅威の主義主張の一貫性保証は DB エンジニアの鏡だった件! - #garagekidztweetz

    ツイート今日は、第 1 回のSQL アンチパターンの回から良コンテンツを提供しまくりなエンバカデロ・テクノロジーズさん主催の第 3 回 DB エンジニアのための勉強会に参加してきました。 今回は 漢(オトコ)のコンピュータ道で有名な漢の中の漢、 @nippondanji 氏がデータベース設計を徹底指南してくれるということで、元々 DB エンジニアがバックグランドのわたしとしてはいかないわけにはいかんだろう、と喜び勇んでいってきました! 内容はというと下記の概要をカバーする内容でした。 リレーショナルデータベース(以下RDB)は登場してからかなりの時間が経っています。その名が示すように、RDBはリレーショナルモデルをベースに考案されたソフトウェアです。しかしながら、未だに現場ではRDBが使いこなされているとは言いがたく、リレーショナルモデルへの理解も進まず、誤った常識が跋扈しているのが現状で

    @nippondanji 氏の「データベース設計徹底指南!!」は神プレゼン!脅威の主義主張の一貫性保証は DB エンジニアの鏡だった件! - #garagekidztweetz
  • DBエンジニアのための技術勉強会で発表したスライドを公開しました。

    DBエンジニアのための技術勉強会というイベントで、リレーショナルモデルにおけるDB設計について話す機会を頂いた。リレーショナルモデルは非常に重要であるにも関わらず、現場ではないがしろにされてしまっている。その結果、アプリケーションのロジックを上手くクエリで表現できず、開発現場では非効率な開発が行われ、多くの人がデスマ的な状況に追い込まれている。そういう危機意識について、これまで何度かブログでも書いてきたし、WEB+DB Pressで連載している動機もその点にある。リレーショナルデータベースはやはりリレーショナルデータベースとして使うべきだ。そのための鍵となるのが、DB設計である。 今回はなんと約2時間の持ち時間を頂いた。リレーショナルモデルについてはこれまで何度か話す機会を頂いたが、2時間というのは最長記録である。それに合わせてスライドもボリュームたっぷりのものになった。過去のスライドと

    DBエンジニアのための技術勉強会で発表したスライドを公開しました。
  • データベースアプリケーション開発を炎上させる負のスパイラル

    毎度おなじみ、はてブのホットエントリに「SIをダメにする負のスパイラル」というタイトルのまとめが掲載された。きしだ氏とはかなり視点は違うものの、開発現場の問題点については少し思うところがあるので意見を書いてみようと思う。と言っても、以下の話の内容はデータベースアプリケーションに限定した話であり、またSIerだけに限った話ではないのでその点はご容赦頂きたい。もちろんSIer各位の案件はデータベースは必須なので、エントリで触れる問題点には該当するだろう。 Q.なぜ炎上するのか? A.正しいデータベース設計ができていないから結論から言おう。データベースアプリケーションの開発が炎上するのは正しいデータベース設計ができていないからだ。ここでいう「正しい」とは、論理的に証明できる正しさという意味ではない。「来こうするべき」といった意味で捉えて欲しい。 「炎上」というのは、例えばテストが通らない、バ

    データベースアプリケーション開発を炎上させる負のスパイラル
  • qpstudyで発表したスライドをアップロードしました。

    日、qpstudyで「データベースとは」という内容について、そして「リレーショナルモデルとは」という内容について話す機会を頂いた。リレーショナルモデルという硬い内容であったにも関わらず、出席者の皆さんには最後まで良い反応をして頂けたように思う。実はリレーショナルモデルについて誤解している、あるいは知らない人が当に多い、そして良い解説書がないということを普段問題として感じており、そういった背景から今回qpstudyの話を引き受けさせて貰った。今回発表した内容が皆さんのお役に立てば幸いである。 発表の内容はほぼ現在WEB+DB PRESSで連載している「理論で学ぶSQL再入門」のいくつかの回のものを要約したものになっている。連載ではさらに詳しい内容について説明しているので、興味のある人はぜひWEB+DB PRESSのバックナンバー(連載はVol.68〜)を購入して頂きたい。 日発表したス

    qpstudyで発表したスライドをアップロードしました。
    y_uuki
    y_uuki 2013/07/29
  • 本当にあったredisの怖い話

    主にfacebookにつぶやきまくる毎日。 noteとかzenn.devにも書いてるので、こっちはあんまり更新してません。 出稼ぎのとある案件で、redisを使ってますが、色々ヤラれますね。 運用面 スキーマ(に相当する概念)を、整数で管理しなければならない 故に、DBを取り違えても、書き込めてしまう。 書き込み先DBを間違えてることに、果たして何時気がつくやら。 端的に言えば、複数のredisインスタンスを使い分けるような運用を想定してないのでしょう。 逆に言えば、そんな使い方するならredisを選択するのが間違ってます。 バックアップは、永続ファイル1個をコピーするしかない。 逆にいうと、バックアップが必要になるような運用にredisを選択するのが間違ってます。 appendonly=true は永続ファイルを壊す可能性は減るが 実はジャーナルなので、永久に増え続ける。 長期運用すると

  • “第3のメモリー”の衝撃、ストレージとDBが一変する

    出典:日経コンピュータ 2012年12月20日号 pp.70-77 (記事は執筆時の情報に基づいており、現在では異なる場合があります) 2012年、DRAMでもフラッシュメモリーでもない“第3のメモリー”の量産出荷が始まった。DRAM並みに高速でありながら、フラッシュ同様に電源をオフにしてもデータが消えない「新世代不揮発性メモリー」だ。新メモリーによってコンピュータのアーキテクチャーは激変し、入出力(I/O)の大幅な高速化が実現すると共に、消費電力は激減する。 コンピュータには、高速だが電源をオフにするとデータが消える「主記憶装置(メインメモリー)」と、低速だがデータが消えない「外部記憶装置(ストレージ)」という2種類の記憶装置がある。 こんなコンピュータアーキテクチャーの常識が一変する可能性が出てきた。DRAM並みに高速でありながら不揮発性を備えた「新世代不揮発性メモリー」の量産出荷が始

  • 新著が出ます:ジョー・セルコ『プログラマのためのSQL 第4版』 - ミックのブログ

    皆さん、お久しぶりです。長らくブログの更新が止まっていたのは、少し大きな仕事をしていたためです。ジョー・セルコ『プログラマのためのSQL 第4版』の翻訳。これに集中するため、ブログもやらずTwitterもやらず(こっちはちょっとやってしまった)頑張っておりました。 長かった。 当に長かった。 原著が800ページ以上あるうえ内容も簡単ではないので、もともと楽な仕事とは思っていませんでしたが、いや大変でした。ですが無事今月刊行とあいなりました。すでにAmazonはじめオンラインショップでも予約受付を開始しています。あらかじめ言っておきますが「表紙のおっさん誰?」という質問は私にはしないように。私も答えられないので(笑)。 さて、書の内容を紹介する代わりに、少し長くなりますが訳者前書きを引用します。購入するか判断の参考にしていただければと思います。なお、実行環境としては前書きでも書いています

  • RDBMSに関する典型的な誤解が絶えないという現実

    新入社員必読、データベースの基を理解しよう - データベースはなぜ必要なの?:ITproという記事に対するブクマで次のようなIDコールが来た。(現在はコメント返しへのお礼が入っているので、文字数制限のためオリジナルのコメントは少し切り詰められている。) "リレーショナルデータベースはすべてのデータを2次元の表形式で表現"こういうのもリレーションが2次元構造という誤解の一種なんだろうか。id:nippondanjiさんが書いてたような。 さて、この疑問に対する正解は如何なるものだろうか? つい先日「7つのデータベース 7つの世界」の書評で書いたばかりだが・・・ 言うまでもなくその通りである。 リレーションが2次元的な構造を持っているというのは典型的な誤解だ。(ちなみにリレーションの次元は属性の数に等しい。n個の属性があるリレーションはn次元。)リレーショナルモデルについてちゃんと学習してい

    RDBMSに関する典型的な誤解が絶えないという現実
    y_uuki
    y_uuki 2013/04/22
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • Medium

    You can find (just about) anything on Medium — apparently even a page that doesn’t exist. Maybe these stories will take you somewhere new?

    y_uuki
    y_uuki 2013/01/20
  • SQLアンチパターン

    書はDB設計やSQL記述の際に避けるべき事柄を1章で1つ、25個紹介する書籍です。リレーショナルデータベースを中心に据えたシステム開発には、様々な場面で陥りやすい失敗(アンチパターン)があります。書はデータベース論理設計、データベース物理設計、クエリの記述、アプリケーション開発という4つのカテゴリに分け、それぞれの分野におけるアンチパターンを紹介し、失敗を避けるためのより良い方法を紹介します。複数の値を持つ属性や再帰的なツリー構造の格納から、小数値の丸めやNULLの扱いに起因する問題、全文検索やSQLインジェクション、MVCアーキテクチャなど、実践的かつ幅広いトピックを網羅します。日語版では、MySQLのエキスパートとして著名な奥野幹也氏によるアンチパターンを収録。データベースに関わるすべてのエンジニア必携の一冊です。 書への称賛の声 監訳者まえがき はじめに I部 データベース論

    SQLアンチパターン
    y_uuki
    y_uuki 2013/01/15
  • DBの世界に起こる変革 | エンタープライズエンジニアの独り言

    エンタープライズシステムのエンジニアをやって10年以上。思うところを書いていきます。その他趣味を少々。。。 DBの世界に起きた大きな波 現在、どの製品を使ったとしてもRDBの性能問題は必ずといっていいほど発生する。理由は簡単で、CPU、ネットワークが高速化(CPUはマルチコア化、ネットワークは10G-Ethernetの一般化やInfiniBandなど)するのにディスク(ストレージ)が高速化に追いついていないからだ。その差を埋める役割として、RDBが担っているケースが多く、性能問題になるケースが散見される。 だが、そういう時代の流れに対して大きな変革が起きようとしている。SSDはかなりコモディティ化してきたので言うに及ばずといった感じだが、個人的には速いもののディスクの置き換えにすぎないと思っている。つまり、SSDは速いがDBのアーキテクチャに大きな変革をもたらすものではない。が、ここにきて

    y_uuki
    y_uuki 2013/01/07
  • naoyaのはてなダイアリー - MyISAM vs InnoDB

    あくまで憶測で仮説でしかないんですが。 MySQL のストレージエンジンのうち代表的な二つ、MyISAM と InnoDB はよく MyISAM: Read は速いけどテーブルロックのため並行性が低い。運用が簡単。 InnoDB: MyISAM より Read は遅いけど並行性が高い 。行レベルロックなので。あとトランザクションや外部キー制約。運用が MyISAM よりちょっとめんどくさい。 という区別がされます。ここから転じて、 MyISAM は参照系クエリが大部分を占める場合に適用すると良い。例えば blog アプリケーションとか。 InnoDB は更新系クエリが多い場合に適用すると良い。 と言わたりします。実践ハイパフォーマンスMySQL でも第2章 ストレージエンジン(テーブル型) P.30 に アプリケーションでトランザクションを使用する必要がなく、主に SELECT または I

    naoyaのはてなダイアリー - MyISAM vs InnoDB
  • migrationライブラリの紹介 - Articles Advent Calendar 2011 Dbix

    こんにちは! 子供のころは、誕生日がクリスマスと一日違いだったために誕生日プレゼントとクリスマスプレゼントがよく一緒にされてました。walf443です。 Migrationとは? 複数人でプロジェクトを開発していると、途中でDBのschemaが変更になったりすると、schemaの変更方法が記述されてないと、手元で気軽にテストしたりしづらくて、困ります。 schemaの管理方法は、プロジェクトによって色々あるかと思いますが、別のbranchの担当者に「あれっ、ここ替えたんでよいんでしたっけ?」と聞いたり、DBのschemaを丸ごとされているファイルをチェックして、diffをチェックしてからALTER TABLE文を考えて適用、とかになったりしてしまいます。 Ruby on Railsとかだと、Migrationという仕組みをサポートしていて、(開発者がちゃんと書いていれば)様々なバージョンの

    migrationライブラリの紹介 - Articles Advent Calendar 2011 Dbix
    y_uuki
    y_uuki 2012/08/23
  • Ruby on Rails 3.1で簡単なブログっぽいシステムを作ってみるテスト。 | Ginpen.com

    めもめも。 Railsで依存関係があるモデルを実装するのに、この記事が大変参考になります。 Rolling with Rails 2.0 – The First Full Tutorial – Part 2 – AkitaOnRails.com 素晴らしい記事です。ただ残念ながら2007年、当時はRails 2.*ですから、現在とは色々と違っています。 Rails 3.1.1で同じような事をやってみました。 ひとつのPostに複数のCommentが所属する、ブログ風のシステムです。 Postを作る 普通にPostを作ります。 Ruby on Railsを開始。

    Ruby on Rails 3.1で簡単なブログっぽいシステムを作ってみるテスト。 | Ginpen.com
  • サーバの種類とDBサーバ超基礎入門 : LINE Corporation ディレクターブログ

    こんにちは、櫛井です。 今回は、サイト運営を行う上で知っておきたいサーバの種類やその役割、DBサーバについてお送りします。記事タイトルに“超基礎入門”とあるように、あまり難しい言葉を使わずに書いてみます。 サーバの種類と役割 ユーザーが画像やテキストなどを投稿できる CGMコンテンツの場合、情報を表示するだけの一般的なウェブサイトとは違ったサーバ構成を行う必要があります。データの置き場所を分散させ、役割を決めたサーバを適切に配置することで、負荷分散や万が一の障害対応時の問題切り分けなどにも有効といった特徴があります。 では、具体的にどのようなサーバがあるか、それぞれどのような役割をしているか、代表的な例を紹介してみます。 ※かっこ内は社内での通称 アプリケーションサーバ(app) プログラムが走る。ここで表示するコンテンツを作ってたりする。 ウェブサーバ(www) リバースプロキシとして稼

    サーバの種類とDBサーバ超基礎入門 : LINE Corporation ディレクターブログ
  • 1