---
name: database-ddl-review
description: SQLite, PostgreSQL, MySQL, Oracle의 CREATE TABLE DDL을 검토한다. 타입·길이·PK·FK·CHECK·인덱스·스키마·파티션을 확인하거나 논리 설계와 실제 DDL의 차이를 찾을 때 사용한다.
---

# DB DDL 검토

DDL 검토는 파싱과 물리 메타데이터 비교를 중심으로 최소 호출한다. DDL을 실행하거나
표준사전 전체를 미리 검색하지 않는다.

## 최소 호출 흐름

1. DDL과 방언(`sqlite`, `postgres`, `mysql`, `oracle`)을 확인한다. 세부 체크가 필요할 때만
   [ddl-review-checklist.md](references/ddl-review-checklist.md)를 읽는다.
2. 논리 설계가 제공되면 `designs`에 함께 넣어 `validate_database_ddl`을 한 번 호출한다.
   설계가 없으면 DDL만 검증한다.
3. 오류·경고·파싱 결과·표준 대조 결과를 요약한다.
4. 논리 표준용어와 도메인까지 별도로 확인해 달라는 요청이 있거나 DDL 결과에 이름 후보가
   있으면 그때만 `validate_table_schema` 또는 `search_standard_terms`를 추가 호출한다.

기본 흐름에서 `get_dictionary_stats`, `get_table_validation_rules`, 모든 컬럼별 용어 검색을
호출하지 않는다. DDL 하나에 대한 MCP 결과 전체를 그대로 전달하지 말고 수정이 필요한
테이블·컬럼과 근거를 먼저 제시한다.

## 판정

- `error`: 파싱 실패, 컬럼·테이블 누락, 타입·길이·PK/FK 불일치 등 배포 전 수정 항목
- `warning`: FK 인덱스, 설명·메타데이터 누락, 정책 확인이 필요한 항목
- `valid`: 오류가 없고 남은 경고만 검토하면 되는 상태

타입 별칭은 서버 정규화 결과를 따르되 길이·소수점 길이는 별도로 확인한다. FK 대상,
참조키 유일성, 로컬 인덱스, ON DELETE/UPDATE, CHECK, 인용 식별자와 스키마를 결과에
반영한다. 파서가 확인하지 못한 항목은 오류로 단정하지 않고 `확인 필요`로 표시한다.

## 결과 형식

방언, 검토 대상, 오류·경고, 수정 SQL 또는 확인 필요 사항을 짧게 정리한다. 사용자의
명시적 승인 없이 DDL을 실행하거나 파일을 수정하지 않는다.

## 관련 MCP 도구

기본 도구는 `validate_database_ddl`이다. 논리 설계 대조가 요청된 경우에만
`validate_table_schema`를 보조적으로 사용한다.
