การประยุกต์ใช้งานฐานข้อมูล : ตอน 2

 

   Home Page  |   รายการบทความ   |   ลิงค์ที่เกี่ยวข้อง   |   laploy.com  |  เกี่ยวกับผู้เขียน

 

การประยุกต์ใช้งานฐานข้อมูล : ตอน 2

 

3.5. การประมวลผลแบบขนาน
ปัจจุบันนี้ถ้าเราไปพันทิพย์เพื่อซื้อคอมพิวเตอร์ธรรมดาๆ เราจะได้คอมพิวเตอร์ที่มีตัวประมวลผลแบบมีแกนในสองแกน (dual-core)  เครื่องเล่นเกมอย่างเพลย์สเตชันสาม (PlayStaton 3) มีตัวประมวลผลขนาด 64 บิตแบบแปดแกน ในไม่ช้าตัวประมวลผลที่มีแกนหลักจำนวน 16 หรือ 32 แกนก็จะกลายเป็นเรื่องธรรมดา การมีตัวประมวลผลหลายแกนทำให้เราสามารถใช้งานโปรแกรมประยุกต์ที่ทำงานแบบคู่ขนาน (concurrent) ได้

หลักการทำงานของฐานข้อมูลสัมพันธ์เอื้ออำนวยต่อการทำงานงานแบบคู่ขนาน เพราะแบบจำลองข้อมูลสัมพันธ์ตั้งอยู่บนพื้นฐานของเซต กฎของเซต (จำกัด) กล่าวว่า "ผลรวมของการทำยูเนียนกับส่วนต่างๆ ทั้งหมดย่อมเท่ากับเซตเดิม" แสดงเป็นสัญลักษณ์ได้ดังนี้

นิยามการแบ่งส่วนของเซต A

ยูเนียนส่วนต่างๆ ทั้งหมดของเซต A

นั่นหมายความว่าการกระทำต่างๆ กับแถวของตารางเราสามารถทำได้อย่างคู่ขนาน คือสามารถทำได้กับทุกแถวไปพร้อมๆ กันโดยไม่จำเป็นต้องไล่ตั้งแต่แถวแรกไปถึงแถวสุดท้าย แสดงเป็นสัญลักษณ์ได้ดังนี้

ไม่มีอะไรจะทำงานได้เร็วไปกว่าการทำงานแบบคู่ขนาน ในอนาคตอันใกล้นี้เมื่อระบบปฏิบัติการและโปรแกรม RDBMS ยุคใหม่สนับสนุนการทำงานแบบคู่ขนาน การคิวรีข้อมูลปริมาณมากๆ จะทำได้รวดเร็วขึ้นกว่าปัจจุบันนี้หลายเท่าตัว

ภาพ 3-4: เครื่องเล่นเกมเพลย์สเตชันสามเป็นคอมพิวเตอร์ที่ใช้ตัวประมวลผลแบบคู่ขนาน

 

3.6. แรมราคาถูกลง
หน่วยความจำหลักหรือแรม (Random Access Memory ย่อ RAM) นับวันยิ่งมีความจุมากขึ้นและมีราคาต่ำลง  คอมพิวเตอร์ที่ผู้เขียนเคยใช้ตอนเริ่มหัดเขียนโปรแกรมมีแรมเพียง 2KB (สองพันไบต์) เท่านั้น แต่ในปัจจุบันเป็นเรื่องปรกติที่เราจะมีคอมพิวเตอร์ที่มีแรมจำนวน 2 หรือ 4GB (GB = พันล้านไบต์)  นั่นแปลว่าคอมพิวเตอร์ที่ผู้เขียนใช้ในปัจจุบันนี้มีแรมมากกว่าคอมพิวเตอร์ที่ผู้เขียนเคยใช้ตอนเริ่มหัดเขียนโปรแกรมถึงหนึ่งล้านเท่า และมากกว่าเครื่องเมนเฟรมในอดีตหลายแสนเท่า

 

ภาพ 3-5: MPF-1 คอมพิวเตอร์ที่ผู้เขียนใช้ตอนเริ่มหัดเขียนโปรแกรมในปี ค.ศ. 1984 มีแรมเพียง 2KB (ผู้เขียนซื้อคอมพิวเตอร์นี้จากร้านค้าใกล้บ้านหม้อ MPF-1 ผลิตโดยบริษัท มัลติเทค ที่ปัจจุบันเปลี่ยนชื่อเป็นเอเซอร์ เป็นเครื่องมือสำหรับฝึกเขียนโปรแกรมภาษาเครื่อง (machine language) ของซีพียู Z80)

นอกจากแรมแล้ว จานบันทึกข้อมูลก็มีความจุสูงขึ้นแต่มีราคาต่ำลงเช่นกัน แผ่นบันทึกข้อมูล "ฟล็อปปิดิสก์" ขนาดห้านิ้วครึ่งความจุ 360KB ถูกแทนที่ด้วยฟล็อปปิดิสก์ขนาดสามนิ้วครึ่ง ความจุ 1.44MB ต่อมาเป็น DVD-ROM ความจุ 4.7GB และปัจจุบันเป็นแผ่นดิสก์แบบบลูเรย์ (Blue-ray) ซึ่งมีความจุสูงถึง 50GB

 

3.7. โซลิดสเตทดิสก์
โซลิดสเตทดิสก์ (Solid-State Disk) หรือฮาร์ดดิสก์ที่ทำจากสารกึ่งตัวนำ ไม่มีแผ่นจานแม่เหล็ก ไม่มีชิ้นส่วนที่เคลื่อนไหว จึงทำงานเงียบ กินกำลังไฟฟ้าน้อย และที่สำคัญคือทำงานเร็วกว่าฮาร์ดดิสก์ที่ทำจากแผ่นจานแม่เหล็กมาก มีทั้งแบบที่ทำจากแรม (ปิดไฟแล้วข้อมูลหาย) และแบบที่ทำจากแฟลช (ปิดไฟแล้วข้อมูลไม่หาย)  แต่มีข้อเสียคือเทียบราคาต่อความจุยังแพงกว่าฮาร์ดดิสก์ที่ทำจากแผ่นจานแม่เหล็กมาก แต่เชื่อว่าในอีกไม่ช้าจะมีราคาใกล้เคียงกันและจะมาแทนที่ฮาร์ดดิสก์ไปในที่สุด

ภาพ 3-6: โซลิดสเตทดิสก์มีความจุมากขึ้นแต่มีราคาต่ำลงเรื่อยๆ

3.8. ฮาร์ดดิสก์สมัยใหม่
ฮาร์ดดิสก์ (Hard disk drive ย่อ HDD) เป็นแผ่นจานแม่เหล็กที่ถูกประดิษฐ์คิดค้นโดยไอบีเอ็มตั้งแต่ปี ค.ศ. 1956 ปัจจุบันนี้ก็ยังไม่ตาย แต่มีราคาถูกลงและมีความจุมากขึ้น HDD ตามศูนย์ข้อมูล (Data center) หรือที่เครื่องแม่ข่ายให้บริการฐานข้อมูล (Database Server) เดิมจะใช้อินเตอร์เฟสแบบ SCSI (สแกซซี่)  ต่อพ่วง HDD ธรรมดาราคาไม่แพงเข้าด้วยกันหลายๆ ตัวเป็นแถว (Redundant Array of Inexpensive Disks ย่อ RAID) เพื่อเพิ่มความจุหรือเพิ่มความเชื่อถือได้ (หรือเล็งผลเลิศทั้งสองอย่าง)

ในสมัยก่อนหากต้องการสร้างคลังข้อมูลที่มีความจุระดับเทราไบต์ (Terabyte ย่อ TB) หรือล้านล้านไบต์ (1,000 ยกกำลัง 4 หรือ 10 ยกกำลัง 2) จำเป็นต้องใช้แถบแม่เหล็กหรืออุปกรณ์บันทึกข้อมูลด้วยแสงเป็นจำนวนมาก สลับสับเปลี่ยน (mount และ dismount) โดยอัตโนมัติด้วยน้ำมือของหุ่นยนต์ที่คล่องแคล่ว หรือจัดทำเป็นเซอฟเวอร์ฟาร์ม (Server Farm) ที่มีดิสก์ไซโล (Disks Silo) อยู่จำนวนมาก  แต่ตอนนี้หมดสมัยแล้ว เพราะในปัจจุบันแค่ HDD ธรรมดาราคาถูกก็มีความจุในระดับ TB ทำให้การจัดตั้งเครื่องแม่ข่ายให้บริการฐานข้อมูลทำได้งายขึ้น และมีราคาลดลง

ภาพ 3-7: โฆษณาขายฮาร์ดดิสก์ของบริษัท นอร์ทสตาร์ คอมพิวเตอร์ ในปี 1980 ความจุ 18MB รุ่นฮอร์ไรซอนราคาตัวละสามแสนบาท

 

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

ความคิดในย่อหน้าบนไม่เป็นความจริงเสมอไป เพราะขณะที่อุปกรณ์เก็บข้อมูลมีความจุเพิ่มขึ้น ขนาดของข้อมูลที่เราต้องการเก็บก็เพิ่มขึ้นเช่นกัน การใช้คอมพิวเตอร์ก่อนหน้านี้เน้นเก็บข้อความตัวอักษรและรูปภาพซึ่งกินเนื้อที่ไม่มาก แต่ปัจจุบันนี้เราเก็บข้อมูลเสียง (ไฟล์ MP3) หรือวิดีโอ (ไฟล์ .AVI, MP4, WMA และอื่นๆ)  และมีการประยุกต์ใช้งานใหม่ๆ ที่เพิ่มขนาดของข้อมูลอีกมาก เช่นโปรแกรมจดจำใบหน้าเพื่อการอ่านความรู้สึกและอารมณ์จากสีหน้า โปรแกรมจดจำลายนิ้วมือ โปรแกรมจดจำเส้นลายในดวงตาเพื่อแยกแยะความแตกต่างของบุคคล ข้อมูลแผนที่ๆ ทำงานร่วมกับดาวเทียม GPRS ข้อมูลเทียบ DNA ฯลฯ การประยุกต์ใช้งานใหม่เหล่านี้ล้วนต้องใช้พื้นที่เก็บข้อมูลขนาดใหญ่

 

ภาพ 3-8: ลักษณะของข้อมูลเปลี่ยนไป ข้อมูลสมัยใหม่มีขนาดใหญ่ขึ้นและซับซ้อนขึ้น ตัวอย่างเช่นในภาพนี้ เว็บไซต์ YouTube จัดเก็บคลิปวิดีโอที่สมาชิกส่งมาไว้เป็นฐานข้อมูลขนาดใหญ่

 

3.10. แต่ความคิดยังไม่เปลี่ยน
ยังมีสถาปนิก นักออกแบบฐานข้อมูลและนักเขียนโค้ดอยู่เป็นจำนวนมากที่แม้จะรู้ว่าอุปกรณ์บันทึกข้อมูลมีความจุสูงและมีราคาถูก แต่ยังติดนิสัยหรือยังมีความคิดในการบีบฐานข้อมูลให้เล็กที่สุดเหมือนสมัยที่อุปกรณ์บันทึกข้อมูลมีความจุน้อยและมีราคาแพง ในปัจจุบันการออกแบบฐานข้อมูลโดยเน้นประหยัดเนื้อที่ในอุปกรณ์บันทึกข้อมูล อาจไม่ใช่ทางเลือกที่ดีเสมอไป  เพราะการมุ่งเน้นประหยัดเนื้อที่อาจทำให้คิวรีซับซ้อน ใช้เวลาเขียนและบำรุงรักษามาก ซึ่งอาจไม่คุ้มกับเวลาและเงินที่ต้องใช้เพื่อเขียนและบำรุงรักษาคิวรีที่อาจสูงกว่าราคาของอุปกรณ์บันทึกข้อมูล

 

3.11. สรุปท้ายบท
ฐานข้อมูลมีหลายแบบที่ต้องเลือกใช้ให้เหมาะกับงาน เช่นฐานข้อมูลเพื่อใช้ในงาน OLTP ย่อมไม่เหมาะกับการนำมาใช้เพื่อการวิเคราะห์และทำรายงาน ความนิยมในการใช้งานเว็บแอพลิเกชันทำให้มีผู้ใช้ฐานข้อมูลทั่วโลกเพิ่มขึ้นเป็นจำนวนมากอยู่ตลอดเวลา การออกแบบฐานข้อมูลที่รองรับการใช้งานที่มีโหลดสูงได้จึงเป็นสิ่งจำเป็น

แม้อุปกรณ์ฮาร์ดแวร์จะมีราคาถูกลง มีประสิทธิภาพและความจุสูงขึ้น อาจทำให้การออกแบบฐานข้อมูลที่มุ่งเน้นการลดทอนอย่างถึงที่สุดเหมือนในอดีตไม่เหมาะกับปัจจุบัน แต่ธรรมชาติของข้อมูลก็เปลี่ยนไปด้วยเช่นกัน ข้อมูลสมัยใหม่มีขนาดใหญ่ขึ้นและซับซ้อนขึ้น ผู้ออกแบบฐานข้อมูลจึงยังจำเป็นต้องมีความรู้และความเข้าใจเรื่องการลดทอนข้อมูล ท่านจะได้เรียนเรื่องการลดทอนข้อมูลในบทที่ 5 และ 6 ในบทต่อไปท่านจะได้เรียนเรื่องพื้นฐานของการออกแบบฐานข้อมูลเพื่อการสร้างฐานข้อมูลที่มีประสิทธิภาพ

 

3.12. คำถามท้ายบท

1.    การใช้งานฐานข้อมูลแบบไคลแอนเซอฟเวอร์เป็นอย่างไร
2.    คลังข้อมูลคืออะไรมีหน้าที่อย่างไร
3.    ฐานข้อมูลแบบผสมผสานคืออะไร
4.    data bandwidth คืออะไร
5.    RAID คืออะไร
6.    การบีบฐานข้อมูลให้เล็กที่สุดมีข้อเสียอย่างไร
7.    ธรรมชาติของข้อมูลในปัจจุบันต่างจากในอดีตอย่างไร
8.    Solid-State Disk คืออะไร
9.    กฎของเซต (จำกัด) กล่าวว่าอย่างไร หมายความว่าอย่างไร

 

3.13. แบบฝึกหัดท้ายบท
จงเขียนคิวรีภาษา T-SQL เพื่อฉายแสดงข้อมูลในตาราง Employees ในฐานข้อมูล NorthWind โดยแสดงเฉพาะคอลัมน์ EmployeeID, LastName, FirstName, Title และ TitleOfCourtesy โดยให้แสดง 3 แบบดังนี้

1.    เซตของผู้ที่มี  TitleOfCourtesy = ‘Ms.’
2.    เซตของผู้ที่มี  TitleOfCourtesy = ‘Mr.’
3.    ผลจากการ UNION ALL ของทั้งสองเซต

 

โฆษณา

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  เปลี่ยนแปลง )

Google photo

You are commenting using your Google account. Log Out /  เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out /  เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out /  เปลี่ยนแปลง )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: