




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、北京郵電大學畢業(yè)設計i基于 C+啲小型關(guān)系型數(shù)據(jù)庫的設計與實現(xiàn)摘要數(shù)據(jù)庫是按一定結(jié)構(gòu)組織的,各種應用相關(guān)的所有數(shù)據(jù)的集合。它包含了數(shù)據(jù)庫管 理系統(tǒng)處理的全部數(shù)據(jù)。其內(nèi)容主要分為兩個部分:一是物理數(shù)據(jù)庫,記載了所有數(shù)據(jù);二是數(shù)據(jù)字典,描述了不同數(shù)據(jù)之間的關(guān)系和數(shù)據(jù)組織的結(jié)構(gòu)。數(shù)據(jù)庫技術(shù)自產(chǎn)生以來,發(fā)展到今日已形成了堅實的理論基礎(chǔ)和獨特的數(shù)據(jù)處理技術(shù),并獲得了廣泛的應用。數(shù)據(jù)庫技術(shù)是信息社會的重要基礎(chǔ)之一, 是計算機科學領(lǐng)域中發(fā)展最為迅速的分支。 關(guān)系 型數(shù)據(jù)庫是目前最流行的數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫管理系統(tǒng)已經(jīng)成為軟件產(chǎn)業(yè)的重要組成部 分,是信息化過程中最重要的技術(shù)基礎(chǔ)之一。 我國要振興軟件產(chǎn)業(yè),就必須
2、發(fā)展自己的 數(shù)據(jù)庫軟件產(chǎn)業(yè)。本系統(tǒng)運用計算機程序來實現(xiàn)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)管理,建立一個模擬的關(guān)系型數(shù)據(jù)庫,并能夠解析 SQL 語句,并執(zhí)行相應的數(shù)據(jù)操作。關(guān)鍵詞:關(guān)系型數(shù)據(jù)庫;數(shù)據(jù)庫技術(shù);系統(tǒng)設計北京郵電大學畢業(yè)設計2Based on the C + + A Small Relational Database Designand ImplementationAbstractDatabase is orga ni zed accord ing to certa in structure, a collect ion of all data related to allkinds of appli
3、cation.lt contains a database management system to deal with all the data.Themain content is divided into two parts: one is the physical database,all data recorded;Sec ond,data dictio nary, describes the relati on ship betwee n the differe nt data and data structure ofthe orga ni zati on .Database t
4、ech no logy since the produce, developme nt to this day it hasformed a solid theoretical foun dati on and the unique data process ing tech no logy, and accessto a wide range of applicati on s.Database tech no logy is one of the importa nt basis ofinformation society, is the most rapid development in
5、 the area of computer science.A relatio naldatabase is by far the most popular database system.Database man ageme nt system hasbecome an important part of the software industry, is one of the most important tech no logy inthe process of in formatizatio n.To the revitalizati on of software in dustry
6、in our country, it mustdevelop its own database software industry.This system use computer programs to implementthe relational database data management, establishing a simulation of the relational databasesystem, and be able to parse SQL statements,and perform the corresp onding data operati on.Keyw
7、ords: a relati onal database;Database tech no logy;System desig n北京郵電大學畢業(yè)設計目錄摘要. iAbstract. ii1緒論. 11.1 課題研究背景. 11.2 課題研究現(xiàn)狀. 21.3 課題研究的意義 . 21.4 本文主要研究工作和章節(jié)安排 . 32需求分析. 42.1需求分析的任務 . 42.2 需求分析的方法. 42.3 主要開發(fā)內(nèi)容. 42.4 基本功能需求. 52.5 可行性分析. 55.3.1經(jīng)濟可行性. 55.3.2技術(shù)可行性 . 52.5.3 操作可行性. 52.6系統(tǒng)用例分析 . 52.7 開發(fā)平臺及核
8、心技術(shù)簡介. 62.7.1 開發(fā)環(huán)境. 61開發(fā)語言簡介 . 102.7.4 關(guān)系數(shù)據(jù)庫模型簡介. 102.7.5 關(guān)系數(shù)據(jù)庫模型的設計、實現(xiàn)與維護簡介 . 113總體設計. 133.1 關(guān)系型數(shù)據(jù)庫的設計過程 . 133.2 總體設計原則. 13(1)實用性原則 . 133.2.2 可擴展性與可維護性原則 . 133.2.3 安全性原則. 134.3.2用戶界面設計原則 . 133.3 總體設計方案. 143.3.1 系統(tǒng)模塊關(guān)系與劃分 . 143.3.2 開發(fā)技術(shù)、開發(fā)工具和開發(fā)環(huán)境 . 154詳細設計. 164.1 用戶前臺模塊設計. 16(2)登錄界面設計 . 16(3)主窗口設計.
9、164.2 后臺數(shù)據(jù)解析模塊設計. 164.3 系統(tǒng)實現(xiàn). 171登錄與主界面的實現(xiàn). 17北京郵電大學畢業(yè)設計2CMyAnylise 類的實現(xiàn). 193CDBControl 類的實現(xiàn). 205系統(tǒng)調(diào)試與測試. 295.1程序調(diào)試 . 295.2 測試概要. 29521測試的重要性及目的 . 301測試的步驟. 305.3 系統(tǒng)的測試用例. 301登錄與注冊的測試. 315.3.2 建表的測試. 325.3.3 插入數(shù)據(jù)的測試. 335.3.4 刪除數(shù)據(jù)的測試. 345.3.5 更新數(shù)據(jù)的測試. 355.3.6 查找數(shù)據(jù)的測試. 355.3.7 刪除表的測試. 36結(jié)論. 38參考文獻. 39
10、致謝. 40外文原文. 41中文翻譯. 53北京郵電大學畢業(yè)設計11 緒論1.1 課題研究背景數(shù)據(jù)庫(Databases 簡稱 DB )是指長期保存在計算機的存儲設備上、并按照某種 模型組織起來的、可以被各種用戶或者應用共享的數(shù)據(jù)的集合。數(shù)據(jù)庫管理系統(tǒng)(Database Management Systems 簡稱 DBMS)是指提供各種數(shù)據(jù)管理的服務的計算機 軟件系統(tǒng),這種服務包括數(shù)據(jù)對象定義、數(shù)據(jù)存儲和備份、數(shù)據(jù)訪問和更新、數(shù)據(jù)統(tǒng)計 和分析、數(shù)據(jù)的安全保護、數(shù)據(jù)庫運行管理及數(shù)據(jù)庫建立與維護等。數(shù)據(jù)庫是依照某種數(shù)據(jù)模型組織起來并存放二級存儲器中的數(shù)據(jù)集合。這種數(shù)據(jù)集合具有如下特點:盡可能不重復
11、,以最優(yōu)方式為某個特定組織的多種應用服務,其數(shù)據(jù)結(jié)構(gòu)獨立于使用它的應用程序,對數(shù)據(jù)的增、刪、改、查由統(tǒng)一軟件進行管理和控制。 從發(fā)展的歷史看,數(shù)據(jù)庫是數(shù)據(jù)管理的高級階段,它是由文件管理系統(tǒng)發(fā)展起來的。數(shù)據(jù)庫是數(shù)據(jù)管理的最新技術(shù),是計算機科學的重要分支之一。今天信息資源已經(jīng) 成為各個部門的重要財富,建立一個能夠滿足各級部門信息處理要求的,行之有效的信息系統(tǒng)已經(jīng)成為一個企業(yè)或組織生存和發(fā)展的重要條件。因此作為信息系統(tǒng)核心和基礎(chǔ) 的數(shù)據(jù)庫技術(shù)也將得到越來越廣泛的應用,從小型的單項事務處理系統(tǒng)到大型的信息系 統(tǒng),從聯(lián)機的事務處理到聯(lián)機的分析處理,從一般企業(yè)管理到計算機的輔助設計與制造, 計算機集成制造
12、系統(tǒng),電子政務,電子商務地理信息系統(tǒng)等,越來越新的應用領(lǐng)域采用 數(shù)據(jù)庫技術(shù)來存儲和處理信息資源。數(shù)據(jù)庫系統(tǒng)的出現(xiàn)使信息系統(tǒng)從加工數(shù)據(jù)的程序為 中心轉(zhuǎn)向圍繞共享的數(shù)據(jù)庫為中心的新階段。 這樣既便于數(shù)據(jù)的集中管理,也有利于應 用程序的研制與維護,提高了數(shù)據(jù)的利用率與相容性,提高了決策的可靠性。數(shù)據(jù)庫已 成為現(xiàn)代信息系統(tǒng)的重要組成部分。關(guān)系型數(shù)據(jù)庫是目前應用最廣泛的數(shù)據(jù)庫, 它通過提供完善的結(jié)構(gòu)化查詢語言(SQL) 和功能強大的數(shù)據(jù)檢索功能,被廣泛的應用到各個方面的項目開發(fā)中。 但因其與系統(tǒng)的 關(guān)聯(lián)緊密度很大,所以數(shù)據(jù)庫本身的性能也是被大家所關(guān)注的主要問題之一,如何保證項目應用中使用高效的 SQL
13、語句,是保障數(shù)據(jù)庫的服務性能的主要手段。目前關(guān)系型數(shù)據(jù)庫是項目中使用的最常見的一種數(shù)據(jù)庫,特別是商業(yè)產(chǎn)品中因其業(yè)務的實現(xiàn)比較復雜,對關(guān)系型數(shù)據(jù)庫的依賴會更加的緊密。 但關(guān)系型數(shù)據(jù)庫的一個比較 大的缺點就是它的擴展方面比較差,實施擴展的成本也是比較高。所以為了追求高的性 能,就得保證與關(guān)系數(shù)據(jù)庫的交互是高效的。除了對數(shù)據(jù)庫表結(jié)構(gòu)上進行較優(yōu)的設計外, 還需要確保在 SQL 語句的使用上,避免那些低效的編寫方案。但對于如何保障SQL 語句編寫是高效的,在實施上就變得非常困難,單純的通過人為保障的可行性比較低。 所 以能很好的使用高效 SQL 語言進行系統(tǒng)編寫實現(xiàn),可以很大程度上提升系統(tǒng)運行性能, 確
14、保商業(yè)產(chǎn)品可以更好的為商業(yè)用戶提供服務。由于企業(yè)信息化的目的是要以現(xiàn)代信息技術(shù)為手段, 對伴隨著企業(yè)生產(chǎn)與經(jīng)營過程 而產(chǎn)生的數(shù)據(jù)進行收集、加工、管理以及利用,以改善企業(yè)的生產(chǎn)經(jīng)營的整體效率,增 強企業(yè)的競爭力。所以,作為常用的數(shù)據(jù)庫之一的關(guān)系型數(shù)據(jù)庫已經(jīng)是企業(yè)信息化不可 缺少的工具,是絕大部分企業(yè)信息系統(tǒng)的核心??v觀整個數(shù)據(jù)庫行業(yè)的發(fā)展,三大數(shù)據(jù)庫巨頭公司紛紛推出自己的最新產(chǎn)品, 數(shù)據(jù) 庫市場競爭日益加劇。從最新的 IDC 報告可以看出,在關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS) 的軟件市場上,Oracle 繼續(xù)領(lǐng)先對手 IBM 與微軟,但是微軟在 2006 年取得了更快的銷 售增長率,北京郵電大學
15、畢業(yè)設計21.2 課題研究現(xiàn)狀數(shù)據(jù)庫,簡單來說是本身可視為電子化的文件柜一一存儲電子文件的處所,用戶可以對文件中的數(shù)據(jù)進行新增、截取、更新、刪除等操作。數(shù)據(jù)庫指的是以一定方式儲存 在一起、能為多個用戶共享、具有盡可能小的冗余度、與應用程序彼此獨立的數(shù)據(jù)集合。 在經(jīng)濟管理的日常工作中,常常需要把某些相關(guān)的數(shù)據(jù)放進這樣的“倉庫”,并根據(jù)管理的需要進行相應的處理。數(shù)據(jù)庫管理系統(tǒng)歷經(jīng)了 30 多年的發(fā)展演變,已經(jīng)取得了相對輝煌的成就,發(fā)展成了內(nèi)容豐富的學科之一,形成了總量達到數(shù)百億美元的一個軟件產(chǎn)業(yè)。根據(jù)GartnerDataquest 公司的調(diào)查報告顯示, 2000 年的國際數(shù)據(jù)庫市場銷售總額達到
16、88 億美元, 比 1999年增長了 10%。根據(jù) CCID 的報告顯示,2000 年的中國數(shù)據(jù)庫管理系統(tǒng)市場銷售 總額達到24.8 億元,比 1999 年增長了 41.7%,占軟件市場總銷售額的 10.8%。由此可 見,數(shù)據(jù)庫已發(fā)展成為一個巨大規(guī)模、迅速增長的市場。目前,軟件市場上具有代表性的數(shù)據(jù)庫產(chǎn)品有 Oracle 公司的 Oracle 與 IBM 公司的 DB2以及微軟的 SQL Server 等。在某種意義上,這些產(chǎn)品的特征也反映了當前數(shù)據(jù)庫 產(chǎn)業(yè)界的最高水平與發(fā)展趨勢。目前,關(guān)系數(shù)據(jù)庫技術(shù)依然是主流的數(shù)據(jù)庫技術(shù)。關(guān)系數(shù)據(jù)庫技術(shù)出現(xiàn)在 20 世紀 70 年代、經(jīng)過 80 年代的發(fā)展,
17、到了 90 年代已經(jīng)相對成熟,在 90 年代初期曾經(jīng)一度受 到面向?qū)ο髷?shù)據(jù)庫的嚴峻挑戰(zhàn),但是軟件市場最后還是選擇了關(guān)系數(shù)據(jù)庫。不管是Oracle 公司的 Oracle 9i 以及 IBM 公司的 DB2、還是微軟的 SQL Server 等都是關(guān)系型數(shù) 據(jù)庫。Gartner Dataquest 的報告顯示了關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)的市場份額已經(jīng)最 大,2000 年 RDBMS 的市場份額占整個數(shù)據(jù)庫市場的 80%,這個比例比 1999 年增長 15%。這組數(shù)據(jù)充分說明了 RDBMS 仍然是當今最為流行的數(shù)據(jù)庫軟件。1.3 課題研究的意義關(guān)系數(shù)據(jù)庫,是建立在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫, 借助
18、于集合代數(shù)等數(shù)學概念和方 法來處理數(shù)據(jù)庫中的數(shù)據(jù)?,F(xiàn)實世界中的各種實體以及實體之間的各種聯(lián)系均用關(guān)系模 型來表示。關(guān)系模型是由埃德加科德于 1970 年首先提出的,並配合“科德十二定律”。 現(xiàn)如今雖然對此模型有一些批評意見,但它還是數(shù)據(jù)存儲的傳統(tǒng)標準。標準數(shù)據(jù)查詢語 言 SQL 就是一種基于關(guān)系數(shù)據(jù)庫的語言,這種語言執(zhí)行對關(guān)系數(shù)據(jù)庫中數(shù)據(jù)的檢索和操 作。關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合、關(guān)系完整性約束三部分組成。關(guān)系型數(shù) 據(jù)庫技術(shù)出現(xiàn)在 20 世紀70 年代,經(jīng)過 80 年代的發(fā)展到 90 年代已經(jīng)比較成熟,在 90 年代初期曾一度受到面向?qū)ο髷?shù)據(jù)庫的巨大挑戰(zhàn),但是市場最后還是選擇了關(guān)系數(shù)
19、據(jù) 庫,而且關(guān)系型數(shù)據(jù)庫有一個很好地安全性, 一個關(guān)系數(shù)據(jù)庫的訪問權(quán)限,允許數(shù)據(jù)庫 的管理員的實施需要為基礎(chǔ)的權(quán)限來訪問數(shù)據(jù)庫表中的數(shù)據(jù)。關(guān)系型數(shù)據(jù)庫支持的概 念,用戶和用戶權(quán)限,從而滿足數(shù)據(jù)庫的安全需求。關(guān)系相關(guān)的特權(quán),如創(chuàng)建權(quán)限,授 予特權(quán),選擇,插入,刪除權(quán)限,授權(quán)不同的用戶對數(shù)據(jù)庫的相應的操作。關(guān)系型數(shù)據(jù) 庫的另外一個重要優(yōu)勢,包括其性能,功耗,并支持新的硬件技術(shù)的靈活性和能力,以 滿足所有類型的數(shù)據(jù)的需求。由于自身的優(yōu)勢和應用程序的數(shù)據(jù)存儲和檢索的操作中, 已經(jīng)徹底改變了關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)庫管理系統(tǒng)。但是,許多商業(yè)數(shù)據(jù)庫功能非常強大, 相應的占用資源也很大,很多嵌入式設備無法移植,更
20、重要的是嵌入式設備并不需要性 能如此強大的數(shù)據(jù)庫,所以設計簡單而又高效的小型關(guān)系型數(shù)據(jù)庫迫在眉睫,使它在嵌入式等設備上能發(fā)揮巨大的優(yōu)勢!北京郵電大學畢業(yè)設計31.4 本文主要研究工作和章節(jié)安排根據(jù)現(xiàn)有的知識水平只能做一些比較簡單的關(guān)系型數(shù)據(jù)庫設計與實現(xiàn),本系統(tǒng)要實現(xiàn)的功能包括實現(xiàn)控制臺命令詞法分析, 語法分析,語義響應;實現(xiàn)通過文件批處理命 令。提高了輸入效率;實現(xiàn)對表建立數(shù)據(jù)字典;為了提高數(shù)據(jù)字典的讀取速度,對數(shù)據(jù) 字典使用索引文件;實現(xiàn)記錄的插入,刪除,修改;實現(xiàn)數(shù)據(jù)字典索引文件查看以及數(shù) 據(jù)字典文件查看;實現(xiàn)數(shù)據(jù)表文件查看。本文通過第一章緒論對數(shù)據(jù)庫研究的背景和現(xiàn)狀以及意義進行了闡述,分
21、析了當今研究關(guān)系型數(shù)據(jù)庫的必要性,在第二章介紹了需求分析,主要包括開發(fā)內(nèi)容,基本功能 需求,可行性分析與系統(tǒng)用例分析以及開發(fā)環(huán)境和核心技術(shù)以及開發(fā)語言的介紹。在第三章介紹了總體設計,主要包括總體設計原則和總體設計方案。 在第四章介紹了用戶前 臺模塊設計,后臺數(shù)據(jù)解析模塊設計以及系統(tǒng)實現(xiàn)。在第五章介紹了系統(tǒng)的調(diào)試與測試, 組要包括程序調(diào)試,測試概要以及系統(tǒng)測試用例。北京郵電大學畢業(yè)設計42 需求分析2.1 需求分析的任務從數(shù)據(jù)庫設計的設計角度來看,需求分析的任務是對現(xiàn)實世界中要處理的對象進行 詳細的調(diào)查,明確用戶的各種需要,在此基礎(chǔ)上確定系統(tǒng)功能調(diào)查分析用戶的活動:調(diào)查組織結(jié)構(gòu)情況,調(diào)查用戶業(yè)務
22、活動的情況、收集和分析需求數(shù)據(jù)。確定系統(tǒng)邊界:保護用戶的信息需求、處理需求、安全性和完整性的需求等。信息需求:目標范圍內(nèi)涉及的所有實體、實體的屬性以及實體間的聯(lián)系等數(shù)據(jù)對象。處理需求:用戶為了得到需求的信息而對數(shù)據(jù)進行加工處理的要求。安全性和完整性需求:在定義信息需求和處理需求的同時必須給出相應完全性和完 整性約束收集各種需求數(shù)據(jù)后,對前面調(diào)查結(jié)果進行初步分析,確定哪些功能由計算機 完成,哪些由人完成。由計算機完成的功能即是新系統(tǒng)應該實現(xiàn)的功能。2.2 需求分析的方法包括自頂向下和自底向上兩種方法。自頂向下的結(jié)構(gòu)和方法是最簡單實用的方法, 采用逐層分解的方法,用數(shù)據(jù)流圖是 數(shù)據(jù)字典來描述系統(tǒng)。
23、數(shù)據(jù)流圖表達了數(shù)據(jù)和處理過程的關(guān)系。數(shù)據(jù)字典是對系統(tǒng)中數(shù) 據(jù)的詳細描述,是各類數(shù)據(jù)結(jié)構(gòu)和屬性的清單。它與數(shù)據(jù)流圖互為注釋。數(shù)據(jù)字典的內(nèi)容:數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲、處理過程1、數(shù)據(jù)項:不可再分的數(shù)據(jù)單位。對數(shù)據(jù)項的描述。數(shù)據(jù)項描述=數(shù)據(jù)項名,含義說明,別名,數(shù)據(jù)類型,長度,取值范圍,取值含義,與其他數(shù)據(jù)項的邏輯關(guān)系。2、數(shù)據(jù)結(jié)構(gòu):反映了數(shù)據(jù)之間的組合關(guān)系。一個數(shù)據(jù)結(jié)構(gòu)可以由若干個數(shù)據(jù)項組 成。數(shù)據(jù)結(jié)構(gòu)描述=數(shù)據(jù)結(jié)構(gòu)名,含義說明,組成。3、數(shù)據(jù)流:數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)傳輸?shù)穆窂?。?shù)據(jù)流描述 =數(shù)據(jù)流名,說明,來源, 去向,組成:數(shù)據(jù)結(jié)構(gòu),平均流量,高峰期流量。4、數(shù)據(jù)存儲:數(shù)據(jù)結(jié)構(gòu)停留或保
24、存的地方。數(shù)據(jù)存儲描述 =名字,說明,編號, 流入的數(shù)據(jù)流,流出的數(shù)據(jù)流,組成:數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)量,存取方式。5、 處理過程: 處理過程的具體處理邏輯一般用判定表或判定樹來描述。 處理過程 描述= 名字,說明,輸入:數(shù)據(jù)劉,輸出:數(shù)據(jù)劉,處理:簡要說明。經(jīng)過這個過程,需求分析人員應該已經(jīng)了解了對象的組織結(jié)構(gòu), 對象中的業(yè)務處理 活動。明確了用戶的信息要求(實體、屬性、聯(lián)系),處理要求(處理過程),安全性、 完整性要求。然后按照自頂向下的需求分析方法,用數(shù)據(jù)流圖和數(shù)據(jù)字典來描述這系統(tǒng), 分離用戶完成功能和計算機完成功能,明晰系統(tǒng)功能。2.3 主要開發(fā)內(nèi)容關(guān)系數(shù)據(jù)庫,是建立在關(guān)系數(shù)據(jù)庫模型基礎(chǔ)上的數(shù)
25、據(jù)庫, 它借助于集合代數(shù)等概念 與方法來處理數(shù)據(jù)庫中的數(shù)據(jù),同時它也是一個被組織成一組擁有正式的描述性的表 格,這種形式的表格作用的實質(zhì)是裝載著數(shù)據(jù)項的特殊收集體,這些表格中的數(shù)據(jù)能夠以許多不同的方式被存取或重新召集,而不需要重新組織數(shù)據(jù)庫表格。關(guān)系數(shù)據(jù)庫的定 義造成原數(shù)據(jù)的一張表格或者造成表格、列、范圍和約束的正式描述。每個表格(有時 被稱為一個關(guān)系)包含用列表示的一個或更多的數(shù)據(jù)種類。每行包含一個唯一的數(shù)據(jù)北京郵電大學畢業(yè)設計5實體,這些數(shù)據(jù)是被列定義的種類。當創(chuàng)造一個關(guān)系數(shù)據(jù)庫的時候,用戶能夠定義數(shù)據(jù) 列的可能值的范圍與可能應用于那個數(shù)據(jù)值的進一步約束。而 SQL 語言是標準用戶和應 用
26、程序到關(guān)系數(shù)據(jù)庫的接口。它的優(yōu)勢是容易擴充,且在最初的數(shù)據(jù)庫創(chuàng)造之后,一個 新的數(shù)據(jù)種類能夠被添加而不需要修改所有的現(xiàn)有的應用軟件。在關(guān)系數(shù)據(jù)模型中,現(xiàn)實世界中的實體以及實體與實體之間的聯(lián)系均可用關(guān)系來表 示。從邏輯或者用戶的觀點來看,關(guān)系就是二維表。本系統(tǒng)主要是根據(jù)關(guān)系數(shù)據(jù)模型來 創(chuàng)建數(shù)據(jù)庫,實現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的增刪改查。項目開發(fā)要求:1.1 項目開發(fā)要規(guī)范統(tǒng)一,模塊劃分、代碼編寫等均按照命名規(guī)范文檔;1.2 程序執(zhí)行速度快,數(shù)據(jù)安全。系統(tǒng)要具有良好的可擴展性;1.3 用戶界面簡單明了,操作簡單實用;1.4 具有一定的魯棒性,能夠處理大部分異常。2.4 基本功能需求作為關(guān)系型數(shù)據(jù)庫,最基本的功能
27、就是存儲數(shù)據(jù)。該關(guān)系型數(shù)據(jù)庫系統(tǒng)能夠解析輸 入的標準 SQL 語句命令,并執(zhí)行相關(guān)操作,實行數(shù)據(jù)庫數(shù)據(jù)存儲,查找,修改,刪除。從關(guān)系型數(shù)據(jù)庫的安全性來考慮,數(shù)據(jù)庫系統(tǒng)需要進行用戶管理,并進行權(quán)限設置。2.5 可行性分析該階段通過對系統(tǒng)目標的初步調(diào)研與分析, 提出可行性方案并且進行論證。我們在 這里主要從經(jīng)濟可行性、技術(shù)可行性、操作可行性等方面進行分析。2.5.1 經(jīng)濟可行性開發(fā)該系統(tǒng)所需要的相關(guān)資料可以通過已存在的相關(guān)系統(tǒng)進行采集調(diào)查,所需要的其他應用軟件、硬件系統(tǒng)也比較易于獲得。因此,開發(fā)成本較低。所以,從經(jīng)濟的角度 來看,該系統(tǒng)可行。2.5.2 技術(shù)可行性技術(shù)可行性需要考慮現(xiàn)有的技術(shù)條件是
28、否能夠順利的完成開發(fā)工作,軟硬件配置是否滿足開發(fā)的需求等。本系統(tǒng)用的是 C+開發(fā)語言,調(diào)試相對簡單,當前的計算機硬件 配置也完全能滿足開發(fā)的需求,因此在技術(shù)上是絕對可行的。軟件方面:由于目前單機 模式相對發(fā)展成熟,因此軟件的開發(fā)平臺成熟可行,它們速度快、容量大、可靠性能強、 價格低,完全能夠滿足系統(tǒng)的需求。2.5.3 操作可行性本系統(tǒng)使用命名規(guī)范的文檔,程序執(zhí)行速度快,數(shù)據(jù)安全,具有良好的可擴展性, 用戶界面簡單明了,操作簡單實用,由于當前信息化技術(shù)已經(jīng)相當普及, 各類操作人員 水平都有相當?shù)母叨龋栽诓僮鬟\行上是可行性的。綜上所述,本系統(tǒng)的開發(fā)從經(jīng)濟上、從技術(shù)上、從操作上都是完全可靠的。2
29、.6 系統(tǒng)用例分析以下是小型關(guān)系型數(shù)據(jù)庫的用戶操作用例圖。它包括了用戶進行的創(chuàng)建表、插入數(shù)據(jù)、修改數(shù)據(jù)、查找數(shù)據(jù)、刪除數(shù)據(jù)以及刪除表,創(chuàng)建用戶、規(guī)定用戶身份以及用戶權(quán) 限。如圖 2-1 所示:北京郵電大學畢業(yè)設計6圖 2-1 用戶操作用例圖2.7 開發(fā)平臺及核心技術(shù)簡介2.7.1 開發(fā)環(huán)境本系統(tǒng)使用的是 Microsoft 的 Visual C+ 6.0 作為開發(fā)工具。Visual C+ 6.0,簡稱 VC 或者 VC6.0,是微軟推出的一款 C+編譯器,將“高級語 言”翻譯為“機器語言(低級語言)”的程序。Visual C+是一個功能強大的可視化軟 件開發(fā)工具。自 1993 年 Micros
30、oft 公司推出 Visual C+1.0 后,隨著其新版本的不斷問 世,Visual C+已成為專業(yè)程序員進行軟件開發(fā)的首選工具。雖然微軟公司推出了Visual C+.NET(Visual C+7.0),但它的應用的很大的局限性,只適用于 Windows 2000、Windows XP 和 Windows NT4.0。所以實際中,更多的是以 Visual C+6.0 為平臺。Visual C+6.0 不僅是一個 C+編譯器,而且是一個基于 Windows 操作系統(tǒng)的可視 化集成開發(fā)環(huán)境(integrated development environment IDE)。Visual C+6.0
31、由許多組件 組成,包括編輯器、調(diào)試器以及程序向?qū)?AppWizard、類向?qū)?Class Wizard 等開發(fā)工具。 這些組件通過一個名為 Developer Studio 的組件集成為和諧的開發(fā)環(huán)境。主要部分:Developer Studio,這是一個集成開發(fā)環(huán)境,我們?nèi)粘9ぷ鞯?99%都是在它上面完成的,再加上它的標題赫然寫著“ Microsoft Visual C+ ”,所以很多人理所當然的認為,那就是 Visual C+ 了。其實不然,雖然 Developer Studio 提供了一個很好的編輯器和很 多Wizard,但實際上它沒有任何編譯和鏈接程序的功能,真正完成這些工作的幕后英 雄
32、后面會介紹。我們也知道,Developer Studio 并不是專門用于 VC 的,它也同樣用于 VB,VJ,VID等 Visual Studio 家族的其他同胞兄弟。所以不要把 Developer Studio 當成 Visual C+, 它充其量只是 Visual C+的一個殼子而已。MFC 從理論上來講,MFC 也不是專用于 Visual C+,Borland C+,C+Builder 和連冊逢克插入埶擔刪除數(shù)據(jù)北京郵電大學畢業(yè)設計7Symantec C+同樣可以處理 MFC。同時,用 Visual C+編寫代碼也并不意味著一定 要用MFC,只要愿意,用 Visual C+來編寫 SDK
33、 程序,或者使用 STL,ATL,一樣沒 有限制。不過,Visual C+本來就是為 MFC 打造的,Visual C+中的許多特征和語言擴 展也是為 MFC而設計的,所以用 Visual C+而不用 MFC 就等于拋棄了 Visual C+中很 大的一部分功能。但是,Visual C+也不等于 MFC。Platform SDK,這才是 Visual C+和整個 Visual Studio 的精華和靈魂,雖然我們很 少能直接接觸到它。大致說來,Platform SDK 是以 Microsoft C/C+編譯器為核心(不 是 VisualC+,看清楚了),配合 MASM,輔以其他一些工具和文檔資
34、料。上面說到 Developer Studio沒有編譯程序的功能,那么這項工作是由誰來完成的呢?是 CL,是 NMAKE,和其他許許多多命令行程序,這些我們看不到的程序才是構(gòu)成Visual Studio的基石。Microsoft Visual C+ 6.0 使用方法:打開 Microsoft Visual C+ 6.0 后,選擇: 文件|新建, 在打開的對話框中選擇“工程”,在選擇“ Win32 Con sole Applicatio n” -填寫“工程名稱”- 選擇“位置”- “確定”, 然后在選擇:文件 新建,在打開的對話框中選擇“文件”,在選擇“ C+Source file” - 填寫“
35、文件名稱”- “確定”,這樣就建好了一個.cpp 文件。然后你在.cpp 文件中寫入 你的c+語言代碼就可以了。代碼寫好以后你看一下工具里有一個圖標,依次點,編譯,連接,運行就可以了。換句話說 VC+是 Windows 平臺上的 C+編程環(huán)境,MFC 借助 C+的優(yōu)勢為 Windows開發(fā)開辟了一片新天地,同時也借助 ApplicationWizzard 使開發(fā)者擺脫離了那 些每次都必寫基本代碼,借助 ClassWizard 和消息映射使開發(fā)者擺脫了定義消息處理時 那種混亂和冗長的代碼段。利用 C+的封裝性開發(fā)者可以更容易理解和操作各種窗口對 象;利用 C+的派生性開發(fā)者可以減少開發(fā)自定義窗口
36、的時間和創(chuàng)造出可重用的代碼; 利用虛擬性可以在必要時更好的控制窗口的活動。而且C+本身所具備的超越 C 語言的特性都可以使開發(fā)者編寫出更易用,更靈活的代碼。由于C+是由 C 語言發(fā)展起來的,也支持 C 語言的編譯。6.0 版本是使用最多的版本,很經(jīng)典。最大的缺點是對于模 版的支持比較差?,F(xiàn)在最新補丁為 SP6,推薦安裝,否則易出現(xiàn)編譯時假死狀態(tài)和有些 功能不可用的情況。同時,6.0 版本對 windows7 和 windows8 的兼容性較差?,F(xiàn)在的最 新版 C+編譯器集合在 Microsoft Visual Studio 2013 軟件里面,包含 C+ (支持面向?qū)?象程序設計的大型語言),
37、Visual basic(支持名面向?qū)ο蟪绦蛟O計的語言),Java (適用 網(wǎng)絡的語言),C#,J#,.net。其中,VC 開發(fā)環(huán)境的版本已經(jīng)升級至 Microsoft Visual C+ 2013,對 C+的支持更加全面穩(wěn)定,建議電腦性能好的可以使用此版本。2.7.2 核心技術(shù)MFC(MicrosoftFou ndatio nClasses 是微軟基礎(chǔ)類庫的簡稱,是微軟公司實現(xiàn)的一個C+類庫,主要圭寸裝了大部分的 windows API 函數(shù),vc+是微軟公司開發(fā)的 C/C+的集 成開發(fā)環(huán)境,所謂集成開發(fā)環(huán)境,就是說利用它你可以編輯,編譯,調(diào)試,而不是使用 多種工具輪換操作,靈活性較大。有時
38、人們說vc 呢也指它的內(nèi)部編譯器,集成開發(fā)環(huán)境必須有一個編譯器內(nèi)核,要不有什么用,例如 DevC+其中一個編譯器內(nèi)核就是 gcc。MFC除了是一個類庫以外,還是一個框架,在vc+里新建一個 MFC 的工程,開發(fā)環(huán)境會自動幫助產(chǎn)生許多文件,同時它使用了 mfcxx.dll。xx 是版本,它圭寸裝了 mfc 內(nèi)核, 所以你在你的代碼看不到原本的 SDK 編程中的消息循環(huán)等等東西,因為 MFC 框架幫 你封裝好了,這樣你就可以專心的考慮你程序的邏輯,而不是這些每次編程都要重復的北京郵電大學畢業(yè)設計8東西, 但是由于是通用框架, 沒有最好的針對性, 當然也就喪失了一些靈活性和效率但 是 MFC的封裝很
39、淺,所以效率上損失不大,靈活性還可以,雖然也有很多缺陷,但還 是一個比較好的東西。MFC,微軟基礎(chǔ)類 (Microsoft Foundation Classes) 實際上是微軟提供的 用于在 C+環(huán) 境下編寫應用程序的一個框架和引擎,VC+是 Win DOS 下開發(fā)人員使用的專業(yè) C+SDK(SDK,Standard SoftWare Develop Kit,專業(yè)軟件開發(fā)平臺),MFC 就是掛在它之上的一個輔助軟件開發(fā)包,MFC 作為與 VC+血肉相連的部分(注意 C+和 VC+的區(qū)別:C+是 一種程序設計語言,是一種大家都承認的軟件編制的通用規(guī)范,而 VC+只是一個編譯器, 或者說是一種編譯
40、器+源程序編輯器的 IDE,WS,PlatForm,這跟 PascaI 和 Delphi 的關(guān)系一 個道理Pascal 是 Delphi 的語言基礎(chǔ)Delphi 使用 Pascal 規(guī)范來進行 Win 下應用程序的開 發(fā)和編譯,卻不同于 Basic 語言和 VB 的關(guān)系,Basic 語言在 VB 開發(fā)出來被應用的年代已 經(jīng)成了 Basic語言的新規(guī)范,VB 新加的 Basic 語言要素,如面向?qū)ο蟪绦蛟O計的要素,是一 種性質(zhì)上的飛躍,使 VB 既是一個 IDE,又成長成一個新的程序設計語言),MFC 同 BC+ 集成的 VCL 樣是一個非外掛式的軟件包,類庫,只不過 MFC 類是微軟為 VC+
41、專配的, MFC 是 Win API 與 C+的結(jié)合,API,即微軟提供的 Win DOS 下應用程序的編程語言接口,是一種軟件編程的規(guī)范,但不是一種程序開發(fā)語言本身,可以允許用戶使用各種各樣的第 三方(如我是一方,微軟是一方,Borland 就是第三方)的編程語言來進行對 Win DOS 下應用 程序的開發(fā),使這些被開發(fā)出來的應用程序能在 Win DOS 下運行,比如 VB,VC+ , Java, Dehpi 編程語言函數(shù)本質(zhì)上全部源于 API,因此用它們開發(fā)出來的應用程序都能工作在 WinOS 的消息機制和繪圖里,遵守 WinDOS 作為一個操作系統(tǒng)的內(nèi)部實現(xiàn),這其實也是一 種必要,微軟如
42、果不提供 API,這個世上對 Win 編程的工作就不會存在,微軟的產(chǎn)品就會迅 速從時尚變成垃圾,上面說到 MFC是微軟對 API 函數(shù)的專用 C+封裝,這種結(jié)合一方面 讓用戶使用微軟的專業(yè) C+ SDK 來進行 Win 下應用程序的開發(fā)變得容易,因為 MFC 是 對 API 的封裝,微軟做了大量的工作,隱藏了好多程序閱讀會員限時特惠 7 大會員特權(quán) 立即嘗鮮開發(fā)人員在 Win 下用 C+ & MFC 編制軟件時的大量內(nèi)節(jié),如應用程序?qū)崿F(xiàn)消 息的處理,設備環(huán)境繪圖,這種結(jié)合是以方便為目的的,必定要付出一定代價(這是微軟的 一向作風),因此就造成了 MFC 對類封裝中的一定程度的的冗余和迂
43、回,但這是可以接受 的。最后要明白 MFC 不只是一個功能單純的界面開發(fā)系統(tǒng),它提供的類絕大部分用來進 行界面開發(fā),關(guān)聯(lián)一個窗口的動作,但它提供的類中有好多類不與一個窗口關(guān)聯(lián),即類的作用不是一個界面類,不實現(xiàn)對一個窗口對象的控制(如創(chuàng)建,銷毀),而是一些在Win DOS(用 MFC 編寫的程序絕大部分都在 Win DOS 中運行)中實現(xiàn)內(nèi)部處理的類,如數(shù)據(jù)庫的管理類等,學習中最應花費時間的是消息和設備環(huán)境,對 C+和 MFC 的學習中最 難的部分是指針,C+面向?qū)ο癯绦蛟O計的其它部分,如數(shù)據(jù)類型,流程控制都不難,建議 學習數(shù)據(jù)結(jié)構(gòu) C+版。MFC 是微軟封裝了的 API。什么意思呢? wind
44、ows 作為一個提 供功能強大的應用程序接口編程的操作系統(tǒng),的確方便了許多程序員,傳統(tǒng)的wi n32開發(fā)(直接使用 windows 的接口函數(shù) API)對于程序員來說非常的困難,因為,API 函 數(shù)實在太多了,而且名稱很亂,從零構(gòu)架一個窗口動輒就是上百行的代碼。MFC 是面向?qū)ο蟪绦蛟O計與 Application framework 的完美結(jié)合, 他將傳統(tǒng)的 API 進行了分類圭寸裝, 并且為你創(chuàng)建了程序的一般框架。MFC Object 和 Windows Object 的關(guān)系MFC 中最重要的封裝是對 Win32 API 的封裝,因此,理解 Windows Object 和 MFCObjec
45、t (C+對象,一個 C+類的實例)之間的關(guān)系是理解MFC 的關(guān)鍵之一。所謂北京郵電大學畢業(yè)設計9Windows Object (Windows 對象)是 Win32 下用句柄表示的 Windows 操作系統(tǒng)對象; 所謂 MFC Object (MFC 對象)是 C+對象,是一個 C+類的實例,這里 MFC Object 是北京郵電大學畢業(yè)設計10有特定含義的,指圭寸裝 Windows Object 的 C+ Object,并非指任意的 C+ Object。 MFCObject 和 Windows Object 是不一樣的,但兩者緊密聯(lián)系。以窗口對象為例: 一個 MFC 窗口對象是一個 C+
46、CWnd 類(或派生類)的實例,是程序直接創(chuàng)建的。在程序執(zhí)行中它隨著窗口類構(gòu)造函數(shù)的調(diào)用而生成, 隨著析構(gòu)函數(shù)的調(diào)用而消失。 而 Windows窗口則是 Windows 系統(tǒng)的一個內(nèi)部數(shù)據(jù)結(jié)構(gòu)的實例,由一個“窗口句柄”標 識,Windows系統(tǒng)創(chuàng)建它并給它分配系統(tǒng)資源。Windows 窗口在 MFC 窗口對象創(chuàng)建之后,由 CWnd 類的 Create 成員函數(shù)創(chuàng)建,“窗口句柄”保存在窗口對象的 m_hWnd 成員 變量中。Windows 窗口可以被一個程序銷毀,也可以被用戶的動作銷毀。MFC 窗口對象和 Windows 窗口對象的關(guān)系如圖 2-1 所示。其他的 Windows Object 和
47、對應的 MFC Object也有類似的關(guān)系。下面對 MFC Object 和 Windows Object 作一個比較。有些論斷對設備描述表(MFC 類是 CDC,句柄是 HDC)可能不適用,但具體涉及到時會指出。從數(shù)據(jù)結(jié)構(gòu)上比較:MFC Object 是相應 C+類的實例,這些類是 MFC 或者程序員定義的;Windows Object是 Windows 系統(tǒng)的內(nèi)部結(jié)構(gòu),通過一個句柄來引用;MFC給這些類定義了一個成員變量來保存 MFC Object對應的 Windows Object的 句柄。對于設備描述表 CDC 類,將保存兩個 HDC 句柄。從層次上講比較:MFC Object 是高層
48、的,Windows Object 是低層的;MFC Object 圭寸裝了 WindowsObject 的大部分或全部功能,MFC Object 的使用者不需要直接應用 Windows Object 的HANDLE (句柄)使用 Win32 API,代替它的是引用相應的 MFC Object 的成員函數(shù)。從創(chuàng)建上比較:MFC Object 通過構(gòu)造函數(shù)由程序直接創(chuàng)建; Windows Object 由相應的 SDK 函數(shù)創(chuàng) 建。MFC 中,使用這些 MFC Object,一般分兩步:首先,創(chuàng)建一個 MFC Object,或者在 STACK 中創(chuàng)建,或者在 HEAP 中創(chuàng)建,這 時,MFC Ob
49、ject 的句柄實例變量為空,或者說不是一個有效的句柄。然后,調(diào)用 MFC Object 的成員函數(shù)創(chuàng)建相應的 Windows Object,MFC 的句柄變量 存儲一個有效句柄。當然,可以在 MFC Object 的構(gòu)造函數(shù)中創(chuàng)建相應的 Windows 對象,MFC 的 GDI 類就是如此實現(xiàn)的,但從實質(zhì)上講, MFC Object 的創(chuàng)建和 Windows Object 的創(chuàng)建是兩 回事??梢詮囊粋€ MFC Object 得至 U 對應的 Windows Object 的句柄;一般使用 MFC Object的成員函數(shù) GetSafeHandle 得到對應的句柄。可以從一個已存在的 Wind
50、ows Object 創(chuàng)建 一個對應的 MFC Object; 一般使用 MFC Object 的成員函數(shù) Attach 或者 FromHandle 來創(chuàng)建,前者得到一個永久性對象,后者得到的可能是一個臨時對象。從使用范圍上比較:MFC Object 對系統(tǒng)的其他進程來說是不可見、不可用的;而Windows Object 一旦創(chuàng)建,其句柄是整個 Windows 系統(tǒng)全局的。一些句柄可以被其他進程使用。典型地, 一個進程可以獲得另一進程的窗口句柄,并給該窗口發(fā)送消息。對同一個進程的線程來說,只可以使用本線程創(chuàng)建的MFC Object,不能使用其他線程的 MFC Object0從銷毀上比較:北京郵
51、電大學畢業(yè)設計11MFC Object 隨著析構(gòu)函數(shù)的調(diào)用而消失; 但 Windows Object 必須由相應的 Windows 系統(tǒng)函數(shù)銷毀。設備描述表 CDC 類的對象有所不同,它對應的 HDC 句柄對象可能不 是被銷毀,而是被釋放。當然,可以在 MFC Object 的析構(gòu)函數(shù)中完成 Windows Object 的銷毀,MFCObject 的 GDI 類等就是如此實現(xiàn)的,但是,應該看到兩者的銷毀是不同 的。2.7.3 開發(fā)語言簡介C+是在 C 語言的基礎(chǔ)上開發(fā)的一種集面向?qū)ο缶幊?、泛型編程和過程化編程于一 體的編程語言。應用較為廣泛,是一種靜態(tài)數(shù)據(jù)類型檢查的,支持多重編程的通用程序
52、設計語言。它支持過程化程序設計,數(shù)據(jù)抽象,面向?qū)ο笤O計,制作圖標等多種程序設 計風格。最新正式標準 C+11 于 2011 年 8 月 12 日公布。C+設計成靜態(tài)類型、和 C 同樣高效且可移植的多用途程序設計語言。C+的優(yōu)點:C+設計成靜態(tài)類型、和 C 同樣高效且可移植的多用途程序設計語言。C+設計直接的和廣泛的支持多種程序設計風格(程序化程序設計、資料抽象化、 面向?qū)ο蟪绦蛟O計、泛型程序設計)。C+設計無需復雜的程序設計環(huán)境。C+語言簡潔靈活,運算符的數(shù)據(jù)結(jié)構(gòu)豐富、具有結(jié)構(gòu)化控制語句、程序執(zhí)行效率 咼,而且同時具有咼級語言與匯編語言的優(yōu)點,與其它語言相比,C 語言具有可以直接訪問物理地址的
53、優(yōu)點,與匯編語言相比又具有良好的可讀性的可移植性??偟脕碚f,C+語言的主要特點表現(xiàn)在兩個方面,一是盡量兼容 C,二是支持面向?qū)?象的方法。它操持了 C 的簡潔、高效的接近匯編語言等特點,對 C 的類型系統(tǒng)進行了 改革的擴充,因此 C+比 C 更安全,C+的編譯系統(tǒng)能檢查出更多的類型錯誤。另外, 由于 C 語言的廣泛使用,因而極大的促進了 C+的普及和推廣。C+語言最有意義的方面是支持面向?qū)ο蟮奶卣?。雖然與 C 的兼容使得 C+具有雙 重特點,但他在概念上完全與 C 不同,更具面向?qū)ο蟮奶卣?。出于保證語言的簡潔和運行高效等方面的考慮,C+的很多特性都是以庫(如 STL) 或其他的形式提供的,而沒
54、有直接添加到語言本身里。C+引入了面向?qū)ο蟮母拍睿沟瞄_發(fā)人機交互類型的應用程序更為簡單、快捷。 很多優(yōu)秀的程序框架包括 Boost、Qt、MFC、OWL、wxWidgets、WTL 就是使用的 C+。C+語言支持面向?qū)ο蟮某绦蛟O計,支持函數(shù)重載、運算符重載、以及動態(tài)聯(lián)編; C+語言 支持抽象數(shù)據(jù)類型,與 C 相比提供了更好的類型檢查機制,提供了更好的結(jié) 構(gòu)化程序設計技術(shù);C+語言與其他面向?qū)ο蟮某绦蛟O計語言相比,最重要的優(yōu)點是程 序的執(zhí)行效率高;C+保持與 C 的完全兼容,現(xiàn)有的 C 源代碼不經(jīng)修改就可以為 C+ 所用,C 程序員僅需要學習其新特性即可。C+的缺點:C+由于語言本身過度復雜,
55、甚至使人們難于理解其語義。C+的編譯系統(tǒng)受到 C+ 的復雜性的影響,非常難于編寫,即使能夠使用的編譯器也存在了大量的問題, 這些問 題大多難于被發(fā)現(xiàn)。由于本身的復雜性,復雜的 C+程序的正確性相當難于保證。2.7.4 關(guān)系數(shù)據(jù)庫模型簡介關(guān)系數(shù)據(jù)庫采用關(guān)系數(shù)據(jù)庫模型,關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)是一種二維表格結(jié)構(gòu), 二維 表有行和列構(gòu)成,稱為關(guān)系數(shù)據(jù)表,表中每一列描述對像的一個屬性,而表中每一行則 是則是對一個對象的具體描述,表中的一行稱作記錄或行每一列稱作字段或列。 關(guān)系數(shù) 據(jù)表中能夠北京郵電大學畢業(yè)設計12唯一標識一個對象的字段稱為關(guān)鍵字,如果表中存在多個字段都能用來唯一 標識表中的對象,可指定一個字
56、段為表中的關(guān)鍵字, 稱為主關(guān)鍵字。關(guān)系模型的數(shù)據(jù)庫 支持的關(guān)系數(shù)據(jù)庫的關(guān)系操作,最好用規(guī)范化的表。一個關(guān)系型數(shù)據(jù)庫支持關(guān)系代數(shù), 從而支持集理論的相關(guān)操作。除了業(yè)務,即從數(shù)學組,并交差和笛卡爾積,關(guān)系數(shù)據(jù)庫 也支持選擇,項目,關(guān)系連接和除法運算。這些操作是獨一無二的。關(guān)系型數(shù)據(jù)庫到關(guān) 系型數(shù)據(jù)庫支持的動態(tài)視圖中的一個重要概念。在關(guān)系數(shù)據(jù)庫中,視圖是沒有的物理架 構(gòu)的一部分,它是動態(tài)的。因此,改變表中的數(shù)據(jù)改變由視圖所示的數(shù)據(jù)。視圖可以子 集數(shù)據(jù),加入和簡化的多重關(guān)系,動態(tài)地隱藏復雜的數(shù)據(jù),減少數(shù)據(jù)的存儲需求。關(guān)系 型數(shù)據(jù)庫使用 SQL,這是一個很容易和人類可讀的語言。 SQL 指令是在純的指令
57、,它 可以付諸實施的數(shù)據(jù)庫的形式。再設計關(guān)系數(shù)據(jù)庫的表結(jié)構(gòu)時,如果不存在可作為關(guān)鍵字的字段,可增加一個字段 作為關(guān)鍵字的字段,用于唯一標識該行,大部分數(shù)據(jù)庫管理系統(tǒng)允許在建立表時生成一 個自動增加的類型的字段,每當表增加一行時,有數(shù)據(jù)庫管理系統(tǒng)自動生成該字段的內(nèi) 容,保證其唯一性。數(shù)據(jù)庫的完整性,是指數(shù)據(jù)庫中數(shù)據(jù)的正確性和一致性。數(shù)據(jù)完整性由數(shù)據(jù)完整性 規(guī)則來維護。為了維護數(shù)據(jù)庫數(shù)據(jù)的正確性和一致性, 在對關(guān)系數(shù)據(jù)庫進行插入,修改 和刪除操作時必須遵循三類完整性規(guī)則。(1) 實體完整性規(guī)則:要求主關(guān)鍵字不能為空值,否則主關(guān)鍵字起不到唯一標識 表中對象的作用。(2) 引用完整性規(guī)則:不允許引用不
58、存在的對象。(3) 用戶定義的完整性規(guī)則:這是針對某一具體數(shù)據(jù)的約束條件,有應用環(huán)境決定。2.7.5 關(guān)系數(shù)據(jù)庫模型的設計、實現(xiàn)與維護簡介(1) 邏輯數(shù)據(jù)庫設計邏輯數(shù)據(jù)庫設計從兩個角度進行數(shù)據(jù)庫開發(fā)。 首先,將概念數(shù)據(jù)模型變換成基于關(guān) 系數(shù)據(jù)庫理論的標準表示方法一一關(guān)系。然后像設計信息系統(tǒng)的每個計算機程序(包括 程序的輸入和輸出格式)那樣,對數(shù)據(jù)庫支持的事務、報表、顯示和查詢進行詳細的檢 查。在這個所謂的自底向上的分析中,精確地驗證數(shù)據(jù)庫中需要維護的數(shù)據(jù)和在每個事 務、報表等等中需要的那些數(shù)據(jù)的性質(zhì)。對于每個單獨的報表、事務等等的分析都要考慮一個特定的、有限制的但是完全的 數(shù)據(jù)庫視圖。當報表、
59、事務等被分析時有可能根據(jù)需要而改變概念數(shù)據(jù)模型。尤其在大型的項目中,不同的分析人員和系統(tǒng)開發(fā)者的團隊可以獨立地工作在不同的程序或程序 集中,他們所有工作的細節(jié)直到邏輯設計階段才可能會顯示出來。在這種情況下,邏輯數(shù)據(jù)庫設計階段必須將原始的概念數(shù)據(jù)模型和這些獨立的用戶視圖合并或集成到一個 全面的設計中。在進行邏輯信息系統(tǒng)設計時也可以確定額外的信息處理需求,此時這些新的需求必須集成到前面確定的邏輯數(shù)據(jù)庫設計中。邏輯數(shù)據(jù)庫設計的最后一步是根據(jù)為生成結(jié)構(gòu)良好的數(shù)據(jù)規(guī)格說明而確定的規(guī)則, 將組合的、協(xié)商后的數(shù)據(jù)規(guī)格說明轉(zhuǎn)換成基本的或原子的元素。 對當今的大部分數(shù)據(jù)庫 而言,這些規(guī)則來自關(guān)系數(shù)據(jù)庫理論和稱作
60、規(guī)范化的過程。這一步的結(jié)果是產(chǎn)生管理這些數(shù)據(jù)的、不引用任何數(shù)據(jù)庫管理系統(tǒng)的完整的數(shù)據(jù)庫描述圖。在完成邏輯數(shù)據(jù)庫設計 后,開始確定詳細的計算機程序的邏輯和維護、報告數(shù)據(jù)庫內(nèi)容所需的查詢。(2) 物理數(shù)據(jù)庫設計和定義物理數(shù)據(jù)庫設計和定義階段決定計算機存儲器(通常是磁盤)中數(shù)據(jù)庫的組織,定 義數(shù)北京郵電大學畢業(yè)設計13據(jù)庫管理系統(tǒng)的物理結(jié)構(gòu),概述處理事務的程序,產(chǎn)生期望的管理信息和決策支持 的報表。本階段的目標是設計能夠有效、 安全地管理所有數(shù)據(jù)處理的數(shù)據(jù)庫, 因此物理 數(shù)據(jù)庫設計需緊密結(jié)合物理信息系統(tǒng)其他方面的設計,包括程序、計算機硬件、操作系 統(tǒng)和數(shù)據(jù)通信網(wǎng)絡。(3) 數(shù)據(jù)庫實現(xiàn)數(shù)據(jù)庫實現(xiàn)階段編寫、測試
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆河南省平頂山市寶豐縣重點達標名校初三下學期9月摸底測試物理試題含解析
- 護理健康教育方法和技巧
- 護欄涂料施工方案
- 中醫(yī)護理方案的臨床實施
- 奧爾夫大鼓和小鼓
- 江蘇省鎮(zhèn)江市丹陽市2024-2025學年高一下學期3月月考物理試題(含答案)
- 二零二四年份十二月按揭車輛轉(zhuǎn)讓車載網(wǎng)絡服務協(xié)議
- 教師的情緒管理課件
- 自考《01757藥物分析(三)》核心考點題庫300題(含答案)
- 幼兒園小班的管理
- AQ-1023-2006煤礦井下低壓供電系統(tǒng)及裝備通用安全技術(shù)要求解析
- 2023年中考英語真題分類匯編-閱讀理解(判斷正誤型)
- 擬定裝運港目的港條款裝運港目的港選擇的影響因素
- 2022年07月甘肅張掖市引進高層次急需人才23人筆試題庫含答案解析
- DB44T 378-2006東風螺養(yǎng)殖技術(shù)規(guī)范 養(yǎng)成技術(shù)
- 不良資產(chǎn)處置法律實務
- 工程施工強制性條文執(zhí)行記錄表
- 小學信息科技《羊村防御門-人臉識別的應用》說課稿
- 《保障農(nóng)民工工資支付條例》考試試題和答案
- 《植物生產(chǎn)與環(huán)境》課程標準
- 2023年北京電子科技職業(yè)學院高職單招(語文)試題庫含答案解析
評論
0/150
提交評論