관계 데이터 모델
관계 데이터 모델의 개념
관계 데이터 모델의 기본 용어
- 속성 (애트리뷰트) : 릴레이션의 열
- 서로 다른 이름을 이용해 구별
- 파일 관리 시스템에서 릴레이션-파일, 속성-필드에 대응
- 튜플 : 릴레이션의 행
- 도메인 : 속성 하나가 가질 수 있는 모든 값의 집합, 특정 속성이 가질 수 있는 모든 원자 값의 모임
- 도메인 정의해놓으면 적합성을 판단하여 도메인 이외의 값은 허용하지 않음으로써 항상 올바른 값만 유지할 수 있음
- 데이터 타입
- 널 값 : 특정 튜플의 속성 값을 모르거나 적합한 값이 없는 경우
- 차수 : 속성의 전체 개수
- 카디널리티 : 튜플의 전체 개수
릴레이션과 데이터베이스의 구성
-
릴레이션 스키마 : 릴레이션의 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조
- 릴레이션이름(속성이름1, 속성이름2, ... , 속성이름n)
- = 릴레이션 내포 (relation intension)
-
릴레이션 인스턴스 : 어느 한 시점에 릴레이션에 존재하는 튜플의 집합
-
데이터베이스 스키마와 데이터베이스 인스턴스
- 데이터는 여러개의 릴레이션으로 구성됨
- 데이터베이스 스키마 : 데이터베이스를 구성하는 릴레이션들의 스키마를 모아놓은 것
- 데이터베이스 인스턴스 : 어느 한 시점에서 데이터베이스에 저장된 데이터 내용의 전체 집합
릴레이션의 특성
- 튜플의 유일성 : 하나의 릴레이션에는 동일한 튜플이 존재할 수 없다
- 하나의 릴레이션에 같은 튜플 X
- 모든 튜플에는 다른 튜플과 구별되는 유일한 특성 있어야
- 튜플의 무순서 : 하나의 릴레이션에서 튜플 사이의 순서는 무의미하다
- 속성의 무순서 : 하나의 릴레이션에서 속성 사이의 순서는 무의미하다
- 속성의 원자성 : 속성 값으로 원자 값만 사용할 수 있다
- 모든 속성 값은 더는 분해할 수 없는 하나의 값만을 가질 수 있다
키의 종류
- 키는 관계 데이터 모델에서 제약 조건을 정의
- 릴레이션의 튜플들을 유일하게 구별해주는 역할
- 수퍼키 : 유일성
- 유일성 : 키가 갖추어야 하는 기본 특성. 하나의 릴레이션에서 키로 지정된 속성의 값은 튜플마다 다르다 = 키 값이 같은 튜플은 존재할 수 없다
- 후보키 : 유일성 + 최소성
- 최소성 : 키를 구성하고 있는 여러 속성 중에서 하나라도 없으면 튜플을 유일하게 구별할 수 없는 꼭 필요한 최소한의 속성들로만 키를 구성하는 특성
- 슈퍼키 중 최소성을 만족하면 후보키
- 기본키 : 여러 후보키 중에서 기본적으로 사용할 키를 반드시 선택
- 널 값을 가질 수 있는 속성이 포함된 후보키는 기본키로 부적합하다
- 값이 자주 변경될 수 있는 속성이 포함된 푸보키는 기본키로 부적합하다
- 단순한 후보키를 키본키로 선택한다
- 대체키 : 기본키로 선택되지 못한 후보키들
- 외래키 : 어떤 릴레이션에 소속된 속성 또는 속성 집합이 다른 릴레이션의 기본키가 되는 키
- 다른 릴레이션의 기본키를 그대로 참조하는 속성의 집합
- 릴레이션들 간의 관계 표현
관계 데이터 모델의 제약
무결성 제약조건 : 기본 제약 사항. 무결성 보장 + 일관되게 유지
무결성 : 데이터에 결함이 없는 상태. 데이터를 정확하고 유효하게 유지하는 것
개체 무결성 제약조건
- 기본키를 구성하는 모든 속성은 널 값을 가지면 안된다
- 널 값이 있으면 튜플의 유일성을 판단할 수 없음
참조 무결성 제약 조건
- 외래키는 참조할 수 없는 값을 가질 수 없다
- 외래키가 자신이 참조하는 릴레이션의 기본키와 상관 없는 값을 가지게 되면 두 릴레이션을 연관시킬 없다
- 외래키는 자신이 참조하는 릴레이션에 기본키 값으로 존재하는 값, 참조 가능한 값만을 가져야한다
📍 질문
키 : 검색, 정렬 시 튜플을 구분할 수 있는 기준이 되는 속성
1. 후보키 (Candidate key) : 튜플을 유일하게 실별하기 위해 사용하는 속성들의 부분 집합
- 기본키로 사용할 수 있는 속성들
- 유일성 + 최소성
2. 기본키 (Primary key) : 후보키 중 선택한 메인 키
- 널 값 X
- 동일한 값이 중복 X
3. 대체키 (Alternate key) : 후보키 중 기본키를 제외한 나머지 키 = 보조키
4. 슈퍼키 (Super key) : 유일성 O, 최소성 X
5. 외래키 (Foreign key) : 다른 릴레이션의 기본키를 그대로 참조하는 속성의 집합
https://gyoogle.dev/blog/computer-science/data-base/Key.html