테이블은 attr 의 집합인 hedding 과 일치하는 튜플들의 집합이다. 이떼 릴레이션의 관계는 튜플들의 관계가 있다는 의미임. 헤딩의 attr을 만족하는 관계를 갖고 있다. 릴레이션이 릴레이션들 사이의 관계를 이야기 하는게 아니라 ㄹ릴레이션 내의 튜플들이 관계가 있다는 뜻이다. 헤딩에 있는 attr가 그 튜플에는 다 나와라는 뜻이다.
튜플을 집합의 개념으로 넣기 위해선 튜플을 대표하는 하나의 값으로 만들어야 된다. 그래서 우리는 유니크 키값을 그 튜플의 대표값으로 쓰고 중복되지 앟도록 하나의 대표하는 값으로 만들어준다.
집합은 독립되어 있고 중복되지 않은 값들만 포함할 수 있고 만약 릴레이션을 집합으로 사용하기 위해선 각각의 튜플이 하나의 값으로 대표했을때 중복되면 안된다.
집합에 나오는 수학적 이론을 사용하기 위해선 무조건 튜플이 하나의 값으로 치환 됬을때 중복 되지 않게 릴레이션 안에 포함되있어야되를 만족해야함. 이게 집합의 이론에서 배울 수 있는 가장 중요한 점이다.
restrict는 부분 집합이기 때문에 원래의 헤더를 공유하고 있음. 원래의 릴레이션의 헤더를 변경할 필요가 없는 릴레이션이다.그래서 sql의 where 절에 들어간다. Sql select에 들어가지 않아도됨. sql에서 릴레이션을 지정할 때 From으로 지정을 한다. 근데 왜 where절에 들어가도 되냐면 헤더가 일치하기 때문이다. where 조건으로 줋이면 릴레이션의 header가 일치하기 때문에 from절에 있는 애의 헤더를 이어받는다. 왜 restrict만을 위한 where 가 있냐면 릴레이션 헤더가 똑같기 때문에 from 뒤의 where로 들어갈 수 있는것임. From where은 from에 있는 릴레이션이 일치하는 헤더가 일치하는 릴레이션의 부분집합을 where에 있는 수식으로 줋이는 것임.
나머지 extend나 projection 모두 셀렉트 문에 들어간다. select문에 들어가는건 relation의 heading을 바꾸는 것이다.
join을 해도 릴레이션의 헤딩이 변하진 않음 . 릴레이션은 select 구문에 join한 테이블에 필드를 등장시킬때만 바뀜
UNOIN을 쓴다고 하더라도 select 구문에 관여하지 않음. 이미 존재하는 릴레이션에 합산을 했기 때문이다.
헤딩을 변경하는거에 따라 연산의 종류가 달라진다는게 핵심
Alias 는 결국 DB에서 제공하는 키워드며, 릴레이션의 헤딩의 속성을 변경하는 것임.