[CS] 관계 데이터 모델
TIL(Today I Learned)
관계 데이터 모델의 용어
- 관계 데이터 모델 - 하나의 개체에 관한 데이터를 릴레이션 하나에 담아 데이터베이스에 저장
속성(애트리뷰트)
- 릴레이션의 열
튜플
- 릴레이션의 행
도메인
- 속성 하나가 가질 수 있는 모든 값의 집합
- 도메인을 정의해두면 사용자가 속성 값을 입력하거나 수정할 때 데이터베이스 시스템이 적합성을 판단하여 해당 값 이외의 값은 허용하지 않음으로써 항상 올바른 값만 유지한다는 장점 존재
NULL
- 릴레이션에 있는 특정 투플의 속성 값을 모르거나, 적합한 값이 없는 경우
차수
- 하나의 릴레이션에서 속성의 전체 개수, 모든 릴레이션의 최소 1 이상의 차수를 유지
카디널리티
- 하나의 릴레이션에서 투플의 전체 개수, 일반적으로 자주 변한다는 동적인 특징
릴레이션과 데이터베이스의 구성
릴레이션 스키마
- 릴레이션의 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조, 데이터베이스 관리 시스템이 내부적으로 데이터 정의어를 이용해 정의(정적인 특징)
릴레이션 인스턴스
- 어느 한 시점에 릴레이션에 존재하는 튜플들의 집합, 데이터베이스 관리 시스템이 내부적으로는 데이터 조작어를 이용해 릴레이션 인스턴스의 투플을 검색하거나, 새로운 투플 삽입과 기존 투플 삭제 및 수정을 진행(동적인 특징)
데이터 베이스 스키마
- 데이터베이스를 구성하는 릴레이션들의 스키마를 모아놓은 것
데이터 베이스 인스턴스
- 어느 한 시점에서 데이터베이스에 저장된 데이터 내용의 전체 집합을 의미
릴레이션의 특징
- 투플의 유일성 - 하나의 릴레이션에는 동일한 투플이 존재할 수 없다 (key를 이용하여 유일성 판단)
- 투플의 무순서 - 하나의 릴레이션에서 투플 사이의 순서는 무의미하다 (데이터베이스는 위치가 아닌 내용으로 검색)
- 속성의 무순서 - 하나의 릴레이션에서 속성 사이의 순서는 무의미하다 (속성 값은 릴레이션에서 위치가 아닌 속성의 이름으로 접근)
- 속성의 원자성 - 속성 값으로 원자 값만 사용할 수 있다 (다중 값을 허용 안함)
키의 종류
- 키 - 릴레이션에 포함된 투플들을 유일하게 구별해주는 역할, 제약조건을 정의 및 투플을 처리하는 데 중요한 역할
슈퍼키
- 유일성(uniqueness)의 특성을 만족하는 속성 또는 속성들의 집합
후보키
- 유일성과 최소성(minimality)을 만족하는 속성 또는 속성들의 집합
- 슈퍼키 중에서 최소성을 만족하는 것
기본키
- 데이터베이스 설계자나 관리자가 여러 후보키 중에서 선택한 기본적키
-
후보키가 여러 개일 경우 데이터베이스 사용 환경을 고려하여 적합한 것을 기본키로 선택
- 기본키 선택 고려 사항
- 널 값을 가질 수 있는 속성이 포함된 후보키는 부적합
- 값이 자주 변경될 수 있는 속성이 포함된 후보키는 부적합
- 단순한 후보키 선택
대체키
- 기본키로 선택되지 못한 후보키
외래키
- 어떤 릴레이션에 소속된 속성 또는 속성 집합이 다른 릴레이션의 기본키가 되는 키
- 다른 릴레이션의 기본키를 그대로 참조하는 속성의 집합
- 외래키는 릴레이션들 사이의 관계를 올바르게 표현하기 위해 필요
- 외래키는 기본키를 참조하지만 기본키가 아니기 때문에 널 값을 가질 수 있고, 서로 다른 투플이 같은 값을 가질 수 있음
관계 데이터 모델의 제약
- 관계 데이터 모델에서 정의하고 있는 기본 제약 사항은 키와 관련한 무결성 제약조건
무결성
- 데이터에 결함이 없는 상태, 즉 데이터가 정확하고 유효하게 유지된 상태를 의미
무결성 제약조건의 주요 목적
- 데이터베이스에 저장된 데이터의 무결성을 보장하고, 데이터베이스의 상태를 일관되게 유지하는 것
- 무결성 제약조건은 데이터베이스가 어떤 상태나 시점에서도 무조건 지켜야 하는 중요한 규칙
개체 무결성 제약조건(entity inegrity constraint)
- 기본키를 구성하는 모든 속성은 null값을 가져서는 안된다는 규칙
- 기본키를 구성하는 속성 전체나 일부가 널 값이 되면 투플의 유일성을 판단할 수 없어 기본키의 본래 목적을 상실
참조 무결성 제약조건(referential inegrity constraint)
- 외래키는 참조할 수 없는 값을 가질 수 없다는 규칙
- 외래키가 자신이 참조하는 릴레이션의 기본키와 상관이 없는 값을 가지게 되면 두 릴레이션을 연관시킬 수 없으므로 외래키 본래의 의미가 없어짐
댓글남기기