정보화 시스템을 구축하기 위해, 어떤 데이터가 존재하는지
또는 업무가 필요로 하는 정보는 무엇인지를 분석하는 방법
기본 데이터모델링 개념
1. 업무가 관여하는 어떤 것(Entity Type)
- 엔티티 타입은 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 것으로 영속적으로 존재하는 단위(엔티티의 집합)
- 엔티티 타입의 특징
1) 반드시 업무에서 필요하고 관리하고자 하는 정보이어야 한다.
2) 유일한 식별자에 의해 식별이 가능해야 한다.
3) 영속적으로 존재하는 엔티티의 집합이어야 한다. ("한 개"가 아니라 "두 개 이상")
4) 엔티티타입은 업무 프로세스에 의해 이용되어야 한다.
5) 엔티티타입은 반드시 속성이 있어야 한다.
6) 엔티티타입은 다른 엔티티타입과 최소 한 개 이상의 관계가 있어야 한다.
- 엔티티타입의 분류
1) 기본 - 해당 업무에 기본적으로 존재하는 정보(Jobs, Departments)
2) 중심 - 업무에 핵심적인 역할을 하는 정보(Employees)
3) 행위 - 기본과 중심 엔티티타입을 근간으로 업무가 흘러가면서 발생되는 엔티티 타입(Transaction)
- 엔티티타입의 명명
1) 현업에서 사용하는 용어를 사용한다 (사용자가 쓰는 용어)
2) 가능한 약어를 사용하지 않는다.
3) 단수명사를 사용한다. [ 한글일때 Ex:사원들 (X) ]
4) 엔티티타입의 이름은 유일해야 한다.
5) 엔티티타입이 생성되는 자연스러운 의미를 그대로 부여한다.
Ex) 고객제품 : 고객의 제품인지 주문제품인지 명확하지 않음
주문제품 or 주문목록 : 주문한 제품의 이름이라는 것을 알 수 있음
2. 업무가 관여하는 어떤 것간의 관계(Relationships)
- 관계란 두 개의 엔터티타입 사이의 논리적인 관계 즉 엔티티와 엔티티가 존재의 형태나 행위로서
서로에게 영향을 주는 형태를 말한다.
- 관계의 멤버십은 엔티티타입이 참여하는 관계에 대한 자신으로부터의 관점이다.
- 관계의 카디넬러티
두 개의 엔티티 타입간 관계에서 참여자의 수를 표현하는 것을 카디넬러티라고 한다.
가장 일반적인 카디넬러티 관계는 1:1, 1:M, M:N 이다.
1) 1 : 1(일대일)
=> 한 개의 구매신청서에 대해 한 개의 구문재문을 신청하고
한 개의 구매주문에는 한 개의 구매신청서를 작성한다.
2) 1 : M (일대다)
=> 한 명의 사원은 한 부서에 소속되고 한 부서에는 여러 사원을 포함한다.
3) M : N (다대다)
=> 하나의 주문서에는 여러 개의 제품을 주문할 수 있고, 하나의 제품은 여러 개의 주문서에 의해 신청될 수 있다.
- 관계의 참여도
1) 선택참여 Ex) 지하철 안내방송
2) 필수참여 Ex) 지하철 문
=> 지하철은 문이 닫혀야만 출발할 수 있다. 안내방송은 나오지 않아도 지하철은 출발할 수있다.
- 관계의 종류
1) 병렬관계
엔티티타입과 엔티티타입이 독립적으로 분리되어 있으면서 두 개 이상의 관계가 상호간의 존재하는 형태의 관계
2) 주식별자 관계(Identifying) / 비식별자 관계(Non identifying)
- 주식별자 관계: 부모테이블의 주식별자가 자식테이블의 주식별자로 쓰이는 관계
- 비식별자 관계: 부모테이블의 주식별자가 자식테이블의 일반속성으로 쓰이는 관계
3. 어떤 것이 가지는 성격(Attributes)
- 업무에 필요한 엔티티에서 관리하고자 하는 더 이상 분리되지 않는 최소의 데이터 단위이다.
- 속성의 분류
# 특성에 따른 분류
1) 기본
2) 코드
3) 유도(파생)
# 구성방식에 따른 분류
1) PK 속성 - 사원번호
2) FK 속성 - 부서코드
3) 일반속성 - 사원명, 우편번호, 주소, 전화번호
- 속성의 명명
1) 해당업무 사용하는 용어 사용
2) 서술식 속성명은 사용하지 않는다.
3) 약어 사용은 가급적
4) 엔티티타입에서 유일하게 식별이 가능 하도록 지정
4. 식별자 개념
- 식별자는 엔티티타입 내에서 엔티티들을 구분할 수 있는 구분자이다. 엔티티타입의 성격에 따라 식별자를 지정
- 식별자의 특징
1) 모든 엔티티 타입은 반드시 하나 이상의 식별자가 있어야 한다.
2) 엔티티 타입 내 모든 엔티티가 유일하게 구분될 수 있는 식별자이어야 한다.
3) 식별자가 지정되면 그 식별자는 변하지 않아야 한다.
4) 주식별자 속성에 반드시 데이터 값이 있어야 한다.
- 식별자 분류
1) 대표성 여부
* 주식별자, 보조 식별자
2) 스스로 생성여부
* 내부식별자, 외부식별자
3) 단일속성여부
* 단일식별자, 복합식별자(주키를 2개이상의 속성으로 구성)
4) 대체여부
* 원조식별자, 대리식별자(코드형 속성)
[출처] [Oracle] 데이터 모델링|작성자 Premium
'DataBase' 카테고리의 다른 글
MySql DB 덤프 (0) | 2013.12.19 |
---|---|
데이터베이스 정규화 (0) | 2012.11.06 |
TRUNCATE TABLE (0) | 2012.11.06 |
조인 순서 조정을 위한 힌트(ordered, leading) (0) | 2012.08.21 |
정렬과 머지조인 (0) | 2012.05.08 |