% % Understanding Relational Database Query Languages, S. W. Dietrich, Prentice Hall, 2001. % %--------------------------------------------------------------------------------------------------------------------------- % DOMAIN RELATIONAL CALCULUS (DRC) %--------------------------------------------------------------------------------------------------------------------------- % Abstract Division Example % % abTable(a,b) % primary key (a, b) % bTable(b) % primary key (b) %--------------------------------------------------------------------------------------------------------------------------- universalDivision := { A | abTable(A, _) and (forall B) (not bTable(B) or abTable(A,B) ) }; forallExistsEquivalence := { A | abTable(A, _) and not (exists B) (not (not bTable(B) or abTable(A,B) ) )}; existentialDivision := { A | abTable(A, _) and not (exists B) (bTable(B) and not abTable(A,B)) };