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



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

ฐานข้อมูล หมายถึง วิธีในการจัดการข้อมูลที่มีอยู่ในระบบ เพื่อใช้งานได้ง่าย รวมถึงการเปลี่ยนแปลงข้อมูลได้ง่าย เช่นการเพิ่มหรือลดข้อมูล เป็นต้น
ฐานข้อมูล หมายถึง แหล่งที่ใช้สำหรับเก็บรวบรวมข้อมูลซึ่งอยู่ในรูปแฟ้มข้อมูลมารวมไว้ที่เดียวกัน รวมทั้งต้องมีส่วนของพจนานุกรมข้อมูล (data dictionary) เก็บคำอธิบายเกี่ยวกับโครงสร้างของฐานข้อมูล และเนื่องจากข้อมูลที่จัดเก็บนั้นต้องมีความสัมพันธ์ซึ่งกันและกันทำให้สามารถสืบค้น (retrieval) แก้ไข (modified) ปรับปรุงเปลี่ยนแปลงโครงสร้าง ข้อมูล (update) และจัดเรียง (sort) ได้สะดวกขึ้นโดยในการกระทำการดังที่กล่าวมาแล้ว ต้องอาศัยซอฟต์แวร์ประยุกต์สำหรับจัดการฐานข้อมูล


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


ความสำคัญของระบบฐานข้อมูล
              การจัดข้อมูลให้เป็นระบบฐานข้อมูลทำให้ข้อมูลมีส่วนดีกว่าการเก็บข้อมูลในรูปของแฟ้มข้อมูล เพราะการจัดเก็บข้อมูลในระบบฐานข้อมูล จะมีส่วนที่สำคัญกว่าการจัดเก็บข้อมูลในรูปของแฟ้มข้อมูลดังนี้
             1 ลดการเก็บข้อมูลที่ซ้ำซ้อน 
             2.รักษาความถูกต้องของข้อมูล 
             3.การป้องกันและรักษาความปลอดภัยให้กับข้อมูลทำได้อย่างสะดวก 
             4.สามารถใช้ข้อมูลร่วมกันได้ 
            5.มีความเป็นอิสระของข้อมูล 
            6.สามารถขยายงานได้ง่าย 
           7.ทำให้ข้อมูลบูรณะกลับสู่สภาพปกติได้เร็วและมีมาตรฐาน


องค์ประกอบของระบบฐานข้อมูล
Description: http://tsl.tsu.ac.th/file.php/1/courseware/aa_2/lesson04/icon/bar.gif

ระบบฐานข้อมูลส่วนใหญ่เป็นระบบที่มีการนำระบบคอมพิวเตอร์เข้ามาช่วยใน การจัดเก็บ โดยมีโปรแกรม Software ช่วยในการจัดการข้อมูลเหล่านี้ เพื่อให้ได้ข้อมูลตามที่ผู้ใช้ต้องการ องค์ประกอบของฐานข้อมูลแบ่งออกเป็น 5 ประเภท คือ
1. ฮาร์ดแวร์ (Hardware) ในระบบฐานข้อมูลที่มีประสิทธิภาพควรมีฮาร์ดแวร์ต่าง ๆ ที่พร้อมจะอำนวยความสะดวกในการบริหารข้อมูลได้อย่างมีประสิทธิภาพไม่ว่าจะเป็นความเร็วของหน่วยประมวลผลกลาง ขนาดของหน่วยความจำหลัก อุปกรณ์นำเข้าและออกข้อมูล รายงานหน่วยความจำสำรองที่จะรองรับการประมวลผลข้อมูลในระบบได้อย่างมีประสิทธิภาพ
2. ซอฟต์แวร์ (Software) ในการประมวลผลข้อมูลอาจจะใช้ซอฟต์แวร์หรือโปรแกรมที่แตกต่างกัน ทั้งนี้ขึ้นอยู่กับคอมพิวเตอร์ที่นำมาใช้ว่าเป็นแบบใด โปรแกรมจะทำหน้าที่ดูแลการสร้าง การเรียกใช้ข้อมูลการจัดทำรายงาน การปรับเปลี่ยน แก้ไข โครงสร้างการควบคุม หรืออาจกล่าวได้อีกอย่างว่าระบบจัดการฐานข้อมูล (Database Management System : DBMS) คือ โปรแกรมประยุกต์ต่างๆ ที่มีอยู่ในฐานข้อมูล ตัวอย่างเช่น DBASE IV, EXCEL , ACCESS , INFORMIX , ORACLE เป็นต้น
3. ข้อมูล (Data) ฐานข้อมูลเป็นการจัดเก็บรวบรวมข้อมูลให้เป็นศูนย์กลางข้อมูลอย่างมีระบบ ซึ่งข้อมูลเหล่านี้สามารถเรียกใช้ร่วมกันได้ ผู้ใช้ข้อมูลในระบบฐานข้อมูลจะมองภาพข้อมูลในลักษณะที่แตกต่างกัน เช่น ผู้ใช้บางคนมองภาพของข้อมูลที่ถูกจัดเก็บได้ในสื่อข้อมูล ผู้ใช้
บางคนมองภาพข้อมูลจากการใช้งาน เป็นต้น
ภาพประกอบที่ 20 สิ่งแวดล้อมของระบบฐานข้อมูล
(วิเศษศักดิ์ โคตรอาษา. 2542 : 129)
4. บุคลากร (People) ในระบบฐานข้อมูลจะมีบุคลากรที่เกี่ยวข้อง ดังนี้
   4.1 ผู้ใช้ทั่วไป (User) หมายถึง บุคลากรที่ใช้ข้อมูลจากระบบฐานข้อมูล เพื่อให้งานสำเร็จลุล่วงได้
                  4.2 พนักปฏิบัติการ (Operator) หมายถึง ผู้ปฏิบัติการด้านการประมวลผลการป้อนข้อมูลเข้าเครื่องคอมพิวเตอร์
                  4.3 นักเขียนโปรแกรม (Programmer) หมายถึง ผู้ที่มีหน้าที่เขียนโปรแกรมประยุกต์ใช้งานต่างๆ เพื่อให้จัดเก็บข้อมูล การเรียกใช้ข้อมูลเป็นไปตามต้องการของผู้ใช้
                4.4 นักวิเคราะห์และออกแบบระบบ (System Analyst) หมายถึง บุคลากรที่ทำหน้าที่วิเคราะห์ระบบฐานข้อมูล และออกแบบระบบงานที่จะนำมาใช้
               4.5 ผู้บริหารฐานข้อมูล (Database Administrator) หมายถึง บุคลากรที่ทำหน้าที่บริการและควบคุมการบริหารงานของระบบฐานข้อมูล ทั้งหมดเป็นผู้ตัดสินใจว่าจะรวบรวมข้อมูลอะไรเข้าในระบบ จัดเก็บโดยวิธีใด เทคนิคการเรียกใช้ข้อมูล กำหนดระบบวิธีการรักษาความปลอดภัยของข้อมูล การสร้างระบบข้อมูลสำรอง การกู้และประสานงานกับผู้ใช้ว่ามีความต้องการใช้ข้อมูลอย่างไร รวมถึงการวิเคราะห์และการออกแบบระบบ เพื่อให้นักเขียนโปรแกรมนำไปเขียนโปรแกรมที่ใช้ในการบริหารงานระบบฐานข้อมูลได้อย่างมีประสิทธิภาพ
5. ขั้นตอนปฏิบัติงาน (procedure) ในระบบฐานข้อมูลที่ดีจะต้องมีการจัดทำเอกสารที่ระบุขั้นตอนการทำงานของหน้าที่ต่างๆ ระบบฐานข้อมูลทั้งในสภาวะปกติ และในสภาวะที่ระบบเกิดขัดข้องมีปัญหา ซึ่งเป็นขั้นตอนการปฏิบัติงานสำหรับบุคลากรในทุกระดับขององค์กร 

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



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



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

      ฟิลด์(Field) หน่วยข้อมูลที่ประกอบมาจากอักขระต่างๆ หลายอักขระ
      เรคอร์ด (Record) จะเป็นการนำฟิลด์หลายๆฟิลด์มารวมกัน
              ◦    ตาราง (Table) จะเป็นการนำหลายๆเรคอร์ดมารวมกัน


ชนิดของความสัมพันธ์ (Relationship)
                      จากที่เราได้เรียนรู้แล้วว่า ระบบฐานข้อมูลเชิงสัมพันธ์ ก็คือ การรวบรวมตารางที่มีความสัมพันธ์กันเข้าไว้ด้วยกัน  ซึ่งความสัมพันธ์เองก็มีหลายชนิด ดังนี้
                      1.ความสัมพันธ์หนึ่งต่อหนึ่ง (One – to- One Relationships) คือความสัมพันธ์ของเรคอร์ดในหนึ่งตารางจะมีความสัมพันธ์กับอีกหนึ่งเรคอร์ดในอีกหนึ่งตารางเท่านั้นไม่สามารถเกินหนึ่งได้ (1:1)
                      2. ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (One-to-many Relationships) เป็นการแสดงความสัมพันธ์ของข้อมูลในเอนทิตี้หนึ่ง ที่มีความสัมพันธ์กับข้อมูลหลาย ๆ ข้อมูลในอีกเอนทิตี้หนึ่ง ในลักษณะ (1:m)
                      3. ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (Many-to-many Relationships) เป็นการแสดงความสัมพันธ์ของข้อมูลสองเอนทิตี้ในลักษณะกลุ่มต่อกลุ่ม (m:n)

ชนิดของคีย์ในฐานข้อมูลเชิงสัมพันธ์
  •      คีย์หลัก (Primary Key) จะเป็นฟิลด์ที่ไม่ซ้ำกันในแต่ละเรคอร์ดในตารางนั้น เราสามารถใช้ฟิลด์ที่เป็น Primary Key นี้เป็นตัวแทนของตาราง
  •      คีย์คู่แข่ง (candidate Key) เป็นฟิลด์หนึ่งหรือหลายฟิลด์ที่มีคุณสมบัติที่เป็น Primary Key แต่ไม่คีย์หลัก เช่น ชื่อและนามสกุล สามารถรวมกันเป็นคีย์คู่แข่งได้
  •      Composite Key เป็นฟิลด์ที่ใช้รวมกับฟิลด์อื่นๆ ที่เป็น Composite key เหมือนกันมาใช้เป็น Primary Key ของตาราง
  •      Foreign Key เป็นฟิลด์ในตารางหนึ่ง ที่มีความสัมพันธ์กับ primary Key ในอีกตารางหนึ่ง

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

การออกแบบระบบฐานข้อมูล
        การออกแบบระบบฐานข้อมูลเป็นขั้นตอนแรกในการสร้างแอพพลิเคชั่นฐานข้อมูล

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

ขั้นตอนในการออกแบบฐานข้อมูล
  • กำหนดเอนทิตี้ทุกตัวในระบบฐานข้อมูลนั้น ๆ
  • กำหนดคีย์หลัก
  • กำหนดความสัมพันธ์ระหว่างเอนทิตี้
  • ทำการเปลี่ยนเอนทิตี้ให้อยู่ในรูปตาราง



โปรแกรมฐานข้อมูลที่นิยมใช้
โปรแกรมฐานข้อมูล เป็นโปรแกรมหรือซอฟแวร์ที่ช่วยจัดการข้อมูลหรือรายการต่าง ๆ ที่อยู่ในฐานข้อมูล ไม่ว่าจะเป็นการจัดเก็บ การเรียกใช้ การปรับปรุงข้อมูล
ฐานข้อมูล จะช่วยให้ผู้ใช้สามารถค้นหาข้อมูลได้อย่างรวดเร็ว ซึ่งโปรแกรมฐานข้อมมูลที่นิยมใช้มีอยู่ด้วยกันหลายตัว เช่น Access, FoxPro, Clipper, dBase, FoxBase, Oracle, SQL เป็นต้น โดยแต่ละโปรแกรมจะมีความสามารถต่างกัน บางโปรแกรมใช้ง่ายแต่จะจำกัดขอบเขตการใช้งาน บ่งโปรแกรมใช้งานยากกว่า แต่จะมีความสามารถในการทำงานมากกว่า
1.โปรแกรม Access นับเป็นโปรแกรมที่นิยมใช้กันมากในขณะนี้ โดยเฉพาะในระบบฐานข้อมูลขนาดใหญ่ สามารถสร้างแบบฟอร์มที่ต้องการจะเรียกดูข้อมูลในฐานข้อมูล หลังจากบันทึกข้อมูลในฐานข้อมูลเรียบร้อยแล้ว จะสามารถค้นหาหรือเรียกดูข้อมูลจากเขตข้อมูลใดก็ได้ นอกจากนี้ Access ยังมีระบบรักษาความปลอดภัยของข้อมูล โดยการกำหนดรหัสผ่านเพื่อป้องกันความปลอดภัยของข้อมูลในระบบได้ด้วย
2.โปรแกรม FoxPro เป็นโปรแกรมฐานข้อมูลที่มีผู้ใช้งานมากที่สุด เนื่องจากใช้ง่ายทั้งวิธีการเรียกจากเมนูของ FoxPro และประยุกต์โปรแกรมขึ้นใช้งาน โปรแกรมที่เขียนด้วย FoxPro จะสามารถใช้กลับ dBase คำสั่งและฟังก์ชั่นต่าง ๆ ใน dBase จะสามารถใช้งานบน FoxPro ได้ นอกจากนี้ใน FoxPro ยังมีเครื่องมือช่วยในการเขียนโปรแกรม เช่น การสร้างรายงาน
3.โปรแกรม dBase เป็นโปรแกรมฐานข้อมูลชนิดหนึ่ง การใช้งานจะคล้ายกับโปรแกรม FoxPro ข้อมูลรายงานที่อยู่ในไฟล์บน dBase จะสามารถส่งไปประมวลผลในโปรแกรม Word Processor ได้ และแม้แต่ Excel ก็สามารถอ่านไฟล์ .DBF ที่สร้างขึ้นโดยโปรแกรม dBase ได้ด้วย
4. โปรแกรม SQL เป็นโปรแกรมฐานข้อมูลที่มีโครงสร้างของภาษาที่เข้าใจง่าย ไม่ซับซ้อน มีประสิทธิภาพการทำงานสูง สามารถทำงานที่ซับซ้อนได้โดยใช้คำสั่งเพียงไม่กี่คำสั่ง โปรแกรม SQL จึงเหมาะที่จะใช้กับระบบฐานข้อมูลเชิงสัมพันธ์ และเป็นภาษาหนึ่งที่มีผู้นิยมใช้กันมาก โดยทั่วไปโปรแกรมฐานข้อมูลของบริษัทต่าง ๆ ที่มีใช้อยู่ในปัจจุบัน เช่น Oracle, DB2 ก็มักจะมีคำสั่ง SQL ที่ต่างจากมาตรฐานไปบ้างเพื่อให้เป็นจุดเด่นของแต่ละโปรแกรมไป


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

ข้อมูลสินค้า
รหัสชนิดสินค้า
ชื่อชนิดสินค้า
รหัสสินค้า
ชื่อสินค้า
ราคาต่อหน่วย
ภาษี
จำนวนในคลัง
01
หนังสือ
0005
คู่มือสำหรับผู้นำในยุค 90
219.63
Yes
409
0100
พูดอย่างมีวาทะ
219.63
Yes
155
02
CD – ROM
0125
SALES  MANAGER  FACTOMATIC
700.93
No
169
0051
SECRETS  OF STARGATE
1,842.99
No
197
0010
US  ATLAS
540.19
No
159
03
Hardware
0007
VIDEOCONVERENCING CARD – FLY  VIDEO
369.16
Yes
205
0008
ชุดกล้องถ่ายวีดีโอ  Panasonic  Model  VHS  รุ่น  NV – VX3
260.00
Yes
177
04
Multimedia
0023
JAPANESE 1, LIYC
278.00
No
326
0055
JAPANESE 2, LIYC
278.00
No
159

ข้อมูลการสั่งซื้อ
รหัสการสั่งซื้อ
รหัสลูกค้า
วันที่สั่งสินค้า
วันที่ส่งสินค้า
รหัสสินค้า
จำนวนสินค้าที่สั่งซื้อ
ส่วนลด (%)
102258
015
21/10/94
28/10/94
0005
8
25.00%




0100
8
0.00%




0125
15
0.00%
10265
181
21/10/94
27/10/44
0005
31
0.00%




0010
15
0.00%
10278
213
24/10/94
3/11/94
0007
16
0.00%




0008
31
25.00%




0023
4
0.00%

ข้อมูลลูกค้า
รหัสลูกค้า
ชื่อลูกค้า
ที่อยู่ลูกค้า
รหัสไปรษณีย์
หมายเลขโทรศัพท์
003
P & S  STORE
ชั้น 1 อาจารเสิรมมิตรทาวเวอร์  159  สุขุมวิท  21 (อโศก)  คลองเตย  กทม.
10330
250-0750
015
Hope  Shop
สมาคมผรั่งเศส  29  ถ.สาธรใต้  ยานนาวา  กทม.
10110
240-2865-75
181
The  Book  Shop
Asia  Hotel  296  ถ.พญาไท  กทม.
10330
267-8850-5
213
P’S  Line
2675  หมู่  9  ลาดพร้าว  ซ.95  วังทองหลาง  บางกะปิ  กทม.
10330
253-0123
008
The  Bookseller
428  Rama  I  Road,  Siam  Square  Bangkok
10500
233-1717

กฎการ  Normalization
                กฎการ Normalization  เป็นกฎที่ใช้ในการออกแบบตาราง  โดยทั่วไปเราจะใช้กฎการ  Normalization  นี้  เพียงแค่  3  ข้อ  ก็เพียงพอในการออกแบบตารางโดยทั่วไปแล้ว  และถ้าตารางนั้นผ่านกฎข้อที่  3  ตารางนั้น  ก็จะต้องผ่านกฎข้อที่  1  และ 2  ด้วย  แผนภูมิแสดงการ  Normalization  ในแต่ละขั้นตอน  ดังรูป




รูปภาพที่  แสดงแผนภูมิแสดงการ  Normalization

รายละเอียดของการใช้กฎ  Normalization  แต่ละข้อดังต่อไปนี้

กฎข้อที่  1  (First  Normal  Form)
                กฎข้อที่  1  กล่าวว่า จะต้องไม่มีเซลใดในตารางที่มีค่าเกินหนึ่งค่า  ดังนั้นเราสามารถ ทำให้ตารางผ่านกฎข้อที่  1  ได้ด้วยการแยกเซลที่มีค่าเกินหนึ่งออกเป็นเรคอร์ดใหม่  เราอธิบายการใช้กฎข้อที่  1  กับตารางตัวอย่างที่ผ่านมาเรียนไปที่ละตารางต่อไปนี้
1.              ตาราง  Products
จากตารางนี้  เราสามารถแยกออกเป็นเรคอร์ดใหม่ได้  โดยมีฟิลด์รหัสสินค้า  ชื่อ  ชนิดสินค้า  ซึ่งเป็นฟิลด์ที่เก็บค่าในเซลเกินหนึ่งค่า  เพิ่มเข้าไปในแต่ละเรคอร์ดใหม่  และตารางใหม่นี้มีคีย์หลัก  คือ  รหัสสินค้า  เราได้ตารางใหม่ดังนี้

ก่อนการใช้กฎข้อที่  1
รหัสชนิดสินค้า
ชื่อชนิดสินค้า
รหัสสินค้า
ชื่อสินค้า
ราคาต่อหน่วย
ภาษี
จำนวนในคลัง
01
หนังสือ
005
คู่มือสำหรับผู้นำในยุค 90
219.63
Yes
409
0100
พูดอย่างมีวาทะ
219.63
Yes
155
02
CD-ROM
0125
SALES MANAGER FACTOMATIC
700.00
No
169
0051
SECRETS OF STARGATE
1842.99
No
197
0010
US ATLAS
540.19
No
159
03
Hardware
0007
VIDEOCONVERENCING  CARD-FLY  VIDEO
369.16
Yes
205
0008
ชุดกล้องถ่ายวีดีโอ Panasonic Mode VHS
260.00
Yes
177
04
Multimedia
0023
JAPANESE 1, LIYC
278.00
No
326
0055
JAPANESE 2, LIYC
278.00
No
159

หลังการใช้กฎข้อที่  1
รหัสชนิดสินค้า
ชื่อชนิดสินค้า
รหัสสินค้า
ชื่อสินค้า
ราคาต่อหน่วย
ภาษี
จำนวนในคลัง
01
หนังสือ
005
คู่มือสำหรับผู้นำในยุค 90
219.63
Yes
409
01
หนังสือ
0100
พูดอย่างมีวาทะ
219.63
Yes
155
02
CD-ROM
0125
SALES MANAGER FACTOMATIC
700.00
No
169
02
CD-ROM
0051
SECRETS OF STARGATE
1842.99
No
197
02
CD-ROM
0010
US ATLAS
540.19
No
159
03
Hardware
0007
VIDEOCONVERENCING  CARD-FLY  VIDEO
369.16
Yes
205
03
Hardware
0008
ชุดกล้องถ่ายวีดีโอ Panasonic Mode VHS
260.00
Yes
177
04
Multimedia
0023
JAPANESE 1, LIYC
278.00
No
326
04
Multimedia
0055
JAPANESE 2, LIYC
278.00
No
159
2.              ตาราง  Orders
จากตารางนี้  เราสามารถแยกเป็นเรคอร์ดใหม่ได้  โดยมีฟิลด์  รหัสการสั่งซื้อ  รหัสลูกค้า  วันที่สั่ง  และวันที่ส่ง  ซึ่งเป็นฟิลด์ที่เก็บค่าในเซลเกินหนึ่งค่า  เพิ่มเข้าไปในแต่ละเรคอร์ดใหม่  และตารางใหม่นี้มีคีย์หลัก  คือ  ฟิลด์รหัสการสั่งซื้อ  และรหัสสินค้า  เนื่องจากฟิลด์รหัสการสั่งซื้อ  จะไม่ซ้ำกันในแต่ละการสั่งซื้อ  และในแต่ละการสั่งซื้อ  จะไม่สามารถสั่งสินค้าชนิดเดียวกันซ้ำกันได้  เราได้ตารางดังนี้

ก่อนการใช้กฎข้อที่  1
รหัสการสั่งซื้อ
รหัสลูกค้า
วันที่สั่งสินค้า
วันที่ส่งสินค้า
รหัสสินค้า
จำนวนสินค้าที่สั่งซื้อ
ส่วนลด (%)
102258
015
21/10/94
28/10/94
0005
8
25.00%




0100
8
0.00%




0125
15
0.00%
10265
181
21/10/94
27/10/44
0005
31
0.00%




0010
15
0.00%
10278
213
24/10/94
3/11/94
0007
16
0.00%




0008
31
25.00%




0023
4
0.00%
หลังการใช้กฎข้อที่  1
รหัสการสั่งซื้อ
รหัสลูกค้า
วันที่สั่งสินค้า
วันที่ส่งสินค้า
รหัสสินค้า
จำนวนสินค้าที่สั่งซื้อ
ส่วนลด (%)
102258
015
21/10/94
28/10/94
0005
8
25.00%
102258
015
21/10/94
28/10/94
0100
8
0.00%
102258
015
21/10/94
28/10/94
0125
15
0.00%
10265
181
21/10/94
27/10/44
0005
31
0.00%
10265
181
21/10/94
27/10/44
0010
15
0.00%
10278
213
24/10/94
3/11/94
0007
16
0.00%
10278
213
24/10/94
3/11/94
0008
31
25.00%
10278
213
24/10/94
3/11/94
0023
4
0.00%

3.              ตาราง  Customers
ตารางนี้จะไม่มีกลุ่มของฟิลด์ที่ซ้ำกันอยู่แล้ว

                กฎข้อที่  2  (Second  Normal  Form)
                กฎข้อที่  2  กล่าวว่า  ตารางที่ผ่านกฎข้อที่  2  จะต้องไม่มีแอททริบิวต์ที่ไม่ใช่คีย์ตัวใด  (เราเรียกว่า  Non-key  Attribute)  ขึ้นกับส่วนใดส่วนหนึ่งของคีย์หลัก  จะต้องขึ้นกับคีย์หลักแบบเต็มๆ  เท่านั้น
                เราสามารถทำให้ตารางผ่านกฎข้อที่  2  โดยการแยกฟิลด์ที่ขึ้นเฉพาะกับส่วนหนึ่งของคีย์กับฟิลด์ที่มันขึ้นด้วย  ออกมาสร้างเป็นตารางใหม่  เราจะแสดงการใช้กฎข้อที่  2  ดังต่อไปนี้
1.              ตาราง  Product  และ  Customer
ตารางที่ผ่านกฎข้อที่  2  เนื่องจากคีย์หลักคือ  ฟิลด์รหัสสินค้าของตาราง  Products  และรหัส-ลูกค้าของตาราง  Customers  ซึ่งฟิลด์อื่นๆ  ทุกฟิลด์ขึ้นกับคีย์หลักนี้ทุกฟิลด์
2.              ตาราง  Orders
ตารางนี้ไม่ผ่านกฎข้อที่  2  เนื่องจากมีฟิลด์รหัสลูกค้า  วันที่ส่ง  และวันที่ส่ง  จะขึ้นกับฟิลด์รหัสสั่งซื้อเท่านั้น  ซึ่งเป็นส่วนหนึ่งของคีย์หลัก  (รหัสการสั่งซื้อ  และรหัสสินค้า  เป็นคีย์หลักแบบ  Composite  Key)  เมื่อใช้กฎข้อที่  2  แล้วเราจะได้ตาราง  2  ตาราง  คือ
-                      ตารางที่  1  ชื่อ  ตาราง  Orders  เป็นตารางที่ประกอบด้วยฟิลด์รหัสการสั่งซื้อ  ซึ่งเป็นคีย์หลักของตารางใหม่  และฟิลด์ที่ขึ้นกับฟิลด์รหัสการสั่งซื้อเท่านั้น
-                      ตารางที่  2  ชื่อ  ตาราง  OrderDetails  เป็นตารางที่ประกอบด้วยฟิลด์รหัสการสั่งซื้อ  และรหัสสินค้า  ซึ่งเป็นคีย์หลักของตารางเดิม  และฟิลด์ที่เหลือจากตารางแรก  ตารางนี้จะเก็บข้อมูลการสั่งซื้อแต่ละรายการ  ในการสั่งซื้อแต่ละครั้งไว้  เราได้ตารางใหม่ดังตาราง  ข้างล่างนี้

ก่อนการใช้กฎข้อที่  2
รหัสการสั่งซื้อ
รหัสลูกค้า
วันที่สั่งสินค้า
วันที่ส่งสินค้า
รหัสสินค้า
จำนวนสินค้าที่สั่งซื้อ
ส่วนลด (%)
102258
015
21/10/94
28/10/94
0005
8
25.00%
102258
015
21/10/94
28/10/94
0100
8
0.00%
102258
015
21/10/94
28/10/94
0125
15
0.00%
10265
181
21/10/94
27/10/44
0005
31
0.00%
10265
181
21/10/94
27/10/44
0010
15
0.00%
10278
213
24/10/94
3/11/94
0007
16
0.00%
10278
213
24/10/94
3/11/94
0008
31
25.00%
10278
213
24/10/94
3/11/94
0023
4
0.00%


หลังการใช้กฎข้อที่  2
รหัสการสั่งซื้อ
รหัสลูกค้า
วันที่สั่งสินค้า
วันที่ส่งสินค้า

รหัสการสั่งซื้อ
รหัสสินค้า
จำนวนสินค้าที่สั่งซื้อ
ส่วนลด (%)
102258
015
21/10/94
28/10/94

102258
0005
8
25.00%
10265
181
21/10/94
27/10/94

102258
0100
8
0.00%
10278
213
24/10/94
3/11/94

102258
0125
15
0.00%





10265
0005
31
0.00%





10265
0010
15
0.00%





10278
0007
16
0.00%





10278
0008
31
25.00%





10278
0023
4
0.00%

ความสัมพันธ์ระหว่างตารางทั้ง  2  จะเป็นแบบ  One – to – Many  จากตาราง  Orders  ไปยังตาราง  OrderDetails  เนื่องจากการสั่งสินค้า  1  ครั้ง  จะสั่งสินค้าได้หลายรายการ

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

1.              ตาราง  Products
ตารางนี้ไม่ผ่านกฎข้อที่  3  เนื่องจากฟิลด์ชื่อชนิดสินค้าขึ้นกับฟิลด์รหัสชนิดสินค้าที่ไม่ใช่คีย์หลักหรือคีย์คู่แข่ง  จากที่กล่าวมา  เราสามารถทำให้ตารางของเราผ่านกฎข้อที่ 3  ด้วยการแยกฟิลด์ที่ขึ้นกับฟิลด์อื่นๆ  นั้นออกมาเป็นตารางใหม่  และคีย์หลักของตางใหม่จะเป็นฟิลด์ที่ฟิลด์นั้นขึ้นด้วย  เราจะแสดงการใช้กฎข้อที่  3  ดังต่อไปนี้
-                      ตารางที่  1  ชื่อ ตาราง  Categories  เป็นตารางที่ประกอบด้วยฟิลด์รหัสชนิดสินค้า  (ที่เป็นคียห์หลักของตารางใหม่)  และชื่อชนิดสินค้า  ซึ่งเป็นข้อมูลที่เกี่ยวกับชนิดสินค้าเท่านั้น
-                      ตารางที่  2  ชื่อตาราง  Products  เป็นตารางที่ประกอบด้วยฟิลด์ที่มีทั้งหมด  ยกเว้นฟิลด์ชื่อชนิดสินค้า โดยมีคีย์หลักเป็นรหัสสินค้าเหมือนตารางเดิม  ดังตารางข้างล่างนี้
ก่อนการใช้กฎข้อที่  3
รหัสชนิดสินค้า
ชื่อชนิดสินค้า
รหัสสินค้า
ชื่อสินค้า
ราคาต่อหน่วย
ภาษี
จำนวนในคลัง
01
หนังสือ
005
คู่มือสำหรับผู้นำในยุค 90
219.63
Yes
409
01
หนังสือ
0100
พูดอย่างมีวาทะ
219.63
Yes
155
02
CD-ROM
0125
SALES MANAGER FACTOMATIC
700.00
No
169
02
CD-ROM
0051
SECRETS OF STARGATE
1842.99
No
197
02
CD-ROM
0010
US ATLAS
540.19
No
159
03
Hardware
0007
VIDEOCONVERENCING  CARD-FLY  VIDEO
369.16
Yes
205
03
Hardware
0008
ชุดกล้องถ่ายวีดีโอ Panasonic Mode VHS
260.00
Yes
177
04
Multimedia
0023
JAPANESE 1, LIYC
278.00
No
326
04
Multimedia
0055
JAPANESE 2, LIYC
278.00
No
159

หลังการใช้กฎข้อที่ 3
รหัสชนิดสินค้า
ชื่อชนิดสินค้า

รหัสชนิดสินค้า
รหัสสินค้า
ชื่อสินค้า
ราคาต่อหน่วย
ภาษี
จำนวนในคลัง
01
หนังสือ

01
0005
คู่มือสำหรับผู้นำในยุค 90
219.63
Yes
409
02
CD-ROM

01
0100
พูดอย่างมีวาทะ
219.63
Yes
155
03
Hardware

02
0125
SALES MANAGER FACTOMATIC
700.00
No
169
04
Multimedia

02
0051
SECRETS OF STARGATE
1842.99
No
197



02
0010
US ATLAS
540.19
No
159



03
0007
VIDEOCONVERENCING  CARD-FLY  VIDEO
369.16
Yes
205



03
0008
ชุดกล้องถ่ายวีดีโอ Panasonic Mode VHS
260.00
Yes
177



04
0023
JAPANESE 1, LIYC
278.00
No
326



04
0055
JAPANESE 2, LIYC
278.00
No
159

และความสัมพันธ์ของตารางทั้ง  2  เป็นแบบ  One – to – Many  จากตาราง  Categories  ไปยังตาราง  Products  เนื่องจากชนิดสินค้าหนึ่งสามารถมีสินค้าได้หลายอย่าง

2.              ตาราง Order,  OrderDetail  และ  Customer
ตารางทั้งสามนี้  ผ่านกฎข้อที่  3  ทั้งหมด  เนื่องจากฟิลด์ทุกตัวในตารางขึ้นกับคีย์หลักทั้งหมด  ไม่ได้ขึ้นกับฟิลด์อื่นๆ  เลย
กฎการ  Normalization  ข้อที่  3  นี้  เราเรียกว่า  BCNF (Boyce/Codd  Normal  Form  ซึ่งเป็นกฎข้อที่  3  ที่ได้รับการปรับปรุงขึ้นใหม่)

กฎข้อที่  4  (Fourth  Normal  Form)
                กฎข้อที่  4  กล่าวว่า  ตารางที่ผ่านกฎข้อที่  4  จะต้องไม่มีการขึ้นต่อกันแบบเชิงกลุ่ม  (Multivalued  Dependency)  ซึ่งเป็นความสัมพันธ์แบบ  Many – to – Many  ภายในตารางเดียวกัน  เช่น  ในตารางเดียวกันจะมีฟิลด์  ที่ขึ้นต่อฟิลด์  โดยการขึ้นต่อกันนี้เป็นอิสระจากอีกฟิลด์หนึ่ง  คือ  ฟิลด์  เราสามารถทำให้ตาราง

ตารางตั้งต้น
รหัสนักศึกษา
ชื่อนักศึกษา
รหัสอาจารย์ที่ปรึกษา
ชื่อวิชา
2001
แดง
1001
1002
ภาษาอังกฤษ
ประวัติศาสตร์
ภาษาเยอรมัน
2002
ดำ
1003
ภาษาญี่ปุ่น
คณิตศาสตร์
2003
เขียว
1004
1005
ภาษาอังกฤษ
ประวัติศาสตร์





สามารถแปลงเป็น  First  Normal  Form  ได้ดังตารางนี้
รหัสนักศึกษา
ชื่อนักศึกษา
รหัสอาจารย์ที่ปรึกษา
ชื่อวิชา
2001
แดง
1001
ภาษาอังกฤษ
2001
แดง
1001
ประวัติศาสตร์
2001
แดง
1001
ภาษาเยอรมัน
2001
แดง
1002
ภาษาอังกฤษ
2001
แดง
1002
ประวัติศาสตร์
2001
แดง
1002
ภาษาเยอรมัน
2002
ดำ
1003
ภาษาญี่ปุ่น
2002
ดำ
1003
คณิตศาสตร์
2003
เขียว
1004
ภาษาอังกฤษ
2003
เขียว
1004
ประวัติศาสตร์
2003
เขียว
1004
ภาษาอังกฤษ
2003
เขียว
1004
ประวัติศาสตร์
               
เนื่องจากตารางที่กล่าวมานี้เป็นตารางที่ผ่านกฎข้อที่  3  คือ  ไม่มีแอททริบิวต์ใดขึ้นกับแอททริบิวต์อื่นที่ไม่ใช่คีย์หลัก  หรือคีย์คู่แข่ง  แต่ไม่ผ่านกฎข้อที่  4  เนื่องจากมีการขึ้นต่อกับเชิงกลุ่ม  เช่น  นักศึกษาชื่อ  แดงมีอาจารย์ที่ปรึกษา  2  คน  แต่ลงวิชาเรียนไป  3  วิชา  ซึ่งรหัสอาจารย์ที่ปรึกษา  กับชื่อวิชาที่ลงไปเป็นข้อมูลที่ไม่ขึ้นต่อกัน  ซึ่งเราสามารถปรับให้เป็น  4NF  ได้ด้วยการทำแบ่งตารางนี้ออกเป็น  2  ตารางต่อไป  ซึ่งตารางทั้งสองจะประกอบด้วยแอตทริบิวต์ที่เกี่ยวข้องกันเท่านั้น
รหัสนักศึกษา
ชื่อนักศึกษา
รหัสอาจารย์ที่ปรึกษา

รหัสนักศึกษา
ชื่อนักศึกษา
ชื่วิชา
2001
แดง
1001

2001
แดง
ภาษาอังกฤษ
2001
แดง
1002

2001
แดง
ประวัติศาสตร์
2002
ดำ
1003

2001
แดง
ภาษาเยอรมัน
2003
เขียว
1004

2002
ดำ
ภาษาญี่ปุ่น
2003
เขียว
1005

2002
ดำ
คณิตศาสตร์




2003
เขียว
ภาษาอังกฤษ
ตารางที่ผ่านการใช้กฎข้อที่ 4

2003
เขียว
ประวัติศาสตร์

                โดยทั่วไปแล้ว  การ Normalization  นั้น  เราใช้ถึงกฎข้อที่  3  ก็เพียงพอแล้ว  เนื่องจากมีตารางน้อยมากที่จะต้องใช้กฎข้อที่  4

สรุปตารางที่ออกแบบได้ทั้งหมด
                ในหัวข้อนี้  เราจะสรุปตารางที่ออกแบบเสร็จแล้ว  โดยการ Normalization  ที่ผ่านมาเราสามารถสรุปตารางที่ออกแบบได้ดังรูปต่อไปนี้



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






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

อ้างอิง
อ.เอกรินทร์ คำคูณ. การใช้โปรแกรมการจัดการฐานข้อมูล Acess เวอร์ชั่น 2007 .กรุงเทพฯ :ซัคเซส มีเดีย,2554

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

0 ความคิดเห็น