達人に学ぶDB設計徹底指南書 の商品レビュー
- ネタバレ
※このレビューにはネタバレを含みます
DB(データベース)に関してなんとなく使ってはいたけど正しい設計に関して意識したことはなかったので基礎を再復習する意味で手に取る。 熟練のエンジニアが正しいDBの設計について、その理由やアンチパターン(やってはいけない例)なども踏まえながら丁寧に解説。 とりあえず一回目なのでわかるところまで読んでみた。 以下要点。 DBの概要 DBの分類 RDB(リレーショナルデータベース) OODB(オブジェクト指向型データベース) KVS XML 主なDBMS Oracle DB2 SQL Server MySQL PostgreSQL 設計手法のアプローチ データを中心に考える データ→プログラム 設計 論理設計 エンティティの抽出 エンティティの定義 正規化 ER図 物理設計 テーブル定義 インデックス定義 ハードウェアのサイジング ストレージの冗長構成決定 ファイルの物理配置決定 論理設計と正規化 テーブルとは共通点を持ったデータの集合体であり、必ず名詞でかける 重複行は存在させない コードやIDなどのキーには固定長文字列を使うべき 可能な限りNOT NULLを使う 正規化の基本 キー→データの対応関係を作り出すこと 第一正規化 1つのセルには1つの値 第二正規化 主キーとデータの対応関係の作成 第三正規化 主キー以外のキーとデータの対応関係の作成 基本は正規化だがパフォーマンスを考え、非正規化を採用することも選択肢としてはある インデックスについて Btreeインデックス有効ケース 検索キーとして使われる 結合キーになる レコードが多め カーディナリティが高く、分散している 検索スピードが出ないのは下記ケース 演算処理を行う SQL文を使う NULLを使う 否定形を使う ORを使う 後方一致、中間一致 型変換を行っている 論理設計のバッドノウハウ・グレーノウハウ バッド 非スカラ系(配列型) 多態性・・カラムのデータで種類が違うものが混在している(会社と部署の混在など) 同一テーブルの分割・・年度ごとに別の売上テーブルがあるなど 垂直分割・・第二正規化の観点から1つのテーブルにまとめられる関係のものを複数テーブルに分ける 不適切なキー・・固定長文字列でないなど ダブルマスタ・・同一性質のテーブルが複数あってしまう。システム統合などでありがち。 グレー サロゲートキー・・いわゆるシステムが自動的にふるID。元々持っているキーで解決できる場合必要ない 列持ちテーブル・・カラム1、カラム2、カラム3など同一のデータを列で持つ場合。できれば別テーブルを作るべき アドホックなカラム追加・・適切なビューを追加するか、SQLでCASE文を作って分類すべき まだまだしらないこと多いので要復習。
Posted by
文字通りデータベース設計の教科書。「徹底指南書」とあるが、RDBの構造や正規化などごく基本的な話から書いてあり、初心者でも読み進められる。「一つの情報は一つの場所に、一つのカラムには一つの情報を」という原則を厳密に突き詰めつつ、それを破らざるを得ないケースについても丁寧に記述され...
文字通りデータベース設計の教科書。「徹底指南書」とあるが、RDBの構造や正規化などごく基本的な話から書いてあり、初心者でも読み進められる。「一つの情報は一つの場所に、一つのカラムには一つの情報を」という原則を厳密に突き詰めつつ、それを破らざるを得ないケースについても丁寧に記述されている。「データベースについてとりあえず一冊読む」なら最適。ただし、あくまでもDB「設計」の本であり、SQLやアクセスパスに関する記述はほとんど見られないので、その点には注意が必要。
Posted by
サブタイトル通り、初級者で終わりたくない技術者は読んでおいて決して損はないと思う。6章から9章が特に面白かった。
Posted by
正規化の必要性・考え方やバッドノウハウとその対策,DBでの木構造の再現方法など DBの設計について紹介されている。DBにおいては正規化が重要で,情報技術者の試験でも頻出となっている。必要性や概念などいまいち理解できていなかったが,この本の説明はわかりやすかった。 その他にもDBに...
正規化の必要性・考え方やバッドノウハウとその対策,DBでの木構造の再現方法など DBの設計について紹介されている。DBにおいては正規化が重要で,情報技術者の試験でも頻出となっている。必要性や概念などいまいち理解できていなかったが,この本の説明はわかりやすかった。 その他にもDBにおけるバッドノウハウ(列持ちテーブル)などの紹介や,対策として具体的なSQLも示されており参考になった。 DBでの木構造の再現方法について,網羅的に手法が説明されておりよかった。
Posted by
テーブル設計の勘所について書かれた一冊。世間では、SQLのテクニックやプログラミングのテクニックばかりが注目され、それに特化した本も多数出ているのだが、本書はその前段であるテーブル設計について焦点を当てて書かれている。 最初の正規化のところはくどいぐらいに記載されているが、正規...
テーブル設計の勘所について書かれた一冊。世間では、SQLのテクニックやプログラミングのテクニックばかりが注目され、それに特化した本も多数出ているのだが、本書はその前段であるテーブル設計について焦点を当てて書かれている。 最初の正規化のところはくどいぐらいに記載されているが、正規化の重要性やそれを学ぶことの必要性についてトクトクと説明しているのは本書ぐらいかと思う。 ただ、それにしてもくどい。本書の第7章から9章までに書かれているテーブル設計の話がもっと読みたいのだが、前半のところでページ数が取られている感じがする。そのため星は4つ。 この本は足がかりで、次は『SQLアンチパターン』でって感じかな。とすると、入門編としてはいい本かと思う。 なお、各章の終わりに演習問題が付いているのはよくある本のパターンだけど、特徴的なのはその解説のボリューム。すごく詳細に書かれている。
Posted by
困ったときに読み返します。当たり前ですが、そんな時は理解が深くなります。そこによきアドバイスあってこそですが。ミック本にハズレなし。
Posted by
RDBの基礎知識が非常に分かりやすく説明されているが、それだけに留まらない。 読者が良い業務システムを「設計」するための勘所が非常に体系的に説明されており、設計段階でデータ構造を十分吟味することがいかに重要か納得できる。 本書があれば、初学者が短時間でRDBの基礎を学び、職場で...
RDBの基礎知識が非常に分かりやすく説明されているが、それだけに留まらない。 読者が良い業務システムを「設計」するための勘所が非常に体系的に説明されており、設計段階でデータ構造を十分吟味することがいかに重要か納得できる。 本書があれば、初学者が短時間でRDBの基礎を学び、職場で実用できるレベルのRDBをACCESSなどで構築することは十分可能だと思う。
Posted by
「初級者で終わりたくないあなたへ」とあるけれど、一ヶ月くらいSQLを触って、mysqlなりpostgresqlにデータを入れてみたけど、どうしたらいいのかなあ、というレベルでも十分に学ぶ所のある良書だと感じました。これから何度も読む事になると思います。
Posted by
DB設計の基礎知識と実践的なノウハウをわかりやすく解説した本。 SQLを使うだけでなく、テーブル設計などを始めたら読んでおきたい。 第1章のタイトル「データベースを制するものはシステムを制す」は システムエンジニアの金言と言っても過言ではないでしょう。 DB設計がダメだとシステ...
DB設計の基礎知識と実践的なノウハウをわかりやすく解説した本。 SQLを使うだけでなく、テーブル設計などを始めたら読んでおきたい。 第1章のタイトル「データベースを制するものはシステムを制す」は システムエンジニアの金言と言っても過言ではないでしょう。 DB設計がダメだとシステム開発の難易度が跳ね上がるので DB設計者には本書の内容を身につけておいて欲しいですね。
Posted by
基本的な事が体系的にまとまっていて頭の整理に良い 辞書としても良い 頭の中のインデックスの作成に良い
Posted by