복합 속성 및 다가 속성의 정의

  • 복합 속성 : 두 개 이상의 세부 속성으로 구성된 속성, 여러 의미를 가지는 속성
  • 다가 속성 : 유사한 성격의 값을 복수로 가지고 있는 속성, 여러 값을 가지는 속성


복합 속성

  • 전화번호라는 속성은 국번과 번호등으로 구분할 수 있고, 고객주소는 시,구,동 등으로 분해가 가능한데 이처럼 두 개 이상의 속성으로 나누어질 수 있는 속성을 복합 속성(또는 결합 속성)이라고 함
  • 복합 속성은 기본적으로 나눠서(정규화해서) 관리하는 게 원칙이나, 하나의 속성으로 관리하는 것이 효율적일 때가 있음, 이는 업무규칙에 따라서 판단할 문제(예: 통신업체는 휴대전화번호를 3자리로 상세구분하여 관리할 수 있으나, 대부분의 업무에서는 하나의 속성(복합 속성)으로 관리하는 것이 효율적임)
  • 복합 속성을 분해할지말지를 결정할 때의 판단 기준 중 하나는 '개별적인 의미로 조회가 이뤄지는 가'임
    • 전화번호가 국번이나, 지역번호로 조회하는 일이 거의 없다면 하나의 속성으로 관리하는 것이 효율적이며, 국번이나 지역번호로 조회하는 요건이 다수 존재한다면 별개의 속성으로 분해하는 것이 효율적임
  • 계좌번호나 계약번호같이 속성 값에 지점코드 등의 의미를 내포한 인조식별자의 경우 복합 속성과 성격이 유사하며 인조 식별자를 체계화하여 의미를 부여하는 일은 자제할 것
  • 코드 속성에 여러 의미가 있는 코드값을 사용하는 것도 복합 속성의 일종으로 코드속성에 맞게 분해하는 것이 원칙
  • 텍스트 속성에 이름, 전화번호, 주소 등 특정도메인으로 도출할 수 있는 데이터가 존재하면 개별 속성으로 분해하는 것이 바람직


다가 속성

  • 한 속성에 유사한 종류의 여러 값이 존재하는 속성 <-> 단일 값 속성은 하나의 값만이 존재하는 속성
  • 고객 엔터티의 주민등록번호 속성은 하나의 값만을 가짐(단일 값 속성), 전화번호 속성은 집전화번호, 사무실전화번호, 휴대폰번호 등의 여러 값을 가질 수 있음(다가 속성)

  • 위 모델에서 전화번호, 우편주소, 취미, 가족속성이 다가 속성

  • 위 모델은 제1정규화를 수행한 모델
  • 하나의 속성에 쉼표, 세미콜론 등의 구분자를 이용해 여러개의 값을 관리하는 다가속성도 존재(예 : 100, 101, 102) -> 업데이트나 정렬등의 작업에 불리하므로 사용하지 않는 것을 권장
  • '1101' 등처럼 비트연산을 이용해 1이면 true, 0이면 false 형태로 데이터를 관리하는 것도 다가속성임
  • 집전화번호, 사무실 전화번호 등을 고객전호번화 등과 같이 물리적으로 하나의 값을 가지나 의미상으로 여러 종류의 값을 가지는 경우도 다가 속성 -> 바람직하지 않으며, 분해하는 것이 원칙
  • 한 속성이 배타적인 의미를 나타낼 때도 다가 속성과 유사함(예 : 가입일자, 탈퇴일자를 구분코드(가입, 탈퇴)와 날짜 속성을 사용하는 경우) -> 속성을 분해하여 둘 중 하나의 값만 입력하는 것이 바람직


복합 속성, 다가 속성의 정규화

  • 복합 속성, 다가 속성이 모델링하는 과정 중에서 발생할 수 있으나, 최종 물리모델에서는 존재해서는 안됨
  • 최종 물리 모델에서는 여러 개의 속성으로 분해하거나, 별도의 1정규형 엔터티로 분리해야 함