วันอังคารที่ 13 กันยายน พ.ศ. 2554

บทความที่7

บทความที่7
ระบบฐานข้อมูลแบบกระจาย
                ในบทที่ผ่านมาทั้งหมดยกเว้นบทเรียนนี้ คุณได้เรียนรู้เกี่ยวกับระบบฐานข้อมูลแบบรวมศูนย์ (Centralized Database System)เป็นหลัก กล่าวคือเป็นการกล่าวถึงลักษณะของการจัดเก็บข้อมูล สถานที่เก็บข้อมูล โปรแกรมระบบบริหารฐานข้อมูล การรักษาความปลอดภัย การฟื้นสภาพ และการควบคุมภาวะพร้อมกัน ของระบบฐานข้อมูลที่อยู่ในระบบฮาร์ดแวร์เดียวกัน ทว่าปัจจุบัน เทคโนโลยีสารสนเทศก้าวหน้ามากขึ้น ความสามารถของคอมพิวเตอร์สูงขึ้นในราคาเท่าเดิมหรือถูกกว่าเดิม ประกอบกับความแพร่หลายของคอมพิวเตอร์ รวมทั้งเทคโนโลยีการสื่อสารและเครือข่ายคอมพิวเตอร์ที่ก้าวหน้าและแพร่หลายในแทบทุกองค์การ ทำให้การเรียกใช้ฐานข้อมูลจากหลาย ๆ ที่ตั้ง ไม่ใช่เรื่องที่ยากเย็นอีกต่อไปเพียงแต่มีการวางสายสื่อสาร (Communication Line) โดยตรงระหว่างเครื่อง หรือเชื่อมต่อกับสายสื่อสารความเร็วสูง เช่น ใยแก้วนำแสง (Fiber Optics) ภายในองค์การเอง หรืออาศัยสายสื่อสารสาธารณะอย่างของ ทศท คอร์ปอเรชั่น หรือการสื่อสารแห่งประเทศไทย คือ สายโทรศัพท์ หรือสายเช่า (Leased Line) ก็สามารถทำได้ กลวิธีอีกประการหนึ่งที่เป็นทางเลือกที่มีบทบาทมากขึ้นในยุคที่องค์การต่าง ๆ ต้องการกระจายอำนาจและความผิดชอบไปยังหน่วยงานย่อย โดยเฉพาะกระจายภาระความรับผิดชอบในการดูแลรักษาระบบฐานข้อมูล ก็คือ ระบบฐานข้อมูลแบบกระจาย (Distributed Database System)
ความหมายและแนวคิดเบื้องต้น
                เราอาจได้คำจำกัดความของ ฐานข้อมูลแบบกระจาย ( A Distributed Database)   ได้ว่าเป็นกลุ่มของฐานข้อมูลหลายตัวที่เกี่ยวข้องสัมพันธ์กันทางตรรกะซึ่งกระจายอยู่บนข่ายงานคอมพิวเตอร์ (Ozsu and Valduricy, 1991, p .4: “We can define a distributed database as a collection of multiple, logically interrelated databases distributed over a computer network.”)
                ส่วนระบบบริหารฐานข้อมูลแบบกระจาย  (Distributed Database Management System)   หมายถึง ระบบซอฟต์แวร์ที่ยอมให้มีการจัดการฐานข้อมูลแบบกระจายได้ และทำให้ผู้ใช้มองไม่เห็นการกระจายนั้น (  Ozsu and Valduricy, 1991 , p5 : A distributed database management system is then defined as the software system that permits the management of the DDBS and makes the distribution transparent to the users.”)
ระบบฐานข้อมูลแบบกระจาย เป็นระบบที่ประกอบด้วยกลุ่มของที่ตั้ง เชื่อมโยงกันโดยเครือข่ายการสื่อสารซึ่ง
ก.       ที่ตั้งแต่ละแห่งมีระบบฐานข้อมูลที่สมบูรณ์แบบในตัวเอง
ข.       ที่ตั้งเหล่านั้นยินยอมที่จะทำงานร่วมกันเพื่อให้ผู้ใช้ที่อยู่ ณ ที่ตั้งใด สามารถเข้าถึงข้อมูลซึ่งอยู่ ณ ที่ใดก็ได้ในเครือข่าย โดยราวกับว่าข้อมูลดังกล่าวทั้งหมดถูกเก็บไว้ ณ ที่ตั้งของผู้ใช้เอง (C.J.Date,2000,p.651)
 (A distributed database system consists of a collection of
sites , connected together via some kind of communications network , in which
a. Each site is a full database system site in its own right , but
b. The sites have agreed to work together so that a user at any site can access data anywhere in the network exactly as if the data were all stored at the user’s own site.)
จากคำจำกัดความข้างต้นทำให้ตีความได้ว่า ฐานข้อมูลแบบกระจายนั้นที่จริงแล้วเป็นฐานข้อมูลเสมือน (Virtual Database) อย่างหนึ่งซึ่งส่วนประกอบต่าง ๆ ของฐานข้อมูลนั้นถูกเก็บแยกไว้ในฐานข้อมูลจริงทางกายภาพ ณ ที่ตั้งต่าง ๆ กัน ดังนั้นฐานข้อมูลแบกระจายจึงเป็นการรวมของฐานข้อมูลจริงหลายตัวเข้าด้วยกัน (The Logical Union of Those Real Databases)
สังเกตข้อความที่ระบุว่าที่ตั้งแต่ละแห่งมีระบบฐานข้อมูลที่สมบูรณ์แบบในตัวเองนั้น  หมายความว่า แต่ละที่ตั้งมีฐานข้อมูลจริงเฉพาะที่ของตน มีผู้ใช้เฉพาะที่ของตน มีโปรแกรมระบบบริหารฐานข้อมูลเฉพาะที่ของตน และมีซอฟต์แวร์จัดการธุรกรรมของตนเอง (ซึ่งรวมทั้งต้องมีซอฟต์แวร์ที่ทำหน้าที่เกี่ยวกับการล็อก  การบันทึกปูม  การฟื้นสภาพ และอื่น ๆ ) รวมทั้งมีตัวจัดการสื่อสารข้อมูลเฉพาะที่ (Local Data Communcations Manager) ของตนเองด้วย  โดยเฉพาะอย่างยิ่งจะมีลักษณะการทำงานที่ผู้ใช้คนหนึ่งสามารถปฏิบัติการบนข้อมูล ณ ที่ตั้งของผู้ใช้เองได้ราวกับว่าที่ตั้งนั้นไม่ได้ร่วมอยู่ในระบบกระจายเลยดังนั้นระบบฐานข้อมูลแบบกระจายจึงอาจมองได้ว่าเป็นเหมือน หุ้นส่วน ระหว่างระบบบริหารฐานข้อมูลเฉพาะที่แต่ละที่ ณ ที่ตั้งของแต่ละตัวมารวมกัน ส่วนประกอบด้วยซอฟต์แวร์ใหม่ที่ต้องเพิ่มเข้ามาสำหรับแต่ละที่ตั้งจะเป็นตัวช่วยทำหน้าที่หุ้นส่วนที่จำเป็นแก่กันและกัน และการประสมประสานของส่วนประกอบใหม่นี้รวมกับระบบบริหารฐานข้อมูลเดิมที่มีอยู่แล้ว คือสิ่งที่เราเรียก ระบบบริหารฐานข้อมูลแบบกระจาย (Distributed Database Management System)
                ตามปกติที่ตั้งต่าง ๆ ที่มาประกอบกันนั้นมักจะอยู่คนละแห่งกระจัดกระจายกันไปอย่างในภาพ จะเห็นว่ามีที่ตั้งกรุงเทพฯ เชียง ขอนแก่น และระยอง เป็นต้น คือเป็นการกระจายทางภูมิศาสตร์ แต่ในบางกรณีเรายอมรับได้เช่นกันว่าที่ตั้งนั้นอาจกระจายกันอยู่ในเชิงตรรกก็อาจเป็นได้ เช่น ที่ตั้งฐานข้อมูล 2 แห่งอาจอยู่ในเครื่องคอมพิวเตอร์ตัวเดียวกันก็ได้ บางทีอาจเป็นการกระจายในเครือข่ายเฉพาะที่ (Local Area Network) กล่าวคือ ที่ตั้งฐานข้อมูล 2 แห่ง อาจอยู่ในอาคารเดียวกันและเชื่อมโยงกันด้วยระบบเครือข่ายเฉพาะที่ เป็นต้น แต่รูปแบบการกระจายที่ตั้งในลักษณะที่เป็นเครือข่ายบริเวณกว้าง (Wide Area Network) จะเป็นรูปแบบทั่วไปที่พึงประสงค์มากกว่าและใช้กันในความหมายของระบบฐานข้อมูลแบบกระจายที่เรากำลังกล่าวถึงอยู่นี้ นอกจากนั้นเพื่อความสะดวกและง่ายต่อการอธิบายทำความเข้าใจ เราจะถือว่าระบบฐานข้อมูลแบบกระจายที่เรากล่าวถึงนี้เป็นระบบเหมือนกัน(Homogeneous System) กล่าวคือ ที่ตั้งแต่ละแห่งมีการใช้โปรแกรมระบบบริหารฐานข้อมูลเดียวกัน และมีระบบฮาร์ดแวร์เหมือนกัน เป็นต้น ซึ่งถ้าที่ตั้งแต่ละแห่งมีการใช้โปรแกรมระบบฯ ต่างกัน และมีระบบฮาร์ดแวร์ต่างกัน จะเรียกว่าเป็นระบบหลากหลาย (Heterogeneous System) ซึ่งก็จะมีความยากลำบากในการดูแลและบำรุงรักษาสูงกว่า
วัตถุประสงค์ของฐานข้อมูลแบบกระจาย
                หลักการพื้นฐานของฐานข้อมูลแบบกระจาย (The Fundamental Principle of Distributed Database) ได้ระบุไว้ว่า สำหรับผู้ใช้นั้น ระบบกระจายควรจะให้เขามองเห็นเหมือนกันระบบที่ไม่ได้กระจาย” (C.J. Date , 2000 , p.654) กล่าวอีกอย่างหนึ่งก็คือ ผู้ใช้ฐานข้อมูลในระบบกระจาย ควรจะสามารถกระทำสิ่งต่าง ๆ ได้เหมือนกับว่าระบบที่ใช้อยู่นั้นไม่ใช้ระบบกระจาย โดยเฉพาะอย่างยิ่งการกระทำที่เป็นการจัดกระทำข้อมูล (Data Manipulation Operation) เช่น ใช้คำสั่งภาษาสอบถามเชิงโครงสร้างเพื่อสืบค้นข้อมูล เป็นต้น ซึ่งการกระทำดังกล่าวควรจะให้ผู้ใช้รู้สึกว่าไม่แตกต่างจากระบบฐานข้อมูลแบบรวมศูนย์  แต่สำหรับการกระทำเพื่อนิยามข้อมูล(Data Definition Operation) เช่น ใช้คำสั่งภาษาสอบถามเชิงโครงสร้างเพื่อกำหนดรีเลชั่นและแอตทริบิวต์ต่าง ๆ นั้น จะต้องมีการเพิ่มเติมบางสิ่งบางอย่างเข้ามาสำหรับระบบกระจาย เช่น การแบ่งเรลวาร์ให้เป็นส่วนย่อม (Fragments) เก็บไว้ ณ ที่ตั้งสองที่ตั้ง เป็นต้น
                จากหลักการพื้นฐานดังกล่าวข้างต้นจึงนำไปสู่กฎเกณฑ์ย่อย (Subsidiary Rules)  หรือ วัตถุประสงค์ 12 ประการ (C.J. Date,2000,p.655) ดังนี้
1. ความเป็นอิสระเฉพาะที่ (Local Autonomy) หมายความว่า ที่ตั้งฐานข้อมูลแห่
หนึ่งในระบบกระจาย เป็นที่ตั้งที่มีข้อมูลเฉพาะที่ของตนและบริหารจัดการข้อมูลนั้นด้วยตนเอง  แม้ว่าผู้ใช้ที่อยู่ ณ ที่ตั้งอื่น ๆ จะขอดูได้ ก็จะต้องอยู่ภายใต้การดูแลเรื่องความปลอดภัย ความถูกต้องของข้อมูล และการจัดเก็บของที่ตั้งเฉพาะที่นั้น
                2. ต้องไม่มีที่ตั้งใดทำหน้าที่เป็นศูนย์กลาง (No Reliance on a Central Site)  กล่าวคือ ไม่มีที่ตั้งแห่งใดแห่งหนึ่งที่ทำหน้าที่เป็นนายหรือบ่าว ที่ตั้งฐานข้อมูลแต่ละแห่งจะได้รับการปฏิบัติด้วยเสมอภาคกัน
                3. การปฏิบัติงานอย่างต่อเนื่องไม่หยุดชะงัก (Continuous Operation) การที่มีที่ตั้งฐานข้อมูลหลายแห่งจะช่วยให้มีความน่าเชื่อถือและการเตรียมให้บริการ (Reliability and Availability) ที่สูงขึ้น เช่น ความเป็นไปได้ที่ระบบจะถูกเปิดขึ้นมาทำงานได้ทุกเมื่อ และความเป็นไปได้ที่ระบบจะทำงานอยู่ตลอดเวลาในช่วงที่ให้บริการ
                4. ความเป็นอิสระจากที่ตั้ง หรือการมองผ่านสถานที่ตั้ง (Location Independence or Location Transparency) ผู้ใช้ไม่ควรจะรับรู้ว่าข้อมูลจริงทางกายภาพถูกจัดเก็บไว้ ณ ที่ตั้งใด แต่ผู้ใช้ควรจะสามารถกระทำการใด ๆ ได้เหมือนกับว่าข้อมูลนั้นถูกเก็บไว้ ณ ที่ตั้งของตนนั้น
                5. ความเป็นอิสระจากการแบ่งเป็นชิ้นส่วนย่อย หรือการมองผ่านชิ้นส่วนย่อย (Fragmentation Independence or Fragmentation Transparency) ในระบบกระจาย ข้อมูลอาจถูกแบ่งเป็นชิ้นส่วนย่อยหลายชิ้นเก็บไว้ ณ ที่ตั้งคนละแห่งกันหรือที่ตั้งเดียวกันแต่ละเครื่อง เพื่อประโยชน์ในการลดความแออัดในการสัญจรสื่อสารข้อมูลโดยอาจแบ่งข้อมูลในรีเลชั่นออกได้เป็น 2 แบบ คือ ชิ้นส่วนย่อยแนวนอน (Horizontal Fragmentation) และชิ้นส่วนแนวตั้ง (Vertical Fragmentation) ซึ่งสอดคล้องกับการทำ Restriction   และ Projection  จุดสำคัญ คือผู้ใช้ไม่ควรจะรับรู้ว่าข้อมูลจริงทางกายภาพถูกแบ่งชิ้นส่วนไว้กี่ชิ้น ณ ที่ใดบ้าง แต่ผู้ใช้ควรจะสามารถกระทำการใด ๆ ได้เหมือนกับว่าข้อมูลนั้นถูกเก็บไว้เป็นก้อนเดียวกันเท่านั้น
                6.ความเป็นอิสระจากการเก็บซ้ำชุดข้อมูล หรือ การมองผ่านการเก็บชุดข้อมูลซ้ำ ( Replication Independence or Replication Transparency) ในการเก็บชุดข้อมูลซ้ำไว้ ณ ที่ตั้งหลายแห่ง มีเหตุผลอย่างน้อยสองประการ คือ ประการแรกต้องการเพิ่มประสิทธิภาพ หรือ Performance โดยโปรแกรมสามารถทำงานกับสำเนาข้อมูลที่ถูกเก็บอยู่ ณ ที่ตั้งของตน หรือที่ตั้งที่อยู่ใกล้ที่สุดดีกว่าที่จะต้องทำการติดต่อไปยังที่ตั้ง ณ ที่ห่างไกล ประการที่สองการเก็บข้อมูลซ้ำทำให้การเตรียมให้บริการที่ดีกว่า แต่อย่างไรก็ตามข้อเสียเปรียบของการเก็บชุดข้อมูลซ้ำก็คือในกรณีที่มีการปรับปรุงข้อมูลกับสำเนาชุดใดชุดหนึ่งสำเนาอื่น ๆ ทุกชุดที่เหลือจะต้องทำการปรับปรุงด้วย ซึ่งเป็นปัญหาการปรับปรุงข้อมูลตามกัน(The Update Propagation Problem) ซึ่งจะกล่าวถึงต่อไป ในทำนองเดียวกันกับชิ้นส่วนย่อยของข้อมูล ผู้ใช้ไม่ควรจะรับรู้ว่าข้อมูลจริงทางกายภาพถูกเก็บซ้อนไว้กี่ชุด ณ ที่ใดบ้าง แต่ผู้ใช้ควรสามารถกระทำการใด ๆ ได้เหมือนกับว่าข้อมูลนั้นมีเก็บไว้เพียงชุดเดียวเท่านั้น
                7. การประมวลผลสอบถามแบบกระจาย ( Distributed Query Processing) มีลักษณะสองประการคือ ประการแรกการสอบถามข้อมูลที่ไม่มีอยู่ ณ ที่ตั้งของตนจะต้องสามารถทำได้และประหยัดค่าใช้จ่ายและเวลาในการสื่อสารมากกว่าระบบการรับส่งข้อมูลปรกติซึ่งเป็นแบบครั้งละระเบียน (A Record – at – a – time System)  เช่น ถ้าใช้ซึ่งอยู่ในกรุงเทพ ฯ ต้องการสอบถามรายชื่อผู้จัดส่งที่อยู่ในเชียงใหม่เฉพาะผู้ส่งชิ้นส่วนสีแดง โดยที่ข้อมูลดังกล่าวมีเก็บไว้เฉพาะที่เชียงใหม่เท่านั้น จะมีการส่งข้อความเพียงสองครั้งเท่านั้น กล่าวคือ ครั้งแรกส่งข้อความสอบถามจากกรุงเทพฯ ซึ่งเป็นลักษณะการทำงานของระบบฐานข้อมูลเชิงสัมพันธ์ แต่ถ้าเป็นการทำงานในระบบครั้งละระเบียนโดยทั่วไปแล้วจะต้องมีการส่งข้อความถึง 2n ครั้ง ระหว่างกรุงเทพฯ และเชียงใหม่ เพราะจะส่งได้ทีละ 1 รายชื่อในระเบียน แล้วต้องร้องขอรายชื่อถัดไปทุกครั้ง ประการที่สอง การปรับคำสั่งให้มีประสิทธิภาพที่สุด (Optimization) ในระบบกระจายมีความสำคัญมากกว่าในระบบรวมศูนย์ เพราะคำสั่งสอบถามข้อมูลในระบบกระจายจะเกี่ยวข้องกับที่ตั้งฐานข้อมูลหลายแห่ง และมักจะมีวิธีการในการเคลื่อนย้ายข้อมูลจากฐานข้อมูลต่าง ๆ ไปมาหาสู่กันได้หลากหลายวิธีซึ่งถ้าใช้คำสั่งที่ไม่มีประสิทธิภาพอาจทำให้การสืบค้นข้อมูลล่าช้ามาก ลักษณะนี้ทำให้ระบบฐานข้อมูลแบบกระจายส่วนใหญ่จะหันมาใช้ระบบฐานข้อมูลเชิงสัมพันธ์ เพราะคำสั่งจะถูกปรับให้มีประสิทธิภาพที่สุดเสียก่อนโดยส่วนประกอบของระบบที่ชื่อว่า Optimizer ก่อนที่ระบบจะตามคำสั่งนั้น
                8 การจัดการธุรกรรมแบบกระจาย (Distributed Transaction Management) เราได้ทรายแล้วว่าลักษณะสำคัญสองอย่างที่เกี่ยวข้องกับการจัดการธุรกรรม คือ การควบคุมการฟื้นสภาพ และการควบคุมภาวะพร้อมกัน ซึ่งในระบบฐานข้อมูลแบบกระจายจะต้องมีการเพิ่มความสามารถในการควบคุมสองอย่างนี้ กล่าวคือธุรกรรมแต่ละตัวจะต้องมีตัวแทน (Agents กระบวนการที่ทำงานให้แก่ธุรกรรมหนึ่งโดยเป็นตัวแทนอยู่ตามที่ตั้งต่าง ๆ ) หลายตัวคอยช่วย ณ ที่ตั้งต่าง ๆ ที่กำหนดไว้ และระบบจะต้องทราบว่าตัวแทนใดบ้างมาจากธุรกรรมตัวเดียวกันเพื่อจะไม่ให้ตัวแทนสองตัวที่มาจากธุรกรรมเดียวกันแบ่งทรัพยากรและก่อให้เกิดวงจรอับในระบบขึ้นมา ในการควบคุมภาวะพร้อมกันของระบบกระจาย จะต้องมีการใช้การล็อก (Locking) เช่นกันกับระบบรวมศูนย์ และในการควบคุมการฟื้นสภาพของระบบกระจายต้องมั่นใจว่าธุรกรรมนั้นมีความเป็นหนึ่งเดียว (Atomic) โดยระบบต้องตรวจสอบได้ว่าตัวแทนทุกตัวของธุรกรรมที่ทำงานเสร็จแล้วมีการสั่งกระทำ(Commit) เหมือนกันทั้งหมด หรือ ย้อนกลับ (Rollback) เหมือนกันทั้งหมด ซึ่งจะทำได้ต้องมีการใช้ข้อตกลงกระทำสองระยะ

9.   ความเป็นอิสระจากฮาร์ดแวร์ (Hardware  Independence) หมายความว่าเครื่องคอมพิวเตอร์ที่นำมาใช้ในระบบฐานข้อมูลแบบกระจาย แม้ว่าจะต่างยี่ห้อต่างชนิดกันไปในแต่ละที่ตั้งหรือแต่ละแห่งก็ตาม จะต้องสามารถใช้ระบบบริหารฐานข้อมูลตัวเดียวกันได้ และต้องทำให้เครื่องคอมพิวเตอร์ที่แตกต่างกันเหล่านั้นมาร่วมอยู่ในระบบกระจายในฐานที่เท่าเทียมกันได้ด้วย
10.   ความเป็นอิสระจากระบบปฏิบัติการ (Operating System Independence)หมายความ
ว่าถ้าเครื่องคอมพิวเตอร์ของที่ตั้งฐานข้อมูล 3 แห่งในระบบฐานข้อมูลแบบกระจายมรการใช้ระบบปฏิบัติการแตกต่างกัน เช่น ที่ตั้งแห่งแรกใช้ Linux ที่ตั้งแห่งที่สองใช้ UNIX และที่ตั้งแห่งที่สามใช้ Windows 2002 ทั้งสามแห่งจะต้องสามารถใช้ระบบฐานข้อมูลแบบกระจายร่วมกันได้เป็นต้น
                11. ความเป็นอิสระจากเครื่องข่าย  (Network Independence) ถ้าที่ตั้งฐานข้อมูลแต่ละแห่งระบบฐานข้อมูลแบบกระจายมีลักษณะเครื่องข่าไม่เหมือนกัน ความแตกต่างนั้นต้องไม่เป็นอุปสรรค์ในการทำงานร่วมกัน
                12.  ความเป็นอิสระจากระบบบริหารฐานข้อมูล (DEMS  Independence)  สิ่งที่ต้องการตามวัตถุประสงค้อนี้ก็คือ โปรแกรมระบบบริหารฐานข้อมูลที่ติดตั้งบนเครื่องคอมพิวเตอร์ของที่ตั้งฐานข้อมูล ณ ที่ต่าง ๆ แม้ว่าเป็นโปรแกรมคนละยี่ห้อกัน เช่น ที่ตั้งแห่งแรกใช้ Ingres ส่วนที่ตั้งแห่งที่สองใช้ Oracle กล่าวคือแม้ว่าระบบฐานข้อมูลแบบกระจายจะเป็นระบบหลากหลาย(Heterogeneous System) แต่จะต้อสามารถติดต่อสื่อสารและทำงานร่วมกันได้

ประโยชน์ของฐานข้อมูลแบบกระจาย
                เหตุใดฐานข้อมูลแบบกระจายจึงเป็นที่พึงประสงค์มากกว่า?  คำตอบก็คือเนื่องจากกิจการทั้งหลายมักจะเป็นแบบกระจายอยู่แล้ว คือแบ่งออกเป็นฝ่าย, แผนก,  กลุ่มงาน  ฯลฯ ทั้งในลักษณะทางตรรก และทางกายภาพ  นอกจากนั้นข้อมูลก็ได้ถูกกระจายแบ่งปันกันรับผิดชอบไปตามหน่วยงานย่อยต่าง ๆ อยู่แล้วดังนั้นสินทรัพย์สารสนเทศทั้งปวงขององค์การจึงถูกหั่นซอยออกไปอยู่ในลักษณะที่เรียกว่า หมู่เกาะแห่งสารสนเทศ (islands of information) และระบบกระจายเป็นตัวช่วยสร้างสะพานเชื่อมโยงภาวะแก่งเห่านั้นเข้าด้วยกัน  กล่าวอีกอย่างหนึ่งก็คือมันช่วยทำให้มีโครงสร้างระบบฐานข้อมูลที่เป็นกระจกเงาสะท้อนโครงสร้างขององค์การอย่างแท้จริง นั่นคือข้อมูลเฉพาะที่สามารถเก็บไว้เฉพาะที่นั้นซึ่งเป็นที่ที่มันสมควรจะอยู่  ขณะเดียวกันข้อมูลที่อยู่ไกลออกไปก็มารถจะเข้าถึงได้เมื่อจำเป็นหรือเมื่อต้องการที่จะทราบ
                การที่ทำให้โครงสร้างของฐานข้อมูลเป็นกระจกสะท้อนภาพโครงสร้างขององค์การได้นั้นจัดเป็นประโยชน์ข้อสำคัญองระบบกระจาย นอกจากนั้นยังมีประโยชน์ปลีก ย่อยอื่น  ๆ มากมายซึ่งจะกล่าวในภายหลัง  อย่างไรก็ตามเราจำเป็นจะต้องยอมรับว่าระบบกระจายนั้นมีข้อด้อยหรือข้อเสียเปรียบอยู่เช่นเดียวกันกล่าวคือ ข้อเสียเปรียบสำคัญองระบบกระจายคือมีความซับซ้อน อย่างน้อยที่สุดคือในด้านเทคนิค แม้ว่าปัญหานี้จะเป็นของผู้วางระบบ ไม่น่าจะเกี่ยวกับผู้ใช้ แต่ทว่าในทางปฏิบัติแล้วลักษณะความซับซ้อนดังกล่าวมักจะโผล่ออกมาให้ผู้ใช้เห็นอยู่เสมอ  เว้นแต่ว่าจะมีการป้องกันไว้เป็นอย่างดีเยี่ยมแล้วเท่านั้น
                เราอาจสรุปประโยชน์องระบบฐานข้อมูลแบบกระจายเป็นข้อ ๆ ดังต่อไปนี้ ( ตามที่เสนอโดย wzsu and valduricy 1991 p 8-10)
1.  มีความเป็นอิสระเฉพาะที่ ( Local Autonomy) ซึ่งตรงกับวัตถุประสงค์ในหัวเรื่องที่ผ่านมาเนื่องจากข้อมูลที่ผู้ใช้กลุ่มหนึ่งมักต้องใช้เสมอถูกนำมาไว้ ณ ที่ตั้งที่พวกเขาทำงานอยู่และทำให้พวกเขาสามารถควบคุมได้ในที่ตั้ง นอกจากนั้นยังสามารถกำหนดและผลักดันการใช้ข้อมูลให้พวกเขาสามารถควบคุมได้ในที่ตั้ง นอกจากนั้นยังสามารถกำหนดและผลักดันการใช้ข้อมูลให้เป็นไปตามนโยบายของที่ตั้ง การทำได้เช่นกล่าวมานี้ย่อมเป็นประโยชน์ต่อการทำงานแน่นอน ยังมีงานวิจัยโดย D Oliviera (อ้างจาก  Ozsu and Valduricy 1991 เมื่อปี 1977 ซึ่งระบุว่า เหตุผลสำคัญที่องค์การธุรกิจหลายแห่งหันมาพิจารณาการใช้ระบบสารสนเทศแบบกระจาย ก็เพราะความสามารถที่จะแบ่งอำนาจหน้าที่และความรับผิดชอบในด้านการบริหารสารสนเทศให้กระจายไปตามหน่วยงานต่าง ๆ ได้นั่นเอง ซึ่งแนวคิดนี้อาจถือเป็นการพัฒนาเชิงสังคมวิทยาในด้านการใช้คอมพิวเตอร์ที่สำคัญในยุคปัจจุบัน
                2.  ประสิทธิภาพที่ดีขึ้น (Improved Performance) เนื่องจากแน่ละที่ตั้งของฐานข้อมูล ดูแลรับผิดชอบเฉพาะส่วนของฐานข้อมูลทั้งหมดขององค์การเท่านั้น ทำให้ความหนาแน่นของงานทีหน่วยประมวลผลกลางต้องทำ และบริการเกี่ยวกับการนำข้อมูลเข้าและส่งข้อมูลออก ไม่หนักหนาเท่ากับระบบรวมศูนย์ นอกจากนั้นธุรกรรมที่ทำการสืบค้นข้อมูลอาจกระทำกับข้อมูล ณ ที่ตั้งอื่น ๆ ได้หลายที่ จึงทำให้มีความเป็นไปได้ที่จะเกิดการเอ็กซีคิวธุรกรรมแบบขนาน
                3.  ความเชื่อถือได้และความพร้อมบริการที่ดีขึ้น  ถ้าข้อมูลมีการทำสำเนาซ้ำเก็บไว้มากกว่าหนึ่งที่ตั้ง ในกรณีที่เกิดความขัดข้อง ณ ที่ตั้งหนึ่ง หรือสัญญาณสื่อสารใช้ไม่ได้ ย่อมมีทางอื่นที่จะเรียกค้นข้อมูลของที่ตั้งนั้นขึ้นมาได้ นอกจากนั้นความขัดข้องดังกล่าวย่อมไม่สามารถทำให้ระบบฐานข้อมูลทั้งระบบหยุดการทำงานไป
                4.  ความประหยัด  (economics) เราอาจมองความประหยัดได้ในสองมุมมอง มุมแรกคือประหยัดค่าใช้จ่ายในการสื่อสาร (communication costs ) ถ้าฐานข้อมูลอยู่กระจายตามพื้นที่ถูมิศาสตร์และโปรแกรมประยุกต์ที่ทำงานด้วยนั้นมีปฎิสัมพันธ์กับข้อมูลท้องที่นั้นตั้งอยู่)  จะเป็นการประหยัดกว่าถ้าเราจะแบ่งเอาโปรแกรมดังกล่าวมาประมวลผลเฉพาะแต่ละที่ตั้ง  มุมที่สองคือ ประหยัดค่าใช้จ่ายในการซื้อเครื่องคอมพิวเตอร์ขนาดเล็กหลาย ๆ เครื่อง ซึ่งสามารถทำงานได้เท่ากับเครื่องคอมพิวเตอร์ขนาดใหญ่เครื่องเดียว(เครื่องมินิคอมพิวเตอร์ 1 เครื่องโดยทั่งไปจะมีราคาแพงกว่าเครื่องไมโครคอมพิวเตอร์ถึง 10 เท่า)
                5.  ความสามารถที่จะขยายระบบ  (expandability) ในสภาพแวดล้อมแบบกระจายการขยายขนาดฐานข้อมูลจะทำได้ง่ายกว่า เพราะแทบไม่จำเป็นต้องมีการยกเครื่องขนาดใหญ่แต่อย่างใด เพียงแต่เพิ่มหน่วยประมวลผลและสื่อเก็บข้อมูลเข้าไปในเครือข่าย หรืออาจเพิ่มเครื่องคอมพิวเตอร์ขนาดเล็กเพียงเครื่องเดียวเข้าไปในเครือข่ายก็สามารถขยายระบบได้
                6.  ความสามารถในการแบ่งปัน (shareability) ในองค์การที่มีสาขากระจายกันไปตามเมืองจังหวัด หรือรัฐต่าง ๆ การที่จะแบ่งปันทรัพยากร และข้อมูลได้นั้นย่อมต้องอาศัยระบบกระจาย ซึ่งจะทำได้การแบ่งปันนั้นยืดหยุ่นมากกว่าระบบรวมศูนย์
ปัญหาและข้อเสียเปรียบของระบบฐานข้อมูลแบบกระจาย
     ปัญหาของระบบฐานข้อมูลแบบกระจาย
                วัตถุประสงค์และแนวคิดของระบบฐานข้อมูลแบบกระจายที่ได้อธิบายมานั้นทำให้สรุปได้ประการหนึ่ง คือ ต้องการให้ผู้ใช้ที่อยู่ห่างไกลสามารถประมวลผลได้เหมือนผู้ใช้ที่อยู่ใกล้ ซึ่งในความเป็นจริงเป็นเครือข่ายบริเวณกว้าง (WAN) ซึ่งต้องอาศัยสายสื่อสารสาธารณะเช่น สายโทรศัพท์ ซึ่งมีอัตราการส่งข้อมูลประมาณ 5,000 ถึง 10,000 ไบท์ต่อวินาที ในขณะที่ฮาร์ดดิสก์มีอัตราการโอนย้ายข้อมูลประมาณ 5 ถึง 10 ล้านไบท์ต่อวินาที ซึ่งถือว่าห่าง ชั้นกันมาก ดังนั้นวัตถุประสงค์ของระบบฐานข้อมูลแบบกระจายจึงมุ่งไปที่การลดการใช้เครือข่ายลงให้ใช้น้อยที่สุด
( To minimize network utilization) ซึ่งการทำเช่นนี้ส่งผลให้เกิดปัญหาตามมาดังต่อไปนี้
   1.   การประมวลผลสอบถาม  (Query Processing)  ปัญหาด้านการประมวลผลสอบถามเกิดจากการที่พยายามลดการติดต่อผ่านระบบเครือข่ายให้เหลือน้อยที่สุด (Query Optimization) ซึ่งอาจทำให้มีขั้นตอนในการประมวลผลที่ยุ่งยากและทำให้เสียเวลาและค่าใช้จ่ายสูงกว่าระบบรวมศูนย์
                2.  การจัดการพจนานุกรมข้อมูล ( Catalog Management) ปัญหาด้านการจัดการพจนานุกรมข้อมูลในระบบกระจายเกิดจากการที่จะตัดสินใจเก็บมันไว้ที่ไหนและอย่างไร เนื่องจากมีข้อมูลเกี่ยวกับฐานข้อมูลมากกว่าระบบรวมศูนย์ และมีการแยกกระจายเข้ามาอีกปัจจัยหนึ่ง ซึ่งต้องมีมาเก็บข้อมูลการควบคุม (Control Intormation) เอาไว้ด้วย เช่น ข้อมูลที่ตั้ง ชิ้นส่วนข้อมูล และสำเนาซ้ำของข้อมูล เป็นต้น มีแนวทางการจัดเก็บหลายวิธี ได้แก่ การจัดเก็บไว้ที่ศูนย์รวมทั้งหลาย การจัดเก็บพจนานุกรมข้อมูลทั้งหมดไว้ทุกที่ตั้ง  การจัดเก็บเพียงบางส่วนไว้ที่สาขาที่ใช้ข้อมูล หรือแบบประสมระหว่างการจัดเก็บไว้ที่ศูนย์รวมทั้งหมดและจัดเก็บเพียงบางส่วนไว้ที่สาขา
                3.  การปรับปรุงข้อมูลให้ถูกต้องตามกัน (Update Propagation) ปัญหาการปรับปรุงข้อมูลให้ถูกต้องตามกันนี้เกิดจากการที่ระบบยอมให้มีสำเนาข้อมูลซ้ำเก็บไว้ในที่ตั้งต่าง ๆ กันได้ ตัวอย่างเช่น สาขาเชียงใหม่ และสาขาระยอง มีการเก็บข้อมูลชุด ต ซ้ำกัน ถ้าสาขาเชียงใหม่มีผู้ทำการปรับปรุงข้อมูล ต แล้วจะต้องนำเอาข้อมูลชุด ต ที่เปลี่ยนแปลงแล้วนี้ไปปรับปรุงให้กับสาขาระยอง ถ้าบังเอิญเกิดเหตุขัดข้องทำให้ไม่สามารถปรับปรุงข้อมูล ต ณ สาขาระยองได้ ก็จะทำให้เกิดความไม่ถูกต้องขึ้นในระบบ โดยเฉพาะที่สาขาระยอง
4.   การควบคุมการฟื้นสภาพ (Recovery Control ) ปัญหาด้านการควบคุมการฟื้นสภาพนี้อธิบายไว้บ้างแล้วในหัวข้อวัตถุประสงค์ของระบบฐานข้อมูลแบบกระจาย กล่าวคือ จะต้องมีตัวแทน (Agent ) มีข้อตกลงกระทำสองระยะ (Two – phase Commit Protocol ) และมีตัวประสานงาน (Coordinator) ซึ่งยุ่งยากซับซ้อนกว่าระบบรวมศูนย์
                5.  การควบคุมภาวะพร้อมกัน (Concurrency Control) ปัญหาด้านการควบคุมภาวะพร้อมกันนี้ได้อธิบายไว้บ้างแล้วเช่นกัน กล่าวคือ ต้องมีการล็อก (Locking) ซึ่งเหมือนกับระบบรวมศูนย์แต่ต่างกันคือการกระทำใด ๆ เกี่ยวกับการล็อก ได้แก่ การร้องขอ การทดสอบ การเซต และการปล่อยล็อก ล้วนแต่เพิ่มค่าใช้จ่าย เนื่องจากต้องมีการส่งข้อความ (Message)ไปมาระหว่างที่ตั้งสาขาที่สื่อสารกัน ความยุ่งยากจะเกิดขึ้นเมื่อต้องมีการปรับปรุงวิธีการส่งข้อความ เช่น เอาการร้องขอมารวมกับการปรับปรุงข้อมูล แล้วส่งไปพร้อมกัน ซึ่งเรียกว่าวิธีขนลูกหมูขึ้นรถ (Piggybacking) ซึ่งแม้จะทำถึงขนากนี้แล้วก็ยังไม่สามารถรับประกันได้ว่าระบบกระจายจะเร็วเท่าระบบรวมศูนย์ ปัญหาสำคัญอีกประการหนึ่งก็คือ การล็อกในระบบกระจายอาจนำไปสู่วงจรแบบรวม(Globak Deadlock )
ซึ่งเป็นวงจรอับที่เกี่ยวข้องกับที่ตั้งสองแห่งขึ้นไป

ข้อเสียเปรียบของระบบฐานข้อมูลแบบกระจาย
                ต่อไปนี้เป็นข้อเสียเปรียบที่เกิดจากปัญหาหลากประการของการกระจายฐานข้อมูล ดังที่กล่าวมา
1. ความซับซ้อน ( Complexity) ปัญหาที่เกิดขึ้นในระบบฐานข้อมูลแบบกระจายโดยธรรมชาติแล้วมีความสลับซับซ้อนมากกว่าระบบฐานข้อมูลธรรมดาเพราะนอกจากจะมีปัญหาของระบบฐานข้อมูลธรรมดาแล้วยังมีปัญหาที่ยังแก้ไม่ตกแบบใหม่ ๆ อีกด้วย เช่น ในเรื่องของการควบคุมภาวะพร้อมกัน การควบคุมการฟื้นสภาพ และการปรับปรุงข้อมูลให้สอดคล้องกัน เป็นต้น
                2.  การขาดประสบการณ์ (Lock of Experience) เนื่องจากยังมีผู้ใช้ระบบฐานข้อมูลแบบกระจายน้อยกว่าระบบรวมศูนย์อยู่มาก จึงทำให้มีโปรแกรมประยุกต์ใช้น้อย มีผู้เชี่ยวชาญที่มีประสบการณ์น้อยกว่า องค์การที่มีการใช้ระบบฐานข้อมูลแบบกระจายในระยะเริ่มแรก คือ สายการบิน (ระบบจองตั๋ว)
                3.  ค่าใช้จ่าย (Cost) ระบบกระจายจำเป็นต้องมีฮาร์ดแวร์เพิ่มเติมเข้ามา โดยเฉพาะหน่วยงานที่ไม่เคยมรการประมวลผลแบบกระจายมาก่อนจะต้องเพิ่มอุปกรณ์สื่อสาร เป็นต้น ประการที่สองคือค่าใช้จ่ายด้านซอฟต์แวร์ทั้งทางด้านระบบบริหารฐานข้อมูลแบบกระจายแบะทางด้านสื่อสารเพื่อช่วยแก้ปัญหาทางเทคนิคอีกด้วย ประการสุดท้ายคือค่าใช้จ่ายด้านแรงงาน โดยเฉพาะการทำสำเนาข้อมูลซ้ำ และการบำรุงรักษาระบบเป็นต้น ในกรณีนี้ผลกำไรที่สูงขึ้นต้องชั่งน้ำหนักกับค่าใช้จ่ายด้านบุคลากรในส่วนนี้ที่ต้องเพิ่มขึ้น
                4. การกระจายการควบคุม (Distribution of Control) ประเด็นนี้อาจถือได้ว่าเป็นทั้งประโยชน์และข้อเสียเปรียบของระบบฐานข้อมูลแบบกระจาย ทั้งนี้เพราะเป็นเหมือนดาบสองคม การกระจายการควบคุมจะสร้างปัญหาเรื่องภาวะพร้อมกันและการประสานงาน ( Synchronization and Coordination) นอกจากนั้นแล้วหากไม่มีการเอาใจใส่ที่ดีพอในเรื่องของนโยบายด้านการควบคุม อาจทำให้เกิดเป็นภาระผูกพันขึ้นมาให้หนักใจแก่ผู้บริหาร
                5.  ความปลอดภัย ( Security) เปรียบเทียบกับระบบฐานข้อมูลแบบรวมศูนย์ซึ่งมีประโยชน์ในเรื่องความสะดวกและง่ายในด้านการรักษาความปลอดภัยในการเข้าถึงข้อมูลเพราะระบบบริหารฐานข้อมูล ณ ที่ตั้งแห่งเดียวย่อมสามารถบังคับใช้กฎเกณฑ์ ในการเข้าถึงข้อมูลได้ไม่ยาก ทว่าในระบบฐานข้อมูลแบบกระจาย มีสื่อกลางคือเครือข่ายเข้ามาเกี่ยวข้องซึ่งเป็นที่ทราบกันดีว่าการรักษาความปลอดภัยบนเครือข่ายคอมพิวเตอร์นั้นยังมีปัญหาอยู่มาก ดังนั้นจึงเห็นได้ชัดว่าปัญหาเรื่องความปลอดภัยในระบบฐานข้อมูลแบบกระจายโดยธรรมชาติแล้วมีความสลับซับซ้อนมากกว่าแบบรวมศูนย์แน่นอน
                6. ความยากลำบากในการเปลี่ยนแปลง (Difficulty of Change ) เนื่องจากองค์การธุรกิจส่วนใหญ่ได้ลงทุนทำระบบฐานข้อมูลแบบรวมศูนย์ไปมากแล้ว และในปัจจุบันยังไม่มีเครื่องมือหรือระเบียบวิธีการใดที่จะช่วยให้ผู้ใช้แปลงฐานข้อมูลแบบรวมศูนย์ให้ออกมาเป็นระบบฐานข้อมูลแบบกระจายได้โดยตรงซึ่งต้องรองงานศึกษาวิจัยทางด้านฐานข้อมูลแบบหลากหลาย (Heterogeneous Databases) และ การบูรณาการฐานข้อมูล (Database Integration) ให้เอาชนะความยุ่งยากเหล่านี้ให้ได้ก่อน

อ้างอิงจาก
http://itd.htc.ac.th/st_it50/it5041/weblinkwork/webcds/data&c/data/d10.htm


ไม่มีความคิดเห็น:

แสดงความคิดเห็น