8.1 데이터의 세계
- 컴퓨터에 저장할 데이터의 구조를 논리적으로 표현하기 위해 사용하는 지능적 도구를 데이터 모델(data model)이라 한다.
- 인간이 오관을 통해 감지할 수 있는 개체(entity)로 되어 있는 현실 세계(real world)이다.
- 현실 세계에 존재하는 실체의 의미로부터 얻은 개념(concept)으로 표현한 개념 세계(conceptual world)이다.
- 개념 세계를 컴퓨터가 처리할 수 있는 데이터(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)
개체 집합 X의 각 원소는 집합 Y의 원소 하나와 관련될 수 있음과 동시에 개체 집합 Y의 각 원소도 집합 X의 원소 하나와 관련될 수 있다. - 일 대 다 (1:n)
개체 집합 X의 각 원소는 임의의 수의 Y 원소와 관련될 수 있지만 개체 집합 Y의 각 원소는 많아야 하나의 X 원소와 관련될 수 있다. 여기서 n은 0을 포함한 임의의 자연수이다. - 다 대 일 (n:1)
개체 집합 X의 각 원소는 최대 하나의 Y 원소와 관련될 수 있지만, 개체 집합 Y의 원소는 임의의 수의 X와 관련될 수 있다. - 다 대 다 (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)을 이용해서 현실 세계를 개념적으로 표현하는 방법이다.
8.5.2 개체 타입과 키 애트리뷰트
- 하나의 그 개체 집합 내에서 각 개체들이 서로 상이한 값만을 갖는 애트리뷰트가 있어야 된다는 것이다. 이러한 애트리뷰트를 키 애트리뷰트(key attribute) 또는 간단히 키(key)라 하는데, 이 값은 각 개체 인스턴스를 유일하게 사용하는데 사용된다.
8.5.3 약한 개체 타입
- 자기 자신의 애트리뷰트만으로 키를 명세할 수 없는 개체 타입을 약한 개체 타입(weak entity type)이라 한다.
- 자신의 애트리뷰트로 구성된 키를 가진 개체 타입을 강한 개체 타입(strong entity type)이라 한다.
- 강한 개체 타입의 개체는 주 개체가 되고 약한 개체 타입의 개체는 종속 개체가 된다. 약한 개체 타입에 키가 없더라도 한 특정 강한 개체가 지정되면 그와 연관된 약한 개체를 식별할 수 있지만 그 개체와 연관된 약한 개체 집합 내에서 개체를 서로 구별할 수 있는 방법도 필요하다.
- 약한 개체 타입의 구별자(discriminator)는 강한 개체가 주어졌을 때 이와 연관된 약한 개체들을 서로 구별할 수 있게 하는 애트리뷰트를 말한다. 약한 개체를 강한 개체에 연관시켜 주는 관계를 식별 관계 타입(identifying relationship type)이라 한다.
- 약한 개체 타입의 구별자를 부분키(partial key)라고도 한다. 실제로 약한 개체 타입의 키는 강한 개체 타입의 키와 약한 개체 타입의 구별자로 구성한다.
8.5.4 E-R 다이어그램 표기법
8.6 논리적 데이터 모델
- 개념적 구조를 목표 데이터베이스에 구현하기 위해서는 중간 단계로서 사용자의 입장에서 표현한 논리적 구조가 필요한데 이 구조의 기초가 데이터 모델(data model)이다.
- 관계 데이터 모델(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)이 허용되지 않으며 레코드 타입들 간에는 상하위 레벨 관계가 성립한다.
'임용 > 데이터베이스' 카테고리의 다른 글
Chapter 07 데이터 종속성과 정규화 (0) | 2023.04.18 |
---|---|
Chapter 06 SQL (0) | 2023.04.17 |
Chapter 05 관계 대수와 관계 해석 (1) | 2023.04.13 |
Chapter 04 관계 데이터베이스 (0) | 2023.04.12 |
Chapter 03 데이터베이스 시스템의 구성 (0) | 2023.04.12 |