1. 관계 대수(관계형 데이터의 연산)의 종류
1. selection : 조건에 맞는 레코드 선택
2. projection : 특정 컬럼만 출력
3. union : 합집합
4. difference (MYSQL 지원 X) : 차집합
5. intersection(MYSQL 지원 X) : 교집합
현재 RDBMS를 배우는 단계에선 구체적으로 배울 필요보다는 어떠한 종류의 연산이 있는지만 익히는게 더 좋다고 생각한다. 자세한 내용은 위 url을 참고해보자.
2. 키
a. 키(Key)란?
하나의 레코드를 구별, 지칭할 수 있도록 하는 기준으로, 유일성을 만족한다. 키는 테이블의 필수 요소가 아니다.
하나의 컬럼뿐만 아니라 여러개의 컬럼을 묶어서 키로 사용할 수 있다. 예시 : (이름 + 주민등록번호), 하나로는 유일성을 만족시켜주지 못하지만 두개가 합쳐짐으로써 유일성을 만족시켜주는 키로서 사용될 수 있는것이다.
하나의 테이블에 여러개의 키가 될 수 있는 컬럼이 있을 수 있다.
b. 키의 종류
"키"는 이전에서도 말했다 싶이 여러개의 컬럼을 묶어서 사용될 수 있다고 했다. 컬럼의 수가 n이라고 할 가정하고 모든 조합을 고려하였을때, 총 2^n개의 조합이 존재할 것이고, 이 중에서 유일성을 만족시키는 조합들을 키라고 정의한다
이렇게 방대한 수의 키에 대해서 어떻게 키를 분류할 것이고 어떤 의미를 가질지 알아보자.
1. 슈퍼키 (Super Key)
후보키의 전단계로 불필요한 요소가 포함될 수 있다. 대부분의 모든 키
2. 후보키 (Candidate Key)
기본키가 될 수 있는 가능성이 있는 키로, 슈퍼키 중에서도 유일성, 최소성을 만족하는 키
즉, 유일성을 만족시켜주는 컬럼 중에서도 최소 정보로만 구성된 컬럼의 집합을 후보키라고 한다.
3. 기본키 (PK:Primary Key)
후보키 중 선택된 키
4. 대체키 (Alternate Key)
후보키 중 기본키를 제외한 나머지 키
5. 외래키 (FK:Foreign Key)
다른 테이블(Relation)에서 기본키로 사용되는 컬럼으로 이 FK이자 PK일 경우 이 두 테이블 간의 관계를 식별관계(Identifying Relationship)이라고 하고, FK이 PK가 아닌 일반 컬럼일 경우 비식별관계(Non-Identifying Relationship)라고 한다.
Join, 연결, 병합등을 위해 정의되었다.
외래키가 가리키는 기본키가 없다면 어떨까? 그렇다면 참조 과정에서 오류가 날 것이다. 이러한 문제를 방지하기 위해 설정된 조건이 참조무결성 제약조건이다.
3. 참조무결성 제약조건(Referential Integrity)
외래키로 연결되어 있는 테이블의 경우에는 연결된 테이블엔 반드시 데이터가 존재해야 한다,
또한 삽입 / 삭제 과정에서 연결이 끊길 수 있으므로 실행 순서가 존재한다. 이 순서를 어기면 연결되지 않은 데이터가 존재할 수 있고 에러가 나올 수 있다.
1. 원 레코드(PK)를 삭제하려면 참조하는 레코드(FK)를 먼저 삭제해야한다
2. 외래키를 가지는 레코드(FK)를 추가하려면 원 레코드(PK)를 먼저 추가해주어야 한다
'학교 공부 > 데이터베이스' 카테고리의 다른 글
오라클의 조인 타입 / 표준 조인과 비표준 조인의 차이점 (0) | 2021.05.05 |
---|---|
1.트랜잭션의 4대 특징, ACID (2) | 2021.05.05 |
DB 인덱스와 Join (0) | 2021.04.15 |
RDBMS의 정의, 외래키, 스키마 정의 (0) | 2021.04.14 |
정형 / 반정형 / 비정형 데이터란? (0) | 2021.04.14 |