--- title: ฝึก PE กับ ASR (ห้องเรียนสกล) หลักการและระบบการจัดการฐานข้อมูล อ.เกวลี วันที่ 6 ธ.ค. 2565 subtitle: date: วันพฤหัสบดีที่ 15 ธันวาคม 2565 เวลา 09.05 น. --- (ข้อความสดจากระบบถอดความเสียงพูดทางไกล) สวัสดีค่ะ วันนี้จะเป็นบทที่ 4 นะคะ จะเป็นเกี่ยวกับแบบจำลองข้อมูล หรือเวลาเราเรียกมันๆ วาดรูป PR นะคะตัว E แล้วก็ตามันภาษาอังกฤษ โดย แผนภาพนะคะ ER ราคาหรือว่า ER model มันจะเป็น ตามเขาได้ยินเราไหมพลอย ทำไม นำอยู่นิ่งๆ น่ากินไหมคะ น้ำได้ยินไหมคะถ้าได้ยิน OK ด้วยค่ะ กี่ปีกี่ปีก็การวาด ER นะคะหรือเป็นแบบจำลองข้อมูลนะคะมันจะเป็นแบบจำลองที่ใช้อธิบายโครงสร้างของฐานข้อมูล โดยที่เราจัดแสดงว่าเป็นรูปภาพ โดยที่โครงสร้างสำคัญ ที่จะต้องใช้ในการวาดรูปของเรานะคะ ก็คือ nct หรือว่าตาราง กับความสัมพันธ์ก็คือแต่ละเส้นที่เชื่อมโยงในแต่ละตาราง เราจะต้อง ลงยันต์ให้ถูก นะคะอย่างเช่นตารางของอาจารย์กับตารางนักศึกษา เราต้องมีความสัมพันธ์กัน การเรียนการสอนแบบนี้ การวาดรูปจะเป็นเหมือนรูปที่อาจารย์ยกตัวอย่างให้ดูบนจอ นะคะ การที่เราจะวาดรูปได้แล้วต้องรู้ด้วยว่าสัญลักษณ์แต่ละอันหมายความว่ายังไงทำไมเราต้องใช้วงดีทำไมเราต้องใช้สี่เหลี่ยมผืนผ้า ทำไมเราต้องลากเส้นตรง นะคะแต่ละอันมีความหมายหมดเลย แล้ววันนี้ก็จะ พอ บรรยายเสร็จจะให้วาดเองด้วยนะคะ จุดเด่นของแผนภาพอีอาร์นะคะมันจะทำให้เราออกแบบฐานข้อมูลได้เร็วขึ้นเพราะว่า มันเหมือนเป็นการจัดระเบียบความคิดของผู้ที่ต้องการออกแบบคล้ายๆกับเราสมัยมัธยมน่าจะเคยวาดมายแมพ การวาด ER ก็เหมือนกัน นะคะ มันจะได้รู้ว่าเราต้องการจะออกแบบอะไร อะไรควรมีความสัมพันธ์กันหรืออะไรที่ขาดหายไป นะคะเราจะได้เห็นรวมถึง ลดความอ้วน ซ้ำซ้อนของข้อมูลออกไปด้วยเช่นในตารางนี้มีข้อมูลนี้อยู่แล้วก็ไม่จำเป็นต้องใส่เพิ่มในทางอื่นก็ได้ หรือว่า horimiya ทำไมมีตารางที่คล้ายๆกัน 2 อัน มันลบออกได้ไหม การวาดรูปก็ทำให้เห็นภาพได้ง่ายขึ้น โดยคุณลักษณะของการวาดแผนภาพ e-r นะคะก็คือแน่นอนมันแสดงผลออกมาเป็นภาพ โมเดลข้อมูลหรือว่าคง รูปแบบข้อมูลแบบใดก็ตามเนี่ยมันจะมีภาษาแล้วก็รูปภาพที่เป็นกราฟิกโดยเฉพาะ อาจจะมีทั้งภาพขนาดใหญ่ภาพขนาดย่อย มันจะทำให้เราอ่าน ข้อมูลหรืออ่านฐานข้อมูลนั้นได้ง่ายเพราะเราใช้วงกลมเราใช้สี่เหลี่ยมแล้วใช้วงรี นะคะ ใช้เส้นตรง เส้นโค้งเส้นปะทุกอย่าง มีความหมายหมดนะคะมันก็แสดงให้เห็นถึงความชัดเจนของความหมายของข้อมูลด้วย โดยที่เราอาจจะใช้สัญลักษณ์ที่ ต่างกันเล็กน้อยนะคะซึ่งตัวรูปแบบของการวาดเนี่ยมันก็จะมีหลาย รูปแบบ หนังสือแต่ละเล่มบางเล่มก็ไม่เหมือนกันบางคนใช้รูปแบบของคนนี้ หรือหนังสือเล่มหนึ่งอาจจะใช้รูปแบบที่ต่างไป ราคาในการวาดรูปแต่เดี๋ยว ถึงเวลาว่าลูกเราต้องตกลงกันก่อนว่าเราจะเลือกใช้รูปแบบไหนนะคะ ข้อสำคัญคือแผนภาพที่ได้มาเนี่ย มันควรที่จะอ่านง่ายๆไม่ซับซ้อน เส้นไหมล่ะตัดกันไปตัดกันมาฉันเพิ่งคิดได้ฉันเรียกว่าไม่ตรงนี้ ได้นะคะเราต้องคิดก่อนว่า มันจะลากเส้นตรงข้ามจากกระดาษฝั่งนึงไปอีกฝั่งนึงเนี่ยมันก็ทำให้เราอ่านยากเพราะฉะนั้นเราต้องมาจัดระเบียบความคิดตัวเองด้วยว่า ในฐานข้อมูลเพื่อต้องการเนี่ย มันมีตารางอะไรบ้าง แล้วแต่ละตารางเนี่ยมันควรจะเชื่อมกันยังไง นะคะ โดยในแผนภาพที่เราวาดนะคะรายละเอียดต้องอยู่ในระดับที่เหมาะสม อาจจะไม่ละเอียดยิบ ขนาดนั้นไม่ต้องละเอียด เป๊ะแปลว่า เราต้องมองภาพให้ออก หรืออาจจะมีการเปลี่ยนแปลงแก้ไข มันจะต้องยืดหยุ่น รวมถึงรายละเอียดต้องเพียงพอไม่ใช่ว่าน้อยไป มันก็เยอะไป เอาที่พอดี โดยที่แต่ละอันอย่างที่บอกแล้วจะต้องมีการเชื่อมโยงความสัมพันธ์ของแต่ละตารางด้วย แล้วก็การวาดรูปของเราเราจะไม่ตายตัวเลยว่า เราวาดเพื่อไปใช้กับโปรแกรมอะไร รูปที่เราว่าจะต้องเอาไปใช้ได้กับทุกโปรแกรมหรือทุกรูปแบบของการเขียนฐานข้อมูล แล้วก็เวลาใครมาอ่าน จะต้องเข้าใจง่ายถึงแม้ว่าเขาจะไม่ได้ เรียนทางด้านคอมพิวเตอร์มาก่อน แต่พอเขาดูรูปภาพ อย่างน้อยเขาก็จะเข้าใจว่าเราต้องการจะสื่ออะไร ฐานข้อมูลมีอะไรบ้าง ไม่รู้หรอกว่าวงนี้มันหมายความว่าไง หรือสี่เหลี่ยมหมายความว่ายังไงทำไมต้องเป็นเส้นประ ทำไมต้องมีเส้นโค้งด้วยเขาอาจจะไม่ต้องเข้าใจตรงนั้น เขาดูแล้วเขาก็พอเข้าใจว่าเราต้องการจะนำเสนออะไรซื้ออะไรในฐานข้อมูลมีอะไรบ้าง อันนี้ก็คือ ต้องอ่านรูปที่เราวาด เข้าใจ ระดับหนึ่งก็ยังดี นะคะ ขั้นตอนในการออกแบบแผนภาพอีอาร์นะคะ มันก็จะมีอยู่หลายขั้นตอนแต่เราก็จะแบ่งออกมาได้เป็นประมาณ 5 ขั้นตอน ในการออกแบบการวาดด้วย โดยได้ภาพเก่าๆมาแล้วเนี่ยเราค่อยไปใส่รายละเอียดที่หลังก็ได้ว่า ผู้ใช้งาน เขาควรจะ ดูข้อมูลได้ในระดับไหน อุทยานแต่ละคน การเข้าถึงข้อมูลแต่ละชั้นเนี่ย ชั้นเนี่ย ใครเข้าได้บ้าง หรือว่าผู้ใช้งานทั่วไปดูได้อย่างเดียวอะไรไหมอันนั้นคือ หลังจากที่เราวาดรูปเสร็จแล้วค่อยมา ใส่รายละเอียดที่หลังก็ได้ โดยขั้นตอนแรกเราจะกำหนดเอนทิตี้หลักหรือตารางหลัก โดยในการออกแบบฐานข้อมูลเนี่ยเราจะต้องเอารวบรวมความต้องการของ ผู้ใช้งานก็คือ requirement นี่แหละ มากำหนดว่า ในฐานข้อมูลเราจะมีเอนทิตี้หรือว่ามีตารางอะไรบ้าง ซึ่ง ขั้นตอนนี้ ขั้นตอนที่ค่อนข้างยาก เข้าใจ ในสิ่งที่เรากำลังจะสร้าง ทั้งผู้ใช้งานแล้วก็ผู้ออกแบบต้องเข้าใจตรงกัน เพราะ ถ้าเรากำหนดตารางไปแล้วแล้วอยู่ดีๆมาเพิ่ม มันอาจจะต้อง เชื่อมต่อความสัมพันธ์ใหม่ โดยวิธีการก็คือถ้าอยากทำให้มันครอบคลุมมากที่สุดก็คือ เอาข้อมูลทั้งหมดที่มี แล้วจัดกลุ่มของข้อมูล รอดูว่าข้อมูลมีค่าอะไรบ้าง มีความหมายยังไงแต่อะไรแต่ละอย่างเนี่ยเชื่อมโยงกันยังไง หาข้อมูลเป็นข้อมูลชนิดเดียวกัน ให้รวมไว้ในตารางเดียวกัน ชื่อเช่นนักศึกษา จะมีหลายคณะก็จริงแต่ก็คือนักศึกษา รวมเป็นตารางเดียวได้ไหม แล้วค่อยมากำหนดลักษณะพิเศษของแต่ละคนว่านักศึกษาหลายๆพันคนเนี่ย เขามีความแตกต่างอะไรกันบ้าง เราก็เก็บข้อมูลในตารางเดียวก็พอ นะคะโดยทุกอย่างจะต้องจดไว้ในบันทึก บันทึกไว้ในพจนานุกรมข้อมูลด้วย แล้วก็เขียนลงไปใน แผนภาพที่เรากำลังจะวาดด้วยว่า ในตารางนี้มีข้อมูลอะไรบ้างที่เราต้องใช้ วันที่ 2 ก็จะต้องมากำหนดความสัมพันธ์ระหว่างเอนทิตี้หรือว่าระหว่างตารางนั้นเอง ก็จะมีการกำหนดชื่อกำหนดความหมายความสัมพันธ์ทิศทางการเชื่อมโยงข้อมูลอัตราส่วนการเกิดความสัมพันธ์ นะคะเช่นนักศึกษา 1 คนสามารถลงทะเบียนเรียนได้หลายวิชา นะคะ แต่ใน LINE นี้แม่ในแต่ละวิชาจะต้องมีผู้สอนคนเดียว นี่คือความสัมพันธ์ที่เกิดขึ้น อาจารย์หนึ่งคนก็สามารถสอนนักศึกษาได้หลายคนเหมือนกัน วิชาด้วย ซึ่ง อาจจะเป็นยกตัวอย่างการกำหนดอัตราส่วนอีกอย่างหนึ่งก็คือ เหมือนที่ฉันชอบยกตัวอย่างบ่อยๆรหัส บัตรประชาชน ไม่กลัวมันไม่เกิน 13 หลักอยู่แล้วเราก็ต้องกำหนด ชื่อคน กำหนดไว้เลยก็ได้ไม่ควรเกิน 20 ตัวอักษร คงไม่มีใครตั้งชื่อตาม โหราศาสตร์ยาวเกิน 20 ตัว แล้วก็เราก็สามารถแบ่งกลุ่มได้แล้วว่าข้อมูลแต่ละอัน มันต้องเชื่อมโยงกันยังไงหลังจากนั้นก็ไม่รู้ว่า ขนาดของความสัมพันธ์เป็นยังไง หนึ่งต่อหนึ่ง 1 ต่อ มากกว่า 1 อะไรพวกนี้นะคะภาษาอังกฤษก็คือ one two one one to many อะไรพวกเนี้ย ซึ่งก็จะต้องวิเคราะห์ดีๆ นะคะ เพราะมันจะต้องสามารถอ่านไปข้างหน้าแล้วก็อ่านย้อนกลับมาโดยที่ความหมายไม่เปลี่ยน แผนภาพของเราด้วย นะคะ บทที่ 3 กำหนดคีย์หลักกำหนดคีย์รอง ก็คือ Primary Key กับ secondary Key หลังจากที่เราได้ตารางต่างๆแล้วนะคะ ขั้นตอนต่อไปคือในตารางเราจะต้องเก็บข้อมูล แอตทริบิวต์อะไรบ้าง เช่น นักศึกษา ต้องเก็บข้อมูลอะไรบ้างเกี่ยวกับนักศึกษา ถ้าพอจำได้ก็คือ เข้ามาเปลี่ยน แล้วกรอกข้อมูลเยอะมาก ตั้งแต่ใบสมัครเลย อันนั้นคือ ที่มหาลัยต้องการ ชื่ออะไรนามสกุลอะไรบัตรประชาชนเลขอะไรเกิดวันที่เท่าไหร่ บ้านอยู่ไหนพ่อแม่ชื่ออะไร จบจากโรงเรียนอะไรเกรดเฉลี่ยเท่าไหร่ที่อยู่ปัจจุบันที่ไหน ใครเป็นคนส่งเรียน ได้เงินเดือนละเท่าไหร่ ใครเป็นผู้ปกครองเบอร์ผู้ปกครองเบอร์อะไร บางคน ภูเขาไม่ใช่พ่อไม่ใช่พ่อหรือแม่จะเป็นคุณตาคุณยาย นะคะ ที่อยู่ปัจจุบัน อยู่ไหนแล้วมาเรียนราชภัฏ ที่ไหน ออกให้หมด เกรดเฉลี่ยม 4 ม 5 ม 6 เป็นยังไง คือสิ่งที่มหาลัยต้องการรู้เกี่ยวกับพวกคุณ ซึ่งก็คือ App ที่บิลนั่นเอง นะคะ โดยหัวของแต่ละคอลัมน์เนี่ย ควรกำหนดเป็นคำสั้นๆง่ายๆ น่าจะเป็นตัวย่อก็ได้แต่ต้องสื่อความหมาย แล้วก็หลีกเลี่ยง การตั้งชื่อเหมือนกัน นะคะ อาจจะเป็น ชื่อ บางคนไม่เข้าใจสรุปใส่ชื่อเล่นหรือชื่อจริง เพราะฉะนั้นต้องกำหนดไปเลยว่าคุณต้องการอะไร ชื่อจริงชื่อจริง เล่น ชื่อเล่นไม่ใช่คำว่าชื่อเฉยๆ แล้วเขาจะรู้ไหมว่าเขาต้องใส่อะไร ถ้าจะใส่ชื่อเล่นก็ได้ กำหนดขี้ภายนอกหรือว่า foreign Key บัญชีที่เอาไว้เชื่อมโยงแต่ละตารางเข้าด้วยกัน อย่างเช่น นักศึกษากับอาจารย์เนี่ยจะเชื่อมโยงกันได้ยังไง เชื่อมโยงโดยรหัสวิชา รหัสวิชานี้ใครเรียนบ้างใครสอนบ้าง แค่กรอกรหัสเข้าไปก็รู้ได้เลย นี่คือการเชื่อมโยงกัน ของอาจารย์กับนักศึกษาในวิชานั้นๆ นะคะ โดยที่เนี่ยมันอาจจะเป็นคีย์หลักของตารางอื่นก็ได้ เดี๋ยวขอวาดรูปก็จะเข้าใจมากขึ้นอันนี้ตอนพูดเนี่ยจะไม่ค่อยเข้าใจเท่าไหร่ทำไมมันถึงเชื่อมโยงกันได้ นะคะ วันที่ 5 พิจารณาขอบเขตผ้าแต่ละค่าที่อยู่ในแต่ละ ข้อมูลที่เราต้องการ นะคะ คือขอบเขตของข้อมูลนั่นแหละ เช่นชนิดของข้อมูล เราจะกำหนดเป็นอะไร วันเกิด ควรกำหนดเป็นอะไร เงินเดือน มันควรเป็นจำนวนเต็มไหมคุณอยากได้ทศนิยมหรือเปล่า อย่างชื่อก็ควรกำหนดเป็น รับข้อมูลเฉพาะตัวอักษรเท่านั้นกรอกเป็นตัวเลขไม่ได้ อันนี้คือสิ่งที่เราต้องกำหนดตั้งแต่ ตอนที่ออกแบบฐานข้อมูลเลย ความยาว เลขบัตรประชาชนก็ 13 หลัก นะคะ เบอร์โทรศัพท์ก็ 10 หลัก อะไรแบบนี้นามสกุลไม่ควรเกิน 35 ตัวอักษร เงินเดือนก็เอาซักไม่เกิน 7 หลัก ประมาณนี้ นะคะรูปแบบข้อมูล บางประเทศมันไม่เหมือนประเทศลาว เขาจะเอาเดือนขึ้นก่อน ตามด้วยวันตามด้วยปีคุณก็สามารถกำหนดได้เหมือนกันเราอยากใช้แบบของเราเพื่อดูง่ายๆก็เป็นวันเดือนปี ตามกันอย่างนี้ก็ได้ นะคะกับค่าที่อนุญาตโดยเฉพาะเช่น ทุกวันที่ 1 กับ 16 ของเดือนเป็นวันหยุด คุณก็สามารถตั้งได้ ว่าในฐานข้อมูลคือถ้าสมมุติลูกค้าต้องการจองคิวทำอะไรก็ตาม ถ้าเป็นวันที่ 1 กับวันที่ 16 ไม่อนุญาตให้จอง แบบนี้ก็ได้ นะคะอันนี้ก็ต้องตั้งแต่เราออกแบบเลยว่าหลักข้อตกลงของเรา ควรจะเป็นยังไง นะคะ อันนี้ก็อธิบายไปแล้วเนาะนึงสำคัญ ความเป็นหนึ่งเดียว ก็คือ อย่างเช่นรหัสนักศึกษาต้องกำหนดเลยว่า ห้ามเป็นค่าที่ 3 ซ้ำกันไม่ได้ เราอาจจะกรอกเลขผิดไปตัวนึงระบบต้องแจ้งเตือนว่าเอ้ยคุณวิชัยไม่ได้มันซ้ำไปแล้ว กลับ การเป็นค่านันค่าในที่นี้คือ คุณไม่ขอข้อมูลได้ไหม บางระบบจะบอกว่าไม่ได้ ถ้าใครเคยกรอกข้อมูลในอินเทอร์เน็ตจะเห็นว่าบางบางช่องของการกรอกข้อมูลเขาจะมีดอกจันสีแดง ไม่อยู่ มันคือเป็นข้อมูลที่เขาต้องการคุณจะเว้นว่างไม่ได้ หรือถ้าต้องการจะเว้นว่าง หรือไม่ตอบ เขาจะได้อย่างหนึ่งว่า ค่า default ก็คือค่าโดยปริยาย ถ้าไม่ตอบว่าเงินเดือนเท่าไหร่ ค่าเริ่มต้นคือ 0 เป็นค่าว่างไม่ได้ไม่ตอบไม่ได้ เพราะฉะนั้นก็ใส่ไปเลย 0 บาท วันนี้ก็ได้ แต่ส่วนมากทุกคนก็ต้องกรอกอยู่แล้วนะคะ ขั้นตอนสุดท้ายก็มาวิเคราะห์ดูว่าแผนภาพที่เราออกแบบเนี่ย มันสามารถ ปรับปรุงแก้ไขหรือว่าขยายตัวในอนาคตได้หรือเปล่า คำว่าการออกแบบที่ดีเนี่ยต้องคำนึงถึงการเปลี่ยนแปลงด้วย ไม่ใช่ว่าตายตัวไปตลอดเกิดสมมุติว่าวันเนี้ยคุณอาจจะเปิดร้าน ลูกค้าอาจจะไม่ถึงร้อยคน ใครจะไปรู้อนาคตคุณอาจจะเป็นธุรกิจที่มันเติบโตได้ มีสาขาไปอีกเป็นร้อยสาขา มีลูกค้าเป็นหมื่นคน สถานข้อมูลคุณคิดไว้ว่า รหัสลูกค้า 1-100 มันเป็นไปไม่ได้ค่ะ ต้องวิเคราะห์ด้วยว่าเอ้ย รหัส ลูกค้าเนี่ยมันจะต้องเป็นการเพิ่มขึ้นอย่างอัตโนมัติ ไปได้เรื่อยๆหรือเปล่าหรือคุณจะเป็นคนของเอง นะคะอันนี้ก็ต้องคิดด้วย ไม่ใช่ว่าระบบฉันใช้แค่ 10 คนนี้แหละบางทีในอนาคตอาจจะไม่ใช่อย่างนั้น นะคะ โดยการสร้างแบบจำลองข้อมูลการวาดแผนภาพ มันจะต้องวิเคราะห์ถึงข้อมูลที่จำเป็นต้องเก็บในระบบ นะคะ อาจจะเปลี่ยนกับข้อมูลที่จำเป็นต้องเรียกใช้โครงสร้างที่มีรวมถึงถ้ามันมีการเพิ่มลบแก้ไขข้อมูล จะต้องทำที่ตารางไหน ถ้าสมมุติว่าข้อมูลในตารางนั้นถูกลบไป มันจะไปกระทบกับข้อมูลในตารางอื่นหรือเปล่า วันดีคืนดีอาจารย์นกชื่อสาขาที่คุณเรียนออก มันจะกระทบกับพวกคุณไหม เป็นนักศึกษาไม่มีสังกัด จำได้ไหม ก็ต้องดูด้วยเขาเรียกว่ากฎ การคงสภาพของข้อมูล วิธีอยากลบ ไม่ได้ เหมือนอยากเปลี่ยนเลขรหัสบัตรประชาชนให้เด็ก 1 คนได้ไหม เลขไม่สวยอยากได้เลข 9 ลงท้ายเลยเนี่ย ชื่อเปลี่ยนได้ไหมเห็นได้ แต่บางอย่างมันเปลี่ยนไม่ได้นะคะเช็ครหัสนักศึกษา เลขบัตรประชาชนอย่างนี้เราต้องวิเคราะห์ด้วย ไม่ใช่ว่าออกแบบไปแล้วใครอยากเปลี่ยนเลขประชาชนตอนไหนก็ได้ อันนี้เป็นต้น โดยการเขียนแผนภาพ e-r เนี่ย มันก็จะอธิบายภาพรวมทั้งหมด ที่บอกต้นตอนต้นก็คือมันต้องเข้าใจง่าย นะคะ อาจจะไม่ต้องรู้ว่าข้อมูลที่เรากำลังจะเก็บเงินเก็บที่ไหนเก็บยังไงไม่จำเป็น ออกมาให้ดูก่อนว่าในฐานข้อมูลเราต้องมีอะไรบ้าง นะคะ ในแต่ละตารางมีความสัมพันธ์กันยังไง ข้อมูลมันจะซ้ำซ้อนกันไหม นะคะ แล้วก็ เขียนให้ออกมาดูง่ายที่สุดอย่างที่ฉันบอกตอนแรก แผนภาพ การวาดรูปเนี่ย มันมีหลาย เขาเรียกอะไรล่ะหลายมาตรฐานและกัน หนังสือแต่ละเล่มก็เลือกมาใช้ไม่เหมือนกัน นะคะ มีทั้งแบบเช่นโมเดลแบบชาวพุทธก็คือแบบ ให้ความสำคัญเนี่ยจะแค่คล้ายกับ รอยเท้าของนก รอยเท้าอีกาเขาก็เรียกเป็น รูปแบบรูปแบบนึง นะคะ แต่ที่เราจะใช้กันบ่อยนะคะจะเป็นแบบของเชนโมเดลช่องสีเหลือง เราจะเลือกใช้ตัวแบบนี้เพราะว่า มันเขียนง่ายมันอ่านง่ายที่สุด นะคะ แต่ถ้าคุณไปจนถึงเรื่องอื่น ก็ใช้แบบอื่นผิดไหมไม่ผิด อยู่ที่เขาจะเลือกใช้แบบไหนแค่นั้นเอง นะคะ สัญลักษณ์ที่ ใช้ในการวาดรูปนะคะ สัญลักษณ์สี่เหลี่ยมผืนผ้ามันจะหมายถึงชื่อตลาด นะคะแบบสี่เหลี่ยมข้าวหลามตัด มันจะบอกถึงความสัมพันธ์ของตารางแต่ละตาราง แล้วคอลัมน์ในแต่ละตารางล่ะ นะคะเราก็จะใส่เป็นรูปวงรี 5 คอลัมน์นานๆ เป็นคีย์หลักที่ห้ามซ้ำกัน ในรูปวงรีจะต้องขีดเส้นใต้ด้วย ส่วนด้านข้างอันเนี้ยจะไม่ค่อยพบเห็นบ่อยแต่เจอในข้อสอบแน่ๆ นะคะอันแรกเป็นสี่เหลี่ยมผืนผ้าซ้อนกัน 2 อัน มันหมายถึงตารางนั้นน่ะเป็นตารางอ่อนแอหรือว่า weekend City จะต้องพึ่งพิงค่าจากตารางอื่น เพื่อให้ตารางของมันมีความหมาย นะคะ กระเป๋าแม่ สี่เหลี่ยมข้าวหลามตัดซ้อนกัน 2 อันก็เช่นเดียวกันค่ะเขาเรียกว่าความสัมพันธ์แบบอ่อนแอ มันจะต้องไปดึงค่า มีความสำคัญอื่นๆมาทำให้ตัวมันมีความหมายขึ้นมา วงรีซ้อนกัน 2 วง ก็คือในตารางนี้เนี่ยในคอลัมน์นี้หรือในข้อมูลแล้วนะเนี่ย มันอาจจะมีข้อมูลได้มากกว่า 1 ข้อมูลเช่น จะมีเบอร์โทรศัพท์ 3 เบอร์ หรือว่ามีชื่อเล่นพ่อเรียกชื่อนึงแม่ฉันเรียกชื่อหนึ่ง บอกได้ มีสัตว์เลี้ยงมากกว่า 2 ตัวแต่ละตัวชื่อว่าอะไรบ้าง อย่างนี้ก็ได้นะคะกับวงรีที่เป็นเส้นประ มันหมายถึงว่าค่าข้อมูลในนี้เนี่ย จะได้มาจากการคำนวณของ ข้อมูลอื่นๆ ที่พบบ่อยที่สุดก็คือ อายุ อายุจะได้มาจากการคำนวณวันเกิดใช่ไหมคะ เพราะฉะนั้นไอ้เส้นวงดีป่ะ ก็คือจะบอกว่าอายุของเรา ได้มาจากการกรอกวันเดือนปีเกิดนั้นเอง ให้มันคำนวณให้อัตโนมัติ กูใช้งานไม่ต้องบอกเองว่าอายุเท่าไหร่ ให้ระบบคำนวณให้เลย อายุ 18 ปี 11 เดือน 10 วันอะไรก็ว่าไป นะคะ อันนี้คือสัญลักษณ์ที่เราใช้บ่อยรูปเดียวกันกับเมื่อกี้นี้ อธิบายโดยละเอียดหรือว่าชื่อของตาราง ก็จะเป็นส่วนในการเก็บข้อมูลรายการแต่ละรายการที่ระบบจัดการฐานข้อมูลหรือเรากำลังจะสร้างระบบขึ้นมา เช่น สัญลักษณ์อินฟินิตี้จะเป็นสี่เหลี่ยมผืนผ้ามีชื่อตารางอยู่ชื่อที่อยู่ข้างใน นะคะ เราจะต้องวาดแบบนี้ทุกครั้ง โดยตัวอย่าง เช็คตารางบุคคล บุคคลคืออะไรบ้างเป็นตารางพนักงานตารางฟุตห่วยตารางบุคลากร ตารางทักษาพาลูกค้า อาจจะเป็นข้อมูลเกี่ยวกับสถานที่ก็จะเป็นตารางเก็บจังหวัด ข้อมูลจังหวัด ข้อมูลอำเภอ ตารางที่เกี่ยวกับวัตถุจะเป็น รถยนต์ อาคารเครื่องจักรสินค้าก็ได้ เนื้อจะไปเหตุการณ์ต่างๆที่เกิดขึ้นเช่นการลงทะเบียนการรักษาโรคการซื้อการขายการส่งสินค้า นะคะ สัญลักษณ์อย่างที่บอกเป็นสี่เหลี่ยมผืนผ้ามีชื่อเอนทิตี้และชื่อตารางอยู่ข้างใน นะคะ ประเภทของเอนทิตี้ก็มีอยู่ 2 ประเภทนะคะแต่ส่วนใหญ่ที่เราใช้กันเนี่ยจะเป็นหนี้ทั่วไป hoppipolla คือเป็นตารางที่ข้อมูลในนั้นสามารถแยกข้อมูลในแต่ละแถวออกได้ อีกหนึ่งคืออ่อนแอ มันจำเป็นจะต้องใช้ข้อมูล มาช่วยทำให้ข้อมูลในแถวนั้นมีคุณค่าหรือมีความหมายขึ้นมา อันนี้เป็นตัวอย่าง ที่ทั่วไปหรือตารางทั่วไปนะคะ สังเกตได้ว่า ข้างบนเนี่ยอาจารย์เขียนไว้ว่าเอนทิตี้ Student ก็เป็นตารางตารางนึงที่มีข้อมูลเกี่ยวกับนักเรียนอยู่แต่สิ่งที่เราจะเอามาวาดแผนภาพ มันไม่ใช่กรอบสี่เหลี่ยมนี้นะคะ เราจะเอามาแต่ชื่อ เช่นตาราง Student sgs Students เก็บข้อมูลอะไรบ้างคือตัวนี้แต่ที่เรามองว่าลูกโอเคค่ะเอาสีเหลี่ยมข้างล่างนะว่าแค่นั้นเอง ก็บอกได้ว่าชื่อตารางอะไร อันนี้เป็นตัวอย่างของตารางอ่อนแอหรือว่า entity อ่อนแอ นะคะอันนี้ก็คือ ข้อมูลเกี่ยวกับการ ลงเวลาทำงานเวลาออกจากงาน เวลาถ้าใครไปทำงานก็ต้องมาทำงานกี่โมงกลับบ้านกี่โมง ตารางนี้ราคา Time stamp ก็คือการลงเวลา ตารางนี้ ไม่มีความหมายเลยถ้าขาด ข้อมูลที่เข้าทำงานแล้วก็เวลากลับบ้าน ฉะนั้น 2 ตัวนี้จะต้องเชื่อมโยงกันอยู่แล้ว 5 ขาดอันใดอันหนึ่งไป ตารางนี้จะไม่มีความหมายเลย ก็มีเวลามีแต่เวลามาทำงานแล้วกลับบ้านตอนไหนไม่รู้ อย่างนี้ไม่ได้ ก็คือมาทำงานก็ต้องมีเวลากลับบ้าน หรือมีแต่เวลากลับบ้านไม่มีเวลาทำงานมันก็ไม่ได้ จะรู้ได้ไงว่าคุณมาทำงานกี่โมง นะคะอันนี้เป็นตัวอย่างของตารางที่ถ้าขาด ข้อมูลใดข้อมูลหนึ่งไปจะทำให้ ข้อมูลในตารางนะเนี่ย ไม่สมบูรณ์ มีปัญหานั่นเอง อย่างเช่น อันนี้เป็นตัวอย่าง ถ้าเป็น ตารางทั่วไปตารางนักเรียนกับตารางรายวิชา นะคะ มีนักศึกษา 2 คนมี 2 วิชา อันนี้เป็นตารางทั่วไป ตารางการลงทะเบียน สมมุติว่า มีแต่รหัสนักศึกษามีปีการศึกษา แต่ไม่รู้เลยว่าเขาลงทะเบียนวิชาอะไร ได้ไหมไม่ได้ ไม่งั้นจะรู้ได้ไงว่าเทอมนี้มีใครเรียนอะไรบ้าง หรือ นะคะ รู้รายวิชารู้ปีการศึกษา ไม่รู้เลยว่าใครลงทะเบียนเรียน ใช่ไหมก็ไม่ได้อีก เพราะฉะนั้น ในตารางการลงทะเบียน ถ้าขาดข้อมูลใดข้อมูลหนึ่งไปตารางนั้นจะเป็นตารางที่ไม่สมบูรณ์ โดยข้อมูลในตารางเนี่ยก็ไปดึงข้อมูลมาจากคนอื่นทั้งนั้น อันนี้คือตารางอ่อนแอ ก็คือไม่มีความหมายตัวเอง จะต้องมีข้อมูลจากตารางอื่นมาช่วยนะเอง นะคะ แอตทริบิวต์ ก็คือ ยังไงก็คือคอลัมน์ในแต่ละตารางอ่ะค่ะว่า ในตารางนั้นมีคอลัมน์อะไรบ้าง หวงของ คอลัมน์ เพราะฉะนั้นแอตทริบิวต์นะคะสัญลักษณ์ของ SCB จะเป็นวงรี นะคะ อย่างข้อมูลพนักงานควรจะมีอะไรบ้างก็จะมีรหัสพนักงานชื่อนามสกุลมีเพศมีเงินเดือน สัญลักษณ์จะเป็นแบบนี้ ข้อมูลพนักงาน อันนี้ก็คือ Infinity ใช่ไหมคะตารางหัวตาราง เป็นคอลัมน์ คอลัมน์ ซึ่งในอธิบดีเนี่ยมันก็ยังแบ่งไปอีกเป็น 6 ประเภทเหมือนกันนะคะ แต่ก็ใช้วงรีเหมือนกันนี่แหละแต่อาจจะมีสิ่งที่เปลี่ยนแปลงนิดนึง นะคะ เลขที่บิลเนี่ยประเภทที่ 1 คือ assistance ที่ไม่สามารถแบ่งย่อยได้อีกแล้ว ซิมเทพ คุณก็ตอบได้แค่เฟซเดียว คุณเป็นเพศอะไรคุณก็ตอบตัวนั้น เงินเดือน ตอบด้วยค่าเดียว คุณไม่จำเป็นต้องบอกว่า เงินเดือนเดือนที่ 1 เดือนที่ 2 เดือนเดือนที่ 3 ไม่ใช่แล้วตอบข้าเดียว เงินเดือนปัจจุบันราคาเท่าไหร่ เลขบัตรประชาชนสอบได้ค่าเดียว รหัสนักศึกษาตอบได้ค่าเดียวอันนี้คือ senegal เป็นข้อมูลโดยทั่วไป ต่างจากที่ 2 คือ assistance ที่สามารถแบ่งย่อยได้เช่นชื่อนามสกุล เราแยกกันกรอกได้ไหม ได้ แบ่งเป็นชื่อคอลัมน์ 1 นามสกุลคอลัมน์ 1 พม่าเป็นขี้ริ้วนะคะก็เป็น เอกลักษณ์ จะต้องไม่ซ้ำกัน ในตลาดนั้นต้องฆ่าเนี้ยจะต้องไม่ซ้ำกัน โดยลักษณะเฉพาะ ของ นะคะมันจะมีการขีดเส้นใต้ เพื่อแสดงว่ามันเป็นค่าที่ซ้ำกันไม่ได้ เหมือนเวลาเรา เรียนวิชาใดก็ตาม ถ้าอันไหนมีการขีดเส้นใต้มันเป็นการเน้นใช่ไหมคะในวิชาอื่นในการวาดรูปก็เหมือนกันว่าลูกในฐานข้อมูลก็เหมือนกัน แสดงว่า ถ้านั้นน่ะเป็นจุดเน้นที่เราจะต้อง ให้ความสำคัญกับมัน นะคะ ข้อมูลนะคะ ที่มีเพียงค่าเดียวเท่านั้นเช่นคุณจะระบุเพศคุณจะเป็นเพศไหนคุณระบุมา จะไม่มีชายหรือหญิง วันนี้คุณเป็นเพศอะไร ก็ลงมา นะคะหรือค่าที่มีเท่าไหร่ค่ะ อย่างเช่นเบอร์บ้าน รหัสพื้นที่ไม่เหมือนกันกรุงเทพฯก็เป็น 02 สกลก็เป็น 042 ขอนแก่น 043 อุดรก็ 042 ใช่ไหมคะ มันก็ต้องระบุด้วย อย่างนี้ ถ้าค่าไหนมีได้หลายค่าอย่าลืมเป็นวงรี 2 เส้น กับค่าของ ข้อมูลที่ได้จากการคำนวณเราจะใช้วงรีที่เป็นเส้นประ เช่นอายุที่ได้มาจากวันเกิด หรือว่า วันเข้าทำงานจนถึงปัจจุบันคุณทำงานมาแล้วกี่ปี อย่างนี้ก็ได้นะคะผ้าที่ได้มาจากการคำนวณนั่นแหละ อันนี้เป็นตัวอย่าง Simple อาชีพ อันไหนเป็นอันที่บิวแอตทริบิวต์คือวงรี ตัวนี้ วันนี้ แล้วในสี่เหลี่ยมคืออะไรสี่เหลี่ยม tntt ก็คือชื่อตารางนั่นเอง นะคะ ตัวอย่างของแอตทริบิวต์ที่แยกย่อยไปได้เช่น ชื่อนามสกุลอาจารย์ก็แยกเป็น First name Last name คือชื่อกับนามสกุลก็ได้ ที่อยู่ บางคนอาจจะกรอกบรรทัดเดียวเลยก็ได้ หรือคุณอยากจะออกแบบให้มัน เลขที่บรรทัด 1 ถนนบรรทัดนึงตำบลบรรทัดนึงอำเภอจังหวัดแยกกันหมดเลยก็ได้ ถามว่าใช้สัญลักษณ์แตกต่างไปไหมไม่นะคะ เหมือนกัน จะถามว่าเราลบอันนี้ออกได้ไหม ก็ได้นะคะเมื่อวาน มันจะได้ไม่เปลืองเนื้อที่ อย่างนี้ก็ได้แล้วคุณก็บอกไปเลยชื่อนั้นเองนามสกุลอย่างนี้ก็ได้ เฮียทิ้ว ค่าที่ห้ามซ้ำกัน ก็คือ นักเรียนอะไรที่ห้ามซ้ำกัน ก็คือ รหัสนักเรียน อันนี้มันย่อมาจาก student ID นะคะ เล่น ID ทำไมถึงรู้ไป student ID เพราะคำย่อแบบนี้หรือชื่อทุกอย่างนี้ จะต้องจดไว้ในพจนานุกรมข้อมูลด้วย ถามว่านี่มันง่ายเข้าใจง่ายคำว่ามันมาจากอะไร คนที่ไม่มีความรู้พื้นฐานเลยเขาจะรู้ไหมว่า HIV คืออะไร อันนี้เดี๋ยวอีกเรื่องนึงนะครับเรื่องนึง เอาทุกอย่างมารวมกัน ใน 1 ตาราง สามารถมีแอตทริบิวต์หรือมีรูปแบบข้อมูลได้ทุกรูปแบบก็ได้ นะคะ มีทั้ง ที่รัก มีทั้งๆที่สามารถแบ่งย่อยได้มีทั้งวิวที่ได้มาจากการคำนวณคืออายุ จะได้ค่ามาจาก วันเดือนปีเกิด เบอร์โทรศัพท์ Multi Value ก็คือมีได้หลายค่าก็ใส่วงรีซ้อนกัน อันนี้คือตัวอย่าง นะคะ ตัวอย่างของแอตทริบิวต์ เดี๋ยวเราอาจจะไม่เข้าใจเดี๋ยววาดรูปก็น่าจะเข้าใจได้มากขึ้นนะคะ พม่าความสัมพันธ์ มันเป็นความสำคัญของตารางตั้งแต่ 2 ตารางขึ้นไป นะคะ โดยความสัมพันธ์เนี่ยอาจจะมี ข้อมูลที่ใช้ร่วมกัน สัญลักษณ์คือสี่เหลี่ยมข้าวหลามตัด นะคะ เช่นตาราง พนักงานมีพนักงานนะครับพนักงาน work in แปลว่าทำงานอยู่ใน แผนกอะไรคือนิพพานเม้น ความสัมพันธ์ตัวนี้เนี่ยจะต้องสามารถอ่านไปข้างหน้าอ่านกับย้อนหลังก็ได้ พนักงานทำงานอยู่ใน หรือในแผนกนั้นมีใครทำงานอยู่บ้าง ต้องเข้าใจได้แบบนี้ นะคะหรือ การสั่งสินค้า อยู่ในใบสั่งสินค้า อยู่ไหน ราคาสินค้าชนิดนั้นอยู่ในใบสั่งซื้อ อะไรก็ต้องดูได้ สินค้าอย่างเช่น power bank อาจจะอยู่ได้ในหลายใบสั่งซื้อสินค้าก็ได้เพราะสินค้าเรามีหลายตัว นะคะไม่ใช่ว่าขายให้แค่คนเดียว ขายให้ได้หลายคนนะคะ ความสัมพันธ์แบบหนึ่งต่อหนึ่ง ความสัมพันธ์ที่สมาชิกคนเดียว มีความสัมพันธ์ไปอีก สมาชิกหนึ่งของอิสลามหนึ่งเท่านั้น เช่นเจ้าของรถเป็นเจ้าของรถยนต์ได้ 1 คัน นะคะ นี่สมมุติสมมุตินะคะ คน 1 คนเป็นเจ้าของรถยนต์ได้ 1 คัน ใครเคยเห็นนายทะเบียนรถยนต์ทะเบียนรถยนต์จะต้องมีเจ้าของคนเดียว ตัวอย่าง แต่ถ้าเปลี่ยนเป็นความสัมพันธ์แบบหนึ่งกับมากกว่า 1 หลัง เช่นคน 1 คน มีรถยนต์ได้ หลายคัน ใช่ไหมอยู่บ้านบางคนอาจจะมีรถยนต์มากกว่า 1 คัน จะมีรถเก๋งหรือรถกระบะ มีรถ 6 ล้อ พ่อเป็นเจ้าของรถหมดเลย ก็ได้ แต่ใน บรรดารถทุกคันจะต้องมีเจ้าของ คนเดียว อันนี้คือสิ่งที่เราต้องคิดด้วย นะคะ คนคนหนึ่งมีรถได้หลายคันก็จริงแต่รถคันนั้นๆจะต้องมีเจ้าของได้คนเดียว กับความสัมพันธ์ที่มากกว่า 1 เช่น ลูกค้าหลายคน ลูกค้า 1 คนส่งใบเวลาเราซื้อของเราจะต้องซื้อกับแคชเชียร์คนนี้ เวลาจ่ายเงิน แต่แคชเชียร์คนนี้ ก็สามารถรับลูกค้าได้หลายคนเหมือนกัน ลูกค้าหลายคนก็ไม่จ่ายกับแคชเชียร์คนไหนก็ได้ ไม่จำเป็นต้องจ่ายเฉพาะคนนี้เท่านั้น เวลาลงไป เดินห้างซื้อของในซุปเปอร์ วันหนึ่งเขามีลูกค้าหลายคนไหมมีหลายคนนะคะ คนคิดเงินก็มีหลายคนไหมมีหลายคนเหมือนกัน เพราะฉะนั้น วันนี้เราจะเจอลูก พนักงานคนหนึ่งพรุ่งนี้เจอคนใหม่ก็ได้ เขาก็จะไม่เจอเราคนเดียวเขาก็เจอลูกค้าหลายคน อันนี้เป็นความสัมพันธ์ที่มากกว่า 1 ทั้ง 2 ฝั่ง ภาษาอังกฤษเรียกว่า many to many นะคะ อันนี้เป็นตัวอย่าง ความสัมพันธ์แบบหนึ่งต่อหนึ่งจะเห็นได้ว่าเส้นเชื่อมความสัมพันธ์จะเป็นเส้นตรง มีตัวเลขกำกับ ไม่มีตัวเลขกำกับด้วยเพราะฉะนั้นเวลาเราลากเส้นเชื่อมความสัมพันธ์ใดๆก็ตาม จะต้องมีตัวเลขหรือตัวอักษรกำกับทุกครั้ง ความสัมพันธ์แบบหนึ่งต่อหนึ่ง ตัวแทน ขายสินค้าดูแลลูกค้าได้ 1 คน จริงไหม อาจจะไม่จริงเสมอไป ตัวแทน 1 คนอาจจะดูแลลูกค้าได้หลายคนก็ได้ถ้าเป็นลูกค้าหลายคนแล้วจะแทนด้วยตัว M หรือตัว N ก็ได้นะคะ แต่ต้องใส่ ว่าถูกต้องหรือยัง แค่หนึ่งคนดูแลลูกค้าได้หลายคน ลูกค้าหลายคนก็ได้รับการดูแลจากตัวแทน 1 คน ก็ถูก แบบนี้เป็นต้นมีการใส่ ที่รัก มีการขีดเส้น อันนี้เป็นความสัมพันธ์ก็คือเขาดูแลกัน ต้องใส่ ต้องระบุ แต่ถ้าเป็นความสัมพันธ์ที่มากกว่า 1 ทั้ง 2 ด้าน เราจะต้องใส่เป็น M กับ n เท่านั้น เราจะใส่เป็น M เกมอย่างนี้ไม่ได้ ไม่ได้นะคะ ไม่ได้ n a n แบบนี้ได้ไหมก็ไม่ได้ เพื่อให้สื่อความหมายให้ถูกว่ามันเป็นความสัมพันธ์ที่เชื่อมกัน ระหว่างเส้น 2 เส้นนี้ นะคะ อันนี้เป็นตัวอย่าง เดี๋ยวพ่อว่า ง่ายๆก่อน น่าจะเข้าใจง่ายขึ้น กลับอันนี้ออกสอบง่ายมาก อาจารย์อาจจะมี รูปภาพ ให้ ร้องไห้พวกคุณเปลี่ยนเป็นตาราง ง่ายมากเลย ก็คือข้อมูลที่อยู่ในกรอบสี่เหลี่ยมมันคือชื่อตารางใช่ไหมคะ ออกแล้วก็เขียน ชื่อตลาด อยู่ในวงรี แอตทริบิวต์ก็เป็นคอลัมน์ของตาราง เสร็จละ อยู่ท่าจอดที่วาดรูป ทำยังไงจากรูปจากตารางข้างล่างชื่อตารางใช่ไหมคะชื่อตารางก็มาใส่กรอบสี่เหลี่ยม คอลัมน์แต่ละคอลัมน์ก็มาใส่ในวงรี โยงเส้น เสร็จ แค่นั้นเอง อันนี้ออกสอบด้วยนะ อาจจะไม่ง่ายอย่างนี้แต่หลักการมีประมาณนี้แหละ ถ้าสมมุติว่ามันมีข้อมูลที่ การสามารถแบ่งแยกออกได้ นะคะ เห็นได้ว่า ตอนก่อนหน้านี้ที่อาจารย์ตัดตรงนี้ออก เวลาเราเอามาเขียนในรูปแบบของตาราง อันนี้เราจะไม่ใส่เราจะดูเฉพาะแอตทริบิวต์ที่อยู่ขอบนอกสุดเท่านั้น เราจะเอาเฉพาะข้างนอกสุด มาเขียนลงเป็นตาราง ดูดีนะข้อกำหนดแต่ละอัน กับค่าพลังไหน มีข้อมูลที่สามารถมีได้หลายค่า วงรีซ้อนกัน 2 วง เราจะเอาข้อมูลนั้นแยกมาเป็นอีกหนึ่งตาราง แต่คีย์หลักจะเอามาจากตารางเดิม เพื่อให้ส่งตารางนี้มันเชื่อมโยงกันโดย ภาคีหลักเชื่อมกัน อันนี้เป็นข้อสังเกตก่อนนะ วันนี้เป็นยังเป็นกฎที่ยังต้องใช้อยู่นะคะ อันไหนที่เป็นค่า ที่เป็นวีค entity หรือว่าความสัมพันธ์แบบอ่อนแอหรือตารางอ่อนแอ เราต้องดูด้วยว่ามันมีความสัมพันธ์กับตารางไหน เราจะเอาคีย์หลักของตาราง ที่มันมีความสัมพันธ์ด้วยมาใส่ด้วยเหมือนกัน อย่างเช่น เดี๋ยวลบอันนี้ก่อน ทำไมถึงบอกว่าตารางด้านขวามือ ตารางผ่อนแอร์ เพราะ ในตารางนี้มีเวลาทำงานมีเวลากลับบ้าน มีวันที่แต่ถามว่า เป็นของใคร ขยะมาทำงาน 7 โมงกลับ 16:00 น ใครมาทำงาน 8:00 น กับ 20:00 น ไม่รู้ เพราะฉะนั้นต้องไปดูดิว่า พนักงานรหัสคนไหน พี่เขามาสแกนนิ้วทำงานหรือตอกบัตรทำงาน จะถามว่าในตารางนี้ทำไมลงไม่ให้กรอก รหัสพนักงานด้วยล่ะ ก็เป็นการซ้ำซ้อนกันไงคะในเมื่อเรามีรหัสพนักงานอยู่แล้ว เราก็เรียกใช้ได้เลย เราไม่จำเป็นต้องมาเพิ่มตรงนี้ก็ได้ อันนี้คือการออกแบบที่ดี ท่าไหนซ้ำซ้อนกันเราจะไม่ใช้เราจะดึงข้อมูลมาใช้เลย อันนี้คือข้อดีของการออกแบบฐานข้อมูล อันนี้คือตัวอย่างอย่างนึง กลับ การเปลี่ยนให้เป็นตารางค่าเมื่อกี้นี้ในรูปนี้อาจารย์ไม่ได้ใส่ความสัมพันธ์ใช่ไหมคะ ยังไม่มีเส้นเชื่อมโยงไปทางอื่นใช่ไหม ถ้ามันมีเส้นเชื่อมโยงไปตารางอื่น อันนี้เป็นความสัมพันธ์แบบหนึ่งต่อหนึ่ง เราจะต้องเอาคีย์หลัก เส้นใต้เนี่ย ของตารางด้านข้างที่เรามีความสัมพันธ์ด้วยมาใส่ในตารางเรา แต่ความสัมพันธ์แบบหนึ่งต่อหนึ่งจะมีข้อได้เปรียบอย่างนึงคือ ในตารางแรก น่าจะเอารหัสลูกค้ามาเป็นขี่เพื่อเชื่อมต่อกันก็ได้ หรือ อาจจะเอารหัสตัวแทน มาเป็นตัวเชื่อมต่อกันก็ได้ อันนี้เป็นความพิเศษเฉพาะตารางแบบหนึ่งต่อหนึ่ง แต่จะต้องเอาคีย์หลักของตารางที่เรามีความสัมพันธ์ด้วยอาจจะเป็นเลือกมาทางไหนก็ได้แต่ต้องมี ต้องมี มันสามารถ ยืดหยุ่นได้เฉพาะความสัมพันธ์แบบหนึ่งต่อหนึ่ง นะคะ แต่ถ้า เป็นความสัมพันธ์แบบหนึ่งต่อกลุ่ม จะต้องเอาคีย์หลักของฝั่งที่มีความสัมพันธ์เป็นหนึ่ง มาใส่ในตารางที่มีความสัมพันธ์แบบกลุ่ม เท่านั้น อันนี้เป็นลักษณะเฉพาะ ลักษณะเฉพาะ ของความสัมพันธ์แบบหนึ่งต่อกลุ่ม 85 เป็นความสัมพันธ์แบบกลุ่มต่อกลุ่มล่ะ ไหมคะเป็น M กับ n เราจะไม่เอาตารางไม่เอาค่าคีย์หลักมาใส่ในตาราง แต่เราจะสร้างตารางใหม่ โดยใช้คีย์หลักของทั้งสองตารางที่มีความสัมพันธ์กันมาสร้างเป็นตารางใหม่เลย จำลักษณะ 3 อย่างนี้ให้ดีนะคะ 1 ต่อ 11 กับกลุ่มกับกลุ่มต่อกลุ่ม การออกมาสร้างเป็นตาราง ลักษณะเฉพาะมี 3 แบบ แบบแรกคือเอาคีย์หลักฝั่งไหนก็ได้ แบบที่ 2 คือเอาเฉพาะที่หลักของฝั่งที่เป็นความสัมพันธ์ที่เป็นหนึ่งเท่านั้น แบบที่ 3 คือ เอาคีย์หลักของ ทั้งสองความสัมพันธ์มาสร้างตารางใหม่เลย นะคะ อันนี้คือ ลักษณะเฉพาะของการเปลี่ยนรูปภาพให้เป็นตาราง เดี๋ยวจะมีให้ทำด้วย บางคนจะจำไม่ได้ หาการออกแบบนะคะก็อันนี้พูดไปแล้ว เราจะมาลองวาดรูปกัน น่าจะเคยไปร้านหนังสือกัน หรืออาจจะเคยเห็นหนังสืออยู่แล้วเนาะ นะคะ ในหนังสือ 1 เล่ม มีอะไรบ้าง แน่นอน ข้อมูลหนังสือแต่ละเล่มก็จะมี รหัสหนังสือ มีชื่อหนังสือ มีรหัสผู้แต่ง รหัสสำนักพิมพ์ นี่คือข้อมูลที่อาจารย์ให้ก่อนนะเดี๋ยวเรามาว่า ลูกจันทร์ ในข้อมูลของคนแต่งหนังสือมีอะไรบ้างก็จะมีรหัสของผู้แต่งคนนั้น มีชื่อผู้แต่งหนังสือ ในข้อมูลสำนักพิมพ์ ก็จะมีรหัสสำนักพิมพ์มีชื่อสำนักพิมพ์ มีที่อยู่ โทรศัพท์ นะคะ ขั้นตอนแรก ศึกษาก่อน ในระบบหนังสือร้านหนังสือ คือข้อมูลที่ฉันให้เมื่อกี้มันจะมีข้อมูลหนังสือนะคะ มีข้อมูลคนแต่ง มีข้อมูลสำนักพิมพ์ มีกระดาษใช่ไหมพลอย อ้าว OK ขั้นตอนต่อมา กำหนดเอนทิตี้เดี๋ยวจะให้ทำเอง ก็คือในข้อมูลที่ฉันให้ มันจะต้องมีกี่ MB หรือกี่ตาราง ทำซิ ใช้สัญลักษณ์ให้ถูกด้วยนะคะเดี๋ยวฉันจะเดินดู ทำเลย จากข้อมูลเนี่ยข้อมูลตัวหนังสือสีดำๆเนี่ยดำๆเนี่ยเราควรมีกี่ตาราง วาดรูปเนี่ย รูปแบบเนี้ย แบบนี้ วาดรูปนี้ให้วาดรูป เอาข้อมูลมาวาดเป็นรูปแบบนี้แต่อย่างแรกเลย ดูก่อนว่า ข้อมูลที่ส่งให้เนี่ย มันควรจะมีกี่ตาราง ดูซิว่ามันต้องมีกี่ตาราง สัญลักษณ์ของตารางเรียน City ก็คือ สี่เหลี่ยมผืนผ้า ลงว่าสีหน้ามันควรจะมีสี่เหลี่ยมผืนผ้ากี่อัน แล้วในสี่เหลี่ยมผืนผ้าจะต้องเขียนว่าอะไร ลองทำดู อันนี้ยังไม่ยาก สรุปแล้วมีกี่ตาราง อันนี้ง่ายมากดูจากที่อาจารย์เน้นตัวหนังสือสีดำเข้มไว้ เราจะได้ 3 ตาราง ในกรอบสี่เหลี่ยม มีตารางผู้แต่ง มีตารางหนังสือ มีตารางสำนักพิมพ์ 3mbet นั้นเอง กระจกที่จังหวัดให้เนาะ พี่ตอนเย็นให้ อันนี้ ให้ทำเอง หลังจาก เราได้ตาราง entity แล้วนะคะ มันจะต้องกำหนดความสัมพันธ์ความสำคัญก็คือ เส้นที่โยงกันแต่ละ 2-3 อันนี้เราจะโยงเส้นมันยังไง ลดความสัมพันธ์ของแต่ละอัน มันควรจะเป็นยังไง สิ่งที่มันควรจะเป็นก็คือ หนังสือแต่ละเล่ม จะถูกพิมพ์จากสำนักพิมพ์ สำนักพิมพ์หนึ่งเท่านั้น ใช่ไหม แปลว่า ไม่ 1 สำนักพิมพ์ เขาก็สามารถพิมพ์หนังสือได้หลายเล่มนะ อันนี้คือเงื่อนไขเงื่อนไข หนังสือแต่ละเล่ม กำหนดว่าจะต้องมีคนแต่งคนเดียวเท่านั้น ในโลกของความเป็นจริงเนี่ยหนังสือเนี่ยมันอาจจะมีคนแต่งช่วยกันก็ได้เนาะ ในโจทย์ของอาจารย์ให้ จัดให้หนังสือถึงเล่มคนแต่งได้คนเดียวเท่านั้นนี่คือจบ กำหนดนะคะ แปลว่า ผู้แต่งหนังสือแต่ละคน เขาก็สามารถแต่งหนังสือได้หลายเรื่องเหมือนกัน อันนี้คือข้อกำหนดที่อาจารย์กำหนดให้ แล้ว เราจะให้ความสำคัญแต่ละอันยังไง ก็คือการวาดแบบนี้ มาเจอกันว่าแบบนี้นะคะ ความสัมพันธ์ที่เป็นแบบนี้ นี่คือความสัมพันธ์ พี่นักศึกษาจังหวัด กระจกตัวนี้ นะคะตัวนี้ไอ้สามันเนี้ย มันจะต้องสัมพันธ์กันยังไง ลองวาดดูซิ ลองวาดดูรูปมันจะต้องออกมาเป็นแบบนี้นะคะแต่ข้อมูลข้างในอ่ะ จะใส่ว่ายังไง ลองใส่ดู จะให้เวลา 5 นาที ลองดูซิว่า จะเข้าใจโจทย์อาจารย์ไหมจะวาดได้หรือเปล่า 5 นาทีเดี๋ยวดูกัน อย่าเอาตัวอย่างให้ดูอันนึงแล้วที่เหลือลองทำดูสิ เดี๋ยวลบอันนี้ก่อน ตัวอย่าง 1 อันก่อน แบบนี้ค่ะ เช่นผู้แต่ง 1 คน เบาะ แต่งหนังสือ 1 เล่มใช่ไหมคะ แต่หนังสือเลยนะเนี่ย ก็มีผู้แต่งได้แค่คนเดียวแต่เขาแต่งได้หลายเล่มใช่ไหมเพราะฉะนั้นความสัมพันธ์ก็คือผู้แต่ง 1 คน สามารถแต่งหนังสือได้หลายเล่ม แต่ถ้าเราอ่านย้อนกลับ หนังสือหลายๆเล่มเนี่ย มีผู้แต่ง แค่หนึ่งคน อันนี้ยกตัวอย่างให้ 1 อันละ ที่เหลือลองวาดดูซิให้มันได้เงินของอาจารย์เนี่ย ที่เหลือมันควรจะเป็นยังไง ลองดูซิเริ่มให้แล้ว 1 อัน ลองทำดูก่อน ที่เหลือ หนังสือและเล่ม แต่ต้องถูกพิมพ์จาก 1 สำนักพิมพ์เท่านั้น อันนี้ตามโจทย์ที่อาจารย์กำหนด ถ้าเราเอามารวมกัน ในความสำคัญ นะคะ มันอาจจะเขียนได้เป็นแบบนี้ ผู้แต่ง 1 คน แต่งหนังสือได้หลายเล่ม และหนังสืออะไร จะต้องถูกจัดทีมจาก 1 สำนักพิมพ์เท่านั้น อันนี้คือลูกความสัมพันธ์ที่เกิดขึ้น นะคะ อันนี้ยังไงอยู่ ก็เห็นภาพขึ้นบ้างไหม อันยังไงอันนี้พ่อเราอ่าน ถ้าเป็นคนที่ไม่มีความรู้ทางด้านคอมพิวเตอร์มาอ่าน เขาก็ยังจะเข้าใจ นะคะ นี่คือการวาดรูป มันเลยทำให้เราเข้าใจง่ายขึ้นแล้วก็จัดระเบียบความคิดของเราด้วยว่าสิ่งที่มันควรจะเป็นในฐานข้อมูลเป็นคนจะเป็นยังไง นะคะ ไงแล้วอันนี้จริงๆพอเราได้ความสำคัญเราได้ empty แล้ว เราต้องมาเขียนว่าในแต่ละ มันควรจะมีข้อมูลอะไร แล้วอะไรจะเป็นคีย์หลักก็คือค่าที่ห้ามซ้ำกัน เราต้องขีดเส้นนะคะ เอามาจากตรงไหน มาจากตรงนี้ เรารู้แล้วว่าไหนคือชื่อตลาด ข้อมูลมีอะไรบ้างมันก็แค่เอาข้อมูลที่อาจารย์กำหนดให้เนี่ยค่ะ ในรูปวงรี พี่บิว แต่มันจะยากก็คือในแต่ละข้อมูลอะไรจะเป็นคีย์หลักก็คือห้างค่าที่ห้ามซ้ำกัน นึกว่าดูอาจารย์เอาให้หมดแล้ว 3 อันเนี้ย ต้องมีข้อมูลอะไรบ้างกำหนดอยู่ สัญญาก็คือเราจะขีดเส้นใต้ในข้อมูลตัวไหน นะคะ แล้ว ทำเองลองดูซิ ลองดูซิมันจะได้รูปเหมือนกับของอาจารย์ไหม ลองทำดู เช่าข้อมูลที่กำหนดให้ในสไลด์ก่อนหน้านี้ค่ะ แค่นั้นเอง จะให้ลองทำเองดูว่าเหมือนกันไหม 5 นาทีเหมือนเดิม เดี๋ยววันนี้ไม่เสร็จให้ 1 ตัวอย่างก่อนมันต้องแบบนี้ อีก 2 อันที่เหลือทำเอง เอาตัวอย่างให้ดูก่อน ได้ ตารางหนังสือแล้ว เหลือแต่ละ 1 สำนักพิมพ์กับกำลังผู้แต่ง ลองทำอีก 2 อันที่เหลือให้ลูกมันออกมาเป็นแบบนี้ ทำยังไง ยกตัวอย่างให้ก่อนเหนียวไม่เข้าใจ เห็นไหมว่าอาจารย์กำหนดคีย์ด้วยก็คือเราขีดเส้นใต้รหัสหนังสือ ห้ามซ้ำกัน อีก 2 อันที่เหลืออันไหนต้องห้ามซ้ำกัน แล้วทำไมในตารางหนังสืออาจารย์ถึงมีรหัสสำนักพิมพ์ด้วย ไม่ต้องมี ต้องมีเพราะว่าเราจะได้รู้ว่าหนังสือเล่มนี้ สำนักพิมพ์ไหนเอามาขาย ใช่ไหมอันเนี้ย รหัสสำนักพิมพ์แม่คือคีย์นอก ซึ่งเอาไปเชื่อมโยงไปดูว่า สำนักพิมพ์ชื่ออะไรอยู่ที่ไหนเบอร์โทรศัพท์อะไร ไม่ต้องเป็นต้องเอาข้อมูลมาทั้งหมด เอามาแค่รหัสก็พอ ในการเชื่อมโยงกัน 2 ตาราง ลองวาดดูซิ 2 อันที่เหลือ ผู้แต่งต้องมีอะไร สำนักพิมพ์ต้องมีอะไร บอกว่าดูซิ เห็นไหม ผู้แต่งได้หรือยังเหมือนกันหรือเปล่า ไปง่ายมากเลย ข้อมูลที่อาจารย์ให้มาว่าแค่นั้นเอง ใช่ไหม สำนักพิมพ์ จะเป็นแบบนี้ เพราะอาจารย์ให้ข้อมูลไปหมดแล้ว เพราะว่าเสร็จ ได้องค์ประกอบทุกอย่าง รูปที่สมบูรณ์ มันเลยเป็นแบบนี้ จากข้อมูลที่ฉันให้ทั้งหมด เอามาวาดรูป เหมือนกันเลย แค่ข้อมูลที่ได้อ่ะค่ะจากตัวหนังสือเป็นยาวๆเนี่ย เราก็เอามา ว่าเป็นลูก แล้วมันจะได้เช็คได้ว่า เราขาดข้อมูลตรงไหนหรือเปล่า ข้อมูลมันยังสามารถเติมตรงไหนได้อีก มันเป็นไปอย่างที่เราเข้าใจไหม ในตัวของสมมุติว่าเขามาจ้างให้เราออกแบบ ข้อมูลเข้าใจตรงกันหรือเปล่า นะคะ หรือเขาอยากให้เอาข้อมูลอะไรเข้ามาอีก แต่ถ้า เป็นการออกแบบฐานข้อมูลจริงๆ ที่ใช้กันในชีวิตประจำวันถามว่าแค่นี้พอไหม อันนี้เป็นแค่ตัวอย่างที่อยากให้คุณทำ ฐานข้อมูลจริงๆมันจะเป็นยังไง มันจะเป็นแบบนี้เลย ใช่ไหมคำว่าร้านหนังสือร้านหนึ่งมันไม่ได้มีแค่เมื่อเช้าเมื่อกี้นี้ มันต้องเป็นแบบนี้ เมื่อกี้มันน้อยมาก แต่ถ้าเราทำงานจริงๆ ข้อมูลมันจะเยอะขนาดนี้เลย ข้อมูลจะเยอะขนาดนี้เลย เพราะฉะนั้นวันนี้ มี สิ่งที่ให้นักศึกษาไปทำ อาจารย์กำหนดข้อมูลให้เราด้วย ให้วาดรูปเหมือนเมื่อกี้เนี่ยค่ะเหมือนที่อาจารย์ยกตัวอย่าง แต่คราวนี้จะเป็นการขายคอมพิวเตอร์ โดยห้องสมุดคือ ลูกค้า มีหลายคน แล้วก็สามารถซื้อสินค้าได้หลายชิ้น แล้วก็ 1 ใบเสร็จรับเงิน ก็มีสินค้าได้หลายชิ้นเหมือนกันมีชิ้นเดียวได้ไหมได้ มีมากกว่า 1 ชิ้นก็ได้เหมือนกัน ในแต่ละใบเสร็จ จะต้องมีแคชเชียร์หรือพนักงานขายแค่คนเดียวเท่านั้น อันนี้คือเรื่องทั่วไปเลย มันไม่ได้แล้วไปซื้อของในห้างคนคิดเงินให้เราก็มีคนเดียวใช่ไหม แล้วก็ต้องมีการแยกประเภทสินค้าด้วย นะคะ เช่นเหมือนเวลาเราไปห้างมันก็จะแยกกันเครื่องครัวอยู่ที่นึง พี่นอนอยู่ที่นึง ของกินอยู่ที่นึงอันนี้คือการแยก คอมพิวเตอร์ก็เหมือนกัน นะคะ โดยที่อาจารย์กำหนดให้แล้ว นะคะว่า มันควรจะมีตารางอะไรบ้าง มี 5 ตาราง หน้าตลาด ก็จะเป็นตารางลูกค้า ตารางคณะการขาย ตารางรายละเอียดของสินค้า ตารางประเภทสินค้า ตารางใบเสร็จ อาจารย์กำหนดให้แล้ว ว่าควรจะมีข้อมูลอะไรบ้าง ให้เราไปวาดรูปมา ทำเอง ใช้หลักการเดียวกันกับเหมือนที่อาจารย์ยกตัวอย่างไปเมื่อกี้นี้ ลองวาดดูซิว่ารูปที่ได้จะเป็นยังไง อันนี้เป็นการบ้าน สำหรับวันนี้ไม่มีอะไรแค่นี้ก็ปวดหัวมากแล้ว ถ้าใครจะนั่งวาดรูปต่อก็ได้ แต่ต้องส่ง ราคาต้องส่ง วันนี้ก็ประมาณนี้มาครบทุกคนเดี๋ยวให้ไปปวดหัววาดรูปต่อ วาดรูปไม่เคยปวดหัวเท่านี้มาก่อนเลย วันนี้ลองดูที่ๆมีกี่ตารางวาตารางไปวาดมาซิว่าในแต่ละตารางมันควรมีข้อมูลอะไรบ้าง จากที่เมื่อกี้ไปกดให้ ลองกำหนดเองซิมันต้องมีอะไร อ่านแล้วทำส่งอาจารย์ใส่กระดาษวาดรูปนี้แหละวาดมา ความสำคัญให้ครบด้วย อันไหนเป็นค่าที่ห้ามซ้ำกันอย่าลืมขีดเส้นให้อาจารย์ด้วย วันนี้ก็ประมาณนี้ค่ะขอบคุณมากนะคะขอบคุณล่ามด้วยขอบคุณ ข้อความด้วยนะคะ เคค่ะเจอกันสัปดาห์หน้าค่ะ