본 게시글은 'SQL 전문가 가이드'의 내용을 정리한 것입니다.
https://dataonair.or.kr/db-tech-reference/d-guide/sql/
1. 데이터 모델링의 이해
3. 속성
(1) 속성의 개념
- 사전적 의미 : 사물의 성질, 특징 또는 본질적인 성질
- 업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
(2) 엔티티, 인스턴스와 속성, 속성값에 대한 내용과 표기법
- 엔티티, 인스턴스, 속성, 속성값의 관계
- 한 개의 엔티티는 두 개 이상의 인스턴스의 집합이어야 한다
- 한 개의 엔티티는 두 개 이상의 속성을 갖는다
- 한 개의 속성은 한 개의 속성값을 갖는다 (다중 속성값일 경우 정규화 필요)

- 속성의 표기법
(3) 속성의 특징
- 엔티티와 마찬가지로 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 함
- 정규화 이론에 근간하여 정해진 주식별자에 함수적 종속성을 가져야 함
- 하나의 속성에는 한 개의 값만 가짐. 다중값일 경우 별도의 엔티티를 이용하여 분리
(4) 속성의 분류
- 속성의 특성에 따른 분류
- 기본 속성 : 업무로부터 추출한 모든 속성이 해당되며 가장 일반적이고 많은 속성을 차지
- 설계 속성 : 업무상 필요한 데이터 이외에 데이터 모델링을 위해, 업무 규칙화를 위해 속성을 새로 만들거나 변형하여 정의하는 속성. 일련번호와 같은 단일(Unique)한 식별자를 부여하는 것이 예
- 파생 속성 : 다른 속성에 영향을 받아 발생하는 속성, 보통 계산된 값들이 해당 됨 -> 가급적 파생 속성을 적게 정의하는 것이 좋음

- 엔티티 구성 방식에 따른 분류
- PK 속성 : 엔티티를 식별할 수 있는 속성, Primary Key
- FK 속성 : 다른 엔티티와의 관계에서 포함된 속성, Foreign Key
- 일반 속성 : PK, FK에 포함되지 않는 속성
- 단순형 : 속성 내에서 세부 의미를 쪼갤 수 없는 속성 (성별, 나이 등), Simple Attribute
- 복합형 : 속성 내에서 세부 의미를 쪼갤 수 있는 속성 (주소 -> 시, 구, 동 ...), Composite Attribute
(5) 도메인 (Domain)
- 속성이 가질 수 있는 값의 범위
- 학생이라는 엔티티의 '학점' 속성의 도메인은 0.0~4.0 사이의 실수 값
- 속성에 대한 데이터 탕비과 크기, 제약 사항을 지정하는 것
(6) 속성의 명명 (Naming)
