DB 2017

김명윤·2023년 12월 10일

데베입

목록 보기
6/8

relational algebra vs relational calculus

relational algebra는 문제를 풀기 위한 절차를 r규정하고, relational calculus는 문제가 무엇인지 정의한다. 또한 relational algebra는 procedural하고 relational calculus는 non-procedural 하다. 따라서 relational algebra는 programming language와 비슷하고(procedural), relational calculus는 natural language와 비슷하다.

semijoin

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') )

referential action

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

“Get supplier numbers for suppliers who supply at least all those parts supplied by supplier S2




관계형 대수:
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# ) )

임의의 FD X->Y가 S로부터 논리적으로 유도될 수 있는지 여부를 검사하는 절차를 기술

profile
김변

0개의 댓글