일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 공개키 비밀키
- VPN 뜻
- 암호화
- RSA
- 파일시스템 vs DBMS
- 스트림 암호
- 암호화 알고리즘
- AES
- DDoS 종류
- VPN 개념
- DoS 종류
- 관계 데이터 모델
- 암호학
- DoS DDoS
- VPN
- ZTNA
- 가상 사설 네트워크
- 데이터베이스
- des
- 대칭키 vs 공개키
- 파일시스템 DBMS
- dbms
- ZTN
- 데이터베이스 구조
- block cypher
- 오용탐지
- 객체 데이터 모델
- stream cypher
- db
- 파일 시스템
- Today
- Total
RavenSong's CS log
관계 데이터 모델 키(key) 및 무결성 제약조건 본문
키(key)의 종류
- 관계 데이터베이스에서 키는 릴레이션에서 특정 투플을 식별할 때 사용하는 속성 혹은 속성의 집합이다
- 키가 되는 속성은 반드시 값이 달라서 투플들을 서로 구별할 수 있어야 한다
1. 슈퍼키
- 슈퍼키는 투플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합이다
- 투플을 유일하게 식별할 수 있는 값이면 모두 슈퍼키가 될 수 있다
ex) 고객 릴레이션에서 '이름' 은 슈퍼키가 될 수 있다. 이름은 전국적으로 따지면 동명이인이 많아 키로선 부적합하겠지만, 최소한 고객 릴레이션 내에는 동명이인이 없다는 가정하에 슈퍼키가 될 수 있다
2. 후보키
- 후보키는 투플을 유일하게 식별할 수 있는 속성의 최소집합이다
ex) 만약 고객 릴레이션에서 슈퍼키가 주민번호, 이름, 주소, 고객번호 였다면 후보키는 '주민번호' 와 '고객번호' 가 될것이다. 왜냐하면 이름과 주소는 중복될 수 있기때문이다 (후보키는 최소집합)
3. 기본키
- 기본키는 여러 후보키 중 하나를 선정하여 대표로 삼는 키이다
ex) 고객 릴레이션의 경우 기본키로 '주민번호' 와 '고객번호' 를 선택할 수 있다. 하지만 주민번호는 민감한 개인정보이므로 기본키로 '고객번호' 를 선택하는 것이 좋다
4. 대리키
- 기본키가 보안을 필요로 하거나, 여러 개의 속성으로 구성되어 복잡하거나, 마땅한 기본키가 없을 때는 일련번호 같은 가상의 속성을 만들어 기본키로 삼는다. 이러한 키를 대리키 혹은 인조키 라고 한다
- 대리키는 DBMS나 관련 소프트웨어에서 임의로 생성하는 값으로, 사용자가 직관적으로 그 값의 의미를 알 수 없다
ex) 주문 릴레이션에서 (고객번호, 도서번호)의 복합키를 사용해 투플을 식별하는데, 매번 기본키로 이것을 사용하면 복잡하고 불편할것이다. 이 경우 사용자에게 의미는 없지만 '주문번호' 라는 새로운 속성을 만들면 불편을 해소할 수 있다. 더불어 한 명의 고객이 같은 도서를 구입할 수 있어 주문 테이블의 기능이 향상된다 (주문번호가 없으면 한 고객이 같은 도서를 구입한다면 중복된 투플이 생길것이다)
5. 대체키
- 대체키는 기본키로 선정되지 않은 후보키를 말한다
ex) 고객 릴레이션의 경우 고객번호와 주민번호 중 고객번호를 기본키로 정하면 주민번호가 대체키가 된다
6. 외래키
- 외래키는 다른 릴레이션의 기본키를 참조하는 속성이다
- 외래키는 다른 릴레이션의 기본키를 참조하여 관계 데이터 모델의 특징인 릴레이션 간의 관계를 표현한다
ex) 주문 릴레이션의 기본키인 주문번호는 고객이 도서를 주문하면 생성된다. 이때 해당하는 고객번호와 도서번호도 주문 릴레이션에 저장된다. 주문 릴레이션에서 주문번호를 알면 어떤 고객이 어떤 도서를 구입했는지 알 수 있다. 여기서 '어떤 고객' 과 '어떤 도서' 를 표시하기 위해 사용된 고객번호와 도서번호는 각각 고객 릴레이션과 도서 릴레이션의 기본키이며, 이 키들은 주문 릴레이션에서 외래키로 사용되었다
외래키 특징
- 관계 데이터 모델에서 릴레이션 간의 관계를 표현한다
- 다른 릴레이션의 기본키를 참조하는 속성이다
- 참조하고(외래키) 참조되는(기본키) 양쪽 릴레이션의 도메인은 서로 같아야 한다
- 참조되는(기본키) 값이 변경되면 참조하는(외래키) 값도 변경된다
- NULL 값과 중복값 등이 허용된다
- 자기 자신의 기본키를 참조하는 외래키도 가능하다
- 외래키는 기본키의 일부가 될 수 있다
무결성 제약조건
데이터 무결성은 데이터베이스에 저장된 데이터의 일관성과 정확성을 지키는것을 말한다
도메인 무결성 제약조건
- 릴레이션 내의 투플들이 각 속성의 도메인에 지정된 값만 가져야 한다는 조건
개체 무결성 제약조건
- 릴레이션은 기본키를 지정하고 그에 따른 무결성 원칙(기본키는 NULL값을 가져서는 안되며 릴레이션 내에 오직 하나의 값만 존재해야 한다)을 지켜야 한다는 조건
참조 무결성 제약조건
- 릴레이션 간의 참조 관계를 선언하는 제약조건
- 일반적으로 참조되는(제공하는) 릴레이션을 부모 릴레이션, 참조하는(제공받는) 릴레이션을 자식 릴레이션 이라고 한다
- 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인이 같아야 하며, 자식 릴레이션의 값이 변경될 때 부모 릴레이션의 제약을 받는다는 것이다
'데이터베이스' 카테고리의 다른 글
릴레이션의 개념 및 구성 (0) | 2024.04.10 |
---|---|
데이터베이스의 개념적 구조 (0) | 2024.04.06 |
파일 시스템 vs DBMS (0) | 2024.04.06 |
데이터베이스 개념 및 특징 (0) | 2024.04.06 |