임용/데이터베이스

Chapter 08 데이터 모델링

뚜비히히 2023. 4. 20. 20:59

8.1 데이터의 세계

  • 컴퓨터에 저장할 데이터의 구조를 논리적으로 표현하기 위해 사용하는 지능적 도구를 데이터 모델(data model)이라 한다. 

데이터에 대한 3개의 세계

  1. 인간이 오관을 통해 감지할 수 있는 개체(entity)로 되어 있는 현실 세계(real world)이다.
  2. 현실 세계에 존재하는 실체의 의미로부터 얻은 개념(concept)으로 표현한 개념 세계(conceptual world)이다.
  3. 개념 세계를 컴퓨터가 처리할 수 있는 데이터(data)로 표현한 컴퓨터 세계(computer world)이다. 
  • 현실 세계에 대한 인식을 추상적 개념(abstract concepts)으로 표현하는데 이 과정을 개념적 모델링(conceptual modeling)이라 하고, 이 개념적 모델링으로부터 얻은 결과를 개념적 구조(conceptual structure)라 한다. 
  • 개념적 구조를 구성하는 빌딩 블록은 현실 세계의 개체들을 추상화시킨 개체 타입(entity type)이다.
  • 개체 타입은 이 타입에 속하는 개체들의 공통적인 특성을 나타내는 속성(attribute) 이름들로 표현한다. 
  • 개념적 구조로부터 컴퓨터가 이해하는 빌딩 블록이 되는 레코드 타입(record type)을 기초로 한 논리적 개념(logical concepts)을 이용하요 어떤 논리적 구조(logical structure), 즉 데이터 모델(data model)로 표기하는 것이 필요한데 이 변환 과정을 데이터 모델링(data modeling)이라 한다. 
  • 현실 세계를 논리적으로 표현한 이 논리적 구조는 컴퓨터의 입장에서 보면 논리적 데이터 구조(logical data structure)가 된다. 

데이터베이스와 현실 세계

  • 논리적 데이터 구조가 결정되면 컴퓨터가 접급할 수 있는 저장 장치 위에 데이터가 표현될 수 있도록 물리적 데이터 구조(physical data structure)로 변환시켜야 되는데 이 과정을 데이터 구조화(data structuring)라 한다. 

8.2 데이터 모델의 개념

  • 현실 세계를 데이터베이스로 표현하기 위해서는 적어도 개념적인 구조와 논리적인 구조를 거쳐 실제 데이터를 저장할 수 있는 물리적 구조로 변환시켜야 한다. 이 모든 과정을 총칭하여 보통 데이터베이스 설계(database design)라 한다.
  • 개념적 데이터 모델(conceptual data model)은 속성들로 기술된 개체 타입(entity type)과 이 개체 타입들 간의 관계를 이용하여 현실 세계를 표현하는 방법이고, 논리적 데이터 모델(logical data model)은 데이터 필드로 기술된 레코드 타입(record type)과 이 레코드 타입들 간의 관계를 이용하여 현실 세계를 표현하는 방법이다. 
  • 구조(structure)는 데이터베이스에 표현될 대상으로서의 개체 타입과 이들 관의 관계(relationship)를 명세한 것이다. 구조는 정적 성질(static properties)을 나타낸다고 볼 수 있다.
  • 연산(operation)데이터베이스에 표현된 개체 인스턴스를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구가 된다. 연산은 데이터베이스의 동적 성질(dynamic properties)을 나타낸다.
  • 제약조건(constraint)은 데이터베이스에 허용될 수 있는 개체 인스턴스에 대한 논리적 제약을 명세한 것이다. 데이터 조작의 한계를 표현한 규정이 된다. 
  • 하나의 DBMS는 하나의 논리적 데이터 모델만을 구현할 수 있다. 이러한 데이터 모델 간의 주요 차이점은 데이터 요소 간의 관계(relationship)를 표현하는 방식에 있다.

8.3 개체 타입

  • 개체 타입(entity type)은 그 이름과 애트리뷰트들로 정의되고 애트리뷰트들은 그 개체의 특성을 기술한다. 애트리뷰트들 중에는 개체를 유일하게 식별하는 기능을 갖도록 특별히 지정된 것도 있다.
  • 개체 타입은 묵시적으로 같은 애트리뷰트로 표현되는 개체 인스턴스의 집합을 나타내기도 하는데, 어느 특정 개체 타입에 대한 인스턴스들의 집합을 개체 집합(entity set)이라 한다. 

복합 애트리뷰트와 단순 애트리뷰트

  • 단순 애트리뷰트(simple attribute)는 더 이상 작은 구성요소로 분해할 수 없는 애트리뷰트이다.
  • 복합 애트리뷰트(composite attribute)는 몇 개의 기본적인 단순 애트리뷰트들로 분해할 수 있는 애트리뷰트이다.

복합 애트리뷰트

단일 값 애트리뷰트와 다중 값 애트리뷰트

  • 대부분의 애트리뷰트들은 특정 개체에 대해 하나의 값을 갖는데 이런 애트리뷰트를 단일 값 애트리뷰트(single-valued attribute)라 한다. 
  • 반면에 어떤 애트리뷰트는 어느 한 개체에 대해서 몇 개의 값을 가지고 있을 수 있는 데 이러한 애트리뷰트를 다중 값 애트리뷰트(multivalued attribute)라 한다. 

유도 애트리뷰트와 저장 애트리뷰트

  • 어떤 애트리뷰트의 값은 다른 관련된 애트리뷰트나 개체가 가지고 있는 값으로부터 유도되어 결정되는 경우가 있는데 이런 애트리뷰트를 유도 애트리뷰트(derived attribute)라 한다. 
  • 예를 들어 과목별 평균 성적을 표현하는 과목-성적 개체 타입이 평균 성적 애트리뷰트를 포함하고 있다고 하자. 이때 평균 성적 애트리뷰트가 유도 애트리뷰트고 이를 위해 사용된 성적 애트리뷰트를 저장 애트리뷰트(stored attribute)라 한다. 

널 애트리뷰트

  • 널 값(null value)은 어떤 개체 인스턴스가 어느 특정 애트리뷰트에 대한 값을 가지고 있지 않을 때 이를 명시적으로 표시하기 위해 사용된다. 이 널 값을 갖는 애트리뷰트를 널 애트리뷰트(null attribute)라 한다. 

8.4 관계 타입

8.4.1 관계 타입과 인스턴스

  • 관계 타입은 개체 타입의 모든 인스턴스들, 즉 개체 집합(entity set)들 사이의 대응(correspondence), 즉 사상(mapping)을 말한다. 
  • 관계 집합(relationship set)은 개체 집합과 개체 집합 간에 실제로 나타나 있는 관계 인스턴스를 총칭한다.

등록 관계 타입
등록 관계 인스턴스


8.4.2 관계 타입의 유형

  1. 일 대 일 (1:1)
    개체 집합 X의 각 원소는 집합 Y의 원소 하나와 관련될 수 있음과 동시에 개체 집합 Y의 각 원소도 집합 X의 원소 하나와 관련될 수 있다.
  2. 일 대 다 (1:n)
    개체 집합 X의 각 원소는 임의의 수의 Y 원소와 관련될 수 있지만 개체 집합 Y의 각 원소는 많아야 하나의 X 원소와 관련될 수 있다. 여기서 n은 0을 포함한 임의의 자연수이다.
  3. 다 대 일 (n:1)
    개체 집합 X의 각 원소는 최대 하나의 Y 원소와 관련될 수 있지만, 개체 집합 Y의 원소는 임의의 수의 X와 관련될 수 있다.
  4. 다 대 다 (n:m)
    개체 집합 X의 각 원소는 임의의 수의 개체 집합 Y 원소와 관련될 수 있고 또 개체 집합 Y의 각 원소도 임의의 수 X 원소와 관련될 수 있다. 

8.4.3 관계 타입의 특성

  • 개체 집합 A와 B 사이에 정의된 A-B 관계에서 개체 집합 A의 모든 개체가 이 A-B 관계에 참여해야 된다면 개체 집합 A는 A-B 관계에서 전체 참여(total participation)라 하고 일부 개체만 참여해도 된다면 부분 참여(partial participation)라 한다. 
  • 어떤 개체 b의 존재가 개체 a의 존재에 달려 있다면 b는 a에 존재 종속(existence dependence)이라고 한다. 이것은 만일 a를 삭제한다면 개체 b도 삭제해야 된다는 제약이 된다.
  • 이때 a를 주 개체(dominanty entity)라 하고 b를 종속 개체(subordinate entity)라 한다. 

대출 상환 관계(주개체 : 대출, 종속개체 : 상환)


8.5 E-R 모델

8.5.1 E-R 다이어그램

  • 개체-관계 모델(Entity-Relationship model) 또는 E-R 모델은 1976년 Peter Chen이 제안한 것으로 기본적으로 개체 타입(entity type)과 이들 간의 관계 타입(relationship type)을 이용해서 현실 세계를 개념적으로 표현하는 방법이다.

교수/학생/과목/관계를 표현한 E-R 다이어그램


8.5.2 개체 타입과 키 애트리뷰트

  • 하나의 그 개체 집합 내에서 각 개체들이 서로 상이한 값만을 갖는 애트리뷰트가 있어야 된다는 것이다. 이러한 애트리뷰트를 키 애트리뷰트(key attribute) 또는 간단히 키(key)라 하는데, 이 값은 각 개체 인스턴스를 유일하게 사용하는데 사용된다. 

8.5.3 약한 개체 타입

  • 자기 자신의 애트리뷰트만으로 키를 명세할 수 없는 개체 타입을 약한 개체 타입(weak entity type)이라 한다.
  • 자신의 애트리뷰트로 구성된 키를 가진 개체 타입을 강한 개체 타입(strong entity type)이라 한다.
  • 강한 개체 타입의 개체는 주 개체가 되고 약한 개체 타입의 개체는 종속 개체가 된다. 약한 개체 타입에 키가 없더라도 한 특정 강한 개체가 지정되면 그와 연관된 약한 개체를 식별할 수 있지만 그 개체와 연관된 약한 개체 집합 내에서 개체를 서로 구별할 수 있는 방법도 필요하다.
  • 약한 개체 타입의 구별자(discriminator)는 강한 개체가 주어졌을 때 이와 연관된 약한 개체들을 서로 구별할 수 있게 하는 애트리뷰트를 말한다. 약한 개체를 강한 개체에 연관시켜 주는 관계를 식별 관계 타입(identifying relationship type)이라 한다. 
  • 약한 개체 타입의 구별자를 부분키(partial key)라고도 한다. 실제로 약한 개체 타입의 키는 강한 개체 타입의 키와 약한 개체 타입의 구별자로 구성한다. 

대출 상환 관계의 E-R 다이어그램


8.5.4 E-R 다이어그램 표기법


8.6 논리적 데이터 모델 

  • 개념적 구조를  목표 데이터베이스에 구현하기 위해서는 중간 단계로서 사용자의 입장에서 표현한 논리적 구조가 필요한데 이 구조의 기초가 데이터 모델(data model)이다. 

E-R 다이어그램과 데이터 모델

  • 관계 데이터 모델(relational data model)은 일반 사용자로 하여금 데이터베이스가 릴레이션(relation), 즉 테이블(table)의 집합으로 되어 있다고 생각하게 한다. 특히 이 관계 데이터 모델은 데이터베이스를 구성하는 개체와 관계가 모두 통일적으로 테이블로 표현한다는 특성을 가지고 있다.

관계 데이터 모델

  • 학생, 교수, 과목 테이블은 개체 집합을 나타내는 개체 릴레이션(entity relation)이라 하고 지도, 등록, 강의와 같이 개체 간의 관계를 나타내는 테이블은 관계 릴레이션(relationship relation)이라 한다. 
  • 관계 데이터 모델에서는 개체와 관계가 모두 통일적으로 릴레이션(테이블)으로 표현되었다.
  • 위 그림은 개체와 관계에 대한 릴레이션을 명세한 릴레이션 스키마(relation schema)이다.네트워크 데이터 모델과 계층 데이터 모델은 개념적으로 데이터 구조도(data structure diagram)로 설명할 수 있다.
  • 이 데이터 구조도는 레코드 타입을 나타내는 사각형과 두 레코드 타입 간의 관계를 나타내는 이름을 가진 화살표(arc)로 표현된 다이어그램이다. 
  • 이 활사표는 레코드 타입 간의 일 대 다(1:n)의 관계를 의미한다. 
  • 이 데이터베이스 스키마를 데이터 구조도로 표현한 것이 스키마 다이어그램(schema diagram)이 되는 것이다.

네트워크 데이터 모델

  • 이 네트워크 데이터 모델에서는 이 일 대 다(1:n) 관계에 연관된 두 레코드 타입들을 각각 오너(owner), 멤버(member)라 하고 이들 간의 관계를 오너-멤버 관계(owner-memeber relationship)라고 한다. 

 

계층 데이터 모델

  • 계층 데이터 모델(hierarchic al data model)은 스키마 다이어그램, 즉 데이터베이스의 논리적 구조를 표현한 데이터 구조도가 트리(tree) 형태인 것이다. 
  • 이 구조도는 사이클(cycle)이 허용되지 않으며 레코드 타입들 간에는 상하위 레벨 관계가 성립한다.