키(Key)는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 Attribute(속성)이다.
※ 튜플 : 릴레이션을 구성하는 각각의 행, 속성의 모임으로 구성된다. 파일 구조에서는 레코드와 같은 개념, 튜플의 수 = 카디널리티(Cardinality) = 기수 = 대응수
슈퍼키는 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로서 튜플을 유일하게 식별할 수 있도록 해주는 1 or 2 이상의 속성들의 집합이다.
ex) <학생> 릴레이션에서는 'ID', '주민번호', 'ID'+'e-mail', 'ID'+'주민번호'+'성명' 등으로 슈퍼키를 구성할 수 있다.
또한 여기서 최소성을 만족시키지 못한다는 말은 'ID'+'e-mail'+'성명'이 슈퍼키인 경우 3개의 속성 조합을 통해 다른 튜플과 구별이 가능하지만, '성명' 단독적으로 슈퍼키를 사용했을 때는 구별이 가능하지 않기 때문에 최소성을 만족시키지 못한다. 즉 뭉쳤을 경우 유일성이 생기고, 흩어지면 몇몇 속성들은 독단적으로 유일성있는 키로 사용할 수 없다. 이것을 최소성을 만족하지 못한다고 한다.
릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별할 수 있는 속성들의 부분집합을 의미한다.
ex) <학생> 릴레이션에서 'ID'나 'e-mail'는 다른 레코드를 유일하게 구별할 수 있는 기본키로 사용할 수 있으므로 후보키가 될 수 있다. 즉 기본키가 될 수 있는 키들을 후보키라고 한다.
후보키 중에서 선택한 주키(Main Key)라고 하고 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성이다.
ex) <학생> 릴레이션에는 'ID'나 '주민번호'가 기본키가 될 수 있고, <수강> 릴레이션에는 '학번'+'과목명'으로 조합해야 기본키가 만들어 질 수 있다. 왜냐면 <수강> 릴레이션에서는 '학번' 속성과 '과목명' 속성 각각은 다른 튜플들과 구별되지 않기 때문에 개별적으로 기본키로 사용할 수 없다.
<학생> 릴레이션에서 'ID'를 기본키로 정의되면 이미 입력된 '1001'은 다른 튜플의 'ID' 속성 값으로 입력할 수 없다.
후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키들을 말한다. 보조키라고도 불린다.
ex) <학생> 릴레이션에서 'ID'을 기본키로 정의하면 '주민번호'는 대체키가 된다.
관계(Relation)를 맺고 있는 릴레이션 R1, R2에서 릴레이션 R1이 참조하고 있는 릴레이션 R2의 기본키와 같은 R1 릴레이션의 속성을 의미한다.
ex) <수강> 릴레이션이 <학생> 릴레이션을 참조하고 있으므로 <학생> 릴레이션의 'ID'는 기본키이고, <수강> 릴레이션의 'ID'는 외래키이다.
ex) <수강> 릴레이션의 'ID'에는 <학생> 릴레이션의 'ID'에 없는 값은 입력할 수 없다.
데이터베이스에서 아직 알려지지 않았거나, 모르는 값으로서 "해당 없음" 등의 이유로 정보 부재를 나타내기 위해 사용하는, 이론적으로 아무것도 없는 특수한 데이터를 뜻한다. 값이 0이 아니라 값을 알 수 없는 것이다.
NULL이 포함된 비교 연산에 대한 결과 값이 NULL이다.
산술연산에 대한 결과 값이 NULL이다.
Aggregate function을 이용한 평균 연봉을 구할 때, avg를 이용하는 경우와 sum과 count를 이용하는 경우에 한 해 결과 값이 다를 수 있다.
논리연산에서는 알 수도 있고 모를 수도 있다.