Showing posts with label ฐานข้อมูล. Show all posts
Showing posts with label ฐานข้อมูล. Show all posts

Sunday, July 19, 2015

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

1.1 ข้อมูลสารสนเทศ

สิ่งแรกที่เราต้องรู้ว่าสารสนเทศ คืออะไรและประกอบด้วยอะไร ความหมายตามตัวศัพท์ของสารสนเทศ ก็คือ Information หรือเรียกว่า "ข้อมูลสารสนเทศ" และมีอีกคำที่มักจะสับสน คือคำว่า Data หรือข้อมูล ที่เราใช้กันอย่างติดปาก คำว่าข้อมูล มักจะหมายถึง สิ่งที่มนุษย์เก็บรวบรวมเพื่อนำไปประมวลผล (Computing Process) ต่อเพื่อที่จะได้สื่อใหม่เพื่อนำไปใช้ประโยชน์ (ในแง่ของผู้บริหารก็เพื่อจะนำไปประกอบการตัดสินใจได้อย่างถูกต้อง) พูดง่าย ๆ ว่าข้อมูล (Data) เปรียบเหมือนกับน้ำมันดิบที่ยังไม่ผ่านการกลั่นนั้นเอง ผลจากการกลั่นกรอง หรือการประมวลผล ดังกล่าว ก็คือ ข้อมูลสารสนเทศ ซึ่งแสดงเป็นกระบวนการดังรูปที่ 1.1
รูปที่ 1.1 แสดงกระบวนการได้มาซึ่งสารสนเทศ

Information System คือ ระบบที่ประมวลผลข้อมูลดิบ (Data) เพื่อให้ได้มาซึ่งข้อมูลที่ก่อให้เกิดประโยชน์หรือข้อมูลสารสนเทศ (Information) ซึ่งการประมวลผลอาจจะใช้คน แต่ปัจจุบันนิยมใช้คอมพิวเตอร์ จึงเรียกว่า Computer Information System (CIS) ตัวอย่างเช่น
พนักงานขายของบริษัทเทปแห่งหนึ่งได้ทำรายงานยอดขายซีดีเพลงให้แก่ผู้บริหาร เพื่อให้ผู้บริหารใช้ในการตัดสินใจในการวางแผนการขาย โดยเป็นข้อมูลดิบดังตารางที่ 1 ตารางที่ 1 รายงานข้อมูลยอดขายซีดีเพลง
รหัสลูกค้าชื่อลูกค้ารหัสอัลบัมชื่ออัลบัมจำนวนวันที่ซื้อ
1100
2200
4600
6700
4300
8700
4500
6800
สมศักดิ์
วิไล
อรัญญา
วิลลี่
ธงชัย
ใหม่
มนต์สิทธิ์
เจ
622
633
855
855
996
750
553
996
เพลงร็อค
เพลงร็อค Vol 2
เพลงไทยสากล
เพลงไทยสากล
เพลงฮาร์ดร็อค
เพลงคันทรี่
เพลงบรรเลง
เพลงฮาร์ดร็อค
2
3
1
2
1
4
2
3
01/02/96
10/02/96
07/03/96
10/03/96
11/03/96
01/04/96
12/04/96
14/05/96
จากข้อมูลดิบในตารางที่ 1 จะเห็นได้ว่าไม่มีประโยชน์ต่อการขาย ไม่สามารถนำข้อมูลมาช่วยในการตัดสินใจในการวางแผนการขายได้ จึงต้องมีการนำข้อมูลไปประมวลผลก่อน จากตารางด้านล่าง จะเห็นได้ว่าเป็นข้อมูลสารสนเทศมากขึ้น โดยจะบอกรายละเอียดเกี่ยวกับอัลบัมเพลงร็อคทั้งหมด และเรียงลำดับการสั่งซื้อจากน้อยไปมาก ตารางที่ 2 รายงานยอดขายซีดีเพลงที่เป็นข้อมูลสารสนเทศ
รหัสลูกค้าชื่อลูกค้ารหัสอัลบัมชื่ออัลบัมจำนวนวันที่ซื้อ
4300
1100
2200
6800
ธงชัย
สมศักดิ์
วิไล
เจ
996
622
855
996
เพลงฮาร์ดร็อค
เพลงร็อค
เพลงร็อค Vol 2
เพลงฮาร์ดร็อค
1
2
3
3
11/03/96
01/02/96
10/02/96
14/05/96
จะเห็นว่า พนักงานขายท่านนี้ สามารถกลั่นกรองข้อมูลดิบ ให้เป็นสารสนเทศ เพื่อใช้ในการตัดสินใจของผู้บริหาร และช่วยให้ผู้บริหารของเขาสามารถประหยัดเวลาในการตัดส่วนที่ไม่ใช้ออกด้วย ตัวเขาเอง นอกจากนี้ อาจจะสามารถนำเสนอด้วยวิธีอื่นๆ อาจทำการประมวลผลข้อมูลลักษณะอื่น ๆ เพื่อช่วยส่งเสริมการตัดสินใจ เช่น แสดงในรูปแบบกราฟ ดังรูปที่ 1.2 และ 1.3
รูปที่ 1.2 กราฟแสดงจำนวนการซื้ออัลบัมเพลงร็อคจำแนกตามอายุ
รูปที่ 1.3 กราฟแสดงจำนวนการซื้ออัลบัมเพลงร็อคจำแนกภูมิภาค
ระบบสารสนเทศ จึงเป็นเป็นระบบจัดการข้อมูลสารสนเทศต่างๆ เพื่อให้เกิดประโยชน์ ต่อระบบอื่นๆที่ต้องใช้ข้อมูลเหล่านั้น โดยเฉพาะระบบธุรกิจ ที่ต้องใช้ตัวเลข ข่าวสาร ข้อมูลในการประกอบธุรกิจ เช่น ระบบแจ้งหนี้ลูกค้า ระบบบัญชีต่าง ๆ ดังนั้นหน้าที่หลักของระบบสารสนเทศก็น่าจะเป็นการแปลง ข้อมูลจำนวนมากให้เป็นสารสนเทศที่มีประโยชน์
ระบบสารสนเทศอาจจะใช้คอมพิวเตอร์ หรือไม่ใช้ก็ได้ แล้วแต่ละองค์กร แต่เนื่องจากเหตุผลของความ รวดเร็วและแม่นยำ ระบบสารสนเทศส่วนใหญ่จะอยู่บนเครื่องคอมพิวเตอร์
สำหรับสื่อที่ใช้ในการจัดเก็บข้อมูลและเครื่องมือการประมวลผล อาจจะใช้กระดาษเป็นสื่อ โดยประมวลผลด้วยคน หรือเก็บในลักษณะที่เป็น Electronic ที่ประมวลผลด้วยคอมพิวเตอร์ เป็นต้น
วิวัฒนาการของระบบสารสนเทศ
มนุษย์เริ่มคิดค้นวิธีการเก็บรวบรวมข้อมูลดิบต่างๆเข้าด้วยกันโดยขบวนการ ต่างๆ เช่น การบันทึกไว้ที่ผนังถ้ำ ใบลาน กระดาษ Electronic file หรือ ระบบฐานข้อมูล เป็นต้น โดยในระยะเริ่มแรกมีการเก็บรวบรวมในแฟ้มข้อมูล ระบบสารสนเทศรุ่นแรกๆ มักจะเป็นการเก็บในรูปแฟ้มเอกสาร ที่แยกเป็นหมวดหมู่โดยมีพนักงานรับผิดชอบกับข้อมูลนั้นๆ ต่อมาได้มีการคิดค้นเครื่องคอมพิวเตอร์ขึ้นเพื่อช่วยในการประมวลผลที่รวด เร็วแม่นยำ ทำให้ระบบ สารสนเทศสมัยใหม่เริ่มเกิดขึ้นนับแต่นั้นเป็นต้นมา เนื่องด้วยความสามารถที่สูงมากในการประมวลผลของคอมพิวเตอร์ทำให้การเก็บรวบ รวมและการประมวลผลโดยใช้คอมพิวเตอร์ สามารถสร้าง ระบบสารสนเทศสมัยใหม่ที่มีประสิทธิภาพ
ในชีวิตประจำวัน มนุษย์ มีการติดต่อสื่อสารกันในรูปแบบของ สื่อมัลติมิเดีย (Multimedia) ตลอดเวลา "ข้อมูลสารสนเทศ" จึงมีความแตกต่างไป จากที่เราคุ้นเคย กล่าวคือ ข้อมูลไม่ใช่เป็นแต่เฉพาะตัวหนังสือ (Text) แต่ยังรวมไปถึงข้อมูลในรูปแบบของ มัลติมิเดีย (Multimedia) ทุกรูปแบบอีกด้วย และข้อมูลสารสนเทศก็ไม่ใช่เฉพาะในคอมพิวเตอร์เท่านั้น ปัจจุบันข้อมูลสารสนเทศอยู่ทุกหนทุกแห่ง ตัวอย่างที่เห็นชัดของชีวิตประจำวันคือ เริ่มกันตั้งแต่เราตอกบัตรลงเวลาในเครื่องลงเวลาตอนเช้าเดินเลยไปที่โต๊ะทำ งานเปิดเครื่องคอมพิวเตอร์ตรวจจดหมายอิเล็กทรอนิกส์ (E-mail) ภายในองค์กร (Intranet Mail) หรือ Voice Mail ในระบบโทรศัพท์รุ่นใหม่ ตลอดจนการซื้อสินค้าที่มีการใช้แถบบาร์โค้ด (Barcode) ที่เราคุ้นเคยกันเมื่อต้องจ่ายสตางค์ พนักงานขายเพียงนำสินค้าลากผ่านเครื่องอ่าน หรือระบบ EDI (Electronic Data Interchange) ซึ่งเป็นมาตรฐานสากลสำหรับการแลกเปลี่ยนข้อมูล การซื้อของทั่วโลกผ่านระบบเครือข่ายอินเตอร์เน็ต จะเห็นได้ว่าปัจจุบันมนุษย์ ได้นำเอาเทคโนโลยีสมัยใหม่มาปรับปรุงข้อมูลสารสนเทศให้สามารถเกิดประโยชน์ อย่างเอกอนันต์ เพื่อทีจะบรรจุข้อมูลสารสนเทศเหล่านี้ลงในระบบสารสนเทศรุ่นใหม่
ดังนั้นอาจจะสรุป ระบบสารสนเทศรุ่นใหม่จะไม่อยู่ในวงแคบเหมือนสมัยก่อนที่มักจะมีแต่ตัวอักษร บนกระดาษอีกต่อไป ทำให้วิทยาการด้านนี้มีการพัฒนาการที่รวดเร็วตามกระแสความต้องการ หัวใจหลักของระบบสารสนเทศรุ่นใหม่ดังกล่าวคือ ระบบฐานข้อมูลที่เก็บข้อมูลทั้งหมดไว้ และมีระบบจัดการข้อมูลเหล่านั้นอย่างมีประสิทธิภาพ ดังนั้นศาสตร์การเรียนรู้เกี่ยวกับ การจัดการฐานข้อมูลจึงเป็นสิ่ง จำเป็นอย่างยิ่งในยุคโลกาภิวัฒน์นี้
ลักษณะของสารสนเทศที่ดี จำแนกได้เป็น 5 ลักษณะ ได้แก่
  1. ความเป็นปัจจุบัน (Current) ข้อมูลปรับเปลี่ยนไปเรื่อย ๆ มีความทันสมัย เช่น เกรดนักศึกษา
  2. ทันเวลา (Timely) มีคุณค่าทางเวลามาเกี่ยวข้อง ถ้าไม่ได้สารสนเทศในเวลาที่ต้องการ อาจจะ เกิดการสูญเสียโอกาสได้
  3. ความเที่ยงตรง (Relevant) ข้อที่ได้ต้องมีความสมบูรณ์ ถูกต้อง
  4. ความคงที่ (Consistent) ข้อมูลที่เก็บไว้หลาย ๆ ที่ อาจไม่ตรงกัน ขัดแย้งกัน สารสนเทศที่ดีต้อง ไม่มีความขัดแย้งกัน หรือขัดแย้งกันน้อยที่สุด
  5. นำเสนอรูปแบบที่มีประโยชน์ (Present in usable form) มีรูปแบบในการนำเสนอที่เข้าใจง่าย เหมาะสม

1.2.ระบบแฟ้มข้อมูล (Electronic file or File system)

ในอดีตได้มีการใช้ระบบแฟ้มข้อมูลอย่างกว้างขวาง โดยที่แฟ้มข้อมูลแต่ละแฟ้มจะประกอบด้วยกลุ่มของระเบียน (Records) ที่มีรูปแบบ (Format) เหมือนกัน และแต่ละระเบียนจะเก็บข้อมูลที่แทนของอย่างหนึ่ง (An instance or occurrence) ในกลุ่มของของที่จัดเก็บนั้น ตัวอย่างเช่น แฟ้มข้อมูลลูกค้า (Customer file) หนึ่งระเบียนของแฟ้ม จะเป็นข้อมูลของลูกค้า 1 คน (One instance) เป็นต้น การจัดการโดยระบบแฟ้มข้อมูลส่วนใหญ่จะถูกใช้งานเฉพาะเพียงอย่างใดอย่างหนึ่ง เท่านั้น ถ้าเรามีงานอย่างอื่นที่ต้องการใช้ข้อมูลคล้ายกัน แต่ในรูปแบบที่ต่างกัน ข้อมูลบางส่วนที่ซ้ำกันนี้จะถูกจัดเก็บในอีกแฟ้มข้อมูลอื่นต่างหาก ในการจัดการข้อมูลลักษณะเช่นนี้ทำให้เกิดปัญหาความซ้ำซ้อน (Redundancy) ของข้อมูล อันก่อให้เกิดความยุ่งยากในการจัดการให้มีข้อมูลที่ถูกแทนสิ่งเดียวกัน ถูกต้องตรงกันในทุก ๆ แฟ้มข้อมูล
1.2.1. หน่วยในการจัดเก็บข้อมูล
ข้อมูลที่จัดเก็บในคอมพิวเตอร์ โดยแท้จริงแล้วมีลักษณะการจัดเก็บเป็นสัญญาณดิจิตอล คือมีค่า 0 กับ 1 เท่านั้น แต่เพื่อให้มองภาพข้อมูลได้ง่าย จึงแบ่งหน่วยในการจัดเก็บข้อมูลออกเป็นส่วนย่อย ต่างๆ ดังนี้
  1. บิต (Bit) คือหน่วยของข้อมูลที่เล็กที่สุด คือการจัดเก็บข้อมูลที่มีอยู่เพียง 2 สถานะ คือ 0 กับ 1 ซึ่งเป็น ลักษณะการทำงานของคอมพิวเตอร์ที่ทำงานด้วยระดับสัญญาณดิจิตอล
  2. ไบต์ (Byte) คือหน่วยของข้อมูลซึ่งเกิดจากการนำข้อมูล 8 บิตมารวมกัน โดยใช้ แทน ตัวอักขระ 1 ตัว
  3. เขตข้อมูล (Field) หรือฟิลด์ คือหน่วยของข้อมูลซึ่งเกิดจากการนำข้อมูลหลายๆ ไบต์ หรือหลายๆ อักขระมารวม กัน เพื่อใช้แทนความหมายของสิ่งใดสิ่งหนึ่ง เช่น รหัสนักศึกษา, ชื่อ, ที่อยู่ เป็นต้น
  4. ระเบียน (Record) หรือ เรคคอร์ด คือหน่วยของข้อมูลซึ่งเกิดจากการนำข้อมูล หลายๆ เขตข้อมูลมารวมกัน ซึ่งเขตข้อมูล ที่นำมารวมกันนี้ จะมีความสัมพันธ์เกี่ยวเนื่องกัน เช่น รหัสนักศึกษา, ชื่อ, ที่อยู่ รวมกันเป็นระเบียนข้อมูล ของนักศึกษา เป็นต้น
  5. แฟ้มข้อมูล (File) หรือไฟล์ คือ หน่วยของข้อมูลซึ่งเกิดจากการนำข้อมูลหลายๆ ระเบียน ที่มีลักษณะ ของเขต ข้อมูลเหมือนกันมาจัดเก็บรวมกัน เช่นการจัดเก็บข้อมูลระเบียนของนักศึกษา หลายๆ คน รวมกันเป็น แฟ้มข้อมูลนักศึกษาเป็นต้น ซึ่งข้อมูลแต่ละระเบียนที่นำมารวมกันจะต้องมี เขตข้อมูล อย่างน้อย 1 เขต ข้อมูลที่แยกความแตกต่างของข้อมูลในแต่ละระเบียนได้หลายๆ คน รวมกันเป็น แฟ้มข้อมูลนักศึกษา เป็นต้น ซึ่งข้อมูลแต่ละระเบียนที่นำมารวมกันจะต้องมี เขตข้อมูล อย่างน้อย 1 เขต ข้อมูลที่แยกความแตกต่างของข้อมูลในแต่ละระเบียนได้ ตัวอย่างของหน่วยข้อมูลต่างๆ แสดงดังรูปที่ 1.4
รูปที่ 1.4 หน่วยข้อมูลต่างๆ
ในยุคเริ่มแรกของการนำคอมพิวเตอร์มาใช้เพื่อจัดเก็บข้อมูล จะใช้ระบบแฟ้มข้อมูล ซึ่งแฟ้ม ข้อมูลแต่ละแฟ้มมักจะถูกสร้างตามภาษาคอมพิวเตอร์ที่โปรแกรมเมอร์ใช้ในการ เขียนโปรแกรม เช่น หาก โปรแกรมเมอร์ใช้ภาษาซี ในการเขียนโปรแกรม แฟ้มข้อมูลที่ถูกสร้างก็จะมีโครงสร้าง ของแฟ้ม ข้อมูล ตามโครงสร้าง ที่ภาษาซีกำหนดไว้ ตัวอย่างการใช้งานแฟ้มข้อมูลแสดงดังรูปที่ 1.5
รูปที่ 1.5 การใช้งานระบบแฟ้มข้อมูล
จากรูปที่ 1.5 จะเห็นได้ว่าแผนกบุคคล และแผนกบัญชี ได้มีการพัฒนาโปรแกรมขึ้นใช้งานในแผนกของตนเอง โดยแผนกบุคคลใช้ภาษาซีเขียนโปรแกรมบริหารงานบุคลากร ซึ่งจะใช้งานแฟ้ม ข้อมูลบุคลากร และแผนกบัญชีใช้ ภาษาปาสคาลเขียนโปรแกรมจัดการเงินเดือน ซึ่งต้องใช้แฟ้มข้อมูล 2 แฟ้มคือ แฟ้มข้อมูลบุคลากร และแฟ้มข้อมูลการทำงาน จากรูปจะเห็นว่ามีการจัดเก็บข้อมูลบุคลากร ซ้ำซ้อนกัน เนื่องจากทั้งสองแผนก ไม่สามารถนำข้อมูลบุคลากรมาใช้ร่วมกันได้ เพราะโครงสร้างของ แฟ้มข้อมูลต่างกัน
ปัญหาของระบบแฟ้มข้อมูล มีดังต่อไปนี้
1) Data redundancy ได้แก่ข้อมูลซ้ำซ้อนกัน ข้อมูลชุดเดียวกันถูกจัดเก็บใน 2 แฟ้มหรือมากกว่า ซึ่งการจะดูว่าข้อมูลซ้ำซ้อนกันหรือไม่ ให้พิจารณาจากตัวอย่างต่อไปนี้ fact หมายถึง ความสัมพันธ์ระหว่างข้อมูลที่เป็นไปได้หรือเป็นจริง เช่น
ลำใย สำเร็จการศึกษาสาขาเทคโนโลยีสารสนเทศ
ลำใย เป็นโปรแกรมเมอร์
ลำไย มีงานอดิเรกในการร้องเพลง
ข้อความทั้งหมดที่ยกมานี้ไม่ถือว่าซ้ำซ้อนกัน เพราะเป็นคนละ fact กัน
         Redundancy หมายถึง fact ที่ปรากฏมากกว่า 1 ครั้ง หรือถูกเก็บไว้มากกว่า 1 ครั้ง
ยกตัวอย่างเช่น เก็บชื่อ ตำแหน่ง และแผนกไว้ในตารางพนักงานและตารางโครงการถือว่าซ้ำซ้อนกัน ฐานข้อมูลแบบตารางจะมีความซ้ำซ้อนของข้อมูลเกิดขึ้นได้ 3 แบบ ดังนี้
1.1 ความซ้ำซ้อนระหว่างตาราง (Inter relation redundancy)
1.2 ความซ้ำซ้อนภายในตารางเดียวกัน (Intra relation redundancy)
1.3 ความซ้ำซ้อนบน row เดียวกัน (Intra row redundancy)
ข้อเสีย ของความซ้ำซ้อน คือ
- เปลืองเนื้อที่ในการจัดเก็บ
- เพิ่มค่าใช้จ่ายในการนำเข้าข้อมูล
- จะต้องตามแก้ไขข้อมูลทุกที่ เมื่อข้อมูลมีการเปลี่ยนแปลง
- การเชื่อมตารางจะใช้ทรัพยากรมาก และช้า
ข้อดี
- การทำ query report จะเร็วขึ้น
2) Data inconsistency เป็นผลมากจาก Data redundancy คือ ข้อมูลชุดเดียวกันมีค่าต่างกัน ทำให้ไม่ทราบว่าข้อมูลชุดใดคือข้อมูลที่ถูกต้อง
3) Data anomaly เป็นผลมาจาก Data redundancy เช่นกัน ทำให้การเพิ่ม ลบ หรือ เปลี่ยนแปลงข้อมูลชุดเดียวกันในแฟ้มข้อมูลต่าง ๆ ไม่ครบถ้วน ซึ่งเกิดใน 3 ลักษณะ ดังนี้
3.1) Modification anomaly เป็นการเปลี่ยนแปลงค่าของข้อมูลในแฟ้มข้อมูลต่าง ๆ ที่ สัมพันธ์กันไม่ครบถ้วน เช่น เปลี่ยนชื่อ "ดวงใจ" ไปเป็น "ดวงพร" ในแฟ้มข้อมูล Employee โดยไม่เปลี่ยนชื่อของพนักงานคนเดียวกันในแฟ้ม Salesman จะส่งผลให้ "ดวงพร" และ "ดวงใจ" ไม่ใช่คนเดียวกันเมื่อทำการเรียกข้อมูลมาดู เป็นต้น 3.2) Insertion anomaly เป็นการกำหนดข้อมูลเพิ่มเติมให้กับแฟ้มข้อมูลต่าง ๆ ที่สัมพันธ์กันไม่ ครบถ้วน เช่น มีการเพิ่มข้อมูลพนักงานขายคนใหม่ชื่อ "สมบูรณ์" เฉพาะแฟ้มข้อมูล Salesman โดยไม่ได้เพิ่มข้อมูลลงในแฟ้มข้อมูล Employee เป็นต้น 3.3) Deletion anomaly เป็นการลบข้อมูลจากแฟ้มข้อมูลต่าง ๆ ที่สัมพันธ์กันไม่ครบถ้วน เช่น กรณีที่พนักงานชื่อ "ขจรศรี" ลาออกแล้ว มีการลบข้อมูลของพนักงานคนนั้นเฉพาะแฟ้มข้อมูลพนักงาน โดยไม่ได้ลบข้อมูลของพนักงานคนเดียวกันในแฟ้มข้อมูลพนักงานขาย เป็นต้น

1.3.ระบบฐานข้อมูล (Database system)

โดยทั่วไปแล้วความหมายของฐานข้อมูลจะหมายถึง การเก็บรวบรวมไฟล์ที่เกี่ยวข้องสัมพันธ์กัน มาอยู่รวมกันไว้เข้าด้วยกัน (Integrated) อย่างมีระบบ ไฟล์ในที่นี้จะหมายถึง logical file ความนี้จะเป็นความหมายทั่ว ๆ ไป ซึ่งยังไม่สมบูรณ์แบบ ทั้งนี้ เนื่องจาก logical file จะประกอบด้วยกลุ่มของ records แต่ความจริงแล้วอาจจะไม่ใช่ก็ได้ เช่น ฐานข้อมูลใหม่ ๆ ที่เป็น object oriented model จะประกอบด้วยกลุ่มของ objects ดังนั้น ความหมายของฐานข้อมูลที่ครอบคลุมถึง object oriented ด้วยก็คือความหมายต่อไปนี้ ฐานข้อมูล หมายถึง ที่เก็บข้อมูลและความสัมพันธ์ระหว่างข้อมูลเหล่านั้น (A collection of data and relationships) โดยปกติแล้ว ในเรื่องของฐานข้อมูลมักจะเกี่ยวข้องกับ logical file มากกว่า physical file โดยเฉพาะการออกแบบฐานข้อมูลจะเป็นการออกแบบในส่วนของ logical file ถ้ากล่าวถึง logical file จะเป็นมุมมองของผู้ใช้หรือ application program แต่ถ้ากล่าวถึง physical file จะเป็นมุมมองของ system หรือ operating system การเกี่ยวข้องกันระหว่าง physical file กับ logical file นั้นก็คือ สามารถใช้ physical file มาสร้าง logical file ได้ สำหรับการเปลี่ยน logical file เป็น physical file นั้น ในระดับไฟล์ธรรมดาจะใช้ Operating system แต่ถ้าเป็นฐานข้อมูลจะใช้ระบบจัดการฐานข้อมูลเป็นตัวเปลี่ยน (map) และนำเสนอโครงสร้างข้อมูลให้กับ application หรือผู้ใช้ เช่น ถ้าเราใช้ฐานข้อมูลแบบ relational model โครงสร้างที่เห็นจะเป็นตาราง (relation) แต่ฐานข้อมูลที่มีโครงสร้างแบบ hierarchical model หรือ network model นั้น application หรือผู้ใช้จะมองเห็นเป็น tree และ link list ตามลำดับ
ระบบฐานข้อมูลจะมีลักษณะคล้ายการนำแฟ้มข้อมูล ที่มีความสัมพันธ์กันมาจัดเก็บไว้ด้วยกัน แต่ลักษณะโครงสร้างการจัดเก็บ รวมทั้งวิธีการใช้งานข้อมูลของฐานข้อมูล จะมีความแตกต่างออกไปจากแฟ้มข้อมูล ซึ่งการใช้งานระบบฐานข้อมูลจะต้องมีโปรแกรมที่ทำหน้าที่ในการบริหารจัดการ ข้อมูลและเป็นตัวกลางระหว่าง ผู้ใช้กับฐานข้อมูล ที่เรียกว่า "Database Management System (DBMS)" หรือระบบจัดการฐานข้อมูล ซึ่งผู้ใช้จะต้องใช้งานฐานข้อมูล ผ่านทางระบบจัดการฐานข้อมูลนี้เท่านั้น แสดงระบบจัดการฐานข้อมูลดังรูปที่ 1.6
รูปที่ 1.6
คำศัพท์ที่เกี่ยวข้องกับฐานข้อมูลที่สำคัญ
1) ความถูกต้องของข้อมูล (Data Integrity) มี 2 ประเภท
- Static Integrity (State of Data)
เป็นความถูกต้องของเนื้อข้อมูล เช่น ผู้หญิงลาบวชไม่ได้ ผู้ชายลาคลอดไม่ได้ อายุของ พนักงานอยู่ระหว่าง 18-60 ปี หรือสมาชิกยืมหนังสือได้ไม่เกิน 5 เล่ม เป็นต้น
- Dynamic Integrity (State of Transition)
เป็นความถูกต้องของลำดับการแก้ไข เช่น การแก้ไขสถานะภาพสมรสของพนักงาน ดังรูปที่ 1.7

รูปที่ 1.7 แสดงลำดับการแก้ไขสถานะภาพสมรส
ความถูกต้องของข้อมูลจะถูกบังคับโดย Integrity rule หรือ integrity constrains และไม่ควรถูกจัดการโดยโปรแกรม แต่จะถูกจัดการโดยระบบจัดการฐานข้อมูล 2) ความเป็นอิสระของข้อมูล (Data Independence)
หมายถึงการที่โปรแกรมเป็นอิสระจากการเปลี่ยนแปลงโครงสร้างข้อมูล แบ่งออกเป็น 2 ชนิด
2.1) ความเป็นอิสระทางกายภาพ (Physical Data Independence)
การเปลี่ยนแปลงโครงสร้างข้อมูลระดับล่าง (Physical structure) จะไม่มีผลกระทบต่อโปรแกรม เช่น การเปลี่ยนแปลงโครงสร้างข้อมูลจากการเก็บแบบ sequential file เป็นแบบ Index file โปรแกรมที่เรียกใช้ข้อมูลจาก file เหล่านี้จะไม่มีการแก้ไขหรือไม่ต้องการทำ compile ใหม่ หรือการโยกย้ายข้อมูลจากที่หนึ่งไปยังที่หนึ่งก็ไม่มีผลกระทบต่อโปรแกรม
2.2) ความเป็นอิสระทางตรรกะภาพ (Logical Data Independence)
การเปลี่ยนแปลงโครงสร้างข้อมูลระดับกลางหรือระดับหลักการ (Conceptual level) ซึ่งเป็น logical structure จะไม่มีผลกระทบต่อโปรแกรม เช่น การเพิ่มเติมข้อมูลเข้าไปในโครงสร้างระดับกลางที่ผู้บริหารฐานข้อมูล (Database Administrator) เป็นผู้กำหนดโปรแกรมที่มีอยู่เดิม ซึ่งไม่เกี่ยวข้องกับข้อมูลที่เพิ่มเข้าไปนั้น ไม่มีการเปลี่ยนแปลงหรือ compile ใหม่ อีกความหมายหนึ่งก็คือ เมื่อมีการเปลี่ยนแปลงโครงสร้างข้อมูลระดับบน (External level) ก็ไม่มีผลกระทบต่อข้อมูลระดับกลางและข้อมูลระดับล่าง เช่น การสลับลำดับของฟิลด์ในโปรแกรม เป็นต้น
ความเป็นอิสระของข้อมูลนี้ทำให้โปรแกรมสามารถเรียกใช้ข้อมูลได้ด้วยภาษาต่าง กัน เช่น โปรแกรมหนึ่งเรียกใช้ข้อมูลได้ด้วยภาษาต่างกัน เช่น โปรแกรมหนึ่งเรียกใช้ข้อมูลด้วยภาษา COBOL อีกโปรแกรมหนึ่งเรียกใช้ข้อมูลด้วยภาษา SQL นอกจากนี้ยังรวมถึงการที่โปรแกรมสามารถเห็นข้อมูลได้หลายรูปแบบแตกต่างกัน
คุณลักษณะที่ดีของฐานข้อมูล (Good Characteristics of Database System)
1) ลดความซ้ำซ้อนของข้อมูลให้เหลือน้อยที่สุด (Minimum redundancy)
เป็นการทำให้ปัญหาเรื่องข้อมูลไม่ตรงกันลดน้อยลงหรือหมดไป โดยนำข้อมูลทั้งหมดมารวมกันเพื่อตัดหรือลดส่วนที่ซ้ำกันทิ้งไป ให้เหลืออยู่เพียงแห่งเดียว และเป็นผลทำให้สามารถแบ่งข้อมูลกันใช้ได้ระหว่างผู้ใช้หลาย ๆ คน รวมทั้งการใช้ข้อมูลเดียวกันในเวลาพร้อม ๆ กันได้อีกด้วย 2) ความถูกต้องสูงสุด (Maximum Integrity : Correctness) ในระบบฐานข้อมูลจะมีความถูกต้องของข้อมูลสูงสุด เพราะว่าฐานข้อมูลมี DBMS คอยตรวจสอบกฎเกณฑ์หรือเงื่อนไขต่าง ๆ (Integrity Rules) ให้ทุกครั้งที่มีการแก้ไขข้อมูลหรือเพิ่มเติมข้อมูลเข้าไปในระบบฐานข้อมูล นั้น โดยกฎเกณฑ์เหล่านี้จะเก็บไว้ในฐานข้อมูลตามแนวคิดของ International Organization for Standard (ISO) แต่ในปัจจุบันมี DBMS บาง product ที่ข้อบังคับเหล่านี้ไม่ได้ผูกติดอยู่กับฐานข้อมูลยังคงเก็บอยู่ในโปรแกรม การเปลี่ยนแปลงกฎเกณฑ์เหล่านี้ทำให้ต้องแก้ไขโปรแกรมตามไปด้วยทุกครั้ง ซึ่งไม่สะดวก เช่นเดียวกับระบบแฟ้มข้อมูลเดิมทำให้เกิดความยุ่งยากในการเขียนโปรแกรม แต่ถ้าย้ายการเก็บข้อบังคับหรือกฎเกณฑ์เหล่านี้มาไว้ที่ฐานข้อมูล ระบบจัดการฐานข้อมูลบางชนิดจะมีฟังก์ชั่นพิเศษ (trigger) กับ procedure อยู่บน FORM ปัจจุบันจะมีให้เลือกว่าจะไว้บนจอหรือไว้ในกฎเกณฑ์กลาง ซึ่งจะเก็บไว้ที่ฐานข้อมูลเรียกว่า stored procedure ซึ่งถูกควบคุมดูแลโดย DBMS สำหรับ DBMS ชั้นดีส่วนใหญ่จะเป็น compile stored procedure เพราะเก็บกฎเกณฑ์เหล่านี้ไว้ที่ stored procedure ไม่ได้เก็บไว้ในโปรแกรมเหมือนระบบแฟ้มข้อมูลเดิม ดังนั้นเมื่อเงื่อนไขเหล่านี้เปลี่ยนแปลงไปก็จะทำการแก้ไขเพียงแห่งเดียว ทำให้ระบบฐานข้อมูลมีความถูกต้องของข้อมูลมากที่สุด และลดค่าใช้จ่ายในการพัฒนา และบำรุงรักษา
3) มีความเป็นอิสระของข้อมูล (Data Independence)
ถือเป็นคุณลักษณะเด่นของฐานข้อมูลซึ่งไม่มีในระบบไฟล์ธรรมดา เนื่องจากในไฟล์ธรรมดาจะเป็นข้อมูลที่ไม่อิสระ (data dependence) กล่าวคือ ข้อมูลเหล่านี้จะผูกพันอยู่กับวิธีการจัดเก็บและการเรียกใช้ข้อมูลซึ่งใน ลักษณะการเขียนโปรแกรมเราจำเป็นต้องใส่เทคนิคการจัดเก็บและเรียกใช้ข้อมูล ไว้ในโปรแกรม เมื่อมีการเปลี่ยนแปลงวิธีการจัดเก็บทำให้ต้องเปลี่ยนแปลงแก้ไขโปรแกรมตามไป ด้วย ดังนั้น ถ้าหากมีการแก้ไขหรือเปลี่ยนแปลงโครงสร้างข้อมูลทั้งในระดับ logical และ physical ย่อมมีผลกระทบต่อโปรแกรม แต่ถ้าข้อมูลเก็บในลักษณะของฐานข้อมูลแล้วปัญหานี้จะหมดไป เพราะฐานข้อมูลมี DBMS คอยดูแลจัดการให้ ทำให้โปรแกรมเหล่านี้เป็นอิสระจากการเปลี่ยนแปลงโครงสร้างข้อมูล
4) มีระบบความปลอดภัยของข้อมูลสูง (High Degree of Data Security)
ฐานข้อมูลจะมีระบบรักษาความปลอดภัยของข้อมูลสูง โดย DBMS จะตรวจสอบรหัสผ่าน (login password) เป็นประเด็นแรก หลังจากผ่านเข้าสู่ระบบได้แล้ว DBMS จะตรวจสอบดูว่าผู้ใช้นั้นมีสิทธิใช้ข้อมูลได้มากน้อยเพียงใด เช่น จะอนุญาตให้ใช้ได้เฉพาะ in query หรือ update และสามารถทำได้เฉพาะตารางใดหรือแถวใดหรือคอลัมน์ใด เป็นต้น นอกจากนี้ โครงสร้างข้อมูลระดับล่างยังถูกซ่อนไว้ไม่ให้ผู้ใช้มองเห็นว่าอยู่ตรงไหน DBMS จะไม่ยอมให้โปรแกรมใด ๆ เข้าถึงข้อมูลได้โดยไม่ผ่าน DBMS
5) การควบคุมจะอยู่ที่ส่วนกลาง (Logically Centralized Control)
แนวความคิดนี้จะนำไปสู่ระบบการปฏิบัติงานที่ดี อย่างน้อยสามารถควบคุมความซ้ำซ้อนและความปลอดภัยของข้อมูลได้ นอกจากนี้ในการควบคุมทุกอย่างให้มาอยู่ที่ส่วนกลางจะนำมาสู่ระบบสารสนเทศ เพื่อการบริหาร (MIS) โดยต้องมีการควบคุมดูแลจากศูนย์กลางทั้งการใช้และการสร้างโดยหลักการแล้ว จะไม่ยอมให้โปรแกรมเมอร์สร้างตารางหรือวิวเอง แต่จะให้ผู้บริหารฐานข้อมูลเป็นผู้สร้างให้ เพื่อจะได้ทราบว่าตารางหรือวิวซ้ำหรือไม่ นอกจากนี้ผู้บริหารฐานข้อมูลจะเป็นผู้ให้สิทธิแก่ผู้ใช้วิว ดังนั้น โปรแกรมเมอร์จะต้องติดต่อประสานงานกับผู้บริหารฐานข้อมูลในการจัดทำรายงาน คุณลักษณะนี้จะทำให้มีความคล่องตัวในการใช้งาน ซึ่งเป็นผลมาจากข้อมูลมาอยู่รวมกัน

1.4 ประโยชน์ของระบบฐานข้อมูล

ระบบฐานข้อมูล จะช่วยแก้ปัญหาของระบบแฟ้มข้อมูล และมีประโยชน์ หลายๆ ด้านดังนี้ 1.4.1 ลดความซ้ำซ้อนของข้อมูล เนื่องจากการนำข้อมูลที่จำเป็นต่อการใช้งานมาจัดเก็บไว้ รวมกันเป็นฐานข้อมูลส่วนกลาง ทำให้แต่ละหน่วยงานที่จำเป็นต้องใช้ข้อมูล ไม่ต้องจัดเก็บข้อมูลไว้ที่หน่วย งานของตนเองอีก นอกจากลดความสิ้นเปลืองในการจัดเก็บแล้ว ยังช่วยแก้ปัญหาต่างๆ ที่จะเกิดตามมา เนื่องจากความซ้ำซ้อนของข้อมูลได้
1.4.2 แก้ปัญหาความขัดแย้งกันของข้อมูล ซึ่งเป็นปัญหาที่เกิดเนื่องมาจากความซ้ำซ้อนของข้อมูล เมื่อมีข้อมูลที่ซ้ำๆ กันอยู่หลายที่ หากมีการปรับปรุงแก้ไขข้อมูลในที่หนึ่งแล้ว แต่ไม่ได้แก้ไขข้อมูลในที่ อื่นๆ ตามด้วย ก็จะทำให้ข้อมูลในแต่ละที่เกิดความขัดแย้งกันขึ้น ดังนั้นการจัดเก็บข้อมูลไว้เพียงที่เดียวจึง ช่วยแก้ปัญหาความขัดแย้งกันของข้อมูลได้
1.4.3 การบริหารจัดการฐานข้อมูลทำได้ง่าย เนื่องจากมีการจัดเก็บข้อมูลไว้ที่ส่วนกลาง ทำให้การ จัดการข้อมูลทำได้ง่ายขึ้น โดยผู้ที่ทำหน้าที่ในการบริหารจัดการฐานข้อมูลเรียกว่า ผู้บริหารฐานข้อมูล (Database Administrator: DBA)
1.4.4 กำหนดมาตรฐานของข้อมูลได้ เนื่องจากการจัดเก็บข้อมูลไว้ที่ส่วนกลางที่เดียวดังนั้น DBA จะเป็นผู้กำหนดโครงสร้างในการจัดเก็บข้อมูล ทำให้โครงสร้างของข้อมูลต่างๆ
1.4.5 สามารถใช้งานฐานข้อมูลร่วมกันได้ เนื่องจากโครงสร้างการจัด เก็บข้อมูลในฮาร์ดดิสก์จะ ถูก กำหนดด้วย DBMS และผู้ใช้แต่ละคนจะต้องใช้งานผ่าน DBMS เท่านั้น ดังนั้นจึงสามารถใช้งาน ฐาน ข้อมูลร่วมกันได้โดยไม่ต้องกังวลถึงความแตกต่างของภาษาคอมพิวเตอร์ที่ใช้ นอกจากนี้ข้อมูลอื่นๆ ที่ผู้ใช้ไม่ได้เป็นผู้สร้างขึ้นมา ก็สามารถใช้งานได้ถ้าหากได้รับสิทธิในการใช้งานข้อมูลดังกล่าว
1.4.6 เกิดความเป็นอิสระระหว่างข้อมูลกับโปรแกรม จากปัญหาของระบบแฟ้มข้อมูล ซึ่งการ แก้ไขโครงสร้างของแฟ้มข้อมูล เช่นการเพิ่มฟิลด์ ซึ่งโปรแกรมที่มีอยู่เดิมไม่จำเป็นต้องนำไปใช้งาน แต่ต้องทำการแก้ไขโปรแกรมเนื่องจากการเขียนโปรแกรมจะยึดติดกับโครงสร้างของ แฟ้มข้อมูล หากใช้งานเป็นระบบฐานข้อมูล จะสามารถแก้ไขปัญหานี้ได้ เนื่องจากการใช้งานต่างๆ จะต้องใช้งานไว้เพียงที่เดียวจึง ช่วยแก้ปัญหาความขัดแย้งกันของข้อมูลได้
1.4.7 กำหนดระบบรักษาความปลอดภัยให้กับข้อมูลได้ เนื่องจากข้อมูลแต่ละข้อมูลจะมีความ สำคัญไม่เท่ากัน ดังนั้นจึงต้องมีการกำหนดสิทธิในการใช้งาน ข้อมูลแต่ละส่วน ซึ่งเป็นหน้าที่ของ ผู้บริหารฐานข้อมูล เป็นผู้กำหนดว่าใครมีสิทธิใช้งานข้อมูลส่วนไหนได้บ้าง

1.5 องค์ประกอบของระบบฐานข้อมูล

1.5.1 Data หมายถึงข้อมูลที่ถูกเก็บไว้ในระบบฐานข้อมูล รวมถึงความสัมพันธ์ระหว่างข้อมูลด้วย ดังนั้น data ในที่นี้จึงหมายถึง database
1.5.2 Hardware ได้แก่เครื่องคอมพิวเตอร์ อุปกรณ์ที่เก็บข้อมูลประกอบด้วย secondary storage เช่น disk และอุปกรณ์อื่น ๆ ที่เกี่ยวข้อง
1.5.3 Software คือโปรแกรมที่จัดการเกี่ยวกับฐานข้อมูล โดยปกติแล้วจะเรียกว่าระบบจัดการ ฐานข้อมูลหรือ DBMS ส่วนนี้จะทำหน้าที่เชื่อมต่อระหว่างข้อมูลกับผู้ใช้ ดังนั้น การเรียกใช้หรือดึงข้อมูลจากฐานข้อมูลจะต้องผ่าน DBMS
1.5.4 User ได้แก่บุคคลต่าง ๆ ที่เกี่ยวข้องกับฐานข้อมูล เช่น ผู้บริหารฐานข้อมูล โปรแกรมเมอร์ นักวิเคราะห์ระบบ และผู้ใช้

1.6 บุคคลที่เกี่ยวข้องกับฐานข้อมูล

1.6.1 ผู้บริหารฐานข้อมูล (Database Administrator หรือ DBA) เป็นบุคคลคนเดียว หรือกลุ่มผู้เชี่ยวชาญซึ่งมีหน้าที่ควบคุมและบริหารทรัพยากรฐานข้อมูลของ องค์กรให้สามารถดำเนินการประยุกต์ใช้ฐานข้อมูลโดยความร่วมมือช่วยเหลือจาก พนักงานในหน่วยงานที่เกี่ยวข้อง อีกทั้งต้องเป็นผู้ที่สามารถติดต่อกับผู้บริหารระดับสูง ผู้ใช้แผนกต่าง ๆ และเจ้าหน้าที่ฝ่ายปฏิบัติการ และควรมีความรู้ทั้งหลักการบริหารและด้านเทคนิคของระบบจัดการฐานข้อมูล (DBMS) หน้าที่ของผู้บริหารฐานข้อมูล แบ่งเป็น 2 ส่วน
- การออกแบบฐานข้อมูลจะต้องทราบวิธีออกแบบและรายละเอียดของระบบงาน ซึ่งที่จริงแล้วในส่วนนี้ควรจะเป็นหน้าที่ของผู้จัดการข้อมูลหรือ DA (Data Administrator) ซึ่งก็คือ SA (System Analysis) โดยผู้ใช้หรือเจ้าของระบบงานเขียนและออกแบบโครงสร้างด้วย ER Model แต่ SA จะออกแบบอัลกอริทึม
- การปฏิบัติงานกับ DBMS จะต้อบทราบเทคโนโลยีของ DBMS ดังนั้น ในส่วนนี้จะเป็นหน้าที่ของ DBA โดย DBA จะต้องทราบวิธีการปฏิบัติงานกับ DBMS ดังนี้
1. การติดตั้งระบบจัดการฐานข้อมูล (Install DBMS) 2. การจัดสรรเนื้อที่ในดิสก์ (allocate disk space) 3. การสร้างโครงสร้างของข้อมูล (create data structure) 4. การทำข้อมูลสำรองเอง (backup) และการฟื้นสภาพข้อมูล (recovery) 5. การปรับผลการปฏิบัติงาน (performance tuning)
DBA จะทำหน้าที่เป็นที่ปรึกษาและประสานงานกับเจ้าหน้าที่ฝ่ายปฏิบัติการ เช่น นักวิเคราะห์และออกแบบโปรแกรมเมอร์และผู้ใช้
1.6.2 นักวิเคราะห์และออกแบบ (System Analyst) ทำหน้าที่ออกแบบอัลกอริทึม (Algorithm) ของระบบงาน
1.6.3 โปรแกรมเมอร์ (Programmer) เป็นผู้เขียนโปรแกรมประยุกต์ (Application program) สำหรับใช้กับฐานข้อมูล อาจจะเขียนด้วยภาษาระดับสูง เช่น SQL เป็นต้น
1.6.4 ผู้ใช้ (End User) เจ้าของระบบงานที่ต้องการเรียกใช้ฐานข้อมูล โดยอาจผ่านทางโปรแกรมประยุกต์หรือภาษาเรียกค้น เช่น SQL ผู้ใช้เหล่านี้ไม่จำเป็นต้องมีความรู้เกี่ยวกับการเขียนโปรแกรม ถึงแม้ว่าฐานข้อมูลจะมีคุณลักษณะที่ดีดังได้กล่าวมาข้างต้นแต่ก็มีข้อเสียดังนี้
1. ขนาดของระบบจัดการฐานข้อมูลมักมีขนาดใหญ่และราคาแพง เนื่องจากซอฟต์แวร์ประกอบด้วยฟังก์ชันต่าง ๆ มากมาย จึงต้องการฮาร์ดแวร์เพิ่มขึ้นทั้งหน่วยความจำหลัก และหน่วยความจำสำรอง
2. ต้องอาศัยผู้ดูแลที่มีความรู้ความเข้าใจเทคโนโลยี ระบบการจัดการฐานข้อมูล
3. ถ้าระบบเสียจะทำให้มีผลต่อผู้ใช้หลายคน
4. ความเป็นเจ้าของข้อมูลลดลง ข้อมูลจะไม่เป็นของผู้หนึ่งผู้ใดโดยเฉพาะ

1.7 ตัวอย่างซอฟต์แวร์จัดการระบบฐานข้อมูลในปัจจุบัน

ระบบฐานข้อมูลที่มีอยู่ในปัจจุบัน มีอยู่เป็นจำนวนมาก ซึ่งแบ่งออกเป็น 2 กลุ่มได้ คือระบบ ฐานข้อมูลขนาดใหญ่ ซึ่งมีความสามารถในการจัดการฐานข้อมูลครบทุกด้าน และอีกกลุ่มคือระบบฐาน ข้อมูลขนาดไม่ใหญ่มาก ซึ่งมีความสามารถในการจัดการฐานข้อมูลเช่นกัน แต่อาจจะขาดความสามารถ บางอย่างไป ตัวอย่างของซอฟต์แวร์ระบบฐานข้อมูลต่างๆ มีดังนี้ ซอฟต์แวร์ฐานข้อมูลที่เหมาะสำหรับระบบงานใหญ่ เช่น Oracle, Microsoft SQL, MySQL, Sysbase, DB2, Informix, Ingres เป็นต้น
รูปที่ 1.8 ตัวอย่างซอร์ฟแวร์จัดการระบบฐานข้อมูล

สรุปบทเรียน

ระบบฐานข้อมูล คือการจัดเก็บข้อมูลที่จำเป็นต้องมีไว้ใช้งาน และมีความสัมพันธ์กัน นำมาจัดเก็บไว้ด้วยกัน มีลักษณะคล้ายกับการนำแฟ้มข้อมูลหลายๆ แฟ้มมาจัดเก็บอยู่ที่เดียวกัน แต่โครงสร้างในการจัดเก็บ จะแตกต่าง ไปจากระบบแฟ้มข้อมูล ซึ่งจะช่วยปัญหาต่างๆ ที่เกิดขึ้นกับระบบแฟ้มข้อมูลได้ นอกจากนี้ยังเพิ่มประสิทธิภาพในการจัดการกับข้อมูลได้มากขึ้น โดยมีตัวกลางในการจัดการข้อมูลคือ ระบบจัดการฐานข้อมูล ที่นิยมเรียกสั้นๆ ว่า DBMS การใช้งานต่างๆ จะต้องกระทำผ่าน DBMS เท่านั้น สรุปหน่วยที่ 1
ฐานข้อมูลเชิงสัมพันธ์
ระบบฐานข้อมูลเชิงสัมพันธ์ (Relational Database) เป็นฐานข้อมูลที่ใช้โมเดลเชิงสัมพันธ์ (Relational Database Model) ซึ่งผู้คิดค้นโมเดลเชิงสัมพันธ์นี้คือ Dr. E.F. Codd โดยใช้หลักพื้นฐานทางคณิตศาสตร์ เนื่องด้วยแนวคิดของแบบจำลองแบบนี้มีลักษณะที่คนใช้กันทั่วกล่าวคือมีการ เก็บเป็นตาราง ทำให้ง่ายต่อการเข้าใจและการประยุกต์ใช้งาน ด้วยเหตุนี้ ระบบฐานข้อมูลแบบนี้จึงที่ได้รับความนิยมมากที่สุด ในแง่ของ entity แบบจำลองแบบนี้คือ แฟ้มข้อมูลในรูปตาราง และ attribute ก็เปรียบเหมือนเขตข้อมูล ส่วนความสัมพันธ์คือความสัมพันธ์ระหว่าง entity ฐานข้อมูลเชิงสัมพันธ์ คือ การเก็บข้อมูลในรูปของตาราง (Table) หลายๆตารางที่มีความสัมพันธ์กัน ในแต่ละตารางแบ่งออกเป็นแถวๆ และในแต่ละแถวจะแบ่งเป็นคอลัมน์ (Column) ในทางทฤษฎีจะมีคำศัพท์เฉพาะแตกต่างออกไป เนื่องจากแบบจำลองแบบนี้เกิดจากทฤษฎีทางคณิตศาสตร์เรื่องเซ็ท (Set) ดังนั้น เราจะมีคำศัพท์เฉพาะดังตารางที่ 3.1นี้

ตารางที่ 3.1 คำศัพท์เฉพาะที่ใช้ในระบบฐานข้อมูลเชิงสัมพันธ์
ศัพท์เฉพาะศัพท์ทั่วไป
รีเลชั่น (Relation)ตาราง (Table)
ทูเปิล (Tuple) แถว (Row) หรือ เรคคอร์ด (Record) หรือ ระเบียน
แอททริบิวท์ (Attribute)คอลัมน์ (Column) หรือฟิลด์ (Field)
คาร์ดินัลลิติ้ (Cardinality)จำนวนแถว (Number of rows)
ดีกรี (Degree) จำนวนแอททริบิวท์ (Number of attribute)
คีย์หลัก (Primary key) ค่าเอกลักษณ์ (Unique identifier)
โดเมน (Domain) ขอบข่ายของค่าของข้อมูล (Pool of legal values)
รูปที่ 3.1 แสดงรายละเอียดของส่วนประกอบต่าง ๆ ของโมเดลแบบความสัมพันธ์
อาจจะเขียนในรูปสมการดังต่อไปนี้ R(รหัสประจำตัวประชาชน,ชื่อ,นามสกุล,วันเกิด) เนื่องจากแต่ละตารางสามารถมีความสัมพันธ์กันได้ดังที่กว่าไว้ในข้างต้น ทำให้การเก็บข้อมูลในรูปแบบนี้ มีความคล่องตัวสูงเพราะเราสามารถแยกเก็บข้อมูลใน หลายตารางโดยอาศัยความสัมพันธ์ดังกล่าว และสามารถสืบค้นได้จากรหัสพิเศษที่เรียกว่า กุญแจ(key) ดังรูปที่ 3.2
รูปที่ 3.2 แสดงตัวอย่างการสืบค้นข้อมูลโดยอาศัยความสัมพันธ์
Dr.E.F.Codd ได้กำหนดส่วนประกอบของโมเดลเชิงสัมพันธ์นี้ แบ่งเป็น 3 ส่วนได้แก่
1. ส่วนที่เกี่ยวข้องกับโครงสร้างของข้อมูล
2. ส่วนที่เกี่ยวกับการควบคุมความถูกต้องให้กับข้อมูล
3. ส่วนในการจัดการกับข้อมูล


3.2. โครงสร้างของข้อมูล (Data Structure)

3.2.1. Relation
โครงสร้างของฐานข้อมูลเชิงสัมพันธ์ จะอยู่ในลักษณะของตาราง 2 มิติ ประกอบด้วยทางด้านแถว และคอลัมน์ ซึ่งจะเรียกว่า รีเลชัน (Relation) โดยทั่ว ๆ ไป Relation หนึ่ง ๆ จะมีคุณสมบัติต่าง ๆ ดังนี้
1) ไม่มี Tuples คู่ใด ๆ เลยที่ซ้ำกัน (No duplicate tuples)
2) ลำดับที่ของ Tuples ไม่มีความสำคัญ
3) ลำดับที่ของ Attributes ไม่มีความสำคัญ
4) ค่าของ Attribute จะเป็นค่าเดี่ยว ๆ (Atomic) นั่นคือ ค่าของข้อมูลที่ปรากฏอยู่ในตารางจะเป็นค่า ๆ เดียว เป็นลิสต์ของค่าหลาย ๆ ค่าไม่ได้ ซึ่ง Relation ที่มีคุณสมบัติข้อนี้จะถูกเรียกว่าเป็น Relation ที่อยู่ในรูปแบบ Normal form
5) ค่าของข้อมูลในแต่ละ Attribute จะบรรจุค่าของข้อมูลประเภทเดียวกัน
ชนิดของ Relations

ในระบบจัดการฐานข้อมูลทั่ว ๆ ไป Relation อาจจำแนกออกได้เป็น 2 ประเภท ดังนี้คือ  

1) Relation หลัก (Base Relation)
เป็น Relation ที่ถูกกำหนดขึ้นเพื่อเก็บข้อมูลและเพื่อนำข้อมูลไปใช้เมื่อมีการสร้าง Relation โดยใช้ Data Definition Language เช่น ใน SQL คำสั่ง CREATE TABLE เป็นการสร้าง Relation หลัก หลังจากนั้นก็จะทำการเก็บข้อมูลเพื่อการเรียกใช้ข้อมูลในภายหลัง Relation หลักจะเป็นตารางที่จัดเก็บข้อมูลจริงไว้

2) วิว (View) หรืออาจเรียกอีกอย่างหนึ่งว่า Relation สมมุติ (Virtual Relation)
เป็น Relation ที่ถูกสร้างขึ้นตามความต้องการใช้ข้อมูลของผู้ใช้แต่ละคน เนื่องจาก ผู้ใช้แต่ละคนอาจต้องการใช้ข้อมูลในลักษณะที่แตกต่างกัน จึงทำการกำหนดวิวของตัวเองขึ้นมาจาก Relation หลัก เพื่อความสะดวกในการใช้ข้อมูล และช่วยให้การรักษาความปลอดภัยของฐานข้อมูลทำได้ง่ายขึ้น Relation ที่ถูกสมมติขึ้นมานี้จะไม่มีการเก็บข้อมูลจริง ๆ ในระบบฐานข้อมูล
ลักษณะของรีเลชั่นแสดงดังรูปที่ 3.3
รูปที่ 3.3 โครงสร้างของฐานข้อมูลเชิงสัมพันธ์
จากรูปที่ 3.3 ตารางข้อมูลทั้งหมด จะเรียกว่า Relation แต่โดยส่วนใหญ่นิยมเรียกว่า Table หรือ ตาราง เนื่องจากโครงสร้างการจัดเก็บเป็นแบบตาราง ส่วนข้อมูลในแต่ละแถว จะเรียกว่า ทูเพิล (Tuple) ส่วนข้อมูลในแต่ละคอลัมน์ จะเรียกว่า แอตทริบิวส์ (Attribute) ดังตัวอย่างมี 4 แอตทริบิวส์ คือ SID, Sname, GPA, Major เขียนเป็นสมการได้ดังนี้ Student(SID,Sname,GPA,Major)

3.2.2. Domain
โดเมน (Domain) คือการกำหนดขอบเขตและชนิดของข้อมูลเพื่อป้องกันไม่ให้ข้อมูลที่ผู้ใช้จัด เก็บ มีความผิดพลาดไปจากความเป็นจริงที่ควรจะเป็น ตัวอย่างดังรูปที่ 3.4
รูปที่ 3.4 โดเมนของข้อมูล
จากรูปที่ 3.4 เป็นการกำหนดโดเมนให้กับแอตทริบิวส์ข้อมูล GPA ซึ่งเป็นค่าเกรดเฉลี่ย ของนักศึกษา ซึ่งค่าเกรดเฉลี่ยจะต้องมีค่าอยู่ระหว่าง 0 - 4 ดังนั้นจึงต้องกำหนดโดเมนให้กับแอตทริบิวส์ GPA เพื่อไม่ให้ข้อมูลผิดพลาดไปจากนี้

3.2.3. คีย์ (Key)
คีย์ คือ แอตทริบิวส์ หรือ กลุ่มของแอตทริบิวส์ที่สามารถแยกความแตกต่างของข้อมูล ในแต่ละทูเพิลได้ หรือแอตทริบิวส์ที่ข้อมูลในแอตทริบิวส์นั้นต้องมีข้อมูลที่ไม่ซ้ำกัน ซึ่งคีย์ มีอยู่หลายชนิดด้วยกัน ได้แก่

3.2.3.1. คีย์อย่างง่าย (Simple key) หมายถึง key ที่ประกอบด้วย attribute เดียว

3.2.3.2. คีย์ประกอบ (Combine key หรือ Composite key) หมายถึง key ที่ ประกอบด้วย attribute มากกว่า 1 attribute

3.2.3.3. คีย์คู่แข่ง (Candidate Key) คือคีย์ที่เล็กที่สุด ที่แยกความแตกต่างของข้อมูล แต่ละทูเพิลได้ ยกตัวอย่างเช่น ในรีเลชัน Student มีข้อมูลที่สามารถเป็นคีย์คู่แข่ง คือแอตทริบิวส์ รหัสนักศึกษา และการใช้แอตทริบิวส์ ชื่อรวมกับนามสกุล ซึ่งทั้งสองแบบสามารถระบุความแตกต่าง ของข้อมูล แต่ละทูเพิลได้

3.2.3.4. คีย์หลัก (Primary Key) คือคีย์คู่แข่งซึ่งได้เลือกมาเพื่อใช้กำหนดให้เป็นค่าคีย์ หลักของ รีเลชัน ซึ่งข้อมูลที่เป็นคีย์หลักนั้นจะต้องมีข้อมูลที่ไม่ซ้ำกัน และมักจะเลือกคีย์คู่แข่ง ที่มีขนาดเล็กมาเป็นคีย์หลัก ตัวอย่างเช่น การเลือกแอตทริบิวส์รหัสนักศึกษา มาเป็นค่าคีย์หลัก เนื่องจาก มีขนาดเล็กกว่าแอตทริบิวส์ ชื่อ รวมกับ นามสกุล ซึ่งจะทำให้การทำงานเร็วกว่า เนื่องจากมีขนาดเล็กกว่า

3.2.3.5. คีย์รอง (Alternate Key หรือ Secondary key) คือคีย์คู่แข่งอื่นๆ ที่ไม่ได้ ถูกเลือกมาใช้งาน ยกตัวอย่างเช่น แอตทริบิวส์ ชื่อรวมกับนามสกุล ซึ่งไม่ได้ถูกเลือกให้เป็นคีย์หลักของรีเลชัน ก็จะกลายเป็น Alternate Key

3.2.3.6. คีย์นอก (Foreign Key)เป็นคีย์ที่ใช้เชื่อมความสัมพันธ์ของรีเลชัน ตัวอย่างแสดงดังรูปที่ 3.5
รูปที่ 3.5 คีย์หลักและคีย์นอก
จากรูปที่ 3.5 รีเลชัน Student มีค่าคีย์หลักคือ SID ซึ่งเป็นรหัสนักศึกษา โดยข้อมูลของรหัสนักศึกษาจะต้องมีข้อมูลที่ไม่ซ้ำกัน และมีคีย์นอกของตารางคือแอตทริบิวส์ Major ซึ่งเชื่อมโยงความสัมพันธ์ไปยังแอตทริบิวส์ Major ของรีเลชัน Major ซึ่งข้อมูลทุกตัวของแอตทริบิวส์ Major ในรีเลชัน Student จะต้องมีอยู่ในแอตทริบิวส์ Major ของรีเลชัน Major ส่วนตาราง Major มีคีย์หลักคือแอตทริบิวส์ Major

3.2.3.7. ซุปเปอร์คีย์ (Super key) หมายถึง attribute หรือ เซ็ทของ attribute ที่ สามารถบ่งบอกว่าแต่ละแถว (Tuple) แตกต่างกัน ในทุก ๆ ความสัมพันธ์ จะต้องมีอย่างน้อย หนึ่ง super key ในเซ็ทของ attributes

3.3. กฎที่เกี่ยวข้องกับการรักษาความถูกต้อง

กฎที่ใช้สำหรับรักษาความถูกต้องของข้อมูล แบ่งออกเป็น 2 กฎคือ กฎที่เกี่ยวข้องกับเอนทิตี้ และกฎที่เกี่ยวข้องกับการเชื่อมโยงความสัมพันธ์ของเอนทิตี้ )  

3.3.1. กฎความบูรณภาพของเอนทิตี้ (Entity Integrity Rule)
กฎความบูรณภาพของเอนทิตี้ เป็นกฎที่ใช้กำหนดเพื่อให้ข้อมูลของเอนทิตี้ มีความถูกต้อง ซึ่งกล่าวไว้ว่า "แอตทริบิวส์ที่ทำหน้าที่เป็นคีย์หลักของรีเลชัน ไม่สามารถมีค่าเป็นค่าว่างได้ (Null Value)" และจะต้องมีคุณสมบัติที่เป็นเอกลักษณ์ (Identity) คือสามารถระบุข้อมูลแอตทริบิวส์อื่นๆ ที่อยู่ในทูเพิลเดียวกันได้

3.3.2. กฎความบูรณภาพของการอ้างอิง (Referential Integrity Rule)
กฎความบูรณภาพของการอ้างอิง คือกฎที่ใช้รักษาความถูกต้องของข้อมูลที่มีความสัมพันธ์กันของเอนทิตี้ ซึ่งได้กล่าวไว้ว่า "ค่าของคีย์นอกในรีเลชัน จะต้องมีข้อมูลอยู่ในอีก รีเลชันหนึ่ง ที่คีย์นอกของรีเลชันนั้นอ้างอิงถึง"
ในบางกรณีคีย์นอกอาจเป็นค่าว่างได้ ถ้านโยบายขององค์กร อนุญาตให้ค่าคีย์นอกเป็น ค่าว่างได้ กรณีหากมีการลบ หรือแก้ไขข้อมูล ในรีเลชันที่ถูกอ้างอิงถึง ซึ่งจะทำให้สูญเสียความบูรณภาพของข้อมูล ดังตัวอย่างรูปที่ 3.6 หากมีการแก้ไขหรือลบข้อมูลของรีเลชัน Major ในแอตทริบิวส์ Major ซึ่งมีความสัมพันธ์อยู่กับรีเลชัน Student จะทำให้ความสัมพันธ์ของข้อมูลเสียหาย ดังนั้นจึงต้องเลือก การกระทำเพื่อไม่ให้ความสัมพันธ์ของข้อมูลสูญเสียไปดังนี้

กรณีการแก้ไขข้อมูล
1. ห้ามทำการแก้ไขข้อมูลในรีเลชันที่ถูกอ้างถึงนั้น เนื่องจากจะทำให้ข้อมูลในรีเลชันที่อ้างอิงมา ไม่สามารถอ้างอิงข้อมูลได้
2. อนุญาตให้ทำการแก้ไขข้อมูลในรีเลชันที่ถูกอ้างอิงถึงได้ แต่จะต้องตามไปแก้ไขข้อมูล ในรีเลชันที่อ้างอิงมาให้ตรงกับข้อมูลที่แก้ไขใหม่ทั้งหมด
3. อนุญาตให้ทำการแก้ไขข้อมูลในรีเลชันที่ถูกอ้างอิงถึงได้ โดยการแก้ไขข้อมูลในรีเลชัน ที่อ้างอิงมาให้มีค่าเป็น ค่าว่าง
รูปที่ 3.6 รีเลชันที่มีความสัมพันธ์กัน
กรณีการลบข้อมูล
1. ห้ามทำการลบข้อมูลในรีเลชันที่ถูกอ้างถึงนั้น เนื่องจากจะทำให้ข้อมูลใน รีเลชันที่อ้างอิงมา ไม่สามารถอ้างอิงข้อมูลได้
2. อนุญาตให้ทำการลบข้อมูลในรีเลชันที่ถูกอ้างอิงถึงได้ แต่จะต้อง ตามไปลบข้อมูลในรีเลชัน ที่อ้างอิงมาทั้งหมด
3. อนุญาตให้ทำการลบข้อมูลในรีเลชันที่ถูกอ้างอิงถึงได้ โดยการแก้ไขข้อมูลในรีเลชัน ที่อ้างอิงมาให้มีค่าเป็น ค่าว่าง (Null value)
ค่าว่าง (Null Values)
ค่าของ Attribute อาจจะเป็นค่าว่าง (Null) คือ ไม่มีค่าหรือยังไม่ทราบค่าได้ ตัวอย่างเช่น จำนวนไข่ของนกกระจอกเทศ จะสามารถบอกได้เมื่อนกกระจอกเทศออกไข่แล้ว แต่ยังไม่ทราบค่า ในขณะที่จำนวนไข่ของช้างนั้นไม่มีค่า เป็นต้น

3.4. การจัดการกับข้อมูล (Data manipulation)

Dr. E.F. Codd ได้นำทฤษฎีของเซท ซึ่งเป็นทฤษฎีทางคณิตศาสตร์มาใช้ในการจัดการกับ ข้อมูลของฐานเชิงสัมพันธ์ ซึ่งมีอยู่หลายการกระทำด้วยกัน ในบทนี้จะกล่าวโดยย่อๆ เท่านั้น เนื่องจากเป็นเนื้อหาทางทฤษฎี ซึ่งการนำไปใช้งานจริงนั้น จะพูดถึงในบทที่เกี่ยวกับคำสั่งที่ใช้ จัดการฐานข้อมูล ซึ่งเนื้อหาจะมีความใกล้เคียงกัน การกระทำเหล่านี้ได้แก่ 3.4.1. Restrict
คำว่า Restrict เป็นโอเปอเรเตอร์ทางคณิตศาสตร์ที่ใช้ในการเลือกข้อมูลจากรีเลชั่นหนึ่ง ๆ ที่มีเงื่อนไขตรงตามที่ระบุไว้ กล่าวอีกนัยหนึ่งคือ ใช้ในการแสดงข้อมูลของทูเพิลที่เป็นไปตามเงื่อนไขที่ระบุไว ้
รูปแบบ

ชื่อรีเลชั่น WHERE <COMPARISION>
COMPARISION ในที่นี้ หมายถึงเงื่อนไขของข้อมูลที่ต้องการเรียกดู ซึ่งจะระบุชื่อแอททริบิวต์ และค่าเฉพาะที่ต้องการดูข้อมูล โดยมีเครื่องหมายที่ประกอบการระบุเงื่อนไข เช่น = (เท่ากับ) < (น้อยกว่า) > (มากกว่า) <> (ไม่เท่ากับ) เป็นต้น ในกรณีที่มีเงื่อนไขมากกว่าหนึ่งเงื่อนไขอาจใช้คำว่า OR (หรือ) AND (และ) ประกอบกันเป็นเงื่อนไขที่ต้องการได้
ตัวอย่าง จากตารางให้แสดงรายละเอียดของนักศึกษาที่อยู่ นครราชสีมา
นักศึกษา
รหัสชื่อจังหวัด
B001แดงนครราชสีมา
B002ดำ กรุงเทพฯ
B003เขียวสระบุรี
B004 ขาวนครราชสีมา
นักศึกษา WHERE จังหวัด = 'นครราชสีมา'

ผลที่ได้ ดังนี้
นักศึกษา
รหัสชื่อจังหวัด
B001แดงนครราชสีมา
B004ขาวนครราชสีมา

3.4.2. Project

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

ชื่อรีเลชั่น [ชื่อแอตทริบิวต์ 1, ชื่อแอตทริบิวต์ 2, ...]
หรือ

ชื่อรีเลชั่น WHERE <COMPARISION> [ชื่อแอตทริบิวต์ 1, ...]
ตัวอย่าง จากตารางนักศึกษาที่ผ่านมา ให้แสดงชื่อจังหวัดที่นักศึกษาอยู่
นักศึกษา [จังหวัด]
ผลที่ได้ ดังนี้

จังหวัด
นครราชสีมา
กรุงเทพฯ
สระบุรี
นครราชสีมา
ตัวอย่าง จากตารางนักศึกษาที่ผ่านมา ให้แสดงชื่อนักศึกษาและชื่อจังหวัดเฉพาะนครราชสีมา
(นักศึกษา WHERE จังหวัด = 'นครราชสีมา' [ชื่อ,จังหวัด]
ผลที่ได้ ดังนี้

ชื่อ จังหวัด
แดงนครราชสีมา
ขาว นครราชสีมา

3.4.3. Product

Product หรือ Cartesian Product เป็นการกระทำเพื่อแสดงข้อมูลที่เป็นไปได้ทุกกรณีของการ จับคู่กันระหว่าง 2 รีเลชัน ดังตัวอย่างรูปที่ 3.7
รูปแบบ

ชื่อรีเลชั่นแรก TIMES ชื่อรีเลชั่นสอง]
จากตารางต่อไปนี้


นักศึกษา TIMES วิชา
ผลที่ได้คือ
หรือแสองสมการตามรูปที่ 3.7

รูปที่ 3.7 การกระทำ Product
3.4.4. Union คือ การแสดงข้อมูลตามลักษณะทฤษฎีการ Union ของเซต คือส่วนของข้อมูลทูเพิลที่ต่างกัน ของรีเลชัน จะนำมาทั้งหมด ส่วนข้อมูลทูเพิลที่เหมือนกันของรีเลชันจะนำมาจากรีเลชันเดียว โดยรีเลชั่นที่จะมา Union กัน ต้องเป็นรีเลชั่นที่ไปกันได้ (Compatible Relation) นั่นคือ จะต้องมีจำนวนและชื่อแอททริบิวต์ที่เหมือนกันและจัดเรียงแอททริบิวต์ในตาราง ที่เหมือนกัน (จากซ้ายไปขวา) ดังตัวอย่างรูปที่ 3.8 ข้อมูลส่วนที่แรเงาคือข้อมูลผลลัพธ์ของการทำ Union
รูปที่ 3.8 การกระทำ Union
รูปแบบ

ชื่อรีเลชั่นแรก UNION ชื่อรีเลชั่นสอง
ตัวอย่าง จากตาราง A และ B เป็นดังนี้ คือ
A
รหัสชื่อจังหวัด
B001แดงนครราชสีมา
B002ดำกรุงเทพฯ
B003เขียวสระบุรี
B004ขาวนครราชสีมา
B
รหัสชื่อจังหวัด
B001แดง นครราชสีมา
B005ฝนกรุงเทพฯ
A UNION B
ผลที่ได้คือ

รหัสชื่อจังหวัด<>/th>
B001แดงนครราชสีมา
B002ดำกรุงเทพฯ
B003เขียวสระบุรี
B004ขาวนครราชสีมา
B005ฝนกรุงเทพ
3.4.5. Intersection คำว่า Intersection เป็นโอเปอเรเตอร์ทางคณิตศาสตร์ที่ใช้ในการแสดงข้อมูลที่มีอยู่ในทั้งสองรีเล ชั่น หรือมากกว่า โดยรีเลชั่นที่จะมา Intersection กันจะเป็นรีเลชั่นที่ไปกันได้ (Compatible Relation) ดังตัวอย่างรูปที่ 3.9 ข้อมูลส่วนที่แรเงาคือข้อมูลผลลัพธ์ของการทำ Intersection

รูปที่ 3.9 การกระทำ Intersection
รูปแบบ

ชื่อรีเลชั่นแรก INTERSECT ชื่อรีเลชั่นสอง
จากตัวอย่างตาราง A และ B ที่ผ่านมา
A INTERSECT B
ผลที่ได้คือ
รหัสชื่อจังหวัด<>/th>
B001แดงนครราชสีมา

3.4.6. Difference

คือการแสดงข้อมูลทูเพิลของรีเลชัน ซึ่งไม่มีอยู่ในอีกรีเลชันหนึ่ง ตามทฤษฎีการ Difference ของเซต เช่นถ้านำข้อมูล รีเลชัน A - รีเลชัน B ข้อมูลที่ได้คือข้อมูลของรีเลชัน A ที่ไม่มีในรีเลชัน B ซึ่งจะให้ผลลัพธ์ที่แตกต่างกันกับ รีเลชัน B - รีเลชัน A โดยที่รีเลชั่นทั้งสองเป็นรีเลชั่นที่ไปกันได้ (Compatible Relation) ดังตัวอย่างรูปที่ 3.10 ซึ่งผลลัพธ์ของการทำ Difference คือส่วนที่แรเงา

รูปที่ 3.10 การกระทำ Difference
รูปแบบ
ชื่อรีเลชั่นแรก MINUS ชื่อรีเลชั่นสอง
จากตัวอย่างตาราง A และ B ที่ผ่านมา
A MINUS B
ผลที่ได้คือ
รหัสชื่อจังหวัด<>/th>
B002ดำกรุงเทพฯ
B003เขียวสระบุรี
B004ขาวนครราชสีมา

3.4.7. Join

เป็นการกระทำเพื่อแสดงข้อมูลที่เป็นไปได้ทั้งหมดที่เกิดจากการเชื่อมโยง ข้อมูลของ 2 รีเลชั่น ที่มีค่าของข้อมูลใน Attribute ที่กำหนดเหมือนกันโดย Attribute นี้อาจเป็นเพียง Attribute เดียวหรือมากกว่าก็ได้ แต่ที่สำคัญ Attribute นี้ จะต้องมีชื่อที่เหมือนกัน และมี Domain ของข้อมูลเดียวกัน
รูปแบบ

ชื่อรีเลชั่น JOIN ชื่อรีเลชั่น
ตัวอย่างจาก ตาราง X และ Y ที่กำหนดให้ต่อไปนี้

X JOIN Y
ผลที่ได้คือ

เมื่อทำคำสั่ง X JOIN Y เนื่องจากมีค่าของแอททริบิวต์ "City" ที่เหมือนกัน จึงใช้ Attribute นี้ เชื่อมโยงข้อมูล เช่นถ้าพิจารณาเฉพาะทูเพิลของ "B001" ของรีเลชั่น X ซึ่งมีค่าแอททริบิวต์ "City" เท่ากับ "Korat" มา Join กับทูเพิลต่าง ๆ ในรีเลชั่น Y ผลที่ได้ ได้แก่ทุก ๆ ทูเพิลในรีเลชั่น Y ที่มีค่าแอททริบิวต์ "City" เท่ากับ "Korat"
ในการ Join ระหว่างรีเลชั่นใด ๆ นั้น ลำดับในการ Join จะไม่มีผลต่อผลลัพธ์ที่เกิดจากการ Join นั้น ดังนั้น ไม่ว่าจะใช้คำสั่ง X JOIN Y หรือ Y JOIN X ย่อมให้ผลลัพธ์เช่นเดียวกัน

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

ชื่อรีเลชั่น DIVIDEBY ชื่อรีเลชั่น
ตัวอย่าง จากตาราง O และ P

ตัวอย่าง ถ้ารีเลชั่น P คือ

ตัวอย่าง ถ้ารีเลชั่น P คือ

Friday, July 17, 2015

คีย์

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



 ภาพที่ 2.1 แสดงความสัมพันธ์ระหว่างลูกค้ากับตารางบัตรเครดิต


1. ซูเปอร์คีย์

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

แบบที่ 1 รหัสอาจารย์
แบบที่ 2 รหัสอาจารย์และหมายเลขบัตรประจำตัวประชาชน
แบบที่ 3 รหัสอาจารย์ ชื่อสกุลอาจารย์ หมายเลขโทรศัพท์

2. คีย์คู่แข่ง

    คีย์ คู่แข่ง (candidate key) หมายถึง ซูเปอร์คีย์ที่มีขนาดเล็กที่สุด ที่ไม่มีแอททริบิวต์อื่นเป็นเซตย่อย มาร่วมกันเพื่อให้เกิดเป็นเอกลักษณ์ในตารางนั้น ๆ

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

4. คีย์นอก

    คีย์ นอก (foreign key) หมายถึง คีย์หลักของตารางแม่ เมื่อนำมาใช้ในการเชื่อมโยงในอีกตารางหนึ่ง (ตารางลูก) เพื่อให้ตารางสอง ตารางเชื่อมโยงข้อมูลถึงกันจะเรียกว่า คีย์นอก


ภาพที่ 2.2 แสดงความสัมพันธ์ระหว่างคีย์หลักและคีย์นอก


    จากภาพที่ 2.2 แสดงให้เห็นถึงข้อมูลทั้งตาราง MEMBER และตาราง DONOR มีความเชื่อมโยงถึงกันและกัน มีความหมายว่า นายทวีรัตน์ นวลช่วย หมู่โลหิต A- วันเดือนปีเกิดคือ 2508-04-18 น้ำหนัก 62 .หมายเลขโทรศัพท์ที่ติดต่อได้คือ 074-312-726 ได้บริจาคโลหิตเมื่อวันที่ 2550-10-22 ด้วยปริมาณโลหิต 400 CC และอีกรายการหนึ่งคือ นายเจริญ ถิ่นนุกูล ได้บริจาคโลหิตในวันเดียวกันด้วยปริมาณ 300 CC เป็นต้น ให้สังเกตว่า แอททริบิวต์ M_CODE มีชื่อเหมือนกันทั้งสองตาราง แต่ในตาราง MEMBER จะเรียกว่า คีย์หลัก ในขณะที่ตาราง DONOR กลับเรียกว่าคีย์นอก และข้อมูลในคีย์ทั้งสอง
ต้องมีค่าตรงกัน ฉะนั้นจึงเรียกว่าสัมพันธ์กัน

Wednesday, July 15, 2015


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


    ข้อดีของฐานข้อมูล
การจัดเก็บข้อมูลเป็นฐานข้อมูลได้เปรียบกว่าการจัดเก็บข้อมูลแบบแฟ้มข้อมูล  ดังนี้
    1. หลีกเลี่ยงความขัดแย้งของข้อมูล  การจัดเก็บข้อมูลแบบแฟ้มข้อมูล  โดยข้อมูลเรื่องเดียวกันอาจมีอยู่หลายแฟ้มข้อมูล     ซึ่งก่อให้เกิดความขัดแย้งของข้อมูลได้  (  Inconsistency  )  
    2. สามารถใช้ข้อมูลร่วมกันได้  ฐานข้อมูลเป็นการจัดเก็บข้อมูลรวมไว้ด้วยกัน  เมื่อผู้ใช้ต้องการข้อมูลจากฐานข้อมูล
        ซึ่งเป็นข้อมูลที่มาจากแฟ้มข้อมูลที่แตกต่างกันจะทำได้ง่าย
    3. สามารถลดความซ้ำซ้อนของข้อมูล  การจัดเก็บข้อมูลในลักษณะแฟ้มข้อมูล  อาจทำให้ข้อมูลประเภทเดียวกันถูกเก็บ
        ไว้หลาย ๆ แห่ง  ทำให้เกิดความซ้ำซ้อน  (Reclundancy  )  การนำข้อมูลมารวมเก็บไว้ในฐานข้อมูล จะช่วยลดปัญหา
        ความซ้ำซ้อนได้
    4. รักษาความถูกต้อง  ฐานข้อมูลบางครั้งอาจมีข้อผิดพลาดขึ้น  เช่น  การป้อนข้อมูลผิด ซึ่งระบบการจัดการฐานข้อมูล
         สามารถระบุกฎเกณฑ์เพื่อควบคุมความผิดพลาดที่อาจเกิดขึ้นได้
    5. สามารถกำหนดความเป็นมาตรฐานเดียวกันได้  เพราะในระบบฐานข้อมูลจะมีกลุ่มบุคคลที่คอยบริหารฐานข้อมูล
        กำหนดมาตรฐานต่าง ๆ ในการจัดเก็บข้อมูลในลักษณะเดียวกัน
    6. สามารถกำหนดระบบความปลอดภัยของข้อมูลได้  ผู้บริหารระบบฐานข้อมูลสามารถกำหนดการเรียกใช้ข้อมูลของ
       ผู้ใช้แต่ละคนให้แตกต่างกันตามหน้าที่ ความรับผิดชอบได้ง่าย
    7. ความเป็นอิสระของข้อมูลและโปรแกรม  โปรแกรมที่ใช้ในแต่ละแฟ้มข้อมูลจะมีความสัมพันธ์กับแฟ้มข้อมูลโดยตรง
       ถ้าหากมีการแก้ไขเปลี่ยนแปลงโครงสร้างข้อมูลก็ทำการแก้ไขโปรแกรมนั้น ๆ
     
ข้อเสียของฐานข้อมูล
      การเก็บข้อมูลรวมเป็นฐานข้อมูลมีข้อเสีย  ดังนี้คือ
1. มีต้นทุนสูง  ระบบฐานข้อมูลก่อให้เกิดต้นทุนสูง  เช่น  ซอฟท์แวร์ที่ใช้ในการจัดการระบบฐานข้อมูล  บุคลากร  ต้นทุน
   ในการปฏิบัติงาน  และ  ฮาร์ดแวร์  เป็นต้น
2. มีความซับซ้อน  การเริ่มใช้ระบบฐานข้อมูล  อาจก่อให้เกิดความซับซ้อนได้  เช่น  การจัดเก็บข้อมูล  การออกแบบฐาน
    ข้อมูล  การเขียนโปรแกรม  เป็นต้น
3. การเสี่ยงต่อการหยุดชะงักของระบบ  เนื่องจากข้อมูลถูกจัดเก็บไว้ในลักษณะเป็นศูนย์รวม  (Centralized  Database    System  )  ความล้มเหลวของการทำงานบางส่วนในระบบอาจทำให้ระบบฐานข้อมูลทั้งระบบหยุดชะงักได้


ความหมายของศัพท์เทคนิคที่เกี่ยวข้อง
            ความหมายของ  รีเลชั่น  (  Relation  )  มีคำเรียกทั่ว ๆ ไปว่า ตาราง  (  Table  )  เป็นคำนามที่แทนข้อมูลเรื่องใดเรื่องหนึ่ง
            ความหมายของ  ทูเพิล  (  Tuple )  คือค่าของข้อมูลในแต่ละแถว  (  Row  ) หรือ  เรคคอร์ด ( Record )
            ความหมายของ   คาร์ดินาลลิตี้   ( Cardinality  )  คือ  จำนวนแถวแต่ละข้อมูลในแต่ละรีเลชั่น
            ความหมายของ   แอทริบิวต์  (  Attribute  )  คือรายละเอียดของข้อมูลในแต่ละคอลัมน์  ซึ่งแสดงให้รู้ว่าประกอบด้วยอะไรบ้าง  หรือรู้จักในรูปของคอลัมน์  (  Column  )  หรือ  ฟิลด์  (  File  )
            ความหมายของ   คีย์หลัก   (  Primary  key  )  คือแอทริบิวต์ที่มีค่าของข้อมูลเป็นเอกลักษณ์หรือเฉพาะเจาะจงและจะเป็นค่าที่ไม่ซ้ำกันในแต่ละทูเพิล
            ความหมายของ   โดเมน (  Domain  ) คือขอบเขตของค่าของข้อมูลที่ควรจะเป็นในแต่ละแอทริบิวต์


Subscribe to RSS Feed Follow me on Twitter!