티스토리 뷰

 

 

 

모델링 순서

개념 모델링(업무파악) → 논리 모델링(업무를 바탕으로 DB 설계) → 물리 모델링(DB구축)

 

 

데이터 모델링이란?

- 모델링 : 모델을 만드는 것

- 우리는 현실(업무)로부터 모델을 만들어야 함 (oop->class / DB -> table)

- 데이터 모델링 : 각종데이터--->구조화, 형상화 하는 과정

 

- 데이터 모델링 작업은 (현업인터뷰, 업무지침서, 용어집, 산출물 등) 현행업무를 파악하여 개념들을 정리하고 분류하여 엔티티(업무의 핵심키워드), 속성, 관계형상화 하는 과정

 

- 보통 엔티티 도출 과정은 한 문장으로 쓴 글 중에서 핵심 키워드를 추출한다.

 

ex) 인터넷 뱅킹 - 개인, 기업, 상품, 예금, 대출, 가입, 생년월일, 가입금액

- 상품, 가입 ---> 엔티티 로 식별 (복합정보를 포괄적으로 수용하고 있는 경우)

- 생년월일, 가입금액 ---> 속성으로 식별 (단일 정보)

 

1) 핵심 엔티티 추출 - 고객, 상품, 주문

2) 파생 엔티티 추가 - 주문상세, 주문상태, 주문이력

3) 엔티티 관계

4) 엔티티 속성 추가

 

ER모델 (Entity - Relationship Model)

표현하고자 하는 현실세계의 업무개체(또는 실체)관계 두가지로 표현하는 모델 

 

ER 모델 구성 요소

- 엔티티

- 속성

- 관계

 

엔티티 (Entity) : 업무를 구현하는데 필요하고 관리해야하는 주체. 대상. 행위등의 모든 집합적인 것으로 정의

 

- 시스템 구축 시 배타관계(서로 중첩된 부분이 없는 관계)로 UNION이나 OUTER JOIN을 사용하는 경우가 있는데, 집합 간 배타관계를 해소하고 하나의 통합 테이블 형태로 설계한 경우 개발 생산성이 증대되고, 성능 향상 효과도 기대할 수 있지만 개인고객 속성과 법인고객 속성이 같은 테이블에 혼합되어 존재하므로 속성의 의미가 불분명해지고, FK나 NN제약조건을 반영할 수 없어서 데이터 무결성 문제가 발생할 수 있다.

*UNION - 합집합(중복제거)

*UNION ALL  - 그냥 두개 더해 붙이는것(중복제거X)  => 속도 더 빠름

*무결성 : 데이터에 잘못된 데이터가 들어오지 못하게 하는 것

 

 

관계 (Relationship)

1) 관계수 (Cardinality) ( 1:1 직원:인턴과정 / 1:n 부서:직원  / n:m 학생:수강과목) 

2) 선택성 (Optionality) ( 필-필 주문-주문상품  / 필-선 고객-주문 / 선-선 소개사원-계좌 ) - 꼭 있어야하나? 없어도 되나?

3) 식별성 (Idendifier Inheritance)

- 식별관계(key를 물려받는다) : 다른 테이블 PK가 내 FK.  FK? 다른테이블 PK

- 비식별관계

 

 

속성 (Attribute)

: 데이터를 표현하는 가장 작은 단위. 하나의 엔티티는 2개 이상의 속성을 가진다.

- 속성명

- 식별자여부

- 옵셔널리티

- 도메인

 

 

식별자 (Identifier) PK

엔티티에서 인스턴스를 개벽적으로 식별할 수 있는 속성들 이다.

식별자의 특징으로 유일성, 최소성(컬럼 두개 쓰지마), 존재성(필수,NN), 불변성

 

 


220803 추가

 

관계형 데이터 모델

스키마(헤더) + 인스턴스(본문) = 릴레이션

Structure       

 

 

관계형 모델의 키

슈퍼키 : 키가 될 수 있는 모든 키

후보키 : 튜플을 고유하게 식별할 수 있는 키

기본키 : 후보키중에 선택된 키

대체키 : 후보키중에 기본키 아닌 키

 

 

제약조건(Constraint) for 무결성

*  키 제약조건

*  무결성 제약조건

    - 실체무결성 : NOT NULL

    - 영역무결성 : DOMAIN(영역)에 속한값이어야한다

    - 참조무결성 : FK

 

 

정규화(Normalization) - 테이블 쪼개기 (why? 중복제거)

but, 정규화 너무 심하게 할 경우 프로그램에서 조인(join) 빈번하게 발생 -----> 성능저하 가능성 ↑

So, 조인 많으면 => 성능저하 ============> 해결이 XXX ????

                                               ============> 다시 붙여야함 ( 역정규화 ) - 중복발생 불가피. 프로그램적으로 해소해야함

 

1) 제 1정규형 - 중복X

2) 제 2정규형 ========>

3) 제 3정규형 ========>  2,3 정규형 둘다  서로 관련된걸 하나로(그룹) 묶어서 빼내는것 (=클래스빼내듯)

                                     => 간결. 재사용성↑   컬럼수 유지하면서 중복제거도 됨

 

 

 

*  부채꼴 함정(Fan Trap) : 엔티티관계 잘못맺어서 생김

*  상향식 접근 : 어떤 시스템을 파악해야 할 때 => 기존ERD, 보고서, 매뉴얼 업무지침서 등을 통해 조사, 모델링

 

 

데이터모델링 절차

데이터 모델링

 

           [           분석            ] ==================================> [           설계            ]

 

AS-IS                                                                                     개념모델링               논리모델링              물리모델링

현행업무분석         방향성수립                                       ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

현행데이터분석            (TO-BE)                                          주제영역정의            1) 엔티티정의         테이블설계

+요구사항정의                                                                  핵심엔티티정의            2) 속성정의            무결성설계(제약조건)

                                                                                                                               3) 관계정의            인덱스 등 설계

                                                                                                                               디테일? 이력? 상태관리?

                                                                                                                               분석/코드/교차

 

* 데이터 표준 : 같은용어 사용 (데이터통합의 필요성)

* 데이터사전 : 공통적인 용어로 소통 - 데이터 표준 

 

 

리버스 모델 활용

개념 - 논리 - 물리 모델중  물리 사용중인데 개념and논리 날아가고 없음.

그럴때, 현행 시스템의 DB메타정보를 이용 -> 엔티티 및 속성을 도출/관계식별해 ERD작성

=> 데이터모델을 현행화하는 과정을 리버스모델링 이라고 한다

 

 


 

개념모델링 ( 업무파악 ) 

- 주제영역 도출

- 주제영역 분류 및 정의

- 핵심엔티티 정의 및 관계정의

: 주제영역 정의하고 핵심엔티티를 도출

 

 

ex) 인터넷뱅킹

       => 개인, 기업, 상품, 예금, ISA, 대출, 펀드, 보험, 외환, 퇴직연금, 입출금, 이체

 

 

* 주제영역을 정의할 때 어려운 점

- 개념부족

- 의견차이

- 확신부족

- 오너십

 

 

핵심엔티티 식별

핵심엔티티?

: 업무, 주체, 대상, 자원, 장소 등에 해당하는 엔티티

ex) 고객 주제영역 - 고객, 거래처, 신용평가, 채널

      업무 행위        - 계약, 주문, 입출금

+ 전반적인 데이터 구조와 관계를 파악할 수 있을만큼 식별

+ 주제영역간 핵심엔티티 수 크게 차이나지 않도록 비슷한 수준으로 도출

 

식별자

엔티티 개념을 가장 명확하게 표현할 수 있는 속성으로 구성

 

 


 

논리모델링 (업무반영 ) 

(이론적으로 요구사항 잘 반영되도록)

 

 

 

 

http://www.yes24.com/Product/Goods/89872186

 

핵심 데이터 모델링 - YES24

『핵심 데이터 모델링』은 모델링 이론과 개념모델링, 논리모델링, 물리 모델링 과정에서 수행하는 작업을 중심으로 기술했으며, 마지막에는 모델링 사례를 바탕으로 다양한 주제를 다루고 있

www.yes24.com

 

'ALL > 데이터모델링' 카테고리의 다른 글

핵심 데이터 모델링 - 논리모델링  (2) 2022.08.11
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함