DBMS 외래키, 삭제 옵션, 뷰, 시퀀스, 인덱스

김태헌·2022년 9월 18일
post-thumbnail

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

  • 인덱스를 사용한 컬럼의 중복값들을 포함하지 않고 사용할 수 있는 장점

    create unique index 인덱스명
    on 테이블명(컬럼);

5-4. non-unique index

  • 인덱스를 사용한 컬럼에 중복 데이터 값을 가질 수 있다.

    create index 인덱스명
    on 테이블명(컬럼);

profile
개발자 과정 국비 수료 중

0개의 댓글