본문 바로가기

책 정리/하루 10분씩 핵심만 골라 마스터하는 SQL

22장, 고급 SQL 기능의 이해

Introduction

1장부터 22장까지 설명하지 못한 고급 기능에 대해서 설명하는 장이다.

Content

1. 무엇을 제약 조건 이라고 하는가?

DB를 사용하다 보면, 정확한 정보만 들어가야 할 때가 있다. 임시 테이블에 값을 넣어 보아 잘 되나 안되나 체크 할 수 있으나, 너무 비효율적이기 때문에, 애초에 "이 값 아니면 안받을 꺼다." 라고 으름장(위협하는 것)을 놓는 것이다.

이 제약조건을 넣게 되면 다음과 같은 이점이 있다.

  • 클라이언트가 제약 조건을 계산하지 않아도 된다.
  • 무결성이 보장 된다.

실제로 가장 흔히 쓰는 제약 조건은 NOT NULL 일것이다.

2. 무엇을 기본 키 라고 하는가?

제약 조건 중 한가지로, 테이블에 있는 특정 열이 가진 값이 고유하게 유지시키는 제약 조건이다. 기본키는 다른 테이블과 엮기게 될 때, 자주 사용하며, 단일 레코드 선택을 위해서도 사용 된다.

몇가지 주의 사항이 있는데, 다음과 같다.

  • NULL 일 수 없다.
  • 기본키는 UPDATE 로 변경 되지 않는다.
  • 기본키 값은 재사용 되지 않는다.

이 정도면 된다.

참조 링크

3. 무엇을 외래 키 라고 하는가?

기본 키 값으로 이루어진 열을 말한다. 기본키가 다른 레코드에서 외래 키로 쓰인다고 생각하면 된다. 외래키를 설정하면, 그 키가 가리키고 있는 테이블의 레코드가 실제로 있을 때만 작업할 수 있는 효과를 얻을 수 있다.

참조 링크

4. 무엇을 고유 제약 조건 이라고 하는가?

고유 제약 조건은 중복값을 갖지 않는 제약 조건이다. 기본 키와 비슷한 특징이지만, 다음과 같은 다른 점이 있다.

  • 테이블 내 여러 열에 이 제약 조건을 추가 할 수 있다.
  • NULL 값을 갖을 수 있다.
  • UPDATE 로 수정이 가능하다.
  • 고유값이라면 언제든지 재사용 가능하다.
  • 외래 키로 설정할 수 없다.

참조 링크

5. 무엇을 CHECK 제약 조건 이라고 하는가?

열에 있는 데이터가 지정한 특정한 조건에 맞는지 검사하는 제약 조건이다. 이 제약 조건은 보통 최소/대값, 범위 지정, 특정한 값만 허용 등을 위해서 사용 된다. CHECK 제약 조건을 거는 방법은 참조 링크로 대체 한다.

참조 링크

6. 무엇을 인덱스라고 하며, 왜 사용 하는가?

인덱스는 쉽게 색인/차례 라고 보면 된다. 책을 보다가 특정 정보를 찾기 위해서 색인이나 차례를 봐서, 관련 페이지를 찾고, 관련 페이지로 한번에 쉽게 넘어 갈수 있듯이, 인덱스는 테이블의 색인/차례 이다.

그러므로 인덱스를 사용 하면, 원하는 것을 더 빠르게 찾을 수 있다. 그렇다고 이점만 있는것이 아니다. 인덱스인 열이 있을 경우, 그 열에 쓰기작업은 읽기 작업보다 많이 느려진다.

참조 링크

7. 무엇을 트리거 라고 하는가?

한 테이블이 변화 될 때, 호출되는 저장 프로시저를 트리거 라고 말한다.  어떻게 사용 하는지는 참조 링크를 보길 바란다. 주의 해야 할 점음 제약조건인 기능은 트리거로 만들면 성능 저하가 생긴다.

참조 링크

8. 무엇을 데이터베이스 보안 이라고 하는가?

대문은 자물쇠로 걸어 둔다.. 자물쇠는 열쇠로 풀수 있다. 자물쇠가 풀리면 대문이 열린다. 대문을 열면 들어 갈 수 있다. 여기서 자물쇠를 걸어 두는 것은 열쇠를 갖은 자만이 들어 오도록 제한을 두는 것이다. 이 제한을 보안이라고 한다.

데이터 베이스 보안은 다음등을 말한다.

  • 데이터 베이스 접근, 생성, 삭제 제한
  • 테이블 접근 제한
  • 테이블 생성, 변경, 삭제 제한
  • 저장 프로시저 사용 제한
  • 다른 사용자 제한을 설정하는 제한

참조 링크

Digression

이것으로 이 책을 다 훎터 보았다. 이제 조금 더 깊게 SQL 에 들어간 책을 봐야 할 차례가 왔다.