① 信息系統建設是怎樣劃分基礎資料庫和業務資料庫的
一、 引言資料庫對於企業信息化的重要性是不言而喻的。資料庫存儲著現代企業最重要的數據,包括生產、經營、管理等各類數據,這些數據作為企業的核心信息,通過各類信息系統,為用戶提供及時准確的信息,幫助用戶分析,為用戶提供決策依據。為提高企業的工作效率,提升企業形象,具有傳統模式無法比擬的優勢。其中構建合理高效的資料庫,是資料庫建設關鍵之一。如何構建合理高效的資料庫是企業信息化過程要解決的問題。下面就資料庫的構建談談自己的一些經驗,希望能對大家有所幫助。 二、 設計資料庫之前
資料庫並不是憑空想像出來的,而是根據業務部門的需要設計符合業務需求的資料庫。因此在形成資料庫之前需要充分了解業務需求。 1. 充分理解業務需求。需求分析是整個設計過程的基礎,是最困難、最耗費時間的一步。在這期間通過與業務部門交流,了解用戶的想法以及工作流程,通過雙方多次交流,會形成初步的數據模型,當然這時的數據模型不會是最終的模型,還需要和用戶進行交流,並且在以後的信息系統開發過程中還會反復修改。 2. 重視輸入輸出。在定義資料庫表和欄位需求(輸入)時,首先應了解數據產生源和數據流程,也就是必需要知道每個數據在那兒產生,數據在那兒表現,以什麼樣的形式表現等等,然後根據用戶提供的報表或者設計出的報表、查詢和視圖(輸出)以決定為了支持這些輸出哪些是必要的表和欄位。 3. 創建數據字典和ER 圖表。ER 圖表和數據字典可以讓任何了解資料庫的人都明確如何從資料庫中獲得數據。ER圖對表明表之間關系很有用,而數據字典則說明了每個欄位的用途以及任何可能存在的別名。對sql 表達式的文檔化來說這是完全必要的。 需要注意的是,在需求分析調研過程中,並不是一帆風順的,因為業務人員對於業務的理解不同,以及對於信息知識的缺乏,會影響需求分析的質量,為了提高質量,各方要用更多的時間交流與相互理解,業務部門需要精通業務的人員自始至終全力配合,而開發人員則盡量使用用戶理解的業務術語交流,這樣會避免出現理解不同而產生的歧義。 三、 設計合理的表結構
通常合理的表結構會減少數據冗餘,提高資料庫的性能。設計合理的表結構要遵循以下兩點。 1. 標准化和規范化 數據的標准化有助於消除資料庫中的數據冗餘。標准化有好幾種形式,但3NF(第三範式)通常被認為在性能、擴展性和數據完整性方面達到了最好平衡。簡單來說,遵守3NF標準的資料庫的表設計原則是:某個表只包括其本身基本的屬性,當不是它們本身所具有的屬性時需進行分解。表之間的關系通過外鍵相連接。它具有以下特點:有一組表專門存放通過鍵連接起來的關聯數據。 例如:某個存放單井信息及其有關油井生產日報信息的3NF資料庫就有兩個表:單井基礎信息和油井日報信息。日報信息不包含單井的任何信息,但表內會存放一個鍵值,該鍵指向單井基礎信息里包含該油井信息的那一行。 不過也有例外,有時為了效率的緣故,對表不進行標准化也是必要的。 2. 考慮各種變化 在設計資料庫的時候考慮到哪些數據欄位將來可能會發生變更。使資料庫更具擴展性,從而減少將來數據變更所帶來的損失。 例如,日期類型欄位,有時我們會考慮使用字元類型代替日期類型,因為在處理日期欄位上容易產生數據錯誤,所以我們就使用字元類型。這樣的例子還很多,在做前期設計時都要考慮的。 表結構的設計不是一次就能成功的,在信息系統開發過程中會存在數據讀取、錄入或統計困難,為了解決這些問題會修改表結構,或增加一些欄位,或修改一些欄位的屬性。這個過程不斷重復,因此不要想一次能成功。建議使用專門設計工具來做這些工作,筆者經常使用:SYBASE PowerDesigner ,當然還有其它的工具:ORACLE Designer 2000 ,ROSE等工具。這樣會使你的工作事半功倍。 四、 選擇合理的索引
索引是從資料庫中獲取數據的最高效方式之一。95%的資料庫性能問題都可以採用索引技術得到解決。 1. 邏輯主鍵使用唯一的成組索引,對系統鍵(作為存儲過程)採用唯一的非成組索引,對任何外鍵列採用非成組索引。考慮資料庫的空間有多大,表如何進行訪問,還有這些訪問是否主要用作讀寫。 2. 大多數資料庫都索引自動創建的主鍵欄位,但是可別忘了索引外鍵,它們也是經常使用的鍵,比如運行查詢顯示主表和所有關聯表的某條記錄就用得上。 3. 不要索引大型欄位(有很多字元),這樣作會讓索引佔用太多的存儲空間。如MEMO(備注)、TEXT(文本)等欄位。 4. 不要索引常用的小型表 不要為小型數據表設置任何鍵,假如它們經常有插入和刪除操作就更別這樣作了。對這些插入和刪除操作的索引維護可能比掃描表空間消耗更多的時間。如代碼表,或系統參數表。 五、 保證數據完整性
數據的完整性非常重要,這關繫到數據的准確性,不準確的數據是毫無價值的,因此保證數據的完整性非常重要。 1. 完整性實現機制:實體完整性:主鍵參照完整性: 父表中刪除數據:級聯刪除;受限刪除;置空值父表中插入數據:受限插入;遞歸插入 父表中更新數據:級聯更新;受限更新;置空值 DBMS對參照完整性可以有兩種方法實現:外鍵實現機制(約束規則)和觸發器實現機制用戶定義完整性:NOT NULL;CHECK;觸發器 以上完整性機制需要熟悉和掌握,它對於數據的完整性非常重要。 2. 用約束而非業務規則強制數據完整性 採用資料庫系統實現數據的完整性。這不但包括通過標准化實現的完整性而且還包括數據的功能性。在寫數據的時候還可以增加觸發器來保證數據的正確性。不要依賴於業務層保證數據完整性;它不能保證表之間(外鍵)的完整性所以不能強加於其他完整性規則之上。 3. 強制指示完整性 在有害數據進入資料庫之前將其剔除。激活資料庫系統的指示完整性特性。這樣可以保持數據的清潔而能迫使開發人員投入更多的時間處理錯誤條件。 4. 使用查找控制數據完整性 控制數據完整性的最佳方式就是限制用戶的錄入。只要有可能都應該提供給用戶一個清晰的價值列表供其選擇。這樣將減少鍵入代碼的錯誤和誤解同時提供數據的一致性。某些公共數據特別適合查找:性別代碼、單位代碼等。 5. 採用視圖 視圖是一個虛擬表,其內容由SQL語句定義,視圖不僅可以簡化用戶對數據的理解,也可以簡化他們的操作。那些被經常使用的查詢可以被定義為視圖,從而使得用戶不必為以後的操作每次指定全部的條件。另外通過視圖用戶只能查詢和修改他們所能見到的數據。資料庫中的其它數據則既看不見也取不到。資料庫授權命令可以使每個用戶對資料庫的檢索限制到特定的資料庫對象上,增強數據的安全性。 六、 結束語
資料庫的高效運行不僅需要技術上的支持,也需要硬體平台和網路的支持以及資料庫管理員的有效管理,本文只是從技術的角度說明如何提高資料庫的效率,但在實際應用過程中其它方面的支持也是不可缺少的,尤其是資料庫管理,資料庫建設是「三分技術,七分管理,十二分基礎數據」,因此對於資料庫管理一定要重視,在管理到位的情況下技術才能發揮應有的作用。
② 主題資料庫的主題資料庫與應用資料庫的區別
我們看一個簡單的例子。某單位的工資系統是按工資單建資料庫的,職工張華的工資單編號是0104。該單位人事系統是按職工檔案建資料庫的,張華在人事系統中的編號是1122。人事系統要獲得張華的工資數據,需要做介面程序將1122轉換成0104,才能正確地檢索;反之,工資系統要獲得人事系統的數據,需要做介面程序將0104轉換成1122。這樣,2個應用系統至少需要2個介面。如果再加上安監系統和社保系統,共4個應用系統要互相交流數據,就至少需要12個介面。而企業經營管理中如果有20個大大小小「孤島式」的應用系統需要相互交流數據,就至少需要380個介面。這么多的介面無法做完,即使做完所有的介面,整個系統的運行也將是低效率和脆弱的。所以,企圖通過做介面實現系統集成,從來就是可望而不可及的。
解決這類應用系統集成問題的正確方法是:不按照單證報表原樣建立資料庫,而是面向業務主題建立資料庫,這就是主題資料庫。上例中的員工信息是幾個應用系統所共用的,應該對企業的所有員工統一編號,有關員工的信息統一組織存儲,從而能保證信息共享——各應用程序都存取共享的「員工主題資料庫」,這就從根本上取消了不必要的介面。這就是說,通過建立主題資料庫,簡單、科學地實現了應用系統的集成。
發達國家在上世紀70年代中後期至80年代初的信息化初級階段,遇到過包括「信息孤島」問題在內的「數據處理危機」問題。詹姆斯·馬丁(James Martin)提出的主題資料庫概念和有關理論方法,為解決這些問題作出了重要的貢獻,這對我們具有十分重要的借鑒意義。
③ 數據倉庫和資料庫有什麼區別和聯系
簡而言之,資料庫是面向事務的設計,數據倉庫是面向主題設計的。
資料庫一般存儲在線交易數據,數據倉庫存儲的一般是歷史數據。
資料庫設計是盡量避免冗餘,一般採用符合範式的規則來設計,數據倉庫在設計是有意引入冗餘,採用反範式的方式來設計。
資料庫是為捕獲數據而設計,數據倉庫是為分析數據而設計,它的兩個基本的元素是維表和事實表。維是看問題的角度,比如時間,部門,維表放的就是這些東西的定義,事實表裡放著要查詢的數據,同時有維的ID。
單從概念上講,有些晦澀。任何技術都是為應用服務的,結合應用可以很容易地理解。以銀行業務為例。資料庫是事務系統的數據平台,客戶在銀行做的每筆交易都會寫入資料庫,被記錄下來,這里,可以簡單地理解為用資料庫記帳。數據倉庫是分析系統的數據平台,它從事務系統獲取數據,並做匯總、加工,為決策者提供決策的依據。比如,某銀行某分行一個月發生多少交易,該分行當前存款余額是多少。如果存款又多,消費交易又多,那麼該地區就有必要設立ATM了。
顯然,銀行的交易量是巨大的,通常以百萬甚至千萬次來計算。事務系統是實時的,這就要求時效性,客戶存一筆錢需要幾十秒是無法忍受的,這就要求資料庫只能存儲很短一段時間的數據。而分析系統是事後的,它要提供關注時間段內所有的有效數據。這些數據是海量的,匯總計算起來也要慢一些,但是,只要能夠提供有效的分析數據就達到目的了。
數據倉庫,是在資料庫已經大量存在的情況下,為了進一步挖掘數據資源、為了決策需要而產生的,它決不是所謂的「大型資料庫」。那麼,數據倉庫與傳統資料庫比較,有哪些不同呢?讓我們先看看W.H.Inmon關於數據倉庫的定義:面向主題的、集成的、與時間相關且不可修改的數據集合。
「面向主題的」:傳統資料庫主要是為應用程序進行數據處理,未必按照同一主題存儲數據;數據倉庫側重於數據分析工作,是按照主題存儲的。這一點,類似於傳統農貿市場與超市的區別—市場裡面,白菜、蘿卜、香菜會在一個攤位上,如果它們是一個小販賣的;而超市裡,白菜、蘿卜、香菜則各自一塊。也就是說,市場里的菜(數據)是按照小販(應用程序)歸堆(存儲)的,超市裡面則是按照菜的類型(同主題)歸堆的。
「與時間相關」:資料庫保存信息的時候,並不強調一定有時間信息。數據倉庫則不同,出於決策的需要,數據倉庫中的數據都要標明時間屬性。決策中,時間屬性很重要。同樣都是累計購買過九車產品的顧客,一位是最近三個月購買九車,一位是最近一年從未買過,這對於決策者意義是不同的。
「不可修改」:數據倉庫中的數據並不是最新的,而是來源於其它數據源。數據倉庫反映的是歷史信息,並不是很多資料庫處理的那種日常事務數據(有的資料庫例如電信計費資料庫甚至處理實時信息)。因此,數據倉庫中的數據是極少或根本不修改的;當然,向數據倉庫添加數據是允許的。
數據倉庫的出現,並不是要取代資料庫。目前,大部分數據倉庫還是用關系資料庫管理系統來管理的。可以說,資料庫、數據倉庫相輔相成、各有千秋。
補充一下,數據倉庫的方案建設的目的,是為前端查詢和分析作為基礎,由於有較大的冗餘,所以需要的存儲也較大。為了更好地為前端應用服務,數據倉庫必須有如下幾點優點,否則是失敗的數據倉庫方案。
1.效率足夠高。客戶要求的分析數據一般分為日、周、月、季、年等,可以看出,日為周期的數據要求的效率最高,要求24小時甚至12小時內,客戶能看到昨天的數據分析。由於有的企業每日的數據量很大,設計不好的數據倉庫經常會出問題,延遲1-3日才能給出數據,顯然不行的。
2.數據質量。客戶要看各種信息,肯定要准確的數據,但由於數據倉庫流程至少分為3步,2次ETL,復雜的架構會更多層次,那麼由於數據源有臟數據或者代碼不嚴謹,都可以導致數據失真,客戶看到錯誤的信息就可能導致分析出錯誤的決策,造成損失,而不是效益。
3.擴展性。之所以有的大型數據倉庫系統架構設計復雜,是因為考慮到了未來3-5年的擴展性,這樣的話,客戶不用太快花錢去重建數據倉庫系統,就能很穩定運行。主要體現在數據建模的合理性,數據倉庫方案中多出一些中間層,使海量數據流有足夠的緩沖,不至於數據量大很多,就運行不起來了。
④ 主題資料庫的特點
主題資料庫的基本特徵有:
1.面向業務主題。主題資料庫是面向業務主題的數據組織存儲,例如,企業中需要建立的典型的主題資料庫有:產品、客戶、零部件、供應商、訂貨、員工、文件資料、工程規范等。其中產品、客戶、零部件等資料庫的結構,是對有關單證、報表的數據項進行分析整理而設計的,不是按單證、報表的原樣建立的。這些主題資料庫與企業管理中要解決的主要問題相關聯,而不是與通常的計算機應用項目相關聯。
2.信息共享。主題資料庫是對各個應用系統「自建自用」的資料庫的徹底否定,強調建立各個應用系統「共建共用」的共享資料庫。不同的應用系統的計算機程序調用這些主題資料庫,例如,庫存管理調用產品、零部件、訂貨資料庫;采購調用零部件、供應商、工程規范資料庫等。
3.一次一處輸入系統。主題資料庫要求調研分析企業各經營管理層次上的數據源,強調數據的就地採集,就地處理、使用和存儲,以及必要的傳輸、匯總和集中存儲。同一數據必須一次、一處進入系統,保證其准確性、及時性和完整性,經由網路-計算機-資料庫系統,可以多次、多處使用。
4.由基本表組成。一個主題資料庫的科學的數據結構,是由多個達到「基本表」 (Base Table)規范的數據實體構成的,這些基本表具有如下的特性:
· 原子性——基本表中的數據項是數據元素(即最小的、不能再分解的信息單元);
· 演繹性——可由基本表中的數據生成全部輸出數據(即這些基本表是精練的,經過計算處理可以產生全部企業管理所需要的數據);
· 規范性——基本表中數據滿足三範式(3-NF)要求,這是科學的、能滿足演繹性要求、並能保證快捷存取的數據結構。
⑤ 資料庫與數據倉庫的區別
資料庫是面向事務的設計,數據倉庫是面向主題設計的。資料庫一般存儲在線交易數據,數據倉庫存儲的一般是歷史數據。
「與時間相關」:資料庫保存信息的時候,並不強調一定有時間信息。數據倉庫則不同,出於決策的需要,數據倉庫中的數據都要標明時間屬性。決策中,時間屬性很重要。同樣都是累計購買過九車產品的顧客,一位是最近三個月購買九車,一位是最近一年從未買過,這對於決策者意義是不同的。
「不可修改」:數據倉庫中的數據並不是最新的,而是來源於其它數據源。數據倉庫反映的是歷史信息,並不是很多資料庫處理的那種日常事務數據(有的資料庫例如電信計費資料庫甚至處理實時信息)。因此,數據倉庫中的數據是極少或根本不修改的;當然,向數據倉庫添加數據是允許的。
拓展資料:
數據倉庫的出現,並不是要取代資料庫。數據倉庫,是在資料庫已經大量存在的情況下,為了進一步挖掘數據資源、為了決策需要而產生的,它決不是所謂的「大型資料庫」。
目前,大部分數據倉庫還是用關系資料庫管理系統來管理的。可以說,資料庫、數據倉庫相輔相成、各有千秋。
⑥ 大數據里的基礎庫、主題庫、專題庫有什麼區別,各自呈現方式是什麼,比如政務行業
基礎庫一般是指業務中原有的如常口,企業登記等
主題庫是指把針對某一主題的相關類別的表集成到一起,如出行。
專題庫一般是某領域內的某特定時期的專項業務,所形成的表,如xxx事件,xx活動
表現形式上以sql庫為主。
⑦ 數據倉庫與資料庫的主要區別有
首先我們來了解數據倉庫和資料庫分別是什麼:
1、資料庫:是一種邏輯概念,用來存放數據的倉庫,通過資料庫軟體來實現。資料庫由很多表組成,表是二維的,一張表裡面有很多欄位。欄位一字排開,對數據就一行一行的寫入表中。資料庫的表,在於能夠用二維表現多維的關系。如:oracle、DB2、MySQL、Sybase、MSSQL Server等。
2、數據倉庫:是資料庫概念的升級。從邏輯上理解,資料庫和數據倉庫沒有區別,都是通過資料庫軟體實現存放數據的地方,只不過從數據量來說,數據倉庫要比資料庫更龐大德多。數據倉庫主要用於數據挖掘和數據分析,輔助領導做決策;
區別主要總結為以下幾點:
1.資料庫只存放在當前值,數據倉庫存放歷史值;
2.資料庫內數據是動態變化的,只要有業務發生,數據就會被更新,而數據倉庫則是靜態的歷史數據,只能定期添加、刷新;
3.資料庫中的數據結構比較復雜,有各種結構以適合業務處理系統的需要,而數據倉庫中的數據結構則相對簡單;
4.資料庫中數據訪問頻率較高,但訪問量較少,而數據倉庫的訪問頻率低但訪問量卻很高;
5.資料庫中數據的目標是面向業務處理人員的,為業務處理人員提供信息處理的支持,而數據倉庫則是面向高層管理人員的,為其提供決策支持;
6.資料庫在訪問數據時要求響應速度快,其響應時間一般在幾秒內,而數據倉庫的響應時間則可長達數幾小時
⑧ 資料庫和數據倉庫的區別在哪兒
數據倉庫和資料庫就好比倉庫和倉庫管理員一樣,倉庫作用是存放東西的,而倉庫管理員是管理倉庫的里的東西的,例如倉庫管理員可以將其他東西放進倉庫或從倉庫中取出,也可以將倉庫里東西按某種方式擺放等資料庫就好比倉庫管理員,資料庫可將數據放進數據倉庫,也可以從數據倉庫中取出數據.數據倉庫就是用來存放數據的.
⑨ 資料庫和數據倉庫的區別是什麼
大家都知道,我們在進行數據分析工作的時候會用到資料庫這一工具,可能大家還聽說過數據倉庫這個工具,資料庫和數據倉庫很容易被大家混淆。很多人認為資料庫和數據倉庫是一類事物,其實並不只是這樣的,那麼大家知不知道資料庫和數據倉庫的區別是什麼呢?下面我們就為大家介紹一下資料庫和數據倉庫的相關知識。
一般來說,傳統資料庫是為存儲而生,而數據倉庫很明顯,是為分析而生。實現目的的不同一開始就註定它們的差異。傳統資料庫包括增刪改查,但數據倉庫注重查詢。而傳統資料庫的主要任務是執行聯機事務處理。主要負責日常操作。而數據倉庫系統在數據分析和決策方面為用戶或「知識工人」提供服務,可以以不同的格式組織和提供數據,以便應付不同的需求,這種系統稱作聯機分析處理。這就是資料庫和數據倉庫的相關知識。
那麼數據倉庫和資料庫的區別是什麼呢?首先需要我們考慮用戶和系統的面向對象,資料庫是面向顧客的,用戶操作員,客戶和信息技術人員的事務和查詢處理。數據倉庫是面向市場的,用於知識工人的數據分析。從中我們可以發現資料庫和數據倉庫的面向對象是不一樣的。
當然,在數據內容中兩者也是有很大的區別的,一般來說資料庫管理當前數據。但是一般這種數據比較瑣碎,很難用於決策。數據倉庫系統管理大量歷史數據,提供匯總和聚集機制,而且在不同的粒度層上存儲和管理信息。
在資料庫設計設計中,資料庫和數據倉庫也是有區別的,資料庫系統採用實體聯系數據模型和面向應用的資料庫設計。而數據倉庫系統採用星形或雪花模型和面向主題的資料庫設計。
而在視圖中,二者也是有所區別的,資料庫關注一個企業或部門內部的當前數據,不涉及歷史數據或不同單位的數據。數據倉庫經常需要跨域資料庫模式的不同版本。
在訪問模式中,資料庫和數據倉庫也是有所區別的,資料庫系統主要由短的原子事務組成,一般需要並發控制和恢復機制。而數據倉庫系統的訪問大部分是只讀操作。
在這篇文章中我們給大家介紹了關於資料庫和數據倉庫之間的區別的相關知識,通過對這些知識的了解我們可以更好地區分資料庫和數據倉庫,也希望大家在學習過程中能夠融會貫通,得心應手。