タグ

databaseに関するgothedistanceのブックマーク (13)

  • 複合主キーを避けるべき理由 - 虎塚

    データベース設計の話をしていて、「連番の主キーは業務上意味のないデータだから、テーブルに持たせるのはムダだ。複合主キーにするべき」という意見を聞く機会がありました。 脊髄反射で「ないわー」と思ったものの、理由を上手く説明できなかったので、改めて考えてみました。 その結果、次のような結論に至りました。 単一の連番カラムによる主キーと、複合カラムによる主キーとで迷ったら 実装をシンプルにし、業務変更の影響範囲を小さくするために、複合主キーを避ける というわけで、調べたことや考えたことをメモしておきます。# 間違っている部分があれば、教えていただけると嬉しいです。 (2011/07/25 追記)複合主キーとサロゲートキーについては、要件やシステムに依存して多様な判断がありうると思います。にもかかわらず、「避けるべき」というタイトルにしたのは極端でした。申し訳ありません。ご指摘下さった皆さん、あり

    複合主キーを避けるべき理由 - 虎塚
    gothedistance
    gothedistance 2011/07/14
    全く同感。え?まだERDレッスン読んでないの?もったいない!
  • もう1つの、DBのかたち、分散Key-Valueストアとは

    もう1つの、DBのかたち、分散Key-Valueストアとは:分散Key-Valueストアの命「Bigtable」(1)(1/3 ページ) RDBとは別の、クラウド時代のデータベースとして注目を浴びている「分散Key-Valueストア」。その命ともいえる、Googleの数々のサービスの基盤技術「Bigtable」について徹底解説 クラウド時代のデータベース「分散Key-Valueストア」 グーグルがインターネットの世界をここまで席けんできた最大の理由は何でしょうか。実は、それは同社の優れた検索技術ではありません。グーグルが成し遂げた最も大きなブレークスルーの1つは、同社が生み出した巨大な分散データストア、「Bigtable」にあります。 Bigtableは、Google検索をはじめ、YouTubeやGoogle MapGoogle Earth、Google Analytics、Goog

    もう1つの、DBのかたち、分散Key-Valueストアとは
  • 新書籍「Linux-DBシステム構築/運用入門」

    Linux上で「高速で、落ちない」DBサーバーを構築するための技術解説をした書籍を出版します。タイトルはストレートに「Linux-DBシステム構築/運用入門」です。 9月17日発売ですが、ジュンク堂など一部の書店ではすでに入荷しているそうなので、見かけたらぜひ読んでみてください。章構成は以下の通りです。 第1章 論理ボリュームマネージャ(LVM)を活用する 第2章 Heartbeatによるクラスタ環境の構築 第3章 DRBDによるネットワークミラーリング(前編) 第4章 DRBDによるネットワークミラーリング(後編) 第5章 高可用DBサーバーの構築 第6章 現場で使われる高可用構成 第7章 DBサーバーのパフォーマンス概論 第8章 インデックスのチューニング(前編) 第9章 インデックスのチューニング(後編) 第10章 DBサーバーのハードウェア選定 第11章 SSDの効果とアプリケーシ

  • “動物図鑑”で知るCouchDBの特徴

    “動物図鑑”で知るCouchDBの特徴:ゆったリラックス! CouchDBがあるところ(1)(1/3 ページ) ドキュメントを手軽にWebで公開したいとき、リレーショナルデータベースで実装することに違和感を覚えることはありませんか? CouchDBはそのようなニーズに合った、新しいデータベース管理システムです。CouchDBを知り、リラックスしながら実装をしていきましょう(編集部) CouchDBとは? CouchDB(カウチDB)はドキュメントをデータとして管理し、Webで公開することに最適化されたデータベース管理システムです。CouchDBの“ドキュメント”は報告書、仕様書、議事録といった文書や、名刺、プロフィールといったデータの集合のことを指しています。また、JavaScriptのソースコードをドキュメントの一部として配置することも可能です。 OSSとして一般へのリリースが始まったの

    “動物図鑑”で知るCouchDBの特徴
  • 株式会社マジカジャパンの羽生章洋が書いてるブログ:反省 - livedoor Blog(ブログ)

    昔、楽々ERDレッスンという書籍を書きました。データベース設計に関することを書いたものです。その中で、あぁここはもう少し書きようがあったなぁ、と感じて反省している箇所があります。 楽々ERDレッスン (CodeZine BOOKS) 著者:(株)スターロジック 羽生 章洋 販売元:翔泳社 発売日:2006-04-18 おすすめ度: クチコミを見る 状態遷移に関してのところです。例となっているERDを落ち着いて見て頂くと一発でわかるのですが、これ実は状態遷移でも何でもないのです。この例で状態としているものは結局のところイベント系のエンティティでしかありません。要するにプロセスセットを見いだしているだけです。考えが足りなかったなぁ、と反省しています。状態というものの核を把握してなかったのですね、きっと。 ここ数年ワークステートエンジンをフル活用する中で状態というものに向き合ってきました。このあ

  • 株式会社マジカジャパンの羽生章洋が書いてるブログ:今日のCouchDB - livedoor Blog(ブログ)

    メインフレーム時代とはCOBOL時代と言い換えてもいいでしょう(RPGやPL/Iの方には申し訳ない)。これは更に言い換えると固定長のパラダイムだとも言えます。オープンシステム時代になりRDBMSが主流となったときに一番のパラダイムシフトは、実は明細の扱い方だったと言えます。 COBOLをご存じの方はOCCURSを当然使っていたはずです。OCCURSとは繰り返しを表すもので、売上データというファイルがあったときに明細部分は繰り返しになりますから、OCCURSを指定します。ややこしい言い回しを使っていますが、要するに配列定義ということです。 さて、COBOLは固定長のパラダイムだと書きました。実はこのOCCURSで定義される配列は繰り返し数が事前に固定されます。例えばOCCURS 5.と書けば5回繰り返しということです。一応可変長が可能ということになってはいるのですが、多分今でも指定した上限を

    gothedistance
    gothedistance 2009/05/14
    勉強になる。
  • 結合方式とインデックスの関係 - 極北データモデリング

    ネスト化ループ結合/マージ結合/ハッシュ結合は、それぞれインデックスをどのように使うのか、を整理する。 マスタのxxコードとトランザクションの同名の列を等結合にするSQLについて、 インデックスが片側(マスタ側のみ) インデックスが両側 インデックスなし の3条件で、各結合方式の実行速度を計測してみる。 テスト内容 PostgreSQL8.3.5で以下のSQLを実行する。 explain analyze select * from tellers t -- 1000件のマスタ inner join history h on h.tid=t.tid -- 1000万件のトランザクション結合方式は以下の手順で制御する。 ふつうに実行すると、プランナはハッシュ結合を選択する。 set enable_hashjoin to off を実行すると、プランナはマージ結合を選択する。 さらに set e

    結合方式とインデックスの関係 - 極北データモデリング
  • データへの最短ルートを確保せよ!(1/4) ― @IT

    前回「システムの寿命はコードで決まる!」ではコード設計について解説しました。今回はデータへの最短ルート、つまりSQLの最も効率的なアクセスパス(実行計画)を見つけ出すためのテクニックを解説します。 SQLはデータベースに関する最も基的な技術で、まずSQLから学んだ(でいる)という方は多いと思います。しかし、SQLを学ぶ際、データベースから必要なデータを取得する手段を学んでも、どのようなアクセスパスでデータを取得するかは後回しになることが多いのではないでしょうか。 商用のシステムで使用されるSQLは、必要なデータを取得できるだけでは不十分で、どれだけ素早く取得できるかも重要です。データ取得の素早さは、SQLに適用されるアクセスパスの良しあしで決まります。そこで、今回は「どんなアクセスパスが適しているか」「どうやってRDBMSに適切なアクセスパスを利用させるか」を以下のような構成で解説します

    データへの最短ルートを確保せよ!(1/4) ― @IT
  • いろんなRDBMSのエラーメッセージドキュメントの場所 - taediumの日記

    ドキュメントの場所を知っていても、エラーメッセージの一覧にたどり着くまでになかなか時間がかかるのでここに挙げとく。 Oracle Database 10.2 http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19212-01/toc.htm Microsoft SQL Server 2005 select * from sys.messages where language_id = 1041 (MSDNから見つけられなかったよ...。でもこのクエリで一覧できる。) DB2 9.5 http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=/com.ibm.db2.luw.messages.doc/doc

    いろんなRDBMSのエラーメッセージドキュメントの場所 - taediumの日記
  • cl.pocari.org - オープンソースになった Fastladder の ER 図を描いてみた

    オープンソースになった Fastladder の ER 図を描いてみた 2008-02-10-1: [SQLite] Livedoor の Fastladder がオープンソースになったということで、勉強を兼ねて ER 図を描いてみました。 (クリックで大きくなります) 使ったツールは DBDesigner 4 (日語版) です。 DBDesigner 4 では、SQLite 3.x のデータが読めないようなので、SQLite ODBC Driver を使って、ODBC で読み込み、リバースエンジニアリングしました。 テーブルの定義はソースを見ながら作成中ですが、あまり Ruby が分かっていないので時間がかかりそうです。。。そのうち公開します。 - Fastladder Open Source http://fastladder.org/

  • 『ファイル内のSQL(DDL)を実行』

    ファイル作成 (hoge.sql) -------------------------------- DROP TABLE HOGE; -------------------------------- mysql -u hoge hoge_db < hoge.sql もしくは mysql -u hoge hoge_dbMysqlにログインしたあと source hoge.sql (ファイルは相対パス・絶対パス指定いずれもOK)

  • [データベース編]ビュー,トリガーを多用してはいけない

    開発フェーズで,データベース設計とアプリケーション設計との間で仕様の認識が異なっていることがよくある。そのようなとき,データベースもしくはアプリケーションのどちらかで仕様変更を吸収する必要に迫られ,ビューやトリガーといったデータベースとアプリケーションの中間に位置するグレーな部分で回避する場面をよく見かける。 これは,構築したデータベースへの変更とアプリケーションへの変更を最小限に抑えるテクニックの一つである。しかし,このグレーな部分での回避策を多用すると,今後のデータベース,アプリケーション双方のメンテナンス性に対して大きな禍根を残すことが多い(図1)。 カラムを一つ削除するのも大変 確かに,ビューやトリガーは,使い方によってはアプリケーションで考慮しなくてはならないことをデータベース側で吸収できる優れた機能である。しかし,データベースから見ればビューやトリガーは通常のオブジェクトとは異

    [データベース編]ビュー,トリガーを多用してはいけない
  • 特集:基礎から理解するデータベースのしくみ - 特集:基礎から理解するデータベースのしくみ:ITpro

    「データベースはブラックボックス。どんなSQL文を投げたらどんな結果が返ってくるかさえ知っていればよい」---そう思っている人も多いかもしれません。 しかし,物のソフトウエア・エンジニアを目指すのであれば,データベースが動く仕組みを学ぶことは避けて通れません。パフォーマンスなどに問題が生じたときどこから手を付けていいのか皆目見当がつかない,といった事態に陥りかねません。 市販のRDBMSの内部はかなり複雑ですが,基的な部分を理解するのはそれほど難しくありません。この特集でデータベースの動く仕組みを理解してください。 イントロ ●ブラックボックスのままでいいの? 基礎から理解するデータベースのしくみ(1) Part1 ●SQL文はどのように実行されるのか 基礎から理解するデータベースのしくみ(2) 基礎から理解するデータベースのしくみ(3) 基礎から理解するデータベースのしくみ(4) 基

    特集:基礎から理解するデータベースのしくみ - 特集:基礎から理解するデータベースのしくみ:ITpro
  • 1