ประมาณนี้
นะคะ
วันนี้จะเป็นบทที่ 5
เกี่ยวกับ
2nf 3nf
ในระดับปริญญาตรีเนี่ย
ถึง 3ms ได้
ก็ถือว่าเก่งมากแล้ว
นะคะ
ถ้าเป็นระดับที่สูงขึ้นไปอีกก็จะถึงได้ถึง 5 nf เลย
นะคะ
อันนี้เป็น
แผนภาพกระบวนการทำงานนะคะ ก่อนที่เราจะมาทำกระบวนการปรับบรรทัดฐานได้เนี่ยมันก็ต้องวิเคราะห์ความต้องการของผู้ใช้งานก่อนว่าเขาต้อง
การระบุ
การฐานข้อมูลแบบไหนมีความต้องการใช้
ตารางกี่ตารางในฐานข้อมูลนะคะ
หลังจากนั้น
วาดรูป
แผนที่โรงเรียนอาทิตย์ที่แล้ว
นะคะ ว่าเป็นแผนภาพเพื่อให้เข้าใจว่า
สิ่งที่เรากำลังจะออกแบบหรือสิ่งที่เรากำลังจะทำฐานข้อมูล
มันตรงตามความต้องการหรือเปล่านะคะ
แต่รูปแบบของรูปที่เราวันอาทิตย์ที่แล้วเนี่ยมันจะยังเป็นรูปแบบที่
ยังไม่เป็นบรรทัดฐานหรือว่ายังไม่มีการจัดระเบียบความคิด
ข้อมูลที่ซ้ำซ้อนกันออกไปหรืออาจจะมีคีย์หลักที่มัน
Ր
ขอนแก่นนะคะ เราก็เลยจะต้องเอาข้อมูลจากที่เราว่าอาทิตย์ที่แล้วเนี่ย
เก่งมากแล้ว
อย่างน้อย 2-3 นะคะ
ไอ้บอยคอร์ดกับสีเนี่ยไม่ทำก็ก็ก็รักไว้ได้นะคะ แต่อย่างน้อยต้องถึง
วัตถุประสงค์ของการปรับฐานนะคะ
แน่นอนลดความซ้ำซ้อนของข้อมูลก็คือถ้าข้อมูลมันซ้ำกันเนี่ยเราก็ต้องตัดออกไป
โครงสร้างเป็นสิ่งสำคัญมากเท่าไหร่เนื้อหาแล้วก็พื้นที่ในการเก็บข้อมูลอย่างมันก็จะเยอะ
ก็ทำให้สิ้นเปลือง
ประมาณเหมือนกัน
รวมถึงลดปัญหาความไม่ถูกต้องของข้อมูล
ข้อมูลเนี่ยนอกจากที่จะไม่เกิดความสอดคล้องกันแล้วเนี่ย
วันจันทร์อาจจะเกิดจากสาเหตุคือ
ถ้าเหมือนที่ตัดกระจกทุกอย่างก็คือถ้าเราเก็บข้อมูลหลาย ๆ ที่
นักศึกษา
เก็บข้อมูลที่คณะด้วยเก็บที่มหาลัยด้วยเก็บที่สาขาด้วยเนี่ยบางทีถ้าวันนึง
คุณอาจจะเปลี่ยนแปลงเบอร์โทรศัพท์
ที่บ้าน
ก็ต้องไปตามเปลี่ยนทุกที่เลย
นะคะ
ซึ่งเสียเวลาแล้วคราวนี้ก็จะเป็นที่เถียงกันว่าสรุปแล้วเบอร์ไหนถูกเบอร์ไหนผิด
โดยวัตถุประสงค์ของการปรับบรรทัดฐานก็คือข้อมูลจะถูกเก็บอยู่อย่างเดียว
ราคาเก็บไว้ที่เดียว
แต่สามารถเรียกใช้และใช้งานได้หลาย ๆ ที่พร้อมกันได้
แต่ถ้ามันมีการเปลี่ยนแปลงข้อมูลหรือมีการลบหรือการเพิ่มข้อมูล
เพื่อให้ข้อมูลเป็นปัจจุบันที่สุด
เราจะเก็บข้อมูลไว้ที่เดียว
แก้ไขก็ที่เดียว
เพราะฉะนั้นข้อมูลก็จะเป็นข้อมูลที่ถูกต้องแล้วก็
ปัจจุบันด้วย
แล้วก็
อย่างที่ใช้ในการเก็บข้อมูลที่เดียวเนี่ยมันก็จะลดความผิดพลาดที่เกิดจากการ
เปลี่ยนแปลงข้อมูลปรับปรุงข้อมูลนะคะ เหมือนที่บอกว่าคือ
ถ้าเปลี่ยนเบอร์โทรศัพท์หรือเปลี่ยนบ้านเลขที่นะคะ ก็เปลี่ยนแปลงที่เดียวเราสามารถเรียกใช้ข้อมูลได้
พร้อมกันถ้าต้องการข้อมูลนะคะ
ความซ้ำซ้อนกันของข้อมูลมันอาจจะเกิดความผิดพลาดของการปรับปรุงข้อมูลนะคะ
แนวคิดที่สำคัญของการออกแบบฐานข้อมูล
การออกแบบข้อมูลที่ซ้ำซ้อนกันน้อยที่สุด
เพื่อประหยัดเนื้อที่ในการเก็บข้อมูลแล้วก็ลดปัญหาที่จะเกิดขึ้น
ถ้าสมมุติว่าข้อมูลมันซ้ำซ้อนกันมากเกินไปหรือ
ปริมาณข้อมูลมันเยอะเกินไป
อย่างเช่นตัวอย่างนะคะ ตารางด้านบนตารางสีเทาข้างบน
จะเป็นตัวอย่างการออกแบบ
ฐานข้อมูลที่ดีเดี๋ยวจะมาให้ดูว่าทำไมมันถึงดีกว่าในตารางข้างบนเนี่ยมันจะมีตารางของพนักงานแล้วก็ต่างสาขา
จะเห็นได้ว่า
ตาราง
พนักงาน
จะมีส่วนหนึ่งที่เป็นข้อมูลของรหัสสาขา
ก้อยไม่อยู่
ถามว่าทำไมไม่เอา
ข้อมูลสาขามาไว้ในตารางพนักงานทีเดียวเลยล่ะ
ทำไมต้องแยกออก
ถ้า
ศึกษาดูคนแรกนะคะ
พนักงานคนแรกรหัสสาขา b005
ก็คือสาขา
เชียงใหม่
ถ้าสมมุติว่าพนักงานคนที่ 1 ลาออก
ก็จะมีการลบข้อมูลเกิดขึ้นใช่ไหมคะ
มีการลบข้อมูล
ลบนี้ออก
ขีดฆ่าทิ้ง
นะคะ ฆ่าทิ้ง
สิ่งไหนที่หายไปบ้าง
แน่นอนสาขาเชียงใหม่จะหายไปด้วย
นะคะ ถ้าสมมุติเราอยู่ด้วยกัน
แต่ถ้าสมมุติพนักงานคนนี้ลาออกสาขาเชียงใหม่ยังอยู่ไหม
ยังอยู่
นะคะ
ซึ่งแตกต่างจากด้านล่าง
ด้านล่าง
เห็นไหมคำว่า
ถ้าสมมุติว่าจะลบทิ้งหมดเลย
กากบาททิ้ง
สาขาเชียงใหม่หายไปด้วย
ออกแบบที่ไม่
ดี
เหมือน
คนข้างล่าง
ออก
สาขาพิษณุโลก
ก็หายไปด้วย
แต่ถ้าเป็นตารางด้านบน
นะคะ
ถ้าคนนี้ลาออก
สาขายังอยู่ไหม
ยังอยู่เหมือนเดิมนะคะ
อันนี้คือการออกแบบฐานข้อมูลที่ดี ถ้าข้อมูลตัวไหนที่มันมีผลกระทบต่อกัน เราจะต้องแยกตารางออก
นะคะ
ตัวอย่าง
นะคะ ถ้าการออกแบบที่ดีเนี่ยเราจะลด
ปัญหาความซ้ำซ้อนของข้อมูล
ได้
เช่นตัวนี้ อันนี้เป็นตารางที่ออกแบบที่ไม่ดีนะคะ
เห็นไหมคะ ว่ามันจะมี
รหัสสาขา
แล้วก็ที่อยู่
อยู่ในตารางเดียวกัน
ถ้าสมมุติว่าอาจารย์เพิ่ม
เข้ามาใหม่อีก 1 คน
นะคะ
n e m
ถ้าต้องการเพิ่มพนักงานสาขา
ดกดกด
เชียงใหม่ก็ต้องมา กรอกข้อมูลตรงนี้อีก
เชียงใหม่ ณ โรงเรียนระโนด
แต่ถ้า
ง
การออกแบบฐานข้อมูลที่ดีเนี่ย
เราแค่ใส่รหัสสาขา
ไม่จำเป็นจะต้องพิมพ์ที่อยู่ทุกครั้งก็ได้
เหมือนเวลาคุณไปธนาคารใช่ไหมคะ
คุณก็แค่ยื่นบัตรประชาชน
พนักงานธนาคารก็จะกรอกเลขบัตรประชาชนคุณนงไป
หรืออาจจะเอาชิปการ์ดของคุณเนี่ยเสียบเข้าไปในเครื่องถามว่าตอนนี้เราได้กรอกข้อมูลไหม
ขอแค่มีเลขบัตรประชาชนข้อมูลทุกอย่างที่คุณมีเขาจะดึงออกมาจากระบบให้เลยเราไม่ต้องมาเสียเวลาก่อน
เหมือนเมื่อก่อนเนี่ยต้องเขียนใส่กระดาษและเลขบัตรประชาชนด้านรายชื่ออะไรนามสกุลอะไรที่อยู่ที่ไหนเบอร์โทรศัพท์อะไรเดี๋ยวนี้ไม่ต้องเลยขอแค่มีเลขบัตรประชาชนข้อมูลทุกอย่างเราสามารถดึงขึ้นมาได้อยู่แล้ว
อันนี้ก็เช่นเดียวกัน
ถ้าการออกแบบไม่ดีแต่เราต้องกรอกข้อมูลถูกต้องทุกช่องเลยเนี่ย
มันทำให้
อาจจะคนเดียวไม่เดือดร้อนค่ะ
ถ้าเป็นพนักงานใหม่เป็นเหมือนโรงงานน่ะค่ะ ที่รักพันคน
นั่งกรอก
เชียงใหม่เป็นพันครั้งเนี่ยเสียเวลามาก ๆ
อันนี้คือการออกแบบที่ไม่ดี
นะคะ
กลับอีกอย่างนึงถ้าสมมุติว่าเมื่อกี้อาจารย์เพิ่มพนักงานแล้ว
ถ้ามันอยากเพิ่มแค่สาขา
อย่าเพิ่งแค่สาขาซึ่งในตารางนี้
กีฬา
จำได้ไหมคะที่รักจะเป็นคีย์ที่ขีดเส้นใต้
ซึ่งอาจารย์อยากเพิ่มสาขาสมุทรปราการจะเพิ่มบี