Stack Building

[04] 관계 데이터베이스 본문

DB

[04] 관계 데이터베이스

S00ahKim 2019. 8. 6. 20:42

1. 관계 데이터 모델

관계 데이터베이스(이하 RDB)는 관계 데이터 모델에 기반을 두며, 이는 외적으로는 테이블(table) 구조이고, 이론적으로는 수학적 릴레이션을 기초로 한다.

 

테이블은 열column과 행row으로 이루어져 있는데, 각 열을 필드, 아이템 또는 애트리뷰트라고 부르고, 행을 레코드 또는 투플tuple이라고 한다. 예를 들어 "학생"이라는 테이블에 각 열이 "학번", "이름", "학년" 으로 존재한다면, "학생" 릴레이션의 애트리뷰트 값 "김수아"가 있다고 볼 수 있다.

 

관계 데이터 모델에서 가장 작은 논리적 단위는 이처럼 개개 데이터 값, 즉 애트리뷰트 값attribute이다. 이는 더 분해하려 해도 분해할 수 없어 원자값atomic value이라고도 불린다. 하나의 애트리뷰트가 취할 수 있는 같은 타입의 모든 원자값들의 집합을 그 애트리뷰트의 도메인이라고 한다. 각 애트리뷰트는 어느 한 도메인 위에서 정의되어야 하고, 그 도메인 안에서 값을 가질 수 있다. 같은 도메인의 값끼리는 비교할 수 있다. 일반적으로 편리함을 위해 도메인과 애트리뷰트 이름을 동일하게 한다. 하지만 하나의 도메인에 대해 둘 이상의 애트리뷰트가 정의될 수 있다. 다만 모든 애트리뷰트들의 이름은 반드시 달라야 한다. 만약 원자값으로만 이루어진 도메인이 있다면 단순 도메인simple domain이라고 하고, 그 위에 정의된 애트리뷰트는 단순 애트리뷰트simple attribute라고 하며, 단순 도메인의 결합으로 정의한 것은 복합 도메인composite domain과 복합 애트리뷰트라고 한다.

 

 

2. 릴레이션의 개념

릴레이션 R이 n개의 도메인 D1...Dn 위에서 정의될 때, 이 릴레이션 R은 릴레이션 스키마와 릴레이션 인스턴스로 구성된다. 스키마(또는 스킴scheme, 내포intension)는 릴레이션 이름과 애트리뷰트의 집합으로 구성되며, 각 애트리뷰트는 도메인과 대응된다. 인스턴스(또는 외연extension)는 어느 한 시점에 릴레이션 R에 포함되어 있는 투플의 집합이다. 간단히 말해 스키마는 한 RDB의 논리적 구조(정적), 인스턴스는 데이터 전체(동적, 가변)를 말한다.

 

관계 데이터 모델은 개체와 관계 모두를 릴레이션으로 표현한다. 릴레이션은 수학적 의미로 하나의 집합이며, n개의 도메인 D1...Dn 위에서 정의된 릴레이션 R은 카티션 프로덕트 D1X...XDn의 부분집합으로 정의한다. 이때 도메인의 개수 n을 차수degree라고 하고, 릴레이션에 포함된 투플의 수는 카디널리티cardinality라고 한다. 일반적으로 카디널리티는 시간에 따라 값이 변할 수 있지만 차수는 변하지 않는다.

 

 

3. 릴레이션의 특성

릴레이션이 테이블 구조로 표현되지만 성질은 매우 다르다. 릴레이션은 추상적 개념abstract concept이지만, 테이블은 구체적 표현concrete reperesentation이다.

 

(1) 유일성 uniqueness of tuples

두 개의 똑같은 투플은 한 릴레이션에 포함되 수 없다. 릴레이션은 투플을 원소로 갖는 집합이라는 정의에서 나오는 성질이다.

 

(2) 무순서성 no ordering of tuples and attributes

투플의 순서만 다르다고 해서 상이한 릴레이션이 될 수는 없다. 또한 애트리뷰트에는 순서가 없다. "상품" 릴레이션이 "이름", "가격", "할인율"로 이루어져 있다고 할 때, 이는 단지 우연한 표현일 뿐이다.

 

(3) 원자성 atomicity of attributes

한 릴레이션에 나타난 애트리뷰트 값은 논리적으로 더 이상 분해할 수 없는 단위 값이다. 값의 집합(반복 그룹repeating group)은 될 수 없으며, 이러한 릴레이션을 정규화 릴레이션이라고 한다. 관계 데이터 모델에서는 기본적으로 정규화 릴레이션만 취급한다. 비정규화 릴레이션은 분해decomposition 과정을 통해 정규화한다.

* 만일 값을 모르거나 해당되지 않아서 명세할 수 없는 경우엔 null 을 사용한다.

 

 

4. 관계 데이터베이스 개념

관계 데이터베이스 스키마는 릴레이션 스키마의 집합과 무결성 제약 조건으로 구성되어 있다. 관계 데이터베이스 인스턴스(RDB)는 스키마에 정의된 릴레이션 인스턴스들의 집합으로, 그들 모두는 무결성 제약 조건을 만족한다.

 

 

5. 데이터베이스 키

(1) 기본키

투플을 구성하는 애트리뷰트 전부를 사용하면 모든 투플을 항상 유일하게 식별할 수 있다. 그러나 실제로는 하나 또는 몇개의 애트리뷰트만 지정하여 유일하게 식별할 수 있다. 그러한 애트리뷰트 집합을 릴레이션의 키key라고 부른다.

만약 애트리뷰트 집합 K가 애트리뷰트 전체집합의 부분집합이면서 항상 유일성(투플을 유일하게 식별 가능)최소성(유일성을 만족하는 K의 어느 한 애트리뷰트를 제외하면 유일성을 잃게 됨)을 만족한다면 K를 후보키candidate key라고 부른다.

릴레이션은 적어도 하나의 후보키는 반드시 가지고 있다. 이는 릴레이션에 갱신이 일어나도 변함 없다. 데이터베이스 설계자가 지정한 하나의 후보키를 기본키primary key라고부르며, 후보키 가운데 기본키로 지정되지 않은 것은 대체키alternate key라고 부른다. 기본키로 지정된 애트리뷰트들은 모든 투플에 대해 어느 때고 null 값을 가질 수 없다는 제약을 갖는다.

 

(2) 외래키

릴레이션 R에 속한 어떤 애트리뷰트 집합 FK가 있을 때, 이 값이 반드시 어떤 릴레이션 S의 기본키일 경우 FK를 릴레이션 R의 외래키foreign key라고 한다. 이때, FK는 S를 참조한다고 하고, R은 참조 릴레이션referancing relation, S를 피참조 릴레이션referenced relation이라고 부른다. 반드시 R과 S가 상이할 필요는 없으나, 외래키와 기본키가 정의된 도메인은 같아야 한다.

 

 

6. 무결성 제약

관계 데이터 모델이 가지고 있는 무결성 제약에는 키로부터 유래되는 개체 무결성 제약과 참조 무결성 제약이 있다. 이 두 제약은 DB가 항상 만족해야만 하는 기본 규칙이며, 고도의 시스템 설계와 DB설계가 합쳐질 때 자동으로 수행될 수 있다.

 

(1) 개체 무결성 제약

기본키에 속해 있는 애트리뷰트는 언제 어느 때고 null 값을 가질 수 없다. 유일한 식별성을 잃게 할 수 있기 때문이다.

 

(2) 참조 무결성 제약

참조할 수 없는 외래키 값을 가져서는 안 된다. 기본키는 개체 식별자entity identifier이며, 외래키값은 개체 참조entity reference를 나타낸다.

 

 

7. 참고

데이터베이스론 (이석호 저)

'DB' 카테고리의 다른 글

[05] 관계대수와 관계해석  (0) 2019.08.13
[03] 데이터베이스 시스템의 구성  (0) 2019.08.02
[02] 데이터베이스 관리 시스템  (0) 2019.07.19
[01] 정보 환경  (0) 2019.07.16
OLAP과 OLTP  (0) 2019.03.16
Comments