タグ

DBに関するAobaのブックマーク (26)

  • 論理削除と一意性制約を両立させる方法・DB製品別 - Qiita

    アプリケーション上でなにかエントリ(例えば記事だとかユーザだとか)を削除したとき、DB上の行は削除せず単に【削除済み】フラグを立てるだけという扱い方を 論理削除 と呼びます。 論理削除にはいろいろなメリットがあります。行削除のように関連する他テーブルへ削除が波及しないこと、エントリ復活ができること、障害時にデータ変更の経緯を追いやすくなることなどなど(デメリットもわんさかあるんですが、この記事の主旨からははずれるので別途お調べください)。 ところが論理削除の方針でDBを組んでいて困ったことはありませんか? 「 メールアドレスは一意性(UNIQUE)制約をかけたいのに、それだと削除済みのユーザと同じメールアドレスが使えないことになる 」 論理削除と一意性制約、両立はできないのか? できないと思っている方、多いと思います。実はちゃんとできます。DB製品によって実現方法がちょっと違ってくるだけで

    論理削除と一意性制約を両立させる方法・DB製品別 - Qiita
    Aoba
    Aoba 2016/04/29
    論理削除とUNIQUE制約を両立させる
  • MySQL AB :: Managing Hierarchical Data in MySQL

    "The Documents contained within this site may include statements about Oracle's product development plans. Many factors can materially affect Oracle's product development plans and the nature and timing of future product releases. Accordingly, this Information is provided to you solely for information only, is not a commitment to deliver any material, code, or functionality, and should not be reli

    Aoba
    Aoba 2009/01/18
    RDBでツリー/Nested Set Model
  • SQLで木と階層構造のデータを扱う――入れ子集合モデル

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

    Aoba
    Aoba 2009/01/17
    RDBでツリー/入れ子集合モデル
  • Wavelet Tree - naoyaのはてなダイアリー

    圧縮全文索引の実装などでしばしば利用される Rank/Select 辞書と呼ばれるデータ構造があります。詳しくは参考文献を参照していただくとして、今回は一般の文字列に対して効率的に Rank/Select を可能とするデータ構造である Wavelet Tree (ウェーブレット木) のライブラリを作りました。 http://github.com/naoya/perl-algorithm-wavelettree/tree/master my $wt = Algorithm::WaveletTree->new("abccbbabca"); is $wt->rank(6, 'a'), 2; is $wt->rank(6, 'b'), 3; is $wt->rank(9, 'b'), 4; is $wt->select(0, 'a'), 0; is $wt->select(1, 'a'), 6;

    Wavelet Tree - naoyaのはてなダイアリー
    Aoba
    Aoba 2008/11/20
  • Tokyo TyrantによるHAハッシュDBサーバの構築 - mixi engineer blog

    来年のバレンタインデーに、正確には「2009-02-14T08:31:30+09:00」に、UNIX時間が「1234567890」を迎えることを発見してちょっと嬉しいmikioです。さて、今回は高効率ハッシュデータベースサーバTokyo Tyrantを用いてHAハッシュデータベースを構築する手法についてご紹介します。ちょっと難しいし非常に長い内容なのですが、最後までお付き合いくださいませ。 可用性と保全性 HA(High Availability:高可用性)とは、可用性(Availability)が高いことです。それでは説明になっていないので詳しく言い替えますと、システムに障害が起きにくくすることと、たとえ障害が起きたとしてもできるだけ迅速に復旧できるようにすることです。データベース系のシステムはユーザのデータを管理するという中核的役割を担うため、可用性を高めることは最も重要な課題となりま

    Tokyo TyrantによるHAハッシュDBサーバの構築 - mixi engineer blog
    Aoba
    Aoba 2008/02/22
  • [pgsql-jp: 32651] Re: ツリー状のデータの取り扱い

  • RDBの定義ルール - とっくりばー

    RDBのカラム名や型をどうつけるかについて、プログラム的に扱えるルールを作っておくといろいろいいことがあるってRuby on Railsが教えてくれました。 でも、Railsのルール、単数形とか複数形とかは残念ながら使いにくくてしょうがないし、リレーションについてももっとルールがあったほうが使いやすい。 こんなルールを考えた。というか、今使っている。 ・テーブル名は自由。英語の名詞がよい。 ・テーブルはプライマリキーを一つだけ持ち、カラム名は「テーブル名_id」とし、型は自動的に連番で増えるintとする。(mysqlならauto_increment、postgresならserial、MSSQLならIDENTITY) ・他のテーブルにリレーションを持つ場合、そのテーブルのプライマリキーと同じ名前のカラムを持つ。(「user」テーブルへのリレーションのためのカラムは「user_id」である)

    Aoba
    Aoba 2007/10/21
    命名規約案。
  • 「MySQL,PostgreSQLとFirebirdの性能をユーザー会メンバーが徹底比較,判明...

    「更新とJOINが多ければMySQL,シンプルなSELECT主体ならPostgreSQLが向いている。ストアド・プロシージャでシングル・コネクションならFirebirdは非常に速い」---6月23日に開催された「オープンソースカンファレンス2007.DB(OSC2007.DB)」で,各オープンソースDBのコミュニティのメンバーによる性能比較が披露され,従来の一般的なイメージとは異なる“意外な結果”が明らかにされた。 オープンソースカンファレンスは,オープンソース関連コミュニティが主催するイベントで,OSC2007.DBはデータベース関連のコミュニティが集まったイベントである。性能比較セッションを担当したのは,日MySQLユーザ会の堤井泰志氏,日PostgreSQLユーザ会の片岡裕生氏,Firebird日ユーザー会の木村明治氏。「あくまでボランティアによる性能比較であって,最速,最新マ

    「MySQL,PostgreSQLとFirebirdの性能をユーザー会メンバーが徹底比較,判明...
    Aoba
    Aoba 2007/06/26
    わーいPostgreSQLが勝ったー(子供)
  • CakePHP - Build fast, grow solid | PHPフレームワーク

    New CakePHP 5.0 Chiffon. Faster. Simple. Delicious. What's new in version The migration guide has a complete list of what's new in. We recommend you give that page a read when upgrading. A few highlights from 5.0 are: PHP 8.1 required. Improved typehints across the framework. CakePHP now leverages union types to formalize the types of many parameters across the framework. Upgraded to PHPUnit 10.x

    CakePHP - Build fast, grow solid | PHPフレームワーク
  • [ThinkIT] 第6回:データベースの負荷分散とまとめ (1/3)

    Webサーバーも順調に増えた、となると次はデータベースが悲鳴を上げる頃です。データベースの増設と行きましょう。 はてなではデータベースにはMySQLを利用しています。MySQLは組み込みでレプリケーションをサポートしているので、これを使わない手はありません。レプリケーションを行い、マスターDBのコピーであるスレーブDBサーバーを作り2台構成にします。 レプリケーションは、データベースを複数台に増やし、且つその複数のデータベースが保持するデータを同期させるための仕組みです。レプリケーションされたデータベースのうち、元々あったデータベースが親、それ以外が子という親子関係になります。 親はマスター、子はスレーブと呼ばれ、マスターへの更新処理と同じ処理をスレーブに伝播させることでデータの同期が行われます。実際にはマスターからスレーブへ処理が伝播するのではなく、スレーブがポーリングを行ってマスターと

  • データベースミラーリングを構築してみよう

    主な内容 --Page 1-- データベースミラーリングの構築手順 サーバの用意 --Page 2-- プリンシパルの完全バックアップとミラーへの復元 --Page 3-- データベースミラーリングセッションの構成 まとめ 前回の「高可用性は低コストなデータベースミラーリングで」では、データベースミラーリングの概要について取り上げ、その仕組みや動作モード、利点など基的な内容を確認しました。 今回は実際にデータベースミラーリングの構築を行ってみたいと思います。データベースミラーリングは基的に3台のサーバを用意して構築しますが、今回は試験利用ということで、1つのサーバに3つのインスタンスを用意し、サンプルデータベースであるAdventureWorksをミラーリング対象のデータベースとして構築します。 データベースミラーリングの構築手順 データベースミラーリングの構築に際し、Transact

    データベースミラーリングを構築してみよう
    Aoba
    Aoba 2006/10/23
    ミラーリングだけどSQL Serverがターゲットかぁ。残念
  • SourceForge.jp: Project Info - Ludia

    Ludiaは高速かつ高精度な全文検索インデックス機能をオープンソースのデータベース管理システムであるPostgreSQLに提供します。Ludiaは株式会社NTTデータにより開発され、2006年10月11日にLGPLライセンスのオープンソースソフトウェアとして公開されました。 ダウンロード 最新リリース ludia 1.5.2 (日付: 2009-03-27) ludia-withdeps 1.5.1 (日付: 2008-08-07) ludia 1.5.1 (日付: 2008-08-07) ludia-withdeps 1.5.0 (日付: 2008-03-25) ludia 1.5.0 (日付: 2008-03-25)

    SourceForge.jp: Project Info - Ludia
  • PHPとデータベースに関する5つの問題、とその解決法 - GIGAZINE

    IBMのサイトに、PHPから操作するデータベースに関してよく見られる5つの問題点とその解決方法が掲載されています。 データベースのデザインをする際、一般的に発生する問題点についての解説です。 で、肝心の5つの問題が何かというと、以下の通り。 Five common PHP database problems 1つめは古いPHPのコードでは直接、データベースにアクセスしているということ。コレに代わる手段としては、PEARのDBモジュールを使うか、あるいはPHPデータオブジェクト、PDOのクラスを使え、とあります。 2つめは、オートインクリメントを使わないということ。MySQLは基的にレコード1つについてユニークなIDをオートインクリメントしているわけですが、これを活用していないというパターン。オートインクリメントを有効に使っていない場合、非効率的であるだけでなく、負荷も高くなるそうです。解

    PHPとデータベースに関する5つの問題、とその解決法 - GIGAZINE
    Aoba
    Aoba 2006/09/06
    プログラムからDBを使う際に気をつけることとか
  • YourSQL VS Oracle VS GFS - アンカテ

    梅田さんから「シリコンバレー精神」の献をいただきました(ありがとうございます)。 それで、このエントリは書評ではなくて、ここからインスパイアーされた話。 結論から先に言えば、「EXITの前後でストレージ・エンジンに関わる技術に注目すると、その会社の実態に迫りやすい」という仮説。 EXITとは、ものすごくおおざっぱに言えば、会社を上場すること。 つまり、創業者の私物であったベンチャー企業が社会の公器になること。社会がその会社と契約を交わすこと。「これこれのことを責任持ってやってくれるなら、それなりの金を渡すよ」 その契約の代理人となるのが、日では株式市場しかない。それに対しシリコンバレーでは、もちろん市場も機動的だけどそれ以外にも、大企業による買収とか、すでに公開している企業との合併とかいろいろな代理人がいる。 多くの場合創業者は会社に残るのだろうが、その役割の中に完全に変化する部分があ

    YourSQL VS Oracle VS GFS - アンカテ
    Aoba
    Aoba 2006/08/23
    StrageとExitの関係
  • 6月のはぶにっき

    not found

    Aoba
    Aoba 2006/06/24
  • catfrog.net

    Want your own domain name? Learn more about the domain name extensions we manage Find a domain name similar to catfrog.net

    Aoba
    Aoba 2006/06/20
    なんかすごい
  • http://tech.blog.klab.org/archives/50277350.html

  • オープンソース情報データベース || OSS iPedia

    オープンソース情報データベースシステム(OSS iPedia) は、2013年5月17日(金) をもちまして運用を終了いたしました。 長い間ご利用をいただきましてありがとうございました。 OSS iPediaで提供しておりました、IPAフォント、文字情報基盤、その他報告書等については、下記リンクをご参照ください。 皆様には大変ご不便をおかけいたしますが、何卒ご理解の程をよろしくお願い申し上げます。

    Aoba
    Aoba 2006/05/16
  • 素早く正規形を見抜く実践テクニック(1/4) - @IT

    今回のテーマはデータベースエンジニアの必須知識の1つである「正規化」です。正規化は、リレーショナル・データベースのテーブル設計を行ううえで非常に重要なテクニックであり、データベースを設計、実装したことのある方なら一度は正規化に触れているのではないでしょうか。 それほど基的な知識であるにもかかわらず、正規化を説明できる人はなかなかいません。多く聞かれるのが「何となくテーブルを作ると自然に第3正規形になる」とか「実務上は第3正規化まで行えば問題ない」というものです。 ではなぜ「第3正規化まで行えば問題ない」のでしょうか。稿ではひととおり正規化について確認しながら、あまり触れられることのない第3正規化より先の正規化を紹介して、この疑問に答えていきたいと思います。 正規化の位置付け 正規化は、データベース設計全般にかかわる基礎知識ですが、特に論理データモデリングの作業の中で必要になります。稿

    素早く正規形を見抜く実践テクニック(1/4) - @IT
    Aoba
    Aoba 2006/05/11
    正規化をちゃんと考えようのコーナー
  • PHPのセッションをDBに格納するチュートリアル:phpspot開発日誌

    Chris Shiflett: Guru Speak: Storing Sessions in a Database While the default session storage mechanism is adequate for many PHP developers, you might find yourself wanting to modify its behavior from time to time. One of the most common reasons for wanting to change the default behavior is to store sessions in a database rather than the filesystem. The top reasons for this desire are: PHPのセッションをDB

    Aoba
    Aoba 2006/05/10