วันจันทร์ที่ 24 ธันวาคม พ.ศ. 2555


วิธีการสืบค้นฐานข้อมูล  มหาวิทยาลับรามคำแหง

ฐานข้อมูล Digital Collection รวบรวมวิทยานิพนธ์ งานวิจัย บทความวารสาร และหนังสือหายากฉบับเต็ม 
รวบรวมจากมหาวิทยาลัยต่างๆ ทั่วประเทศไทย บุคคลทั่วไปต้องสมัครสมาชิกเพื่อรับสิทธิในการเข้าใช้งานฟรี 
สนับสนุนโดย สำนักงานบริหารเทคโนโลยีสารสนเทศเพื่อพัฒนาการศึกษา สำนักงานคณะกรรมการการอุดมศึกษา กระทรวงศึกษาธิการวิทยานิพนธ์ และงานวิจัย มหาวิทยาลัยรามคำแหง เดิมสืบค้นได้จาก ฐานข้อมูลวิทยานิพนธ์ 
และงานวิจัย มหาวิทยาลัยรามคำแหง (DCMS) ซึ่งให้ข้อมูลถึงปี พ.ศ. 2549 ส่วนข้อมูลตั้งแต่ปี พ.ศ. 2550-ปัจจุบัน สามารถสืบค้นได้จากฐานข้อมูล Digital Collection สำหรับการสืบค้นวิทยานิพนธ์ และงานวิจัย มหาวิทยาลัยรามคำแหง จากฐานข้อมูล Digital Collection ในแบบ Basic Search มีวิธีดังนี้
1. เข้าสู่เว็บไซต์ ฐานข้อมูล Digital Collection (http://tdc.thailis.or.th/tdc/)
2. เลือกเมนู Basic Search ที่ด้านบน


3. เมื่อเข้าสู่หน้าจอ Basic Search ให้เลือกมหาวิทยาลัย/สถาบัน เป็น "มหาวิทยาลัยรามคำแหง
และเลือกชนิดเอกสารเป็น "วิทยานิพนธ์/Thesis" จะเป็นการกำหนดให้สืบค้นเฉพาะ วิทยานิพนธ์/Thesis ของมหาวิทยาลัยรามคำแหง
4. เลือกเขตข้อมูลเป็น "ชื่อเรื่อง" แล้วใส่คำที่ต้องการสืบค้นลงในช่อง จากนั้นเลือก "ส่วนใดส่วนหนึ่ง"
ในที่นี้ใส่คำว่า "เว็บไซต์" เพื่อให้สืบค้นชื่อเรื่องที่มีคำว่า "เว็บไซต์" อยู่ในส่วนใดส่วนหนึ่งของชื่อเรื่อง
5. คลิกที่ปุ่ม "ค้นหา"


6. ใช้เวลาสักครู่ ระบบจะแสดงผลการสืบค้นออกมาทางหน้าจอ



ข้อมูลโดย : งานพัฒนาและจัดการระบบสารสนเทศ

วันจันทร์ที่ 3 ธันวาคม พ.ศ. 2555

การออกแบบฐานข้อมูล


หลักการออกแบบฐานข้อมูล

การออกแบบฐานข้อมูล

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


กระบวนการออกแบบ

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



ตัวอย่าง
    1. แผนภาพการขึ้นต่อกัน
แผนการขึ้นต่อกัน  หรือ  Functional  Dependency  Diagram  เป็นวิธีแสดงให้เห็นภาพการขึ้นต่อกันให้เห็นได้ง่าย  ชัดเจนและสะดวก  โดยใช้กรอบสี่เหลี่ยมผืนผ้าแทนแอตทริบิวต์แต่ละตัว  และใช้ลูกศรชี้ออกจากคีย์  (Candidate Keys  หรือ  Primary  Keys)  ซึ่งจะทำให้สะดวกในการออกแบบให้ตารางอยู่ในรูปปกติโดยการตัดลูกศรที่ทำให้เกิดปัญหาหรือสร้างความยุ่งยากออกไป
ตัวอย่าง  จากตาราง  SCP  ซึ่งมีการขึ้นต่อกัน  คือ
                {SNO,  PNO}  g  QTY
                SNO  g  CITY
เราสามรถแสดงด้วยแผนภาพการขึ้นต่อกันเป็นดังนี้
(C.J.  Date,  2000)






                            
                หรือแสดงด้วยแผนภาพการขึ้นต่อกันอย่างง่าย  (ดัดแปลงจาก  Kendall  and  Kendall, 1999  และ  สุวัตร  ปัทมวรคุณ,  2544)  เป็นดังนี้





               
ตัวอย่าง  จากตาราง  P  ซึ่งมีการขึ้นต่อกัน  คือ
                                PNO  g  PNAME
                                PNO  g  COLOR
                                PNO  g  WEIGHT
                                PNO  g  CITY
                เราสามารถแสดงด้วยแผนภาพขึ้นต่อกันเป็นดังนี้






               
หรือแสดงด้วยแผนภาพการขึ้นต่อกันอย่างง่ายเป็นดังนี้






    1. สมบัติปิดของเซตของการขึ้นต่อกัน
สมบัติของเซตของการขึ้นต่อกัน  (Closure of a Set of  Dependencies)  คือ  เซตของการขึ้นต่อกันทั้งหมดที่ถูกบ่งชี้โดยเซต  S  ของการขึ้นต่อกัน  ซึ่งสมบัตินี้จะแทนด้วย  S+  (The set of all FDs  that  are implied by a given set S of  FDs  is called the closure of S,  written S+ )  กล่าวคือ  หากการขึ้นต่อกันข้อใดก็ตามเป็นผลมาจากการบ่งชี้หรือการระบุของการขึ้นต่อกันในเซต  S  แล้ว  เราถือว่าการขึ้นต่อกันทุกข้อดังกล่าวอยู่ในเซต  S+  ซึ่งก็คือ  สมบัติปิดของเซตของการขึ้นต่อกันนั่งเอง  ดังภาพ









ในภาพข้างบนแสดงให้เห็นว่า  เซต  S  มีการขึ้นต่อกันอยู่  2  นิพจน์คือ  FD1  และ  FD2  โดยที่  FD1  บ่งชี้ว่ามีการขึ้นต่อกันอย่าง  FD11  และ  FD2  บ่งชี้ว่ามีการขึ้นต่อกันอย่าง  FD21  และ  FD22  ดังนั้น  FD11,  FD21  และ  FD22  จะจัดอยู่ในเซต  S+  ซึ่งเป็นสมบัติของเซต  S                ตัวอย่างจากตารางที่ผ่านมา  เช่น  การขึ้นต่อกันที่กำหนดว่า
                {SNO,  PNO}  g  {CITY,  QTY}
                จะบ่งชี้ว่าทำให้มี  การขึ้นต่อกันอีกสองนิพจน์ซึ่งเป็นสมบัติปิดของมัน  ได้แก่
                {SNO,  PNO}  g  CITY
                {SNO,  PNO}  g  QTY

    1. กฎการอนุมาน
กฎการอนุมาน  (Inference  Rules)  เป็นกฎที่เกี่ยวเนื่องจากเรื่องสมบัติปิดของเซตการขึ้นต่อกันกฎนี้เรียกว่า  กฎของอาร์เรย์สตรอง  (Armstrong’s  Axioms)  ตามชื่อของ  W.  W'.  Armstrong  ผู้คิดขึ้นมาเมื่อปี  ค.ศ.  1974  ซึ่งเป็นกฎที่บ่งชี้การได้มาของสมบัติของเซตการขึ้นต่อกัน  (Derive  Closure  S+)  กฎดังกล่าวมีสาระหลักอยู่  3  ข้อแรก  ส่วนข้ออื่น ๆ  ประยุกต์ต่อจาก  3  ข้อแรก  ดังต่อไปนี้
  1. กฎการสะท้อน  (Reflexivity)  กล่าวว่า  ถ้า  B  เป็นสับเซตของ  A  แล้ว  A  g  B
  2. กฎเสริม  (Augmentation)  กล่าวว่า  ถ้า  A  g  B  แล้ว  AC  g  BC
  3. กฎถ่ายทอด  (Transitivity)  กล่าวว่า  ถ้า  A  g  B  และ  B  g  C  แล้ว  A  g  C  ซึ่งกล่าวอีกอย่างหนึ่งได้ว่า  A  g  C  ผ่านทาง  B
  4. กฎกำหนดตนเอง  (Self-determination)  กล่าวว่า  A  g  A
  5. กฎการแยกส่วน  (Decomposition)  กล่าวว่า  ถ้า  A  g  BC  แล้ว  A  g  B 
และ  A  g  C
  1.   กฎการรวม  (Union)  กล่าวว่า  ถ้า  A  g  B  และ   A  g  C  แล้ว  A  g  BC 
  2. กฎการประกอบ  (Composition)  กล่าวว่า  ถ้า  A  g  B  และ  C  g  D 
แล้ว  AC  g  BD
  1. ทฤษฎีบทเอกภาพทั่วไป  (General  Unification  Theorem)  ซึ่งพิสูจน์โดย  ดาร์เวน  (Darwen,  1992)  กล่าวว่า  ถ้า  A  g  B  และ  C  g  D  แล้ว  A U  (C - B)  g  BD
ตัวอย่าง  ให้  R  (A, B, C, D, E, F)  และมีการขึ้นต่อกัน  ดังนี้
                A  g  BC
                B  g  E
                CD  g  EF
จากแสดงว่า  การขึ้นต่อกัน  FD – AD  g  F  เป็นสมาชิกของสมบัติของเซตนี้
วิธีทำ
                1.  A  g  BC                       (กำหนดให้)
                2.  A  g  C                          (กฎการแยกส่วน)
                3.  AD  g  CD                   (กฎเสริม)
                4.  CD  g  EF                     (กำหนดให้)
                5.  AD  g  F                       (กฎการแยกส่วน)
    1. เซตของการขึ้นต่อกันซึ่งได้ลดรูปไม่ได้
เซตของการขึ้นต่อกันซึ่งลดรูปไม่ได้  (Inreducible  sets  of  dependencies)  คือ  เซตของการขึ้นต่อกันที่มีการตัดหรือลด  การขึ้นต่อกันที่ไม่จำเป็นหรือไม่สำคัญออกไป  กล่าวคือ  ถ้าให้  S1  และ  S2  เป็นเซตของการขึ้นต่อกัน  2  เซต
•  ถ้าการขึ้นต่อกันทุกนิพจน์ที่ถูกระบุโดย  S1  ได้มาจากการระบุโดย  S2  อีกทอดหนึ่ง  เช่น  ถ้า  S1+  เป็นสับเซตของ  S2+  แล้ว  เรากล่าวว่า  S2  เป็นตัวครอบคลุม  (Cover)  สำหรับ  S1  หรือเรียกสั้น ๆ  ว่า  S2 คลุม S1
•  ถ้า   S2  เป็นตัวครอบคลุมสำหรับ  S1  และ  S1  ก็เป็นตัวครอบคลุมสำหรับ  S2  ด้วยแล้วเราเรียกว่า  S1  และ  S2  เท่าเทียมกัน  (S1 and S2  are  equivalent.)  เช่น  S1+=S2+  เซตการขึ้นต่อกัน  S  จะเป็นเซตที่ลดรูปไม่ได้ก็ต่อเมื่อมีสมบัติ  3  ประการ  ดังนี้
1. ด้านขวาของการขึ้นต่อกันทุกตัวในเซต  S  เป็นแบบแอตทริบิวต์เดียว  คือ  เป็น  เซตเดี่ยว  (Singleton Set)
2. ด้านซ้ายมือของการขึ้นต่อกัน  ถ้าเป็นเซตของคีย์หลักหลายตัวจริงจะต้องไม่สามารถตัดเอาตัวใดตัวหนึ่งออกไปได้เพราะ  จะทำให้ไม่สมบูรณ์  (Left-irreducible)  เช่น
{SNO,  PNO,  X}  g  QTY
3. การขึ้นต่อกันใด ๆ  ในเซต  S  จะตัดหรือลดเอาตัวใดตัวหนึ่งออกไป  โดยความหมายไม่เปลี่ยนไม่ได้  กล่าวอีกนัยหนึ่ง  หากเซตใดเป็นเซตที่ลดรูปไม่ได้แล้วย่อมหมายความว่าจะตัดเอาการขึ้นต่อกันนิพจน์ใดนิพจน์หนึ่งออกไม่ได้  มิฉะนั้นความหมายจะขาดหายไม่ครบถ้วน
ตัวอย่าง 1  ถ้าตาราง P  มีการขึ้นต่อกันดังนี้  คือ
                PNO  g  PNAME
                PNO  g  COLOR
                PNO  g  WEIGHT
                PNO  g  CITY
วิธีคิด  เซตของการขึ้นต่อกันข้างต้นเป็นเซตที่ลดรูปไม่ได้อีกแล้ว  เพราะทางด้านขวาเป็นแอตทริบิวต์เดี่ยวในแต่ละบรรทัด  ส่วนทางด้านซ้ายก็เป็นเช่นเดียวกันไม่สามารถตัดทอนได้อีก  นอกจากนั้นการขึ้นต่อกันแต่ละนิพจน์ดังกล่าวก็ไม่สามารถตัดขึ้นบรรทัดใดได้  เพราะจะทำให้ความหมายเปลี่ยนสมบัติปิด
ตัวอย่างที่ 2  ถ้าตาราง  P  มีการขึ้นต่อกันดังนี้  คือ
                PNO  g  {PNAME,  COLOR}
                PNO  g  WEIGHT
                PNO  g  CITY
วิธีคิด  เซตของการขึ้นต่อกันข้างต้นเป็นเซตที่ลดรูปได้อีก  เพราะนิพจน์ของการขึ้นต่อกันในบรรทัดแรก  มีนิพจน์ด้านขวาไม่เป็น  Singleton Set
ตัวอย่างที่  3  ถ้าตาราง  P  มีการขึ้นต่อกันดังนี้
                {PNO,  PNAME}  g  COLOR
                PNO  g  PNAME
                PNO  g  WEIGHT
                PNO  g  CITY
วิธีคิด  เซตของการขึ้นต่อกันข้างต้นเป็นเซตที่ลดรูปได้อีก  เพราะนิพจน์ของการขึ้นต่อกันในบรรทัดแรกมีนิพจน์ด้านซ้ายไม่เป็น  Singleton Set  และเราสามารถตัด  PNAME  ออกไปจากนิพจน์ด้านซ้ายนั้นได้โดยสมบัติปิดไม่เปลี่ยนแปลงไป
ตัวอย่างที่  4  ถ้าตาราง  P  มีการขึ้นต่อกันดังนี้  คือ
                PNO  g  PNO
                PNO  g  PNAME
                PNO  g  COLOR
                PNO  g  WEIGHT
                PNO  g  CITY
วิธีคิด  เซตของการขึ้นต่อกันข้างต้นเป็นเซตที่ลดรูปได้อีก  เพราะนิพจน์ของการขึ้นต่อกันในบรรทัดแรกนั้นเราสามารถตัดทิ้งออกได้ทั้งบรรทัด  โดยสมบัติปิดไม่เปลี่ยนแปลงไป
การพยายามสร้างเซตของการขึ้นต่อกันซึ่งลดรูปไม่ได้ขึ้นมานั้นก็เพื่อจะได้นำไปสร้างข้อกำหนดหรือข้อบังคับ  (Constraint)  ที่มีจำนวนน้อยที่สุดเพื่อประหยัดเวลา  แรงงานโปรแกรมเมอร์  และพลังงานการทำงานของเครื่องคอมพิวเตอร์
    1. การแยกตารางโดยไม่สูญเสียความหมาย
การแยกตารางโดยไม่สูญเสียความหมายเดิม  (Nonloss  Decomposition)  คือ  การแยกตารางเดิมตารางหนึ่งออกไปเป็นหลายตารางโดยไม่สูญเสียคุณสมบัติที่มีอยู่ในตารางเดิม  เป็นวิธีการสำคัญอย่างหนึ่งในการทำให้ฐานข้อมูลอยู่ในรูปแบบปรกติหรือบรรทัดฐาน  (Normal  Form)  ซึ่งจะได้เรียนรู้รายละเอียดในหน่วยเรียนถัดไป  ก่อนอื่นควรทำความเข้าใจกับการแยกตารางเสียก่อน
                การแยกตาราง  (Decomposition)  เป็นการทำ  Projection  อย่างหนึ่ง  กล่าวคือ  เป็นการดึงคอลัมน์ของข้อมูลเฉพาะบางคอลัมน์ออกมาจากตารางที่มีอยู่เดิม  แล้วนำไปสร้างเป็นตารางใหม่ขึ้นมาหลายตารางตาความต้องการ  ตัวอย่างเช่น  ถ้าเดิมมีการออกแบบโดยกำหนดให้มีตาราง  SCP  พร้อมข้อมูล  ดังนี้
SNO
CITY
PNO
QTY
S1
London
P1
300
S1
London
P2
200
S1
London
P3
400
S1
London
P4
200
S1
London
P5
100
S1
London
P6
100
S2
Paris
P1
300
S2
Paris
P2
400
S3
Paris
P2
200
S4
London
P2
200
S4
London
P4
300
S4
London
P5
400

                SCP






         

      จะพบว่ามีการขึ้นต่อกันเฉพาะที่สำคัญดังต่อไปนี้
                                {SNO,  PNO}  g  QTY
                                SNO  g  CITY
                (ในที่นี้  เราตัด  {SNO,  PNO}  g  CITY  ทิ้งไปเพราะเป็นการขึ้นต่อกันที่ซ้ำซ้อนกับ  SNO  g  CITY  ทีมีอยู่แล้ว  ตามหลักการของ  การขึ้นต่อกันแบบด้านซ้ายลดรูปไม่ได้  หรือ  Left-irreducible FDs)
จะเห็นได้ว่าตารางนี้มีการเก็บข้อมูลแต่ละทูเพิล  (Tuple)  เป็นค่าเดียว  (Atomic)  อยู่แล้ว  กล่าวอีกนัยหนึ่งคือ  อยู่ในรูปแบบปรกติระดับที่ 1 (Pirst Normal Form)  แล้ว  แต่ยังมีความไม่เรียบร้อยอยู่บางอย่าง  คือ  ยังเป็นการกำหนดการแบ่งตารางที่ไม่ดีนักเพราะเก็บข้อมูลหลายเรื่องไว้ในตารางเดียวกัน  ซึ่งจะทำให้เกิดปัญหาการเก็บข้อมูลซ้ำซ้อน  (Redundancy)  และปัญหาความผิดปกติในการปรับปรุงข้อมูล  (Update Anomaly)  เมื่อทราบข้อบกพร่องดังนี้จึงจะต้องแก้ปัญหาโดยการแยกตาราง  SCP  นี้ย่อยออกเป็นสองตารางซึ่งมีทางเลือก  ดังนี้
                ทางเลือกที่ 1 จาก SCP (SNO,  CITY,  PNO,  QTY)  แยกเป็น
                                SC (SNO,  CITY) และ 
                                SP (SNO,  PNO, QTY)
               
ทางเลือกที่ 2 จาก SCP (SNO,  CITY,  PNO,  QTY)  แยกเป็น
                SPC (SNO,  PNO,  CITY)  และ
                SQ (SNO, QTY)
การจะเลือกทางใดนั้นต้องพิจารณาว่าหลังจากที่ทำการแยกตารางออกไปแล้ว  เราสามารถทำย้อนกลับ  คือ  เอาตารางใหม่ทั้งสองตารางมารวมกัน (JOIN)  เพื่อให้ได้ข้อมูลอย่างตารางเดิมได้หรือไม่   ถ้าไม่สามารถทำได้แสดงว่าเกิดการสูญเสียลักษณะการขึ้นต่อกันบางอย่างไป กาออกแบบฐานข้อมูลที่ดี   จึงต้องทำให้ตารางที่แยกออกมาใหม่นั้นสามารถรักษาคุณสมบัติการขึ้นต่อกันที่มีอยู่เดิมเอาไว้ให้ได้
กรณีเลือกทางที่ 1  จะได้ตารางพร้อมข้อมูล  ดังนี้

SNO
CITY
S1
London
S2
Paris
S3
Paris
S4
London

                                SC


SNO
PNO
QTY
S1
P1
300
S1
P2
200
S1
P3
400
S1
P4
200
S1
P5
100
S1
P6
100
S2
P1
300
S2
P2
400
S3
P2
200
S4
P2
200
S4
P4
300
S4
P5
400

SP     






จะพบว่าตาราง  SC  มีการขึ้นต่อกันที่สำคัญ  คือ
                SNO  g  CITY
และพบว่าตาราง  SP  มีการขึ้นต่อกันที่สำคัญ  คือ
                {SNO,  PNO}  g  QTY
กรณีเลือกทางที่ 2 จะได้ตารางสองตารางพร้อมข้อมูล  ดังนี้

SNO
PNO
CITY
S1
P1
London
S1
P2
London
S1
P3
London
S1
P4
London
S1
P5
London
S1
P6
London
S2
P1
Paris
S2
P2
Paris
S3
P2
Paris
S4
P2
London
S4
P4
London
S4
P5
London

SPC





SNO
QTY
S1
300
S1
200
S1
400
S1
200
S1
100
S1
100
S2
300
S2
400
S3
200
S4
200
S4
300
S4
400

SQ








จะพบว่าตาราง  SPC  มีการขึ้นต่อกันที่สำคัญ  คือ
                SNO  g  CITY
                {SNO,  PNO}  g  CITY
และพบว่าตาราง  SQ  มีการขึ้นต่อกันที่สำคัญ  คือ
                {SNO,  QTY}  g  QTY
สรุป  จะพบว่าทางเลือกที่ 1  ดีกว่าทางเลือกที่ 2  เพราะ
1.  สามารถรักษาสมบัติการขึ้นต่อกันซึ่งมีอยู่แต่เดิมเอาไว้ได้ทั้งหมด  คือทั้ง
{SNO,  PNO}  g  QTY  และ
{SNO}  g  CITY
2.  ไม่มีนิพจน์การขึ้นต่อกันที่เกินเข้ามาอย่างทางเลือกที่ 2  ซึ่งเป็นการทำให้ความหมายดังเดิมของฐานข้อมูลผิดเพี้ยนไป
3.ทางเลือกที่ 2  ทำให้ขาดคุณสมบัติการขึ้นต่อกันไปประการหนึ่ง  คือ
{SNO,  PNO}  g  QTY



อ้างอิง
http://itd.htc.ac.th/st_it50/it5012/P_1/DB/B5.htm
http://office.microsoft.com/th-th/access-help/HA001224247.aspx
http://kitikorn.site90.net/43201/design.htm
http://irrigation.rid.go.th/rid15/ppn/Knowledge/Database/database4.htm

วันจันทร์ที่ 26 พฤศจิกายน พ.ศ. 2555

ระบบฐานข้อมูล


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


  
   ตัวอย่าง

ชื่อฐานข้อมูล
กลุ่ม ข้อมูล
บริษัท

-          พนักงาน
-          ลูกค้า
-          สินค้า
-          ใบสั่งสินค้า
โรงเรียนหรือมหาวิทยาลัย
-          นักเรียน
-          อาจารย์
-          วิชา
-          การลงทะเบียน



ความสำคัญของระบบฐานข้อมูล

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

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

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

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

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



ประโยชน์ของระบบฐานข้อมูล
        1. ข้อมูลในระบบฐานข้อมูลสามารถใช้ร่วมกันได้ ( The data can be shared ) ตัวอย่างเช่น โปรแกรมระบบเงินเดือน สามารถเรียกใช้ข้อมูลรหัสพนักงานจาฐานข้อมูลเดียวกับโปรแกรมระบบการขาย ตามภาพในตอนท้ายที่ผ่านมา เป็นต้น
        2. ระบบฐานข้อมูลสามารถช่วยให้มีความซ้ำซ้อนน้อยลง ( Redundancy can be reduced ) ที่ลดความซ้ำซ้อนได้ เพราะเก็บแบบรวม ( Integrated )
        3. ระบบฐานข้อมูลช่วยหลีกเลี่ยงหรือลดความไม่คงที่ของข้อมูล ( Inconsistency can be avoided to some extent. )
        4. ระบบฐานข้อมูลสนับสนุนการทำธุรกรรม ( Transaction support can de provided ) ธุรกรรม คือ ขั้นตอนการทำงานหลายกิจกรรมย่อยมารวมกัน
        5. ระบบฐานข้อมูลสามารถช่วยรักษาความคงสภาพหรือความถูกต้องของข้อมูลได้ ( Integrity can be maintained ) โดยผู้บริหารฐานข้อมูลเป็นผู้กำหนดข้อบังคับความคงสภาพ ( DBA implement integrity constraints or business rules. ) ตามที่ผู้บริหารข้อมูล ( DA ) มอบหมาย เพื่อป้องกันไม่ให้ผู้ใช้เปลี่ยนแปลงข้อมูลในฐานข้อมูลทีโดยไม่ถูกต้อง ไม่ว่าจะโดยตั้งใจหรือไม่ตั้งใจก็ตาม
        6. สามารถบังคับใช้มาตรการรักษาความปลอดภัย ( Security can be enforced ) กล่าวคือ ผู้บริหารฐานข้อมูลสามารถ กำหนดข้อบังคับ เรื่องปลอดภัย ( Security Constraints )
        7. ความต้องการที่เกิดข้อโต้แย้งระหว่างฝ่าย สามารถประนีประนอมได้ ( conflicting requirements can be balanced. )
        8. สามารถบังคับให้เกิดมาตรฐานได้ ( Standards can be enforced )
        9. ระบบฐานข้อมูลให้เกิดความเป็นอิสระของข้อมูล ( Data Independence ) เป็นประโยชน์ข้อสำคัญที่สุดเพราะทำให้ข้อมูลไม่ขึ้นอยู่กับการแทนค่าข้อมูลเชิงกายภาพ ( Physical Data Independence )



ตัวอย่างระบบฐานข้อมูลในองค์กร

ภาพแผนภาพระบบฐานข้อมูลในองค์กร





                                      ภาพหน้าที่และส่วนประกอบหลักระบบบริหารฐานข้อมูล


                หน้าที่ของระบบบริหารฐานข้อมูล จะเห็นความแตกต่างเด่นชัดถ้าเปรียบเทียบกับ ระบบจัดการแฟ้มข้อมูล (File     Management System) ซึ่งเป็นระบบดั้งเดิม กล่าวคือ ระบบจัดการแฟ้มข้อมูลมีหน้าที่ดังนี้


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


ภาพตัวอย่างของการประมวลผลในระบบจัดการแฟ้มข้อมูล










อ้างอิง

http://www.learners.in.th/blogs/posts/386069
http://portal.in.th/asudah/pages/detu/
http://mpnn2551.net46.net/Subjects/DBMS32042014/dataBaseIntro.html
http://ednet.kku.ac.th/~sumcha/212300/system2.html#