본문 바로가기

데이터베이스

[Database] 관계 데이터 모델

 

관계 데이터 모델에서는 하나의 개체에 관한 데이터를 릴레이션 하나에 담아 데이터베이스 저장한다.

1) 속성 : 릴레이션의 열을 속성 또는 애트리뷰트attribute라고 부른다.

개체에 대한 데이터를 속성으로 나눠 저장하며 각 속성은 서로 다른 이름을 이용해 구별한다.

2) 투플 : 릴레이션의 행을 투플tuple이라 부른다.

각 투플은 해당 개체에 대한 실제 속성 값을 모아놓은 것으로, 개체의 인스턴스이다.

3) 도메인 : 속성 하나가 가질 수 있는 모든 값의 집합을 해당 속성의 도메인domain이라 한다.

관계 데이터 모델에서는 속성 값으로 더는 분해할 수 없는 원자atomic 값만 사용한다.

일반적으로 속성 값을 일일이 나열하기 어려우므로 속성의 특성을 고려한 데이터 타입으로 정의한다.

4) 널 값 : 릴레이션에 있는 특정 투플의 속성 값을 모르거나, 적합한 값이 없는 경우에는 널 값을 사용할 수 있다.

널 값은 특정 속성에 해당되는 값이 없음을 나타내므로 숫자 0이나 공백 문자와는 다르다.

5) 차수 : 하나의 릴레이션에서 속성의 전체 개수를 릴레이션의 차수degree라고 한다.

일반적으로 자주 변하지 않아 정적인 특징이 있다.

6) 카디널리티 : 하나의 릴레이션에서 투플의 전체 개수를 릴레이션의 카디널리티cardinality라고 한다.

Create와 Delete를 이용해 투플을 삽입, 삭제하므로 자주 변한다는 동적인 특징이 있다.


릴레이션은 릴레이션 스키마와 릴레이션 인스턴스로 구성된다.

릴레이션 스키마relation schema

릴레이션의 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조

릴레이션 인스턴스relation instance

어느 한 시점에 릴레이션에 존재하는 투플들의 집합이다.

데이터베이스 스키마database schema

데이터베이스를 구성하는 릴레이션 스키마의 모음

데이터베이스 인스턴스database instance

데이터베이스를 구성하는 릴레이션 인스턴스의 모음

관계 데이터 모델의 릴레이션에는 네 가지 중요한 특성이 있다.

1) 투플의 유일성 : 하나의 릴레이션에는 동일한 투플이 존재할 수 없다.

2) 투플의 무순서 : 하나의 릴레이션에서 투플 사이의 순서는 무의미하다.

3) 속성의 무순서 : 하나의 릴레이션에서 속성 사이의 순서는 무의미하다.

4) 속성의 원자성 : 속성 값으로 원자 값만 사용할 수 있다.


key

관계 데이터 모델에서 중요한 제약조건을 정의

릴레이션에 포함된 투플들을 유일하게 구별해주는 역할을 하는 속성 또는 속성들의 집합

관계 데이터 모델에서는 키를 총 5가지로 분류한다.

1) 슈퍼 키

유일성의 특성을 만족하는 속성 또는 속성들의 집합이다.

2) 후보 키

유일성과 최소성을 만족하는 속성 또는 속성들의 집합이다.

3) 기본키

후보 키 중에서 기본적으로 사용하기 위해 선택한 키

* 널 값을 가질 수 있는 속성이 포함된 후보 키는 기본키로 부적합하다.

* 값이 자주 변경될 수 있는 속성이 포함된 후보키는 기본키로 부적합하다.

* 단순한 후보 키를 기본키로 선택한다.

4) 대체키

기본키로 선택되지 못한 후보 키들

5) 외래 키

어떤 릴레이션에 소속된 속성 또는 속성 집합이 다른 릴레이션의 기본키가 되는 키

즉, 다른 릴레이션의 기본키를 그대로 참조하는 속성의 집합을 뜻하며 릴레이션 간의 관계를 표현하는 역할


관계 데이터 모델에서 기본 제약 사항은 무결성 제약조건이다.

무결성 제약조건

데이터베이스에 저장된 데이터의 무결성, 즉 데이터가 정확하고 유효하게 유지되는 상태를 보장하는 것

1) 개체 무결성 제약조건entity integrity constraint

기본키를 구성하는 모든 속성은 널 값을 가지면 안 된다는 규칙

2) 참조 무결성 제약조건referential integrity constraint

외래 키는 참조할 수 없는 값을 가질 수 없다는 규칙