속성
- 업무에서 필요로하는 고유한 성질, 특징을 의미 (컬럼으로 표현할 수 있는 단위)
- 인스턴스로 관리하고자 하는 더 이상 분리되지 않는 최소의 데이터 단위
- 인스턴스의 구성요소
- 속성은 Entity에 속한 Entity에 대한 자세하고 구체적 정보를 나타냄
Entity, Instance, Attribute
- 1개 Entity : 2개 이상 instance의 집합
- 1개 Entity : 2개 이상 Attribute 가짐 > 1개 테이블 : 2개 이상 컬럼으로 구성
- 1개 Attribute : 1개의 속성값을 가짐 (속성의 원자성)
Attribute 특징
- 정해진 주식별자에 함수적 종속성을 가져야함
- 하나의 속성에 여러개의 값이 있는 다중값일 경우 별도의 Entity를 이용해 분리한다.
- 하나의 인스턴스는 속성마다 반드시 하나의 속성값을 가짐
- 원자성 : 데이터모델에서 각 Entity의 인스턴스가 해당 속성에 대해 단일하고 명확한 값을 가지는 것을 의미
함수적 종속성
- 한 속성의 값이 다른 속성의 값에 종속적인 관계를 갖는 특징
- A의 값을 알면 B의 값을 바로 식별할 수 있으며, A에 값에따라 B의 값이 달라질 경우
- B는 A에 함수적으로 종속됨 (A -> B)
- ex) 학번을 알면 이름, 나이, 성별 등의 속성을 식별할 수있고, 학번이 다르면 그에따른 값도 다름
학번 -> 이름, 학번 -> 나이, 학번 -> 성별 ...
- 완적 함수적 종속
- 기본키를 구성하는 모든 속성이 포함된 기본키의 부분집합에 종속된 경우
- 특정 컬럼이 기본키 (2개이상인 경우에는 모든 키에 관하여) 완전히 종속
- (고객ID, 제품번호) 에 의해 수량 컬럼 식별 가능
- 부분 함수적 종속
- 기본키가 아닌 다린 속성에 종속
- 기본키를 구성하는 속성 중 일부만 종속
- (고객ID, 제품번호) 의 기본키 중 주문상품 컬럼은 제품번호만 알아도 식별 가능
- 이행적 함수 종속
- A,B,C 3개의 속성중 A->B, B->C 종속관계가 있는 경우 A->C가 성립되는 경우
속성의 분류
- 속성의 특성에 따른 분류
- 기본속성
- 업무로부터 추출된 모든 속성 (원금, 예치기간 ...)
- 설계속성
- 기본 속성 외에 업무를 규칙화 하기 위해 새로 만들어지거나 기본 속성을 변형하여 만들어지는 속성 (상품코드, 지점코드 ...)
- 파생속성
- 다른 속성에 의해 만들어지는 속성
- 일반적으로 계산된 값들이 해당 (합계, 평균 ...)
- Entity 구성에 따른 분류
- PK(Primary Key) : 인스턴스를 식별할 수 있는 속성
- FK(Forrign Key) : 다른 Entity와의 관계에서 포함된 속성
- 일반 속성 : Entity에 포함되어있고, PK/FK에 포함되지 않는 속성
- 분해 여부에 따른 속성
- 단일속성 : 하나의 의미로 구성 (회원 ID, 이름 ...)
- 복합속성 : 여러개의 의미로 구성 (주소(시, 구, 동 등으로 분해 가능) ...)
- 다중값속성 : 속성에 여러개의 값을 가질 수 있는 경우, 다중값 속성은 Entity로 분해 (상품 리스트 ...)
속성의 명명규칙
- 해당 업무에서 사용하는 이름 부여
- 서술식 속성명 사용하지 않음
- 약어의 사용은 가급적 제한
- 전체 데이터 모델에서 유일한 명칭
도메인 (Domain)
- 도메인은 각 속성이 가질 수 있는 값의 범위를 의미함
- Entity내에서 속성에 대한 데이터 타입과 크기, 제약사항을 제정하는 것
홍쌤의 데이터랩
SQLD 1과목 완벽 정리 (2024년 신유형 반영) 강의에 대해
공부 및 개인적으로 정리한 글 입니다.