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

創(chuàng)新互聯(lián)公司主要從事網(wǎng)頁(yè)設(shè)計(jì)、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、響應(yīng)式網(wǎng)站開(kāi)發(fā)、程序開(kāi)發(fā)、網(wǎng)站優(yōu)化、微網(wǎng)站、小程序制作等,憑借多年來(lái)在互聯(lián)網(wǎng)的打拼,我們?cè)诨ヂ?lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的成都網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷經(jīng)驗(yàn),集策劃、開(kāi)發(fā)、設(shè)計(jì)、營(yíng)銷、管理等多方位專業(yè)化運(yùn)作于一體。
1. 數(shù)據(jù)庫(kù)表關(guān)系模型的基本概念
我們需要明確數(shù)據(jù)庫(kù)表關(guān)系模型的基本概念及其相關(guān)術(shù)語(yǔ)。在關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)中,表(table)是數(shù)據(jù)存儲(chǔ)的基本單位,每個(gè)表都由若干個(gè)字段(column)組成,每個(gè)字段代表一種數(shù)據(jù)類型,而每條數(shù)據(jù)記錄(row)則由各個(gè)字段的值構(gòu)成。而表之間的關(guān)系則定義了它們之間的數(shù)據(jù)聯(lián)系,這種聯(lián)系可以是一對(duì)一、一對(duì)多或多對(duì)多的,我們通常用外鍵(foreign key)來(lái)表示表之間的關(guān)系。
2. 數(shù)據(jù)庫(kù)表關(guān)系模型的類型
數(shù)據(jù)庫(kù)表關(guān)系模型有幾種常見(jiàn)的類型,包括一對(duì)一關(guān)系模型、一對(duì)多關(guān)系模型和多對(duì)多關(guān)系模型。其中,一對(duì)一關(guān)系模型表示兩個(gè)表之間的關(guān)系是一對(duì)一的,即每個(gè)表中的每條記錄都只對(duì)應(yīng)另一個(gè)表中的一條記錄。舉例來(lái)說(shuō),我們可以將公司員工和他們的身份證號(hào)碼兩個(gè)實(shí)體建立一對(duì)一的關(guān)系模型,因?yàn)槊總€(gè)員工只有一個(gè)唯一的身份證號(hào)碼,而每個(gè)身份證號(hào)碼也只對(duì)應(yīng)一個(gè)員工。
一對(duì)多關(guān)系模型則表示兩個(gè)表之間的關(guān)系是一對(duì)多的,即一個(gè)表中的一條記錄可以對(duì)應(yīng)另一個(gè)表中的多條記錄。舉例來(lái)說(shuō),我們可以將一個(gè)訂單和其中的多個(gè)商品建立一對(duì)多的關(guān)系模型,因?yàn)槊總€(gè)訂單可以包含多個(gè)商品,而每個(gè)商品只對(duì)應(yīng)一個(gè)訂單。
多對(duì)多關(guān)系模型則表示兩個(gè)表之間的關(guān)系是多對(duì)多的,即一個(gè)表中的多條記錄可以對(duì)應(yīng)另一個(gè)表中的多條記錄。舉例來(lái)說(shuō),我們可以將學(xué)生和課程建立一個(gè)多對(duì)多的關(guān)系模型,因?yàn)槊總€(gè)學(xué)生可以選修多個(gè)課程,而每個(gè)課程也可以被多個(gè)學(xué)生選修。
3. 如何設(shè)計(jì)數(shù)據(jù)庫(kù)表關(guān)系模型
在實(shí)際應(yīng)用中,我們需要根據(jù)具體業(yè)務(wù)需求來(lái)設(shè)計(jì)數(shù)據(jù)庫(kù)表關(guān)系模型。一般而言,我們可以采用以下步驟來(lái)完成此過(guò)程:
(1)確定實(shí)體和屬性
實(shí)體是指我們需要存儲(chǔ)的數(shù)據(jù)對(duì)象,例如公司員工、訂單、學(xué)生等。而屬性則是指每個(gè)實(shí)體所包含的數(shù)據(jù)項(xiàng),例如員工的姓名、年齡、性別等信息。我們需要對(duì)這些實(shí)體和屬性進(jìn)行歸類整理,以保證數(shù)據(jù)庫(kù)的數(shù)據(jù)按照一定的規(guī)范進(jìn)行存儲(chǔ)和管理。
(2)建立實(shí)體之間的關(guān)系
在確定好實(shí)體和屬性之后,我們需要建立它們之間的關(guān)系,以完成數(shù)據(jù)庫(kù)表關(guān)系模型的設(shè)計(jì)。在建立關(guān)系時(shí),我們需要考慮表之間的聯(lián)系類型、關(guān)系的強(qiáng)度和方向等因素,從而確保關(guān)系模型的完整性和有效性。
(3)建立表結(jié)構(gòu)
根據(jù)實(shí)體和關(guān)系的設(shè)定,我們可以開(kāi)始建立表結(jié)構(gòu),以便實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)和管理。在設(shè)計(jì)表結(jié)構(gòu)時(shí),我們需要考慮每個(gè)表所包含的字段、數(shù)據(jù)類型、唯一性約束、主鍵、外鍵等因素,從而保證每個(gè)表的數(shù)據(jù)結(jié)構(gòu)合理、完整。
(4)建立索引
在設(shè)計(jì)好表結(jié)構(gòu)之后,我們需要為表中的某些字段建立索引,以優(yōu)化數(shù)據(jù)庫(kù)的查詢性能。索引是一種數(shù)據(jù)結(jié)構(gòu),它使得數(shù)據(jù)庫(kù)系統(tǒng)可以更快地檢索、訪問(wèn)和處理數(shù)據(jù)。在建立索引時(shí),我們需要注意選擇合適的字段、字段順序和算法以及索引的存儲(chǔ)位置等因素,以確保索引的效率和安全性。
4. 數(shù)據(jù)庫(kù)表關(guān)系模型的優(yōu)化與應(yīng)用
數(shù)據(jù)庫(kù)表關(guān)系模型的優(yōu)化和應(yīng)用可以幫助我們更好地利用數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)和管理功能。其中,數(shù)據(jù)庫(kù)表的設(shè)計(jì)可以通過(guò)調(diào)整表結(jié)構(gòu)、增加索引、優(yōu)化查詢語(yǔ)句,從而提高數(shù)據(jù)庫(kù)的性能和可靠性。在應(yīng)用數(shù)據(jù)庫(kù)表關(guān)系模型時(shí),我們需要靈活運(yùn)用各種關(guān)系模型,以便更好地滿足業(yè)務(wù)需求,同時(shí)還需要考慮實(shí)現(xiàn)的效率、數(shù)據(jù)安全性等因素,以保證數(shù)據(jù)庫(kù)系統(tǒng)的穩(wěn)定性和可用性。
數(shù)據(jù)庫(kù)表關(guān)系模型是關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)中非常重要的一部分,掌握好它的設(shè)計(jì)和使用,對(duì)我們進(jìn)行數(shù)據(jù)庫(kù)開(kāi)發(fā)和管理工作無(wú)疑至關(guān)重要。通過(guò)本文的深度解析,相信讀者們已經(jīng)對(duì)數(shù)據(jù)庫(kù)表關(guān)系模型有了更深刻的了解和掌握,從而能夠更好地利用這一技術(shù)進(jìn)行實(shí)際應(yīng)用。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來(lái)專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線:028-86922220急需圖書(shū)館系統(tǒng)數(shù)據(jù)流圖,關(guān)系模型,ER圖
分類: 電腦/網(wǎng)絡(luò)
解析:
各種類型數(shù)據(jù)的高等界面,后來(lái)逐漸演變成滿足所有數(shù)據(jù)訪問(wèn)需要的完整解datamodule4.adoquery2.sql.add(‘SELECT借書(shū)證號(hào),密碼FROMWHERE(借書(shū)證號(hào)=:tt)’);
datamodule4.adoquery2.parameters.value:=username;
datamodule4.adoquery2.open;
在為TQuery或TADOquery部件設(shè)置SQL屬性時(shí)調(diào)用Close方法總是很安全的,如果TQuery或TADOquery部件已經(jīng)被擾轎關(guān)閉了,調(diào)用Close方法時(shí)不會(huì)產(chǎn)生任何影響。在應(yīng)用程序中為SQL屬性設(shè)置新的SQL命令語(yǔ)句時(shí),必須要調(diào)用Clear方法以清除SQL屬性中現(xiàn)存的SQL命令語(yǔ)句,如果不調(diào)用Clear方法,便調(diào)用Add方法向SQL屬性中設(shè)置SQL命令語(yǔ)句,那么新設(shè)置的SQL命令語(yǔ)句會(huì)追加在現(xiàn)存SQL命令語(yǔ)句后面,在程序運(yùn)行時(shí)常常會(huì)出現(xiàn)出乎意料的查詢結(jié)果甚至程序無(wú)法運(yùn)行下去。
在這里要特別注意的,一般情況下TQuery或TADOquery部件的SQL屬性只能包含一條完整的SQL語(yǔ)句,它不允許被設(shè)置成多條SQL語(yǔ)句。當(dāng)然有些數(shù)據(jù)庫(kù)服務(wù)器也支持在TQuery或TADOquery部件的SQL屬性中設(shè)置多條SQL語(yǔ)句,只要數(shù)據(jù)庫(kù)服務(wù)器允許這樣,我們?cè)诰幊虝r(shí)可以為SQL屬性設(shè)置多條SQL語(yǔ)句。
在為TQuery或TADOquery部件設(shè)置完SQL屬性的屬性值之后,也即編寫(xiě)好適當(dāng)?shù)腟QL程序之后,可以有多種方式來(lái)執(zhí)行SQL程序。
在設(shè)計(jì)過(guò)程中,設(shè)置完TQuery或TADOquery部件的SQL屬性之后將其Active屬性的值置為True,這樣便可以執(zhí)行SQL屬性中的SQL程序,如果應(yīng)用中有與TQuery或TADOquery部件相連的數(shù)據(jù)瀏覽部件(如TDDGridTDBEdit等)那么在這些數(shù)據(jù)瀏覽部件中會(huì)顯示SQL程序的執(zhí)行結(jié)果。
在應(yīng)用程序運(yùn)行過(guò)程中,通過(guò)程序調(diào)用TQuery或TADOquery組件頃宴的Open方法或ExecSQL方法可以執(zhí)行其SQL屬性中的SQL程序。Open方法和ExecSQL方法是不一樣的。Open方法只能用來(lái)執(zhí)行SQL語(yǔ)言的查詢語(yǔ)句(Select命令),并返回一個(gè)查詢結(jié)果集,而ExecSQL方法還可以用來(lái)執(zhí)行其它常用的SQL語(yǔ)句(如INSERT,UPDATE,DELETE等命令),例如:
Query1.Open(這樣會(huì)返回一個(gè)查詢結(jié)果集)
如果調(diào)用Open方法,而沒(méi)有查詢結(jié)果時(shí),會(huì)出錯(cuò)。此時(shí)應(yīng)該調(diào)用ExecSQL方法來(lái)代替Open方法。如:
Query1.ExecSQL(沒(méi)有返回結(jié)果)
當(dāng)然在設(shè)計(jì)應(yīng)用程序時(shí),程序設(shè)計(jì)人員是無(wú)法確定TQuery或TADOquery組件中的SQL語(yǔ)句是否會(huì)返回一個(gè)查詢結(jié)果的。對(duì)于這種情況應(yīng)當(dāng)用Try…Except模塊來(lái)設(shè)計(jì)程緩乎肆序。在Try部分調(diào)用Open方法,而在Except部分調(diào)用ExceSQL方法,這樣才能保證程序的正確運(yùn)行。
例如:
Try
Query1.Open
Except
Query1.ExecSQL
End
通過(guò)Tquery或TADOquery組件可以獲得兩種類型的數(shù)據(jù):
u“活動(dòng)”的數(shù)據(jù)
這種數(shù)據(jù)就跟通過(guò)TTable部件獲得的數(shù)據(jù)一樣,用戶可以通過(guò)數(shù)據(jù)瀏覽部件來(lái)編輯修改這些數(shù)據(jù),并且當(dāng)調(diào)用Post方法或當(dāng)焦點(diǎn)離開(kāi)當(dāng)前的數(shù)據(jù)瀏覽部件時(shí),用戶對(duì)數(shù)據(jù)的修改自動(dòng)地被寫(xiě)回到數(shù)據(jù)庫(kù)中。
u非活動(dòng)的數(shù)據(jù)(只讀數(shù)據(jù))
用戶通過(guò)數(shù)據(jù)瀏覽部件是不能修改其中的數(shù)據(jù)。在缺省情況下,通過(guò)TQuery部件獲得的查詢結(jié)果數(shù)據(jù)是只讀數(shù)據(jù),要想獲得“活動(dòng)”的數(shù)據(jù),在應(yīng)用程序中必須要設(shè)置Tquery或TADOquery組件的RequestLive屬性值為True,然而并不是在任何情況下(通過(guò)設(shè)置RequestLive的屬值True)都可以獲得“活動(dòng)”的數(shù)據(jù)的,要想獲得“活動(dòng)”的數(shù)據(jù),除了將TQuery部件的RequestLive屬性設(shè)置為True外,相應(yīng)的SQL命令還要滿足以下條件。
本地SQL語(yǔ)句查詢情況下,要得到可更新的數(shù)據(jù)集,SQL語(yǔ)句的限制為:
n查詢只能涉及到一個(gè)單獨(dú)的表
nSQL語(yǔ)句中不能包含ORDERBY命令
nSQL語(yǔ)句中不能含聚集運(yùn)算符SUM或AVG
n在Select后的字段列表中不能有計(jì)算字段
n在Select語(yǔ)句WHERE部分只能包含字段值與常量的比較運(yùn)算,這些比較運(yùn)算符是:Like,>,=,
當(dāng)通過(guò)SQL語(yǔ)句查詢數(shù)據(jù)庫(kù)服務(wù)器中的數(shù)據(jù)庫(kù)表:
n查詢只能涉及到一個(gè)單獨(dú)的表
nSQL語(yǔ)句中不能包含ORDERBY命令
nSQL語(yǔ)句中不能含聚集運(yùn)算符SUM或AVG運(yùn)算
另外,如果是查詢Sybase數(shù)據(jù)庫(kù)中的表,那么被查詢的表中只能有一個(gè)索引。
如果在應(yīng)用程序中要求TQuery或TADOquery組件返回一個(gè)“活動(dòng)”的查詢結(jié)果數(shù)據(jù)集,但是SQL命令語(yǔ)句不滿足上述約束條件時(shí),對(duì)于本地?cái)?shù)據(jù)庫(kù)的SQL查詢,BDE只能返回只讀的數(shù)據(jù)集。對(duì)于數(shù)據(jù)庫(kù)服務(wù)器中的SQL查詢,只能返回錯(cuò)誤的代碼。當(dāng)Tquery或TADOquery組件返回一個(gè)“活動(dòng)”的查詢結(jié)果數(shù)據(jù)集時(shí),它的CanModIfy屬性的值會(huì)被設(shè)置成True。
§3.4MSSQLServer簡(jiǎn)述
SQLServer是一個(gè)后臺(tái)數(shù)據(jù)庫(kù)管理系統(tǒng),它功能強(qiáng)大操作簡(jiǎn)便,日益為廣大數(shù)據(jù)庫(kù)用戶所喜愛(ài)。越來(lái)越多的開(kāi)發(fā)工具提供了與SQLServer的接口。SQLServer是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開(kāi)發(fā)的。于1988年推出了之一個(gè)OS/2版本,在WindowsNT推出后,Microsoft與Sybase在SQLServer的開(kāi)發(fā)上就分道揚(yáng)鑣了,Microsoft將SQLServer移植到WindowsNT系統(tǒng)上,專注于開(kāi)發(fā)推廣SQLServer的WindowsNT版本。
SQLServer2023是Microsoft公司推出的SQLServer數(shù)據(jù)庫(kù)管理系統(tǒng)的最新版本,該版本繼承了SQLServer7.0版本的優(yōu)點(diǎn),同時(shí)又比它增加了許多更先進(jìn)的功能、具有使用方便、可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn)??煽缭綇倪\(yùn)行MicrosoftWindows98的膝上型電腦到運(yùn)行MicrosoftWindows2023的大型多處理器的服務(wù)器等多種平臺(tái)使用。MSSQLServer不但可以應(yīng)用于大中型數(shù)據(jù)庫(kù)管理中,建立分布式關(guān)系數(shù)據(jù)庫(kù),并且也可以開(kāi)發(fā)桌面數(shù)據(jù)庫(kù)。事實(shí)上,SQLServer數(shù)據(jù)庫(kù)處理的基本結(jié)構(gòu),采取關(guān)系型數(shù)據(jù)庫(kù)模式,盡管如此,相信大家都可以輕易的發(fā)現(xiàn),在SQLServer的數(shù)據(jù)庫(kù)處理方式,則是使用面向?qū)ο蟮牟僮鞣绞脚c精神,也就是說(shuō),SQLServer的所有功能,都可以基于系統(tǒng)已經(jīng)建立好的一些對(duì)象來(lái)達(dá)成,是相當(dāng)OO(面向?qū)ο螅┑囊粋€(gè)系統(tǒng)結(jié)構(gòu)。
SQLServer企業(yè)管理器是SQLServer的主要管理工具,它提供了一個(gè)遵從MMC標(biāo)準(zhǔn)的用戶界面,使用戶得以:
·定義SQLServer實(shí)例組。
·將個(gè)別服務(wù)器注冊(cè)到組中。
·為每個(gè)已注冊(cè)的服務(wù)器配置所有SQLServer選項(xiàng)。
·在每個(gè)已注冊(cè)的服務(wù)器中創(chuàng)建并管理所有SQLServer數(shù)據(jù)庫(kù)、對(duì)象、登錄、用戶和權(quán)限。
·在每個(gè)已注冊(cè)的服務(wù)器上定義并執(zhí)行所有SQLServer管理任務(wù)。
·通過(guò)喚醒調(diào)用SQL查詢分析器,交互地設(shè)計(jì)并測(cè)試SQL語(yǔ)句、批處理和腳本。
·喚醒調(diào)用為SQLServer定義的各種向?qū)А?/p>
·
第三章圖書(shū)管理系統(tǒng)設(shè)計(jì)分析
§4.1應(yīng)用需求分析
圖書(shū)管理系統(tǒng)需要滿足來(lái)自三方面的需求,這三個(gè)方面分別是圖書(shū)借閱者、圖書(shū)館工作人員和圖書(shū)館管理人員。圖書(shū)借閱者的需求是查詢圖書(shū)館所存的圖書(shū)、個(gè)人借閱情況及個(gè)人信息的修改;圖書(shū)館工作人員對(duì)圖書(shū)借閱者的借閱及還書(shū)要求進(jìn)行操作,同時(shí)形成借書(shū)或還書(shū)報(bào)表給借閱者查看確認(rèn);圖書(shū)館管理人員的功能最為復(fù)雜,包括對(duì)工作人員、圖書(shū)借閱者、圖書(shū)進(jìn)行管理和維護(hù),及系統(tǒng)狀態(tài)的查看、維護(hù)并生成催還圖書(shū)報(bào)表。
圖書(shū)借閱者可直接查看圖書(shū)館圖書(shū)情況,如果圖書(shū)借閱者根據(jù)本人借書(shū)證號(hào)和密碼登錄系統(tǒng),還可以進(jìn)行本人借書(shū)情況的查詢和維護(hù)部分個(gè)人信息。一般情況下,圖書(shū)借閱者只應(yīng)該查詢和維護(hù)本人的借書(shū)情況和個(gè)人信息,若查詢和維護(hù)其他借閱者的借書(shū)情況和個(gè)人信息,就要知道其他圖書(shū)借閱者的借書(shū)證號(hào)和密碼。這些是很難得到的,特別是密碼,所以不但滿足了圖書(shū)借閱者的要求,還保護(hù)了圖書(shū)借閱者的個(gè)人隱私。
圖書(shū)館工作人員有修改圖書(shū)借閱者借書(shū)和還書(shū)記錄的權(quán)限,所以需對(duì)工作人員登陸本模塊進(jìn)行更多的考慮。在此模塊中,圖書(shū)館工作人員可以為圖書(shū)借閱者加入借書(shū)記錄或是還書(shū)記錄,并打印生成相應(yīng)的報(bào)表給用戶查看和確認(rèn)。
圖書(shū)館管理人員功能的信息量大,數(shù)據(jù)安全性和保密性要求更高。本功能實(shí)現(xiàn)對(duì)圖書(shū)信息、借閱者信息、總體借閱情況信息的管理和統(tǒng)計(jì)、工作人員和管理人員信息查看及維護(hù)。圖書(shū)館管理員可以瀏覽、查詢、添加、刪除、修改、統(tǒng)計(jì)圖書(shū)的基本信息;瀏覽、查詢、統(tǒng)計(jì)、添加、刪除和修改圖書(shū)借閱者的基本信息,瀏覽、查詢、統(tǒng)計(jì)圖書(shū)館的借閱信息,但不能添加、刪除和修改借閱信息,這部分功能應(yīng)該由圖書(shū)館工作人員執(zhí)行,但是,刪除某條圖書(shū)借閱者基本信息記錄時(shí),應(yīng)實(shí)現(xiàn)對(duì)該圖書(shū)借閱者借閱記錄的級(jí)聯(lián)刪除。并且還應(yīng)具有生成催還圖書(shū)報(bào)表,并打印輸出的功能。
在本系統(tǒng)中由于沒(méi)有打印機(jī)設(shè)備供試驗(yàn),所以預(yù)先把報(bào)表打印改成報(bào)表預(yù)覽。
設(shè)計(jì)不同用戶的操作權(quán)限和登陸方法
對(duì)所有用戶開(kāi)放的圖書(shū)查詢
借閱者維護(hù)借閱者個(gè)人部分信息
借閱者查看個(gè)人借閱情況信息
維護(hù)借閱者個(gè)人密碼
根據(jù)借閱情況對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作并生成報(bào)表
根據(jù)還書(shū)情況對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作并生成報(bào)表
查詢及統(tǒng)計(jì)各種信息
維護(hù)圖書(shū)信息
維護(hù)工作人員和管理員信息
維護(hù)借閱者信息
處理信息的完整性
對(duì)借閱過(guò)期的圖書(shū)生成報(bào)表
圖4-2圖書(shū)管理系統(tǒng)數(shù)據(jù)庫(kù)應(yīng)用需求的總結(jié)
根據(jù)以上所做的需求分析,并略掉一些細(xì)節(jié)(如不考慮用戶的登錄;對(duì)記錄的維護(hù)),得出以下的三層數(shù)據(jù)流圖。
§4.2系統(tǒng)功能模塊劃分
系統(tǒng)功能框圖如圖4-10所示。
§4.3系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)
4.3.1概念設(shè)計(jì)
在概念設(shè)計(jì)階段中,設(shè)計(jì)人員從用戶的角度看待數(shù)據(jù)及處理要求和約束,產(chǎn)生一個(gè)反映用戶觀點(diǎn)的概念模式。然后再把概念模式轉(zhuǎn)換成邏輯模式。將概念設(shè)計(jì)從設(shè)計(jì)過(guò)程中獨(dú)立開(kāi)來(lái),使各階段的任務(wù)相對(duì)單一化,設(shè)計(jì)復(fù)雜程度大大降低,不受特定DBMS的限制。
利用ER方法進(jìn)行數(shù)據(jù)庫(kù)的概念設(shè)計(jì),可分成三步進(jìn)行:首先設(shè)計(jì)局部ER模式,然后把各局部ER模式綜合成一個(gè)全局模式,最后對(duì)全局ER模式進(jìn)行優(yōu)化,得到最終的模式,即概念模式。
(1)設(shè)計(jì)局部ER模式
實(shí)體和屬性的定義:
圖書(shū)(圖書(shū)編號(hào),圖書(shū)名稱,作者,出版社,出版日期,備注,價(jià)格,數(shù)量,)
借閱者(借書(shū)證號(hào),姓名,性別,身份證,聯(lián)系,密碼)
身份(身份編號(hào),身份描述,更大借閱數(shù))
圖書(shū)類別(圖書(shū)類別編號(hào),類別描述)
ER模型的“聯(lián)系”用于刻畫(huà)實(shí)體之間的關(guān)聯(lián)。一種完整的方式是對(duì)局部結(jié)構(gòu)中任意兩個(gè)實(shí)體類型,依據(jù)需求分析的結(jié)果,考察局部結(jié)構(gòu)中任意兩個(gè)實(shí)體類型之間是否存在聯(lián)系。若有聯(lián)系,進(jìn)一步確定是1:N,M:N,還是1:1等。還要考察一個(gè)實(shí)體類型內(nèi)部是否存在聯(lián)系,兩個(gè)實(shí)體類型之間是否存在聯(lián)系,多個(gè)實(shí)體類型之間是否存在聯(lián)系,等等。聯(lián)系定義如圖4-5所示。解釋如下:
u一個(gè)借閱者(用戶)只能具有一種身份,而一種身份可被多個(gè)借閱者所具有;
u一本圖書(shū)只能屬于一種圖書(shū)類別(類別),而一種圖書(shū)類別可以包含多本圖書(shū);
u一個(gè)用戶可以借閱多本不同的書(shū),而一本書(shū)也可以被多個(gè)不同的用戶所借閱。
(2)設(shè)計(jì)全局ER模式
所有局部ER模式都設(shè)計(jì)好了后,接下來(lái)就是把它們綜合成單一的全局概念結(jié)構(gòu)。全局概念結(jié)構(gòu)不僅要支持所有局部ER模式,而且必須合理地表示一個(gè)完整、一致的數(shù)據(jù)庫(kù)概念結(jié)構(gòu)。
1)確定公共實(shí)體類型
為了給多個(gè)局部ER模式的合并提供開(kāi)始合并的基礎(chǔ),首先要確定各局部結(jié)構(gòu)中的公共實(shí)體類型。在這一步中我們僅根據(jù)實(shí)體類型名和鍵來(lái)認(rèn)定公共實(shí)體類型。一般把同名實(shí)體類型作為公共實(shí)體類型的一類候選,把具有相同鍵的實(shí)體類型作為公共實(shí)體類型的另一類候眩
2)局部ER模式的合并
合并的原則是:首先進(jìn)行兩兩合并;先和合并那些現(xiàn)實(shí)世界中有聯(lián)系的局部結(jié)構(gòu);合并從公共實(shí)體類型開(kāi)始,最后再加入獨(dú)立的局部結(jié)構(gòu)。
3)消除沖突
沖突分為三類:屬性沖突、結(jié)構(gòu)沖突、命名沖突。
設(shè)計(jì)全局ER模式的目的不在于把若干局部ER模式形式上合并為一個(gè)ER模式,而在于消除沖突,使之成為能夠被所有用戶共同理解和接受的同一的概念模型。
3)全局ER模式的優(yōu)化
在得到全局ER模式后,為了提高數(shù)據(jù)庫(kù)系統(tǒng)的效率,還應(yīng)進(jìn)一步依據(jù)處理需求對(duì)ER模式進(jìn)行優(yōu)化。一個(gè)好的全局ER模式,除能準(zhǔn)確、全面地反映用戶功能需求外,還應(yīng)滿足下列條件:實(shí)體類型的個(gè)數(shù)要盡可能的少;實(shí)體類型所含屬性個(gè)數(shù)盡可能少;實(shí)體類型間聯(lián)系無(wú)冗余。
綜上所述,“圖書(shū)管理系統(tǒng)”的全局ER模式如圖4-13所示。
4.3.2關(guān)系數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)
由于概念設(shè)計(jì)的結(jié)果是ER圖,DBMS一般采用關(guān)系型(本人所使用的MSSQLServer就是關(guān)系型的DBMS),因此數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)過(guò)程就是把ER圖轉(zhuǎn)化為關(guān)系模式的過(guò)程。由于關(guān)系模型所具有的優(yōu)點(diǎn),邏輯設(shè)計(jì)可以充分運(yùn)用關(guān)系數(shù)據(jù)庫(kù)規(guī)范化理論,使設(shè)計(jì)過(guò)程形式化地進(jìn)行。設(shè)計(jì)結(jié)果是一組關(guān)系模式的定義。
(1)導(dǎo)出初始關(guān)系模式
book(圖書(shū)編號(hào)#,圖書(shū)名稱,圖書(shū)類別#,作者,出版社,出版日期,備注,價(jià)格,數(shù)量)class(圖書(shū)類別#,類別名)user(借書(shū)證號(hào)#,姓名,性別,身份編號(hào)#,身份證,聯(lián)系,密碼)ID(身份編號(hào)#,身份描述,更大借閱數(shù))Owner(借書(shū)證號(hào)#,圖書(shū)編號(hào)#,借書(shū)日期)
圖4-14關(guān)系模式集
(2)產(chǎn)生子模式
子模式是用戶所用到的那部分?jǐn)?shù)據(jù)的描述。除了指出用戶用到的數(shù)據(jù)外,還應(yīng)指出數(shù)據(jù)與概念模式中相應(yīng)數(shù)據(jù)的聯(lián)系,即指出概念模式與子模式之間的對(duì)應(yīng)性。
借書(shū)子模式(借書(shū)證號(hào)#,姓名,圖書(shū)編號(hào)#,圖書(shū)名稱,借書(shū)日期)
圖4-15部分子模式
(3)根據(jù)設(shè)計(jì)中出現(xiàn)的問(wèn)題本人在寫(xiě)系統(tǒng)時(shí)還加入了兩個(gè)關(guān)系模式:
1、ownertemp:用于工作人員在處理借書(shū)、還書(shū)工作時(shí)臨時(shí)存儲(chǔ)借書(shū)、還書(shū)信息,以便打印報(bào)表時(shí)使用。
2、keyer:用于存儲(chǔ)工作人員和圖書(shū)館管理員的用戶名和密碼及權(quán)限,以便工作人員或圖書(shū)館管理員進(jìn)入相應(yīng)的功能模塊時(shí)進(jìn)行驗(yàn)證用戶的身份。
4.3.3數(shù)據(jù)庫(kù)的實(shí)現(xiàn)
我選用MicrosoftSQLServer2023(企業(yè)版)數(shù)據(jù)庫(kù)來(lái)進(jìn)行數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)。首先創(chuàng)建七個(gè)基本數(shù)據(jù)庫(kù)表如表4-1-4-7所示,然后根據(jù)全局ER圖,建立各個(gè)表之間的聯(lián)系,如圖4-8所示。
表4-1借閱者基本信息表的結(jié)構(gòu)(User)
表4-2圖書(shū)信息表的結(jié)構(gòu)(Book)
表4-3圖書(shū)類別信息表的結(jié)構(gòu)(Class)
表4-4借閱者身份信息表的結(jié)構(gòu)(ID)
表4-5借閱情況信息表的結(jié)構(gòu)(Owner)
表4-6借閱情況臨時(shí)存儲(chǔ)信息表的結(jié)構(gòu)(Ownertemp)
注:在owner表和ownertemp表中加入了索引字段,用來(lái)唯一標(biāo)識(shí)一條借書(shū)記錄,并且設(shè)置為標(biāo)識(shí),標(biāo)識(shí)種子為1。
表4-7工作人員和管理員信息表的結(jié)構(gòu)(Keyer)
圖4-8數(shù)據(jù)庫(kù)表間聯(lián)系圖
第五章圖書(shū)管理系統(tǒng)應(yīng)用程序設(shè)計(jì)
§5.1系統(tǒng)窗體模塊組成
§5.2數(shù)據(jù)模塊窗體的設(shè)置
在編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序時(shí),經(jīng)常要遇到這樣的情況,即好多組件、窗體同時(shí)訪問(wèn)相同的數(shù)據(jù)源,如果為每一個(gè)組件或者窗體都設(shè)置一個(gè)數(shù)據(jù)源將是十分耗時(shí)的工件,而且要保證這些數(shù)據(jù)源的確是相同的也需花一番功夫。那么,能不能將這些數(shù)據(jù)源集中管理,更好是做成一個(gè)統(tǒng)一的模塊,需要時(shí)就將該模塊引入而不必直接操作數(shù)據(jù)源本身呢?數(shù)據(jù)模塊(DataModule)是解決這個(gè)問(wèn)題更好的答案。簡(jiǎn)單說(shuō)來(lái),數(shù)據(jù)模塊是用來(lái)集中管理數(shù)據(jù)源的一個(gè)窗體,該窗體可被需要的地方隨時(shí)引入。
但本人在開(kāi)發(fā)這個(gè)系統(tǒng)時(shí),開(kāi)始使用了一下數(shù)據(jù)模塊,但在使用過(guò)程中卻碰到了一些問(wèn)題。并且考慮這個(gè)系統(tǒng)使用到的TADOQuery控件比較多,如果使用數(shù)據(jù)控件可能會(huì)帶來(lái)管理上的麻煩,如弄混各個(gè)數(shù)據(jù)控件的作用。還考慮到使用動(dòng)態(tài)生成ADOQuery可能會(huì)更節(jié)省資源。所以在本人的系統(tǒng)中,開(kāi)始做的之一個(gè)模塊“借閱者個(gè)人模塊”中還稍微使用了一下數(shù)據(jù)模塊。但在后面做的兩個(gè)模塊中大多都是用動(dòng)態(tài)生成ADOQuery來(lái)實(shí)現(xiàn)的。并且由于SQL語(yǔ)句是動(dòng)態(tài)加入的所以datamodule中的控件也不會(huì)多。
§5.3啟動(dòng)畫(huà)面的實(shí)現(xiàn)
啟動(dòng)畫(huà)面是為了給用戶一個(gè)良好的印像,加深軟件的親和力,沒(méi)有實(shí)際的功能,在Form1窗體中加入了Image和Time組件。啟動(dòng)畫(huà)面的窗體略,主要的源代碼如下:
§5.4用戶登錄窗體的的實(shí)現(xiàn)
本窗體是為三種不同的用戶(一般用戶,工作人員,管理員)提供選擇以進(jìn)入不同的模塊,滿足不同用戶的需求。源代碼比較簡(jiǎn)單,略。
§5.5用戶密碼認(rèn)證窗體的的實(shí)現(xiàn)
本窗體是為了讓工作人員或圖書(shū)館管理員按照用戶名和密碼進(jìn)行登錄,并且跟據(jù)用戶名檢查Keyer表中的“權(quán)限”字段,以分辯進(jìn)入圖書(shū)館管理人員模塊還是進(jìn)入工作人員模塊。窗體界面、源代碼如下
§5.6借閱者服務(wù)模塊的實(shí)現(xiàn)
借閱者服務(wù)窗體的功能主要是圖書(shū)的查詢,個(gè)人借閱情況查看及個(gè)人部分信息的修改。界面圖如下:
5.6.1圖書(shū)查詢功能的實(shí)現(xiàn)
在本系統(tǒng)中,任何人都有權(quán)限使用查詢功能,不做任何限制。界面如下,
由于實(shí)現(xiàn)的查詢功能有多種,如按圖書(shū)編號(hào)、圖書(shū)名稱等字段進(jìn)行完全體配查找和部分體配的模糊查找,還有按多個(gè)條件進(jìn)行邏輯與或是邏輯或的多條件查找。其中實(shí)現(xiàn)的方法者差不多,所以只給出多條件查找的代碼,如下:
5.6.2借閱者登錄功能的實(shí)現(xiàn)
這個(gè)功能的實(shí)現(xiàn)與工作人員和管理人員登錄功能實(shí)現(xiàn)的方法大致一樣,并且還要簡(jiǎn)單。是從User表中查到到借閱證號(hào)與密碼,看與用戶輸入的是否一致。如果一致,那么用戶就可查看自已的借閱情況并維護(hù)自己的部分信息。源代碼與借閱者登錄界面都略。
5.6.3借閱者借閱情況功能的實(shí)現(xiàn)
當(dāng)借閱者正確登錄到系統(tǒng)后,此功能將被激活,使用戶能查看到自身的借閱情況。在此系統(tǒng)中,信息的顯示一般用ListView來(lái)實(shí)現(xiàn),只在較少的情況下用到了DBgrid,因?yàn)槲矣X(jué)得ListView更好實(shí)現(xiàn),并能使信息數(shù)據(jù)對(duì)用戶的完全分離。
在這里跟據(jù)借閱者的不同要求實(shí)現(xiàn)借閱情況的查詢,有檢查所有的借閱情部、某本書(shū)的借閱情況、和根據(jù)已借閱天數(shù)的來(lái)查詢。其中根椐借閱天數(shù)來(lái)查詢更有代表性,有方式一和方式二。以下給出此功能的源代碼
按借閱天數(shù)查詢方式一
按借閱天數(shù)查詢方式二
5.6.4借閱者個(gè)人資料維護(hù)功能的實(shí)現(xiàn)
此功能實(shí)現(xiàn)當(dāng)前借閱者部份資料的修改,但借書(shū)證號(hào)和身份類別這樣的信息不允許修改,這是圖書(shū)館管理員模塊的功能。在此界面中點(diǎn)擊修改按鈕將出現(xiàn)“修改”窗體(Form8),點(diǎn)擊修改密碼按鈕將出現(xiàn)groupbox8,在這里進(jìn)行密碼修改。關(guān)鍵源代碼如下。
這里給出個(gè)人部分信息修改的源代碼:
這里給出密碼修改的源代碼:
5.7工作人員-圖書(shū)借閱/歸還模塊的實(shí)現(xiàn)
5.7.1工作人員進(jìn)行圖書(shū)借閱功能實(shí)現(xiàn)
在這個(gè)功能中,工作人員輸入借閱者的借閱證號(hào)和所要借閱的圖書(shū)的圖書(shū)編號(hào),然后點(diǎn)擊借閱按鈕就可進(jìn)行圖書(shū)借閱??紤]到實(shí)際中可能會(huì)出現(xiàn)只知圖書(shū)名而不知圖書(shū)編號(hào)的情況,在此界面下方加入了一個(gè)轉(zhuǎn)換功能,可以把圖書(shū)名稱轉(zhuǎn)換成圖書(shū)編號(hào),再進(jìn)行圖書(shū)借閱。
在借閱完成后會(huì)生借閱報(bào)表以便借閱者檢查和確認(rèn),借閱報(bào)表的打印效果如下圖,實(shí)現(xiàn)比較簡(jiǎn)單,略去實(shí)現(xiàn)過(guò)程。
5.7.2工作人員進(jìn)行圖書(shū)歸還功能實(shí)現(xiàn)
在此功能中,工作人員根據(jù)借閱者的借書(shū)證號(hào)和歸還的圖書(shū)編號(hào)進(jìn)行圖書(shū)的歸還工作。并且根據(jù)現(xiàn)實(shí)中可能會(huì)出現(xiàn)的只知圖書(shū)名不知圖書(shū)編號(hào)的歸還情況,所以加入了按書(shū)籍名稱進(jìn)行歸還的功能。這個(gè)功能是圖書(shū)借閱功能中把圖書(shū)名稱轉(zhuǎn)換成圖書(shū)編號(hào)的一種改進(jìn)方法,這樣就不用如借閱功能中一樣要先轉(zhuǎn)換再借閱了。歸還完成后,同樣會(huì)打印出歸還報(bào)表以便用戶檢查和確認(rèn)。
5.8圖書(shū)館管理員模塊的實(shí)現(xiàn)
5.8.1圖書(shū)館管理員圖書(shū)管理功能的實(shí)現(xiàn)
在這個(gè)功能中可以在(*圖書(shū)編號(hào))中輸入圖書(shū)編號(hào),點(diǎn)查找按鈕后就會(huì)在各個(gè)相應(yīng)的組件中顯示出信息,或按圖書(shū)名稱模糊查找到所要的記錄,在各個(gè)相應(yīng)的組件中顯示之一條記錄的信息,也可在下端的ListView組件中點(diǎn)擊某一條記錄,在各個(gè)相應(yīng)的組件中也會(huì)顯示所選記錄的信息。在入庫(kù)功能中只要不是相同的圖書(shū)編號(hào)并且?guī)В?hào)提示的字段不為空就可插入新的圖書(shū)記錄。刪除則刪除那些Book表中的圖書(shū)記錄,如果借出還可依用戶要求連帶刪除owner表中的記錄。因?yàn)閳D書(shū)修改與圖書(shū)入庫(kù)的功能與工作人員記錄修改和工作人員記錄添加的實(shí)現(xiàn)過(guò)程一樣,所以下面僅給出刪除功能的源代碼,如下
5.8.2圖書(shū)館管理員工作人員和管理員管理功能的實(shí)現(xiàn)
在此功能中可以加入工作人員或是管理員,或是修改他們的密碼、權(quán)限。
在此功能中如果選中ListView中的記錄,則在右邊相應(yīng)的組件中顯示出信息,并且管理員還可對(duì)這些記錄進(jìn)行修改或加入新的記錄。并且也可以點(diǎn)刪除按鈕刪除選中的一條或多條記錄。刪除功能與圖書(shū)記錄的刪除一般,所以下面只給出添加與修改的實(shí)現(xiàn)過(guò)程。
5.8.3圖書(shū)館管理員修改圖書(shū)類別及統(tǒng)記功能的實(shí)現(xiàn)
在此窗體中能對(duì)圖書(shū)的類別進(jìn)行刪除,添加和修改,這模塊的功能的實(shí)現(xiàn)過(guò)程與圖書(shū)記錄的刪除,添加和修改一樣的,但是這個(gè)窗體還能跟據(jù)圖書(shū)類別進(jìn)行統(tǒng)計(jì),還可根據(jù)Book表和owner表統(tǒng)計(jì)出圖書(shū)總數(shù)目,庫(kù)存圖書(shū)數(shù)目,借出圖書(shū)數(shù)目及借閱過(guò)期的圖書(shū)數(shù)目。在這里給出統(tǒng)計(jì)圖書(shū)總數(shù)目,庫(kù)存圖書(shū)數(shù)目,借出圖書(shū)數(shù)目及借閱過(guò)期的圖書(shū)數(shù)目的實(shí)現(xiàn)過(guò)程中的幾個(gè)函數(shù)和過(guò)程
5.8.4圖書(shū)館管理員借閱者管理功能的實(shí)現(xiàn)
查詢借閱者可根據(jù)借閱者的借書(shū)證號(hào)或姓名或身份編號(hào)查找到借閱者的信息,也可以實(shí)行模糊查找,這個(gè)功能的實(shí)現(xiàn)與前面圖書(shū)查找的實(shí)現(xiàn)過(guò)程一般,就不再詳細(xì)說(shuō)明。
5.8.5圖書(shū)館維護(hù)借閱者管理功能的實(shí)現(xiàn)
此功能能對(duì)借閱者信息進(jìn)行查看添加、刪除、修改。在這里給出刷新按鈕的實(shí)現(xiàn)過(guò)程
5.8.6圖書(shū)館身份維護(hù)功能的實(shí)現(xiàn)
這一部分是對(duì)借閱者身份進(jìn)行管理,能對(duì)身份進(jìn)行添加、刪除、修改。并且同樣的在listview中選中某條或多條記錄時(shí)會(huì)在相應(yīng)的右邊的組件中顯示出信息。此功能實(shí)現(xiàn)過(guò)程與前面所敘有雷同,略。
5.8.7圖書(shū)館借閱者統(tǒng)計(jì)功能的實(shí)現(xiàn)
此功能按借閱者身份進(jìn)行統(tǒng)計(jì),得出具有某種身份的借閱者總數(shù),此種身份的并借閱圖書(shū)的借閱者數(shù)和所借閱的圖書(shū)數(shù),在下面給出實(shí)現(xiàn)過(guò)程。
5.8.8圖書(shū)館統(tǒng)計(jì)借閱過(guò)期記錄功能的實(shí)現(xiàn)
打印出的借閱過(guò)期催還報(bào)表如下圖所示:
此報(bào)表能顯示按借書(shū)證號(hào)升序排列的借閱信息超過(guò)限定時(shí)限的信息,其中主要的SQL語(yǔ)句如下:
5.9系統(tǒng)信息顯示的實(shí)現(xiàn)
有沒(méi)有知道m(xù)ysql怎么看表之間的關(guān)系模型圖
mysql數(shù)據(jù)庫(kù)表間的關(guān)系圖可以通慧州局過(guò)navicat查看:
1、百度下載navicat并打開(kāi);
2、點(diǎn)擊navicat界面最右下角標(biāo)注的按鈕即前讓可查看關(guān)系圖跡則。
關(guān)于數(shù)據(jù)庫(kù)表關(guān)系模型解析的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
創(chuàng)新互聯(lián)【028-86922220】值得信賴的成都網(wǎng)站建設(shè)公司。多年持續(xù)為眾多企業(yè)提供成都網(wǎng)站建設(shè),成都品牌建站設(shè)計(jì),成都高端網(wǎng)站制作開(kāi)發(fā),SEO優(yōu)化排名推廣服務(wù),全網(wǎng)營(yíng)銷讓企業(yè)網(wǎng)站產(chǎn)生價(jià)值。
分享名稱:深度解析數(shù)據(jù)庫(kù)表關(guān)系模型(數(shù)據(jù)庫(kù)表關(guān)系模型解析)
文章鏈接:http://m.fisionsoft.com.cn/article/cogejce.html


咨詢
建站咨詢
