1. 관계형 자료 모델
자료모델이란 기본자료를 저장하는데 사용되는 구조(structure), 저장되는 자료가 항상 지켜야 할 무결성 제약조건(integrity constraint), 자료를 처리할 수 있는 컴퓨터 프로그램(computer program)의 사항을 정의할 수 있는 언어이다. 관계형 자료 모델은 속성(attribute), 행(tuple), 테이블(relation)을 사용하여 데이터베이스 구조를 정의한다. 컴퓨터 프로그램은 데이터베이스로부터 자료를 변경시키지 않고 추출 가능하고(검색, query), 데이터베이스의 내용을 변경 가능하다(갱신, update).
2. 테이블, 행 필드
관계형 자료모델에서 데이터베이스는 테이블(table 또는 relation)의 집합이라 할 수 있다. 테이블은 행(tuple 또는 record)의 집합으로서 비슷한 모양의 행의 집합이라 할 수 있다. 여기에서 행은 일정한 개수의 필드(field 또는 attribute)로 구성된다. 같은 테이블에 포함되는 모든 행은 같은 개수의 필드를 갖고 있다. 테이블은 행렬 형태의 구조로 표현할 수 있다.
하나의 필드는 각각의 행에 값이 들어가며, 이것을 필드값(attribute value)이라 한다. 하나의 테이블에 속하는 모든 행은 반드시 같은 필드로 구성되어 있다. 필드값은 각각 다를 수 있다.
여기에서 '비슷한 모양의 행'의 의미를 좀 더 살펴본다. 각각의 행은 동일한 필드를 갖고 모든 필드값은 같은 속성영역에서 오는 값이라는 의미이다. 속성 영역(attribute domain)이란 정수의 집합 또는 실수의 집합과 유사하게 여러가지 원시 값들의 집합을 의미한다. 속성 영역이 문자열로 정의되었다면 모든 값은 일련의 문자로 표현되어야 한다. 어떠한 종류의 영역이 존재하는지는 DBMS의 종류에 따라 다르지만, 대부분의 경우 정수(integer), 실수(real), 날짜(date), 참/거짓(true/false)은 지원한다.
테이블을 생성하기 위해서는 어떠한 종류의 행을 지정할지 정해야 한다. 즉 테이블의 이름, 필드의 종류, 필드에 대한 속성영역을 정의해야 한다. 이러한 방식의 테이블 정의를 가리켜 그 테이블에 대한 테이블 스키마(relation schema)라 한다. 테이블 스키마의 정의는 데이터베이스의 설계 과정에 있어서 가장 중요한 작업이라 할 수 있다. 각각의 테이블 스키마를 합쳐서 데이터베이스 스키마라고 한다.
테이블 스키마는 안정되어 있으며 거의 변경되지 않는다. 반면 테이블에 속해있는 행은 자주 변경되며, 수시로 새로운 행이 삽입되거나 기존의 행이 삭제되거나 값을 변경할 수 있다. 어느 시점에서 테이블에 있는 행의 집합을 테이블 인스턴스(table instance)라 한다. 행의 개수는 항상 유한하며 언제든지 행의 개수를 계산 가능하다. 어떠한 테이블 인스턴스든 간에 항상 테이블 스키마의 합당한 행만 포함될 수 있다.
3. 행과 행의 연결
잘 설계된 데이터베이스에는 여러 정보들이 저장된다. 저장된 행에는 우리가 관심있는 사실들이 기록되어 있다. 어떠한 것에 관심이 있는지 아니면 관계가 있는지, 따라서 무엇을 저장할 것인지는 데이터베이스의 목적에 달려 있다. 예를 들어 지적 데이터베이스의 목적은 필지의 소유내역이다. 기본 단위는 필지, 등기 그리고 소유자이며 각각에 대해 세 가지 독립된 테이블로 저장하였다.
데이터베이스 시스템은 특히 대량의 자료를 저장하는데 유리하다. 테이블 당 수 만개의 행이 들어있는 데이터베이스가 있다고 가정한다. 이러한 매우 큰 테이블의 경우 특정한 행을 육안으로 검사해서 원하는 내용을 찾는 것은 불가능하다. DBMS는 수많은 행을 신속하게 검색할 수 있는 기능을 제공한다. 이러한 기능을 구현하기 위해서 관계형 자료모델에서는 키(key)라는 개념을 사용한다.
하나의 테이블의 키는 하나 이상의 필드로 구성된다. 이러한 키를 사용하면 각각의 행을 유일하게 구분이 가능하다. 어떠한 특정한 키 값이 존재한다면 단 하나의 행을 탐지할 수 있다는 의미이다.
모든 테이블에는 키가 존재한다. 키는 여러 개의 필드로 구성될 수 있지만 키가 커지게 되면 어떤 행을 찾기 위해 모든 속성을 입력하여야 하므로 다루기가 어려워진다. 이러한 이유로 인해 키를 구성하는 필드는 적을 수록 좋다.
경우에 따라서 키를 두 개의 필드로 구성할 수도 있다. 지적 데이터베이스를 예를 든다면 하나의 필지에 대해 여러 개의 등기목록이 있을 수 있고, 한 사람이 여러 개의 등기를 소유할 수 있으므로 필지와 소유자 필드 모두가 필요하다. 면적과 같은 필드는 키가 될 수 없는데, 이는 면적이 동일한 필지가 존재할 수 있기 때문이다.
행은 다른 행의 키 값을 저장함으로써 다른 행을 참조할 수 있다. 하나의 테이블 인스턴스에서 두 개의 행이 동일한 외부 키를 가질 수 있다. 따라서 외부키는 외부키가 존재하는 테이블에서는 주 키가 될 수 없다.
4. 자료무결성에 대한 세 가지 법칙
DBMS에서는 저장하는 자료의 정확성을 보증할 수 있는 기능이 있다. 자료의 정확성을 자료 무결성이라 한다. 관계형 자료모델과 관련하여 어떠한 데이터 인스턴스던 반드시 지켜야 하는 자료무결성에 대한 법칙이 세 가지 존재한다.
우선 키의 유일성(Key Uniqueness)이다. 어떤 테이블에 속하는 어떠한 행의 키 값은 같은 테이블에 속한 다른 행의 키 값과 반드시 달라야 한다. 키의 의미가 유일한 식별자라는 의미이므로 주키는 중복되어서는 안된다.
다음으로 키의 무결성(Key Intrgrity)이다. 어떠한 테이블 인스턴스의 모든 행에 대하여 키 값은 항상 존재해야 한다. 즉, 키 값을 공백으로 두어서는 안된다. 이 법칙은 첫번째 법칙과 마찬가지로 절대로 위반되어서는 안된다.
마지막으로 참조 무결성(Referential integrity)이다. 외부키 값은 공백이거나 참조하고자 하는 테이블에 이미 존재하는 값이어야 한다.