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

?

MIS中數(shù)據(jù)庫關(guān)鍵技術(shù)及構(gòu)架設(shè)計(jì)

2010-02-14 04:50:02宋義秋唐玉琦
制造業(yè)自動化 2010年8期
關(guān)鍵詞:主鍵數(shù)據(jù)文件命名

宋義秋,唐玉琦

(唐山職業(yè)技術(shù)學(xué)院,唐山 063000)

0 引言

數(shù)據(jù)庫及專用軟件是MIS(管理信息系統(tǒng))的物質(zhì)基礎(chǔ),而數(shù)據(jù)庫技術(shù)則是MIS的核心技術(shù)。一個(gè)成功的MIS是由50% 的業(yè)務(wù)和50% 的軟件組成的,而50% 的軟件又由25% 的數(shù)據(jù)庫和25% 的程序所組成。因此掌握數(shù)據(jù)庫設(shè)計(jì)關(guān)鍵技術(shù),對于提升保證MIS成功,提升MIS性能有重要意義。

1 數(shù)據(jù)庫設(shè)計(jì)和MIS

數(shù)據(jù)庫設(shè)計(jì)(database design)是將業(yè)務(wù)對象轉(zhuǎn)換為表和視圖等數(shù)據(jù)庫對象的過程,它也是數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)過程中首要的和基本的內(nèi)容,即對于一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲數(shù)據(jù),滿足各種用戶的應(yīng)用需求(信息要求和處理要求)。而MIS即管理信息系統(tǒng),是一個(gè)以人為主導(dǎo),利用計(jì)算機(jī)硬件、軟件、網(wǎng)絡(luò)通信設(shè)備以及其他辦公設(shè)備,進(jìn)行信息的收集、傳輸、加工、儲存、更新和維護(hù),以企業(yè)戰(zhàn)略競優(yōu)、提高效益和效率為目的,支持企業(yè)的高層決策、中層控制、基層運(yùn)作的集成化的人機(jī)系統(tǒng)[1]。數(shù)據(jù)庫是MIS系統(tǒng)的一部分,它把MIS中的大量數(shù)據(jù)按照一定的模型組織起來,提供存儲、維護(hù)、檢索數(shù)據(jù)的功能,使信息系統(tǒng)可以方便、及時(shí)、準(zhǔn)確從數(shù)據(jù)庫中獲取所需的信息。因此,數(shù)據(jù)庫建設(shè)是硬件、軟件和干件(技術(shù)與管理的界面)的結(jié)合,在MIS建設(shè)中,數(shù)據(jù)庫設(shè)計(jì)應(yīng)該與應(yīng)用系統(tǒng)設(shè)計(jì)相結(jié)合,即做到數(shù)據(jù)庫框架或數(shù)據(jù)庫結(jié)構(gòu),以及應(yīng)用程序、事務(wù)處理等同步。

2 數(shù)據(jù)庫設(shè)計(jì)基本步驟

按照規(guī)范設(shè)計(jì)的方法,考慮數(shù)據(jù)庫及其應(yīng)用系統(tǒng)開發(fā)全過程,一般講MIS數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)分為以下五個(gè)階段:需求分析;概念結(jié)構(gòu)設(shè)計(jì);邏輯結(jié)構(gòu)設(shè)計(jì);物理結(jié)構(gòu)設(shè)計(jì),實(shí)施維護(hù)階段。

1)需求分析,它是整個(gè)設(shè)計(jì)過程的基礎(chǔ),是最困難、最耗費(fèi)時(shí)間的一步,其目的是準(zhǔn)確了解與分析用戶需求(包括數(shù)據(jù)和處理)。需求分析的任務(wù)是通過詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對象(組織、部門、企業(yè)等),充分了解原系統(tǒng)(手工系統(tǒng)或計(jì)算機(jī)系統(tǒng))工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能,其重點(diǎn)是“數(shù)據(jù)”和“處理”,通過調(diào)查、收集和分析,獲得用戶對數(shù)據(jù)庫的需求。

2)數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)。它是將分析得到的用戶需求抽象為概念模型的過程,即在需求分析的基礎(chǔ)上,設(shè)計(jì)出能夠滿足用戶需求的各種實(shí)體以及它們之間的相互關(guān)系概念結(jié)構(gòu)設(shè)計(jì)模型[2]。它是整個(gè)數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵。概念結(jié)構(gòu)的主要特點(diǎn)是能真實(shí)、充分地反映現(xiàn)實(shí)世界;易于理解;易于更改;易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。描述概念模型的有力工具是E-R模型。設(shè)計(jì)概念結(jié)構(gòu)通常有四類方法:自頂向下,即首先定義全局概念結(jié)構(gòu)的框架,然后逐步細(xì)化;自底向上,即首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來,得到全局概念結(jié)構(gòu)逐步擴(kuò)張。逐步擴(kuò)張,首先定義最重要的核心概念結(jié)構(gòu),然后向外擴(kuò)充,以滾雪球的方式逐步生成其他概念結(jié)構(gòu),直至總體概念結(jié)構(gòu);混合策略。即將自頂向下和自底向上相結(jié)合,用自頂向下策略設(shè)計(jì)一個(gè)全局概念結(jié)構(gòu)的框架,以它為骨架集成由自底向上策略中設(shè)計(jì)的各局部概念結(jié)構(gòu)。

3)數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)。其任務(wù)就是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R圖轉(zhuǎn)換為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。主要分三步進(jìn)行:將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型;將轉(zhuǎn)換來的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換;對數(shù)據(jù)模型進(jìn)行優(yōu)化。

4)數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計(jì)。為一個(gè)給定的邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用要求的物理結(jié)果的過程,就是數(shù)據(jù)庫的物理設(shè)計(jì)。數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計(jì)通常分為兩步:確定數(shù)據(jù)庫的物理結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫中主要指存取方法和存儲結(jié)構(gòu);對物理結(jié)構(gòu)進(jìn)行評價(jià),評價(jià)的重點(diǎn)是時(shí)間和空間效率。

5)數(shù)據(jù)庫實(shí)施維護(hù)階段。實(shí)施就是運(yùn)用DBMS提供的數(shù)據(jù)語言、工具及宿主語言,根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,并進(jìn)行試運(yùn)行。維護(hù)即系統(tǒng)經(jīng)過試運(yùn)行后不斷地對其進(jìn)行評價(jià)、調(diào)整與修改等。

3 MIS中數(shù)據(jù)庫設(shè)計(jì)關(guān)鍵點(diǎn)

3.1 命名規(guī)則

統(tǒng)一命名規(guī)則可以使數(shù)據(jù)庫的結(jié)構(gòu)和風(fēng)格標(biāo)準(zhǔn)化,使數(shù)據(jù)庫表容易閱讀、理解和維護(hù)。好的命名約定可使數(shù)據(jù)庫表結(jié)構(gòu)嚴(yán)謹(jǐn)、可讀性強(qiáng)且邏輯關(guān)系清晰。因此,在系統(tǒng)面向?qū)ο竽P拖驍?shù)據(jù)庫物理模型轉(zhuǎn)化之前,將數(shù)據(jù)庫的各個(gè)對象命名進(jìn)行規(guī)則約定,對數(shù)據(jù)庫建模具有重大的意義。1)所有的數(shù)據(jù)庫對象,如表、視圖、觸發(fā)器、索引、存儲過程、包、包體、函數(shù)、約束、主外鍵必須按照一定得規(guī)則命名,且命名應(yīng)能保證其直觀性。如視圖(V_規(guī)則命名或規(guī)則命名_V),函數(shù)(F_規(guī)則命名或規(guī)則命名_F),檢查(CK_規(guī)則命名或規(guī)則命名_CK),觸發(fā)器(TR_規(guī)則命名或規(guī)則命名_TR),索引(IDX_表名或表名_IDX),序列(SEQ_表明_字段名或表明_字段名_SEQ),存儲過程(P_規(guī)則命名或規(guī)則命名_P)等。如果由于數(shù)據(jù)庫對象之間的命名規(guī)則與最大長度限制可能造成命名存在沖突,則可以通過縮減表名或自編序號。2)對于數(shù)據(jù)庫表,直接與業(yè)務(wù)相聯(lián)系,同時(shí)其也決定著相關(guān)主鍵外鍵,觸發(fā)器,檢查,索引,序列的命名,因此非常重要。為了便于維護(hù),表的命名應(yīng)該遵從模塊,業(yè)務(wù),明細(xì)的規(guī)則,即保證基礎(chǔ)數(shù)據(jù)表則采用通用的識別方法。如進(jìn)貨模塊采用通用名_SU_COM_DOC表示進(jìn)貨合同類的表,通用名_SA_CON_DOC表示銷售類的合同表,通用名_SU_SET_DOC表示進(jìn)貨結(jié)算的表,通用名_SA_BACK_DOC表示銷售退貨的表等。

3.2 表的設(shè)計(jì)

表是關(guān)系數(shù)據(jù)庫中基本的數(shù)據(jù)邏輯存儲塊。表設(shè)計(jì)是數(shù)據(jù)庫物理設(shè)計(jì)的第一步,也是整個(gè)設(shè)計(jì)過程中關(guān)鍵的一步。根據(jù)系統(tǒng)需求分析和業(yè)務(wù)邏輯模型分析的結(jié)果開始進(jìn)行表的設(shè)計(jì)。表設(shè)計(jì)要綜合考慮以下因素:完整性,完整性是在數(shù)據(jù)庫中管理父記錄和子記錄的概念,它是通過主鍵,外鍵,檢查約束等保證數(shù)據(jù)的一致性;規(guī)范化,規(guī)范化過程是模型化和設(shè)計(jì)關(guān)系數(shù)據(jù)庫的基礎(chǔ),它的目的是消除數(shù)據(jù)冗余、避免非規(guī)范化數(shù)據(jù)庫中的數(shù)據(jù)更新異常以及簡化完整性約束的執(zhí)行。以武漢某公司信息系統(tǒng)為例,其銷售模塊的銷售合同數(shù)據(jù)庫表在設(shè)計(jì)過程如下:

首先為表進(jìn)行分類:兩個(gè)主表,銷售合同(BMS_SA_CON_DOC,BMS_SA_CON_DTL),在這兩個(gè)主表上,會保存的信息有業(yè)務(wù)員,客戶,貨品,價(jià)格,數(shù)量等信息,因此其關(guān)聯(lián)表為PUB_EMPLOYEE,PUB_COMPANY,PUB_GOODS,PUB_GOODS_PRICE,等。顯然這三個(gè)表的主鍵EMPLOYEEID,COMPANY ID,GOODSID,應(yīng)該是BMS_SA_CON_DOC,BMS_SA_CON_DTL的外鍵,其他類間的關(guān)聯(lián)關(guān)系是同樣的處理方式。

其次,對數(shù)據(jù)冗余進(jìn)行控制和調(diào)整。同一客戶在采購時(shí),可能會有不同的貨品,因此采用主從表的方式,即BMS_SA_CON_DOC,BMS_SA_CON_DTL,前者的主鍵是后者的外鍵,后者依附于前者存在。這樣同一次采購的公用信息不用多次存儲,減少數(shù)據(jù)冗余。其次,合同中會包含貨品名稱,規(guī)格,業(yè)務(wù)員等字符串信息,這些信息會占用較大的存儲空間,因此在表的設(shè)計(jì)時(shí),合同中只記錄這些表中的主鍵,如COMPANY的主鍵即COMPANYID,GOODS的主鍵GOODSID等。在合同錄入時(shí),自動通過關(guān)聯(lián)將其他信息帶出來方便系統(tǒng)使用者選擇,但是在數(shù)據(jù)庫保存時(shí),則忽略非主鍵信息。

總體上講,表的設(shè)計(jì)要遵從一定的范式要求。一個(gè)關(guān)系模式按照數(shù)據(jù)庫范式的要求,可以分解成不同的關(guān)系模式集合,得到的關(guān)系模式集合往往不是唯一的。按照減少冗余的要求可以將數(shù)據(jù)庫分成多個(gè)關(guān)系模式集合,只要分解后的數(shù)據(jù)庫能夠表達(dá)原來數(shù)據(jù)庫所有的信息。減少冗余的目的,一是可以節(jié)約存儲空間,二是可以避免數(shù)據(jù)的不一致,提高對數(shù)據(jù)庫的操作效率,同時(shí)也可以滿足應(yīng)用的需求。對于不太復(fù)雜的數(shù)據(jù)庫,一般設(shè)計(jì)時(shí)能夠符合到第三范式即可。當(dāng)然也要注意,高范式的數(shù)據(jù)庫必然意味著查詢時(shí)的耳朵關(guān)聯(lián),這樣會導(dǎo)致查詢效率不高,因此采用“以空間換速度”的思路也是必須的。根據(jù)數(shù)據(jù)庫范式的要求,可以建立標(biāo)準(zhǔn)的數(shù)據(jù)庫。通過使用多個(gè)、存在相互聯(lián)系的具有較少字段的表來構(gòu)建數(shù)據(jù)庫,盡量減少使用多列的寬表,這樣可以帶來幾個(gè)好處:1)由于表所包含的字段較少,進(jìn)行排序和索引時(shí)的效率會更高。2)由于使用多個(gè)表,可以使用多簇索引來提高效率。3)由于表中所包含的字段相對較少,在選擇主鍵和索引時(shí)會更容易,而且較少的索引也使得表在做插入、更新、刪除等操作時(shí)的效率更高。

4 MIS中數(shù)據(jù)庫構(gòu)架設(shè)計(jì)

4.1 表空間及數(shù)據(jù)文件設(shè)計(jì)

表空間是ORCLE數(shù)據(jù)庫中較為特殊的概念,如果數(shù)據(jù)庫安裝在UNIX服務(wù)器上,對其的理解具有一定的難度。數(shù)據(jù)庫構(gòu)架時(shí)盡量把同一時(shí)間對磁盤的讀寫操作分散開,如對一個(gè)表中數(shù)據(jù)進(jìn)行更新時(shí),數(shù)據(jù)庫將同時(shí)去讀該表中的數(shù)據(jù)和該表上的索引信息,如果把表的數(shù)據(jù)信息和索引信息都放在同一個(gè)數(shù)據(jù)文件中,則數(shù)據(jù)庫的速度將會變慢。最好的方法是把數(shù)據(jù)信息和索引信息分別放在不同磁盤的兩個(gè)數(shù)據(jù)文件中,此時(shí)數(shù)據(jù)庫對磁盤的讀寫操作將分散在兩個(gè)磁盤上,速度將得到顯著提高。因此在設(shè)計(jì)數(shù)據(jù)庫的表空間和數(shù)據(jù)文件時(shí),首先給表和表的索引分別創(chuàng)建兩個(gè)表空間,分別是存放用戶數(shù)據(jù)的數(shù)據(jù)表空間和存放表索引的索引表空間。另外,還根據(jù)該系統(tǒng)的數(shù)據(jù)量的大小及系統(tǒng)中的數(shù)據(jù)的性質(zhì)不同,再考慮創(chuàng)建幾個(gè)數(shù)據(jù)表空間或者給數(shù)據(jù)表空間添加幾個(gè)數(shù)據(jù)文件[3]。表空間創(chuàng)建時(shí)一般遵循以下幾個(gè)原則:較大的表或索引單獨(dú)分配一個(gè)表空間;高頻率insert的對象分成一組,存在對應(yīng)的TABLESPACE中;增、刪、改的對象分成一組,存在對應(yīng)的TABLESPACE中;表和索引分別存于不同的TABLESPAC等。

數(shù)據(jù)文件是保存數(shù)據(jù)的物理位置,其依附于表空間而存在,因此數(shù)據(jù)文件的設(shè)計(jì)對數(shù)據(jù)庫系統(tǒng)的性能的有重要影響,其設(shè)計(jì)時(shí)應(yīng)注意:把記錄大小相當(dāng)?shù)谋矸旁谕粋€(gè)表空間中,這時(shí)一個(gè)表空間的存儲參數(shù)設(shè)置,可以保證表中的記錄都放在一個(gè)范圍中,避免了一條記錄跨范圍存放,可以明顯數(shù)據(jù)庫的性能;規(guī)定每個(gè)表空間可由多個(gè)數(shù)據(jù)文件組成,每個(gè)數(shù)據(jù)文件大小2G;為了避免磁盤的I/O操作沖突,提高系統(tǒng)性能,把數(shù)據(jù)文件創(chuàng)建在不同位置,即不同表空間或磁盤。

4.2 oracle內(nèi)存分配設(shè)計(jì)

內(nèi)存分配方面最容易引起系統(tǒng)性能下降的原因在于Oracle系統(tǒng)全局區(qū)SGA的一些不恰當(dāng)設(shè)置。結(jié)合一些信息資源綜合管理系統(tǒng),通過查詢V$SYSSTAT視圖中的各種指標(biāo),發(fā)現(xiàn)目前系統(tǒng)運(yùn)行速度過慢的主要原因是SGA內(nèi)部的數(shù)據(jù)高速緩沖區(qū)命中率過低,數(shù)據(jù)庫系統(tǒng)在查詢時(shí)不能從共享池或者數(shù)據(jù)緩沖區(qū)內(nèi)找到己經(jīng)緩存的數(shù)據(jù),從而頻繁地到磁盤上讀取數(shù)據(jù),消耗系統(tǒng)資源,造成等待時(shí)間過長。針對以上問題,采用增大共享池和數(shù)據(jù)緩沖區(qū)、調(diào)整相關(guān)參數(shù)、鼓勵代碼重用等方式提高系統(tǒng)的命中率,減少系統(tǒng)到磁盤上的讀取次數(shù),進(jìn)而減少等待時(shí)間。共享池的主要組件是Library Cache以及Date Dictionary Cache,而最簡單的方法是盡可能放大共享池大小。改進(jìn)Database Buffer Cache的性能也有利于提高數(shù)據(jù)庫性能,改進(jìn)Data base Buffer Cache性能的最簡單方法是加大它的大小,其值越大,得到緩存的緩沖區(qū)就越不可能被LRU列表從 Buffer Cache中刪除掉。緩沖區(qū)在Data base Buffer Cache中存儲的時(shí)間越長,命中率就會越高。

服務(wù)器的內(nèi)存一定的情況下,一般遵循OS使用內(nèi)存+SGA+并發(fā)進(jìn)程數(shù)×(Sort_area_size+Hash_area_size+2M)<0.7RAM這個(gè)公式為參考進(jìn)行自由調(diào)整即可。初始化參數(shù)文件中的一些參數(shù)對SGA的大小有決定性的影響。另外DB_BLOCKSIZE數(shù)據(jù)塊大小,DB_BLOCK_BUFFERS數(shù)據(jù)塊緩沖區(qū),LOG_BUFFER日志緩沖區(qū),SORT_AREASIZE,SORT_AREARETAINED_SIZE的大小,ROLLBACK_SEGMENTS回滾段等參數(shù)也必須在對初始參數(shù)運(yùn)行之后,進(jìn)行有效的分析并進(jìn)行改進(jìn),才能達(dá)成內(nèi)存的最優(yōu)化配置。

[1] 楊媛媛.J2EE環(huán)境下通用數(shù)據(jù)操作框架的研究[D].山東大學(xué),2006.

[2] 李建中,王珊.數(shù)據(jù)庫系統(tǒng)原理[M].北京:電子工業(yè)出版社,2004.

[3] 陳渝,秦開大,田亮.基于Power Designer的信息系統(tǒng)數(shù)據(jù)模型建設(shè)[J].昆明理工大學(xué)學(xué)報(bào)(理工版).2004(2):45-47.

猜你喜歡
主鍵數(shù)據(jù)文件命名
基于Go 實(shí)現(xiàn)的分布式主鍵系統(tǒng)研究
命名——助力有機(jī)化學(xué)的學(xué)習(xí)
基于外鍵的E-R圖繪制方法研究
有一種男人以“暖”命名
東方女性(2018年3期)2018-04-16 15:30:02
數(shù)據(jù)文件恢復(fù)專題問答
數(shù)據(jù)文件安全管控技術(shù)的研究與實(shí)現(xiàn)
為一條河命名——在白河源
散文詩(2017年17期)2018-01-31 02:34:08
SQL數(shù)據(jù)文件恢復(fù)工具
Tekla Structure數(shù)據(jù)文件交互格式分析
數(shù)據(jù)庫主鍵的設(shè)計(jì)方法探討
柏乡县| 大安市| 江都市| 乌兰察布市| 太康县| 南和县| 珠海市| 宝山区| 苍溪县| 三门县| 竹北市| 怀远县| 周口市| 油尖旺区| 贵溪市| 凭祥市| 忻城县| 宜兰市| 合江县| 弋阳县| 海林市| 勃利县| 廊坊市| 松桃| 临沧市| 岳池县| 濉溪县| 赞皇县| 理塘县| 全椒县| 区。| 黎川县| 榆林市| 许昌市| 宣武区| 西乌珠穆沁旗| 连南| 客服| 疏勒县| 乐清市| 峨山|