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

1.2  คำศัพท์พื้นฐานเกี่ยวกับระบบฐานข้อมูล
                   เพื่อให้รู้จักคำศัพท์ต่างๆ ที่เกี่ยวข้องกับระบบฐานข้อมูล โดยเฉพาะเรื่องของการประมวลผลในระบบแฟ้มข้อมูล ซึ่งมีการแบ่งระดับของข้อมูลในฐานข้อมูลไว้ดังต่อไปนี้
1.2.1 บิต (Bit) หมายถึง หน่วยของข้อมูลที่มีขนาดเล็กที่สุด เป็นข้อมูลที่มีการจัดเก็บในลักษณะของเลขฐานสองคือ 0 กับ 1
1.2.2 ไบต์ (Byte) หมายถึง หน่วยของข้อมูลที่เกิดจากการนำบิตมารวมกันเป็นตัวอักขระหรือตัวอักษร (Character)
1.2.3  ฟิลด์ (Field) หมายถึง เขตข้อมูลหรือหน่วยข้อมูลที่ประกอบขึ้นจากไบต์หรือตัวอักขระตั้งแต่หนึ่งตัวขึ้นไปมารวมกันแล้วได้ความหมายเป็นคำ เป็นข้อความ หรือของสิ่งใดสิ่งหนึ่ง เช่น ชื่อบุคคล ตำแหน่ง อายุ เป็นต้น
1.2.4  เรคคอร์ด (Record) หมายถึง ระเบียนหรือหน่วยของข้อมูลที่เกิดจากการนำฟิลด์หรือเขตข้อมูลหลายๆเขตข้อมูลมารวมกัน เพื่อเกิดเป็นรายการข้อมูลเรื่องใดเรื่องหนึ่ง เช่น ข้อมูลของพนักงาน 1 ระเบียน (คน) จะประกอบด้วยฟิลด์ รหัสพนักงาน ชื่อ-สกุล ที่อยู่ ตำแหน่ง เงินเดือน เป็นต้น
1.2.5   ไฟล์ (File) หมายถึง แฟ้มข้อมูลหรือหน่วยของข้อมูลที่เกิดจากการนำข้อมูลหลายๆระเบียนที่เป็นเรื่องเดียวกัน เช่น แฟ้มข้อมูลพนักงาน แฟ้มข้อมูลลูกค้า ฯลฯ ส่วนในระบบฐานข้อมูลก็จะนำคำศัพท์ต่างๆที่เกี่ยวข้องที่ควรรู้จักซึ่งจะกล่าวในลำดับต่อไป
1.2.6  เอนทิตี้ (Entity) หมายถึง ชื่อของสิ่งใดสิ่งหนึ่ง เปรียบเสมือนคำถาม อาจได้แก่คน สถานที่สิ่งของ การกระทำ ซึ่งต้องการจักเก็บข้อมูลไว้ เช่น เอนทิตี้พนักงาน เอนทิตี้นักเรียน เป็นต้น บางเอนทิตี้อาจไม่มีความหมายหากขาดเอนทิตี้อื่นในฐานข้อมูล เช่น เอนทิตี้ประวัติของพนักงานจะไม่มีความหมายหากปราศจากเอนทิตี้พนักงาน เพราะไม่ทราบว่าเป็นประวัติของพนักงานของคนใด เช่นนี้แล้วเอนทิตี้ประวัติพนักงานนับเป็นเอนทิตี้ชนิดอ่อนแอ (Weak Entity)
1.2.7   แอททริบิวต์ (Attribute) หมายถึง รายละเอียดข้อมูลที่แสดงลักษณะและคุณสมบัติของแอททริบิวต์หนึ่งๆ เช่น เอนทิตี้สินค้า ประกอบด้วย แอททริบิวต์รหัสสินค้า ประเภทสินค้า ชื่อสินค้า ราคาต่อหน่วย เป็นต้น
บางเอนทิตี้ก็ยังอาจประกอบด้วยข้อมูลหลายส่วน หลายแอททริบิวต์ย่อยมารวมกัน เช่น แอททริ
บิวต์ที่อยู่พนักงาน ประกอบด้วย บ้านเลขที่ ถนน ตำบล อำเภอ จังหวัด เช่นนี้แล้ว แอททริบิวต์ที่
อยู่พนักงานจึงเรียกว่าเป็น แอททริบิวต์ผสม (Composite Attribute)
                            บางแอททริบิวต์ก็อาจจะไม่มีค่าของตัวมันเอง แต่จะสามารถหาค่าได้จากแอททรบิวต์อื่นๆ เช่น แอททริบิวต์อายุปัจจุบัน อาจคำนวณค่าได้จากแอททริบิวต์วันเกิด ลักษณะเช่นนี้จึงอาจเรียน แอททริบิวต์อายุว่าเป็น แอททริบิวต์ที่แปลค่ามา (Derived Attribute)
1.2.8  การนอร์มัลไลเซซัน (Normalization)
เป็นทฤษฏีหรือกระบวนการที่ใช้ในการทำให้เอนทิตี้และแอททริบิต์ที่ได้ออกแบบไว้ มาจัดกลุ่มตารางให้มีความสัมพันธ์กัน ให้อยู่ในรูปแบบที่เรียกว่า รูปแบบบรรทัดฐาน หรือ Normal Form เพื่อให้ความสัมพันธ์ที่ได้อยู่ในรูปแบบบรรทัดฐานที่เหมาะสม โดยจุดมุ่งหมายของการนอร์มัลไลเซซัน คือ
1.)  ลดความซ้ำซ้อน (Redundancy) ของข้อมูลในตาราง ทำให้ไม่ต้องแก้ไขข้อมูลหลายๆที่ รวมทั้งทำให้ลดเนื้อที่ในการจัดเก็บข้อมูล
2.)  ทำให้การเปลี่ยนแปลงแก้ไขโครงสร้างของตารางได้ง่ายในภายหลัง
3.) ลดปัญหาความไม่ถูกต้องของข้อมูล โดยการปรับปรุงข้อมูลสามารถทำการปรับปรุงข้อมูลจากแหล่งข้อมูลเพียงแหล่งเดียว
กฎการนอร์มัลไลเซซัน เป็นกฎการใช้ในการออกแบบตาราง โดยนำตารางที่เกี่ยวข้องมาพิจารณาตามกฎในแต่ละข้อทั้ง 3 ข้อ โดยพิจารณาพร้อมตัวอย่าง ดังต่อไปนี้
                  
                   ตัวอย่างการลงทะเบียนนักศึกษาในแต่ละภาคการเรียนของปีการศึกษาโดยการนำตารางข้อมูลนักศึกษาและตารางรายวิชามาใช้ประกอบในการลงทะเบียนของนักศึกษาโดยใช่ข้อมูลจริงก่อนการใช้กฏการนอร์มัลไลเซซันตามตัวอย่าง

          ตารางรายวิชา

รหัสหมวดวิชา
หมวดวิชา
รหัสวิชา
ชื่อวิชา
หน่วยกิต
01
สามัญพื้นฐาน
2000-1001
3000-1002
ธุรกิจทั่วไป
บัญชีเบื้องต้น
2
3
02
วิชาชีพพื้นฐาน
2000-2001
3000-2002
คณิตศาสตร์
ภาษาอังกฤษธุรกิจ
3
1
03
วิชาชีพสาขาวิชา
2204-1001
3204-1002
ระบบปฏิบัติการ
ระบบฐานข้อมูล
3
3

ตารางนักศึกษา

รหัสนักศึกษา
ชื่อ
สกุล
ระดับชั้น
ประเภทวิชา
สาขาวิชา
5011010001
สมชาย
มีสกุล
ปวช.
พณิชยการ
การบัญชี
5022020002
สมาพร
ศรีสวัสดิ์
ปวส.
บริหารธุรกิจ
การตลาด
5011030003
วิลาวัลย์
พรพานิช
ปวช.
พณิชยการ
เลขานุการ
5022040004
ศักดิ์ชาย
รัตนชาติ
ปวส.
บริหารธุกิจ
คอมพิวเตอร์

ตารางลงทะเบียน

เล่มที่/เลขที่
ภาคเรียน/ปีการศึกษา
วันที่ลงทะเบียน
ค่าบำรุงการศึกษา
ค่าบำรุงห้องสมุด
รหัสนักศึกษา
รหัสวิชา
ค่าหน่วยกิต
01/001
1/2554
15/05/54
500
100
5011010001
2000-1001
2000-2001
2204-1001
50
50
50
02/002
2/2554
15/10/54
1,000
200
5022040004
3000-1002
3000-2002
3204-1002
100
100
100
นำข้อมูลจากตารางทั้ง 3 ตารางมาพิจารณาตามกฎการนอร์มัลไลเซซัน ในแต่ละข้อดังต่อไปนี้

          กฎข้อที่ 1 (First Normalized Form) จะต้องไม่มีค่าแอททริบิวต์ปรากฏมากกว่า 1 ค่าในตาราง ถ้าพบเหตุการณ์ดังกล่าว ให้นำค่าที่เกินมาเพิ่มเข้าไปอีก 1 เรคคอร์ด ตามตัวอย่าง
          จากตารางรายวิชา พบว่า มีรหัสวิชา ชื่อวิชา และหน่วยกิจ มากกว่า 1 รายการในหมวดวิชาเดียวกัน หลังจากการใช้กฎข้อที่ 1 จะได้การออกแบบตารางใหม่ ตามตัวอย่างต่อไปนี้

รหัสหมวดวิชา
หมวดวิชา
รหัสวิชา
ชื่อวิชา
หน่วยกิต
01
สามัญพื้นฐาน
2000-1001
ธุรกิจทั่วไป
2
01
สามัญพื้นฐาน
3000-1002
บัญชีเบื้องต้น
3
02
วิชาชีพพื้นฐาน
2000-2001
คณิตศาสตร์
3
02
วิชาชีพพื้นฐาน
3000-2001
ภาษาอังกฤษธุรกิจ
1
03
วิชาชีพสาขาวิชา
2204-1001
ระบบปฏิบัติการ
3
03
วิชาชีพสาขาวิชา
3204-1002
ระบบฐานข้อมูล
3
          จากตารางการลงทะเบียนพบว่า การลงทะเบียนของนักศึกษา 1 record จะต้องลงทะเบียนมากกว่า 1 รายวิชา หลังการใช้กฎข้อที่ 1 จะได้ออกแบบตารางใหม่ ตามตัวอย่างต่อไปนี้

เล่มที่/เลขที่
ภาคเรียน/ปีการศึกษา
วันที่ลงทะเบียน
ค่าบำรุงการศึกษา
ค่าบำรุงห้องสมุด
รหัสนักศึกษา
รหัสวิชา
ค่าหน่วยกิต
01/001
1/2554
15/05/54
500
100
5011010001
2000-1001
50
01/001
1/2554
15/05/54
500
100
5011010001
2000-2001
50
01/001
1/2554
15/05/54
500
100
5011010001
2204-1001
50
02/002
2/2554
15/10/54
1,000
200
5022040004
3000-1002
100
02/002
2/2554
15/10/54
1,000
200
5022040004
3000-2002
100
02/002
2/2554
15/10/54
1,000
200
5022040004
3204-1002
100

กฎข้อที่ 2 (Second Normalized Form) หลังการผ่านกฎข้อที่ 1 แล้ว ให้ตรวจสอบแอททริบิวต์ที่ไม่ใช่คีย์ตัวใด (non-key) ขึ้นอยู่กับส่วนใดส่วนหนึ่งของคีย์หลัก จะต้องขึ้นอยู่กับคีย์หลักอย่างสมบูรณ์
          จากตารางการลงทะเบียน พบว่า รหัสวิชา และค่าหน่วยกิต เป็นส่วนหนึ่งของคีย์หลักที่ไม่ขึ้นกับคีย์หลัก(เล่มที่/เลขที่)อย่างสมบูรณ์ จึงต้องแยกออกมาเป็นตารางใหม่ และเพิ่มแอททริบิวต์เล่มที่/เลขที่ เพื่อเชื่อมความสัมพันธ์กับตารางหลัก ตามตัวอย่างต่อไปนี้

เล่มที่/เลขที่
ภาคเรียน/ปีการศึกษา
วันที่ลงทะเบียน
ค่าบำรุงการศึกษา
ค่าบำรุงห้องสมุด
รหัสนักศึกษา
01/001
1/2554
15/05/54
500
100
5011010001
02/002
2/2554
15/10/54
1,000
200
5022040004

เล่มที่/เลขที่
รหัสวิชา
ค่าหน่วยกิต
01/001
2000-1001
50
01/001
2000-2001
50
01/001
2204-1001
50
02/002
3000-1002
100
02/002
3000-2002
100
02/002
3204-1002
100

          กฎข้อที่ 3 (Thrid Normalized Form) หลังการผ่านกฎข้อที่ 1 และ 2 แล้ว ให้ตรวจสอบแอททริบิวต์ในตาราง จะต้องไม่มีแอททริบิวต์ใดขึ้นอยู่กับแอททริบิวต์ที่ไม่ใช่คีย์หลัก ถ้าพบให้นำแอททริบิวต์ดังกล่าวแยกออกมาเป็นตารางใหม่
          จากตารางรายวิชา พบว่า แอททริบิวต์เกือบทั้งหมดขึ้นอยู่กับแอททริบิวต์รหัสวิชา ยกเว้นหมวดวิชาที่ขึ้นอยู่กับรหัสหมวดวิชา จึงต้องแยกหมวดวิชามาสร้างเป็นตารางใหม่ ตามตัวอย่างต่อไปนี้

รหัสหมวดวิชา
หมวดวิชา
 01
สามัญพื้นฐาน
02
วิชาชีพพื้นฐาน
03
วิชาชีพสาขาวิชา

รหัสหมวดวิชา
รหัสวิชา
ชื่อวิชา
หน่วยกิต
01
2000-1001
ธุรกิจทั่วไป
2
01
3000-1002
บัญชีเบื้องต้น
3
02
2000-2001
คณิตศาสตร์
3
02
3000-2001
ภาษาอังกฤษธุรกิจ
1
03
2204-1001
ระบบปฏิบัติการ
3
03
3204-1002
ระบบฐานข้อมูล
3

                   1.2.9 ความสัมพันธ์ (Relationships) หมายถึง ความสัมพันธ์ระหว่างเอนทิตี้ เช่น ความสัมพันธ์ระหว่างเอนทิตี้นักศึกษา และเอนทิตี้คณะวิชา เป็นลักษณะว่านักศึกษาแต่ละคนเรียนอยู่คณะวิชาใดคณะวิชาหนึ่งเป็นต้น ความสัมพันธ์ระหว่างเอนทิตี้จึงอาจแบ่งออกเป็น 3 ประเภท คือ
                             1.2.9.1 ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (One-to-one Relationships) เป็นการแสดงความสัมพันธ์ของจ้อมูลในเอนทิตี้หนึ่งที่มีความสัมพันธ์กับข้อมูลในอีกเอนทิตี้หนึ่ง ในลักษณะหนึ่งต่อหนึ่งตัวอย่างเช่น ผู้เช่า 1 คนสามารถเช่าหนังสือได้เพียง 1 เล่มหรือ 1 ชุดเท่านั้น ในขณะเดียวกัน หนังสือ 1 เล่มหรือ 1 ชุด ก็จะมีผู้เช่าเพียงคนเดียว เพราะมีเพียงเล่มเดียวหรือชุดเดียวเท่านั้น

รหัสหนังสือ
ประเภทหนังสือ
ชื่อหนังสือ
สต็อก
1001
นวนิยาย
แต่ปางก่อน
เล่ม
2023
การ์ตูน
โดเรมอน
เล่ม
3022
หนังสือชุด
มังกรหยก
ชุด

รหัสหนังสือ
ชื่อผู้เช่า
เลขที่บัตรประชาชน
วันที่เช่า
1001
สมชาย มีสกุล
12300123012
02/05/2554
2023
สมศรี สกุลวงศ์
23562120247
05/05/2554
3022
สมพล ชาติสกุล
26655442582
07/05/2554
รูปที่ 1.1 แสดงความสัมพันธ์แบบหนึ่งต่อหนึ่ง

                             1.2.9.2 ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (One-to-many Relationships) เป็นการแสดงความสัมพันธ์ของข้อมูลในเอนทิตี้หนึ่ง ที่มีความสัมพันธ์กับข้อมูลหลายๆข้อมูลในอีกเอนทิตี้หนึ่ง ตัวอย่าง เช่น ผู้เช่า 1 คนสามารถเช่าหนังสือได้เพียง 1 เล่มหรือ 1 ชุด

รหัสหนังสือ
ประเภทหนังสือ
ชื่อหนังสือ
สต็อก
1001
นวนิยาย
แต่ปางก่อน
เล่ม
2023
การ์ตูน
โดเรมอน
เล่ม
3022
หนังสือชุด
มังกรหยก
ชุด

รหัสหนังสือ
ชื่อผู้เช่า
เลขที่บัตรประชาชน
วันที่เช่า
1001
สมชาย มีสกุล
12300123012
02/05/2554
3002
สมศรี สกุลวงศ์
23562120247
05/05/2554
1001
สมพล ชาติสกุล
25645621548
05/05/2554
รูปที่ 1.2 แสดงความสัมพันธ์แบบหนึ่งต่อกลุ่ม

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

                             1.2.9.3 ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (Many-to-many Relationships) เป็นการแสดงความสัมพันธ์ของข้อมูลสองเอนทิตี้ในลักษณะกลุ่มต่อกลุ่ม ตัวอย่างเช่น หนังสือ 1 เรื่องจะมีผู้ยืมหนังสือได้มากกว่า 1 คน ในขณะเดียวกัน ผู้ยืมหนังสือ 1 คนสามารถยืมหนังสือได้มากกว่า 1 เรื่อง

รหัสหนังสือ
ประเภทหนังสือ
ชื่อหนังสือ
สต็อก
1001
นวนิยาย
แต่ปางก่อน
เล่ม
2023
การ์ตูน
โดเรมอน
เล่ม
3022
หนังสือชุด
มังกรหยก
ชุด

รหัสหนังสือ
ชื่อผู้เช่า
เลขที่บัตรประชาชน
วันที่เช่า
1001
สมชาย มีสกุล
12300123012
02/05/2554
3022
สมชาย มีสกุล
12300123012
05/05/2554
1001
สมพล ชาติสกุล
25645621548
05/05/2554
2023
สมพล ชาติสกุล
25645621548
05/05/2554
รูปที่ 1.3 แสดงความสัมพันธ์แบบหนึ่งต่อกลุ่ม
        ฐานข้อมูล อาจหมายถึง โครงสร้างสารสนเทศ ที่ประกอบด้วยหลายๆเอนทิตี้ที่มีความสัมพันธ์กัน


 1.3  ประโยชน์ของการประมวลผลแบบฐานข้อมูล 
             ผลจากการจัดเก็บข้อมูลรวมกันเป็นฐานข้อมูล จะเกิดประโยชน์หลายประการพอสรุปได้ดังนี้ 
1.3.1 สามารถลดความซ้ำซ้อนของข้อมูลได้ การจัดเก็บข้อมูลในแฟ้มข้อมูลธรรมดานั้นอาจจำเป็นที่ผู้ใช้แต่ละคนจะต้องมีแฟ้มข้อมูลของตนไว้เป็นส่วนตัว จึงอาจเป็นเหตุให้มีการเก็บข้อมูลชนิดเดียวกันไว้หลายๆที่ ทำให้เกิดความซ้ำซ้อน การนำข้อมูลมารวมเก็บไว้ในฐานข้อมูลจะช่วยลดปัญหาการเกิดความซ้ำซ้อนของข้อมูลได้ โดยระบบจัดการฐานข้อมูลจะช่วยควบคุมความซ้ำซ้อนได้ เนื่องจากระบบจัดการฐานข้อมูลจะทราบได้ตลอดเวลาว่ามีข้อมูลซ้ำซ้อนกันอยู่ที่ใดบ้าง
1.3.2 สามารถใช้ข้อมูลร่วมกันได้ ดังที่กล่าวมาในตอนต้นแล้วว่า ฐานข้อมูลจะเป็นการจัดเก็บข้อมูลไว้ด้วยกัน ดังนั้นหากผ็ใช้ต้องการใช้ข้อมูลในฐานข้อมูลที่มาจากแฟ้มข้อมูลต่างๆ ก็สามารถติดต่อและเรียกใช้ข้อมูลได้โดยง่าย
1.3.3 หลีกเลี่ยงความขัดแย้งของข้อมูลได้ สืบเนื่องจากการเก็บข้อมูลชนิดเดียวกันไว้หลายๆที่เมื่อมีการปรับปรุงข้อมูลเดียวกันนี้ แต่ปรับปรุงไม่ครบทุกที่ที่มีข้อมูลเก็บอยู่ ก็จะทำให้เกิดปัญหาข้อมูลชนิดเดียวกัน อาจมีค่าไม่เหมือนในแต่ละที่ที่เก็บข้อมูล จึงก่อให้เกิดความขัดแย้งของข้อมูลขึ้น (Inconsistency)
1.3.4 สามารถรักษาความถูกต้องเชื่อถือได้ของข้อมูล ในระบบจัดการฐานข้อมูล (DBMS) จะสามารถใส่กฎเกณฑ์เพื่อควบคุมความผิดพลาดที่อาจเกิดขึ้นได้ เช่น การป้อนข้อมูลที่ผิดพลาด การคำนวณค่าที่ให้ความถูกต้องแม่นยำ ฯลฯ
1.3.5 สามารถกำหนดระบบความปลอดภัยของข้อมูลได้ ระบบความปลอดภัยของข้อมูลในที่นี้เป็นการป้องกันไม่ให้ผู้ที่ไม่มีสิทธิ์มาใช้ หรือมาเห็นข้อมูลบางอย่างในระบบ ผู้บริหารฐานข้อมูลจะสามารถกำหนดระดับการเรียกใช้ข้อมูลของผู้ใช้แต่ละคนได้ตามความเหมาะสม ทั้งนี้เนื่องจากผู้ใช้แต่ละคนจะสามารถมองข้อมูลในฐานข้อมูลที่ต่างกันตามสิทธิ์ที่ตนเองได้รับในการเข้าถึงข้อมูล
1.3.6 สามารถกำหนดความเป็นมาตรฐานเดียวกันของข้อมูลได้ การเก็บข้อมูลรวมกันไว้ในฐานข้อมูล จะทำให้สามารถกำหนดมาตรฐานข้อมูลได้ รวมทั้งมาตรฐานต่างๆ ในการจัดเก็บข้อมูลให้เป็นไปในลักษณะเดียวกัน เช่น การกำหนดรูปแบบการเขียนวันที่ในลักษณะ วัน/เดือน/ปี หรือ ปี/เดือน/วัน ก็สามารถกำหนดได้ ทั้งนี้ผู้ที่คอยบริหารฐานข้อมูลที่เราเรียกว่า ผู้บริหารฐานข้อมูล (Database Administrator : DBA) เป็นผู้กำหนดมาตรฐานต่างๆ เหล่านี้
1.3.7 เกิดความเป็นอิสระของข้อมูล โดยปกติโปรแกรมที่เขียนขึ้นใช้งานจะมีความสัมพันธ์กับรายละเอียดหรือโครงสร้างของแฟ้มข้อมูลที่ต้องการใช้ ดังนั้นหากมีการเปลี่ยนแปลงโครงสร้างข้อมูลในแฟ้มข้อมูลใดเกิดขึ้นก็ต้องแก้ไขโปรแกรมทุกโปรแกรมที่เกี่ยวข้องกับการเรียกข้อมูลจากแฟ้มข้อมูลดังกล่าวด้วย ถึงแม้ว่าโปรแกรมเหล่านั้นอาจจะเป็นเพียงเรียกใช้แฟ้มข้อมูลดังกล่าวเพื่อดูข้อมูลบางอย่างที่มิได้มีการปรับโครงสร้างก็ตาม ในระบบฐานข้อมูลมีตัวจัดการฐานข้อมูลทำหน้าที่เป็นตัวเชื่อมโยงกับฐานข้อมูล โปรแกรมต่างๆ อาจไม่จำเป็นต้องมีโครงสร้างข้อมูลทุกครั้ง ดังนั้นการแก้ไขข้อมูลบางครั้งจึงอาจกระทำเฉพาะกับโปรแกรมที่เรียกใช้ข้อมูลที่เปลี่ยนแปลงเท่านั้น ส่วนโปรแกรมที่ไม่ได้เรียกใช้ข้อมูลดังกล่าวก็จะเป็นอิสระจากการเปลี่ยนแปลงที่กล่าวมา

1.4  รูปแบบของระบบฐานข้อมูล
     รูปแบบของระบบฐานข้อมูล มีอยู่ด้วยกัน 3 ประการ คือ 
1.4.1 ฐานข้อมูลเชิงสัมพันธ์ (Relational Database) เป็นการเก็บข้อมูลในรูปแบบที่เป็นตาราง (Table) หรือเรียกว่า รีเลชัน (Relation) มีลักษณะเป็น 2 มิติ คือ เป็นแถวและเป็นคอลัมน์ การเชื่อมโยงข้อมูลระหว่างตารางจะเชื่อมโยงโดยใช้แอททริบิวต์ หรือคอลัมน์ที่เหมือนกันทั้งสองตารางเป็นตัวเชื่อมโยงข้อมูล ตัวอย่างเช่น ตารางการลงทะเบียน ถ้าต้องการทราบว่านักเรียนรหัส 1001 ลงทะเบียนวิชาอะไร กี่หน่วยกิต ก็สามารถหารหัสวิชาในตารางนักเรียนไปตรวจสอบกับรหัสวิชา ซึ่งเป็นคีย์หลักในตารางหลักสูตร เพื่อนำชื่อวิชาและหน่วยกิตมาใช้ดังตารางหารหัสวิชาในตารางนักเรียนไปตรวจสอบกับรหัสวิชา ซึ่งเป็นคีย์หลักในตารางหลักสูตร เพื่อนำชื่อวิชาและหน่วยกิตมาใช้ดังตาราง

ลงทะเบียน

รหัสนักเรียน
ชื่อ-สกุล
แผนกวิชา
รหัสวิชา
 1001
สมชาย มีสุข
บัญชี
001
1002
สมพล สุขสม
การขาย
003
1003
สมสมร สุขสวัสดิ์
คอมฯ
002

หลักสูตร

รหัสวิชา
ชื่อวิชา
รหัสวิชา
001
ประมวลผลคำ
3
003
ตารางงาน
3
002
การนำเสนอ
2
รูปที่ 1.4 แสดงตารางที่มีความสัมพันธ์เชิงสัมพันธ์

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

           จากรูปที่ 1.5 จะเห็นได้ว่า กรอบสี่เหลี่ยมแสดงถึงชนิดของระเบียนในฐานข้อมูล โดยมีเส้นทางแสดงถึงความสัมพันธ์ระหว่างข้อมูล เป็นการแสดงความสัมพันธ์แบบกลุ่มต่อกลุ่ม จากรูป พบว่าในแต่ละสาขามีหลักสูตรมากกว่า 1 รายวิชา และในแต่ละวิชาพบว่า มีนักศึกษาลงทะเบียนเรียนมากว่า 1 คน และนักศึกษา 1 คนก็สามารถลงทะเบียนได้มากกว่า 1 วิชา
                   1.4.3  ฐานข้อมูลแบบลำดับชั้น (Hierarchical Database) ฐานข้อมูลแบบลำดับขั้น เป็นโครงสร้างที่จัดเก็บข้อมูลในลักษณะความสัมพันธ์แบบ Parent-Child Relationship Type หรือเป็นโครงสร้างรูปแบบต้นไม้ ข้อมูลที่จัดเก็บในที่นี้ คือ ระเบียน (Record) ซึ่งประกอบด้วยค่าของเขตข้อมูลของเอนทิตี้หนึ่งๆนั่นเอง
                             ฐานข้อมูลแบบลำดับชั้นนี้คล้ายคลึงกับฐานข้อมูลแบบเครือข่าย ต่างกันที่ฐานข้อมูลแบบเครือข่าย ต่างกันที่ฐานข้อมูลแบบลำดับขั้น มีกฎเพิ่มขึ้นมาหนึ่งประการ คือ ในแต่ละกรอบจะมีลูกศรวิ่งเข้าหาได้ไม่เกิน 1 หัวลูกศร ดังนั้น จากตัวอย่างรูปที่ 1.5 จะพบว่า กรอบนักเรียนจะมีลูกศรเข้ามา 2 ทาง ดังนั้นจึงไม่สามารถอาจสร้างฐานข้อมูลสำหรับตัวอย่างรูปแบบที่ 1.6 โดยใช้ฐานข้อมูลแบบลำดับขั้นด้วยวิธีปกติได้
ผลการค้นหารูปภาพสำหรับ ตัวอย่างฐานข้อมูลแบบลำดับชั้น
รูปที่ 1.6 ตัวอย่างฐานข้อมูลแบบลำดับชั้น
         จากรูปที่ 1.6 ข้างต้น แสดงตัวอย่างฐานข้อมูลแบบลำดับชั้น ประกอบด้วย
1.)     ระเบียน 3 ระเบียน คือแผนก นักเรียน และหลักสูตรแต่ละรายวิชา
2.)    ความสัมพันธ์แบบ PCR 2 ประเภท คือความสัมพันธ์ของข้อมูลแผนกนักเรียน และความสัมพันธ์ของข้อมูลแผนกกับหลักสูตร โดยมีแผนกเป็นระเบียนประเภทพ่อ-แม่ ส่วนนักเรียนและหลักสูตรเป็นระเบียนประเภทลูก ความสัมพันธ์ของทั้ง 2 ประเภทแบบหนึ่งต่อกลุ่ม
 ตัวอย่างข้อมูล เช่น
ผลการค้นหารูปภาพสำหรับ ตัวอย่างข้อมูลฐานข้อมูลแบบลำดับชั้น
รูปที่ 1.7 ตัวอย่างข้อมูลฐานข้อมูลแบบลำดับชั้น

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


1.5  โปรแกรมฐานข้อมูลที่นิยมใช้
โปรแกรมฐานข้อมูล เป็นโปรแกรมหรือซอฟต์แวร์ที่ช่วยจัดการข้อมูลหรือรายการต่างๆที่อยู่ในฐานข้อมูล ไม่ว่าจะเป็นการจัดเก็บ การเรียกใช้ การปรับปรุงข้อมูล
โปรแกรมฐานข้อมูลจะช่วยให้ผู้ใช้สามารถค้าหาข้อมูลได้อย่างรวดเร็ว ซึ่งโปรแกรมฐานข้อมูลที่นิยมใช้มีอยู่ด้วยกันหลายตัว เช่น Access, FoxPro, Mysql, Oracle, SQL Sever เป็นต้น โดยแต่ละโปรแกรมจะมีความสามารถต่างกัน บางโปรแกรมใช้ง่ายแต่จำกัดขอบเขตการใช้งานหรือใช้กับฐานข้อมูลขนาดเล็กบางโปรแกรมใช้งานยากกว่าแต่จะมีความสามารถในการทำงานมากกว่าหรือใช้กับฐานข้อมูลขนาดใหญ่จึงจะขอกล่าวถึงโปรแกรมบางโปรแกรมที่นิยมใช้กัน ได้แก่ 
1.5.1 โปรแกรม Dbase เป็นโปรแกรมฐานข้อมูลอีกชนิดหนึ่ง การใช้งานคล้ายกับโปรแกรม FoxPro ข้อมูลหรือรายงานที่อยู่ในไฟล์บน Dbase จะสามารถส่งไปประมวลผลในโปรแกรม Word Processor ได้และแม้แต่โปรแกรม Excel ก็สามารถอ่านไฟล์ .DBF ที่สร้างขึ้นโดยโปรแกรม Dbase ได้ด้วย
1.5.2 โปรแกรม Access เป็นโปรแกรมที่นิยมใช้กันมากในขณะนี้โดยเฉพาะระบบฐานข้อมูลขนาดเล็กและขนาดกลาง สามารถสร้างแบบฟอร์มที่ต้องการจะเรียกดูข้อมูลในฐานข้อมูล หลังจากบันทึกข้อมูลลงในฐานข้อมูลเรียบร้อยแล้ว จะสามารถค้นหาหรือเรียกดูข้อมูลจากเขตข้อมูลใดก็ได้ การแสดงผลก็อาจแสดงทางจอภาพ หรือส่งพิมพ์ออกทางเครื่องพิมพ์ก็ได้ นอกจากนี้ Access ยังมีระบบความปลอดภัยของข้อมูลโดยการกำหนดรหัสผ่านเพื่อป้องกันความปลอดภัยของข้อมูลในระบบได้ด้วย สำหรับโปรแกรม Access นี้จะกล่าวถึงวิธีการใช้เบื้องต้นโดยสังเขปไว้ในหน่วยถัดไป
1.5.3 โปรแกรม FoxPro เป็นโปรแกรมฐานข้อมูลที่มีผู้ใช้งานมากโปรแกรมหนึ่ง เนื่องจากการใช้ง่ายทั้งวิธีการเรียกจากเมนูของ FoxPro และประยุกต์โปรแกรมขึ้นใช้งาน โปรแกรมที่เขียนด้วย FoxPro จะสามารถใช้กับ Dbase ได้ คำสั่งและฟังก์ชันต่างๆ ใน Dbase จะสามารถใช้งานบน FoxPro ได้ นอกจากนี้ใน FoxPro ยังมีเครื่องมือช่วยในการเขียนโปรแกรม เช่น การสร้างรายงาน โปรแกรมที่เขียนด้วย FoxPro จะสามารถแปรเป็นไฟล์ .EXE ได้เช่นเดียวกับโปรแกรมภาษาอื่นๆ และสามารถนำไปใช้งานกับคอมพิวเตอร์เครื่องอื่นๆได้โดยไม่ต้องมีโครงสร้างของ FoxPro อยู่ในเครื่องด้วย
1.5.4 โปรแกรม Oracle หมายถึง Object – Relational Database Management System (ORDBMS) มีความสมารถทำงานดั้งในรูปแบบ Rational และบางคุณสมบัติของ Object Oriented เป็นผลิตภัณฑ์จากบริษัทออราเคิล และยังเป็น RDBMS เชิงพาณิชย์ตัวแรกของโลก ออราเคิล ยังเป็น RDBMS ระดับ Database Sever มีความสามารถโดดเด่นในด้านการจัดการฐานข้อมูล มีความน่าเชื่อถือสูงสุด(reliable) และเทคโนโลยี Rollback Segment ที่สามารถจัดการกับข้อมูลในกรณีที่เกิดการล้มเหลวของระบบ หรือภาวะระบบที่ไม่สามารถให้บริการได้ด้วยเทคโนโลยี Rollback Segment จะจัดการ Instance Recovery หรือข้อมูลไม่ให้เกิดความเสียหายอันเนื่องมาจากการล้อมเหลวของระบบได้อย่างดรมาก
1.5.5 โปรแกรม Microsoft SQL Server เป็น RDMBS ระดับ Database Sever อีกตัวหนึ่ง ที่ได้รับความนิยมมากที่สุดในยุคปัจจุบัน และถือเป็นซอฟต์แวร์ของไมโครซอฟต์ตัวแรกที่ใช้เทคโนโลยี .NET เป็นเทคโนโลยีที่ทำให้เราสามารถนำเสนอข้อมูลออกมาใช้กับ Application ของ Windows หรือผ่านทางเครือข่ายอินเทอร์เน็ตได้สมบูรณ์ขึ้น โดยทั่วไป MS-SQL Server จะทำงานร่วมกับระบบปฏิบัติการ Windows 2000, 2003 Sever เพื่อที่จะใช้ MS-SQL Server เป็นฐานข้อมูลในการทำระบบ ไคลเอนท์/เซอร์ฟเวอร์

1.6  คีย์ (KEY)
ในการอ้างอิง การค้าหา การแก้ไขเปลี่ยนแปลงข้อมูล หรือการกำหนดความสัมพันธ์ระหว่างข้อมูลจะเกิดขึ้นอย่างมีประสิทธิภาพ จะต้องกำหนดคีย์ (KEY) ให้กับ Table ก่อนนอกจากนี้การกำหนดคีย์จะทำให้การอ้างอิงและการประมวลผลข้อมูลได้สะดวกขึ้นและยังช่วยประหยดเนื้อที่ใช้ในการจัดเก็บคีย์ที่ใช้ในระบบฐานข้อมูลแบ่งออกได้หลายประเภท ดังต่อไปนี้

1.6.1 Primary Key
        หมายถึง คีย์หลักที่กำหนดจากฟิลด์ที่ไม่มีข้อมูลซ้ำซ้อน (unique) ใน Table เดียวกันโดยเด็ดขาด และจะต้องมีค่าเสมอจะเป็นค่าว่าง (Null) ไม่ได้ สามารถนำกลับมาจัดเรียงลำดับและแยกแยะข้อมูลแต่ละรายการออกจากกันได้อย่างดี ตัวอย่างของข้อมูลที่นำมากำหนดเป็นคีย์หลักได้แก่ รหัสนักเรียน รหัสสิ้นค้า หมายเลขห้องพัก ฯลฯ
ผลการค้นหารูปภาพสำหรับ แสดงตัวอย่างการกำหนดคีย์หลัก (Primary Key)
รูปที่ 1.8 แสดงตัวอย่างการกำหนดคีย์หลัก (Primary Key)

1.6.2 Secondary Key
                      หมายถึง คีย์รอง โดยโปรแกรม Access จะเรียกคีย์ชนิดนี้ว่า Index (ดัชนี) ซึ่งเป็นคุณสมบัติหนึ่งในการกำหนดคีย์หลักและยังใช้ Index ในการค้นหา และจัดเรียงข้อมูลที่มีจำนวนมากได้อย่างรวดเร็ว ตัวอย่างเช่น ถ้าต้องการค้นหาฟิลด์ชื่อพนักงาน ถ้าฟิลด์ดังกล่าวไม่ได้กำหนด Index ไว้ โปรแกรมจะเริ่มค้นตั้งตีรายการแรกไปเรื่อยๆจนกระทั่งพบ ดังนั้นถ้าชื่อพนักงานที่ต้องการค้นหาอยู่รายการท้ายๆ จะเยเวลาในการสืบค้น โดยเฉพาะข้อมูลที่มีจำนวนมากๆ ถ้ากำหนด Index ให้กับฟิลด์ดังกล่าว ฟิลด์ชื่อพนักงานจะถูกเก็บในแฟ้ม Index ของ DBMS และจะจัดเรียงชื่อตามลำดับตัวอักษร เมื่อมีการสืบค้นก็จะค้นหาที่แฟ้ม Index เพื่อทราบตำแหน่งรายการที่ต้องการและเข้าถึงข้อมูลดังกล่าวได้อย่างรวดเร็ว ฟิลด์ที่กำหนดเป็น Index จะยอมให้ข้อมูลซ้ำกันได้ (Duplicate)
1.6.3 Foreign Key
                      หมายถึง คีย์นอก เป็นคีย์ที่เชื่อม Table ที่เกี่ยวข้องหรือมีความสัมพันธ์กัน เช่น ใน Table หลักสูตรกำหนดให้รหัสวิชาเป็น Primary Key และทำการเชื่อมโยงไปยัง Table ลงทะเบียน เพื่อต้องการทราบชื่อรายวิชาและหน่วยกิตที่นักเรียนลงทะเบียน โดยกำหนดฟิลด์รหัสวิชาใน Table ลงทะเบียนเป็น Foreign Key ในลักษณะความสัมพันธ์ One to many หมายความว่ารหัสวิชา 1 วิชาสามารถให้นักเรียนลงทะเบียนได้มากกว่า 1 คน ดังนั้นจึงมีรหัสซ้ำกันได้ใน Table ลงทะเบียน
ผลการค้นหารูปภาพสำหรับ แสดงตัวอย่างการกำหนดคีย์นอก (Foreign Key)
รูปที่ 1.9 แสดงตัวอย่างการกำหนดคีย์นอก (Foreign Key)

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

1.6.5 Compound Key
                      หมายถึง คีย์ที่เกิดจากการรวมข้อมูลหลายฟิลด์ ให้มีคุณสมบัติเหมือนคีย์หลัก (มีค่าไม่ซ้ำกันและไม่มีค่าว่างหรือ null value) เช่นการนำฟิลด์ชื่อพนักงานมารวมกับฟิลด์สกุลของพนักงาน ทำให้เกิดเป็นฟิลด์ข้อมูลที่มีค่าไม่ซ้ำซ้อนกัน เราเรียกคีย์ที่เกิดจากการรวมชื่อพนักงาน และสกุลว่า Compound Key หรือคีย์รวม
ผลการค้นหารูปภาพสำหรับ แสดงตัวอย่างการกำหนดคีย์รวม (Compound Key)
รูปที่ 1.11 แสดงตัวอย่างการกำหนดคีย์รวม (Compound Key)


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

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