속성 (Attribute)
속성
업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리할 수 없는 최소의 데이터 단위
- 업무에서 필요로 한다.
- 의미상 더 이상 분리되지 않는다.
- 엔터티를 설명하고 인스턴스의 구성요소가 된다.
엔터티, 인스턴스, 속성, 속성값의 관계
- 1개의 엔터티는 2개 이상의 인스턴스 집합이어야 한다.
- 1개의 엔터티는 2개 이상의 속성을 갖는다.
- 1개의 속성은 1개의 속성값을 갖는다.
속성의 특징
- 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다
- 정규화 이론에 근거하여 정해진 주식별자에 함수적 종속성을 가져야 한다.
- 하나의 속성은 한 개의 값만을 가진다.
- 하나의 속성에 여러 개의 값이 있는 다중값일 경우 별도의 엔터티를 이용하여 분리한다.
속성의 분류
속성의 특성에 따른 분류
- 기본속성 (Basic Attribute)
- 업무로부터 추출한 모든 속성
- 엔터티에 가장 일반적이고 많은 속성을 차지
- 예) 설계속성, 파생속성을 제외한 모든 속성
- 설계속성 (Designed Attribute)
- 업무상 필요한 데이터 이외의 데이터 모델링을 위해, 업무를 규칙화하기 위해 속성을 새로 만들거나 변형하여 정의하는 속성
- 예) 코드성 속성, 엔터티를 식별하기 위해 부여된 일련번호
- 파생속성 (Derived Attribute)
- 다른 속성에 영향을 받아 발생하는 속성
- 데이터 정합성을 유지하기 위해 주의해서 써야 함.
- 예) 계산된 값
SQLD 41회에 파생속성에 관한 문제가 있었습니다. 속성의 특징을 설명하고 해당하는 속성을 찾는 문제였던 것으로 기억합니다.
엔터티 구성방식에 따른 분류
- PK(Primary Key)
- 엔터티를 식별할 수 있는 속성
- FK(Foreign Key)
- 다른 엔터티와의 관계에서 포함된 속성
- 일반속성
- 엔터티에 포함되어 있고 PK/FK에 포함되지 않은 속성
- 복합 속성(Composite Attribute) vs 단순 속성(Simple Attribute)
- 속성은 그 안에 세부 의미를 쪼갤 수 있는지에 따라 단순형/복합형으로 분류할 수 있다.
- 예) 복합 속성: 주소 (시,구,동,번지 같은 여러 세부 속성으로 나뉠 수 있음)
- 예) 단순 속성: 성별, 나이
- 단일 값 속성(Single-Valued Attribute) vs 다중 값 속성 (Multi-Valued Attribute)
- 속성이 하나의 값인지 동일한 성질의 여러 개의 값인지에 따라 나뉨
- 예) 단일 값 속성: 주민등록번호
- 예) 다중 값 속성: 어떤 사람의 전화번호 (집, 휴대전화, 회사 전화번호 등 여러 개의 값을 가질 수 있음), 자동차의 색상 (차 지붕, 차체, 외부의 색이 다를 수 있음)
- 다중 값 속성의 경우 하나의 엔터티에 포함될 수 없으므로 1차 정규화를 하거나, 별도의 엔터티를 만들어 관계로 연결해야 한다.
도메인
각 속성의 가질 수 있는 값의 범위
데이터 타입과 크기, 제약사항을 지정하는 것
- 예) 학생 엔터티의 학점이라는 속성의 도메인은 0.0에서 4.0 사이의 실수 값이다.
- 예) 주소라는 속성은 길이가 20자리 이내인 문자열이다
속성의 명명
- 해당 업무에서 사용하는 이름을 부여한다.
- 아무리 일반적인 용어라 할지라도 현업에서 사용되지 않으면 사용하지 않는 것이 좋다.
- 서술식 속성명은 사용하지 않는다.
- 명사형을 이용하고 수식어가 많이 붙지 않도록 한다.
- 소유격도 사용하지 않는다.
- 약어 사용은 가급적 제한한다.
- 전체 데이터 모델에서 유일성을 확보하는 것이 좋다.
- 데이터에 대한 흐름을 파악하거나 데이터의 정합성을 유지할 때 도움이 된다.
- 반정규화 때 속성명의 충돌을 해결할 수 있다.
Reference
- “SQL 전문가 가이드” by 한국데이터산업진흥원 p.46-52
Leave a comment