1. 관계 데이터 모델의 개념
▶ 관계 데이터 모델의 기본 용어
데이터 모델링에서 잠깐 배웠던 논리적 데이터 모델의 3가지 모델 중 하나이다. (관계 데이터 모델, 계층 데이터 모델, 네트워크 데이터 모델)
관계 데이터 모델은 하나의 개체에 관한 데이터를 하나의 릴레이션에 저장하며, 표 형식으로 저장한다.

릴레이션
하나의 개체에 관한 데이터를 2차원 테이블의 구조로 저장한 것이다.
파일 관리 시스템 관점에서는 파일(file)에 대응하며, 릴레이션은 한 개의 테이블을 의미한다.
속성
릴레이션의 열을 속성 또는 애트리뷰트(attribute)라고 부른다.
파일 관리 시스템 관점에서 필드(field)에 대응한다.
투플
릴레이션의 행을 투플(tuple)이라 부른다.
파일 관리 시스템 관점에서 레코드(record)에 대응한다.
도메인
속성 하나가 가질 수 있는 모든 값의 집합을 해당 속성의 도메인(domain)이라 한다.
관계 데이터 모델에서는 더 이상 분해할 수 없는 원자값만 사용할 수 있기 때문에, 도메인을 특정 속성이 가질 수 있는 모든 원자 값의 모임이라고도 정의한다.
도메인을 정의해두면 사용자가 속성 값을 입력하거나 수정할 때 데이터베이스 시스템이 적합성을 판단하여 이외의 값을 허용하지 않게 해 항상 올바른 값만 유지하도록 한다.
도메인은 가능한 값을 일일이 나열하기 어려운 경우가 대부분이라, 일반적으로 속성의 특성을 고려한 데이터 타입으로 정의한다.
널 값
릴레이션에 있는 특정 투플의 속성 값을 모르거나, 적합한 값이 없는 경우에 널이라는 특별한 값을 사용한다.
차수
하나의 릴레이션에서 속성의 전체 개수를 차수(degree)라고 한다.
카디널리티
하나의 릴레이션에서 투플의 전체 개수를 카디널리티(cardinality)라고 한다.
▶릴레이션과 데이터베이스의 구성
릴레이션은 릴레이션 스키마와 릴레이션 인스턴스로 구성되어 있다.

릴레이션 스키마
릴레이션 스키마(relation schema)는 릴레이션의 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조다. 릴레이션 내포(relation intension)라고도 부른다.
일반적으로 다음과 같은 형태로 쉽게 표현할 수 있다.
릴레이션이름(속성이름1, 속성이름2, ... , 속성이름n)
릴레이션 인스턴스
릴레이션 인스턴스(relation instance)는 어느 한 시점에 릴레이션에 존재하는 투플들의 집합이다. 간단히 릴레이션이라 부르기도 하고 릴레이션 외연(relation extension)이라고도 부른다.
릴레이션 스키마는 자주 변하지 않는 정적인 특징이 있고, 릴레이션 인스턴스는 투플의 삽입, 삭제, 수정이 자주 발생해 동적인 특징이 있다.
▶ 릴레이션의 특성
- 투플의 유일성
하나의 릴레이션에는 동일한 투플이 존재할 수 없다.
투플을 유일하게 구별하기 위해 선정하는 속성(또는 속성들의 모임)의 값으로 판단한다. - 투플의 무순서
하나의 릴레이션에서 투플 사이의 순서는 무의미하다. - 속성의 무순서
하나의 릴레이션에서 속성 사이의 순서는 무의미하다. - 속성의 원자성
속성 값으로 원자 값만 사용할 수 있다.
▶ 키의 특성
- 유일성 : 한 릴레이션에서 모든 투플은 서로 다른 키 값을 가져야 한다.
- 최소성 : 꼭 필요한 최소한의 속성들로만 키를 구성한다.
▶ 키의 종류
키(key)는 관계 데이터 모델에서 중요한 제약조건을 정의한다.
관계 데이터 모델에서는 키를 다음과 같이 슈퍼키, 후보키, 기본키, 대체키, 외래키의 다섯 가지로 분류할 수 있다.
슈퍼키
슈퍼키(super key)는 유일성의 특성을 만족하는 속성 또는 속성들의 집합이다.
고객 릴레이션의 슈퍼키는 고객아이디, (고객아이디, 고객이름), (고객이름, 주소) 등이 있다.
후보키
후보키(candidate key)는 유일성과 최소성의 특성을 만족하는 속성 또는 속성들의 집합이다.
고객 릴레이션의 후보키는 고객아이디, (고객이름, 주소) 등이 있다.
기본키
기본키(primary key)는 후보키 중에서 기본적으로 사용하기 위해 선택한 키다.
고객 릴레이션의 기본키로는 고객아이디가 있다.
대체키
대체키(alternate key)는 기본키로 선택되지 못한 후보키다.
고객 릴레이션의 대체키로는 (고객이름, 주소)가 있다.
외래키
외래키(foreign key)는 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합이다.
릴레이션들 사이의 관계를 표현하는데, 참조하는 릴레이션(외래키를 가진 릴레이션)과 참조되는 릴레이션(외래키가 참조하는 기본키를 가진 릴레이션)으로 나뉜다.
2. 관계 데이터 모델의 제약
관계 데이터 모델에서 정의하고 있는 기본 제약 사항은 키와 관련한 무결성 제약조건(integrity constraint)이다.
무결성은 데이터에 결함이 없는 상태, 즉 데이터가 정확하고 유효하게 유지된 상태를 말한다.
무결성 제약조건의 주요 목적은 데이터의 무결성을 보장하고, 데이터베이스의 상태를 일관되게 유지하는 것이다.
관계 데이터 모델이 기본으로 포함하고 있는 무결성 제약조건에는 개체 무결성 제약조건과 참조 무결성 제약조건이 있다.
데이터베이스의 상태를 일관성 있게 유지하기 위해서는 두 가지를 모두 만족시켜야 한다.

▶ 개체 무결성 제약조건
개체 무결성 제약조건(entity integrity constraint)은 기본키를 구성하는 모든 속성은 널 값을 가지면 안 된다는 규칙이다.
관계 데이터 모델에서는 릴레이션에 포함된 투플들을 유일하게 구별해주고 각 투플에 쉽게 접근할 수 있도록 릴레이션마다 기본키를 정의한다.
기본키를 구성하는 속성 전체나 일부가 널 값이 되면 투플의 유일성을 판단하지 못해 기본키의 목적을 상실하게 된다.
▶ 참조 무결성 제약조건
참조 무결성 제약조건(referential integrity constraint)이란 외래키는 참조할 수 없는 값을 가질 수 없다는 규칙이다.
외래키가 자신이 참조하는 릴레이션의 기본키와 상관이 없는 값을 가지게 되면 두 릴레이션을 연관시킬 수 없으므로 외래키 본래의 의미가 없어진다.
▶ 그림으로 정리

'University > Database' 카테고리의 다른 글
| [데이터베이스] 데이터 모델링 (2) | 2023.10.14 |
|---|---|
| [데이터베이스] 데이터베이스 시스템 (0) | 2023.10.13 |
| [데이터베이스] 데이터베이스 관리 시스템 (0) | 2023.10.09 |
| [데이터베이스] 기본 개념 (0) | 2023.10.07 |