房 鵬
(河南師范大學 計算機與信息工程學院,河南 新鄉 453007)
在系統研發過程中,如何進行數據庫設計是一項重要的工作,數據庫設計的好壞對系統運行效率有直接的影響,有時甚至決定著系統研發的成敗。
農村意外險銷售系統需要存儲的數據主要包括:采集到的客戶信息、機構、管理人員、單證、設備、承保方案以及保單信息等[1-2]。由于意外險承保出單的實效性較強,且數據采集較為頻繁,為了保障數據的安全性和準確性,該系統采用了SQLite和SQL Server數據庫相結合的方式,來存儲系統中產生的所有數據。
需求分析簡單的解釋就是分析用戶的需求。通過調查系統涉及的對象(包括機構、人員等),深入了解原系統(手工或軟件)的工作流程和情況,以便明確用戶的各類需求,然后在此基礎上確定要研發的系統功能。調查的重點是“數據”和“處理”,通過調查、收集和分析這兩個方面的需求,就可以獲得數據庫的相關需求。經過深入農村銷售網點調研,逐步掌握農村意外險銷售系統數據庫設計的所有需求,歸納出來的部分數據項如表1所示。

表1 需求數據項
概念結構設計階段的主要任務就是將需求分析得到的需求抽象為概念模型。簡單來說,就是對需求分析的結果進行數據抽象后,設計出局部的視圖,將多個局部視圖合并,且取消沖突;最后,進行修改消除冗余,生成基本的E-R圖[3-5]。以農村意外險銷售系統中部分需求為例進行分析。POS設備可以下載多個承保方案使用,每個承保方案也可以用于多臺POS設備中,一個管理員可以定義多個承保方案。經過合并、優化后具體的E-R圖如圖1所示。

圖1 部分需求E-R
邏輯結構設計是在概念結構設計的基礎上進行數據模型設計,將E-R圖轉換為具體的數據庫管理系統支持的數據模型。主要任務是先將概念模型轉化為數據模型,運用范式對關系進行規范化,最后進行優化。以圖1為例,其可以轉換為如下的關系模式:(1)POS設備,包括設備序列號、機構代碼、POS機管理員基本信息。(2)承保方案,包括方案代碼、方案名稱、方案類別、單證類別、設計人員基本信息。(3)橋接信息,包括設備序列號、方案代碼、方案名稱、網點基本信息。(4)數據庫邏輯設計主要反映業務邏輯,與具體的數據庫管理系統無關。將所有的業務邏輯都表示出來后,邏輯結構設計就基本完成。
數據庫物理結構設計主要是設計數據庫的物理結構,根據數據庫的邏輯結構來選定RDBMS(如SQL Server,Oracle等),并設計和實施數據庫的存儲結構、存取方式等[3]。農村意外險銷售系統選用主數據庫是SQL Server 2012,根據邏輯結構設計產生的關系模式即可確定具體的數據庫表結構。數據庫物理結構設計過程中,需要對時間效率、空間效率、維護代價和各種用戶要求進行權衡,選擇一個優化方案作為數據庫物理結構。以承保方案關系模式為例,具體表結構如表2所示。

表2 承保方案
數據庫的物理實現是根據物理結構設計結果,建立具體數據庫環境下的數據庫表、視圖等[3]。農村意外險銷售系統根據需求和優化,最終建立12張數據庫表,包括:管理員信息表、單證信息表、黑名單信息表、機構信息表、保單信息表、關鍵字段表、POS操作員信息表、打印模板信息表、方案信息表、POS方案映射表、機構操作員信息表和POS設備信息表。農村意外險銷售系統涉及的表比較多,下面重點選擇方案信息表和POS方案映射表兩張數據表進行詳細介紹。
(1)方案信息表主要用來存儲定義好的不同銷售需求對應的承保方案。部分數據記錄如圖2所示。
(2)POS方案映射表主要存儲POS設備、各銷售網點及銷售方案映射關系。部分數據記錄如圖3所示。

圖2 方案信息表數據

圖3 POS方案映射表數據
數據庫設計就是建立數據庫及其應用系統的技術,是信息系統研發和建設中的核心技術。由于基于數據庫的應用系統具有復雜性,為了支持其程序運行,數據庫設計往往會異常復雜,因此,數據庫最優設計是不可能一蹴而就的,只能是一個反復探索、逐步求精的過程,不斷歸納、提煉和結構化數據庫中的數據對象,不斷深入理解數據對象之間關系,以更加深入地了解系統的需求,為后期的程序編寫提供有益的幫助。