時(shí)間:2022-12-21 08:30:01 | 來(lái)源:信息時(shí)代
時(shí)間:2022-12-21 08:30:01 來(lái)源:信息時(shí)代
分布式數(shù)據(jù)庫(kù)設(shè)計(jì) : 基于分布式數(shù)據(jù)庫(kù)環(huán)境下的一種數(shù)據(jù)庫(kù)設(shè)計(jì)方法。分布式數(shù)據(jù)庫(kù)設(shè)計(jì)要為數(shù)據(jù)庫(kù)用戶提供高效管理數(shù)據(jù)的功能。在分布式數(shù)據(jù)庫(kù)系統(tǒng)中,根據(jù)應(yīng)用需求,數(shù)據(jù)可分布或復(fù)制存儲(chǔ)于不同場(chǎng)地上,以減少遠(yuǎn)程訪問統(tǒng)一的全局模式的訪問代價(jià)。應(yīng)用也可分散于不同場(chǎng)地上,用于提高并發(fā)執(zhí)行度和查詢效率。
1.分布式數(shù)據(jù)庫(kù)中的數(shù)據(jù)分布
分布式數(shù)據(jù)庫(kù)設(shè)計(jì)的最基本問題就是分布式數(shù)據(jù)庫(kù)的分布問題,即如何對(duì)分布式數(shù)據(jù)庫(kù)進(jìn)行邏輯劃分和實(shí)際物理分配。在分布式數(shù)據(jù)庫(kù)設(shè)計(jì)中,需要根據(jù)各物理場(chǎng)地所在的位置,以及具體的實(shí)際應(yīng)用需求,對(duì)全局?jǐn)?shù)據(jù)進(jìn)行分片設(shè)計(jì)。對(duì)全局?jǐn)?shù)據(jù)的劃分,稱為分片(fragmentation),劃分的結(jié)果即是片段(fragment),對(duì)片段的存儲(chǔ)場(chǎng)地的指定,稱為分配(allocation)。片段是數(shù)據(jù)的存儲(chǔ)單位,當(dāng)一個(gè)片段存儲(chǔ)在一個(gè)以上的場(chǎng)地時(shí),則稱為數(shù)據(jù)復(fù)制(replication)。如果每個(gè)片段只存儲(chǔ)在一個(gè)場(chǎng)地,稱為數(shù)據(jù)分割(partition)存儲(chǔ)。分布數(shù)據(jù)庫(kù)采用分片思想的目標(biāo)是提高系統(tǒng)的可靠性、可用性和系統(tǒng)的總體效率。
分片過程是將全局?jǐn)?shù)據(jù)進(jìn)行邏輯劃分和實(shí)際物理分配的過程。全局?jǐn)?shù)據(jù)由分片模式定義分成各個(gè)片段數(shù)據(jù),各個(gè)片段數(shù)據(jù)由分配模式定義存儲(chǔ)在各場(chǎng)地上。分片模式定義從全局模式到片段模式的映射關(guān)系。分配模式定義從片段模式到物理模式的映射關(guān)系。分片模式與分配模式為1:N時(shí)為復(fù)制分配;1:1時(shí)為分割分配。
在將分布式數(shù)據(jù)庫(kù)的全局?jǐn)?shù)據(jù)進(jìn)行劃分為片段數(shù)據(jù)分片時(shí),必須遵循完備性、可重構(gòu)性和不可相交性三個(gè)原則。完備性是指所有全局?jǐn)?shù)據(jù)必須映射到某個(gè)片段上??芍貥?gòu)性是指所有片段必須可以重新構(gòu)成全局?jǐn)?shù)據(jù)。不相交性是指劃分的各片段所包含的數(shù)據(jù)不允許相同。
2.對(duì)全局?jǐn)?shù)據(jù)的分片設(shè)計(jì)
在分布式數(shù)據(jù)庫(kù)設(shè)計(jì)過程中,根據(jù)系統(tǒng)實(shí)際需求對(duì)全局?jǐn)?shù)據(jù)進(jìn)行分片和物理分配。具體的分片方法有如下四種: 水平分片、導(dǎo)出水平分片、垂直分片和混合分片。
(1)水平分片: 水平分片是將關(guān)系的元組集劃分成若干不相交的子集。每個(gè)水平片段由關(guān)系中的某個(gè)屬性上的條件來(lái)定義,該屬性稱為分片屬性,該條件稱為分片條件。例如:存在關(guān)系EMP{ENO,ENAME,SALARY,DNO},將雇員表EMP按雇員所在部門DNO進(jìn)行水平分片,假設(shè)存在有201,202和其他部門,則水平分片定義為:
E1=σDNO=201(EMP),SQL:SELECT*FROM EMP WHERE DNO=201;
E2=σDNO=202(EMP),SQL: SELECT*FROM EMP WHERE DNO=202;
E3=σDNO201 AND DNO202(EMP),SQL: SELECT*FROM EMP WHERE DNO201 AND DNO202。
其中,DNO為分片屬性,DNO=201為E1的分片條件, DNO=202為E2的分片條件, DNO201AND DNO202為E3的分片條件。
(2) 導(dǎo)出水平分片: 一個(gè)關(guān)系的分片不是基于關(guān)系本身的屬性,而是根據(jù)另一個(gè)與其有關(guān)聯(lián)性質(zhì)的關(guān)系的屬性來(lái)劃分,這種劃分為導(dǎo)出水平劃分。具體形式化定義為: 如果一個(gè)關(guān)系的水平分片的分片屬性屬于另一個(gè)關(guān)系,則該分片稱為另一個(gè)關(guān)系的導(dǎo)出分片。例如: 存在關(guān)系WORKS{ENO,PRJNO,HOURS},關(guān)系EMP{ENO,ENAME,SALARY,DNO},將WORKS按DNO進(jìn)行水平分片,得到的水平分片為導(dǎo)出水平分片。如:
W1=σDNO=201(WORKS⋈EMP)
=WORKS⋈σDNO=201(EMP)
=WORKS⋈E1。
同理,
W2=WORKS⋈E2;
W3=WORKS⋈E3。
(3)垂直分片: 垂直分片是將一個(gè)關(guān)系按屬性集合分成不相交的子集(主關(guān)鍵字除外),屬性集合稱為分片屬性。即垂直分片是將關(guān)系按列的縱向以屬性組劃分成若干片段。例如: 存在雇員關(guān)系EMP{ENO,ENAME,BIRTH,SALARY,DNO},假設(shè)采用垂直分片,得到分片E1{ENO,ENAME,BIRTH}和E2{ENO,SALARY,DNO},則E1和E2的垂直分片表示為:
E1=∏ENO,ENAME,BIRTH(EMP),SQL: SELECT ENO,ENAME,BIRTH FROM EMP;
E2=∏ENO,SALARY,DNO(EMP),SQL:SELECT ENO,SALARY,DNO FROM EMP。
其中,ENO,ENAME,BIRTH為E1的分片屬性,ENO,SALARY,DNO為E2的分片屬性。
(4)混合分片: 混合分片是既包括水平分片,又包括垂直分片的分片過程,稱為混合分片。
3. 分片樹
分片樹是采用樹表示分片的定義,同查詢優(yōu)化的語(yǔ)法樹類似,很方便將全局優(yōu)化樹轉(zhuǎn)換為片段查詢樹。一個(gè)分片樹由以下幾部分組成: 根結(jié)點(diǎn)表示全局關(guān)系; 葉子結(jié)點(diǎn)表示最后得到的片段; 中間結(jié)點(diǎn)表示分片過程的中間結(jié)果;邊表示分片,并用h(水平)和v(垂直)表示分片類型; 結(jié)點(diǎn)名表示全局關(guān)系名和片段名。
圖1為分片的分片樹表示示例。其中,(a)為水平分片的分片樹; (b)為垂直分片的分片樹; (c)為混合分片的分片樹。
圖1 分片的分片樹表示示意圖
客戶&案例
營(yíng)銷資訊
關(guān)于我們
客戶&案例
營(yíng)銷資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。