ความรู้เบื้องต้นเกี่ยวกับ Distributed Database

Concepts
Distributed Database
oคือระบบที่มีการกระจายฐานข้อมูลไปยังจุดต่าง ๆ โดยข้อมูลที่เก็บไว้ในแต่ละจุด สามารถเชื่อมโยงระหว่างกันได้ด้วยระบบเครือข่าย

Distributed DBMS
oคือ Software ที่ใช้สำหรับจัดการฐานข้อมูลแบบกระจายเพื่ออำนวยความสะดวก แก่ผู้ใช้งานในการปฏิบัติงานบนฐานข้อมูลแบบกระจาย

•ในมุมมองทางลอจิคัล ระบบจัดการฐานข้อมูลแบบกระจายจะมีเพียงฐานข้อมูลเดียว ซึ่งจะแบ่งออกเป็น Fragment ต่าง ๆ โดยแต่ละ Fragment จะถูกจัดเก็บลงในคอมพิวเตอร์หนึ่งเครื่องหรือมากกว่า ภายใต้การควบคุมของแต่ละ DBMS
•ในมุมมองทางฟิสิคัล ฐานข้อมูลจะถูกเก็บแบบกระจายในหลาย ๆ ที่อยู่ต่างพื้นที่และห่างไกลกัน แต่สามารถเชื่อมโยงกันได้โดยผ่านระบบเครือข่ายคอมพิวเตอร์
•ผู้ใช้สามารถเข้าถึงฐานข้อมูลผ่านทาง Application

Distributed Processing
การประมวลผลแบบกระจาย คือ ฐานข้อมูลแบบรวมศูนย์ (centralized database) ที่สามารถ access บนระบบเครือข่ายคอมพิวเตอร์
ข้อมูลที่เป็นศูนย์กลาง user สามารถ access ได้บนระบบเครือข่าย

Parallel DBMS
•ระบบจัดการฐานข้อมูลแบบขนาน คือ DBMS ที่รันบนมัลติโปรเซสเซอร์ และดิสก์จัดเก็บข้อมูลได้ถูกออกแบบให้เอ็กซีคิวต์ในลักษณะคู่ขนาน
•ส่งผลให้ระบบทำงานมีประสิทธิภาพยิ่งขึ้นในด้านของ
o Scalability
o Reliability
o Performance
Parallel DBMS
•ใช้คอมพิวเตอร์มาเชื่อมต่อในลักษณะคู่ขนานเป็นเครือข่ายเสมือนกับเป็นการทำงานบนเครื่องเดียว
•มีความสามารถในการประมวลผลเร็วเทียบเท่ากับเครื่องระดับใหญ่

• รูปแบบการเชื่อมต่อมี 3 ลักษณะคือ
o Shared Memory
o Shared Disk
o Shared Nothing

Parallel DBMS : Shared Memory
•เป็นสถาปัตยกรรมแบบ Tightly coupled หรือเรียกว่า Symmetric Multiprocessor (SMP)
•ในระบบจะประกอบไปด้วยโปรเซสเซอร์หลาย ๆ ตัว ที่เรียกว่า มัลติโปรเซสเซอร์
•มีหน่วยความจำที่ใช้งานร่วมกัน
•เป็นรูปแบบสถาปัตยกรรมที่นิยมใช้มาก

Shared Memory : ข้อดี
•มีระบบปฏิบัติการเพียงชุดเดียว ที่อาศัยอยู่ในหน่วยความจำที่ใช้งานร่วมกัน (Single copy of the operating system)
•โปรเซสเซอร์แต่ละตัวจะช่วยกันประมวลผลงานต่าง ๆ ร่วมกัน

Shared Memory : ข้อเสีย
•ระบบอาจเกิดปัญหา I/O bottlenecks ได้ เมื่อหน่วยความจำทำงานหนัก
oแก้ไขได้โดยการให้โปรเซสเซอร์แต่ละตัวมีหน่วยความจำแคชเป็นของตนเอง
•ระบบอาจเกิดปัญหา Single point of failure เนื่องจากใช้หน่วยความจำหลักร่วมกัน

Parallel DBMS : Shared Nothing
•เป็นสถาปัตยกรรมแบบ Loosely coupled
•หรือเรียกว่า Massively Parallel Processing (MPP)
•เป็นลักษณะของมัลติโปรเซสเซอร์สมบูรณ์แบบ
•แต่ละโปรเซสเซอร์จะมีหน่วยความจำและดิสก์เป็นของตนเอง
•มีข้อเสียคือ ใช้เงินลงทุนสูง

Parallel DBMS : Shared Disk
•เป็นสถาปัตยกรรมแบบ Loosely coupled มีลักษณะที่คล้ายคลึงกับแบบ MPP
•แต่ละซีพียูจะมีหน่วยความจำเป็นของตนเอง (Private memory)
•มีการใช้งานดิสก์ร่วมกัน หรือเรียกว่า คลัสเตอร์ (clusters)

Parallel DBMS : สรุป
•เทคโนโลยีคู่ขนานมักนำมาใช้กับงานระบบฐานข้อมูลขนาดใหญ่มาก
•เพื่อให้การประมวลผลมีความเร็วและประสิทธิภาพสูง
•ความจุของขนาดฐานข้อมูลอาจสูงถึง เทอราไบต์ (terabytes)
•สามารถประมวลผลได้ 1,000 transactions/sec
•มักใช้ในงานคลังข้อมูล ที่มีการเรียกดูข้อมูลบนเงื่อนไขที่มีความซับซ้อนมาก เพื่อใช้ในการตัดสินใจของผู้บริหาร

ข้อดีของ DDBMS
•การทำงานเป็นแบบอิสระต่อกัน
•หากข้อมูลของบางส่วนงานเสียหายจะไม่ส่งผลกระทบต่อส่วนงานอื่น ๆ
•มีความเชื่อถือสูง
•มีประสิทธิภาพสูง
•ประหยัดค่าใช้จ่ายเมื่อเทียบกับเครื่องคอมพิวเตอร์ระดับใหญ่
•ง่ายต่อการขยายระบบในอนาคต
oเหมาะสำหรับหน่วยงานที่มีแนวโน้มการเจริญเติบโตอยู่ตลอดเวลา

ข้อเสียของ DDBMS
•มีความซับซ้อนมากกว่าแบบรวมศูนย์
•มีค่าใช้จ่ายเกี่ยวกับการบำรุงรักษาสูง
•สูญเสียการควบคุมความปลอดภัย
•การควบคุมความถูกต้องตรงกันในข้อมูลเป็นไปได้ค่อนข้างยาก
•ยังไม่มีมาตรฐานการจัดการที่แน่นอน
•ขาดแคลนผู้เชี่ยวชาญหรือผู้ที่มีประสบการณ์
•การออกแบบฐานข้อมูลมีความซับซ้อนสูง

Types of DDBMS
สามารถแบ่งออกได้เป็น 2 ชนิดคือ
•Homogeneous DDBMS
•Heterogeneous DDBMS

Homogeneous DDBMS
•เป็นระบบจัดการฐานข้อมูลแบบกระจายที่ทุก ๆ ไซต์จะใช้ผลิตภัณฑ์ DBMS ตัวเดียวกัน
•ทำให้รูปแบบข้อมูลของฐานข้อมูลแต่ละไซต์มีรูปแบบเดียวกัน
•การออกแบบและจัดการมีความสะดวกและง่าย
•เหมาะสำหรับองค์กรที่เพิ่มเริ่มต้นการใช้งานกับการจัดการฐานข้อมูล

Heterogeneous DDBMS
•เป็นระบบจัดการฐานข้อมูลแบบกระจายที่บางไซต์อาจใช้ผลิตภัณฑ์ DBMS คนละตัวกัน
•ทำให้อาจเกิดความแตกต่างในด้าน Hardware และ DBMS
•แต่ละสาขาต่างมีฐานข้อมูลในรูปแบบที่ต่างกัน ทำให้เกิดปัญหาด้านการนำข้อมูลมารวมกัน (Integrated)
oจำเป็นต้องใช้อุปกรณ์ในการแปลงข้อมูลเรียกว่า Gateway
oหรืออาจใช้โปรแกรมจัดการที่เรียกว่า API (Application Programming Interface)

API
•เป็นตัวจัดการกับ DBMS โดยผ่าน API ของ ODBC ทำให้สามารถเชื่อมโยงกับฐานข้อมูลที่มาจากต่างผลิตภัณฑ์ได้
•ODBC เป็นเสมือนไดร์เวอร์ ที่ทำให้ฐานข้อมูลต่างแพลตฟอร์มสามารถจัดการแลกเปลี่ยนข้อมูลร่วมกันได้
•ODBC (Open Database Connectivity)
oเป็นมาตรฐานการเชื่อมโยงฐานข้อมูลแบบเปิดที่บริษัท ไมโครซอฟต์ กำหนดขึ้นเพื่อให้โปรแกรมสามารถเชื่อมโยงประสานผู้ใช้ เพื่อเข้าถึงฐานข้อมูลเชิงสัมพันธ์จากต่างผลิตภัณฑ์ได้ โดยมาตรฐานนี้ใช้ชุดคำสั่ง SQL ในการจัดการกับฐานข้อมูล

รูปแบบการจัดเก็บข้อมูลของ
Distributed Database มี 2 วิธีคือ
•Replication เป็นการจัดเก็บข้อมูลไว้ในฐานข้อมูลส่วนกลาง แต่จะมีการทำสำเนาบางส่วน (บาง Relation) ไปไว้ยังฐานข้อมูลของไซต์ต่าง ๆ เพื่อให้ผู้ใช้ในไซต์นั้นได้ใช้งาน
•Fragmentation เป็นการจัดเก็บข้อมูลด้วยการแบ่งข้อมูลออกเป็นส่วน ๆ แล้วแยกจัดเก็บในฐานข้อมูลของไซต์ต่าง ๆ

Replication : ข้อดี
•หากไซต์ใดไซต์หนึ่งเกิดปัญหา ระบบสามารถดำเนินงานต่อไปได้ด้วยการนำเอาข้อมูลจากไซต์อื่น ๆ มาใช้งาน
•เกิดความรวดเร็วในการทำงาน เนื่องจากสามารถใช้ข้อมูลจากไซต์ตนเองได้ จึงลดปัญหาปริมาณข้อมูลที่ต้องส่งผ่านระหว่างไซต์

Replication : ข้อเสีย
•ต้องมีกระบวนการที่สามารถทำให้ข้อมูลที่สำเนามีความถูกต้องตรงกันในทุกไซต์ เช่น หากมีการแก้ไขข้อมูลในไซต์ใด ระบบจะต้องปรับปรุงข้อมูลในไซต์อื่นให้ครบทุกไซต์ด้วย
•สิ้นเปลืองเนื้อที่ในการจัดเก็บข้อมูลของแต่ไซต์

Fragmentation
•การจัดเก็บข้อมูลด้วยวิธีแบ่ง Fragment สามารถทำได้ 3 วิธีคือ
oHorizontal Fragmentation
oVertical Fragmentation
oMixed Fragmentation

Horizontal Fragmentation
•แบ่งข้อมูลใน Relation ออกมาเป็น Fragment ต่าง ๆ ตามความต้องการในแต่ละไซต์

Horizontal Fragmentation
•คือการใช้ตัวดำเนินการ Selection ของ relational algebra :
p