第7章 數(shù)據(jù)庫與大數(shù)據(jù)技術(shù)_第1頁
第7章 數(shù)據(jù)庫與大數(shù)據(jù)技術(shù)_第2頁
第7章 數(shù)據(jù)庫與大數(shù)據(jù)技術(shù)_第3頁
第7章 數(shù)據(jù)庫與大數(shù)據(jù)技術(shù)_第4頁
第7章 數(shù)據(jù)庫與大數(shù)據(jù)技術(shù)_第5頁
已閱讀5頁,還剩95頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第7章數(shù)據(jù)庫與大數(shù)據(jù)技術(shù)

通過本章的學(xué)習(xí),應(yīng)該掌握以下內(nèi)容:(1)掌握數(shù)據(jù)庫系統(tǒng)的基本概念。(2)掌握常見的數(shù)據(jù)模型。(3)掌握關(guān)系數(shù)據(jù)庫的設(shè)計(jì)方法。(4)了解大數(shù)據(jù)的基本概念和數(shù)據(jù)處理一般流程。(5)了解主流大數(shù)據(jù)處理平臺(tái)。學(xué)習(xí)目標(biāo)7.1數(shù)據(jù)庫系統(tǒng)的基本概念

數(shù)據(jù)庫技術(shù)是數(shù)據(jù)管理技術(shù),是計(jì)算機(jī)科學(xué)的一個(gè)重要分支。在計(jì)算機(jī)應(yīng)用的三大領(lǐng)域(科學(xué)計(jì)算、數(shù)據(jù)處理和過程控制)中,數(shù)據(jù)處理約占其中的70%,而數(shù)據(jù)庫技術(shù)就是作為一門數(shù)據(jù)處理技術(shù)發(fā)展起來的,是目前應(yīng)用最廣的技術(shù)之一,它已成為計(jì)算機(jī)信息系統(tǒng)的核心技術(shù)和重要基礎(chǔ)。7.1.1數(shù)據(jù)庫系統(tǒng)相關(guān)概念描述事物的符號(hào)記錄,是數(shù)據(jù)庫中存儲(chǔ)的基本對(duì)象。1數(shù)據(jù)Data7.1.1數(shù)據(jù)庫系統(tǒng)相關(guān)概念 具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲(chǔ)介質(zhì)內(nèi)的多種應(yīng)用數(shù)據(jù)的集成,并可被各個(gè)應(yīng)用程序所共享。2數(shù)據(jù)庫DatabaseDB7.1.1數(shù)據(jù)庫系統(tǒng)相關(guān)概念

用戶與操作系統(tǒng)之間的數(shù)據(jù)管理軟件,負(fù)責(zé)數(shù)據(jù)庫的建立、運(yùn)行、維護(hù)、管理和控制,是數(shù)據(jù)庫系統(tǒng)的核心。3數(shù)據(jù)庫管理系統(tǒng)DatabaseManagementSystemDBMS7.1.1數(shù)據(jù)庫系統(tǒng)相關(guān)概念負(fù)責(zé)數(shù)據(jù)庫的規(guī)劃、設(shè)計(jì)、維護(hù)、監(jiān)視等,其主要工作如下:數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫維護(hù)改善系統(tǒng)性能,提高系統(tǒng)效率4數(shù)據(jù)庫管理員DatabaseAdministratorDBA7.1.1數(shù)據(jù)庫系統(tǒng)相關(guān)概念安裝和使用了數(shù)據(jù)庫技術(shù)的計(jì)算機(jī)系統(tǒng),一般由數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員(人員)、硬件平臺(tái)和軟件平臺(tái)構(gòu)成。5數(shù)據(jù)庫系統(tǒng)DatabaseSystemDBS7.1.1數(shù)據(jù)庫系統(tǒng)相關(guān)概念由數(shù)據(jù)庫系統(tǒng)加上應(yīng)用軟件及應(yīng)用界面這三者所組成。

數(shù)據(jù)庫應(yīng)用系統(tǒng)中各部分以一定的邏輯層次結(jié)構(gòu)方式組成一個(gè)有機(jī)的整體。6數(shù)據(jù)庫應(yīng)用系統(tǒng)DatabaseApplicationSystemDBAS7.1.2數(shù)據(jù)庫系統(tǒng)的發(fā)展20世紀(jì)50年代中期之前人工管理文件系統(tǒng)數(shù)據(jù)庫系統(tǒng)20世紀(jì)50年代中期到60年代中期20世紀(jì)60年代后7.1.3數(shù)據(jù)庫系統(tǒng)的基本特點(diǎn)數(shù)據(jù)的集成性統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)全局?jǐn)?shù)據(jù)模式全局與局部的結(jié)構(gòu)模式高共享與低冗余應(yīng)用共享網(wǎng)絡(luò)共享減少冗余減少存儲(chǔ)空間避免數(shù)據(jù)不一致數(shù)據(jù)的獨(dú)立性物理獨(dú)立性邏輯獨(dú)立性完整性檢查安全性保護(hù)并發(fā)控制統(tǒng)一管理和控制7.2數(shù)據(jù)模型數(shù)據(jù)庫需要根據(jù)應(yīng)用系統(tǒng)中數(shù)據(jù)的性質(zhì)、內(nèi)在聯(lián)系,按照管理的要求來設(shè)計(jì)和組織。數(shù)據(jù)模型就是從現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層?,F(xiàn)實(shí)世界的事物反映到人的大腦,人們把這些事物抽象為一種既不依賴于具體的計(jì)算機(jī)系統(tǒng)又不為某一數(shù)據(jù)庫管理系統(tǒng)支持的概念模型,然后再把概念模型轉(zhuǎn)換為計(jì)算機(jī)上某一數(shù)據(jù)庫管理系統(tǒng)支持的數(shù)據(jù)模型。7.2.1數(shù)據(jù)模型的組成要素?cái)?shù)據(jù)結(jié)構(gòu)存儲(chǔ)在數(shù)據(jù)庫中的對(duì)象類型的集合描述數(shù)據(jù)的類型、內(nèi)容、性質(zhì)以及數(shù)據(jù)間的聯(lián)系數(shù)據(jù)模型的基礎(chǔ)數(shù)據(jù)庫系統(tǒng)是按數(shù)據(jù)結(jié)構(gòu)的類型來組織數(shù)據(jù),如層次結(jié)構(gòu)、網(wǎng)狀結(jié)構(gòu)和關(guān)系結(jié)構(gòu)數(shù)據(jù)操作對(duì)數(shù)據(jù)庫中各種對(duì)象的實(shí)例允許執(zhí)行的操作集合,包括操作和有關(guān)的操作的規(guī)則例如插入、刪除、修改、檢索、更新等數(shù)據(jù)的完整性約束數(shù)據(jù)的約束條件是完整性規(guī)則的集合,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效和相容數(shù)據(jù)模型中的數(shù)據(jù)及其聯(lián)系都要遵循完整性規(guī)則的制約7.2.2概念模型分析、抽象現(xiàn)實(shí)世界信息世界機(jī)器世界人、物等概念模型,與計(jì)算機(jī)系統(tǒng)無關(guān)數(shù)據(jù)模型轉(zhuǎn)換7.2.2概念模型

實(shí)體描述實(shí)體集:同類型實(shí)體的集合。一個(gè)實(shí)體:屬性值的集合。屬性:實(shí)體的特性。(屬性名和屬性值)實(shí)體:客觀存在并可相互區(qū)別的事物。(具體事物或抽象概念)7.2.2概念模型

實(shí)體聯(lián)系多對(duì)多m:n課程與學(xué)生一對(duì)多1:n球隊(duì)與球員一對(duì)一1:1校園卡與學(xué)生實(shí)體聯(lián)系模型(E-R模型)E-R圖提供了表示實(shí)體集、屬性和聯(lián)系的方法:實(shí)體集:用矩形表示,矩形框內(nèi)寫明實(shí)體名;屬性:用橢圓形表示,并用連線將其與相應(yīng)的實(shí)體連接起來;聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用連線分別與有關(guān)實(shí)體連接起來,同時(shí)在連線旁標(biāo)上聯(lián)系的類型(1:1、1:n或m:n)。實(shí)體-聯(lián)系模型Entity-RelationshipModel實(shí)體聯(lián)系模型(E-R模型)

(b)實(shí)體與實(shí)體之間的聯(lián)系

(a)實(shí)體與屬性7.2.3三種數(shù)據(jù)模型從現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次。

它決定了數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)數(shù)據(jù)定義語言和數(shù)據(jù)操縱語言數(shù)據(jù)庫設(shè)計(jì)方法數(shù)據(jù)庫管理系統(tǒng)軟件的設(shè)計(jì)與實(shí)現(xiàn)數(shù)據(jù)模型DataModel7.2.3三種數(shù)據(jù)模型層次模型網(wǎng)狀模型關(guān)系模型表1-1“學(xué)生”表學(xué)號(hào)姓名性別民族政治面貌出生日期202001001塔娜女蒙古族團(tuán)員202001001202001002榮仕月男壯族群眾202001002202001003林若涵女漢族團(tuán)員202001003202001004張是琦女白族團(tuán)員2020010047.3關(guān)系數(shù)據(jù)庫關(guān)系是數(shù)學(xué)集合論中的一個(gè)重要概念。1970年,E.F.Codd發(fā)表了題為“大型共享數(shù)據(jù)庫數(shù)據(jù)的關(guān)系模型”的論文,把關(guān)系的概念引入了數(shù)據(jù)庫,自此人們開始了數(shù)據(jù)庫關(guān)系方法和關(guān)系數(shù)據(jù)理論的研究,形成了以關(guān)系數(shù)據(jù)模型為基礎(chǔ)的關(guān)系數(shù)據(jù)庫系統(tǒng)。7.3.1關(guān)系模型術(shù)語解釋關(guān)系二維表,有關(guān)系名元組表中的一行屬性表中的一列,有屬性名分量元組中的一個(gè)屬性值,不可再分域?qū)傩缘娜≈捣秶蜻x關(guān)鍵字可唯一標(biāo)識(shí)一個(gè)元組的屬性組主關(guān)鍵被指定唯一標(biāo)識(shí)元組的候選關(guān)鍵字外部關(guān)鍵字另一個(gè)關(guān)系的關(guān)鍵字或候選關(guān)鍵字主屬性包含在任一候選關(guān)鍵字中的屬性1關(guān)系中常用的術(shù)語7.3.1關(guān)系模型7.3.1關(guān)系模型每一列中的分量是同一類型的數(shù)據(jù),來自同一個(gè)域不同的列要給予不同的屬性名列的順序無所謂,即列的次序可以任意交換任意兩個(gè)元組不能完全相同行的順序無所謂,即行的次序可以任意交換每一個(gè)分量都必須是不可再分的數(shù)據(jù)項(xiàng)2.關(guān)系的性質(zhì)7.3.1關(guān)系模型

3關(guān)系間的聯(lián)系一對(duì)一:可合并一對(duì)多:最普遍多對(duì)一多對(duì)多:難實(shí)現(xiàn),需分解7.3.1關(guān)系模型4.關(guān)系數(shù)據(jù)庫在關(guān)系模型中,實(shí)體以及實(shí)體之間的聯(lián)系都是用關(guān)系來表示的。例如教師實(shí)體、學(xué)生實(shí)體、課程實(shí)體等。在一個(gè)給定的應(yīng)用領(lǐng)域中,所有表示實(shí)體以及實(shí)體間聯(lián)系的關(guān)系的集合就構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫。關(guān)系數(shù)據(jù)庫系統(tǒng)是支持關(guān)系模型的數(shù)據(jù)庫系統(tǒng)。它是由若干張二維表組成的,包括二維表的結(jié)構(gòu)以及二維表中的數(shù)據(jù)兩部分。7.3.2關(guān)系代數(shù)運(yùn)算關(guān)系代數(shù)抽象查詢語言,用對(duì)關(guān)系的運(yùn)算來實(shí)現(xiàn)查詢運(yùn)算集合運(yùn)算符關(guān)系運(yùn)算符關(guān)系關(guān)系代數(shù)運(yùn)算結(jié)果運(yùn)算符運(yùn)算對(duì)象關(guān)系7.3.2關(guān)系代數(shù)運(yùn)算集合運(yùn)算符交∩專門的關(guān)系運(yùn)算符算數(shù)比較運(yùn)算符邏輯運(yùn)算符并∪差-笛卡爾積×選擇σ投影Π連接∞除÷大于>大于等于≥小于<小于等于≤等于=不等于<>非┐或∨與∧7.3.2關(guān)系代數(shù)運(yùn)算——集合運(yùn)算交、并和差運(yùn)算前提條件兩個(gè)關(guān)系R和S1.均為n元關(guān)系(元數(shù)相同即屬性個(gè)數(shù)相同),2.兩個(gè)關(guān)系屬性的性質(zhì)相同。7.3.2關(guān)系代數(shù)運(yùn)算——集合運(yùn)算兩個(gè)關(guān)系的并運(yùn)算可以記作R∪S,運(yùn)算結(jié)果是將兩個(gè)關(guān)系的所有元組組成一個(gè)新的關(guān)系,若有相同的元組,只留下一個(gè)。并運(yùn)算RS7.3.2關(guān)系代數(shù)運(yùn)算——集合運(yùn)算學(xué)號(hào)姓名性別政治面貌202001001塔娜女團(tuán)員202001002榮仕月男群眾202001003林若涵女團(tuán)員學(xué)

號(hào)姓

名性

別政治面貌202001001塔娜女團(tuán)員202001002榮仕月男群眾202001003林若涵女團(tuán)員202001004張是琦女團(tuán)員202001005王祎瑋男團(tuán)員學(xué)號(hào)姓名性別政治面貌202001003林若涵女團(tuán)員202001004張是琦女團(tuán)員202001005王祎瑋男團(tuán)員學(xué)生A∪學(xué)生B教師A教師B學(xué)生A學(xué)生B7.3.2關(guān)系代數(shù)運(yùn)算——集合運(yùn)算兩個(gè)關(guān)系的差運(yùn)算可以記作R-S,運(yùn)算結(jié)果是由屬于R但不屬于S的元組組成一個(gè)新的關(guān)系。差運(yùn)算RS7.3.2關(guān)系代數(shù)運(yùn)算——集合運(yùn)算學(xué)號(hào)姓名性別政治面貌202001001塔娜女團(tuán)員202001002榮仕月男群眾202001003林若涵女團(tuán)員學(xué)號(hào)姓名性

別政治面貌202001001塔娜女團(tuán)員202001002榮仕月男群眾學(xué)生A學(xué)生B學(xué)號(hào)姓名性別政治面貌202001003林若涵女團(tuán)員202001004張是琦女團(tuán)員202001005王祎瑋男團(tuán)員學(xué)生A-學(xué)生B7.3.2關(guān)系代數(shù)運(yùn)算——集合運(yùn)算兩個(gè)關(guān)系的交運(yùn)算可以記作R∩S,運(yùn)算結(jié)果是將兩個(gè)關(guān)系中公共元組組成一個(gè)新的關(guān)系。交運(yùn)算RS7.3.2關(guān)系代數(shù)運(yùn)算——集合運(yùn)算學(xué)號(hào)姓名性別政治面貌202001001塔娜女團(tuán)員202001002榮仕月男群眾202001003林若涵女團(tuán)員教師編號(hào)姓名性別工作時(shí)間202001003林若涵女團(tuán)員學(xué)生A學(xué)生B學(xué)號(hào)姓名性別政治面貌202001003林若涵女團(tuán)員202001004張是琦女團(tuán)員202001005王祎瑋男團(tuán)員學(xué)生A∩學(xué)生B7.3.2關(guān)系代數(shù)運(yùn)算——集合運(yùn)算設(shè)R和S是兩個(gè)關(guān)系,如果R是m元關(guān)系,有i個(gè)元組,S是n元關(guān)系,有j個(gè)元組,則笛卡兒積R×S是一個(gè)m+n元關(guān)系,有i×j個(gè)元組。記作:R×S。廣義笛卡爾積運(yùn)算7.3.2關(guān)系代數(shù)運(yùn)算——集合運(yùn)算7.3.2關(guān)系代數(shù)運(yùn)算——專門的關(guān)系運(yùn)算1.選擇是根據(jù)給定的條件選擇關(guān)系R中的若干元組組成新的關(guān)系;2.對(duì)關(guān)系的元組進(jìn)行篩選;3.σ<條件表達(dá)式>(R),其中,σ是選擇運(yùn)算符,R是關(guān)系名。

4.一元關(guān)系運(yùn)算;5.選擇運(yùn)算結(jié)果是原關(guān)系的一個(gè)子集,但關(guān)系模式不變。選擇運(yùn)算7.3.2關(guān)系代數(shù)運(yùn)算——專門的關(guān)系運(yùn)算例:選出性別為“女”的學(xué)生名單,可以記成:學(xué)號(hào)姓名性別政治面貌202001001塔娜女團(tuán)員202001002榮仕月男群眾202001003林若涵女團(tuán)員學(xué)

號(hào)姓

名性

別政治面貌202001001塔娜女團(tuán)員202001003林若涵女團(tuán)員σ性別=[女](學(xué)生A)學(xué)生A7.3.2關(guān)系代數(shù)運(yùn)算——專門的關(guān)系運(yùn)算1.關(guān)系R上的投影是從關(guān)系R中選擇若干屬性列組成新的關(guān)系2.對(duì)關(guān)系的列進(jìn)行篩選3.ΠA(R),A是R中的屬性列4.пi1、i2、i3、…、im(R)={t|t=(ti1、ti2、ti3、…、tim)∧(ti1、ti2、ti3、…、tim∈R)

;5.一元關(guān)系運(yùn)算6.投影后可能出現(xiàn)重復(fù)的元組,應(yīng)消去這些完全相同的元組投影運(yùn)算7.3.2關(guān)系代數(shù)運(yùn)算——專門的關(guān)系運(yùn)算例:列出所有學(xué)生的姓名、性別學(xué)生A學(xué)號(hào)姓名性別政治面貌202001001塔娜女團(tuán)員202001002榮仕月男群眾202001003林若涵女團(tuán)員∏姓名,性別(學(xué)生A)姓

名性

別塔娜女榮仕月男林若涵女7.3.2關(guān)系代數(shù)運(yùn)算——專門的關(guān)系運(yùn)算1.從兩個(gè)關(guān)系R和S的笛卡爾積中選取屬性間滿足一定條件的元組,連接也稱為連接;2.R?S=R.AS.B(R×S),A和B分別為R和S上可比的屬性組。是比較運(yùn)算符,可以是>,≥,<,≤,=,≠等符號(hào)。3.從R和S的笛卡爾積R×S中選?。≧關(guān)系)在A屬性組上的值與(S關(guān)系)在B屬性組上值滿足比較關(guān)系的元組,這些元組構(gòu)成的關(guān)系是R×S的一個(gè)子集。4.等值連接:為“=”的連接運(yùn)算。它選取關(guān)系R與S的笛卡爾積中A、B屬性值相等的那些元組。連接運(yùn)算7.3.2關(guān)系代數(shù)運(yùn)算——專門的關(guān)系運(yùn)算1.從兩個(gè)關(guān)系的笛卡爾積中選擇出公共屬性值相等的元組所構(gòu)成的新的關(guān)系;2.自然聯(lián)接是按照公共屬性值相等的條件進(jìn)行聯(lián)接,并且消除重復(fù)屬性。3.設(shè)關(guān)系R和關(guān)系S具有相同的屬性集U={Al,A2,…Ak},從關(guān)系R和關(guān)系S的笛卡爾積中,取滿足ПR.U=ПS.U的所有元組,且去掉S.Al、S.A2、...、S.Ak,所得的新關(guān)系R?S=Пil,i2,i3,..,ik(R.Al=S.A1∧R.A2=S.A2∧…∧R.Ak=S.Ak(R×S))自然連接運(yùn)算7.3.2關(guān)系代數(shù)運(yùn)算——專門的關(guān)系運(yùn)算R.B=S.B

R

SR

S7.3.2關(guān)系代數(shù)運(yùn)算——專門的關(guān)系運(yùn)算1.條件是:關(guān)系S的屬性全部包含在關(guān)系R中,關(guān)系R的一些屬性不包含在關(guān)系S中;2.R÷S;3.結(jié)果關(guān)系中的屬性由R中除去S中的屬性之外的全部屬性組成,元組由R與S中在所有相同屬性上有相等值的那些元組組成。除運(yùn)算7.3.2關(guān)系代數(shù)運(yùn)算——專門的關(guān)系運(yùn)算ABCa12b21c31ABc3÷C1=7.3.3關(guān)系的完整性關(guān)系模型允許定義3種完整性約束,即實(shí)體完整性、參照完整性和用戶定義的完整性約束。其中實(shí)體完整性約束和參照完整性約束統(tǒng)稱為關(guān)系完整性約束,是關(guān)系模型必須滿足的完整性約束條件,它由關(guān)系數(shù)據(jù)庫系統(tǒng)自動(dòng)支持。用戶定義完整性約束是應(yīng)用領(lǐng)域需要遵循的約束條件。7.3.3關(guān)系的完整性關(guān)系的完整性用戶定義完整性約束:反映了具體應(yīng)用中數(shù)據(jù)的語義要求參照完整性約束:關(guān)系之間相關(guān)聯(lián)的基本約束,不允許關(guān)系引用不存在的元組,即在關(guān)系中的外鍵取值只能是關(guān)聯(lián)關(guān)系中的某個(gè)主鍵值或者為空值實(shí)體完整性約束:若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值學(xué)生選修關(guān)系“選修(學(xué)號(hào),課程號(hào),成績(jī))”中,“學(xué)號(hào),課程號(hào)”為聯(lián)合主鍵,那么學(xué)號(hào),課程號(hào)都不能取空值,而不是整體不為空。7.3.4關(guān)系規(guī)范化關(guān)系模型是建立在嚴(yán)格的數(shù)學(xué)關(guān)系理論基礎(chǔ)之上的,通過確立關(guān)系中的規(guī)范化準(zhǔn)則,既可以方便數(shù)據(jù)庫中數(shù)據(jù)的處理,又可以給程序設(shè)計(jì)帶來方便。在關(guān)系數(shù)據(jù)庫設(shè)計(jì)過程中,使關(guān)系滿足規(guī)范化準(zhǔn)則的過程稱為關(guān)系規(guī)范化(RelationNormalization)。關(guān)系規(guī)范化就是將數(shù)據(jù)庫中不太合理的關(guān)系模型轉(zhuǎn)化為一個(gè)最佳的數(shù)據(jù)模型,因此它要求對(duì)于關(guān)系數(shù)據(jù)庫中的每一個(gè)關(guān)系都要滿足一定的規(guī)范,根據(jù)滿足規(guī)范的條件不同,可以劃分為6個(gè)范式(NormalForm,NF),分別為:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BCNF、第四范式(4NF)和第五范式(5NF)。7.3.4關(guān)系規(guī)范化(1)第一范式:若一個(gè)關(guān)系模式R的所有屬性都是不可再分的基本數(shù)據(jù)項(xiàng),則該關(guān)系模式屬于第一范式(1NF)。編號(hào)姓名電話家庭電話辦公電話01004張輝春667788998733421102001陳玉茜672123458656633302002張一燕6789123482334212編號(hào)姓名家庭電話辦公電話01004張輝春667788998733421102001陳玉茜672123458656633302002張一燕6789123482334212只要將所有的屬性表示為不可分的數(shù)據(jù)項(xiàng),轉(zhuǎn)化后的關(guān)系即符合第一范式,即下圖所示。

第一范式示意圖:7.3.4關(guān)系規(guī)范化(2)第二范式(2NF):若關(guān)系模式R屬于1NF,且每個(gè)非主屬性都完全函數(shù)依賴于主鍵,則該關(guān)系模式屬于2NF,2NF不允許關(guān)系模式中的非主屬性部分函數(shù)依賴于主鍵。用符號(hào)→來表示依賴關(guān)系。例如:學(xué)號(hào)→院系,就表示院系依賴于學(xué)號(hào);課程號(hào)→學(xué)分,就表示學(xué)分依賴于課程號(hào);7.3.4關(guān)系規(guī)范化學(xué)號(hào)課程號(hào)成績(jī)學(xué)分01002C176401002C288502002C190402002C286502002C393405007C3964帶來問題的原因是:非主屬性“學(xué)分”僅僅依賴于“課程號(hào)”,也就是說只是部分依賴于主關(guān)鍵字(學(xué)號(hào),課程號(hào)),而不是完全依賴,出現(xiàn)冗余等諸多問題,改造成下圖后,為第二范式。學(xué)號(hào)課程號(hào)成績(jī)課程號(hào)課程名學(xué)分01002C176C1高等數(shù)學(xué)401002C288C2計(jì)算機(jī)文化基礎(chǔ)502002C190C3英語402002C286C4大學(xué)物理402002C393C5大學(xué)美育305007C396C6計(jì)算機(jī)繪圖3第二范式:表的關(guān)系不僅滿足第一范式(即最基本不可再分字段),且所有非主關(guān)鍵字完全依賴于其主關(guān)鍵字。學(xué)號(hào)課程代碼平時(shí)成績(jī)期中成績(jī)期末成績(jī)學(xué)分綜合成績(jī)課程代碼課程名稱學(xué)分主關(guān)鍵字復(fù)合主關(guān)鍵字上圖中,除去學(xué)分(和學(xué)號(hào)無關(guān),卻完全依賴于課程代碼)及綜合成績(jī)(其他項(xiàng)派生的)字段后,全部非學(xué)號(hào)字段,均和復(fù)合主關(guān)鍵字段有關(guān)系,或者說,全都完全依賴復(fù)合主關(guān)鍵字。右圖中,課程名稱和學(xué)分是完全依賴于課程代碼這個(gè)主關(guān)鍵字的。所以這兩個(gè)圖所表示的關(guān)系都是屬于第二范式的情況??次覀?cè)谙旅娼o出的數(shù)據(jù)庫表中,將課程專門做為一個(gè)表來進(jìn)行一個(gè)設(shè)計(jì),就是為保證滿足第二范式的要求。刪除此兩項(xiàng)內(nèi)容7.3.4關(guān)系規(guī)范化(3)第三范式(3NF):若關(guān)系模式R屬于1NF,且每個(gè)非主屬性都不傳遞依賴于主鍵,則該關(guān)系模式屬于3NF。滿足第三范式必須先滿足第二范式。也就是說,第三范式要求一個(gè)數(shù)據(jù)庫表中不包含已在其他表中包含的非主關(guān)鍵字信息。簡(jiǎn)而言之,第三范式就是屬性不依賴于其他非主屬性。關(guān)系模型在第二范式的基礎(chǔ)上,如果關(guān)系模式中的所有非主屬性對(duì)任何候選關(guān)鍵字都不存在傳遞依賴,則稱這個(gè)關(guān)系就是第三范式。學(xué)號(hào)姓名院系編號(hào)院系名稱院系地址01004張輝春01計(jì)算機(jī)學(xué)院科教樓三層02001陳玉茜01計(jì)算機(jī)學(xué)院科教樓三層02002張一燕03會(huì)計(jì)學(xué)院科教樓十一層分解關(guān)系學(xué)號(hào)姓名院系編號(hào)院系編號(hào)院系名稱院系地址01004張輝春0101計(jì)算機(jī)學(xué)院科教樓三層02001陳玉茜0103會(huì)計(jì)學(xué)院科教樓十一層02002張一燕0302經(jīng)濟(jì)學(xué)院科教樓二層院系名稱和地址依賴于院系編號(hào),而后者又依賴于學(xué)號(hào)。第三范式必須消除這種傳遞依賴??次覀?cè)谙旅嫠O(shè)計(jì)的數(shù)據(jù)庫表中,將院系表、專業(yè)表都專門做為一個(gè)表來設(shè)計(jì),就是為保證滿足第三范式的要求。7.3.4關(guān)系規(guī)范化總結(jié)范式第一范式:每個(gè)屬性都是不可再分的,即:每個(gè)屬性必須包含可能的最小數(shù)據(jù)元素。第二范式:關(guān)系首先滿足第一范式,所有的其他屬性還必須完全依賴于主鍵,而不僅僅是只依賴組合主鍵的一部分。第三范式:關(guān)系必須滿足第一范式和第二范式,所有的其他屬性之間必須相互獨(dú)立,都和主屬性有關(guān),但可以是和主屬性部分有關(guān),取消任何和主屬性無關(guān)的屬性。結(jié)論:三個(gè)范式要求依次提高,應(yīng)滿足的約束條件也依次更加嚴(yán)格。1NF到3NF的三種范式之間有如下關(guān)系:3NF包含了2NF,2NF包含了1NF。7.3.5數(shù)據(jù)庫的設(shè)計(jì)方法在數(shù)據(jù)庫設(shè)計(jì)中有兩種方法,一種是以信息需求為主,兼顧處理需求,稱為面向數(shù)據(jù)的方法(Data-OrientedApproach);另一種是以處理需求為主,兼顧信息需求,稱為面向過程的方法(Process-OrientedApproach)。這兩種方法目前都有使用,在早期由于應(yīng)用系統(tǒng)中處理多于數(shù)據(jù),因此以面向過程的方法使用較多,而近期由于大型系統(tǒng)中數(shù)據(jù)結(jié)構(gòu)復(fù)雜、數(shù)據(jù)量龐大,而相應(yīng)處理流程趨于簡(jiǎn)單,因此用面向數(shù)據(jù)的方法較多。由于數(shù)據(jù)在系統(tǒng)中穩(wěn)定性高,數(shù)據(jù)已成為系統(tǒng)的核心,因此面向數(shù)據(jù)的設(shè)計(jì)方法已成為主流方法。7.3.5數(shù)據(jù)庫的設(shè)計(jì)方法通過分析、比較與綜合各種常用的數(shù)據(jù)庫規(guī)范設(shè)計(jì)方法,將數(shù)據(jù)庫設(shè)計(jì)分為以下6個(gè)階段。(1)需求分析階段(2)概念結(jié)構(gòu)設(shè)計(jì)階段(3)邏輯結(jié)構(gòu)設(shè)計(jì)階段(4)物理結(jié)構(gòu)設(shè)計(jì)階段(5)數(shù)據(jù)庫實(shí)施階段(6)數(shù)據(jù)庫運(yùn)行與維護(hù)階段

7.3.6常見的關(guān)系型數(shù)據(jù)庫根據(jù)最新的數(shù)據(jù)庫排名網(wǎng)站DB-Engines的統(tǒng)計(jì)結(jié)果,目前主流的關(guān)系型數(shù)據(jù)庫有Oracle、MySQL、MicrosoftSQLServer、PostgreSQL、IBMDb2、SQLite、MicrosoftAccess等。7.3.6常見的關(guān)系型數(shù)據(jù)庫Oracle數(shù)據(jù)庫,又名OracleRDBMS,或簡(jiǎn)稱Oracle,是甲骨文公司的一款關(guān)系數(shù)據(jù)庫管理系統(tǒng),到目前仍在數(shù)據(jù)庫市場(chǎng)上占有主要份額。MySQL原本是一個(gè)開放源碼的關(guān)系數(shù)據(jù)庫管理系統(tǒng),原開發(fā)者為瑞典的MySQLAB公司,該公司于2008年被Sun收購。2009年,甲骨文公司(Oracle)收購Sun公司,MySQL成為Oracle旗下產(chǎn)品。MySQL在過去由于性能高、成本低、可靠性好,已經(jīng)成為最流行的開源數(shù)據(jù)庫。7.3.6常見的關(guān)系型數(shù)據(jù)庫MicrosoftSQLServer和MicrosoftAccess是由美國微軟公司所推出的關(guān)系數(shù)據(jù)庫解決方案。MicrosoftAccess是小型數(shù)據(jù)庫,操作靈活、轉(zhuǎn)移方便、運(yùn)行環(huán)境簡(jiǎn)單。MicrosoftSQLServer是企業(yè)級(jí)中型數(shù)據(jù)庫,適合大容量數(shù)據(jù)的應(yīng)用,在性能、安全、功能管理等方面要比MicrosoftAccess強(qiáng)很多。7.3.6常見的關(guān)系型數(shù)據(jù)庫PostgreSQL是一個(gè)功能強(qiáng)大的開源對(duì)象關(guān)系數(shù)據(jù)庫系統(tǒng),它是加州大學(xué)伯克利分校POSTGRES項(xiàng)目的一部分。經(jīng)過30多年的積極開發(fā),在可靠性,功能健壯性和性能方面贏得了極高的聲譽(yù)。IBMDb2是美國IBM公司發(fā)展的一套關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。它主要的運(yùn)行環(huán)境為UNIX(包括IBM自家的AIX)、Linux、IBMi(舊稱OS/400)、Z/OS,以及Windows服務(wù)器。7.4大數(shù)據(jù)技術(shù)基礎(chǔ)隨著云計(jì)算、物聯(lián)網(wǎng)、社交網(wǎng)絡(luò)、移動(dòng)網(wǎng)絡(luò)等各類技術(shù)的出現(xiàn)以及現(xiàn)有的計(jì)算能力、存儲(chǔ)空間、網(wǎng)絡(luò)帶寬的高速發(fā)展,各類數(shù)據(jù)資源正在以前所未有的速度不斷地增長和積累,催生了以海量數(shù)據(jù)作為關(guān)鍵基礎(chǔ)要素的大數(shù)據(jù)時(shí)代的到來。大數(shù)據(jù)的數(shù)據(jù)是巨大的,往往為PB級(jí),遠(yuǎn)遠(yuǎn)超出傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)和常用軟件的數(shù)據(jù)處理能力。大數(shù)據(jù)本身蘊(yùn)含巨大的數(shù)據(jù)價(jià)值,目前被應(yīng)用到網(wǎng)購、打車、金融、醫(yī)療、教育等社會(huì)生活的各個(gè)方面,伴隨著各種大數(shù)據(jù)應(yīng)用服務(wù)的發(fā)展,各類大數(shù)據(jù)技術(shù)和大數(shù)據(jù)解決方案也逐漸走向成熟。7.4.1大數(shù)據(jù)的定義大數(shù)據(jù)是對(duì)海量數(shù)據(jù)集進(jìn)行收集,組織,處理和分析所需的非傳統(tǒng)策略和技術(shù)的統(tǒng)稱。維基百科將大數(shù)據(jù)定義為:大數(shù)據(jù)由巨型數(shù)據(jù)集組成,這些數(shù)據(jù)集大小常超出人類在可接受時(shí)間下的收集、管理和處理能力。百度百科將大數(shù)據(jù)定義為:無法在一定時(shí)間范圍內(nèi)用常規(guī)軟件工具進(jìn)行捕捉、管理和處理的數(shù)據(jù)集合,是需要新處理模式才能具有更強(qiáng)的決策力、洞察發(fā)現(xiàn)力和流程優(yōu)化能力的海量、高增長率和多樣化的信息資產(chǎn)。其他的定義是通過結(jié)合大數(shù)據(jù)的特征給出相關(guān)定義,比較有代表性的是“3V”定義,即大數(shù)據(jù)需要滿足3個(gè)特點(diǎn):Volume(大量)、Velocity(高速)、Variety(多樣)。在此基礎(chǔ)上,IBM提出了大數(shù)據(jù)的“5V”特性:Volume(大量)、Velocity(高速)、Variety(多樣)、Value(低價(jià)值密度)、Veracity(真實(shí))。7.4.1大數(shù)據(jù)“5V”特性

(1)Volume(大量)數(shù)據(jù)量非常大,大數(shù)據(jù)的起始計(jì)量單位至少是PB、EB或ZB。(2)Velocity(高速)數(shù)據(jù)增長速度快,處理速度也快,時(shí)效性要求高。區(qū)別傳統(tǒng)數(shù)據(jù)挖掘的顯著特征。(3)Variety(多樣)種類和來源多樣化,包括多種來源的結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。(4)Value(低價(jià)值密度)數(shù)據(jù)價(jià)值密度相對(duì)較低,挖掘數(shù)據(jù)的隱含價(jià)值是大數(shù)據(jù)時(shí)代亟需解決的問題。(5)Veracity(真實(shí))數(shù)據(jù)的準(zhǔn)確性和可信賴度,即數(shù)據(jù)的質(zhì)量。7.4.2大數(shù)據(jù)處理一般流程大數(shù)據(jù)處理的一般流程包括:大數(shù)據(jù)采集、大數(shù)據(jù)預(yù)處理、大數(shù)據(jù)存儲(chǔ)及管理、大數(shù)據(jù)分析及挖掘、大數(shù)據(jù)展現(xiàn)和應(yīng)用等。7.4.2大數(shù)據(jù)處理一般流程1、大數(shù)據(jù)采集大數(shù)據(jù)采集是指通過各種數(shù)據(jù)采集方式獲取分散的、異構(gòu)數(shù)據(jù)源中的原始數(shù)據(jù)的過程。例如,通過免費(fèi)開源數(shù)據(jù)、企業(yè)內(nèi)部數(shù)據(jù)、爬取網(wǎng)絡(luò)數(shù)據(jù)、從數(shù)據(jù)公司購買數(shù)據(jù)等大數(shù)據(jù)采集方式可以獲取相應(yīng)實(shí)際需求的原始數(shù)據(jù)。2、大數(shù)據(jù)預(yù)處理大數(shù)據(jù)預(yù)處理是指在主要的處理以前對(duì)數(shù)據(jù)進(jìn)行的一些處理,包括數(shù)據(jù)質(zhì)量評(píng)估、數(shù)據(jù)清理、數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)壓縮等內(nèi)容。通過預(yù)處理數(shù)據(jù),可以提升數(shù)據(jù)的一致性,使得數(shù)據(jù)更加準(zhǔn)確、數(shù)據(jù)庫更為完整。7.4.2大數(shù)據(jù)處理一般流程3、大數(shù)據(jù)存儲(chǔ)及管理根據(jù)數(shù)據(jù)存儲(chǔ)和管理的內(nèi)容范圍,大數(shù)據(jù)存儲(chǔ)與管理要用存儲(chǔ)器把采集到的數(shù)據(jù)存儲(chǔ)起來,建立相應(yīng)的數(shù)據(jù)庫,并進(jìn)行管理和調(diào)用。4、大數(shù)據(jù)分析及挖掘大數(shù)據(jù)分析及挖掘主要通過對(duì)收集來的大數(shù)據(jù)進(jìn)行分析,提取和挖掘有用信息或隱藏信息,并形成結(jié)論而對(duì)數(shù)據(jù)加以詳細(xì)研究和概括總結(jié)的過程。5、大數(shù)據(jù)展現(xiàn)和應(yīng)用大數(shù)據(jù)展現(xiàn)和應(yīng)用借助于圖形化手段展示大數(shù)據(jù)分析結(jié)果。需要把過去用語言、數(shù)據(jù)、想象力表達(dá)的內(nèi)容,通過圖形、圖表等形式即時(shí)顯示。7.4.3大數(shù)據(jù)處理關(guān)鍵技術(shù)大數(shù)據(jù)技術(shù),就是從各種類型的數(shù)據(jù)中快速獲得有價(jià)值信息的技術(shù)。大數(shù)據(jù)領(lǐng)域已經(jīng)涌現(xiàn)出了大量新的技術(shù),它們成為大數(shù)據(jù)采集、存儲(chǔ)、處理和呈現(xiàn)的有力武器。大數(shù)據(jù)處理關(guān)鍵技術(shù)一般包括:大數(shù)據(jù)采集技術(shù)、大數(shù)據(jù)預(yù)處理技術(shù)、大數(shù)據(jù)存儲(chǔ)技術(shù)、大數(shù)據(jù)分析挖掘技術(shù)、大數(shù)據(jù)可視化技術(shù)。7.4.3大數(shù)據(jù)處理關(guān)鍵技術(shù)——大數(shù)據(jù)采集技術(shù)

按照數(shù)據(jù)的來源的不同,大數(shù)據(jù)采集方法也不相同。目前大數(shù)據(jù)采集使用的處理模式包括MapReduce分布式并行處理模式或基于內(nèi)存的流式處理模式。針對(duì)不同的數(shù)據(jù)源,大數(shù)據(jù)采集技術(shù)主要包括以下幾類:數(shù)據(jù)庫采集。部署Redis、MongoDB和HBase等NoSQL數(shù)據(jù)庫和部分傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,并在這些數(shù)據(jù)庫之間進(jìn)行負(fù)載均衡和分片,來完成大數(shù)據(jù)采集工作。系統(tǒng)日志采集。系統(tǒng)日志采集主要是收集各類業(yè)務(wù)平臺(tái)日常產(chǎn)生的大量日志數(shù)據(jù),供離線和在線的大數(shù)據(jù)分析系統(tǒng)使用。網(wǎng)絡(luò)數(shù)據(jù)采集。網(wǎng)絡(luò)數(shù)據(jù)采集是利用網(wǎng)絡(luò)爬蟲或網(wǎng)站API等方式從網(wǎng)站上獲取相關(guān)結(jié)構(gòu)化、半結(jié)構(gòu)化以及非結(jié)構(gòu)化信息的方法。感知設(shè)備數(shù)據(jù)采集。感知設(shè)備數(shù)據(jù)采集通過各類傳感器、攝像頭和智能終端自動(dòng)采集信號(hào)、圖像和音視頻來獲取數(shù)據(jù)。7.4.3大數(shù)據(jù)處理關(guān)鍵技術(shù)——大數(shù)據(jù)預(yù)處理技術(shù)大數(shù)據(jù)預(yù)處理包括數(shù)據(jù)預(yù)處理、數(shù)據(jù)清洗、數(shù)據(jù)集成、數(shù)據(jù)規(guī)約、數(shù)據(jù)變換、數(shù)據(jù)離散化和大數(shù)據(jù)預(yù)處理等7個(gè)步驟。數(shù)據(jù)預(yù)處理主要是處理原始信息的不完整、噪聲和不一致等“臟”數(shù)據(jù)問題,進(jìn)而獲得具有一致性、準(zhǔn)確性、完整性、時(shí)效性、可信性和可解釋性的數(shù)據(jù)。數(shù)據(jù)清洗主要是進(jìn)行數(shù)據(jù)的缺失值的處理、噪聲數(shù)據(jù)與離群點(diǎn)的處理。數(shù)據(jù)集成是把不同來源、格式、特點(diǎn)性質(zhì)的數(shù)據(jù)在邏輯上或物理上有機(jī)的集中,從而提供全面的數(shù)據(jù)共享。7.4.3大數(shù)據(jù)處理關(guān)鍵技術(shù)——大數(shù)據(jù)預(yù)處理技術(shù)數(shù)據(jù)規(guī)約技術(shù)包括數(shù)據(jù)規(guī)約策略、機(jī)器學(xué)習(xí)中的降維方法、主成分分析法、先行分別分析、局部線性嵌入等。數(shù)據(jù)變換技術(shù)包括數(shù)據(jù)變換策略和規(guī)范化方法,數(shù)據(jù)變換策略包括光滑、屬性構(gòu)造、聚集、規(guī)范化、離散化、標(biāo)稱數(shù)據(jù)的概念分層等,規(guī)范化方法包括最小最大規(guī)范化、Z-Score規(guī)范化、小數(shù)定標(biāo)等。數(shù)據(jù)離散化技術(shù)包括非監(jiān)督離散化,如等寬算法、等頻算法、K-means聚類算法,以及監(jiān)督離散化,如齊次性的卡方檢驗(yàn)、自上而下的卡方分裂算法、ChiMerge算法、基于熵的離散化方法等。大數(shù)據(jù)預(yù)處理包括Hadoop集群、Spark、HBase、云計(jì)算處理大數(shù)據(jù)等。7.4.3大數(shù)據(jù)處理關(guān)鍵技術(shù)——大數(shù)據(jù)存儲(chǔ)技術(shù)大數(shù)據(jù)存儲(chǔ)技術(shù)包括結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化大數(shù)據(jù)管理與處理技術(shù),主要解決大數(shù)據(jù)的可存儲(chǔ)、可表示、可處理、可靠性及有效傳輸?shù)葞讉€(gè)關(guān)鍵問題。大數(shù)據(jù)的存儲(chǔ)方式包括分布式系統(tǒng)、NoSQL數(shù)據(jù)庫、云數(shù)據(jù)庫等。7.4.3大數(shù)據(jù)處理關(guān)鍵技術(shù)——大數(shù)據(jù)分析挖掘技術(shù)大數(shù)據(jù)分析挖掘技術(shù)能夠?qū)㈦[藏于海量數(shù)據(jù)中的信息和知識(shí)挖掘出來,為人類的社會(huì)經(jīng)濟(jì)活動(dòng)提供依據(jù),從而提高各個(gè)領(lǐng)域的運(yùn)行效率,大大提高整個(gè)社會(huì)的集約化程度。大數(shù)據(jù)挖掘涉及的技術(shù)方法很多,有多種分類法。根據(jù)挖掘任務(wù)可分為分類或預(yù)測(cè)模型發(fā)現(xiàn)、數(shù)據(jù)總結(jié)、聚類、關(guān)聯(lián)規(guī)則發(fā)現(xiàn)、序列模式發(fā)現(xiàn)、依賴關(guān)系或依賴模型發(fā)現(xiàn)、異常和趨勢(shì)發(fā)現(xiàn)等;根據(jù)挖掘?qū)ο罂煞譃殛P(guān)系數(shù)據(jù)庫、面向?qū)ο髷?shù)據(jù)庫、空間數(shù)據(jù)庫、時(shí)態(tài)數(shù)據(jù)庫、文本數(shù)據(jù)源、多媒體數(shù)據(jù)庫、異質(zhì)數(shù)據(jù)庫等;根據(jù)挖掘方法分為機(jī)器學(xué)習(xí)方法、統(tǒng)計(jì)方法、神經(jīng)網(wǎng)絡(luò)方法和數(shù)據(jù)庫方法等。7.4.3大數(shù)據(jù)處理關(guān)鍵技術(shù)——大數(shù)據(jù)可視化技術(shù)大數(shù)據(jù)可視化根據(jù)數(shù)據(jù)的特性,如時(shí)間信息和空間信息等,找到合適的可視化方式,例如圖表(Chart)、圖(Diagram)和地圖(Map)等,將數(shù)據(jù)直觀地展現(xiàn)出來,以幫助人們理解數(shù)據(jù),同時(shí)找出包含在海量數(shù)據(jù)中的規(guī)律或者信息。大數(shù)據(jù)數(shù)據(jù)可視化涉及數(shù)據(jù)的可視化、指標(biāo)的可視化、數(shù)據(jù)關(guān)系的可視化、背景數(shù)據(jù)的可視化、轉(zhuǎn)換成便于接受的形式、聚焦、集中或者匯總展示、掃尾的處理和完美的風(fēng)格化。常用的大數(shù)據(jù)可視化工具包括Processing、D3、Echarts、Tableau、QlikView等。7.4.4主流大數(shù)據(jù)處理平臺(tái)隨著大數(shù)據(jù)技術(shù)的迅猛發(fā)展,目前出現(xiàn)了很多大數(shù)據(jù)平臺(tái),主流的大數(shù)據(jù)處理平臺(tái)包括Hadoop、Spark、Flink、Storm、Samza等。7.4.4主流大數(shù)據(jù)處理平臺(tái)——Hadoop批處理平臺(tái)Hadoop是一個(gè)由Apache基金會(huì)所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。它支持在商用硬件構(gòu)建的大型集群上運(yùn)行的應(yīng)用程序。所有的Hadoop模塊都有一個(gè)基本假設(shè),即硬件故障是常見情況,應(yīng)該由框架自動(dòng)處理。Hadoop的核心由Hadoop分布式文件系統(tǒng)HDFS存儲(chǔ)部分和MapReduce編程處理部分組成。Hadoop將文件拆分為大塊,并將它們分布在集群中的各個(gè)節(jié)點(diǎn)上。然后,它將打包的代碼傳輸?shù)焦?jié)點(diǎn)中以并行處理數(shù)據(jù)。與在傳統(tǒng)的超級(jí)計(jì)算機(jī)體系結(jié)構(gòu)中依靠并行文件系統(tǒng)通過高速網(wǎng)絡(luò)分發(fā)計(jì)算任務(wù)和數(shù)據(jù)相比,這種方法可以更快、更有效地處理海量數(shù)據(jù)集。7.4.4主流大數(shù)據(jù)處理平臺(tái)——Hadoop批處理平臺(tái)Hadoop主要工作流程7.4.4主流大數(shù)據(jù)處理平臺(tái)——Hadoop批處理平臺(tái)Hadoop是一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架,并且以一種可靠、高效、可伸縮的方式進(jìn)行處理,具有以下特點(diǎn):支持超大文件:HDFS存儲(chǔ)的文件可以支持TB和PB級(jí)別的數(shù)據(jù)。高可靠性:Hadoop具有按位存儲(chǔ)和處理數(shù)據(jù)能力的高可靠性。高效性:Hadoop能夠在節(jié)點(diǎn)之間進(jìn)行動(dòng)態(tài)地移動(dòng)數(shù)據(jù),并保證各個(gè)節(jié)點(diǎn)的動(dòng)態(tài)平衡,處理速度非???。高容錯(cuò)性:Hadoop文件保存多個(gè)副本,并提供副本丟失自動(dòng)恢復(fù)功能。高擴(kuò)展性:集群可以方便地?cái)U(kuò)展到數(shù)以千計(jì)的節(jié)點(diǎn),具有高擴(kuò)展性。低成本:可以部署在廉價(jià)的機(jī)器上。7.4.4主流大數(shù)據(jù)處理平臺(tái)——Spark混合處理平臺(tái)ApacheSpark是一個(gè)開源集群運(yùn)算框架,最初是由加州大學(xué)柏克萊分校AMPLab所開發(fā)。2013年,該項(xiàng)目被捐贈(zèng)給Apache軟件基金會(huì),2014年2月,Spark成為Apache的頂級(jí)項(xiàng)目。相對(duì)于Hadoop的MapReduce會(huì)在運(yùn)行完工作后將中介資料存放到磁盤中,Spark使用了存儲(chǔ)器內(nèi)運(yùn)算技術(shù),能在資料尚未寫入硬盤時(shí)即在存儲(chǔ)器內(nèi)分析運(yùn)算。Spark在存儲(chǔ)器內(nèi)運(yùn)行程序的運(yùn)算速度能做到比HadoopMapReduce的運(yùn)算速度快上100倍,即便是運(yùn)行程序于硬盤時(shí),Spark也能快上10倍速度。Spark允許用戶將資料加載至集群存儲(chǔ)器,并多次對(duì)其進(jìn)行查詢,非常適合用于機(jī)器學(xué)習(xí)算法。7.4.4主流大數(shù)據(jù)處理平臺(tái)——Spark混合處理平臺(tái)Spark主要包括SparkCore、SparkSQL、SparkStreaming、SparkMLlib、GraphX、集群管理器。SparkCore提供了分布式任務(wù)調(diào)度功能,調(diào)度基本的I/O功能。SparkSQL在SparkCore上引入了一種名為DataFrames的抽象化數(shù)據(jù)概念,DataFrames支持處理結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)。SparkSQL支持使用Scala、Java、Python、.Net和Julia等語言來操縱DataFrames,它還支持使用命令行界面和ODBC/JDBC連接方式進(jìn)行操作。7.4.4主流大數(shù)據(jù)處理平臺(tái)——Spark混合處理平臺(tái)SparkStreaming充分利用SparkCore的快速調(diào)度能力來運(yùn)行流分析。

SparkMLlib是Spark上分布式機(jī)器學(xué)習(xí)框架,可以使用許多常見的機(jī)器學(xué)習(xí)和統(tǒng)計(jì)算法,簡(jiǎn)化大規(guī)模機(jī)器學(xué)習(xí)時(shí)間,支持的算法包括:匯總統(tǒng)計(jì)、相關(guān)性、分層抽樣、假設(shè)檢定、隨機(jī)數(shù)據(jù)生成、分類與回歸(支持向量機(jī)、回歸、線性回歸、邏輯回歸、決策樹、樸素貝葉斯等)、協(xié)同過濾、聚類分析方法、維度約減算法、特征提取和轉(zhuǎn)換、最優(yōu)化方法等。GraphX是Spark上的分布式圖形處理框架。7.4.4主流大數(shù)據(jù)處理平臺(tái)——Flink混合處理平臺(tái)ApacheFlink是一個(gè)框架和分布式處理引擎,用于在無邊界和有邊界數(shù)據(jù)流上進(jìn)行有狀態(tài)的計(jì)算。Flink能在所有常見集群環(huán)境中運(yùn)行,并能以內(nèi)存速度和任意規(guī)模進(jìn)行計(jì)算。Flink擅長處理無界和有界數(shù)據(jù)集,精確的時(shí)間控制和狀態(tài)化使得Flink的運(yùn)行時(shí)(runtime)能夠運(yùn)行任何處理無界流的應(yīng)用。有界流則由一些專為固定大小數(shù)據(jù)集特殊設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)進(jìn)行內(nèi)部處理,產(chǎn)生了出色的性能。Flink集成了所有常見的集群資源管理器,例如HadoopYARN、ApacheMesos和Kubernetes,但同時(shí)也可以作為獨(dú)立集群運(yùn)行。7.4.4主流大數(shù)據(jù)處理平臺(tái)——Storm流處理平臺(tái)ApacheStorm是一個(gè)分布式實(shí)時(shí)大數(shù)據(jù)計(jì)算系統(tǒng),可以簡(jiǎn)單、可靠的處理大量的數(shù)據(jù)流。Storm簡(jiǎn)化了流數(shù)據(jù)的可靠處理,像Hadoop一樣實(shí)現(xiàn)實(shí)時(shí)批處理。Storm的部署和運(yùn)維都很便捷,而且更為重要的是可以使用任意編程語言來開發(fā)應(yīng)用。Storm有很多應(yīng)用場(chǎng)景,包括實(shí)時(shí)數(shù)據(jù)分析、聯(lián)機(jī)學(xué)習(xí)、持續(xù)計(jì)算、分布式RPC(RemoteProcedureCall)、ETL(Extract-Transform-Load)等。Storm速度非???,一個(gè)測(cè)試在單節(jié)點(diǎn)上實(shí)現(xiàn)每秒一百萬的組處理。目前已經(jīng)有包括阿里、騰訊、百度、華為在內(nèi)的數(shù)家大型互聯(lián)網(wǎng)公司在使用該平臺(tái)。7.4.4主流大數(shù)據(jù)處理平臺(tái)——Samza流處理平臺(tái)Samza是由LinkedIn開源的一項(xiàng)技術(shù),它是一個(gè)分布式流處理框架,專用于實(shí)時(shí)數(shù)據(jù)的處理,非常像Twitter開源的流處理系統(tǒng)Storm。不同的是Samza基于Hadoop,而且使用了LinkedIn自家的Kafka分布式消息系統(tǒng),并使用資源管理器ApacheHadoopYARN實(shí)現(xiàn)容錯(cuò)處理、處理器隔離、安全性和資源管理。7.4.5NoSQL數(shù)據(jù)庫

大數(shù)據(jù)一般通過分布式系統(tǒng)、NoSQL數(shù)據(jù)庫等方式進(jìn)行存儲(chǔ)。NoSQL最初表示Non-SQL,后來有人轉(zhuǎn)解為NotonlySQL,是對(duì)不同于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的統(tǒng)稱。NoSQL允許部分資料使用SQL系統(tǒng)存儲(chǔ),而其他資料允許使用NoSQL系統(tǒng)存儲(chǔ)。其數(shù)據(jù)存儲(chǔ)可以不需要固定的表格模式以及元數(shù)據(jù),也經(jīng)常會(huì)避免使用SQL的join操作,一般有水平可擴(kuò)展性的特征。7.4.5NoSQL數(shù)據(jù)庫

典型的NoSQL數(shù)據(jù)庫可以劃分為4種類型:鍵值(Key-Value)數(shù)據(jù)庫、列存儲(chǔ)(WideColumnStore/Column-Family)數(shù)據(jù)庫、面向文檔的數(shù)據(jù)庫和圖數(shù)據(jù)庫。鍵值(Key-Value)數(shù)據(jù)庫。鍵值數(shù)據(jù)庫起源于Amazon開發(fā)的Dynamo系統(tǒng),它使用一個(gè)哈希表,表中的Key(鍵)用來定位Value(值),即使用Key來存儲(chǔ)和檢索具體的Value。數(shù)據(jù)庫不能對(duì)Value進(jìn)行索引和查詢,只能通過Key進(jìn)行查詢。Value可以用來存儲(chǔ)任意類型的數(shù)據(jù),包括整型、字符型、數(shù)組、對(duì)象等。7.4.5NoSQL數(shù)據(jù)庫列存儲(chǔ)(WideColumnStore/Column-Family)數(shù)據(jù)庫。列存儲(chǔ)數(shù)據(jù)庫起源于Google的BigTable,其數(shù)據(jù)模型可以看作是一個(gè)每行列數(shù)可變的數(shù)據(jù)表。列存儲(chǔ)數(shù)據(jù)庫中列的名稱和格式在不同行之間可能會(huì)有所不同,這也是列存儲(chǔ)數(shù)據(jù)庫與關(guān)系數(shù)據(jù)庫的主要不同之處。列存儲(chǔ)數(shù)據(jù)庫能夠輕松添加一列,但是如果要添加一條記錄時(shí)就需要訪問所有表。列存儲(chǔ)數(shù)據(jù)庫適合執(zhí)行分析操作,如進(jìn)行匯總或計(jì)數(shù)。7.4.5NoSQL數(shù)據(jù)庫面向文檔的數(shù)據(jù)庫。面向文檔的數(shù)據(jù)庫是用于存儲(chǔ)、檢索和管理面向文檔的信息的一種計(jì)算機(jī)程序。這里的文檔指的是半結(jié)構(gòu)化數(shù)據(jù),是一系列數(shù)據(jù)項(xiàng)的集合。每個(gè)數(shù)據(jù)項(xiàng)都有一個(gè)名稱與對(duì)應(yīng)的值,值既可以是簡(jiǎn)單的數(shù)據(jù)類型,如字符串、數(shù)字和日期等,也可以是復(fù)雜的類型,如有序列表和關(guān)聯(lián)對(duì)象。7.4.5NoSQL數(shù)據(jù)庫圖數(shù)據(jù)庫。圖數(shù)據(jù)庫是一個(gè)使用圖結(jié)構(gòu)進(jìn)行語義查詢的數(shù)據(jù)庫,它使用節(jié)點(diǎn)、邊和屬性來表示和存儲(chǔ)數(shù)據(jù)。圖數(shù)據(jù)庫的關(guān)鍵概念是圖,它直接將存儲(chǔ)中的數(shù)據(jù)項(xiàng),與數(shù)據(jù)節(jié)點(diǎn)和節(jié)點(diǎn)間表示關(guān)系的邊的集合相關(guān)聯(lián)。這些關(guān)系允許直接將存儲(chǔ)區(qū)中的數(shù)據(jù)鏈接在一起,并且可以通過相關(guān)操作進(jìn)行檢索。7.4.5NoSQL數(shù)據(jù)庫——典型產(chǎn)品(1)HBaseHBase是HadoopDatabase的簡(jiǎn)稱,是建立在Hadoop文件系統(tǒng)之上的分布式面向列的數(shù)據(jù)庫,為橫向發(fā)展類型數(shù)據(jù)庫,可以快速隨機(jī)訪

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論