본문으로 바로가기

[Database] 논리적 모델링

category Database/Oracle 2017. 2. 27. 17:00

논리적 데이터베이스 모델링

 
   - 개념적 단계에서 만들어진 개념적 구조로 부터 특정 DBMS가 처리할 수  있는 관계
     스키마를 생성하는 전 단계입니다.
 
   - 개념적 단계에서 만들어진 ER-Digram이 논리적 단계에서 어떤 구조로 바뀌는지
     알아봅니다.
 
   - 관계형 모델의 개념을 익힘니다.       
 
   - Mapping Rule을 이용한 관계 데이터 모델로의 변환 단계와  정규화 단계를 거칩니
    다.
 
 
1. 관계형 모델의 개념
 
    - 부모테이블과 자식테이블
 
      .관계의 주체가 부모테이블이 됩니다.
      
      .고객이 상품을 주문하다(능동형-주체)
 
      . 상품은 고객에게 주문되어진다(수동형)
 
      .주체관계로 구분이 모호한 경우 어느테이블에  데이타가 먼저 정의되어야 하는가
      로 부모와 자식테이블을  구분할 수 있습니다.
 
    - 기본키(Primary key)와 포린키(Foreign 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'를 선택 합니다.
 
 
 
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   값이 입력될 것
    입니다.
 
    이처럼 하나의 엔티티가 상호 배타적인 속성들을 가지고 있다면 공통  속성들을
    슈퍼타입으로 정의 하고 개별적인 속성들을 서브타입으로 정의 하는 것입니다.
 
     사원 - 이름 , 주민번호, 전화번호, 사원구분  - 수퍼타입
     정규직 - 연봉                                       - 서브타입
     임시직 - 월급, 수당                                - 서브타입
 
     Exclusive sub_category 버튼을 선택후 수퍼타입 먼저 선택후 서브타입 중 하나를
    먼저 선택후 나머지도 선택 
 
 
    - 식별관계의 3개의 엔티티로 전환(사원, 임시직, 정규직)
   
     교차점을 선택후 -> Supertype-Subty Identity 버튼을 선택후 마법사를 실행합니다.
 
    - 사원엔티티로 통합 
 
     Model탭에서 Transform의 name을  delete and reverse transform메뉴를  삭제후
     교차점을 선택후  ->Supertype-Subtype Rollup번튼 선택후 마법사 실행합니다. 
 
 
    - 공통 컬럼을 가진 두개의 정규직과 임시직 엔티티로 분할
 
     Model탭에서 Transform의 name을  delete and reverse transform메뉴를 삭제후
     교차점을 선택후  ->Supertype-Subtype Rolldown 번튼 선택후 마법사 실행합니
     다.