《交互式程序设计 第2版》一3.6 关系比较
本節(jié)書摘來華章計(jì)算機(jī)《交互式程序設(shè)計(jì) 第2版》一書中的第3章 ,第3.6節(jié),Joshua Noble 著 毛順兵 張婷婷 陳宇 沈鑫 任燦江 譯更多章節(jié)內(nèi)容可以訪問云棲社區(qū)“華章計(jì)算機(jī)”公眾號(hào)查看。
3.6 關(guān)系比較
與元組類型類似,關(guān)系類型也逃不過“'='比較運(yùn)算符必須對(duì)每種類型都定義”這一規(guī)則;即,對(duì)于同種類型T的兩個(gè)關(guān)系r1和r2,必須至少能檢驗(yàn)它倆是否相等。其他的比較可能也是有用的。比如,我們可能想檢驗(yàn)是否有“r1包含r2(即r2中的所有元組也在r1中)”,或者是否有“r1完全包含r2(即r2中的所有元組也在r1中,且r1至少包含一個(gè)不在r2種的元組)”。下面是一個(gè)關(guān)系相等性比較的實(shí)例,依舊用Tutorial D表達(dá):
S { CITY } = P { CITY }此處,左側(cè)的比較元是供應(yīng)商在{CITY}注7上的投影,右側(cè)比較元是零件在{CITY}上的投影,如果兩個(gè)投影是相等的,則比較運(yùn)算返回TRUE,否則返回FALSE。換言之,這個(gè)比較(布爾表達(dá)式)意味著“供應(yīng)商城市集合與零件城市集合相等”(當(dāng)然,它的計(jì)算結(jié)果不是TRUE就是FALSE)。
另一個(gè)示例如下:
此處的符號(hào)“”代表“完全包含(properly include)”(或等價(jià) “是其真超集”(is a proper superset of))。此表達(dá)式的含義是(意會(huì)):一些供應(yīng)商根本沒供應(yīng)任何零件型號(hào)(計(jì)算結(jié)果不是TRUE就是FALSE)。
其他有用的關(guān)系比較運(yùn)算符包括“△”(“包含”),“”(“包含于”)和“
”(“完全包含于”)。注意:在這些運(yùn)算符中,人們常常會(huì)認(rèn)為“
”運(yùn)算符就是“那個(gè)”關(guān)系包含運(yùn)算符。
一個(gè)特別常見的需求就是,把某個(gè)確定的關(guān)系r和同類型的空關(guān)系進(jìn)行“=”比較,也就是說,這是一個(gè)用來檢驗(yàn)是否為空的測(cè)試。因此,定義一個(gè)縮寫是很方便的:
此表達(dá)式定義為在關(guān)系r為空時(shí)返回TRUE,否則返回FALSE。后續(xù)章節(jié)將非常依賴這個(gè)表達(dá)式(尤其是第8章)。它的反運(yùn)算符也很有用:
IS_NOT_EMPTY ( r )此表達(dá)式邏輯等價(jià)于NOT (IS_EMPTY (r))。
總結(jié)
以上是生活随笔為你收集整理的《交互式程序设计 第2版》一3.6 关系比较的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Leedcode][JAVA][第19
- 下一篇: html 常用字符,html 常用特殊字