이번 내용은 데이터베이스 시스템 책을 보면서 생각 및 공부 정리를 한 포스팅입니다.
관계형 데이터베이스
관계형 데이터베이스 구조
관계형 데이터베이스는 테이블의 모임으로 구성됩니다. 그리고 테이블은 각각 행과 열로 구성되어 있습니다.
테이블의 각 열은 속성으로 표현합니다. 만약 테이블의 열에 이름, 성별, 나이가 있다면 이것이 테이블의 속성입니다.
테이블의 각 행은 속성과 관계가 있습니다. 가령 이름이란 속성(열)의 행에 유재석, 박명수, 하하, 길이 있다고 합시다. 이때 행은 이름이란 속성의 관계를 표현합니다.
테이블은 이런 관계들이 모인 것으로 이를 릴레이션이라 표현합니다.
튜플은 자료 구조로 데이터의 리스트를 의미합니다. 릴레이션은 튜플의 집합이며 튜플의 순서를 보장하지 않습니다.
또한 릴레이션의 각 속성(열)은 도메인을 가지고 있습니다. 도메인은 원자성을 보장해야 합니다. 원자성이란 것은, 도메인의 요소가 더 이상 나뉠 수 없는 단위라는 것입니다. 예를 들어 나이란 값은 원장성을 보장합니다. 하지만 이름은 성 씨와 이름으로 나누어서 생각한다면 원자적인 값이 되지 않습니다. (성 씨와 이름을 하나의 값으로 생각한다면 원자성을 보장합니다.)
널 값은 존재하지 않는 값을 의미합니다. 테이블에 전화번호 속성(열)을 추가한다고 가정해봅시다. 어떤 사람은 전화 번호를 가지고 있거나, 핸드폰이 없는 사람이 있을 수 있습니다. 이때 전화번호 속성에는 아무런 값을 넣을 수 없음으로 null을 넣어야 합니다.
키(Key)
같은 릴레이션(테이블) 안에서 튜플(행)을 구별하기 위해 키가 필요합니다. 키는 다음과 같습니다.
슈퍼 키(Super key)
슈퍼 키는 각 행을 구별할 수 있는 하나 이상의 속성들의 집합입니다.
- 이름 : 중복 될 수 있음으로 슈퍼 키 x
- 학번 : 슈퍼 키 가능
- 주민등록번호 : 슈퍼 키 가능
- {이름, 학번}, {이름, 주민등록번호}..., {이름, 학번, 주민등록번호} : 각 행들을 구별할 수 있음으로 슈퍼 키 가능
후보 키(Candidate key)
후보 키는 각 행을 최소한으로 구별할 수 있는 슈퍼 키를 말합니다. 불필요한 속성이 없어야 후보 키라고 할 수 있습니다.
- 이름 : 중복 될 수 있음으로 후보 키 x
- 학번 : 후보 키 가능
- 주민등록번호 : 후보 키 가능
- {이름, 학번}, {이름, 주민등록번호}..., {이름, 학번, 주민등록번호} : 각 행들을 구별할 수 있으나 최소한으로 구별되지 않았으므로 후보 키 불가능
기본 키(Primary key)
- 후보 키들 중에 선택된 메인 키입니다.
슈퍼 키, 후보 키, 기본 키는 각 행의 특성이 아니라 전체 테이블의 특성입니다. 또한 주 키는 주 키 제약 조건을 갖습니다.
'Database' 카테고리의 다른 글
데이터베이스에서 기본 키 정하기(슈퍼 키, 후보 키, 기본 키, 유니크 키 개념 알아보기) (0) | 2023.09.22 |
---|---|
관계형 데이터베이스 개념 정리(릴레이션, 튜플, 도메인) (0) | 2023.09.18 |
데이터베이스 트랜잭션(transaction)의 중요성 (0) | 2023.04.02 |