관계형 모델: 데이터를 정의하고 데이터 간의 관계를 규정, 데이터의 의미, 데이터의 제약 조건 등을 나타내는 모델
관계형 데이터베이스: a set of relations
릴레이션: Schema와 Instance로 구성된다.
DBMS는 릴레이션 내의 데이터가 지켜야 할 조건들을 관리한다. 스키마가 정의될 때 구체화되며, 릴레이션의 변경 (insert, delte, update)가 발생할 때 제약 조건을 검사한다.
유일성은 만족하지만 최소성을 만족하지 않는 키 (더 정확히는, 최소성에 관한 제약조건이 없기 때문에 최소성을 지켜도, 안지켜도 된다). 예를 들어, 학생의 학번은 고유 번호이기 때문에 유일성과 최소성을 만족한다. 그러나 학생의 이름, 나이, 성별 등은 중복이 가능하여 유일성을 만족하지 않는다. 만약 (학번,이름,나이,성별)을 키로 사용한다면, 이름, 나이, 성별은 중복이 가능하지만 학번으로 인해 유일성을 가지게 된다. 그러나 이름, 나이, 성별은 각 튜플을 구분하는데 꼭 필요한 속성이 아니기 때문에 최소성을 만족하지 못한다. 따라서 (학번,이름,나이,성별)은 유일성을 만족하지만 최소성을 만족하지 않는 슈퍼키가 된다.
슈퍼키가 유일성만 만족하고 최소성에는 제약이 없었다면, 후보키는 유일성과 최소성 모두 요구된다. UNIQUE를 통해 후보키로 설정될 수 있으며, 이러한 후보키 중 하나가 기본키가 된다. 기본키로 적절한 조건은 다음과 같다.
후보키 중 하나로 선정된 키
후보키 중 기본키를 제외한 키
어떤 릴레이션의 특정 field 또는 field 집합이 다른 릴레이션의 기본키인 경우, 이를 외래키라 한다. 데이터 무결성을 위해 존재한다. 예를 들어 주문 릴레이션에서 고객의 id를 외래키로 하는 경우, 고객의 id가 변경되면 주문에서의 고객 id 역시 변경된다. 그러나 고객의 id를 외래키로 하지 않고 고유하게 관리한다면, 고객 릴레이션과 주문 릴레이션에서의 고객 id 값이 달라질 수 있다. 또한 외래키로 지정이 되면, 참조하는 테이블에 없는 값은 입력이 불가하다.
Foreign Key의 참조 키 update/delete에 대해 다음과 같은 처리가 가능하다.
일종의 가상 릴레이션이다. 따라서 실제로 디스크에 해당 뷰에 대한 저장 공간의 할당이 이루어지는 것이 아닌, 딕셔너리 테이블에 뷰에 대한 정의만 저장된다. 또한 뷰에 대한 update, delete 등의 수정은 해당 뷰가 참조하는 원본 테이블에 대해서도 이루어진다. 뷰를 통해 사용자 별로 특정 객체에 대한 접근 권한을 설정 가능하며, 논리적 독립성이 제공된다.