欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
基于 SQL SERVER 的分布式數據庫設計與實(shí)現

     摘 要:提出了如何充分利用 MS SQL Server 2000 的數據庫管理特性,采用鏈接服務(wù)器、分布式分區視圖和存儲過(guò)程構建分布式數據庫,以及基于數據庫復制技術(shù)實(shí)現混合式的數據分布。實(shí)驗實(shí)現了分布式數據庫的水平分片、垂直分片和混合式數據分布。


     關(guān)鍵詞: 分布式數據庫;分布式分區視圖;鏈接服務(wù)器;存儲過(guò)程



一.  引言

       隨著(zhù)網(wǎng)絡(luò )與數字通信技術(shù)的飛速發(fā)展,應用的數據再也不是存儲在一個(gè)單一的場(chǎng)地,而是可能分布在全球的任何位置。對這樣由多個(gè)分散數據庫組成的管理信息系統,如何以最小代價(jià)將其整合成分布式數據庫系統也就成為了迫切需要解決的問(wèn)題 [1] 。MS SQL Server 2000 分布式數據庫功能 [2] 允許用戶(hù)把多個(gè)不同場(chǎng)地的數據庫當作一個(gè)完整的數據庫看待,允許用戶(hù)透明地查詢(xún)和操作遠程數據庫實(shí)例的數據,并使應用程序看起來(lái)只有一個(gè)大型的集中式數據庫,用戶(hù)可以在任何一個(gè)場(chǎng)地執行全局應用,具有數據分布透明性和邏輯整體性等特點(diǎn)。


二.  分布式數據庫系統的設計

1.創(chuàng )建和使用數據庫鏈接(鏈接服務(wù)器

      數據庫鏈接是定義一個(gè)從某一數據庫服務(wù)器到另一數據庫服務(wù)器的單向通信路徑指示器??梢允褂闷髽I(yè)管理器或者 T-SQL 代碼來(lái)建立鏈接服務(wù)器。鏈接服務(wù)器可以是 SQL Server或者任何其他的 OLE DB 和 ODBC 數據源,只要相應的驅動(dòng)程序支持,分布式查詢(xún)就可以檢索和修改相應數據源中的數據。使用創(chuàng )建好的鏈接服務(wù)器,對用戶(hù)來(lái)說(shuō),數據分布就是透明的,用戶(hù)就好像使用本地集中式數據庫一樣,同時(shí)使用鏈接服務(wù)器的查詢(xún)代碼具有更好的移植性,也更加易于維護。


2.采用分布式分區視圖實(shí)現水平分片 [3]

      將表分區就是將表按照分區鍵劃分為兩個(gè)或兩個(gè)以上更小的分段。分區鍵通常選擇一個(gè)經(jīng)常被用來(lái)選取特定范圍的數據字段,這樣分區的效率最高。通過(guò)創(chuàng )建分區視圖合并所有分區表,實(shí)現對整個(gè)數據集的訪(fǎng)問(wèn)。SQL Server 支持兩種類(lèi)型的分區視圖 [2] :本地的和分布的。分布式分區視圖,也稱(chēng)為聯(lián)合數據庫,將分區表分布在多個(gè)場(chǎng)地的服務(wù)器上。使用鏈接服務(wù)器和分布式分區視圖方法可以構建以水平分片的分布式數據庫系統。


3.采用存儲過(guò)程實(shí)現垂直分片(一條記錄存在多個(gè)表中)
      SQL Server 沒(méi)有提供現成的技術(shù)實(shí)現垂直分片的分布式數據庫系統,但可以使用鏈接服務(wù)器和存儲過(guò)程相結合的方法,將用戶(hù)提交的全局操作轉變?yōu)閷Χ鄠€(gè)場(chǎng)地的垂直分片表的局部操作,使用存儲過(guò)程可以保證分布式事務(wù)的 ACID 特性。存儲過(guò)程是存儲在服務(wù)器上的預編譯好的 SQL 語(yǔ)句集。使用存儲過(guò)程將對多個(gè)場(chǎng)地的垂直分片表的操作放在一個(gè)分布式事務(wù)內,要么全部提交,要么全部回退,保證了分布式數據庫系統數據的一致性。



4.采用數據庫復制技術(shù)實(shí)現混合式數據分布 [2,4]

      分布式數據庫系統必須以最小的代價(jià)保持各冗余副本的一致性,即對一個(gè)數據庫的邏輯對象的修改,必須傳播到該對象的所有副本,同時(shí)做相同的修改。SQL Server 使用數據庫復制技術(shù)來(lái)解決這一復雜問(wèn)題。SQL Server 復制是按照出版業(yè)的運作模式來(lái)工作的,它包括 3 個(gè)代理——分發(fā)者、發(fā)布者和訂閱者。本文采用事務(wù)復制保持各冗余副本的數據一致性。


三.  使用 SQL Server 2000  構建分布式數據庫

      以學(xué)校計算機系(CS),外語(yǔ)系(FD),數理系(MP),教務(wù)處(JW)為例,具體構建水平和垂直分片的混合分布的分布式數據庫系統。四個(gè) SQL Server 數據庫實(shí)例位于各個(gè)系處,前三個(gè)系各自保存本系的學(xué)生信息表,如計算機系 info_student_cs,教務(wù)處保存三個(gè)系的學(xué)生信息副本。


1. 創(chuàng )建數據庫和表

(1)計算機系數據庫 dbcs,學(xué)生信息表 info_student_cs,分區鍵 sdept,分區鍵必須是主鍵的一部分。
create database dbcs
go
use dbcs
create table info_student_cs
(
sno nvarchar(10) not null,
sname nvarchar(40) not null,
sdept nvarchar(2) not null,
sex nvarchar(2) not null,
age int not null,
constraint pk_info_student_cs
primary key(sno,sdept),
constraint uq_info_student_cs_sno
unique(sno),
constraint chk_info_student_cs_sdept
check(sdept='CS')

)


(2)在外語(yǔ)系、數理系數據庫實(shí)例上分別創(chuàng )建數據庫 dbfd,dbmp,學(xué)生信息表info_student_fd,info_student_mp,分區鍵仍是 sdept,檢查約束分別改為 check(sdept='FD')和 check(sdept='MP')。在教務(wù)處數據庫實(shí)例上創(chuàng )建 dbjw。


2.創(chuàng )建鏈接服務(wù)器

分別在四臺服務(wù)器上建立雙向的數據庫鏈接,以創(chuàng )建計算機系到外語(yǔ)系的鏈接服務(wù)器(CS_FD)為例。


exec sp_addlinkedserver   'FD', ' ', 'SQLOLEDB ', '192.168.5.9' 

exec sp_addlinkedsrvlogin  'FD', 'false ',null, 'sa', 'wzdq@01' 



3. 采用分布式分區視圖實(shí)現水平分片

        分別在三個(gè)系服務(wù)器上創(chuàng )建分布式分區視圖,以計算機系為例。


create view info_student
as
select * from info_student_cs
union all
select * from fd.dbfd.dbo.info_student_fd;


         到這里,整個(gè)水平分片的分布式數據庫系統已經(jīng)建立完畢。

        現在可以在三個(gè)系的任何位置,只要訪(fǎng)問(wèn)本地 info_student 分布式分區視圖,就實(shí)現了所有分布式數據庫的操作。

       此時(shí),對數據庫的全局操作和局部操作就如同操作本地集中式數據庫一樣。


①插入數據。若當前客戶(hù)端連接在外語(yǔ)系服務(wù)器上,執行 insert into info_student values('S006128','LIUJ','CS','F','20'),由于 sdept=’CS’,所以系統會(huì )自動(dòng)將這條記錄插入到計算機系的學(xué)生信息表 info_student_cs 中。


插入數據遇到問(wèn)題

問(wèn)題一、MSDTC不可用解決辦法

    http://blog.csdn.net/bobwu/article/details/4392616

問(wèn)題二、鏈接服務(wù)器"fd"的 OLE DB 訪(fǎng)問(wèn)接口 "SQLNCLI10" 返回了消息 "該伙伴事務(wù)管理器已經(jīng)禁止了它對遠程/網(wǎng)絡(luò )事務(wù)的支持。"

   http://blog.csdn.net/apollokk/article/details/51543349


問(wèn)題三、OLE DB 訪(fǎng)問(wèn)接口 "SQLNCLI10" 返回了消息 "無(wú)法在此會(huì )話(huà)中啟動(dòng)更多的事務(wù)。"

set XACT_ABORT on
BEGIN DISTRIBUTED TRANSACTION

insert into info_student values('S006129','LIUJ','CS','F','20')
COMMIT TRANSACTION


②修改數據。若客戶(hù)端連接在數理系服務(wù)器上,執行 update info_student set sdept='FD'where sno='S006128',由于執行前sdept=’CS’,執行后 sdept=’FD’,所以系統會(huì )自動(dòng)將這條記錄從計算機系移動(dòng)到外語(yǔ)系的學(xué)生信息表 info_student_fd 中,實(shí)現了學(xué)生改專(zhuān)業(yè)、換院系的功能。


③刪除數據。若客戶(hù)端連接在計算機系服務(wù)器上,執行 delete from info_student where
sno=’S006128’,由于這條記錄 sdept=’FD’,所以系統會(huì )自動(dòng)將這條記錄從外語(yǔ)系服務(wù)器上刪

除。


4. 采用存儲過(guò)程實(shí)現垂直分片

        設表 info_student 存儲學(xué)校所有學(xué)生信息,進(jìn)行垂直分片后生成兩張表 info_student1(sno,sname,sdept)保存在 A 服務(wù)器的數據庫 DB1 上,info_student2(sno,sex,age)保存在 B服務(wù)器的數據庫 DB2 上,在 A 與 B 上建立存儲過(guò)程 add_student,并相互建立數據庫鏈接。


  下面僅以插入數據為例,介紹如何保持分布式事務(wù)的一致性。在 A 上建立存儲過(guò)程add_student,執行


create proc add_student
(
@sno char(10),
@sname char(40),
@sdept char(2),
@sex char(2),
@age int
)
as
set XACT_ABORT on
BEGIN DISTRIBUTED TRANSACTION
insert into info_student1
values(@sno,@sname,@sdept);
insert into a_b.db2.dbo.info_student2
values(@sno,@sex,@age);

COMMIT TRANSACTION


         接著(zhù)執行存儲過(guò)程 EXEC ADD_STUDENT 'S005129','CWK','MP','M',24,這樣系統就會(huì )分別在 A 和 B 服務(wù)器上的垂直分片后的學(xué)生信息表內插入對應的數據。類(lèi)似可解決修改和刪除操作,本文不再具體闡述。


5. 采用復制技術(shù)實(shí)現混合式數據分布

       教務(wù)處需要保存三個(gè)系的學(xué)生信息表副本,為了將事務(wù)一致性保持在令人滿(mǎn)意的范圍內,本文采用事務(wù)復制方式。將三個(gè)系(發(fā)布服務(wù)器)的初始快照傳播到教務(wù)處(訂閱服務(wù)器),當三個(gè)系服務(wù)器上發(fā)生數據修改時(shí),捕獲個(gè)別事務(wù)并傳播到教務(wù)處,從而得以在訂閱服務(wù)器間維護事務(wù)的一致性。


四.  結論

    本文論述了在 SQL Server 2000 的數據庫系統中,采用鏈接服務(wù)器、分布式分區視圖和存儲過(guò)程相結合的方法來(lái)架構分布式數據庫系統,并基于數據庫復制技術(shù)實(shí)現混合式的數據分布。同時(shí)也深入探討了設計和實(shí)現方法,取得了令人滿(mǎn)意的實(shí)驗效果。提出的架構分布式數據庫方法實(shí)現了數據分布的透明性,簡(jiǎn)化了數據訪(fǎng)問(wèn)、降低了維護復雜度,在應用中具有一定的優(yōu)勢。




參考文獻
[1] 邵佩英. 分布式數據庫系統及其應用(第二版). 北京:科學(xué)出版社,2005
[2] Paul Nielsen,劉瑞等譯. Microsoft SQL Server 2000 寶典[M]. 北京:中國鐵道出版社,2004
[3] 曾文全. 基于 SQL Server 2000 的分布式數據庫的架構[J]. 教育信息化,2006-1,24~25
[4] 杜杏菁. 分布式數據庫中復制技術(shù)的研究[J]. 華北科技學(xué)院學(xué)報,2004,1(3),88~91
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
OceanBase 1.0 分布式技術(shù)架構
SQL Server 2012 各版本功能比較
SQLSERVER查詢(xún)速度慢的原因收集以及優(yōu)化建議
海量數據解決方案,知多少?
大型網(wǎng)站應用之海量數據和高并發(fā)解決方案總結一二
數據庫基礎知識題庫
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久