(อาจารย์เกวลี) เดี๋ยวเริ่มเลย
ก็ได้ค่ะ
โอเค น่าจะประมาณนี้นะคะ
วันนี้จะเป็นบทที่ 5 เกี่ยวกับกระบวนการ
ปรับบรรทัดฐาน ภาษาอังกฤษก็จะเป็น
normali
เนื้อหาวันนี้ก็จะมีจุดมุ่งหมาย
ของการทำ Nomanlization
จะเกี่ยวกับฟังก์ชันการขึ้นต่อกัน แล้วก็หลักการขึ้น normal
ด้วยนะคะ มีอยู่ 3 ข้อวันนี้
โดยการปรับมาตรฐานหรือ No
มันจะเป็นทฤษฎีที่คนออกแบบฐานข้อมูล
มาแปลงข้อมูลจากรูปที่ซับซ้อน
นะคะ ให้มันง่าย เข้าใจ
ก้งาน นำไปใช้งานก็ง่าย แล้วต้องเป็นระบบที่
ี่สึเ
ดยกระบวนการ
ทำงานนะคะ ในการปรับบรรทัดฐานนี่มันจะมี 3 ระดับ
นะคะ จริง ๆ เราก็จะเรียกสะ้น ๆ ระดับแรกจะเรียกว่
นะคะ 2NF 3NF นะคะ
ในระดับปริญญาตรีนี่
ถึง 3NF ได้ก็ถือว่าเก่งมากแล้ว
แต่ถ้าเป็นระดับที่สูงขึ้นไปอีก ก็จะได้ถึง 5NF
นะคะ
อันนี้เป็น
123456
แผนภาพกระบวนการทำงานนะคะ ก่อนเราจะมาทำแผนภาพปรับบรรทัดฐาน
ได้นี่ มันก็ต้องวิเคราะห์การใช้งานของผู้ใช้งานก่อน
เขาต้องการระบบจัดการฐานข้อมูลแบบไหน ต้องการ
ใช้ตารางกี่ตารางในฐานข้อมูลนะคะ
หลังจากนั้นก็จะมาวาดรูปเหมือนที่เราเรียนอาทิตย์ที่แล้วนะคะ
มาวาดเป็นแผนถาพ ให้เข้าใจว่า
สิ่งที่เรากำลังจะออกแบบหรือสิ่งที่เรากำลังจะทำฐานข้อมูลนี่ ตรง
ตามความต้องการหรือเปล่านะคะ
แต่รูปแบบของรูปที่เราวาดอาทิตย์ที่แล้วนี่ จะยังเป็นรูป
แบบที่ที่เป็นบรรทัดฐาน
เครื่อง ถามว่าตอนนี้เราได้กรอกข้อมูลไหม ไม่ต้อง
ขอแค่มีเลขบัตรประชาชน ข้อมูลทุกอย่างที่คุณมี
เขาจะดึงออกมาจากระบบให้เลย เราไม่ต้องเสียเวลากรอกนะคะ
เหมือนเมื่อก่อนนี่
ต้องเขียนใส่กระดาษเลขบัตรประชาชนอะไร
ที่อยู่ที่ไหน เบอร์โทรศัพท์อะไร เด๋ยวนี้ไม่้องเลย ขอแค่ม
ข้อมูลทุกอย่างเราสามารถดึงขึ้นมาได้อยู่แล้วนะคะ
อันนี้ก็เช่นเดียวกันถ้ากรอกข้อมูลแบบไม่ดีนี่
เราต้องกรอกข้อมูลทุกช่องทุกช่องเลยนี่
คนเดียว ไม่เดือดร้อนค่ะ แต่ถ้าเป็พนักงานใหม่
เป็นเหมือนโรงงานน่ะค่ะ ทีละ 1,000 คน ต้องนั่ง
กรอกเชียงใหม่เป็นพัน ๆ ครั้งนี่ เสียเวลา
มาก ๆ นะคะ อันนี้คือการออกแบบที่
ไม่ดีนะคะ
กับอีกอย่างหนึ่ง ถ้าสมมติว่า
เมื่อกี้อาจารย์เพิ่มพนักงานแล้ว ถ้าอาจารย์อยากเพิ่มแค่สาขา
นะคะ อยากเพิ่มแค่สาขา
ซึ่งในตารางนี้ คีย์หลัก จำได้ไหมคะ
จะเป็นคีย์ที่ขีดเส้นใต้
ซึ่งอาจารย์อยากเพิ่มสาขา สมมติอาจารย์เพิ่ม
B100 สกลนคร
สกลนครนะคะ เพิ่มได้ไหม
อาจจะเป็นการตั้งสาขา แต่ยังไม่มีพนักงานหรอกนะคะ
ถ้าจากตารางนี้นะคะ
เราจะเพิ่มเฉพาะชื่อสาขาไม่ได้ เนื่องจากเรายังไม่มี
รหัสพนักงาน เพราะรหัสพนักงานเป็นคีย์หลัก
คีย์หลัก คือ คุณสมบัติมัน คือ เป็นค่าว่างไม่ได้
นะคะ อันนี้จะทำให้เราเพิ่ม
สาขาไม่ได้ เพราะเราไม่มีพนักงาน อันนี้ก็เป็น
ข้อผิดพลาดในการเพิ่มข้อมูล
ถ้าเราออกแบบตารางแบบนี้นะคะ
นี่ก็คือปัญญาที่เกิดขึ้นจากการออกแบบ
ไม่ดี
กับ
ปัญหาต่อมา เป็นปัญหาการลบข้อมูลอย่างที่อาจารย์บอก
คนนี้ลาออก สาขาเชียงใหม่
หายไปด้วยนะคะ โดน
ลบไป กรณีความผิดพลาดจากการเปลี่ยนแปลง
นะคะ เหมือน B003 นี่ค่ะ เป็นกรุงเทพฯ
ใช่ไหมคะ แล้วคราวนี้ข้อมูลมันอยู่ใน
ตารางเดียวกัน ถ้านักศึกษาจะแก้ สมมติว่าเราย้าย
จากรุงเทพฯ ไปอยู่นนทบุรี
สมมติมีพนักงาน 3,000 คน
คุณต้องแก้กรุงเทพฯ 3000 ครั้ง
เป็นนนทบุรีนะคะ
ถ้าพนักงานมี คน 2 คน ไม่ใช้ปัญหาค่ะ แต่ถ้าเป็น
โรงงานขนาดใหญ่ นั่งแก้ทีละ 3,000 คน ไม่ใช่เรื่องสนุกแน่ ๆ นะคะ
แน่ ๆ นะคะ
อันนี้ก็เป็นปัญหานะคะ
เพราะฉะนั้นเราควรแยกตารางพนักงาน
กับตารางสาขาออกจากกันนะคะ นี่คือเหตุผล
ข้อมูลขนาดเล็กนะคะ เรายังเห็นปัญหาขนาดนี้ สมมติถ้า
เป็นองค์กรขนาดใหญ่ เป็นบริษัท เป็นโรงงาน หรือ
ระดับโรงเรียนมีนักเรียน 2-3 ร้อย หรือ 2-3 พันคน
ก็ได้นะคะ มันก็จะมีปัญหาเยอะมาก ถ้าเกิดเราจัดตารางไม่ดี
นะคะ
จากปัญหาที่เกิดขึ้นเมื่อกี้อย่างที่บอกค่ะ
เราจะแก้ปัญหาโดยการแยกหตารางเป็น 2 ตรชารางแบบนี้
นะคะ
การขึ้นต่อกัน เดี๋ยว
จะเป็นเกี่ยวกับตารางหนึ่งมีผลกับอีกตารางหนึ่ง เราเรียกฟังก์ชันที่มี
การขึ้นต่อกัน
เดี๋ยวดูตัวอย่างเลยแล้วกันนะคะ อย่างเช่น ตารางนี้
นะคะ ดูจากรหัสพนักงานนะคะ
เราจะเห็นได้ว่ารหัสพนักงาน
จะส่งผลกับชื่อตำแหน่ง
สัญลักษณ์ของการขึ้นต่อกันนะคะ อันไหนเป็นตัวหลั
จะชี้ไปที่ตัวรองตามหัวลู