본문 바로가기
IT Basic/Data

[DB] 데이터베이스 개론 - 4장 데이터 모델링

by HouseDust 2022. 1. 17.
반응형

4장, 데이터 모델링

 

데이터 모델링(data modeling) ?

현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정

 

추상화(abstraction) : 현실 세계에 존재하는 대상을 연상시킬 수 있는 중요한 데이터를 찾는 것

기린의 데이터모델링 과정

개념적 모델링(conceptual modeling) : 대상의 중요 데이터를 추출하여 개념 세계로 옮기는 작업

논리적 모델링(logical modeling) : 개념 세계의 데이터를 데이터베이스에 저장할 구조를 결정하고 이 구조로 표현하는 작업

 

데이터 모델(data model) ?

데이터 모델링을 쉽게 할 수 있도록 도와주는 도구, 데이터 모델링의 결과물을 표현하는 도구.

▶ 구성요소

- 데이터 구조(data structure) : 변하지 않고 정적

- 연산(operation) : 값이 연산에 의해 계속 변경될 수 있으므로 동적

- 제약조건(constraint) : 구조적 측면의 제약 사항 / 의미적 측면의 제약 사항

개념적 데이터 모델링 설계도에, 논리적 데이터 모델링 모델하우스에 빗대어 볼 수 있다. 

 

 

개념적 데이터 모델

 

개체-관계 모델(E-R Model : Entity-Relationship Model)

 

피터 첸(Peter Chen)이 1976년 제안한 것으로, 개체(Entity)개체 간의 관계(relationship)를 이용하여 현실 세계를 개념적 구조로 표현하는 방법. 개체-관계 모델을 이용해 그림으로 표현한 것을 개체-관계 다이어그램(Entity-Relationship Diagram)또는 E-R 다이어그램이라 한다.

 

  • 개체(Entity) : 조직을 운영하는 데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것. 개념적으로만 존재하는 것도 개체가 될 수 있다.
    개체는 다른 개체와 구별되는 이름을 가지고 있고, 각 개체만의 고유한 특성이나 상태, 즉 속성을 하나 이상 가지고 있다.
    개체 타입(entity type) : 개체를 고유의 이름과 속성들로 정의한 것
    개체 인스턴스(entity instance)/개체 어커런스(entity occurrence) : 개체를 구성하고 있는 속성이 실제 값을 가지고 실체화된 개체
    개체 집합(entity set) : 특정 개체 타입에 대한 개체 인스턴스들을 모아놓은 것
    E-R모델과 파일구조의 대응관계
  • 속성(attribute) : 개체가 가지고 있는 고유의 특성, 데이터의 가장 작은 논리적 단위
    - 단일값 속성(single-valued attribute) : 특정 개체를 구성하는 속성의 값이 하나 ex) 고객 이름 
    - 다중값 속성(multi-valued attribute) : 속성이 값을 여러 개 가질 수 있음 ex) 고객 연락처

    - 단순 속성(simple attribute) : 의미를 더는 분해할 수 없는 속성 ex) 이름, 가격
    - 복합 속성(composite attribute) : 의미를 분해할 수 있어 값이 여러 개의 의미를 포함하는 속성 ex) 주소

    - 유도 속성(derived attribute) : 값이 별도로 저장되는 것이 아니라, 기존의 다른 속성 값에서 유도되어 결정되는 속성. 유도 속성을 결정하는 속성은 저장 속성(stored attribute)이라 한다.

    - 널 속성(null attribute) : 널 값이 허용되는 속성
    ※ 널(null) 값 ? 아직 결정되지 않았거나 모르는 값. 공백이나 0과는 다르다.

    - 키 속성(key attribute) : 각 개체 인스턴스들을 식별하는 데 사용하는 속성. 둘 이상의 속성들로 구성할 수 있다. 

  • 관계(relationship) : 개체와 개체가 맺고 있는 의미 있는 연관성. 개체 집합들 사이의 대응 관계(correspondence), 즉 매핑(mapping)을 의미한다. 관계를 통해서만 개체들 간의 연관성을 이용한 업무를 처리할 수 있다.
    관계 타입(relation type) : 여러 개체(타입) 사이에서 정의되는 것
    관계 인스턴스(relation instance) : 실제 속성 값으로 구성되어 있는 특정 개체 인스턴스들 간에 맺어진 실제 관계
    ▶ 관계의 유형
    개체 타입 수 기준 : 이항 관계 / 삼항 관계 / 순환 관계
    매핑 원소의 수 - 매핑 카디널리티(mapping cardinality) 기준 : 일대일 / 일대다 / 다대다, 레이블로 표시함
    ▶ 관계 참여의 특성
    필수적 참여 관계(전체 참여 관계) / 선택적 참여 관계(부분 참여 관계)
    ▶ 관계의 종속성
    B개체가 독자적으로 존재할 수 없고, 다른 개체 A의 존재 여부에 의존적이라면 개체 B가 개체 A에 종속되어있다고 한다. 이 종속을 존재 종속(existence dependence)이라 하고, A를 강한 개체(strong entity) 혹은 오너 개체, B를 약한 개체(weak entity) 혹은 종속 개체라 한다. 약한 개체는 강한 개체의 키를 포함하여 키를 구성하며, 약한 개체를 구별해주는 속성을 구별자(delimiter) 혹은 부분 키(partial key)라고 한다.

 

논리적 데이터 모델
사용자 입장에서 E-R 다이어그램으로 표현된 개념적 구조를 데이터베이스에 저장할 형태로 표현한 논리적인 구조

  • 관계 데이터 모델(relational data model)

  • 계층 데이터 모델(hierarchical data model)
    논리적 구조가 트리(tree) 형태. 개체는 사각형, 관계는 링크(연결선)
    개체 사이에 관계를 하나만 정의할 수 있어서 관계에 이름을 붙이지 않음
    다대다 관계를 표현할 수 없고, 사이클이 존재하지 않음
    트리 구조이므로 상하관계가 존재함. 자식 개체, 부모 개체
    자연스러운 모델링이 어려움, 연산과 검색이 어려움

  • 네트워크 데이터 모델(network data model)
    논리적 구조가 그래프(graph) 또는 네트워크(network) 형태. 개체는 사각형, 관계는 화살표
    화살표는 일대다 관계만 표현 가능, 관계를 이름으로 구별함
    관계의 개체들을 오너(owner)와 멤버(member)라고 부름. 오너-멤버 관계(owner-member relationship)
    계층 데이터 모델보다는 자연스러운 모델링이 가능하지만 구조가 더 복잡하고, 연산과 검색이 더욱 어렵다

  • 그 외 객체지향 데이터 모델(object-oriented data model), 객체 관계 데이터 모델(object-oriented data model) 존재

 


참고자료

김연희, 『데이터베이스 개론 2판』, 한빛문화원(2019), p95-p128

반응형

댓글