亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        以體系結(jié)構(gòu)為中心的數(shù)據(jù)庫設(shè)計方法及應用

        2020-04-07 17:40:49馮小潔
        中國教育信息化 2020年3期
        關(guān)鍵詞:映射智慧校園

        摘 ? 要:在軟件系統(tǒng)分析和設(shè)計過程中,圍繞軟件體系結(jié)構(gòu)這一中心,利用類圖模型和關(guān)系型數(shù)據(jù)庫關(guān)系模型之間的映射,可以加速數(shù)據(jù)庫設(shè)計。文章結(jié)合某高校智慧校園建設(shè)重點項目“科研管理系統(tǒng)數(shù)據(jù)庫設(shè)計”實例,提出了一種綜合面向?qū)ο蟮臄?shù)據(jù)庫設(shè)計方法和UML方法,是以多層軟件體系結(jié)構(gòu)為中心的數(shù)據(jù)庫設(shè)計方法。文章重點介紹了在多層軟件體系結(jié)構(gòu)框架內(nèi),類、類的方法到關(guān)系型數(shù)據(jù)庫的表、視圖、存儲過程的映射方法。

        關(guān)鍵詞:軟件體系結(jié)構(gòu);關(guān)系型數(shù)據(jù)庫;映射;面向?qū)ο蠓治雠c設(shè)計;智慧校園

        中圖分類號:TP311.13 文獻標志碼:B 文章編號:1673-8454(2020)05-0089-05

        數(shù)據(jù)庫設(shè)計是指對于一個給定的應用環(huán)境,構(gòu)造數(shù)據(jù)邏輯模式和存儲方式,建立數(shù)據(jù)庫,使其能夠滿足各種應用對數(shù)據(jù)的需求[1]。常用的以數(shù)據(jù)為中心的方法把數(shù)據(jù)庫設(shè)計分為六個階段:①需求分析;②概念結(jié)構(gòu)設(shè)計;③邏輯結(jié)構(gòu)設(shè)計;④物理結(jié)構(gòu)設(shè)計;⑤數(shù)據(jù)庫實施;⑥數(shù)據(jù)庫運行和維護[2] 。數(shù)據(jù)庫設(shè)計方法的選擇是決定數(shù)據(jù)庫設(shè)計質(zhì)量的關(guān)鍵因素。目前,常用的數(shù)據(jù)庫設(shè)計的方法有新奧爾良方法、基于E-R模型的方法、3NF方法、面向?qū)ο蠓椒?、UML方法等[3]。這些方法對數(shù)據(jù)庫設(shè)計走向規(guī)范化、標準化起到巨大的推動作用,但隨著數(shù)據(jù)庫越來越龐大、應用越來越復雜、用戶要求越來越高,上述的方法暴露出一些局限性[4]。以軟件體系結(jié)構(gòu)為中心的數(shù)據(jù)庫方法為數(shù)據(jù)庫設(shè)計提供了新的思路。該方法綜合了面向?qū)ο髷?shù)據(jù)庫設(shè)計方法和UML方法的優(yōu)點,在面向?qū)ο蟮南到y(tǒng)分析和系統(tǒng)設(shè)計階段,突出以軟件體系結(jié)構(gòu)為中心,把類分析、類設(shè)計和數(shù)據(jù)庫設(shè)計過程結(jié)合起來,快速進行高質(zhì)量、規(guī)范化的數(shù)據(jù)庫應用系統(tǒng)開發(fā)。

        一、多層軟件體系結(jié)構(gòu)

        軟件體系結(jié)構(gòu)是軟件系統(tǒng)的映射,它定義了軟件系統(tǒng)的不同組成部分、它們之間的關(guān)系和交互、通信機制、以及如何修改系統(tǒng)組件、如何添加新組件等整體規(guī)則[5]。

        依據(jù)層模式理論建立的多層軟件體系結(jié)構(gòu)廣泛應用于軟件系統(tǒng)的搭建。在層模式理論指導下,基于微軟ASP.NET MVC框架,可以設(shè)計出一種通用的多層軟件體系結(jié)構(gòu)。這種多層軟件體系結(jié)構(gòu)劃分為用戶接口層(User Interface Layer,UIL)、業(yè)務邏輯層(Business Logic Layer, BLL)、數(shù)據(jù)訪問層(Data Access Layer,DAL)、實體域?qū)樱‥ntity Domain Layer, EDL)和數(shù)據(jù)存儲層(Data Storage Layer,DSL),共五層(見圖1)。

        這里的用戶接口層UIL主要是指用戶界面;業(yè)務邏輯層BLL實現(xiàn)數(shù)據(jù)驗證、計算、業(yè)務規(guī)則等[6];數(shù)據(jù)訪問層主要由數(shù)據(jù)庫、文件系統(tǒng)等組成,通過與數(shù)據(jù)庫交互,數(shù)據(jù)訪問層DAL實現(xiàn)對數(shù)據(jù)庫對象(表、視圖、存儲過程等)的操作;實體域?qū)覧DL集中了對同一類業(yè)務實體或概念的抽象描述系統(tǒng)的實體類[7];數(shù)據(jù)存儲層DSL用來存儲系統(tǒng)永久性對象,主要是數(shù)據(jù)庫和文件系統(tǒng)。這種多層軟件體系結(jié)構(gòu)對軟件系統(tǒng)進行邏輯層次劃分,可以將業(yè)務邏輯和業(yè)務實體分離出來,實現(xiàn)類、組件的重用。

        二、以軟件體系結(jié)構(gòu)為中心的數(shù)據(jù)庫設(shè)計方法

        以軟件體系結(jié)構(gòu)為中心進行數(shù)據(jù)庫設(shè)計,突出了軟件體系結(jié)構(gòu)的核心地位,改變傳統(tǒng)的以數(shù)據(jù)為中心的思想。在軟件體系結(jié)構(gòu)框架內(nèi),把類的分析和設(shè)計與數(shù)據(jù)庫設(shè)計結(jié)合起來,利用基于UML的面向?qū)ο笙到y(tǒng)分析和設(shè)計得到的類圖模型映射到關(guān)系數(shù)據(jù)庫關(guān)系模型,把類的方法映射到關(guān)系數(shù)據(jù)庫對象視圖或存儲過程。

        實體域?qū)又械念惖綌?shù)據(jù)庫表的映射。實體域?qū)又械膶嶓w類映射到數(shù)據(jù)存儲層數(shù)據(jù)庫基本表。實體類的屬性映射為表的字段(列),而其中實體類的關(guān)鍵屬性映射為數(shù)據(jù)庫表的主鍵,特殊情況如關(guān)聯(lián)類轉(zhuǎn)化來的實體類由屬性組合映射為數(shù)據(jù)庫關(guān)聯(lián)表的主鍵,屬性的類型映射為數(shù)據(jù)庫中相應數(shù)據(jù)類型。數(shù)據(jù)庫表之間聯(lián)系的設(shè)計可通過實體類之間的關(guān)系映射得到[8]。

        數(shù)據(jù)訪問層類的方法到數(shù)據(jù)庫視圖或存儲過程的映射。數(shù)據(jù)訪問層類的方法映射為數(shù)據(jù)庫視圖或存儲過程,并通過嵌入在方法體中的SQL語句在數(shù)據(jù)庫操作中執(zhí)行這些視圖或存儲過程。

        三、高??蒲泄芾硐到y(tǒng)數(shù)據(jù)庫設(shè)計應用

        山東某高校是一所具有行業(yè)特色的綜合性普通高等院校。應智慧校園建設(shè)工作需要,該校急需開發(fā)一套服務于科研管理人員、研究人員和高層領(lǐng)導的可進行項目、成果、科研機構(gòu)和人員、科研考核、科研信息統(tǒng)計分析、科研資源共享的高質(zhì)量的科研管理應用軟件。

        高??蒲泄芾硐到y(tǒng)的開發(fā)包括Web應用開發(fā)和數(shù)據(jù)庫設(shè)計兩部分。該科研管理軟件總體架構(gòu)采用了.Net框架下基于MVC設(shè)計模式的多層軟件體系結(jié)構(gòu)。數(shù)據(jù)存儲選擇利用Microsoft SQL Server 2008 企業(yè)版數(shù)據(jù)庫系統(tǒng)存儲和處理業(yè)務數(shù)據(jù)加文件系統(tǒng)的混合模式方案。在系統(tǒng)開發(fā)過程中,考慮到開發(fā)質(zhì)量和效率,數(shù)據(jù)庫的設(shè)計方法采用了前邊介紹的以多層軟件體系結(jié)構(gòu)為中心的數(shù)據(jù)庫設(shè)計方法。

        1.高??蒲泄芾硐到y(tǒng)實體類圖

        分布于實體域?qū)拥膶嶓w類主要由業(yè)務實體類以及這些業(yè)務實體類之間的關(guān)系轉(zhuǎn)化來的關(guān)聯(lián)類組成。實體域包中的類主要來自系統(tǒng)分析階段識別的實體分析類及參與者的映射,包括部門類Department、教師(科研人員)類Teacher、學術(shù)會議類AcademicMeeting 、學術(shù)報告類Lecture、論文類Paper、著作類Book、專利類Patent、成果獲獎類Award、縱向項目類VerticalProject、橫向課題HorizontalProject、校級項目類InternalProject、項目審核類ProjectAudit、項目中檢類ProjectMiddleCheck、項目結(jié)題類ProjectComplete、項目費用類ProjectCost、角色類Actor、用戶類SRUser等。圖2為高??蒲泄芾硐到y(tǒng)的主要實體類之間關(guān)系的類圖。

        2.從類圖模型到關(guān)系數(shù)據(jù)庫數(shù)據(jù)模型的映射

        實體域?qū)覦omain包中的類到關(guān)系數(shù)據(jù)庫表的映射和數(shù)據(jù)訪問層包中數(shù)據(jù)訪問邏輯類的方法到數(shù)據(jù)庫視圖或存儲過程的映射是從類圖模型到關(guān)系數(shù)據(jù)庫數(shù)據(jù)模型的映射的主要內(nèi)容。

        (1)實體域?qū)又械念惖疥P(guān)系數(shù)據(jù)庫表的映射

        由于對象模型側(cè)重于使用包含數(shù)據(jù)和行為的對象來構(gòu)建應用程序,而關(guān)系模型則主要針對于數(shù)據(jù)的存儲[9],因此根據(jù)實體類的特點和類之間的關(guān)系,從實體類到數(shù)據(jù)庫表的映射分為實體類直接到關(guān)系數(shù)據(jù)庫數(shù)據(jù)表映射、存在繼承關(guān)系的類到關(guān)系數(shù)據(jù)庫數(shù)據(jù)表的映射和存在關(guān)聯(lián)關(guān)系的類到關(guān)系數(shù)據(jù)庫數(shù)據(jù)表的映射三種情形。

        ①實體類直接到關(guān)系數(shù)據(jù)庫數(shù)據(jù)表映射。圖3表示實體域?qū)覦omain包中的成果獲獎類Award類模型到成果獲獎表Award模型映射關(guān)系圖。成果獲獎類Award中的屬性分別映射為成果獲獎表Award的字段(列),屬性的類型映射為數(shù)據(jù)庫中相應的數(shù)據(jù)類型;成果獲獎類 Award的關(guān)鍵屬性即標識符映射為AwardSn映射為成果獲獎表Award的主鍵AwardSn。實體域?qū)拥膶W術(shù)會議類AcademicMeeting、學術(shù)報告類Lecture、項目審核類ProjectAudit、項目中檢類ProjectMiddleCheck、項目結(jié)題類ProjectComplete、項目費用類ProjectCost等也直接映射為數(shù)據(jù)庫的表。

        ②存在繼承關(guān)系的類到關(guān)系數(shù)據(jù)庫數(shù)據(jù)表的映射。項目類Project有三個子類,分別為縱向項目VerticalProject、橫向項目HorizontalProject和校級項目InternalProject,如圖4所示繼承關(guān)系類圖。這四個類中Project只是作為抽象父類存在,因此只需映射它的子類到數(shù)據(jù)庫基本表。存在此類繼承關(guān)系的還有作品類Works和其子類論文類Paper、著作類Book、專利類Patent等,映射方法同項目類Project。

        ③存在關(guān)聯(lián)關(guān)系的類到關(guān)系數(shù)據(jù)庫數(shù)據(jù)表的映射??蒲泄芾韱T、科研秘書、教師(科研人員)、校領(lǐng)導用戶類、系統(tǒng)管理員等,這些業(yè)務角色可以抽象為角色類Actor和科研管理系統(tǒng)用戶類SRUser。角色類Actor和科研管理系統(tǒng)用戶類SRUser之間存在1對多的關(guān)聯(lián)關(guān)系,它們分別映射為數(shù)據(jù)庫表角色表Actor和科研管理系統(tǒng)用戶表SRUser(見圖5)。

        存在關(guān)聯(lián)關(guān)系的學院部門類Department和教師(科研人員)類Teacher等,它們轉(zhuǎn)化為科研管理數(shù)據(jù)庫表學院部門表Department和教師(科研人員)表Teacher等。

        在完成關(guān)系數(shù)據(jù)庫表設(shè)計基礎(chǔ)上,可以得到數(shù)據(jù)庫邏輯設(shè)計過程中的數(shù)據(jù)庫表關(guān)系圖(見圖6)。

        通過以上過程得到的關(guān)系型數(shù)據(jù)庫表模型和表關(guān)系圖,結(jié)合選定的SQL Server數(shù)據(jù)庫管理系統(tǒng),可以快速創(chuàng)建出數(shù)據(jù)庫表。如根據(jù)成果獲獎表Award模型得到的成果獲獎表Award(見表1)。

        (2)數(shù)據(jù)訪問層類的方法到關(guān)系數(shù)據(jù)庫視圖或存儲過程的映射

        高??蒲泄芾硐到y(tǒng)的數(shù)據(jù)庫視圖和存儲過程由數(shù)據(jù)訪問層類的方法映射而來。數(shù)據(jù)訪問層中的類包括部門訪問類DepartmentDA、教師(科研人員)訪問TeacherDA、學術(shù)會議訪問類AcademicMeetingDA、報告訪問類LectureDA、論文訪問類PaperDA、著作訪問類BookDA、專利訪問類PatentDA、成果獲獎訪問類AwardDA、縱向項目訪問類VerticalProjectDA、橫向課題訪問類HorizontalProjectDA、橫向課題合同訪問類HorizontalProjectContractDA、校級項目訪問類InternalProjectDA、項目審核訪問類ProjectAuditDA、項目中檢訪問類ProjectMiddleCheDA、項目結(jié)題訪問類ProjectCompleteDA、項目經(jīng)費訪問類ProjectCostDA、角色訪問類ActorDA、用戶訪問類SRUserDA等。

        ①數(shù)據(jù)訪問層類的方法到關(guān)系數(shù)據(jù)庫視圖的映射。數(shù)據(jù)訪問層的數(shù)據(jù)訪問邏輯類的方法如果返回值為數(shù)據(jù)集、字符串等數(shù)據(jù)類型的結(jié)果,可以映射到數(shù)據(jù)庫視圖。如數(shù)據(jù)訪問層的論文訪問類PaperDA,它的一個獲取成果獲獎列表方法GetPaperList():

        public DataSet GetPaperList(string c) {

        StringBuilder sb = new StringBuilder();

        sb.Append("SELECT ?* ");

        sb.Append(" FROM V_Paper ");

        if (c.Trim() != ""){ sb.Append(" WHERE " + c);}

        return DatabaseAccess.Query(sb.ToString());

        }

        映射為關(guān)系數(shù)據(jù)庫的視圖V_Paper:

        CREATE VIEW ?V_Paper

        AS

        SELECT ?* ?FROM ?Paper

        根據(jù)系統(tǒng)業(yè)務邏輯功能,在設(shè)計數(shù)據(jù)訪問層類的類的方法時,可以映射出關(guān)系數(shù)據(jù)庫的單個表或多個表關(guān)聯(lián)查詢形成的多個視圖。

        ②數(shù)據(jù)訪問層類的方法到關(guān)系數(shù)據(jù)庫存儲過程的映射。數(shù)據(jù)訪問層的數(shù)據(jù)訪問邏輯類的方法如果通過其執(zhí)行插入記錄、更新記錄、刪除記錄等對數(shù)據(jù)庫操作,這些方法可以映射到關(guān)系數(shù)據(jù)庫存儲過程。如數(shù)據(jù)訪問層縱向項目數(shù)據(jù)訪問類VerticalProjectDA的更新狀態(tài)的方法UpdateVerticalProjectStatus():

        public int UpdateVerticalProjectStatus(VerticalProject vp) {

        SqlParameter[] parametersVerticalProject = {

        new SqlParameter("@VerticalProjectSn", SqlDbType.Int,4),

        new SqlParameter("@VerticalProjectStatus", SqlDbType.Int,4)};

        parameters[0].Value = vp. VerticalProjectSn;

        parameters[1].Value = vp. VerticalProjectStatus

        try{

        int ?result = new DatabaseAccess().UpdateProcedure("P_Update_VerticalProject_Status", parametersVerticalProject);}catch (Exception e){ throw new Exception(e.Message); }

        return ?result;

        }

        對應數(shù)據(jù)庫中的存儲過程p_upate_VerticalProject_Status:

        CREATE PROCEDURE p_update_VerticalProject_Status

        (@VerticalProjectSn_1 int,@VerticalProjectStatus_2 tinyInt )

        AS

        BEGIN

        UPDATE VerticalProject SET VerticalProjectStatus=@VerticalProjectStatus_2

        WHERE VerticalProjectSn=@ VerticalProjectSn_1

        END

        四、結(jié)束語

        以軟件體系結(jié)構(gòu)為中心的數(shù)據(jù)庫設(shè)計方法綜合了面向?qū)ο蟮臄?shù)據(jù)庫設(shè)計方法和UML方法,在多層軟件體系結(jié)構(gòu)框架內(nèi),以清晰的邏輯劃分,把位于實體域?qū)拥膶嶓w類等映射為數(shù)據(jù)存儲層的關(guān)系數(shù)據(jù)庫表、把數(shù)據(jù)訪問層包中數(shù)據(jù)訪問邏輯類的方法映射為數(shù)據(jù)存儲層的數(shù)關(guān)系據(jù)庫視圖或存儲過程進行數(shù)據(jù)庫設(shè)計。以軟件體系結(jié)構(gòu)為中心的數(shù)據(jù)庫設(shè)計方法是面向?qū)ο蟮臄?shù)據(jù)庫設(shè)計的改進。這種方法實現(xiàn)了面向?qū)ο蟮念悎D模型到關(guān)系型數(shù)據(jù)庫關(guān)系模型的映射,保證了設(shè)計的連續(xù)性和完整性,提高了數(shù)據(jù)庫設(shè)計質(zhì)量。相比傳統(tǒng)的以數(shù)據(jù)為中心的設(shè)計方法進行數(shù)據(jù)庫設(shè)計需要6個階段,以軟件體系結(jié)構(gòu)為中心的方法將數(shù)據(jù)庫設(shè)計階段融入軟件系統(tǒng)的分析和設(shè)計過程,簡化了數(shù)據(jù)庫設(shè)計流程,節(jié)省了開發(fā)時間,有利于提高軟件開發(fā)的效率。當然,這種數(shù)據(jù)庫設(shè)計方法在一定程度上減少了軟件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)各自的內(nèi)聚性,如果業(yè)務邏輯發(fā)生改變,數(shù)據(jù)庫系統(tǒng)也需要改變,將增加系統(tǒng)維護難度,對軟件設(shè)計人員提出了更高的技術(shù)要求。

        參考文獻:

        [1]趙相偉,張中喜,王殷行.小型信息系統(tǒng)開發(fā)的關(guān)鍵技術(shù)探討[J].山東科技大學學報(自然科學版),2006,25(1):67-69.

        [2]李運華,張吉禮.大型公共建筑運行能耗數(shù)據(jù)庫管理系統(tǒng)初步開發(fā)及應用[J].建筑科學,2007,23(10):62-66.

        [3]王珊,薩師煊.數(shù)據(jù)庫系統(tǒng)概論(第5版)[M].北京:高等教育出版社,2018.

        [4]陳新安,鮮波,張繼棠.面向?qū)ο蟮姆治觯∣OA)方法在數(shù)據(jù)庫系統(tǒng)設(shè)計中的應用[J].計算機工程與應用,2000(5):124-125.

        [5]袁曉曦.軟件體系結(jié)構(gòu)UML建模[J].科技傳播,2010(24):230-231.

        [6]周實庫.風電用螺栓熱處理工藝設(shè)計系統(tǒng)的設(shè)計與實現(xiàn)[D].上海:上海交通大學,2014.

        [7]馮小潔,Rational統(tǒng)一過程支持的中小型軟件項目開發(fā)[J].青島職業(yè)技術(shù)學院學報,2017,30(1):77-81.

        [8]張莉.數(shù)據(jù)庫技術(shù)在教務管理系統(tǒng)中應用研究[J].裝備制造技術(shù),2011(7):85-86.

        [9]賈曉輝,夏敏捷,趙巧萍等.UML類模式在數(shù)據(jù)庫中的應用[J].計算機應用與軟件,2007,24(7):77-78.

        (編輯:王曉明)

        猜你喜歡
        映射智慧校園
        從映射與運算的角度定義線性空間
        RMI原則在代數(shù)學教學中的應用
        論美國動畫電影題材變化及現(xiàn)實映射意義
        電影文學(2016年22期)2016-12-20 15:21:26
        試論泰國文化對外來廣告的映射
        東方教育(2016年3期)2016-12-14 20:50:00
        智慧校園關(guān)鍵技術(shù)典型應用研究
        基于B/S結(jié)構(gòu)的學生公寓管理信息系統(tǒng)的設(shè)計與實現(xiàn)
        榆林學院智慧校園系統(tǒng)架構(gòu)的分析與設(shè)計
        “智慧校園”浪潮下大學課堂教學改革與設(shè)計
        智慧校園關(guān)鍵技術(shù)分析與研究
        概念隱喻在構(gòu)建語篇連貫中的作用探析
        考試周刊(2016年85期)2016-11-11 00:44:35
        亚洲 欧美精品suv| 人妖一区二区三区在线| 97se色综合一区二区二区| 亚洲av无码一区二区三区观看| 97无码人妻Va一区二区三区| 免费人成视频网站在线| 按摩师玩弄少妇到高潮av| 影音先锋色小姐| 最近中文av字幕在线中文| 一区二区三区不卡免费av| 福利利视频在线观看免费| 久久久www成人免费毛片| 五十路熟妇亲子交尾| 久久国产精品男人的天堂av| 被灌醉的日本人妻中文字幕| 国产午夜成人av在线播放| 免费一级特黄欧美大片久久网| 国产不卡一区二区三区视频| 国产免费观看久久黄av麻豆| 亚洲av日韩精品久久久久久久| 国内精品久久久影院| 最新日韩人妻中文字幕一区| 国产日韩厂亚洲字幕中文| 挺进朋友人妻雪白的身体韩国电影| 四虎在线播放免费永久视频| 一道本中文字幕在线播放| 在线视频国产91自拍| 久久综合精品国产一区二区三区无码 | 国产成人亚洲精品91专区手机| 亚洲av国产大片在线观看| 激情五月我也去也色婷婷| 波多野42部无码喷潮| 国产精品一区二区av片| 少妇人妻精品一区二区三区视| 人人妻人人澡人人爽人人精品av| 国产欧美亚洲精品a| 国产av天堂亚洲国产av麻豆| 李白姓白白又白类似的套路| 九九热线有精品视频86| 任你躁国产自任一区二区三区| 国产精品一区二区蜜臀av|