--- title: ฝึก PE กับ ASR (ห้องเรียนสกล) หลักการและระบบการจัดการฐานข้อมูล อ.เกวลี วันที่ 13 ธ.ค. 2565 subtitle: date: วันพฤหัสบดีที่ 15 ธันวาคม 2565 เวลา 09.05 น. --- (ข้อความสดจากระบบถอดความเสียงพูดทางไกล) ประมาณนี้ นะคะ วันนี้จะเป็นบทที่ 5 เกี่ยวกับ กระบวนการ การปรับบรรทัดฐาน ขาภาษาอังกฤษก็จะเป็นนกอะไร Season มันก็จะมีความหมายแล้วก็จุดประสงค์ของการทำ การปรับมาตรฐานนะคะแล้วก็จะเกี่ยวกับ ฟังก์ชั่นการขึ้นต่อการและกระบวนการในการทำนมคาร์เนชั่นด้วย นะคะ มี 3 ข้อวันนี้ โดยการประปาฐานนะคะหรือว่านอนเมื่อไหร่แฟชั่นเนี่ยมันจะเป็นทฤษฎีที่ คนที่จะต้องออกแบบฐานข้อมูลเขาจะต้องมาแปลงข้อมูล ข้อมูลอาจจะเป็นข้อมูลที่ซับซ้อน นะคะให้มันง่าย เข้าใจก็ง่าย ใช้งานก็ง่ายแล้วก็ต้องเป็นระบบที่หลังจากออกแบบแล้วนำไปใช้งานจริงต้องเกิดปัญหาน้อยที่สุด โดยกระบวนการทำงานนะคะในการปรับบรรทัดฐานเนี่ยมันจะมี 3 ระดับ จริงๆเราก็จะเรียกสั้นๆว่า ระดับแรกนึกว่า 1nf 2nf 3nf ในระดับปริญญาตรีเนี่ย ถึง 3ms ได้ ก็ถือว่าเก่งมากแล้ว นะคะ ถ้าเป็นระดับที่สูงขึ้นไปอีกก็จะถึงได้ถึง 5 nf เลย นะคะ อันนี้เป็น แผนภาพกระบวนการทำงานนะคะก่อนที่เราจะมาทำกระบวนการปรับบรรทัดฐานได้เนี่ยมันก็ต้องวิเคราะห์ความต้องการของผู้ใช้งานก่อนว่าเขาต้อง การระบุ การฐานข้อมูลแบบไหนมีความต้องการใช้ ตารางกี่ตารางในฐานข้อมูลนะคะ หลังจากนั้น วาดรูป แผนที่โรงเรียนอาทิตย์ที่แล้ว นะคะว่าเป็นแผนภาพเพื่อให้เข้าใจว่า สิ่งที่เรากำลังจะออกแบบหรือสิ่งที่เรากำลังจะทำฐานข้อมูล มันตรงตามความต้องการหรือเปล่านะคะ แต่รูปแบบของรูปที่เราวันอาทิตย์ที่แล้วเนี่ยมันจะยังเป็นรูปแบบที่ ยังไม่เป็นบรรทัดฐานหรือว่ายังไม่มีการจัดระเบียบความคิด ข้อมูลที่ซ้ำซ้อนกันออกไปหรืออาจจะมีคีย์หลักที่มัน ขอนแก่นนะคะเราก็เลยจะต้องเอาข้อมูลจากที่เราว่าอาทิตย์ที่แล้วเนี่ย เข้าสู่กระบวนการปรับพื้นฐานก่อน ซึ่งอย่างที่บอก เราทำแค่ถึง 3S เนี่ยก็ เก่งมากแล้ว อย่างน้อย 2-3 นะคะ ไอ้บอยคอร์ดกับสีเนี่ยไม่ทำก็ก็ก็รักไว้ได้นะคะแต่อย่างน้อยต้องถึง วัตถุประสงค์ของการปรับฐานนะคะ แน่นอนลดความซ้ำซ้อนของข้อมูลก็คือถ้าข้อมูลมันซ้ำกันเนี่ยเราก็ต้องตัดออกไป โครงสร้างเป็นสิ่งสำคัญมากเท่าไหร่เนื้อหาแล้วก็พื้นที่ในการเก็บข้อมูลอย่างมันก็จะเยอะ ก็ทำให้สิ้นเปลือง ประมาณเหมือนกัน รวมถึงลดปัญหาความไม่ถูกต้องของข้อมูล ข้อมูลเนี่ยนอกจากที่จะไม่เกิดความสอดคล้องกันแล้วเนี่ย วันจันทร์อาจจะเกิดจากสาเหตุคือ ถ้าเหมือนที่ตัดกระจกทุกอย่างก็คือถ้าเราเก็บข้อมูลหลายๆที่ นักศึกษา เก็บข้อมูลที่คณะด้วยเก็บที่มหาลัยด้วยเก็บที่สาขาด้วยเนี่ยบางทีถ้าวันนึง คุณอาจจะเปลี่ยนแปลงเบอร์โทรศัพท์ ที่บ้าน ก็ต้องไปตามเปลี่ยนทุกที่เลย นะคะ ซึ่งเสียเวลาแล้วคราวนี้ก็จะเป็นที่เถียงกันว่าสรุปแล้วเบอร์ไหนถูกเบอร์ไหนผิด โดยวัตถุประสงค์ของการปรับบรรทัดฐานก็คือข้อมูลจะถูกเก็บอยู่อย่างเดียว ราคาเก็บไว้ที่เดียว แต่สามารถเรียกใช้และใช้งานได้หลายๆที่พร้อมกันได้ แต่ถ้ามันมีการเปลี่ยนแปลงข้อมูลหรือมีการลบหรือการเพิ่มข้อมูล เพื่อให้ข้อมูลเป็นปัจจุบันที่สุด เราจะเก็บข้อมูลไว้ที่เดียว แก้ไขก็ที่เดียว เพราะฉะนั้นข้อมูลก็จะเป็นข้อมูลที่ถูกต้องแล้วก็ ปัจจุบันด้วย แล้วก็ อย่างที่ใช้ในการเก็บข้อมูลที่เดียวเนี่ยมันก็จะลดความผิดพลาดที่เกิดจากการ เปลี่ยนแปลงข้อมูลปรับปรุงข้อมูลนะคะเหมือนที่บอกว่าคือ ถ้าเปลี่ยนเบอร์โทรศัพท์หรือเปลี่ยนบ้านเลขที่นะคะก็เปลี่ยนแปลงที่เดียวเราสามารถเรียกใช้ข้อมูลได้ พร้อมกันถ้าต้องการข้อมูลนะคะ ความซ้ำซ้อนกันของข้อมูลมันอาจจะเกิดความผิดพลาดของการปรับปรุงข้อมูลนะคะ แนวคิดที่สำคัญของการออกแบบฐานข้อมูล การออกแบบข้อมูลที่ซ้ำซ้อนกันน้อยที่สุด เพื่อประหยัดเนื้อที่ในการเก็บข้อมูลแล้วก็ลดปัญหาที่จะเกิดขึ้น ถ้าสมมุติว่าข้อมูลมันซ้ำซ้อนกันมากเกินไปหรือ ปริมาณข้อมูลมันเยอะเกินไป อย่างเช่นตัวอย่างนะคะตารางด้านบนตารางสีเทาข้างบน จะเป็นตัวอย่างการออกแบบ ฐานข้อมูลที่ดีเดี๋ยวจะมาให้ดูว่าทำไมมันถึงดีกว่าในตารางข้างบนเนี่ยมันจะมีตารางของพนักงานแล้วก็ต่างสาขา จะเห็นได้ว่า ตาราง พนักงาน จะมีส่วนหนึ่งที่เป็นข้อมูลของรหัสสาขา ก้อยไม่อยู่ ถามว่าทำไมไม่เอา ข้อมูลสาขามาไว้ในตารางพนักงานทีเดียวเลยล่ะ ทำไมต้องแยกออก ถ้า ศึกษาดูคนแรกนะคะ พนักงานคนแรกรหัสสาขา b005 ก็คือสาขา เชียงใหม่ ถ้าสมมุติว่าพนักงานคนที่ 1 ลาออก ก็จะมีการลบข้อมูลเกิดขึ้นใช่ไหมคะ มีการลบข้อมูล บุคคลนี้หรอ ขีดฆ่าทิ้ง ฆ่าทิ้ง สิ่งไหนที่หายไปบ้าง แน่นอนสาขาเชียงใหม่จะหายไปด้วย ถ้าสมมุติเราอยู่ด้วยกัน แต่ถ้าสมมุติพนักงานคนนี้ลาออกสาขาเชียงใหม่ยังอยู่ไหม ยังอยู่ นะคะ ซึ่งแตกต่างจากด้านล่าง ด้านล่าง เห็นไหมคำว่า ถ้าสมมุติว่าจะลบทิ้งหมดเลย กากบาททิ้ง สาขาเชียงใหม่หายไปด้วย แบบที่ไม่ดี เหมือน คนข้างล่าง ออก สาขาพิษณุโลก ก็หายไปด้วย แต่ถ้าเป็นตารางด้านบน ถ้าคนนี้ลาออก สาขายังอยู่ไหม ยังอยู่เหมือนเดิม อันนี้คือการออกแบบฐานข้อมูลที่ดีถ้าข้อมูลตัวไหนที่มันมีผลกระทบต่อการเราจะต้องแยกตารางออก ตัวอย่าง นะคะถ้าการออกแบบที่ดีเนี่ยเราจะลด ปัญหาความซ้ำซ้อนของข้อมูล ได้ เช่นตัวนี้อันนี้เป็นตารางที่ออกแบบที่ไม่ดีนะคะ เห็นไหมคะว่ามันจะมี รหัสสาขา แล้วก็ที่อยู่ อยู่ในตารางเดียวกัน ถ้าสมมุติว่าอาจารย์เพิ่ม เข้ามาใหม่อีก 1 คน นะคะ n e m ถ้าต้องการเพิ่มพนักงานสาขา เชียงใหม่ก็ต้องมากรอกข้อมูลตรงนี้อีก เชียงใหม่ณโรงเรียนระโนด แต่ถ้า การออกแบบฐานข้อมูลที่ดีเนี่ย เราแค่ใส่รหัสสาขา ไม่จำเป็นจะต้องพิมพ์ที่อยู่ทุกครั้งก็ได้ เหมือนเวลาคุณไปธนาคารใช่ไหมคะ คุณก็แค่ยื่นบัตรประชาชน พนักงานธนาคารก็จะกรอกเลขบัตรประชาชนคุณนงไป หรืออาจจะเอาชิปการ์ดของคุณเนี่ยเสียบเข้าไปในเครื่องถามว่าตอนนี้เราได้กรอกข้อมูลไหม ขอแค่มีเลขบัตรประชาชนข้อมูลทุกอย่างที่คุณมีเขาจะดึงออกมาจากระบบให้เลยเราไม่ต้องมาเสียเวลาก่อน เหมือนเมื่อก่อนเนี่ยต้องเขียนใส่กระดาษและเลขบัตรประชาชนด้านรายชื่ออะไรนามสกุลอะไรที่อยู่ที่ไหนเบอร์โทรศัพท์อะไรเดี๋ยวนี้ไม่ต้องเลยขอแค่มีเลขบัตรประชาชนข้อมูลทุกอย่างเราสามารถดึงขึ้นมาได้อยู่แล้ว อันนี้ก็เช่นเดียวกัน ถ้าการออกแบบไม่ดีแต่เราต้องกรอกข้อมูลถูกต้องทุกช่องเลยเนี่ย มันทำให้ อาจจะคนเดียวไม่เดือดร้อนค่ะ ถ้าเป็นพนักงานใหม่เป็นเหมือนโรงงานน่ะค่ะที่รักพันคน นั่งกรอก เชียงใหม่เป็นพันครั้งเนี่ยเสียเวลามากๆ อันนี้คือการออกแบบที่ไม่ดี นะคะ กลับอีกอย่างนึงถ้าสมมุติว่าเมื่อกี้อาจารย์เพิ่มพนักงานแล้ว ถ้ามันอยากเพิ่มแค่สาขา อย่าเพิ่งแค่สาขาซึ่งในตารางนี้ กีฬา จำได้ไหมคะที่รักจะเป็นคีย์ที่ขีดเส้นใต้ ซึ่งอาจารย์อยากเพิ่มสาขาสมุทรปราการจะเพิ่มบี 100 สกลนคร ละครนะคะ ถามว่าเพิ่มได้ไหมอาจจะเป็นการตั้งสาขาแต่ยังไม่มีพนักงานหรอก ถ้าจากตารางนี้ เราจะเพิ่มเฉพาะชื่อสาขาไม่ได้ เรายังไม่มีรหัสพนักงานเพราะรหัสพนักงานเป็นคีย์หลัก ครีม คือคุณสมบัติมันคือเป็นค่าว่างไม่ได้ ก็ทำให้เราเพิ่มสาขาไม่ได้ ไม่มีพนักงาน อันนี้ก็เป็น ข้อผิดพลาดในการเพิ่มข้อมูลถ้าเราออกแบบ ตารางแบบนี้นะคะ ก็คือกัน ปัญหาที่เกิดขึ้นจากการออกแบบตารางที่ดี กลับ หาโตมาเป็นปัญหาการลบข้อมูลที่อาจารย์บอก ถ้าพนักงานคนนี้ ออก สาขาเชียงใหม่หายไปด้วย ลบไป กรณีความผิดพลาดจากการเปลี่ยนแปลง เหมือน b03 b03 นะคะ เป็นกรุงเทพฯใช่ไหมคะ แล้วคราวนี้ข้อมูลมันอยู่ในตารางเดียวกัน ถ้านักศึกษาจะแก้สมมุติว่าเราย้ายจากกรุงเทพฯไปอยู่นนทบุรี สมมุติมีพนักงาน 300 คน คุณต้องแก้กรุงเทพฯ 30 ครั้ง นนทบุรี พนักงานมีคนส่งคนไม่ใช่ปัญหาค่ะแต่ถ้าคุณเป็นโรงงานขนาดใหญ่ นั่งแก้ทีละ 30 คนไม่ใช่เรื่องสนุกแน่ๆ มันก็เป็นปัญหานะคะเพราะฉะนั้น เราควรแยกตารางพนักงานกับตารางสาขาออกจากกันนะคะมีเป็นเหตุผล นี่คือ ขนาดข้อมูลขนาดเล็กนะคะแล้วยังเห็นปัญหาขนาดนี้ถ้าสมมุติว่า องค์กรขนาดใหญ่เป็นบริษัทเป็นโรงงานระดับโรงเรียนมีนักเรียนเป็น 2 302 3000 คนก็ได้นะคะ มีปัญหาเยอะมากถ้าสมมุติว่าเราจัดการตารางไม่ดี จากปัญหาที่เกิดขึ้นเมื่อกี้นะคะอย่างที่บอกค่ะเราจะแก้ปัญหาโดยการแยกตารางเป็น 2 ตารางแบบนี้นะคะ ฟังก์ชั่นการขึ้นต่อกันนะคะอันนี้เดี๋ยว เป็นเกี่ยวกับตารางนึ่งนะคะมีผลดีต่อราง 1 เราจะเรียกว่าเป็นฟังก์ชันการขึ้นต่อกัน เดี๋ยวดูตัวอย่างเลยละกัน อย่างเช่นทางนี้นะคะ ดูจากรหัสพนักงานนะคะ เขียนได้ว่ารหัสพนักงาน จะส่งผลกับชื่อ ตำแหน่ง สัญลักษณ์ของการขึ้นต่อกันนะคะอันไหนเป็นตัวหลัก ชี้ไปที่ตัวรองราคาตามหัวลูกศรเลย ดูทิศทางตามหัวลูกศรนะคะอันไหนเป็นตัวหลักอันไหนเป็นตัวรอง นะคะ เช่น ตัวนี้ถามว่าตำแหน่งบัญชีที่รหัสพนักงานได้ไหมนะคะถามว่า ไม่ได้ เพราะการขึ้นต่อการจะต้องเป็นลักษณะหนึ่งต่อหนึ่งเท่านั้น เป็นหนึ่งต่อกลุ่มไม่ได้ ชนิดของการขึ้นต่อกันนะคะจะมีอยู่ 4 ชนิดนะคะ ชนิดแรกเป็นการขึ้นต่อกันโดยสมบูรณ์ นะคะ ซึ่งอาจจะเป็นเกี่ยวกับ ตารางนะคะจะมีคอลัมน์ 1 คอลัมน์หรือมากกว่า 1 คอลัมน์มาประกอบกัน โดยในคอลัมน์นะเนี่ย ค่าที่ระบุ ความพิเศษ ของแถวๆได้อย่างชัดเจน aprilia จะเป็นค่าเฉพาะที่บอกเลยว่า คอร์ดข้อมูลแถวนั้นเนี่ยมันมีลักษณะพิเศษเฉพาะตัวยังไง โดยในทุกความสัมพันธ์เนี่ยจะต้องระบุค่าคีย์หลักไว้ด้วย ครึ่งปีหลังนี้คือต้องเป็นค่าเอกลักษณ์คือไม่ซ้ำกันอยู่แล้ว นะคะ อย่างเช่นการขึ้นต่อกันอย่างสมบูรณ์อันแรกนะคะ ก็คือคอลัมน์ที่ไม่ใช่คีย์หลักกีฬา จำได้ใช่ไหมคะคีย์หลักจะเป็น คอลัมน์ที่มีขีดเส้นใต้ คอลัมน์ที่ไม่ใช่คีย์หลักจะขึ้นตรงต่อคอลัมน์ที่เป็นคีย์หลัก หมอลำเดียวเท่านั้น เช่นเลขบัตรประชาชน จะขึ้น จะเป็นเจ้าของชื่อนี้เท่านั้นนะคะ เพราะฉะนั้นการขึ้นตัวกันอย่างสมบูรณ์จะเป็นลักษณะแบบหนึ่งต่อหนึ่งนะคะเลขบัตรประชาชน 1 เลข ต้องเป็นของคนคนเดียวเท่านั้น ไม่ใช่ว่าเลขประชาชนที่ใช้ 10 คนเป็นไปไม่ได้นะคะ ตัวอย่างนะคะ ตารางที่มี Column หลายตัว นะคะ ขึ้นอยู่กับคีย์หลักตัวเดียวเช่น คนหนึ่งคนเนี่ย ก็จะมีข้อมูลชื่อนามสกุลวันเดือนปีเกิดวันที่ทำบัตรใช่ไหมคะ แต่ว่า เขาจะต้องขึ้นตรงกับเลขบัตรประชาชนเดียวเท่านั้นถามว่าสามคนนี้ อาจจะเกิดวันเดียวกันก็ได้ค่ะ เลขบัตรประชาชนเขาจะไม่เหมือนกัน หรือเขาอาจจะมาทำบัตรวันเดียวกัน หมายเลขบัตรประชาชนเขาจะไม่ซ้ำกัน คืออะไรซ้ำกันได้ทุกอย่างค่ะยกเว้นหมายเลขบัตรประชาชน แต่บางตารางนะคะ ก็อาจจะเป็นการรวมตัวกันของกีฬา มากกว่า 1 ปีหลักนะคะ มารวมกันเช่นนักศึกษา วันนี้ เอกสารนี้ ลงทะเบียนวิชานี้ ได้เกรดอะไร อันนี้ก็เป็นความสัมพันธ์ที่เกิดขึ้นได้เหมือนกันค่ะว่าบัตรนักศึกษาซ้ำกันได้ไหม รหัสวิชาซ้ำกันได้ไหม เหมือนชื่อวิชาการ รหัสนึง เชื่อใจคนอื่นก็รหัสวิชาอีกอันนึง นี้จะไม่ซ้ำกันอยู่แล้วนะคะ ต่อมาจะเป็นการขึ้นต่อกันบางส่วน มันก็จะเป็นอาศัยความสัมพันธ์ที่เกิดขึ้นจาก วิธีผสมนะคะอาจจะเป็น เส้นตรงจากตารางอื่นหรือส่งตารางมารวมกัน อาจจะไม่ใช่คีย์หลักก็ได้แต่มันมีความหมายกับ คอลัมน์นึง เดี๋ยวจะยกตัวอย่างเลยดีกว่า อย่างเช่น นึกว่าตารางเทียบไซส์ให้ดูเมื่อกี้นะคะก็จะมีรหัสนักศึกษารหัสวิชามีเกรด แล้วก็ มีการบอกด้วยว่ารหัสวิชานี้เป็นชื่อวิชาอะไร นะคะ มันจะเป็นการเกิดขึ้นเมื่อ กีฬา ประกอบกันด้วย คอลัมน์หรือว่า Accident รวมกัน โดยบางส่วนของคีย์หลักสามารถไประบุค่าอย่างอื่น ที่ไม่ใช่คีย์หลักได้ นะคะอย่างเช่นในความสัมพันธ์นี้คีย์หลักจะมี 2 ตัว มีรหัสนักศึกษา รหัสวิชา ถามว่า ถ้ามีแต่ รหัสนักศึกษา นะคะ รหัสวิชา แล้วเราจะรู้ไหมว่าชื่อวิชาที่เราเรียนไปเนี่ย วิชาอะไร บางคนรู้รหัสวิชาแต่จำชื่อวิชาไม่ได้ก็มี เพราะฉะนั้นรหัสวิชาเนี่ยมันเลยสามารถ ไปส่งผลกับชื่อวิชาได้เหมือนกันเพราะเป็นตัวระบุว่า ไปหลายวิชาเนี่ย ชื่อวิชาอะไร ก็คือคีย์หลักในตารางนี้มี 2 อัน แต่มีคีย์หลัก 1 ตัวเนี่ย ไปมีผลกับ แอตทริบิวต์ 1 ได้ นะคะอันนี้คือความขึ้นต่อกันบางส่วน อย่างเช่นตัวนี้ก็จะเป็นของจริงถ้าสูตรว่าอาจารย์ปัดรหัสนักศึกษาออก มีแค่ 5 วิชามีเกรดมีการ วิชาเขียนโปรแกรมแล้วถาม รู้ไหมคะว่าเกรดเอที่ของใคร นะคะหรือว่า อย่าลบไปเที่ยวก่อนนะ หรือว่า การลบรหัสวิชาออก เหลือแต่นักศึกษาเหลือเกรด ชื่อวิชาแล้วถามว่า รหัสวิชาอะไรล่ะที่เราได้เกรด A เราก็ไม่ทราบอีกเหมือนกันนะคะอันนี้ก็คือ การขึ้นต่อกันบางส่วน เป็นการขึ้นต่อกันแบบส่งต่อ ก็จะเป็นความสัมพันธ์ที่เกิดขึ้นก็ต่อเมื่อมีแอตทริบิวต์หรือว่าคนอื่นที่ไม่ใช่ครีม แต่ไปสามารถ ขึ้น สามารถระบุค่าของแอตทริบิวต์อื่นใน Accord ได้ ซึ่งเป็นการออกแบบที่ไม่เหมาะสม เพราะส่วนใหญ่แล้วในตารางเนี่ย ถ้าเราจะระบุค่าอื่นให้กับ คอลัมน์อื่นได้ควรจะต้องเป็นคีย์หลักเท่านั้น ดูตัวอย่างนะคะเช่นตารางเนี้ย เขาบอกว่าสิ่งที่เกิดขึ้นคือแอตทริบิวต์คือคอลัมน์ที่ไม่ใช่คีย์หลักหรือ Primary Key นะคะก็คือไม่ใช่คอลัมน์ที่มีเส้นขีดมันไประบุค่าอื่นๆในตารางได้เช่น ตารางนี้ก็คือเลขประจำตัว ตัวเลขประจำตัวเนี่ย ไปมีผลกับชื่อนามสกุลที่อยู่ตำแหน่งใช่ไหมคะ เขาเนี่ย รถประจำตำแหน่ง มันไม่ถูกระบุโดยเลขประจำตัว มันถูกระบุโดยรหัสตำแหน่ง เหมือนถ้าเป็นผู้จัดการเนี่ย แผนที่ผู้จัดการนะคะจะรู้เลยว่ารถประจำตำแหน่งคืออะไร แต่เขาไปเช็คที่รหัสตำแหน่ง แผนที่จะเช็คกับเลขประจําตัว การออกแบบที่ไม่ดี เพราะฉะนั้นถ้าสมมุติว่าจะให้รถประจำตำแหน่งวิธีการแก้ปัญหาก็คือ เราควรจะแยก ตารางนี้ ออกไปสร้างตารางใหม่เลยค่ะ มันไม่ควรจะมาขึ้นกับตาราง ขี้มีกี่หลัก แต่ไม่สามารถระบุค่าข้อมูลตรงนี้ได้เนี่ยมันไม่ควรทำ กลับต่อมาเป็นการขึ้นต่อการเชิงกลุ่ม นะคะ น่าจะเป็นความสัมพันธ์ระหว่างคอลัมน์ Matrix ขึ้นต่อกันแบบสมบูรณ์นะคะก็ไปสามารถระบุค่าอื่นได้ โดยที่ อย่างเช่นตัวอย่าง ในตารางนี้นะคะจะมีรหัสหลักสูตร สามารถระบุรหัสวิชาได้หลายวิชาเช่น จริงๆในสถานศึกษาจะเห็นได้ว่ามีเลข 122 รหัสนักศึกษา B12 คืออะไร 12 ก็คือหลักสูตรที่เราเรียนอยู่ ซึ่งในหลักสูตรที่โรงเรียนเนี่ยมันมีวิชา มากกว่า 20 วิชา นะคะ ก็คือรหัสหลักสูตรเนี่ยมันสามารถระบุรหัสวิชาได้หลากหลายรหัสวิชามากๆ ก็คือการขึ้นต่อกันแบบ มีค่ามากกว่า 1 รหัสหลักสูตร สามารถระบุรหัสวิชาได้หลายค่านั่นเอง แล้วรหัสหลักสูตร ก็สามารถระบุค่ารหัสนักศึกษาได้หลายคนเช่นกัน เหมือนตอนนี้หลักสูตรที่โรงเรียน ศึกษาเกือบ 100 คน รหัสหลักสูตรเดียวนะ นะคะ นี่คือความสัมพันธ์แบบสามารถระบุค่าได้มากกว่า 1 นั้นเองแบบไหนค่า เพราะฉะนั้นวิธีการแก้ปัญหาของสิ่งที่เกิดขึ้นนะคะเราเลยจะต้องมีการ กระบวนการปรับบรรทัดฐานหรือว่ากระบวนการปรับปรุงโครงสร้างของฐานข้อมูลนะคะที่มีความซ้ำซ้อนกันให้อยู่ในรูปแบบที่เป็นบรรทัดฐานก็คือ เป็นรูปแบบที่พร้อมที่จะเอาไปพัฒนาเป็นฐานข้อมูลได้ โดยหลักการนะคะ ที่บอกมี 5 ระดับ แต่ระดับ ที่ 3 เนี่ยก็ถือว่าเพียงพอสำหรับการออกแบบฐานข้อมูลในปัจจุบันแล้ว โดย ที่รักของการทำงานนะคะท่านที่ 1 นะคะ กำจัดกลุ่มของข้อมูลที่มีความซ้ำซ้อนกันออกไป ขอแลกง่ายมากๆ ง่ายที่สุดก็คือ 1 nf นะคะ ต่อมาครั้งที่ 2 อยู่ 2 nf จะกำจัด การขึ้นต่อกันบางส่วนออก อันสุดท้าย 3nf นะคะ กำจัดการขึ้นต่อกันของแอตทริบิวต์ที่ไม่ใช่ครีม เดี๋ยวจะมาดูทีละขั้น มันจะต้องเป็นยังไงบ้าง คนแรกง่ายที่สุดง่ายมากๆนะคะ ให้นักศึกษาจำกระบวนการหลักๆจะมี 3 ข้อนะคะ ขั้นตอนการแรกเลยดูก่อนว่า คำซ้อนกันไหม คำที่ 2 คือมันขึ้นต่อกันแค่บางส่วนหรือเปล่า อันที่ 3 อันไหนไม่ใช่ครีม แต่มันไปส่งผลกระทบกับข้อมูลอื่นได้หรือเปล่า ดูอันดับที่ 1 ก่อน วันที่ 1 ได้มาก นะคะทุกๆ คอลัมน์ akashic Records จะต้องเป็นค่า Single Value คือมีค่าเดียวเท่านั้น จะใส่แบบนี้ไม่ได้ เพราะฉะนั้นข้อมูลทุกแถวจะต้องไม่มีค่าที่ซ้ำกัน อย่างเนี้ย นักศึกษาคนที่ 1 แน่นอนทั้ง 3 1 เทอมเนี่ยคุณลงทะเบียนประมาณ 6-7 วิชาใช่ไหมคะ ข้อมูลมันก็จะเป็นแบบนี้ ถ้าเราไม่มีการทำน้ำทะเลสั้น คราวนี้ ขั้นตอนที่ 1 เราจะ ข้อมูลที่ซ้ำซ้อนกันออกวิธีการง่ายมากค่ะคือแจ้งข้อมูลออกเป็นอย่างละแถวที่ไม่ซ้ำกัน ดูตัวอย่างนะคะ วิธีการทำ 1 n f ง่ายมากค่ะถ้าข้อมูลตัวไหนเป็นกลุ่มนะคะ คนที่ 1 วิชา ลงทะเบียนเรียน 3 วิชาใช่ไหมคะคนที่ 2 มี 2 วิชา สามารถทำในรูปแบบ 1nf ก็คือ เอามันจะตายออกมาค่ะ ย้ายข้อมูลพรุ่งนี้ออกมา กระต่ายออกใช่ไหมคะกระจายออก ง่ายมาก ข้อมูลพรุ่งนี้ก็ทำซ้ำลงมาทำซ้ำลงมา สำโรงมา ทำซ้ำลงมา ถามว่าอ้าวตาเขาทำไม ทำไม 001 มันซ้ำกันได้ล่ะ แต่รหัสวิชาเขาไม่ซ้ำกันเห็นไหมค่ะ เด็กๆเลยง่ายมากค่ะ ข้อมูลทำไมเป็นก้อนอย่างนี้เรากระจายออกมาเป็นแยกออกมาเป็นบรรทัดบรรทัดเลยแค่นั้นเอง อย่างน้อยในข้อสอบ ต้องทำเน็ตให้ได้ มันง่ายที่สุดแล้ว นะคะ ไม่ใช่ตัวนี้นะคะก็กระจายออกมา แล้วคราวนี้ถ้าเรากระจายข้อมูลเรียบร้อยแล้วนะคะ ว่าจะมาดูว่าในตารางนี้ค่ะ มันมีตาราง ของพนักงานใช่ไหมคะ เขาจะมีคีย์หลัก 1 ตัวละ แปลว่า มันจะมีตัวนี้ค่ะ ตัวที่ 1 ตัวที่ 2 ที่มีคุณสมบัติ เป็นคีย์หลักได้ เราต้องแยกมันออก ควรการนะคะ ดูก่อนว่า ตารางวิธีนะคะสิ่งที่ขึ้นตรงกับคีย์หลักตัวนี้นะคะก็จะเป็นตัวที่ 1 ตัวที่ 2 ตัวที่ 3 สังเกตเราว่าที่รักมีตัวเดียว ข้อมูลมีเยอะมาก นะคะออกมาได้อันแรกเลย รหัส โปรเจคนะคะแล้วก็ชื่อโปรเจคนะคะใครเป็นผู้จัดการเงินเดือนเท่าไหร่ งบประมาณเท่าไหร่ คือมันจะเชื่อมโยงกับ ข้อมูลที่เป็นคีย์หลักก็คือ Project Code วันนี้ ส่วนตัวนี้เป็นคีย์คู่แข่ง 2 ตัว 2 ตัว ฉันสามารถทำหน้าที่เป็นคีย์หลักให้กับอย่างตัวนี้นะคะ มันจะเป็นคีย์หลักให้กับชื่อของพนักงาน อย่างตัวนี้ ว่าจะเป็นคีย์หลักสำหรับชื่อแผนก ถามว่า มันขึ้นตรงกับโปรเจค Code ไหม ไม่ นะคะ ฉะนั้นการทำขั้นตอนต่อมานะคะส่ง EMS ขั้นตอนที่ 1 เราจะต้องทำ 1 f มาเรียบร้อยแล้วซึ่งได้ทักมา แล้วก็ต้องมา บัตรของการขึ้นต่อกันบางส่วนออก ก็คือการ กำจัด บิวตี้ไม่ขึ้น คีย์หลักของตารางนั้นเอง จะออกนะคะ อย่างเช่นตัวนี้นะคะ การขึ้นต่อกันบางส่วนจะเห็นได้ว่า รหัสวิชากับชื่อวิชา มันไม่ขึ้นตรงกับรหัสนักศึกษาใช่ไหมคะนี้จำได้นะลูกเดิม หารูปเดิม วิธีกำจัดปัญหาเราก็ดึงสิ่งที่มันเป็นปัญหาสิ่งที่มันไม่ขึ้นตรงกับคีย์หลักตัวนั้น ไปสร้างตารางใหม่ สร้างตารางเพิ่ม เอาสิ่งที่เป็นปัญหาออกมาไปใส่ตารางใหม่กำหนดคีย์หลักใหม่ ในตารางเดิม นะคะ เราก็เอาคีย์หลักของตารางใหม่ไปใส่ แค่นั้นเอง วิธีการก็คือ รูปนี้นะคะ สิ่งที่เป็นปัญหาที่จะยกตัวอย่างคือรหัสวิชา ชิชา เพราะรหัสวิชามันไม่ได้ขึ้นตรงกับรหัสนักศึกษา เพราะฉะนั้นไอ้สองตัวนี้คือสิ่งที่เป็นปัญหา วิธีการแก้ปัญหาคือเราสร้างตารางผลการเรียนใหม่ สร้างตารางวิชาใหม่ เห็นไหมคะ ตารางใหม่เราจะตัดชื่อวิชาออก แต่ต้องเหลือ รหัสวิชาไว้เพื่อให้เชื่อมโยงว่ารหัสวิชานี้มันชื่อวิชาอะไร ตาราง 1 แค่นั้นเองนะคะ ดีค่ะ อันนี้เป็นตัวอย่างของการ สารในรูปแบบของส่ง EMS เดี๋ยววันนี้ จะให้ทำการบ้านเดี๋ยวค่อยย้อนกลับมาแล้วกันนะคะ สอนภาษา เดี๋ยวแก้แล้ว ตาเมื่อกี้นะคะ ขั้นตอนสุดท้ายนะคะ 3nf นะคะ โดยความสัมพันธ์นะคะก่อนที่จะทำเป็นสามเณรได้จะต้องทำ 2 อย่างนี้มาก่อน หลักของการทำขั้นตอนที่ 3 คือ ต้องเอาความสัมพันธ์ที่ไม่ใช่คีย์หลัก ออกนะคะ เช่นไม่ใช่คีย์หลักแต่ไม่มีผลกับ คนอื่นไม่ได้นะคะไม่ได้ วิธีการแก้ปัญหาเช่นเดิมค่ะสร้างตารางใหม่ขึ้นมา แก้ปัญหานานๆ อย่างเช่นในตัวอย่างนะคะ รหัสพนักงานนะคะ ชื่อสกุลรหัสแผนกชื่อแผนกเงินเดือน จะเห็นได้ว่าในตารางนี้เนี่ยคีย์หลักก็คือรหัสพนักงาน วันนี้รหัสแผนกกับชื่อแผนกติดมาด้วย ซึ่งมันไม่ได้เกี่ยวกับรหัสพนักงานเลย วิธีการแก้ปัญหาก็คือ เอารหัสแผนก ชื่อแผนก ไปสร้างตารางใหม่ แต่ต้องยังคงรหัสแผนกไว้ ตารางเดิมนะคะ เพื่อให้มันเชื่อมโยงได้ว่าไอ้แผนก a001 เนี่ยคือแผนกอะไร อันนี้คือการแก้ปัญหาไม่ใช่คีย์หลักแต่ไปส่งผลกับคอลัมน์อื่นๆในตารางนะคะ เ***จริงๆแล้วอยากให้ลองทำในห้องมากกว่าแต่ด้วยสัปดาห์นี้มันมีข้อจำกัดเนาะก็ไม่เป็นไร นี้เป็นตัวอย่างนะคะ สรุปนะคะวิธีการทำนกในชาติหรือว่าการปรับบรรทัดฐานนะคะ ทุกๆที่ทุกๆคนร่ำในแต่ละแถว จะต้องมีค่าของข้อมูลเพียงค่าเดียวเท่านั้น เช่นเวลาเรากรอกเบอร์โทรศัพท์ เรามีโทรศัพท์ 3 เบอร์ก็จริงแต่เราจะกรอกได้แค่เบอร์เดียว ถ้าอยากใส่เบอร์ที่ 2 ที่ 3 ก็ต้องเพิ่มข้อมูลแถวใหม่ขึ้นมา ตอบมา 2 SF ก็ ปัญหาคือถ้ามีข้อมูลนะคะขอข้อมูลทุกตัวในตารางนั้นจะต้องขึ้นกับคีย์หลัก ของตาราง ตัวเดียวเท่านั้น นะคะ ข้อที่ 3 ถ้า คอลัมน์ไหนที่ไม่ใช่คีย์หลัก ฟ้าส่งผลกับคอลัมน์อื่นในตารางไม่ได้ เพราะฉะนั้น ไปตลาดข้อ 1 นี้คือแค่กระต่ายตาราง อันที่ 2 อันที่ 3 ถ้ามีปัญหา เราต้องสร้างตารางใหม่ การบ้านเอางี้ดีกว่า อาจารย์จะให้ทำน่าจะส่งวันนี้ เอาแค่ ข้อเดียวนะคะข้อเดียวพอเพราะว่าจริงๆอยากให้ทำในห้องเดี๋ยวสัปดาห์หน้าค่อยทำในห้อง จะให้ลองทำดูก่อนว่าที่เรียนไปวันนี้ เข้าใจไหม ถ้าทำเสร็จแล้วก็ค่อยเอามาส่ง ตู้ส่งงานอาจารย์เอาเฉพาะข้อดีนะข้อเดียว คนเดียวพอวันนี้คนเดียวพอนะคะส่งในเวลานี้แหละ ให้ลองทำดูว่าเข้าใจไหมข้อนี้ ทำอย่างเงี้ยทำยังไงได้มากๆเลย การเว้นช่องว่างให้แล้ว เติมมา 2 มิติ คุณเห็นไหมว่า มันมีรหัสวิชาเนี่ย ชาเนี่ย ต้องทำยังไงกับมัน แยกมันออกมาซิแยกยังไง เอาข้าวเหนียวก่อน นะคะแล้วลอง ส่งมาให้อาจารย์ดูก่อนว่า เข้าใจมากน้อยขนาดไหน จริงๆ อยากให้เรียนในห้องมากกว่าแต่วันนี้ก็เอา มานี้ก่อนแล้วกัน ให้ทุกคนหายดีกลับมาอาทิตย์หน้าค่อย เดินดูในห้องดีกว่า วันนี้ก็ ประมาณนี้นะคะเดี๋ยวเวลาที่เหลือให้ทำข้อนี้แล้วมาส่ง วันนี้เลยยิ่งดี เวลาที่เหลือทำใส่กระดาษมาส่งอาจารย์ แล้วกันเนาะ ประมาณนี้ค่ะเวลาที่เหลือทำให้เสร็จภายในวันนี้นะคะ ข้อเดียวเองนะคะข้อเดียว ใครสงสัยไหมคะ อุ้ยสงสัยไหม เปิดไม่ได้หรือเปล่า ไม่มีค่ะอาจารย์เดี๋ยวถ้ายังไงเดี๋ยวให้อุบลไปส่งหรือยังไงคะเพราะว่าบนขึ้น ไม่ๆส่วนมากอยู่ในการอยู่หอนี่แหละ ตอนนี้เหลืออยู่ประมาณ ใส่ได้ก็เอามา Ok Thank You วันนี้ก็ประมาณนี้ค่ะขอบคุณทุกคนมากนะคะพี่ ยังตั้งใจเรียนอยู่แล้วก็งานอย่าลืมส่งวันนี้นะคะอยู่ดีๆก็ ทำให้เสร็จ แล้วก็ฝากเพื่อนมาส่งรวมกันมาส่งก็ได้นะคะถ้าใครอยู่หอก็จะมาทำอยู่ดีๆก็ได้หรือว่าทำเสร็จแล้วมาส่งที่ อาการก็ได้ โอเคค่ะวันนี้ก็ประมาณนี้ค่ะขอบคุณล่างด้วยนะคะ ค่าขอบคุณค่ะ วันนี้ครบเนาะ OK