728x90
📌관계형 모델의 Integrity Rule
데이터 무결성이란 데이터의 정확성(accuracy)과 일관성(consistency)이 보장된 상태를 일컫는다.
- Entity Integrity 개체 무결성
Entity는 이 세상에 구분할 수 있는 모든 것이다.
일례로 tuple도 개체로서 구분이 가능해야하며, 각각의 key 값으로 개체를 구분한다.
개체무결성은 primary key로 참여하는 모든 attributes의 attribute 값은 null이 되어서는 안된다는 조건이다. - Referential Integrity 참조 무결성
관계형 DB에서 한 테이블의 foreign key 값은 다른 테이블의 primary key 값을 참조할 수있다.
※ 주의 : foreign key는 null 값을 가질 수 있다. 하지만 primary key는 반드시 not null 값만 허용한다.
참조무결성은 어떤 table이 참조하려는 attribute 값은 반드시 null 혹은 참조되는 table에 존재해야한다는 조건이다. - Domain Integrity 도메인 무결성
데이터가 정의된 도메인 안에서 유효한 값을 가져야한다는 조건이다.
varchar(255) => 255바이트 이하의 문자열 데이터를 값으로 가져야한다.
📌관계형 DB 구조
- Attribute : 한 테이블 내에서 유일한 속성으로써 중복되지 않는다. 테이블의 열에 해당한다.
- Domain : attribute의 값이 가질 수 있는 범위이다.
- Tuple : 각 attribute 값을 취한 것으로 Domain Set을 가진다. 테이블의 행에 해당한다.
- Tuple -> t(c_1 c_2 c_3 c_4) / c_i 는 attribute 값이다.
- Domain Set -> D_1 x D_2 x D_3 x D_4
📌테이블 관계성
내부 관계성 Intra-Relationship : 한 개체 내부 attribute 간 관계성
외부 관계성 Inter-Relationship : 테이블 간 공통 attribute를 통한 관계성
📌Null Value의 의미
- Unkown Value
모르는 값. 아직 입력되지 않은 경우. - Inapplicable value
적용 불가능한 값. 속성에 해당되지 않는 경우.
차이나식 식별자
📌Key
Key는 유일성을 만족하여 튜플을 구분하는 식별자로 사용된다.
생성 방식에 따른 분류
- Natural Key 자연키
테이블 내부의 유의미한 속성값을 식별자로 사용한다. - Surrogate Key 대리키
자연키와 달리 테이블에 이미 존재하는 속성이 아니다. 시스템이 부여해주는 난수를 식별자로 사용한다.
자연키 내부 분류
자연키 ⊃ 슈퍼키 ⊃ 후보키 ⊃ 대체키, 주키
- Super key 슈퍼키
튜플을 고유하게 식별할 수 있는 하나의 속성 혹은 여러 속성의 조합(집합). 최소성을 만족하지 않는다.- 슈퍼키는 Null 값과 중복을 허용한다.
ex) 학번, {이름, 주민번호}
- 슈퍼키는 Null 값과 중복을 허용한다.
- Candidate key 후보키
튜플을 고유하게 식별할 수 있고, 슈퍼키와 달리 최소성(minimal)을 만족한다. 유일성을 보장할 수 있는 최소한의 속성 집합만을 사용하는 것을 말한다. 최소성이 만족되는 키는 그 키의 속성 집합 중 하나의 속성이라도 제외한다면 유일성이 깨진다.- Null을 허용하지 않는다.
- Primary key 주키
후보키 중 식별자로 이용하기 가장 적합한 것을 하나 고른 것이다. (DBA가 선택한다.) - Alternate key 대체키(대안키)
후보키 중 주키를 제외한 나머지 키
키 이름 | 유일성 | 최소성 | Null값, 중복값 |
---|---|---|---|
슈퍼키 | O | X | 허용 |
후보키, 주키, 대체키 | O | O | 비허용 |
728x90
'DB' 카테고리의 다른 글
DB 개념 6편 - ER 모델 (0) | 2024.08.25 |
---|---|
DB 개념 5편 - View와 MView의 차이 (0) | 2024.08.25 |
DB 개념 4편 - SQL과 DB 사용자의 분류 (0) | 2024.08.22 |
DB 개념 2편 - 데이터 모델 (0) | 2024.08.20 |
DB 개념 1편 - DB를 사용하는 이유 (0) | 2024.08.20 |