4.1 관계 데이터 모델
- 관계 데이터 모델(relational data model)은 1970년에 IBM의 E. F. Codd에 의해 처음 제안되었다. 이것은 외적으로 통일적이고 단순한 테이블 형태(tabular form)의 구조로 모든 데이터를 표현하지만 이론적으로는 수학적인 릴레이션(mathematical relation)을 기초로 하고 있다.
- 통상적인 테이블의 개념은 관계 데이터베이스 시스템이 기반으로 하고 있는 관계 데이터 모델 환경 하에서 사용하는 학술적인 용어와 다르다.
- 테이블은 열(column)과 행(row)으로 이루어져 있다. 열을 필드(field) 또는 아이템(item)이라 하고, 행을 레코드(record)라고도 한다. 또한 테이블의 열(column), 즉 필드는 애트리뷰트(attribute)라 하고 하나의 레코드를 나타내는 행(row)은 튜플(tuple)이라 한다.
- 관계 데이터 모델에서는 데이터 값들을 더 분해하려 해도 분해할 수 없는 원자 값(atomic value)만을 허용한다.
- 하나의 애트리뷰트가 취할 수 있는 같은 타입의 모든 원자 값들의 집합을 그 애트리뷰트의 도메인(domain)이라 한다.
- 원자 값으로 된 도메인을 단순 도메인(simple domain)이라 하고, 이 단순 도메인 위에 정의된 애트리뷰트를 단순 애트리뷰트(simple attribute)라고 한다.
- 년(YEAR), 월(MONTH), 일(DAY)이라는 세 개의 단순 도메인들을 <년, 월, 일>로 결합하여 별개의 일자(DATE)라는 도메인으로 정의하는 경우도 있다. 이러한 경우에 일자(DATE)를 복합 도메인(composite domain)이라 하고, 이 복합 도메인으로 정의된 애트리뷰트를 복합 애트리뷰트(composite attribute)라 한다.
4.2 릴레이션 개념
- 릴레이션은 개체(entity)를 표현하는 개체 릴레이션(entity relation)과 관계(relationship)를 표현하는 관계 릴레이션(relationship relation으로 구분할 수 있다.
- 릴레이션 R의 정의에서 사용된 도메인(애트리뷰트)의 개수, 즉 n을 릴레이션 R의 차수(degree)라 한다.
- 릴레이션에 포함되어 있는 튜플의 수를 그 릴레이션의 카디널리티(cardinality)라 한다.
- 릴레이션 인스턴스와 도메인은 모두 한 타입의 값으로 구성되지만 도메인은 그 내용이 변하지 않는 정적인 성질을 갖는 반면, 릴레이션 인스턴스는 그 내용이 항상 변할 수 있기 때문에 동적이라는 차이점이 있다.
4.3 릴레이션의 특징
- 한 릴레이션에 포함된 튜플들은 모두 상이하다. 이것을 튜플의 유일성(uniqueness of tuples)이라 한다.
- 한 릴레이션에 포함되어 있는 튜플 사이에는 순서가 없다. 이것을 튜플의 무순서성(no ordering of tuples)이라 한다.
릴레이션과 테이블의 차이는 추상적 개념(의미)과 이를 외부로 나타내는 구체적 표현의 차이로서 릴레이션(relation)은 추상적 개념(abstract concept)이고 테이블(table)은 이 릴레이션을 외부로 기술하는 하나의 구체적 표현(concrete representation)인 것이다. - 한 릴레이션을 구성하는 애트리뷰트 사이에는 순서가 없다. 이것을 애트리뷰트의 무순서성(no ordering of attribte)이라 한다. 이 성질은 한 릴레이션의 스키마가 일정 수의 애트리뷰트 집합으로 정의되는 데서 나오는 결과인 것이다.
- 모든 애트리뷰트 값은 원자 값(atomic value)이다. 이것을 애트리뷰트의 원자성(atomicity of attribute)이라 한다. 이 성질이 의미하는 것은 한 릴레이션에 나타난 애트리뷰트 값은 논리적으로 더 이상 분해할 수 없는 원자 값, 즉 처리상의 단위 값(unit value)이라는 것이다.
- 반복 그룹(집합)을 애트리뷰트 값으로 허용하지 않는 릴레이션을 정규화 릴레이션(normalized relation)이라 한다.
- 널 값도 관계 데이터 모델에서는 원자 값으로 취급한다.
4.4 관계 데이터베이스 개념
- 관계 데이터베이스 스키마(relational database schema)는 릴레이션 스키마의 집합과 무결성 제약 조건으로 구성된다.
- 사용자의 관점에서 보면 관계 데이터베이스는 시간에 따라 그 내요이 변할 수 있는 테이블 형태로 데이터베이스를 표현한 것이 된다.
4.5 데이터베이스 키
4.5.1 기본 키
- 튜플을 유일하게 식별할 수 있는 애트리뷰트 집합을 그 릴레이션이 키(key)라고 한다.
- 애트리뷰트 집합, A(={A1, A2, ..., An})로 구성된 릴레이션 R, 즉 R(A1, A2, ..., An)을 가정해 보자. 만일 릴레이션 R의 한 애트리뷰트 집합 K(={Ai, Aj, ..., Ak})가 애트리뷰트 집합 A의 부분 집합(K⊆A)이면서 항상 다음과 같은 두 성질을 만족한다면 이 K를 릴레이션 R의 후보 키(candidate key) 라고 한다.
- 유일성(uniqueness) : 릴레이션에 있는 모든 튜플에 대해 K(={Ai, Aj, ..., Ak})의 값 <vi, vj, ..., vk>는 모두 상이하고 유일하다.
- 최소성(minimality) : 유일성을 가진 K가 둘 이상의 애트리뷰트로 구성되어 있을 때 어느 한 애트리뷰트라도 제외시키는 경우에는 튜플의 유일성이 깨어진다. 즉, K는 모든 튜플들을 유일하게 식별하는 데 꼭 필요한 애트리뷰트들로만 구성된다.
- 유일성을 만족하지만 최소성을 만족하지 못한 애트리뷰트 집합을 슈퍼 키(superkey)라고 한다.
- 릴레이션에서 기본적으로 튜플을 식별하기 위한 도구로 데이터베이스 설계자가 지정한 하나의 후보 키를 기본 키(primary key)라 한다. 릴레이션에 하나의 후보 키만 있는 경우에는 기본 키로 지정하는데 아무런 문제가 없지만, 만일 이 후보 키가 둘 이상 있는 경우에는 그 중에서 어느 하나를 기본 키로 지정할 수 밖에 없다. 기본 키로 지정되지 않은 나머지 후보 키들을 대체 키(alternate key)라 한다.
4.5.2 외래 키
- 릴레이션 R에 속한 어떤 애트리뷰트 집합 FK가 있다고 하자. 그런데 만일 이 FK의 값은 반드시 어떤 릴레이션 S의 기본 키 값이어야 한다고 할 때 이 FK를 릴레이션 R의 외래 키(foreign key)라 한다.
- 애트리뷰트 집합 FK는 릴레이션 S를 참조reference)한다고 하고 릴레이션 R을 참조 릴레이션(referancing relation), 릴레이션 S를 피 참조 릴레이션(referenced relation)이라 한다. 이때 릴레이션 R과 릴레이션 S는 반드시 서로 상이해야 하는 것은 아니다. 그러니 외래 키와 기본 키가 정의된 도메인은 같아야 한다.
4.6 무결성 제약
4.6.1 개체 무결성 제약
- 개체 무결성 제약(entity integrity constraint)이란 기본 키에 속해 있는 애트리뷰트는 언제 어느 때고 널 값을 가질 수 없다는 것을 말한다.
4.6.2 참조 무결성 제약
- 참조 무결성 제약(referential integrity constraint)이란 릴레이션은 참조할 수 없는 외래 키 값을 가져서는 안 된다는 것을 말한다.
'임용 > 데이터베이스' 카테고리의 다른 글
Chapter 06 SQL (0) | 2023.04.17 |
---|---|
Chapter 05 관계 대수와 관계 해석 (1) | 2023.04.13 |
Chapter 03 데이터베이스 시스템의 구성 (0) | 2023.04.12 |
Chapter 02 데이터베이스 관리 시스템 (0) | 2023.04.11 |
Chapter 01 정보 환경 (0) | 2023.04.10 |