RDBMS(관계형 데이터베이스)의 Key(키)
1. RDBMS에서 Key란?
하나의 릴레이션에서, 튜플(Tuple)들을 유일하게 식별할 수 있도록 하는 속성(Attribute) 혹은 속성들의 집합
2. Key의 종류
1) Candidate Key (후보키)
튜플을 유일하게 식별할 수 있도록 하는 속성/속성들의 집합으로, 유일성과 최소성을 만족하는 Key
- 유일성(Uniqueness): 해당 Key(혹은 Key의 집합)로 하나의 Tuple을 유일하게 식별할 수 있다.
- 최소성(Minimality): Tuple을 식별하는 데에 꼭 필요한 속성만으로 구성되어 있다.
2) Primary Key (기본키)
후보키 중 튜플을 식별하기 위해 선택한 Key
- Null 값을 가질 수 없다.
- 기본키로 선택된 Attribute에 대해 동일한 값이 존재할 수 없다.
3) Alternate Key (대체키)
기본키가 아닌 후보키 (= 보조키)
4) Super Key (슈퍼키)
유일성을 만족하지만, 최소성을 만족시키지 못하는 속성/속성들의 집합
- 유일성(Uniqueness) 만족 -> 하나의 릴레이션에서 Key로 지정된 Attribute의 값은 모든 튜플에서 항상 다르다. 즉, 키 값이 같은 튜플이 존재하지 않는다.
- 최소성(Minimality)를 만족시키지 못함 -> 튜플을 유일하게 식별하는 데에 꼭 필요한 속성이 아니거나, (Super Key가 집합인 경우) 일부 속성이 없어도 튜플을 유일하게 식별할 수 있다.
5) Foreign Key (외래키)
다른 릴레이션의 기본키(Primary Key)를 참조하는 속성들의 집합
- 서로 다른 릴레이션 간의 관계를 올바르게 표현하기 위해 사용한다.
- Foreign Key로 지정된 Attribute에는 참조되는 릴레이션(테이블)의 Primary Key 값이 아닌 데이터를 입력할 수 없다.
- Foreign Key로 지정된 Attribute의 도메인과 참조되는 테이블의 Primary Key로 지정된 Attribute의 도메인은 반드시 같아야 한다. (같은 도메인에 속해야 연관성 있는 튜플을 찾기 위한 비교 연산이 가능하기 때문)
RDBMS(관계형 데이터베이스)의 Join(조인)
1. RDBMS에서 Join(조인)이란?
두 개 이상의 테이블이나 데이터베이스를 연결/결합하여 데이터를 검색하는 방법
- 다른 테이블/데이터베이스에 저장된 데이터(=다른 집합에 포함된 데이터)를 함께 조회해야 할 때 사용
2. Join의 종류
1) INNER JOIN

- 교집합의 개념으로, 기준 테이블과 Join된 테이블에서 중복된 데이터를 가져온다.
SELECT A.KEY1, B.KEY2 FROM EX_TABLE A
INNER JOIN JOIN_TABLE B ON A.PK = B.PK
2) LEFT OUTER JOIN

- 기준 테이블의 데이터와 함께 Join된 테이블과의 중복된 데이터를 가져온다.
- 왼쪽 테이블을 기준으로 JOIN
SELECT A.KEY1, B.KEY2 FROM EX_TABLE A
LET OUTER JOIN JOIN_TABLE B ON A.PK = B.PK
3) RIGHT OUTER JOIN

- Join되는 테이블의 데이터와 함께 기준 테이블과의 중복된 데이터를 가져온다.
- 오른쪽 테이블을 기준으로 JOIN
SELECT A.KEY1, B.KEY2 FROM EX_TABLE A
RIGHT OUTER JOIN JOIN_TABLE B ON A.PK = B.PK
4) FULL OUTER JOIN

- 합집합의 개념으로, 기준 테이블과 Join된 테이블에 포함된 모든 데이터를 가져온다.
SELECT A.KEY1, B.KEY2 FROM EX_TABLE A
FULL OUTER JOIN JOIN_TABLE B ON A.PK = B.PK
References