日本銀行と政治

日本銀行と政治-金融政策決定の軌跡 (中公新書)作者: 上川龍之進出版社/メーカー: 中央公論新社発売日: 2014/10/24メディア: 新書この商品を含むブログ (11件) を見る速水総裁から今の黒田総裁までの総裁の動きと政治の関係についてをまとめた本。日銀の動き…

さいごに

最後は短くなった。なぜなら、より物理設計に近くなると異論がなくなるからである。言い換えると、論理設計は正解がない。設計者の裁量の部分が大きく、何が絶対的に正しいとは言い難い。 そもそも、アンチパターンとはなんだろうか?本書の著者によると 問…

砂の城

想定不足により深刻な障害が起きるというアンチパターン。障害が起きるまで放置するのではなく、想定をし、予防をしようというもの。とくに運用後の体制について記述されている。 ベンチマークを取っておく、テスト環境を用意する。例外処理をきっちりやって…

マジックビーンズ

MVCアーキテクチャにおいて、モデルを単なるCRUDの部品として扱ってしまうと、それ以外のコントローラなどがあらゆるモデルのオブジェクトを使って、肥大化してしまい、修正が大変になるという問題。「ドメインモデル貧血症」ともいう。 フレームワークによ…

ディプロマティック・イミュニティ

アプリケーションの開発のルールをデータベース設計だけには適用しないということ。 データベースの設計者だけが特権的な位置にいるということがあるらしい。 よくわからないが、少なくともここで述べられている文書化やバージョン管理をしない(あるいは知…

シー・ノー・エビル

SQLの実行結果のステータスを何も見ないなど、エラー処理を放置してしまうこと。 どのようなエラーがあるのかを知っていればほとんどこのような処置をすることはないと思うが。

シュードキー・ニートフリーク

擬似キーの欠番を埋めるとかいうことはやめましょう。ということ。擬似キーは内部的な値なので欠番が生じても何も問題ないはずである。 ただし、本当のコードつまり、人間が管理すべきコードとしてはあまり良くないかもしれない。このため採番用のテーブルを…

SQLインジェクション

SQLを文字列から組み立て、かつユーザーが入力させる値を途中で組み込むときは、SQLインジェクション攻撃に気をつけましょうというもの。

リーダブルパスワード

パスワードを平文のままデータベースに保管してはいけませんよ、という内容。

インプリシットカラム

ワイルドカードを使ったSQL文は避けろというもの。属性を加えるとエラーになったり、ワイルドカードですべての列を取得するのはパフォーマンスに影響するから、だめだよ。という。列名を明示的に指定しましょう。ということ。 確かに、使う必要のある列のみ…

スパゲッティクエリ

スパゲッティな複雑なクエリを書くと、意図しない結果を出したり、デバッグも難しくなったりするというもの。 解決策としては分割統治を行うべきだということで以下の解決策を出している ワンステップずつ SQLを分割し、ワンステップずつ処理すべき UNIONを…

プアマンズサーチエンジン

全文検索をSQLでやろうとして、LIKE演算子や正規表現で検索しようとすること。インデックスなどが使えないため遅い。全文検索エンジンを使いましょうというもの。 たしかにそのとおりですね。日本語の場合は単語境界をとるのが難しいのと、送り仮名など表現…

ランダムセレクション

ランダムにデータを抽出する際にorder by rand()を使うと、件数が多くなると遅いよ、というアンチパターン。MySQLを使ったこともなければ、ランダムにデータを取り出すという要求もないので、知らなかったが、要は並び替えを常に行うので、遅いらしい。 で、…

アンビギュアスグループ

最大値や最小値が得られた値について、その最大値をもつタプル(行)の別の属性(列)を取得したいとした時に、group by句に含まれない属性をselectの属性に含めてしまうというもの。 ほとんどのRDBMSではエラーになるが、MySQLとSQLiteはエラーにならないと…

フィア・オブ・ジ・アンノウン

NULLの振る舞いについて。本書ではNULLを使うことがアンチパターンでなく、一般の値としてNULLを使うことが良くないと述べている。 とくに、すべての項目にNOT NULLを使うように強制するのはよくないという。欠けている値を表現するには、何かの値を「欠けて…

インデックスショットガン

インデックスの性質を理解して、闇雲にインデックスを作成したり、逆に全く設定しないということのないように、というもの。そりゃそうだ。 ただ、解決策に示されているのは、すでに運用中のデータベースに対するパフォーマンス改善としてのインデックスの作…

ファントムファイル

画像データなどをデータベースに格納せず、格納先のみを保存して、画像データなどを外部に保存するのは以下の様な問題がある、という指摘。 データベース上のファイルを削除しても外部ファイルは自動的に消えないという問題。 トランザクション分離がサポー…

サーティワンフレーバー

IN句をつかったCHECK制約だけで列の値を制限するやり方には問題がありますよ。という指摘。プログラムで言うところの列挙型(ENUM)のようなもの。MySQLでも同様の機能があるようだ。 問題点は以下のとおり。 許可されている値の一覧がわからない。CHECK制約…

ラウンディングエラー

小数を格納するのにFLOATやDOUBLE, REALなどを使ってしまい、誤差がでてしまうというもの。金額の計算などにはNUMERICやDECIMALを使いましょう。はい。そのとおりですね。

メタデータトリブル

顧客テーブルの属性に毎年、集計データの列を追加するという、ちょっと悪夢のような設計が紹介されていた。テーブルのタブル(行)の長さが変わるというのは運用上、物理的な格納効率を悪化させることがある。また、列が追加されるということは、SQLを実行す…

マルチカラムアトリビュート

ジェイウォークのように繰返し項目をテーブルを分割せずに対応する方法の一つ。ジェイウォークは区切り文字を使って一つの属性に押し込めていたが、このパターンでは繰返し項目を単に番号をつけて列を分割する。 例えば、住所録に電話番号を複数格納する必要…

ポリモーフィック関連

ある参照整合性制約を設定しているテーブルがあったときに、そのテーブルに対し別のテーブルの主キーに依存する参照整合性制約を設定したいときにはどうすればよいか?というもの。 このときに、別の項目にどのテーブルとの制約かという属性と、外部キーを一…

EAV(エンティティ・アトリビュート・バリュー)

テーブル設計の変更が起きると、それを使用するプログラムに大きな影響を与えることから、出来る限りテーブル設計の変更を避けようという意識が働く事が多い。よって、柔軟な設計にするため、より抽象度の高いテーブルを設計しようとする。ただそのデメリッ…

キーレスエントリ(外部キー嫌い)

「参照整合性制約を設定しない。」という設計指針に対するアンチパターン。比較的このような設計をしているところを多く見る。 そもそも参照整合性制約を設定しないということは、ERモデルも記述する必要がない。テーブル定義はすべてExcelで定義すればよい*…

IDリクワイアド(とりあえずID)

すべてのテーブルの主キーをidという名前の属性(列)にし、ドメインを整数にしてしまうというもの。これを擬似キーともよび、本来のキーを自然なキーとよぶ。Railsなどのフレームワークなどが採用している設計指針に対する反論ともいうべきだろうか。本書で…

ナイーブツリー(素朴な木)

木構造を隣接リストで表現すると、n階層の検索をすることができなくなったり、ノード全体を削除するのが複雑になるという主張である。隣接リストとは、親への参照を作成するだけである。自分自身と親への参照を持っているに過ぎない設計なので、ある非葉ノー…

ジェイウォーク(信号無視)

ひとつの属性に複数の値を入れてしまうというもの。例えば、一人の社員が複数の部署に属するからといって、社員のテーブルの部署という項目にカンマ区切りで属する部署を入れてしまうといった設計である。問い合わせが難しくなったり、参照整合性制約が設定…

PMBOK入門

新版 プロジェクトマネジメント標準 PMBOK入門作者: 広兼修出版社/メーカー: オーム社発売日: 2010/01/26メディア: 単行本(ソフトカバー)購入: 6人 クリック: 23回この商品を含むブログ (10件) を見るPMBOKについて学んでおきたかったので、購入した。 PMB…

ペンだけで30日後に行列を作るすごい裏ワザ

ペンだけで30日後に行列をつくるすごい裏ワザ作者: 山岸二郎出版社/メーカー: インデックス・コミュニケーションズ発売日: 2007/08/22メディア: 単行本(ソフトカバー)購入: 6人 クリック: 22回この商品を含むブログ (6件) を見るタイトルだけをみると、怪…

レバレッジリーディング

レバレッジ・リーディング作者: 本田直之出版社/メーカー: 東洋経済新報社発売日: 2013/05/02メディア: Kindle版購入: 2人 クリック: 3回この商品を含むブログ (6件) を見るこの本はすべての読書をする人にとって有効な指針を与えてくれるものではない。ビジ…