房 鵬
(河南師范大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,河南 新鄉(xiāng) 453007)
在系統(tǒng)研發(fā)過程中,如何進(jìn)行數(shù)據(jù)庫設(shè)計(jì)是一項(xiàng)重要的工作,數(shù)據(jù)庫設(shè)計(jì)的好壞對(duì)系統(tǒng)運(yùn)行效率有直接的影響,有時(shí)甚至決定著系統(tǒng)研發(fā)的成敗。
農(nóng)村意外險(xiǎn)銷售系統(tǒng)需要存儲(chǔ)的數(shù)據(jù)主要包括:采集到的客戶信息、機(jī)構(gòu)、管理人員、單證、設(shè)備、承保方案以及保單信息等[1-2]。由于意外險(xiǎn)承保出單的實(shí)效性較強(qiáng),且數(shù)據(jù)采集較為頻繁,為了保障數(shù)據(jù)的安全性和準(zhǔn)確性,該系統(tǒng)采用了SQLite和SQL Server數(shù)據(jù)庫相結(jié)合的方式,來存儲(chǔ)系統(tǒng)中產(chǎn)生的所有數(shù)據(jù)。
需求分析簡單的解釋就是分析用戶的需求。通過調(diào)查系統(tǒng)涉及的對(duì)象(包括機(jī)構(gòu)、人員等),深入了解原系統(tǒng)(手工或軟件)的工作流程和情況,以便明確用戶的各類需求,然后在此基礎(chǔ)上確定要研發(fā)的系統(tǒng)功能。調(diào)查的重點(diǎn)是“數(shù)據(jù)”和“處理”,通過調(diào)查、收集和分析這兩個(gè)方面的需求,就可以獲得數(shù)據(jù)庫的相關(guān)需求。經(jīng)過深入農(nóng)村銷售網(wǎng)點(diǎn)調(diào)研,逐步掌握農(nóng)村意外險(xiǎn)銷售系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)的所有需求,歸納出來的部分?jǐn)?shù)據(jù)項(xiàng)如表1所示。
表1 需求數(shù)據(jù)項(xiàng)
概念結(jié)構(gòu)設(shè)計(jì)階段的主要任務(wù)就是將需求分析得到的需求抽象為概念模型。簡單來說,就是對(duì)需求分析的結(jié)果進(jìn)行數(shù)據(jù)抽象后,設(shè)計(jì)出局部的視圖,將多個(gè)局部視圖合并,且取消沖突;最后,進(jìn)行修改消除冗余,生成基本的E-R圖[3-5]。以農(nóng)村意外險(xiǎn)銷售系統(tǒng)中部分需求為例進(jìn)行分析。POS設(shè)備可以下載多個(gè)承保方案使用,每個(gè)承保方案也可以用于多臺(tái)POS設(shè)備中,一個(gè)管理員可以定義多個(gè)承保方案。經(jīng)過合并、優(yōu)化后具體的E-R圖如圖1所示。
圖1 部分需求E-R
邏輯結(jié)構(gòu)設(shè)計(jì)是在概念結(jié)構(gòu)設(shè)計(jì)的基礎(chǔ)上進(jìn)行數(shù)據(jù)模型設(shè)計(jì),將E-R圖轉(zhuǎn)換為具體的數(shù)據(jù)庫管理系統(tǒng)支持的數(shù)據(jù)模型。主要任務(wù)是先將概念模型轉(zhuǎn)化為數(shù)據(jù)模型,運(yùn)用范式對(duì)關(guān)系進(jìn)行規(guī)范化,最后進(jìn)行優(yōu)化。以圖1為例,其可以轉(zhuǎn)換為如下的關(guān)系模式:(1)POS設(shè)備,包括設(shè)備序列號(hào)、機(jī)構(gòu)代碼、POS機(jī)管理員基本信息。(2)承保方案,包括方案代碼、方案名稱、方案類別、單證類別、設(shè)計(jì)人員基本信息。(3)橋接信息,包括設(shè)備序列號(hào)、方案代碼、方案名稱、網(wǎng)點(diǎn)基本信息。(4)數(shù)據(jù)庫邏輯設(shè)計(jì)主要反映業(yè)務(wù)邏輯,與具體的數(shù)據(jù)庫管理系統(tǒng)無關(guān)。將所有的業(yè)務(wù)邏輯都表示出來后,邏輯結(jié)構(gòu)設(shè)計(jì)就基本完成。
數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計(jì)主要是設(shè)計(jì)數(shù)據(jù)庫的物理結(jié)構(gòu),根據(jù)數(shù)據(jù)庫的邏輯結(jié)構(gòu)來選定RDBMS(如SQL Server,Oracle等),并設(shè)計(jì)和實(shí)施數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)、存取方式等[3]。農(nóng)村意外險(xiǎn)銷售系統(tǒng)選用主數(shù)據(jù)庫是SQL Server 2012,根據(jù)邏輯結(jié)構(gòu)設(shè)計(jì)產(chǎn)生的關(guān)系模式即可確定具體的數(shù)據(jù)庫表結(jié)構(gòu)。數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計(jì)過程中,需要對(duì)時(shí)間效率、空間效率、維護(hù)代價(jià)和各種用戶要求進(jìn)行權(quán)衡,選擇一個(gè)優(yōu)化方案作為數(shù)據(jù)庫物理結(jié)構(gòu)。以承保方案關(guān)系模式為例,具體表結(jié)構(gòu)如表2所示。
表2 承保方案
數(shù)據(jù)庫的物理實(shí)現(xiàn)是根據(jù)物理結(jié)構(gòu)設(shè)計(jì)結(jié)果,建立具體數(shù)據(jù)庫環(huán)境下的數(shù)據(jù)庫表、視圖等[3]。農(nóng)村意外險(xiǎn)銷售系統(tǒng)根據(jù)需求和優(yōu)化,最終建立12張數(shù)據(jù)庫表,包括:管理員信息表、單證信息表、黑名單信息表、機(jī)構(gòu)信息表、保單信息表、關(guān)鍵字段表、POS操作員信息表、打印模板信息表、方案信息表、POS方案映射表、機(jī)構(gòu)操作員信息表和POS設(shè)備信息表。農(nóng)村意外險(xiǎn)銷售系統(tǒng)涉及的表比較多,下面重點(diǎn)選擇方案信息表和POS方案映射表兩張數(shù)據(jù)表進(jìn)行詳細(xì)介紹。
(1)方案信息表主要用來存儲(chǔ)定義好的不同銷售需求對(duì)應(yīng)的承保方案。部分?jǐn)?shù)據(jù)記錄如圖2所示。
(2)POS方案映射表主要存儲(chǔ)POS設(shè)備、各銷售網(wǎng)點(diǎn)及銷售方案映射關(guān)系。部分?jǐn)?shù)據(jù)記錄如圖3所示。
圖2 方案信息表數(shù)據(jù)
圖3 POS方案映射表數(shù)據(jù)
數(shù)據(jù)庫設(shè)計(jì)就是建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng)的技術(shù),是信息系統(tǒng)研發(fā)和建設(shè)中的核心技術(shù)。由于基于數(shù)據(jù)庫的應(yīng)用系統(tǒng)具有復(fù)雜性,為了支持其程序運(yùn)行,數(shù)據(jù)庫設(shè)計(jì)往往會(huì)異常復(fù)雜,因此,數(shù)據(jù)庫最優(yōu)設(shè)計(jì)是不可能一蹴而就的,只能是一個(gè)反復(fù)探索、逐步求精的過程,不斷歸納、提煉和結(jié)構(gòu)化數(shù)據(jù)庫中的數(shù)據(jù)對(duì)象,不斷深入理解數(shù)據(jù)對(duì)象之間關(guān)系,以更加深入地了解系統(tǒng)的需求,為后期的程序編寫提供有益的幫助。