본문 바로가기
학교 전공/데이터베이스

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

by 응가1414 2023. 10. 2.

4장 데이터 모델링

4-1 데이터 모델링과 데이터 모델의 개념

4-2 개체 - 관계 모델

4-3 논리적 데이터 모델

  1. 개체-관계 모델을 이용한 모델링 방법과 개체-관계 다이어그램 작성 방법을 살펴본 후
  2. 논리적 데이터 모델의 종류와 특징을 알아보자.

4-1 데이터 모델링과 데이터 모델의 개념

추상화

  • 코끼리 : 발이 4개, 코가 길며, 몸무게는 1톤 이상이고, 코를 이용해 물건을 잡는다.

코끼리의 2단계 데이터 모델링

*개념적 모델링 (conceptual modeling *

  • 개념 세계의 데이터를 데이터베이스에 저장할 구조를 결정하고 이 구조로 표현하는 작업

*논리적 모델링 (logical modeling) *

  • 개념 세계의 데이터를 데이터베이스에 저장할 구조를 결정하고 이 구조로 표현하는 작업

*데이터 모델링 *

  • 개념적 모델링 + 논리적 모델링

*데이터 모델(data model) *

  • 데이터 모델링을 쉽게 할 수 있도록 도와주는 도구
  • 데이터 구조(data structure), 연산(operation), 제약조건(constraint)으로 구성
  • 연산: 데이터구조에 따라 개념 세계나 컴퓨터 세계에서 실제로 표현된 값들을 처리하는 작업
  • 데이터 구조: 자주 변하지 않고 정적이라는 특징
  • 제약조건: 구조적 측면의 제약 사항과 연산을 적용하는 경우 허용할 수 있는 의미적 측면의 제약사항이 있다.

*개념적 데이터 모델 *

  • 사람의 머리로 이해할 수 있도록 현실 세계를 개념적 데이터 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구
  • 개념적 데이터 모델에서 데이터 구조는 현실 세계를 개념 세계로 추상화했을 때 어떤 요소로 이루어져 있는지를 표현하는 개념적 구조
  • 개체-관계 모델 (E-R Model: Entity-RelationShip Model)

*논리적 데이터 모델 *

  • 개념적 구조를 논리적 데이터 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구
  • 모델에서 데이터 구조는 데이터를 어떤 모습으로 저장할 것인지를 표현하는 논리적 구조이다.
  • 관계 데이터 모델(relational data model)이 가장 많이 사용한다.

*데이터 모델링과 데이터 모델의 예시 *

  1. 요구 사항을 잘 반영할 수 있도록 설계도부터 꼼꼼히 그려야 한다.
  2. 완성된 설계도를 토대로 건설하기 전에 모델하우스를 지어보고 요구 사항이 제대로 반영되었는 지를 확인한다.
  3. 반영하여 설계도를 그리는 과정이 개념적 데이터 모델링이고
  4. 설계도를 그릴때 사용하는 방법이나 도구가 개념적 데이터 모델이다.
  5. 설계도를 토대로 모델하우스를 만드는 과정을 논리적 데이터 모델링으로, 모델하우스를 만들 때 사용하는 바업ㅂ이나 도구를 논리적 데이터 모델로 생각할수 있다.
  6. 모델하우스를 만들 때 사용하는 방법이나 도구를 논리적 데이터 모델로 생각할 수 있다.

데이터베이스 설계

  • 보통 개념적 데이터 모델링과 논리적 데이터 모델링을 통틀어 데이터베이스 설계라고 한다.
  • 사용하는 데이터 모델에 따라 현실 세계를 표현하는 개념적 구조나 논리적 구조의 모습이 달라진다.
  • 개념적 데이터 모델 중 대표적으로 많이 사용되는 것이

4-2 개체 - 관계 모델

개념적 데이터 모델 ( 개체-관계 모델 )

  • 개체entity와 개체 간의 관계(relationship)를 이용해 현실 세계를 개념적 구조로 표현하는 방법이다.
  • 현실 세계를 개체-관계 모델을 이용해 개념적으로 모델링하여 그림으로 표현한 것을
    • 개체-관계 다이어그램(Entity-Relationship Diagram OR E-R) 이라한다.

4-2-1 개체

*개체(entity) *

  • 현실 세계에서 조직을 운영하는 데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것을 의미한다.
  • 개체는 체념적 모델링을 하는 데 가장 중요한 요소이다.
  • 사람인 고객과 중요 데이터를 가지고 있는 사물인 책이 개체
  • 개념이나 사건처럼 개념적으로만 존재하는 것도 개체가 된다.
  • 각 개체만의 고유한 특성이나 상태, 즉 속성을 하나 이상 가지고 있다.

*개체타입(entity type) *

  • 개체를 고유한 이름과 속성들로 정의한 것

  • 개체 인스턴스(Entity instance) == 개체 어커런스(entity occurrence)
  • 개체를 구성하고 있는 속성이 실제 값을 가짐으로써 실체화된 개체
  • 개체 집합(entity set)
  • 특정 개체 타입에 대한 개체 인스턴스들을 모아 놓은 것을 개체 집합(entity set)이라 한다.
  • 개체와 속성은 파일 구조에서 레코드(record)와 필드(field)용어에 대응된다.
  • 개체 타입레코드 타입(record type)에,
  • 개체 인스턴스레코드 인스턴스(record instance)에 대응된다.

4-2-2 속성

  • 일반적으로 의미 있는 데이터의 가장 작은 놀리적 단위
  • 속성(attribute): 개체가 가지고 있는 고유한 특성
  • 속성은 일반적으로 의미 있는 데이터의 가장 작은 논리적 단위로 인식된다.
  • E-R 다이어그램에서 속성은 타원으로 표현하고, 타원 안에 속성의 이름을 표기한다.

속성을 분류할 수 있다.

4-2-2-1 단일 값 속성과 다중 값 속성 : 속성 값의 개수

*단일 값 속성 (single-valued attribute) *

  • 특정 개체를 구성하는 속성 값이 하나면
  • 고객 개체를 구성하는 이름-적립금 등의 속성은 한 명의 고객 인스턴스에 대해 하나의 값만 가지므로 단일 값 속성이다.

다중 값 속성 (multi-valued attribute)

  • 속성이 값을 여러 개 가질 수 있으면
  • 고객 개체를 구성하는 연락처 속성은 한 명의 고객 인스턴스에 대해 집 전화번호와 휴대폰 번호 등 값을 여러 개 가질 수 있으므로 다중 값 속성이다.

4-2-2-1 단순 속성과 복합 속성 : 의미의 분해 가능성

*단순 속성 (simple attribute) *

  • 의미를 분해할 수 없는 속성이다.
  • 단순 속성의 값은 의미가 하나다.

*복합 속성 (composite attribute) *

  • 의미를 분해할 수 있어 값이 여러개의 의미를 포함한다.
  • 고객 개체의 생년월일 속성도 연-월-일로 의미를 세분화할 수 있으므로 복합 속성이다.
  •  

*유도 속성 (derived attribute) == 저장 속성 (stored attribute) *

  • 값이 별도로 저장되는 것이 아니라 기존의 다른 속성 값에서 유도되어 결정되는 속성
  • 책 개체를 구성하는 가격과 할인율 속성으로 계산되는 판매 가격 속성이 유도 속성이다.
  • 저장 속성 : 실제로 값을 저장하고 있는 것은 저장 속성이고
  • 유도 속성 : 필요할 때마다 계산되므로 값을 따로 저장할 필요가 없다.

*널 속성 (null) *

  • 아직 결정되지 않았거나 모르는 값(unkown value)을 의미한다.
  • 즉 존재하지 않는 값의 경우도 널 값이라 한다.
  • 이처럼 널 값은 값을 아직 갖지 않은 것이므로 공백(blank)이나 0 (zero)과는 다르다.
  • 널 값이 허용되는 속성을 널 속성(null attribute)라 한다.
  • Ex) 한 명의 고객 개체 인스턴스의 등급 속성 값이 널이라면 고객의 등급이 아직 결정되지 않았음을 의미한다.

*키 속성 (key attribute) : 특별한 속성 (식병하는 게 사용) *

  • 키 속성 모든 개체 인스턴스의 키 속성 값이 다르므로 키 속성은 개체 집합에 존재하는 각 개체 인스턴스들을 식별하는 데 사용한다.
  • 어떤 경우에는 키를 둘 이상의 속성들로 구성하기도 한다.
  • 제약조건은 키 속성의 값이 개체 인스턴스마다 달라서 이 값으로 개체 인스턴스를 식별할 수 있어야한다.

4-2-3 관계 (relationShip)

*관계 (relationship) == 대응 관계 (correspondence) == 매핑 (mapping) *

  • 개체와 개체가 맺고 있는 의미 있는 연관성으로
  • 대응관계(correspondence), 매핑(mapping)을 의미한다.
  • 요구 사항을 개체들을 이용해 하나의 문장으로 만들었을 때 동사에 해당하는 것이 관계다.
  • Ex) "고객은 책을 구매한다." 구매가 고객과 책 개체 사이의 관계가 될 수 있다.
  • 여러 개체(타입) 사이에서 정의되는 관계 타입(relationship type)
  • 실제 속성 값으로 구성된 특정 개체 인스턴스들 간에 밎어진 실제 관계인 관계 인스턴스
  • 고객 개체와 책 개체 사이에 정의된 구매 관계는 관계 타입이 된다.
  • Ex) 정소화인 고객 개체 인스턴스와 제목 속성의 값이 데이터베이스개론인 책 개체 인스턴스 사이에 맺어진 실제 관계는 관계 인스턴스가 된다.
  • Ex) 고객이 책을 구매하면 발생하는 구매일자 결제방식 등이 구매 관계의 속성이 될 수 있다.

관계의 유형 == 매핑 카디널리티(mapping cardinality)

  • 개체 타입의 수를 기준으로 이항 관계, 삼항 관계, 순환 관계 등으로 나눈다.
  • 삼항 관계: 개체 타입 3개가 맺는 관계다.
  • 이항 관계: 개체 타입 2개가 맺는 관계
  • 순환 관계: 개체 타입 1개가 자기 자신과 맺는 관계
  • 매핑 카디널리티(mapping cardinality): 관계를 맺는 두 개체 집합에서, 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수를 의미한다.

*매핑 카디널리티 (mapping cardinality) *

  • 일대일 1:1, 일대다 1:n, 다대다 n:M 라는 세 가지 유형으로 분류할 수 있다.

*매핑 카디널리티 - 일대일 1:1 관계 *

  • 개체 A의각 개체 인스턴스가 개체 B의 개체 인스턴스 하나와 관계를 맺을 수있고
  • 개체 B의 각 개체 인스턴스도 개체 A의 개체 인스턴스 하나와 관계를 맺을 수 있다면
  • 두 개체의 관계는 일대일 관계다.

매핑 카디널리티 - 일대다 1:n 관계

  • B의 개체 인스턴스는 개체 A의 개체 인스턴스 하나와만 관계를 맺을 수 있다면 두개체는 일대다 관계다.

*매핑 카디널리티 - 다대다 n:m 관계 *

  • 개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 여러 개와 관계를 맺고
  • 개체 B의 각 개체 인스턴스도 개체 A의 개체 인스턴스 여러 개와 관계를 맺을 수 있다면
  • 두 개체는 다대다 관계다.

*관계의 참여 특성 : "필수적 참여한다 또는 전체 참여한다" , "선택적 참여한다 또는 부분 참여한다." *

  • Ex) 고객 개체와 책 개체 사이의 구매 관계에서 모든 고객이 책을 반드시 구매 해야한다. => 필수적 참여한다.
  • Ex) 고객이 구매하지 않은 책이 존재할 수 있다면 책개채가 구매 관계에서 => 선택적으로 참여한다.
  • 필수적 참여 관계는 E-R 다이어그램에서 이중선으로 표현한다.

관계의 중속성 : 약한 개체(weak entity), 강한 개체(strong entity) == 존재 종속(existence dependence)

약한 개체 == 종속 개체, 강한 개체 == 오너 개체

  • 개체 B가 독자적으로 존재할수 없고, A의 존재 여부에 의존적이라면
    • 개체 B가 개체 A에 종속되어 있다고 한다.
  • 종속을 특별히 존재 종속 (existence dependence) 이라 한다.

관계의 중속성 - 구별자(delimiter) OR 부분키 (partial key)

  • Ex) 직원 개체가 강한 개체가 되고 부양 가족 개체는 약한 개체가 된다.강한 개체인 직원 개체에 직원번호라는 키 속성이 존재한다면, 직원 번호 속성과 이름 속성을 조합하여
    • 직원의 이름과 같이 약한 개체를 구별해주는 속성을 *구별자, 부분키 *라고한다.
  • 약한 개체인 부양 가족 개체의 키를 구성할 수 있다.
  • 약한 개체는 자신이 지닌 속성만으로는 식별이 어려워 일반적으로 강한 개체의 키를 포함하여 키를 구성한다.

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

  • E-R 다이어그램은 개체-관계 모델을 이용해 현실 세계를 개념적으로 모델링한 결과물을 그림으로 표현한 것이다.
  • 사각형, 개체 간의 관계를 표현하는 마름모, 개체나 관계의 속성을 표현하는 타원, 각 요소를 연결하는 링크(연결선)로 구성 된다.
  • 일대일 1:1, 일대다 1:n, 다대다 n:m 관계를 레이블로 표기
  • 고객 개체와 책 개체 사이에는 구매 관계가 존재하고 이 관계는 다대다 n:m 관계다.
  • 출판사 개체와 책 개체 사이에는 공급 관계가 존재하고 이 관계는 일대다 1:n 관계다.

4-3 논리적 데이터 모델

4-3-1 논리적 데이터 모델의 개념과 특성

*개체-관계 모델 ==> 데이터베이스 스키마(schema) *

  • 현실 세계를 사람들의 머릿속에 그릴 수 있는 개념적인 구조로 모델링하는데 사용한다.
  • 논리적 데이터 모델링에서는 데이터베이스 관리 시스템 종류가 중요하다.
  • 논리적 모델은 논리적 데이터 모델링의 결과물이다.
  • 모델로 표현된데이터 베이스의 논리적 구조가 바로 데이터베이스스키마(schema) 다.
  • 논리적 구조는 사용하는 데이터베이스 관리 시스템에 따라 달라진다.

4-3-2 계층 데이터 모델

계층 데이터 모델(hierarchical data model : 부모개체 => 자식 개체

  • 데이터베이스의 논리적 구조가 트리(tree) 형태다.
  • 링크는 일대다 관계만 표현할 수 잇다.
  • 계층 데이터 모델은 두 개체 사이에 관계를 하나만 정의할 수 있어 다대다 관계를 직접 표현할 수 없어 별도의 개체를 추가로 생성하여 이를 표현한다.
  • EX) 책 개체와 고객 개체의 일대다 관계, 고객 개체와 구입도서 개체의 일대다 관계로 고객 개체와 책 개체의 다대다 관계를 표현한다.
  • 상위에 있는 개체를 부모 개체, 하위에 있는 개체를 자식 개체라 한다.

  • 계층 데이터 모델은 개체 사이의 관계를 정의할 때 여러 제약이 존재하기 때문에 개념적 구조를 논리적 구조로 자연스럽게 모델링하기 어려워 구조가 복잡해 질 수 있다.
  • 데이터의 삽입-삭제-수정 등을 연산하거나 원하는 데이터를 검색하기가 쉽지 않다는 단점이 있다.

4-3-3 네트워크 데이터 모델

*네트워크 데이터 모델(network data model): 오너 (owner)와 멤버 (member)라 부른다. *

  • 데이터베이스의 논리적 구조가 그래프(graph) 또틑 네트워크(network) 형태이다.
  • 네트워크 데이터 모델에서는 계층 데이터모델과 달리 두 개체 간의 관계를 여러 개 정의할 수 있어 관계를 이름으로 구별한다.

  • 네트워크 데이터 모델에서는 일대다 관계의 개체들을 각각 오너(owner)와 멤버(member)라 부븐다.

  • 네트워크 데이터 모델은 같은 개체들 사이의 관계를 2개 이상 표현할 수 있어 계층 데이터 모델보다 개념적 구조를 논리적 구조로 좀 더 자연스럽게 모델링할 수 있다.
  • 데이터의 삽입-삭제-수정 같은 연산과 데이터 검색이 계층 데이터 모델보다 더 어려워지는 문제가 발생한다.

객체지향 데이터 모델(object-oriented data model) 및 객체관계 데이터 모델 (object-relational data model)

  • 객체지향 데이터 모델 : 객체의 개념을 도입
  • 객체관계 데이터 모델: 객체지향 데이터 모델과 관계 데이터 모델의 특성을 모두 수용하는 객체 관계 데이터 모델

요약

1. 데이터 모델링

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

개념적 데이터 모델링과 논리적 데이터 모델링이 있다.

  • 개념적 데이터 모델링 : 현실 세계의 중요 데이터를 추출하여 개념 세계로 옮긴다.
  • 논리적 데이터 모델링 : 개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현한다.

2. 데이터 모델

데이터 모델링의 결과물을 표현하는 도구로, 개념적 데이터 모델과 논리적 데이터 모델이 있다.

  • 개념적 데이터 모델 : 현실 세계를 사람의 머리로 이해할 수 있도록 개념적 모델링의 결과물인 개념적 구조로 표현하는 도구다.
  • 논리적 데이터 모델 : 개념적 구조를 논리적으로 모델링하여 논리적 구조로 표현하는 도구다.

3. 개체-관계 모델

개체와 개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현하는 개념적 데이터 모델이다.

  • 개체 : 현실 세계에서 조직을 운영하는 데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것을 의미한다.
  • 속성 : 개체나 관계가 가지고 있는 고유한 특성이다.
  • 관계 : 개체와 개체가 맺고 잇는 의미 있는 연관성이다.

4. 개체-관계 다이어그램

  • 개체-관계 모델을 이용해 현실 세계를 개념적으로 모델링한 결과물을 그림으로 표현한 것이다.
  • E-R 다이어그램 이라고도 한다.
  • 기본적으로 개체를 표현하는 사각형, 개체 간의 관계를 표현하는 마름모, 개체나 관계의 속성을 표현하는 타원과 각 요소들을 연결하는 선으로 구성된다.

5. 논리적 데이터 모델

사용자 입장에서 선택한 데이터베이스 관리 시스템에 따라 E-R 다이어그램으로 표현된 개념적 구조를

다음과 같이 데이터베이스에 저장할 형태로 표현한 데이터베이스의 논리적인 구조이다.

  • 관계 데이터 모델: 데이터베이스의 논리적 구조가 2차원 테이블 형태가
  • 계층 데이터 모델 : 데이터베이스의 논리적 구조가 트리 형태다.
  • 네트워크 데이터 모델 : 데이터베이스의 논리적 구조가 그래프 형태다.