참조 무결성
유효한 데이터만 테이블에 삽입된다는 보장
새로운 행 삽입 시 제약 조건을 통해 잘못된 데이터 삽입을 방지함
외래 키
테이블에 있는 열이면서 그 값이 다른 테이블의 기본 키 값 중에 꼭 존재해야 하는 열
참조 무결성을 보장하기 위해 사용됨
고유 키 무결성 제약 조건
모든 데이터가 동일한 값을 가질 수 없음을 보장 (기본 키와 비슷하지만 다른 점이 있음)
테이블은 여러 고유 키 무결성 제약조건을 가질 수 있다.
NULL 값을 가질 수 있다.
수정이 가능하다.
재사용이 가능하다.
외래 키로 사용될 수 없다.
체크 무결성 제약 조건
허용 가능한 데이터의 범위나 조건을 지정하는 제약 조건
ex - 최솟값, 최댓값 지정 / 특정 값만 허용 ...
인덱스
데이터를 논리적으로 정렬하여 검색과 정렬 작업 시 속도를 높이는 데 사용
인덱스로 정의한 열은 DBMS가 정렬해서 저장해놓음
인덱스의 특징
검색을 빠르게 하지만, 데이터 삽입, 수정, 삭제 성능은 저하됨
저장 공간을 많이 차지함
도시명, 국가명 등 중복 데이터가 많은 경우 정의하여 얻는 이득이 별로 없음
데이터 필터링과 정렬에 사용. 특정 순서로 데이터를 자주 정렬한다면 인덱싱 후보가 될 수 있음
여러 열을 하나의 인덱스로 정의할 수 있음
CREATE INDEX 구문으로 생성
트리거
특정한 데이터베이스 작업 발생 시 자동으로 수행되는 특별한 저장 프로시저
저장 프로시저와는 달리 테이블과 묶여서 동작함 - ex) Orders 에 INSERT 작업 발생 시 ~~~, Products 에 UPDATE 작업 발생 시 ~~~
트리거의 특징
INSERT, UPDATE, DELETE 에서 사용한 데이터에 접근할 수 있음
트리거의 일반적인 용도
데이터 일관성 보장
테이블 변화를 감지하여 특정한 작업 수행
추가적인 데이터 유효성 검사나 데이터 롤백 수행
다른 열들의 값을 기초로 어떠한 계산을 하거나 타임스탬프를 갱신
데이터베이스 보안
데이터는 조직에서 매우 중요하므로 대부분의 DBMS 가 데이터 접근 권한을 부여하거나 제재하는 매커니즘을 보유하고 있다.
운영체제 보안과 사용하거나, DBMS 내부에 사용자와 패스워드 목록을 저장하거나, 외부 서버와 연동하는 등 다양한 방식으로 동작한다.
SQL GRANT 와 REVOKE 문으로 관리할 수 있음
보안 처리되어야할 작업
테이블 생성, 변경, 삭제와 같은 접근
특정 데이터베이스나 테이블에 대한 접근
'읽기 전용', '특정 열에만 접근' 과 같은 접근 유형
뷰나 저장 프로시저를 통해서만 접근할 수 있는 테이블 지정
사용자 계정 관리 권한
참고.
계단식 삭제: 일부 DBMS 에서 지원하는 기능으로, 테이블에서 행이 삭제되면 관련된 행을 모두 삭제하는 기능
사용자 정의 데이터형: 일부 DBMS 에서 지원, 데이터형 뿐만 아니라 체크 무결성 제약 조건이나 다른 제약 조건을 더하여 재사용하기 위해 정의할 수 있는 기능
제약 조건이 트리거보다 빠르다 - 가능하면 트리거보다는 제약 조건으로 처리하자.