논리적 데이터베이스 모델링
- 개념적 단계에서 만들어진 개념적 구조로 부터 특정 DBMS가 처리할 수 있는 관계
스키마를 생성하는 전 단계입니다.
스키마를 생성하는 전 단계입니다.
- 개념적 단계에서 만들어진 ER-Digram이 논리적 단계에서 어떤 구조로 바뀌는지
알아봅니다.
알아봅니다.
- 관계형 모델의 개념을 익힘니다.
- Mapping Rule을 이용한 관계 데이터 모델로의 변환 단계와 정규화 단계를 거칩니
다.
다.
1. 관계형 모델의 개념
- 부모테이블과 자식테이블
.관계의 주체가 부모테이블이 됩니다.
.고객이 상품을 주문하다(능동형-주체)
. 상품은 고객에게 주문되어진다(수동형)
.주체관계로 구분이 모호한 경우 어느테이블에 데이타가 먼저 정의되어야 하는가
로 부모와 자식테이블을 구분할 수 있습니다.
로 부모와 자식테이블을 구분할 수 있습니다.
- 기본키(Primary key)와 포린키(Foreign key)
.관계를 형성하고 있는 두테이블 중 부모테이블의 기본키는 자식 테이블의 포린키
로 복사(전이)되어집니다.
로 복사(전이)되어집니다.
- 식별관계와 비식별 관계
.식별관계 :부모 테이블의 기본키가 자식 테이블의 기본키 혹은 기본키 그룹
(Composite Primary key)구성원 으로 복사(전이)되는 것 입니다.
(Composite Primary key)구성원 으로 복사(전이)되는 것 입니다.
.비식별관계 :부모 테이블의 기본키가 자식 테이블의 일반컬럼으로 전이되는 것
입니다.
입니다.
2. Mapping Rule
- 메핑 룰(Mapping Rule)이란 개념적 데이터베이스 모델링에서 도출된 개체 타입과
관계 타입의 테이블 정의를 의미하며 이름 관계 스키마라 정의 합니다.
관계 타입의 테이블 정의를 의미하며 이름 관계 스키마라 정의 합니다.
- Entity --> Table
- Attribute --> Column
- Identifier --> Primary Key
- Relationship --> Foreign Key
3. ER-Win 데이터베이스 모델링 CASE Tool의 사용
1) ER-Win 표기방식(Notation)의 지정
- [New Model]에서 'Logic/Physical'을, 데이터베이스는 'Oracle 11g'을 선택 합니다.
- IE(Information Engineering): Notation은 정보공학 표기방식으로 가장 많이 사용
합니다.
합니다.
- [Model -- Model Properties...]에서 [Notation]탭에서 Logical Notation,
PhysicalNotation에서 'IE'를 선택 합니다.
PhysicalNotation에서 'IE'를 선택 합니다.
2) 1:1관계의 모델링(식별관계)
사원 신체정보
-------- --------
사원번호(PK) 사원번호(PK, FK)
이름 키
주민번호 몸무게
전화번호 시력좌
핸폰번호 시력우
우편번호 혈액형
주소
3) 1:N관계의 모델링(비식별자)
부서 사원
-------- --------
부서코드(PK) 사원번호(PK)
부서명 이름
주민번호
전화번호
핸폰번호
우편번호
주소
부서코드(FK)
4) N:M관계 모델링 하기
회원 상품 공급업체
--------- ----------- -----------
회원ID(PK) 상품코드(PK) 업체코드(PK)
주민번호 상품명 업체명
전화번호 소비자가 대표자명
핸폰번호 판매단가 전화
우편번호 재고수량 담당자
주소 제조사 담당자연락처
등록일자 등록일자 우편번호
주소
└─────┬─────┘ └─────┬─────┘
│ │
주문 입고
---------- ---------
주문번호(PK) 입고번호(PK)
주문수량 입고금액
주문합계 입고날자
배송정보 입고단가
회원ID(FK) 입고수량
상품코드(FK) 상품코드(FK)
업체코드(FK)
5) 재귀적 관계 모델링 하기
- 자신과 관계를 맺는 것을 말합니다.
- 재귀적 관계를 정의할때는 반드시 비식별관계로 정의 해야 하며
- 최초로입력되는 최상의 코드의 FK에는 NULL값이 들어갑니다.
- 자식 엔티티로 전이되는 포린키 컬럼의 이름을 바꿔주려먼 Rolename으로 정의
합니다.
합니다.
상품분류
--------
분류코드(PK)
분류명
상위코드(FK)
분류코드(PK) 분류명 상위코드(FK)
------------ -------- ----------------
A01 가전 null
A02 화장품 null
A03 의류 null
A01_01 에어콘 A01
A01_02 세탁기 A01
A01_03 컴퓨터 A01
A02_01 기초화장품 A02
A02_02 색소화장품 A02
A02_03 기능성화장품 A02
A03_01 여성의류 A03
A03_02 남성의류 A03
A03_03 아동의류 A03
사원
-----------
사원번호
이름
전화번호
핸드폰번호
우편번호
주소
직속상사번호(FK) --> 재귀적모델링으로 추가하세요
6. 슈퍼타입과 서브타입
사원
-------
사번
주민번호
전화번호
사원구분
연봉
월급
수당
위의 사원 엔티티에서 문제는 사원중에는 정규직 사원과 임시직사원의 구분입니다.
정규직 사원 : 연봉으로 급여내역 정의
임시직 사원 : 월급과 수당으로 급여내역 정의
하나의 레코드가 입력될 때 해당 사원이 정규직 사원이라면 월급과 수당 속성에
NULL값이 입력될 것이며 임시직 사원이라면 연본 속성에 NULL 값이 입력될 것
입니다.
NULL값이 입력될 것이며 임시직 사원이라면 연본 속성에 NULL 값이 입력될 것
입니다.
이처럼 하나의 엔티티가 상호 배타적인 속성들을 가지고 있다면 공통 속성들을
슈퍼타입으로 정의 하고 개별적인 속성들을 서브타입으로 정의 하는 것입니다.
슈퍼타입으로 정의 하고 개별적인 속성들을 서브타입으로 정의 하는 것입니다.
사원 - 이름 , 주민번호, 전화번호, 사원구분 - 수퍼타입
정규직 - 연봉 - 서브타입
임시직 - 월급, 수당 - 서브타입
Exclusive sub_category 버튼을 선택후 수퍼타입 먼저 선택후 서브타입 중 하나를
먼저 선택후 나머지도 선택
먼저 선택후 나머지도 선택
- 식별관계의 3개의 엔티티로 전환(사원, 임시직, 정규직)
교차점을 선택후 -> Supertype-Subty Identity 버튼을 선택후 마법사를 실행합니다.
- 사원엔티티로 통합
Model탭에서 Transform의 name을 delete and reverse transform메뉴를 삭제후
교차점을 선택후 ->Supertype-Subtype Rollup번튼 선택후 마법사 실행합니다.
교차점을 선택후 ->Supertype-Subtype Rollup번튼 선택후 마법사 실행합니다.
- 공통 컬럼을 가진 두개의 정규직과 임시직 엔티티로 분할
Model탭에서 Transform의 name을 delete and reverse transform메뉴를 삭제후
교차점을 선택후 ->Supertype-Subtype Rolldown 번튼 선택후 마법사 실행합니
다.
교차점을 선택후 ->Supertype-Subtype Rolldown 번튼 선택후 마법사 실행합니
다.
'Database > Oracle' 카테고리의 다른 글
[Oracle] 프로시져 생성(간단설명) (0) | 2019.07.09 |
---|---|
[Database] 논리적단계의 정규화 (0) | 2017.02.28 |
[Database] 개념적 DB모델링 (0) | 2017.02.27 |
[Database] 업무 및 요구사항 분석 (0) | 2017.02.27 |
[Database] 참조 무결성의 이해 (0) | 2017.02.27 |