속성
데이터 모델링 관점에서의 속성
의미상 더 이상 분리되지 않는 최소의 데이터 단위.
업무에서 필요로한다.
엔터티를 설명하고 인스턴스의 구성 요소가 된다.
엔터티, 인스턴스와 속성, 속성값의 관계
엔터티에는 두 개 이상의 인스턴스가 존재하고 각각의 엔터티에는 고유의 성격을 표현하는 속성 정보를 두 개 이상 가진다.
(Ex 대학생 = > 이름, 주소, 전화 번호, 전공 등으로 표현이 가능하다. "이름, 주소, 전화 번호, 전공"은 "대학생"이라는 엔터티에 속한 속성이다.)
= >
1. 한 개의 엔터티는 두 개 이상의 인스턴스의 집합이다.
2. 한 개의 엔터티는 두 개 이상의 속성을 갖는다.
3. 한 개의 속성은 한 개의 속성값을 갖는다.


속성은 엔터티에 대한 자세하고 구체적인 정보를 나타내고 각각의 속성은 구체적인 값을 가진다.
속성의 표기법
엔터티 내에 이름을 포함하여 표현한다.
속성의 특징
1. 엔터티에서처럼 반드시 해당 업무에 필요하고 관리하고자 하는 정보여야한다.
2. 정규화 이론에 근간해 정해진 주식별자에 함수적 종속성을 가져야한다.
3. 하나의 속성에는 한 개의 값만을 가진다. 하나의 속성에 여러 개의 값이 있는 다중값일 경우 별도의 엔터티를 이용하여 분리한다.
만일 도출된 속성이 위 3가지 특징과 반한다면 적절치 못한 속성일 가능성이 높다.
속성의 분류
특성에 따른 분류
1. 기본속성
업무에서 추출한 모든 속성, 엔터티에 가장 일반적이고 많은 속성
(예: 코드성 데이터, 엔터티를 식별하기 위해 부여된 일련번호 등)
2. 설계 속성
업무상 필요한 데이터 외에 데이터 모델링을 위해서건나 업무를 규칙화 하기 위해 속성을 새로 만들거나 변형하여 정의하는 속성
3. 파생 속성
다른 속성에 영향을 받아 발생하는 속성
(예: 계산된 속성 등)
다른 속성에 영향을 받기 때문에 프로세스 설계 시 데이터 정합성을 유지하기 위해 유의할 점이 많다.
따라서 파생속성은 적게 정의하는 것이 좋다.
구성방식에 따른 분류
PK(Primary Key) 속성
엔터티를 식별할 수 있는 속성
FK(Foreign Key)속성
다른 엔터티와의 관계에서 포함된 속성
일반속성
PK, FK에 포함되지 않는 속성
세부 의미 분해 가능에 따른 분류
단순 속성(Simple Attribute)
나이, 성별 등과 같이 더 이상 다른 속성들로 구성될 수 없는 속성
복합 속성(Composite Attribute)
주소 등과 같이 시, 구, 동처럼 세부 속성으로 구성할 수 있는 속성
보통 하나의 속성은 한 개의 값을 가진다. 이 값을 단일값(Single Value)라고 한다.
예) 주민등록번호, 학번 등
여러개의 값을 가지는 경우에는 다중값(Multi Value)라고 한다.
예) 전화번호 = > 집 전화번호, 휴대폰 전화번호와 같이 여러개의 값을 가질 수 있다.
다중값 속성의 경우 하나의 엔터티에 포함할 수 없기 때문에 1차 정규화를 거치거나 별도의 엔터티를 만들어 관계로 관리한다.
도메인
각 속성이 가질 수 있는 값의 범위.
엔터티 내에서 속성에 대한 데이터 타입과 크기, 제약 사항을 지정하는 것.
속성의 명명(Naming)
속성명 부여 원칙
1. 해당 업무에서 사용하는 이름을 부여한다.
= > 아무리 일반적인 이름이어도 업무에 사용하지 않는 용어라면 의미가 없다.
2. 서술식 속성명은 사용하지 않는다.
= > 명사형을 사용하고 소유격, 수식어를 많이 붙이지 않는 것이 좋다. 수식어가 많으면 의미파악이 힘들고 상세 설계 단계에서 물리속성으로 전환하는데 명확한 의미 파악이 힘들다.
3. 약어 사용은 되도록 하지 않는다.
공용화되지 않는 업무에서 쓰지 않는 약어는 쓰지 않는다. 의사소통에 제약이 생기고 시스템 운영시에도 문제가 발생할 수 있다.
4. 전체 데이터 모델에서 유일성을 확보하는 것이 좋다.
데이터의 정합성을 유지하는 데 도움이 되고 반정규화를 적용할 때 충돌을 해결해 안정적인 반정규화가 가능하다.
'SQLD를 위한 낙서장' 카테고리의 다른 글
| [SQLD] SQL 개발자 자격증 공부 메모장 여섯 번째 (0) | 2023.06.26 |
|---|---|
| [SQLD] SQL 개발자 자격증 공부 메모장 네 번째 (0) | 2023.06.24 |
| [SQLD] SQL 개발자 자격증 공부 메모장 세 번째 (0) | 2023.06.23 |
| [SQLD] SQL 개발자 자격증 공부 메모장 두 번째 (0) | 2023.06.23 |
| [SQLD] SQL 개발자 자격증 공부 메모장 첫 번째 (0) | 2023.06.21 |