본문으로 바로가기

[Database] 개념적 DB모델링

category Database/Oracle 2017. 2. 27. 14:45

개념적 데이터베이스 모델링

  
   - 수집된 현실세계의 정보들을 사람들이 이해할 수 있는 명확한 형태로 표현하는 
     단계입니다.
 
   - 업무분석 단계에서 얻어진 내용을 토대로 우선 엔티티(Entity)를 추출하고 엔티티
     내의 속성(Attribute)을 구성하며 엔티티간의 관계를 정의해서 ER-Diagram을 정의
    하는 단계 입니다.
 
   - 파워포인트를 이용한 실습
 
 
 
1. ER-Diagram의 표기법 
   - Tuple : Row 
 
   - E-R Model:      
     현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로
     명확하게 표현하기 위해서 사용되고 있는 모델입니다. 
               
     Entity Type과 RelationShip Type을 기본 개념으로 현실세계를 개념적으로
     표현하는 방법입니다.
 
     사각형-개체(테이블), 둥근원-속성(컬럼), 마름모-관계(키 제약조건)

   -----------------------------------------------------------------------------------------

   

  --------------------------------------------------------------------------------------------

 
 
2. 실체(Entity = 테이블)
   - 업무 수행을 위해 데이터로 관리되어져야 하는 사람, 사물, 장소, 사건등을 실체라고
     합니다. 
 
   - 실체는 학생, 교수등 물리적으로 존재하는 유형이 될 수도 있고 과목, 학과 등과
     같이 개념적으로 존재하는 대상이 될 수 있습니다
.
   - 파악된 업무를 바탕으로 문장으로 만들어 명사 위주의 단어를 추출하여 실체를
      생성 합니다.
 
   - 실제 업무에도 없는 실체를 상상력으로 결정하지 말고 실제 존재여부를 확인한후 
    정확하게 정의 해야 합니다.
 
   - 물리적 데이터베이스에서 테이블을 말합니다. 
 
   - 각각의 실체는 인스턴스라 불리는 개별적인 객체들의 집합입니다.
 

 
       과목       <------   Entity(실체)      ----->     학과
 
    자료구조                                               컴퓨터공학과
    데이타베이스    <-- 각각의 인스턴스 -->      경영정보학과
    프로그래밍                                            국어교육과
        :                                                             :
   

 
 
3. 속성(Attribute)
 
   - 저장할 필요가 있는 실체(엔티티)에 관한 정보 입니다.
 
   - 속성은 실체의 성질, 분류, 수량, 상태, 특성, 특징 등을 나타내는 세부사항을 의미
    합니다.
 
   - 하나의 실체에 포함되는 속성의 숫자는 10개 내외가 적당합니다.
 
   - 물리적 데이터베이스에서 컬럼을 말합니다.
 
   - 속성의 유형
     . 기초속성 : 원래갖고 있는 속성으로 현업에서 기본적으로 사용되는 속성
     . 추출속성 : 기초속성을 가공처리(계산에 의해서) 얻어질 수 있는 속성
     . 설계속성 : 실제로 존재하지 않으나 시스템의 효율성을 도모하기 위해 설계자가
                    임의로 부여하는 속성
 


     
      


 
 
4. 속성 도메인(Domain)
   - 컬럼에 들어갈 수 있는 값의 범위
 
   - 속성에 대한 세부적인 업무 제약조건 및 특성을 전체적으로 정의해 주는 것을
      말합니다.
 
   - 속성의 이름, 자료의 형태, 길이, Format 형식, 허용되는 값의 제약 조건,
      유일성(Unique)여부, Null여부, 초기값, 유효값 등..
 
 
 
5. 식별자(Identifier)
   - 레코드는 절대로 중복되면 안됩니다.
 
   - Candidate Key(후보키)
     . Entity(테이블)에서 레코드를 유일(고유)하게 구분할 수 있는 속성(컬럼)들
   
   - Primary Key(기본키)
     . Candidate Key중에서 활용도가 높고 길이가 짧은 키, Not Null, Unique, Clustered
      Index
   
   - Alternate Key(대체키)
     . 후보키중에서 기본키로 선정되지 않은 키
   
   - Composite Key(복합키)
    . 하나의 속성(컬럼)으로는 레코드가 고유하게 구분이 안되서 2개 이상의 컬럼으로
      키를 구성하는 경우
    . 쿼리문이 복잡해지는 문제점이 있음
   
   - Surrogate Key(대리키)
    . 대리키는 복합키를 대신하여 사용할 수 있습니다.
    . 고유하게 구분되는 (속성)컬럼이 없고, 복합키의 구성이 난해한 경우 컬럼을 추가
      하여 키로 구성 
    . 이런 컬럼을 설계 속성 이라고 하며 그외의 일반 컬럼을 기초 속성이라고 합니다.
 
 
 
6. 관계(Relational)
   - 두 Entity간에 업무적인 연관성을 관계라고 합니다.
 
   - 관계차수란 두 Entity간에 Tuple(레코드)의 매핑 관계를 말한다.
 
  - 선택성은 두 실체간에 관계가 설정되었을때, 항상 두 실체의 모든 인스턴스 간에
    관계가 존재해야 하는지, 아니면 모든 인스턴스에 대해 존재할 필요는 없는지를 나
    타내는 부분입니다
 
  - A실체와 B실체 사이에 AB라는 관계가 성립되었다고 했을때 A의 모든 인스턴스가       AB관계에 모두 참여한다면 Mandatory라고 하며 B의 인스턴스중 일부만 참여해도
    된다면 이는 Optional이라고 합니다.
    
  - Mandatory(|)는 반드시 ~해야만 한다. 
    Optional(O)은 ~일지도 모른다로 정의 될 수 있습니다.
 
 
 
 

   

      


   
       
     
     

     



 
     다대다(N:M)관계를 개선한 테이블 구조
 
      
      고객                         주문                                            상품
     ---------         -------------------------------                -------------------- 
      이름(PK )       번호( PK)  이름(FK)   상품코드(FK)      상품코드( PK ) 상품명
     ---------         -------------------------------                -------------------- 
     홍길동            001         홍길동            A                  A            새우깡
     아로미            002         아로미            B                  B            고소미
     왕눈이            003         왕눈이            C                  C            뽀빠이
     홍길순            004         홍길동            A                  D           신새우깡
     홍길숙            005         왕눈이            C                  E            과자1
     투투               006         아로미            B                  F            과자2
 
 
                [  1:N   ]                                      [  N:1   ]
 
 
 
    
   
    


       




 
 
 7. 개념적 모델링 실습 
 
     1. 업무분석 내용을 보고 Entity 및 속성 추출
 
     2. ER-Diagram 그리기 
 

    



---------------------------------------------------------------------------------------------------------------------------



  
 -------------------------------------------------------------------------------------------------------------------------------------------------------


  


  --------------------------------------------------------------------------------------------------------------------------




--------------------------------------------------------------------------------------------------------------------------