タグ

ブックマーク / torazuka.hatenablog.com (35)

  • メモ: 複合主キーを云々いう前に足りなかったこと - 虎塚

    先日、データベース設計で、ナチュラルキーの組合せを使った複合主キーと、その代替となるサロゲートキーのどちらを使うか、という話を書きました。 複合主キーを避けるべき理由 - 虎塚 月末までには、改めて考えを整理するつもりでした。しかし、残念ながら、今の自分の知識ではムリそうです。そこで、考えたことを少しずつ出力することにしました。 この問題について考えるべき(だった)こと 前回の記事に足りなかった観点が3つあります。 データベースの論理設計と物理設計を分ける 複数ある要素の一部にだけ言及していると自覚する すべては程度問題である これらを1つずつ考えてみます。 1. 論理設計と物理設計を分ける まず、データベースの論理設計と物理設計を分けて考える必要がありました。非常に、基的なことですが・・・ 論理設計で、ユニーク制約が必要なキーと、行を一意に特定するキー(候補キー)を特定します。もちろん

    メモ: 複合主キーを云々いう前に足りなかったこと - 虎塚
    suginoy
    suginoy 2011/08/02
  • メモ: 業務依存度の変化からサロゲートキーもまた逃れられない - 虎塚

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

    suginoy
    suginoy 2011/08/02
    発番ロジックがあるものとか。
  • 複合主キーを避けるべき理由 - 虎塚

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

    複合主キーを避けるべき理由 - 虎塚
    suginoy
    suginoy 2011/07/14
  • コーディングルールに関する余談 - 虎塚

    ところで、宗教上の理由によりswitch文を使うことができないのですが、他の人が書いたCのコードを読んでいると、gdgdいわずに使うべきかという気がしてきます。他にも、「ifブロックの中身がたとえ1行でも中括弧を省略してはならない」という戒律もあり、生きるのが辛い(嘘)。 こうなった言い訳を少ししてみます。 コードの行数の少なさは可読性に直結しません。…とはいえ、exit (1)と1行書くためだけに中括弧を使うのは、人によっては可読性を損ねていると感じられるかもしれません。 しかし、ここで重視したいのは「統一されている」ということです。 仮に、exit (1)のための中括弧は大げさだという話になったとしましょう。では、exit (1)の数十倍の長さの1行であれば(←そもそもそんなコードかくな)、中括弧を用いるのが妥当でしょうか。違います。「if文の条件式の後には、ブロック内の行数を問わず、

    コーディングルールに関する余談 - 虎塚
    suginoy
    suginoy 2011/07/13
    複数の可能性があるというのは脳みそにとってわずらわしい
  • かの報告書から何を学ぶか - 虎塚

    みずほ銀行 : 2011年3月のシステム障害について みずほ銀行さんの報告書を読みました。考えたことをメモします。 関連: http://d.hatena.ne.jp/torazuka/20110319/mizuho (特定の会社の話題に関するチラ裏なので、続きは折りたたんでみる) ・・・ これほど胸が詰まる資料もありません。いったいどうすれば、止めるべきでないシステムを動かし続けることができるのだろうと思います。報告書を読んでいると、その日が来るのは遠く思えて、悲しくなってきます。 やるべきだと分かっていても手をつけていないこと、緊急度の高いタスクにおされてプライオリティを下げた重要度の高いタスク。そんなものは日常業務で山ほどあります。その積み重ねの延長線上で今回の障害が起きたと考えると、他人事とは思えません。 地続きのITの世界で働く身としては、やはり何か教訓を拾い上げなければならない

    かの報告書から何を学ぶか - 虎塚
    suginoy
    suginoy 2011/06/17
    「世の中の勉強会に行くと感じるのは、SIerとはいまや「足を洗う」べき場所と多くの人に思われていて、「SIerを卒業しました」と宣言すれば仲間内で祝福される状況」
  • EC2擬人化ネタを回収した(※ネタです) - 虎塚

    EC2かわいいよEC2。 EC2への思いが募るあまり、先週ついウッカリTwitterにこんなことを書きました。 そうしたら、複数の人にRTされた結果、Lightningさんに捕捉され、 ……。 「父さん!強い電波です」 何か、夢が広がりまくりんぐな予感がしたので、ひとまず自分が出したネタを回収しておくことに。 風太さん([twitter:@laughsketch])作の愛くるしいAMIたんをお借りしました。 (省略されました・・・続きを読むにはあまぞんぺろぺろと書き込んでください。)

    EC2擬人化ネタを回収した(※ネタです) - 虎塚
  • Trac系プロジェクト管理ツールの選定メモ - 虎塚

    チームでプロジェクト管理ツールを使おうという話になり、ツールを探しました。結果、KanonをUbuntuで動かすことに決めました。 Twitterで色々アドバイスを頂いて大変参考になったので、まとめておきます。次にKanonを選ぼうとする人の参考になるかもしれないので・・・ [twitter:@sinsoku_listy]さん、[twitter:@kanu_]さん、[twitter:@LightningX]さん、[twitter:@kimukou_26]さん、ありがとうございました。 [Trac系プロジェクト管理ツールの選定メモ] 呟きまとめ - Togetter (kimukou_26さんがまとめてくれました。感謝です) 当初の選択肢 次のどちらにするかで迷っていました。 TracLightning on Windows Server Trac on Linux OS まず、TracLi

    Trac系プロジェクト管理ツールの選定メモ - 虎塚
  • メモ: パブリッククラウド上の暗号化 16のアドバイス(via トレンドマイクロ) - 虎塚

    パブリッククラウド上の仮想インスタンスでセキュリティを保つ方法を、昨夜から調べています。 トレンドマイクロさんの資料に、このあたりのネタが載っていました。 Encryption in the Public Cloud: 16 Bits of Advice for Security Techni… 観点のヒントになりそうですし、読んで分からない点がいくつかあるので、メモしておきます。 ネットワークトラフィックを暗号化する ブロックデバイスには暗号化されたファイルシステムだけを使う dm-cryptしろとか、可能ならFUSEを使えとか、そういうこと? 共有ストレージ内のすべてを暗号化する 復号キーで対象のクラウドシステムに入るのは、復号処理の間だけにする VM内の認証証明書だけを、ファイルシステムキーの複号キーとする よくわからない。自分の訳も間違ってるかも。 インスタンスを開始する際に、暗号

    メモ: パブリッククラウド上の暗号化 16のアドバイス(via トレンドマイクロ) - 虎塚
  • Eclipseたん「Happy Valentine for Eclipse Lovers」 - 虎塚

    この週末に独りでコードを書いてる人には、Eclipseたんがチョコレートくれるらしいです。 どうも、まわりに、荒んでいる人たちが多いので…(油をそそいでみた) まぁ、自分も、バレンタイン? 何ソレおいしいの?ってカンジです。 当にありがとうございました。

    Eclipseたん「Happy Valentine for Eclipse Lovers」 - 虎塚
  • 今年もEclipseたんがチョコレートをくれるらしいです - 虎塚

    去年に引き続き・・・ この週末に独りでコード書いてる人には、Eclipseたんがチョコレートくれるらしいです。 エライ人が、「ないものは作れ」って言ってました。 ですよねー。 チョコレートをくれる女の子がいないなら、Eclipseたんを描けばいいんですよねー。 自家発電乙、はわれわれの業界ではご褒美です。当にありがとうございました。

    今年もEclipseたんがチョコレートをくれるらしいです - 虎塚
  • Webアプリケーションのサービスクラスとは何か - 虎塚

    「JSP、サーブレット、サービス、DAO、DTOといった構成のアプリケーションにおけるサービスクラスとは何か」、という問いに自分なりの答えを出すのが、今日の宿題です。 自分の解答 ※注意: 以下の文章は言い切り形式で書いていますが、間違っているかもしれません。 ちょろっと調べたのですが、サービスについてそのものズバリの単一な定義を見つけることはできませんでした。なので、いくつかの観点から理解することを試みます。 モデル、ビュー、コントローラにおける「サービス」 アプリケーションをモデル、ビュー、コントローラに分けて見たとき、サービスはモデルに属します。モデルには、データベースアクセスを行うクラスと、システム固有の処理を行うクラスがあります。 サービスは、後者のシステム固有の処理を行うクラスに当たります。 なお、データベースアクセスを行うクラスは、データを保持するクラスと、データベースアクセ

    Webアプリケーションのサービスクラスとは何か - 虎塚
  • Wiresharkを使ってみる - 虎塚

    出入りするパケットは全部監視しろってじっちゃがいってた。 …んだけど、よくわからないのでひとまず家で試しました、という自分用のメモです。 やりたいこと (単純に)生のパケットを見る 開発中のアプリがネットワークに接続している時のパケット流量を知る 接続時間スループットの目安値を得るため 環境 Windows XP Professional Version 2002 Service Pack 3 Wireshark 4.1.2 Wiresharkとは Wiresharkは、GUIを持つネットワークプロトコルアナライザです。GPLライセンスのOSSです。何らかのパケットキャプチャソフト(今回はWinPcap)と合わせて使います。 Wireshark4.1.2には、WinPcap4.1.2が同梱されていて、Wiresharkのインストール中にWinPcapもインストールするかを選択できます。Wi

    Wiresharkを使ってみる - 虎塚
  • 『Javaデバッグ明解技法』読み中 - 虎塚

    職場に転がっていたので、借りてきて読んでます。 バグを減らすには納期のプレッシャーをなくせだとか、そのためのリスクファクター分析だとか、コードは右脳で書け(?)だとか、マルチスレッドプログラムのデバッグ方法だとか、ツールの紹介だとか、内容が多岐に渡っていて面白い。自分にとっては難しいトピックも沢山あるので、じっくり読みたい。 Javaのデバッグについてこれだけのページを割いて書かれたは他に知らないので、そこだけ取り上げても嬉しいです。すごく古いですけど・・・(出てくるJavaJava2とかだし)。でも、それを補って余りある良いな気がします。 あと、訳が非常に良い。読みやすい。

    『Javaデバッグ明解技法』読み中 - 虎塚
  • EclipseたんとGroovyたんの浴衣仕様スプラッシュ画像 - 虎塚

    遅ればせながら、残暑お見舞い申し上げます。 上の画像は、画質を落としたサンプルのJPGです。物は、下のDropboxにあります。約500KBのBMPです。 http://dl.dropbox.com/u/3779351/MDD/splash_eclipse-tan_summer.bmp 使用イメージ 夏らしい感じになります。 感謝 kimukou_26さんから、 是非この画像でEclipseスプラッシュ作ってもらえるとうれしいです >Groovyたんとかも合わせて〜 夏・ナツ・Eclipseたん - 虎塚 というリクエストを頂いたので、作ってみました。言語×IDEの擬人化絵はあまり見ないので、珍しいものを描けて楽しかったです。ありがとうございました。 ところで、Groovyな方は、Eclipse派よりIntelliJ派が多いんですかね。どうなんでしょ?

    EclipseたんとGroovyたんの浴衣仕様スプラッシュ画像 - 虎塚
  • 「わかる!JavaVM ― 2時間でわかる?JavaVM入門」へ行ってきた - 虎塚

    面白かったー。 で、ブログを書くまでが勉強会らしいので、とりいそぎ、gdgdなメモを貼っておきます。 要約ではなく、チラ裏的なアレですので、ご了承ください。 クラスローダーについて(ashigeruさん) クラスローダーについて ロード処理のこと。 親jarのバージョンが古いとそっちを見ちゃってヤバイ Tomcat5.5〜は、自分を先に見てからTomcatが提供してるクラスローダを見にいく すなわち親の影響を受けにくい OSGiは親から探す。必要なやつだけ選べる ライブラリの衝突をパッケージ名変更で乗り切るとかの話 定義ローダのこと。 親が違うとClassNotFound 定義ローダが違うとキャストしたとき問題がでるよ ドッペルゲンガーは親から探すと起きないよ リローディング技術のこと。 親からクラスファイルのバイナリをパクってくる リローディング用のクラスローダで定義する しかし全部やる

    「わかる!JavaVM ― 2時間でわかる?JavaVM入門」へ行ってきた - 虎塚