98
บบบบบ บบบบบ 13 13 บบบบบบบบบบบบบบบบบบบบบบ บบบบบบบบบบบบบบบบบบบบบบ (Distributed Database System) (Distributed Database System) บบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบ บบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบ : : บบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบ บบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบ ใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใ ใใใใใใใใใใ ใ ใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใ ใ ใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใ ใใใใใใ ใใใใใใใใใใใใใใใใใใใ ใใใใใ ใใใใใใ ใใใใใใใใใใใใใใใใใใใ ใใใใใ ใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใ ใใใใใใ ใใใใใใใ ใใใใใใใใใใใใใใใใใใใ ใใใใใใ ใใใใใใใ ใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใ ใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใ

บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

Embed Size (px)

DESCRIPTION

บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System). แนวคิดของระบบฐานข้อมูลแบบกระจาย : สถาปัตยกรรมระบบฐานข้อมูลแบบกระจาย - PowerPoint PPT Presentation

Citation preview

Page 1: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

บทท�� บทท�� 1313ระบบฐานข้�อมู�ลแบบกระจายระบบฐานข้�อมู�ลแบบกระจาย (Distributed (Distributed

Database System)Database System)

แนวคิ�ดข้องระบบฐานข้�อมู�ลแบบกระจาย แนวคิ�ดข้องระบบฐานข้�อมู�ลแบบกระจาย ::สถาปั�ตยกรรมูระบบฐานข้�อมู�ลแบบกระจายสถาปั�ตยกรรมูระบบฐานข้�อมู�ลแบบกระจาย

ในระบบฐานข้อมู�ลแบบรวมูศู�นย์� องค์�ประกอบต่�าง ๆ ในระบบฐานข้อมู�ลแบบรวมูศู�นย์� องค์�ประกอบต่�าง ๆ ข้องระบบจะรวมูอย์��ที่��ค์อมูพิ�วเต่อร�เพิ�ย์งเค์ร!�องเดี�ย์ว ที่#$ง ข้องระบบจะรวมูอย์��ที่��ค์อมูพิ�วเต่อร�เพิ�ย์งเค์ร!�องเดี�ย์ว ที่#$ง

ข้อมู�ล ระบบจ#ดีการฐานข้อมู�ล ดี�สก�ส&าหร#บเก(บข้อมู�ล เที่ป ข้อมู�ล ระบบจ#ดีการฐานข้อมู�ล ดี�สก�ส&าหร#บเก(บข้อมู�ล เที่ป ส&าหร#บส&ารองข้อมู�ล เป)นต่น ในป*จจ+บ#นมู�แนวโนมูที่��จะ ส&าหร#บส&ารองข้อมู�ล เป)นต่น ในป*จจ+บ#นมู�แนวโนมูที่��จะ

กระจาย์ข้อมู�ลไปเก(บไวหลาย์ ๆ เค์ร!�อง เพิ!�อเพิ��มู กระจาย์ข้อมู�ลไปเก(บไวหลาย์ ๆ เค์ร!�อง เพิ!�อเพิ��มู ประส�ที่ธิ�ภาพิในการประมูวลผล เพิ��มูค์วามูน�าเชื่!�อถื!อข้อง ประส�ที่ธิ�ภาพิในการประมูวลผล เพิ��มูค์วามูน�าเชื่!�อถื!อข้อง

ข้อมู�ล เพิ!�อกระจาย์การใชื่งานข้อมู�ลอย์�างเหมูาะสมู ดี#งน#$น ข้อมู�ล เพิ!�อกระจาย์การใชื่งานข้อมู�ลอย์�างเหมูาะสมู ดี#งน#$นจ3งเก�ดีแนวค์วามูค์�ดีข้องระบบจ#ดีการฐานข้อมู�ลแบบจ3งเก�ดีแนวค์วามูค์�ดีข้องระบบจ#ดีการฐานข้อมู�ลแบบ

กระจาย์ เพิ!�อต่อบสนองต่�อค์วามูต่องการเหล�าน#$น กระจาย์ เพิ!�อต่อบสนองต่�อค์วามูต่องการเหล�าน#$น

Page 2: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ในระบบฐานข้อมู�ลแบบกระจาย์ ข้อมู�ลจะถื�กจ#ดีเก(บไวในในระบบฐานข้อมู�ลแบบกระจาย์ ข้อมู�ลจะถื�กจ#ดีเก(บไวในหลาย์ ๆ เค์ร!�อง และจะเชื่!�อมูต่�อเข้าดีวย์ก#นผ�านระบบเค์ร!อข้�าย์ หลาย์ ๆ เค์ร!�อง และจะเชื่!�อมูต่�อเข้าดีวย์ก#นผ�านระบบเค์ร!อข้�าย์ โดีย์แต่�ละที่��จะมู�ระบบจ#ดีการฐานข้อมู�ลเป)นข้องต่นเอง และโดีย์แต่�ละที่��จะมู�ระบบจ#ดีการฐานข้อมู�ลเป)นข้องต่นเอง และสามูารถืที่��จะที่&างานไดีดีวย์ต่นเอง หร!อร�วมูก#นที่&างานก(ไดี โดีย์ที่��สามูารถืที่��จะที่&างานไดีดีวย์ต่นเอง หร!อร�วมูก#นที่&างานก(ไดี โดีย์ที่��ค์อมูพิ�วเต่อร�แต่�ละเค์ร!�อง จะเร�ย์กว�าไซต่�หร!อโหนดี ดี#งร�ปที่�� ค์อมูพิ�วเต่อร�แต่�ละเค์ร!�อง จะเร�ย์กว�าไซต่�หร!อโหนดี ดี#งร�ปที่�� 13.13.11

ร�ปัท��13.1 แสดีงล#กษณะที่างกาย์ภาพิข้องระบบฐานข้อมู�ลแบบกระจาย์

Page 3: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

สถืาป*ต่ย์กรรมูไค์ลเอนที่�สถืาป*ต่ย์กรรมูไค์ลเอนที่�--เซ�ฟร�เวอร�เซ�ฟร�เวอร�(Client-Server (Client-Server Architecture) Architecture) เป)นระบบค์อมูพิ�วเต่อร�ที่��ประกอบไปดีวย์เป)นระบบค์อมูพิ�วเต่อร�ที่��ประกอบไปดีวย์เค์ร!�องค์อมูพิ�วเต่อร�จ&านวนหลาย์ ๆ เค์ร!�อง ที่#$งเค์ร!�องค์อมูพิ�วเต่อร�จ&านวนหลาย์ ๆ เค์ร!�อง ที่#$งค์อมูพิ�วเต่อร�ส�วนบ+ค์ค์ล เว�รค์�สเต่ชื่#น เค์ร!�องใหบร�การค์อมูพิ�วเต่อร�ส�วนบ+ค์ค์ล เว�รค์�สเต่ชื่#น เค์ร!�องใหบร�การแฟ9มูข้อมู�ล เค์ร!�องใหบร�การการพิ�มูพิ� ฯลฯ โดีย์มู�การเชื่!�อมูแฟ9มูข้อมู�ล เค์ร!�องใหบร�การการพิ�มูพิ� ฯลฯ โดีย์มู�การเชื่!�อมูต่�อก#นผ�านระบบเค์ร!อข้�าย์ โดีย์แบ�งออกเป)นสองส�วนค์!อต่�อก#นผ�านระบบเค์ร!อข้�าย์ โดีย์แบ�งออกเป)นสองส�วนค์!อเค์ร!�องที่��ข้อใชื่บร�การเค์ร!�องที่��ข้อใชื่บร�การ(Client) (Client) และเค์ร!�องใหบร�การและเค์ร!�องใหบร�การ(Server) (Server) ในเร!�องข้องระบบฐานข้อมู�ลจะแบ�งโปรแกรมูระบบจ#ดีการในเร!�องข้องระบบฐานข้อมู�ลจะแบ�งโปรแกรมูระบบจ#ดีการฐานข้อมู�ลออกเป)นสองระดี#บ ค์!อ ไค์ลเอนที่� และเซ�ฟร�เวอร� ฐานข้อมู�ลออกเป)นสองระดี#บ ค์!อ ไค์ลเอนที่� และเซ�ฟร�เวอร� บางไซต่�จะร#นเฉพิาะโปรแกรมูไค์ลเอนที่� และบางไซต่�จะร#นบางไซต่�จะร#นเฉพิาะโปรแกรมูไค์ลเอนที่� และบางไซต่�จะร#นเฉพิาะโปรแกรมูเซ�ฟร�เวอร�เที่�าน#$น ต่#วอย์�างเชื่�น ในการเฉพิาะโปรแกรมูเซ�ฟร�เวอร�เที่�าน#$น ต่#วอย์�างเชื่�น ในการประมูวลผลค์&าส#�ง ประมูวลผลค์&าส#�ง SQL SQL ดี&าเน�นการระหว�างไค์ลเอนที่�และดี&าเน�นการระหว�างไค์ลเอนที่�และเซ�ฟร�เวอร� จะมู�ข้# $นต่อนดี#งน�$เซ�ฟร�เวอร� จะมู�ข้# $นต่อนดี#งน�$

Page 4: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ไค์ลเอนที่�ว�เค์ราะห�ค์&าส#�ง และแย์กค์&าส#�งออกเป)นไค์ลเอนที่�ว�เค์ราะห�ค์&าส#�ง และแย์กค์&าส#�งออกเป)นหลาย์ ๆ ค์&าส#�งต่ามูจ&านวนข้องเซ�ฟร�เวอร�ไซต่�ที่��จะหลาย์ ๆ ค์&าส#�งต่ามูจ&านวนข้องเซ�ฟร�เวอร�ไซต่�ที่��จะที่&าการส!บค์นข้อมู�ล จากน#$นก(จะส�งค์&าส#�งไปย์#งแต่�ที่&าการส!บค์นข้อมู�ล จากน#$นก(จะส�งค์&าส#�งไปย์#งแต่�ละเซ�ฟร�เวอร�ไซต่�น#$น ละเซ�ฟร�เวอร�ไซต่�น#$น เซ�ฟร�เวอร�แต่�ละต่#วจะประมูวลผลค์&าส#�งในเค์ร!�องเซ�ฟร�เวอร�แต่�ละต่#วจะประมูวลผลค์&าส#�งในเค์ร!�องต่นเอง และส�งผลล#พิธิ�กล#บไปย์#งไค์ลเอนที่� ต่นเอง และส�งผลล#พิธิ�กล#บไปย์#งไค์ลเอนที่� ไค์ลเอนที่�รวบรวมูผลล#พิธิ�ที่��ไดีร#บกล#บมูาจากไซต่�ไค์ลเอนที่�รวบรวมูผลล#พิธิ�ที่��ไดีร#บกล#บมูาจากไซต่�ต่�าง ๆ แลวสรางเป)นผลล#พิธิ�ส+ดีที่าย์ ต่�าง ๆ แลวสรางเป)นผลล#พิธิ�ส+ดีที่าย์

จากแนวที่างน�$เค์ร!�องที่��ที่&าหนาที่��จากแนวที่างน�$เค์ร!�องที่��ที่&าหนาที่��ประมูวลผลค์&าส#�งจะเร�ย์กว�า ประมูวลผลค์&าส#�งจะเร�ย์กว�า database processor database processor (DP) (DP) หร!อเค์ร!�อง หร!อเค์ร!�อง back-end back-end และเค์ร!�องไค์ลเอนที่�และเค์ร!�องไค์ลเอนที่�จะเร�ย์กว�า จะเร�ย์กว�า application processor(AP) application processor(AP) หร!อหร!อเค์ร!�อง เค์ร!�อง front-endfront-end

Page 5: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ในระบบจ#ดีการฐานข้อมู�ลแบบกระจาย์ในระบบจ#ดีการฐานข้อมู�ลแบบกระจาย์ (Distributed (Distributed Database Management System : DDBMS) Database Management System : DDBMS) จะแบ�งจะแบ�ง

ออกเป)นสามูระดี#บค์!อออกเป)นสามูระดี#บค์!อ

โปรแกรมูส�วน โปรแกรมูส�วน Server Server ร#บผ�ดีชื่อบเก��ย์วก#บการจ#ดีการข้อมู�ลร#บผ�ดีชื่อบเก��ย์วก#บการจ#ดีการข้อมู�ลที่�� ซ3�งจะเหมู!อนก#บโปรแกรมู ที่�� ซ3�งจะเหมู!อนก#บโปรแกรมู DBMS DBMS แบบรวมูศู�นย์� แบบรวมูศู�นย์�

โปรแกรมูส�วน โปรแกรมูส�วน Client Client ร#บผ�ดีชื่อบเก��ย์วก#บการเข้าถื3งข้อมู�ลที่��ร #บผ�ดีชื่อบเก��ย์วก#บการเข้าถื3งข้อมู�ลที่��อย์��ใน อย์��ใน DDBMS catalog DDBMS catalog และที่&าการรองข้อการใชื่บร�การและที่&าการรองข้อการใชื่บร�การข้อมู�ลไปที่��ไซต่�อ!�น ข้อมู�ลไปที่��ไซต่�อ!�น

โปรแกรมูส�วน โปรแกรมูส�วน Communication Communication จะสน#บสน+นการส!�อสารจะสน#บสน+นการส!�อสารข้อมู�ลบนระบบเค์ร!อข้�าย์ ซ3�งจะถื�กใชื่งานโดีย์โปรแกรมูส�วน ข้อมู�ลบนระบบเค์ร!อข้�าย์ ซ3�งจะถื�กใชื่งานโดีย์โปรแกรมูส�วน

Client Client เพิ!�อที่&าการส�งค์&าส#�งและข้อมู�ลไปย์#งไซต่�ที่��ต่องการ เพิ!�อที่&าการส�งค์&าส#�งและข้อมู�ลไปย์#งไซต่�ที่��ต่องการ

Page 6: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

Client Client จะที่&าหนาที่��ในการสรางแผนการจะที่&าหนาที่��ในการสรางแผนการส!บค์นข้อมู�ลแบบกระจาย์ ค์วบค์+มูใหการที่&าที่รานแซกชื่#นส!บค์นข้อมู�ลแบบกระจาย์ ค์วบค์+มูใหการที่&าที่รานแซกชื่#นมู�ค์+ณสมูบ#ต่� มู�ค์+ณสมูบ#ต่� ACID ACID อย์��เสมูอ และหนาที่��ที่��ส&าค์#ญอ�กอย์�างอย์��เสมูอ และหนาที่��ที่��ส&าค์#ญอ�กอย์�างหน3�งค์!อมู�ค์วามูสามูารถืที่��จะซ�อนราย์ละเอ�ย์ดีข้องการกระหน3�งค์!อมู�ค์วามูสามูารถืที่��จะซ�อนราย์ละเอ�ย์ดีข้องการกระจาย์ข้องข้อมู�ลจากผ�ใชื่ไดี น#�นค์!อผ�ใชื่งานในไซต่�ต่�างๆ ก(จาย์ข้องข้อมู�ลจากผ�ใชื่ไดี น# �นค์!อผ�ใชื่งานในไซต่�ต่�างๆ ก(สามูารถืที่��จะเข้าถื3งข้อมู�ลไดีโดีย์ไมู�จ&าเป)นจะต่องร� ว�าสามูารถืที่��จะเข้าถื3งข้อมู�ลไดีโดีย์ไมู�จ&าเป)นจะต่องร� ว�าข้อมู�ลเก(บอย์��ที่��ไหนเราเร�ย์กค์+ณสมูบ#ต่�น�$ว�า ข้อมู�ลเก(บอย์��ที่��ไหนเราเร�ย์กค์+ณสมูบ#ต่�น�$ว�า distribution tdistribution transparancy ransparancy ดี#งร�ปที่�� ดี#งร�ปที่�� 13.2 13.2 โดีย์ โดีย์ DDBMS DDBMS จะต่องบอกไดีจะต่องบอกไดีว�าข้อมู�ลที่��จ#ดีเก(บน#$นอย์��ที่��ไซต่�ไหนบางว�าข้อมู�ลที่��จ#ดีเก(บน#$นอย์��ที่��ไซต่�ไหนบาง

Page 7: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ร�ปัท�� 13.2 แสดีงสถืาป*ต่ย์กรรมูไค์ลเอนที่�-เซ�ฟร�เวอร�ส&าหร#บระบบฐานข้อมู�ลแบบกระจาย์

Page 8: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ล�กษณะข้องฐานข้�อมู�ลแบบกระจายล�กษณะข้องฐานข้�อมู�ลแบบกระจายในระบบฐานข้อมู�ลแบบกระจาย์ ข้อมู�ลจะถื�กจ#ดีเก(บไวในในระบบฐานข้อมู�ลแบบกระจาย์ ข้อมู�ลจะถื�กจ#ดีเก(บไวใน

หลาย์ ๆ ไซต่� แต่�ละไซต่�มู�ระบบจ#ดีการฐานข้อมู�ลข้องต่นเอง หลาย์ ๆ ไซต่� แต่�ละไซต่�มู�ระบบจ#ดีการฐานข้อมู�ลข้องต่นเอง และจะต่องมู�ค์+ณสมูบ#ต่� และจะต่องมู�ค์+ณสมูบ#ต่� transparant transparant โดีย์เฉพิาะค์+ณสมูบ#ต่�ต่�อโดีย์เฉพิาะค์+ณสมูบ#ต่�ต่�อไปน�$ไปน�$

1.1.ค์วามูเป)นอ�สระข้องการกระจาย์ข้องค์วามูเป)นอ�สระข้องการกระจาย์ข้องข้อมู�ลข้อมู�ล(Distributed Data (Distributed Data

Independent) Independent) น#�นค์!อผ�ใชื่สามูารถืที่��จะสอบถืามูข้อมู�ลไดีโดีย์น#�นค์!อผ�ใชื่สามูารถืที่��จะสอบถืามูข้อมู�ลไดีโดีย์ไมู�ต่องระบ+ว�า ร�เลชื่#น หร!อส&าเนาข้องร�เลชื่#น หร!อส�วนข้องร�ไมู�ต่องระบ+ว�า ร�เลชื่#น หร!อส&าเนาข้องร�เลชื่#น หร!อส�วนข้องร�เลชื่#น อย์��ที่��ไหน ซ3�งเป)นล#กษณะข้องค์วามูเป)นอ�สระที่างเลชื่#น อย์��ที่��ไหน ซ3�งเป)นล#กษณะข้องค์วามูเป)นอ�สระที่างกาย์ภาพิข้องข้อมู�ล และค์วามูเป)นอ�สระที่างต่รรกข้องข้อมู�ล กาย์ภาพิข้องข้อมู�ล และค์วามูเป)นอ�สระที่างต่รรกข้องข้อมู�ล อย์�างหน3�ง และในการสอบถืามูข้อมู�ลก(จะมู�การพิ�จารณาถื3งอย์�างหน3�ง และในการสอบถืามูข้อมู�ลก(จะมู�การพิ�จารณาถื3งค์�าใชื่จ�าย์ต่�าง ๆ เพิ!�อประส�ที่ธิ�ภาพิในการส!บค์นข้อมู�ล ค์�าใชื่จ�าย์ต่�าง ๆ เพิ!�อประส�ที่ธิ�ภาพิในการส!บค์นข้อมู�ล

Page 9: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

2. 2. ค์วามูถื�กต่องในการประมูวลผลค์วามูถื�กต่องในการประมูวลผลที่รานแซกชื่#นแบบกระจาย์ที่รานแซกชื่#นแบบกระจาย์(Distributed (Distributed transaction atomicity) transaction atomicity) น#�นค์!อผ�ใชื่สามูารถืสรางน#�นค์!อผ�ใชื่สามูารถืสรางที่รานแซกชื่#นที่��สามูารถืเข้าถื3งข้อมู�ลและปร#บปร+งที่รานแซกชื่#นที่��สามูารถืเข้าถื3งข้อมู�ลและปร#บปร+งข้อมู�ฃที่��อย์��ที่��ไซต่�อ!�น ๆ ไดี โดีย์การสรางที่รานแซข้อมู�ฃที่��อย์��ที่��ไซต่�อ!�น ๆ ไดี โดีย์การสรางที่รานแซกชื่#นที่��ไซต่�ข้องต่นเองเที่�าน#$น โดีย์เฉพิาะการที่&ากชื่#นที่��ไซต่�ข้องต่นเองเที่�าน#$น โดีย์เฉพิาะการที่&าที่รานแซกชื่#นที่��มู�การเข้าถื3งข้อมู�ลจากหลาย์ ๆ ที่รานแซกชื่#นที่��มู�การเข้าถื3งข้อมู�ลจากหลาย์ ๆ ไซต่� ที่รานแซกชื่#นน#$นจะต่องมู�ค์+ณสมูบ#ต่� ไซต่� ที่รานแซกชื่#นน#$นจะต่องมู�ค์+ณสมูบ#ต่� ACID ACID ดีวย์ ดีวย์

Page 10: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ถืาข้อมู�ลมู�การกระจาย์ออกไปที่��ไซต่�ต่�างๆ ถืาข้อมู�ลมู�การกระจาย์ออกไปที่��ไซต่�ต่�างๆ และไซต่�เหล�าน#$นมู�ระบบจ#ดีการฐานข้อมู�ลต่#วและไซต่�เหล�าน#$นมู�ระบบจ#ดีการฐานข้อมู�ลต่#วเดี�ย์วก#น เราเร�ย์กระบบฐานข้อมู�ลน#$นว�าเดี�ย์วก#น เราเร�ย์กระบบฐานข้อมู�ลน#$นว�า Homogeneous distributed database systemHomogeneous distributed database system นอกน#$นนอกน#$นเราจะเร�ย์กว�า เราจะเร�ย์กว�า Heterogeneous distributed databaseHeterogeneous distributed database systemsystem หร!ออาจเร�ย์กไดีอ�กชื่!�อหน3�งว�า หร!ออาจเร�ย์กไดีอ�กชื่!�อหน3�งว�า Multidatabase Multidatabase

SystemSystem หล#กในการสราง หล#กในการสราง heterogeneous systemheterogeneous system ต่องต่องอาศู#ย์มูาต่รฐานที่��เร�ย์กว�า อาศู#ย์มูาต่รฐานที่��เร�ย์กว�า gateway protocolsgateway protocols ในที่��น�$ ในที่��น�$ gateway protocolsgateway protocols จะหมูาย์ถื3ง จะหมูาย์ถื3ง API(Application ProgAPI(Application Prog

ramming Interface)ramming Interface) ซ3�งที่&าหนาที่��เชื่!�อมูต่�อระหว�าง ซ3�งที่&าหนาที่��เชื่!�อมูต่�อระหว�าง DBDB

MSMS และโปรแกรมูต่�าง ๆ เชื่�น และโปรแกรมูต่�าง ๆ เชื่�น ODBCODBC และ และ JDBCJDBC เป)นต่นเป)นต่น

Page 11: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

การเก#บข้�อมู�ลข้องระบบฐานข้�อมู�ลแบบการเก#บข้�อมู�ลข้องระบบฐานข้�อมู�ลแบบกระจายกระจาย

1. Distributed Data Storage1. Distributed Data Storage

ในการจ#ดีเก(บข้อมู�ลในระบบฐานข้อมู�ลแบบกระจาย์มู�อย์��ในการจ#ดีเก(บข้อมู�ลในระบบฐานข้อมู�ลแบบกระจาย์มู�อย์��หลาย์ว�ธิ�ดีวย์ก#นค์!อหลาย์ว�ธิ�ดีวย์ก#นค์!อการที่&าส&าเนาการที่&าส&าเนา(Replication) (Replication) เป)นการที่&าส&าเนาข้องร�เลชื่#นเป)นการที่&าส&าเนาข้องร�เลชื่#นไวหลาย์ ๆ ส&าเนา และแต่�ละส&าเนาจะถื�กเก(บไวต่�างไซต่�ก#นไวหลาย์ ๆ ส&าเนา และแต่�ละส&าเนาจะถื�กเก(บไวต่�างไซต่�ก#นการแย์กร�เลชื่#นการแย์กร�เลชื่#น(Fragmentation) (Fragmentation) เป)นการแย์กร�เลชื่#นเป)นการแย์กร�เลชื่#นออกเป)นหลาย์ ๆ ส�วน และจ#ดีเก(บแต่�ละส�วนไวต่�างไซต่�ออกเป)นหลาย์ ๆ ส�วน และจ#ดีเก(บแต่�ละส�วนไวต่�างไซต่�ก#นก#นว�ธิ� ว�ธิ� Replication Replication และ และ Fragmentation Fragmentation เป)นการแย์กร�เลเป)นการแย์กร�เลชื่#นออกเป)นหลาย์ ๆ ส�วน และแต่�ละส�วนก(จะมู�การจ#ดีการชื่#นออกเป)นหลาย์ ๆ ส�วน และแต่�ละส�วนก(จะมู�การจ#ดีการแบบส&าเนาแบบส&าเนา

Page 12: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

1.1 1.1 การที่&าส&าเนาข้อมู�ลการที่&าส&าเนาข้อมู�ล(Data Replication)(Data Replication)

ว�ธิ�การเก(บข้อมู�ลว�ธิ�น�$เป)นการที่&าส&าเนาข้องร�เลชื่#น ว�ธิ�การเก(บข้อมู�ลว�ธิ�น�$เป)นการที่&าส&าเนาข้องร�เลชื่#น r r ไวหลาย์ ไวหลาย์ ๆ ไซต่� โดีย์ที่#�วไปจะที่&าการส&าเนาแบบ ๆ ไซต่� โดีย์ที่#�วไปจะที่&าการส&าเนาแบบ Full Replication Full Replication น#�นน#�นค์!อจะที่&าการสรางส&าเนาข้องร�เลชื่#นก#บที่+ก ๆ ไซต่�ในระบบ ในค์!อจะที่&าการสรางส&าเนาข้องร�เลชื่#นก#บที่+ก ๆ ไซต่�ในระบบ ในการจ#ดีเก(บข้อมู�ลแบบส&าเนาน�$ มู�ที่#$งข้อดี�และข้อเส�ย์ดี#งน�$ค์!อการจ#ดีเก(บข้อมู�ลแบบส&าเนาน�$ มู�ที่#$งข้อดี�และข้อเส�ย์ดี#งน�$ค์!อ

- Availability - Availability ถืาไซต่�ที่��มู�ร�เลชื่#น ถืาไซต่�ที่��มู�ร�เลชื่#น r r เก�ดีหย์+ดีการที่&างานเก�ดีหย์+ดีการที่&างานลง ระบบสามูารถืที่��จะที่&างานต่�อไปไดีโดีย์ไปดี3งข้อมู�ล ร�เลชื่#น ลง ระบบสามูารถืที่��จะที่&างานต่�อไปไดีโดีย์ไปดี3งข้อมู�ล ร�เลชื่#น r r ที่��ไซต่�อ!�น โดีย์ไมู�ต่องค์&าน3งถื3งไซต่�ที่��หย์+ดีที่&างานไปที่��ไซต่�อ!�น โดีย์ไมู�ต่องค์&าน3งถื3งไซต่�ที่��หย์+ดีที่&างานไป

- Increased parallelism - Increased parallelism ในกรณ�ที่��การดี&าเน�นการก#บในกรณ�ที่��การดี&าเน�นการก#บข้อมู�ลส�วนใหญ�ข้องร�เลชื่#น ข้อมู�ลส�วนใหญ�ข้องร�เลชื่#น r r เป)นการอ�านข้อมู�ลจากร�เลชื่#น เป)นการอ�านข้อมู�ลจากร�เลชื่#น เมู!�อเรามู�ข้อมู�ลข้องร�เลชื่#น เมู!�อเรามู�ข้อมู�ลข้องร�เลชื่#น r r อย์��ในหลาย์ ๆ ไซต่� เราก(อย์��ในหลาย์ ๆ ไซต่� เราก(สามูารถืที่��จะที่&าการดี3งข้อมู�ลมูาพิรอมู ก#นไดี อ�กที่#$งจากการสามูารถืที่��จะที่&าการดี3งข้อมู�ลมูาพิรอมู ก#นไดี อ�กที่#$งจากการที่��มู�ส&าเนาข้องร�เลชื่#นอย์��หลาย์ ๆ ไซต่� โอกาสที่��จะพิบข้อมู�ลในที่��มู�ส&าเนาข้องร�เลชื่#นอย์��หลาย์ ๆ ไซต่� โอกาสที่��จะพิบข้อมู�ลในไซต่�ที่��ต่องการจะที่&าที่รานแซกชื่#นก(มู�โอกาสมูากกว�า ดี#งน#$นไซต่�ที่��ต่องการจะที่&าที่รานแซกชื่#นก(มู�โอกาสมูากกว�า ดี#งน#$นดีวย์ว�ธิ�การน�$จะชื่�วย์ลดีปร�มูาณข้อมู�ลที่��จะส�งผ�านระหว�างดีวย์ว�ธิ�การน�$จะชื่�วย์ลดีปร�มูาณข้อมู�ลที่��จะส�งผ�านระหว�างไซต่�ไดีไซต่�ไดี

Page 13: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

- Increased overhead on update - Increased overhead on update

ดีวย์ว�ธิ�การ ดีวย์ว�ธิ�การ replication replication น�$ ส&าเนาข้อมู�ลข้องร�เลชื่#น น�$ ส&าเนาข้อมู�ลข้องร�เลชื่#น r r ในแต่�ละในแต่�ละไซต่�จะต่องเหมู!อนก#นที่+ก ๆ ไซต่� ไมู�เชื่�นน#$นแลวการประมูวลผลไซต่�จะต่องเหมู!อนก#นที่+ก ๆ ไซต่� ไมู�เชื่�นน#$นแลวการประมูวลผลก#บร�เลชื่#น ก#บร�เลชื่#น r r อาจจะเก�ดีค์วามูผ�ดีพิลาดีข้3$นไดี ดี#งน#$นเมู!�อไรก(ต่ามูอาจจะเก�ดีค์วามูผ�ดีพิลาดีข้3$นไดี ดี#งน#$นเมู!�อไรก(ต่ามูที่��ร �เลชื่#น ที่��ร �เลชื่#น r r ถื�กแกไข้ ระบบจะต่องที่&าการแกไข้ข้อมู�ลร�เลชื่#น ถื�กแกไข้ ระบบจะต่องที่&าการแกไข้ข้อมู�ลร�เลชื่#น r r ใหใหค์รบที่+กไซต่�ที่��มู�ร�เลชื่#น ค์รบที่+กไซต่�ที่��มู�ร�เลชื่#น r r อย์�� ย์กต่#วอย์�างเชื่�น ในระบบธินาค์ารซ3�งอย์�� ย์กต่#วอย์�างเชื่�น ในระบบธินาค์ารซ3�งมู�การที่&าส&าเนาข้องข้อมู�ลบ#ญชื่�ไวหลาย์ ๆ ไซต่� เมู!�อมู�การมู�การที่&าส&าเนาข้องข้อมู�ลบ#ญชื่�ไวหลาย์ ๆ ไซต่� เมู!�อมู�การปร#บปร+งย์อดีบ#ญชื่� ก(จะต่องที่&าการปร#บย์อดีบ#ญชื่�ใหเที่�าก#นในปร#บปร+งย์อดีบ#ญชื่� ก(จะต่องที่&าการปร#บย์อดีบ#ญชื่�ใหเที่�าก#นในที่+ก ๆ ไซต่�ที่+ก ๆ ไซต่�

โดีย์ที่#�วไปแลวการที่&าส&าเนาข้อมู�ลจะชื่�วย์เพิ��มูประส�ที่ธิ�ภาพิโดีย์ที่#�วไปแลวการที่&าส&าเนาข้อมู�ลจะชื่�วย์เพิ��มูประส�ที่ธิ�ภาพิในการอ�านข้อมู�ล และชื่�วย์เพิ��มูค์วามูสะดีวกในการส!บค์นข้อมู�ลในการอ�านข้อมู�ล และชื่�วย์เพิ��มูค์วามูสะดีวกในการส!บค์นข้อมู�ลข้องที่รานแซกชื่#นแบบอ�านอย์�างเดี�ย์ว อย์�างไรก(ต่ามูที่รานแซข้องที่รานแซกชื่#นแบบอ�านอย์�างเดี�ย์ว อย์�างไรก(ต่ามูที่รานแซกชื่#นแบบที่��มู�การปร#บปร+งข้อมู�ลจะต่องมู�การดี&าเน�นการที่��เพิ��มูกชื่#นแบบที่��มู�การปร#บปร+งข้อมู�ลจะต่องมู�การดี&าเน�นการที่��เพิ��มูมูากข้3$น ซ3�งการค์วบค์+มูการปร#บปร+งข้อมู�ลพิรอมูๆ ก#นในหลาย์ มูากข้3$น ซ3�งการค์วบค์+มูการปร#บปร+งข้อมู�ลพิรอมูๆ ก#นในหลาย์ ๆ ไซต่�ค์�อนข้างจะย์+�งย์ากกว�าระบบฐานข้อมู�ลแบบรวมูศู�นย์�ๆ ไซต่�ค์�อนข้างจะย์+�งย์ากกว�าระบบฐานข้อมู�ลแบบรวมูศู�นย์�

Page 14: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

1.2 1.2 การแย์กข้อมู�ลการแย์กข้อมู�ล(Data Fragmentation)(Data Fragmentation)

ว�ธิ�การเก(บข้อมู�ลแบบน�$ ร�เลชื่#น ว�ธิ�การเก(บข้อมู�ลแบบน�$ ร�เลชื่#น r r จะถื�กแบ�งออกจะถื�กแบ�งออกเป)นร�เลชื่#นย์�อย์ ๆ เป)นร�เลชื่#นย์�อย์ ๆ r1,r2,…,rnr1,r2,…,rn ซ3�งร�เลชื่#นเหล�าน�$เมู!�อน&าซ3�งร�เลชื่#นเหล�าน�$เมู!�อน&ากล#บมูารวมูก#นจะไดีผลล#พิธิ�เป)นร�เลชื่#น กล#บมูารวมูก#นจะไดีผลล#พิธิ�เป)นร�เลชื่#น r r เหมู!อนเดี�มู เหมู!อนเดี�มู ซ3�งในการแบ�งร�เลชื่#นมู�อย์�� ซ3�งในการแบ�งร�เลชื่#นมู�อย์�� 2 2 ว�ธิ�ค์!อ การแบ�งร�เลชื่#นต่ามูว�ธิ�ค์!อ การแบ�งร�เลชื่#นต่ามูแนวนอนแนวนอน(horizontal fragmentation)(horizontal fragmentation) และ การแบ�งร�เลชื่#นและ การแบ�งร�เลชื่#นต่ามูแนวต่#$งต่ามูแนวต่#$ง(vertical fragmentation)(vertical fragmentation) โดีย์การแบ�งร�เลชื่#นโดีย์การแบ�งร�เลชื่#นต่ามูแนวนอน จะแบ�งแต่�ละที่�เพิ�ลข้องร�เลชื่#น ต่ามูแนวนอน จะแบ�งแต่�ละที่�เพิ�ลข้องร�เลชื่#น r r ไปเป)นไปเป)นเป)นหลาย์ ๆ ส�วน ส�วนการแบ�งร�เลชื่#นต่ามูแนวต่#$งจะเป)นหลาย์ ๆ ส�วน ส�วนการแบ�งร�เลชื่#นต่ามูแนวต่#$งจะเป)นการแย์กร�เลชื่#นเป)นการแย์กร�เลชื่#น(decomposition)(decomposition)โดีย์การแต่กโดีย์การแต่กโค์รงสรางข้องร�เลชื่#น โค์รงสรางข้องร�เลชื่#น r r ออกเป)นหลาย์ ๆ ร�เลชื่#นย์�อย์ ออกเป)นหลาย์ ๆ ร�เลชื่#นย์�อย์ ในที่��น�$จะย์กต่#วอย์�างร�เลชื่#น ในที่��น�$จะย์กต่#วอย์�างร�เลชื่#น EmployeeEmployee ซ3�งมู�โค์รงสรางซ3�งมู�โค์รงสรางข้องร�เลชื่#นดี#งน�$ข้องร�เลชื่#นดี#งน�$

Page 15: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

Employee = (empid, name, state, age, salary)Employee = (empid, name, state, age, salary)

ร�เลชื่#น ร�เลชื่#น Emloyee Emloyee แสดีงไดีดี#งร�ปที่�� แสดีงไดีดี#งร�ปที่�� 13.313.3

ร�ปัท�� 13.3 ต่#วอย์�างร�เลชื่#น Employee

Page 16: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

1.2.1 Horizontal Fragmentation1.2.1 Horizontal Fragmentationร�เลชื่#น ร�เลชื่#น r r ถื�กแบ�งออกเป)นร�เลชื่#นย์�อย์ ๆ ถื�กแบ�งออกเป)นร�เลชื่#นย์�อย์ ๆ r1, r2, …, r1, r2, …,

rn rn โดีย์แต่�ละที่�เป>ลข้องร�เลชื่#น จะต่องถื�กแบ�งออกโดีย์แต่�ละที่�เป>ลข้องร�เลชื่#น จะต่องถื�กแบ�งออกไปอย์��ใน ร�เลชื่#นย์�อย์ ๆ เหล�าน#$นไปอย์��ใน ร�เลชื่#นย์�อย์ ๆ เหล�าน#$น

ร�เลชื่#นย์�อย์แต่�ละอ#นจะเป)นส�วนหน3�งข้องร�เลชื่#น ร�เลชื่#นย์�อย์แต่�ละอ#นจะเป)นส�วนหน3�งข้องร�เลชื่#น r r เราเราใชื่ส#ญล#กษณ� ใชื่ส#ญล#กษณ� Pi Pi เพิ!�อแที่นร�เลชื่#นย์�อย์ เพิ!�อแที่นร�เลชื่#นย์�อย์ ri ri ดี#งน�$ดี#งน�$

ri = s Pi (r)ri = s Pi (r)

ดี#งน#$น เราสามูารถืสรางร�เลชื่#น ดี#งน#$น เราสามูารถืสรางร�เลชื่#น r r ไดีใหมู�โดีย์ใชื่ว�ธิ�การไดีใหมู�โดีย์ใชื่ว�ธิ�การรวมูรวมู(Union)(Union)ที่+ก ร�เลชื่#นย์�อย์ ไดีดี#งน�$ที่+ก ร�เลชื่#นย์�อย์ ไดีดี#งน�$

r = r1 U r2 U … U rnr = r1 U r2 U … U rn

Page 17: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

จากต่#วอย์�าง สมูมู+ต่�ว�า จากต่#วอย์�าง สมูมู+ต่�ว�า r r ถื�กแบ�งออกเป)นร�เลชื่#นถื�กแบ�งออกเป)นร�เลชื่#นย์�อย์ ๆ ย์�อย์ ๆ n n ร�เลชื่#น แต่�ละร�เลชื่#นย์�อย์ประกอบดีวย์ข้อมู�ลที่��ร �เลชื่#น แต่�ละร�เลชื่#นย์�อย์ประกอบดีวย์ข้อมู�ลที่��เป)นข้องแต่�ละร#ฐ จากต่#วอย์�าง ถืาในระบบมู�ร#ฐอย์�� เป)นข้องแต่�ละร#ฐ จากต่#วอย์�าง ถืาในระบบมู�ร#ฐอย์�� 2 2 ร#ฐ ร#ฐ ค์!อ ค์!อ New york New york และ และ Texas Texas จะที่&าการแบ�งร�เลชื่#นออกเป)น จะที่&าการแบ�งร�เลชื่#นออกเป)น 2 2 ร�เลชื่#น ค์!อร�เลชื่#น ค์!อemployee1 = s state=’New york’ (employee)employee1 = s state=’New york’ (employee)

employee2 = s state=’Texas’ (employee)employee2 = s state=’Texas’ (employee)

ที่#$ง ที่#$ง 2 2 ร�เลชื่#นย์�อย์ แสดีงไดีดี#งร�ปที่�� ร�เลชื่#นย์�อย์ แสดีงไดีดี#งร�ปที่�� 13.4 13.4 โดีย์ที่��ร �เลชื่#นย์�อย์ โดีย์ที่��ร �เลชื่#นย์�อย์ employee1 employee1 จะถื�กเก(บไวที่��ไซต่� จะถื�กเก(บไวที่��ไซต่� New york New york และ ร�เลชื่#นและ ร�เลชื่#นย์�อย์ ย์�อย์ employee2 employee2 จะถื�กเก(บไวที่��ไซต่� จะถื�กเก(บไวที่��ไซต่� TexasTexas

employee1employee1

Page 18: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

employee1

employee2

ร�ปัท�� 13.4 แสดีงการแบ�งร�เลชื่#นต่ามูแนวนอนข้องร�เลชื่#น employee

Page 19: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

1.2.2 Vertical Fragmentation1.2.2 Vertical Fragmentation

การแบ�งร�เลชื่#นต่ามูแนวต่#$งจะเป)นการแย์กการแบ�งร�เลชื่#นต่ามูแนวต่#$งจะเป)นการแย์กแอต่ที่ร�บ�วต่�ข้องร�เลชื่#น แอต่ที่ร�บ�วต่�ข้องร�เลชื่#น r r ออกเป)นร�เลชื่#นย์�อย์ๆ ซ3�งแต่�ออกเป)นร�เลชื่#นย์�อย์ๆ ซ3�งแต่�ละร�เลชื่#นย์�อย์จะประกอบไปดีวย์แอต่ที่ร�บ�วต่�ข้องร�เลละร�เลชื่#นย์�อย์จะประกอบไปดีวย์แอต่ที่ร�บ�วต่�ข้องร�เลชื่#น ชื่#น r r น#�นค์!อ ถืาเราให น#�นค์!อ ถืาเราให R R เป)นสก�มูาข้องร�เลชื่#น เป)นสก�มูาข้องร�เลชื่#น r r และส#บและส#บเซต่ข้องแอต่ที่ร�บ�วต่� เซต่ข้องแอต่ที่ร�บ�วต่� R1, R2, …, Rn R1, R2, …, Rn ข้อง ข้อง R R ค์!อค์!อR = R1 U R2 U … U RnR = R1 U R2 U … U Rn

แต่�ละร�เลชื่#นย์�อย์ แต่�ละร�เลชื่#นย์�อย์ ri ri ข้อง ข้อง r r ค์!อค์!อri = P Ri (r)ri = P Ri (r)

ร�เลชื่#นย์�อย์ที่��ไดีสามูารถืน&ากล#บมูาสรางเป)นร�เลชื่#น ร�เลชื่#นย์�อย์ที่��ไดีสามูารถืน&ากล#บมูาสรางเป)นร�เลชื่#น r r ไดีใหมู�โดีย์การที่&า ไดีใหมู�โดีย์การที่&า natural joinnatural join

r = r1 r = r1 r2 r2 r3 r3 … … r4 r4

Page 20: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ในการที่&า ในการที่&า natural join natural join เพิ!�อที่��จะใหผลล#พิธิ�ข้องการ เพิ!�อที่��จะใหผลล#พิธิ�ข้องการ join join ไดีเป)นร�เลชื่#น ไดีเป)นร�เลชื่#น r r เหมู!อนเดี�มู สามูารถืที่&าไดีโดีย์การใส�เหมู!อนเดี�มู สามูารถืที่&าไดีโดีย์การใส�แอต่ที่ร�บ�วที่�ที่��ที่&าหนาที่��เป)นค์�ย์�หล#กข้อง แอต่ที่ร�บ�วที่�ที่��ที่&าหนาที่��เป)นค์�ย์�หล#กข้อง R R เข้าไปในแต่�ละ เข้าไปในแต่�ละ Ri Ri โดีย์ที่#�วไปแลวก(สามูารถืใชื่ซ�เปอร�ค์�ย์�แที่นไดีเชื่�นก#น โดีย์ที่#�วไปแลวก(สามูารถืใชื่ซ�เปอร�ค์�ย์�แที่นไดีเชื่�นก#น เพิ!�อค์วามูสะดีวกเราจะที่&าการเพิ��มูแอต่ที่ร�บ�วต่�พิ�เศูษเพิ!�อค์วามูสะดีวกเราจะที่&าการเพิ��มูแอต่ที่ร�บ�วต่�พิ�เศูษเข้าไปในร�เลชื่#น จะเร�ย์กว�า เข้าไปในร�เลชื่#น จะเร�ย์กว�า tid tid โดีย์ที่��ค์�าข้องแอต่ที่ร�บ�วต่� โดีย์ที่��ค์�าข้องแอต่ที่ร�บ�วต่� tid tid จะถื�กก&าหนดีใหมู�ค์�าไมู�ซ&$าก#นเพิ!�อใชื่ในการจ&าแนกที่�จะถื�กก&าหนดีใหมู�ค์�าไมู�ซ&$าก#นเพิ!�อใชื่ในการจ&าแนกที่�เป>ลแต่�ละที่�เป>ลออกจากก#น ดี#งน#$นแอต่ที่ร�บ�วต่� เป>ลแต่�ละที่�เป>ลออกจากก#น ดี#งน#$นแอต่ที่ร�บ�วต่� tid tid จะที่&าจะที่&าหนาที่��เป)นค์�ย์�ค์��แข้�งข้องร�เลชื่#น หนาที่��เป)นค์�ย์�ค์��แข้�งข้องร�เลชื่#น r r และจะถื�กน&าไปรวมูเข้าและจะถื�กน&าไปรวมูเข้าก#บแต่�ละร�เลชื่#นย์�อย์ที่��แย์กออกมูาก#บแต่�ละร�เลชื่#นย์�อย์ที่��แย์กออกมูา

Page 21: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

พิ�จารณาร�เลชั�น พิ�จารณาร�เลชั�น employee employee ท&าการเพิ��มูท&าการเพิ��มูแอตทร�บ�วต' แอตทร�บ�วต' tid tid ด�งร�ปัท�� ด�งร�ปัท�� 13.513.5

ร�ปัท�� 13.5 แสดีงร�เลชื่#น employee และแอต่ที่ร�บ�วต่� tid

Page 22: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

แสดีงการแย์กร�เลชื่#นร�เลชื่#น แสดีงการแย์กร�เลชื่#นร�เลชื่#น employee employee และและแอต่ที่ร�บ�วต่� แอต่ที่ร�บ�วต่� tid tid ออกเป)น ออกเป)น 2 2 ร�เลชื่#นย์�อย์ค์!อร�เลชื่#นย์�อย์ค์!อemployee-schema-1= (Tid, empid, state)employee-schema-1= (Tid, empid, state)

employee-schema-2 = (Tid, name, age, salary)employee-schema-2 = (Tid, name, age, salary)

ร�เลชื่#นย์�อย์ที่#$ง ร�เลชื่#นย์�อย์ที่#$ง 2 2 ในร�ปที่�� ในร�ปที่�� 13.6 13.6 เป)นผลมูาจากการเป)นผลมูาจากการดี&าเน�นการดี#งน�$ดี&าเน�นการดี#งน�$employee1 = P employee-schema-1 employee1 = P employee-schema-1 (employee)(employee)

employeeemployee22 = P employee-schema-2 (employee = P employee-schema-2 (employee

Page 23: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

Employee1Employee1

Page 24: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

Employee2Employee2

ร�ปัท�� 13.6 แสดีงการแบ�งร�เลชื่#นต่ามูแนวต่#$งข้องร�เลชื่#น employee

Page 25: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ดี#งน#$นเราสามูารถืสรางร�เลชื่#น ดี#งน#$นเราสามูารถืสรางร�เลชื่#น employee employee จาจากร�เลชื่#นย์�อย์ไดีจากกร�เลชื่#นย์�อย์ไดีจากP employee-schema (employee1 employee2)P employee-schema (employee1 employee2)

น�พิจน� น�พิจน� employee1 employee1 employee2 employee2 เป)นร�ปแบบเป)นร�ปแบบพิ�เศูษข้องการที่&า พิ�เศูษข้องการที่&า natural join natural join โดีย์จะใชื่โดีย์จะใชื่แอต่ที่ร�บ�วต่� แอต่ที่ร�บ�วต่� tid tid ในการ ในการ join join ระหว�างร�เลชื่#น แมูว�าระหว�างร�เลชื่#น แมูว�าแอต่ที่ร�บ�วต่� แอต่ที่ร�บ�วต่� tid tid จะมู�ประโย์ชื่น�ในการแบ�งร�เลชื่#นจะมู�ประโย์ชื่น�ในการแบ�งร�เลชื่#นต่ามูแนวต่#$ง แต่�ผ�ใชื่จะไมู�สามูารถืมูองเห(นต่ามูแนวต่#$ง แต่�ผ�ใชื่จะไมู�สามูารถืมูองเห(นแอต่ที่ร�บ�วต่�น�$ เน!�องจากเป)นส�วนที่��ระบบสรางข้3$นแอต่ที่ร�บ�วต่�น�$ เน!�องจากเป)นส�วนที่��ระบบสรางข้3$นภาย์ในต่#วระบบเองเพิ!�อจ#ดีการก#บร�เลชื่#นย์�อย์ภาย์ในต่#วระบบเองเพิ!�อจ#ดีการก#บร�เลชื่#นย์�อย์เที่�าน#$นเที่�าน#$น

Page 26: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

1.2.3 Mixed Fragmentation1.2.3 Mixed Fragmentation

การแบ�งแบบผสมูน�$ ร�เลชื่#น การแบ�งแบบผสมูน�$ ร�เลชื่#น r r จะถื�กแบ�งออกเป)นร�เลชื่#นจะถื�กแบ�งออกเป)นร�เลชื่#นย์�อย์ ย์�อย์ r1, r2, …, rn r1, r2, …, rn โดีย์แต่�ละร�เลชื่#นเหล�าน#$นอาจจะถื�กโดีย์แต่�ละร�เลชื่#นเหล�าน#$นอาจจะถื�กแบ�งนอนหร!อแนวต่#$งก(ไดีจากร�เลชื่#น แบ�งนอนหร!อแนวต่#$งก(ไดีจากร�เลชื่#น r r และร�เลชื่#นย์�อย์และร�เลชื่#นย์�อย์แต่�ละอ#นก(สามูารถืถื�กแบ�งต่ามูแนวนอนหร!อแนวต่#$งต่�อแต่�ละอ#นก(สามูารถืถื�กแบ�งต่ามูแนวนอนหร!อแนวต่#$งต่�อไปไดีอ�กไปไดีอ�กพิ�จารณาจากร�ปที่�� พิ�จารณาจากร�ปที่�� 13.4 13.4 ร�เลชื่#น ร�เลชื่#น employee employee ถื�กแบ�งต่ามูถื�กแบ�งต่ามูแนวต่#$งเป)นร�เลชื่#นย์�อย์ แนวต่#$งเป)นร�เลชื่#นย์�อย์ employee1 employee1 และ และ employee2 employee2 จากน#$นเราสามูารถืที่��จะแบ�งร�เลชื่#นย์�อย์ จากน#$นเราสามูารถืที่��จะแบ�งร�เลชื่#นย์�อย์ employee1 employee1 ต่ามูต่ามูแนวนอนไดีอ�ก เป)น แนวนอนไดีอ�ก เป)น 2 2 ร�เลชื่#นย์�อย์ ดี#งน�$ร �เลชื่#นย์�อย์ ดี#งน�$employee11 = s state=”New york” (employee1)employee11 = s state=”New york” (employee1)

employeeemployee1212 = s state==”Texas” (employee = s state==”Texas” (employee1 1

Page 27: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ดี#งน#$นร�เลชื่#น ดี#งน#$นร�เลชื่#น r r จ3งถื�กแบ�งออกเป)น จ3งถื�กแบ�งออกเป)น 3 3 ร�เลชื่#นย์�อย์ ค์!อ ร�เลชื่#นย์�อย์ ค์!อ employee11, employee12 employee11, employee12 และ และ employee2 employee2 ซ3�งแต่�ละ ร�เลซ3�งแต่�ละ ร�เลชื่#นย์�อย์อาจจะถื�กจ#ดีเก(บไวต่�างไซต่�ก#นชื่#นย์�อย์อาจจะถื�กจ#ดีเก(บไวต่�างไซต่�ก#น1.3 Data Replication and Fragmentation1.3 Data Replication and Fragmentation

ว�ธิ�การน�$เป)นการน&าว�ธิ�การที่&าส&าเนาข้อมู�ล และการว�ธิ�การน�$เป)นการน&าว�ธิ�การที่&าส&าเนาข้อมู�ล และการแย์กข้อมู�ลมูาใชื่ร�วมูก#น ค์!อร�เลชื่#นย์�อย์ สามูารถืถื�กที่&าแย์กข้อมู�ลมูาใชื่ร�วมูก#น ค์!อร�เลชื่#นย์�อย์ สามูารถืถื�กที่&าส&าเนาไดี และส&าเนาข้องร�เลชื่#นย์�อย์ก(สามูารถืถื�กแย์กร�เลส&าเนาไดี และส&าเนาข้องร�เลชื่#นย์�อย์ก(สามูารถืถื�กแย์กร�เลชื่#นไดี ต่#วอย์�างเชื่�น พิ�จารณาระบบที่��ประกอบไปดีวย์ไซต่�ชื่#นไดี ต่#วอย์�างเชื่�น พิ�จารณาระบบที่��ประกอบไปดีวย์ไซต่� S1, S2, …, S10 S1, S2, …, S10 เราสามูารถืแย์กร�เลชื่#น เราสามูารถืแย์กร�เลชื่#น employee employee เป)น เป)น eemployee 11, employee 12 mployee 11, employee 12 และ และ employee 2 employee 2 โดีย์เราจะโดีย์เราจะเก(บส&าเนาข้องร�เลชื่#นย์�อย์ เก(บส&าเนาข้องร�เลชื่#นย์�อย์ employee 11 employee 11 ไวที่��ไซต่� ไวที่��ไซต่� S1, S2 S1, S2 และ และ S3 S3 ที่&าการส&าเนาข้องร�เลชื่#นย์�อย์ ที่&าการส&าเนาข้องร�เลชื่#นย์�อย์ employee 12 employee 12 ไวที่��ไวที่��ไซต่� ไซต่� S5 S5 และ และ S6 S6 และส&าเนาร�เลชื่#นย์�อย์ และส&าเนาร�เลชื่#นย์�อย์ employee 2 employee 2 ไวที่��ไวที่��ไซต่� ไซต่� S4, S4, และ และ S7 S7 เป)นต่นเป)นต่น

Page 28: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ระบบจ�ดการฐานข้�อมู�ลแบบกระจาย ระบบจ�ดการฐานข้�อมู�ลแบบกระจาย ::คิวามูร��เบ()องต�นข้องระบบจ�ดการฐานคิวามูร��เบ()องต�นข้องระบบจ�ดการฐาน

ข้�อมู�ลแบบกระจายข้�อมู�ลแบบกระจายฐานข้อมู�ลแบบกระจาย์เป)นการเก(บข้อมู�ลไวในไซต่�ฐานข้อมู�ลแบบกระจาย์เป)นการเก(บข้อมู�ลไวในไซต่�

ต่�างๆ บนระบบเค์ร!อข้�าย์ค์อมูพิ�วเต่อร� ซ3�งมู�ป*จจ#ย์หลาย์ต่�างๆ บนระบบเค์ร!อข้�าย์ค์อมูพิ�วเต่อร� ซ3�งมู�ป*จจ#ย์หลาย์อย์�างที่��ที่&าใหเราจ&าเป)นต่องมู�การพิ#ฒนาระบบงานในล#กษณะอย์�างที่��ที่&าใหเราจ&าเป)นต่องมู�การพิ#ฒนาระบบงานในล#กษณะฐานข้อมู�ลแบบกระจาย์ โดีย์ข้อดี�ข้องระบบฐานข้อมู�ลแบบฐานข้อมู�ลแบบกระจาย์ โดีย์ข้อดี�ข้องระบบฐานข้อมู�ลแบบกระจาย์มู�ดี#งต่�อไปน�$กระจาย์มู�ดี#งต่�อไปน�$

การกระจาย์ข้อมู�ลต่ามูล#กษณะระบบงานการกระจาย์ข้อมู�ลต่ามูล#กษณะระบบงาน(Distributed (Distributed nature of some database applications) nature of some database applications) ระบบงานที่างดีานระบบงานที่างดีานฐานข้อมู�ลบางระบบงานเป)นล#กษณะที่��ข้อมู�ลมู�การกระจาย์อฐานข้อมู�ลบางระบบงานเป)นล#กษณะที่��ข้อมู�ลมู�การกระจาย์อย์��ในหลาย์ๆ ที่�� เชื่�นบร�ษ#ที่ที่��มู�หลาย์ ๆ สาข้า หร!อธินาค์ารที่��มู�ย์��ในหลาย์ๆ ที่�� เชื่�นบร�ษ#ที่ที่��มู�หลาย์ ๆ สาข้า หร!อธินาค์ารที่��มู�หลาย์ ๆ สาข้าเป)นต่น ซ3�งโดีย์ธิรรมูชื่าต่�ข้องข้อมู�ลที่��ใชื่ในหลาย์ ๆ สาข้าเป)นต่น ซ3�งโดีย์ธิรรมูชื่าต่�ข้องข้อมู�ลที่��ใชื่ในระบบงานดี#งกล�าว จะการกระจาย์อย์��ในสาข้าต่�าง ๆ ระบบงานดี#งกล�าว จะการกระจาย์อย์��ในสาข้าต่�าง ๆ

Page 29: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

เพิ��มูค์วามูน�าเชื่!�อถื!อเพิ��มูค์วามูน�าเชื่!�อถื!อ(Increased reliability and(Increased reliability and availability) availability) ในระบบฐานข้อมู�ลแบบกระจาย์เรามู�ในระบบฐานข้อมู�ลแบบกระจาย์เรามู�การจ#ดีเก(บข้อมู�ลไวในหลาย์ ๆ ไซต่� น#�นค์!อเมู!�อมู�ไซต่�การจ#ดีเก(บข้อมู�ลไวในหลาย์ ๆ ไซต่� น#�นค์!อเมู!�อมู�ไซต่�ใดีไซต่�หน3�งเก�ดีค์วามูลมูเหลวข้3$นที่&าใหไมู�สามูารถืเข้าใดีไซต่�หน3�งเก�ดีค์วามูลมูเหลวข้3$นที่&าใหไมู�สามูารถืเข้าถื3งข้อมู�ลในไซต่�น#$นไดี ระบบก(สามูารถืที่��จะไปหาข้อมู�ลถื3งข้อมู�ลในไซต่�น#$นไดี ระบบก(สามูารถืที่��จะไปหาข้อมู�ลจากไซต่�อ!�นไดี ซ3�งแต่กต่�างจากระบบแบบรวมูศู�นย์� จากไซต่�อ!�นไดี ซ3�งแต่กต่�างจากระบบแบบรวมูศู�นย์� ถืาไซต่�เก�ดีลมูเหลว จะที่&าใหไมู�สามูารถืใชื่งานไดีเลย์ ถืาไซต่�เก�ดีลมูเหลว จะที่&าใหไมู�สามูารถืใชื่งานไดีเลย์

การย์อมูใหมู�การใชื่ข้อมู�ลร�วมูก#นไดี การย์อมูใหมู�การใชื่ข้อมู�ลร�วมูก#นไดี (Allowing data (Allowing data sharing while maintaining some measure of local sharing while maintaining some measure of local control) control) น#�นค์!อในแต่�ละไซต่�สามูารถืที่��จะย์อมูใหผ�ใชื่น# �นค์!อในแต่�ละไซต่�สามูารถืที่��จะย์อมูใหผ�ใชื่จากไซต่�อ!�นสามูารถืเข้าถื3งข้อมู�ล ในข้ณะที่��ไซต่�ก&าล#งจากไซต่�อ!�นสามูารถืเข้าถื3งข้อมู�ล ในข้ณะที่��ไซต่�ก&าล#งจ#ดีการก#บข้อมู�ลและโปรแกรมู จ#ดีการก#บข้อมู�ลและโปรแกรมู

Page 30: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ปร#บปร+งการที่&างานปร#บปร+งการที่&างาน(Improved performance) (Improved performance) กรณ�ที่��กรณ�ที่��มู�ข้อมู�ลมู�จ&านวนมูาก และไดีมู�การกระจาย์ข้อมู�ลไวในมู�ข้อมู�ลมู�จ&านวนมูาก และไดีมู�การกระจาย์ข้อมู�ลไวในไซต่�ต่�าง ๆ ในการส!บค์นข้อมู�ลหร!อการที่&าที่รานแซไซต่�ต่�าง ๆ ในการส!บค์นข้อมู�ลหร!อการที่&าที่รานแซกชื่#นข้องแต่�ละไซต่� จะสามูารถืที่&าไดีอย์�างรวดีเร(ว อ�กกชื่#นข้องแต่�ละไซต่� จะสามูารถืที่&าไดีอย์�างรวดีเร(ว อ�กที่#$งในการที่&าที่รานแซกชื่#นย์#งสามูารถืที่&าพิรอมู ๆ ก#นที่#$งในการที่&าที่รานแซกชื่#นย์#งสามูารถืที่&าพิรอมู ๆ ก#นไดีมูากกว�าหน3�งไซต่� ที่&าใหการประมูวลผลเป)นการไดีมูากกว�าหน3�งไซต่� ที่&าใหการประมูวลผลเป)นการประมูวลผลแบบข้นาน ซ3�งจะชื่�วย์ลดีเวลาในการประมูวลผลแบบข้นาน ซ3�งจะชื่�วย์ลดีเวลาในการประมูวลผลลงไปไดี ประมูวลผลลงไปไดี

จากค์+ณสมูบ#ต่�ดี#งกล�าวที่&าใหการออกแบบและพิ#ฒนาจากค์+ณสมูบ#ต่�ดี#งกล�าวที่&าใหการออกแบบและพิ#ฒนาระบบจ#ดีการฐานข้อมู�ลแบบกระจาย์มู�ค์วามูซ#บซอนระบบจ#ดีการฐานข้อมู�ลแบบกระจาย์มู�ค์วามูซ#บซอนมูากข้3$น โดีย์ในระบบจ#ดีการฐานข้อมู�ลแบบกระจาย์จะมูากข้3$น โดีย์ในระบบจ#ดีการฐานข้อมู�ลแบบกระจาย์จะต่องสน#บสน+นหนาที่��ที่��เพิ��มูข้3$น จากระบบจ#ดีการฐานต่องสน#บสน+นหนาที่��ที่��เพิ��มูข้3$น จากระบบจ#ดีการฐานข้อมู�ลแบบรวมูศู�นย์�ดี#งน�$ข้อมู�ลแบบรวมูศู�นย์�ดี#งน�$

Page 31: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

สามูารถืที่��จะต่�ดีต่�อไปย์#งไซต่�อ!�นๆและส�งแบบสอบถืามูสามูารถืที่��จะต่�ดีต่�อไปย์#งไซต่�อ!�นๆและส�งแบบสอบถืามูและข้อมู�ลผ�านที่างเค์ร!อข้�าย์ค์อมูพิ�วเต่อร�ไดี และข้อมู�ลผ�านที่างเค์ร!อข้�าย์ค์อมูพิ�วเต่อร�ไดี

สามูารถืที่��จะเก(บข้อมู�ลข้องข้อมู�ลที่��มู�การกระจาย์ และสามูารถืที่��จะเก(บข้อมู�ลข้องข้อมู�ลที่��มู�การกระจาย์ และข้อมู�ลที่��มู�การที่&าส&าเนา ไวในแค์ต่ต่าลอก ข้อง ข้อมู�ลที่��มู�การที่&าส&าเนา ไวในแค์ต่ต่าลอก ข้อง DDBMS DDBMS ไดี ไดี

สามูารถืวางแผนว�ธิ�การส!บค์นข้อมู�ล และการที่&าที่รานแซสามูารถืวางแผนว�ธิ�การส!บค์นข้อมู�ล และการที่&าที่รานแซกชื่#นที่��มู�การใชื่ข้อมู�ลมูากกว�า กชื่#นที่��มู�การใชื่ข้อมู�ลมูากกว�า 1 1 ไซต่� ไซต่�

สามูารถืต่#ดีส�นใจไดีว�าจะเข้าถื3งข้อมู�ลที่��ไดีมู�การส&าเนาไวสามูารถืต่#ดีส�นใจไดีว�าจะเข้าถื3งข้อมู�ลที่��ไดีมู�การส&าเนาไวจากไซต่�ไหน จากไซต่�ไหน

สามูารถืที่��จะจ#ดีการค์วามูสอดีค์ลองข้องข้อมู�ลที่��ไดีมู�การสามูารถืที่��จะจ#ดีการค์วามูสอดีค์ลองข้องข้อมู�ลที่��ไดีมู�การที่&าส&าเนาไว ที่&าส&าเนาไว

สามูารถืที่��จะก�ค์!นข้อมู�ลจากไซต่�ที่��ลมูเหลวไดีสามูารถืที่��จะก�ค์!นข้อมู�ลจากไซต่�ที่��ลมูเหลวไดี

Page 32: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

กระบวนการส(บคิ�นข้�อมู�ลแบบกระบวนการส(บคิ�นข้�อมู�ลแบบกระจายกระจาย

ในระบบฐานข้อมู�ลแบบรวมูศู�นย์� ประส�ที่ธิ�ภาพิข้องการในระบบฐานข้อมู�ลแบบรวมูศู�นย์� ประส�ที่ธิ�ภาพิข้องการส!บค์นข้อมู�ลจะว#ดีจากปร�มูาณข้องการเข้าถื3งข้อมู�ลในดี�สก� แต่�ส!บค์นข้อมู�ลจะว#ดีจากปร�มูาณข้องการเข้าถื3งข้อมู�ลในดี�สก� แต่�ในระบบฐานข้อมู�ลแบบกระจาย์จะต่องพิ�จารณาเพิ��มูเต่�มูอ�กค์!อในระบบฐานข้อมู�ลแบบกระจาย์จะต่องพิ�จารณาเพิ��มูเต่�มูอ�กค์!อ- - ค์�าใชื่จ�าย์ในการส�งข้อมู�ลผ�านระบบเค์ร!อข้�าย์ค์�าใชื่จ�าย์ในการส�งข้อมู�ลผ�านระบบเค์ร!อข้�าย์- - ประส�ที่ธิ�ภาพิข้องไซต่�ที่��ประมูวลผลแต่�ละส�วนข้องค์&าส#�งแบบประส�ที่ธิ�ภาพิข้องไซต่�ที่��ประมูวลผลแต่�ละส�วนข้องค์&าส#�งแบบข้นานข้นาน

ค์วามูส#มูพิ#นธิ�ข้องค์�าใชื่จ�าย์ระหว�างการส�งข้อมู�ลผ�านค์วามูส#มูพิ#นธิ�ข้องค์�าใชื่จ�าย์ระหว�างการส�งข้อมู�ลผ�านระบบเค์ร!อข้�าย์และการส�งข้อมู�ลจากดี�สก� จะข้3$นอย์��ก#บประเภที่ระบบเค์ร!อข้�าย์และการส�งข้อมู�ลจากดี�สก� จะข้3$นอย์��ก#บประเภที่ข้องระบบเค์ร!อข้�าย์ และค์วามูเร(วข้องดี�สก� ดี#งน#$นเราไมู�สามูารถืข้องระบบเค์ร!อข้�าย์ และค์วามูเร(วข้องดี�สก� ดี#งน#$นเราไมู�สามูารถืที่��จะระบ+ลงไปไดีเลย์ว�าจะต่องเส�ย์ค์�าใชื่จ�าย์ไปก#บดี�สก�หร!อระบบที่��จะระบ+ลงไปไดีเลย์ว�าจะต่องเส�ย์ค์�าใชื่จ�าย์ไปก#บดี�สก�หร!อระบบเค์ร!อข้�าย์มูากกว�าก#นเค์ร!อข้�าย์มูากกว�าก#น

Page 33: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

1. Query Transformation1. Query Transformationพิ�จารณาแบบสอบถืามูง�าย์ ๆ จงแสดีงข้อมู�ลที่+กที่�เป>ล“พิ�จารณาแบบสอบถืามูง�าย์ ๆ จงแสดีงข้อมู�ลที่+กที่�เป>ล“

ข้องร�เลชื่#น ข้องร�เลชื่#น employee” employee” จะเห(นว�าในระบบฐานข้อมู�ลแบบรวมูจะเห(นว�าในระบบฐานข้อมู�ลแบบรวมูศู�นย์�จะเป)นแบบสอบถืามูที่��ง�าย์ แต่�ในระบบฐานข้อมู�ลแบบศู�นย์�จะเป)นแบบสอบถืามูที่��ง�าย์ แต่�ในระบบฐานข้อมู�ลแบบกระจาย์ การประมูวลผลแบบสอบถืามูน�$จะค์�อนข้างย์+�งย์ากในกระจาย์ การประมูวลผลแบบสอบถืามูน�$จะค์�อนข้างย์+�งย์ากในการประมูวลผล เน!�องจากร�เลชื่#น การประมูวลผล เน!�องจากร�เลชื่#น employee employee อาจจะถื�กที่&าส&าเนาอาจจะถื�กที่&าส&าเนาไวหลาย์ ๆ ไซต่� หร!อถื�กแบ�งออกเป)นหลาย์ๆ ร�เลชื่#นย์�อย์ หร!อไวหลาย์ ๆ ไซต่� หร!อถื�กแบ�งออกเป)นหลาย์ๆ ร�เลชื่#นย์�อย์ หร!อถื�กที่&าที่#$งสองอย์�าง ถืาร�เลชื่#น ถื�กที่&าที่#$งสองอย์�าง ถืาร�เลชื่#น employee employee ถื�กที่&าส&าเนาและไมู�ไดีถื�กที่&าส&าเนาและไมู�ไดีถื�กแบ�งออกเป)นร�เลชื่#นย์�อย์ เราก(จะเล!อกส&าเนาที่��มู�ค์�าใชื่จ�าย์ในถื�กแบ�งออกเป)นร�เลชื่#นย์�อย์ เราก(จะเล!อกส&าเนาที่��มู�ค์�าใชื่จ�าย์ในการส�งข้อมู�ลนอย์ที่��ส+ดี อย์�างไรก(ต่ามูถืาส&าเนาข้องร�เลชื่#นมู�การการส�งข้อมู�ลนอย์ที่��ส+ดี อย์�างไรก(ต่ามูถืาส&าเนาข้องร�เลชื่#นมู�การแบ�งออกเป)นร�เลชื่#นย์�อย์ดีวย์ การเล!อกก(จะมู�ค์วามูย์+�งย์ากเพิ��มูแบ�งออกเป)นร�เลชื่#นย์�อย์ดีวย์ การเล!อกก(จะมู�ค์วามูย์+�งย์ากเพิ��มูข้3$น เน!�องจากเราต่องที่&าการ ข้3$น เน!�องจากเราต่องที่&าการ join join หร!อ หร!อ union union เพิ!�อสรางร�เลชื่#น เพิ!�อสรางร�เลชื่#น employee employee ส&าหร#บกรณ�น�$ ก(สามูารถืดี&าเน�นการไดีหลาย์ว�ธิ�ส&าหร#บกรณ�น�$ ก(สามูารถืดี&าเน�นการไดีหลาย์ว�ธิ�

Page 34: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

Fragmentation Transparency Fragmentation Transparency มู�ค์วามูหมูาย์ว�า มู�ค์วามูหมูาย์ว�า ผ�ใชื่อาจจะเข้�ย์นแบบสอบถืามูเป)นผ�ใชื่อาจจะเข้�ย์นแบบสอบถืามูเป)นs state=’New york’ (employee)s state=’New york’ (employee)

และเน!�องจาก และเน!�องจาก employee employee ถื�กก&าหนดีดี#งน�$ถื�กก&าหนดีดี#งน�$employee 1 U employee 2employee 1 U employee 2

สามูารถืเข้�ย์นไดีดี#งน�$สามูารถืเข้�ย์นไดีดี#งน�$s state=’New york’ (employee 1 U employee 2)s state=’New york’ (employee 1 U employee 2)

ถืาเราที่&าการอ@อปต่�ไมูซ�น�พิจน�น�$ เราสามูารถืเข้�ย์นเป)นถืาเราที่&าการอ@อปต่�ไมูซ�น�พิจน�น�$ เราสามูารถืเข้�ย์นเป)นน�พิจน�ไดีดี#งน�$น�พิจน�ไดีดี#งน�$s state=’New york’ (employee 1) U s state=’News state=’New york’ (employee 1) U s state=’New york’ (employee 2) york’ (employee 2)

Page 35: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ซ3�งที่&าการแบ�งออกเป)นน�พิจน�ย์�อย์ ซ3�งที่&าการแบ�งออกเป)นน�พิจน�ย์�อย์ 2 2 น�พิจน� โดีย์น�พิจน� โดีย์น�พิจน�แรกจะดี&าเน�นการเฉพิาะ น�พิจน�แรกจะดี&าเน�นการเฉพิาะ employee 1 employee 1 ที่��ไซต่� ที่��ไซต่� NewNew york york และน�พิจน�ที่��สองจะดี&าเน�นการเฉพิาะ และน�พิจน�ที่��สองจะดี&าเน�นการเฉพิาะ employee 2 employee 2 ที่��ที่��ไซต่� ไซต่� TexasTexas

ถืาเรามู�การที่&าอ@อฟต่�ไมูซ�ต่�อไป โดีย์พิ�จารณาที่��น�พิจน�แรกถืาเรามู�การที่&าอ@อฟต่�ไมูซ�ต่�อไป โดีย์พิ�จารณาที่��น�พิจน�แรกs state=’New york’ (employee 1)s state=’New york’ (employee 1)

เน!�องจาก เน!�องจาก employee 1 employee 1 จะมู�ข้อมู�ลเฉพิาะข้อง จะมู�ข้อมู�ลเฉพิาะข้อง New york New york เที่�าน#$น ดี#งน�$เราสามูารถืที่��จะข้จ#ดีการดี&าเน�นการ เที่�าน#$น ดี#งน�$เราสามูารถืที่��จะข้จ#ดีการดี&าเน�นการ Selection Selection ออกไปไดี และในน�พิจน�ที่��สองออกไปไดี และในน�พิจน�ที่��สองs state=’New york’ (employee 2)s state=’New york’ (employee 2)

เราสามูารถืปร#บไดีดี#งน�$เราสามูารถืปร#บไดีดี#งน�$s state=’New york’ (s state=’Texas’ (employee))s state=’New york’ (s state=’Texas’ (employee))

ผลล#พิที่�ที่��จะเป)นเซต่ว�าง ดี#งน#$นเมู!�อที่&าการอ@อปต่�ไมูซ�ผลล#พิที่�ที่��จะเป)นเซต่ว�าง ดี#งน#$นเมู!�อที่&าการอ@อปต่�ไมูซ�แบบสอบถืามูแลว ผลล#พิธิ�จะไดีจากการดี&าเน�นการดี3งแบบสอบถืามูแลว ผลล#พิธิ�จะไดีจากการดี&าเน�นการดี3งข้อมู�ลจากไซต่� ข้อมู�ลจากไซต่� New york New york เพิ�ย์งไซต่�เดี�ย์วเพิ�ย์งไซต่�เดี�ย์ว

Page 36: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

1.1 Simple Join Processing1.1 Simple Join Processing

กลย์+ที่ธิ�ส&าค์#ญในการที่&า กลย์+ที่ธิ�ส&าค์#ญในการที่&า query-processing query-processing ค์!อการค์!อการเล!อกว�ธิ�การ เล!อกว�ธิ�การ join join พิ�จารณาน�พิจน�ดี#งต่�อไปน�$พิ�จารณาน�พิจน�ดี#งต่�อไปน�$

employee employee department department projectproject

สมูมู+ต่�ว�าที่#$งสามูร�เลชื่#นไมู�ไดีถื�กที่&าส&าเนาและไมู�ไดีถื�กสมูมู+ต่�ว�าที่#$งสามูร�เลชื่#นไมู�ไดีถื�กที่&าส&าเนาและไมู�ไดีถื�กแบ�งเป)นร�เลชื่#นย์�อย์ และ แบ�งเป)นร�เลชื่#นย์�อย์ และ employee employee ถื�กเก(บไวที่��ไซต่� ถื�กเก(บไวที่��ไซต่� S1 S1 department department เก(บไวที่��ไซต่� เก(บไวที่��ไซต่� S2 S2 และ และ project project เก(บไวที่��ไซต่� เก(บไวที่��ไซต่� S3 S3 และก&าหนดี และก&าหนดี Si Si เป)นไซต่�ที่��จะส�งผลล#พิธิ�ข้องแบบสอบถืามูไปเป)นไซต่�ที่��จะส�งผลล#พิธิ�ข้องแบบสอบถืามูไปให ดี#งน#$นว�ธิ�การที่��เป)นไปไดีส&าหร#บประมูวลผลแบบสอบถืามูให ดี#งน#$นว�ธิ�การที่��เป)นไปไดีส&าหร#บประมูวลผลแบบสอบถืามูน�$ค์!อน�$ค์!อ

Page 37: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

1. 1. ส�งส&าเนาข้องที่#$งสามูร�เลชื่#นไปที่��ไซต่� ส�งส&าเนาข้องที่#$งสามูร�เลชื่#นไปที่��ไซต่� Si Si และใชื่และใชื่เที่ค์น�ค์ต่�าง ๆ ในการในการส!บค์นข้อมู�ลที่��ไซต่� เที่ค์น�ค์ต่�าง ๆ ในการในการส!บค์นข้อมู�ลที่��ไซต่� SiSi

2. 2. ส�งส&าเนาข้องร�เลชื่#น ส�งส&าเนาข้องร�เลชื่#น employee employee ไปที่��ไซต่� ไปที่��ไซต่� S2 S2 และที่&าการประมูวลผล และที่&าการประมูวลผล temp1= employee temp1= employee department department ที่��ไซต่� ที่��ไซต่� S2 S2 จากน#$นส�ง จากน#$นส�ง temp1 temp1 จากไซต่� จากไซต่� S2 S2 ไปย์#งไซต่� ไปย์#งไซต่� S3 S3 และประมูวลผล และประมูวลผล temp2 = temp1 temp2 = temp1 project project และส�ง และส�ง temp2 temp2 ไปย์#งไซต่� ไปย์#งไซต่� SiSi

3. 3. ที่&าในล#กษณะค์ลาย์ ๆ ก#บว�ธิ�การที่��สอง แต่�สล#บที่&าในล#กษณะค์ลาย์ ๆ ก#บว�ธิ�การที่��สอง แต่�สล#บไซต่�ในการส�งข้อมู�ล ไซต่�ในการส�งข้อมู�ล

Page 38: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ไมู�มู�ว�ธิ�ไหนที่��ดี�ที่�ส+ดี เราต่องพิ�จารณาระหว�างปร�มูาณไมู�มู�ว�ธิ�ไหนที่��ดี�ที่�ส+ดี เราต่องพิ�จารณาระหว�างปร�มูาณข้องข้อมู�ลที่��จะต่องส�งระหว�างไซต่� ค์�าใชื่จ�าย์ในการส�งผ�านข้องข้อมู�ลที่��จะต่องส�งระหว�างไซต่� ค์�าใชื่จ�าย์ในการส�งผ�านข้อมู�ลระหว�างสองไซต่� และค์วามูเร(วในการประมูวลผลข้องข้อมู�ลระหว�างสองไซต่� และค์วามูเร(วในการประมูวลผลข้องแต่�ละไซต่� ซ3�งในว�ธิ�การแรก ถืาเราส�งข้อมู�ลที่#$งหมูดีไปที่��ไซต่� แต่�ละไซต่� ซ3�งในว�ธิ�การแรก ถืาเราส�งข้อมู�ลที่#$งหมูดีไปที่��ไซต่� SSi i โดีย์ที่��ร �เลชื่#นเหล�าน#$นมู�การสรางอ�นเดี(กซ� ดี#งน#$นเราจ&าเป)นที่��โดีย์ที่��ร �เลชื่#นเหล�าน#$นมู�การสรางอ�นเดี(กซ� ดี#งน#$นเราจ&าเป)นที่��จะต่องสรางอ�นเดี(กซ�เหล�าน#$นที่��ไซต่� จะต่องสรางอ�นเดี(กซ�เหล�าน#$นที่��ไซต่� Si Si ดีวย์ ซ3�งการสรางอ�นดีวย์ ซ3�งการสรางอ�นเดี(กซ�ที่&าใหมู�การประมูวลผลเพิ��มูข้3$นมูา และย์#งมู�การใชื่ดี�สก�เดี(กซ�ที่&าใหมู�การประมูวลผลเพิ��มูข้3$นมูา และย์#งมู�การใชื่ดี�สก�เพิ��มูข้3$นอ�ก อย์�างไรก(ต่ามูว�ธิ�การที่��สองก(มู�ข้อเส�ย์ค์!อร�เลชื่#นที่��เพิ��มูข้3$นอ�ก อย์�างไรก(ต่ามูว�ธิ�การที่��สองก(มู�ข้อเส�ย์ค์!อร�เลชื่#นที่��ไดีจากการที่&าประมูวลผลมู�ข้นาดีใหญ�ไดีจากการที่&าประมูวลผลมู�ข้นาดีใหญ�(employee department(employee department))ซ3�งต่องส�งข้อมู�ลจากไซต่� ซ3�งต่องส�งข้อมู�ลจากไซต่� S2 S2 ไปที่��ไซต่� ไปที่��ไซต่� S3 S3 ซ3�งว�ธิ�การที่��สองจะซ3�งว�ธิ�การที่��สองจะที่&าใหมู�การส�งข้อมู�ลบนระบบเค์ร!อข้�าย์มูากกว�า เมู!�อเที่�ย์บก#บที่&าใหมู�การส�งข้อมู�ลบนระบบเค์ร!อข้�าย์มูากกว�า เมู!�อเที่�ย์บก#บว�ธิ�การที่��หน3�งว�ธิ�การที่��หน3�ง

Page 39: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

1.2 Semijoin Strategy1.2 Semijoin Strategy

แนวค์�ดีการที่&าแบบสอบถืามูแบบกระจาย์โดีย์ใชื่ว�ธิ�แนวค์�ดีการที่&าแบบสอบถืามูแบบกระจาย์โดีย์ใชื่ว�ธิ�การที่&า การที่&า semijoin semijoin มู�จ+ดีประสงค์�เพิ!�อลดีจ&านวนข้องที่�เป>ลใน มู�จ+ดีประสงค์�เพิ!�อลดีจ&านวนข้องที่�เป>ลใน ร�เลชื่#นก�อนที่��จะที่&าการส�งใหไซต่�อ!�น สมูมู+ต่�ว�าเราต่องการร�เลชื่#นก�อนที่��จะที่&าการส�งใหไซต่�อ!�น สมูมู+ต่�ว�าเราต่องการประมูวลผลน�พิจน� ประมูวลผลน�พิจน� r1 r1 r2 r2 ซ3�ง ซ3�ง r1 r1 และ และ r2 r2 เก(บอย์��ที่��ไซต่� เก(บอย์��ที่��ไซต่� S1 S1 และ และ S2 S2 ต่ามูล&าดี#บ ก&าหนดีให ต่ามูล&าดี#บ ก&าหนดีให R1 R1 และ และ R2 R2 แที่นสก�มูาข้อง แที่นสก�มูาข้อง r1 r1 และ และ r2 r2 ต่ามูล&าดี#บ สมูมู+ต่�ว�าเราต่องการผลล#พิธิ�ที่�� ต่ามูล&าดี#บ สมูมู+ต่�ว�าเราต่องการผลล#พิธิ�ที่�� S1 S1 ถืามู�ที่�เป>ลหลาย์ ๆ ที่�เป>ลใน ถืามู�ที่�เป>ลหลาย์ ๆ ที่�เป>ลใน r2 r2 ที่��ไมู�ไดี ที่��ไมู�ไดี join join ก#บที่�เป>ลใดี ๆ ก#บที่�เป>ลใดี ๆ ใน ใน r1 r1 ดี#งน#$นการส�งร�เลชื่#น ดี#งน#$นการส�งร�เลชื่#น r2 r2 ที่#$งหมูดีไปที่��ไซต่� ที่#$งหมูดีไปที่��ไซต่� S1 S1 ก(จะก(จะเป)นการส�งที่�เป>ลที่��ที่&าใหเก�ดีการ เป)นการส�งที่�เป>ลที่��ที่&าใหเก�ดีการ join join เก�ดีผลล#พิธิ�ที่��เก�นมูาเก�ดีผลล#พิธิ�ที่��เก�นมูาไดี ดี#งน#$น ก�อนที่��เราจะส�งข้อมู�ลจาก ไดี ดี#งน#$น ก�อนที่��เราจะส�งข้อมู�ลจาก r2 r2 ไปที่��ไซต่� ไปที่��ไซต่� S1 S1 ก(น�าจะก(น�าจะส�งเฉพิาะที่�เป>ลสามูารถื ส�งเฉพิาะที่�เป>ลสามูารถื join join ก#บ ร�เลชื่#น ก#บ ร�เลชื่#น r1 r1 ที่��ไซต่� ที่��ไซต่� S1 S1 เที่�าน#$นเที่�าน#$น

Page 40: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

เราสามูารถืดี&าเน�นการดี#งกล�าวไดีดี#งน�$เราสามูารถืดี&าเน�นการดี#งกล�าวไดีดี#งน�$ 1. 1. หา หา 1 1 2 1temp ß P R Ç R ( r ) 1 1 2 1temp ß P R Ç R ( r ) ที่��ไซต่� ที่��ไซต่� 1S1S 2. 2. ส�ง ส�ง 1 1 จากไซต่� จากไซต่� 1 1 ไป ไป 22

3. 3. หา หา 2 2temp ß r 2 2temp ß r 1 1 ที่��ไซต่� ที่��ไซต่� 11 4. 4. ส�ง ส�ง 2 2 จากไซต่� จากไซต่� 2 2 ไป ไป 11 5. 5. ประมูวลผล ประมูวลผล 1 1 2 2 ที่��ไซต่� ที่��ไซต่� 22

ในข้#$นต่อนที่�� ในข้#$นต่อนที่�� 3 2temp 3 2temp สามูารถืหาไดีจาก สามูารถืหาไดีจาก 2 2 1P R Ç 1P R Ç 2 1R ( r ) 2 1R ( r ) และและ

ในข้#$นต่อนที่�� ในข้#$นต่อนที่�� 5 5 ที่&า ที่&า 1 1 2 2 1 2 1P R Ç R ( r ) 1 2 1P R Ç R ( r ) เราเราสามูารถืเข้�ย์นน�พิจน�ใหมู�ไดีดี#งน�$สามูารถืเข้�ย์นน�พิจน�ใหมู�ไดีดี#งน�$ 1 1 1 2 1P R Ç R ( r )) 1 2 1P R Ç R ( r )) 2 2เน!�องจาก เน!�องจาก 1 1 1 2 1 1P R Ç R ( r ) = r 1 2 1 1P R Ç R ( r ) = r ดี#งน#$นน�พิจน�ดี#งน#$นน�พิจน�น�$จะเที่�าก#บ น�$จะเที่�าก#บ 1 1 2 2

Page 41: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ว�ธิ�การน�$จะมู�ค์วามูเหมูาะสมูในกรณ�ที่��จ&านวนว�ธิ�การน�$จะมู�ค์วามูเหมูาะสมูในกรณ�ที่��จ&านวนข้องที่�เป>ลข้อง ข้องที่�เป>ลข้อง r2 r2 มู�จ&านวนนอย์ ว�ธิ�การดี&าเน�นการมู�จ&านวนนอย์ ว�ธิ�การดี&าเน�นการแบบ แบบ semijoin semijoin แที่นดีวย์ส#ญล#กษณ� ดี#งน#$น แที่นดีวย์ส#ญล#กษณ� ดี#งน#$น ssemijoin emijoin ข้อง ข้อง r1 r1 และ และ r2 r2 เข้�ย์นแที่นดีวย์ เข้�ย์นแที่นดีวย์ r1 r2 r1 r2 ค์!อค์!อP R1(r1 P R1(r1 r2) r2)

ดี#งน#$น ดี#งน#$น r1 r2 r1 r2 จะเป)นการเล!อกที่�เป>ลข้อง จะเป)นการเล!อกที่�เป>ลข้อง r1 r1 ที่�� ที่�� เพิ!�อการที่&า เพิ!�อการที่&า r1 r1 r2 r2 ซ3�งในข้#$นต่อนที่�� ซ3�งในข้#$นต่อนที่�� 3 3 จะสามูารถืจะสามูารถืเข้�ย์นไดีใหมู�ดี#งน�$เข้�ย์นไดีใหมู�ดี#งน�$temp2 = r2 r1temp2 = r2 r1

Page 42: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

1.3 Join Strategies that Exploit Parallelism1.3 Join Strategies that Exploit Parallelism

พิ�จารณาการ พิ�จารณาการ join join ข้องร�เลชื่#น ข้องร�เลชื่#น 4 4 ร�เลชื่#นร�เลชื่#นr1 r1 r2 r2 r3 r3 r4r4

ซ3�งร�เลชื่#น ซ3�งร�เลชื่#น ri ri จะถื�กเก(บไวที่��ไซต่� จะถื�กเก(บไวที่��ไซต่� Si Si สมูมู+ต่�ว�าเราต่องการผลล#พิธิ�ที่��สมูมู+ต่�ว�าเราต่องการผลล#พิธิ�ที่��ไซต่� ไซต่� S1 S1 ซ3�งก(มู�อย์��หลาย์ว�ธิ�การที่��จะดี&าเน�นการแบบข้นาน ย์กต่#วอย์�างเชื่�น ซ3�งก(มู�อย์��หลาย์ว�ธิ�การที่��จะดี&าเน�นการแบบข้นาน ย์กต่#วอย์�างเชื่�น r1 r1 ถื�กส�งไปที่��ไซต่� ถื�กส�งไปที่��ไซต่� S2 S2 และที่&า และที่&า r1 r1 r2 r2 ที่��ไซต่� ที่��ไซต่� S2 S2 ในข้ณะเดี�ย์วก#น ในข้ณะเดี�ย์วก#น r3 r3 ก(ถื�กส�งไปที่��ไซต่� ก(ถื�กส�งไปที่��ไซต่� r4 r4 และที่&า และที่&า r3 r3 r4 r4 ที่��ไซต่� ที่��ไซต่� S4 S4 ไซต่� ไซต่� S2 S2 จะส�งผลล#พิธิ� จะส�งผลล#พิธิ� (r1 (r1 r2) r2) กล#บไปที่��ไซต่� กล#บไปที่��ไซต่� S1 S1 และไซต่� และไซต่� S3 S3 จะส�งผลล#พิธิ� จะส�งผลล#พิธิ� (r3 (r3 r4) r4) กล#บไปที่��ไซต่� กล#บไปที่��ไซต่� S1 S1 เมู!�อ เมู!�อ S1 S1 ไดีร#บผลล#พิธิ�กล#บจาก ไดีร#บผลล#พิธิ�กล#บจาก S2 S2 และ และ S4 S4 แลว ก(จะแลว ก(จะที่&าการ ที่&าการ join join อ�กค์ร#$ง อ�กค์ร#$ง (r3 (r3 r4) r4) (r1 (r1 r2) r2) ดี#งน#$นจะเห(นว�าการประมูวลผลการ ดี#งน#$นจะเห(นว�าการประมูวลผลการ join join ที่�� ที่�� S1 S1 สามูารถืดี&าเน�นการแบบสามูารถืดี&าเน�นการแบบข้นานโดีย์มู�การประมูวลผลที่��ไซต่� ข้นานโดีย์มู�การประมูวลผลที่��ไซต่� S2 S2 และไซต่� และไซต่� S4 S4 ไปพิรอมูๆ ก#นไปพิรอมูๆ ก#น

Page 43: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

การคิวบคิ*มูสภาวะการท&างานพิร�อมูก�นการคิวบคิ*มูสภาวะการท&างานพิร�อมูก�นและการฟื้-) นสภาพิข้�อมู�ลและการฟื้-) นสภาพิข้�อมู�ล

การเข้าถื3งข้อมู�ลในระบบแบบกระจาย์โดีย์ปกต่�แลวจะการเข้าถื3งข้อมู�ลในระบบแบบกระจาย์โดีย์ปกต่�แลวจะดี&าเน�นการผ�านที่รานแซกชื่#น ซ3�งจะต่องร#กษาค์+ณสมูบ#ต่� ดี&าเน�นการผ�านที่รานแซกชื่#น ซ3�งจะต่องร#กษาค์+ณสมูบ#ต่� ACID ACID ซ3�งในการที่&าที่รานแซกชื่#นมู�อย์��สองประเภที่ค์!อ ซ3�งในการที่&าที่รานแซกชื่#นมู�อย์��สองประเภที่ค์!อ local local ที่รานแซที่รานแซกชื่#น ซ3�งจะดี&าเน�นการก#บข้อมู�ลในฐานข้อมู�ลที่�� กชื่#น ซ3�งจะดี&าเน�นการก#บข้อมู�ลในฐานข้อมู�ลที่�� local local เที่�าน#$น เที่�าน#$น และอ�กประเภที่หน3�งค์!อ และอ�กประเภที่หน3�งค์!อ global global ที่รานแซกชื่#น ซ3�งจะที่&าการเข้าที่รานแซกชื่#น ซ3�งจะที่&าการเข้าถื3งข้อมู�ลและปร#บปร+งข้อมู�ลในหลาย์ ๆ ฐานข้อมู�ล ในกรณ�ข้อง ถื3งข้อมู�ลและปร#บปร+งข้อมู�ลในหลาย์ ๆ ฐานข้อมู�ล ในกรณ�ข้อง global global ที่รานแซกชื่#น การร#กษาค์+ณสมูบ#ต่� ที่รานแซกชื่#น การร#กษาค์+ณสมูบ#ต่� ACID ACID ข้องการที่&าข้องการที่&าที่รานแซกชื่#นแบบกระจาย์จะมู�การดี&าเน�นการที่��ซ#บซอนมูากข้3$น ที่รานแซกชื่#นแบบกระจาย์จะมู�การดี&าเน�นการที่��ซ#บซอนมูากข้3$น เน!�องจากแต่�ละไซต่�จะมู�ส�วนร�วมูในการที่&าที่รานแซกชื่#น ซ3�งเน!�องจากแต่�ละไซต่�จะมู�ส�วนร�วมูในการที่&าที่รานแซกชื่#น ซ3�งค์วามูลมูเหลวที่��เก�ดีข้3$นในไซต่�เหล�าน�$ หร!อค์วามูลมูเหลวจากค์วามูลมูเหลวที่��เก�ดีข้3$นในไซต่�เหล�าน�$ หร!อค์วามูลมูเหลวจากการส!�อสารก#นระหว�างไซต่� อาจที่&าใหการที่&าที่รานแซกชื่#นผ�ดีการส!�อสารก#นระหว�างไซต่� อาจที่&าใหการที่&าที่รานแซกชื่#นผ�ดีพิลาดีไดีพิลาดีไดี

Page 44: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ภาพิรวมูข้องระบบสามูารถแสดงได�ด�งภาพิรวมูข้องระบบสามูารถแสดงได�ด�งร�ปัร�ปั

ร�ปที่�� 13.7 แสดีงโค์รงสรางข้องระบบ

Page 45: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

1. System Structure1. System Structure

ในแต่�ละไซต่�จะมู�ต่#วจ#ดีการที่รานแซกชื่#นในแต่�ละไซต่�จะมู�ต่#วจ#ดีการที่รานแซกชื่#น(local transaction (local transaction manager) manager) เป)นข้องต่นเอง ซ3�งที่&าหนาที่��ค์วบค์+มูใหการที่&าที่รานแซเป)นข้องต่นเอง ซ3�งที่&าหนาที่��ค์วบค์+มูใหการที่&าที่รานแซกชื่#นใหมู�ค์+ณสมูบ#ต่� กชื่#นใหมู�ค์+ณสมูบ#ต่� ACID ACID โดีย์ที่��ต่#วจ#ดีการที่รานแซกชื่#นแต่�ละต่#วโดีย์ที่��ต่#วจ#ดีการที่รานแซกชื่#นแต่�ละต่#วก(จะร�วมูก#นในการที่&า ก(จะร�วมูก#นในการที่&า global transaction global transaction เพิ!�อค์วามูเข้าใจมูากย์��งเพิ!�อค์วามูเข้าใจมูากย์��งข้3$น เราจะก&าหนดีโมูเดีลข้องระบบที่รานแซกชื่#น โดีย์ในแต่�ละไซต่�ข้3$น เราจะก&าหนดีโมูเดีลข้องระบบที่รานแซกชื่#น โดีย์ในแต่�ละไซต่�ประกอบไปดีวย์ระบบย์�อย์สองระบบค์!อประกอบไปดีวย์ระบบย์�อย์สองระบบค์!อ

- - ต่#วจ#ดีการที่รานแซกชื่#นต่#วจ#ดีการที่รานแซกชื่#น(transaction manager) (transaction manager) จะที่&าหนาที่��จะที่&าหนาที่��ค์อย์ค์วบค์+มูดี�แลการดี&าเน�นการข้องที่รานแซกชื่#นต่�างๆ ที่��มู�การค์อย์ค์วบค์+มูดี�แลการดี&าเน�นการข้องที่รานแซกชื่#นต่�างๆ ที่��มู�การเข้าถื3งข้อมู�ลในไซต่�ข้องต่นเอง แต่�ละที่รานแซกชื่#นเป)นไดีที่#$ง เข้าถื3งข้อมู�ลในไซต่�ข้องต่นเอง แต่�ละที่รานแซกชื่#นเป)นไดีที่#$ง local local ที่รานแซกชื่#น หร!อเป)นส�วนหน3�งข้อง ที่รานแซกชื่#น หร!อเป)นส�วนหน3�งข้อง global global ที่รานแซกชื่#นก(ไดีที่รานแซกชื่#นก(ไดี

- - ต่#วประสานงานที่รานแซกชื่#นต่#วประสานงานที่รานแซกชื่#น(transaction coordinator) (transaction coordinator) ที่&าที่&าหนาที่��ประสานการที่&างานข้องที่รานแซกชื่#นต่�าง ๆ ที่#$ง หนาที่��ประสานการที่&างานข้องที่รานแซกชื่#นต่�าง ๆ ที่#$ง local local และและ globalglobal

Page 46: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

โดีย์ โดีย์ transaction manager transaction manager จะมู�หนาที่��ดี#งน�$จะมู�หนาที่��ดี#งน�$- - การจ#ดีการก#บ การจ#ดีการก#บ log log เพิ!�อจ+ดีประสงค์�ในการฟA$ นค์!นเพิ!�อจ+ดีประสงค์�ในการฟA$ นค์!นสภาพิข้อมู�ลสภาพิข้อมู�ล- - มู�ส�วนร�วมูในการที่&า มู�ส�วนร�วมูในการที่&า concurrency control concurrency control ก#บไซต่�อ!�นก#บไซต่�อ!�นเพิ!�อร�วมูที่&า เพิ!�อร�วมูที่&า concurrent execution concurrent execution ข้องที่รานแซกชื่#นข้องที่รานแซกชื่#นในไซต่�ข้องต่นเองในไซต่�ข้องต่นเอง

transaction coordinator transaction coordinator มู�หนาที่��ดี#งน�$มู�หนาที่��ดี#งน�$- - เร��มูต่นที่&าที่รานแซกชื่#นเร��มูต่นที่&าที่รานแซกชื่#น- - แบ�งที่รานแซกชื่#นออกเป)นที่รานแซกชื่#นย์�อย์ และส�งแบ�งที่รานแซกชื่#นออกเป)นที่รานแซกชื่#นย์�อย์ และส�งไปย์#งไซต่�ที่��เหมูาะสมูเพิ!�อไปย์#งไซต่�ที่��เหมูาะสมูเพิ!�อ- - ประสานการดี&าเน�นการข้องที่รานแซกชื่#นว�า ผลข้องประสานการดี&าเน�นการข้องที่รานแซกชื่#นว�า ผลข้องการที่&าที่รานแซกชื่#นน#$น ที่&าส&าเร(จในที่+ก ๆ ไซต่� หร!อการที่&าที่รานแซกชื่#นน#$น ที่&าส&าเร(จในที่+ก ๆ ไซต่� หร!อย์กเล�กในที่+ก ๆ ไซต่�ย์กเล�กในที่+ก ๆ ไซต่�

Page 47: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

2. Commit Protocols2. Commit Protocols

เพิ!�อใหการที่&าที่รานแซกชื่#นบนระบบฐานข้อมู�ลแบบเพิ!�อใหการที่&าที่รานแซกชื่#นบนระบบฐานข้อมู�ลแบบกระจาย์มู�ค์+ณสมูบ#ต่� กระจาย์มู�ค์+ณสมูบ#ต่� Atomicity Atomicity ค์!อที่รานแซกชื่#น ค์!อที่รานแซกชื่#น T T ต่อง ต่อง commit commit ในที่+ก ๆ ไซต่� หร!อย์กเล�กการที่&าที่รานแซกชื่#นในในที่+ก ๆ ไซต่� หร!อย์กเล�กการที่&าที่รานแซกชื่#นในที่+ก ๆ ไซต่� ต่#วประสานงานที่รานแซกชื่#นข้องที่รานแซที่+ก ๆ ไซต่� ต่#วประสานงานที่รานแซกชื่#นข้องที่รานแซกชื่#น กชื่#น T T ต่องมู�การที่&า ต่องมู�การที่&า commit protocolcommit protocol

ว�ธิ�การข้อง ว�ธิ�การข้อง commit protocol commit protocol มู�การใชื่งานก#นมู�การใชื่งานก#นอย์�างแพิร�หลาย์ค์!อ อย์�างแพิร�หลาย์ค์!อ two-phase commit protocol(2PC) two-phase commit protocol(2PC) และ และ three-phase commit protocol(3PC) three-phase commit protocol(3PC) ซ3�งจะชื่�วย์ซ3�งจะชื่�วย์หล�กเล��ย์งข้อเส�ย์ข้อง หล�กเล��ย์งข้อเส�ย์ข้อง 2PC 2PC แต่�การดี&าเน�นการจะมู�ค์วามูแต่�การดี&าเน�นการจะมู�ค์วามูซ#บซอนมูากกว�า ซ#บซอนมูากกว�า

Page 48: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

2.1 Two-Phase Commit2.1 Two-Phase Commit

ให ให T T เป)นที่รานแซกชื่#นเร��มูต่นที่��ไซต่� เป)นที่รานแซกชื่#นเร��มูต่นที่��ไซต่� Si Si และและให ต่#วประสานงานที่รานแซกชื่#นที่��ไซต่� ให ต่#วประสานงานที่รานแซกชื่#นที่��ไซต่� Si Si เป)น เป)น CiCi

2.1.1 The Commit Protocol2.1.1 The Commit Protocol

เมู!�อที่รานแซกชื่#น เมู!�อที่รานแซกชื่#น T T ไดีที่&าการประมูวลผลไดีที่&าการประมูวลผลเสร(จส�$น น#�นค์!อ ที่+ก ๆ ไซต่�ที่��ที่รานแซกชื่#น เสร(จส�$น น#�นค์!อ ที่+ก ๆ ไซต่�ที่��ที่รานแซกชื่#น T T ไดีไดีประมูวลผลไดีแจงกล#บมูาที่�� ประมูวลผลไดีแจงกล#บมูาที่�� Ci Ci ว�า ไดีที่&าที่รานแซว�า ไดีที่&าที่รานแซกชื่#น กชื่#น T T เสร(จเร�ย์บรอย์แลว ต่#วประงานงานที่รานเสร(จเร�ย์บรอย์แลว ต่#วประงานงานที่รานแซกชื่#น แซกชื่#น Ci Ci จะเร��มูที่&าโปรโต่ค์อล จะเร��มูที่&าโปรโต่ค์อล 2PC2PC

Page 49: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

Phase 1Phase 1Ci Ci เพิ��มูเรค์อร�ดี เพิ��มูเรค์อร�ดี <prepare T> <prepare T> ลงไปใน ลงไปใน log log

ไฟล�บน ไฟล�บน stable storage stable storage จากน#$นก(จะส�งส#ญญาณ จากน#$นก(จะส�งส#ญญาณ prepare T prepare T ไปใหก#บที่+ก ๆ ไซต่�ที่��ประมูวลผลที่รานแซไปใหก#บที่+ก ๆ ไซต่�ที่��ประมูวลผลที่รานแซกชื่#น กชื่#น T T เมู!�อไซต่�อ!�น ๆ ไดีร#บส#ญญาน ต่#วจ#ดีการที่รานเมู!�อไซต่�อ!�น ๆ ไดีร#บส#ญญาน ต่#วจ#ดีการที่รานแซกชื่#นจะต่องต่อบกล#บไปหาต่#วประสานงานที่รานแซกชื่#นจะต่องต่อบกล#บไปหาต่#วประสานงานที่รานแซกชื่#นว�าจะที่&าการ แซกชื่#นว�าจะที่&าการ commit commit ที่รานแซกชื่#นไดีหร!อไมู� ที่รานแซกชื่#นไดีหร!อไมู� ถืาไมู�ไดีจะเพิ��มูเรค์อร�ดี ถืาไมู�ไดีจะเพิ��มูเรค์อร�ดี <no T> <no T> ลงไปใน ลงไปใน log log ไฟล�และไฟล�และส�งส#ญญาณ ส�งส#ญญาณ abort T abort T กล#บไปที่�� กล#บไปที่�� Ci Ci ถืาไดีจะเพิ��มูเรถืาไดีจะเพิ��มูเรค์อร�ดี ค์อร�ดี <ready T> <ready T> ลงไปใน ลงไปใน log log ไฟล� และต่#วจ#ดีการไฟล� และต่#วจ#ดีการที่รานแซกชื่#นจะส�งส#ญญาณ ที่รานแซกชื่#นจะส�งส#ญญาณ ready T ready T กล#บไปที่�� กล#บไปที่�� CiCi

Page 50: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

Phase 2Phase 2

ที่รานแซกชื่#น ที่รานแซกชื่#น T T ที่รานแซกชื่#น ที่รานแซกชื่#น T T จะ จะ commit commit ไดีก(ต่�อไดีก(ต่�อเมู!�อไดีร#บส#ญญาณ เมู!�อไดีร#บส#ญญาณ ready T ready T จากที่+ก ๆ ไซต่�ที่��มู�ส�วนร�วมูจากที่+ก ๆ ไซต่�ที่��มู�ส�วนร�วมูในการที่&าที่รานแซกชื่#น นอกเหน!อจากน#$นที่รานแซกชื่#น ในการที่&าที่รานแซกชื่#น นอกเหน!อจากน#$นที่รานแซกชื่#น T T จะต่องถื�กย์กเล�ก ซ3�งก(จะต่องที่&าการเพิ��มูเรค์อร�ดี จะต่องถื�กย์กเล�ก ซ3�งก(จะต่องที่&าการเพิ��มูเรค์อร�ดี <commit T> <commit T> หร!อ หร!อ <abort T> <abort T> ลงไปใน ลงไปใน log log ไฟล� ถืาไฟล� ถืาที่รานแซกชื่#น ที่รานแซกชื่#น T T สามูารถื สามูารถื commit commit ไดี หร!อ ย์กเล�กการไดี หร!อ ย์กเล�กการที่&าที่รานแซกชื่#น จากน#$น ต่#วประสานงานที่รานแซกชื่#นก(ที่&าที่รานแซกชื่#น จากน#$น ต่#วประสานงานที่รานแซกชื่#นก(จะส�งส#ญญาณ จะส�งส#ญญาณ commit T commit T หร!อ หร!อ abort T abort T ไปใหก#บที่+กๆ ไปใหก#บที่+กๆ ไซต่�ที่��ร �วมูก#นที่&าที่รานแซกชื่#น เมู!�อแต่�ละไซต่�ไดีร#บไซต่�ที่��ร �วมูก#นที่&าที่รานแซกชื่#น เมู!�อแต่�ละไซต่�ไดีร#บส#ญญาณก(จะที่&าการบ#นที่3กเรค์อร�ดีน�$ลงไปใน ส#ญญาณก(จะที่&าการบ#นที่3กเรค์อร�ดีน�$ลงไปใน log log ไฟล�ไฟล�

Page 51: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

จะเห(นว�าส#ญญาณ จะเห(นว�าส#ญญาณ ready T ready T มู�ค์วามูส&าค์#ญมูาก เน!�องจากมู�ค์วามูส&าค์#ญมูาก เน!�องจากไซต่�ต่�าง ๆ ที่��ที่&าที่รานแซกชื่#น ไซต่�ต่�าง ๆ ที่��ที่&าที่รานแซกชื่#น T T จะต่องส�งส#ญญาณ จะต่องส�งส#ญญาณ ready T ready T กล#บไปใหต่#วประสานงานที่รานแซกชื่#น เพิ!�อบอกก#บต่#วประสานกล#บไปใหต่#วประสานงานที่รานแซกชื่#น เพิ!�อบอกก#บต่#วประสานงานที่รานแซกชื่#นว�าพิรอมูที่��จะ งานที่รานแซกชื่#นว�าพิรอมูที่��จะ commit commit แลวซ3�งส#ญญาณน�$จะมู�แลวซ3�งส#ญญาณน�$จะมู�ผลต่�อการที่&า ผลต่�อการที่&า commit commit หร!อ หร!อ abort abort ข้องที่รานแซกชื่#น จากข้องที่รานแซกชื่#น จากล#กษณะดี#งกล�าวอาจเป)นไปไดีว�าเมู!�อไซต่�หน3�งไดีที่&าการส�งล#กษณะดี#งกล�าวอาจเป)นไปไดีว�าเมู!�อไซต่�หน3�งไดีที่&าการส�งส#ญญาณ ส#ญญาณ ready T ready T ไปใหต่#วประสานงานที่รานแซกชื่#นแลว อาจไปใหต่#วประสานงานที่รานแซกชื่#นแลว อาจเก�ดีค์วามูลมูเหลวข้องไซต่�ไดี ซ3�งจากโปรโต่ค์อล เก�ดีค์วามูลมูเหลวข้องไซต่�ไดี ซ3�งจากโปรโต่ค์อล 2PC 2PC เมู!�อต่#วเมู!�อต่#วประสานงานที่รานแซกชื่#นไดีร#บส#ญญาณ ประสานงานที่รานแซกชื่#นไดีร#บส#ญญาณ ready T ready T หร!อ หร!อ abort T abort T ค์รบ ก(จะส�งส#ญญาณ ค์รบ ก(จะส�งส#ญญาณ commit T commit T หร!อ หร!อ abort T abort T ไปใหก#บไซต่�ที่��ไปใหก#บไซต่�ที่��ร �วมูที่&าที่รานแซกชื่#นเที่�าน#$น โดีย์ไมู�ไดีสนใจว�าไซต่�ต่�าง ๆ เหล�าน#$นร�วมูที่&าที่รานแซกชื่#นเที่�าน#$น โดีย์ไมู�ไดีสนใจว�าไซต่�ต่�าง ๆ เหล�าน#$นสามูารถื สามูารถื commit commit หร!อ หร!อ abort abort ต่ามูส#ญญาณที่��ส�งไป ไดีหร!อไมู� ต่ามูส#ญญาณที่��ส�งไป ไดีหร!อไมู� ดี#งน#$นในการดี&าเน�นการโปรโต่ค์อล ดี#งน#$นในการดี&าเน�นการโปรโต่ค์อล 2PC 2PC จะมู�การส�งส#ญญาณ จะมู�การส�งส#ญญาณ aacknowledge T cknowledge T กล#บมูาที่��ต่#วประสานงานที่รานแซกชื่#นเพิ!�อกล#บมูาที่��ต่#วประสานงานที่รานแซกชื่#นเพิ!�อเป)นการบอกว�าไดีดี&าเน�นการ ในระย์ะที่��สองเสร(จเร�ย์บรอย์แลว เป)นการบอกว�าไดีดี&าเน�นการ ในระย์ะที่��สองเสร(จเร�ย์บรอย์แลว เมู!�อต่#วประสานงานที่รานแซกชื่#นไดีร#บ เมู!�อต่#วประสานงานที่รานแซกชื่#นไดีร#บ acknowledge T acknowledge T ค์รบค์รบจากที่+ก ๆ ไซต่� ก(จะเพิ��มูเรค์อร�ดี จากที่+ก ๆ ไซต่� ก(จะเพิ��มูเรค์อร�ดี <complete T> <complete T> เข้าไปใน เข้าไปใน log log ไฟล�ไฟล�

Page 52: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

2.1.2 Handling of Failures2.1.2 Handling of Failures

ค์วามูลมูเหลวในการที่&าที่รานแซกชื่#นมู�อย์��หลาย์ค์วามูลมูเหลวในการที่&าที่รานแซกชื่#นมู�อย์��หลาย์กรณ� ซ3�งจะมู�การจ#ดีการก#บค์วามูลมูเหลวต่�าง ๆ เหล�าน#$นกรณ� ซ3�งจะมู�การจ#ดีการก#บค์วามูลมูเหลวต่�าง ๆ เหล�าน#$นดี#งน�$ดี#งน�$

1) Failure of participating site 1) Failure of participating site ถืาต่#วประสานงาถืาต่#วประสานงานที่รานแซกชื่#นต่รวจพิบว�า มู�ไซต่�หน3�งเก�ดีลมูเหลวข้3$นมูา นที่รานแซกชื่#นต่รวจพิบว�า มู�ไซต่�หน3�งเก�ดีลมูเหลวข้3$นมูา ก(ต่องพิ�จารณาว�า ไซต่�น#$นเก�ดีค์วามูลมูเหลาก�อนการส�งก(ต่องพิ�จารณาว�า ไซต่�น#$นเก�ดีค์วามูลมูเหลาก�อนการส�งส#ญญาณ ส#ญญาณ ready T ready T หร!อไมู� ถืาเก�ดีค์วามูลมูเหลวก�อน ต่#วหร!อไมู� ถืาเก�ดีค์วามูลมูเหลวก�อน ต่#วประสานงานที่รานแซกชื่#นจะถื!อว�าไซต่�น#$นส�งส#ญญาณประสานงานที่รานแซกชื่#นจะถื!อว�าไซต่�น#$นส�งส#ญญาณ abort T abort T กล#บมูาให แต่�ถืาไซต่�น#$นลมูเหลวหล#งจากที่��ไดีกล#บมูาให แต่�ถืาไซต่�น#$นลมูเหลวหล#งจากที่��ไดีส�งส#ญญาณ การดี&าเน�นการโปรโต่ค์อล ส�งส#ญญาณ การดี&าเน�นการโปรโต่ค์อล 2PC 2PC ก(จะดี&าเน�นก(จะดี&าเน�นการไปต่ามูปกต่�โดีย์ไมู�สนใจไซต่�ที่��ลมูเหลวการไปต่ามูปกต่�โดีย์ไมู�สนใจไซต่�ที่��ลมูเหลว

Page 53: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

เมู!�อไซต่�ที่��ร �วมูที่&าที่รานแซกชื่#น เมู!�อไซต่�ที่��ร �วมูที่&าที่รานแซกชื่#น Sk Sk ที่&าการ ฟAนค์!นสภาพิข้อมู�ล ที่&าการ ฟAนค์!นสภาพิข้อมู�ล จากค์วามูลมูเหลวข้องไซต่� จะต่องกมู�การต่รวจสอบ จากค์วามูลมูเหลวข้องไซต่� จะต่องกมู�การต่รวจสอบ log log ไฟล� ไฟล� เพิ!�อก&าหนดีว�าจะต่องที่&าอย์�างไรก#บที่รานแซกชื่#นที่��ย์#งที่&าไมู�เสร(จ เพิ!�อก&าหนดีว�าจะต่องที่&าอย์�างไรก#บที่รานแซกชื่#นที่��ย์#งที่&าไมู�เสร(จ ก&าหนดีให ก&าหนดีให T T เป)นที่รานแซกชื่#นที่��ย์#งที่&าไมู�เสร(จ เราจะต่องเป)นที่รานแซกชื่#นที่��ย์#งที่&าไมู�เสร(จ เราจะต่องพิ�จารณากรณ�ต่�าง ๆ ต่�อไปน�$พิ�จารณากรณ�ต่�าง ๆ ต่�อไปน�$- - ถืาใน ถืาใน log log ไฟล� มู�เรค์อร�ดี ไฟล� มู�เรค์อร�ดี <commit T> <commit T> ใหที่&าการ ใหที่&าการ redo(T)redo(T)

- - ถืาใน ถืาใน log log ไฟล� มู�เรค์อร�ดี ไฟล� มู�เรค์อร�ดี <abort T> <abort T> ใหที่&าการ ใหที่&าการ undo(T)undo(T)

- - ถืาใน ถืาใน log log ไฟล� มู�เรค์อร�ดี ไฟล� มู�เรค์อร�ดี <ready T> <ready T> ในกรณ�น�$ต่องต่�ดีต่�อก#บ ในกรณ�น�$ต่องต่�ดีต่�อก#บ Ci Ci ว�าไดีส�งส#ญญาณอะไรมูาให ถืาพิบว�าที่รานแซกชื่#นไดีที่&าการ ว�าไดีส�งส#ญญาณอะไรมูาให ถืาพิบว�าที่รานแซกชื่#นไดีที่&าการ commit commit ที่รานแซกชื่#น ที่รานแซกชื่#น T T ก(จะที่&าการ ก(จะที่&าการ redo(T) redo(T) และจะที่&าและจะที่&า undo(T) undo(T) ถืาพิบว�าไดีที่&าการ ถืาพิบว�าไดีที่&าการ abort abort ที่รานแซกชื่#น แต่�ถืาไมู�ที่รานแซกชื่#น แต่�ถืาไมู�สามูารถืต่�ดีต่�อก#บ สามูารถืต่�ดีต่�อก#บ Ci Ci ไดี ไซต่� ไดี ไซต่� Sk Sk ก(จะต่องพิย์าย์ามูต่รวจสอบก(จะต่องพิย์าย์ามูต่รวจสอบว�าที่รานแซกชื่#นไดีที่&า ว�าที่รานแซกชื่#นไดีที่&า commit commit หร!อ หร!อ abort abort จากไซต่�อ!�น ๆ ที่+กจากไซต่�อ!�น ๆ ที่+กไซต่� โดีย์การส�งส#ญญาณ ไซต่� โดีย์การส�งส#ญญาณ query-status T query-status T ไปใหก#บที่+ก ๆ ไซต่�ไปใหก#บที่+ก ๆ ไซต่�

Page 54: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

เมู!�อไซต่�ไดีร#บส#ญญาณ เมู!�อไซต่�ไดีร#บส#ญญาณ query-status T query-status T ก(จะที่&าการก(จะที่&าการต่รวจสอบก#บ ต่รวจสอบก#บ log log ไฟล�ว�าไดีที่&า ไฟล�ว�าไดีที่&า commit commit หร!อ หร!อ abort abort ก#บ ที่รานก#บ ที่รานแซกชื่#น แซกชื่#น TT- log - log ไฟล� ไมู�ปรากฏเรค์อร�ดีไฟล� ไมู�ปรากฏเรค์อร�ดี(abort, commit, ready) (abort, commit, ready) อะไรอะไรเลย์ที่��เก��ย์วข้องก#บที่รานแซกชื่#น เลย์ที่��เก��ย์วข้องก#บที่รานแซกชื่#น T T หมูาย์ค์วามูว�าไซต่�ไดีเก�ดีหมูาย์ค์วามูว�าไซต่�ไดีเก�ดีค์วามูลมูเหลวก�อนที่��จะส�งส#ญญาณ ค์วามูลมูเหลวก�อนที่��จะส�งส#ญญาณ ready T ready T กล#บไปใหต่#วกล#บไปใหต่#วประสานงานที่รานแซกชื่#น ที่&าใหที่รานแซกชื่#นต่อง ประสานงานที่รานแซกชื่#น ที่&าใหที่รานแซกชื่#นต่อง abort abort ดี#งดี#งน#$น น#$น Sk Sk ต่องที่&า ต่องที่&า undo(T)undo(T)

2) Failure of coordinator 2) Failure of coordinator ถืาต่#วประสานงานที่รานแซถืาต่#วประสานงานที่รานแซกชื่#นลมูเหลวในระหว�างที่��ก&าล#งที่&าที่รานแซกชื่#น ไซต่�ที่��ร �วมูก#นกชื่#นลมูเหลวในระหว�างที่��ก&าล#งที่&าที่รานแซกชื่#น ไซต่�ที่��ร �วมูก#นที่&าที่รานแซกชื่#น ต่องค์อย์ใหต่#วประสานงานที่รานแซกชื่#นที่&าที่รานแซกชื่#น ต่องค์อย์ใหต่#วประสานงานที่รานแซกชื่#นกล#บมูาเร��มูต่นที่&างานใหมู�แลวจ3งค์�อย์ดี&าเน�นการต่�อกล#บมูาเร��มูต่นที่&างานใหมู�แลวจ3งค์�อย์ดี&าเน�นการต่�อ

Page 55: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

- - ถืาใน ถืาใน log log ไฟล�มู�เรค์อร�ดี ไฟล�มู�เรค์อร�ดี <commit T> <commit T> ดี#งน#$นที่รานแซกชื่#น ดี#งน#$นที่รานแซกชื่#น ต่องที่&าการ ต่องที่&าการ commitcommit

- - ถืาใน ถืาใน log log ไฟล�มู�เรค์อร�ดี ไฟล�มู�เรค์อร�ดี <abort T> <abort T> ดี#งน#$นที่รานแซกชื่#น ดี#งน#$นที่รานแซกชื่#น ต่องถื�ก ต่องถื�ก abortabort

- - ถืาในบางไซต่�ไมู�มู�เรค์อร�ดี ถืาในบางไซต่�ไมู�มู�เรค์อร�ดี <ready T> <ready T> ใน ใน log log ไฟล� ดี#งน#$นจะไฟล� ดี#งน#$นจะไมู�สามูารถืที่&าการ ไมู�สามูารถืที่&าการ commit commit ไดี เน!�องจากไมู�ไดีส�งส#ญญาณ ไดี เน!�องจากไมู�ไดีส�งส#ญญาณ ready T ready T กล#บไปใหต่#วประสานงานที่รานแซกชื่#น ดี#งน#$นต่#วกล#บไปใหต่#วประสานงานที่รานแซกชื่#น ดี#งน#$นต่#วประสานงานที่รานแซกชื่#นก(จะต่องที่&าการ ประสานงานที่รานแซกชื่#นก(จะต่องที่&าการ abort abort ที่รานแซกชื่#น ที่รานแซกชื่#น อย์��แลว ซ3�งในกรณ�น�$ไมู�จ&าเป)นต่องรอให อย์��แลว ซ3�งในกรณ�น�$ไมู�จ&าเป)นต่องรอให Ci Ci กล#บมูาเร��มูต่นกล#บมูาเร��มูต่นที่&างานใหมู�อ�กค์ร#$ง สามูารถืที่��จะ ที่&างานใหมู�อ�กค์ร#$ง สามูารถืที่��จะ abort abort ไดีที่#นที่�ไดีที่#นที่�

ถืาในที่+ก ๆ ไซต่�มู�เรค์อร�ดี ถืาในที่+ก ๆ ไซต่�มู�เรค์อร�ดี <ready T> <ready T> แต่�ไมู�มู�อะไรต่�อแต่�ไมู�มู�อะไรต่�อจากน#$นเชื่�น จากน#$นเชื่�น abort abort หร!อ หร!อ commit commit ที่&าใหไมู�สามูารถืต่#ดีส�นใจไดีว�าที่&าใหไมู�สามูารถืต่#ดีส�นใจไดีว�าจะต่องที่&าอะไร ดี#งน#$นไซต่�ต่�างๆ ต่องค์อย์ จะต่องที่&าอะไร ดี#งน#$นไซต่�ต่�างๆ ต่องค์อย์ Ci Ci กล#บใหมูาเร��มูต่นกล#บใหมูาเร��มูต่นที่&างานใหมู� แลวค์�อย์ดี&าเน�นที่รานแซกชื่#นต่�อไป และในข้ณะที่��ที่&างานใหมู� แลวค์�อย์ดี&าเน�นที่รานแซกชื่#นต่�อไป และในข้ณะที่��ค์อย์ก(ต่องใชื่ที่ร#พิย์ากรข้องระบบดีวย์ค์อย์ก(ต่องใชื่ที่ร#พิย์ากรข้องระบบดีวย์

Page 56: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

2.2 Three-Phase Commit2.2 Three-Phase Commit

3PC 3PC ถื�กออกแบบมูาเพิ!�อหล�กเล��ย์งป*ญหา ถื�กออกแบบมูาเพิ!�อหล�กเล��ย์งป*ญหา Blocking Blocking ที่��เก�ดีข้3$นใน ที่��เก�ดีข้3$นใน 2PC 2PC โดีย์โปรโต่ค์อล โดีย์โปรโต่ค์อล 3PC 3PC จะมู�ข้อจะมู�ข้อก&าหนดีดี#งต่�อไปน�$ก&าหนดีดี#งต่�อไปน�$1. 1. จะต่องไมู�เก�ดีกรณ� จะต่องไมู�เก�ดีกรณ� network partitionnetwork partition

2. 2. ไซต่�ที่��ร �วมูในการที่&าที่รานแซกชื่#นที่#$งหมูดี ไซต่�ที่��ร �วมูในการที่&าที่รานแซกชื่#นที่#$งหมูดี k k ไซต่� ไซต่� สามูารถืลมูเหลวไดีในข้ณะที่��ก&าล#งที่&า สามูารถืลมูเหลวไดีในข้ณะที่��ก&าล#งที่&า 3PC 3PC โดีย์ที่�� โดีย์ที่�� k k เป)นเป)นพิารามู�เต่อร�ที่��บ�งบอกถื3งค์วามูย์!ดีหย์+�นข้องโปรโต่ค์อลในพิารามู�เต่อร�ที่��บ�งบอกถื3งค์วามูย์!ดีหย์+�นข้องโปรโต่ค์อลในไซต่�ที่��ลมูเหลวอย์�างนอย์ ไซต่�ที่��ลมูเหลวอย์�างนอย์ k+1 k+1 ไซต่�ไซต่�

Page 57: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

2.2.1 The Commit Protocol2.2.1 The Commit Protocol

ก&าหนดีให ก&าหนดีให T T เป)นที่รานแซกชื่#นที่��เก�ดีข้#$นที่��เป)นที่รานแซกชื่#นที่��เก�ดีข้#$นที่��ไซต่� ไซต่� Si Si และก&าหนดีใหต่#วประสานงานที่รานแซกชื่#นและก&าหนดีใหต่#วประสานงานที่รานแซกชื่#นเป)น เป)น CiCi

Phase 1Phase 1 ข้#$นต่อนน�$มู�ว�ธิ�การเหมู!อนก#บข้#$นต่อนที่�� ข้# $นต่อนน�$มู�ว�ธิ�การเหมู!อนก#บข้#$นต่อนที่�� 1 1 ในในโปรโต่ค์อล โปรโต่ค์อล 2 PC 2 PC ที่+กประการที่+กประการ

Page 58: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

Phase 2Phase 2 ถืา ถืา Ci Ci ไดีร#บส#ญญาณ ไดีร#บส#ญญาณ abort T abort T จากไซต่�อ!�น หร!อถืา จากไซต่�อ!�น หร!อถืา Ci Ci ไมู�ไดีร#บส#ญญาณต่อบกล#บภาย์ในระย์ะเวลาที่��ก&าหนดี แลว ไมู�ไดีร#บส#ญญาณต่อบกล#บภาย์ในระย์ะเวลาที่��ก&าหนดี แลว Ci Ci ก(จะที่&าการ ก(จะที่&าการ abort T abort T การต่#ดีส�นใจย์กเล�กที่รานแซกชื่#นน�$ที่&าการต่#ดีส�นใจย์กเล�กที่รานแซกชื่#นน�$ที่&าในล#กษณะเดี�ย์วก#นก#บ โปรโต่ค์อบ ในล#กษณะเดี�ย์วก#นก#บ โปรโต่ค์อบ 2PC 2PC และถืา และถืา Ci Ci ไดีร#บไดีร#บส#ญญาณ ส#ญญาณ ready T ready T จากที่+ก ๆ ไซต่� จากที่+ก ๆ ไซต่� Ci Ci จะที่&าการสรางข้#$นต่อนจะที่&าการสรางข้#$นต่อนการเต่ร�ย์มูต่#ดีส�นใจเพิ!�อ การเต่ร�ย์มูต่#ดีส�นใจเพิ!�อ precommit T precommit T การที่&า การที่&า precommit precommit แต่กต่�างจากการที่&า แต่กต่�างจากการที่&า commit commit ค์!อ ที่รานแซกชื่#น ค์!อ ที่รานแซกชื่#น T T ย์#งสามูารถืย์#งสามูารถืที่��จะย์กเล�กไดีต่ราบใดีที่��เราย์#งไมู�ไดี ที่��จะย์กเล�กไดีต่ราบใดีที่��เราย์#งไมู�ไดี Commit Commit จร�ง ๆ การที่&า จร�ง ๆ การที่&า prprecommit ecommit จะย์อมูใหต่#วประสานงานที่รานแซกชื่#นบอกก#บไซต่�จะย์อมูใหต่#วประสานงานที่รานแซกชื่#นบอกก#บไซต่�ที่��ร �วมูประมูวลผล ว�าต่อนน�$ที่+ก ๆ ไซต่�พิรอมูที่��จะดี&าเน�นการในที่��ร �วมูประมูวลผล ว�าต่อนน�$ที่+ก ๆ ไซต่�พิรอมูที่��จะดี&าเน�นการในข้#$นต่อนไป โดีย์ ข้#$นต่อนไป โดีย์ Ci Ci จะที่&าการเพิ��มูเรค์อร�ดี จะที่&าการเพิ��มูเรค์อร�ดี <precommit T> <precommit T> เข้าไปใน เข้าไปใน log log ไฟล� จากน#$น ไฟล� จากน#$น Ci Ci จะส�งส#ญญาณ จะส�งส#ญญาณ precommit T precommit T ไปใหที่+ก ๆ ไซต่� เมู!�อไซต่�ต่�าง ๆ ไดีร#บส#ญญาณไปใหที่+ก ๆ ไซต่� เมู!�อไซต่�ต่�าง ๆ ไดีร#บส#ญญาณ((ที่#$ง ที่#$ง abort T abort T หร!อ หร!อ precommit T) precommit T) จากต่#วประสานงานที่รานแซกชื่#น ก(จะที่&าจากต่#วประสานงานที่รานแซกชื่#น ก(จะที่&าการเพิ��มูเรค์อร�ดีเข้าไปใน การเพิ��มูเรค์อร�ดีเข้าไปใน log log ไฟล� และส�งส#ญญาณ ไฟล� และส�งส#ญญาณ acknowlacknowledge T edge T กล#บไปใหต่#วประสานงานที่รานแซกชื่#นกล#บไปใหต่#วประสานงานที่รานแซกชื่#น

Page 59: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

Phase 3Phase 3 ข้#$นต่อนน�$จะที่&าก(ต่�อเมู!�อการที่&า ข้#$นต่อนน�$จะที่&าก(ต่�อเมู!�อการที่&า precommit precommit ในข้#$นต่อนที่�� ในข้#$นต่อนที่�� 2 2 ส&าเร(จ น#�นค์!อหล#งจากที่��ส#ญญาณ ส&าเร(จ น#�นค์!อหล#งจากที่��ส#ญญาณ precommit T precommit T ไดีถื�กส�งไปย์#งที่+ก ไดีถื�กส�งไปย์#งที่+ก ๆ ไซต่� และต่#วประสานงานที่รานแซกชื่#นต่องค์อย์จนกระที่#�งไดีร#บๆ ไซต่� และต่#วประสานงานที่รานแซกชื่#นต่องค์อย์จนกระที่#�งไดีร#บส#ญญาณ ส#ญญาณ acknowledge T acknowledge T เป)นจ&านวนอย์�างนอย์ เป)นจ&านวนอย์�างนอย์ k k ไซต่� จากน#$นก(ไซต่� จากน#$นก(จะเข้าส��ข้# $นต่อนการ จะเข้าส��ข้# $นต่อนการ commit commit โดีย์การเพิ��มู โดีย์การเพิ��มู <commit T> <commit T> เข้าไปใน เข้าไปใน llog og ไฟล� จากน#$นก(จะส�งส#ญญาณ ไฟล� จากน#$นก(จะส�งส#ญญาณ commit T commit T ไปใหก#บไซต่�ที่+ก ๆ ไซต่� ไปใหก#บไซต่�ที่+ก ๆ ไซต่� เมู!�อไซต่�ต่�างๆ ไดีร#บส#ญญาณก(จะที่&าการเก(บข้อมู�ลลงไปใน เมู!�อไซต่�ต่�างๆ ไดีร#บส#ญญาณก(จะที่&าการเก(บข้อมู�ลลงไปใน log log ไฟล�ไฟล�

ต่รงก#นข้ามูก#บโปรโต่ค์อล ต่รงก#นข้ามูก#บโปรโต่ค์อล 2PC 2PC ซ3�งต่#วประสานงานที่รานแซซ3�งต่#วประสานงานที่รานแซกชื่#นสามูารถื กชื่#นสามูารถื abort abort ที่รานแซกชื่#น ที่รานแซกชื่#น T T ณ เวลาใดี ๆ ก�อนที่��จะมู�การณ เวลาใดี ๆ ก�อนที่��จะมู�การส�งส#ญญาณ ส�งส#ญญาณ commit T commit T ซ3�งส#ญญาณ ซ3�งส#ญญาณ precommit T precommit T ข้องข้องโปรโต่ค์อล โปรโต่ค์อล 3PC 3PC จะเป)นส��งที่��ใชื่บอกต่#วประสานงานที่รานแซกชื่#นว�าจะเป)นส��งที่��ใชื่บอกต่#วประสานงานที่รานแซกชื่#นว�าใหดี&าเน�นอะไรต่�อไปต่ามูค์&าส#�งข้องไซต่�อ!�น ๆ เพิ!�อที่&าการ ใหดี&าเน�นอะไรต่�อไปต่ามูค์&าส#�งข้องไซต่�อ!�น ๆ เพิ!�อที่&าการ commit Tcommit T

ในการดี&าเน�นการข้องโปรโต่ค์อล ในการดี&าเน�นการข้องโปรโต่ค์อล 3PC 3PC ไซต่�หน3�ง ๆ ส�งไซต่�หน3�ง ๆ ส�งส#ญญาณ ส#ญญาณ ack T ack T ไปใหต่#วประสานงานที่รานแซกชื่#น เมู!�อต่#วไปใหต่#วประสานงานที่รานแซกชื่#น เมู!�อต่#วประสานงานที่รานแซกชื่#นไดีร#บส#ญญาณ ประสานงานที่รานแซกชื่#นไดีร#บส#ญญาณ ack T ack T ค์รบที่+กไซต่� ก(จะค์รบที่+กไซต่� ก(จะที่&าการเพิ��มูเรค์อร�ดี ที่&าการเพิ��มูเรค์อร�ดี <commit T> <commit T> เข้าไปใน เข้าไปใน log log ไฟล�ไฟล�

Page 60: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

2.2.2 Handling of Failures2.2.2 Handling of Failures

ค์วามูลมูเหลวที่��อาจจะเก�ดีข้3$นสามูารถืจ&าแนกไดีดี#งน�$ค์วามูลมูเหลวที่��อาจจะเก�ดีข้3$นสามูารถืจ&าแนกไดีดี#งน�$1) Failure of a participating site 1) Failure of a participating site ถืาต่#วประสานงานที่รานแซถืาต่#วประสานงานที่รานแซกชื่#น กชื่#น Ci Ci ต่รวจพิบว�ามู�ไซต่�บางไซต่�ลมูเหลว การดี&าเน�นการก(ต่รวจพิบว�ามู�ไซต่�บางไซต่�ลมูเหลว การดี&าเน�นการก(จะเหมู!อนก#บ จะเหมู!อนก#บ 2PC 2PC ถืาไซต่�น#$นลมูเหลวก�อนที่��จะมู�การส�งถืาไซต่�น#$นลมูเหลวก�อนที่��จะมู�การส�งส#ญญาณ ส#ญญาณ ready T ready T กล#บไปให กล#บไปให Ci Ci ก(จะถื!อว�าไดีมู�การส�งก(จะถื!อว�าไดีมู�การส�งส#ญญาณ ส#ญญาณ abort T abort T กล#บไป นอกน#$นก(จะดี&าเน�นการโปรโต่ค์อล กล#บไป นอกน#$นก(จะดี&าเน�นการโปรโต่ค์อล commit commit ต่�อไปโดีย์ไมู�สนใจว�าไซต่�จะลมูเหลวหร!อไมู�ต่�อไปโดีย์ไมู�สนใจว�าไซต่�จะลมูเหลวหร!อไมู�

เมู!�อไซต่�ที่��ร �วมูที่&าที่รานแซกชื่#น เมู!�อไซต่�ที่��ร �วมูที่&าที่รานแซกชื่#น Sj Sj ไดีที่&าการฟA$ นค์!นสภาพิไดีที่&าการฟA$ นค์!นสภาพิกล#บมูา จะต่องมู�การต่รวจสอบ กล#บมูา จะต่องมู�การต่รวจสอบ log log ไฟล� เพิ!�อจะไดีดี&าเน�นการไฟล� เพิ!�อจะไดีดี&าเน�นการที่รานแซกชื่#นต่�อไป ให ที่รานแซกชื่#นต่�อไป ให T T เป)นที่รานแซกชื่#น และจะพิ�จารณาในเป)นที่รานแซกชื่#น และจะพิ�จารณาในแต่�ละกรณ�ต่�อไปน�$แต่�ละกรณ�ต่�อไปน�$

Page 61: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

- log - log ไฟล� มู�เรค์อร�ดี ไฟล� มู�เรค์อร�ดี <commit T> <commit T> ในกรณ�น�$ใหที่&า ในกรณ�น�$ใหที่&า redo(T)redo(T)

- log - log ไฟล� มู�เรค์อร�ดี ไฟล� มู�เรค์อร�ดี <abort T> <abort T> ในกรณ�น�$ใหที่&า ในกรณ�น�$ใหที่&า undo(T)undo(T)

- log - log ไฟล� มู�เรค์อร�ดี ไฟล� มู�เรค์อร�ดี <ready T> <ready T> แต่�ไมู�มู� แต่�ไมู�มู� <abort T> <abort T> หร!อ หร!อ <precommit T> <precommit T> ในกรณ�น�$ต่องต่�ดีต่�อไปย์#งต่#วในกรณ�น�$ต่องต่�ดีต่�อไปย์#งต่#วประสานงานที่รานแซกชื่#น ถืา ประสานงานที่รานแซกชื่#น ถืา Ci Ci ต่อบกล#บมูาว�าใหย์กต่อบกล#บมูาว�าใหย์กเล�กที่รานแซกชื่#น ก(ใหที่&า เล�กที่รานแซกชื่#น ก(ใหที่&า undo(T) undo(T) และถืา และถืา Ci Ci ต่อบกล#บต่อบกล#บมูาว�า มูาว�า precommit T precommit T ไซต่�ก(จะที่&าการบ#นที่3กเรค์อร�ดี ไซต่�ก(จะที่&าการบ#นที่3กเรค์อร�ดี precommit T precommit T เข้าไปใน เข้าไปใน log log ไฟล� และจะดี&าเน�นการที่&าไฟล� และจะดี&าเน�นการที่&าที่รานแซกชื่#นต่�อไป โดีย์การส�งส#ญญาณ ที่รานแซกชื่#นต่�อไป โดีย์การส�งส#ญญาณ acknowledge acknowledge T T กล#บไปใหต่#วประสานงานที่รานแซกชื่#น และถืา กล#บไปใหต่#วประสานงานที่รานแซกชื่#น และถืา Ci Ci ต่อบต่อบกล#บมูาว�าให กล#บมูาว�าให commit commit ที่รานแซกชื่#น ก(ใหที่&า ที่รานแซกชื่#น ก(ใหที่&า redo(T)redo(T)

Page 62: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

- log - log ไฟล� มู�เรค์อร�ดี ไฟล� มู�เรค์อร�ดี <precommit T> <precommit T> แต่�แต่�ไมู�มู� ไมู�มู� <abort T> <abort T> หร!อ หร!อ <commit T> <commit T> ในกรณ�น�$ต่องในกรณ�น�$ต่องต่�ดีต่�อไปย์#งต่#วประสานงานที่รานแซกชื่#น ถืา ต่�ดีต่�อไปย์#งต่#วประสานงานที่รานแซกชื่#น ถืา Ci Ci ต่อบกล#บมูาว�าใหย์กเล�กที่รานแซกชื่#นหร!อ ต่อบกล#บมูาว�าใหย์กเล�กที่รานแซกชื่#นหร!อ commit commit ไซต่�ก(จะต่องที่&า ไซต่�ก(จะต่องที่&า undo(T) undo(T) หร!อ หร!อ redo(T) redo(T) ต่ามูล&าดี#บ และถืา ต่ามูล&าดี#บ และถืา Ci Ci ต่อบกล#บมูาว�าย์#งอย์��ในต่อบกล#บมูาว�าย์#งอย์��ในระหว�างการที่&า ระหว�างการที่&า precommit precommit ไซต่�ก(จะจะดี&าเน�นการไซต่�ก(จะจะดี&าเน�นการที่&าที่รานแซกชื่#นต่�อไป และถืา ที่&าที่รานแซกชื่#นต่�อไป และถืา Ci Ci ไมู�สามูารถืต่อบไมู�สามูารถืต่อบกล#บภาย์ในเวลาที่��ไดีก&าหนดีไว ก(จะถื!อว�า ต่#วกล#บภาย์ในเวลาที่��ไดีก&าหนดีไว ก(จะถื!อว�า ต่#วประสานงานที่รานแซกชื่#นลมูเหลว ก(ใหดี&าเน�นการประสานงานที่รานแซกชื่#นลมูเหลว ก(ใหดี&าเน�นการโปรโต่ค์อล โปรโต่ค์อล coordinator-failurecoordinator-failure

Page 63: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

2) Failure of the coordinator 2) Failure of the coordinator เมู!�อไซต่�ที่��ร �วมูที่&าเมู!�อไซต่�ที่��ร �วมูที่&าที่รานแซกชื่#น ไมู�ไดีร#บการต่อบกล#บจากต่#วประสานงาน ที่รานแซกชื่#น ไมู�ไดีร#บการต่อบกล#บจากต่#วประสานงาน ที่รานแซกชื่#น ไมู�ว�าดีวย์เหต่+ผลใดีก(ต่ามู จะต่องที่&าที่รานแซกชื่#น ไมู�ว�าดีวย์เหต่+ผลใดีก(ต่ามู จะต่องที่&า coordinator-failure protocol coordinator-failure protocol ซ3�งโปรโต่ค์อลน�$จะซ3�งโปรโต่ค์อลน�$จะเป)นการเล!อกต่#วประสานงานที่รานแซกชื่#นใหมู� และเมู!�อเป)นการเล!อกต่#วประสานงานที่รานแซกชื่#นใหมู� และเมู!�อไซต่�ที่��เค์ย์เป)นต่#วประสานงานที่รานแซกชื่#นกล#บมูาไซต่�ที่��เค์ย์เป)นต่#วประสานงานที่รานแซกชื่#นกล#บมูาที่&างานใหมู�ก(จะปฏ�บ#ต่�ต่#วในฐานะข้องไซต่�ที่��ร �วที่ที่&าที่รานที่&างานใหมู�ก(จะปฏ�บ#ต่�ต่#วในฐานะข้องไซต่�ที่��ร �วที่ที่&าที่รานแซกชื่#นแซกชื่#น

Page 64: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

2.2.3 Coordinator-Failure Protocol2.2.3 Coordinator-Failure Protocol

โปรโต่ค์อล โปรโต่ค์อล coordinator-failure coordinator-failure ถื�กกระต่+นใหเก�ดีถื�กกระต่+นใหเก�ดีข้3$นโดีย์ไซต่�ที่��ไมู�ไดีร#บการต่อบสนองจากต่#วประสานงาน ข้3$นโดีย์ไซต่�ที่��ไมู�ไดีร#บการต่อบสนองจากต่#วประสานงาน ที่รานแซกชื่#น ภาย์ในระย์ะเวลาที่��ก&าหนดี ซ3�งมู�ข้# $นต่อนที่รานแซกชื่#น ภาย์ในระย์ะเวลาที่��ก&าหนดี ซ3�งมู�ข้# $นต่อนดี#งน�$ดี#งน�$1) 1) ไซต่�ที่�� ไซต่�ที่�� active active ที่&าการเล!อกต่#วประสานงานที่รานแซที่&าการเล!อกต่#วประสานงานที่รานแซกชื่#นใหมู� โดีย์ใชื่ กชื่#นใหมู� โดีย์ใชื่ election protocolelection protocol

2) 2) ต่#วประสานงานที่รานแซกชื่#นใหมู� ต่#วประสานงานที่รานแซกชื่#นใหมู� Cnew Cnew ส�งส�งส#ญญาณใหก#บแต่�ละไซต่�เพิ!�อข้อที่ราบสถืานะข้อง ส#ญญาณใหก#บแต่�ละไซต่�เพิ!�อข้อที่ราบสถืานะข้อง local local ที่รานแซกชื่#น ข้อง ที่รานแซกชื่#น ข้อง TT

Page 65: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

3) 3) แต่�ละไซต่�ที่��ร �วมูที่&าที่รานแซกชื่#น รวมูที่#$ง แต่�ละไซต่�ที่��ร �วมูที่&าที่รานแซกชื่#น รวมูที่#$ง Cnew Cnew ต่รวจต่รวจสอบสถืานะข้องที่รานแซกชื่#นดี#งน�$สอบสถืานะข้องที่รานแซกชื่#นดี#งน�$- - สถืานะ สถืานะ Committed Committed ใน ใน log log ไฟล�จะมู�เรค์อร�ดี ไฟล�จะมู�เรค์อร�ดี <commit T><commit T>

- - สถืานะ สถืานะ Aborted Aborted ใน ใน log log ไฟล�จะมู�เรค์อร�ดี ไฟล�จะมู�เรค์อร�ดี <abort T><abort T>

- - สถืานะ สถืานะ Ready Ready ใน ใน log log ไฟล�จะมู�เฉพิาะเรค์อร�ดี ไฟล�จะมู�เฉพิาะเรค์อร�ดี <ready T> <ready T> แต่�ไมู�มู�เรค์อร�ดี แต่�ไมู�มู�เรค์อร�ดี <abort T> <abort T> หร!อ หร!อ <precommit T><precommit T>

- - สถืานะ สถืานะ Precommitted Precommitted ใน ใน log log ไฟล�จะมู�เรค์อร�ดี ไฟล�จะมู�เรค์อร�ดี <precommit T> <precommit T> แต่�ไมู�มู�เรค์อร�ดี แต่�ไมู�มู�เรค์อร�ดี <abort T> <abort T> หร!อหร!อ<commit <commit T>T>

- Not ready - Not ready ใน ใน log log ไฟล� ไมู�มู�ที่#$งเรค์อร�ดี ไฟล� ไมู�มู�ที่#$งเรค์อร�ดี <ready T> <ready T> และ และ <abort T><abort T>

แต่�ละไซต่�ที่��ร �วมูที่&าที่รานแซกชื่#นจะต่องส�งสถืานะข้องที่รานแซแต่�ละไซต่�ที่��ร �วมูที่&าที่รานแซกชื่#นจะต่องส�งสถืานะข้องที่รานแซกชื่#นใหก#บ กชื่#นใหก#บ CnewCnew

Page 66: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

4) Cnew 4) Cnew จะที่&าการ จะที่&าการ commit commit หร!อ หร!อ abort abort ที่รานแซที่รานแซกชื่#น กชื่#น T T หร!อเร��มูที่&า หร!อเร��มูที่&า 3PC protocol 3PC protocol ใหมู� ก(ข้3$นอย์��ก#บ ใหมู� ก(ข้3$นอย์��ก#บ local local status status ที่��ไดีร#บต่อบกล#บมูาจากไซต่�อ!�นๆที่��ไดีร#บต่อบกล#บมูาจากไซต่�อ!�นๆ- - ถืามู�อย์�างนอย์หน3�งไซต่�ที่��มู� ถืามู�อย์�างนอย์หน3�งไซต่�ที่��มู� local status local status เป)น เป)น committed committed แลว ให แลว ให Cnew Cnew ที่&าการ ที่&าการ commit commit ที่รานแซกชื่#น ที่รานแซกชื่#น TT- - ถืามู�อย์�างนอย์หน3�งไซต่�ที่��มู� ถืามู�อย์�างนอย์หน3�งไซต่�ที่��มู� local status local status เป)น เป)น aborted aborted แลว ให แลว ให Cnew Cnew ย์กเล�กการที่&าที่รานแซกชื่#น ย์กเล�กการที่&าที่รานแซกชื่#น TT- - ถืาไมู�มู�ไซต่�ใดีมู� ถืาไมู�มู�ไซต่�ใดีมู� local status local status เป)น เป)น aborted aborted และไมู�มู�ไซต่�ใดีและไมู�มู�ไซต่�ใดีมู� มู� local status local status เป)น เป)น committed committed แต่�มู�อย์�างนอย์หน3�งไซต่�ที่��แต่�มู�อย์�างนอย์หน3�งไซต่�ที่��มู� มู� local status local status เป)น เป)น precommitted precommitted แลว ให แลว ให Cnew Cnew ดี&าเน�นดี&าเน�นการ การ 3PC 3PC ต่�อ โดีย์การส�งส#ญญาณ ต่�อ โดีย์การส�งส#ญญาณ precommit precommit ใหมู�ใหมู�นอกน#$นให นอกน#$นให Cnew Cnew ย์กเล�กที่รานแซกชื่#น ย์กเล�กที่รานแซกชื่#น TT

Page 67: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

3. Coordinator Selection3. Coordinator Selection

ในกรณ�ที่��ต่#วประสานงานที่รานแซกชื่#นลมูในกรณ�ที่��ต่#วประสานงานที่รานแซกชื่#นลมูเหลว ระบบสามูารถืที่&างานต่�อไปไดี โดีย์การเหลว ระบบสามูารถืที่&างานต่�อไปไดี โดีย์การก&าหนดีต่#วประสานงานที่รานแซกชื่#นข้3$นมูาใหมู�โดีย์ก&าหนดีต่#วประสานงานที่รานแซกชื่#นข้3$นมูาใหมู�โดีย์การสรางต่#วประสานงานที่รานแซกชื่#นการสรางต่#วประสานงานที่รานแซกชื่#นส&ารองส&ารอง(backup coordinator)(backup coordinator)ซ3�งพิรอมูที่��จะที่&าซ3�งพิรอมูที่��จะที่&าหนาที่��เป)นต่#วประสานงานที่รานแซกชื่#นที่#นที่��ที่��ต่#วหนาที่��เป)นต่#วประสานงานที่รานแซกชื่#นที่#นที่��ที่��ต่#วประสานงานที่รานแซกชื่#นลมูเหลว หร!อจะเป)นว�ธิ�ประสานงานที่รานแซกชื่#นลมูเหลว หร!อจะเป)นว�ธิ�การเล!อกต่#วประสานงานที่รานแซกชื่#นใหมู�หล#งการเล!อกต่#วประสานงานที่รานแซกชื่#นใหมู�หล#งจากที่��ต่#วประสานงานที่รานแซกชื่#นลมูเหลวจากที่��ต่#วประสานงานที่รานแซกชื่#นลมูเหลว

Page 68: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

- Backup Coordinator- Backup Coordinator

ต่#วประสานงานที่รานแซกชื่#นส&ารอง เป)นไซต่� ๆ ต่#วประสานงานที่รานแซกชื่#นส&ารอง เป)นไซต่� ๆ หน3�งซ3�ง เมู!�อมู�ส#ญญาณถื�กส�งมูาใหต่#วประสานงาน ที่รานหน3�งซ3�ง เมู!�อมู�ส#ญญาณถื�กส�งมูาใหต่#วประสานงาน ที่รานแซกชื่#น ก(จะถื�กส�งใหต่#วประสานงานที่รานแซกชื่#นส&ารองแซกชื่#น ก(จะถื�กส�งใหต่#วประสานงานที่รานแซกชื่#นส&ารองดีวย์ ต่#วประสานงานที่รานแซกชื่#นส&ารองจะที่&าหนาที่��ที่+กดีวย์ ต่#วประสานงานที่รานแซกชื่#นส&ารองจะที่&าหนาที่��ที่+กอย์�างเหมู!อนก#บต่#วประสานงานที่รานแซกชื่#นที่+กอย์�าง อย์�างเหมู!อนก#บต่#วประสานงานที่รานแซกชื่#นที่+กอย์�าง ย์กเวนแต่�การดี&าเน�นการต่�างๆ จะไมู�มู�ผลต่�อไซต่�อ!�น ๆย์กเวนแต่�การดี&าเน�นการต่�างๆ จะไมู�มู�ผลต่�อไซต่�อ!�น ๆ

เมู!�อต่#วประสานงานที่รานแซกชื่#นส&ารองพิบว�าต่#วเมู!�อต่#วประสานงานที่รานแซกชื่#นส&ารองพิบว�าต่#วประสานงานที่รานแซกชื่#นป*จจ+บ#นลมูเหลว มู#นก(จะประสานงานที่รานแซกชื่#นป*จจ+บ#นลมูเหลว มู#นก(จะเปล��ย์นต่#วมู#นเป)นต่#วประสานงานที่รานแซกชื่#นแที่น เปล��ย์นต่#วมู#นเป)นต่#วประสานงานที่รานแซกชื่#นแที่น ที่&าใหการประมูวลผลที่&าไดีอย์�างต่�อเน!�องไมู�ต่�ดีข้#ดีที่&าใหการประมูวลผลที่&าไดีอย์�างต่�อเน!�องไมู�ต่�ดีข้#ดี

Page 69: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ข้�อด�ข้�อด�

ข้อดี�ข้องแนวที่างน�$ค์!อ สามูารถืที่��จะที่&าการข้อดี�ข้องแนวที่างน�$ค์!อ สามูารถืที่��จะที่&าการประมูวลผลต่�อเน!�องไดีที่#นที่� แต่�ข้อเส�ย์ก(ค์!อจะต่องประมูวลผลต่�อเน!�องไดีที่#นที่� แต่�ข้อเส�ย์ก(ค์!อจะต่องมู�การที่&ากระบวนการที่&าส&าเนาต่ลอดีเวลา และจะมู�การที่&ากระบวนการที่&าส&าเนาต่ลอดีเวลา และจะต่องแน�ใจดีวย์ว�าข้อมู�ลต่�างๆ ระหว�างต่#วประสานต่องแน�ใจดีวย์ว�าข้อมู�ลต่�างๆ ระหว�างต่#วประสานงานที่รานแซกชื่#นและต่#วประสานงานที่รานแซกชื่#นงานที่รานแซกชื่#นและต่#วประสานงานที่รานแซกชื่#นส&ารองต่องสอดีค์ลองก#นดีวย์ส&ารองต่องสอดีค์ลองก#นดีวย์

Page 70: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

- Election Algorithm- Election Algorithm

ว�ธิ�การน�$ต่องมู�การก&าหนดีเลข้ว�ธิ�การน�$ต่องมู�การก&าหนดีเลข้เอกล#กษณ�เอกล#กษณ�(identification number)(identification number)ใหก#บแต่�ละไซต่�ในใหก#บแต่�ละไซต่�ในระบบ ต่#วอย์�างเชื่�น เราก&าหนดีเลข้เอกล#กษณ�ข้องไซต่�ระบบ ต่#วอย์�างเชื่�น เราก&าหนดีเลข้เอกล#กษณ�ข้องไซต่� Si Si เป)น เป)น i i และก&าหนดีว�าต่#วประสานงานที่รานแซกชื่#นจะและก&าหนดีว�าต่#วประสานงานที่รานแซกชื่#นจะอย์��ที่��ไซต่�ที่��มู�เลข้เอกล#กษณ�มูากที่��ส+ดี ซ3�งจ+ดีประสงค์�ข้องอย์��ที่��ไซต่�ที่��มู�เลข้เอกล#กษณ�มูากที่��ส+ดี ซ3�งจ+ดีประสงค์�ข้องว�ธิ�การน�$ค์!อเล!อกไซต่�ที่��จะที่&าหนาที่��เป)นต่#วประสานงานที่ว�ธิ�การน�$ค์!อเล!อกไซต่�ที่��จะที่&าหนาที่��เป)นต่#วประสานงานที่รานแซกชื่#นใหมู� ดี#งน#$นเมู!�อต่#วประสานงานที่รานแซกชื่#นรานแซกชื่#นใหมู� ดี#งน#$นเมู!�อต่#วประสานงานที่รานแซกชื่#นเก�ดีลมูเหลวข้3$นมูา ว�ธิ�การน�$ก(จะเล!อกไซต่�ที่��มู�เลข้เก�ดีลมูเหลวข้3$นมูา ว�ธิ�การน�$ก(จะเล!อกไซต่�ที่��มู�เลข้เอกล#กษณ�มูากที่��ส+ดี และเลข้ต่#วน�$จะถื�กส�งไปใหก#บที่+ก ๆ เอกล#กษณ�มูากที่��ส+ดี และเลข้ต่#วน�$จะถื�กส�งไปใหก#บที่+ก ๆ ไซต่�ในระบบไซต่�ในระบบ

Page 71: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

4. Concurrency Control4. Concurrency Control

ในห#วข้อน�$จะกล�าวถื3งแนวที่างในการค์วบค์+มูในห#วข้อน�$จะกล�าวถื3งแนวที่างในการค์วบค์+มูสภาวะการใชื่งานพิรอมูก#นในสภาพิแวดีลอมูแบบสภาวะการใชื่งานพิรอมูก#นในสภาพิแวดีลอมูแบบกระจาย์กระจาย์4.1 Locking Protocol

โปรโต่ค์อลการล@อกข้อมู�ลที่��ใชื่ก#บฐานข้อมู�ลแบบรวมูศู�นย์� มู�อย์��ดีวย์ก#นหลาย์ว�ธิ� สามูารถืที่��จะน&ามูาใชื่ก#บฐานข้อมู�ลแบบกระจาย์ไดี ซ3�งก(มู�หลาย์แนวที่างดี#งน�$

Page 72: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

1. Single-Lock-Manager Approach1. Single-Lock-Manager Approach

ในระบบจะมู�ต่#วจ#ดีการการล@อกในระบบจะมู�ต่#วจ#ดีการการล@อก(lock (lock manager)manager)เพิ�ย์งต่#วเดี�ย์ว ที่��ไซต่�ใดีไซต่�หน3�ง การล@เพิ�ย์งต่#วเดี�ย์ว ที่��ไซต่�ใดีไซต่�หน3�ง การล@อกและการปลดีล@อกจะต่องรองข้อมูาที่��ไซต่� อกและการปลดีล@อกจะต่องรองข้อมูาที่��ไซต่� Si Si เมู!�อที่รานแซกชื่#นหน3�งต่องการที่��จะล@อกข้อมู�ล ก(จะเมู!�อที่รานแซกชื่#นหน3�งต่องการที่��จะล@อกข้อมู�ล ก(จะส�งค์วามูต่องการการล@อกไปที่��ไซต่� ส�งค์วามูต่องการการล@อกไปที่��ไซต่� Si Si เมู!�อต่#วจ#ดีกาเมู!�อต่#วจ#ดีการการล@อกต่รวจสอบว�าสามูารถืล@อกไดีก(จะส�งรการล@อกต่รวจสอบว�าสามูารถืล@อกไดีก(จะส�งส#ญญาณกล#บไปย์#งไซต่�ที่��ร องข้อการล@อก ถืาพิบส#ญญาณกล#บไปย์#งไซต่�ที่��ร องข้อการล@อก ถืาพิบว�าล@อกไมู�ไดีก(จะใหค์อย์จนกว�าจะสามูารถืล@อกไดีว�าล@อกไมู�ไดีก(จะใหค์อย์จนกว�าจะสามูารถืล@อกไดี

Page 73: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ข้�อด�ข้�อด�1.1 1.1 จ#ดีการการล@อกไดีง�าย์จ#ดีการการล@อกไดีง�าย์(Simple Implementation) (Simple Implementation) ในในการล@อกว�ธิ�น�$จะมู�การจ#ดีการอย์��สองอย์�างค์!อ การจ#ดีการการล@อกว�ธิ�น�$จะมู�การจ#ดีการอย์��สองอย์�างค์!อ การจ#ดีการเก��ย์วก#บการรองข้อการล@อก และการจ#ดีการเก��ย์วก#บการเก��ย์วก#บการรองข้อการล@อก และการจ#ดีการเก��ย์วก#บการรองข้อการปลดีล@อกเที่�าน#$นรองข้อการปลดีล@อกเที่�าน#$น1.2 1.2 จ#ดีการล@อกต่าย์ไดีง�าย์จ#ดีการล@อกต่าย์ไดีง�าย์(Simple deadlock handling) (Simple deadlock handling) เน!�องจากการล@อกและการปลดีล@อก มู�การดี&าเน�นการที่��เน!�องจากการล@อกและการปลดีล@อก มู�การดี&าเน�นการที่��ไซต่�เดี�ย์ว ก(สามูารถืที่��จะน&าว�ธิ�การจ#ดีการก#บล@อกต่าย์ที่��ใชื่ไซต่�เดี�ย์ว ก(สามูารถืที่��จะน&าว�ธิ�การจ#ดีการก#บล@อกต่าย์ที่��ใชื่ก#บระบบฐานข้อมู�ลแบบรวมูศู�นย์�มูาใชื่ไดีที่#นที่�ก#บระบบฐานข้อมู�ลแบบรวมูศู�นย์�มูาใชื่ไดีที่#นที่�

Page 74: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ข้�อเส�ยข้�อเส�ย1.1 1.1 เก�ดีป*ญหาค์อข้วดีเก�ดีป*ญหาค์อข้วดี(Bottleneck) (Bottleneck) เน!�องจากการเน!�องจากการรองข้อจากที่+ก ๆ ไซต่�จะส�งมูาที่��ไซต่� รองข้อจากที่+ก ๆ ไซต่�จะส�งมูาที่��ไซต่� Si Si เพิ�ย์งไซต่�เดี�ย์วเพิ�ย์งไซต่�เดี�ย์ว1.2 1.2 ไมู�มู�ค์วามูมู#�นค์งข้องระบบไมู�มู�ค์วามูมู#�นค์งข้องระบบ(Vulnerability) (Vulnerability) ถืาไซต่� ถืาไซต่� Si Si เก�ดีลมูเหลว ก(จะไมู�สามูารถืค์วบค์+มูการที่&างานพิรอมู ๆ เก�ดีลมูเหลว ก(จะไมู�สามูารถืค์วบค์+มูการที่&างานพิรอมู ๆ ก#นไดี การประมูวลผลจะหย์+ดีชื่ะง#ก หร!อไมู�ก(ต่องมู�การก#นไดี การประมูวลผลจะหย์+ดีชื่ะง#ก หร!อไมู�ก(ต่องมู�การเล!อกไซต่�ไดีไซต่�หน3�งใหมูาที่&าหนาที่��เป)นต่#วจ#ดีการการล@เล!อกไซต่�ไดีไซต่�หน3�งใหมูาที่&าหนาที่��เป)นต่#วจ#ดีการการล@อก เพิ!�อใหการประมูวลผลดี&าเน�นต่�อไปอก เพิ!�อใหการประมูวลผลดี&าเน�นต่�อไป

Page 75: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

2. Multiple Coordinators2. Multiple Coordinators

ถืาพิ�จารณาถื3งข้อดี�และข้อเส�ย์แลว ถืาพิ�จารณาถื3งข้อดี�และข้อเส�ย์แลว -multiple-multiple coor di nat or coor di nat or ก(เป)นอ�กแนวที่างหน3�งที่��น�าสนใจ ก(เป)นอ�กแนวที่างหน3�งที่��น�าสนใจ

เน!�องจากต่#วจ#ดีการล@อกจะอย์��ในแต่�ละไซต่� ซ3�งจะจ#ดีการเน!�องจากต่#วจ#ดีการล@อกจะอย์��ในแต่�ละไซต่� ซ3�งจะจ#ดีการก#บการรองข้อการล@อกและการรองข้อการปลดีล@อกข้องก#บการรองข้อการล@อกและการรองข้อการปลดีล@อกข้องข้อมู�ลที่��เก(บอย์��ภาย์ในไซต่�น#$น ซ3�งว�ธิ�การน�$จะชื่�วย์ลดีข้อมู�ลที่��เก(บอย์��ภาย์ในไซต่�น#$น ซ3�งว�ธิ�การน�$จะชื่�วย์ลดีป*ญหาค์อข้วดี แต่�การจ#ดีการเก��ย์วก#บการล@อกจะมู�ค์วามูป*ญหาค์อข้วดี แต่�การจ#ดีการเก��ย์วก#บการล@อกจะมู�ค์วามูย์+�งย์ากมูากข้3$น เน!�องจากการรองข้องการล@อกและการย์+�งย์ากมูากข้3$น เน!�องจากการรองข้องการล@อกและการรองข้อการปลดีล@อกไมู�ไดีกระที่&าที่��ไซต่�เดี�ย์วรองข้อการปลดีล@อกไมู�ไดีกระที่&าที่��ไซต่�เดี�ย์ว

Page 76: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

3. Majority Protocol3. Majority Protocolว�ธิ�การน�$แต่�ละไซต่�จะจ#ดีการเก��ย์วก#บการรองข้อการล@อกว�ธิ�การน�$แต่�ละไซต่�จะจ#ดีการเก��ย์วก#บการรองข้อการล@อก

และการปลดีล@อก ข้องข้อมู�ล ที่��ถื�กเก(บอย์��ภาย์ในไซต่�น#$น เมู!�อและการปลดีล@อก ข้องข้อมู�ล ที่��ถื�กเก(บอย์��ภาย์ในไซต่�น#$น เมู!�อที่รานแซกชื่#นต่องการล@อกข้อมู�ล ที่รานแซกชื่#นต่องการล@อกข้อมู�ล Q Q ที่��ไมู�ไดีที่&าส&าเนาไว และถื�กที่��ไมู�ไดีที่&าส&าเนาไว และถื�กเก(บอย์��ที่��ไซต่� เก(บอย์��ที่��ไซต่� Si Si ก(จ&าที่&าการส�งส#ญญาณรองข้อการล@อกไปที่��ต่#วก(จ&าที่&าการส�งส#ญญาณรองข้อการล@อกไปที่��ต่#วจ#ดีการการล@อกที่��ไซต่� จ#ดีการการล@อกที่��ไซต่� Si Si ถืาข้อมู�ล ถืาข้อมู�ล Q Q ถื�กล@อกอย์��ในโหมูดี ถื�กล@อกอย์��ในโหมูดี incompatible incompatible การรองข้อจะถื�กรอไวจนกระที่#�งสามูารถืล@อกไดี การรองข้อจะถื�กรอไวจนกระที่#�งสามูารถืล@อกไดี และเมู!�อต่#วจ#ดีการการล@อกที่��ไซต่� และเมู!�อต่#วจ#ดีการการล@อกที่��ไซต่� Si Si ต่รวจสอบว�าสามูารถืล@อกต่รวจสอบว�าสามูารถืล@อกข้อมู�ลไดีแลวก(จะส�งส#ญญาณกล#บไปย์#งไซต่�ที่��ร องข้อ ว�ธิ�การน�$มู�ข้อมู�ลไดีแลวก(จะส�งส#ญญาณกล#บไปย์#งไซต่�ที่��ร องข้อ ว�ธิ�การน�$มู�ข้อดี�ต่รงที่��จ#ดีการไดีง�าย์ค์!อ มู�การส�งส#ญญาณการรองข้อล@อก ข้อดี�ต่รงที่��จ#ดีการไดีง�าย์ค์!อ มู�การส�งส#ญญาณการรองข้อล@อก เพิ!�อจ#ดีการก#บการล@อก และส#ญญาณการข้อปลดีล@อกเพิ�ย์งเพิ!�อจ#ดีการก#บการล@อก และส#ญญาณการข้อปลดีล@อกเพิ�ย์งส#ญญาณเดี�ย์ว อย์�างไรก(ต่ามูการจ#ดีการเก��ย์วก#บการล@อกต่าย์จะส#ญญาณเดี�ย์ว อย์�างไรก(ต่ามูการจ#ดีการเก��ย์วก#บการล@อกต่าย์จะมู�ค์วามูซ#บซอนมูากข้3$นเน!�องจากการรองข้อการล@อกและการปลดีมู�ค์วามูซ#บซอนมูากข้3$นเน!�องจากการรองข้อการล@อกและการปลดีล@อกไมู�ไดีกระที่&าที่��ไซต่�เดี�ย์วล@อกไมู�ไดีกระที่&าที่��ไซต่�เดี�ย์ว

Page 77: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

4. Biased Protocol4. Biased Protocolว�ธิ� ว�ธิ� bias bias น�$มู�พิ!$นฐานมูาจาก น�$มู�พิ!$นฐานมูาจาก majority protocol majority protocol ซ3�งค์วามูซ3�งค์วามู

แต่กต่�างอย์��ที่��การรองข้อการล@อกแบบ แต่กต่�างอย์��ที่��การรองข้อการล@อกแบบ share share ถื�กรองข้อมูากถื�กรองข้อมูากกว�าการล@อกแบบ กว�าการล@อกแบบ Exclusive Exclusive ระบบดี�แลต่#วจ#ดีการการล@อกในระบบดี�แลต่#วจ#ดีการการล@อกในแต่�ละไซต่�เอง ต่#วจ#ดีการแต่�ะละต่#วจะจ#ดีการการล@อกส&าหร#บแต่�ละไซต่�เอง ต่#วจ#ดีการแต่�ะละต่#วจะจ#ดีการการล@อกส&าหร#บข้อมู�ลที่+กต่#วในเก(บอย์��ในไซต่�น#$น การล@อกแบบ ข้อมู�ลที่+กต่#วในเก(บอย์��ในไซต่�น#$น การล@อกแบบ share share และแบบ และแบบ exclusive exclusive มู�การจ#ดีการที่��แต่กต่�างก#นดี#งน�$มู�การจ#ดีการที่��แต่กต่�างก#นดี#งน�$- Shared locks - Shared locks เมู!�อที่รานแซกชื่#นหน3�งต่องการล@อกข้อมู�ล เมู!�อที่รานแซกชื่#นหน3�งต่องการล@อกข้อมู�ล Q Q ก(จะที่&าการรองข้อการล@อกข้อมู�ล ก(จะที่&าการรองข้อการล@อกข้อมู�ล Q Q จากต่#วจ#ดีการล@อกเพิ�ย์งจากต่#วจ#ดีการล@อกเพิ�ย์งไซต่�เดี�ย์ว ที่��มู�ส&าเนาข้องข้อมู�ล ไซต่�เดี�ย์ว ที่��มู�ส&าเนาข้องข้อมู�ล QQ- Exclusive lock - Exclusive lock เมู!�อที่รานแซกชื่#นต่องการที่��จะล@อกข้อมู�ล เมู!�อที่รานแซกชื่#นต่องการที่��จะล@อกข้อมู�ล Q Q ก(จะที่&าการรองข้อการล@อกข้อมู�ล ก(จะที่&าการรองข้อการล@อกข้อมู�ล Q Q จากต่#วจ#ดีการการล@อก ที่��จากต่#วจ#ดีการการล@อก ที่��ที่+ก ๆ ไซต่�มู�ส&าเนาข้อง ที่+ก ๆ ไซต่�มู�ส&าเนาข้อง QQ

Page 78: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

5. Primary Copy5. Primary Copy

ในกรณ�ข้องการที่&าส&าเนาข้อมู�ล เราสามูารถืเล!อกในกรณ�ข้องการที่&าส&าเนาข้อมู�ล เราสามูารถืเล!อกส&าเนาหน3�งจากหลาย์ ๆ ส&าเนาเป)นส&าเนาหล#กส&าเนาหน3�งจากหลาย์ ๆ ส&าเนาเป)นส&าเนาหล#ก(primary (primary copy) copy) และก&าหนดีใหเป)นไซต่�หล#กข้องข้อมู�ล และก&าหนดีใหเป)นไซต่�หล#กข้องข้อมู�ล Q Q เมู!�อที่รานเมู!�อที่รานแซกชื่#นต่องการล@อกข้อมู�ล แซกชื่#นต่องการล@อกข้อมู�ล Q Q ก(จะต่องรองข้อการล@อกไปก(จะต่องรองข้อการล@อกไปที่��ไซต่�หล#กข้องข้อมู�ล ที่��ไซต่�หล#กข้องข้อมู�ล Q Q ดี#งน#$น ว�ธิ�การน�$ที่&าใหสามูารถืดี#งน#$น ว�ธิ�การน�$ที่&าใหสามูารถืค์วบค์+มูสภาวะการที่&างานพิรอมูก#นส&าหร#บ ส&าเนาข้องค์วบค์+มูสภาวะการที่&างานพิรอมูก#นส&าหร#บ ส&าเนาข้องข้อมู�ล การดี&าเน�นการในล#กษณะน�$สามูารถืที่&าไดีง�าย์ ข้อมู�ล การดี&าเน�นการในล#กษณะน�$สามูารถืที่&าไดีง�าย์ อย์�างไรก(ต่ามูถืาไซต่�หล#กข้องข้อมู�ล อย์�างไรก(ต่ามูถืาไซต่�หล#กข้องข้อมู�ล Q Q เก�ดีลมูเหลว ก(จะไมู�เก�ดีลมูเหลว ก(จะไมู�สามูารถืเข้าถื3งข้อมู�ล สามูารถืเข้าถื3งข้อมู�ล Q Q ไดี ที่#$งที่��ไซต่�อ!�น ๆ มู�การเก(บส&าเนาไดี ที่#$งที่��ไซต่�อ!�น ๆ มู�การเก(บส&าเนาข้อมู�ล ข้อมู�ล Q Q ไวก(ต่ามูไวก(ต่ามู

Page 79: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

4.2 Timestamping4.2 Timestamping

หล#กการข้องการที่&า หล#กการข้องการที่&า timestamp timestamp ค์!อการก&าหนดีค์�า ค์!อการก&าหนดีค์�า timestamp timestamp ที่��มู�ค์�าไมู�ซ&$าก#นใหก#บแต่�ละที่รานแซกชื่#น เพิ!�อใชื่ในการล&าดี#บข้องการที่��มู�ค์�าไมู�ซ&$าก#นใหก#บแต่�ละที่รานแซกชื่#น เพิ!�อใชื่ในการล&าดี#บข้องการที่&าที่รานแซกชื่#น ดี#งน#$นในระบบฐานข้อมู�ลแบบกระจาย์ส��งที่��ต่องที่&าที่&าที่รานแซกชื่#น ดี#งน#$นในระบบฐานข้อมู�ลแบบกระจาย์ส��งที่��ต่องที่&าเป)นอ#นดี#บแรกค์!อการก&าหนดีค์�า เป)นอ#นดี#บแรกค์!อการก&าหนดีค์�า timestamp timestamp ใหก#บที่รานแซกชื่#นต่�าง ใหก#บที่รานแซกชื่#นต่�าง ๆ ในแต่�ละไซต่� ซ3�งก(มู�อย์�� ๆ ในแต่�ละไซต่� ซ3�งก(มู�อย์�� 2 2 ว�ธิ�หล#ก ๆ ในการก&าหนดีค์�า ว�ธิ�หล#ก ๆ ในการก&าหนดีค์�า timestamp timestamp ไมู�ใหซ&$าก#นค์!อ การก&าหนดีแบบศู�นย์�กลาง และการก&าหนดีแบบไมู�ใหซ&$าก#นค์!อ การก&าหนดีแบบศู�นย์�กลาง และการก&าหนดีแบบกระจาย์ ในการก&าหนดีแบบศู�นย์�กลาง เราจะก&าหนดีใหไซต่�หน3�งเป)นกระจาย์ ในการก&าหนดีแบบศู�นย์�กลาง เราจะก&าหนดีใหไซต่�หน3�งเป)นไซต่�ศู�นย์�กลางที่��ที่&าหนาที่��ก&าหนดี ไซต่�ศู�นย์�กลางที่��ที่&าหนาที่��ก&าหนดี timestamp timestamp ใหก#บไซต่�อ!�น ๆ โดีย์การใหก#บไซต่�อ!�น ๆ โดีย์การใชื่เลข้ล&าดี#บ หร!อเวลาข้องไซต่�ก(ไดี ว�ธิ�การก&าหนดีแบบกระจาย์ แต่�ละใชื่เลข้ล&าดี#บ หร!อเวลาข้องไซต่�ก(ไดี ว�ธิ�การก&าหนดีแบบกระจาย์ แต่�ละไซต่�จะก&าหนดีค์�า ไซต่�จะก&าหนดีค์�า timestamp timestamp ที่��ไซต่�ข้องต่นเอง โดีย์ใชื่เลข้ล&าดี#บหร!อที่��ไซต่�ข้องต่นเอง โดีย์ใชื่เลข้ล&าดี#บหร!อเวลาข้องไซต่� โดีย์เราสามูารถืที่&าให เวลาข้องไซต่� โดีย์เราสามูารถืที่&าให timestamp timestamp มู�ค์�าไมู�ซ&$าก#นในที่+ก ๆ มู�ค์�าไมู�ซ&$าก#นในที่+ก ๆ ไซต่�ไดีโดีย์น&าไปรวมูก#บเลข้เอกล#กษณ�ที่��ใชื่ระบ+ไซต่� ซ3�งที่&าให ไซต่�ไดีโดีย์น&าไปรวมูก#บเลข้เอกล#กษณ�ที่��ใชื่ระบ+ไซต่� ซ3�งที่&าให timestatimestamp mp ที่��ไดีมู�ค์�าไมู�ซ&$าก#นอย์�างแน�นอนที่��ไดีมู�ค์�าไมู�ซ&$าก#นอย์�างแน�นอน

Page 80: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

เราพิบว�าย์#งมู�ป*ญหาเก�ดีข้3$นถืาไซต่�หน3�งมู�ก&าหนดีเลข้ เราพิบว�าย์#งมู�ป*ญหาเก�ดีข้3$นถืาไซต่�หน3�งมู�ก&าหนดีเลข้ timestamp timestamp เร(วกว�าอ�กไซต่�หน3�ง ซ3�งในกรณ�น�$ เลข้ล&าดี#บในเร(วกว�าอ�กไซต่�หน3�ง ซ3�งในกรณ�น�$ เลข้ล&าดี#บในไซต่�ที่��เร(วกว�า จะมู�ค์�ามูากกว�าไซต่�อ!�น ดี#งน#$นค์�า ไซต่�ที่��เร(วกว�า จะมู�ค์�ามูากกว�าไซต่�อ!�น ดี#งน#$นค์�า timestamp timestamp ที่+กค์�าที่��ถื�กก&าหนดีโดีย์ไซต่�ที่��เร(วกว�าจะมู�ค์�ามูากกว�าเสมูอ ที่+กค์�าที่��ถื�กก&าหนดีโดีย์ไซต่�ที่��เร(วกว�าจะมู�ค์�ามูากกว�าเสมูอ ดี#งน#$นเราจ3งต่องมู�กระบวนการที่��จะที่&าใหเลข้ ดี#งน#$นเราจ3งต่องมู�กระบวนการที่��จะที่&าใหเลข้ timestamp timestamp ที่��ที่��ก&าหนดีข้3$นในแต่�ละไซต่� ใหเป)นไปต่ามูค์วามูเป)นจร�ง ในที่��น�$ก&าหนดีข้3$นในแต่�ละไซต่� ใหเป)นไปต่ามูค์วามูเป)นจร�ง ในที่��น�$เราจะก&าหนดี เราจะก&าหนดี logical clock(LCi)logical clock(LCi)ภาย์ในแต่�ละไซต่� ภาย์ในแต่�ละไซต่� Si Si โดีย์ โดีย์ logical clock logical clock น�$จะที่&าหนาที่��เป)นต่#วน#บที่��จะถื�กเพิ��มูข้3$น หล#งน�$จะที่&าหนาที่��เป)นต่#วน#บที่��จะถื�กเพิ��มูข้3$น หล#งจากที่��ไดีก&าหนดีค์�า จากที่��ไดีก&าหนดีค์�า timestamp timestamp ใหมู�ข้3$นมูา เพิ!�อใหแน�ใจว�า ใหมู�ข้3$นมูา เพิ!�อใหแน�ใจว�า logical clock logical clock ต่�าง ๆ มู�ค์วามูสอดีค์ลองก#น เราต่องการใหต่�าง ๆ มู�ค์วามูสอดีค์ลองก#น เราต่องการใหไซต่� ไซต่� Si Si เพิ��มูค์�า เพิ��มูค์�า logical clock logical clock เมู!�อไรก(ต่ามูที่��ที่รานแซกชื่#น เมู!�อไรก(ต่ามูที่��ที่รานแซกชื่#น TTi i ที่��ก&าหนดี ที่��ก&าหนดี timestamp timestamp เป)น เป)น <x,y> <x,y> เก�ดีข้3$น และมู�ค์�า เก�ดีข้3$น และมู�ค์�า x x มู�ค์�ามู�ค์�ามูากกว�าค์�า มูากกว�าค์�า LCi LCi ในกรณ�น�$จะที่&าการเพิ��มูค์�า ในกรณ�น�$จะที่&าการเพิ��มูค์�า LCi LCi เป)น เป)น x+1x+1

Page 81: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

5. Deadlock Handling5. Deadlock Handlingการจ#ดีการก#บการล@อกต่าย์ในระบบฐานข้อมู�ลแบบการจ#ดีการก#บการล@อกต่าย์ในระบบฐานข้อมู�ลแบบ

กระจาย์ สามูารถืที่��จะน&าว�ธิ� กระจาย์ สามูารถืที่��จะน&าว�ธิ� deadlock-prevention deadlock-prevention และว�ธิ� และว�ธิ� deadlock-detection deadlock-detection ที่��ใชื่ก#บระบบฐานข้อมู�ลแบบรวมูศู�นย์�มูาที่��ใชื่ก#บระบบฐานข้อมู�ลแบบรวมูศู�นย์�มูาปร#บใชื่ไดีปร#บใชื่ไดี

deadlock prevention deadlock prevention ที่&าใหไมู�เก�ดีการค์อย์ และไมู�ต่องที่&าใหไมู�เก�ดีการค์อย์ และไมู�ต่องที่&า ที่&า rollback rollback ส�วน ส�วน deadlock detection deadlock detection จะย์อมูใหเก�ดีการล@จะย์อมูใหเก�ดีการล@อกต่าย์ก�อน แลวจ3งจ#ดีการก#บล@อกต่าย์น#$นซ3�งป*ญหาหล#กในอกต่าย์ก�อน แลวจ3งจ#ดีการก#บล@อกต่าย์น#$นซ3�งป*ญหาหล#กในระบบฐานข้อมู�ลแบบกระจาย์ค์!อการจ#ดีการก#บ ระบบฐานข้อมู�ลแบบกระจาย์ค์!อการจ#ดีการก#บ wait-for wait-for graph graph ว�ธิ�การที่��ใชื่ก#นที่#�วไปค์!อใหแต่�ละไซต่�เก(บ ว�ธิ�การที่��ใชื่ก#นที่#�วไปค์!อใหแต่�ละไซต่�เก(บ local wait-for local wait-for graph graph ย์กต่#วอย์�างเชื่�น เรามู�ไซต่�สองไซต่� แต่�ละไซต่�จ#ดีการย์กต่#วอย์�างเชื่�น เรามู�ไซต่�สองไซต่� แต่�ละไซต่�จ#ดีการก#บ ก#บ local wait-for graph local wait-for graph ข้องต่นเอง จะเห(นว�าที่รานแซกชื่#น ข้องต่นเอง จะเห(นว�าที่รานแซกชื่#น T2 T2 และ และ T3 T3 ปรากฎอย์��ในที่#$ง ปรากฎอย์��ในที่#$ง 2 2 กราฟ ดี#งร�ปที่�� กราฟ ดี#งร�ปที่�� 13.8 13.8 แสดีงใหแสดีงใหเห(นว�าที่รานแซกชื่#นไดีรองข้อข้อมู�ลจากที่#$งสองไซต่�เห(นว�าที่รานแซกชื่#นไดีรองข้อข้อมู�ลจากที่#$งสองไซต่�

Page 82: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ร�ปัท�� 13.8 แสดีง local wait-for graph

Page 83: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

local wait-for graph local wait-for graph น�$ ถื�กสรางข้3$นมูาเพิ!�อใชื่จ#ดีการน�$ ถื�กสรางข้3$นมูาเพิ!�อใชื่จ#ดีการก#บที่รานแซกชื่#นภาย์ในไซต่� เมู!�อที่รานแซกชื่#น ก#บที่รานแซกชื่#นภาย์ในไซต่� เมู!�อที่รานแซกชื่#น Ti Ti บนไซต่บนไซต่� � S1 S1 ต่องการข้อมู�ลในไซต่� ต่องการข้อมู�ลในไซต่� S2 S2 ที่รานแซกชื่#น ที่รานแซกชื่#น Ti Ti ก(จะส�งก(จะส�งส#ญญาณไปใหไซต่� ส#ญญาณไปใหไซต่� S2 S2 ถืาข้อมู�ลก&าล#งถื�กจ#ดีการอย์��โดีย์ ถืาข้อมู�ลก&าล#งถื�กจ#ดีการอย์��โดีย์ ที่รานแซกชื่#น ที่รานแซกชื่#น Tj Tj ดีานข้องกราฟ ดีานข้องกราฟ Ti à Tj Ti à Tj จะถื�กเพิ��มูเข้าไปใน จะถื�กเพิ��มูเข้าไปใน local wait-for graph local wait-for graph ข้องไซต่� ข้องไซต่� S2S2

ดี#งน#$นถืา ดี#งน#$นถืา local wait-for graph local wait-for graph เก�ดีเป)นวงรอบ ก(เก�ดีเป)นวงรอบ ก(หมูาย์ค์วามูว�าเก�ดีการล@อกต่าย์เก�ดีข้3$น ในที่&านองเดี�ย์วก#นหมูาย์ค์วามูว�าเก�ดีการล@อกต่าย์เก�ดีข้3$น ในที่&านองเดี�ย์วก#นการที่�� การที่�� local wait-for graph local wait-for graph ไมู�เก�ดีวงรอบ ก(ไมู�ไดีไมู�เก�ดีวงรอบ ก(ไมู�ไดีหมูาย์ค์วามูว�าจะไมู�เก�ดีการล@อกต่าย์เชื่�นก#น จากต่#วอย์�างหมูาย์ค์วามูว�าจะไมู�เก�ดีการล@อกต่าย์เชื่�นก#น จากต่#วอย์�างข้างต่น ข้างต่น local wait-for graph local wait-for graph ในแต่�ละไซต่�ไมู�เก�ดีวงรอบ ในแต่�ละไซต่�ไมู�เก�ดีวงรอบ แต่�เมู!�อน&า แต่�เมู!�อน&า local wait-for graph local wait-for graph ที่#$งสองมูารวมูก#นจะพิบว�าที่#$งสองมูารวมูก#นจะพิบว�าเก�ดีล#กษณะวงรอบข้3$น ซ3�งจะเก�ดีการล@อกต่าย์ ดี#งร�ปที่�� เก�ดีล#กษณะวงรอบข้3$น ซ3�งจะเก�ดีการล@อกต่าย์ ดี#งร�ปที่�� 13.913.9

Page 84: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ร�ปัท�� 13.9 แสดีงล#กษณะการเก�ดี Global local wait-for graph

ในการจ#ดีการก#บ wait-for graph ในระบบฐานข้อมู�ลแบบกระจาย์มู�อย์��หลาย์ว�ธิ� ในที่��น��จะข้อกล�าวถื3งสองว�ธิ�ค์!อ

Page 85: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

5.1 Centralized Approach5.1 Centralized Approach

ว�ธิ�การแบบรวมูศู�นย์�จะที่&าการสราง ว�ธิ�การแบบรวมูศู�นย์�จะที่&าการสราง global wait-for graph global wait-for graph และจ#ดีเก(บไวในไซต่�เดี�ย์ว และมู�ต่#วประสานงาน และจ#ดีเก(บไวในไซต่�เดี�ย์ว และมู�ต่#วประสานงาน deadlock-dedeadlock-detection tection ที่&าหนาที่��ค์อย์ต่รวจสอบการล@อกต่าย์ และเน!�องจากที่&าหนาที่��ค์อย์ต่รวจสอบการล@อกต่าย์ และเน!�องจากมู�ค์วามูล�าชื่าข้องการส!�อสารในระบบเค์ร!อข้�าย์มู�ค์วามูล�าชื่าข้องการส!�อสารในระบบเค์ร!อข้�าย์global wait-for graph global wait-for graph จะถื�กสรางภาย์ใต่เง!�อนไข้ต่�อไปน�$จะถื�กสรางภาย์ใต่เง!�อนไข้ต่�อไปน�$เมู!�อไรก(ต่ามูที่��มู�การเพิ��มูหร!อลบดีานข้องกราฟ ข้อง เมู!�อไรก(ต่ามูที่��มู�การเพิ��มูหร!อลบดีานข้องกราฟ ข้อง local local wait-for graph wait-for graph ใดี ๆใดี ๆเมู!�อเก�ดีการเปล��ย์นแปลงจ&านวนหน3�งใน เมู!�อเก�ดีการเปล��ย์นแปลงจ&านวนหน3�งใน local wait-for local wait-for graphgraph

เมู!�อไรก(ต่ามูที่��ต่#วประสานงานที่&าการต่รวจสอบการการเก�ดีเมู!�อไรก(ต่ามูที่��ต่#วประสานงานที่&าการต่รวจสอบการการเก�ดีวงรอบล@อกต่าย์วงรอบล@อกต่าย์

Page 86: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

เมู!�อที่&าการต่รวจสอบการล@อกต่าย์ ต่#วเมู!�อที่&าการต่รวจสอบการล@อกต่าย์ ต่#วประสานงานก(จะค์นหาวงรอบใน ประสานงานก(จะค์นหาวงรอบใน global graph global graph ถืาถืาพิบวงรอบก(จะที่&าการเล!อกที่รานแซกชื่#นหน3�งในวงพิบวงรอบก(จะที่&าการเล!อกที่รานแซกชื่#นหน3�งในวงรอบน#$น เพิ!�อที่&าการ รอบน#$น เพิ!�อที่&าการ rolled back rolled back และจะแจงกล#บไปและจะแจงกล#บไปที่+ก ๆ ไซต่� โดีย์เฉพิาะที่รานแซกชื่#นที่��ถื�กเล!อกเพิ!�อที่+ก ๆ ไซต่� โดีย์เฉพิาะที่รานแซกชื่#นที่��ถื�กเล!อกเพิ!�อที่&า ที่&า rolled back rolled back จากน#$นจ3งที่&า จากน#$นจ3งที่&า roll back roll back ที่รานแซที่รานแซกชื่#นที่��ถื�กเล!อกน#$นกชื่#นที่��ถื�กเล!อกน#$น

เราพิบว�าแนวที่างน�$อาจที่&าใหเก�ดีการ เราพิบว�าแนวที่างน�$อาจที่&าใหเก�ดีการ rollbacks rollbacks อย์�างไมู�จ&าเป)นไดี ถืาเป)นไปต่ามูเง!�อนไข้อย์�างไมู�จ&าเป)นไดี ถืาเป)นไปต่ามูเง!�อนไข้ดี#งน�$ดี#งน�$

Page 87: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

- False Cycle - False Cycle อาจจะเก�ดีข้3$นไดีใน อาจจะเก�ดีข้3$นไดีใน global waitglobal wait-for graph -for graph พิ�จารณาจากร�ปที่�� พิ�จารณาจากร�ปที่�� 13.9 13.9 สมูมู+ต่�ว�า สมูมู+ต่�ว�า T2 T2 ไดีไดีปล�อย์ข้อมู�ลในไซต่� ปล�อย์ข้อมู�ลในไซต่� S1 S1 น#�นค์!อจะที่&าการลบข้อง น#�นค์!อจะที่&าการลบข้อง T1 à TT1 à T2 2 ในไซต่� ในไซต่� S1 S1 จากน#$นที่รานแซกชื่#น จากน#$นที่รานแซกชื่#น T2 T2 ต่องการใชื่ข้อมู�ลต่องการใชื่ข้อมู�ลที่��ถื�กใชื่โดีย์ที่รานแซกชื่#น ที่��ถื�กใชื่โดีย์ที่รานแซกชื่#น T3 T3 ที่��ไซต่� ที่��ไซต่� S2 S2 ดี#งน#$นที่��ไซต่� ดี#งน#$นที่��ไซต่� S2 S2 ก(จะที่&าการเพิ��มูโหนดี ก(จะที่&าการเพิ��มูโหนดี T2 T2 ค์!อ ค์!อ T2 à T3 T2 à T3 ถืาส#ญญาณการถืาส#ญญาณการเพิ��มู เพิ��มู T2 à T3 T2 à T3 จากไซต่� จากไซต่� S2 S2 ไปถื3งต่#วประสานงานก�อนที่��ไปถื3งต่#วประสานงานก�อนที่��ส#ญญาณการลบ ส#ญญาณการลบ T1 à T2 T1 à T2 ต่#วประสานงานจะพิบว�าเก�ดีต่#วประสานงานจะพิบว�าเก�ดีวงรอบข้3$นค์!อ วงรอบข้3$นค์!อ T1 à T2 à T3 à T1 T1 à T2 à T3 à T1 ดี#งน#$นระบบก(จะดี#งน#$นระบบก(จะที่&าการย์กเล�กที่รานแซกชื่#น ที่��เก�ดีการล@อกต่าย์ แมูว�าที่&าการย์กเล�กที่รานแซกชื่#น ที่��เก�ดีการล@อกต่าย์ แมูว�าจร�ง ๆ แลวจะไมู�เก�ดีการล@อกต่าย์จร�ง ๆ แลวจะไมู�เก�ดีการล@อกต่าย์

Page 88: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

- - การย์กเล�กที่รานแซกชื่#นโดีย์ไมู�การย์กเล�กที่รานแซกชื่#นโดีย์ไมู�จ&าเป)นจ&าเป)น(Unnecessary rollbacks) (Unnecessary rollbacks) จะเก�ดีข้3$นในกรณ�ที่��มู�จะเก�ดีข้3$นในกรณ�ที่��มู�การเก�ดีการล@อกต่าย์จร�ง ๆ และมู�การเล!อกที่รานแซกชื่#นการเก�ดีการล@อกต่าย์จร�ง ๆ และมู�การเล!อกที่รานแซกชื่#นที่��จะที่&าการ ที่��จะที่&าการ rollback rollback ในข้ณะที่��ที่รานแซกชื่#นหน3�งถื�กในข้ณะที่��ที่รานแซกชื่#นหน3�งถื�กย์กเล�กโดีย์ที่��ไมู�เก��ย์วข้องก#บการเก�ดีการล@อกต่าย์ในย์กเล�กโดีย์ที่��ไมู�เก��ย์วข้องก#บการเก�ดีการล@อกต่าย์ในกรณ� กรณ� false cycle false cycle ย์กต่#วอย์�างเชื่�น ที่��ไซต่� ย์กต่#วอย์�างเชื่�น ที่��ไซต่� S1 .S1 .ในร�ป ในร�ป 13.10 13.10 ต่#ดีส�นใจที่��จะย์กเล�กที่รานแซกชื่#น ต่#ดีส�นใจที่��จะย์กเล�กที่รานแซกชื่#น T2 T2 และในข้ณะและในข้ณะเดี�ย์วก#นต่#วประสานงานพิบว�าเก�ดีวงรอบ และเล!อกที่��จะเดี�ย์วก#นต่#วประสานงานพิบว�าเก�ดีวงรอบ และเล!อกที่��จะย์กเล�กที่รานแซกชื่#น ย์กเล�กที่รานแซกชื่#น T3 T3 ดี#งน#$นที่รานแซกชื่#น ดี#งน#$นที่รานแซกชื่#น T2 T2 และ และ T3 T3 จะถื�ก จะถื�ก rollback rollback ที่#$งสองที่รานแซกชื่#นที่#$งสองที่รานแซกชื่#น

Page 89: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ร�ปัท�� 13.10 แสดีง False Cycle ใน Global local wait-for graph

Page 90: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

5.2 Fully Distributed Approach5.2 Fully Distributed Approach

ในการต่รวจสอบการล@อกต่าย์แบบ ในการต่รวจสอบการล@อกต่าย์แบบ fully fully distributed distributed น#$น ต่#วค์วบค์+มูที่+กต่#วมู�หนาที่��ในการต่รวจสอน#$น ต่#วค์วบค์+มูที่+กต่#วมู�หนาที่��ในการต่รวจสอบการล@อกต่าย์เหมู!อนก#น ดี#งน#$นแนวที่างน�$ ที่+ก ๆ ไซต่�จะบการล@อกต่าย์เหมู!อนก#น ดี#งน#$นแนวที่างน�$ ที่+ก ๆ ไซต่�จะที่&าการสราง ที่&าการสราง wait-for graph wait-for graph ซ3�งแที่นส�วนหน3�งข้องกราฟซ3�งแที่นส�วนหน3�งข้องกราฟที่#$งหมูดี ข้3$นอย์��ก#บล#กษณะการเปล��ย์นแปลงข้องระบบ ในที่#$งหมูดี ข้3$นอย์��ก#บล#กษณะการเปล��ย์นแปลงข้องระบบ ในแนวค์�ดีน�$ ถืาเก�ดีการล@อกต่าย์ จะปรากฎวงรอบในกราฟแนวค์�ดีน�$ ถืาเก�ดีการล@อกต่าย์ จะปรากฎวงรอบในกราฟดีวย์ดีวย์

Page 91: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

แต่�ละไซต่�จะมู� แต่�ละไซต่�จะมู� local wait-for graph local wait-for graph โดีย์ที่�� โดีย์ที่�� local wait-for graph local wait-for graph น�$จะแต่กต่�างต่าก น�$จะแต่กต่�างต่าก local wait-local wait-for graph for graph ในแนวที่างแบบรวมูศู�นย์� โดีย์เราจะเพิ��มูในแนวที่างแบบรวมูศู�นย์� โดีย์เราจะเพิ��มูโหนดี โหนดี Tex Tex เข้าไปใน เข้าไปใน local wait-for graph local wait-for graph อ�กโหนดีอ�กโหนดีหน3�ง โดีย์โหนดี หน3�ง โดีย์โหนดี Tex Tex น�$จะแสดีงที่รานแซกชื่#นที่��เก�ดีน�$จะแสดีงที่รานแซกชื่#นที่��เก�ดีภาย์นอกไซต่�น#$น ดีานข้องกราพิ ภาย์นอกไซต่�น#$น ดีานข้องกราพิ Ti à Tex Ti à Tex จะแสดีงจะแสดีงถื3ง ถื3ง Ti Ti ก&าล#งค์อย์ข้อมู�ลที่��อย์��อ�กไซต่�หน3�งที่��ถื�กใชื่งานก&าล#งค์อย์ข้อมู�ลที่��อย์��อ�กไซต่�หน3�งที่��ถื�กใชื่งานอย์��โดีย์ที่รานแซกชื่#นอ!�น ในที่&านองเดี�ย์วก#น อย์��โดีย์ที่รานแซกชื่#นอ!�น ในที่&านองเดี�ย์วก#น Texà Tj Texà Tj ก(หมูาย์ถื3งที่รานแซกชื่#นในอ�กไซต่�หน3�งก&าล#งค์อย์การก(หมูาย์ถื3งที่รานแซกชื่#นในอ�กไซต่�หน3�งก&าล#งค์อย์การปล�อย์ข้อมู�ลข้องที่รานแซกชื่#น ปล�อย์ข้อมู�ลข้องที่รานแซกชื่#น Tj Tj อย์��อย์��

พิ�จารณา พิ�จารณา wait-for graph wait-for graph ร�ปที่� ร�ปที่� 13.8 13.8 โดีย์เพิ��มูโดีย์เพิ��มูโหนดี โหนดี Tex Tex เข้าไปในกราฟที่#$งสอง ดี#งร�ปที่�� เข้าไปในกราฟที่#$งสอง ดี#งร�ปที่�� 13.1113.11

Page 92: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ร�ปัท�� 13.11 แสดีง local wait-for graph

Page 93: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ถืา ถืา local wait-for graph local wait-for graph มู�วงรอบโดีย์ที่��ไมู�รวมูโหนดี มู�วงรอบโดีย์ที่��ไมู�รวมูโหนดี Tex Tex ดี#งน#$นระบบจะเก�ดีการล@อกต่าย์ อย์�างไรก(ต่ามู วงรอบดี#งน#$นระบบจะเก�ดีการล@อกต่าย์ อย์�างไรก(ต่ามู วงรอบที่��มู�โหนดี ที่��มู�โหนดี Tex Tex มู�ค์วามูหมูาย์ว�าอาจจะเก�ดีการล@อกต่าย์ไดี มู�ค์วามูหมูาย์ว�าอาจจะเก�ดีการล@อกต่าย์ไดี เพิ!�อใหเก�ดีค์วามูแน�ใจว�ามู�การเก�ดีการล@อกต่าย์หร!อไมู� เราเพิ!�อใหเก�ดีค์วามูแน�ใจว�ามู�การเก�ดีการล@อกต่าย์หร!อไมู� เราต่องใชื่ว�ธิ� ต่องใชื่ว�ธิ� distributed deadlock detection algorithmdistributed deadlock detection algorithm

สมูมู+ต่�ว�า สมูมู+ต่�ว�า local wait-for graph local wait-for graph ข้องไซต่� ข้องไซต่� Si Si เก�ดีวงเก�ดีวงรอบที่��มู�โหนดี รอบที่��มู�โหนดี Tex Tex วงรอบน�$แสดีงไดีในร�ปข้องวงรอบน�$แสดีงไดีในร�ปข้องTex à Tk1 à Tk2 à … à Tkn à TexTex à Tk1 à Tk2 à … à Tkn à Tex

ซ3�งบอกก#บเราว�าที่รานแซกชื่#น ซ3�งบอกก#บเราว�าที่รานแซกชื่#น Tkn Tkn ในไซต่� ในไซต่� Si Si ก&าล#งก&าล#งค์อย์การเข้าใชื่ข้อมู�ลจากไซต่�อ!�น ก&าหนดีใหเป)นไซต่�ค์อย์การเข้าใชื่ข้อมู�ลจากไซต่�อ!�น ก&าหนดีใหเป)นไซต่�Sj Sj ในการต่รวจสอบวงรอบน�$ ไซต่� ในการต่รวจสอบวงรอบน�$ ไซต่� Si Si จะส�งส#ญญาณ จะส�งส#ญญาณ deadlock detection deadlock detection ที่��มู�ข้อมู�ลเก��ย์วก#บการเก�ดีวงรอบไปที่��มู�ข้อมู�ลเก��ย์วก#บการเก�ดีวงรอบไปใหไซต่� ใหไซต่� SjSj

Page 94: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

เมู!�อไซต่� เมู!�อไซต่� Sj Sj ไดีร#บส#ญญาณ ไดีร#บส#ญญาณ deadlock detection deadlock detection มู#นจะที่&าการปร#บปร+ง มู#นจะที่&าการปร#บปร+ง local wait-for graph local wait-for graph ดีวย์ข้อมู�ลดีวย์ข้อมู�ลใหมู�ที่��ไดีร#บมูาจากไซต่� ใหมู�ที่��ไดีร#บมูาจากไซต่� Si Si ในข้#$นต่อนต่�อไปจะที่&าการค์นหาในข้#$นต่อนต่�อไปจะที่&าการค์นหาวงรอบที่��ไมู�มู� วงรอบที่��ไมู�มู� Tex Tex ใน ใน wait-for graph wait-for graph ที่��ไดีสรางใหมู� ถืามู�ที่��ไดีสรางใหมู� ถืามู�อย์�างนอย์หน3�งวงรอบ ก(หมูาย์ค์วามูว�ามู�การล@อกต่าย์อย์�างนอย์หน3�งวงรอบ ก(หมูาย์ค์วามูว�ามู�การล@อกต่าย์เก�ดีข้3$น และจะที่&าการย์กเล�กที่รานแซกชื่#นต่ามูค์วามูเก�ดีข้3$น และจะที่&าการย์กเล�กที่รานแซกชื่#นต่ามูค์วามูเหมูาะสมู ถืาพิบว�าวงรอบที่��เก�ดีข้3$นมู� เหมูาะสมู ถืาพิบว�าวงรอบที่��เก�ดีข้3$นมู� Tex Tex อย์��ดีวย์ อย์��ดีวย์ Sj Sj จะจะส�งส#ญญาณ ส�งส#ญญาณ deadlock detection deadlock detection ไปย์#งไซต่�ที่��เหมูาะสมู ไปย์#งไซต่�ที่��เหมูาะสมู Sk Sk ที่��ไซต่� ที่��ไซต่� Sk Sk ก(จะที่&าการต่รวจสอบการล@อกต่าย์เหมู!อนก(จะที่&าการต่รวจสอบการล@อกต่าย์เหมู!อนก#บที่��ไดีที่&าก�อนหนาน�$ เพิ!�อใหเก�ดีค์วามูชื่#ดีเจนมูากย์��งข้3$น ก#บที่��ไดีที่&าก�อนหนาน�$ เพิ!�อใหเก�ดีค์วามูชื่#ดีเจนมูากย์��งข้3$น พิ�จารณา พิ�จารณา wait-for graph wait-for graph ในร�ปที่�� ในร�ปที่�� 13.11 13.11 ในไซต่� ในไซต่� S1S1

Page 95: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

Tex à T2 à T3 à TexTex à T2 à T3 à Tex

เน!�องจาก เน!�องจาก T3 T3 ก&าล#งค์อย์ที่��จะเข้าใชื่ข้อมู�ลในก&าล#งค์อย์ที่��จะเข้าใชื่ข้อมู�ลในไซต่� ไซต่� S2 S2 ไซต่� ไซต่� S1 S1 ก(จะส�งส#ญญาณ ก(จะส�งส#ญญาณ deadlock deadlock detection detection และข้อมู�ลการเก�ดีวงรอบที่��เก�ดีข้3$นไปใหและข้อมู�ลการเก�ดีวงรอบที่��เก�ดีข้3$นไปใหไซต่� ไซต่� S2 S2 เมู!�อไซต่� เมู!�อไซต่� S2 S2 ไดีร#บส#ญญาณ ก(จะที่&าการไดีร#บส#ญญาณ ก(จะที่&าการปร#บปร+ง ปร#บปร+ง local wait-for graph local wait-for graph ข้องต่นเอง จะไดี ข้องต่นเอง จะไดี wait-for graph wait-for graph ดี#งร�ปที่�� ดี#งร�ปที่�� 13.1213.12

T2 à T3 à T4 à T2T2 à T3 à T4 à T2

ซ3�งไมู�รวมูโหนดี ซ3�งไมู�รวมูโหนดี Tex Tex ดี#งน#$นระบบจะอย์��ในดี#งน#$นระบบจะอย์��ในสถืานะล@อกต่าย์ ระบบก(จะที่&าการย์กเล�กที่รานแซสถืานะล@อกต่าย์ ระบบก(จะที่&าการย์กเล�กที่รานแซกชื่#นต่ามูค์วามูเหมูาะสมูกชื่#นต่ามูค์วามูเหมูาะสมู

Page 96: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ร�ปัท�� 13.12 แสดีง local wait-for graph

Page 97: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

ในที่&านองเดี�ย์วก#นถืาไซต่� ในที่&านองเดี�ย์วก#นถืาไซต่� S2 S2 พิบว�ามู�วงรอบพิบว�ามู�วงรอบเก�ดีข้3$นใน เก�ดีข้3$นใน local wait-for graph local wait-for graph และที่&าการส�งและที่&าการส�งส#ญญาณ ส#ญญาณ deadlock detection deadlock detection ไปใหไซต่� ไปใหไซต่� S1 S1 และและในกรณ�ที่��แย์�ที่��ส+ดี ที่#$งสองไซต่�ต่รวจพิบว�ามู�วงรอบในกรณ�ที่��แย์�ที่��ส+ดี ที่#$งสองไซต่�ต่รวจพิบว�ามู�วงรอบพิรอมูๆ ก#น และที่&าการส�งส#ญญาณ พิรอมูๆ ก#น และที่&าการส�งส#ญญาณ deadlock deadlock detection detection พิรอมู ๆ ก#น ที่&าใหมู�การส�งส#ญญาณที่��พิรอมู ๆ ก#น ที่&าใหมู�การส�งส#ญญาณที่��ไมู�จ&าเป)นและข้อมู�ลที่��ใชื่ในการปร#บปร+ง ไมู�จ&าเป)นและข้อมู�ลที่��ใชื่ในการปร#บปร+ง local wait-local wait-for graph for graph ที่#$งสองไซต่� และที่&าการค์นหาวงรอบในที่#$งสองไซต่� และที่&าการค์นหาวงรอบในที่#$งสองไซต่�ที่#$งสองไซต่�

Page 98: บทที่ 13 ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)

เพิ!�อลดีการส�งส#ญญาณในระบบ เราจะเพิ!�อลดีการส�งส#ญญาณในระบบ เราจะก&าหนดีค์�า ก&าหนดีค์�า unique identifier unique identifier ใหแต่�ละที่รานแซกชื่#น ใหแต่�ละที่รานแซกชื่#น Ti Ti แที่นดีวย์ แที่นดีวย์ ID (Ti) ID (Ti) เมู!�อไซต่� เมู!�อไซต่� Sk Sk พิบว�า พิบว�า local wait-local wait-for graph for graph เก�ดีวงรอบที่��มู�โหนดี เก�ดีวงรอบที่��มู�โหนดี Tex Tex ในร�ปแบบในร�ปแบบTex à Tk1 à Tk2 à … à Tkn à TexTex à Tk1 à Tk2 à … à Tkn à Tex

ไซต่� ไซต่� Sk Sk จะส�งส#ญญาณ จะส�งส#ญญาณ deadlock detection deadlock detection ไปใหไซต่�อ!�น ก(ต่�อเมู!�อไปใหไซต่�อ!�น ก(ต่�อเมู!�อID (Tkn) < ID (Tk1)ID (Tkn) < ID (Tk1)

นอกน#$นไซต่� นอกน#$นไซต่� Sk Sk ไมู�ต่องที่&าอะไรปล�อย์ใหเป)นไมู�ต่องที่&าอะไรปล�อย์ใหเป)นหนาที่��ข้องไซต่�อ!�นที่&าการต่รวจสอบการล@อกต่าย์ต่�อหนาที่��ข้องไซต่�อ!�นที่&าการต่รวจสอบการล@อกต่าย์ต่�อไปไป