เมื่อดูรูปด้านล่างนี้แล้ว นักเรียนนึกถึงอะไร
ภาพที่ 1.1 ภาพแสดงฟอร์มการกรอกข้อมูล
ภาพที่ 1.2 การเก็บข้อมูลลงตาราง
ระบบฐานข้อมูล
ในการประกอบธุรกิจจะมีข้อมูลต่างๆเกิดขึ้นมากมาย ยกตัวอย่างเช่น ข้อมูลลูกค้า ข้อมูลการสั่งของ ข้อมูลพนักงาน ฯลฯ ซึ่งข้อมูลเหล่านี้จะต้องมีการเก็บรักษาที่ดี นอกจากนั้นในการตัดสินใจต่างๆจะมีข้อมูลที่ต้องใช้ประมวลผลเพื่อประกอบการตัดสินใจเป็นจำนวนมาก การนำข้อมูลเหล่านี้มาใช้นั้น ถ้าไม่ได้มีการจัดระเบียบการเก็บที่ดี ก็ย่อมนำมาใช้ได้อย่างยากลำบาก
ภาพที่ 1.3 เหตุผลที่ต้องมีระบบฐานข้อมูล
ทำไมต้องมีระบบฐานข้อมูล
ระบบฐานข้อมูลที่มีประสิทธิภาพจะมีหน้าที่หลักๆดังต่อไปนี้
การเก็บรักษาข้อมูล ระบบฐานข้อมูลจะช่วยให้การเก็บรักษาข้อมูลเป็นระบบระเบียบ มีการจัดหมวดหมู่ของข้อมูล ซึ่งจะให้ผู้จัดเก็บทำงานได้สะดวกมากขึ้น และป้องกันความผิดพลาดได้
การนำข้อมูลไปใช้ ข้อนี้จะเป็นหัวใจของระบบฐานข้อมูลเลยทีเดียว ระบบฐานจะทำให้การดึงข้อมูลออกมาใช้สะดวกและมีประสิทธิภาพมากขึ้น การสรุปข้อมูลและประมวลผลต่างๆจะทำได้ง่ายขึ้น ซึ่งจะทำให้สามารถนำข้อมูลไปประกอบการตัดสินใจได้ ยกตัวอย่างเช่น การเก็บข้อมูลใบสั่งของจากลูกค้า ถ้าเราเก็บโดยไม่มีระบบเช่นเก็บสำเนาใบเสร็จทั้งหมดไว้ เราก็จะมีเพียงหลักฐานว่าใครสั่งอะไรไปบ้างเท่านั้น แต่ถ้ามีการเก็บลงระบบฐานข้อมูล โดยเฉพาะอย่างยิ่งเมื่อใช้คอมพิวเตอร์เข้าช่วย เราจะสามารถดึงข้อมูลสรุป ต่างๆออกมาใช้ได้ เช่น สามารถรวบรวมได้ว่า ลูกค้ารายนี้ สั่งอะไรบ้าง สินค้ารายการนี้ถูกสั่งไปเท่าไร เหลืออีกเท่าไร ฯลฯ
การแก้ไขข้อมูล เป็นอีกความสามารถหนึ่งที่ระบบฐานข้อมูลจะช่วยให้ทำงานสะดวกขึ้น ยกตัวอย่างเช่น จากข้อที่แล้วตัวอย่างใบสั่งของ ถ้าลูกค้ามีการเปลี่ยนหมายเลขโทรศัพท์ติดต่อ เราก็สามารถแก้ทีเดียวได้ โดยไม่ต้องเข้าไปแก้ในใบสั่งของแต่ละใบ เป็นต้น
ซึ่งจากหน้าที่ของระบบฐานข้อมูลจะทำให้เห็นว่า การเก็บข้อมูลอย่างมีระบบกับไม่มีนั้น มีความสามารถและประโยชน์ใช้สอยต่างกันมาก ซึ่งก็คงจะทำให้เห็นประโยชน์ของฐานข้อมูลเด่นชัดขึ้น
ระบบฐานข้อมูลคอมพิวเตอร์
อันที่จริงแล้วนั้น ระบบฐานข้อมูลไม่จำเป็นจะต้องอิงกับคอมพิวเตอร์เสมอไป ยกตัวอย่างเช่น ระบบบัตรทะเบียนหนังสือในห้องสมุด ระบบบัตรคนไข้ ฯลฯ แม้แต่การที่เราจดบันทึกหมายเลขโทรศัพท์ของเพื่อน ก็ถือได้ว่าเป็นระบบฐานข้อมูลอย่างหนึ่ง ซึ่งระบบดังกล่าวนี้ ถ้ามีการใช้หลักของการจัดการฐานข้อมูลที่ถูกต้องแล้วละก็ จะสามารถมีความสะดวกในการใช้สอยได้ในระดับหนึ่ง
แต่ทว่าในปัจจุบันเมื่อเราพูดถึงระบบฐานข้อมูล เราก็มักจะนึกถึงระบบฐานข้อมูลคอมพิวเตอร์ การนำคอมพิวเตอร์มาใช้ในการจัดการฐานข้อมูลนั้น อาจพูดได้ว่า เป็นการใช้คอมพิวเตอร์ที่ตรงกับข้อเด่นที่สุดของคอมพิวเตอร์อย่างหนึ่ง ก็คือ ใช้กับงานที่มีการทำซ้ำเป็นจำนวนมาก มีการประมวลผลที่เป็นระบบ ซึ่งคอมพิวเตอร์จะไม่มีความผิดพลาดอันเกิดจากการเหนื่อยล้าหรือเบื่อหน่าย
มาใช้ระบบฐานข้อมูลคอมพิวเตอร์กันดีกว่า
จากตัวอย่างที่ยกมา คงจะเห็นข้อดีขอระบบฐานข้อมูลคอมพิวเตอร์แล้ว ในขั้นต่อไปในการจะเริ่มใช้ฐานข้อมูล อันดับแรกก็คงจะเป็นการเลือกโปรแกรมจัดการฐานข้อมูลมาใช้ ในปัจจุบันโปรแกรมจัดการฐานข้อมูลมีให้เลือกมากมายหลายชนิด มีทั้งโปรแกรมที่ขายในท้องตลาดทั่วไป เช่น Microsoft access, ORACLE ฯลฯ หรือโปรแกรมที่แจกให้ใช้ผ่านทางอินเตอร์เน็ตโดยไม่ต้องเสียค่าใช้จ่าย เช่น Mysql ฯลฯ
อันที่จริงแล้วนั้น ในการพัฒนาระบบที่ถูกต้องนั้น จะต้องเริ่มจากการวิเคราะห์ระบบก่อนว่า ระบบของเราเป็นเช่นไร จะมีข้อมูลอะไรบ้างที่ใช้ในระบบ ต้องประเมินว่าจำนวนข้อมูลทั้งหมดที่จะเกิดขึ้นจะมีประมาณเท่าใด มีการใช้ฐานข้อมูลในลักษณะใดบ้างเช่น ต้องออกรายงาน ต้องมีการแสดงผลแบบเรียล์ไทม์(real time) ฐานข้อมูลจะมีการเข้าใช้พร้อมกันหลายคนหรือไม่ เป็นต้น ซึ่งเมื่อได้ผลของการวิเคราะห์แล้ว จึงนำไปเลือกโปรแกรมจัดการฐานข้อมูลที่เหมาะสม สามารถรองรับระบบที่เราต้องการใช้ได้
แต่สำหรับผู้เริ่มต้นแล้ว แนะนำว่าให้เริ่มทดลองใช้ให้คุ้นเคยกับระบบการจัดการฐานข้อมูลก่อน เพราะแทบทุกโปรแกรม ลักษณะการจัดการจะค่อนข้างคล้ายคลึงกัน จะมีข้อแตกต่างก็แต่ว่าการใช้งานยากง่ายต่างกันเท่านั้น เช่นหน้าตาของตัวโปรแกรม การจัดวางเมนูใช้งาน ฟังชั่นสนับสนุนการทำงานต่างๆ ซึ่งเมื่อมีความคุ้นเคยแล้ว ก็จะทำให้สามารถเลือกโปรแกรมที่เหมาะสมกับระบบงานที่เป็นอยู่ได้
ภาพที่ 1.4 การเลือกโปรแกรมจัดการฐานข้อมูล
หลักการเลือกโปรแกรมระบบฐานข้อมูล
การเลือกโปรแกรมระบบฐานข้อมูลมีข้อที่ควรคำนึงถึงต่อไปนี้
จำนวนข้อมูลที่รองรับได้ องค์กรขนาดย่อมอาจไม่ต้องคำนึงถึงมากนัก แต่ต้องคิดถึงการขยายในอนาคตด้วย
วิธีการนำข้อมูลไปใช้ โปรแกรมระบบฐานข้อมูลทุกชนิด จะมีการเตรียมวิธีการนำข้อมูลไปใช้ไว้อยู่แล้ว แต่รูปแบบของการนำไปใช้ จะแตกต่างกัน ในแต่ละประเภท ตรงนี้ เราต้องคำนึงถึงว่า การนำไปใช้ของเราเป็นลักษณะใด เช่น เราต้องการรายงานออกมาในรูปตารางสรุป หรือ อาจต้องการในรูปของกราฟแสดงผล นอกจากนั้น ยังต้องคำนึงถึงว่า การถ่ายข้อมูลไปยังโปรแกรมอื่นๆที่เกี่ยวข้องกระทำได้หรือไม่ มีรูปแบบการนำข้อมูลออกตรงกับที่ต้องการหรือไม่ เช่น ต้องการนำข้อมูลไปเข้าโปรแกรมวิเคราะห์ทางสถิติ เป็นต้น
ความเป็นมาตรฐาน ความแพร่หลาย ถ้าเราใช้โปรแกรมที่มีจำนวนผู้ใช้มาก ก็จะทำให้การแลกเปลี่ยนข้อมูลสะดวกขึ้น นอกจากนั้นยังสามารถ ขอความช่วยเหลือและพัฒนาระบบต่อได้โดยง่าย
ระบบความปลอดภัย ต้องคำนึงถึงทั้งการเก็บสำรองข้อมูลในกรณีเกิดปัญหาทางฮาร์ดแวร์ และ ระบบป้องกันการเข้าถึงข้อมูลในกรณีที่เป็นข้อมูลลับที่อาจมีการขโมยข้อมูลเกิดขึ้น
ราคา โดยปกติแล้ว โปรแกรมที่มีความสามารถสูงก็ย่อมมีราคาแพง เราอาจต้องประเมินดูว่า จริงๆแล้วเราต้องการความสามารถนั้นๆหรือเปล่า
คำไข ระบบฐานข้อมูล การเลือกใช้
อ้างอิง อ. ภูมิ เหลืองจามีกร
ระบบฐานข้อมูลในปัจจุบัน จะนิยมใช้ฐานข้อมูลแบบสัมพันธ์ (Relational Database) โครงสร้างพื้นฐานของฐานข้อมูลประเภทนี้จะมีดังต่อไปนี้
ตาราง(Table)
จะเป็นที่เก็บข้อมูลของฐานข้อมูล จะมีลักษณะเป็นตาราง 2 มิติ โดยจะถือว่าข้อมูลในแนวนอน(แถว)เป็นข้อมูลหนึ่งชุด เรียกว่าเรคคอร์ด (Record) ซึ่งข้อมูลในแต่ละชุดจะประกอบด้วยข้อมูลต่างๆ ตามแนวตั้ง(คอลัมน์) ซึ่ง เรียกว่า ฟิลด์ (Filed)
ภาพที่ 1.6 โครงสร้างของตาราง
จากรูปที่ 1 เป็นตัวอย่างตารางเก็บข้อมูลสินค้า โดยสินค้าแต่ละชนิดจะถือว่าเป็นหนึ่งเรคคอร์ด ในแต่ละเรคคอร์ดจะมีข้อมูลชนิดต่างๆ (ฟิลด์ต่างๆ) บรรจุอยู่ ซึ่งในหนึ่งฐานข้อมูลก็จะประกอบด้วยตารางตั้งแต่หนึ่งตารางขึ้นไป
อินเด็กซ์ (Index)
อินเด็กซ์ จะเป็นฟิลด์ที่ใช้ช่วยในการค้นหาข้อมูล การทำงานของฟิลด์ที่เป็นอินเด็กซ์ก็คือ จะมีการจัดเรียงลำดับ โดยอัตโนมัติโดยอาศัยฟิลด์อินเด็กซ์เป็นตัวอ้างอิง การที่มีอินเด็กซ์ก็หมายความว่า ข้อมูลได้มีการจัดเรียงไว้แล้ว ยกตัวอย่างเช่นสมุดโทรศัพท์ ถ้าเราต้องการต้องการหาชื่อคนที่ขึ้นต้นด้วยตัว อ.อ่าง เราก็สามารถไปเปิดค้นได้จากบริเวณท้ายเล่มได้เลย โดยไม่ต้องดูไปทีละหน้าว่ามีชื่อที่ขึ้นต้นด้วย อ.อ่างอยู่หรือไม่
ภาพที่ 1.7 คีย์หลัก
ไพรมารี่ย์คีย์ (Primary Key)
ไพรมารี่ย์คีย์จะเป็นฟิลด์ที่สามารถเป็นตัวแทนเรคคอร์ดทั้งหมด ค่าไพรมารี่ย์คีย์จะต้องไม่ซ้ำกัน เมื่อระบุค่าไพรมารี่ย์คีย์แล้ว จะต้องสามารถอ้างอิงถึงฟิลด์อื่นๆได้เลย ยกตัวอย่างเช่น จากรูปที่1 เมื่อเราระบุสินค้ารหัส 0001 ก็จะหมายถึง พัดลมที่ราคา900 บาทได้เลย
การเก็บข้อมูลแบบสร้างความสัมพันธ์
ฐานข้อมูลแบบสัมพันธ์จะมีจุดเด่นที่ พยายามแยกข้อมูลออกมาเป็นชุดๆ (เป็นตารางอิสระ) แล้วจึงกำหนดความสัมพันธ์ระหว่างตาราง(ข้อมูล)ขึ้น เพื่อเก็บข้อมูลของสิ่งที่เกิดขึ้น การจัดเก็บลักษณะนี้จะช่วยลดความซ้ำซ้อนของข้อมูล และจะช่วยให้การแก้ไขเป็นไปอย่างสะดวกและลดความผิดพลาด
จากรูปที่2จะเห็นได้ว่า ได้แยกข้อมูลลูกค้าและข้อมูลสินค้าเป็นอย่างละหนึ่งตาราง แล้วจึงเก็บข้อมูลการสั่งซื้อโดยสร้างเป็นตารางความสัมพันธ์ระหว่างลูกค้ากับสินค้าขึ้น ซึ่งข้อมูลที่นำมาอ้างอิงในตารางความสัมพันธ์นั้นก็คือไพรมารี่ย์คีย์นั่นเอง
ภาพที่ 1.8 เทียบการเก็บข้อมูลแบบต่างๆ
เมื่อเปรียบเทียบ ระหว่างรูปที่2 กับ รูปที่3 จะเห็นได้ว่า ในรูปที่3นั้น ข้อมูลมีความซ้ำซ้อนกัน ยกตัวอย่างเช่นการสั่งพัดลมก็จะต้องเก็บชื่อสินค้าและราคาซ้ำกันสองที่ ซึ่งที่จริงแล้วสามารถจำแนกได้จากรหัสสินค้าได้โดยตรง นอกจากนั้นแล้ว ถ้าจะมีการแก้ชื่อจากพัดลม เป็นพัดลมตั้งโต๊ะ ก็จำเป็นจะต้องแก้ในทุกรายการที่เป็นพัดลมในตารางการสั่งซื้อในรูปที่3 ซึ่งถ้าเป็นการเก็บข้อมูลแบบใช้ความสัมพันธ์ (รูปที่2) ก็เพียงแก้เฉพาะชื่อสินค้าในตารางสินค้าเพียงแห่งเดียวเท่านั้น
คำไข โครงสร้างระบบฐานข้อมูล ตาราง
อ้างอิง อ. ภูมิ เหลืองจามีกร
เมื่อเริ่มใช้ฐานข้อมูล การออกแบบโครงสร้างของฐานข้อมูล จะเป็นสิ่งที่สำคัญมาก การออกแบบ จะใช้แผนภูมิความสัมพันธ์ระหว่างข้อมูลที่เรียกว่า ER-ไดอะแกรม (Entity Relationship Diagram) ดังตัวอย่างในรูปที่1เข้ามาช่วยในการออกแบบ แผนภูมินี้จะช่วยเรียบเรียงความคิด และช่วยทำให้มองความสัมพันธ์ระหว่างข้อมูลต่างๆได้ชัดเจนยิ่งขึ้น
ภาพที่ 1.9 ตัวอย่าง ERD
ER-ไดอะแกรมประกอบด้วยสามส่วนใหญ่ๆคือ
เอนทิตี (Entity)
เป็นตัวแทนของสิ่งที่สนใจ หรือจะพูดอีกอย่างว่า ตัวแทนของชุดข้อมูลหนึ่ง ยกตัวอย่างเช่น เอนทิตีสินค้า เอนทิตีลูกค้า เอนทิตีใบสั่งซื้อ เป็นต้น แทนด้วยสี่เหลี่ยม
พรอพเพอร์ตี้(Property)
เป็นคุณสมบัติของเอนทิตี ซึ่งก็คือ ข้อมูลจริงของสิ่งที่เราสนใจ เช่น เอนทิตีสินค้า ก็จะมีพรอพเพอร์ตี้ เช่น รหัสสินค้า ราคาต่อหน่วย เป็นต้น แทนด้วยวงกลม
ความสัมพันธ์ (Relationship)
เป็นการเชื่อมโยงระหว่างเอนทิตีกับเอนทิตี เช่น ความสัมพันธ์ระหว่างสินค้ากับใบสั่งซื้อ เป็นต้น แทนด้วยสามเหลี่ยม ความสัมพันธ์มีด้วยกันสามชนิดคือ ความสัมพันธ์ชนิดหนึ่งต่อหนึ่ง (1-1) ความสัมพันธ์ชนิดหนึ่งต่อกลุ่ม (1-M) ความสัมพันธ์ชนิดกลุ่มต่อกลุ่ม (M-N)
จากรูปที่1จะอ่านได้ว่า มีข้อมูลหลักอยู่ 3 อย่าง (3 เอนทิตี ,3 ตาราง) ได้แก่ ข้อมูลสินค้า(Product) ข้อมูลการสั่งซื้อ(Order) ข้อมูลลูกค้า(Customer) ซึ่งแต่ละตารางจะมีรายละเอียดย่อยๆ อาทิเช่น ตารางข้อมูลสินค้า ก็จะมีข้อมูลของรหัสสินค้า(ProductID) ชื่อสินค้า(ProductName) ราคาต่อหน่วย(UnitPrice) ปริมาณคงคลัง (UnitInStock)อยู่เป็นต้น
ส่วนจากความสัมพันธ์ก็จะอ่านได้ว่า “ในการสั่งซื้อแต่ละครั้งจะประกอบด้วยสินค้ากี่ประเภทก็ได้ หรือสินค้าแต่ละประเภทจะถูกสั่งจากหลายการสั่งซื้อก็ได้” (ความสัมพันธ์ชนิดกลุ่มต่อกลุ่ม) กับ “แต่ละการสั่งซื้อจะต้องมีผู้สั่งสินค้าเพียงคนเดียว แต่ทว่าลูกค้าแต่ละคนสามารถมีการสั่งซื้อหลายครั้งก็ได้” (ความ สัมพันธ์ชนิดหนึ่งต่อกลุ่ม)
การได้มาซึ่งER-ไดอะแกรมในรูปที่1 นั้น จะมีขั้นตอนดังต่อไปนี้
1. ศึกษารายละเอียดและลักษณะหน้าที่งานของระบบ
ศึกษาและรวบรวมรายละเอียดเกี่ยวกับลักษณะหน้าที่งานของระบบ ข้อมูลที่เกี่ยวข้อง ขั้นตอนในการทำงาน ตลอดจนข้อกำหนดต่างๆ ซึ่งอาจทำได้ด้วยการสัมภาษณ์หรือศึกษาจากแบบฟอร์มต่าง ๆ ที่มีการใช้งานอยู่ในระบบงานนั้น
2. กำหนดเอนทิตีที่ควรมีในระบบฐานข้อมูล
นำรายละเอียดในข้อ1 มาทำการกำหนดเอนทิตีที่จำเป็นต้องมีอยู่ในระบบฐานข้อมูล พร้อมทั้งกำหนดพรอพเพอร์ตี้ของแต่ละเอนทิตีด้วย
3. กำหนดความสัมพันธ์ระหว่างเอนทิตี
กำหนดประเภทของความสัมพันธ์ระหว่างเอนทิตี โดยพิจารณาจากข้อมูลที่ได้ทำการศึกษามา
4.ปรับปรุงเอนทิตี พรอพเพอร์ตี้ และความสัมพันธ์ ให้เหมาะสม
ทำการวิเคราะห์ER-ไดอะแกรมที่ได้มาว่า สื่อถึงระบบข้อมูลที่ต้องการจริงหรือไม่ แล้วทำการปรับแต่งให้เหมาะสม โดยอาจมีการเพิ่มหรือลดเอนทิตีหรือพรอพเพอร์ตี้ ปรับปรุงหรือเปลี่ยนแปลงลักษณะความสัมพันธ์เป็นต้น
คำไข ระบบฐานข้อมูล การออกแบบ ER-ไดอะแกรม เคล็ดลับ-วิธีการ บริหารเทคโนโลยี่/สารสนเทศ
อ้างอิง อ. ภูมิ เหลืองจามีกร
ภาพที่ 1.12 การจัดระเบียบข้อมูล
ทำไมถึงต้องจัดระเบียบฐานข้อมูล
ระบบฐานข้อมูลแบบใช้ความสัมพันธ์กันนั้น ข้อมูลจะถูกจัดแยกเข้าสู่ตารางย่อยๆหลายๆตาราง การจัดระเบียบฐานข้อมูลอย่างถูกวิธีจะช่วยให้การใช้งานฐานข้อมูลมีประสิทธิภาพยิ่งขึ้น เช่น ในแง่ของการเก็บข้อมูล จะช่วยลดความซ้ำซ้อนในการที่จะต้องจัดเก็บข้อมูลอย่างเดียวกัน ในแง่ของการแก้ไขจะช่วยให้สามารถแก้ไขข้อมูลได้อย่างถูกต้องและเป็นระบบมากขึ้น
ขั้นตอนการจัดระเบียบฐานข้อมูล
การจัดระเบียบฐานข้อมูลหรือที่เรียกว่าการทำ ”นอร์มอลไลเซชั่น” นั้น จะเป็นการปรับตารางให้เข้าสู่รูปแบบมาตรฐานที่เรียกว่า นอร์มอลไลเซชั่นฟอร์ม (Normalization Form ย่อด้วย NF) ซึ่งจะมีลำดับขั้นต่างๆ ตั้งแต่ 1NF, 2NF จนกระทั่งถึง 5NF แต่ทว่าในการใช้โดยปกติ จะทำจนถึงระดับ 3NF ก็เพียงพอ ในที่นี้ก็จะขอกล่าวถึงระดับ 3NF เท่านั้น นอร์มอลไลเซซั่นฟอร์มในลำดับที่สูงกว่า จะต้องมีคุณสมบัติของลำดับที่ต่ำกว่าอยู่ในตัวด้วย ดังนั้น ถ้าทำจนถึงขั้น 3NF ก็หมายความว่าจะมีคุณสมบัติของ1NFกับ2NF อยู่ด้วย
การทำให้ตารางเข้าสู่ 1NF
ในระดับ 1NF จะมีกฎอยู่ว่า ห้ามไม่ให้มีช่องข้อมูลที่เก็บค่ามากกว่าหนึ่งค่าอยู่ จากตัวอย่างในรูปที่1 ก็จะได้ว่าให้แตกข้อมูลในตารางทางซ้ายออกเป็นเรคคอร์ดย่อยๆตามตารางทางด้านขวา
ภาพที่ 1.13 การทำให้ตารางเข้าสู่ 1NF
การทำ ให้ตารางเข้าสู่ 2NF
ตารางที่มีคุณสมบัติในขั้น2NF จะมีลักษณะกล่าวคือ เป็นตารางที่มีไพรมารี่ย์คีย์ (ข้อมูลที่เป็นตัวแทนข้อมูลทั้งหมด) ซึ่งเมื่อเลือกค่าไพรมารี่ย์คีย์แล้วจะต้องสามารถบอกข้อมูลที่เหลือทั้งหมดได้ ถ้าตารางใดมีไพรมารี่ย์คีย์เพียงตัวเดียวก็ถือว่าอยู่ในระดับ 2NFอยู่แล้ว แต่ถ้ามีไพรมารี่ย์คีย์ มากกว่าหนึ่ง ก็ให้พิจารณาว่า ไพรมารี่ย์คีย์แต่ละตัว สามารถชี้บ่งไปยังฟิลด์อื่นๆได้หรือไม่ ถ้าได้ ให้แยกไพรมารี่ย์คีย์พร้อมทั้งฟิลด์เหล่านั้นออกมา
ในรูปที่ 2 จะเห็นได้ว่า จากตารางรายละเอียดการขายมีหมายเลขใบกำกับสินค้า (InvNo) กับรหัสสินค้า (ProId) เป็นไพรมารี่ย์คีย์ ถ้าระบุหมายเลขใบกำกับสินค้า กับรหัสสินค้าแล้วละก็จะสามารถบ่งบอกถึงข้อมูลที่เหลือทั้งหมดได้ แต่เมื่อพิจารณาต่อไปว่า ไพรมารี่ย์คีย์แต่ละตัวบ่งชี้อะไรได้บ้าง ก็จะพบว่าหมายเลขใบกำกับสินค้า สามารถบ่งชี้ถึงวันที่ และ ลูกค้าได้ เราจึงดึงข้อมูลทั้งหมดออกมาเป็นตารางใหม่ ส่วนรหัสสินค้าก็สามารถชี้บ่งข้อมูลทั้งหมดของสินค้าได้ ก็จึงดึงออกมาได้อีกตารางเช่นกัน
ภาพที่ 1.14 การทำให้ตารางเข้าสู่ 2NF
การทำ ให้ตารางเข้าสู่ 3NF
ตารางที่มีคุณสมบัติในขั้น 3NF จะมีลักษณะกล่าวคือ ต้องไม่มีฟิลด์อื่น นอกจากไพรมารี่ย์คีย์ที่สามารถชี้บ่งไปยังฟิลด์อื่นได้ ถ้ามี ให้ดึงออกมาเป็นตารางใหม่
จากรูปที่2แล้ว ในตารางใบกำกับสินค้า จะเห็นได้ว่ารหัสลูกค้า (CustId) สามารถชี้บ่งไปยังฟิลด์อื่นๆได้ ดังนั้น การจะทำให้อยู่ในขั้น 3NF ก็ต้องแยกข้อมูลลูกค้าทั้งหมดออกมาเป็นตารางใหม่ซึ่งก็จะได้เป็นตารางในรูปที่3
ภาพที่ 1.15 การทำให้ตารางเข้าสู่ 3NF
จะเห็นได้ว่าข้อมูลลดความ “ซ้ำซ้อน”ลงได้มาก จากตัวอย่างในรูปที่ 2 บน ที่มีข้อมูลทั้งหมด84 ช่อง จะเหลือเพียง64ช่องเท่านั้น (นับจากตารางสินค้าและตารางการขาย ในรูปที่ 2 และตารางใบกำกับสินค้าและตารางลูกค้าในรูปที่ 3) แต่ในขณะเดียวกัน ก็จะมีจำนวนตารางเพิ่มขึ้นด้วยจาก1ตารางเป็น4ตาราง โครงสร้างก็มีความ”ซับซ้อน” มากขึ้น ทำให้การใช้งานอาจจะสับสนได้ นอกจากนั้นการที่มีตารางย่อยๆหลายตารางอาจทำให้การเข้าถึงข้อมูลช้าลงด้วย ดังนั้น การจะทำถึงขั้นใด หรือ ทำให้สมบูรณ์เพียงไรนั้นก็ขึ้นอยู่กับลักษณะข้อมูลที่จะใช้
คำไข ระบบฐานข้อมูล การจัดระเบียบฐานข้อมูล (Normalization)นอร์มอลไลเซชั่นฟอร์ม (Normalization Form ) เคล็ดลับ-วิธีการ บริหารเทคโนโลยี่/สารสนเทศ
อ้างอิง อ. ภูมิ เหลืองจามีกร