1.3 속성
- 속성의 개념
: 업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
1. 업무에서 필요로 한다
2. 의미상 더 이상 분리되지 않는다
3. 엔터티를 설명하고 인스턴스의 구성요소가 된다
ex. 생년월일은 하나로서 의미가 있다. 이것을 생년, 생월, 생일로 구분한다면 사실상 하나의 속성을 관리 목적에 따라 구분했다라고 이해할 수 있다.
- 엔터티, 인스턴스와 속성, 속성값에 대한 내용과 표기법
1. 엔터티, 인스턴스, 속성, 속성값의 관계
: 엔터티에는 두 개 이상의 인스턴스가 존재하고 각각의 엔터티에는 고유의 성격을 표현하는 속성정보를 두 개 이상 갖는다.
: 엔터티를 구성하는 특징이 무엇인지 또한 각각의 인스턴스들은 어떤 성격의 데이터로 구성되는지를 파악하는 작업이 필요
: 분석단계에서 엔터티 내에 존재하는 여러 개의 인스턴스가 가지는 동일한 성격은 무엇인지를 파악하고 이에 이름을 부여하여 엔터티의 속성으로 기술하는 작업이 필요
ex . 사원
-> 이름, 주소, 전화번호, 직책
-> 사원이라는 엔터티에 속한 인스턴스들의 성격을 구체적으로 나타내는 항목이 바로 속성
: 각각의 인스턴스는 속성의 집합
: 하나의 속성은 하나의 인스턴스에만 존재
: 속성은 관계로 기술될 수 없고 자신이 속성을 가질 수도 없다
: 엔터티 내에 있는 하나의 인스턴스는 각각의 속성들의 대해 한 개의 속성값만을 가질 수 있다.
ex. 사원의 이름은 홍길동이고 주소는 서울시 강남구이며, 전화번호는 123-4567, 직책은 대리이다.
이름, 주소, 전화번호, 직책은 속성 / 홍길동, 서울시 강남구, 123-4566, 대리는 속성값 (속성값은 각각의 엔터티가 가지는 속성들의 구체적 내용)
: 엔터티, 인스턴스, 속성, 속성값에 대한 관계
1. 한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 한다.
2. 한 개의 엔터티는 두 개 이상의 속성을 갖는다.
3. 한 개의 속성은 한 개의 속성값을 갖는다.
2. 속성의 표기법
: 엔터티 내에 이름을 포함하여 표현
- 속성의 특징
1. 엔터티와 마찬가지로 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다. (ex. 강사의 교재이름)
2. 정규화 이론에 근간하여정해진 주식별자에 함수적 종속성을 가져야 한다.
3. 하나의 속성에는 한 개의 값만을 가진다. 하나의 속성에 여러 개의 값이 이쓴ㄴ 다중값일 경우 별도의 엔터티를 이용하여 분리한다.
- 속성의 분류
1. 속성의 특성에 따른 분류
a. 기본속성
: 업무로부터 추출한 모든 속성이 해당되며 엔터티에 가장 일반적이고 많은 속성을 차지
: 코드성 데이터, 엔터티를 식별하기 위해 부여된 일련번호, 다른 속성을 계산하거나 영향을 받아 생성된 속성을 제외한 모든 속성
: 업무로부터 분석한 속성이라도 이미 업무상 코드로 정의한 속성이 많다. 이러한 경우도 속성의 값이 원래 속성을 나타내지 못하므로 기본속성이 되지 않는다.
b. 설계속성
: 업무상 필요한 데이터 이외에 데이터 모델링을 위해, 업무를 규칙화하기 위해 속성을 새로 만들거나 변형하여 정의하는 속성
: 대개 코드성 속성은 원래 속성을 업무상 필요에 의해 변형하여 만든 설계속성이고 일련번호와 같은 속성은 단일한 식별자를 부여하기 위해 모델 상에서 새로 정의하는 설계속성이다.
c. 파생속성
: 다른 속성에 영향을 받아 발생하는 속성으로서 보통 계산된 값들이 이에 해당.
: 다른 속성에 영향을 받기 때문에 프로세스 설계 시 데이터 정합성을 유지하기 위해 유의해야 할 점이 많으며 가급적 파생속성을 적게 정의하는 것이 좋다.
: 어떤 엔터티에 어떤 속성에 의해 영향을 받는지 정의되어야 함
2. 엔터티 구성방식에 따른 분류
: 엔터티를 식별할 수 있는 속성을 PK(Primary Key)속성, 다른 엔터티와의 관계에서 포함된 속성을 FK(Foreign Key)속성, 엔터티에 포함되어 있고 PK, FK에 포함되지 않은 속성을 일반속성이라 한다.
: 복합속성 - 여러 세부 속성들로 구성된 속성 (ex. 주소 : 시,구.동.번지 등이 복합된 속성
: 단순속성 - 더 이상 다른 속성들로 구성될 수 없는 단순한 속성 (ex. 나이, 성별)
: 단일값속성 (ex. 주민등록번호)
: 다중값속성 - 다중값 속성의 경우 하나의 엔터티에 포함될 수 없으므로 1차 정규화를 하거나, 아니면 별도의 엔터티를 만들어 관계로 연결해야 한다 (ex. 전화번호)
- 도메인 (Domain)
: 각 속성이 가질 수 있는 값의 범위로 엔터티 내에서 속성에 대한 데이터타입과 크기, 제약사항을 지정하는 것
ex. 학생이라는 엔터티가 있을 때 학점이라는 속성의 도메인은 0.0 - 4.0 사이의 실수 값이며 주소라는 속성은 길이가 20자리 이내인 문자열로 정의할 수 있다.
- 속성의 명명 (Naming)
: Client/Server 환경이든 Web환경이든 속성명이 곧 User Interface에 나타나기 때문에 업무와 직결되는 환경이다.
=> 용어사전과 도메인정의를 프로젝트에 사용 (용어적 표준과 데이터타입의 일관성을 확보 하기 위해)