av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

深度解析數(shù)據(jù)庫表關(guān)系模型(數(shù)據(jù)庫表關(guān)系模型解析)

數(shù)據(jù)庫表關(guān)系模型是數(shù)據(jù)庫系統(tǒng)中非常重要的一部分,通過它我們可以規(guī)劃好數(shù)據(jù)庫中各個表之間的關(guān)系,從而更好地實現(xiàn)數(shù)據(jù)的存儲和管理。在實際應(yīng)用中,掌握好數(shù)據(jù)庫表關(guān)系模型的設(shè)計和使用對我們進行數(shù)據(jù)庫開發(fā)和管理工作至關(guān)重要。因此,本文將著重對數(shù)據(jù)庫表關(guān)系模型進行深度解析,以便幫助讀者更好地理解和掌握此部分內(nèi)容。

創(chuàng)新互聯(lián)公司主要從事網(wǎng)頁設(shè)計、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機版網(wǎng)站建設(shè))、響應(yīng)式網(wǎng)站開發(fā)、程序開發(fā)、網(wǎng)站優(yōu)化、微網(wǎng)站、小程序制作等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的成都網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)站設(shè)計、網(wǎng)絡(luò)營銷經(jīng)驗,集策劃、開發(fā)、設(shè)計、營銷、管理等多方位專業(yè)化運作于一體。

1. 數(shù)據(jù)庫表關(guān)系模型的基本概念

我們需要明確數(shù)據(jù)庫表關(guān)系模型的基本概念及其相關(guān)術(shù)語。在關(guān)系型數(shù)據(jù)庫系統(tǒng)中,表(table)是數(shù)據(jù)存儲的基本單位,每個表都由若干個字段(column)組成,每個字段代表一種數(shù)據(jù)類型,而每條數(shù)據(jù)記錄(row)則由各個字段的值構(gòu)成。而表之間的關(guān)系則定義了它們之間的數(shù)據(jù)聯(lián)系,這種聯(lián)系可以是一對一、一對多或多對多的,我們通常用外鍵(foreign key)來表示表之間的關(guān)系。

2. 數(shù)據(jù)庫表關(guān)系模型的類型

數(shù)據(jù)庫表關(guān)系模型有幾種常見的類型,包括一對一關(guān)系模型、一對多關(guān)系模型和多對多關(guān)系模型。其中,一對一關(guān)系模型表示兩個表之間的關(guān)系是一對一的,即每個表中的每條記錄都只對應(yīng)另一個表中的一條記錄。舉例來說,我們可以將公司員工和他們的身份證號碼兩個實體建立一對一的關(guān)系模型,因為每個員工只有一個唯一的身份證號碼,而每個身份證號碼也只對應(yīng)一個員工。

一對多關(guān)系模型則表示兩個表之間的關(guān)系是一對多的,即一個表中的一條記錄可以對應(yīng)另一個表中的多條記錄。舉例來說,我們可以將一個訂單和其中的多個商品建立一對多的關(guān)系模型,因為每個訂單可以包含多個商品,而每個商品只對應(yīng)一個訂單。

多對多關(guān)系模型則表示兩個表之間的關(guān)系是多對多的,即一個表中的多條記錄可以對應(yīng)另一個表中的多條記錄。舉例來說,我們可以將學(xué)生和課程建立一個多對多的關(guān)系模型,因為每個學(xué)生可以選修多個課程,而每個課程也可以被多個學(xué)生選修。

3. 如何設(shè)計數(shù)據(jù)庫表關(guān)系模型

在實際應(yīng)用中,我們需要根據(jù)具體業(yè)務(wù)需求來設(shè)計數(shù)據(jù)庫表關(guān)系模型。一般而言,我們可以采用以下步驟來完成此過程:

(1)確定實體和屬性

實體是指我們需要存儲的數(shù)據(jù)對象,例如公司員工、訂單、學(xué)生等。而屬性則是指每個實體所包含的數(shù)據(jù)項,例如員工的姓名、年齡、性別等信息。我們需要對這些實體和屬性進行歸類整理,以保證數(shù)據(jù)庫的數(shù)據(jù)按照一定的規(guī)范進行存儲和管理。

(2)建立實體之間的關(guān)系

在確定好實體和屬性之后,我們需要建立它們之間的關(guān)系,以完成數(shù)據(jù)庫表關(guān)系模型的設(shè)計。在建立關(guān)系時,我們需要考慮表之間的聯(lián)系類型、關(guān)系的強度和方向等因素,從而確保關(guān)系模型的完整性和有效性。

(3)建立表結(jié)構(gòu)

根據(jù)實體和關(guān)系的設(shè)定,我們可以開始建立表結(jié)構(gòu),以便實現(xiàn)數(shù)據(jù)的存儲和管理。在設(shè)計表結(jié)構(gòu)時,我們需要考慮每個表所包含的字段、數(shù)據(jù)類型、唯一性約束、主鍵、外鍵等因素,從而保證每個表的數(shù)據(jù)結(jié)構(gòu)合理、完整。

(4)建立索引

在設(shè)計好表結(jié)構(gòu)之后,我們需要為表中的某些字段建立索引,以優(yōu)化數(shù)據(jù)庫的查詢性能。索引是一種數(shù)據(jù)結(jié)構(gòu),它使得數(shù)據(jù)庫系統(tǒng)可以更快地檢索、訪問和處理數(shù)據(jù)。在建立索引時,我們需要注意選擇合適的字段、字段順序和算法以及索引的存儲位置等因素,以確保索引的效率和安全性。

4. 數(shù)據(jù)庫表關(guān)系模型的優(yōu)化與應(yīng)用

數(shù)據(jù)庫表關(guān)系模型的優(yōu)化和應(yīng)用可以幫助我們更好地利用數(shù)據(jù)庫的數(shù)據(jù)存儲和管理功能。其中,數(shù)據(jù)庫表的設(shè)計可以通過調(diào)整表結(jié)構(gòu)、增加索引、優(yōu)化查詢語句,從而提高數(shù)據(jù)庫的性能和可靠性。在應(yīng)用數(shù)據(jù)庫表關(guān)系模型時,我們需要靈活運用各種關(guān)系模型,以便更好地滿足業(yè)務(wù)需求,同時還需要考慮實現(xiàn)的效率、數(shù)據(jù)安全性等因素,以保證數(shù)據(jù)庫系統(tǒng)的穩(wěn)定性和可用性。

數(shù)據(jù)庫表關(guān)系模型是關(guān)系型數(shù)據(jù)庫系統(tǒng)中非常重要的一部分,掌握好它的設(shè)計和使用,對我們進行數(shù)據(jù)庫開發(fā)和管理工作無疑至關(guān)重要。通過本文的深度解析,相信讀者們已經(jīng)對數(shù)據(jù)庫表關(guān)系模型有了更深刻的了解和掌握,從而能夠更好地利用這一技術(shù)進行實際應(yīng)用。

成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,響應(yīng)式網(wǎng)站制作,設(shè)計師量身打造品牌風(fēng)格,熱線:028-86922220

急需圖書館系統(tǒng)數(shù)據(jù)流圖,關(guān)系模型,ER圖

分類: 電腦/網(wǎng)絡(luò)

解析:

各種類型數(shù)據(jù)的高等界面,后來逐漸演變成滿足所有數(shù)據(jù)訪問需要的完整解datamodule4.adoquery2.sql.add(‘SELECT借書證號,密碼FROMWHERE(借書證號=:tt)’);

datamodule4.adoquery2.parameters.value:=username;

datamodule4.adoquery2.open;

在為TQuery或TADOquery部件設(shè)置SQL屬性時調(diào)用Close方法總是很安全的,如果TQuery或TADOquery部件已經(jīng)被擾轎關(guān)閉了,調(diào)用Close方法時不會產(chǎn)生任何影響。在應(yīng)用程序中為SQL屬性設(shè)置新的SQL命令語句時,必須要調(diào)用Clear方法以清除SQL屬性中現(xiàn)存的SQL命令語句,如果不調(diào)用Clear方法,便調(diào)用Add方法向SQL屬性中設(shè)置SQL命令語句,那么新設(shè)置的SQL命令語句會追加在現(xiàn)存SQL命令語句后面,在程序運行時常常會出現(xiàn)出乎意料的查詢結(jié)果甚至程序無法運行下去。

在這里要特別注意的,一般情況下TQuery或TADOquery部件的SQL屬性只能包含一條完整的SQL語句,它不允許被設(shè)置成多條SQL語句。當然有些數(shù)據(jù)庫服務(wù)器也支持在TQuery或TADOquery部件的SQL屬性中設(shè)置多條SQL語句,只要數(shù)據(jù)庫服務(wù)器允許這樣,我們在編程時可以為SQL屬性設(shè)置多條SQL語句。

在為TQuery或TADOquery部件設(shè)置完SQL屬性的屬性值之后,也即編寫好適當?shù)腟QL程序之后,可以有多種方式來執(zhí)行SQL程序。

在設(shè)計過程中,設(shè)置完TQuery或TADOquery部件的SQL屬性之后將其Active屬性的值置為True,這樣便可以執(zhí)行SQL屬性中的SQL程序,如果應(yīng)用中有與TQuery或TADOquery部件相連的數(shù)據(jù)瀏覽部件(如TDDGridTDBEdit等)那么在這些數(shù)據(jù)瀏覽部件中會顯示SQL程序的執(zhí)行結(jié)果。

在應(yīng)用程序運行過程中,通過程序調(diào)用TQuery或TADOquery組件頃宴的Open方法或ExecSQL方法可以執(zhí)行其SQL屬性中的SQL程序。Open方法和ExecSQL方法是不一樣的。Open方法只能用來執(zhí)行SQL語言的查詢語句(Select命令),并返回一個查詢結(jié)果集,而ExecSQL方法還可以用來執(zhí)行其它常用的SQL語句(如INSERT,UPDATE,DELETE等命令),例如:

Query1.Open(這樣會返回一個查詢結(jié)果集)

如果調(diào)用Open方法,而沒有查詢結(jié)果時,會出錯。此時應(yīng)該調(diào)用ExecSQL方法來代替Open方法。如:

Query1.ExecSQL(沒有返回結(jié)果)

當然在設(shè)計應(yīng)用程序時,程序設(shè)計人員是無法確定TQuery或TADOquery組件中的SQL語句是否會返回一個查詢結(jié)果的。對于這種情況應(yīng)當用Try…Except模塊來設(shè)計程緩乎肆序。在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部件獲得的查詢結(jié)果數(shù)據(jù)是只讀數(shù)據(jù),要想獲得“活動”的數(shù)據(jù),在應(yīng)用程序中必須要設(shè)置Tquery或TADOquery組件的RequestLive屬性值為True,然而并不是在任何情況下(通過設(shè)置RequestLive的屬值True)都可以獲得“活動”的數(shù)據(jù)的,要想獲得“活動”的數(shù)據(jù),除了將TQuery部件的RequestLive屬性設(shè)置為True外,相應(yīng)的SQL命令還要滿足以下條件。

本地SQL語句查詢情況下,要得到可更新的數(shù)據(jù)集,SQL語句的限制為:

n查詢只能涉及到一個單獨的表

nSQL語句中不能包含ORDERBY命令

nSQL語句中不能含聚集運算符SUM或AVG

n在Select后的字段列表中不能有計算字段

n在Select語句WHERE部分只能包含字段值與常量的比較運算,這些比較運算符是:Like,>,=,

當通過SQL語句查詢數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)庫表:

n查詢只能涉及到一個單獨的表

nSQL語句中不能包含ORDERBY命令

nSQL語句中不能含聚集運算符SUM或AVG運算

另外,如果是查詢Sybase數(shù)據(jù)庫中的表,那么被查詢的表中只能有一個索引。

如果在應(yīng)用程序中要求TQuery或TADOquery組件返回一個“活動”的查詢結(jié)果數(shù)據(jù)集,但是SQL命令語句不滿足上述約束條件時,對于本地數(shù)據(jù)庫的SQL查詢,BDE只能返回只讀的數(shù)據(jù)集。對于數(shù)據(jù)庫服務(wù)器中的SQL查詢,只能返回錯誤的代碼。當Tquery或TADOquery組件返回一個“活動”的查詢結(jié)果數(shù)據(jù)集時,它的CanModIfy屬性的值會被設(shè)置成True。

§3.4MSSQLServer簡述

SQLServer是一個后臺數(shù)據(jù)庫管理系統(tǒng),它功能強大操作簡便,日益為廣大數(shù)據(jù)庫用戶所喜愛。越來越多的開發(fā)工具提供了與SQLServer的接口。SQLServer是一個關(guān)系數(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)點,同時又比它增加了許多更先進的功能、具有使用方便、可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點。可跨越從運行MicrosoftWindows98的膝上型電腦到運行MicrosoftWindows2023的大型多處理器的服務(wù)器等多種平臺使用。MSSQLServer不但可以應(yīng)用于大中型數(shù)據(jù)庫管理中,建立分布式關(guān)系數(shù)據(jù)庫,并且也可以開發(fā)桌面數(shù)據(jù)庫。事實上,SQLServer數(shù)據(jù)庫處理的基本結(jié)構(gòu),采取關(guān)系型數(shù)據(jù)庫模式,盡管如此,相信大家都可以輕易的發(fā)現(xiàn),在SQLServer的數(shù)據(jù)庫處理方式,則是使用面向?qū)ο蟮牟僮鞣绞脚c精神,也就是說,SQLServer的所有功能,都可以基于系統(tǒng)已經(jīng)建立好的一些對象來達成,是相當OO(面向?qū)ο螅┑囊粋€系統(tǒng)結(jié)構(gòu)。

SQLServer企業(yè)管理器是SQLServer的主要管理工具,它提供了一個遵從MMC標準的用戶界面,使用戶得以:

·定義SQLServer實例組。

·將個別服務(wù)器注冊到組中。

·為每個已注冊的服務(wù)器配置所有SQLServer選項。

·在每個已注冊的服務(wù)器中創(chuàng)建并管理所有SQLServer數(shù)據(jù)庫、對象、登錄、用戶和權(quán)限。

·在每個已注冊的服務(wù)器上定義并執(zhí)行所有SQLServer管理任務(wù)。

·通過喚醒調(diào)用SQL查詢分析器,交互地設(shè)計并測試SQL語句、批處理和腳本。

·喚醒調(diào)用為SQLServer定義的各種向?qū)А?/p>

·

第三章圖書管理系統(tǒng)設(shè)計分析

§4.1應(yīng)用需求分析

圖書管理系統(tǒng)需要滿足來自三方面的需求,這三個方面分別是圖書借閱者、圖書館工作人員和圖書館管理人員。圖書借閱者的需求是查詢圖書館所存的圖書、個人借閱情況及個人信息的修改;圖書館工作人員對圖書借閱者的借閱及還書要求進行操作,同時形成借書或還書報表給借閱者查看確認;圖書館管理人員的功能最為復(fù)雜,包括對工作人員、圖書借閱者、圖書進行管理和維護,及系統(tǒng)狀態(tài)的查看、維護并生成催還圖書報表。

圖書借閱者可直接查看圖書館圖書情況,如果圖書借閱者根據(jù)本人借書證號和密碼登錄系統(tǒng),還可以進行本人借書情況的查詢和維護部分個人信息。一般情況下,圖書借閱者只應(yīng)該查詢和維護本人的借書情況和個人信息,若查詢和維護其他借閱者的借書情況和個人信息,就要知道其他圖書借閱者的借書證號和密碼。這些是很難得到的,特別是密碼,所以不但滿足了圖書借閱者的要求,還保護了圖書借閱者的個人隱私。

圖書館工作人員有修改圖書借閱者借書和還書記錄的權(quán)限,所以需對工作人員登陸本模塊進行更多的考慮。在此模塊中,圖書館工作人員可以為圖書借閱者加入借書記錄或是還書記錄,并打印生成相應(yīng)的報表給用戶查看和確認。

圖書館管理人員功能的信息量大,數(shù)據(jù)安全性和保密性要求更高。本功能實現(xiàn)對圖書信息、借閱者信息、總體借閱情況信息的管理和統(tǒng)計、工作人員和管理人員信息查看及維護。圖書館管理員可以瀏覽、查詢、添加、刪除、修改、統(tǒng)計圖書的基本信息;瀏覽、查詢、統(tǒng)計、添加、刪除和修改圖書借閱者的基本信息,瀏覽、查詢、統(tǒng)計圖書館的借閱信息,但不能添加、刪除和修改借閱信息,這部分功能應(yīng)該由圖書館工作人員執(zhí)行,但是,刪除某條圖書借閱者基本信息記錄時,應(yīng)實現(xiàn)對該圖書借閱者借閱記錄的級聯(lián)刪除。并且還應(yīng)具有生成催還圖書報表,并打印輸出的功能。

在本系統(tǒng)中由于沒有打印機設(shè)備供試驗,所以預(yù)先把報表打印改成報表預(yù)覽。

設(shè)計不同用戶的操作權(quán)限和登陸方法

對所有用戶開放的圖書查詢

借閱者維護借閱者個人部分信息

借閱者查看個人借閱情況信息

維護借閱者個人密碼

根據(jù)借閱情況對數(shù)據(jù)庫進行操作并生成報表

根據(jù)還書情況對數(shù)據(jù)庫進行操作并生成報表

查詢及統(tǒng)計各種信息

維護圖書信息

維護工作人員和管理員信息

維護借閱者信息

處理信息的完整性

對借閱過期的圖書生成報表

圖4-2圖書管理系統(tǒng)數(shù)據(jù)庫應(yīng)用需求的總結(jié)

根據(jù)以上所做的需求分析,并略掉一些細節(jié)(如不考慮用戶的登錄;對記錄的維護),得出以下的三層數(shù)據(jù)流圖。

§4.2系統(tǒng)功能模塊劃分

系統(tǒng)功能框圖如圖4-10所示。

§4.3系統(tǒng)數(shù)據(jù)庫設(shè)計

4.3.1概念設(shè)計

在概念設(shè)計階段中,設(shè)計人員從用戶的角度看待數(shù)據(jù)及處理要求和約束,產(chǎn)生一個反映用戶觀點的概念模式。然后再把概念模式轉(zhuǎn)換成邏輯模式。將概念設(shè)計從設(shè)計過程中獨立開來,使各階段的任務(wù)相對單一化,設(shè)計復(fù)雜程度大大降低,不受特定DBMS的限制。

利用ER方法進行數(shù)據(jù)庫的概念設(shè)計,可分成三步進行:首先設(shè)計局部ER模式,然后把各局部ER模式綜合成一個全局模式,最后對全局ER模式進行優(yōu)化,得到最終的模式,即概念模式。

(1)設(shè)計局部ER模式

實體和屬性的定義:

圖書(圖書編號,圖書名稱,作者,出版社,出版日期,備注,價格,數(shù)量,)

借閱者(借書證號,姓名,性別,身份證,聯(lián)系,密碼)

身份(身份編號,身份描述,更大借閱數(shù))

圖書類別(圖書類別編號,類別描述)

ER模型的“聯(lián)系”用于刻畫實體之間的關(guān)聯(lián)。一種完整的方式是對局部結(jié)構(gòu)中任意兩個實體類型,依據(jù)需求分析的結(jié)果,考察局部結(jié)構(gòu)中任意兩個實體類型之間是否存在聯(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)設(shè)計全局ER模式

所有局部ER模式都設(shè)計好了后,接下來就是把它們綜合成單一的全局概念結(jié)構(gòu)。全局概念結(jié)構(gòu)不僅要支持所有局部ER模式,而且必須合理地表示一個完整、一致的數(shù)據(jù)庫概念結(jié)構(gòu)。

1)確定公共實體類型

為了給多個局部ER模式的合并提供開始合并的基礎(chǔ),首先要確定各局部結(jié)構(gòu)中的公共實體類型。在這一步中我們僅根據(jù)實體類型名和鍵來認定公共實體類型。一般把同名實體類型作為公共實體類型的一類候選,把具有相同鍵的實體類型作為公共實體類型的另一類候眩

2)局部ER模式的合并

合并的原則是:首先進行兩兩合并;先和合并那些現(xiàn)實世界中有聯(lián)系的局部結(jié)構(gòu);合并從公共實體類型開始,最后再加入獨立的局部結(jié)構(gòu)。

3)消除沖突

沖突分為三類:屬性沖突、結(jié)構(gòu)沖突、命名沖突。

設(shè)計全局ER模式的目的不在于把若干局部ER模式形式上合并為一個ER模式,而在于消除沖突,使之成為能夠被所有用戶共同理解和接受的同一的概念模型。

3)全局ER模式的優(yōu)化

在得到全局ER模式后,為了提高數(shù)據(jù)庫系統(tǒng)的效率,還應(yīng)進一步依據(jù)處理需求對ER模式進行優(yōu)化。一個好的全局ER模式,除能準確、全面地反映用戶功能需求外,還應(yīng)滿足下列條件:實體類型的個數(shù)要盡可能的少;實體類型所含屬性個數(shù)盡可能少;實體類型間聯(lián)系無冗余。

綜上所述,“圖書管理系統(tǒng)”的全局ER模式如圖4-13所示。

4.3.2關(guān)系數(shù)據(jù)庫的邏輯設(shè)計

由于概念設(shè)計的結(jié)果是ER圖,DBMS一般采用關(guān)系型(本人所使用的MSSQLServer就是關(guān)系型的DBMS),因此數(shù)據(jù)庫的邏輯設(shè)計過程就是把ER圖轉(zhuǎn)化為關(guān)系模式的過程。由于關(guān)系模型所具有的優(yōu)點,邏輯設(shè)計可以充分運用關(guān)系數(shù)據(jù)庫規(guī)范化理論,使設(shè)計過程形式化地進行。設(shè)計結(jié)果是一組關(guān)系模式的定義。

(1)導(dǎo)出初始關(guān)系模式

book(圖書編號#,圖書名稱,圖書類別#,作者,出版社,出版日期,備注,價格,數(shù)量)class(圖書類別#,類別名)user(借書證號#,姓名,性別,身份編號#,身份證,聯(lián)系,密碼)ID(身份編號#,身份描述,更大借閱數(shù))Owner(借書證號#,圖書編號#,借書日期)

圖4-14關(guān)系模式集

(2)產(chǎn)生子模式

子模式是用戶所用到的那部分數(shù)據(jù)的描述。除了指出用戶用到的數(shù)據(jù)外,還應(yīng)指出數(shù)據(jù)與概念模式中相應(yīng)數(shù)據(jù)的聯(lián)系,即指出概念模式與子模式之間的對應(yīng)性。

借書子模式(借書證號#,姓名,圖書編號#,圖書名稱,借書日期)

圖4-15部分子模式

(3)根據(jù)設(shè)計中出現(xiàn)的問題本人在寫系統(tǒng)時還加入了兩個關(guān)系模式:

1、ownertemp:用于工作人員在處理借書、還書工作時臨時存儲借書、還書信息,以便打印報表時使用。

2、keyer:用于存儲工作人員和圖書館管理員的用戶名和密碼及權(quán)限,以便工作人員或圖書館管理員進入相應(yīng)的功能模塊時進行驗證用戶的身份。

4.3.3數(shù)據(jù)庫的實現(xiàn)

我選用MicrosoftSQLServer2023(企業(yè)版)數(shù)據(jù)庫來進行數(shù)據(jù)庫的邏輯設(shè)計。首先創(chuàng)建七個基本數(shù)據(jù)庫表如表4-1-4-7所示,然后根據(jù)全局ER圖,建立各個表之間的聯(lián)系,如圖4-8所示。

表4-1借閱者基本信息表的結(jié)構(gòu)(User)

表4-2圖書信息表的結(jié)構(gòu)(Book)

表4-3圖書類別信息表的結(jié)構(gòu)(Class)

表4-4借閱者身份信息表的結(jié)構(gòu)(ID)

表4-5借閱情況信息表的結(jié)構(gòu)(Owner)

表4-6借閱情況臨時存儲信息表的結(jié)構(gòu)(Ownertemp)

注:在owner表和ownertemp表中加入了索引字段,用來唯一標識一條借書記錄,并且設(shè)置為標識,標識種子為1。

表4-7工作人員和管理員信息表的結(jié)構(gòu)(Keyer)

圖4-8數(shù)據(jù)庫表間聯(lián)系圖

第五章圖書管理系統(tǒng)應(yīng)用程序設(shè)計

§5.1系統(tǒng)窗體模塊組成

§5.2數(shù)據(jù)模塊窗體的設(shè)置

在編寫數(shù)據(jù)庫應(yīng)用程序時,經(jīng)常要遇到這樣的情況,即好多組件、窗體同時訪問相同的數(shù)據(jù)源,如果為每一個組件或者窗體都設(shè)置一個數(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表中的“權(quán)限”字段,以分辯進入圖書館管理人員模塊還是進入工作人員模塊。窗體界面、源代碼如下

§5.6借閱者服務(wù)模塊的實現(xiàn)

借閱者服務(wù)窗體的功能主要是圖書的查詢,個人借閱情況查看及個人部分信息的修改。界面圖如下:

5.6.1圖書查詢功能的實現(xiàn)

在本系統(tǒng)中,任何人都有權(quán)限使用查詢功能,不做任何限制。界面如下,

由于實現(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,在這里進行密碼修改。關(guān)鍵源代碼如下。

這里給出個人部分信息修改的源代碼:

這里給出密碼修改的源代碼:

5.7工作人員-圖書借閱/歸還模塊的實現(xiàn)

5.7.1工作人員進行圖書借閱功能實現(xiàn)

在這個功能中,工作人員輸入借閱者的借閱證號和所要借閱的圖書的圖書編號,然后點擊借閱按鈕就可進行圖書借閱??紤]到實際中可能會出現(xiàn)只知圖書名而不知圖書編號的情況,在此界面下方加入了一個轉(zhuǎn)換功能,可以把圖書名稱轉(zhuǎn)換成圖書編號,再進行圖書借閱。

在借閱完成后會生借閱報表以便借閱者檢查和確認,借閱報表的打印效果如下圖,實現(xiàn)比較簡單,略去實現(xiàn)過程。

5.7.2工作人員進行圖書歸還功能實現(xiàn)

在此功能中,工作人員根據(jù)借閱者的借書證號和歸還的圖書編號進行圖書的歸還工作。并且根據(jù)現(xiàn)實中可能會出現(xiàn)的只知圖書名不知圖書編號的歸還情況,所以加入了按書籍名稱進行歸還的功能。這個功能是圖書借閱功能中把圖書名稱轉(zhuǎn)換成圖書編號的一種改進方法,這樣就不用如借閱功能中一樣要先轉(zhuǎn)換再借閱了。歸還完成后,同樣會打印出歸還報表以便用戶檢查和確認。

5.8圖書館管理員模塊的實現(xiàn)

5.8.1圖書館管理員圖書管理功能的實現(xiàn)

在這個功能中可以在(*圖書編號)中輸入圖書編號,點查找按鈕后就會在各個相應(yīng)的組件中顯示出信息,或按圖書名稱模糊查找到所要的記錄,在各個相應(yīng)的組件中顯示之一條記錄的信息,也可在下端的ListView組件中點擊某一條記錄,在各個相應(yīng)的組件中也會顯示所選記錄的信息。在入庫功能中只要不是相同的圖書編號并且?guī)В柼崾镜淖侄尾粸榭站涂刹迦胄碌膱D書記錄。刪除則刪除那些Book表中的圖書記錄,如果借出還可依用戶要求連帶刪除owner表中的記錄。因為圖書修改與圖書入庫的功能與工作人員記錄修改和工作人員記錄添加的實現(xiàn)過程一樣,所以下面僅給出刪除功能的源代碼,如下

5.8.2圖書館管理員工作人員和管理員管理功能的實現(xiàn)

在此功能中可以加入工作人員或是管理員,或是修改他們的密碼、權(quán)限。

在此功能中如果選中ListView中的記錄,則在右邊相應(yīng)的組件中顯示出信息,并且管理員還可對這些記錄進行修改或加入新的記錄。并且也可以點刪除按鈕刪除選中的一條或多條記錄。刪除功能與圖書記錄的刪除一般,所以下面只給出添加與修改的實現(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中選中某條或多條記錄時會在相應(yīng)的右邊的組件中顯示出信息。此功能實現(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)

有沒有知道m(xù)ysql怎么看表之間的關(guān)系模型圖

mysql數(shù)據(jù)庫表間的關(guān)系圖可以通慧州局過navicat查看:

1、百度下載navicat并打開;

2、點擊navicat界面最右下角標注的按鈕即前讓可查看關(guān)系圖跡則。

關(guān)于數(shù)據(jù)庫表關(guān)系模型解析的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

創(chuàng)新互聯(lián)【028-86922220】值得信賴的成都網(wǎng)站建設(shè)公司。多年持續(xù)為眾多企業(yè)提供成都網(wǎng)站建設(shè),成都品牌建站設(shè)計,成都高端網(wǎng)站制作開發(fā),SEO優(yōu)化排名推廣服務(wù),全網(wǎng)營銷讓企業(yè)網(wǎng)站產(chǎn)生價值。


當前名稱:深度解析數(shù)據(jù)庫表關(guān)系模型(數(shù)據(jù)庫表關(guān)系模型解析)
本文來源:http://uogjgqi.cn/article/cogejce.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流