카테고리 없음

DAP - 데이터 모델링 -

neokido 2010. 2. 24. 12:49
1. 모델링 단계
1.1 개념 데이터 모델링
- 핵심 엔터티 추출
- 전체 골격 생성
- ER-Diagram 생성

1.2 논리 데이터 모델링
- 상세 속성 정의
- 식별자 확정
- 정규화

1.3 물리 데이터 모델링
- 스키마구조
- 데이터 타입의 크기
- 인덱스 생성, 역 정규화

2. 모델리의 기본원칙
2.1 커뮤니케이션 원칙 - 요구사항의 명확한 전달
2.2 모델링 상세화의 원칙 - 최소 공통분모, 복잡한 구조의 분할, 중복의 제거
2.3 논리적 표현의 원칙 - 데이터 논리적 측면의 최대한 표현

3. 엔터티 (Entity)
3.1 데이터 보관의 최소 단위이다.
3.2 2개 이상의 속성을 가진다.
3.3 명사형이다.
3.4 기본키(PK)에 의해서 구분된다.

4. 관계 (Relation)
4.1 관계의 형태 : 까마귀발 표시 
- 1:1, 1:M , M:M 관계를 표현한다.
4.2 선택사양 ( Optional)
- 반드시 존재 (Mandatory) : 실선으로 표시
- 없을수 있음 ( Optional) : 점선으로 표시
4.3 관계명칭
- 제 3자의 입장에서 동사형 표현한다.

5. 속성 (Attribute)
- 엔터티의 특성을 나타낸다.
- 독자적인 성질을 가진다.
A. 의미상의 주어 : 언제, 어디서, 누가, 무엇을에 해당하는 명사
B. 일반 속성 : 어디서, 어떻게, 왜 에 해당하는 명사

6. 식별자 (Unique Identifier)
- 여러개의 속성중, 엔터티를 대표하는 속성
- 1개의 엔터티 = 반드시 1개의 식별자를 가져야 한다.
- 논리 모델링 --> 식별자, 물리 모델링 --> 키
6.1 본질 식별자 :
- 집합의 본질을 표현, 의미상의 주어
- 존재하기 위해서 반드시 필요한 식별자
6.2 후보 식별자 :
- 인스턴스를 유일하게 실별할 수 있는 속성으로 속성들의 조합일 수 있다.
6.3 대채(보조)식별자 :
- 우너래 식별자를 대신하는 다른 속성들, 릴레이션 십
6.4 인조 식별자 :
- 기본 본질 식별자를 그대로 사용할 수 없는 경우 사용
6.5 실질 식별자 :
- 인스턴스 식별을 위한 공식적인 식별자
- 본질, 인조 모두 실질 식별자가 될 수 있다.

7. 개념 데이터 모델링
- 최상위 개괄 레이어와, 논리레이어 사이에 있음
- 상위 주제 영역별 핵심 엔터티만 표현
- 핵심 속성, 이들간의 관계로 이루어짐

8. 주제영역
- 기업이 사용하는 데이터의 최상위 집합을 말한다.
- 주제영역 내의 엔터티간은 긴밀하게 연결되어야 함
- 주제영역 간에는 상호작용 최소화로 독립적 존재
A. 목적 :
- 데이터의 계층적 구조파악이 용이
- 업무 기능과 병행, 품질 확보
- 주제 영역 계층, 업무 기능 계층간의 대응
B. 장점 : 
- 데이터 업무 활동 모델의 품질 모증 (QA)
- PM의 용이
- 모델 개발 조정이 용이
- Respository 관리 용이
- 상세사항 전개 축약이 가능

9. 엔터티 후보 식별
9.1 엔터티 후보의 개념 정립
- 단어가 의미하는 진정한 의미 정의
9.2 관리대상 판정
- 앞으로 관리하고자 하는 대상인가?
9.3 집합 여부확인
- 가로(속성) * 세로(개체) = 면적

10. 엔터티 분류
10.1 우선적용대상 분류
10.2 데이터 영역별 분류
A. 우선적용 대상 분류
- 키 엔터티 : 자신의 부모를 가지지 않는 엔터티
- 메인 엔터티 : 업무 중심을 이루는 엔터니
- 액션 엔터티 : 수행된 업무를 가짐 (키, 메인 엔터티에 속하지 않는 나머지 모든 엔터티)

11. 엔터티 정의의 요건
11.1. 관리하고자 하는것인가?
11.2 가로(속성) * 세로(개체)를 가진 면적 집합인가?
11.3 대상 개체들 간의 동질성이 있는가?
11.4 타 객체와 구별 가능한 독립성이 있는가?
11.5 순수 개체이거나 행위 집합인지 확인

12. 의미상의 주어
- 본질 식별자에 해당한다.
- 키 엔터티 : 본질식별자의 최상위 엔터티를 말함
- 본질 식별자 : 만약 그가 없다면, 자식이 태어날 수 없는 본질적인 식별자
# 주의 : 1쪽의 엔터티라고 해서 항상 본질 식별자가 되는 것은 아니다.

13. 집합의 순수성
- 엔터티는 반드시 순수 본질 집합이어야 한다.
- 개체 집합 : 사물을 정의
- 행위 집합 : 행위, 활동을 정의
--> 개채와 행위집합이 아닌 결합된 형태는 릴레이션이다.

# 예외사항 #
A. Relationship 의 엔터티화 :
- M:M 관계의 해소 --> 2개의 1:M으로 구성되며, 이때 교차엔터티, 제휴엔터티라는 엔터티가 생성된다.
B. 일부 집합의 정의 :
- 큰 집합의 부분집합을 엔터티로 정의해야 한다.
C. 배타적 관계 대체
- 배타적 관계 엔터티만 묶어서 별도의 엔터티를 구성한다.
D. 집합의 동질성
- 집합에 들어갈 동일한 성질을 어디로 할 것인가 결정

15. 서브타입
15.1  엔터티 내에 들어가는 구체적인 부분집합
15.2 서브타입의 교려사항
- 교집합 허용불가 : 배타적인 구성이어야 한다.
- 서브타입의 합 = 전체집합 혹은 여집합을 구성해서 전체 집합을 만들수 있어야 한다.
- 서브타입 표현 기준 :
a. 개별 속성을 가지는 경우
b. 개별 관계를 가지는 경우
c. 가독성 증신의 경우
15.3 서브타입은 업무의 명확성 <----------------------> 표현의 복잡성 (트레이드 오프해야함)

16. 엔터티 통합, 분할방법
16.1 한집합을 확장, 나머지 포함
16.2 교차된 부분을 어느 한쪽에만 가지게 해서 양쪽의 완전 분리
16.3 교차된 부분이 있어도 이들 사이의 관계를 맺어 주는 방법

17. 관계(Relationship)
- 관계도 집합이다. : 목적과 내용이 다른 여러개의 관계도 있을수 있음
- 직접 관계를 관계라한다. : 많은 관계주 직접 종속인경우만 관계로 정함
- 두 엔터티에는 하나 이상의 관계가 존재할 수 있음
- 관계 --> 외래키로 구현 (참조 무결성으로 구성)
- 관계의 관점
a. 항상 2개의 엔터티 간에 존재
b. 항상 2개의 관점이 있음
c. 양방향 업무 규칙의 표현
d. 정보로써의 활용가치 상승
e. FK를 이용하여 참조 무결성 --> 정합성 유지

18. 관계의 형태
- 하나이상 (Many)
- 단 하나 (Only One)

19. 선택사양
- 필수 : 실선, 선택 : 점선
- 일반적인 형태 : 주로 M(참조하는쪽)에서 봤을때 1(참조되는쪽)이 반드시 존재하는 형태(권장사항)
- 가능한한 직선 관계가 되도록 : 특히 자식쪽에서 노력해야함

20. 관계명
- 2개의 관계에 대해서 명칭 부여 (상대의 입장에서)
- 간결한 동사 형태
- 현재 시제의 사용
- 다른관계명과 유일성은 갖지 못함
- 능동/수동형의 사용을 가급적 배제
- 의무적으로 의미없는것, 애매모호한 표현은 사용하지 않음

21. 1:1 관계
- 어느쪽에서 상대를 보더라도 단 1개의 관계만을 가짐
- 현실에서 매우 드물게 나타남
- 업무 흐름에 따라 설계된경우 주로 나타남
- 엔터티의 수직분할시 많이 발생
21.1 필수 - 선택 형태
- 포함 관계를 나타냄 (예) PC ---------- 메인보드
21.2 필수 - 필수 형태
- 2개의 엔터티는 서로 동치 P->Q, Q->P이면  P=Q이다.
21.3 선택 - 선택
- 자주 발생되지 않음
- 전체 집합 찾기 위해서는 항상 합집합을 해야한다.

22. M:1 관계
- 가장 흔한 일반적인 형태 (계층적 구조)
- 가장 흔하게 나타난다.
- 내가 참조하는 부모는 반드시 하나만 존재해야함
- 한쪽은 (M) 한쪽은 (1) 인 형태
22.1 양쪽모두 필수
- 현실에는 가끔 생김 (예. 주문, 주문아이템 .. 이는 반드시 필수관계임)
22.2 (1)쪽이 선택인경우
- 현실에서 가장 흔한 형태 (예. 부서, 사원 (사원은 반드시 부서에 포함, 사원이 없는 부서도 있음))
22.3 (M)쪽이 선택인경우
- 현실적으로 드문 형태
22.4 양쪽 모두 선택
- 현실에서 가장 흔한 형태
- Optional이 증가 --> 모호성도 증가

23. M:M 관계
- 양쪽 당사자 관점에서 1:M관계가 됨
- 양쪽 모두가 선택적인 것이 기본형이다.
- 의외로 아주 빈번함
- 아직 덜 풀려진 관계(완료후 M:M은 존재하지 않음)
- 풀려면 새로운 엔터티(교차엔터티, 연관엔터티 생김)

24. 다중관계의 처리
24.1 병렬식 관계 :
- 관계가 여러개의 칼럼으로 나열된다.
- 하나의 로에서 관리 --> 새로운 테이블 생성
- 집합에는 변화가 발생되지 ㅇ낳는다.
- 인덱스 수의 증가, SQL이 복잡해진다.
- 새로운 관계의 추가가 매우 어렵다. (칼럼의 추가 --> 프로그램의 수정)
- 관계 내용별 상세를 가질 수 없다. (자식 엔터티 가질수 없음)

24.2 직렬식 관계 :
- 두 엔터니 간의 관계 모아서 --> 상위 개념 통합
- 관계 관리위한 새로운 엔터티 필요
-