mcpField
R
relational-database-design

relational-database-design

github.com/pproencaデータ・データベース21875 回インストール11 週間前に更新
リポジトリ

relational-database-design について

特定の RDBMS に依存せず、リレーショナルデータベースの論理設計とレビューを支援するスキルです。テーブル、フィールド、キー、関係、整合性を扱い、物理実装は対象外です。

主な機能

  1. 01RDBMS に依存しない論理設計
  2. 02テーブルとフィールドの設計指針
  3. 03候補キー・主キー・外部キーの規則
  4. 04関係と削除規則のモデリング
  5. 05整合性制約・検証テーブル・ビュー
  6. 06アンチパターンと用語の資料

活用シーン

  1. 01要件からスキーマを設計
  2. 02既存スキーマのレビューや改修
  3. 03繰り返しグループや冗長データの解消
  4. 04スキーマに起因するデータ損失や破損の診断

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/pproenca/dot-skills --skill relational-database-design

インストール後、Claude Code で/relational-database-designを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

AGENTS.md
gotchas.md
metadata.json
assets/templates/
_template.md
references/
_sections.md
anti-bend-rules-only-deliberately.md
anti-flat-file-design.md
anti-rdbms-driven-design.md
anti-spreadsheet-as-database.md
fld-clear-singular-field-names.md
fld-derive-dont-store-calculated-values.md
fld-ideal-field-checklist.md
fld-keep-fields-atomic.md
fld-store-single-values-not-lists.md
intg-database-vs-application-rules.md
intg-field-specifications.md
intg-four-levels-of-data-integrity.md
intg-validation-tables-for-allowed-values.md
intg-views-for-derived-and-restricted-data.md
key-candidate-key-elements.md
key-foreign-key-mirrors-its-primary-key.md
key-one-primary-key-per-table.md
key-prefer-stable-non-sensitive-keys.md
proc-analyze-and-interview-before-designing.md
proc-design-logically-before-choosing-rdbms.md
proc-follow-the-design-sequence.md
proc-normalization-is-built-in.md
proc-start-from-mission-and-objectives.md
rel-deletion-rule-guards-orphans.md
rel-foreign-key-on-the-many-side.md

詳細

リレーショナルデータベース設計

適切なリレーショナルデータベースを設計するための、論理的でRDBMSに依存しない手法です。スキーマによって求められる判断と、規律ある論理設計手法によってそれらをどのように導き出すかを、エージェントがスキーマの設計やレビューで適用できるようにまとめています。各ルールは、具体的に誤ったデフォルトの判断を正すものです。モデルがすでに正しく判断できていることに対するルールはありません。

この手法全体では、まず論理構造を作成します。つまり、特定のRDBMS製品や物理的な考慮事項、パフォーマンス上の懸念から意図的に切り離し、組織の情報に必要なテーブル、フィールド、キー、リレーションシップ、整合性ルールを定義します。忠実に実践すれば、正規化を独立したバックエンドの工程として扱うことなく、完全に正規化されたテーブルが得られます。

適用する場面

  • 要件に基づいて新しいリレーショナルスキーマを設計する
  • 既存のスキーマの構造的な健全性をレビューまたはリファクタリングする
  • 繰り返しグループ、多値/複合フィールド、冗長データに対処する
  • テーブルの候補キー、主キー、外部キーを選択する
  • 1対1、1対多、多対多、自己参照のリレーションシップをモデル化する
  • 削除ルール(制限、カスケード、NULL化、拒否、デフォルト値の設定)と参加制約を決める
  • 制約をフィールド仕様、リレーションシップ、検証テーブル、アプリケーションのどこに置くかを決める
  • データを重複、損失、破損させるスキーマを診断する

このスキルが扱うのは論理設計です。SQL方言、インデックス作成、パーティショニング、クエリのチューニング、分析/ディメンショナル(スター・スキーマ)モデリングは扱いません。これらは、論理設計が適切に完成した後に扱う物理的/実装上の考慮事項です。

ルールのカテゴリ

#カテゴリプレフィックス対象
1設計プロセスと要件proc-RDBMSを選ぶ前に論理設計を行う、設計の手順に従う、ミッションと分析を起点にする、正規化を組み込む
2テーブル構造tbl-1テーブルにつき1つの対象、理想的なテーブル、参照フィールドを作らない、冗長性を最小限に抑える
3フィールド設計fld-理想的なフィールド、単一の値、原子性のあるフィールド、計算結果を保存しない、明確な名前
4キーkey-候補キーの要素、テーブルごとに主キーを1つだけ設定する、外部キーは主キーを反映する、安定した機密性のないキー
5リレーションシップrel-多対多には中間テーブルを使う、外部キーの配置、削除ルール、参加制約、自己参照
6データ整合性、ルール、ビューintg-4つの整合性レベル、フィールド仕様、データベースとアプリケーションのルール、検証テーブル、ビュー
7アンチパターンanti-フラットファイル、データベースとしてのスプレッドシート、RDBMS主導の設計、ルールからの逸脱が正当化できる場合
8用語term-データと情報、NULL、リレーショナルデータベースの基本用語

クイックリファレンス

1. 設計プロセスと要件
2. テーブル構造
  • tbl-one-subject-per-table — 各テーブルは、1つの主題(オブジェクトまたはイベント)のみを表します
  • tbl-ideal-table-checklist — 適切なテーブル構造を確認する6項目のテスト
  • tbl-no-reference-fields — レポート作成の便宜のために、別のテーブルのフィールドをコピーしないでください
  • tbl-minimize-redundant-data — 外部キーによる冗長性は問題ありません。それ以外はすべて最小限に抑えてください
3. フィールド設計
4. キー
5. リレーションシップ
6. データ整合性、ルール、ビュー
7. アンチパターン
8. 用語
  • term-data-versus-information — データは保存されるものです。情報とは、提示するために意味を持たせたデータです
  • term-null-is-unknown-not-zero — nullは欠落値または不明値であり、ゼロや空白ではありません
  • term-relational-vocabulary — キーは論理的なもので、インデックスは物理的なものです。ビューはテーブルではありません

使用方法

該当する判断が必要になったときに、リファレンスファイルを読んでください。各ルールでは、修正対象となる誤ったデフォルトを示したうえで、標準的な方法を説明します(誤った方法が実際の落とし穴となる場合に限り、誤りと正解を対比します)。

リファレンスファイル

ファイル説明
references/_sections.mdカテゴリーの定義と順序
assets/templates/_template.md新しいルール用のテンプレート
metadata.jsonバージョンとソースの参照

コメント