Presentation is loading. Please wait.

Presentation is loading. Please wait.

실전 데이터모델링 & 데이터베이스 설계와 구축

Similar presentations


Presentation on theme: "실전 데이터모델링 & 데이터베이스 설계와 구축"— Presentation transcript:

1 실전 데이터모델링 & 데이터베이스 설계와 구축
(1.데이터모델링 개념) 李春植

2 ▶데이터모델링의 중요성 ☞ 업무로부터 데이터베이스를 설계하고 구축하는 것은 전체시스템을 구축하는 것의 중요도가 있음 ☞ 전사적 데이터베이스 통합관리로 인한 통합데이터모델의 중요성 대두 ☞ 요즈음 IT기술의 추세는 모듈화 및 통합화 ☞ 요즈음 IT기술의 추세는 객체지향 방법론에 의한 객체지향 모델링을 진행

3 ▶프로젝트 현실 ☞ 데이터모델링 전문가의 부족 ☞ 이전 데이터모델을 이용한 잘못된 모델링의 반복 (90년대 데이터베이스의 구조를 그대로 사용 ex) HDB스키마 ERD 전환, 단순 테이블(ISAM, RDB테이블 을 ERD에 사용) ☞ 객체지향분석설계 또는 컴포넌트 설계가 모든 것을 해결하는 걸로 착각

4 1. 데이터 모델링 개념

5 정보전략 계획수립 (ISP) ▶ 업무시스템 구축의 흐름 데이터를 기반으로 세워나가는 기둥과
업무시스템구축 데이터를 기반으로 세워나가는 기둥과 프로세스를 기반으로 세워나가는 두 개의 기둥이 있다. DB 전환 AP 설치 전환/이행 검증 DB 튜닝 AP 테스트 테스트 검증 DB 구축, 변경, 관리 AP 개발 개발 물리DB설계 AP 설계 설계 상관 모델링 분석 데이터 모델링 프로세스 모델링 검증 정보전략 계획수립 (ISP)

6 본문 ▶ 모델링의 3가지 관점 데이터 관점 – 업무가 어떤 데이터와 관련이 있는지 또는
(DATA, WHAT) 데이터간의 관계는 무엇인지를 모델링 하는 방법 2. 프로세스 관점 – 업무에서 실제 하는 일은 무엇인지 또는 (PROCESS, HOW) 어떻게 해야 하는지에 대해 모델링 하는 방법 3. 상관 관점 – 업무가 처리하는 일의 방법에 따라 데이터는 (INTERACTION) 어떻게 영향을 받고 있는지 모델링 하는 방법

7 ▶ 데이터 모델링의 개념 데이터 모델링이란… 정보화 시스템을 구축하기 위해, 어떤 데이터가 존재하는지 또는 업무가 필요로 하는 정보는 무엇인지를 분석하는 방법

8 ▶ 데이터 모델링의 주체 프로젝트 참여한 모든 사람은 데이터모델링에 참여하거나 모델내용을 이해해야 한다. 프로젝트 개발 참여자
업무 참여자 SE, BA DBA MODELER 현업 업무전문가 프로젝트 참여한 모든 사람은 데이터모델링에 참여하거나 모델내용을 이해해야 한다.

9 ▶ 기본 데이터모델링 개념 업무가 관여하는 어떤 것(THINGS) 업무가 관여하는 어떤 것간의 관계(RELATIONSHIPS)
어떤 것이 가지는 성격(ATTRIBUTES) 인간이 살아가는 환경도 이 세가지 관점에서 다 이해될 수 있다. 예) 연인사이의 관계 ( 남녀 , 남녀의 관계 애인사이, 남녀의 성격(온화하다, 침착하다, 예쁘다) 야당과 여당의 관계, 대통령과 국민, 강사와 수강생

10 개 념 타입/클래스 어커런스/인스턴스 ▶ 기본 데이터모델링 용어 어떤 것 엔티티타입 엔티티 어떤 것간의 관계 관계 패어링
어떤 것의 성격 속성 속성값

11 ▶엔티티타입 정의 ☞ 정보가 저장될 수 있는 사람, 장소, 물건, 사건 그리고 개념 등 - Thomas Bruce (1992) - ☞ 변별할 수 있는 사물 - Peter Chen (1976) - ☞ 데이터 베이스 내에서 변별 가능한 객체 - C.J Date (1986) - ☞ 추후에 참조 가능한 데이터의 논리적 저장체 - Clive Finkelsein (1989) - ☞ 정보를 저장할 수 있는 어떤 것 - James Martin (1939) -

12 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 것으로 영속적으로 존재하는 단위
▶ 엔티티타입의 정의 강의실 과목 강사 이 강의실안에는 어떤 종류의 엔티티타입이 있을 수 있을까요? 수강생, 현광등, 책상, 컴퓨터, 노트, 교재등 이 강의실 안에서만 봤을때 강사는 왜 엔티티타입이 될 수 없을 까요? 엔티티타입은 업무에 필요하고 유용한 정보를 저장하고 관리하기  위한 것으로 영속적으로 존재하는 단위

13 ▶ 엔티티타입과 엔티티 엔티티타입-엔티티 ERD 엔티티타입-엔티티의 예 엔티티타입 엔티티 강의실 101호 102호 과 목
과 목 J2EE DATA MODELING 강 사 이춘식 김경재 엔티티타입 엔티티 엔티티타입은 엔티티의 집합

14 과목은 정보공학이나 JAVA등을 포함하는 동일한 성격의 엔티티들을 보관하는 논리적인 장소이다.
▶ 엔티티타입은 깡통 JAVA 정보공학 과목(엔티티타입) 과목은 정보공학이나 JAVA등을 포함하는 동일한 성격의 엔티티들을 보관하는 논리적인 장소이다.

15 ☞ 첫 번째 반드시 업무에서 필요하고 관리하고자 하는 정보이어야 한다. (예. 환자, 토익의 응시횟수…)
▶ 엔티티타입의 특징 ☞ 첫 번째 반드시 업무에서 필요하고 관리하고자 하는 정보이어야 한다. (예. 환자, 토익의 응시횟수…) ☞ 두 번째 유일한 식별자에 의해 식별이 가능해야 한다. ☞ 세 번째 영속적으로 존재하는 엔티티의 집합이어야 한다. (“한 개”가 아니라 “두 개 이상”) ☞ 네 번째 엔티티타입은 업무 프로세스에 의해 이용되어야 한다. ☞ 다섯 번째 엔티티타입에는 반드시 속성이 있어야 한다. ☞ 여섯 번째 엔티티타입은 다른 엔티티타입과 최소 한 개 이상의 관계가 있어야 한다. 다음 장부터 실 예를 들어 설명함

16 인사시스템 ▶ 엔티티타입의 특징-업무에서 필요 ☞ 첫 번째 반드시 업무에서 필요하고 관리하고자 하는 정보이어야 한다.
병원 시스템 인사시스템 환자

17 ☞ 두 번째 유일한 식별자에 의해 식별이 가능해야 한다.
▶ 엔티티타입의 특징-식별이 가능 ☞ 두 번째 유일한 식별자에 의해 식별이 가능해야 한다. 홍길동 !!???

18 엔티티의 수 가 “한 개”가 아니라 “두 개 이상” 이어야 한다.
▶ 엔티티타입의 특징-엔티티의 집합 ☞ 세 번째 영속적으로 존재하는 엔티티의 집합이어야 한다. 엔티티의 수 가 “한 개”가 아니라 “두 개 이상” 이어야 한다. 엔티티타입 엔티티 회사 LG CNS 회사 엔티티타입 엔티티 병원 삼성의료원 병원

19 ☞ 네 번째 엔티티타입은 업무 프로세스에 의해 이용되어야 한다.
▶ 엔티티타입의 특징-프로세스에 의해 이용 ☞ 네 번째 엔티티타입은 업무 프로세스에 의해 이용되어야 한다. ?? 난 뭐지… 엔티티 타입 엔티티 타입 PROCESS 엔티티 타입 엔티티 타입 PROCESS 업무프로세스에 의해 이용되지 않는 엔티티타입은 그 업무에 있어서는 엔티티타입이 아니라는 것을 의미한다.

20 ☞ 다섯 번째 엔티티타입에는 반드시 속성이 있어야 한다.
▶ 엔티티타입의 특징-속성존재 ☞ 다섯 번째 엔티티타입에는 반드시 속성이 있어야 한다. 엔티티타입? 태풍 날씨 태풍이름 발생지역 풍속 속성이 존재하지 않는 오브젝트는 엔티티타입이 될 수 없다.

21 ☞ 여섯 번째 엔티티타입은 다른 엔티티타입과 최소 한 개 이상의 관계가 있어야 한다.
▶ 엔티티타입의 특징 ☞ 여섯 번째 엔티티타입은 다른 엔티티타입과 최소 한 개 이상의 관계가 있어야 한다. 강의실 코드 강사 강의실번호 강의장소 강의실상태코드 강의실용도코드 코드 내용 비고 강사이름 강사타입코드 강사과목코드 주소 전화번호 코드와 통계성 엔티티타입 간의 관계는 연결하면 데이터모델이 너무 복잡해 지므로 편의상 생략하여 표현한다.

22 ▶ 엔티티타입의 분류 – 유무형에 따라… 유형 (사원,물품) 사건 개념 (주문,청구) (조직,장소) 유형(TANGIBLE)
무형(CONCEPTUAL) 사건 (주문,청구) 개념 (조직,장소)

23 ▶ 엔티티타입의 분류 – 발생시점에 따라… 중심 (접수,계약) 기본 (사원,부서) 행위 (주문내역, 계약진행)
☞ 기본(FUNDAMENTAL ENTITY TYPE) – 해당 업무에 기본적으로 존재하는 정보 ☞ 중심(MAIN ENTITY TYPE)– 업무에 핵심적인 역할을 하는 정보 ☞ 행위(ACTIVE ENTITY TYPE) – 기본과 중심 엔티티타입을 근간으로 업무가 흘러가면서 발생되는 엔티티타입

24 다섯 번째 엔티티타입이 생성되는 자연스러운 의미를 그대로 부여한다.
▶ 엔티티타입의 명명 첫 번째 현업에서 사용하는 용어를 사용한다. 두 번째 가능한 약어를 사용하지 않는다. 세 번째 단수명사를 사용한다. 네 번째 모든 엔티티타입 이름은 유일해야 한다. 다섯 번째 엔티티타입이 생성되는 자연스러운 의미를 그대로 부여한다. 잘 지은 엔티티타입명 이름하나 열 프로세스명 안부럽다

25 ▶ 엔티티타입의 명명 엔티티타입 이름 설명 고객제품 고객의 제품인지, 주문제품인지 명확하지 않음. 주문제품 주문목록
엔티티타입이 생성되는 의미대로 명명 한다. 엔티티타입 이름 설명 고객제품 고객의 제품인지, 주문제품인지 명확하지 않음. 주문제품 주문목록 주문한 제품의 이름이라는 것을 알 수 있음. 주문목록

26 ▶ 식별자 개념 식별자 엔티티 1001 엔티티 102 1003 엔티티타입 식별자는 엔티티타입내에서 엔티티들을 구분할 수 있는
데이터모델링 타이틀 엔티티타입 식별자는 엔티티타입내에서 엔티티들을 구분할 있는 구분자이다 .

27 ▶ 식별자 구분 식별자 식별자 분류 대표성여부 스스로생성여부 단일속성여부 대체여부 내부 내부 단일 단일 단일 원조 주식별자
보조 보조 외부 외부 복합 복합 대리 복합 식별자 식별자 식별자 식별자 식별자 식별자 식별자 식별자 데이터모델링 타이틀

28 대리 식별자(SURROGATE IDENTIFIER)
▶ 대리식별자 대리 식별자(SURROGATE IDENTIFIER) 사업소코드 + 년월 + 일련번호 대리 식별자 대리 식별자

29 ▶관계의 정의 부서 사원 소속한다 관계란 두 개의 엔티티타입 사이의 논리적인 관계 즉 엔티티와 엔티티가 존재의 형태나 행위로서 서로에게 영향을 주는 형태를 말한다.

30 ▶ 관계의 분류 존재에 의한 관계 행위에 의한 관계 부서 고객 DB팀 김경재 소속한다 사원 주문 주문한다 황경빈 CTA201

31 ▶관계 패어링 관계-패어링 ERD 관계-패어링 예 관계 패어링 소속한다. 이춘식이 영업부에 소속한다.
김경재가 영업부에 소속한다. 주문되다. 마우스가 주문번호1001에 의해 주문된다. 키보드가 주문번호1001에 의해 주문된다. 관계 패어링 관계는 패어링의 집합

32 ▶관계 패어링의 예 영화 안성기 무사 소속한다 김수철 고래사냥 배우 배우

33 멤버쉽(RELATIONSHIP MEMBERSHIP)
▶관계의 멤버쉽 멤버쉽(RELATIONSHIP MEMBERSHIP) 포함한다 부서 사원 사원 소속된다 멤버쉽은 엔티티타입이 참여하는 관계에 대한 자신으로부터의 관점이다.

34 1:1(ONE TO ONE) ▶관계의 카디넬러티 한 개의 구매신청서에 대해 한 개의 구매주문을 신청하고
신청한다 1:1(ONE TO ONE) 구매신청 구매주문 작성한다 한 개의 구매신청서에 대해 한 개의 구매주문을 신청하고 한 개의 구매주문에는 한 개의 구매신청내용을 작성한다.

35 1:M(ONE TO MANY) ▶관계의 카디넬러티 한 명이 사원은 한 부서에 소속되고 한 부서에는 여러 사원을 포함한다.
소속된다 한 명이 사원은 한 부서에 소속되고 한 부서에는 여러 사원을 포함한다.

36 M:M(MANY TO MANY) ▶관계의 카디넬러티
주문한다 M:M(MANY TO MANY) 주문 제품 주문된다 하나의 주문은 여러 개의 제품을 주문할 수 있고 하나의 제품은 여러 개의 주문에 의해 주문될 수 있다.

37 선택(OPTIONAL) 필수(MANDATORY) ▶ 관계의 참여도 지하철은 문이 닫혀야만 출발할 수 있다.
열차가 출발하겠습니다. 필수(MANDATORY) 지하철은 문이 닫혀야만 출발할 수 있다. 안내방송이 나오지 않아도 지하철은 출발할 수 있다.

38 관계(RELATIONSHIP) 참여도 ▶관계의 참여도 하나의 주문목록에는 한 개의 목록을 항상 포함하고
포함한다 주문목록 목록 포함된다 하나의 주문목록에는 한 개의 목록을 항상 포함하고 한 목록은 여러 개의 주문목록에 의해 포함될 수 있다.

39 ▶관계의 종류 정상관계(Normal Relationship) 엔티티타입과 엔티티타입이 독립적으로 분리되어 있으면서 한 개의
관계만 상호간 존재하는 형태의 관계

40 자기참조관계(Recursive Relationship)
▶관계의 종류 자기참조관계(Recursive Relationship) 컴퓨터 본체 마우스 키보드 데이터모델링 타이틀 메모리 CPU 기판 켸이스 하나의 엔티티타입내에서 엔티티와 엔티가 관계를 맺고 있는 형태의 관계

41 병렬관계(Pararell Relationship)
▶관계의 종류 병렬관계(Pararell Relationship) 엔티티타입과 엔티티타입이 독립적으로 분리되어 있으면서 두 개 이상의 관계가 상호간의 존재하는 형태의 관계 데이터모델링 타이틀

42 수퍼타입과 서브타입사이에 1:1 관계형태로서 서브타입을 구분하는 방법에 따라
▶관계의 종류 수퍼타입 서브타입관계 수퍼타입과 서브타입사이에 1:1 관계형태로서 서브타입을 구분하는 방법에 따라 배타적관계와 포함관계로 구분됨 일반직원은 촉탁직원이 될 수 없는 배타적관계 인터넷접수자가 방문하여 다시 접수 할 수 있는 포함관계 데이터모델링 타이틀

43 ▶관계의 종류 주식별자 관계/비식별자 관계 부모의 주식별자가 자식의 주식별자 상속됨 주식별자 관계
부모의 주식별자가 자식의 일반속으로 상속됨 데이터모델링 타이틀

44 속성이란 업무에 필요한 엔티티에서 관리하고자 하는 더 이상 분리되지 않는 최소의 데이터 단위이다.
▶속성의 정의 사원 사원번호(PK) 사원명 우편번호 주소 전화번호 부서코드(FK) 속성이란 업무에 필요한 엔티티에서 관리하고자 하는 더 이상 분리되지 않는 최소의 데이터 단위이다.

45 ▶속성의 분류 – 특성에 따른 분류 기본(BASIC) 설계(DESIGNED) 파생(DERIVED) 제품이름 제조년월 원가
(X+Y) / (P+Q) = Z 기본속성 코드 계산값 파생속성은 업무에서 특히 주의해서 사용해야 할 속성이다. 중요한 속성의 구분방식이다. 엔티티타입내에 설계된 속성에 대해 이와 같은 구분할 경우 데이터입력/수정/삭제시 도움이 된다.

46 ▶속성의 분류 – 구성방식에 따른 분류 사원 사원번호(PK) 속성분류 속성명 PK속성 사원번호 FK속성 부서코드 일반속성
사원명,우편번호,주소,전화번호 사원명 우편번호 주소 전화번호 부서코드(FK)

47 ▶ 속성의 명명 1. 해당 업무에서 사용하는 이름을 부여 한다. 2. 서술식 속성명은 사용하지 않는다. 3. 약어 사용은 가급적 제한한다. 4. 엔티티타입에서 유일하게 식별가능 하도록 지정한다.

48 ▶ 수퍼타입/서브타입 - 통합 비슷한 엔티티타입으로 부터 수퍼타입 발생 접수 접수번호 접수자명 수퍼타입 통 합 접수구분코드
인터넷접수 방문접수 전화접수 수퍼타입/서브타입이란…. 여러 개의 엔티티타입이 비슷하고 일부 속성이나 관계만 다를 경우 여러 엔티티타입을 묶어 통합하여 수퍼타입과 서브타입으로 표현한다. 비슷한 유형을 묶어 수퍼타입으로 표현하고 서로다른 속성을 묶어 서브타입으로 표현한다. 수퍼타입과 서브타입 데이터모델링은 통합화와 세분화의 방법을 통해 이루어 진다. 정보공학의 수퍼타입/서브타입모델은 객체지향 모데의 상속관계로 전이가 될 수 있다. 방문장소 전화일시 서브타입 인터넷ID

49 ▶ 수퍼타입/서브타입 - 세분화 직원 수퍼타입 직원번호 직원명 하나의 엔티티타입으로 부터 서브타입 발생 세 분 화 직원구분코드
일반직원 시간직원 촉탁직원 근무시간 계약기간 서브타입 부서명

50 ▶ 수퍼타입/서브타입 특징 첫 번째 각각의 서브타입은 하나의 수퍼타입에만 속해야 한다. 두 번째 수퍼타입과 서브타입을 구분할 수 있는 구분속성이 반드시 존재해야 한다. 세 번째 서브타입에 있는 엔티티는 구분자에 의해 식별 가능해야 한다. 네 번째 서브타입에 대한 서브타입을 지정할 수도 있지만 복잡성이 증가 하므로 서브타입 수준을 1 레벨로 유지한다.

51 ▶ 서브젝트 에어리어 정의 인사기본관리 근태관리 급여관리 교육사항관리
업무간 Cohesion이 높은 것을 묶음 서브젝트 에어리어란 해당 업무 내에서 연관이 많은 엔티티타입을 그룹으로 묶어 표시하는 데이터모델링 방법이다.

52 SUBJECT AREA-시간흐름에 따른 분류
▶ 서브젝트 에어리어 분류방법 SUBJECT AREA-시간흐름에 따른 분류 업무구분B1 업무구분B2 업무구분B3 권장방법 업무구분A1 업무구분A2 업무구분A3 보통 서브젝트에어리어를 나눈다는 것은 많은 사람들이 한꺼번에 모델링을 구분지어 별개로 진행하는 경우가 많으므로… 강의에 언어분야, 모델링분야, 방법론 분야로 세개의 서브젝트 에어리어로 구분할 경우 수강생, 수강신청, 과목, 강사 등이 세 번 반복적으로 모델링이 될 것이다. 그러나 시간에 수직으로 서브젝트 에어리어로 구분하여 모델링을 할 경우에는 하나의 수강생이 나올 가능성이 많이 있다. 예를들어 은행계좌를 고려해 보자 은행에 일반계좌, 특별계좌, 시간 데이터모델과 프로세스모델 관점에서 본 SUBJECT AREA는 시간의 진행에 따른  수직적인 분할이 적절하다.

53 ▶정규화의 정의 정규화란 다양한 유형의 검사를 통해 데이터모델을 좀 더 구조화 하고 개선시켜 나가는 절차에 관련된 이론이다. 정규화의 기본 원칙은 테이블에 중복된 데이터가 없도록 하는 것이다.

54 함수의 종속성(FUNCTIONAL DEPENDENCY)
▶함수의 종속성 함수의 종속성(FUNCTIONAL DEPENDENCY) 주민등록번호  (이름, 출생지, 주소) 결정자(DETERMINENT) 종속자(DEPENDENT) 이름, 출생지, 주소는 주민등록번호에 함수 종속성을 가지고 있음. 함수종속성 종속자는 근본적으로 결정자에 함수적으로 종속관계를 가지고 있음

55 정규화(NORMALIZATION) ▶ 정규화 정규화 정규화 내용 1차 정규화 복수의 속성값을 갖는 속성을 분리 2차 정규화
주식별자에 종속적인지 않은 속성의 분리 부분종속 속성(PARTIAL DEPENDENCY ATTRIBUTE) 을 분리 3차 정규화 속성에 종속적인 속성의 분리 이전종속 속성(TRANSITIVE DEPENDENCY) 의 분리 보이스-코드 다수의 주식별자 분리 4차 정규화 다가 종속(Multi-Valued Dependency) 속성분리 5차 정규화 결합종속(Join Dependency)일 경우는 두 개 이상의 N개로 분리 정규화의 KEY WORD는 세가지 입니다. 1. 함수의 종속성 2.결정자 3. 의존자

56 테이블 데이터 – 중복된 속성 ▶ 정규화 테이블과 대상 제품 한 개
번호 제품명 재고 수량 주문 수출 여부 고객 사업자 우선 순위 1001 모니터 1990 AB345 X 4520 398201 1 150 AD347 Y 2341 -- 3 600 1007 마우스 9702 CA210 3280 200212 8 1200 300 CB230 563892 690 1201 스피커 2108 CB231 8320 2 80 주문목록 제품번호 제품명 재고수량 주문번호 수출여부 고객번호 사업자번호 고객우선순위 주문수량 데이터 – 중복된 속성 제품 번호 제품명 재고 수량 주문 수출 여부 고객 사업자 우선순위 1001 모니터 1990 AB345 AD347 X Y 4520 2341 398201 -- 1 3 150 600 제품 한 개 여러 개의 주문이 접수되어 각각의 속성에 여러 개의 값이 나타나 있음

57 테이블 데이터 – 중복된 속성 ▶1차 정규화 제품 한 개 여러 개의 주문이 접수되어 각각의 속성에 여러 개의 값이 나타나 있음
☞ 제품번호가 주식별자로 보이지만 데이터베이스로 저장될 수 있는 주식별자가 아님 테이블 제품 번호 제품명 재고 수량 주문 수출 여부 고객 사업자 우선 순위 1001 모니터 1990 AB345 X 4520 398201 1 150 AD347 Y 2341 -- 3 600 1007 마우스 9702 CA210 3280 200212 8 1200 300 CB230 563892 690 1201 스피커 2108 CB231 8320 2 80 주문목록 제품번호 제품명 재고수량 주문번호 수출여부 고객번호 사업자번호 고객우선순위 주문수량 데이터 – 중복된 속성 제품 번호 제품명 재고 수량 주문 수출 여부 고객 사업자 우선순위 1001 모니터 1990 AB345 AD347 X Y 4520 2341 398201 -- 1 3 150 600 제품 한 개 여러 개의 주문이 접수되어 각각의 속성에 여러 개의 값이 나타나 있음

58 정규화(NORMALIZATION) – 1차 정규화
▶1차 정규화 정규화(NORMALIZATION) – 1차 정규화 제품 번호 제품명 재고 수량 주문 수출 여부 고객 사업자 우선 순위 1001 모니터 1990 AB345 X 4520 398201 1 150 AD347 Y 2341 -- 3 600 1007 마우스 9702 CA210 3280 200212 8 1200 300 CB230 563892 690 1201 스피커 2108 CB231 8320 2 80 주문목록 제품번호 제품명 재고수량 주문번호 수출여부 고객번호 사업자번호 고객우선순위 주문수량 중복속성 분리

59 ▶1차 정규화의 결과 제품 주문목록 중복속성이 분리되었으므로 제품번호 식별자를 가지는 단일한 로우가 구성되었다.
☞ 1차정규화와 3차정규화의 차이는? 제품 주문목록 제품번호 (FK) 주문번호 수출여부 고객번호 사업자번호 고객우선순위 주문수량 제품 제품번호 제품명 재고수량 제품 번호 제품명 재고 수량 1001 모니터 1990 1007 마우스 9702 1201 스피커 2108 주문목록 중복속성이 분리되었으므로 제품번호 식별자를 가지는 단일한 로우가 구성되었다. 제품 번호 주문 수출 여부 고객 사업자 우선 순위 수량 1001 AB345 X 4520 398201 1 150 AD347 Y 2341 -- 3 600 1007 CA210 3280 200212 8 1200 300 CB230 563892 690 1201 AB231 8320 2 80 중복되어 발생하는 속성을 분리하여 별도의 테이블로 구성하였다.

60 ▶2차 정규화 제품 주문목록 2차 정규화 대상 주문번호에 종속적인 속성 분리 제품번호+주문번호에 종속적인 속성 주문목록
제품번호 (FK) 주문번호 수출여부 고객번호 사업자번호 고객우선순위 주문수량 제품 제품번호 제품명 재고수량 제품 제품 번호 제품명 재고 수량 1001 모니터 1990 1007 마우스 9702 1201 스피커 2108 2차 정규화 대상 주문번호에 종속적인 속성 분리 제품 번호 주문 수출 여부 고객 사업자 우선 순위 수량 1001 AB345 X 4520 398201 1 150 AD347 Y 2341 -- 3 600 1007 CA210 3280 200212 8 1200 300 CB230 563892 690 1201 AB231 8320 2 80 주문목록 1차 정규화 와 2차 정규화의 차이?? 제품번호+주문번호에 종속적인 속성

61 ▶2차 정규화의 결과 제품 주문목록 주문 주문번호에 완전히 종속 적인 속성을 분리하여 별도의 테이블 이 구성되었다. 주문
수출여부 고객번호 사업자번호 고객우선순위 제품주문 제품번호 (FK) 주문번호 (FK) 주문수량 제품 제품번호 제품명 재고수량 제품 번호 제품명 재고 수량 1001 모니터 1990 1007 마우스 9702 1201 스피커 2108 주문목록 주문 제품 번호 주문 수량 1001 AB345 150 AD347 600 1007 CA210 1200 300 CB230 690 1201 AB231 80 주문 번호 수출 여부 고객 사업자 우선 순위 AB345 X 4520 398201 1 AD347 Y 2341 -- 3 CA210 3280 200212 8 CB230 563892 AB231 8320 2 주문번호에 완전히 종속 적인 속성을 분리하여 별도의 테이블 이 구성되었다.

62 정규화(NORMALIZATION) – 이전 종속(TRANSITIVE DEPENDENCE)
▶3차 정규화 정규화(NORMALIZATION) – 이전 종속(TRANSITIVE DEPENDENCE) 주문 주문 번호 수출 여부 고객 사업자 우선 순위 AB345 X 4520 398201 1 AD347 Y 2341 -- 3 CA210 3280 200212 8 CB230 563892 AB231 8320 2 고객번호는 주식별자인 주문번호에 종속된 속성이지만 자신이 결정자가 되어 다른 속성이 자신에게 종속적인 관계를 가지고 있다.

63 ▶3차 정규화의 결과 고객번호에 종속적인 속성을 분리 고객 고객번호 수출여부 사업자번호 고객우선순위 주문 주문번호
고객번호 (FK) 제품주문 제품번호 (FK) 주문번호 (FK) 주문수량 제품 제품번호 제품명 재고수량 고객번호에 종속적인 속성을 분리 제품 제품 번호 제품명 재고 수량 1001 모니터 1990 1007 마우스 9702 1201 스피커 2108 주문목록 주문 고객 제품 번호 주문 수량 1001 AB345 150 AD347 600 1007 CA210 1200 300 CB230 690 1201 AB231 80 주문 번호 고객 AB345 4520 AD347 2341 CA210 3280 CB230 AB231 8320 고객 번호 수출 여부 사업자 우선 순위 4520 X 398201 1 2341 Y -- 3 3280 200212 8 563892 8320 2

64 ▶보이스 코드 정규화 납품 주식별자는 납품업체코드+제품코드 납품회사명 + 제품코드 납품업체코드 + 납품회사명 +제품코드
납품수량 납품단가 01 사반㈜ B001 10 20,000 A011 12 40,000 A012 30,000 02 ㈜.COMMUTER 5 7 10,000 03 시그마㈜ 20 70,000 납품 납품업체코드 납품회사명 제품코드 납품수량 납품단가 주식별자는 납품업체코드+제품코드 납품회사명 + 제품코드 납품업체코드 + 납품회사명 +제품코드 모두 가능하다.

65 ▶보이스코드 정규화의 결과 납품업체 납품 납품회사 납품업체코드 납품회사명 납품 납품업체코드 (FK) 제품코드 납품수량 납품단가
01 사반㈜ 02 ㈜.COMMUTER 03 시그마㈜ 납품 납품업체코드 제품코드 납품수량 납품단가 01 B001 10 20,000 A011 12 40,000 A012 30,000 02 5 7 10,000 03 20 70,000

66 ▶4차 정규화 대상 지원내역 사원내역 사원번호 (FK) 기술코드(FK) 프로젝트코드(FK) 기술 기술코드 기술명 프로젝트 프로젝트코드 프로젝트명 사원 사원번호 사원명 주소 사원 번호 기술 코드 프로젝트 10 MODELING SI OO DBA PA 20 XML 보유기술은 MODELING과 DBA 두 개이지만 프로젝트 코드가 SI,OO,PA 세 개가 존재하므로 임의의 값을 채웠다. 데이터 수를 줄이기 위해 사원번호에 대해 기술코드를 배정하고 사원코드에 프로젝트 코드를 배정한 이후에 기술코드 수와 프로젝트코드 수 차이에 따라 나타나는 NULL이 되는 속성값에 임의의 값을 채웠다.

67 ▶4차 정규화 결과 지원프로젝트 사원번호 (FK) 프로젝트코드 (FK) 사원 사원번호 사원명 주소 프로젝트 프로젝트코드
프로젝트명 기술 기술코드 기술명 보유기술 기술코드 (FK) 보유기술 지원프로젝트 사원 번호 기술 코드 10 MODELING DBA 20 XML 사원 번호 프로젝트 코드 10 SI OO PA 20

68 ▶4차 정규화 대상? 지원내역 기술 기술코드 기술명 사원 사원번호 사원명 주소 프로젝트 프로젝트코드 프로젝트명 지원내역
사원번호 (FK) 기술코드(FK) 프로젝트코드(FK) 사원 번호 기술 코드 프로젝트 10 MODELING SI DBA PA OO 20 XML

69 ▶잘못 적용된 4차 정규화 사원 지원프로젝트 프로젝트 사원번호 사원번호 (FK) 프로젝트코드 프로젝트코드 (FK) 사원명
프로젝트명 주소 지원기술 사원번호 (FK) 지원기술 지원프로젝트 기술코드 (FK) 사원 번호 기술 코드 10 MODELING DBA 20 XML 사원 번호 프로젝트 코드 10 SI OO PA 20 기술 기술코드 기술명

70 2. 엔티티타입을 좌에서 우, 위에서 아래로 중요도와 업무흐름에 따라 배치한다.
▶ERD 작업순서 1. 엔티티타입을 그린다. 2. 엔티티타입을 좌에서 우, 위에서 아래로 중요도와 업무흐름에 따라 배치한다.  엔티티타입 3. 엔티티타입간 관계를 설정한다. 관계 4. 관계명을 기술한다 . 5. 관계의 카디넬러티를 기술한다. 6. 관계의 참여도를 기술한다. .

71 ▶엔티티 타입 배치 방법 고객 사원 창고 주문 주문목록 목록 출고 출고목록 재고

72 ▶관계설정 고객 사원 주문 주문목록 목록 창고 출고 출고목록 재고

73 ▶관계명 표시 고객 사원 주문 주문목록 목록 창고 출고 출고목록 재고 접수하다 접수되다 주문하다 주문받다 포함하다 포함하다
포함되다 포함되다 포함되다 저장되다 출고되다 포함하다 포함하다 창고 출고 출고목록 출고하다 포함되다 보관하다 재고 보관되다 저장하다

74 ▶카디넬러키와 참여도 표시 접수하다 고객 사원 주문하다 주문받다 접수되다 포함하다 포함하다 주문 주문목록 목록 포함되다
저장되다 출고되다 포함하다 포함하다 출고 출고목록 창고 출고하다 포함되다 보관하다 저장하다 재고 보관되다


Download ppt "실전 데이터모델링 & 데이터베이스 설계와 구축"

Similar presentations


Ads by Google