AI Briefing

5NF와 Database Design

·2026.04.15 01:22

핵심 내용

5NF를 실제 설계 관점에서 다시 설명하며, 2가지 테이블 패턴으로 정리한다.

1 / 2

자세히 보기

Wikipedia의 5NF 예시는 지나치게 인위적이고 실제 비즈니스 규칙을 이해하는 데 도움이 되지 않는다고 본다. 대신 논리 모델을 먼저 세우고, 그다음에 정규화를 보존하는 물리 스키마를 설계하는 순서를 제안한다.

핵심은 5NF를 억지로 외우는 것이 아니라, 관계를 정확한 링크로 분해해 테이블을 만드는 것이다. 이 과정에서 두 가지 반복되는 패턴이 보인다고 정리한다.

  • AB-BC-AC triangle

    • ice cream 예시에서 Brand, Flavour, Friend라는 3개 anchor가 있고, 이들 사이에 brand_flavours, friend_brands, friend_flavours 같은 M:N 링크 테이블이 생긴다.
    • 친구의 취향은 브랜드와 flavour의 교집합으로 해석되며, 실제로는 존재하지만 링크되지 않은 엔티티도 있을 수 있다.
  • ABC+D star pattern

    • concert, musician, instrument에 더해 Performance라는 추가 anchor가 필요하다.
    • concerts, instruments, musicians와 performances를 두고, performances가 concert_id, instrument_id, musician_id를 가지는 1:N 링크 중심 구조로 정리된다.
    • 자연어의 “한 음악가가 한 공연에서 어떤 악기를 연주한다”는 문장은 3개의 anchor를 포함하므로, 설계할 때는 이를 분해해 다뤄야 한다.

결론적으로, 좋은 5NF 설명은 이상한 제약을 가정하는 것이 아니라 업무 의미를 먼저 정의하고, 그 의미를 가장 단순하고 무결성 있게 테이블로 옮기는 방법을 보여줘야 한다고 주장한다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.