함수 종속성 후보키 계산기
속성과 함수 종속을 넣으면 속성 폐포와 후보키를 모두 구하고 2NF·3NF·BCNF를 판정합니다. 어떤 종속이 정규형을 깨는지도 함께 보여 줍니다.
한 줄에 하나씩. AB -> C처럼 씁니다. 영문은 붙여 쓰면 글자별로 나뉘고, 여러 글자 이름은 쉼표로 나눠 적으세요.
만족하는 가장 높은 정규형
3NF
후보키 3개 · 속성 4개 · FD 3개
사용 방법
- 1관계의 속성을 쉼표로 나열합니다.
- 2함수 종속을 한 줄에 하나씩 A B -> C 형태로 적습니다.
- 3후보키와 정규형 판정을 확인하고, 궁금한 속성 집합의 폐포를 따로 구해 봅니다.
자주 묻는 질문
시작 집합에서 출발해 왼쪽이 이미 포함된 함수 종속의 오른쪽을 계속 더합니다. 더 이상 늘어나지 않을 때까지 반복해야 하며, 한 번만 훑고 멈추는 것이 가장 흔한 실수입니다. 새로 들어온 속성 덕분에 아까는 쓸 수 없던 종속을 쓸 수 있게 되기 때문입니다.
폐포가 전체 속성이 되면 슈퍼키이고, 그중 어느 하나를 빼도 더는 슈퍼키가 아닌 극소인 것만 후보키입니다. A가 후보키라면 AB도 슈퍼키지만 B를 빼도 되므로 후보키는 아닙니다.
어떤 함수 종속의 오른쪽에도 나오지 않는 속성은 무엇으로도 결정되지 않으므로 모든 후보키에 반드시 들어갑니다. 그 속성들을 먼저 고정하고 나머지만 조합하면 찾는 범위가 크게 줄어듭니다.
3NF는 모든 함수 종속에서 왼쪽이 슈퍼키이거나 오른쪽이 주요 속성이면 만족합니다. BCNF는 예외 없이 왼쪽이 슈퍼키여야 합니다. 그래서 오른쪽이 주요 속성인 종속이 있으면 3NF이지만 BCNF는 아닌 경우가 생깁니다.
어느 후보키엔가 들어 있는 속성입니다. 후보키가 여러 개면 그 모두를 합쳐서 봐야 하며, 이 정의를 빠뜨리면 3NF 판정이 통째로 어긋납니다.
전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.
알아두면 좋은 점
- 영문 속성을 붙여 쓰면 글자별로 나눕니다(AB → A, B). 교과서 표기를 따른 것이며, 여러 글자로 된 영문 이름을 쓰려면 쉼표로 나눠 적으세요. 한글처럼 다른 글자가 섞인 이름은 쪼개지 않고 하나로 봅니다.
- 자명한 함수 종속(오른쪽이 왼쪽에 이미 들어 있는 것)은 어떤 정규형도 깨지 않으므로 판정에서 뺍니다.
- 후보키는 필수 속성을 먼저 고정하고 나머지를 크기 순으로 붙여 찾습니다. 그래도 조합이 지수로 늘어나 속성은 16개까지만 계산합니다.
- 4NF·5NF와 다치 종속은 다루지 않습니다. 함수 종속만으로 판정할 수 있는 2NF·3NF·BCNF까지가 범위입니다.
- 정규화 «분해»는 하지 않습니다. 어떤 종속이 어느 정규형을 깨는지까지만 알려 주며, 분해 방법은 여러 가지라 설계자가 정할 몫입니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 4일 · 결과는 참고용 추정치입니다.