国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營銷資訊 > 信息時(shí)代 > 完整性約束(數(shù)據(jù)庫)

完整性約束(數(shù)據(jù)庫)

時(shí)間:2022-11-27 14:30:01 | 來源:信息時(shí)代

時(shí)間:2022-11-27 14:30:01 來源:信息時(shí)代

    完整性約束 : 保護(hù)數(shù)據(jù)庫中數(shù)據(jù)的正確性和一致性所進(jìn)行的各種檢查或數(shù)據(jù)應(yīng)滿足的條件。完整性約束一般由一個(gè)謂詞表達(dá)式表示,例如,sp表的qty屬性應(yīng)該大于零: sp.qty>0。它也可以包括參數(shù)引用,即由游標(biāo)所限定的引用(在觸發(fā)條件中所指定的游標(biāo)),引用記錄或記錄中的字段,如游標(biāo)c1指向emp表的emp#屬性: c1->emp.emp#。它還可以包括聯(lián)結(jié)的記錄和字段,如sp表的s#屬性與s表的s#屬性相等:sp.s#=s.s#。
數(shù)據(jù)庫完整性約束能夠防止合法用戶使用數(shù)據(jù)庫時(shí)向數(shù)據(jù)庫中添加不合語義的數(shù)據(jù)。
從不同的數(shù)據(jù)粒度來講,完整性約束條件作用的對(duì)象可以是字段、記錄和表三種。其中字段約束主要是字段的類型、取值范圍、精度、排序等約束條件。記錄約束是記錄中各個(gè)字段間的聯(lián)系的約束。表約束是若干記錄間、關(guān)系集合上以及表之間的聯(lián)系的約束。從不同的數(shù)據(jù)狀態(tài)來講,完整性約束條件的控制可以是靜態(tài)的,也可以是動(dòng)態(tài)的。靜態(tài)約束是對(duì)數(shù)據(jù)庫狀態(tài)的約束,例如,在任何狀態(tài),職員的年齡都必須滿足[0,150]取值約束條件。動(dòng)態(tài)約束是指數(shù)據(jù)庫從一種狀態(tài)轉(zhuǎn)變?yōu)榱硪环N狀態(tài)時(shí),應(yīng)遵守的約束。例如,職員的年齡每年只會(huì)增長,不會(huì)減小,每年更新年齡時(shí)必須滿足此約束條件。
綜合上述兩個(gè)方面,可以將完整性約束條件分為六類: 靜態(tài)字段約束、靜態(tài)記錄約束、靜態(tài)表約束、動(dòng)態(tài)字段約束、動(dòng)態(tài)記錄約束、動(dòng)態(tài)表約束。
1.靜態(tài)字段約束
靜態(tài)字段約束是對(duì)一個(gè)字段的取值域的說明,一般在建立數(shù)據(jù)庫表結(jié)構(gòu)時(shí)完成,包括以下幾方面:
(1)對(duì)數(shù)據(jù)類型的約束:如中國工商銀行數(shù)據(jù)庫中儲(chǔ)戶姓名、身份證號(hào)碼、住址等數(shù)據(jù)類型都規(guī)定為字符型,存款金額規(guī)定為浮點(diǎn)數(shù)值型。
(2)對(duì)數(shù)據(jù)長度、精度的約束:如中國工商銀行數(shù)據(jù)庫中人民幣業(yè)務(wù)儲(chǔ)戶姓名的數(shù)據(jù)類型規(guī)定為字符型,長度為8。而該行國際業(yè)務(wù)中儲(chǔ)戶姓名的數(shù)據(jù)類型規(guī)定為字符型,長度為20,因?yàn)閲H業(yè)務(wù)儲(chǔ)戶中有大量外國的儲(chǔ)戶姓名較長。存款金額的精度為小數(shù)2位。
(3)對(duì)數(shù)據(jù)格式的約束:如規(guī)定銀行賬號(hào)的前六位表示銀行行號(hào),中間三位表示儲(chǔ)戶的性質(zhì),后四位為順序編號(hào)。存取日期的格式為YYYY/MM/DD。
(4)對(duì)數(shù)據(jù)取值范圍或取值集合的約束。如,規(guī)定定期存款存期的取值集合為[0.25,0.5,1,2,3,5,8,10],未預(yù)約取款金額的取值范圍為0.01~49999.99。
(5)對(duì)數(shù)據(jù)空值的約束:在實(shí)際設(shè)計(jì)時(shí),有的字段允許空值,有的則不允許。例如,儲(chǔ)戶的姓名不能取空值,住址可以為空值。
(6)其他約束:包括主鍵的說明等,例如,將賬號(hào)字段作為主鍵。
2.靜態(tài)記錄約束
靜態(tài)記錄約束規(guī)定記錄的各個(gè)字段之間的約束關(guān)系,在數(shù)據(jù)庫狀態(tài)改變時(shí),只檢查被操作的特定記錄即可導(dǎo)出該約束,而與該關(guān)系中的其他記錄值或其他關(guān)系無關(guān)。
例如,人事檔案中職員的年齡一般不大于150歲,因此在更新某人的檔案時(shí),對(duì)年齡值只檢查是否在18~150歲之間即可,而與其他人的檔案無關(guān),職員關(guān)系中包含職務(wù)、工資等列,規(guī)定經(jīng)理的工資不低于1000元。又如,訂貨關(guān)系中包含發(fā)貨量、訂貨量等列,規(guī)定發(fā)貨量不得超過訂貨量。
3.靜態(tài)表約束
(1) 表約束(table constraint)主要有以下幾方面的約束:①對(duì)關(guān)系模式的約束(如第一范式要求);②對(duì)關(guān)系模式屬性取值的約束(如,人的年齡應(yīng)小于200歲)和屬性之間的取值約束(如,函數(shù)依賴和多值依賴);③關(guān)系模式之間屬性的取值約束(如參照完整性約束)。
在一個(gè)表的各個(gè)記錄之間或者若干個(gè)表之間常常存在各種聯(lián)系或約束。
(2)常見的靜態(tài)表約束有: ①實(shí)體完整性約束;②參照完整性約束; ③函數(shù)依賴約束: 大部分函數(shù)依賴約束都在關(guān)系模式中定義: ④統(tǒng)計(jì)約束(statistical constraint):指字段值與表中多個(gè)記錄的統(tǒng)計(jì)值之間的約束關(guān)系。在數(shù)據(jù)庫狀態(tài)改變時(shí),其值的變化要受對(duì)原數(shù)據(jù)庫值進(jìn)行統(tǒng)計(jì)結(jié)果的約束。
例如,供貨單中的數(shù)量,不應(yīng)超過倉庫中的庫存量。為提高效率,該約束一般不在每個(gè)更新時(shí)檢查,而用運(yùn)行一個(gè)周期性的檢查程序來代替,使之簡單掃描數(shù)據(jù)并報(bào)告例外情況,然后采取特殊措施來彌補(bǔ)發(fā)現(xiàn)的任何錯(cuò)誤。又如: 規(guī)定教授的工資不得高于本學(xué)院教職工平均工資的4倍,不得低于本學(xué)院教職工平均工資的1.5倍。這里,本學(xué)院教職工的平均工資是一個(gè)統(tǒng)計(jì)值。
4. 動(dòng)態(tài)字段約束
動(dòng)態(tài)字段約束指修改字段定義或數(shù)據(jù)項(xiàng)值時(shí)應(yīng)滿足的約束條件,包括下面兩方面:
(1)修改字段定義時(shí)的約束:如將允許空值的字段改為不允許空值時(shí),如果該字段目前已存在空值,則拒絕這種修改。
(2)修改數(shù)據(jù)項(xiàng)值時(shí)的約束:指在修改數(shù)據(jù)項(xiàng)值時(shí),需要保持與原數(shù)據(jù)項(xiàng)值應(yīng)有的某種依賴或函數(shù)關(guān)系的約束條件。如職員年齡只能增長,工資增長幅度不低于5%等。
5.動(dòng)態(tài)記錄約束
動(dòng)態(tài)記錄約束指修改記錄的值時(shí)記錄中各個(gè)字段間需要滿足的某種約束條件。如計(jì)算銷售獎(jiǎng)金時(shí),獎(jiǎng)金值不得低于個(gè)人銷售額的5%,而不得高于個(gè)人銷售額的8%等。
6.動(dòng)態(tài)表約束
動(dòng)態(tài)表約束是加在數(shù)據(jù)庫表變化前后狀態(tài)上的限制條件,例如,事務(wù)一致性、原子性等約束條件。

74
73
25
news

版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉