본문 바로가기
CS/DB

[DB - 데이터베이스 개론] Chapter 04. 데이터 모델링

by 원만사 2022. 1. 17.
반응형

목차

 

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

     현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정데이터 모델링(data modeling)이라 한다. 하지만 현실 세계에 존재하는 엄청난 양의 데이터를 데이터베이스에 옮기는 것은 쉽지 않다. 데이터베이스에 저장하여 관리할 만한 가치가 있는 중요 데이터를 찾아내는 것추상화(abstraction)라고 한다. 

     

     현실 세계에서 대상에 대한 중요 데이터를 추출하여 개념 세계로 옮기는 작업개념적 모델링(conceptual modeling)이라고 한다. 그리고 개념 세계의 데이터를 데이터베이스에 저장할 구조를 결정하고 이 구조로 표현하는 작업논리적 모델링(logical modeling)이라 한다. 

     

     데이터 모델링을 쉽게 할 수 있도록 도와주는 도구가 있는데 이를 데이터 모델(data model)이라고 한다. 데이터 모델은 데이터 모델링의 결과물을 표현하는 도구로, 개념적 데이터 모델과 논리적 데이터 모델이 있다. 

    • 개념적 데이터 모델 : 사람의 머리로 이해할 수 있도록 현실 세계를 개념적 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구
    • 논리적 데이터 모델 : 개념적 구조를 논리적 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구

     

     데이터 모델은 데이터 구조(data structure), 연산(operation), 제약조건(constraint)으로 구성된다. 

    • 데이터 구조
      - 개념적 데이터 모델 : 현실 세계를 개념 세계로 추상화했을 때 어떤 요소로 이루어져 있는지를 표현하는 개념적 구조
      - 논리적 데이터 모델 : 데이터를 어떤 모습으로 저장할 것인지를 표현하려는 논리적 구조
      - 자주 변하지 않고 정적이라는 특징이 있다.

    • 연산
      - 데이터 구조에 따라 개념 세계나 컴퓨터 세계에서 실제로 표현된 값들을 처리하는 작업
      - 값이 연산에 의해 계속 변경될 수 있으므로 동적이라는 특징이 있다.

    • 제약조건
      - 구조적 측면의 제약 사항과 연산을 적용하는 경우 허용할수 있는 의미적 측면의 제약사항이 있다.

    02. 개체-관계 모델

    개체(entity)와 객체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현하는 방법 

     

    1. 개체 (entity)

    • 저장할 만한 가치가 있는 중요 데이터를 가지고 있는 사람이나 사물등을 의미한다.
    • 다른 개체와 구별되는 이름을 가지고 있고, 각 개체만의 고유한 특성이나 상태, 즉 속성을 하나 이상 가지고 있다. 
    • 개체를 고유의 이름과 속성들로 정의한 것을 개체 타입(entity type)이라 한다.
    • 개체를 구성하고 있는 속성이 실제 값을 가짐으로써 실체화된 개체를 개체 인스턴스(entity instance) 또는 개체 어커런스(entity occurrence)라 한다. 
    • 특정 개체 타입에 대한 개체 인스턴스들을 모아 놓은 것을 개체 집합(entity set)이라 한다. 데이터베이스에 실제로 저장하고 관리하는 것이 이 개체 인스턴스들의 모임인 개체 집합이라 할 수 있다.
    • 파일 구조와의 대응
      • 개체 = 레코드
      • 속성 = 필드 
      • 개체 타입 = 레코드 타입
      • 개체 인스턴스 = 레코드 인스턴스 
    • E-R 다이어그램에서 개체를 사각형으로 표현하고 사각형 안에 개체의 이름을 표기한다.

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

     

    2. 속성 (attribute)

    • 개체가 가지고 있는 고유의 특성이다.
    • 그 자체만으로는 의미가 없지만 관련 있는 속성들을 모아 개체를 구성하면 하나의 중요한 의미를 표현할 수 있다. 
    • 의미 있는 데이터의 가장 작은 논리적 단위
    • E-R 다이어그램에서 타원으로 표현하고, 타원 안에 속성의 이름을 표기한다. 

    속성의 E-R 다이어그램 표현 예

     속성은 다음과 같이 다양한 기준으로 분류할 수 있다.

    속성의 분류

     

    2.1 단일 값 속성와 다중 값 속성

    • 특정 개체를 구성하는 속성의 값이 하나면 단일 값 속성으로 분류한다. 
    • 속성이 값을 여러 개 가질 수 있으면 다중 값 속성으로 분류한다. 다중 값 속성은 E-R 다이어그램에서 이중 타원으로 표현한다.

    다중 값 속성의 E-R 다이어그램 표현 예

     

    2.2 단순 속성과 복합 속성

    • 단순 속성은 의미를 더는 분해할 수 없는 속성이다. 단순 속성의 값은 의미가 하나다. 
    • 복합 속성은 의미를 분해할 수 있어 값이 여러 개의 의미를 포함한다. 단순 속성이 여러 개 모여 만들어진 속성으로 볼 수 있다.

    복합 속성의 E-R 다이어그램 표현 예

    2.3 유도 속성

    • 값이 별도로 저장되는 것이 아니라 기존의 다른 속성 값에서 유도되어 결정되는 속성을 유도 속성이라고 한다. 
    • 이러한 유도 속성의 값을 결정하는 데 사용되는 속성을 저장 속성이라고 한다.
    • 실제로 값을 저장하고 있는 것은 저장 속성이고 유도 속성은 필요할 때마다 계산되므로 값을 따로 저장할 필요가 없다. 
    • 유도 속성은 E-R 다이어그램에서 점선 타원으로 표현한다.

    유도 속성의 E-R 다이어그램 표현 예

     

    2.4 널 속성

    • 아직 결정되지 않았거나 모르는 값 그리고 해당되는 값이 없는, 즉 존재하지 않는 값의 경우를 널 값이라고 한다.
    • 널 값이 허용되는 속성을 널 속성이라 한다. 

     

    2.5 키 속성

    • 개체 집합에 존재하는 각 개체 인스턴스들을 식별하는 데 사용되는 속성을 키 속성이라고 한다.
    • 개체 타입을 정의할 때 중요한 제약조건은 키 속성의 값이 개체 인스턴스마다 달라서 이 값으로 개체 인스턴스를 식별할 수 있어야 한다는 것이다.
    • 키 속성은 E-R 다이어그램에서 밑줄을 그어 표현한다.

    키 속성의 E-R 다이어그램 표현 예

     

    3. 관계 (relationship)

    • 개체와 개체가 맺고 있는 의미 있는 연관성
    • 개체 집합들 사이의 대응 관계, 즉 매핑을 의미한다.
    • 관계도 개체처럼 속성을 가질 수 있다.
    • E-R 다이어그램에서 마름모로 표현한다. 

    관계의 E-R 다이어그램 표현 예

     

    3.1 관계의 유형 

    • 관계에 참여하는 개체 타입의 수를 기준으로 이항 관계, 삼항 관계, 순환 관계 등으로 나눌 수 있다.
      • 이항 관계 : 개체 타입 두 개가 맺는 관계
      • 삼항 관계 : 개체 타입 세 개가 맺는 관계
      • 순환 관계 : 개체 타입 하나가 자기 자신과 맺는 관계 
    • 매핑 카디널리티관계를 맺는 두 개체 집합에서, 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수를 의미한다. 일대일(1:1), 일대다(1:n), 다대다(n:n) 세 가지 유형으로 분류할 수 있다. 

     

     

     

    - 일대일(1:1) 관계

     개체 A와 개체 B의 각 개체 인스턴스가 서로 하나와만 관계를 맺을 수 있다면 이를 두 개체의 관계가 일대일 관계에 있다고 한다. 

     

     

     

     

    

     

    - 일대다(1:n) 관계

      개체 A의 각 개체 인스턴스는 개체 B의 개체 인스턴스 여러 개와 관계를 맺을 수 있지만, 개체 B의 각 개체 인스턴스는 개체 A의 개체 인스턴스 하나와만 관계를 맺을 수 있는 경우를 말한다. 

     

     

     

     

    

     

    - 다대다(n:m) 관계

     개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 여러 개와 관계를 맺을 수 있고, 개체 B의 각 개체 인스턴스도 개체 A의 개체 인스턴스 여러 개와 관계를 맺을 수 있는 경우를 말한다.

     

     

     

     

    3.2 관계의 참여 특성

    • 개체 A의 모든 개체 인스턴스가 관계에 반드시 참여해야 된다면 개체 A가 관계에 '필수적 참여한다' 또는 '전체 참여한다'라고 한다.
    • 개체 A의 개체 인스턴스 중 일부만 관계에 참여해도 되면 개체 A가 관계에 '선택적 참여한다' 또는 '부분 참여한다'라고 한다. 
    • 필수적 참여 관계는 E-R 다이어그램에서 이중선으로 표현한다. 

    필수적 참여 관계의 E-R 다이어그램

     

    3.3 관계의 종속성

    • 개체 B가 독자적으로는 존재할 수 없고 다른 개체 A의 존재 여부에 의존적이라면, 개체 B가 개체 A에 종속되어 있다고 한다.
    • 이러한 종속을 존재 종속(existence dependence)이라 한다.
    • 다른 개체의 존재 여부에 의존적인 개체 B를 약한 개체(weak entity) 또는 종속 개체라고 한다. 
    • 다른 개체의 조재 여부를 결정하는 개체 A를 강한 개체(strong entity) 또는 오너 개체라고 한다. 
    • 강한 개체와 약한 개체는 일반적으로 일대다의 관계이며, 약한 개체는 강한 개체와의 관계에 필수적으로 참여한다는 특징이 있다. 
    • 약한 개체는 자신이 지닌 속성만으로는 식별이 어려워 일반적으로 강한 개체의 키를 포함하여 키를 구성한다. 
    • 약한 개체를 구별해주는 속성을 구별자 또는 부분키라고 한다. 
    • 약한 개체는 이중 사각형으로 표현하고 약한 개체가 강한 개체와 맺는 관계는 이중 마름모로 표현한다.

    관계 종속성의 E-R 다이어그램 표현 예

     

    4. E-R 다이어그램

    • 개체-관계 모델을 이용해 현실 세계를 개념적으로 모델링한 결과물을 그림으로 표현한 것이다. 
    • 개체를 표현하는 사각형, 개체 간의 관계를 표현하는 마름모, 개체나 관계의 속성을 표현하는 타원, 각 요소를 연결하는 링크(연결선)로 구성된다. 그리고 일대일, 일대다, 다대다 관계를 레이블로 표기한다. 

     

    03. 논리적 데이터 모델

    1. 논리적 데이터 모델의 개념과 특성

    • 선택한 DBMS에 따라 사용자 입장에서 E-R 다이어그램으로 표현된 개념적 구조를 데이터베이스에 저장할 형태로 표현한 논리적인 구조를 논리적 데이터 모델이라 한다. 
    • 즉 논리적 데이터 모델은 논리적 데이터 모델링의 결과물이고, 사용자가 생각하는 데이터베이스의 모습 또는 구조다. 
    • 논리적 데이터 모델로 표현된 데이터베이스의 논리적 구조가 바로 데이터베이스 스키마다. 
    • 데이터베이스에 있는 데이터들 간의 관계를 표현하는 방법에 따라 다양한 논리적 데이터 모델이 존재한다.

     

    2. 계층 데이터 모델 (hierarchical data model)

     

    계층 데이터 모델의 예

    • 데이터베이스의 논리적 구조가 트리 형태다. 
    • 개체는 사각형으로 나타내고 개체들 간의 관계는 링크(연결선)로 나타내는데, 링크는 일대다 관계만 표현할 수 있다.
    • 두 개체 사이에 관계를 하나만 정의할 수 있어 관계에 이름을 붙여 구별할 필요가 없다. 
    • 다대다 관계를 직접 표현할 수 없어 별도의 개체를 추가로 생성하여 이를 표현한다. 위의 그림에서는 구입도서 개체가 이에 해당한다. 
    • 위의 그림의 출판사 개체처럼 루트 역할을 하는 개체가 존재하고 사이클이 존재하지 않는다. 
    • 일대다 관계를 맺는 개체들 사이에는 상하 관계가 성립한다. 상위에 있는 개체를 부모 개체, 하위에 있는 개체를 자식 개체라 한다. 
    • 트리 구조의 특성상 부모 개체 하나가 자식 개체를 여러 개 가질 수 있지만, 모든 자식 개체는 부모 개체를 하나만 가질 수 있다는 제약 사항이 존재한다. 
    • 개체 사이의 관계를 정의할 때 여러 제약이 존재하기 때문에 개념적 구조를 논리적 구조로 자연스럽게 모델링하기 어려워 구조가 복잡해질 수 있다. 
    • 데이터의 삽입, 삭제, 수정 등의 연산이나, 원하는 데이터를 검색하기 쉽지 않다는 단점이 있다. 

     

    3. 네트워크 데이터 모델 

    네트워크 데이터 모델의 예

    • 데이터베이스의 논리적 구조가 그래프(grpah) 또는 네트워크(network) 형태다.
    • 개체는 사각형으로 나타내고 개체들 간의 관계는 화살표로 나타내는데, 화살표는 일대다 관계만 표현할 수 있다. 
    • 두 개체 간의 관계를 여러 개 정의할 수 있어 관계를 이름으로 구별한다. 
    • 일대다 관계의 개체들을 각각 오너(owner)와 멤버(member)라 부르고, 이들 사이의 관계를 오너-멤버 관계라 부른다. 
    • 오너 개체 하나가 멤버 개체 여러 개와 관계를 맺을 수 있고 멤버 개체도 오너 개체 여러 개와 관계를 맺을 수 있다. 
    • 같은 개체들 사이의 관계를 두 개 이상 표현할 수 있어 계층 데이터 모델보다 개념적 구조를 논리적 구조로 좀 더 자연스럽게 모델링할 수 있다.
    • 그러나 계층 데이터 모델보다 구조가 훨씬 복잡해질 수 있어, 데이터의 삽입, 삭제, 수정 같은 연산과 데이터 검색이 계층 데이터 모델보다 더 어려워지는 문제가 발생한다. 

     

    Reference

     

    데이터베이스 개론 - 교보문고

    [요약]①데이터베이스 기초 이론 : 1장에서 데이터베이스를, 2장에서 DBMS를 소개합니다. 3장에서는 이들을 조합한 데이터베이스 시스템을 소개합니다.②데이터 모델과 연산 : 4장에서 데이터 모

    www.kyobobook.co.kr

     

    반응형

    댓글