dbに関するmumincacaoのブックマーク (44)

  • NoSQLをRDBの代わりに使うと、どういう恐ろしいことが起こるか。PARTAKEの作者が語る

    データベースの世界でいま注目されているのがNoSQL。特にキーバリュー型データストアは、グーグルのBigTable、FacebookやTwitterが内部で利用しているCassandraやAmazonクラウドが提供しているSimpleDBなど、すでに実際に使われ始めています。 ではそのNoSQLをリレーショナルデータベースの代わりに使ってシステムを構築するとどうなるのか? 身をもって体験したことを記したShinya Kawanaka氏によるプレゼンテーション「間違った方向にCassandraを使ってみた」が公開されています。 NoSQLを用いたシステム構築は、リレーショナルデータベースによる構築どう違うのか? とても分かりやすくまとめられています。ご人の承諾もいただいたので、その内容を紹介しましょう。 NoSQLを使ったときに起こる恐ろしい事例 プレゼンテーションのテーマは「NoSQL

    NoSQLをRDBの代わりに使うと、どういう恐ろしいことが起こるか。PARTAKEの作者が語る
    mumincacao
    mumincacao 2010/12/22
    ちょっと NoSQL は持ち上げられすぎてて不安になるけど・・・ NoSQL を RDB の代わりに使うといかさんに侵略されちゃうですか...〆(・ω【みかん
  • 情報処理推進機構:情報セキュリティ:脆弱性対策 :「安全なSQLの呼び出し方」を公開

    IPA(独立行政法人情報処理推進機構、理事長:西垣 浩司)は、ウェブサイトを狙ったSQL(*1)インジェクション攻撃(*2)が継続していることから、ウェブアプリケーション(*3)の安全な実装方法を解説した資料「安全なSQLの呼び出し方」を2010年3月18日(木)からIPAのウェブサイトで公開しました。 URL:http://www.ipa.go.jp/security/vuln/websecurity.html 近年、ウェブサイトを狙った攻撃が継続しています。攻撃の実例として、IPAが無償で公開している「SQLインジェクション検出ツールiLogScanner(*4)」で、「脆弱性対策情報データベースJVN iPedia(*5)」のアクセスログを解析した事例を図1に示します。 図1を見ると、2008年頃から急増しているSQLインジェクション攻撃が全体の45%、ウェブサーバのパスワードファイ

    mumincacao
    mumincacao 2010/03/19
    ときどきせっかくぷれ~すほるだが準備されててもそこに文字列合成した SQL 投げ込むひとがいるけど・・・あれはどうしてその結論に行き着いたのかなぁ?(´・ω・`;【みかん
  • 第8回 SQLにおける論理演算~なぜ真理を隠すのか~ (1)各DBの真理値型のサポート | gihyo.jp

    はじめに 真理値と論理演算の重要性 プログラマやSEのみなさんは、真理値(真偽値)というものをご存じのことと思います。ほとんどの言語が持っている基的なデータ型で、数学者George Booleの名前にちなんで「BOOL型」とか「BOOLEAN型」とも呼ばれています。コンピュータを利用していると、BOOLEAN型が持つtrue(真)とfalse(偽)の2つの値と、NOT、AND、ORという3つの演算子だけから成るシンプルな演算(論理演算)を行うことが多くあります。これはプログラミング言語だけでなく、コンピュータの回路の基礎にもなっている演算です。 SQLにおける真理値と論理演算 SQLにも、真理値と論理演算が存在します。存在するどころか、WHERE句やHAVING句は、それ全体が論理演算のカタマリです。だから真理値はSQLの根幹をなす重要な要素と言っていいのですが、それにもかかわらず、SQ

    第8回 SQLにおける論理演算~なぜ真理を隠すのか~ (1)各DBの真理値型のサポート | gihyo.jp
    mumincacao
    mumincacao 2010/02/02
    空文字と NULL をごっちゃにするひとでも結構いるのに UNKNOWN が仕様通りな実装が増えたら大変なことになりそうだにゃぁ・・・ (´ω`;【みかん
  • key-valueストアの基礎知識

    首藤 一幸 Last-updated: January 5, 2010 注: このページの文章は Software Design 誌 2010年 2月号に掲載された以下の記事の元原稿です。 Software Design 誌編集部の了承の元に、ウェブページに掲載しております。 首藤一幸: "key-valueストアの基礎知識", Software Design 2010年 2月号, p.14-21, (株)技術評論社, 2010年 1月 18日 クラウド、特にPaaS向けのソフトウェア開発が現実のものとなり、 そこではリレーショナルデータベースとは違ったデータベースが 勢いを増しています。 その代表であるkey-valueストアを解説します。 もくじ key-valueストアとは なぜkey-valueストアか key-valueストアの使いどころ key-valueストアとNoSQL

    mumincacao
    mumincacao 2010/01/19
    KVS の説明で『連想配列のようなものだから気になったらあとは自分で調べてね』するよりはめりっと&でめりっともあるしよさそうなのです...〆(´ω`;【みかん
  • 分散Key-Valueストア「kumofs」を公開しました! - Blog by Sadayuki Furuhashi

    分散Key-Valueストア kumofs を、日オープンソースソフトウェアとしてリリースしました! kumofs@SourceForge kumofs関連資料まとめ kumofsとは? kumofs(クモエフエス)は、実用性を重視した分散データストアです。レプリケーション機能を備え、一部のサーバーに障害が発生しても動作し続けます。単体でも高い性能を持ちながら、サーバーを追加することで読み・書き両方の性能が向上する特徴を持ち、低コストで極めて高速なストレージシステムを構築・運用できます。 kumofsの大きな特徴は、システムの構成の簡単に変更できる点です。システムを止めることなく、簡単な手順でサーバーを追加したり復旧したりできます。アプリケーションには一切影響を与えません。 またkumofsは、広く利用されている分散キャッシュシステムの「memcached」と互換性のあるプロトコルを実装

    分散Key-Valueストア「kumofs」を公開しました! - Blog by Sadayuki Furuhashi
    mumincacao
    mumincacao 2010/01/19
    kumofs ってなんだかどこかで聞いたことあるのはおぼえてるんだけど・・・ KVS だっけ? とりあえずめもめも...〆(´ω`;【みかん
  • MySQL InnoDBだけで全文検索 - SH2の日記

    実験エントリです。 予習してみる 「転置インデックス」というキーワードで検索して、しばらく勉強してみます。 転置インデックス - Wikipedia mixi Engineers’ Blog » 転置インデックスを実装しよう ASCII.jp:悟空、秘剣「転置インデックス」を手に入れる |Googleはなぜ的確に探せるのか? [を] 転置インデックスによる検索システムを作ってみよう! 転置インデックスで学ぶ検索エンジンの中身アプリ - 睡眠不足?! うーんなるほど。分かったような分からないような。 作ってみる とりあえず、Twitter4Jを使ってこんなデータを用意しました。ちなみに人選は漢(オトコ)のコンピュータ道: MySQLerのTwitterアカウントまとめ。を参考にさせていただきました。 5707049458,2009-11-14 20:28:34,sakaik,@hbstudy

    MySQL InnoDBだけで全文検索 - SH2の日記
    mumincacao
    mumincacao 2009/12/07
    Ngram 検索するとそれだけにしちゃいがちだけどそう言われてみると絞り込んでから LIKE 検索もありかなぁ...〆(・x・。【みかん
  • App Engineでバージョンによる楽観的排他制御 - ひがやすを技術ブログ

    Song of Cloudで送金のトランザクション処理パターンが紹介されていました。 http://songofcloud.gluegent.com/2009/11/blog-post_18.html 同様のpython版がこちら Distributed Transactions on App Engine - Nick's Blog 上記のやり方で基的には問題はないのですが、バージョン管理による楽観的排他制御を行っていないので、送金だけを考えるなら、残高を差分で更新しているので大丈夫ですが、これを一般的なパターンに拡張しようとすると、楽観的排他制御は必要になります。 楽観的排他制御とは、エンティティにバージョン番号を持たせておいて、メモリ読み込んだときのバージョン番号と書き込むときのバージョン番号が等しいことを確認する方法で、RDBMSの場合は、次のようなSQLを実行することで実現しま

    App Engineでバージョンによる楽観的排他制御 - ひがやすを技術ブログ
    mumincacao
    mumincacao 2009/12/01
    bigtable を使うときは無理やり RDB の手法を使ったりしないで bigtable の手法を使ってとらんざくしょん・・・にう? 〆(・x・。【みかん
  • レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン - (ひ)メモ

    MySQLで、レプリケーションベースのHAな構成について考えたメモです。 3台(というか2台+1台)がいいかなぁと思っていて、前半はその理由を、後半では{マスタ,スレーブ}が{再起不能になった,ちょっとダウンしてすぐ復帰した}場合のリカバリプランについて書きます。 今のところはこれがベストかなと思っているのですが、「こうしたほうがいいと思う!」「ここがおかしい!」などなどのご意見はコメント、TBなどでいただけるとうれしいです。 ゴール マスタが落ちてもぐーすか寝ていられるようにしたい リカバリの作業はできるだけ単純に、かつ、短時間で完了するようにしたい めんどくさいのはいや 基構成、方針 2台+1台 サービスで使うのは2台 (db1, db2) もう1台は管理用 (db3) スレーブを多数並べる構成にはしない 台数増えると管理コストが上がる マスタダウン時のフェイルオーバとそのフェイルバ

    レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン - (ひ)メモ
    mumincacao
    mumincacao 2009/10/26
    やっぱりこのくらすになると専門のひとがいないときびしい気がするにゃぁ...〆(´ω`;【みかん
  • MySQL Clusterカーネルの中身を覗いてみよう。

    MySQL Clusterのデータノードであるndbd(もしくはndbmtd)プロセスは、内部的にはマルチプルステートマシン(ブロック)がシグナル(もしくはメッセージ)を交換するという構造になっており、高い同時実行性を実現しているということについては前回述べた通りである。今日は、ndbd内部にどのようなカーネルブロックが存在するかということについて大まかに説明しよう。前回の話を踏まえて読んで頂ければ、何となくイメージだけでも掴めるのではないかと思う。まずは次の絵を見て頂きたい。これは俺の脳内から引っ張り出したndbdの構造のイメージ図である。 矢印はブロック同士の相関関係(シグナルの送受信など)を示すのだが、この絵に描かれているものは非常に省略されたものであり、実際にはもっと複雑に絡み合っているのだということを覚えておいて欲しい。例えばQMGRやDBDICTといったブロックは、他のブロック

    MySQL Clusterカーネルの中身を覗いてみよう。
    mumincacao
    mumincacao 2009/10/23
    MySQL Cluster の中のひとはすぱげってぃもんすた~・・・にう? 〆(・x・;【みかん
  • [Perl][PHP][SQL]: quoteメソッドの数値データ対応を検証する - 徳丸浩の日記(2009-10-19)

    _quoteメソッドの数値データ対応を検証する このエントリでは、PerlDBI、PHPのPDO、MDB2にて用意されているquoteメソッドが数値データをどのように扱えるかを検証しました。結論としてMDB2が合格、それ以外は不合格で、とくにDBD::mysqlを使用した場合、脆弱性といってもよいような結果となりました。 概要 DBI、PDO、MDB2は、いずれもデータベースアクセスを抽象化したモジュール(クラス)であり、汎用的な記述によりさまざまなデータベースを利用できるように工夫されています。これらモジュール(クラス)にはquoteというメソッドが用意されています。DBIのquoteメソッドの呼び出し例を示します。 my $dbh = DBI->connect('DBI:mysql:dbname:localhost', 'user', 'pass'); print $dbh->quo

    mumincacao
    mumincacao 2009/10/20
    えぇぇぇぇぇ・・・ なにその型指定はできるけどすべて addslashes() しちゃいますみたいなどこかで見かけた仕様・・・ (´・ω・`;【みかん
  • 第3回 テーブル設計のグレーゾーン~毒と薬は紙一重 (4)サロゲートキーVSナチュラルキー | gihyo.jp

    サロゲートキーVSナチュラルキー DBエンジニアの方なら、サロゲートキー(代理キー)という言葉をご存じでしょう。これは、テーブルへの入力データにある列を主キーとせずに、システム側で独自に割り当てるキーのことです(一般的には連番が使われます⁠)⁠。これに対して、入力データ自体の列を主キーにする場合はナチュラルキー(自然キー)と呼びます。 サロゲートキーは、基的には不要なものです。入力データに一意なキーが存在していればそれを主キーとして使うことで、普通は問題ありませんし、オートナンバリングの機能も長らく標準SQLには存在していなかったからです(そのため、今でも実装ごとにやり方はバラバラです⁠)⁠。しかし、以下のような業務要件の場合には、サロゲートキーを使うことを考えます。 ① そもそも入力データに主キーにできる項目がなく、データが重複している場合 ② 主キーの値が使いまわされる場合 ③ 主キ

    第3回 テーブル設計のグレーゾーン~毒と薬は紙一重 (4)サロゲートキーVSナチュラルキー | gihyo.jp
    mumincacao
    mumincacao 2009/10/01
    このこ~どは重複しないって聞いてたのに創ってみたら『重複したのが消えたのでなんとかして』っていうのあったけどほんと無理やりき~を追加するのは遠慮したいものなのです(つx;【みかん
  • SQLの暗黙の型変換はワナがいっぱい

    補足 この記事は旧徳丸浩の日記からの転載です。元URL、アーカイブはてなブックマーク1、はてなブックマーク2。 備忘のため転載いたしますが、この記事は2009年9月24日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり このエントリでは、SQLにおいて「暗黙の型変換」を使うべきでない理由として、具体的な「ワナ」をいくつか紹介します。 数値項目に対するSQLインジェクション対策のまとめにて説明したように、RDBの数値型の列に対してSQLインジェクション対策をする方法として、以下の三種類が知られています。 バインド機構を用いる パラメータの数値としての妥当性確認を行う パラメータを文字列リテラルとしてエスケープする このうち、方法3を使うべきでない説明の補足です。具体的には、方法3には、「暗黙の型変換」が発生しますが、それが思わ

    mumincacao
    mumincacao 2009/09/25
    型のゆるい言語からはじめたひとはこのあたりの自動変換を『よきにはからってくれるからいいじゃない』ですませてなかなか理解してくれない気がするのです(´・ω・`;【みかん
  • MySQL、適切なテーブル種類ですぐれたパフォーマンス | エンタープライズ | マイコミジャーナル

    SitePoint: New Articles, Fresh Thinking for Web Developers and Designers Kevin Yank氏がSitePointにおいて、Free Performance with MySQL Table Typesのタイトルのもと、実際にSitePointのイベントに関連して発生したMySQLのパフォーマンス問題をどのように考えて解決していったかを紹介している。データベースパフォーマンスの改善事例として興味深い。 SitePointはMiles Burke氏がまとめた書籍「The Principles of Successful Freelancing」の無償PDFを、Twitterのフォロアになれば手に入れられるというキャンペーンを実施した。Twitterの利用制限を避けつつ使いやすい仕組みを提供するために、最終的に、今のスタ

    mumincacao
    mumincacao 2009/09/16
    せっしょん管理は KVS のがいい気がするけど・・・ MySQL の MEMORY て~ぶるって固定長しか使えなかったような気が・・・固定長だけでせっしょん情報管理できるのかなぁ?
  • 素朴なBigtable、できること できないこと

    素朴なBigtable、できること できないこと:分散Key-Valueストアの命「Bigtable」(2)(1/2 ページ) RDBとは別の、クラウド時代のデータベースとして注目を浴びている「分散Key-Valueストア」。その命ともいえる、Googleの数々のサービスの基盤技術「Bigtable」について徹底解説 あまりにもRDBとは異質な「Bigtable」 前回の「もう1つの、DBのかたち、分散Key-Valueストアとは」では、連載第1回目として、クラウドコンピューティングにおける新しい潮流である「リレーショナルデータベース(RDB)から分散Key-Valueストア(分散KVS)への移行」が、どのようなパラダイムシフトをもたらすのかを解説しました。今回からは、グーグルが運用する代表的な分散KVS「Bigtable」の内部構造を紹介し、クラウドの質をより深く掘り下げます。 前

    素朴なBigtable、できること できないこと
    mumincacao
    mumincacao 2009/09/07
    KVS だと RANGE で探すのは難しいかもと思ったけど前方一致できるならで~た構造でなんとかできることが意外と多いのかなぁ? 〆(・x・。【みかん
  • キャッシュの大きいRDB vs インメモリデータベース、性能がどれだけ違うのか調べてみると

    2週間ほど前に「インメモリデータベースがクラウド時代の主流になるという期待」というエントリを書きました。ハードディスクに代わり、メモリをデータベースの永続化手段とするインメモリデータベースは、超高速なアクセスとスケールアウトを実現する、クラウド時代のデータベースの主役になるのではないか、という内容です。 この記事に関して、TechVisorの栗原さんと次のようなやりとりをしました。 確かに、Oracle Real Application Cluster(以下、Oracle RAC)でデータベースが全部載るくらい十分にキャッシュ用のメモリを割り当てれば、メモリ上でデータベースを操作するインメモリデータベースと同じことではないのか、とも思います。 両者の違いは何かあるのでしょうか? 調べてみることにしました。 インメモリデータベースは1000倍速い 調べてみるとすぐに、両者には明確な性能差があ

    キャッシュの大きいRDB vs インメモリデータベース、性能がどれだけ違うのか調べてみると
    mumincacao
    mumincacao 2009/08/19
    なんだか思ってたよりも差が出るっぽいけどやっぱり HDD 用にちゅ~んしたのとめもり用にちゅ~んしたのの差なのかなぁ?
  • deltasql

    deltasql is an advanced Database Schema Version Control. It allows a team to commonly develop a data model on the fly, while the source code is growing. Sync algo supports branches and tags. Works for postgreSQL, Oracle, mySQL, MariaDB, Microsoft SQL Server or any SQL-like db.

    mumincacao
    mumincacao 2009/08/12
    DB 用の vcs ・・・なのかなぁ? 〆(・x・。【みかん
  • インメモリデータベースがクラウド時代の主流になるという期待

    クラウドの伝道師といえるほど熱心にクラウド関係の講演や執筆を行っている早稲田大学 丸山不二夫教授は、クラウドの技術的な発展について次のような見通しを、UNIX magazine 2009 springの37ページに書いています。 筆者は、データのパーシステンシの担い手が、ディスク上のファイルシステムからメモリに移ろうとしていることが、クラウドシステムの技術的な発展方向だと考えている。 僕は今年の1月の丸山氏が登壇したセミナーでこの考えをはじめて聞いたとき、ハッとしました。 クラウドのアーキテクチャでは、クラウドを構成するいずれかのマシンが故障しても大丈夫なように高い冗長性が保証されています。それだけ高い耐障害性を備えているなら、データの永続性を保つためにデータをメモリに置いたままでいいではないか、という斬新かつクラウドのアーキテクチャに沿った考え方に感銘を受けたためです。 実際に長期にわた

    インメモリデータベースがクラウド時代の主流になるという期待
    mumincacao
    mumincacao 2009/08/07
    全部めもりに乗せればおんなじ速度が出るわけでもないし,key-value でじゅ~ぶんなことも多いけど・・・ RDB が必要なけ~すもあるんだからけっきょく最後は適材適所なんじゃないかにう?(・x・。【みかん
  • データベース障害復旧の基礎 「バックアップファイル」「変更履歴」の仕組みを理解する

    データベースのデータはさまざまな業務で利用されています。データベースに障害が発生すると多くの業務やサービスが止まり、ビジネスに大きな影響を及ぼしてしまいます。しかし、どのようなデータベースシステムであれ、障害が発生する可能性はゼロではありません。このリスクを最小限にとどめるためには、「障害は起こり得る」と想定した対策が必要です。 そこで今回は、データベース障害対策の基礎として、障害の備えと、復旧(リカバリー)の仕組みをおさらいします。 データベース障害の種類 データベースシステムには、以下のような障害が発生する可能性があります。 サーバ障害によるメモリ上のデータ損失 ネットワーク障害によるトランザクションの異常終了 ユーザーの誤操作によるデータ損失 自然災害による物理的な破損 など このように、データベースシステムに発生し得る障害と、その原因や影響範囲は多岐にわたります。稿では、障害の中

    データベース障害復旧の基礎 「バックアップファイル」「変更履歴」の仕組みを理解する
    mumincacao
    mumincacao 2009/06/26
    DB さ~ばのいらすとがなぜか洗濯板に見えたのは気のせいってことにして・・・ RAID だけじゃばっくあっぷにならないっていうのがなかなか納得してもらえないのが困りものにう...〆(´・ω・`;【みかん
  • SQLで木と階層構造のデータを扱う――入れ子集合モデル

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

    mumincacao
    mumincacao 2009/06/24
    なんだか前に英語のを見たことある気がするけど日本語版見つけたからとりあえずめもめも...〆(´ω`;【みかん もうちょっと更新時のこすとを小さくできるとすてきな気がするんだけどなぁ・・・
  • 上流の技術者はSQLを高いレベルで習得すべき:ベンチャー社長で技術者で:エンジニアライフ

    株式会社ジーワンシステムの代表取締役。 新しいものを生み出して世の中をあっといわせたい。イノベーションってやつ起こせたらいいな。 まともな議論になっています。炎上というのはコメントをつけてくれた方々に失礼かもしれませんが、何回も炎上してきたし、何回も同じことを書いてきたし、それどころか10年言い続けてるし……。 がしかし、この業界のお客様から、このようにご意見を頂戴した(わたしが猛烈に望んでいたコメントなんですけど自作自演じゃないからね)。 http://el.jibun.atmarkit.co.jp/g1sys/2009/06/vb6-8111.html#comment-24715757 そこで、以前からの蒸し返しですが、「上流の技術者はSQLを高いレベルで習得すべき」と改めて一度、声を大にして言いたい。 その前に余談ですが、VB6と.NET(とSQL)について。 どっかでコメントしまし

    上流の技術者はSQLを高いレベルで習得すべき:ベンチャー社長で技術者で:エンジニアライフ
    mumincacao
    mumincacao 2009/06/18
    なんだかんだで SQL ってけっこう方言きついからあんまり dbm に依存したものばっかり扱ってると他の dbm 使わないとなときにさっぱりでしたとかなったりしそうだにゃぁ・・・