● 속성(Attribute)의 개념
- 속성은 업무에서 필요로 하는 고유한 성질, 특징을 의미(관찰 대상) -> 컬럼으로 표현할 수 있는 단위!
- 업무상 인스턴스로 관리하고자 하는 더 이상 분리되지 않는 최소의 데이터 단위
- 인스턴스의 구성 요소
ex) 학생 엔터티에 이름, 학번, 학과번호 등이 속성이 될 수 있음
● 엔터티, 인스턴스 , 속성, 속성값의 관계
- 한 개의 엔터티는 2개 이상의 인스턴스의 집합이어야 한다(하나의 테이블은 두 개 이상의 행을 가짐)
- 한 개의 엔터티는 2개 이상의 속성을 갖는다(하나의 테이블은 두 개 이상의 컬럼으로 구성됨)
- 한 개의 속성은 1개의 속성값을 갖는다(각 컬럼의 값은 하나씩만 삽입 가능)
- 속성은 엔티티에 속한 엔티티에 대한 자세하고 구체적인 정보를 나타냄, 각 속성은 구체적인 값을 가짐
● 속성의 특징
- 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다
- 정해진 주식별자에 함수적 종속성을 가져야 한다
- 하나의 속성은 한 개의 값만을 가진다.(한 컬럼의 값은 각 인스턴스마다 하나씩만 저장)
- 하나의 속성에 여러 개의 값이 있는 다중값일 경우 별도의 엔티티를 이용하여 분리한다
- 하나의 인스턴스는 속성마다 반드시 하나의 속성값을 가진다
=> 각 속성이 하나의 값을 갖고 있음을 의미(속성의 원자성)
** 원자성이란
- 데이터모델에서 각 엔터티의 인스턴스가 해당 속성에 대해 단일하고 명확한 값을 가지는 것을 의미
● 함수적 종속성
- 한 속성의 값이 다른 속성의 값에 종속적인 관계를 갖는 특징을 말함
- 즉, 어떤 속성 A의 값에 의해 다른 속성 B도 유일하게 결정된다면,B는 A에 함수적으로 종속됐다 하고,
- 이를 수식으로 나타내면 A → B 라고 표현함
1) 완전 함수적 종속
- 특정 컬럼이 기본키에 대해 완전히 종속될 때를 말함
- PK를 구성하는 컬럼이 2개 이상일 경우 PK값 모두에 의한 종속관계를 나타낼 때 완전 함수 종속성 만족
ex) (주문번호 + 제품번호)에 의해 수량 컬럼의 값이 결정됨
2) 부분 함수적 종속
- 기본키 전체가 아니라, 기본키 일부에 대해 종속될 때를 말함
ex) 수강기록 테이블에서 학생번호와 과목이 PK라고 가정할 때, 과목에 의해서도 교수가 결정되면 부분
함수적 종속 관계!
● 속성의 분류
1) 속성의 특성에 따른 분류
㉮ 기본 속성
- 업무로부터 추출된 모든 속성
- 엔티티에 가장 일반적으로 많이 존재하는 속성
ex) 원금, 예치기간 등
㉯ 설계 속성
- 기본 속성 외에 업무를 규칙화하기 위해 새로 만들어지거나 기본 속성을 변형하여 만들어지는 속성
ex) 상품코드, 시점코드, 예금분류 등
㉰ 파생 속성
- 다른 속성에 의해 만들어지는 속성
- 일반적으로 계산된 값들이 해당
- 데이터 정합성을 유지하기 위해 가급적 적게 정의하는 것이 좋음
ex) 합계, 평균, 이자 등
2) 엔터티 구성방식에 따른 분류
㉮ PK(primary Key, 기본키)
- 인스턴스를 식별할 수 있는 속성
㉯ FK(Foreign Key, 외래키) 속성
- 다른 엔터티와의 관계에서 포함된 속성
㉰ 일반 속성
- 엔터티에 포함되어 있고 PK/FK에 포함되지 않는 속성
3) 분해 여부에 따른 속성
㉮ 단일 속성
- 하나의 의미로 구성된 경우
ex) 회원 ID, 이름 등
㉯ 복합 속성
- 여러개의 의미로 구성된 경우
ex) 주소(시, 구, 동 등으로 분해 가능) 등
㉰ 다중값 속성
- 속성에 여러 개의 값을 가질 수 있는 경우
- 다중값 속성은 엔티티로 분해
ex) 상품 리스트 등
● 속성의 명명규칙
㉮ 해당 업무에서 사용하는 이름을 부여
㉯ 서술식 속성명은 사용하지 않음
㉰ 약어의 사용은 가급적 제한
㉱ 전체 데이터 모델에서 유일한 명칭
● 도메인(Domain)
- 도메인은 각 속성이 가질 수 있는 값의 범위를 의미함
- 엔티티 내에서 속성에 대한 데이터 타입과 크기, 제약사항을 지정하는 것이다