예시 : customer (Customer_schema) - 고객에 대한 관계 스키마는 Customer_schema이다.
다음은 속성과 튜플을 나타낸 그림입니다. customer이라는 데이터 베이스가 있을때 구분 짓는 역할을 하는 속성을 애트리뷰트라고 많이 부르며 그 내용물들을 튜플(tuple)이라고 많이 부릅니다.
3. 데이터 베이스
데이터 베이스는 여러 관계로 구성됩니다. 기업에 대한 정보는 각 부분이 정보의 한 부분을 저장하는 식으로 나뉩니다.
예시(은행 데이터베이스) :
(1) 계정 : 예금주에 대한 정보를 저장합니다.
(2) 예금주 : 고객이 어떤 계좌를 소유하고 있는지에 대한 정보를 저장합니다.
(3) 고객 : 고객에 관한 정보를 저장합니다.
모든 정보를 bank bank (account_number, balance, customer_name, ..)와 같이 단일 관계로 저장하면 정보의 반복이나 계정이 없는 고객(NULL값으로 표현)등 여러 문제가 발생할 것입니다. 따라서 데이터 베이스는 여러 관계로 나누어 구성합니다.
예시 : 관계를 2개로 나눈 데이터베이스의 모습 (customer_name 위주로 단일 관계로 구성하지 않았다)
# 키(Keys)
K 가 R 집합에 포함된다고 해봅시다.
K에 대한 값이 관계에 속한 튜플을 고유하게 식별하기에 충분한 경우 K는 R의 슈퍼키(superkey)입니다.
예시 ) 두 명의 고객이 동일한 이름을 가질 수없는 경우 {customer_name, customer_street} 및 {customer_name}은 모두 고객의 슈퍼키입니다.
후보키 : 관계를 구성하는 속성들 중 튜플을 식별하기 위해 사용하는 속성들의 부분집합이다. 기본키로 사용할 수 있는 속성들을 말한다.
기본키 : 후보키 중에서 선택한 중심이 되는 키를 말하며 주어진 관계에서 특정 튜플을 유일하게 구별할 수 있는 속성이다.