新聞中心
隨著信息技術的快速發(fā)展和廣泛應用,數(shù)據(jù)已經(jīng)成為各個行業(yè)的核心資源。全面、準確、可靠的數(shù)據(jù)是現(xiàn)代企業(yè)管理的重要基礎,而數(shù)據(jù)庫便是管理和處理數(shù)據(jù)的核心技術。對于一個數(shù)據(jù)庫系統(tǒng)而言,數(shù)據(jù)模型的準確性直接關系到數(shù)據(jù)管理的效率和決策的正確性。然而在數(shù)據(jù)庫應用中,經(jīng)常會遇到數(shù)據(jù)模型的更新問題。因此如何高效、準確地實現(xiàn)數(shù)據(jù)庫更新模型,將成為數(shù)據(jù)庫應用的關鍵問題。

我們提供的服務有:成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、定結ssl等。為數(shù)千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的定結網(wǎng)站制作公司
數(shù)據(jù)庫更新模型可以理解為一種數(shù)據(jù)結構之間的轉移過程,即在原有的數(shù)據(jù)模型基礎上,通過一種系統(tǒng)化的方式進行數(shù)據(jù)結構的升級、變更、轉移等操作。數(shù)據(jù)庫更新模型的應用可以大幅提升數(shù)據(jù)模型的準確性,增加數(shù)據(jù)的可靠性和完整性,有利于提升數(shù)據(jù)庫系統(tǒng)的應用價值和效益。
在實現(xiàn)數(shù)據(jù)庫更新模型的過程中,需要注意以下幾個方面:
一、精確操作的正確性
數(shù)據(jù)庫更新模型需要通過一系列的操作進行數(shù)據(jù)結構的重新設計和調(diào)整,這既要有整體的把握,也要有細節(jié)的嚴謹。每一條記錄、每一個字段、每一個關系,都需要精確地進行操作和調(diào)整,這需要有專業(yè)的知識和技能才能完成。
二、技術手段的支持
數(shù)據(jù)庫更新模型需要用到各種技術手段,比如SQL腳本、數(shù)據(jù)庫客戶端、數(shù)據(jù)導入導出工具等。技術手段的選擇和使用必須要符合業(yè)務需求和數(shù)據(jù)規(guī)模的實際情況,并能夠自適應和自動化處理數(shù)據(jù)。
三、流程的清晰規(guī)范
數(shù)據(jù)庫更新模型需要遵循一定的流程,不僅要規(guī)范操作的每一個步驟,還要對數(shù)據(jù)的處理結果進行嚴格的檢驗和評估。整個流程應該清晰透明、符合標準,確保數(shù)據(jù)庫更新模型能夠快速、準確地實現(xiàn)。
四、數(shù)據(jù)質(zhì)量的保障
數(shù)據(jù)庫更新模型的實現(xiàn)還需要考慮數(shù)據(jù)質(zhì)量的問題。新數(shù)據(jù)結構的設計必須要滿足數(shù)據(jù)完整、準確、可靠等要求,還需要進行有效的數(shù)據(jù)校驗和清洗,以確保數(shù)據(jù)的質(zhì)量。
數(shù)據(jù)庫更新模型的實現(xiàn)需要全面考慮技術、管理和業(yè)務等方面的因素,結合實際業(yè)務需求、數(shù)據(jù)模型的特點和使用環(huán)境,采用合適的策略和方式進行數(shù)據(jù)結構的更新和升級,以實現(xiàn)數(shù)據(jù)庫模型的持續(xù)改進和優(yōu)化。
數(shù)據(jù)庫更新模型的實現(xiàn)可以帶來諸多好處。它可以提高數(shù)據(jù)庫的性能和效率,使得數(shù)據(jù)的存儲和處理更加快速、準確和有效。它可以提升數(shù)據(jù)的可信度和可靠性,使得數(shù)據(jù)的分析和應用更加科學和精準。它可以優(yōu)化數(shù)據(jù)庫的結構和架構,更好地適應未來業(yè)務的需要,降低數(shù)據(jù)庫系統(tǒng)的維護成本,實現(xiàn)長期收益。
綜上所述,數(shù)據(jù)庫更新模型的實現(xiàn)對于數(shù)據(jù)庫系統(tǒng)的運維和應用具有重要的意義。在實際操作中,需要充分認識到數(shù)據(jù)庫更新模型的價值和作用,注重細節(jié),嚴格執(zhí)行管理規(guī)范和技術要求,以提高數(shù)據(jù)庫系統(tǒng)的使用效益和管理水平。
相關問題拓展閱讀:
- 數(shù)據(jù)庫系統(tǒng)1-2:層次模型
- 數(shù)據(jù)庫優(yōu)化(ER模型設計)
數(shù)據(jù)庫系統(tǒng)1-2:層次模型
用樹形結構表示實體之間聯(lián)系的模型叫層次模型。層次模型是最早用于商品數(shù)據(jù)庫管理系統(tǒng)枯明的數(shù)據(jù)模型。其典型代表是于1969問世、由IBM公司開發(fā)的數(shù)據(jù)庫管理系統(tǒng)IMS(Information Management System)。
1.2.3.1 層次模型的結構
層次模型的表示方法是:樹的結點表示實體集(記錄的型),結點之間的連線表示相連兩實體集之間的關系,這種關系只能是“1一M”的。通常把表示1的實體集放在上方,稱為父結點,表示M的實體集放在下方,稱為子結點。層次模型的結構特點是:
(1) 有且僅有一個根結點。
(2) 根結點以外的其它結點有且僅有一個父結點。
因而層次模型只能表示“1一M”關系,而不能直接表示“M—M”關系。
在層次模型中,一個結點稱為一個記錄型,用來描述實體集。每個記錄型可以有一個或多個記錄值,上層一個記錄值對應下層一個或多個記錄值,而下層每個記錄值只能對應上層一個記錄值。例如,系記錄型有:計算機系、電信系等記錄值。而計算機系的早罩下層記錄值有軟件、結構、應用等研究室和數(shù)據(jù)結構、操作系統(tǒng)、數(shù)據(jù)庫等課程,軟件研究室下層又有員工和項目記錄值,
關于層次模型中實體集之間多對多的聯(lián)系的處理,解決的方法是引入冗余結點。例如,學生和課程之間的多對多的聯(lián)系,引入學生和課程的冗余結點 轉換為兩棵樹:一棵樹的根是學生,子結點是課程,它表現(xiàn)了一個學生可以選多門課程;一棵樹的根是課程,子結點是學生,它反映了一門課程可以被多個學生選。
1.2.3.2層次模型的數(shù)據(jù)操作
層次模型的數(shù)據(jù)操作特點是必須從根結點入手,按層次順序訪問。首先介紹層次順序中的兩個概念。
?。?) 記錄類型碼 對層次模型中的記陸敗鬧錄型樹,按照從上到下,從左到右的順序給每個記錄類一個編號,稱為記錄類型碼,以表示記錄類在樹中的位置。
?。?) 順序域 為了確定同一記錄類下的各個記錄值的位置,指定記錄中某字段的值作為記錄值的排序的依據(jù),該字段稱為順序域。
?。?) 層次順序和路徑 有了記錄類型碼和順序域,就可以對所有的記錄值進行排序,首先按類型碼排序,同一類型碼下的各個記錄值再按順序域排序。這種從上到下、從左到右的排列順序就是層次順序。從根結點開始到目標結點之間所有直系祖先的類型碼和順序域組成該結點的層次路徑。如圖1.19所示,D(Department)、S(Section)、C(Course)、F(Faculty)和P(Project)分別表示系、研究室、課程、員工和項目。D02的層次順序: D02S01F01F02S02F03F04S03F05F06FC01C02C03。
GU DEPT(DEPT#=’D02’)
SECTION(SEC#=’S03’)
FACULTY(FAC#=’F06’)
層次模型中的更新操作之前,一般都先執(zhí)行一個查詢,再執(zhí)行相應操作。所以層次模型數(shù)據(jù)操作的特點是通過層次路徑定位記錄,一次僅能訪問一條記錄。
1.2.3.4 層次模型的物理存儲
層次模型的物理存儲有兩種實現(xiàn)方法:
?。?) 順序法
按照層次順序把所有的記錄鄰接存放,即通過物理空間的位置相鄰來實現(xiàn)層次順序。
?。?) 指針法
各個記錄存放時不是按層次順序,而是用指針按層次順序把它們鏈接起來。
1.2.3.5 層次模型的約束
層次模型的限制是:
(1) 層次模型的樹是有序樹(層次順序)。對任一結點的所有子樹都規(guī)定了先后次序,這一限制隱含了對數(shù)據(jù)庫存取路徑的控制。
(2) 樹中父子結點之間只存在一種聯(lián)系,因此,對樹中的任一結點,只有一條自根結點到達它的路徑。
?。?) 不能直接表示多對多的聯(lián)系。
?。?) 樹結點中任何記錄的屬性只能是不可再分的簡單數(shù)據(jù)類型。
數(shù)據(jù)庫優(yōu)化(ER模型設計)
如果你的公司是那些老總啊經(jīng)常來看的話,這樣設計能快速查詢所需信息,但如果是你自己管理,我看,把”聯(lián)系人”和”來往單位”合成一個表,把來往單位的字段改到聯(lián)系人那,想單獨查詢來往單位或什么的用SQL也能快速找到; 把庫存信息和價格信息也合成一個表; 左邊的表差不多了,只是有些字段你自己再調(diào)整一下,看你的情況了,希望能幫上忙“““
據(jù)訪問需要的完整解datamodule4.adoquery2.sql.add(‘SELECT借書證號,密碼FROMWHERE(借書證號=:tt)’);
datamodule4.adoquery2.parameters.value:=username;
datamodule4.adoquery2.open;
在為TQuery或TADOquery部件設置SQL屬性時調(diào)用Close方法總是很安全的,如果TQuery或TADOquery部件已經(jīng)被關閉了,調(diào)用Close方法時不會產(chǎn)生任何影響。在應用程序中為SQL屬性設置新的SQL命令語句時,必須要調(diào)用Clear方法以清除SQL屬性中現(xiàn)存的SQL命令語句,如果不調(diào)用Clear方法,便調(diào)用Add方法向SQL屬性中設置SQL命令語句,那么新設置的SQL命令語句會追加在現(xiàn)存SQL命令語句后面,在程序運行時常常會出現(xiàn)出乎意料的查詢結果甚至程序無法運行下去。
在這里要特別注意的,一般情況下TQuery或TADOquery部件的SQL屬性只能包含一條完整的SQL語句,它不允許被設置成多條SQL語句。當然有些數(shù)據(jù)庫服務器也支持在TQuery或TADOquery部件的SQL屬性中設置多條SQL語句,只要數(shù)據(jù)庫服務器允許這樣,我們在編程時可以為SQL屬性設置多條SQL語句。
在為TQuery或TADOquery部件設置完SQL屬性的屬性值之后,也即編寫好適當?shù)腟QL程序之后,可以有多種方式來執(zhí)行SQL程序。
在設計過程中,設置完TQuery或TADOquery部件的SQL屬性之后將其Active屬性的值置為True,這樣便可以執(zhí)行SQL屬性中的SQL程序,如果應用中有與TQuery或TADOquery部件相連的數(shù)據(jù)瀏覽部件(如TDDGridTDBEdit等)那么在這些數(shù)據(jù)瀏覽部件中會顯示SQL程序的執(zhí)行結果。
在應用程序運行過程中,通過程序調(diào)用TQuery或TADOquery組件的Open方法或ExecSQL方法可以執(zhí)行其SQL屬性中的SQL程序。Open方法和ExecSQL方法是不一樣的。Open方法只能用來執(zhí)行SQL語言的查詢語句(Select命令),并返回一個查詢結果集,而ExecSQL方法還可以用來執(zhí)行其它常用的SQL語句(如INSERT,UPDATE,DELETE等命令),例如:
Query1.Open(這樣會返回一個查詢結果集)
如果調(diào)用Open方法,而沒有查詢結果時,會出錯。此時應該調(diào)用ExecSQL方法來代替Open方法。如:
Query1.ExecSQL(沒有返回結果)
當然在設計應用程序時,程序設計人員是無法確定TQuery或TADOquery組件中的SQL語句是否會返回一個查詢結果的。對于這種情況應當用Try…Except模塊來設計程序。在Try部分調(diào)用Open方法,而在Except部分調(diào)用ExceSQL方法,這樣才能保證程序的正確運行。
例如:
Try
Query1.Open
Except
Query1.ExecSQL
End
通過Tquery或TADOquery組件可以獲得兩種類型的數(shù)據(jù):
u“活動”的數(shù)據(jù)
這種數(shù)據(jù)就跟通過TTable部件獲得的數(shù)據(jù)一樣,用戶可以通過數(shù)據(jù)瀏覽部件來編輯修改這些數(shù)據(jù),并且當調(diào)用Post方法或當焦點離開當前的數(shù)據(jù)瀏覽部件時,用戶對數(shù)據(jù)的修改自動地被寫回到數(shù)據(jù)庫中。
u非活動的數(shù)據(jù)(只讀數(shù)據(jù))
用戶通過數(shù)據(jù)瀏覽部件是不能修改其中的數(shù)據(jù)。在缺省情況下,通過TQuery部件獲得的查詢結果數(shù)據(jù)是只讀數(shù)據(jù),要想獲得“活動”的數(shù)據(jù),在應用程序中必須要設置Tquery或TADOquery組件的RequestLive屬性值為True,然而并不是在任何情況下(通過設置RequestLive的屬值True)都可以獲得“活動”的數(shù)據(jù)的,要想獲得“活動”的數(shù)據(jù),除了將TQuery部件的RequestLive屬性設置為True外,相應的SQL命令還要滿足以下條件。
本地SQL語句查詢情況下,要得到可更新的數(shù)據(jù)集,SQL語句的限制為:
n查詢只能涉及到一個單獨的表
nSQL語句中不能包含ORDERBY命令
nSQL語句中不能含聚集運算符SUM或AVG
n在Select后的字段列表中不能有計算字段
n在Select語句WHERE部分只能包含字段值與常量的比較運算,這些比較運算符是:Like,>,=,
當通過SQL語句查詢數(shù)據(jù)庫服務器中的數(shù)據(jù)庫表:
n查詢只能涉及到一個單獨的表
nSQL語句中不能包含ORDERBY命令
nSQL語句中不能含聚集運算符SUM或AVG運算
另外,如果是查詢Sybase數(shù)據(jù)庫中的表,那么被查詢的表中只能有一個索引。
如果在應用程序中要求TQuery或TADOquery組件返回一個“活動”的查詢結果數(shù)據(jù)集,但是SQL命令語句不滿足上述約束條件時,對于本地數(shù)據(jù)庫的SQL查詢,BDE只能返回只讀的數(shù)據(jù)集。對于數(shù)據(jù)庫服務器中的SQL查詢,只能返回錯誤的代碼。當Tquery或TADOquery組件返回一個“活動”的查詢結果數(shù)據(jù)集時,它的CanModIfy屬性的值會被設置成True。
§3.4MSSQLServer簡述
SQLServer是一個后臺數(shù)據(jù)庫管理系統(tǒng),它功能強大操作簡便,日益為廣大數(shù)據(jù)庫用戶所喜愛。越來越多的開發(fā)工具提供了與SQLServer的接口。SQLServer是一個關系數(shù)據(jù)庫管理系統(tǒng),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發(fā)的。于1988年推出了之一個OS/2版本,在WindowsNT推出后,Microsoft與Sybase在SQLServer的開發(fā)上就分道揚鑣了,Microsoft將SQLServer移植到WindowsNT系統(tǒng)上,專注于開發(fā)推廣SQLServer的WindowsNT版本。
SQLServer2023是Microsoft公司推出的SQLServer數(shù)據(jù)庫管理系統(tǒng)的最新版本,該版本繼承了SQLServer7.0版本的優(yōu)點,同時又比它增加了許多更先進的功能、具有使用方便、可伸縮性好與相關軟件集成程度高等優(yōu)點??煽缭綇倪\行MicrosoftWindows98的膝上型電腦到運行MicrosoftWindows2023的大型多處理器的服務器等多種平臺使用。MSSQLServer不但可以應用于大中型數(shù)據(jù)庫管理中,建立分布式關系數(shù)據(jù)庫,并且也可以開發(fā)桌面數(shù)據(jù)庫。事實上,SQLServer數(shù)據(jù)庫處理的基本結構,采取關系型數(shù)據(jù)庫模式,盡管如此,相信大家都可以輕易的發(fā)現(xiàn),在SQLServer的數(shù)據(jù)庫處理方式,則是使用面向對象的操作方式與精神,也就是說,SQLServer的所有功能,都可以基于系統(tǒng)已經(jīng)建立好的一些對象來達成,是相當OO(面向對象)的一個系統(tǒng)結構。
SQLServer企業(yè)管理器是SQLServer的主要管理工具,它提供了一個遵從MMC標準的用戶界面,使用戶得以:
·定義SQLServer實例組。
·將個別服務器注冊到組中。
·為每個已注冊的服務器配置所有SQLServer選項。
·在每個已注冊的服務器中創(chuàng)建并管理所有SQLServer數(shù)據(jù)庫、對象、登錄、用戶和權限。
·在每個已注冊的服務器上定義并執(zhí)行所有SQLServer管理任務。
·通過喚醒調(diào)用SQL查詢分析器,交互地設計并測試SQL語句、批處理和腳本。
·喚醒調(diào)用為SQLServer定義的各種向導。
·
第三章圖書管理系統(tǒng)設計分析
§4.1應用需求分析
圖書管理系統(tǒng)需要滿足來自三方面的需求,這三個方面分別是圖書借閱者、圖書館工作人員和圖書館管理人員。圖書借閱者的需求是查詢圖書館所存的圖書、個人借閱情況及個人信息的修改;圖書館工作人員對圖書借閱者的借閱及還書要求進行操作,同時形成借書或還書報表給借閱者查看確認;圖書館管理人員的功能最為復雜,包括對工作人員、圖書借閱者、圖書進行管理和維護,及系統(tǒng)狀態(tài)的查看、維護并生成催還圖書報表。
圖書借閱者可直接查看圖書館圖書情況,如果圖書借閱者根據(jù)本人借書證號和密碼登錄系統(tǒng),還可以進行本人借書情況的查詢和維護部分個人信息。一般情況下,圖書借閱者只應該查詢和維護本人的借書情況和個人信息,若查詢和維護其他借閱者的借書情況和個人信息,就要知道其他圖書借閱者的借書證號和密碼。這些是很難得到的,特別是密碼,所以不但滿足了圖書借閱者的要求,還保護了圖書借閱者的個人隱私。
圖書館工作人員有修改圖書借閱者借書和還書記錄的權限,所以需對工作人員登陸本模塊進行更多的考慮。在此模塊中,圖書館工作人員可以為圖書借閱者加入借書記錄或是還書記錄,并打印生成相應的報表給用戶查看和確認。
圖書館管理人員功能的信息量大,數(shù)據(jù)安全性和保密性要求更高。本功能實現(xiàn)對圖書信息、借閱者信息、總體借閱情況信息的管理和統(tǒng)計、工作人員和管理人員信息查看及維護。圖書館管理員可以瀏覽、查詢、添加、刪除、修改、統(tǒng)計圖書的基本信息;瀏覽、查詢、統(tǒng)計、添加、刪除和修改圖書借閱者的基本信息,瀏覽、查詢、統(tǒng)計圖書館的借閱信息,但不能添加、刪除和修改借閱信息,這部分功能應該由圖書館工作人員執(zhí)行,但是,刪除某條圖書借閱者基本信息記錄時,應實現(xiàn)對該圖書借閱者借閱記錄的級聯(lián)刪除。并且還應具有生成催還圖書報表,并打印輸出的功能。
在本系統(tǒng)中由于沒有打印機設備供試驗,所以預先把報表打印改成報表預覽。
設計不同用戶的操作權限和登陸方法
對所有用戶開放的圖書查詢
借閱者維護借閱者個人部分信息
借閱者查看個人借閱情況信息
維護借閱者個人密碼
根據(jù)借閱情況對數(shù)據(jù)庫進行操作并生成報表
根據(jù)還書情況對數(shù)據(jù)庫進行操作并生成報表
查詢及統(tǒng)計各種信息
維護圖書信息
維護工作人員和管理員信息
維護借閱者信息
處理信息的完整性
對借閱過期的圖書生成報表
圖4-2圖書管理系統(tǒng)數(shù)據(jù)庫應用需求的總結
根據(jù)以上所做的需求分析,并略掉一些細節(jié)(如不考慮用戶的登錄;對記錄的維護),得出以下的三層數(shù)據(jù)流圖。
§4.2系統(tǒng)功能模塊劃分
系統(tǒng)功能框圖如圖4-10所示。
§4.3系統(tǒng)數(shù)據(jù)庫設計
4.3.1概念設計
在概念設計階段中,設計人員從用戶的角度看待數(shù)據(jù)及處理要求和約束,產(chǎn)生一個反映用戶觀點的概念模式。然后再把概念模式轉換成邏輯模式。將概念設計從設計過程中獨立開來,使各階段的任務相對單一化,設計復雜程度大大降低,不受特定DBMS的限制。
利用ER方法進行數(shù)據(jù)庫的概念設計,可分成三步進行:首先設計局部ER模式,然后把各局部ER模式綜合成一個全局模式,最后對全局ER模式進行優(yōu)化,得到最終的模式,即概念模式。
(1)設計局部ER模式
實體和屬性的定義:
圖書(圖書編號,圖書名稱,作者,出版社,出版日期,備注,價格,數(shù)量,)
借閱者(借書證號,姓名,性別,身份證,聯(lián)系,密碼)
身份(身份編號,身份描述,更大借閱數(shù))
圖書類別(圖書類別編號,類別描述)
ER模型的“聯(lián)系”用于刻畫實體之間的關聯(lián)。一種完整的方式是對局部結構中任意兩個實體類型,依據(jù)需求分析的結果,考察局部結構中任意兩個實體類型之間是否存在聯(lián)系。若有聯(lián)系,進一步確定是1:N,M:N,還是1:1等。還要考察一個實體類型內(nèi)部是否存在聯(lián)系,兩個實體類型之間是否存在聯(lián)系,多個實體類型之間是否存在聯(lián)系,等等。聯(lián)系定義如圖4-5所示。解釋如下:
u一個借閱者(用戶)只能具有一種身份,而一種身份可被多個借閱者所具有;
u一本圖書只能屬于一種圖書類別(類別),而一種圖書類別可以包含多本圖書;
u一個用戶可以借閱多本不同的書,而一本書也可以被多個不同的用戶所借閱。
(2)設計全局ER模式
所有局部ER模式都設計好了后,接下來就是把它們綜合成單一的全局概念結構。全局概念結構不僅要支持所有局部ER模式,而且必須合理地表示一個完整、一致的數(shù)據(jù)庫概念結構。
1)確定公共實體類型
為了給多個局部ER模式的合并提供開始合并的基礎,首先要確定各局部結構中的公共實體類型。在這一步中我們僅根據(jù)實體類型名和鍵來認定公共實體類型。一般把同名實體類型作為公共實體類型的一類候選,把具有相同鍵的實體類型作為公共實體類型的另一類候眩
2)局部ER模式的合并
合并的原則是:首先進行兩兩合并;先和合并那些現(xiàn)實世界中有聯(lián)系的局部結構;合并從公共實體類型開始,最后再加入獨立的局部結構。
3)消除沖突
沖突分為三類:屬性沖突、結構沖突、命名沖突。
設計全局ER模式的目的不在于把若干局部ER模式形式上合并為一個ER模式,而在于消除沖突,使之成為能夠被所有用戶共同理解和接受的同一的概念模型。
3)全局ER模式的優(yōu)化
在得到全局ER模式后,為了提高數(shù)據(jù)庫系統(tǒng)的效率,還應進一步依據(jù)處理需求對ER模式進行優(yōu)化。一個好的全局ER模式,除能準確、全面地反映用戶功能需求外,還應滿足下列條件:實體類型的個數(shù)要盡可能的少;實體類型所含屬性個數(shù)盡可能少;實體類型間聯(lián)系無冗余。
綜上所述,“圖書管理系統(tǒng)”的全局ER模式如圖4-13所示。
4.3.2關系數(shù)據(jù)庫的邏輯設計
由于概念設計的結果是ER圖,DBMS一般采用關系型(本人所使用的MSSQLServer就是關系型的DBMS),因此數(shù)據(jù)庫的邏輯設計過程就是把ER圖轉化為關系模式的過程。由于關系模型所具有的優(yōu)點,邏輯設計可以充分運用關系數(shù)據(jù)庫規(guī)范化理論,使設計過程形式化地進行。設計結果是一組關系模式的定義。
(1)導出初始關系模式
book(圖書編號#,圖書名稱,圖書類別#,作者,出版社,出版日期,備注,價格,數(shù)量)class(圖書類別#,類別名)user(借書證號#,姓名,性別,身份編號#,身份證,聯(lián)系,密碼)ID(身份編號#,身份描述,更大借閱數(shù))Owner(借書證號#,圖書編號#,借書日期)
圖4-14關系模式集
(2)產(chǎn)生子模式
子模式是用戶所用到的那部分數(shù)據(jù)的描述。除了指出用戶用到的數(shù)據(jù)外,還應指出數(shù)據(jù)與概念模式中相應數(shù)據(jù)的聯(lián)系,即指出概念模式與子模式之間的對應性。
借書子模式(借書證號#,姓名,圖書編號#,圖書名稱,借書日期)
圖4-15部分子模式
(3)根據(jù)設計中出現(xiàn)的問題本人在寫系統(tǒng)時還加入了兩個關系模式:
1、ownertemp:用于工作人員在處理借書、還書工作時臨時存儲借書、還書信息,以便打印報表時使用。
2、keyer:用于存儲工作人員和圖書館管理員的用戶名和密碼及權限,以便工作人員或圖書館管理員進入相應的功能模塊時進行驗證用戶的身份。
4.3.3數(shù)據(jù)庫的實現(xiàn)
我選用MicrosoftSQLServer2023(企業(yè)版)數(shù)據(jù)庫來進行數(shù)據(jù)庫的邏輯設計。首先創(chuàng)建七個基本數(shù)據(jù)庫表如表4-1-4-7所示,然后根據(jù)全局ER圖,建立各個表之間的聯(lián)系,如圖4-8所示。
表4-1借閱者基本信息表的結構(User)
表4-2圖書信息表的結構(Book)
表4-3圖書類別信息表的結構(Class)
表4-4借閱者身份信息表的結構(ID)
表4-5借閱情況信息表的結構(Owner)
表4-6借閱情況臨時存儲信息表的結構(Ownertemp)
注:在owner表和ownertemp表中加入了索引字段,用來唯一標識一條借書記錄,并且設置為標識,標識種子為1。
表4-7工作人員和管理員信息表的結構(Keyer)
圖4-8數(shù)據(jù)庫表間聯(lián)系圖
第五章圖書管理系統(tǒng)應用程序設計
§5.1系統(tǒng)窗體模塊組成
§5.2數(shù)據(jù)模塊窗體的設置
在編寫數(shù)據(jù)庫應用程序時,經(jīng)常要遇到這樣的情況,即好多組件、窗體同時訪問相同的數(shù)據(jù)源,如果為每一個組件或者窗體都設置一個數(shù)據(jù)源將是十分耗時的工件,而且要保證這些數(shù)據(jù)源的確是相同的也需花一番功夫。那么,能不能將這些數(shù)據(jù)源集中管理,更好是做成一個統(tǒng)一的模塊,需要時就將該模塊引入而不必直接操作數(shù)據(jù)源本身呢?數(shù)據(jù)模塊(DataModule)是解決這個問題更好的答案。簡單說來,數(shù)據(jù)模塊是用來集中管理數(shù)據(jù)源的一個窗體,該窗體可被需要的地方隨時引入。
但本人在開發(fā)這個系統(tǒng)時,開始使用了一下數(shù)據(jù)模塊,但在使用過程中卻碰到了一些問題。并且考慮這個系統(tǒng)使用到的TADOQuery控件比較多,如果使用數(shù)據(jù)控件可能會帶來管理上的麻煩,如弄混各個數(shù)據(jù)控件的作用。還考慮到使用動態(tài)生成ADOQuery可能會更節(jié)省資源。所以在本人的系統(tǒng)中,開始做的之一個模塊“借閱者個人模塊”中還稍微使用了一下數(shù)據(jù)模塊。但在后面做的兩個模塊中大多都是用動態(tài)生成ADOQuery來實現(xiàn)的。并且由于SQL語句是動態(tài)加入的所以datamodule中的控件也不會多。
§5.3啟動畫面的實現(xiàn)
啟動畫面是為了給用戶一個良好的印像,加深軟件的親和力,沒有實際的功能,在Form1窗體中加入了Image和Time組件。啟動畫面的窗體略,主要的源代碼如下:
§5.4用戶登錄窗體的的實現(xiàn)
本窗體是為三種不同的用戶(一般用戶,工作人員,管理員)提供選擇以進入不同的模塊,滿足不同用戶的需求。源代碼比較簡單,略。
§5.5用戶密碼認證窗體的的實現(xiàn)
本窗體是為了讓工作人員或圖書館管理員按照用戶名和密碼進行登錄,并且跟據(jù)用戶名檢查Keyer表中的“權限”字段,以分辯進入圖書館管理人員模塊還是進入工作人員模塊。窗體界面、源代碼如下
§5.6借閱者服務模塊的實現(xiàn)
借閱者服務窗體的功能主要是圖書的查詢,個人借閱情況查看及個人部分信息的修改。界面圖如下:
5.6.1圖書查詢功能的實現(xiàn)
在本系統(tǒng)中,任何人都有權限使用查詢功能,不做任何限制。界面如下,
由于實現(xiàn)的查詢功能有多種,如按圖書編號、圖書名稱等字段進行完全體配查找和部分體配的模糊查找,還有按多個條件進行邏輯與或是邏輯或的多條件查找。其中實現(xiàn)的方法者差不多,所以只給出多條件查找的代碼,如下:
5.6.2借閱者登錄功能的實現(xiàn)
這個功能的實現(xiàn)與工作人員和管理人員登錄功能實現(xiàn)的方法大致一樣,并且還要簡單。是從User表中查到到借閱證號與密碼,看與用戶輸入的是否一致。如果一致,那么用戶就可查看自已的借閱情況并維護自己的部分信息。源代碼與借閱者登錄界面都略。
5.6.3借閱者借閱情況功能的實現(xiàn)
當借閱者正確登錄到系統(tǒng)后,此功能將被激活,使用戶能查看到自身的借閱情況。在此系統(tǒng)中,信息的顯示一般用ListView來實現(xiàn),只在較少的情況下用到了DBgrid,因為我覺得ListView更好實現(xiàn),并能使信息數(shù)據(jù)對用戶的完全分離。
在這里跟據(jù)借閱者的不同要求實現(xiàn)借閱情況的查詢,有檢查所有的借閱情部、某本書的借閱情況、和根據(jù)已借閱天數(shù)的來查詢。其中根椐借閱天數(shù)來查詢更有代表性,有方式一和方式二。以下給出此功能的源代碼
按借閱天數(shù)查詢方式一
按借閱天數(shù)查詢方式二
5.6.4借閱者個人資料維護功能的實現(xiàn)
此功能實現(xiàn)當前借閱者部份資料的修改,但借書證號和身份類別這樣的信息不允許修改,這是圖書館管理員模塊的功能。在此界面中點擊修改按鈕將出現(xiàn)“修改”窗體(Form8),點擊修改密碼按鈕將出現(xiàn)groupbox8,在這里進行密碼修改。關鍵源代碼如下。
這里給出個人部分信息修改的源代碼:
這里給出密碼修改的源代碼:
5.7工作人員-圖書借閱/歸還模塊的實現(xiàn)
5.7.1工作人員進行圖書借閱功能實現(xiàn)
在這個功能中,工作人員輸入借閱者的借閱證號和所要借閱的圖書的圖書編號,然后點擊借閱按鈕就可進行圖書借閱??紤]到實際中可能會出現(xiàn)只知圖書名而不知圖書編號的情況,在此界面下方加入了一個轉換功能,可以把圖書名稱轉換成圖書編號,再進行圖書借閱。
在借閱完成后會生借閱報表以便借閱者檢查和確認,借閱報表的打印效果如下圖,實現(xiàn)比較簡單,略去實現(xiàn)過程。
5.7.2工作人員進行圖書歸還功能實現(xiàn)
在此功能中,工作人員根據(jù)借閱者的借書證號和歸還的圖書編號進行圖書的歸還工作。并且根據(jù)現(xiàn)實中可能會出現(xiàn)的只知圖書名不知圖書編號的歸還情況,所以加入了按書籍名稱進行歸還的功能。這個功能是圖書借閱功能中把圖書名稱轉換成圖書編號的一種改進方法,這樣就不用如借閱功能中一樣要先轉換再借閱了。歸還完成后,同樣會打印出歸還報表以便用戶檢查和確認。
5.8圖書館管理員模塊的實現(xiàn)
5.8.1圖書館管理員圖書管理功能的實現(xiàn)
在這個功能中可以在(*圖書編號)中輸入圖書編號,點查找按鈕后就會在各個相應的組件中顯示出信息,或按圖書名稱模糊查找到所要的記錄,在各個相應的組件中顯示之一條記錄的信息,也可在下端的ListView組件中點擊某一條記錄,在各個相應的組件中也會顯示所選記錄的信息。在入庫功能中只要不是相同的圖書編號并且?guī)В柼崾镜淖侄尾粸榭站涂刹迦胄碌膱D書記錄。刪除則刪除那些Book表中的圖書記錄,如果借出還可依用戶要求連帶刪除owner表中的記錄。因為圖書修改與圖書入庫的功能與工作人員記錄修改和工作人員記錄添加的實現(xiàn)過程一樣,所以下面僅給出刪除功能的源代碼,如下
5.8.2圖書館管理員工作人員和管理員管理功能的實現(xiàn)
在此功能中可以加入工作人員或是管理員,或是修改他們的密碼、權限。
在此功能中如果選中ListView中的記錄,則在右邊相應的組件中顯示出信息,并且管理員還可對這些記錄進行修改或加入新的記錄。并且也可以點刪除按鈕刪除選中的一條或多條記錄。刪除功能與圖書記錄的刪除一般,所以下面只給出添加與修改的實現(xiàn)過程。
5.8.3圖書館管理員修改圖書類別及統(tǒng)記功能的實現(xiàn)
在此窗體中能對圖書的類別進行刪除,添加和修改,這模塊的功能的實現(xiàn)過程與圖書記錄的刪除,添加和修改一樣的,但是這個窗體還能跟據(jù)圖書類別進行統(tǒng)計,還可根據(jù)Book表和owner表統(tǒng)計出圖書總數(shù)目,庫存圖書數(shù)目,借出圖書數(shù)目及借閱過期的圖書數(shù)目。在這里給出統(tǒng)計圖書總數(shù)目,庫存圖書數(shù)目,借出圖書數(shù)目及借閱過期的圖書數(shù)目的實現(xiàn)過程中的幾個函數(shù)和過程
5.8.4圖書館管理員借閱者管理功能的實現(xiàn)
查詢借閱者可根據(jù)借閱者的借書證號或姓名或身份編號查找到借閱者的信息,也可以實行模糊查找,這個功能的實現(xiàn)與前面圖書查找的實現(xiàn)過程一般,就不再詳細說明。
5.8.5圖書館維護借閱者管理功能的實現(xiàn)
此功能能對借閱者信息進行查看添加、刪除、修改。在這里給出刷新按鈕的實現(xiàn)過程
5.8.6圖書館身份維護功能的實現(xiàn)
這一部分是對借閱者身份進行管理,能對身份進行添加、刪除、修改。并且同樣的在listview中選中某條或多條記錄時會在相應的右邊的組件中顯示出信息。此功能實現(xiàn)過程與前面所敘有雷同,略。
5.8.7圖書館借閱者統(tǒng)計功能的實現(xiàn)
此功能按借閱者身份進行統(tǒng)計,得出具有某種身份的借閱者總數(shù),此種身份的并借閱圖書的借閱者數(shù)和所借閱的圖書數(shù),在下面給出實現(xiàn)過程。
5.8.8圖書館統(tǒng)計借閱過期記錄功能的實現(xiàn)
打印出的借閱過期催還報表如下圖所示:
此報表能顯示按借書證號升序排列的借閱信息超過限定時限的信息,其中主要的SQL語句如下:
5.9系統(tǒng)信息顯示的實現(xiàn)
顯過本系統(tǒng)的信息,并且右邊的字向上滾動顯示,主要實現(xiàn)如下:
從數(shù)據(jù)庫更新模型的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關于從數(shù)據(jù)庫更新模型,大幅提升數(shù)據(jù)模型準確性——數(shù)據(jù)庫更新模型,數(shù)據(jù)庫系統(tǒng)1-2:層次模型,數(shù)據(jù)庫優(yōu)化(ER模型設計)的信息別忘了在本站進行查找喔。
創(chuàng)新互聯(lián)成都網(wǎng)站建設公司提供專業(yè)的建站服務,為您量身定制,歡迎來電(028-86922220)為您打造專屬于企業(yè)本身的網(wǎng)絡品牌形象。
成都創(chuàng)新互聯(lián)品牌官網(wǎng)提供專業(yè)的網(wǎng)站建設、設計、制作等服務,是一家以網(wǎng)站建設為主要業(yè)務的公司,在網(wǎng)站建設、設計和制作領域具有豐富的經(jīng)驗。
本文題目:大幅提升數(shù)據(jù)模型準確性——數(shù)據(jù)庫更新模型(從數(shù)據(jù)庫更新模型)
URL鏈接:http://fisionsoft.com.cn/article/dppgooo.html


咨詢
建站咨詢
