WIPIVERSE

커드의 12 규칙

커드의 12 규칙(Codd's 12 rules)은 데이터베이스 관리 시스템(DBMS)이 "관계형(relational)"으로 간주되기 위해 충족해야 하는 일련의 규칙이다. 이 규칙은 관계형 데이터베이스 모델의 선구자인 에드거 F. 커드(Edgar F. Codd)에 의해 제안되었다.

엄밀히 말해 이 규칙은 0번부터 12번까지 총 13개의 규칙으로 구성되어 있으며, "커드의 12계명(Codd's Twelve Commandments)"이라고도 불린다.

배경

커드는 1970년에 관계형 모델에 관한 최초의 연구를 발표했으며, 1974년의 학회 논문에서 규칙을 더욱 발전시켰다. 1980년대 초반, 데이터베이스 업체들이 기존 제품에 관계형이라는 명칭만을 붙여 판매하려는 움직임이 있었고, 커드는 이러한 현상을 막고 관계형 데이터베이스의 본래 비전이 희석되는 것을 방지하고자 이 규칙을 정립했다. 특히 12번 규칙은 이러한 업계의 포지셔닝에 대응하기 위한 목적이 있었다.

주요 내용

각 규칙의 내용은 다음과 같다.

  • 규칙 0 (기반 규칙): 관계형 데이터베이스 관리 시스템으로 홍보되는 모든 시스템은 관계형 기능만을 통해 데이터베이스를 완전히 관리할 수 있어야 한다.
  • 규칙 1 (정보 규칙): 관계형 데이터베이스의 모든 정보는 논리적 수준에서 테이블의 값으로만 명시적으로 표현되어야 한다.
  • 규칙 2 (보장된 접근 규칙): 데이터베이스의 모든 데이터는 테이블 이름, 기본 키 값, 열 이름의 조합으로 논리적으로 접근 가능해야 한다.
  • 규칙 3 (NULL 값의 체계적 처리): NULL 값은 빈 문자열이나 0과 구별되는 개념으로, 누락되거나 적용 불가능한 정보를 표현하기 위해 데이터 유형과 무관하게 체계적으로 지원되어야 한다.
  • 규칙 4 (동적 온라인 카탈로그): 데이터베이스의 구조(메타데이터)도 일반 데이터와 동일한 방식으로 논리적 수준에서 표현되며, 일반 데이터를 다루는 것과 동일한 관계형 언어로 조회가 가능해야 한다.
  • 규칙 5 (포괄적 데이터 하위 언어): 데이터 정의, 뷰 정의, 데이터 조작, 무결성 제약, 권한 부여, 트랜잭션 경계 등 모든 기능을 지원하는 언어가 최소 하나 이상 존재해야 한다.
  • 규칙 6 (뷰 갱신 규칙): 이론적으로 갱신 가능한 모든 뷰는 시스템에 의해 갱신 가능해야 한다.
  • 규칙 7 (고수준 삽입·갱신·삭제): 데이터의 검색뿐만 아니라 삽입, 갱신, 삭제에서도 기본 관계나 파생 관계를 단일 피연산자로 다룰 수 있어야 한다.
  • 규칙 8 (물리적 데이터 독립성): 저장 형태나 접근 방식이 변경되어도 응용 프로그램과 터미널 활동은 논리적으로 영향을 받지 않아야 한다.
  • 규칙 9 (논리적 데이터 독립성): 기본 테이블에 대한 정보 보존적 변경이 있어도 응용 프로그램과 터미널 활동은 논리적으로 영향을 받지 않아야 한다.
  • 규칙 10 (무결성 독립성): 특정 데이터베이스에 대한 무결성 제약은 응용 프로그램이 아닌 관계형 데이터 하위 언어로 정의되고 카탈로그에 저장될 수 있어야 한다.
  • 규칙 11 (분산 독립성): 데이터가 여러 위치에 분산되어 있어도 사용자는 데이터가 단일 사이트에 있는 것으로 인식해야 한다.
  • 규칙 12 (비전복 규칙): 시스템에 저수준(레코드 단위) 언어가 존재하더라도, 그 저수준 언어를 통해 고수준 관계형 언어로 표현된 무결성 규칙을 우회하거나 위반할 수 없어야 한다.

평가와 한계

이 규칙이 실제로 얼마나 충족되는지에 대해서는 시기별로 평가가 달라진다. 1999년의 한 교재에서는 대부분의 관계형 데이터베이스 관리 시스템이 이 테스트를 통과한다고 서술했지만, 2007년의 다른 저서에서는 이 12개 규칙을 모두 완전히 충족하는 시스템은 없다고 주장했다. 커드 자신도 저서 《관계형 모델 버전 2》(The Relational Model for Database Management: Version 2)에서 자신의 원래 12개 규칙은 대략적인 구분에는 유용하지만, 더 세밀한 구분을 위해서는 자신의 관계형 모델 버전 2(RM/V2)의 333가지 특징이 필요하다고 인정했다.

오늘날 대부분의 상용 관계형 데이터베이스 시스템은 이 규칙을 완전히 충족하지는 못하지만, 데이터 무결성, 접근성, 독립성 등의 원칙은 관계형 데이터베이스 설계의 기준으로서 여전히 중요한 의미를 갖는다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기