1. 관계 데이터 모델의 기본 용어
일반적으로 관계 데이터 모델에서는 하나의 개체에 관한 데이터를 릴레이션 하나에 담아 데이터베이스에 저장함
속성
릴레이션의 열을 속성, 어트리뷰트 Attribute라고 한다
릴레이션
파일 관리 시스템의 파일, 속성은 해당 파일의 필드에 대응되는 개념이다
투플 Tuple
릴레이션의 행
파일 시스템 관점에서 해당 파일의 레코드에 대응하는 개념이다
도메인 Domain
속성 하나가 가질 수 있는 모든 값의 집합
관계 데이터 모델에서는 더는 분해할 수 없는 원자 값만 속성 값으로 사용할 수 있다
특정 속성이 가질 수 있는 모든 원자 값의 모임이라고도 정의 한다
널값
릴레이션에 있는 특정 투플의 속성 값을 모르거나, 적합한 값이 없는 경우에는 널null 이라는 특별한 값을 사용할 수 있다
특정 속성에 해당되는 값이 없음을 나타내므로 0, 공백과는 다른 개념이다
차수 Degree
하나의 릴레이션에서 속성의 전체 개수를 릴레이션의 차수라고 한다
모든 릴레이션은 최소 1 이상의 차수를 유지해야 한다
릴레이션 차수는 일반적으로 자주 변하지 않는다는 정적인 특징이 있다
카디널리티 Cardinality
하나의 릴레이션에서 투플의 전체 개수를 릴레이션의 카디널리티라고 한다
새로운 투플이 계속 삽입되거나 기존 투플이 삭제될 수 있기에 릴레이션의 카디널리티는 일반적으로 자주 변한다는 동적인 특징이 있다
- 해당 개체 인스턴스 개수
2. 릴레이션과 데이터베이스의 구성
릴레이션 스키마 Relation Schema
릴레이션의 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조임
릴레이션 이름(속성 이름1, 속성 이름2, 속성이름3 ...)
릴레이션 스키마를 보면 릴레이션의 이름, 어떤 속성으로 구성되어 있는지 구조를 쉽게 파악할 수 있다
릴레이션 내포 Relation Intension이라고도 불린다
릴레이션 인스턴스 Relation Instance
어느 한 시점에 릴레이션에 존재하는 투플들의 집합
릴레이션 인스턴스에 포함된 투플은 릴레이션 스키마에서 정의하는 각 속성에 대응하는 실제 값으로 구성되어 있다
릴레이션 인스턴스는 간단히 릴레이션이라 부르기도 하고 릴레이션 외연 Relation Extension이라고도 부른다
논리적 구조를 정의하는 릴레이션 스키마는 자주 변하지 않는다는 정적 특징이 있고, 릴레이션 인스턴스는 투플의 삽입, 삭제, 수정이 자주 발생한다는 특징이 있다
데이터베이스 스키마와 데이터베이스 인스턴스
일반적으로 데이터베이스는 릴레이션 여러 개로 구성된다
데이터베이스의 전체 구조를 의미하는 데이터베이스 스키마는 데이터베이스를 구성하는 릴레이션들의 스키마를 모아놓은 것이다. 특정 데이터베이스 스키마를 설계한다는 것은 필요한 모든 릴레이션의 스키마를 모두 정의한다
데이터베이스 인스턴스는 어니 한 시점에서 데이터베이스에 저장된 데이터 내용의 전체 집합을 의미한다. 즉, 데이터 베이스를 구성하는 모든 릴레이션의 인스턴스를 모아놓은 것이다
3. 릴레이션의 특성
4가지 중요한 특성이 있다
1. 투플의 유일성 : 하나의 릴레이션에는 동일한 투플이 존재할 수 없다
하나의 릴레이션에 똑같은 투플이 있으면 안 되고, 모든 투플에는 다른 투플과 구별되는 유일한 특성이 있어야 한다
관계 데이터 모델에서는 릴레이션 하나 또는 여러 개의 속성을 미리 선정해두고 이 속성값을 투플마다 다르게 지정하여 투플의 유일성을 판단한다
투플을 유일하게 구별하기 위해 선정하는 속성을 키key라고 부른다
2. 투플의 무순서 : 하나의 릴레이션에서 투플 사이의 순서는 무의미하다
투플 순서가 바뀐다고 다른 릴레이션이 될 수 없고, 순서와 상관없이 투플 내용이 같아야 같은 릴레이션이다
데이터베이스는 위치가 아닌 내용으로 검색되기에 순서는 중요하지 않다
3. 속성의 무순서 : 하나의 릴레이션에서 속성 사이의 순서는 무의미하다
속성은 순서가 바뀌어도 다른 릴레이션이 될 수 없고, 순서와 상관없이 같은 속성들로 구성되어 있어야 같은 릴레이션이다
4. 속성의 원자성 : 속성 값으로 원자 값만 사용할 수 있다
모든 속성 값은 더 분해할 수 없는 하나의 값, 즉 원자 값만 가질 수 있다
하나의 속성은 여러 개의 값, 다중 값을 가질 수 없다
4. 키의 종류
릴레이션에 포함된 투플들을 유일하게 구별해주는 역할은 속성 또는 속성들의 집합인 키가 담당한다
키는 관계 데이터 모델에서 중요한 제약조건을 정의한다
관계 데이터 모델에서는 키를 다음과 같이 슈퍼키, 후보키, 기본키, 대체키, 외래키의 5가지로 분류한다
슈퍼키 Super Key
유일성의 특성을 만족하는 속성 또는 속성들의 집합이다
유일성 Uniqueness은 키가 갖추어야 하는 기본 특성으로, 하나의 릴레이션이 키로 지정된 속성 값은 투플마다 달라야 한다는 의미이다
슈퍼키 중에서는 투플 하나를 유일하게 구별하기 위해서 또는 2개의 투플이 서로 다름을 판단하기 위해 불필요한 속성 값까지 확인하는 비효율적인 작업이 요구되는 경우도 있다. 그렇기에 꼭 필요한 속성의 집합만으로 투플을 유일하게구별할 수 있도록 하는 또 다른 키의 개념이 필요한데, 이것이 후보키 이다
후보키 Candidate Key
유일성과 최소성을 만족하는 속성 또는 속성들의 집합
최소성 Minimality은 꼭 필요한 최소한의 속성들로만 키를 구성하는 특성이다
하나의 속성으로 구성된 키는 당연히 최소성을 만족한다
후보키는 투플을 유일하게 구별하기 위해 꼭 필요한 최소한의 속성들로만 이루어지므로 슈퍼키 중에서 최소성을 만족하는 것이 후보키가 된다
후보키가 되기 위해 만족해야 하는 유일성과 최소성의 특성은 새로운 투플이 삽입되거나 기존 투플의 속성 값이 바뀌어도 유지되어야 한다
후보키를 선정할 때는 현재의 렐레이션 내용, 릴레이션 인스턴스만 보고 유일성과 최소성을 판단해서는 안된다
기본키 Primary Key
데이터베이스 설계자나 관리자는 여러 후보키 중에서 기본적으로 사용할 키를 반드시 선택해야 하는데 이것이 기본키다
기본키를 선택할 때 고려하면 도움이 되는 기준 몇 가지
널 값을 가질 수 있는 속성이 포함된 후보키는 기본키로 부적합하다
값이 자주 변경될 수 있는 속성이 포함된 후보키는 기본키로 부적합하다
단순한 후보키를 기본키로 선택한다
대체키 Alternate Key
기본키로 선택되지 못한 후보키들
대체키는 기본키를 대신할 수 있지만 기본키가 되지 못하고 탈락한 이유가 있을 수 있다
외래키 Foreign Key
어떤 릴레이션에 소속된 속성 또는 속성 집합이 다른 릴레이션의 기본키가 되는 키
다른 릴레이션의 기본키를 그대로 참조하는 속성의 집합
외래키는 반드시 다른 릴레이션의 기본키를 참조해야 하며 외래키의 도메인은 참조되는 기본키와 같게 정의되어야 한다
외래키는 기본키를 참조하지만 기본키가 아니기 때문에 널 값을 가질 수 있다
'공부 > 데이터베이스' 카테고리의 다른 글
| 5. 관계 데이터 모델 / 총 정리 (1) | 2025.09.08 |
|---|---|
| 5. 관계 데이터 모델 / 02 관계 데이터 모델의 제약 (1) | 2025.09.08 |
| 4. 데이터 모델링 / 총정리 (0) | 2025.09.06 |
| 4. 데이터 모델링 / 03 논리적 데이터 모델 (0) | 2025.09.06 |
| 4. 데이터 모델링 / 02 개체-관계 모델 (0) | 2025.09.06 |