220 likes | 513 Views
세 션 1 – 데이터모델링 및 DB 설계 핵심기법 30 題 세미나 - 핵심실무기법 -. 제니시스기술㈜ 김창갑 수석컨설턴트 Ckk@genesis.co.kr. 목 차. 1. 실무데이터의 데이터중심분석기법 2. 업무규칙의 모델규칙매핑기법 3. 함수종속과 정규화기법 4. 데이터모델 검증기법 5. 프로세스모델과의 연관분석기법. 1. 실무데이터의 데이터중심분석기법. 핵심실무기법 1 : 데이터중심분석기법의 이해. ▣ 모델링의 접근방식
E N D
세 션 1 – • 데이터모델링 및 DB설계 • 핵심기법 30題 세미나 • - 핵심실무기법 - 제니시스기술㈜ 김창갑 수석컨설턴트 Ckk@genesis.co.kr
목 차 1. 실무데이터의 데이터중심분석기법 2. 업무규칙의 모델규칙매핑기법 3. 함수종속과 정규화기법 4. 데이터모델 검증기법 5. 프로세스모델과의 연관분석기법
1. 실무데이터의 데이터중심분석기법 핵심실무기법1 : 데이터중심분석기법의 이해 ▣ 모델링의 접근방식 ▷ 컴퓨터세계(Computer World)를 중심으로한 모델링 방식 □ 프로세스를 중심으로 모델을 작성하며 구조적 분석/설계기법이 대표적 □ DFD, DD, Mini Spec, Structure Chart, Module Spec 등을 사용하여 모델 작성 □ 입력->처리->출력 형태의 Batch 처리방식의 시스템을 묘사하는데 효과적 ▷ 현실세계(Real World)를 중심으로한 모델링 방식 □ 객체를 중심으로 모델을 작성하며 객체지향 분석/설계기법이 대표적 □ Object Diagram, Class Diagram, Sequence Diagram, Interaction Diagram 등을 사용하여 모델 작성 □ 인간/기계/타시스템간의 상호작용 방식의 시스템을 묘사하는데 효과적 ▷ 업무세계(Business World)를 중심으로한 모델링 방식 □ 데이터를 중심으로 모델을 작성하며 정보공학이 대표적 □ Entity Relationship Diagram을 사용하여 데이터모델 작성 □ 데이터베이스시스템의 데이터 구조를 묘사하는데 효과적 ▣ 정보공학에서 데이터 분석/설계 ▷ 정보전략계획(Information Strategies Planning) □ Mission->Value ->Vision ->Strategies ->CSF -> KPI로 이어지는 경영전략 분석 □ 주제영역을 중심으로 정보구조 (데이터아키텍처) 정의 ▷ 업무영역분석(Business Area Analysis) □ 개체(Entityt) 발견, 개체의 속성 도출 및 개체간의 관계 설정 □ 개념모델 (ERD사용) 도출 ▷ 업무시스템설계(Business System Design) □ 목표DBMS에 맞는 데이터모델설계 □ (예) 개념모델 -> Relational Data Model에 Mapping (FK설정) 하여 논리모델 도출 □ (예) 논리모델 -> 물리모델 전환 (색인/뷰 설정)
등록번호 공 급 자 상 호 성 명 사업장 소재지 업 태 종 목 전화번호 1. 실무데이터의 데이터중심분석기법 핵심실무기법2 : 실무데이터로부터 속성추출 거 래 명 세 표 데이터의 특성별 분류(속성유형기준) 일련번호 199 년 월 일 귀하 아래와 같이 계산합니다. 합 계 금 액 (공급가액+세액) ● 기초속성 : 실제적(자연적)으로 존재하는 데이터 거래명세표) 거래명세, 년월일, 공급받는자, 공급자, 상호, 성명, 사업장소재지, 업태, 품목, 규격, 수량, 단가, 비고 품 목 규 격 수 량 공 급 가 액 세 액 비 고 단 가 ● 설계속성 : 원래 존재하지 않지만 필요에 따라 설계자가 만든 데이터 거래명세표) 일련번호, 등록번호, 전화번호 ● 추출속성 : 다른 자료로부터 계산 등의 가공처리를 통해 만들어진 데이터 거래명세표) 공급가액, 세액, 합계금액
거 래 명 세 표 일련번호 199 년 월 일 귀하 아래와 같이 계산합니다. 합 계 금 액 (공급가액+세액) 등록번호 데이터의 특성별 분류(실체자격기준) 공 급 자 상 호 성 명 사업장 소재지 ● 실체의 자격 – 대표 값을 가질 것 (Uniqueness), 대표 값외의 속성을 가질 것. 사용자가 DB에 저장 관리하려고 할 것. 다른 실체와 관계가 있을 것. 업 태 종 목 전화번호 ● 실체 - 거래명세, 공급자, 사업장, 품목, 거래명세내역 품 목 규 격 수 량 단 가 공 급 가 액 세 액 비 고 ● 실체별 속성 - 거래명세) 거래명세,일련번호,년월일, 공급받는자 - 공급자) 등록번호,상호,성명,사업장소 재지,업태,종목,전화번호 - 사업장) 사업장번호,사업장명,소재지 - 품목) 품목번호,품목명 - 거래명세내역) 품목번호,규격,수량, 단가,비고 1. 실무데이터의 데이터중심분석기법 핵심실무기법3 : 실무데이터로부터 실체발견
< 거래명세표의 논리적 ERD > 공급자 사업장 품 목 거 래 명 세 표 등록번호 사업장번호 품목번호 일련번호 199 년 월 일 귀하 아래와 같이 계산합니다. 합 계 금 액 (공급가액+세액) 등록번호 상 호 성 명 소 재 지 업 태 종 목 전화번호 사업장명 소재지 품 목 명 공 급 자 성 명 상 호 사업장 소재지 종 목 업 태 전화번호 품 목 규 격 수 량 단 가 공 급 가 액 세 액 비 고 거래명세내역 거래명세 거래명세일련번호 품목번호 규격 수량 단가 비고 년월일 공급받는자 엔티티(파일, 테이블) 명 표 시 식별자(키) 영역 비식별자 영역 1. 실무데이터의 데이터중심분석기법 핵심실무기법4 : 실무데이터로부터 개념모델 도출
2. 업무규칙의 모델규칙매핑기법 핵심실무기법5 : 업무규칙과 모델 작성 ▣ 업무규칙(Business Rules)의 이해 ▷ Business Process는 절차(Procedure)와 제약조건(Condition)을 포함 □ 절차는 프로세스의 시작에서 종료에 이르는 과정을 기술 □ 제약조건은 IF THEN ELSE 구문으로 표현 가능 □ Business Process는 절차에 따라 진행하되 제약조건을 만족하여 함 □ 이러한 제약조건을 업무규칙(Business Process)이라고 부름 ▷ 업무규칙의 사례 □ “상호가 없는 거래명세표는 무효다.” □ “상호가 없어도 이름, 주소, 전화번호가 있으면 유효한 거래명세표다.” □ “세액은 공급가액의 10%로 산출한다.” □ “공급자의 소재지와 사업장의 소재지가 동일한 경우 단가 95%로 산출한다.” ▣ 업무규칙과 모델의 관계 ▷ 개체의 발견 □ (예) 개인공급자와도 거래하는 경우 공급자는 개인과 기업으로 분화 ▷ 속성의 분석 □ (예) 세액을 공급가액의 10%로 산출하는 경우 세액을 별도로 보존할 가치가 있는가? ▷ 관계의 설정 ▷ 트리거 설정
공급자 사업장 품 목 참조무결성규칙 PK등록번호 PK사업장번호 PK품목번호 부모실체 관 계 자식실체 입 력 삭 제 상 호 성 명 소 재 지 업 태 종 목 전화번호 품 목 명 거래명세 사업장명 소 재 지 Dependent 공급자 Restrict 거래명세 내역 Cascade Dependent 거래명세 설명) ● 입력규칙(자식실체기준) Dependent: 대응되는 부모실체가 있는 경우에만, 자식실체의 입력/수정을 허용 ● 삭제규칙(부모실체기준) Restrict: 대응되는 자식실체가 없는 경우에만 부모실체의 삭제를 허용 Cascade: 부모실체의 삭제를 항상 허용하고 동시에 대응되는 자식실체의 모든 건을 자동 삭제 거래명세 거래명세내역 PK 거래명세일련번호 FK PK 품목번호 FK PK 거래명세일련번호 년월일 공급받는자 공급자등록번호FK 공급자사업장번호FK 규격 수량 단가 비고 2. 업무규칙의 모델규칙매핑기법 핵심실무기법6 : 업무규칙과 데이터무결성
3. 함수종속과 정규화기법 핵심실무기법7 : 함수종속의 이해 ▣ 기본키의 선정 ▷ 슈퍼키 □ 속성의 집합 □Entity 집합에서 특정 Entity를 유일하게 식별 •관계스킴 R의 모든 적법한 관계 r(R)에서, r에 있는 투플 t1과 t2 의 모든 쌍에 대하여 •t1 t2이고 t1[K] t2[K]이라면 R의 부분집합 K는 슈퍼키 ▷ 후보키 □ 가장 작은 슈퍼키 □ 슈퍼키의 어느 부분집합도 슈퍼키가 될 수 없는 경우 ▣ 함수종속의 개념 ▷ 함수종속의 정의 □ X R이고 Y R이며,모든 적법한 관계 r(R)에서, r에 있는 투플 t1과 t2 의 모든 쌍에 대하여 •t1[X] = t2[X]인 경우 t1[Y] = t2[Y]라면 •함수종속 X Y 성립 □ 슈퍼키의 개념을 일반화 •함수종속 K R이 성립한다면 • K는 R의 슈퍼키 ▷ 함수종속의 사용 □ 적법한 관계집합에 대하여 제약조건을 명세화 □ 관계가 주어진 함수종속의 집합하에서 적법한지 검증 ▷ F의 총합 F+ (closure of F) □ F는 함수종속의 집합 □ F+는 F에 의해 논리적으로 암시된 모든 함수종속의 집합 □ 암스트롱의 공리를 반복 적용하여 F+ 도출 가능
3. 함수종속과 정규화기법 핵심실무기법8 : 바람직한 설계의 기준 ▣ 설계의 목적 ▷ 불필요한 데이터 중복의 방지 ▷ 쉬운 정보검색 ▣ 바람직하지 못한 설계의 문제점 ▷ 정보의 반복 □ 데이터를 저장할 수 있는 공간을 낭비 □ 데이터 수정 연산이 복잡 ▷ 표현할 수 없는 정보 존재 ▷ 정보의 손실 ▣ 바람직한 데이터베이스 설계 ▷ 종속성 보존 분해 □ 관계스킴을 분해하면서 적법하지 못한 관계가 생성되는 것을 방지 •주어진 함수종속을 모두 만족하지 못하는 경우 ▷ 무손실 Join 분해 □ 관계스킴 R의 함수종속집합 F에서, R을 분해한 R1과 R2에 대하여 다음 함수종속의 하나가 F+에 속하는 경우 •R1 R2 R1 •R1 R2 R2 ▷ Boyce-Codd Normal Form (BCNF) □ 만일 X R이고 Y R이며, 형식 X Y의 관계스킴 R의 모든 함수종속에서 다음 중 하나를 만족하는 경우 • X Y는 당연한 함수종속 (즉 Y X) • X는 스킴 R을 위한 수퍼키 ▷ 제3정규형 □ BCNF의 선택조건에 “•Y는 R의 후보키에 포함” 추가
※ 비 정규형 제품 주문품목 재고수량 제품코드 제품명 110 TV 12,505 VTR 16,606 165 Aircon 795 850 ※ 1차 정규형 제품 주문품목 제품코드 제품코드 주문번호 고객우선 순위 수출내수 구분 사업자 등록번호 재고수량 고객코드 제품명 주문수량 110 TV 12,505 110 110 165 165 165 850 94002 94073 94028 94101 94007 94036 X N N X X X A031 C010 C238 A031 Y211 Y211 1234567890 0987654321 0 3 2 0 1 1 5,000 20 55 7,700 500 350 VTR 16,606 165 고객우선 순위 수출내수 구분 사업자 등록번호 고객코드 주문번호 주문수량 제품코드 Aircon 795 850 94002 94073 94028 94101 94007 94036 X N N X X X A031 C010 C238 A031 Y211 Y211 1234567890 0987654321 0 3 2 0 1 1 5,000 20 55 7,700 500 350 110 110 165 165 165 850 반복그룹 3. 함수종속과 정규화기법 핵심실무기법9 : 정규화 사례
제품 주문품목 주문수량 주문번호 제품코드 재고수량 제품코드 제품명 110 110 165 165 165 850 94002 94073 94028 94101 94007 94036 5,000 20 55 7,700 500 350 110 TV 12,505 VTR 16,606 165 Aircon 795 850 고객우선 순위 수출내수 구분 사업자 등록번호 주문번호 고객코드 94002 94073 94028 94101 94007 94036 X N N X X X A031 C010 C238 A031 Y211 Y211 1234567890 0987654321 0 3 2 0 1 1 3. 함수종속과 정규화기법 핵심실무기법10 : 정규화 사례 ※ 2차 정규형
주문품목 제품 주문수량 주문번호 제품코드 제품명 재고수량 제품코드 110 110 165 165 165 850 94002 94073 94028 94101 94007 94036 5,000 20 55 7,700 500 350 110 TV 12,505 VTR 16,606 165 Aircon 795 850 주문 고객 고객우선 순위 주문번호 수출내수 구분 사업자 등록번호 고객코드 고객코드 94002 94073 94028 94101 94007 94036 A031 C010 C238 A031 Y211 Y211 A031 C010 C238 Y211 X N N X 1234567890 0987654321 0 3 2 0 3. 함수종속과 정규화기법 핵심실무기법11 : 정규화 사례 ※ 3차 정규형
주문품목 제품 제품코드 주문번호 제품코드 주문수량 제품명 재고수량 110 110 165 165 165 850 94002 94073 94028 94101 94007 94036 5,000 20 55 7,700 500 350 110 TV 12,505 VTR 16,606 165 Aircon 795 850 주문 고객 국내고객 사업자 등록번호 주문번호 고객코드 고객코드 수출내수 구분 고객우선 순위 고객코드 94002 94073 94028 94101 94007 94036 A031 C010 C238 A031 Y211 Y211 A031 C010 C238 Y211 X N N X 0 3 2 1 C010 C238 1234567890 0987654321 3. 함수종속과 정규화기법 핵심실무기법12 : 정규화 사례 ※ 4차 정규형
4. 데이터모델 검증기법 핵심실무기법13 : 데이터모델의 검증 ▣ 검증단계 ▷ 그룹체크 ▷ 사용자 확인 ▷ 규칙 ▷ 실체품질 검증 ▷ 속성품질 검증 ▷ 관계품질 검증 ▷ 완전성 검증 ▣ 그룹체크 ▷ Business rule에 의한 완전한 이해와 E-R Modeling에 대한 완전한 이해를 가진 숙련된 분석가가 최선의 답이다. ▷ Project 팀 내의 동료끼리 상호 모델을 Check하고 오류를 찾아 본다. ▣ 사용자 확인 ▷ 정기적으로 사용자에게 모델을 제시하면서 확인한다. ▷ 사용자를 참여시켜 Error와 누락된 것을 check한다. ▣ 완전성 검증 ▷ 사용자 INTERVIEW, 서류양식, 장표, 보고서 등과 비교점검한다. ▷ 향후 입력, 출력보고서가 모두 적용될 수 있는지 점검한다.
4. 데이터모델 검증기법 핵심실무기법14 : 논리모델의 핵심성공요소 ▣ 분석단계의 Data Modeling(산출물: Logical ERD)과 설계단계(산출물: Physical ERD)의 구분 ▷ Business Rule이 같기 때문에 분석단계의 ERD(Entity로 표시)와 설계단계의 ERD(Table로 표시)의 근본구조는 달라지지 않는다. ▷ 분석단계의 ERD에서 약 20%내외만이 수정이 되어 설계단계의 ERD로 바뀐다. ▷ 설계단계에서는 성능(Performance)을 고려한 Summary, Duplicate, Processing Table이 만들어진다. ▣ 실체관계도(ERD) 작성 및 검증요령 ▷ 현재의 장표, 양식, 업무 메뉴얼, 보고서, 사용자인터뷰 내용등에서 Entity를 추출한다. (정보관리대상, 유일한 키의 존재, 키 이외의 속성 가질 것) ▷ 실체사이의 Business Rule을 분석하여 그들 사이의 관계를 찾는다. (관계유형) ▷ Dynamic flow (업무흐름도에 의존 :주문→생산지시→제품입고 → 출고 →납품) ▷ Static flow(데이터 자체의 관계 : BOM Type, Super-Sub Type) ▷ Transient flow(시간이 가면 변하는 것 : 정산-미정산 분개의 확정 시점) ▷ 향후 입력화면, 출력보고서가 현재의 ERD에서 추측될 수가 있고 계산하기 편한가 등의 기준으로 실체관계도를 검증한다. ▣ 실체(Entity, Table)를 분해한 후 합칠 수 있다. ▷ 실체관계도 작성시 핵심실체(독립실체, 코드실체 : kernel Entity)를 구별함 ▷ Sub-system만 제작한 다음 나중에 통합할 수 있다.
4. 데이터모델 검증기법 핵심실무기법15 : 논리모델의 핵심성공요소 2 ▣ 실체관계도를 제대로 못 그리는 이유 ▷ Business Rule에 숨어있는 Data를 분석해내지 못했고 그들 Data사이의 관계를 분석하지 못했기 때문 ▷ ER 방법론 미 숙지 ▷ Business Rule해독 90%, ER방법론 숙지 10% ▣ 관계형 데이터베이스 모델링은 속성(Attribute)끼리의 Logical Model이다.. ▷ 속성(Attribute끼리의 Business Rule → Relationship ▷ 물리적 의미(Physical meaning) → Relational Key(외부 키)의 정의 ▣ 그 밖에 ▷ 무결성 원칙(Integrity Rule) → Business Integrity Rule. ▷ 관계형 데이터베이스는 속성(Attribute)접근 방식이지 Pointer접근방식(COBOL문의 OCCURS, Redefine)이 아님, 즉 같은 TYPE의 속성은 중복되면 안 된다.
주문 제품 제품코드 주문번호 제품코드 재고수량 제품명 고객코드 주문수량 A031 C010 C238 A031 Y211 Y211 5,000 20 55 7,700 500 350 110 110 165 165 165 850 94002 94073 94028 94101 94007 94036 110 TV 12,505 VTR 16,606 165 Aircon 795 850 고객 국내고객 사업자 등록번호 고객코드 고객코드 수출내수 구분 고객우선 순위 A031 C010 C238 Y211 X N N X 0 3 2 1 C010 C238 1234567890 0987654321 4. 데이터모델 검증기법 핵심실무기법16 : 데이터모델 수정
리뷰대상 확인방법 조치방안 체크 식별자의 유일성 식별자는 유일한가? 식별자를 조정한다. 필수 복합식별자 크기의 적정성 식별자를 구성하고 있는 속성의 수가 7개를 초과하는가? 선택적이거나 길이가 가변적인 속성을 사용하지는 않는가? 기본속성이나 설계속성을 사용하였는가? 식별자의 길이가 40 바이트(Byte)를 초과하는가? 복수 식별자는 삭제하였는가? 설계형 식별자를 사용한다. 필수이고 고정된 속성을 사용한다. l추출속성은 사용하지 못한다. 40 바이트(Byte)를 초과하지 조정한다. 복수 식별자는 업무적인 요소로 분해하여 별도의 속성으로 추가하고, 이들의 조합을 식별자로 지정한다. 필수 필수 필수 선택 필수 4. 데이터모델 검증기법 핵심실무기법17 : 식별자 검증
5. 프로세스모델과의 연관분석기법 핵심실무기법18 : CRUD 매트릭스의 작성
5. 프로세스모델과의 연관분석기법 핵심실무기법19 : CRUD 매트릭스의 검증