INDEX
속성의 개념
업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
- 사물의 성질, 특징 또는 본질적인 성질
- 업무상 관리하기 위한 최소의 의미 단위
- 업무에서 필요로 한다.
- 의미상 더 이상 분리되지 않는다.
- 엔터티를 설명하고 인스턴스의 구성요소가 된다.
예를 들어 생년월일은 하나로서 의미가 있다. 만약 이것을 생년, 생월, 생일로 구분한다면 이것은 사실상 하나의 속성을 관리목적에 따라 구분했다라고 이해할 수 있다. 이러한 이유로 인해 S/W 비용을 산정하는 기능점수(Function Point)를 산정할 때 이렇게 분리된 속성은 하나의 속성(DET)으로 계산하게 된다. 그러나 만약 서 로 관련이 없는 이름, 주소를 하나의 속성 ‘이름주소’로 정의하면 어떻게 될까? 이것은 하나의 속 성의 두 개의 의미를 갖기 때문에 기본속성으로서 성립하지 않게 된다.
엔터티, 인스턴스와 속성, 속성 값에 대한 내용과 표기법
엔터티, 인스턴스, 속성, 속성 값의 관계
- 엔터티에는 두 개 이상의 인스턴스가 존재하고 각각의 엔터티에는 고유의 성격을 표현하는 속성 정보를 두 개 이상 갖는다.
- 분석 단계에서 엔터티 내에 존재하는 여러 개의 인스턴스가 가지는 동일한 성격은 무엇인지를 파악하고 이에 이름을 부여하여 엔터티의 속성으로 기술하는 작업이 필요하다.
- 각각의
인스턴스는 속성의 집합
으로 설명될 수 있다.
하나의 속성은 하나의 인스턴스
에만 존재할 수 있다.
-
하나의 인스턴스는 각각의 속성들에 대해 한 개의 속성값만 가질 수 있다.
예 를 들면 사원의 이름은 홍길동이고 주소는 서울시 강남구이며,
전화번호는 123-4567, 직책은 대리 이다.
이름, 주소, 전화번호, 직책은 속성이고
홍길동, 서울시 강남구, 123-4567, 대리는 속성값이다.
그러므로 속성값은 각각의 엔터티가 가지는 속성들의 구체적인 내용이라 할 수 있다.
사원이라는 엔터티에는 홍길동이라는 사람(엔터티)이 있을 수 있다.
홍길동이라는 사람의 이름은 홍길동이고 주소는 서울시 강서구이며 생년월일 1967 년 12 월 31 일이다. 여기에 이름, 주소, 생년월일과 같은 각각의 값을 대표하는 이름들을 속성이라 하고 홍길동, 서울시 강서구, 1967 년 12 월 31 일과 같이 각각의 이름에 대한 구체적인 값을 속성 값(VALUE)이라고 한다.
- 속성은
관계로 기술될 수 없
고, 자신이 속성을 가질 수도 없다.
- 한 개의 엔터티는
두 개 이상의 인스턴스의 집합
이어야 한다.
- 한 개의 엔터티는
두 개 이상의 속성
을 갖는다.
한 개의 속성
은 한 개의 속성값
을 갖는다.
속성의 표기법
- 속성은 엔터티 내의 이름을 포함하여 표현하면 안된다.
속성의 특징
- 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다.
- 정규화 이론에 근간하여 정해진 주 식별자에 함수적 종속성을 가져야 한다.
- 하나의 속성에는 한 개의 속성 값만을 가진다.
하나의 속성에 여러 개의 값이 있는 다중 값일 경우 별도의 엔터티를 이용하여 분리한다.
속성의 분류
속성의 특성에 따른 분류
-
기본 속성
- Basic Attribute
- 업무로부터 추출한 모든 속성이 여기에 해당된다.
- 가장 일반적이고 많은 속성을 차지한다.
- 몇 몇의 제외
- 코드성 데이터
- 엔터티를 식별하기 위한 일련 번호
- 다른 속성을 계산하거나 영향을 받아 생성된 속성
- 주의해야 할 것은 업무로부터 분석한 속성이라도 이미 업무상 코드로 정의한 속성이 많다는 것.
이러한 경우도 속성의 값이 원래 속성을 나타내지 못하므로 기본 속성이 되지 않는다.
-
설계 속성
- 업무상 필요한 데이터 이외에 데이터 모델링을 위해, 업무를 규칙화하기 위해 속성을 새로 만들거나 변형하여 정의하는 속성
- 코드성 속성, 일련 번호
-
파생 속성
- 다른 속성에 영향을 받아 발생하는 속성
- 보통 계산된 값들
- 프로세스 설계 시 데이터 정합성을 유지하기 위해 유의해야 할 점이 많다.
- 가급적 파생 속성을 적게 정의하는 것이 좋다.
- 속성값의 검증 시 활용되기도 한다.
- 계산 방법에 의해 반드시 어떤 엔터티에 어떤 속성에 의해 영향을 받는지 정의가 되어야 한다.
- 속성 정의서에 파생 속성이 가지는 업무 로직을 기술하여 데이터의 정합성이 유지될 수 있도록 해야한다.
- 통계 관련 엔터티나 배치 작업이 수행되면서 발생되는 엔터티에서 많이 이용된다.
엔터티 구성 방식에 따른 분류
- 엔터티를 식별에 따라
- PK 속성 : 엔터티를 식별할 수 있는 속성
- FK 속성 : 다른 엔터티와의 관계에서 포함된 속성
- 일반 속성 : 엔터티에 포함되어 있고, PK, FK 에 포함되지 않은 속성
- 세부 의미 분류에 따라
- 단순형
- Simple Attribute
- 더 이상 다른 속성들로 구성될 수 없는 단순한 속성
- 예) 나이, 성별
- 복합형
- Composite Attribute
- 여러 세부 속성들로 구성될 수 있는 속성
- 예) 주소
- 속성 값의 개수에 따라
- 단일 값
- 다중 값
- Multi Value
- 예) 전화번호 (휴대폰, 집, 직장)
- 하나의 엔터티에 포함될 수 없으므로 1차 정규화를 하거나
- 별도의 엔터티를 만들어 관계로 연결해야 한다.
도메인 (Domain)
각 속성이 가질 수 있는 값의 범위
예를 들면 학생이라는 엔터티가 있을 때 학점이라는 속성의 도메인은 0.0 에서 4.0 사이의 실수 값이며 주소라 는 속성은 길이가 20자리 이내인 문자열로 정의할 수 있다.
- 각 속성은 도메인 이외의 값을 갖지 못한다.
- 엔터티 내에서 속성에 대한 데이터 타입과 크기, 그리고 제약사항을 지정하는 것
속성의 명명
- 속성명은 곧 사용자 인터페이스에 나타나기 때문에 업무와 직결되는 항목이다.
- 속성 이름을 정확하게 부여하고 용어의 혼란을 없애기 위해
용어사전
이라는 업무 사전을 프로젝트에 사용하게 된다.
- 각 속성이 가지는 값의 종류와 범위를 명화하게 하기 위해
도메인 정의
를 미리 한다.
- 용어사전과 도메인 정의를 사용하면 데이터 타입의 일관성을 확보할 수 있게 된다.
속성명 부여 원칙
- 해당 업무에서 사용하는 이름을 부여 한다.
- 서술식 속성명은 사용하지 않는다.
- 약어 사용은 가급적 제한한다.
- 전체 데이터 모델에서 유일성 확보하는 것이 좋다.
- 반정규화를 적용할 때 속성명의 충동을 해결하여 안정적으로 반정규화를 적용할 수 있게 된다.