タグ

modelingに関するtgkのブックマーク (42)

  • 履歴を持つデータの設計

    酔いどれ設計ナイト2019の発表資料です。

    履歴を持つデータの設計
    tgk
    tgk 2019/04/14
    「会員変更イベント」テーブルが会員マスタの履歴テーブルそのものになっている。「リソースごとに履歴テーブルを持たざるを得ない(が、あえて履歴テーブルとは呼ばない)」という主張だと思えばいいのかな
  • Horizontal Partitioning and Related Tables

    tgk
    tgk 2015/04/01
    受注ヘッダを受注日でパーティション分割している場合、受注明細にも受注日を置いて同様にパーティションを割るべきという話
  • Modeling by Verb

    セイコーエプソン株式会社、萩原豊隆さんによる、新しいモデリング手法、 「動詞de!! モデリング�」のプレゼンテーションです。 ・ソフトウェアの振る舞いは動詞で表現できます。しかし今までのモデリング手順では、“動詞”を適切に扱えませんでした。例えば名詞つまり目的語に着目する一方で、付随する動詞を無視して振る舞いを漏らす。あるいは「○○制御」クラスのように振る舞いがすべて“制御”という言葉に隠れてしまう。いずれも動詞の取り扱いのまずさに起因します。 ・そこで目的語と共に動詞も同時にクラス図へ変換する手法を作りました。モデリングツールを使って、目的語と動詞の組み合わせをサクサクとクラス図に変換していきます。クラス図の良し悪しは読み上げて確認です。単純かつ明快なので誰もがセンスに依存せずにモデリングできるようになります。

    Modeling by Verb
    tgk
    tgk 2014/11/26
    「規準が無いとセンスの問題になってしまう」センスを語る人はアーティスト ...我々はエンジニアであってアーティストではない
  • 主キーはインデックスではない - 設計者の発言

    仕事柄、奇妙なDB構造を目にすることが多い。どういう発想からそんな設計がされるのかを理解したいと思っていたのだが、モデラー仲間の秋里さんが先日うまい指摘をした。「主キーをインデックスみたいなものと勘違いしているからではないでしょうか」。インデックス(キー)というのは、レコードの並び順を規定するキーのことだ。 たしかに思い当たる節がある。「こんな順にレコードが並んでいれば処理上都合がよさそうだ」という考えで主キーが設定される。さらに主キーはユニーク制約でもあるので、重複が起こらないように「多め」に項目を突っ込んでおく。つまり「ユニーク制約をともなう代表的インデックス」程度に主キーが理解された結果として、グダグダなDB構造が出来上がるのではないか。 じっさい、昔こんなことがあった。{a,b,c,d}の複合主キーをもつテーブルXがある。ところが、別のテーブルYからテーブルXの特定レコードにアクセ

    主キーはインデックスではない - 設計者の発言
    tgk
    tgk 2014/08/27
    「1テーブルに複数の候補キーがあってはならない」と言っているように聞こえる。そんなわけないと思って読み返したがやっぱり言ってる
  • 論理削除が奪うもの

    論理削除が奪うもの JPOUGのAdvent Calendar 12/10担当です。 12月 - 忘年会シーズンです。酒で記憶を失っている際に、怒ったとか、近くにいた人にカラんだとか、脱いだとか、毛を燃やしたとか、エレベーターホールにズボンが脱ぎ捨てられていたとか、会議室でが発見されたとか、そういう事件が多発する月ですね。皆様いかがお過ごしでしょうか。 微塵も記憶がない状態で、やらかした内容を色々な人から聞かされるにつけ、穴を掘って蓋してセメントで埋めてもらいたくなるのは常ですが、こういう時はどんな対処を取ればいいんでしょう。 得てしてロクでもない行動を取った時の翌日における参加者の記憶力の良さと来たらFlight Recorderも真っ青です。 なんとか失敗を無かったことにしたいと立ち回りたいですが、まあ無理です。各所にヒアリングを重ねれば重ねるほど確度と精度が高まります。エビデンスま

    論理削除が奪うもの
    tgk
    tgk 2014/03/12
    三次元主義の直観と四次元主義のRDBとの激突
  • 主キー問題を整理する - A.R.N [日記]

    だいぶん前から延々とくすぶっているIDキー問題あるいはサロゲートキー問題なのですが、一時期下火になっていたのですが、また再燃している感もあります。それだけ奥深い問題なのかもしれません。 複合主キー「否定派」と「許容派」の論争 IDの設計についてのさらに突っ込んだ議論 生きているうちに自然キーvsサロゲートキー問題に決着を付けたい(1) ただ、読んでみると同じような話題のように思えても意外に論点が錯綜しており、交通整理が必要なのではないかと感じます。私が見たところ 有意キー vs 無意キー グローバルキー vs ローカルキー 公開キー vs 非公開キー 複合主キーあり vs 複合主キーなし というところが論点かな、と感じています。あまり一般的な用語法ではないところもありますが、個々人で微妙に定義が異なる気もするので、一旦この名前で呼ぶことにします。 まず、第一の論点「有意キー vs 無意キー

    主キー問題を整理する - A.R.N [日記]
    tgk
    tgk 2014/01/05
    サロゲートキーと言わずIDと呼ぶ人は、無意味・ローカル・非公開のサロゲートキーとは違う何かについて語っているのではないかと思います。そう思ってリンク先の奥野さんの記事を読んだがさっぱり理解できなかった
  • MongoDBとMySQLでのスキーマデザインの違い | Yakst

    MySQL Performance Blogの翻訳。MySQLのようなリレーショナルデータベースと、ドキュメント志向データベースMongoDBでのスキーマデザインの違いについて。 2013/08/01 by Stephane Combaudon リレーショナルデータベースに慣れている人がMongoDBのようなNoSQLのソリューションを使うのは、面白いチャレンジになるだろう。そのうちのひとつが、スキーマのデザインだ。リレーショナルな世界では、正規化がいいとっかかりだが、新しくMongoDBのアプリケーションを作るときには、データ保存についてどうデザインすべきだろうか? 簡単な例を挙げて、MySQL(というかあらゆるリレーショナルデータベース)でデータ構造をどう作るか、そしてMongoDBではどうかを見てみよう。個人情報(名前)とその人のパスポートの詳細(国籍と有効期限)を保存したい、という

    MongoDBとMySQLでのスキーマデザインの違い | Yakst
    tgk
    tgk 2013/08/12
    「MongoDBの場合、データへのアクセスパターンを知っている必要があり、間違ったスキーマデザインは大問題を引き起こす原因となる」
  • データベースを使った永続化への復讐 - 石橋秀仁(zerobase)書き散らす

    『分散オブジェクト・アーキテクチャ/ドメイン指向アーキテクチャ』について考えるなかで、「永続化」への理解が深まった。というか、このアイデアについて人と話してもかみ合わない理由が分かった。とどのつまり、ぼくが独特な感覚を持つマイノリティだったのだ。 たぶん、ふつうのプログラマから見れば、おそろしくどうでもいいことにこだわっている、ように見えるだろう。 信仰告白 ぼくは現在主流の「データベースを使った永続化」が大嫌いだったんだ。ORMとか一体何なんだ。知らんわな。なんでプログラムを書くのにSQLを書かなきゃならんのだ。(※個人的な感じ方の問題です) 「RDBからSQLでデータをとってきてHTMLで整形して出力するPHPプログラミング」なんて二度とごめんだ。データベースのために働いてるみたいじゃないか。(※個人的な感じ方の問題です) 「データベースを使った永続化」が行き過ぎると「データベース中心

    データベースを使った永続化への復讐 - 石橋秀仁(zerobase)書き散らす
    tgk
    tgk 2013/02/05
    広大な不揮発メモリでディスクを代替すれば解決する、という話ではなさそう。世界をオブジェクトグラフで表現することができない=関係モデルでしか表現できないことへの怒りか
  • Maihama DB | DBFlute

    Maihama DBとは? MaihamaDBのER図 Maihama DBとは? DBFluteのドキュメントにおいて頻繁に利用される Example のデータベースです。 会員(MEMBER)や会員ステータス(MEMBER_STATUS)、購入(PURCHASE)などの基的な構造を理解しておくとドキュメントの理解が深まります。 (Exampleの特性上、命名や構造に一貫性のない部分もあります) MaihamaDBのER図 図 : MaihamaDBのER図

    tgk
    tgk 2013/01/22
    サロゲートキー実装サンプル
  • tenya.info

    FC2ブログからMT5.2.7に引っ越す このブログも開発継続する気ないので引っ越… 開拓日誌ブログ上 me | コメント(0) Vyatta 6.6R1でやったーぶいっv もうルータ買わない!… 開拓日誌ブログ上 me | コメント(0) PHP 5.5の新機能 最近ぜんぜん注視してなかったけど、センス… 開拓日誌ブログ上 me | コメント(0)

  • 命名法 - 主キーはサロゲートキーで、テーブル名はナチュラルキーで(笑) - SQLer 生島勘富 のブログ

    完全に新規の案件というのは当に少ないので、実践できることはほぼない理想論ですが、私の理想とするテーブル構造と命名法です。 まずは、サロゲートキーについて サロゲートキーというのは業務上意味のないキーのことです。 例えば、生徒テーブルは、年次・クラスID・生徒番号で一意になるとしましょう。 この「年次・クラスID・生徒番号」の複合キーを主キーとせずに、システム側で採番した一意な値を主キーとすることをサロゲートキーといいます。 「年次・クラスID・生徒番号」はナチュラルキーといいます。 基は全テーブルをサロゲートキーにする方が効率的です。 サロゲートキーを使わない例外 私なりの基準は関係テーブルの場合、他に情報がない場合サロゲートキーは使いません。 例えば ■ 生徒テーブル ID 年次 クラスID 生徒番号 名前 生年月日 …… ■ 科目マスタ ID 名前 …… ■ 履修マスタ(サロゲート

    命名法 - 主キーはサロゲートキーで、テーブル名はナチュラルキーで(笑) - SQLer 生島勘富 のブログ
    tgk
    tgk 2012/01/17
  • コメントを頂いたので - SQLer 生島勘富 のブログ

    数値を文字型で持つべきではない コメントをいただいたので。 前の記事はこちら。 http://d.hatena.ne.jp/Sikushima/20110809/1312871002 元ネタはこちら。 http://d.hatena.ne.jp/iad_otomamay/20110808/1312805917 http://d.hatena.ne.jp/iad_otomamay/20100906/1283786846 システムはそれぞれ要件が全く違う。だから、何事も一概には言えない。 しかし、はっきり言えるのは数値を文字で置き換えて保存するのは、普遍的な超バッドノウハウでしょう。これはどう考えてもあり得ん。 インサートされた時点の数値エリアの入力率が50%でそれが最終的に90%になる伸長率が高いデータだったとしても、 PCTFREE = 100% × 数値エリア割合 × 50% としておい

    コメントを頂いたので - SQLer 生島勘富 のブログ
  • 削除フラグのはなし

    Query Optimization with MySQL 5.7 and MariaDB 10: Even newer tricksJaime Crespo

    削除フラグのはなし
  • メモ: 業務依存度の変化からサロゲートキーもまた逃れられない - 虎塚

    サロゲートキーとは、そもそも何か? ナチュラルキーとどう違うのか? 「同じキーでも、システムの立ち位置によって、それがナチュラルキーかサロゲートキーかは変わりうる」 ・・・という示唆をどこぞからもらったので、それについて考えています。 じつは、「ICカード1枚1枚に付与される番号や、クレジットカード番号も、見方によってはサロゲートキーに近い値といえる」という指摘を受けるまで、クレジットカード番号なんて業務コードの最たるものであり、それ以外の考え方はありえないと思っていました。 自分が考えるサロゲートキーの特徴は、曖昧ながら、こんな感じです。 業務に依存せず、論理設計には出てこないキー 物理設計で作成するキー 複数キーを取りまとめることもあれば、単一キーに対応することもある しかしながら、「業務に依存しない」というのもまた、(前回書いた)程度問題です。 たとえば、次のような複数のキーについて

    tgk
    tgk 2011/08/03
  • Good night, Posterous

    Posterous Spaces is no longer available Thanks to all of my @posterous peeps. Y'all made this a crazy ride and it was an honor and pleasure working with all of y'all. Thanks to all of the users. Thanks to the academy. Nobody will read this.

  • ソーシャルゲームのためのデータベース設計

    ・データベース的な観点でのソーシャルゲームの特徴 ・データモデル ・ソーシャルゲームに従来型RDBMSを使うべきか、�流行りのNoSQLで行くべきか ・負荷対策 (アーキテクチャ面) ・負荷対策 (ツール面) ・インフラエンジニアのキャリアについて

    ソーシャルゲームのためのデータベース設計
    tgk
    tgk 2011/01/17
  • 300秒で高次正規形を紐解け...なさそう

    tgk
    tgk 2010/09/04
    DKNF, 第6正規形の解説
  • まるで魔法のようなストレージエンジン??VP for MySQLによる驚愕のテーブル操作テクニック。

    先日、SPIDERストレージエンジンについて2度に渡りブログで紹介した(その1:Not Only NoSQL!! 驚異的なまでにWRITE性能をスケールさせるSPIDERストレージエンジン、その2:快適スケールアウト生活への第一歩。SPIDERストレージエンジンを使ってみよう!)が、SPIDERの作者である斯波氏は、実はもう一つ驚くべきストレージエンジンを開発している。その名も、VPストレージエンジンだ。ちょっと地味な名前だが、VPとは、Vertical Partitioning(垂直パーティショニング)の略で、複数のテーブルの上にVPストレージエンジンを被せて、垂直パーティショニング(カラムごとにデータを格納する領域を分ける)を実現するというものだ。他のテーブルの上に被せるアーキテクチャをとっているという点では、VPとSPIDERの発想は同じである。以下は、VPストレージエンジンの動作

    まるで魔法のようなストレージエンジン??VP for MySQLによる驚愕のテーブル操作テクニック。
  • Lang-8でSimpleResourceを全面的に採用した件 - Tous Les Jours 攻防記

    KOFに参加、関西Ruby会議LTで話をさせてもらいました。 使用スライド張っておきます。 SimpleResourceのリポジトリはこちら(↓) http://github.com/KazkiMatz/SimpleResource Lang-8 got updated on SimpleResourceView more presentations from kazuki83.

    Lang-8でSimpleResourceを全面的に採用した件 - Tous Les Jours 攻防記
  • HowFriendFeedUsesMySqlToStoreSchemaLessData - FriendFeed では MySQL を使いどのようにスキーマレスのデータを保存しているのか

    HowFriendFeedUsesMySqlToStoreSchemaLessData - FriendFeed では MySQL を使いどのようにスキーマレスのデータを保存しているのか 目次 この記事について FriendFeed? では MySQL を使いどのようにスキーマレスのデータを保存しているのか 背景 概観 詳細 一貫性と原子性 性能 FriendFeed? では MySQL を使いどのようにスキーマレスのデータを保存しているのか この記事について "How FriendFeed? uses MySQL to store schema-less data" の日語訳です http://bret.appspot.com/entry/how-friendfeed-uses-mysql CC 2.5 でライセンスされています: http://creativecommons.org/