基于關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)功能依賴性
我們今天生活的數(shù)字時(shí)代在許多方面都是一個(gè)過剩的時(shí)代?;ヂ?lián)網(wǎng)的爆炸違背了所有人的期望,而且其持續(xù)的增長(zhǎng)速度幾乎是不可估量的。據(jù)《福布斯》報(bào)道,每天在互聯(lián)網(wǎng)上創(chuàng)建2.5兆字節(jié)的數(shù)據(jù),在過去兩年中,全球90%以上的數(shù)據(jù)都是在生成的。坦率地說,這是很多數(shù)據(jù)。
由于我們今天看到的數(shù)據(jù)量很高,海量數(shù)據(jù)之類的術(shù)語(yǔ)已經(jīng)成為家喻戶曉的事物。對(duì)于企業(yè)而言,數(shù)據(jù)是一項(xiàng)極為寶貴的資產(chǎn)。業(yè)務(wù)數(shù)據(jù)可以采用市場(chǎng)研究,客戶歷史和財(cái)務(wù)績(jī)效的形式。無論要跟蹤哪種數(shù)據(jù),所有數(shù)據(jù)都存儲(chǔ)在數(shù)據(jù)庫(kù)中。
如果數(shù)據(jù)是無價(jià)的資產(chǎn),那么數(shù)據(jù)庫(kù)就是我們用來存儲(chǔ),檢索和分析數(shù)據(jù),將字符和數(shù)字轉(zhuǎn)化為可操作的信息的同等有價(jià)值的工具。IT組織出于各種目的而依賴這些數(shù)據(jù)庫(kù),這就是為什么管理這些系統(tǒng)對(duì)于現(xiàn)代組織的全面成功至關(guān)重要。用于處理數(shù)據(jù)庫(kù)的系統(tǒng)稱為DBMS。
什么是DBMS?
數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)是一組軟件應(yīng)用程序的創(chuàng)建,旨在定義,檢索,操作和管理數(shù)據(jù)庫(kù)中的數(shù)據(jù)。數(shù)據(jù)庫(kù)管理員使用DBMS分析和修改數(shù)據(jù)庫(kù),以保持?jǐn)?shù)據(jù)庫(kù)的質(zhì)量和優(yōu)化。
盡管對(duì)于當(dāng)今的公司而言,數(shù)據(jù)已成為不可思議的寶貴資產(chǎn),但可用的數(shù)據(jù)量巨大,使其成為復(fù)雜而昂貴的管理資源。隨著公司規(guī)模的擴(kuò)大,強(qiáng)大的DBMS對(duì)于現(xiàn)代企業(yè)與DBMS解決方案的競(jìng)爭(zhēng)至關(guān)重要。組織的成功與管理數(shù)據(jù)的能力之間有著密切的關(guān)系。
乍一看數(shù)據(jù)庫(kù)似乎很簡(jiǎn)單,但是DBMS領(lǐng)域中發(fā)生的事情比您最初設(shè)想的要多得多。隨著時(shí)間的流逝,已經(jīng)有許多不同類型的數(shù)據(jù)庫(kù):
面向?qū)ο蟮臄?shù)據(jù)庫(kù)通過創(chuàng)建包含數(shù)據(jù)和方法的對(duì)象,以類似于面向?qū)ο蟮木幊谈拍畹姆绞浇M織數(shù)據(jù)。
層次結(jié)構(gòu)數(shù)據(jù)庫(kù),將數(shù)據(jù)組織到父記錄的樹中,該父記錄具有從中分支出來的相關(guān)子記錄。
網(wǎng)絡(luò)數(shù)據(jù)庫(kù)類似于分層數(shù)據(jù)庫(kù)來組織數(shù)據(jù),但是條目具有多個(gè)父記錄的可能性增加了。
關(guān)系數(shù)據(jù)庫(kù)使用表通過在表中保存信息的條目名稱來組織數(shù)據(jù)。
由于關(guān)系數(shù)據(jù)庫(kù) 的靈活性和強(qiáng)大功能,它們是現(xiàn)代組織最常用的數(shù)據(jù)庫(kù)。
關(guān)系數(shù)據(jù)庫(kù)
如前所述,關(guān)系數(shù)據(jù)庫(kù)使用表來組織數(shù)據(jù)。但是,不是真正使關(guān)系數(shù)據(jù)庫(kù)如此強(qiáng)大的表。表中的行可以鏈接到其他表中的行。這是數(shù)據(jù)庫(kù)的關(guān)系部分發(fā)揮作用的地方。
在表中,每一行都有一個(gè)唯一的“鍵”,用作該條目的標(biāo)識(shí)符,并且這些鍵可以由數(shù)據(jù)庫(kù)中其他表中的條目引用,從而在單獨(dú)的條目之間建立關(guān)系。密鑰的使用被稱為功能依賴性。
什么是功能依賴性?
功能依賴關(guān)系(FD)在數(shù)據(jù)庫(kù)中建立一個(gè)屬性與另一個(gè)屬性的關(guān)系。唯一鍵字段的使用是在數(shù)據(jù)庫(kù)中實(shí)踐功能依賴關(guān)系的主要方法之一。利用功能依賴性,即使條目中的其他數(shù)據(jù)點(diǎn)與單獨(dú)的條目相同,也可以將其與正確的實(shí)體建立關(guān)聯(lián)。
功能相關(guān)性通常使用箭頭→表示。例如,A→B表示A在功能上決定了B。一個(gè)很好的例子是考慮社會(huì)安全號(hào)碼(SSN)。SSN是美國(guó)個(gè)人的唯一標(biāo)識(shí)符,并用作識(shí)別可能容易在數(shù)據(jù)庫(kù)中混淆的人的密鑰。您可以說(SSN→出生日期),因?yàn)槊總€(gè)唯一的SSN都有一個(gè)與功能相關(guān)的出生日期。
但是,相反的說法(出生日期→SSN)是不正確的,因?yàn)橛性S多人具有相同的出生日期,但是每個(gè)唯一的SSN僅存在一個(gè)人。這個(gè)概念對(duì)于關(guān)系數(shù)據(jù)庫(kù)非常重要,它是使用DBMS管理和操縱它們的基礎(chǔ)。
DBMS示例中的功能依賴
讓我們看一個(gè)功能依賴的例子。名為“客戶信息”的表可能包含一個(gè)由客戶的名稱和年齡組成的條目。由于可能會(huì)有多個(gè)具有相同姓名和年齡的人,因此需要為每個(gè)輸入此表的新客戶創(chuàng)建一個(gè)唯一密鑰。雖然多個(gè)人可以具有相同的名稱和年齡,但他們不能具有相同的密鑰。
現(xiàn)在,假設(shè)有一個(gè)名為“客戶訂單”的單獨(dú)表,用于存儲(chǔ)客戶購(gòu)買數(shù)據(jù)。每次進(jìn)行購(gòu)買時(shí),“客戶訂單”表中都會(huì)有一個(gè)條目,并且該條目將使用“客戶信息”表中創(chuàng)建的鍵在訂單和下訂單的客戶之間建立關(guān)系。
這種相互依賴關(guān)系確保即使有多個(gè)相同名稱和年齡的客戶,每個(gè)唯一客戶都可以與其購(gòu)買鏈接。此外,由于“客戶訂單”表中的每個(gè)條目都與“客戶信息”鍵鏈接,因此可以將與單個(gè)客戶關(guān)聯(lián)的多個(gè)訂單輸入到該表中。
由于現(xiàn)代組織可以使用大量數(shù)據(jù),因此必須對(duì)數(shù)據(jù)庫(kù)進(jìn)行適當(dāng)?shù)墓芾恚源_保充分利用資源并且不會(huì)浪費(fèi)數(shù)據(jù)。database腫的數(shù)據(jù)庫(kù)或維護(hù)不善的數(shù)據(jù)庫(kù)可能是造成許多麻煩的根源。效率低下的數(shù)據(jù)庫(kù)需要花費(fèi)更長(zhǎng)的時(shí)間進(jìn)行分析和分類,不良的數(shù)據(jù)可能導(dǎo)致做出知情的決策。