1. Foreign key (외래 키)
- 외래키, 외부키, 참조키, 외부 식별자 등으로 불린다. 흔히 FK 라고 한다.
- FK 가 정의된 테이블을 자식 테이블이라고 칭한다.
- 참조되는 테이블. 즉, PK가 있는 테이블을 모두 부모 테이블 이라고 한다.
- 부모테이블은 자식의 데이터나 테이블이 삭제된다고 영향을 받지 않는다.
- 참조하는 데이터 컬럼과 데이터 타입은 반드시 일치해야 한다.
- 참조할 수 있는 컬럼은 기본키(PK) 이거나 UNIQUE 만 가능하다. (보통 PK랑 엮는다)
2. 삭제 옵션
2-1. on delete cascade : 참조되는 부모 테이블의 행에 대한 delete를 허용한다.
즉, 참조되는 부모테이블 값이 삭제되면 연쇄적으로 자식 테이블 값 역시 삭제된다.
2-2. on delete set null : 참조되는 부모 테이블의 행에 대한 delete를 허용한다.
부모 테이블의 값이 삭제되면 해당 참조하는 자식 테이블의 값들은 null 값으로 설정된다.
3. View (뷰)
- view 는 table 과 유사하며, 테이블처럼 사용한다.
- 테이블과는 달리 데이터를 저장하기 위한 물리적인 공간이 필요하지 않은 가상 테이블이다.
- 데이터를 물리적으로 갖지 않지만 논리적인 집합을 갖는다.
- 테이블과 마찬가지로 select, insert, update, delete 명령이 가능하다.
4. 시퀀스 (Sequence)
- 연속적으로 번호를 만들어 주는기능
- 자동으로, 순차적으로 증가하는 순번을 반환하는 데이터베이스 객체이다.
4-1. 시퀀스 구분
create sequence : 시퀀스 이름
increment by n : 증가값을 설정, 2 -> 2씩 증가, 기본값은 1
start with n : 시작값 설정, 기본값 1
maxvalue n : 시퀀스의 최대값을 설정
minvalue n : 시퀀스의 최소값을 설정
cycle/nocycle : 시퀀스를 반복적으로 사용할지를 설정
cache n : 시퀀스 속도를 개선하기 위한 캐싱여부 지정
5. index
5-1. 인덱스란?
- 조회 속도를 향상시키기 위한 데이터베이스 검색 기술
- 색인이라는 뜻으로 해당 테이블의 조회결과를 빠르게 하기 위해 사용
- 즉, 인덱스가 필요한 이유는 인덱스를 생성해 줌으로써 조회 속도를 빠르게 할 수 있다.
5-2. 인덱스가 불필요한 경우
- 데이터가 적은( 수천만건 미만) 경우에는 인덱스를 설정하지 않는게 오히려 성능에 좋다.
- 조회보다 삽입, 수정, 삭제, 처리가 많은 테이블
5-3. unique index
5-4. non-unique index