第9章 データベース設計 データベースの設計
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
データベースを計画する
本書ではこれまで、SELECT ステートメントを使って、 データのコンシューマになる方法だけを学んできた。 、データを読み取り、それを興味深い方法で変換する分析演算子を行ってきたが、いずれもテーブル内のデータを物理的に変更するものではない。SELECT 文は読み取り専用の演算子である。しかし、CREATE 新しいテーブルや、INSERT 、UPDATE 、DELETE レコードを作成したい場合もある。
ビジネスをサポートするために独自のテーブルを作成する場合、軽々しくやるべきではない。データベースの設計を誤ると、後で後悔することになるからだ。 設計を進める上で重要な質問がある:
- デザインに関する質問
-
-
ビジネス要件とは何か?
-
これらの要件を満たすためには、どのようなテーブルが必要なのか?
-
各テーブルにはどのようなカラムが含まれるのか?
-
テーブルはどのように正規化されるのか?
-
彼らの親子関係はどうなるのか?
表と表の関連性を示す図を作成するのは良いアイデアかもしれない。しかし、考慮すべき要素はデザインだけではない。データの投入も計画プロセスの一部であるべきだ。もしデータが保守可能で最新に保たれていなければ、設計はすでに失敗している。この要素は見落とされがちで、データベース・プロジェクトを失敗させる原因になりやすい。
-
- データに関する質問
-
-
これらのテーブルにはどれだけのデータが入力されるのか?
-
誰が/何がこれらのテーブルにデータを入力するのか?
-
データはどこから来るのか?
-
テーブルに自動的に入力するプロセスが必要なのだろうか?
データの開始はどこかで行われなければならない。データの性質によって、組織内で作成されることもあれば、外部から受け取ることもある。定期的に更新される大量のデータをストアする必要がある場合、人間がこの作業を手作業で行うことはできない。そのためには、JavaやPython、あるいは他のコーディング言語で書かれたプロセスが必要になる。
セキュリティと管理は本書の範囲外であるが、集中管理型データベースは通常、これらの分野に関係している。権限とセキュリティの管理はそれ自体がフルタイムの仕事であり、データベース管理者(DBA)が行うことが多い。集中型データベースでは、セキュリティ要素を考慮する必要がある。
-
- セキュリティに関する質問
-
-
誰がこのデータベースにアクセスできるのか?
-
誰がどのテーブルにアクセスすべきか?読み取り専用か?書き込みアクセスか?
-
このデータベースは事業運営に不可欠か?
-
災害や障害が発生した場合、どのようなバックアッププランがあるのか?
-
テーブルの変更はログに残すべきか?
-
データベースがWebサイトやWebアプリケーションに使用されている場合、それは安全か?
-
- セキュリティーはしばしば難しいテーマである。過剰なセキュリティーは官僚主義を作成し、機敏さを妨げるが、不十分なセキュリティーは災難を招く。どんな複雑な問題でもそうだが、両極端のバランスを発見しなければならない。しかし、データベースをWebサイトに使用する場合は、セキュリティが最優先されるべきである。あらゆるものをウェブに接続することは、漏洩や悪意ある攻撃に対してより脆弱になる。
-
注
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access