国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

ASPNETDB的理論分析與開發(fā)實踐

2014-09-25 10:20:20聞怡
電子設計工程 2014年17期
關鍵詞:范式基礎數(shù)據(jù)庫

聞怡

(長安大學 信息學院,陜西 西安710064)

ASPNETDB的理論分析與開發(fā)實踐

聞怡

(長安大學 信息學院,陜西 西安710064)

文中從理論方面論述了ASPNETDB的基本原理,基本結構,論述了以面向對象及軟件工程思想,快速高效開發(fā)應用軟件的基本思路,論述了后臺數(shù)據(jù)庫與前臺工作界面的關系與工作原理,論述了數(shù)據(jù)庫模板的擴展,數(shù)據(jù)模式的規(guī)范化與數(shù)學基礎,并從開發(fā)實踐方面實現(xiàn)了ASPNET的具體應用。

ASPPNETDB;關系模式;范式;關系表;注冊;數(shù)據(jù)完整性

目前軟件開發(fā)已經(jīng)告別了傳統(tǒng)的手工勞動階段,進入了工業(yè)化、組件化、分工協(xié)作、團隊化作業(yè)的時代,在這個過程中技術人員經(jīng)過了不斷嘗試和大量探索,但是在軟件開發(fā)的工業(yè)化道路上還有許多亟待解決的問題,一是程序開發(fā)人員成長不規(guī)范,沒有嚴格按軟件工程思想進行塑造;二是協(xié)作精神不強,自我為中心現(xiàn)象比較嚴重,致使軟件結合不嚴,兼容性較差;三是更有一些老的程序員、系統(tǒng)分析員還有較濃的傳統(tǒng)觀念習慣于個人手工作坊式開發(fā)等一些問題。為此,本文通過分析一個通用低層子系統(tǒng),并結合開發(fā)實踐,再次提出軟件工程的思想,向讀者展示出軟件快速開發(fā)的組件技術、模塊化思想和分工協(xié)作理念。

1 快速開發(fā)

隨著計算機技術廣泛應用到社會生活的各個領域,使得軟件開發(fā)需求持續(xù)攀升,已然不是一個手工個體的勞動,而是一個團隊作業(yè)的、相互協(xié)作的集體的創(chuàng)造性勞動,因此快速開發(fā)、提高效率是一個亟待解決的問題。如何達到此目的,當然面向對象的思想,軟件工程的思想是基本的、必需的,可是這些概念有時比較務虛,在Microsoft的ASP.NET中已經(jīng)按工程化思想提供了一個基礎架構,目的是讓用戶高效開發(fā),但是很多開發(fā)人員還是撇開這樣一個好的架構,從零開始,又回到了手工作坊式開發(fā)的原始階段,那么,如何才能將軟件工程思想具體化,本文就以Microsoft公司的ASP.Net開發(fā)平臺提供的ASPNETDB為基礎,論述如何具體高效開發(fā)應用軟件的基本思路與具體方法。

2 ASPNETDB的理論基礎

Microsoft Asp.net為了使用戶能按照軟件工程的思想高效開發(fā)應用軟件,提供了一個基礎架構,其架構的低層設計了一個完整通用的數(shù)據(jù)庫系統(tǒng)。

2.1 嚴格的數(shù)學基礎

為適應大多數(shù)應用的通用需求,該數(shù)據(jù)庫對用戶數(shù)據(jù)的笛卡爾乘積作了具體分析,形成了十一張數(shù)據(jù)庫表,每張表都是一個元組的集合,都可以進行關系代數(shù)的并、交、差、連接、投影、選擇等基本運算。同時,每張表的列屬性都是不可再分的原子型數(shù)據(jù),因此都符合第一范式,即1NF,并且,每張表中的非主列屬性都依賴與該表主屬性,因此都符合第二范式,即2NF,最后,每張表中的非主列屬性集都無傳遞依賴于主屬性,因此都符合第三范式,即3NF。如圖1是從十一張表中隨意取出的一張表,可以看到,各個列屬性均是符合三大范式的。其它十張表也都符合三大范式,因此,這十一張表內及表間都可以進行嚴格的關系代數(shù)的各種運算。

表間還建立了關系模型,有一對一關系,例如aspnet_Users與aspnet_Membership之間的關系,一對多關系,例如aspnet_Paths與aspnet_Applications之間的關系,多對多關系,例如aspnet_Users與aspnet_UserInRoles與aspnet_Roles之間的關系。

圖1 用戶表Fig.1 User table

2.2 ASPNETDB的基本結構

數(shù)據(jù)庫共有十一張表,七十七個字段,表間關系如圖2所示。

圖2 表間關系Fig.2 Realation tables

上圖是整個數(shù)據(jù)庫的全貌,這個數(shù)據(jù)庫適應了百分之九十以上的應用需求,開發(fā)人員可以在上述基礎上根據(jù)自己應用的需求進行定制、擴充。本文不可能論述該數(shù)據(jù)庫的所有方面,只將其主要方面的應用進行剖析,以期解決讀者所需。

3 用戶表與用戶登錄及注冊

如圖1是用戶表結構,該表是應用的基礎,幾乎所有的應用軟件、網(wǎng)站系統(tǒng)都要用到用戶表,用戶登錄也是基本功能,為了規(guī)范開發(fā)者行為,提高開發(fā)效率,Asp.net以面向對象的方法,提供了登錄組件如圖3所示,配合數(shù)據(jù)庫實體完成登錄功能,具體實現(xiàn)過程如下:aspnet_Users中存有用戶信息,搜集用戶輸入后比對正確與否,給出是否可以登錄的功能實現(xiàn),但是這個過程不需要用戶寫一句代碼就可以輕松實現(xiàn),高效完成。

用戶注冊相對復雜,收集用戶輸入后,存入相應數(shù)據(jù)庫表中,如圖4所示,用戶名存入aspnet_Users表中,電子郵件存、密碼和確認密碼都存入aspnet_Membership表中,在創(chuàng)建用戶時,還會生成一些后臺信息存入十一張表的相應表中,參考圖2。這個過程首先要對用戶數(shù)據(jù)和生成的后臺數(shù)據(jù)進行分析,以表間關系為紐帶,把不同的數(shù)據(jù)按照一定的規(guī)則存入數(shù)據(jù)庫相應的表中,但是這個過程也不需要用戶寫一句代碼,就可輕松、高效完成。

圖3 用戶登錄Fig.3 User login

圖4 新建用戶Fig.4 New user

4 關鍵表的結構與分析

ASPNETDB數(shù)據(jù)庫有四張表是與應用問題緊密相關的,其完整的結構形式如圖5所示。Aspnet_Users是用戶信息表,aspnet_Membership是成員信息表,aspnet_Roles是角色信息表,aspnet_UsersInRoles是用戶與角色關系表,首先四張表都符合第2.1節(jié)所論述的理論理論基礎,其次Aspnet_Users表與aspnet_Membership是一對一關系,這樣我們可以把這兩張表理解為一張大表,從表結構內容來看,已經(jīng)涵蓋了用戶信息的較全面的內容,諸如用記標識、用戶姓名、移動電話、用戶郵箱,用戶密碼及確認密碼、密碼問題、問題答案、創(chuàng)建日期、用戶說明等等,不一一嗦述。但是如圖4所示,默認創(chuàng)建創(chuàng)建用戶組件只使用了其中的四項內容,這時有許多開發(fā)者由于沒有搞清楚數(shù)據(jù)庫結構,及后臺數(shù)據(jù)庫與界面組件之間的對應關系,認為Asp.net提供的模板不全,要么撇開基礎模板從零開始做起,要么自己另寫數(shù)據(jù)提供程序,所有這些做法都沒有從軟件工程的角度去繼承事先提供的高效模板,沒有以面向對象的思想去使用或徹底使用組件來開發(fā)應用軟件,而是以傳統(tǒng)的面向過程的思想,以手工的方式從零或部分從零開始,逐句開發(fā)。

圖5 表結構Fig.5 Table structure

如圖 5 中 Aspnet_Users,aspnet_UsersInRoles,asnet_Roles這三張表描述了用戶與角色之間的關系,以aspnet_UsersIn-Roles為中間關系表,決定了一個用戶可以有若干種角色,一個角色也可以適用于多個用戶這樣的關系。當我們使用這個基礎結構時,便可以很方便地把某個用戶與某種資源之間的權限關系進行設置,使用的是網(wǎng)站管理工具,如圖6所示。不用寫一行代碼即可完成用戶的權限分配,否則,也得以手工的方式,以傳統(tǒng)的面向過程的思想,逐句開發(fā)。不但不夠規(guī)范,而且使軟件的健壯性很弱,開發(fā)效率很低。

圖6 網(wǎng)站管理Fig.6 Website management

5 應用擴展與實踐

針對部分開發(fā)人員出現(xiàn)的上述問題,文中提供以下思路與方法。

5.1 默認模板用戶信息不足問題的解決

現(xiàn)在我們已經(jīng)用數(shù)學的高度把數(shù)據(jù)庫的基本原理搞清楚,從低層結構的角度把數(shù)據(jù)之間的關系分析透徹,那么就可以針對我們自己應用問題的需要,開發(fā)一個完善用戶信息的收集界面,把收集到的用戶信息,按表間關系的基本原則存入各相關數(shù)據(jù)庫表中,這里需要注意的是,一要理解各數(shù)據(jù)庫表的作用,邏輯上完整的數(shù)據(jù),到數(shù)據(jù)庫中要分散存入到不同數(shù)據(jù)庫表中,不能破壞數(shù)據(jù)的邏輯整體性;二是要分析透應用數(shù)據(jù)的內在聯(lián)系,存入表中的數(shù)據(jù)不能違反主、外鍵的數(shù)據(jù)完整性約束,做到這兩點是軟件開發(fā)人員的責任。

如果應用問題復雜,基礎結構所提供的數(shù)據(jù)項不能滿足需要,這時我們可以擴展ASPNETDB的基礎結構,從aspnet_Users表以主鍵UserId向外擴展一張表,我們暫且稱為用戶信息附加表,該表與aspnet_Users是一一對應關系,即把用戶表橫向擴展,以滿足應用需求。

5.2 建立應用問題實體表與基礎結構表的關聯(lián)

ASPNETDB數(shù)據(jù)庫基礎結構只是一個通用結構,它涉及到用戶管理,諸如用戶的新增與刪除,用戶信息的修改;角色管理,諸如角色的新增與刪除,角色的修改;安全管理,諸如用戶的授權,資源訪問規(guī)則等一般性問題,而解決最終用戶的專業(yè)應用問題才是軟件開發(fā)的目的,那么怎么實現(xiàn)應用數(shù)據(jù)數(shù)據(jù)庫和ASPNETDB的關聯(lián)就成為主要問題了。

首先,用戶應用問題可能很復雜,數(shù)據(jù)結構龐大,那么就要對用戶數(shù)據(jù)進行分析、取舍,進行規(guī)范化處理,最低應符合三大范式要求,根據(jù)實際情況建立實體聯(lián)系模型,將復雜的數(shù)據(jù)關系,歸一化到一對一、一對多、多對多關系上來,在歸一化過程中,確定頂層表、中層表、低層表,至此,用戶數(shù)據(jù)便設計完成。類似于ASPNETDB數(shù)據(jù)庫各表中頂層表是aspnet_Users,低層表是 aspnet_PersonalitionAllUsers,aspnet_Profile,aspnet_Application,其它表都是中層表。

其次,應用數(shù)據(jù)的關系表集的頂層表與ASPNETDB的頂層表以鍵的形式進行關系,至于是一對一關聯(lián),還是二對多關系,抑或是多對多關系,還要根據(jù)實際應用進行確定。這樣,用戶應用數(shù)據(jù)就和ASPNETDB數(shù)據(jù)關聯(lián)為一個數(shù)據(jù)庫整體,可以進行任意的數(shù)據(jù)處理了。

最后,整體數(shù)據(jù)庫的應用問題便是全體數(shù)據(jù)的增、刪、改、查操作,要符合關系數(shù)據(jù)庫的基本原則,保持數(shù)據(jù)完整性、一致性、正確性、事務性。

6 結論

在先進的軟件工具輔助下,程序員已經(jīng)被極大的解放了,因此,充分利用現(xiàn)有工具,提高開發(fā)質量和效率應視為程序員的職責,在面向對象和軟件工程思想指導下,以構建而不僅是編寫代碼的方式來開發(fā)應用軟件,應該成為基礎而不只是概念。程序開發(fā)者應該拿出更多精力分析應用系統(tǒng)結構的合理性、完整性、通用性、可擴展性、安全性,而不是僅局限于從零開始于編寫程序代碼。本文從ASPNETDB這個基礎結構出發(fā),論述了應用軟件快速開發(fā)理論和實踐,以食讀者。

[1]王旭輝.Excel數(shù)據(jù)導入數(shù)據(jù)庫的設計實現(xiàn) [J].現(xiàn)代電子技術,2013(12):71-73.

WANG Xu-hui,Import data from excel to database based on.Net Platform[J]Modern Electronic Technique 2013(12):71-73.

[2]趙娟.C++語言的軟件復用機制 [J].現(xiàn)代電子技術,2012(15):73-74.

ZHAO Juan.Software using c++language mechanism[J].Modern Electronic Technique,2012(15):73-74.

[3][美]CharlesPetzold.Microsoft C#Windows Program[M],北京:北京大學出版社,2002.

[4][意]Dino Esposito ASP.NET 3.5核心編程[M].北京:清華大學出版社,2009.

[5]章立民.SQL Server2005數(shù)據(jù)庫開發(fā)實戰(zhàn)[M].北京:機械工業(yè)出版社,2009.

[6][美]Simon Robinson Professional C#,3rd Edition[M].北京:清華大學出版社,2005.

[7]王珊.數(shù)據(jù)庫系統(tǒng)原理教程[M].北京:清華大學出版社,2005.

The theoretical analysis and the development of the ASPNETDB practice

WEN Yi
(College of Information Engineering,Chang′an University,Xi'an 710064,China)

This paper discusses the basic principle of ASPNETDB from theory aspect,the basic structure,discusses the objectoriented and software engineering idea,the basic idea of fast and efficient development of application software,this paper discusses the background database and the front desk interface of work and working principle of the database template is discussed,and the extension,the standardization of the data model and the mathematical foundation,and from the aspects of development practices to achieve the ASPNET concrete application.

ASPPNETDB;relational schema;paradigm;a relational table;registered;data integrity

TP392

A

1674-6236(2014)17-103-03

2013-10-23 稿件編號:201310154

聞 怡(1971—),女,江蘇江陰人,工程師。研究方向:計算機網(wǎng)絡信息技術。

猜你喜歡
范式基礎數(shù)據(jù)庫
“不等式”基礎鞏固
“整式”基礎鞏固
以寫促讀:構建群文閱讀教學范式
甘肅教育(2021年10期)2021-11-02 06:14:08
范式空白:《莫失莫忘》的否定之維
孫惠芬鄉(xiāng)土寫作批評的六個范式
管窺西方“詩辯”發(fā)展史的四次范式轉換
“防”“治”并舉 筑牢基礎
勞動保護(2018年5期)2018-06-05 02:12:02
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
嘉峪关市| 织金县| 长垣县| 枞阳县| 吉林省| 江油市| 孝义市| 新昌县| 体育| 全椒县| 成武县| 普定县| 华池县| 清原| 浙江省| 肇东市| 天长市| 微博| 民勤县| 安阳县| 运城市| 钟山县| 霍林郭勒市| 磐石市| 土默特右旗| 哈尔滨市| 股票| 上饶县| 迁西县| 呼玛县| 武穴市| 安平县| 姜堰市| 宾阳县| 福贡县| 会宁县| 金坛市| 二连浩特市| 阜城县| 道真| 濮阳县|