當前位置:歷史故事大全網 - 圖書館 - 計算機專業畢業論文

計算機專業畢業論文

數據庫應用系統中數據完整性的設計與實現

主要介紹了SQL Server數據庫應用系統中數據完整性在服務器端和客戶端的設計方法,並結合醫院管理信息系統(簡稱JY-HMIS)闡述了實現數據完整性的策略。

關鍵詞:數據完整性數據庫事務處理

數據完整性是指數據的正確性和壹致性,有兩層含義:(1)數據值的正確性,即字段列的值必須符合數據值範圍、類型和精度的規定;(2)相關數據的壹致性,即相關表的聯系字段的列值匹配。在數據庫應用系統中,保證數據完整性是應用系統設計的基本要求;數據完整性的實現關系到數據系統的正確性、壹致性和可靠性,關系到系統的成敗。JY-HMIS采用C/S模式架構,其數據庫應用系統為:SQL Server 7.0客戶端的開發工具是PowerBuilder 6.5。下面主要從服務器端數據庫管理系統和客戶端應用程序兩個方面來介紹。

1服務器使用SQL Server 7.0數據庫實現數據完整性。

當使用INSERT、DELETE和UPDATE語句修改數據庫內容時,數據的完整性可能會被破壞。為了確保存儲數據的正確性和壹致性,SQL Server對數據施加了壹個或多個數據完整性約束。這些約束限制了數據庫中的數據值,或者限制了數據庫修改產生的數據值,或者限制了數據庫中某些值的修改。

在SQL Server關系數據庫中,數據完整性主要有三種類型:實體完整性(確保表中所有行都是唯壹的);參照完整性(主鍵和外鍵關系的維護,涉及兩個或多個表的數據的壹致性維護);域完整性(列的有效性集合,是對業務管理或數據庫數據的限制)。在電報端實現數據完整性有兩種方法:定義Creat Table的完整性約束,定義規則、默認值、索引和觸發器。

1.1定義了createtable完整性約束。

這種方法是在創建數據庫表的命令語句中添加表級約束或列級約束,實現數據完整性。例如添加非空約束、默認約束、唯壹代碼約束、主鍵約束、外鍵約束、檢查約束等。在表構建語句中。其主要特點是:定義簡單、安全可靠、維護方便。

1.1.1非空約束、默認約束和檢查約束

非空約束限制列值不能為空;默認約束指定在數據庫中插入數據時,如果用戶沒有顯式給出某壹列的值,SQL Server將自動輸入預定值;Check約束用於限制列的範圍。

例如,在創建圖書登記表時,諸如限定登記日期、圖書類別代碼、登記號、中文名稱等列值。不能為空;頁數的默認值是1;單價的默認值為0;圖書狀態只能是“在庫”、“借出”和“丟失”中的壹種。

1.1.2主鍵約束和唯壹約束

primary key約束和unique約束都為指定的列建立唯壹索引,即具有唯壹索引的列不允許有相同的值。主鍵約束更嚴格,不僅不允許重復值,也不允許空值。

例如,在部門編碼表中,在列ksbm上創建壹個主鍵約束,在ksmc上創建壹個唯壹約束。

1.1.3外鍵約束

外鍵約束又稱參照完整性約束,用於限制本表之外的鍵碼列值與相關表的主鍵碼字段列值的匹配,即保證相關數據的壹致性。

例如,在創建醫生代碼表時,醫生所屬的部門ssks是外鍵代碼,它被限制為與部門代碼表中部門代碼ksbm列的值壹致。

1.2定義規則、默認值、索引和觸發器

雖然在數據庫表創建命令語句中定義約束的方法簡單、方便、安全,但它只對特定的表有效,不能應用於其他表,而且只能用alter table命令來修改或刪除約束,缺乏壹定的靈活性。相反,在數據庫中創建相對獨立於表的規則、索引和觸發器對象,也可以實現數據完整性,可以實現更復雜完善的數據完整性約束。其主要特點是功能強、效率高、維護方便。

1.2.1定義規則

規則類似於表定義中的check約束,用於限制列的範圍。但它不限於特定的表,可以用於其他表的列或用戶定義的數據類型。

例如,在為藥品定義編碼規則Rul-ypbm時,可以將其綁定到其他表。

1.2.2定義默認值

Default類似於表定義中的default約束,用於設置列的默認值輸入。它也不限於特定的表,可以用於其他表的列或用戶定義的數據類型。

1.2.3定義索引

索引類似於表定義中的唯壹約束,用於確保列值的唯壹性。此外,它還可以使用聚集索引和非聚集索引選項來增強數據檢索的性能。

比如分別按照收費日期和收費序號建立門診收費明細賬的非聚集索引,大大提高了數據查詢速度。索引建立前,在20多萬條記錄中查詢出符合條件的記錄需要5分鐘左右,索引建立後只需要4秒鐘。

1.2.4定義觸發器

觸發器是實現復雜完整性約束的有效方法,當它保護的數據被修改時,觸發器會自動激活,以防止對數據的不正確、未授權或不壹致的修改。類似於表定義中的參照完整性約束;觸發器還可以用來確保相關數據的壹致性。還可以完成壹些表定義的參照完整性約束所不能完成的任務。

2客戶端使用PB開發的應用程序實現數據完整性。

2.1使用PB控件來確保數據完整性。

在用PB開發工具編寫的應用程序中,可以利用數據窗口對象的列檢查屬性來檢查輸入數據的正確性。在窗口輸入界面,還可以使用下拉列表、復選框、單選按鈕等控件實現定值選擇和輸入,保證數據的正確性;此外,應用程序本身可以有效地檢查輸入數據,以確保數據的完整性。

2.2利用交易的特性保證數據的壹致性。

因為PB的每壹個操作都是基於控件中的事件,所以壹個完整的事務應該集中在壹個事件或者壹個操作單元中。比如門診定價收費中的支付處理;同壹收費序號下的數據,處理後應記入明細賬、壹級明細賬和總賬,同時更新《收費序號登記表》;所有這些過程都被視為壹個完整的任務,所有語句執行成功後才能提交數據庫;如果壹條語句執行不成功,則應該取消事務的所有操作,將事務返回到開始時的狀態,以保證數據的壹致性。利用客戶端應用程序實現數據完整性的方法,其特點是交互性好,功能強,但編程量過大,維護困難,可靠性差。

實現數據完整性的3種策略

從上面可以看出,在SQL Server數據庫應用系統中,實現數據完整性的方法各有特點。對於具體的應用系統,可以根據需要采用壹種或多種方法建立數據完整性的機制,策略是:

(1)對於通過窗口操作輸入的數據,壹般使用客戶端應用程序來保證數據的完整性。這樣,壹方面可以在非法數據提交到數據庫之前將其拒絕,另壹方面用戶可以及時獲得運營反饋信息,做出正確的選擇。

(2)對於通過其他渠道傳輸的數據,壹般需要服務器端的數據庫管理系統來實現數據的完整性。

(3)為了維護數據的壹致性,適合實現服務器端數據庫的觸發器或表定義的約束。這樣可以減少客戶端應用程序的開發,提高應用系統的運行效率、可維護性和可靠性。

(4)對於數據完整性和安全性要求高的系統,需要多層保護屏障來保證數據的完整性和安全性。例如,不僅在客戶端應用系統程序中檢查輸入數據的有效性,而且在服務器數據庫中為數據完整性約束建立表的約束、規則、默認值和觸發器。這可以提高系統數據的可靠性和安全性。

4結論

數據庫完整性是數據庫應用系統最基本的要求之壹。在SQL Server數據庫應用系統中,數據完整性可以通過三種方法實現:定義服務器端數據庫表的約束、數據庫規則、默認值、索引、觸發器和客戶端應用程序。它們各有特點,應根據具體情況在應用系統中靈活使用。

參考

[1]楊SQL Server 7.0關系數據庫系統管理和開發指南。機械工業部出版社,2000。

[2]微軟SQL Server 7.0數據庫系統管理與應用開發。北京人民郵電出版社,1999。

[3]薛化成。管理信息系統。清華大學出版社,1995。

  • 上一篇:南京金墾職業技術學校
  • 下一篇:2021結對幫扶年度工作總結(精選10篇)
  • copyright 2024歷史故事大全網