① 數據湖和數據倉庫的區別是什麼
數據湖就是一個集中存儲資料庫,用於存儲所有結構化和非結構化數據。數據湖可用其原生格式存儲任何類型的數據,這是沒有大小限制。
數據倉庫是位於多個資料庫上的大容量存儲庫。它的作用是存儲大量的結構化數據,並能進行頻繁和可重復的分析。
數據科學家
可能會用具有預測建模和統計分析等功能的高級分析工具。而數據倉庫就是數據倉庫非常適用於月度報告等操作用途,因為它具有高度結構化。在架構中數據湖通常,在存儲數據之後定義架構。使用較少的初始工作並提供更大的靈活性。
在數據倉庫中存儲數據之前定義架構。這需要你清理和規范化數據,這意味著架構的靈活性要低不少。
其實數據倉庫和數據湖是我們都需要的地方,數據倉庫非常適用於業務實踐中常見的可重復報告。當我們執行不太直接的分析時,數據湖就很有用。
② 數據中台和數據倉庫的區別是什麼
數據中台與數據倉庫沒有直接關系,在某個維度上他們為業務產生價值的形式有不同的側重,數據中台距離業務更近,能更快速地響應業務和應用開發的需求,可追溯、更精準。
1、概念上的區別
數據中台:企業級的邏輯概念,體現企業 D2V(Data to Value)的能力。
數據倉庫:一個相對具體的功能概念,是存儲和管理一個或多個主題數據的集合。
2、應用上的區別
數據中台:距離業務更近,通過將數據服務化之後提供給業務系統,為業務提供速度更快的服務,不僅限於分析型場景,也適用於交易型場景,強調共享和復用;
數據倉庫:支持管理決策分析,主要應用於BI;
3、價值上的區別
數據中台:建立在數據倉庫和大數據平台上,是加速企業從數據到業務價值過程的中間層。數據中台將數據生產為一個個數據 API 服務,以更高效的方式為業務提供服務。
數據倉庫:存儲的數據大多是根據需求有針對性抽取的結構化歷史數據,能夠生成各類報表,但這些報表都無法實時產生,因此,盡管能提供部分業務價值,但不能直接影響業務。
數據倉庫算產品,數據中台的精髓在於其機制,數據中台不是一個產品,而是一套體系,是一種組織架構,數據中台的開發和建設既可以建立企業數據倉庫基礎上,也可以建立在企業大數據平台基礎上,區別就在於企業的數據應用場景是否多元化。
③ 數據倉庫和數據集市的區別
數據集市作為數據倉庫的一個組成部分,應從數據倉庫中導出,也就是說,首先要建立數據倉庫,然後從數據倉庫自然生成數據集市。
但在財務、人力資源及管理部門,在技術和管理的成熟度有限的情況下,先建立數據集市可以達到先取得試點經驗,然後成熟一個又一個的效果。這聽起來是不錯,但是需要注意的是數據倉庫的宗旨是為企業信息系統提供一個集成的解決辦法,不管數據集市大小,都要建立在數據倉庫的總體設計框架上,一定要在確定企業級數據倉庫的大前提下著手開發數據集市。不管用哪一種方式,都要實行集中化的設計,任何數據集市設計都要在企業級的數據倉庫概念設計的原則指導下進行,實行標准化並採用共享的參照表和維表。
④ 資料庫這類軟體 是干什麼的
下面的資料是在網路找的,樓主有空可以看看。
我是做it的,跟你說說我的感受吧,僅供參考。
資料庫是為了數據的存儲和操作方便才使用的。如果不用也可以,有的時候,
把數據記錄在文件上(如txt)也是可以的,但大量數據操作起來比較麻煩。
現在資料庫類型多,大型小型都有,所以能用的話,還是比較方便的。
定義1
當人們從不同的角度來描述這一概念時就有不同的定義(當然是描述性的)。例如,稱資料庫是一個「記錄保存系統」(該定義強調了資料庫是若干記錄的集合)。又如稱資料庫是「人們為解決特定的任務,以一定的組織方式存儲在一起的相關的數據的集合」(該定義側重於數據的組織)。更有甚者稱資料庫是「一個數據倉庫」。當然,這種說法雖然形象,但並不嚴謹。
嚴格地說,資料庫是「按照數據結構來組織、存儲和管理數據的倉庫」。在經濟管理的日常工作中,常常需要把某些相關的數據放進這樣「倉庫」,並根據管理的需要進行相應的處理。例如,企業或事業單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡歷等)存放在表中,這張表就可以看成是一個資料庫。有了這個"數據倉庫"我們就可以根據需要隨時查詢某職工的基本情況,也可以查詢工資在某個范圍內的職工人數等等。這些工作如果都能在計算機上自動進行,那我們的人事管理就可以達到極高的水平。此外,在財務管理、倉庫管理、生產管理中也需要建立眾多的這種"資料庫",使其可以利用計算機實現財務、倉庫、生產的自動化管理。
J.Martin給資料庫下了一個比較完整的定義:資料庫是存儲在一起的相關數據的集合,這些數據是結構化的,無有害的或不必要的冗餘,並為多種應用服務;數據的存儲獨立於使用它的程序;對資料庫插入新數據,修改和檢索原有數據均能按一種公用的和可控制的方式進行。當某個系統中存在結構上完全分開的若干個資料庫時,則該系統包含一個「資料庫集合」。
定義2
資料庫是依照某種數據模型組織起來並存放二級存儲器中的數據集合。這種數據集合具有如下特點:盡可能不重復,以最優方式為某個特定組織的多種應用服務,其數據結構獨立於使用它的應用程序,對數據的增、刪、改和檢索由統一軟體進行管理和控制。從發展的歷史看,資料庫是數據管理的高級階段,它是由文件管理系統發展起來的。
[編輯本段]資料庫的基本結構
資料庫的基本結構分三個層次,反映了觀察資料庫的三種不同角度。
(1)物理數據層。
它是資料庫的最內層,是物理存貯設備上實際存儲的數據的集合。這些數據是原始數據,是用戶加工的對象,由內部模式描述的指令操作處理的位串、字元和字組成。
(2)概念數據層。
它是資料庫的中間一層,是資料庫的整體邏輯表示。指出了每個數據的邏輯定義及數據間的邏輯聯系,是存貯記錄的集合。它所涉及的是資料庫所有對象的邏輯關系,而不是它們的物理情況,是資料庫管理員概念下的資料庫。
(3)邏輯數據層。
它是用戶所看到和使用的資料庫,表示了一個或一些特定用戶使用的數據集合,即邏輯記錄的集合。
資料庫不同層次之間的聯系是通過映射進行轉換的。
[編輯本段]資料庫的主要特點
(1)實現數據共享。
數據共享包含所有用戶可同時存取資料庫中的數據,也包括用戶可以用各種方式通過介面使用資料庫,並提供數據共享。
(2)減少數據的冗餘度。
同文件系統相比,由於資料庫實現了數據共享,從而避免了用戶各自建立應用文件。減少了大量重復數據,減少了數據冗餘,維護了數據的一致性。
(3)數據的獨立性。
數據的獨立性包括資料庫中資料庫的邏輯結構和應用程序相互獨立,也包括數據物理結構的變化不影響數據的邏輯結構。
(4)數據實現集中控制。
文件管理方式中,數據處於一種分散的狀態,不同的用戶或同一用戶在不同處理中其文件之間毫無關系。利用資料庫可對數據進行集中控制和管理,並通過數據模型表示各種數據的組織以及數據間的聯系。
(5)數據一致性和可維護性,以確保數據的安全性和可靠性。
主要包括:①安全性控制:以防止數據丟失、錯誤更新和越權使用;②完整性控制:保證數據的正確性、有效性和相容性;③並發控制:使在同一時間周期內,允許對數據實現多路存取,又能防止用戶之間的不正常交互作用;④故障的發現和恢復:由資料庫管理系統提供一套方法,可及時發現故障和修復故障,從而防止數據被破壞
[編輯本段]資料庫發展階段
資料庫發展階段大致劃分為如下幾個階段:
人工管理階段;
文件系統階段;
資料庫系統階段;
高級資料庫階段。
[編輯本段]資料庫結構與資料庫種類
資料庫通常分為層次式資料庫、網路式資料庫和關系式資料庫三種。而不同的資料庫是按不同的數據結構來聯系和組織的。
1.數據結構模型
(1)數據結構
所謂數據結構是指數據的組織形式或數據之間的聯系。如果用D表示數據,用R表示數據對象之間存在的關系集合,則將DS=(D,R)稱為數據結構。例如,設有一個電話號碼簿,它記錄了n個人的名字和相應的電話號碼。為了方便地查找某人的電話號碼,將人名和號碼按字典順序排列,並在名字的後面跟隨著對應的電話號碼。這樣,若要查找某人的電話號碼(假定他的名字的第一個字母是Y),那麼只須查找以Y開頭的那些名字就可以了。該例中,數據的集合D就是人名和電話號碼,它們之間的聯系R就是按字典順序的排列,其相應的數據結構就是DS=(D,R),即一個數組。(2)數據結構種類
數據結構又分為數據的邏輯結構和數據的物理結構。數據的邏輯結構是從邏輯的角度(即數據間的聯系和組織方式)來觀察數據,分析數據,與數據的存儲位置無關。數據的物理結構是指數據在計算機中存放的結構,即數據的邏輯結構在計算機中的實現形式,所以物理結構也被稱為存儲結構。這里只研究數據的邏輯結構,並將反映和實現數據聯系的方法稱為數據模型。
目前,比較流行的數據模型有三種,即按圖論理論建立的層次結構模型和網狀結構模型以及按關系理論建立的關系結構模型。
2.層次、網狀和關系資料庫系統
(1)層次結構模型
層次結構模型實質上是一種有根結點的定向有序樹(在數學中"樹"被定義為一個無回的連通圖)。例如圖20.6.4是一個高等學校的組織結構圖。這個組織結構圖像一棵樹,校部就是樹根(稱為根結點),各系、專業、教師、學生等為枝點(稱為結點),樹根與枝點之間的聯系稱為邊,樹根與邊之比為1:N,即樹根只有一個,樹枝有N個。
按照層次模型建立的資料庫系統稱為層次模型資料庫系統。IMS(Information Manage-mentSystem)是其典型代表。
(2)網狀結構模型
按照網狀數據結構建立的資料庫系統稱為網狀資料庫系統,其典型代表是DBTG(Data Base Task Group)。用數學方法可將網狀數據結構轉化為層次數據結構。
(3)關系結構模型
關系式數據結構把一些復雜的數據結構歸結為簡單的二元關系(即二維表格形式)。例如某單位的職工關系就是一個二元關系。
由關系數據結構組成的資料庫系統被稱為關系資料庫系統。
在關系資料庫中,對數據的操作幾乎全部建立在一個或多個關系表格上,通過對這些關系表格的分類、合並、連接或選取等運算來實現數據的管理。dBASEII就是這類資料庫管理系統的典型代表。對於一個實際的應用問題(如人事管理問題),有時需要多個關系才能實現。用dBASEII建立起來的一個關系稱為一個資料庫(或稱資料庫文件),而把對應多個關系建立起來的多個資料庫稱為資料庫系統。dBASEII的另一個重要功能是通過建立命令文件來實現對資料庫的使用和管理,對於一個資料庫系統相應的命令序列文件,稱為該資料庫的應用系統。因此,可以概括地說,一個關系稱為一個資料庫,若干個資料庫可以構成一個資料庫系統。資料庫系統可以派生出各種不同類型的輔助文件和建立它的應用系統。
[編輯本段]常用資料庫
1. IBM 的DB2
作為關系資料庫領域的開拓者和領航人,IBM在1997年完成了System R系統的原型,1980年開始提供集成的資料庫伺服器—— System/38,隨後是SQL/DSforVSE和VM,其初始版本與SystemR研究原型密切相關。DB2 forMVSV1 在1983年推出。該版本的目標是提供這一新方案所承諾的簡單性,數據不相關性和用戶生產率。1988年DB2 for MVS 提供了強大的在線事務處理(OLTP)支持,1989 年和1993 年分別以遠程工作單元和分布式工作單元實現了分布式資料庫支持。最近推出的DB2 Universal Database 6.1則是通用資料庫的典範,是第一個具備網上功能的多媒體關系資料庫管理系統,支持包括Linux在內的一系列平台。
2. Oracle
Oracle 前身叫SDL,由Larry Ellison 和另兩個編程人員在1977創辦,他們開發了自己的拳頭產品,在市場上大量銷售,1979 年,Oracle公司引入了第一個商用SQL 關系資料庫管理系統。Oracle公司是最早開發關系資料庫的廠商之一,其產品支持最廣泛的操作系統平台。目前Oracle關系資料庫產品的市場佔有率名列前茅。
3. Informix
Informix在1980年成立,目的是為Unix等開放操作系統提供專業的關系型資料庫產品。公司的名稱Informix便是取自Information 和Unix的結合。Informix第一個真正支持SQL語言的關系資料庫產品是Informix SE(StandardEngine)。InformixSE是在當時的微機Unix環境下主要的資料庫產品。它也是第一個被移植到Linux上的商業資料庫產品。
4. Sybase
Sybase公司成立於1984年,公司名稱「Sybase」取自「system」和「database」 相結合的含義。Sybase公司的創始人之一Bob Epstein 是Ingres 大學版(與System/R同時期的關系資料庫模型產品)的主要設計人員。公司的第一個關系資料庫產品是1987年5月推出的Sybase SQLServer1.0。Sybase首先提出Client/Server 資料庫體系結構的思想,並率先在Sybase SQLServer 中實現。
5. SQL Server
1987 年,微軟和IBM合作開發完成OS/2,IBM 在其銷售的OS/2 ExtendedEdition 系統中綁定了OS/2Database Manager,而微軟產品線中尚缺少資料庫產品。為此,微軟將目光投向Sybase,同Sybase 簽訂了合作協議,使用Sybase的技術開發基於OS/2平台的關系型資料庫。1989年,微軟發布了SQL Server 1.0 版。
6. PostgreSQL
PostgreSQL 是一種特性非常齊全的自由軟體的對象——關系性資料庫管理系統(ORDBMS),它的很多特性是當今許多商業資料庫的前身。PostgreSQL最早開始於BSD的Ingres項目。PostgreSQL 的特性覆蓋了SQL-2/SQL-92和SQL-3。首先,它包括了可以說是目前世界上最豐富的數據類型的支持;其次,目前PostgreSQL 是唯一支持事務、子查詢、多版本並行控制系統、數據完整性檢查等特性的唯一的一種自由軟體的資料庫管理系統.
7.mySQL
mySQL是一個小型關系型資料庫管理系統,開發者為瑞典MySQL AB公司。在2008年1月16號被Sun公司收購。目前MySQL被廣泛地應用在Internet上的中小型網站中。由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站資料庫。MySQL的官方網站的網址是: www.mysql.com
[編輯本段]資料庫發展史
資料庫技術從誕生到現在,在不到半個世紀的時間里,形成了堅實的理論基礎、成熟的商業產品和廣泛的應用領域,吸引越來越多的研究者加入。資料庫的誕生和發展給計算機信息管理帶來了一場巨大的革命。三十多年來,國內外已經開發建設了成千上萬個資料庫,它已成為企業、部門乃至個人日常工作、生產和生活的基礎設施。同時,隨著應用的擴展與深入,資料庫的數量和規模越來越大,資料庫的研究領域也已經大大地拓廣和深化了。30年間資料庫領域獲得了三次計算機圖靈(C.W. Bachman,E.F.Codd, J.Gray),更加充分地說明了資料庫是一個充滿活力和創新精神的領域。就讓我們沿著歷史的軌跡,追溯一下資料庫的發展歷程。
一、資料庫發展簡史
1. 數據管理的誕生
資料庫的歷史可以追溯到五十年前,那時的數據管理非常簡單。通過大量的分類、比較和表格繪制的機器運行數百萬穿孔卡片來進行數據的處理,其運行結果在紙上列印出來或者製成新的穿孔卡片。而數據管理就是對所有這些穿孔卡片進行物理的儲存和處理。然而,1 9 5 1 年雷明頓蘭德公司(Remington Rand Inc.)的一種叫做Univac I 的計算機推出了一種一秒鍾可以輸入數百條記錄的磁帶驅動器,從而引發了數據管理的革命。1956 年IBM生產出第一個磁碟驅動器—— the Model 305 RAMAC。此驅動器有50 個碟片,每個碟片直徑是2 英尺,可以儲存5MB的數據。使用磁碟最大的好處是可以隨機地存取數據,而穿孔卡片和磁帶只能順序存取數據。
1951: Univac系統使用磁帶和穿孔卡片作為數據存儲。
資料庫系統的萌芽出現於60 年代。當時計算機開始廣泛地應用於數據管理,對數據的共享提出了越來越高的要求。傳統的文件系統已經不能滿足人們的需要。能夠統一管理和共享數據的資料庫管理系統(DBMS)應運而生。數據模型是資料庫系統的核心和基礎,各種DBMS 軟體都是基於某種數據模型的。所以通常也按照數據模型的特點將傳統資料庫系統分成網狀資料庫、層次資料庫和關系資料庫三類。
最早出現的是網狀 DBMS,是美國通用電氣公司Bachman等人在1961年開發成功的IDS(Integrated DataStore)。1961年通用電氣公司(General ElectricCo.)的Charles Bachman 成功地開發出世界上第一個網狀DBMS也是第一個資料庫管理系統—— 集成數據存儲(Integrated DataStore IDS),奠定了網狀資料庫的基礎,並在當時得到了廣泛的發行和應用。IDS 具有數據模式和日誌的特徵。但它只能在GE主機上運行,並且資料庫只有一個文件,資料庫所有的表必須通過手工編碼來生成。之後,通用電氣公司一個客戶——BF Goodrich Chemical 公司最終不得不重寫了整個系統。並將重寫後的系統命名為集成數據管理系統(IDMS)。
網狀資料庫模型對於層次和非層次結構的事物都能比較自然的模擬,在關系資料庫出現之前網狀DBMS要比層次DBMS用得普遍。在資料庫發展史上,網狀資料庫佔有重要地位。
層次型DBMS是緊隨網路型資料庫而出現的。最著名最典型的層次資料庫系統是IBM 公司在1968 年開發的IMS
(Information Management System),一種適合其主機的層次資料庫。這是IBM公司研製的最早的大型資料庫系統程序產品。從60 年代末產生起,如今已經發展到IMSV6,提供群集、N路數據共享、消息隊列共享等先進特性的支持。這個具有3 0 年歷史的資料庫產品在如今的WWW應用連接、商務智能應用中扮演著新的角色。
1973 年Cullinane 公司(也就是後來的Cullinet軟體公司),開始出售Goodrich 公司的IDMS 改進版本,並且逐漸成為當時世界上最大的軟體公司。
2. 關系資料庫的由來
網狀資料庫和層次資料庫已經很好地解決了數據的集中和共享問題,但是在數據獨立性和抽象級別上仍有很大欠缺。用戶在對這兩種資料庫進行存取時,仍然需要明確數據的存儲結構,指出存取路徑。而後來出現的關系資料庫較好地解決了這些問題。
1970年,IBM的研究員E.F.Codd博士在刊物《Communication of the ACM》上發表了一篇名為「A Relational Model of Data for Large Shared Data Banks」的論文,提出了關系模型的概念,奠定了關系模型的理論基礎。盡管之前在1968年Childs已經提出了面向集合的模型,然而這篇論文被普遍認為是資料庫系統歷史上具有劃時代意義的里程碑。Codd的心願是為資料庫建立一個優美的數據模型。後來Codd又陸續發表多篇文章,論述了範式理論和衡量關系系統的12條標准,用數學理論奠定了關系資料庫的基礎。關系模型有嚴格的數學基礎,抽象級別比較高,而且簡單清晰,便於理解和使用。但是當時也有人認為關系模型是理想化的數據模型,用來實現 DBMS是不現實的,尤其擔心關系資料庫的性能難以接受,更有人視其為當時正在進行中的網狀資料庫規范化工作的嚴重威脅。為了促進對問題的理解,1974 年ACM牽頭組織了一次研討會,會上開展了一場分別以Codd和Bachman為首的支持和反對關系資料庫兩派之間的辯論。這次著名的辯論推動了關系資料庫的發展,使其最終成為現代資料庫產品的主流。
1969: Edgar F。「Ted」 Codd發明了關系資料庫
1970年關系模型建立之後,IBM公司在San Jose實驗室增加了更多的研究人員研究這個項目,這個項目就是著名的System R。其目標是論證一個全功能關系DBMS的可行性。該項目結束於1979年,完成了第一個實現SQL的 DBMS。然而IBM對IMS的承諾阻止了System R的投產,一直到1980年System R才作為一個產品正式推向市場。IBM產品化步伐緩慢的三個原因:IBM重視信譽,重視質量,盡量減少故障;IBM是個大公司,官僚體系龐大;IBM內部已經有層次資料庫產品,相關人員不積極,甚至反對。
然而同時,1973年加州大學伯克利分校的Michael Stonebraker和Eugene Wong利用System R已發布的信息開始開發自己的關系資料庫系統Ingres。他們開發的Ingres項目最後由Oracle公司、Ingres公司以及矽谷的其他廠商所商品化。後來,System R和Ingres系統雙雙獲得ACM的1988年「軟體系統獎」。
1976年霍尼韋爾公司(Honeywell)開發了第一個商用關系資料庫系統——Multics Relational Data Store。關系型資料庫系統以關系代數為堅實的理論基礎,經過幾十年的發展和實際應用,技術越來越成熟和完善。其代表產品有Oracle、IBM公司的 DB2、微軟公司的MS SQL Server以及Informix、ADABASD等等。
3. 結構化查詢語言 (SQL)
1974 年,IBM的Ray Boyce和Don Chamberlin將Codd關系資料庫的12條准則的數學定義以簡單的關鍵字語法表現出來,里程碑式地提出了SQL(Structured Query Language)語言。SQL語言的功能包括查詢、操縱、定義和控制,是一個綜合的、通用的關系資料庫語言,同時又是一種高度非過程化的語言,只要求用戶指出做什麼而不需要指出怎麼做。SQL集成實現了資料庫生命周期中的全部操作。SQL提供了與關系資料庫進行交互的方法,它可以與標準的編程語言一起工作。自產生之日起,SQL語言便成了檢驗關系資料庫的試金石,而SQL語言標準的每一次變更都指導著關系資料庫產品的發展方向。然而,直到二十世紀七十年代中期,關系理論才通過SQL在商業資料庫Oracle和DB2中使用。
1986年,ANSI把SQL作為關系資料庫語言的美國標准,同年公布了標准SQL文本。目前SQL標准有3個版本。基本SQL定義是ANSIX3135-89,「Database Language - SQL with Integrity Enhancement」[ANS89],一般叫做SQL-89。SQL-89定義了模式定義、數據操作和事務處理。
SQL- 89和隨後的ANSIX3168-1989,「Database Language-Embedded SQL」構成了第一代SQL標准。ANSIX3135-1992[ANS92]描述了一種增強功能的SQL,現在叫做SQL-92標准。SQL-92包括模式操作,動態創建和SQL語句動態執行、網路環境支持等增強特性。在完成SQL-92標准後,ANSI和ISO即開始合作開發SQL3標准。SQL3的主要特點在於抽象數據類型的支持,為新一代對象關系資料庫提供了標准。
1969:Edgar F. Codd發明了關系資料庫
1976 年IBM E.F.Codd發表了一篇里程碑的論文「R系統:資料庫關系理論」,介紹了關系資料庫理論和查詢語言SQL。Oracle的創始人Ellison非常仔細地閱讀了這篇文章,被其內容震驚,這是第一次有人用全面一致的方案管理數據信息。作者E.F.Codd十年前就發表了關系資料庫理論,並在IBM 研究機構開發原型,這個項目就是R系統,存取數據表的語言就是SQL。Ellison看完後,敏銳意識到在這個研究基礎上可以開發商用軟體系統。而當時大多數人認為關系資料庫不會有商業價值。Ellison認為這是他們的機會:他們決定開發通用商用資料庫系統Oracle,這個名字來源於他們曾給中央情報局做過的項目名。幾個月後,他們就開發了Oracle 1.0 。但這只不過是個玩具,除了完成簡單關系查詢不能做任何事情,他們花相當長的時間才使Oracle變得可用,維持公司運轉主要靠承接一些資料庫管理項目和做顧問咨詢工作。而IBM卻沒有計劃開發,為什麼藍色巨人放棄了這個價值上百億的產品,原因有很多:IBM的研究人員大多是學術出身,他們最感興趣的是理論,而非推向市場的產品,從學術上看,研究成果應公開,發表論文和演講能使他們成名,為什麼不呢?還有一個很主要的原因就是IBM 當時有一個銷售得還不錯的層次資料庫產品IMS。直到1985年I B M 才發布了關系資料庫D B 2 ,Ellision那時已經成了千萬富翁。Ellison曾將IBM 選擇Microsoft 的MS-DOS作為IBM-PC機的操作系統比為:「世界企業經營歷史上最嚴重的錯誤,價值超過了上千億美元。」IBM 發表R系統論文,而且沒有很快推出關系資料庫產品的錯誤可能僅僅次之。Oracle 的市值在1996年就達到了280億美元。
目前SQL標准有3個版本。基本SQL定義是ANSIX3135-89,「DatabaseLan guage —— SQL with IntegrityEnhancement」[ANS89],一般叫做SQL-89。SQL-89 定義了模式定義、數據操作和事務處理。S Q L - 8 9 和隨後的ANSIX3168-1989,「Database Language——Embedded SQL」構成了第一代SQL標准。ANSIX3135-1992[ANS92]描述了一種增強功能的SQL,現在叫做SQL-92標准。SQL-92 包括模式操作,動態創建和SQL語句動態執行、網路環境支持等增強特性。在完成SQL-92標准後,ANSI和ISO即開始合作開發SQL3標准。 SQL3的主要特點在於抽象數據類型的支持,為新一代對象關系資料庫提供了標准。
4. 面向對象資料庫
隨著信息技術和市場的發展,人們發現關系型資料庫系統雖然技術很成熟,但其局限性也是顯而易見的:它能很好地處理所謂的「表格型數據」,卻對技術界出現的越來越多的復雜類型的數據無能為力。九十年代以後,技術界一直在研究和尋求新型資料庫系統。但在什麼是新型資料庫系統的發展方向的問題上,產業界一度是相當困惑的。受當時技術風潮的影響,在相當一段時間內,人們把大量的精力花在研究「面向對象的資料庫系統(object oriented database)」或簡稱「OO資料庫系統」。值得一提的是,美國Stonebraker教授提出的面向對象的關系型資料庫理論曾一度受到產業界的青睞。而Stonebraker本人也在當時被Informix花大價錢聘為技術總負責人。
然而,數年的發展表明,面向對象的關系型資料庫系統產品的市場發展的情況並不理想。理論上的完美性並沒有帶來市場的熱烈反應。其不成功的主要原因在於,這種資料庫產品的主要設計思想是企圖用新型資料庫系統來取代現有的資料庫系統。這對許多已經運用資料庫系統多年並積累了大量工作數據的客戶,尤其是大客戶來說,是無法承受新舊數據間的轉換而帶來的巨大工作量及巨額開支的。另外,面向對象的關系型資料庫系統使查詢語言變得極其復雜,從而使得無論是資料庫的開發商家還是應用客戶都視其復雜的應用技術為畏途。
5. 數據管理的變革
二十世紀六十年代後期出現了一種新型資料庫軟體:決定支持系統(DSS),其目的是讓管理者在決策過程中更有效地利用數據信息。於是在1970年, 第一個聯機分析處理工具——Express誕生了。其他決策支持系統緊隨其後,許多是由公司的IT部門開發出來的。
1985年,第一個商務智能系統(business intelligence)由Metaphor計算機系統有限公司為Procter & Gamble公司開發出來,主要是用來連接銷售信息和零售的掃描儀數據。同年, Pilot 軟體公司開始出售第一個商用客戶/伺服器執行信息系統——Command Center。同樣在這年,加州大學伯克利分校Ingres項目演變成Postgres,其目標是開發出一個面向對象的資料庫。此後一年, Graphael公司開發了第一個商用的對象資料庫系統—Gbase。
1988年,IBM公司的研究者Barry Devlin和Paul Murphy發明了一個新的術語—信息倉庫,之後,IT的廠商開始構建實驗性的數據倉庫。1991年,W.H. "Bill" Inmon出版了一本「如何構建數據倉庫」的書,使得數據倉庫真正開始應用。
1991: W.H.「Bill」 Inmon發表了」構建數據倉庫」
二十世紀九十年代,隨著基於PC的客戶/伺服器計算模式和企業軟體包的廣泛採用,數據管理的變革基本完成。數據管理不再僅僅是存儲和管理數據,而轉變成用戶所需要的各種數據管理的方式。Internet的異軍突起以及XML語言的出現,給資料庫系統的發展開辟了一片新的天地。
[編輯本段]資料庫未來發展趨勢
隨著信息管理內容的不斷擴展,出現了豐富多樣的數據模型(層次模型,網狀模型,關系模型,面向對象模型,半結構化模型等),新技術也層出不窮(數據流,Web數據管理,數據挖掘等)。目前每隔幾年,國際上一些資深的資料庫專家就會聚集一堂,探討資料庫研究現狀,存在的問題和未來需要關注的新技術焦點。過去已有的幾個類似報告包括:1989 年Future Directions inDBMS Research-The Laguna BeachParticipants ,1990 年DatabaseSystems : Achievements and Opportunities ,1995 年的Database 1991:W.H. Inmon 發表了《構建數據倉庫》
⑤ 數據倉庫的含義,數據倉庫和資料庫的區別.
什麼是數據倉庫
目前,數據倉庫一詞尚沒有一個統一的定義,著名的數據倉庫專家 W.H.Inmon 在其著作《 Building the Data Warehouse 》一書中給予如下描述:數據倉庫( Data Warehouse )是一個面向主題的( Subject Oriented )、集成的( Integrate )、相對穩定的( Non-Volatile )、反映歷史變化( Time Variant )的數據集合,用於支持管理決策。 對於數據倉庫的概念我們可以從兩個層次予以理解,首先,數據倉庫用於支持決策,面向分析型數據處理,它不同於企業現有的操作型資料庫;其次,數據倉庫是對多個異構的數據源有效集成,集成後按照主題進行了重組,並包含歷史數據,而且存放在數據倉庫中的數據一般不再修改。
資料庫是一個裝數據(信息的原材料)的地方。
數據倉庫是一種系統,這種系統也是用資料庫裝東西。
數據倉庫系統(用資料庫裝東西)與其他基礎業務系統(例如財務系統、銷售系統、人力資源系統等,也是用資料庫裝東西)的區別是:
基礎業務系統的特點是各管各的,例如財務系統生產了白菜,那麼用一個資料庫來裝,人力資源系統生產了豬肉,再用一個資料庫來裝。我要做一道菜,需要分別到各個資料庫去取,比較麻煩(現實的情況是大部分時候讓種菜的農民伯伯送過來,但送過來的東西不一定是我想要的,而且不同的時候我想要不同的東西,經常會被農民伯伯罵,弄得雙方都不開心)。另外一方面,各個資料庫中放的是一些比較原始的東西,我要拿過來做菜,還需要經過很麻煩的清洗過程,一不小心裏面可能就藏著一條大青蟲。
那麼,數據倉庫系統就是建立一個大的超市,將各地農民伯伯出產的東西收集過來,清洗干凈,分門別類地放好。這樣,你要哪種菜的時候,直接從超市裡面拿就可以了。
早期一直不理解數據倉庫是什麼困惑得很。
宏觀一點講,數據倉庫就是堆放公司所有數據的地方,之所以把數據都堆在一起,是為了從中間找到有價值的東西。
數據倉庫更多的是一個概念,不要把數據倉庫想成那些號稱是數據倉庫的軟體產品們。
數據倉庫的物理上就是資料庫。相對業務系統資料庫叫 OLTP 資料庫(用於業務處理),這種資料庫叫 OLAP 資料庫(用於業務分析)。
數據倉庫的概念是針對以下基本需求產生的:
公司的業務系統很多,業務系統的歷史數據不方便查詢。不同的業務系統往往管理部門不同,地域不同。能不能將所有這些數據集中起來,再淘淘有沒有有意義的業務規律。
數據倉庫資料庫往往很大,因為公司所有的數據集中得越多,越能淘到有價值的發現。例如隨便就 100G 以上。
數據倉庫的組成十分繁雜,既有業務系統的歷史數據,又有人事、財務數據,還要自己建一些基礎性的數據,例如,公共假期數據、地理信息、國家信息等等。
數據倉庫概念包含從業務生產系統採集數據的程序,這個程序還不能影響業務系統的運行。(屬於所謂 「ETL」 過程)
數據倉庫包括業務系統長期的歷史數據,例如 5 年,用來分析。(所謂 「ODS」 數據)
數據倉庫包括針對某相業務值(例如銷售量)重新打上標簽的業務流水數據。(所謂 「 事實表 」 、 「 維度表 」 )。
數據倉庫概念興許還包含報表生成工具(所謂 「BI」 工具)。這些工具能夠達到幾年前所謂 DSS (決策分析)的效果。
數據倉庫的客戶歷史資量的分析,也許又與 CRM 系統粘點邊。
總之,一點,一個公司想針對已有的歷史業務數據,充分的利用它們,那麼就上數據倉庫項目。至於哪些嚇唬人的大寫字母的組合,只是達到這個目標的科學技術罷了。
牢記住數據倉庫的基本需求,不要被供應商嚇著。
數據倉庫可以說是決策支持系統,能幫助老闆了解企業的整體全貌,看到數據倉庫提供的經過整理統計歸納的數據後老闆憑自己的管理經驗可以發現企業的問題或困難或成功因素在哪一方面,然後可以不斷的追溯數據,直到確定到最具體的細節上,這樣能夠不斷提升老闆或管理層的管理水平,不斷改善企業的管理。我們知道的最好的一個例子就是美國某大型超市啤酒和尿布的故事。
沃爾瑪公司在美國的一位店面經理曾發現,每周,啤酒和尿布的銷量都會有一次同比攀升,一時卻搞不清是什麼原因。後來,沃爾瑪運用商業智能( Business Intelligence ,簡稱BI)技術發現,購買這兩種產品的顧客幾乎都是 25 歲到 35 歲、家中有嬰兒的男性,每次購買的時間均在周末。沃爾瑪在對相關數據分析後得知,這些人習慣晚上邊看球賽、邊喝啤酒,邊照顧孩子,為了圖省事而使用一次性的尿布。得到這個結果後,沃爾瑪決定把這兩種商品擺放在一起,結果,這兩種商品的銷量都有了顯著增加。
資料庫是數據倉庫的基礎。數據倉庫實際上也是由資料庫的很多表組成的。需要把存放大量操作性業務數據的資料庫經過篩選、抽取、歸納、統計、轉換到一個新的資料庫中。然後再進行數據展現。老闆關注的是數據展現的結果。
數據倉庫 (DATA WAREHOUSE/DATA MART) 的另一重要概念是數據從不同的資料庫 (DATABASES) 里調出經過 ETL 工具 ( 如 POWERCENTRE , DECISIONSTREAM, SQL SERVER 2000 DTS, SQL SERVER 2005 SSIS) 過程進行清理,確證,整合並設計成多維 (dimensional framework) 。 以保證數據的正確、准確、完整 , 這是非常重要的一點。
我們現在的項目穩定運行了 6 年多,一直自己開發,最近慢慢開始使用 datastage 。很多大型項目之所以用工具,是因為工具的本身的特點是開發快,效率相對還可以,讓你更好地有精力用在業務、資料庫的優化以及數據測試上,和數據質量本身並沒有關系。
而數據質量關系最密切的還是從設計(架構、模型等)、業務關系的理解、項目管理(含和客戶的交流,以及遵從開發流程和測試流程)等一系列項目工程的過程。這也是為什麼很多項目使用了 ETL 工具,但是數據質量還是提高不大的主要原因。
數據倉庫的作用重在數據的集中管理。集中管理的最終目的是為了分析,預測。
所謂的 ETL 。不過是數據倉庫的構建的一個必須過程。數據的抽取轉換與裝載,都是為了集中管理所做的基礎工作,這些數據與動作的描述,都會有有響應的元數據進行描述。
在數據倉庫建模的過程,我們一般都是採用多維模型,如星形,雪花型等等,這樣做最大的特點就是效率高,數據的冗餘度低。所以,把 OLAP 與數據倉庫混為一談我認為是片面的解釋。
我們也可以選擇業務邏輯模型建立數據倉庫,這是很早以前的做法了,特點就是效率不高,數據的冗餘度高,但他能實現非常難以表達的業務邏輯設計。
基於數據倉庫最重要的是分析與預測,我認為,歷史現在將來是數據倉庫的精華。。
基於數據倉庫的 DM , OLAP 都是為了分析與預測。為了讓使用企業單位更好的把握現在,預測將來,因此他最實效的說法我認為是給決策者與管理者進行決策管理提供分析與預測的依據。
另外,數據倉庫還會起到歷史數據分類歸檔的目的(就像圖書館一樣),屆時可以通過檢索條件方便的查詢歷史信息;而同類信息在 OLTP 中早已被更新了。
至於它的分析功能,就象氣象考古研究工作,在不同深度的冰川中保存著當時的氣象信息,否則拿什麼預測氣候變化趨勢呢!
不過,要有相當的管理及技術儲備以及管理層的強力支持才可以。先有需求,並具備了必要條件才可上馬,否則您的數據倉庫將不是超市而是個垃圾堆, 「garbage in , then garbage out」 !
所以,我認為是企業信息化建設及科學管理水平的提高催生了數據倉庫的必然產生,不要趕時髦,炒概念,關鍵還是冷靜分析自己企業的現實狀況是否到了必須部署數據倉庫的階段了!
至於如何說服管理者,則需要您的努力了,不要站在您技術人員的立場闡述問題, CEO 對技術問題不感興趣,站在他們的角度考慮問題,回答諸如 「 我們投入如此大的資金、人力,同時面對升級系統的巨大風險,目的何在? 」 記住, CEO 和 CFO (甚至包括 CIO )是更希望用數字說話的,您分析一下公司的管理決策流程,就可以向他們提出很有價值的決策支持報表,而部門經理(或類似人員)每季度也不必頭大的製作相關分析報表了,節省的精力可以做更多有價值的事情,這就是企業人力資源利用率的巨大提升,可以節省多少銀子,恐怕 CEO 不會用你提示了吧!
⑥ 數據倉庫與資料庫有什麼聯系
資料庫
★資料庫發展階段大致劃分為如下幾個階段:
人工管理階段;
文件系統階段;
資料庫系統階段;
高級資料庫階段。
當人們從不同的角度來描述這一概念時就有不同的定義(當然是描述性的)。例如,稱資料庫是一個「記錄保存系統」(該定義強調了資料庫是若干記錄的集合)。又如稱資料庫是「人們為解決特定的任務,以一定的組織方式存儲在一起的相關的數據的集合」(該定義側重於數據的組織)。更有甚者稱資料庫是「一個數據倉庫」。當然,這種說法雖然形象,但並不嚴謹。
嚴格地說,資料庫是「按照數據結構來組織培穗、存儲和管理數據的倉庫」。在經濟管理的日常工作中,常常需要把某些相關的數據放進這樣「倉庫」,並根據管理的需要進行相應的處理。例如,企業或事業單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡歷等)存放在表20.6.3中,這張表就可以看成是一個資料庫。有了這個"數據倉庫"我們就可以根據需要隨時查詢某職工的基本情況,也可以查詢工資在某個范圍內的職工人數等等。這些工作如果都能在計算機上自動進行,那我們的人事管理就可以達到極高的水平。此外,在財務管理、倉庫管理、生產管理中也需要建立眾多的這種"資料庫",使其可以利用計算機實現財務、倉庫、生產的自動化管理。
J.Martin給資料庫下了一個比較完整的定義:資料庫是存儲在一起的相關數據的集合,這些數據是結構化的,無有害的或不必要的冗餘,並為多種應用服務;數據的存儲獨立於使用它的程序;對資料庫插入新數據,修改和檢索原有數據均能按一種公用的和可控制的方式進行。當某個系統中存在結構上完全分開的若干個資料庫時,則該系統包含一個「資料庫集合」。
· 資料庫的優點
使用資料庫可以帶來許多好處:如減少了數據的冗餘度,從而大大地節省源扒了數據的存儲空間;實現數據資源的充分共享等等。此外,資料庫技術還為用戶提供了非常簡便的使用手段使用戶易於編寫有關資料庫應用程序。特別是近年來推出的微型計算機關系資料庫管理系統dBASELL,操作直觀,使用靈活,編程方便,環境適應廣泛(一般的十六位機,如IBM/PC/XT,國產長城0520等均可運行種軟體),數據處理能力極強。資料庫在我國正得到愈來愈廣泛的應用,必將成為經濟管理的有力工具。
資料庫是通過資料庫管理系統(DBMS-DATA BASE MANAGEMENT SYSTEM)軟體來實現數據的存儲、管理與使用的dBASELL就是一種資料庫管理系統軟體。
· 資料庫結構與資料庫種類
資料庫通常分為層次式資料庫、網路式資料庫和關系式資料庫三種。而不同的資料庫是按不同的數據結構來聯系和組織的。
1.數據結構模型
(1)數據結構
所謂數據結構是指數據的組織形式或數據之間的聯系。如果用D表示數據,用R表示數據對象之間存在的關系集合,則將DS=(D,R)稱為數據結構。例如,設有一個電話號碼簿,它記錄了n個人的名字和相應的電話號碼。為了方便地查找某人的電話號碼,將人名和號碼按字典順序排列,並在名字的後面跟隨著對應的電話號碼。這樣,若要查找某人的電話號碼(假定他的名字的第一個字母是Y),那麼只須查找以Y開頭的那些名字就可以了。該例中,數據的集合D就是人名和電話號碼,它們之間的聯系R就是按字典順序的排列,其相應的數據結構就是DS=(D,R),即一個數組。(2)數據結構種類
數據結構又分為數據的邏輯結構和數據的物理結構。數據的邏輯結構是從邏輯的角度(即數據間的聯系和組織方式)來觀察數據,分析數據,與數據的存儲位置無關。數據的物理結構是指數據在計算機中存放的結構,即數據的邏輯結構在計算機中的實現形式,所以物理結構也被稱為存儲結構。本節只研究數據的邏輯結構,並將反映和實現數據聯系的方法稱為數據模型。
目前,比較流行的數據模型有三種,即按圖論理論建立的層次結構模型和網狀結構模型以及按關系理論建立的關系結構模型。
2.層次、網狀和關系資料庫系統
(1)層次結構模型
層次結構模型實質上是一種有根結點的定向有序樹(在數學中"樹"被定義為一個無回的連通圖)。例如圖20.6.4是一個高等學校的組織結構圖。這個組織結構圖像一棵樹,校部就是樹根(稱為根結點),各系、專業、教師、學生等為枝點(稱為結點),樹根與枝點之間的聯系稱為邊,樹根與邊之比為1:N,即樹根只有一個配裂卜,樹枝有N個。這種數據結構模型的一般結構見圖20.6.5所示。
圖20.6.4 高等學校的組織結構圖 圖20.6.5 層次結構模型
圖20.6.5中,Ri(i=1,2,…6)代表記錄(即數據的集合),其中R1就是根結點(如果Ri看成是一個家族,則R1就是祖先,它是R2、R3、R4的雙親,而R2、R3、R4互為兄弟),R5、R6也是兄弟,且其雙親為R3。R2、R4、R5、R6又被稱為葉結點(即無子女的結點)。這樣,Ri(i=1,2,…6)就組成了以R1為樹根的一棵樹,這就是一個層次數據結構模型。
按照層次模型建立的資料庫系統稱為層次模型資料庫系統。IMS(Information Manage-mentSystem)是其典型代表。
(2)網狀結構模型
在圖20.6.6中,給出了某醫院醫生、病房和病人之間的聯系。即每個醫生負責治療三個病人,每個病房可住一到四個病人。如果將醫生看成是一個數據集合,病人和病房分別是另外兩個數據集合,那麼醫生、病人和病房的比例關系就是M:N:P(即M個醫生,N個病人,P間病房)。這種數據結構就是網狀數據結構,它的一般結構模型如圖20.6.7所示。在圖中,記錄Ri(i=1,2,8)滿足以下條件:
①可以有一個以上的結點無雙親(如R1、R2、R3)。
②至少有一個結點有多於一個以上的雙親。在"醫生、病人、病房"例中,"醫生集合有若干個結點(M個醫生結點)無"雙親",而"病房"集合有P個結點(即病房),並有一個以上的"雙親"(即病人)。
圖20.6.6 醫生、病房和病人之間的關系
圖20.6.7 網狀結構模型
按照網狀數據結構建立的資料庫系統稱為網狀資料庫系統,其典型代表是DBTG(Data Base Task Group)。用數學方法可將網狀數據結構轉化為層次數據結構。
(3)關系結構模型
關系式數據結構把一些復雜的數據結構歸結為簡單的二元關系(即二維表格形式)。例如某單位的職工關系就是一個二元關系(見表20.6.8)。這個四行六列的表格的每一列稱為一個欄位(即屬性),欄位名相當於標題欄中的標題(屬性名稱);表的每一行是包含了六個屬性(工號、姓名、年齡、性別、職務、工資)的一個六元組,即一個人的記錄。這個表格清晰地反映出該單位職工的基本情況。
表20.6.8 職工基本情況
通常一個m行、n列的二維表格的結構如表20.6.9所示。
表中每一行表示一個記錄值,每一列表示一個屬性(即欄位或數據項)。該表一共有m個記錄。每個記錄包含n個屬性。
作為一個關系的二維表,必須滿足以下條件:
(1)表中每一列必須是基本數據項(即不可再分解)。(2)表中每一列必須具有相同的數據類型(例如字元型或數值型)。(3)表中每一列的名字必須是唯一的。(4)表中不應有內容完全相同的行。(5)行的順序與列的順序不影響表格中所表示的信息的含義。
由關系數據結構組成的資料庫系統被稱為關系資料庫系統。
在關系資料庫中,對數據的操作幾乎全部建立在一個或多個關系表格上,通過對這些關系表格的分類、合並、連接或選取等運算來實現數據的管理。dBASEII就是這類資料庫管理系統的典型代表。對於一個實際的應用問題(如人事管理問題),有時需要多個關系才能實現。用dBASEII建立起來的一個關系稱為一個資料庫(或稱資料庫文件),而把對應多個關系建立起來的多個資料庫稱為資料庫系統。dBASEII的另一個重要功能是通過建立命令文件來實現對資料庫的使用和管理,對於一個資料庫系統相應的命令序列文件,稱為該資料庫的應用系統。因此,可以概括地說,一個關系稱為一個資料庫,若干個資料庫可以構成一個資料庫系統。資料庫系統可以派生出各種不同類型的輔助文件和建立它的應用系統。
· 資料庫的要求與特性
為了使各種類型的資料庫系統能夠充分發揮它們的優越性,必須對資料庫管理系統的使用提出一些明確的要求。
1.建立資料庫文件的要求
(1)盡量減少數據的重復,使數據具有最小的冗餘度。計算機早期應用中的文件管理系統,由於數據文件是用戶各自建立的,幾個用戶即使有許多相同的數據也得放在各自的文件中,因而造成存儲的數據大量重復,浪費存儲空間。資料庫技術正是為了克服這一缺點而出現的,所以在組織數據的存儲時應避免出現冗餘。
(2)提高數據的利用率,使眾多用戶都能共享數據資源。
(3)注意保持數據的完整性。這對某些需要歷史數據來進行預測、決策的部門(如統計局、銀行等)特別重要。
(4)注意同一數據描述方法的一致性,使數據操作不致發生混亂。如一個人的學歷在人事檔案中是大學畢業,而在科技檔案中卻是大學程度,這樣就容易造成混亂。
(5)對於某些需要保密的數據,必須增設保密措施。
(6)數據的查找率高,根據需要數據應能被及時維護。
2.資料庫文件的特徵
無論使用哪一種資料庫管理系統,由它們所建立的資料庫文件都可以看成是具有相同性質的記錄的集合,因而這些資料庫文件都有相同的特性:
(1)文件的記錄格式相同,長度相等。
(2)不同的行是不同的記錄,因而具有不同的內容。
(3)不同的列表示不同的欄位名,同一列中的數據的性質(屬性)相同。
(4)每一行各列的內容是不能分割的,但行的順序和列的順序不影響文件內容的表達。
3.文件的分類
對文件引用最多的是主文件和事物文件。其他的文件分類還包括表文件、備份文件、檔案的輸出文件等。下面將講述這些文件。
(1)主文件。主文件是某特定應用領域的永久性的數據資源。主文件包含那些被定期存取以提供信息和經常更新以反映最新狀態的記錄。典型的主文件有庫存文件、職工主文件和收帳主文件等。
(2)事務文件。事務文件包含著作為一個信息系統的數據活動(事務)的那些記錄。這些事務被分批以構成事務文件。例如,從每周工資卡上錄制下來的數分批存放在一個事務文件上,然後對照工資清單文件進行處理以便列印出工資支票和工資記錄簿。
(3)表文件。表文件是一些表格。之所以單獨建立表文件而不把表設計在程序中是為了便於修改。例如,一個公用事業公司的稅率表或國內稅務局的稅率就可以存儲在表中文件。
(4)備用文件。備用文件是現有生產性文件的一個復製品。一旦生產性文件受到破壞,利用備用文件就可以重新建立生產性文件。
(5)檔案文件。檔案文件不是提供當前處理使用的,而是保存起來作為歷史參照的。例如,國內稅務局(IRS)可能要求檢查某個人最近15年的歷史。實際上,檔案文件恰恰是在給定時間內工作的一個"快照"。
(6)輸出文件。輸出文件包含將要列印在列印機上的、顯在屏幕上的或者繪制在繪圖儀上的那些信息的數值映象。輸出文件可以是"假離線的"(存儲在輔存設備上),當輸出設備可用時才進行實際的輸出。
數據倉庫
1.
數據倉庫是在企業管理和決策中面向主題的、集成的、與時間相關的、不可修改的數據集合
數據倉庫,英文名稱為Data Warehouse,可簡寫為DW。
數據倉庫之父Bill Inmon在1991年出版的「Building the Data Warehouse」一書中所提出的定義被廣泛接受——數據倉庫(Data Warehouse)是一個面向主題的(Subject Oriented)、集成的(Integrated)、相對穩定的(Non-Volatile)、反映歷史變化(Time Variant)的數據集合,用於支持管理決策(Decision Making Support)。
◆面向主題:操作型資料庫的數據組織面向事務處理任務,各個業務系統之間各自分離,而數據倉庫中的數據是按照一定的主題域進行組織的。
◆集成的:數據倉庫中的數據是在對原有分散的資料庫數據抽取、清理的基礎上經過系統加工、匯總和整理得到的,必須消除源數據中的不一致性,以保證數據倉庫內的信息是關於整個企業的一致的全局信息。
◆相對穩定的:數據倉庫的數據主要供企業決策分析之用,所涉及的數據操作主要是數據查詢,一旦某個數據進入數據倉庫以後,一般情況下將被長期保留,也就是數據倉庫中一般有大量的查詢操作,但修改和刪除操作很少,通常只需要定期的載入、刷新。
◆反映歷史變化:數據倉庫中的數據通常包含歷史信息,系統記錄了企業從過去某一時點(如開始應用數據倉庫的時點)到目前的各個階段的信息,通過這些信息,可以對企業的發展歷程和未來趨勢做出定量分析和預測。
數據倉庫是一個過程而不是一個項目。
數據倉庫系統是一個信息提供平台,他從業務處理系統獲得數據,主要以星型模型和雪花模型進行數據組織,並為用戶提供各種手段從數據中獲取信息和知識。
從功能結構化分,數據倉庫系統至少應該包含數據獲取(Data Acquisition)、數據存儲(Data Storage)、數據訪問(Data Access)三個關鍵部分。
什麼是數據倉庫
(轉載自北大高科網站,http://www.pku-ht.com/)
目前,數據倉庫一詞尚沒有一個統一的定義,著名的數據倉庫專家W.H.Inmon在其著作《Building the Data Warehouse》一書中給予如下描述:數據倉庫(Data Warehouse)是一個面向主題的(Subject Oriented)、集成的(Integrate)、相對穩定的(Non-Volatile)、反映歷史變化(Time Variant)的數據集合,用於支持管理決策。對於數據倉庫的概念我們可以從兩個層次予以理解,首先,數據倉庫用於支持決策,面向分析型數據處理,它不同於企業現有的操作型資料庫;其次,數據倉庫是對多個異構的數據源有效集成,集成後按照主題進行了重組,並包含歷史數據,而且存放在數據倉庫中的數據一般不再修改。
根據數據倉庫概念的含義,數據倉庫擁有以下四個特點:
1、面向主題。操作型資料庫的數據組織面向事務處理任務,各個業務系統之間各自分離,而數據倉庫中的數據是按照一定的主題域進行組織。主題是一個抽象的概念,是指用戶使用數據倉庫進行決策時所關心的重點方面,一個主題通常與多個操作型信息系統相關。
2、集成的。面向事務處理的操作型資料庫通常與某些特定的應用相關,資料庫之間相互獨立,並且往往是異構的。而數據倉庫中的數據是在對原有分散的資料庫數據抽取、清理的基礎上經過系統加工、匯總和整理得到的,必須消除源數據中的不一致性,以保證數據倉庫內的信息是關於整個企業的一致的全局信息。
3、相對穩定的。操作型資料庫中的數據通常實時更新,數據根據需要及時發生變化。數據倉庫的數據主要供企業決策分析之用,所涉及的數據操作主要是數據查詢,一旦某個數據進入數據倉庫以後,一般情況下將被長期保留,也就是數據倉庫中一般有大量的查詢操作,但修改和刪除操作很少,通常只需要定期的載入、刷新。
4、反映歷史變化。操作型資料庫主要關心當前某一個時間段內的數據,而數據倉庫中的數據通常包含歷史信息,系統記錄了企業從過去某一時點(如開始應用數據倉庫的時點)到目前的各個階段的信息,通過這些信息,可以對企業的發展歷程和未來趨勢做出定量分析和預測。
企業數據倉庫的建設,是以現有企業業務系統和大量業務數據的積累為基礎。數據倉庫不是靜態的概念,只有把信息及時交給需要這些信息的使用者,供他們做出改善其業務經營的決策,信息才能發揮作用,信息才有意義。而把信息加以整理歸納和重組,並及時提供給相應的管理決策人員,是數據倉庫的根本任務。因此,從產業界的角度看,數據倉庫建設是一個工程,是一個過程。
整個數據倉庫系統是一個包含四個層次的體系結構,具體由下圖表示。
數據倉庫系統體系結構
·數據源:是數據倉庫系統的基礎,是整個系統的數據源泉。通常包括企業內部信息和外部信息。內部信息包括存放於RDBMS中的各種業務處理數據和各類文檔數據。外部信息包括各類法律法規、市場信息和競爭對手的信息等等;
·數據的存儲與管理:是整個數據倉庫系統的核心。數據倉庫的真正關鍵是數據的存儲和管理。數據倉庫的組織管理方式決定了它有別於傳統資料庫,同時也決定了其對外部數據的表現形式。要決定採用什麼產品和技術來建立數據倉庫的核心,則需要從數據倉庫的技術特點著手分析。針對現有各業務系統的數據,進行抽取、清理,並有效集成,按照主題進行組織。數據倉庫按照數據的覆蓋范圍可以分為企業級數據倉庫和部門級數據倉庫(通常稱為數據集市)。
·OLAP伺服器:對分析需要的數據進行有效集成,按多維模型予以組織,以便進行多角度、多層次的分析,並發現趨勢。其具體實現可以分為:ROLAP、MOLAP和HOLAP。ROLAP基本數據和聚合數據均存放在RDBMS之中;MOLAP基本數據和聚合數據均存放於多維資料庫中;HOLAP基本數據存放於RDBMS之中,聚合數據存放於多維資料庫中。
·前端工具:主要包括各種報表工具、查詢工具、數據分析工具、數據挖掘工具以數據挖掘及各種基於數據倉庫或數據集市的應用開發工具。其中數據分析工具主要針對OLAP伺服器,報表工具、數據挖掘工具主要針對數據倉庫。
目前,數據倉庫一詞尚沒有一個統一的定義,著名的數據倉庫專家W.H.Inmon在其著作《Building the Data Warehouse》一書中給予如下描述:數據倉庫(Data Warehouse)是一個面向主題的(Subject Oriented)、集成的(Integrate)、相對穩定的(Non-Volatile)、反映歷史變化(Time Variant)的數據集合,用於支持管理決策。對於數據倉庫的概念我們可以從兩個層次予以理解,首先,數據倉庫用於支持決策,面向分析型數據處理,它不同於企業現有的操作型資料庫;其次,數據倉庫是對多個異構的數據源有效集成,集成後按照主題進行了重組,並包含歷史數據,而且存放在數據倉庫中的數據一般不再修改。多維
數據倉庫的組成
數據倉庫資料庫
是整個數據倉庫環境的核心,是數據存放的地方和提供對數據檢索的支持。相對於操縱型資料庫來說其突出的特點是對海量數據的支持和快速的檢索技術。
數據抽取工具
把數據從各種各樣的存儲方式中拿出來,進行必要的轉化、整理,再存放到數據倉庫內。對各種不同數據存儲方式的訪問能力是數據抽取工具的關鍵,應能生成COBOL程序、MVS作業控制語言(JCL)、UNIX腳本、和SQL語句等,以訪問不同的數據。數據轉換都包括,刪除對決策應用沒有意義的數據段;轉換到統一的數據名稱和定義;計算統計和衍生數據;給缺值數據賦給預設值;把不同的數據定義方式統一。
元數據
元數據是描述數據倉庫內數據的結構和建立方法的數據。可將其按用途的不同分為兩類,技術元數據和商業元數據。
技術元數據是數據倉庫的設計和管理人員用於開發和日常管理數據倉庫是用的數據。包括:數據源信息;數據轉換的描述;數據倉庫內對象和數據結構的定義;數據清理和數據更新時用的規則;源數據到目的數據的映射;用戶訪問許可權,數據備份歷史記錄,數據導入歷史記錄,信息發布歷史記錄等。
商業元數據從商業業務的角度描述了數據倉庫中的數據。包括:業務主題的描述,包含的數據、查詢、報表;
元數據為訪問數據倉庫提供了一個信息目錄(informationdirectory),這個目錄全面描述了數據倉庫中都有什麼數據、這些數據怎麼得到的、和怎麼訪問這些數據。是數據倉庫運行和維護的中心,數據倉庫伺服器利用他來存貯和更新數據,用戶通過他來了解和訪問數據。
訪問工具
為用戶訪問數據倉庫提供手段。有數據查詢和報表工具;應用開發工具;管理信息系統(EIS)工具;在線分析(OLAP)工具;數據挖掘工具。
數據集市(DataMarts)
為了特定的應用目的或應用范圍,而從數據倉庫中獨立出來的一部分數據,也可稱為部門數據或主題數據(subjectarea)。在數據倉庫的實施過程中往往可以從一個部門的數據集市著手,以後再用幾個數據集市組成一個完整的數據倉庫。需要注意的就是再實施不同的數據集市時,同一含義的欄位定義一定要相容,這樣再以後實施數據倉庫時才不會造成大麻煩。
數據倉庫管理:安全和特權管理;跟蹤數據的更新;數據質量檢查;管理和更新元數據;審計和報告數據倉庫的使用和狀態;刪除數據;復制、分割和分發數據;備份和恢復;存儲管理。
信息發布系統:把數據倉庫中的數據或其他相關的數據發送給不同的地點或用戶。基於Web的信息發布系統是對付多用戶訪問的最有效方法。
設計數據倉庫的九個步驟
1)選擇合適的主題(所要解決問題的領域)
2)明確定義fact表
3)確定和確認維
4)choosingthefacts
5)計算並存儲fact表中的衍生數據段
6)roundingoutthedimensiontables
7)
8)
9)確定查詢優先順序和查詢模式。
技術上
硬體平台:數據倉庫的硬碟容量通常要是操作資料庫硬碟容量的2-3倍。通常大型機具有更可靠的性能和和穩定性,也容易與歷史遺留的系統結合在一起;而PC伺服器或UNIX伺服器更加靈活,容易操作和提供動態生成查詢請求進行查詢的能力。選擇硬體平台時要考慮的問題:是否提供並行的I/O吞吐?對多CPU的支持能力如何?
數據倉庫DBMS:他的存儲大數據量的能力、查詢的性能、和對並行處理的支持如何。
網路結構:數據倉庫的實施在那部分網路段上會產生大量的數據通信,需不需要對網路結構進行改進。
實現上
建立數據倉庫的步驟
1)收集和分析業務需求
2)建立數據模型和數據倉庫的物理設計
3)定義數據源
4)選擇數據倉庫技術和平台
5)從操作型資料庫中抽取、凈化、和轉換數據到數據倉庫
6)選擇訪問和報表工具
7)選擇資料庫連接軟體
8)選擇數據分析和數據展示軟體
9)更新數據倉庫
數據抽取、清理、轉換、和移植
1)數據轉換工具要能從各種不同的數據源中讀取數據。
2)支持平面文件、索引文件、和legacyDBMS。
3)能以不同類型數據源為輸入整合數據。
4)具有規范的數據訪問介面
5)最好具有從數據字典中讀取數據的能力
6)工具生成的代碼必須是在開發環境中可維護的
7)能只抽取滿足指定條件的數據,和源數據的指定部分
8)能在抽取中進行數據類型轉換和字元集轉換
9)能在抽取的過程中計算生成衍生欄位
10)能讓數據倉庫管理系統自動調用以定期進行數據抽取工作,或能將結果生成平面文件
11)必須對軟體供應商的生命力和產品支持能力進行仔細評估
主要數據抽取工具供應商:Prismsolutions.Carleton'sPASSPORT.InformationBuildersInc.'s
EDA/SQL.SASInstituteInc.
⑦ 資料庫與數據倉庫的區別
資料庫是面向事務的設計,數據倉庫是面向主題設計的。資料庫一般存儲在線交易數據,數據倉庫存儲的一般是歷史數據。
「與時間相關」:資料庫保存信息的時候,並不強調一定有時間信息。數據倉庫則不同,出於決策的需要,數據倉庫中的數據都要標明時間屬性。決策中,時間屬性很重要。同樣都是累計購買過九車產品的顧客,一位是最近三個月購買九車,一位是最近一年從未買過,這對於決策者意義是不同的。
「不可修改」:數據倉庫中的數據並不是最新的,而是來源於其它數據源。數據倉庫反映的是歷史信息,並不是很多資料庫處理的那種日常事務數據(有的資料庫例如電信計費資料庫甚至處理實時信息)。因此,數據倉庫中的數據是極少或根本不修改的;當然,向數據倉庫添加數據是允許的。
數據倉庫的出現,並不是要取代資料庫。數據倉庫,是在資料庫已經大量存在的情況下,為了進一步挖掘數據資源、為了決策需要而產生的,它決不是所謂的「大型資料庫」。
目前,大部分數據倉庫還是用關系資料庫管理系統來管理的。可以說,資料庫、數據倉庫相輔相成、各有千秋。
⑧ 如何區別資料庫、數據中台、數據湖
數據湖、數據倉庫和數據中台,他們並沒有直接的關系,只是他們為業務產生價值的形式有不同的側重。
一、區別:
數據湖作為一個集中的存儲庫,可以在其中存儲任意規模的所有結構化和非結構化數據。在數據湖中,可以存儲數據不需要對其進行結構化,就可以運行不同類型的分析。
數據倉庫,也稱為企業數據倉庫,是一種數據存儲系統,它將來自不同來源的結構化數據聚合起來,用於業務智能領域的比較和分析,數據倉庫是包含多種數據的存儲庫,並且是高度建模的。
數據中台是一個承接技術,引領業務,構建規范定義的、全域可連接萃取的、智慧的數據處理平台,建設目標是為了高效滿足前台數據分析和應用的需求。數據中台距離業務更近,能更快速的相應業務和應用開發的需求,可追溯,更精準。
二、關系:
數據湖、數據倉庫更多地是面向不同對象的不同形態的數據資產。而數據中台更多強調的是服務於前台,實現邏輯、標簽、演算法、模型的復用沉澱。
數據中台像一個「數據工廠」,涵蓋了數據湖、數據倉庫等存儲組件,隨著數據中台的發展,未來很有可能數據湖和數據倉庫的概念會被弱化。
三、小結:
數據空間持續增長,為了更好地發揮數據價值,未來數據技術趨於融合,同時也在不斷創新。