ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [데이터베이스] 데이터 모델링 (개념적 모델)
    IT/데이터베이스 2022. 10. 6. 22:57

    본 포스팅은 "데이터베이스 개론 [2판]" 도서로 공부한 내용을 요약하기 위한 포스팅입니다.


    1. 데이터 모델링과 데이터 모델의 개념

    현실 세계에 존재하는 데이터를 컴퓨터 디지털 세계의 데이터베이스로 옮기는 변환 과정을 보통 데이터 모델링
    (Data modeling)이라 한다.

     

    1-1. 개념적 모델링 (Conceptual modeling)

      현실 세계에서 중요 데이터를 추출하고 추상화하여 개념 세계로 옮기는 작업을 데이터 모델링 과정 중에서도 개념적 모델링(Conceptual modeling)이라 한다.

     

      예를 들어 코끼리를 데이터베이스로 변환하는 과정을 생각해보자.

    데이터베이스에 저장하여 관리할 만한 가치가 있는 중요 데이터를 추출하면 '발이 4개이고, 코가 길며, 몸무게는 1톤 이상이고' 정도로 코끼리에 대한 데이터를 추상화(Abstraction)할 수 있다. 

     

      개념적 데이터 모델 중 대표적으로 많이 사용되는 것이 개체-관계 모델 (E-R Model : Entity-Relationship Model)이다.

    1-2. 논리적 모델링 (Logical modeling)

      개념적 모델링을 거친 데이터를 데이터베이스에 저장할 구조를 결정하고 이 구조로 표현하는 작업을 논리적 모델링(Logical modeling)이라 한다.

     

      논리적 데이터 모델 중 대표적으로 많이 사용되는 것이 관계 데이터 모델 (Relational data model)이다.

     

    코끼리 데이터 모델링 예시

     

    1-3. 데이터 모델 (Data model)

      앞서 설명한 데이터 모델링을 쉽게 할 수 있도록 도와주는 도구가 데이터 모델이다.

    데이터 모델은 데이터 구조(Data structure), 연산(Operation), 제약조건(Constraint)로 구성된다.

     

      앞서 설명한 내용들을 종합하여 데이터 모델링과 데이터 모델의 개념을 아파트 건축에 빗대어 설명해보자.

    아파트 건축에 앞서 사람들이 원하는 아파트를 건설하려면 먼저 사람들이 원하는 요구 사항을 잘 반영할 수 있도록 설계도부터 꼼꼼히 그려야 한다. 그런 다음, 완성된 설계도를 토대로 건설하기 전에 모델하우스를 지어보고 요구 사항이 제대로 반영되었는지를 확인해야 한다.

     

      여기서 사람들의 요구 사항을 반영하는 설계도를 그리는 과정이 개념적 데이터 모델링이고,

    설계도를 그릴 때 사용하는 방법이나 도구가 개념적 데이토 모델이다.

    설계도를 토대로 모델하우스를 만드는 과정을 논리적 데이터 모델링이고,

    모델하우스를 만들 때 사용하는 방법이나 도구를 논리적 데이터 모델로 생각할 수 있다.

     


     

    2. 개체-관계 모델

    현실 세계를 개체-관계 모델을 이용해 개념적으로 모델링하여 그림으로 표현한 것을 개체-관계 다이어그램 또는
    E-R 다이어그램이라 한다.
    개체-관계 모델을 제대로 활용하려면 개체, 속성, 관계를 이해해야 한다.

     

    2-1. 개체 (Entity)

      개체는 현실 세계에서 조직을 운영하는 데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것을 의미.

    즉, 개체는 저장할 만한 가치가 있는 중요 데이터를 가지고 있는 개념을 의미한다.

     

      개체는 다른 개체와 구별되는 이름을 가지고 있고, 각 개체만의 고유한 특성이나 상태, 즉 속성을 하나 이상 가지고 있다.

    개체를 고유의 이름과 속성들로 정의한 것을 개체 타입(Entity type)이라 한다.

     

      개체를 구성하고 있는 속성이 실제 값을 가짐으로써 실체화된 개체를 개체 인스턴스(Entity instance) 또는 개체 어커런스(Entity occurrence)라 한다.

     

      E-R 다이어그램에서는 개체를 사각형으로 표현하고 사각형 안에 개체의 이름을 표기한다.

     

    개체 타입과 개체 인스턴스의 예

     

    2-2. 속성 (Attribute)

      속성은 개체가 가지고 있는 고유의 특성이다. 속성은 그 자체만으로는 의미가 없지만 관련 있는 속성들을 모아 개체를 구성하면 하나의 중요한 의미를 표현할 수 있다. 속성은 일반적으로 의미 있는 데이터의 가장 작은 논리적 단위로 인식된다.

     

    E-R 다이어그램에서는 속성을 타원으로 표현하고, 타원 안에 속성의 이름을 표기한다.

    1. 단일 값 속성과 다중 값 속성 (Single-valued attribute & Multi-valued attribute)
      • 특정 개체를 구성하는 속성의 값이 하나면 단일 값 속성로 분류
      • 연락처 (ex. 집, 휴대폰)과 같이 속성이 여러 값을 가질 수 있으면 다중 값 속성로 분류
        E-R 다이어그램에서는 다중 값 속성을 이중 타원으로 표현한다.

    2. 단순 속성과 복합 속성 (Simple attribute & Composite attribute)
      • 단순 속성은 의미를 더는 분해할 수 없는 속성
      • 복합 속성은 생년원일과 같이 의미를 분해할 수 있어 값이 여러 개의 의미를 포함하는 경우
        E-R 다이어그램에서는 복합 속성에 가지를 쳐서 단순속성을 추가로 표현한다.

    3. 유도 속성 (Derived attribute)
      • 유도 속성은 값이 별도로 저장되는 것이 아닌 기존의 다른 속성 값에서 유도되어 결정되는 속성
        E-R 다이어그램에서는 유도 속성을 점선 타원으로 표현한다.

    4. 키 속성 (Key attribute)
      • 키 속성은 모든 개체 인스턴스이 다른 값을 가지는 속성으로 각 개체 인스턴스들을 식별하는데 사용한다.
        E-R 다이어그램에서 속성명에 밑줄을 그어 표현한다.
    5. 널 속성 (Null attribute)
      • 널 값은 데이터베이스에서 여러 가지로 중요한 의미를 지닌다.
      • 널 값은 아직 결정되지 않았거나 모르는 값을 의미함으로, 공백이나 0과는 다르다.

    2-3. 관계 (Relationship)

      관계는 개체와 개체가 맺고 있는 의미 있는 연관성으로 개체 집합들 사이의 대응관계, 즉 매핑을 의미한다.

    예를 들어 '고객은 책을 구매한다' 식의 문장에서 '고객'과 '책'은 개체가 되고 '구매'는 관계가 된다.

    관계를 통해서만 개체들 간의 연관성을 이용한 업무를 처리할 수 있다.

     

      관계도 개체처럼 속성을 가질 수 있으며, 관계를 맺음으로써 발생하는 중요한 데이터들이 관계의 속성이 된다.

    E-R 다이어그램에서 관계는 마름모로 표현한다.

     

    개체, 속성, 관계 E-R 다이어그램 표현

     

    a. 필수적 참여 관계

      개체 A와 B 사이의 관계에서, 개체 A의 모든 개체 인스턴스가 관계에 반드시 참여해야 된다면 개체 A가 관계에

    '필수적 참여한다' 또는 '전체 참여한다'라고 한다.

     

      위와 같은 관계는 데이터베이스를 구축한 후에 새로운 개체 인스턴스를 삽입하거나, 기존 개체 인스턴스를 삭제·변경할 때 제약사항으로 활용된다.

     

      E-R 다이어그램에서 필수적 참여 관계는 이중선으로 표현한다.

     

    b. 관계의 종속성

      개체 B가 독자적으로 존재할 수 없고 다른 개체 A의 존재 여부에 의존적이라면, 개체 B가 개체 A에 종속되어 있다고 한다. 이는 개체 A가 존재해야 개체 B가 존재할 수 있고 개체 A가 삭제되면 개체 B도 함께 삭제되어야 함을 의미한다.

     

      이러한 종속을 존재 종속(Existence dependence)라고 하며, 이때 다른 개체의 존재 여부에 의존적인 개체 B를 약한 개체(Weak entity)라하고 다른 개체의 존재 여부를 결정하는 개체 A를 강한 개체(Strong entity)라 한다.

     

      약한 개체는 강한 개체와의 관계에 필수적으로 참여한다는 특징이 있다.

    약한 개체는 자신이 지닌 속성만으로는 식별이 어려워 일반적으로 강한 개체의 키를 포함하여 키를 구성한다.

     

    어느 회사의 '직원' 개체와 '부양가족' 개체, '부양'이라는 관계를 예로 들어 설명해보자.
    '부양가족'이라는 개체는 '직원'이라는 개체가 존재해야만 존재할 수 있고, '부양'이라는 관계에 필수적으로 참여한다.
    특정 직원(인스턴스)이 퇴사를 하게되어 '직원' 개체를 삭제하면 해당 개체에 종속되는 '부양가족' 데이터 역시 함께 삭제된다. 이 때 '직원' 개체는 강한 개체가 되고 '부양가족'은 약한 개체가 된다.

      

    직원들의 부양가족 중에서는 이름이 같은 사람이 존재할 수 있으므로, 부양가족의 속성 중 이름만을 키로 삼을수는 없다.

    따라서 부양가족을 유일하게 식별하기 위해서는 직원의 직원번호와 같은 속성을 포함하여 키를 구성해야한다.

    (직원번호 + 이름)

      이 때 부양가족 개체 즉, 약한 개체 중 각 인스턴스를 구별해주는 속성을 구별자(Delimiter) 또는 부분키(Partial key)라고 한다.

     

    E-R 다이어그램에서 약한 개체는 이중 사각형으로 표현하고 약한 개체와 강한 개체와 맺는 관계는 이중 마름모로 표현한다.

     

     

    관계의 종속성

     

    2-4. E-R 다이어그램

     

    고객, 책, 출판사 개체로 구성된 E-R 다이어그램 예시

     

Designed by Tistory.