relational algebra는 문제를 풀기 위한 절차를 r규정하고, relational calculus는 문제가 무엇인지 정의한다. 또한 relational algebra는 procedural하고 relational calculus는 non-procedural 하다. 따라서 relational algebra는 programming language와 비슷하고(procedural), relational calculus는 natural language와 비슷하다.
relation A와 B를 semijoin 한다는 것은 A와 B를 join하되 A의 attribute에 의해 projection을 취한다는 것을 의미한다.
다시 말해서, semijoin한 결과 생성된 relation body는 B에 대응되는 값이 있는 A의 tuple들로 구성되게 된다.
Ex) Get S#, SNAME, STATUS, and CITY for suppliers who supply part P2:
S SEMIJOIN ( SP WHERE P# = P# ('P2') )


참조 작업에는 외래 키 관계가 있는 테이블에서 삭제 또는 업데이트와 같은 작업이 수행될 때 참조 무결성을 유지하기 위한 규칙을 정의하고 적용하는 작업이 포함됩니다. 참조 무결성은 테이블 간의 관계가 유효하고 일관되게 유지되도록 보장합니다.



관계형 대수:
S {S#} DIVIDEBY ( SP WHERE S# = S#('S2') ) {P#} PER SP{S#, P#}
튜플 해석:
SX.S# WHERE FORALL SPX ( SPX.S# ≠ S#('S2') OR EXISTS SPY ( SPY.S# = SX.S# AND
SPY.P# = SPX.P# ) )
