㈠ 如何從資料庫中反向導出資料庫設計文檔
想如果我們想要把一套舊的資料庫系統移轉到新的資料庫系統時,光是了解舊有資料庫系統中的數據結構便是一個極大的挑戰,尤其當我們必須使用其他 DBMS 平台上的早期資料庫時,就是更加的難上加難。
Visio所提供的工具能使程序更順暢,它是 「反向工程向導」 取出完整的資料庫一覽表,其中包括觸發器、函數、庫存程序、查詢子句和其他平台特有的類型。此外,我們也可以輕易修改資料庫設計而滿足新的需要,或建立圖表及報表並與項目團隊共享成果。
㈡ 求一份圖書管理系統的資料庫設計方案
1. 對圖書館的信息建幾個表,考慮表之間的關系。
2.系統功能的基本要求:
a) 對資料庫的編輯功能:對圖書館信息記錄的添加、修改、刪除。
b) 對圖書的統計(國內圖書、國外圖書、計算機圖書、外語圖書、中文圖等各類圖書的統計)。
c) 對圖書的查詢(按關鍵字查詢、模糊查詢等);
d) 對報表的列印;
e) 界面友好。
1、概述
包括項目背景、編寫目的、軟體定義、開發環境等內容。
2、需求分析
問題陳述、需完成的功能。
用數據流圖、數據字典、判斷樹等完成。
3、資料庫概念設計
畫出ER模型圖
4、資料庫邏輯設計
把ER模型圖轉換為關系表。
描述每一個基本表關系。要求所有關系達到BCNF範式。
定義視圖、定義索引、主關鍵字、定義許可權。
5 物理設計
主要用到存取方法
6、結束語
寫出完成本課程設計的心得,領會資料庫理論與軟體開發實踐的關系。有哪些收獲。軟體還需要哪些改進。
設計結果:設計報告,源程序代碼。
㈢ 詳細設計文檔怎麼寫
就是有多詳細寫多詳細
先寫你的項目的用途
版權
資料庫的每張表幹嘛用的
每個界面的功能
每個按鈕的鏈接
每個類實現什麼功能
每個類調用的介面和方法,怎麼調用的
越詳細越好
㈣ 前後端分離,關於介面文檔,後端是要先寫好介面文檔,再進行寫代碼開發,還是寫完代碼後再編寫介面文檔
1、先理清業務流程
2、定義前後端開發的介面規范。比如json的格式,url的格式
3、定義介面文檔,這里的介面文檔一般就是對應後台的實體reqVo(調用後台介面<控制器>訪問的實體)和返回給前台的respVo(前台調用介面的返回的實體)。注意一般respVo都會有在後台做一個統一的處理為ResultVo(這個規范在2中要定義好,比如:錯誤碼,錯誤描述,請求的url,請求時間,以及實體T<這個實體才是真正的respVo和業務相關,這個一般都是實體>)
4、定義介面文檔是在了解業務流、數據流基礎之上完成的。有了這個介面文檔(其實就是定義實體的過程和對應的json)前後端的開發基本按照這個文檔去開發。介面文檔會有版本迭代,一般放到svn上,供所有開發人員閱覽
5、現在一般系統用到的資料庫都不會是單純mysql了。還有redis,mongo、es等。這些個人感覺都是在十分了解業務的情況和系統架構下去設計的。後台運用這些工具去完成介面功能的實現已經系統功能和性能的實現。這個和介面文檔先後順序還真不好說,個人覺得都可以。
6、業務流-數據流-資金流。去了解和設計系統。
㈤ 資料庫操作類的方法該如何設計。
資料庫設計(Database Design)是指對於一個給定的應用環境,構造最優的資料庫模式,建立資料庫及其應用系統,使之能夠有效地存儲數據,滿足各種用戶的應用需求(信息要求和處理要求)。
在資料庫領域內,常常把使用資料庫的各類系統統稱為資料庫應用系統。
一、資料庫和信息系統
(1)資料庫是信息系統的核心和基礎,把信息系統中大量的數據按一定的模型組織起來,提供存儲、維護、檢索數據的
功能,使信息系統可以方便、及時、准確地從資料庫中獲得所需的信息。
(2)資料庫是信息系統的各個部分能否緊密地結合在一起以及如何結合的關鍵所在。
(3)資料庫設計是信息系統開發和建設的重要組成部分。
(4)資料庫設計人員應該具備的技術和知識:
資料庫的基本知識和資料庫設計技術
計算機科學的基礎知識和程序設計的方法和技巧
軟體工程的原理和方法
應用領域的知識
二、資料庫設計的特點
資料庫建設是硬體、軟體和干件的結合
三分技術,七分管理,十二分基礎數據
技術與管理的界面稱之為「干件」
資料庫設計應該與應用系統設計相結合
結構(數據)設計:設計資料庫框架或資料庫結構
行為(處理)設計:設計應用程序、事務處理等
結構和行為分離的設計
傳統的軟體工程忽視對應用中數據語義的分析和抽象,只要有可能就盡量推遲數據結構設計的決策早期的資料庫設計致力於數據模型和建模方法研究,忽視了對行為的設計
如圖:
三、資料庫設計方法簡述
手工試湊法
設計質量與設計人員的經驗和水平有直接關系
缺乏科學理論和工程方法的支持,工程的質量難以保證
資料庫運行一段時間後常常又不同程度地發現各種問題,增加了維護代價
規范設計法
手工設計方
基本思想
過程迭代和逐步求精
規范設計法(續)
典型方法:
(1)新奧爾良(New Orleans)方法:將資料庫設計分為四個階段
S.B.Yao方法:將資料庫設計分為五個步驟
I.R.Palmer方法:把資料庫設計當成一步接一步的過程
(2)計算機輔助設計
ORACLE Designer 2000
SYBASE PowerDesigner
四、資料庫設計的基本步驟
資料庫設計的過程(六個階段)
1.需求分析階段
准確了解與分析用戶需求(包括數據與處理)
是整個設計過程的基礎,是最困難、最耗費時間的一步
2.概念結構設計階段
是整個資料庫設計的關鍵
通過對用戶需求進行綜合、歸納與抽象,形成一個獨立於具體DBMS的概念模型
3.邏輯結構設計階段
將概念結構轉換為某個DBMS所支持的數據模型
對其進行優化
4.資料庫物理設計階段
為邏輯數據模型選取一個最適合應用環境的物理結構(包括存儲結構和存取方法)
5.資料庫實施階段
運用DBMS提供的數據語言、工具及宿主語言,根據邏輯設計和物理設計的結果
建立資料庫,編制與調試應用程序,組織數據入庫,並進行試運行
6.資料庫運行和維護階段
資料庫應用系統經過試運行後即可投入正式運行。
在資料庫系統運行過程中必須不斷地對其進行評價、調整與修改
設計特點:
在設計過程中把資料庫的設計和對資料庫中數據處理的設計緊密結合起來將這兩個方面的需求分析、抽象、設計、實現在各個階段同時進行,相互參照,相互補充,以完善兩方面的設計
設計過程各個階段的設計描述:
如圖:
五、資料庫各級模式的形成過程
1.需求分析階段:綜合各個用戶的應用需求
2.概念設計階段:形成獨立於機器特點,獨立於各個DBMS產品的概念模式(E-R圖)
3.邏輯設計階段:首先將E-R圖轉換成具體的資料庫產品支持的數據模型,如關系模型,形成資料庫邏輯模式;然後根據用戶處理的要求、安全性的考慮,在基本表的基礎上再建立必要的視圖(View),形成數據的外模式
4.物理設計階段:根據DBMS特點和處理的需要,進行物理存儲安排,建立索引,形成資料庫內模式
六、資料庫設計技巧
1. 設計資料庫之前(需求分析階段)
1) 理解客戶需求,詢問用戶如何看待未來需求變化。讓客戶解釋其需求,而且隨著開發的繼續,還要經常詢問客戶保證其需求仍然在開發的目的之中。
2) 了解企業業務可以在以後的開發階段節約大量的時間。
3) 重視輸入輸出。
在定義資料庫表和欄位需求(輸入)時,首先應檢查現有的或者已經設計出的報表、查詢和視圖(輸出)以決定為了支持這些輸出哪些是必要的表和欄位。
舉例:假如客戶需要一個報表按照郵政編碼排序、分段和求和,你要保證其中包括了單獨的郵政編碼欄位而不要把郵政編碼糅進地址欄位里。
4) 創建數據字典和ER 圖表
ER 圖表和數據字典可以讓任何了解資料庫的人都明確如何從資料庫中獲得數據。ER圖對表明表之間關系很有用,而數據字典則說明了每個欄位的用途以及任何可能存在的別名。對SQL 表達式的文檔化來說這是完全必要的。
5) 定義標準的對象命名規范
資料庫各種對象的命名必須規范。
2. 表和欄位的設計(資料庫邏輯設計)
表設計原則
1) 標准化和規范化
數據的標准化有助於消除資料庫中的數據冗餘。標准化有好幾種形式,但Third Normal Form(3NF)通常被認為在性能、擴展性和數據完整性方面達到了最好平衡。簡單來說,遵守3NF 標準的資料庫的表設計原則是:「One Fact in One Place」即某個表只包括其本身基本的屬性,當不是它們本身所具有的屬性時需進行分解。表之間的關系通過外鍵相連接。它具有以下特點:有一組表專門存放通過鍵連接起來的關聯數據。
舉例:某個存放客戶及其有關定單的3NF 資料庫就可能有兩個表:Customer 和Order。Order 表不包含定單關聯客戶的任何信息,但表內會存放一個鍵值,該鍵指向Customer 表裡包含該客戶信息的那一行。
事實上,為了效率的緣故,對表不進行標准化有時也是必要的。
2) 數據驅動
採用數據驅動而非硬編碼的方式,許多策略變更和維護都會方便得多,大大增強系統的靈活性和擴展性。
舉例,假如用戶界面要訪問外部數據源(文件、XML 文檔、其他資料庫等),不妨把相應的連接和路徑信息存儲在用戶界面支持表裡。還有,如果用戶界面執行工作流之類的任務(發送郵件、列印信箋、修改記錄狀態等),那麼產生工作流的數據也可以存放在資料庫里。角色許可權管理也可以通過數據驅動來完成。事實上,如果過程是數據驅動的,你就可以把相當大的責任推給用戶,由用戶來維護自己的工作流過程。
3) 考慮各種變化
在設計資料庫的時候考慮到哪些數據欄位將來可能會發生變更。
舉例,姓氏就是如此(注意是西方人的姓氏,比如女性結婚後從夫姓等)。所以,在建立系統存儲客戶信息時,在單獨的一個數據表裡存儲姓氏欄位,而且還附加起始日和終止日等欄位,這樣就可以跟蹤這一數據條目的變化。
欄位設計原則
4) 每個表中都應該添加的3 個有用的欄位
dRecordCreationDate,在VB 下默認是Now(),而在SQL Server • 下默認為GETDATE()
sRecordCreator,在SQL Server 下默認為NOT NULL DEFAULT • USER
nRecordVersion,記錄的版本標記;有助於准確說明記錄中出現null 數據或者丟失數據的原因 •
5) 對地址和電話採用多個欄位
描述街道地址就短短一行記錄是不夠的。Address_Line1、Address_Line2 和Address_Line3 可以提供更大的靈活性。還有,電話號碼和郵件地址最好擁有自己的數據表,其間具有自身的類型和標記類別。
6) 使用角色實體定義屬於某類別的列
在需要對屬於特定類別或者具有特定角色的事物做定義時,可以用角色實體來創建特定的時間關聯關系,從而可以實現自我文檔化。
舉例:用PERSON 實體和PERSON_TYPE 實體來描述人員。比方說,當John Smith, Engineer 提升為John Smith, Director 乃至最後爬到John Smith, CIO 的高位,而所有你要做的不過是改變兩個表PERSON 和PERSON_TYPE 之間關系的鍵值,同時增加一個日期/時間欄位來知道變化是何時發生的。這樣,你的PERSON_TYPE 表就包含了所有PERSON 的可能類型,比如Associate、Engineer、Director、CIO 或者CEO 等。還有個替代辦法就是改變PERSON 記錄來反映新頭銜的變化,不過這樣一來在時間上無法跟蹤個人所處位置的具體時間。
7) 選擇數字類型和文本類型盡量充足
在SQL 中使用smallint 和tinyint 類型要特別小心。比如,假如想看看月銷售總額,總額欄位類型是smallint,那麼,如果總額超過了$32,767 就不能進行計算操作了。
而ID 類型的文本欄位,比如客戶ID 或定單號等等都應該設置得比一般想像更大。假設客戶ID 為10 位數長。那你應該把資料庫表欄位的長度設為12 或者13 個字元長。但這額外占據的空間卻無需將來重構整個資料庫就可以實現資料庫規模的增長了。
8) 增加刪除標記欄位
在表中包含一個「刪除標記」欄位,這樣就可以把行標記為刪除。在關系資料庫里不要單獨刪除某一行;最好採用清除數據程序而且要仔細維護索引整體性。
3. 選擇鍵和索引(資料庫邏輯設計)
鍵選擇原則:
1) 鍵設計4 原則
為關聯欄位創建外鍵。 •
所有的鍵都必須唯一。 •
避免使用復合鍵。 •
外鍵總是關聯唯一的鍵欄位。 •
2) 使用系統生成的主鍵
設計資料庫的時候採用系統生成的鍵作為主鍵,那麼實際控制了資料庫的索引完整性。這樣,資料庫和非人工機制就有效地控制了對存儲數據中每一行的訪問。採用系統生成鍵作為主鍵還有一個優點:當擁有一致的鍵結構時,找到邏輯缺陷很容易。
3) 不要用用戶的鍵(不讓主鍵具有可更新性)
在確定採用什麼欄位作為表的鍵的時候,可一定要小心用戶將要編輯的欄位。通常的情況下不要選擇用戶可編輯的欄位作為鍵。
4) 可選鍵有時可做主鍵
把可選鍵進一步用做主鍵,可以擁有建立強大索引的能力。
索引使用原則:
索引是從資料庫中獲取數據的最高效方式之一。95%的資料庫性能問題都可以採用索引技術得到解決。
1) 邏輯主鍵使用唯一的成組索引,對系統鍵(作為存儲過程)採用唯一的非成組索引,對任何外鍵列採用非成組索引。考慮資料庫的空間有多大,表如何進行訪問,還有這些訪問是否主要用作讀寫。
2) 大多數資料庫都索引自動創建的主鍵欄位,但是可別忘了索引外鍵,它們也是經常使用的鍵,比如運行查詢顯示主表和所有關聯表的某條記錄就用得上。
3) 不要索引memo/note 欄位,不要索引大型欄位(有很多字元),這樣作會讓索引佔用太多的存儲空間。
4) 不要索引常用的小型表
不要為小型數據表設置任何鍵,假如它們經常有插入和刪除操作就更別這樣作了。對這些插入和刪除操作的索引維護可能比掃描表空間消耗更多的時間。
4. 數據完整性設計(資料庫邏輯設計)
1) 完整性實現機制:
實體完整性:主鍵
參照完整性:
父表中刪除數據:級聯刪除;受限刪除;置空值
父表中插入數據:受限插入;遞歸插入
父表中更新數據:級聯更新;受限更新;置空值
DBMS對參照完整性可以有兩種方法實現:外鍵實現機制(約束規則)和觸發器實現機制
用戶定義完整性:
NOT NULL;CHECK;觸發器
2) 用約束而非商務規則強制數據完整性
採用資料庫系統實現數據的完整性。這不但包括通過標准化實現的完整性而且還包括數據的功能性。在寫數據的時候還可以增加觸發器來保證數據的正確性。不要依賴於商務層保證數據完整性;它不能保證表之間(外鍵)的完整性所以不能強加於其他完整性規則之上。
3) 強制指示完整性
在有害數據進入資料庫之前將其剔除。激活資料庫系統的指示完整性特性。這樣可以保持數據的清潔而能迫使開發人員投入更多的時間處理錯誤條件。
4) 使用查找控制數據完整性
控制數據完整性的最佳方式就是限制用戶的選擇。只要有可能都應該提供給用戶一個清晰的價值列表供其選擇。這樣將減少鍵入代碼的錯誤和誤解同時提供數據的一致性。某些公共數據特別適合查找:國家代碼、狀態代碼等。
5) 採用視圖
為了在資料庫和應用程序代碼之間提供另一層抽象,可以為應用程序建立專門的視圖而不必非要應用程序直接訪問數據表。這樣做還等於在處理資料庫變更時給你提供了更多的自由。
5. 其他設計技巧
1) 避免使用觸發器
觸發器的功能通常可以用其他方式實現。在調試程序時觸發器可能成為干擾。假如你確實需要採用觸發器,你最好集中對它文檔化。
2) 使用常用英語(或者其他任何語言)而不要使用編碼
在創建下拉菜單、列表、報表時最好按照英語名排序。假如需要編碼,可以在編碼旁附上用戶知道的英語。
3) 保存常用信息
讓一個表專門存放一般資料庫信息非常有用。在這個表裡存放資料庫當前版本、最近檢查/修復(對Access)、關聯設計文檔的名稱、客戶等信息。這樣可以實現一種簡單機制跟蹤資料庫,當客戶抱怨他們的資料庫沒有達到希望的要求而與你聯系時,這樣做對非客戶機/伺服器環境特別有用。
4) 包含版本機制
在資料庫中引入版本控制機制來確定使用中的資料庫的版本。時間一長,用戶的需求總是會改變的。最終可能會要求修改資料庫結構。把版本信息直接存放到資料庫中更為方便。
5) 編制文檔
對所有的快捷方式、命名規范、限制和函數都要編制文檔。
採用給表、列、觸發器等加註釋的資料庫工具。對開發、支持和跟蹤修改非常有用。
對資料庫文檔化,或者在資料庫自身的內部或者單獨建立文檔。這樣,當過了一年多時間後再回過頭來做第2 個版本,犯錯的機會將大大減少。
6) 測試、測試、反復測試
建立或者修訂資料庫之後,必須用用戶新輸入的數據測試數據欄位。最重要的是,讓用戶進行測試並且同用戶一道保證選擇的數據類型滿足商業要求。測試需要在把新資料庫投入實際服務之前完成。
7) 檢查設計
在開發期間檢查資料庫設計的常用技術是通過其所支持的應用程序原型檢查資料庫。換句話說,針對每一種最終表達數據的原型應用,保證你檢查了數據模型並且查看如何取出數據。
㈥ 誰能給我一個數據倉庫和數據挖掘案例的詳細設計文檔
最好可以問你們老師,或者去相應的網站上去查找。如果你離畢業還早的話,可以去考資料庫系統工程師。相應的教材和資料都可以買到,而且是國家承認的。不過這只是個證書而已,關鍵的以後還是要實踐。通過准備考試,可以打下扎實的基礎,為以後做准備。
另外,資料庫其實也比較枯燥,如果你有決心的話,還是不錯的工作。關鍵的在學校還是要先打好基礎。
有很多這樣的網站,你可以上網去搜索。如果有相應的輔導班,也可以考慮。
資料庫系統工程師級考試大綱
一、考試說明
1.考試要求
(1)掌握計算機體系結構以及各主要部件的性能和基本工作原理;
(2)掌握操作系統、程序設計語言的基礎知識,了解編譯程序的基本知識;
(3)熟練掌握常用數據結構和常用演算法;
(4)熟悉軟體工程和軟體開發項目管理的基礎知識;
(5)熟悉計算機網路的原理和技術;
(6)掌握資料庫原理及基本理論;
(7)掌握常用的大型資料庫管理系統的應用技術;
(8)掌握資料庫應用系統的設計方法和開發過程;
(9)熟悉資料庫系統的管理和維護方法,了解相關的安全技術;
(10)了解資料庫發展趨勢與新技術;
(11)掌握常用信息技術標准、安全性,以及有關法律、法規的基本知識;
(12)了解信息化、計算機應用的基礎知識;
(13)正確閱讀和理解計算機領域的英文資料。
2. 通過本考試的合格人員能參與應用信息系統的規劃、設計、構建、運行和管理,能按照用戶需求,設計、建立、運行、維護高質量的資料庫和數據倉庫;作為數據管理員管理信息系統中的數據資源,作為資料庫管理員建立和維護核心資料庫;擔任資料庫系統有關的技術支持,同時具備一定的網路結構設計及組網能力;具有工程師的實際工作能力和業務水平,能指導計算機技術與軟體專業助理工程師(或技術員)工作。
3. 本考試設置的科目包括
(1)信息系統知識,考試時間為150分鍾,筆試;
(2)資料庫系統設計與管理,考試時間為150分鍾,筆試。
二、考試范圍
考試科目1:信息系統知識
1. 計算機系統知識
1.1 硬體知識
1.1.1 計算機體系結構和主要部件的基本工作原理
·CPU和存儲器的組成、性能、基本工作原理
·常用I/O設備、通信設備的性能,以及基本工作原理
·I/O介面的功能、類型和特點
·CISC/RISC,流水線操作,多處理機,並行處理
1.1.2 存儲系統
·虛擬存儲器基本工作原理,多級存儲體系
·RAID類型和特性
1.1.3 安全性、可靠性與系統性能評測基礎知識
·診斷與容錯
·系統可靠性分析評價
· 計算機系統性能評測方法
1.2 數據結構與演算法
1.2.1 常用數據結構
·數組(靜態數組、動態數組)
·線性表、鏈表(單向鏈表、雙向鏈表、循環鏈表)
·棧和隊列
·樹(二叉樹、查找樹、平衡樹、遍歷樹、堆)、圖、集合的定義、存儲和操作
·Hash(存儲位置計算、碰撞處理)
1.2.2 常用演算法
·排序演算法、查找演算法、數值計算、字元串處理、數據壓縮演算法、遞歸演算法、圖的相關演算法
·演算法與數據結構的關系,演算法效率,演算法設計,演算法描述(流程圖、偽代碼、決策表),演算法的復雜性
1.3 軟體知識
1.3.1 操作系統知識
·操作系統的類型、特徵、地位、內核(中斷控制)、進程、線程概念
·處理機管理(狀態轉換、同步與互斥、信號燈、分時輪轉、搶占、死鎖)
·存儲管理(主存保護、動態連接分配、分段、分頁、虛存)
·設備管理(I/O控制、假離線、磁碟調度)
·文件管理(文件目錄、文件的結構和組織、存取方法、存取控制、恢復處理、共享和安全)
·作業管理(作業調度、作業控制語言(JCL)、多道程序設計)
·漢字處理,多媒體處理,人機界面
·網路操作系統和嵌入式操作系統基礎知識
·操作系統的配置
1.3.2 程序設計語言和語言處理程序的知識
· 匯編、編譯、解釋系統的基礎知識和基本工作原理
· 程序設計語言的基本成分:數據、運算、控制和傳輸,程序調用的實現機制
· 各類程序設計語言的主要特點和適用情況
1.4 計算機網路知識
·網路體系結構(網路拓撲、OSI/RM、基本的網路協議)
·傳輸介質,傳輸技術,傳輸方法,傳輸控制
·常用網路設備和各類通信設備
·Client/Server結構、Browser/Server結構、Browser/Web/Datebase結構
·LAN拓撲,存取控制,LAN的組網,LAN間連接,LAN-WAN連接
·網際網路基礎知識及應用
·網路軟體
·網路管理
·網路性能分析
·網路有關的法律、法規
2. 資料庫技術
2.1 資料庫技術基礎
2.1.1 資料庫模型
·資料庫系統的三級模式(概念模式、外模式、內模式),兩級映像(概念模式/外模式、外模式/內模式)
·資料庫模型:數據模型的組成要素,概念數據模型ER圖(實體、屬性、關系),邏輯數據模型(關系模型、層次模型、網路模型)
2.1.2 資料庫管理系統的功能和特徵
·主要功能(資料庫定義、資料庫操作、資料庫控制、事務管理、用戶視圖)
·特徵(確保數據獨立性、資料庫存取、同時執行過程、排它控制、故障恢復、安全性、完整性)
·RDB(關系資料庫),OODB(面向對象資料庫),ORDB(對象關系資料庫),NDB(網狀資料庫)
·幾種常用Web資料庫的特點
2.1.3 資料庫系統體系結構
· 集中式資料庫系統
· Client/Server資料庫系統
· 並行資料庫系統
· 分布式資料庫系統
· 對象關系資料庫系統
2.2 數據操作
2.2.1 關系運算
·關系代數運算(並、交、差、笛卡兒積、選擇、投影、連接、除)
·元組演算
·完整性約束
2.2.2 關系資料庫標准語言(SQL)
·SQL的功能與特點
·用SQL進行數據定義(表、視圖、索引、約束)
·用SQL進行數據操作(數據檢索、數據插入/刪除/更新、觸發控制)
·安全性和授權
·程序中的API,嵌入SQL
2.3 資料庫的控制功能
·資料庫事務管理(ACID屬性)
·資料庫備份與恢復技術(UNDO、REDO)
·並發控制
2.4 資料庫設計基礎理論
2.4.1 關系資料庫設計
·函數依賴
·規范化(第一範式、第二範式、第三範式、BC範式、第四範式、第五範式)
·模式分解及分解應遵循的原則
2.4.2 對象關系資料庫設計
·嵌套關系、 復雜類型,繼承與引用類型
·與復雜類型有關的查詢
·SQL中的函數與過程
·對象關系
2.5 數據挖掘和數據倉庫基礎知識
·數據挖掘應用和分類
·關聯規則、聚類
·數據倉庫的成分
·數據倉庫的模式
2.6 多媒體基本知識
2.6.1 多媒體技術基本概念
·多媒體系統基礎知識
·常用多媒體文件格式
2.6.2 多媒體壓縮編碼技術
·多媒體壓縮編碼技術
·統計編碼
·預測編碼
·編碼的國際標准
2.6.3多媒體技術應用
·簡單圖形的繪制,圖像文件的處理方法
·音頻和視頻信息的應用
·多媒體應用開發過程
2.7 系統性能知識
·性能計算(響應時間、吞吐量、周轉時間)
·性能指標和性能設計
·性能測試和性能評估
2.8 計算機應用基礎知識
·信息管理、數據處理、輔助設計、科學計算,人工智慧等基礎知識
·遠程通信服務及相關通信協議基礎知識
3. 系統開發和運行維護知識
3.1 軟體工程、軟體過程改進和軟體開發項目管理知識
·軟體工程知識
·軟體開發生命周期階段目標和任務
·軟體開發項目基礎知識(時間管理、成本管理、質量管理、人力資源管理、風險管理等)及其常用管理工具
·主要的軟體開發方法(生命周期法、原型法、面向對象法、CASE)
·軟體開發工具與環境知識
·軟體質量管理基礎知識
·軟體過程改進基礎知識
·軟體開發過程評估、軟體能力成熟度評估的基礎知識
3.2 系統分析基礎知識
·系統分析的目的和任務
·結構化分析方法(數據流圖(DFD)和數據字典(DD),實體關系圖(ERD),描述加工處理的結構化語言)
·統一建模語言(UML)
·系統規格說明書
3.3 系統設計知識
·系統設計的目的和任務
·結構化設計方法和工具(系統流程圖、HIPO圖、控制流程圖)
·系統總體結構設計(總體布局,設計原則,模塊結構設計,數據存取設計,系統配置方案)
·系統詳細設計(代碼設計、資料庫設計、用戶界面設計、處理過程設計)
·系統設計說明書
3.4 系統實施知識
·系統實施的主要任務
·結構化程序設計、面向對象程序設計、可視化程序設計
·程序設計語言的選擇、程序設計風格
·系統測試的目的、類型,系統測試方法(黑盒測試、白盒測試、灰盒測試)
·測試設計和管理(錯誤曲線、錯誤排除、收斂、注入故障、測試試用例設計、系統測試報告)
·系統轉換基礎知識
3.5 系統運行和維護知識
·系統運行管理知識
·系統維護知識
·系統評價知識
4. 安全性知識
·安全性基本概念(網路安全、操作系統安全、資料庫安全)
·計算機病毒的防治,計算機犯罪的防範,容災
·訪問控制、防闖入、安全管理措施
·加密與解密機制
·風險分析、風險類型、抗風險措施和內部控制
5.標准化知識
·標准化意識,標准化的發展,標准出台過程
·國際標准、國家標准、行業標准、企業標准基本知識
·代碼標准、文件格式標准、安全標准軟體開發規范和文檔標准
·標准化機構
6.信息化基礎知識
·信息化意識
·全球信息化趨勢、國家信息化戰略、企業信息化戰略和策略
·有關的法律、法規
·遠程教育、電子商務、電子政務等基礎知識
·企業信息資源管理基礎知識
7.計算機專業英語
·掌握計算機技術的基本詞彙
·能正確閱讀和理解計算機領域的英文資料
考試科目2:資料庫系統設計與管理
1.資料庫設計
1.1理解系統需求說明
·了解用戶需求、確定系統范圍
·確定應用系統資料庫的各種關系
·現有環境與新系統環境的關系
·新系統中的數據項、數據字典、數據流
1.2 系統開發的准備
·選擇開發方法,准備開發環境,制訂開發計劃
1.3 設計系統功能
·選擇系統機構,設計各子系統的功能和介面,設計安全性策略、需求和實現方法,制定詳細的工作流和數據流
1.4 資料庫設計
1.4.1 設計數據模型
·概念結構設計(設計ER模型)
·邏輯結構設計(轉換成DBMS所能接收的數據模型)
·評審設計
1.4.2 物理結構設計
·設計方法與內容
·存取方法的選擇
·評審設計與性能預測
1.4.3 資料庫實施與維護
·數據載入與應用程序調試
·資料庫試運行
·資料庫運行與維護
1.4.4 資料庫的保護
·資料庫的備份與恢復
·資料庫的安全性
·資料庫的完整性
·資料庫的並發控制
1.5 編寫外部設計文檔
·編寫系統說明書(系統配置圖、各子系統關系圖、系統流程圖,系統功能說明、輸入輸出規格說明、數據規格說明、用戶手冊框架)
·設計系統測試要求
1.6 設計評審
2. 資料庫應用系統設計
2.1 設計資料庫應用系統結構
·信息系統的架構(如Client/Server)與DBMS
·多用戶資料庫環境(文件伺服器體系結構、Client/Server體系結構)
·大規模資料庫和並行計算機體系結構(SMP、MPP)
·中間件角色和相關工具
·按構件分解,確定構件功能規格以及構件之間的介面
2.2 設計輸入輸出
·屏幕界面設計,設計輸入輸出檢查方法和檢查信息
·資料庫交互與連接(掌握C程序設計語言,以及Java、Visual Basic、Visual C++、PowerBuilder、Delphi中任一種開發工具與資料庫互連的方法(如何與資料庫伺服器溝通))
2.3 設計物理數據
·分析事務在資料庫上運行的頻率和性能要求,確定邏輯數據組織方式、存儲介質,設計索引結構和處理方式
·將邏輯數據結構變換成物理數據結構,計算容量(空間代價),確定存取方法(時間效率)、系統配置(維護代價)並進行優化
2.4 設計安全體系
·明確安全等級
·資料庫的登錄方式
·資料庫訪問
·許可(對象許可、命令許可、授權許可的方法)
2.5 應用程序開發
2.5.1 應用程序開發
·選擇應用程序開發平台
·系統實施順序
·框架開發
·基礎小組的程序開發
·源代碼控制
·版本控制
2.5.2 模塊劃分(原則、方法、標准)
2.5.3 編寫程序設計文檔
·模塊規格說明書(功能和介面說明、程序處理邏輯的描述、輸入輸出數據格式的描述)
·測試要求說明書(測試類型和目標,測試用例,測試方法)
2.5.4 程序設計評審
2.6 編寫應用系統設計文檔
·系統配置說明、構件劃分圖、構件間的介面、構件處理說明、屏幕設計文檔、報表設計文檔、程序設計文檔、文件設計文檔、資料庫設計文檔
2.7 設計評審
3. 資料庫應用系統實施
3.1 整個系統的配置與管理
3.2 常用資料庫管理系統的應用(SQL Server、Oracle、Sybase、DB2、Access或Visual Foxpro)
·創建資料庫
·創建表、創建索引、創建視圖、創建約束、創建UDDT(用戶自定義類型)
·創建和管理觸發器
·建立安全體系
3.3 資料庫應用系統安裝
·擬定系統安裝計劃(考慮費用、客戶關系、雇員關系、後勤關系和風險等因素)
·擬定人力資源使用計劃(組織機構安排的合理性)
·直接安裝(安裝新系統並使系統快速進入運行狀態)
·並行安裝(新舊系統並行運行一段時間)
·階段安裝(經過一系列的步驟和階段使新系統各部分逐步投入運行)
3.4 資料庫應用系統測試
·擬定測試目標、計劃、方法與步驟
·數據載入,准備測試數據
·指導應用程序員進行模塊測試進行驗收
·准備系統集成測試環境測試工具
·寫出資料庫運行測試報告
3.5 培訓與用戶支持
4.資料庫系統的運行和管理
4.1 資料庫系統的運行計劃
·運行策略的確定
·確定資料庫系統報警對象和報警方式
·資料庫系統的管理計劃(執行,故障/恢復,安全性,完整性,用戶培訓和維護)
4.2 資料庫系統的運行和維護
·新舊系統的轉換
·收集和分析報警數據(執行報警、故障報警、安全報警)
·連續穩定的運行
·資料庫維護(資料庫重構、安全視圖的評價和驗證、文檔維護)
·資料庫系統的運行統計(收集、分析、提出改進措施)
·關於運行標准和標准改進一致性的建議
·資料庫系統的審計
4.3 資料庫管理
·數據字典和數據倉庫的管理
·數據完整性維護和管理(實體完整性、參照完整性)
·資料庫物理結構的管理(保證數據不推遲訪問)
·資料庫空間及碎片管理
·備份和恢復(順序、日誌(審計痕跡)、檢查點)
·死鎖管理(集中式、分布式)
·並發控制(可串列性、鎖機制、時間戳、優化)
·數據安全性管理(加密、安全、訪問控制、視圖、有效性確認規則)
·資料庫管理員(DBA)職責
4.4 性能調整
·SQL語句的編碼檢驗
·表設計的評價
·索引的改進
·物理分配的改進
·設備增強
·資料庫性能優化
4.5 用戶支持
·用戶培訓
·售後服務
5. SQL
5.1 資料庫語言
·資料庫語言的要素
·資料庫語言的使用方式(互動式和嵌入式)
5.2 SQL概述
·SQL語句的特徵
·SQL語句的基本成分
5.3 資料庫定義
·創建資料庫(Create Datebase)、創建表(Create Table)
·定義數據完整性
·修改表(Alter Table)、刪除表(Drop Table)
·定義索引(Create Index)、刪除索引(Drop Index)
·定義視圖(Create View)、刪除視圖(Drop View)、更新視圖
5.4 數據操作
·Select語句的基本機構
·簡單查詢
·SQL中的選擇、投影
·字元串比較,涉及空值的比較
·日期時間,布爾值,輸出排序
·多表查詢
·避免屬性歧義
·SQL中的連接、並、交、差
·SQL中的元組變數
·子查詢
5.5 完整性控制與安全機制
·主鍵(Primary Key)約束
·外鍵(Foreign Key)約束
·屬性值上的約束(Null、Check、Create Domain)
·全局約束(Create Assertions)
·許可權、授權(Grant)、銷權(Revoke)
5.6 創建觸發器(Create Trigger)
5.7 SQL使用方式
·互動式SQL
·嵌入式SQL
·SQL與宿主語言介面(Declare、共享變數、游標、卷游標)
·動態SQL
·API
5.8 SQL 標准化
6. 網路環境下的資料庫
6.1 分布式資料庫
6.1.1 分布式資料庫的概念
·分布式資料庫的特點與目標
6.1.2 分布式資料庫的體系結構
·分布式資料庫的模式結構
·數據分布的策略(數據分片、分布透明性)
·分布式資料庫管理系統
6.1.3 分布式查詢處理和優化
6.1.4 分布式事務管理
·分布式資料庫的恢復(故障、恢復、2段提交、3段提交)
·分布式資料庫的透明性(局部、分裂、復制、處理、並發、執行)
6.1.5 分布式資料庫系統的應用
6.2 網路環境下資料庫系統的設計與實施
·數據的分布設計
·負載均衡設計
·資料庫互連技術
6.3 面向Web的DBMS技術
·三層體系結構
·動態Web網頁
·ASP、JSP、XML的應用
7.資料庫的安全性
7.1 安全性策略的理解
·資料庫視圖的安全性策略
·數據的安全級別(最重要的、重要的、注意、選擇)
7.2 資料庫安全測量
·用戶訪問控制(採用口令等)
·程序訪問控制(包含在程序中的SQL命令限制)
·表的訪問控制(視圖機制)
·控制訪問的函數和操作
·外部存儲數據的加密與解密
8. 資料庫發展趨勢與新技術
8.1 面向對象資料庫(OODBMS)
8.1.1 OODBMS的特徵
8.1.2 面向對象數據模型
·對象結構、對象類、繼承與多重繼承、對象標識、對象包含、對象嵌套
8.1.3 面向對象資料庫語言
8.1.4 對象關系資料庫系統(ORDBMS)
·嵌套關系
·復雜類型
·繼承、引用類型
·與復雜類型有關的查詢
·函數與過程
·面向對象與對象關系
·ORDBMS應用領域
8.2 企業資源計劃(ERP)和資料庫
8.2.1 ERP概述
·基本MRP(製造資源計劃)、閉環MRP、ERP
·基本原理、發展趨勢
·ERP設計的總體思路(一個中心、兩類業務、三條干線)
8.2.2 ERP與資料庫
·運行資料庫與ERP數據模型之間的關系
·運行資料庫與ERP資料庫之間的關系
8.2.3 案例分析
8.3 決策支持系統的建立
·決策支持系統的概念
·數據倉庫設計
·數據轉移技術
·聯機分析處理(OLAP)技術
·企業決策支持解決方案
·聯機事務處理(OLTP)
㈦ 簡述資料庫應用系統的設計步驟
資料庫設計的基本步驟:
1、系統需求分析與設計。
2、概念結構分析與設計。
3、邏輯結構分析與設計。
4、物理結構分析與設計。
5、系統實施。
6、系統維護。
(7)資料庫介面設計文檔擴展閱讀:
資料庫設計技巧:
1、原始文件與實體的關系
它可以是一對一,一對多,多對多的關系。一般來說,它們是一對一的關系:一個原始文檔只對應於一個實體。在特殊情況下,它們可以是一對多或多對一關系,即一個原始文檔對應於多個實體,或者多個原始文檔對應於一個實體。
這里的實體可以理解為基本表。在對應關系明確後,對輸入介面的設計非常有利。
2、主鍵和外鍵
一般來說,實體不能既沒有主鍵也沒有外鍵。在E-R圖中,葉中的實體可以定義主鍵或不定義主鍵(因為它沒有子代),但它必須有外鍵(因為它有父項)。
主鍵和外鍵的設計在全局資料庫的設計中起著重要的作用。當全球資料庫的設計完成後,一位美國資料庫設計專家說:「鑰匙無處不在,只有鑰匙。」。這是他資料庫設計的經驗,也體現了他對信息系統核心(數據模型)高度抽象的理念。
因為:主鍵是一個高度抽象的實體。主鍵和外鍵的配對表示實體之間的連接。
3、基本表的屬性
基本表不同於中間表和臨時表,因為它具有以下四個特點:
原子性。基本表中的欄位不可分解。
原始主義。基本表中的記錄是原始數據(基本數據)的記錄。
演繹的。所有輸出數據都可以從基本表和代碼表中的數據導出。
穩定。基本表的結構比較穩定,表中的記錄要長期保存。
在了解基本表的性質之後,在設計資料庫時,可以將基本表與中間表和臨時表區分開來。
㈧ 數據介面
系統在運行中將用到大量的數據資料,必須在設計初始就明確各類數據標准以及各子系統的數據介面。根據各子系統設計的數據項需求及產生的成果數據項,確定各項數據的數據表,定義表結構,進行代碼設計,然後由資料庫系統實施,同時形成文檔,作為系統的數據標准,統一執行。
數據的分類、編碼設計、資料庫的設計、地圖制圖、數據錄入和質量檢驗,均遵循國家和行業主管部門的標准、規范、規程;如沒有統一的規范規程,則參照相關的規程進行規范化設計。系統有關的數據定義全部形成文檔,作為技術規范,統一使用。
各子系統在設計時應當明確與相關子系統的數據關系,提出相關子系統必須提交的數據表要求和系統運行過程中的提交時間,對應子系統按照該提交數據要求在系統中進行相應設計和開發,保證數據流動的通暢,這是基於數據的系統集成方案的關鍵,是數據平台介面設計的重要依據。系統間數據關系須形成文檔,作為系統間數據介面標准規范,統一執行。
數據關系與數據標准相輔相成,共同定義了數據平台與各個子系統之間的輸入、輸出介面。在數據介面設計中應重點考慮以下幾個方面:
(1)遙感數據與圖形數據的介面:利用圖形配准技術,予以解決。遙感數據是動態監測專題圖件產生的基礎,必須經過坐標配准,才能產生專題圖件。配准過程由遙感動態監測子系統執行,需要應用綜合資料庫中的地形圖數據。在配准後遙感數據與圖形數據的套合依據空間坐標進行。
(2)空間數據與屬性數據的介面:利用關鍵字建立聯系。在數據建庫過程中依據數據標准有關文檔規定建立圖形庫和屬性庫結構,確定關鍵欄位,同時定義關鍵欄位編碼方案,保證關鍵欄位唯一性。在數據採集過程中對關鍵欄位賦予代碼。系統維護過程中的數據採集也必須依據編碼方案對關鍵欄位賦值。在應用系統中使用時只需建立圖形庫與屬性庫間的關聯即可。
( 3) 子系統之間數據的介面: 各子系統之間數據的交換通過資料庫進行,所以子系統間數據介面本質上是子系統與後台資料庫的介面; 在建立資料庫時,已經由資料庫管理系統依據系統間數據關系建立了介面。
系統內數據關系包括:
數據管理與資料庫子系統接受業務處理與信息服務子系統錄入的有關基礎信息、遙感動態監測子系統輸入的遙感數據及各子系統產生的成果數據,為各子系統提供綜合基礎數據、專題數據和成果數據。
遙感動態監測子系統需要資料庫系統管理的遙感數據、地形圖數據和歷史專題數據。
生態專業分析子系統需要遙感動態監測子系統產生的專題圖件和綜合資料庫中的歷史專題圖件以及屬性資料。
業務處理與信息服務子系統需要資料庫子系統管理的綜合基礎數據和各專業應用子系統產生的成果數據。
㈨ 如何寫詳細設計文檔
在大多數軟體項目中,要末不作詳細設計,要麼開發完成後再補詳細設計文檔,質量也不容樂觀,文檔與系統往往不能同步,使詳細設計文檔完全流於形式,對工作沒有起到實際的幫助。
·
詳細設計是相對概要設計而言的,是瀑布開發流程的一個重要環節,在概要設計的高層設計的基礎上,從邏輯上實現了每一模塊的功能,是編碼階段的主要參考資料,是從高層到低層、逐步精化思想的具體實現。
詳細設計文檔的內容包括各個模塊的演算法設計,
介面設計,
數據結構設計,交互設計等。必須寫清楚各個模塊/介面/公共對象的定義,列明各個模塊程序的
各種執行條件與期望的運行效果,還要正確處理各種可能的異常。
·
在開發過程中,由需求及設計不正確、不完整所導致的問題是項目進度拖延、失敗的一個主要因素,而軟體系統的一個重要特性就是需求和設計的不斷構建和改進,在寫詳細設計文檔過程中,
詳細設計實際上是對系統的一次邏輯構建,可以有效驗證需求的完整性及正確性。
如果不寫詳細設計文檔,一般就從概設直接進入編碼階段,這時開發人員所能參考的資料就是需求規格說明書及頁面原型、資料庫設計等,不能直接進行開發,需要進行信息的溝通,把頁面原型不能體現的設計講清楚,這樣既容易遺忘,也容易發生問題,詳細設計文檔可以作為需求人員、總體設計人員與開發人員的溝通工具,把靜態頁面無法體現的設計體現出來,包含整體設計對模塊設計的規范,體現對設計上的一些決策,例如選用的演算法,對一些關鍵問題的設計考慮等等,使開發人員能快速進入開發,提高溝通效率,減少溝通問題。
對於系統功能的調整,後期的維護,詳設文檔提供了模塊設計上的考慮、決策,包括模塊與整體設計的關系、模塊所引用的資料庫設計、重要操作的處理流程、重要的業務規則實現設計等等信息,提供了對模塊設計的概述性信息,闡明了模塊設計上的決策,配合代碼注釋,可以相對輕松讀懂原有設計。
·存在的問題要由專門的人寫,是比較麻煩的,也是很需要時間的,會對進度造成壓力,也容易形成工作瓶頸,使設計人員負擔過重,而開發人員無事可作。對於現在一般的以資料庫為中心的管理系統而言,這個工作始終是要作的,區別只不過是不是形成專門文檔,形成文檔可能會多花一兩周時間,但相對於規避的風險和問題來說,也是值得的,另外由於現在高級語言的流行,所以更詳細的設計應該直接體現在代碼的設計上,而文檔則只體現設計上的一些決策,協調整體設計與模塊設計的關系,把頁面原型所不能體現的設計情況文檔化,所以所花費的時間是有限的。
設計內容容易過細,但設計階段是不能考慮特別清楚地,時間也不允許。
對於這個問題,一個對策是上邊所提到的,文檔只體現設計上的決策,頁面原型所不能反映的信息,詳細設計只體現總體設計對模塊設計的一些考慮,例如對功能的資料庫設計等等,而具體的實現實現,則到代碼中再去實現,相關的設計也僅體現在代碼中。
需求、設計需要不斷的被更新、構建,則設計文檔需要不斷的重新調整,文檔的維護需要跟上,否則文檔和系統的同步就很難得到保障了,且造成多餘的工作量。文檔的內容易流於形勢,質量糟糕,不能成為開發人員的參考手冊,一是要建立起相關制度,如有修改,先改文檔,後作開發,從工作流程上切實保障文檔與系統的同步,二是要規範文檔質量,對文檔該寫什麼,不該寫什麼,標準是什麼,粒度是什麼,語法應該如何組織,有明確的標准和考慮,同時,建立審計文檔評審、審核制度,充分保障系統的使用。·
首先是文檔的內容,根據項目和團隊的不同,詳細設計文檔的內容也有所不同,一般說來,粒度不宜過細,不能代替開發人員的設計和思考,但要把有關設計的決策考慮進去,包括與其他模塊、整體設計的關系、操作的處理流程,對業務規則的設計考慮等,有一個標准為,凡是頁面原型、需求規格說明書所不能反映的設計決策,而開發人員又需要了解的,都要寫入文檔。
其次是文檔所面向的讀者,主要為模塊開發人員、後期維護人員,模塊開發人員通過詳細設計文檔和頁面原型來了解所開發的功能,後期維護人員通過實際系統、模塊代碼、詳細設計文檔來了解一個功能。
再有就是誰來寫文檔,因為文檔主要考慮的是設計上的決策,所以寫文檔的人應該為負責、參加設計的技術經理、資深程序員,根據團隊情況和項目規模、復雜度的不同,也有所不同。
還需要保證文檔的可讀性、准確性、一致性,要建立嚴格的文檔模板及標准,保證文檔的可讀性及准確性,同時建立審核及設計評審制度,來保障設計及文檔的質量,另外在工作流程中要強調,要先設計、先寫文檔,再進行開發。
㈩ 介面文檔該由誰來寫
介面文檔的話,一般是由文員來寫吧,因為普通的文員就是做的這些工作的,所以說你可以完全交給他,是沒有問題的