一個ER模型必然需要對於其內容做出約束,接下來我們會從mapping cardinality 和participation constraints,keys講起。
mapping cardinalities
cardinality,字面意義是基數,盡管對於多元組來說mapping cardinality也是有用的,但是這里我們主要討論二元組的mapping cardinality類型:
第一類:one to one,假設ES(entity set) L,R,那么對於L里的一個entity a來說,R中有且只有一個b是和它有聯系的,對於b來說vice versa.
第二類:one to many,接上文來說,L中的a可以於R中多個元素有聯系,但是R中的一個元素只能和L中的一個產生聯系。
同理,還有many to many & many to one
participation constraints
對於一個ES和一個RS來說,如果ES中每一個entity都在這個R中出現過一次,那么ES對於RS的關系就是total participation 如果有些entity沒有出現在RS中,那么就是partial participation.
keys:
因為這個是數據庫的基本概念就不怎么多講了,值得一提的是關系也可以通過主鍵的並集來描述,設RS,R為(e1,e2,e3…en|e1<-E1,e2<-E2,e3<-E3…en<-En(<-此處為屬於的意思)),那么描述這個關系的主鍵就是(primary key(E1)+primary key(E2)…+primary key(En)).如果關系有describe attributes,那么就是(primary key(E1)+primary key(E2)…+primary key(En)+set of describe attributes).