『壹』 需求分析具體要怎麼寫要包括哪些內容
方法⑴首先調查組織機構情況 包括了解該組織的部門組成情況,各部門的職能等,為分析信息流程作準備。 ⑵然後調查各部門的業務活動情況 ⑶協助用戶明確對新系統的各種要求 包括信息要求、處理要求、完全性與完整性要求。 ⑷確定新系統的邊界 常用的調查方法有:⑴跟班作業通過親身參加業務工作來了解業務活動的情況。這種方法可以比較准確地理解用戶的需求,但比較耗費時間。 ⑵開調查會通過與用戶座談來了解業務活動情況及用戶需求。座談時,參加者之間可以相互啟發。 ⑶請專人介紹。 ⑷詢問對某些調查中的問題,可以找專人詢問。 ⑸設計調查表請用戶填寫 如果調查表設計得合理,這種方法是很有效,也很易於為用戶接受的。 ⑹查閱記錄即查閱與原系統有關的數據記錄,包括原始單據、賬簿、報表等。 通過調查了解了用戶需求後,還需要進一步分析和表達用戶的需求。 分析和表達用戶需求的方法主要包括自頂向下和自底向上兩類方法。
『貳』 WEB網站的需求分析方案設計
WEB網站的需求分析方案設計?企業網去看看http://www.nneasy.com.cn這個吧!
『叄』 java web的項目需求怎麼寫
目前, 國內外信息化建設已經進入基於Web應用為核心的階段, Java作為應用於網路的最好語言,前景無限看好。然而,就算用Java建造一個不是很煩瑣的web應用,也不是件輕松的事情。概括一下,實施Java的WEB項目需要掌握的技術如下:
lJava語言
l面向對象分析設計思想
l設計模式和框架結構
lXML語言
l網頁腳本語言
l資料庫
l應用伺服器
l集成開發環境
下面我們具體地看每個技術.
1、Java語言
Java語言體系比較龐大,包括多個模塊。從WEB項目應用角度講有JSP、Servlet、JDBC、JavaBean(Application)四部分技術。
(1)、Java Database Connectivity(JDBC)技術
在Java Web應用開發中,資料庫管理系統(RDBMS)的使用是不可缺少的。JDBC(Java Database Connectivity) 是一種用於執行SQL 語句的 Java API。它由一組用 Java 編程語言編寫的類和介面組成。JDBC 為工具/資料庫開發人員提供了一個標準的API,使他們能夠用純Java API 來編寫資料庫應用程序。
簡單地說,JDBC 可做三件事:
l與資料庫建立連接,
l發送SQL 語句,
l處理結果。
(2)、Servlet技術
Servlet是運行在伺服器端的程序,可以被認為是伺服器端的applet。servlet被Web伺服器(例如Tomcat)載入和執行,就如同applet被瀏覽器載入和執行一樣。servlet從客戶端(通過Web伺服器)接收請求,執行某種操作,然後返回結果。
Servlet的主要優點包括
lServlet是持久的。servlet只需Web伺服器載入一次,而且可以在不同請求之間保持服務(例如一次資料庫連接)。
lServlet是與平台無關的。如前所述,servlet是用Java編寫的,它自然也繼承了Java的平台無關性。
lServlet是可擴展的。由於servlet是用Java編寫的,它就具備了Java所能帶來的所有優點。Java是健壯的、面向對象的編程語言,它很容易擴展以適應你的需求。servlet自然也具備了這些特徵。
lServlet是安全的。從外界調用一個servlet的惟一方法就是通過Web伺服器。這提供了高水平的安全性保障,尤其是在你的Web伺服器有防火牆保護的時候。
lServlet可以在多種多樣的客戶機上使用。由於servlet是用Java編寫的,所以你可以很方便地在HTML中使用它們。
(3)、JavaServer Pages(JSP)技術
JSP是從Servlet上分離出來的一小部分,簡化了開發,加強了界面設計。JSP定位在交互網頁的開發。運用Java語法,但功能較Servlet弱了很多,並且高級開發中只充當用戶界面部分。JSP容器收到客戶端發出的請求時,首先執行其中的程序片段,然後將執行結果以HTML格式響應給客戶端。其中程序片段可以是:操作資料庫、重新定向網頁以及發送 E-Mail 等等,這些都是建立動態網站所需要的功能。所有程序操作都在伺服器端執行,網路上傳送給客戶端的僅是得到的結果,與客戶端的瀏覽器無關,因此,JSP 稱為Server-Side Language。
JavaServer Pages的主要優點包括
●一次編寫,各處執行(Write once, Run Anywhere)特性
作為Java 平台的一部分,JavaServer Pages 技術擁有Java語言「一次編寫,各處執行」的特點。隨著越來越多的供貨商將JavaServer Pages 技術添加到他們的產品中,您可以針對自己公司的需求,做出審慎評估後,選擇符合公司成本及規模的伺服器,假若未來的需求有所變更時,更換伺服器平台並不影響之前所投下的成本、人力所開發的應用程序。
● 搭配可重復使用的組件
JavaServer Pages技術可依賴於重復使用跨平台的組件(如:JavaBean或Enterprise JavaBean組件)來執行更復雜的運算、數據處理。開發人員能夠共享開發完成的組件,或者能夠加強這些組件的功能,讓更多用戶或是客戶團體使用。基於善加利用組件的方法,可以加快整體開發過程,也大大降低公司的開發成本和人力。
● 採用標簽化頁面開發
Web 網頁開發人員不一定都是熟悉Java 語言的程序員。因此,JSP 技術能夠將許多功能封裝起來,成為一個自定義的標簽,這些功能是完全根據XML 的標准來制訂的,即JSP 技術中的標簽庫(Tag Library)。因此,Web 頁面開發人員可以運用自定義好的標簽來達成工作需求,而無須再寫復雜的Java 語法,讓Web 頁面開發人員亦能快速開發出一動態內容網頁。
今後,第三方開發人員和其他人員可以為常用功能建立自己的標簽庫,讓Web 網頁開發人員能夠使用熟悉的開發工具,如同HTML 一樣的標簽語法來執行特定功能的工作。
●N-tier 企業應用架構的支持
有鑒於網際網路的發展,為因應未來服務越來越繁雜的要求,且不再受地域的限制,因此,
必須放棄以往Client-Server的Two-tier 架構,進而轉向更具威力、彈性的分散性對象系統。由於JavaServer Page 技術是Java 2 Platform Enterprise Edition (J2EE)集成中的一部分,它主要是負責前端顯示經過復雜運算後之結果內容,而分散性的對象系統則是主要依賴EJB ( Enterprise JavaBean )和JNDI ( Java Naming and Directory Interface )構建而成。
(4)、JavaBean(Application)應用組件技術
Application是Java應用程序,在WEB項目和一些開發中主要應用JavaBean。它就是Application的一部分,邏輯運算能力很強,能極大的發揮Java語言的優點。JavaBean 被稱為是Java 組件技術的核心。JavaBean 的結構必須滿足一定的命名約定。JavaBean能提供常用功能並且可以重復使用,這使得開發人員可以把某些關鍵功能和核心演算法提取出來封裝成為一個組件對象,這樣就增加了代碼的重用率和系統的安全性。
高級的WEB項目會應用到以上所有技術,它們之間聯合使用和協作開發會提高開發的效率和系統的性能。
2、面向對象分析設計思想
Java語言是完全面向對象的語言,所以在項目設計時會有很大的幫助,在設計時應盡量舍棄以往的面向過程的設計方式。
在分析項目業務關系的時候,應用一些UML(Unified Modeling Language)圖,例如常用的用例圖(use case diagram),類圖(class diagram),時序圖(sequence diagram)等等,會有很大的幫助,這樣能盡快找出業務邏輯主要面對的對象,然後對每個對象進行行為劃分,最後再實現對象之間的集成和通信。
3、設計模式和框架結構
Java從語言角度來講不是很難,但是從整體設計角度來講我們還需要了解一些高級應用框架。如果要設計一個良好的框架結構,單單只掌握Java語言遠遠不夠。這就涉及到一個設計模式,還有和設計模式相關的一些知識。
設計模式在Java項目實施過程更是重中之重。主要在與兩層的設計模式、三層的設計模式和N層的設計模式。它直接決定著項目的應用、部署和實際開發設計。
在普通的WEB項目中很多採用兩層的開發結構。JSP+Servlet或JSP+JavaBean。當對開發要求高的項目中使用很多的還是MVC的三層開發結構,也就是JSP+Servlet+JavaBean。它能分有效的分離邏輯開發,使開發人員能專注於各自的開發。同時也能時整個開發結構流程更清晰,但是需要比較高的開發配合度。
在項目中,我們經常使用著名的Model-View-Controller(MVC)架構。MVC架構是隨著smalltalk language語言的發展提出的,它是一個著名的用戶界面設計架構。經典的MVC架構把一個組件(可認為是整個應用程序的一個模塊)劃分成三部分組 Model管理這個模塊中所用到的數據和業務邏輯。而View 管理模塊如何顯示給用戶,Controller 決定如何處理用戶和該模塊互動式時候產生的事件 如用戶點擊一個按鈕等。
4、XML語言
在伺服器和設計模式結構中會應用到自定義文件,而且在應用高級設計時也會定義自用的標簽,現在流行的是用XML去定義配置,所以XML語言應該有一定掌握。
當前,Java 2平台企業版(J2EE)架構在廠商市場和開發者社區中倍受推崇。作為一種工具,可擴展標記語言(XML)簡化了數據交換、進程間消息交換這一類的事情,因而對開發者逐漸變得有吸引力,並開始流行起來。自然,在J2EE架構中訪問或集成XML解決方案的想法也很誘人。因為這將是強大系統架構同高度靈活的數據管理方案的結合。
XML的應用似乎是無窮無盡的,但它們大致上可以分為三大類:
1、簡單數據的表示和交換(針對XML的簡單API(SAX)和文檔對象模型(DOM)語法解析,不同的文檔類型定義(DTDs)和概要(schemas))
2、用戶界面相關、表示相關的上下文(可擴展樣式表語言(XSL),可擴展樣式表語言轉換(XSLT))
3、面向消息的計算(XML-RPC(遠程過程調用),基於SOAP協議的Web 服務(Web Services),電子化業務XML(ebXML))
5、網頁腳本語言
為了提高WEB項目的整體性能,提高人機交互的友好界面,網頁的腳本語言是很有用處的,有的時候可以解決很大的難題或提高程序的性能和應用性。
網頁腳本語言的執行都是在客戶端執行的,速度很很快,並且大多的操作與伺服器沒有交互運算,所以在一些應用中非常理想。在設計WEB項目的應用中,網頁的腳本語言起著不能忽視的作用,所以如果設計WEB項目的應用中,對JavaScript應有一定的了解。
JavaScript是一種基於對象(Object Based)和事件驅動(Event Driven)並具有安全性能(Secure)的腳本語言。使用它的目的是與HTML超文本標記語言、Java 腳本語言(Java小程序)一起實現在一個Web頁面中鏈接多個對象,與Web客戶交互作用。從而可以開發客戶端的應用程序等。它是通過嵌入或調入在標準的HTML語言中實現的。它具有以下幾個基本特點:
1.它是一種腳本編寫語言
JavaScript是一種腳本語言,它採用小程序段的方式實現編程。像其它腳本語言一樣,JavaScript同樣已是一種解釋性語言,它提供了一個易的開發過程。
它的基本結構形式與C、C++、VB十分類似。但它不像這些語言一樣,需要先編譯,而是在程序運行過程中被逐行地解釋。它與HTML標識結合在一起,從而方便用戶的使用操作。
2.基於對象的語言。
JavaScript是一種基於對象的語言,同時以可以看作一種面向對象的。這意味著它能運用自己已經創建的對象。因此,許多功能可以來自於腳本環境中對象的方法與腳本的相互作用。
3.簡單性
JavaScript的簡單性主要體現在:首先它是一種基於Java基本語句和控制流之上的簡單而緊湊的設計, 從而對於學習Java是一種非常好的過渡。其次它的變數類型是採用弱類型,並未使用嚴格的數據類型。
4.安全性
JavaScript是一種安全性語言,它不允許訪問本地的硬碟,並不能將數據存入到伺服器上,不允許對網路文檔進行修改和刪除,只能通過瀏覽器實現信息瀏覽或動態交互。從而有效地防止數據的丟失。
5. 動態性
JavaScript是動態的,它可以直接對用戶或客戶輸入做出響應,無須經過Web服務程序。它對用戶的響應,是採用以事件驅動的方式進行的。所謂事件驅動,就是指在主頁(Home Page)中執行了某種操作所產生的動作,就稱為「事件」(Event)。比如按下滑鼠、移動窗口、選擇菜單等都可以視為事件。當事件發生後,可能會引起相應的事件響應。
6、開發工具
(1)、資料庫
在主要的應用中,資料庫相關的環節應用很多,所以對資料庫應該有一定了解。不能單單只了解一種資料庫,因為在很多實際開發中會提出很多資料庫解決方案,所以只有在了解多種資料庫的情況下才能有一個比較方案。
對於資料庫應該了解他的性能和一些基本的操作常識,還有該資料庫的特點。而針對與Java語言WEB項目的資料庫開發則主要是對JDBC的應用,還有資料庫事務處理和連接池等高級概念的應用。
(2)、Web伺服器
同資料庫一樣,應該了解該伺服器的性能,特點和一些常識。
在應用方面,Web伺服器主要是針對於配置和部署,對目錄的配置,調試;對配置文件屬性的修改;對訪問許可權和並發性的控制;Java類的部署等。
(3)、集成開發環境(IDE):
「公欲善其事, 必先利其器」. 對於Web應用開發人員來講,好的集成開發環境(IDE:Integrated Development Enviroment)是非常重要的。目前在市場上佔主導位置的一個集成開發工具就是Eclipse.
『肆』 網頁設計與製作的"需求分析"怎麼寫
1. 引言
1.1 編寫目的
1.2 軟體的作用范圍
1.3 定義與縮寫
1.4 參考資料
2. 一般性描述
2.1 軟體與其環境之間的關系
2.2 軟體功能
2.3 用戶特徵
2.4 限制與約束
2.5 假設與前提
3. 特殊需求
3.1 功能與行為需求
3.1.1用戶登陸與注冊
3.1.2用戶查詢圖書
3.1.3用戶按照銷售排行瀏覽圖書
3.1.4用戶按照圖書分類瀏覽圖書
3.1.5用戶按照精品推薦瀏覽圖書
3.1.6用戶訂購圖書
3.1.7用戶查詢本次訂單
3.1.8用戶取消本次訂單
3.1.9用戶查詢、修改 個人信息
3.1.10用戶可以查看幫助信息
3.1.11錄入書籍和相關信息
3.1.12更新圖書信息
3.1.13刪除圖書
3.1.14處理用戶購書訂單
3.1.15取消用戶訂單
3.1.16銷售統計
3.1.17用戶反饋信息留言板
3.1.18處理用戶信息反饋
3.1.19統計注冊用戶信息
3.2外部界面需求
3.2.1用戶界面
3.2.2硬體界面
3.2.3軟體界面
3.3性能需求
3.3.1網上書店運行要穩定
3.3.2處理用戶訂單和反饋意見要及時
3.3.3網上書店要盡可能的吸引用戶注冊並多購書
3.4設計約束
3.4.1標准化約束
3.4.2硬體約束
3.4.3軟體約束
3.5屬性
3.5.1可修改性
3.5.2有效性
3.5.3可移植性
3.5.4可理解性
3.5.5可維護性
3.5.6可互操作性
3.5.7可重用性
3.5.8可追蹤性
3.6其他需求
3.6.1開發工具需求
3.6.2用戶操作需求
3.6.3工作場地需求
『伍』 產品設計中用戶調研的主要內容是什麼
針對消費者做以下調研內容:
1、產品樣品測試
許多大型跨國企業集團往往需要將其生產和研發的成熟產品打入另外一些國家的市場,在未知這些國家對這些產品市場反映的情況下,需要進行先期的產品測試工作。通常,測試工作是對產品樣板及其產品概念共同進行的,並可達到如下測試目標:了解產品與概念是否吻合;尋找產品賣點;測量產品的吸引力;估計對產品的購買意向。
2、口味/形態測試 這是產品屬性測試的一種。對於食品、飲料、保健品等產品來說、口味測試是必要的(有時形態測試也很重要,如葯品的劑型測試等),而一些日常用品,形態測試是必要的。通常口味 / 形態測試一般採用比較的方法,比較幾種被測試產品的口味 / 形態,從中確定最佳口味 / 形態,為產品的最終上市提供決策依據。 除了口味測試以外,還可以進行尺寸測試、顏色測試、材料測試、味道測試等。
3、產品包裝測試 包裝是產品重要屬性之一。產品的包裝除了具有保護產品、攜帶便利的功能外,新穎的包裝還具有吸引消費者、提升產品形象和發布廣告信息等營銷輔助作用。包裝可以通過形狀、色彩、文字說明、插圖等提高視覺作用,向消費者傳遞產品(品牌)信息,引起消費者的注意,激發消費者購買慾望。 對新產品上市或者老產品變換包裝時,通常需要在目標消費者中進行效果測試。測試的要點包括:包裝是否能夠清楚的傳送產品(品牌)所具有的特點和所提供的主要利益點;消費者是否能夠被包裝吸引而促使消費者購買;包裝能否強化產品(品牌)在目標消費群心目中的形象;以及不同包裝方案對價格的影響。測試的最終結果可以幫助企業在產品上市前尋找出最佳包裝方案。蓋洛特,用數據說話、用事實證明。
『陸』 網站設計需求分析怎麼寫
1)繪制關聯圖:繪制系統關聯圖是用於定義系統與系統外部實體間的界限和介面的簡單模型。同時它也明確了通過介面的信息流和物質流。
2)創建開發原型:創建用戶介面原型當開發人員或用戶不能確定需求時,開發一個用戶介面原型,這樣使得許多概念和可能發生的事更為直觀明了。用戶通過評價原型將使項目參與者能更好地相互理解所要解決的問題。注意要找出需求文檔與原型之間所有的沖突之處。
3)分析可行性:分析需求可行性在允許的成本、性能要求下,分析每項需求實施的可行性,明確與每項需求實現相聯系的風險,包括與其它需求的沖突,對外界因素的依賴和技術障礙。
4)確定需求優先順序:確定軟體工程需求的優先順序別應用分析方法來確定使用實例、產品特性或單項需求實現的優先順序別。以優先順序為基礎確定產品版本將包括哪些特性或哪類需求。當允許需求變更時,在特定的版本中加入每一項變更,並在那個版本計劃中作出需要的變更。
5)為需求建立模型:為需求建立模型需求的圖形分析模型是軟體需求規格說明極好的補充說明。它們能提供不同的信息與關系以有助於找到不正確的、不一致的、遺漏的和冗餘的需求。這樣的模型包括數據流圖、實體關系圖、狀態變換圖、對話框圖、對象類及交互作用圖。
6)編寫數據字典:創建數據字典數據字典是對系統用到的所有數據項和結構的定義,以確保開發人員使用統一的數據定義。在需求階段,數據字典至少應定義客戶數據項以確保客戶與開發小組是使用一致的定義和術語。分析和設計工具通常包括數據字典組件。
7)應用質量功能調配:使用質量功能調配質量功能調配是一種高級系統技術,它將產品特性、屬性與對客戶的重要性聯系起來。該技術提供了一種分析方法以明確那些是客戶最為關注的特性。它將需求分為三類:期望需求,即客戶或許並未提及,但如若缺少會讓他們感到不滿意;普通需求;興奮需求,即實現了會給客戶帶去驚喜,但若未實現也不會受到責備。
『柒』 怎麼寫需求分析
一、需求分析的目的
需求分析是一項軟體工程的活動,其目的包括以下幾點:
完整地獲取用戶要求,清楚地理解索要解決的問題;
描述清楚軟體的功能和性能;
指明軟體與其他系統元素的介面;
建立軟體必須滿足的約束(如運行環境等)。
二、需求分析的任務
需求分析是研究用戶要求,以得到目標系統的需求定義的過程。需求分析的基本任務是軟體開發人員和用戶一起完全弄清用戶對系統的確切要求。具體步驟包括下面幾點。
1. 需求獲取
調查研究的方法有訪談、分發調查表或開會等。
(1)訪談 :正式訪談和非正式訪談 。
(2)分發調查表:調查表中列出需要的內容,讓用戶書面回答問題。
(3)開會 :可採用開會-討論-確認的方法進行調查。
2. 需求建模
需求分析建立起來的模型為日後的軟體設計提供了可被翻譯成數據、體系結構、介面和處理過程設計的模型。
2.1軟體需求的層次
1).業務需求(business requirement)反映了組織機構或客戶對系統、產品高層次的目標要求,它們在項目視圖與范圍文檔中予以說明。
2).用戶需求(user requirement) 文檔描述了用戶使用產品必須要完成的任務,這在使用實例(usecase)文檔或方案腳本說明中予以說明。
3).功能需求(functional requirement) 定義了開發人員必須實現的軟體功能,使得用戶能完成他們的任務,從而滿足了業務需求
『捌』 求一篇基於web的資料庫設計社會實踐調查報告
《基於web的資料庫設計實踐》
The Database Design Based On WEB Used In Remote Concurrent Design
Abstract: the paper analyses the database characteristics used in the remote concurrent proct design system based on Internet, deeply researches the database structure, interface and the method of the data safety.
Keywords: Internet, remote concurrent design, database based on Web
近年來,隨著Web技術的蓬勃發展,人們已不滿足於只在瀏覽器上獲取靜態的信息,想要通過它發表意見、查詢數據。隨著電子商務的普及人們開始參與一些網路商務活動,這就迫切需要實現Web與資料庫的互連[1]。產品異地並行設計對數據的要求有一定的特殊性,主要有(1)產品數據多種多樣。產品設計,特別是機械產品設計常常是大型而又復雜,在異地通過不同的設計小組,按不同的分工設計同一產品,所要管理和通訊的數據類型隨著分工的不同而有不同的表現形式,如常規的數字組成的數據集,以圖形、圖象形式表達的產品模型數據,以文字形式描述設計的文檔,還有圖表、公式等形式,復雜多樣。(2)產品數據交換頻繁,流量大。產品設計是一個協同工作的創造性集體智慧凝聚的過程,要使設計順利進行,分布在異地的不同設計小組之間就要經常性地進行數據交換,並且有些形式表達的產品數據是較大的文件。(3)產品數據的一致性要求高。分工合作的不同設計小組之間的設計任務是彼此關聯,互相依賴的。如果其中一個數據改變了,相關聯的數據必須跟著改變,在Web資料庫設計時必須考慮數據的一致性問題。(4)產品數據的並發性訪問頻繁。由於異地產品設計的特殊屬性,數據的並發性訪問非常頻繁。所以,進行基於Internet的產品異地並行設計的Web資料庫設計與一般的電子商務不同,要充分考慮以上屬性。本文結合我們近期開發的機械產品異地並行設計系統(RCDS, Remote Concurrent Design System),綜合比較了多種當今流行的網路數據存取技術,設計出可靠安全的資料庫系統。
1 Web資料庫連接方案
1.1資料庫連接方案選擇
RDO、DAO和ADO是比較常見的Web資料庫訪問技術。
DAO (Data Access Objects) 數據訪問對象是第一個面向對象的介面,它含有 Microsoft Jet 資料庫引擎(由 Microsoft Access 所使用),並允許 Visual Basic 開發者通過 ODBC 象連接到其他資料庫一樣,直接訪問到 Access 表。DAO 最適用於單系統應用程序或小范圍本地分布使用,對大范圍的異地並行設計顯得功能不夠強大。
RDO (Remote Data Objects) 遠程數據對象是一個到 ODBC 的、面向對象的數據訪問介面,它同易於使用的 DAO style組合在一起,提供了一個介面,形式上展示出所有 ODBC 的底層功能和靈活性。RDO 在訪問 Jet 或 ISAM 資料庫方面有一定的限制,而且它只能通過現存的 ODBC 驅動程序來訪問關系資料庫。但是,RDO 已被證明是許多 SQL Server、Oracle
以及其他大型關系資料庫開發者經常選用的最佳介面。RDO 提供了用來訪問存儲過程和復雜結果集的更多和更復雜的對象、屬性,以及方法。對異地並行設計Web資料庫來說也不是十分理想。
ADO(ActiveX Data Objects)為ActiveX組件中資料庫訪問組件,ASP就是通過它實現對資料庫的訪問。ADO 是 DAO、RDO 的後繼產物。ADO 2.0在功能上與 RDO 更相似,而且一般來說,在這兩種模型之間有一種相似的映射關系。ADO 「擴展」了 DAO 和 RDO 所使用的對象模型,這意味著它包含較少的對象、更多的屬性、方法(和參數),以及事件。例如,ADO 沒有與 rdoEngine 和 rdoEnvironment 對象相等同的對象,可以包含 ODBC 驅動程序管理器和 hEnv 介面。盡管事實上介面可能是通過 ODBC OLE DB 服務提供程序實現的,但目前也不能從 ADO 中創建 ODBC 數據源。ADO 是為 Microsoft最新和最強大的數據訪問範例 OLE DB 而設計的,是一個便於使用的應用程序層介面。OLE DB 為任何數據源提供了高性能的訪問,這些數據源包括關系和非關系資料庫、電子郵件和文件系統、文本和圖形、自定義業務對象等等。ADO 在關鍵的 Internet 方案中使用最少的網路流量,並且在前端和數據源之間使用最少的層數,所有這些都是為了提供輕量、高性能的介面。同時 ADO 使用了與 DAO和 RDO相似的約定和特性,簡化的語義使它更易於學習。
ADO最早是在IIS中引入的,主要用於ASP,用ADO可以使伺服器端的腳本通過ODBC存取和操縱資料庫伺服器的數據。使用ADO的對象可以建立和管理資料庫的連接,從資料庫伺服器請求和獲取數據,執行更新、刪除、添加數據、獲取ODBC的錯誤信息等。ADO是ASP方案中最具吸引力的資料庫連接控制項,它為用戶提供了連接任何兼容ODBC的資料庫以及創建全功能資料庫應用程序的能力。
ADO具有簡單易用、高速、佔用資源少等的優點。不同於DAO和RDO,ADO有著更高的執行效率。ADO 對象模型如圖1a所示。每個 Connection、Command、Recordset 和 Field 對象都有 Properties 集合,如圖1b所示。
a) b)
圖1 ADO對象模型及屬性
應該說,ADO是微軟的下一代資料庫連接技術,用來全面取代RDO和DAO的數據訪問工具。從發展趨勢來看,ADO今後將逐步替代老的DAO特別是RDO數據訪問介面,成為新的遠程數據訪問方法。所以,選擇ADO作為產品異地並行設計的Web資料庫介面技術是合適的。
1.2 ADO應用分析
ADO 並不是自動和現存的數據訪問應用程序代碼兼容的。當 ADO 封裝 DAO 和 RDO 的功能性的時候,必須將許多語言要素轉換為 ADO 語法。在某些情況下,這將意味著要對現存代碼的某些功能做一個簡單轉換。在其他情況下,最佳的做法可能是用 ADO 的新功能重寫該應用程序。
包含在 DAO 和 RDO 模型中的許多功能被合並為單個對象,這樣就生成了一個簡單得多的對象模型。然而,由於這個原因,起初可能會覺得找到合適的 ADO 對象、集合、屬性、方法,或事件非常困難。與 DAO 和 RDO不同的是,盡管 ADO 對象是分層結構的,但在分層結構范圍之外也是可以創建的。同時,也應當注意,ADO 當前並不支持 DAO 的所有功能。ADO 主要包括 RDO 風格的功能性,以便和 OLE DB 數據源交互,另外還包括遠程和 DHTML 技術。
一般說來,在 ADO 的演化過程中,馬上把大多數 DAO 應用程序(except possibly是那些使用 ODBCDirect 的應用程序)移植到 ADO 上為時太早,因為當前的 ADO 並不支持數據定義 (DDL)、用戶、組等等。不過,如果只將 DAO 用於客戶—伺服器應用程序,並不依賴於 Jet 資料庫引擎或不使用 DDL,那麼就可能移植到 ADO。最終,Microsoft 將提供一個 ADO DDL 組件來幫助進行 DAO 到 ADO 的移植,並為 OLE DB 供應商提供一般的 DDL 支持。
在ASP中使用ADO技術來訪問Web資料庫,其應用前景是無可估量的。原理圖如下:
圖2 ADO在ASP程序中的應用
2 Web資料庫管理系統
常見的資料庫類型有面向對象的資料庫(OODB)和關系型資料庫。OODB對主流資料庫應用開發來說是相當新穎的,使用OODB使應用程序中的數據對象與現實世界中的對象一一對應,面向對象資料庫擴充了對象模型。一個常用的對象模型是由對象資料庫管理組(ODMG)開發出來,具有比傳統的關系資料庫更優越的性能,但畢竟在目前還是一種探索階段,暫時還未有相應的技術普及。
關系資料庫已經是資料庫體系的世界標准。當開發一個數據驅動應用程序時,大多數情況下用戶需要訪問網路(如Internet、Intranet等)上的數據信息,就RCDS就是建立在網路的信息通訊之上,是完全的客戶機/伺服器應用程序。
SQL Server是一個可縮放、高性能的關系型資料庫管理系統(RDBMS),它的設計是為了滿足分布式客戶/伺服器計算的需要,允許客戶應用程序使用幾個特定的工具和技術控制從伺服器檢索的數據。這些包括觸發器、存儲過程和規則的選項。因此,系統採用MS SQL Server7.0作為後台資料庫。
3 Web資料庫結構
數據模型通常有層次模型、網狀模型、關系模型及OO(面向對象)模型等。其中關系模型是建立在數學概念基礎之上的一種模型,由若干個關系框架組成的集合,它也是到目前為止最為成熟的一種資料庫類型。本文RCDS採用MS SQL Server作為後台資料庫,根據資料庫工具和資料庫特點,開發出一套可靠健壯的數據存儲方案。
整個資料庫共有AdminData、ChatNames、DesignUnits、Message、OnlineUnits、Procts、RqtTasks、RqtTaskUnits、RqtDesignUnits、ShareData、Tasks、TaskUnits和UploadFiles等表格。在建立數據模型的時候首先考慮是要避免重復數據,也就是建立規范化資料庫。規范化資料庫可以通過被稱為範式水平的指標來衡量,級別有第一範式、第二範式和第三範式,通常第三範式就是要達到的目標,因為它提供了數據冗餘和開發簡易性之間的最好折衷。
RCDS資料庫正是按照第三範式標准來設計的,它保證了模型的精簡和表格的緊湊性。而第三範式標准也最大發揮了關系資料庫的優勢,圖3是部分表格的視圖鏈接情況。
圖3 關系表格視圖
4.1 並發控制的處理
在多個用戶同時訪問一個資料庫時就產生並發問題,特別是在其中一些用戶對資料庫有添加或刪除修改等操作時,那麼其他所獲得的數據可能是一塌糊塗,甚至造成整個數據訪問的沖突、終止,從而使系統發生混亂以至崩潰。RCDS採用的解決辦法是鎖定技術,總體上分為共享鎖定和排它鎖定兩種類型(如圖4)。前者是指同時有幾個過程共享一個鎖定,比如一個用戶(或客戶)正在讀取一個數據,雖然在這之前他已經對該數據設置了鎖(LOCK),但其他用戶同樣可以(也只能是)讀取它。而排他鎖定一般應用於對數據進行修改或更新(包括添加刪除等)操作,即是用戶在修改一個數據之前設置了鎖定,在一定的時間里其他用戶是不能訪問到該數據的,只有等待鎖定解除(UNLOCK)才能進行訪問到它,當然在計算機處理的時候,其他的用戶一般是感覺不到有這個等待時間的。通過這樣的處理,就保證了數據的一致性。
a) 共享鎖定
b) 排它鎖定
圖4 安全鎖定類型
在ADO進行資料庫操作時,它的鎖定類型相對來說復雜一些。打開記錄集時,可以指定鎖定類型。鎖定類型決定了當不止一個用戶同時試圖改變一個記錄時,資料庫應如何處理。ADO中的鎖定主要有以下四種類型:
l AdLockReadOnly 指定你不能修改記錄集中的記錄
l AdLockPessimistic 指定在編輯一個記錄時,立即鎖定它
l AdLockOptimstic 指定只有調用記錄集的Update方法時,才鎖定記錄
l AdLockBatchOptimstic 指定記錄只能成批地更新
在預設情況下,記錄集使用只讀鎖定。要指定不同的鎖定類型,可以在打開記錄集時包含這些鎖定常量之一。部分代碼如下:
… …
Set MyConn=Sever.CreateObject(「ADODB.Connection」)
//定義資料庫連接MyConn
Set RS=Sever.CreateObject(「ADODB.RecordSet」)
//定義返回數據記錄集
MyConn.Open 「ByktDB.dsn」//建立應用程序與數據源的連接
RS.Open 「SELECT * FROM Mytable」, MyConn, adOpenDynamic, adLockPessimistic
//進行資料庫操作,並且設置鎖定
RS.Close
MyConn.Close
… …
4.2產品數據一致性處理
數據的安全因素除了前面所提到的並行控制之外,還要考慮事務處理。網路資料庫有其不同的地方,例如:假設某個時間有一個設計人員在你的站點上索取一些設計信息,有關的設計信息存儲在兩個表中。一個表用來保存該設計者的信息,另一個表包含了要索取的設計信息。該設計人員的信息已經輸入了第一個表中。但是,就在這時,發生了意外情況,一道閃電擊中了你的伺服器,使第二個表沒有被更新。在這種情況下,一個健壯的系統就必須保證最後的結果是兩個表都沒有被更新過。這時候事務處理就發揮了重要的功效。
使用事務處理,你可以防止第二個表沒有被更新而第一個表被更新的情況出現:當一組語句構成一個事務處理時,如果一個語句沒有執行成功,則所有的語句都不成功。不管是針對多個表,還是進行表內多個記錄的操作,它們所需要的安全保證是一樣的。事務處理的實現代碼如下:
… …
Set MyConn=Sever.CreateObject(「ADODB.Connection」)
MyConn.Open 「ByktDB.dsn」
MyConn.BeginTrans //事務處理開始
MyConn.Execute 「INSERT DataTable(Num) Values(『3628』)」
MyConn.Execute 「INSERT Shipping (Address) VALUES(『Paris,France』)」
MyConn.CommitTrans //事務處理結束
MyConn.Close
… …
在上面這段代碼中,用BeginTrans方法和CommitTrans方法來標記事務處理的開始和結束。在BeginTrans方法被調用之後,CommitTRans方法被調用之前,不管出現什麼錯誤,兩個表都不會被更新,在這個過程中所有處理的數據都保持了完全可靠的一致性。