Introduction
1장부터 22장까지 설명하지 못한 고급 기능에 대해서 설명하는 장이다.
Content
1. 무엇을 제약 조건 이라고 하는가?
DB를 사용하다 보면, 정확한 정보만 들어가야 할 때가 있다. 임시 테이블에 값을 넣어 보아 잘 되나 안되나 체크 할 수 있으나, 너무 비효율적이기 때문에, 애초에 "이 값 아니면 안받을 꺼다." 라고 으름장(위협하는 것)을 놓는 것이다.
이 제약조건을 넣게 되면 다음과 같은 이점이 있다.
- 클라이언트가 제약 조건을 계산하지 않아도 된다.
- 무결성이 보장 된다.
실제로 가장 흔히 쓰는 제약 조건은 NOT NULL 일것이다.
2. 무엇을 기본 키 라고 하는가?
제약 조건 중 한가지로, 테이블에 있는 특정 열이 가진 값이 고유하게 유지시키는 제약 조건이다. 기본키는 다른 테이블과 엮기게 될 때, 자주 사용하며, 단일 레코드 선택을 위해서도 사용 된다.
몇가지 주의 사항이 있는데, 다음과 같다.
- NULL 일 수 없다.
- 기본키는 UPDATE 로 변경 되지 않는다.
- 기본키 값은 재사용 되지 않는다.
이 정도면 된다.
참조 링크
3. 무엇을 외래 키 라고 하는가?
기본 키 값으로 이루어진 열을 말한다. 기본키가 다른 레코드에서 외래 키로 쓰인다고 생각하면 된다. 외래키를 설정하면, 그 키가 가리키고 있는 테이블의 레코드가 실제로 있을 때만 작업할 수 있는 효과를 얻을 수 있다.
참조 링크
4. 무엇을 고유 제약 조건 이라고 하는가?
고유 제약 조건은 중복값을 갖지 않는 제약 조건이다. 기본 키와 비슷한 특징이지만, 다음과 같은 다른 점이 있다.
- 테이블 내 여러 열에 이 제약 조건을 추가 할 수 있다.
- NULL 값을 갖을 수 있다.
- UPDATE 로 수정이 가능하다.
- 고유값이라면 언제든지 재사용 가능하다.
- 외래 키로 설정할 수 없다.
참조 링크
5. 무엇을 CHECK 제약 조건 이라고 하는가?
열에 있는 데이터가 지정한 특정한 조건에 맞는지 검사하는 제약 조건이다. 이 제약 조건은 보통 최소/대값, 범위 지정, 특정한 값만 허용 등을 위해서 사용 된다. CHECK 제약 조건을 거는 방법은 참조 링크로 대체 한다.
참조 링크
- http://www.iwiz.pe.kr/bbs/view/dbms/article_14.html
- http://www.postgresplus.co.kr/man/ddl-constraints.html
6. 무엇을 인덱스라고 하며, 왜 사용 하는가?
인덱스는 쉽게 색인/차례 라고 보면 된다. 책을 보다가 특정 정보를 찾기 위해서 색인이나 차례를 봐서, 관련 페이지를 찾고, 관련 페이지로 한번에 쉽게 넘어 갈수 있듯이, 인덱스는 테이블의 색인/차례 이다.
그러므로 인덱스를 사용 하면, 원하는 것을 더 빠르게 찾을 수 있다. 그렇다고 이점만 있는것이 아니다. 인덱스인 열이 있을 경우, 그 열에 쓰기작업은 읽기 작업보다 많이 느려진다.
참조 링크
- http://www.devpia.com/DevStudy/Lecture/OffLineDetail.aspx?nSemiID=1429&lectype=evt
- http://silentvoyage.tistory.com/116
위의 링크는 꼭 보면 좋겠다. 이것으로 공부할 때 옵티마이저 같은 것들도 함께 봐야 한다는 것을 알았다.
7. 무엇을 트리거 라고 하는가?
한 테이블이 변화 될 때, 호출되는 저장 프로시저를 트리거 라고 말한다. 어떻게 사용 하는지는 참조 링크를 보길 바란다. 주의 해야 할 점음 제약조건인 기능은 트리거로 만들면 성능 저하가 생긴다.
참조 링크
- http://www.sqlworld.pe.kr/mboard/mboard/mboard.asp?board_id=sql01&group_name=board&idx_num=13
- http://ask.nate.com/qna/view.html?n=9111616
8. 무엇을 데이터베이스 보안 이라고 하는가?
대문은 자물쇠로 걸어 둔다.. 자물쇠는 열쇠로 풀수 있다. 자물쇠가 풀리면 대문이 열린다. 대문을 열면 들어 갈 수 있다. 여기서 자물쇠를 걸어 두는 것은 열쇠를 갖은 자만이 들어 오도록 제한을 두는 것이다. 이 제한을 보안이라고 한다.
데이터 베이스 보안은 다음등을 말한다.
- 데이터 베이스 접근, 생성, 삭제 제한
- 테이블 접근 제한
- 테이블 생성, 변경, 삭제 제한
- 저장 프로시저 사용 제한
- 다른 사용자 제한을 설정하는 제한
참조 링크
Digression
이것으로 이 책을 다 훎터 보았다. 이제 조금 더 깊게 SQL 에 들어간 책을 봐야 할 차례가 왔다.
'책 정리 > 하루 10분씩 핵심만 골라 마스터하는 SQL' 카테고리의 다른 글
하루 10분씩 핵심만 골라 마스터하는 SQL - 다 읽고 나서... (0) | 2010.02.21 |
---|---|
21장, 커서 사용 : DECLARE CURSOR (359) | 2010.02.18 |
20장, 트랜잭션 처리 : BEGIN TRANSACTION ~ COMMIT TRANSACTION (0) | 2010.02.15 |
19장, 저장 프로시저의 사용 : CREATE PROCEDURE FUNCTION ~ EXECUTE (0) | 2010.02.10 |
18장, 뷰 사용 : CREATE VIEW ~ DROP VIEW (0) | 2010.02.07 |
17장, 테이블의 생성과 제어 : CREATE TABLE ~ ALTER TABLE (0) | 2010.02.05 |
16장, 데이터의 업데이트와 삭제 : UPDATE DELETE (0) | 2010.02.05 |
15장, 데이터 삽입 : INSERT INTO ~ SELECT INTO (0) | 2010.02.02 |
14장, 쿼리의 결합 : UNION 으로 쿼리 결합하기 (0) | 2010.02.02 |
13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN (360) | 2010.01.31 |
최근댓글