(อาจารย์เกวลี) โอเค สวัสดีค่ะ โอเคค่ะ วันนี้จะเป็นบทที่ 4 นะคะ จะเป็นเกี่ยวกับแบบจำลองข้อมูล หรือเวลาเราเรียกสั้น ๆ ก็คือการวาดรูป ER นะคะ ตัว E แล้วก็ตัว R เป็นภาษาอังกฤษ โดยแผนภาพนะคะ ER นะคะ หรือว่า ER Model นี่ มันจะเป็น ล่ามเขาได้ยินเราไหมพลอย ทำไมล่ามดูนิ่ง ๆ ล่ามได้ยินไหมคะ ล่ามได้ยินไหมคะ ถ้าได้ยินโอเคด้วยค่ะ โอเค โอเค โอเคค่ะ ก็การวาด ER นะคะ หรือเป็นแบบจำลองข้อมูลนะคะ มันจะเป็นแบบที่ใช้อธิบายโครงสร้างของฐานข้อมูล โดยที่เราจะแสดงออกมาเป็นรูปภาพนะคะ โดยที่โครงสร้างสำคัญที่จะต้องใช้ในการวาดรูปของเรานะคะ ก็คือ Entity หรือว่าตารางกับความสัมพันธ์ ก็คือแต่ละเส้นที่เชื่อมโยงในแต่ละตาราง เราจะต้องโยงกันให้ถูกนะคะ อย่างเช่น ตารางของอาจารย์กับนักศึกษา เราต้องมีความสัมพันธ์กัน ในฐานะการเรียนการสอนแบบนี้นะคะ การวาดรูปจะเป็นเหมือนรูปที่อาจารย์ยกตัวอย่างให้ดูบนจอนะคะ การที่เราจะวาดรูปได้เราต้องรู้ด้วยว่าสัญลักษณ์แต่ละอันหมายความว่าอย่างไร ทำไมเราต้องใช้วงรี ทำไมเราต้องใช้สี่เหลี่ยมผืนผ้า ทำไมเราต้องลากเส้นตรงนะคะ แต่ละอันมีความหมายหมดเลย แล้ววันนี้ก็จะพอบรรยายเสร็จจะให้วาดเองด้วยนะคะ จุดเด่นของแผนภาพ ER นะคะ มันจะทำให้เราออกแบบฐานข้อมูลได้เร็วขึ้น เพราะว่า มันเหมือนการจัดระเบียบความคิดของผู้ที่ออกแบบ คล้าย ๆ กับเราสมัยมัธยมน่าจะเคยวาด Mind Map นะคะ การวาด ER ก็เหมือนกันนะคะ มันจะได้รู้ว่าเราต้องการจะออกแบบอะไร อะไรควรมีความสัมพันธ์กัน หรืออะไรที่ขาดหายไปนะคะ เราจะได้เห็น รวมถึง ลดความซ้ำซ้อนของข้อมูลออกไปด้วย เช่น ในตารางนี้มีข้อมูลนี้อยู่แล้ว ก็ไม่จำเป็นต้องใส่เพิ่มในตารางอื่นก็ได้นะคะ หรือว่าพอเราวาดเสร็จออกมาทำไมมีตารางที่คล้าย ๆ กัน 2 อัน มันลบออกได้ไหมนะคะ การวาดรูปก็จะทำให้เราเห็นภาพได้ง่ายขึ้น โดยคุณลักษณะของการวาดแผนภาพ ER นะคะ ก็คือแน่นอนมันแสดงผล ออกมาเป็นภาพนะคะ Model ข้อมูล หรือว่ารูปแบบข้อมูลแบบไหนก็ตามนี่ มันจะมีภาษาแล้วก็รูปภาพที่เป็นกราฟิกโดยเฉพาะนะคะ อาจจะมีทั้งภาพขนาดใหญ่ ภาพขนาดย่อย มันจะทำให้เราอ่านข้อมูล หรืออ่านฐานข้อมูลนั้นได้ง่าย เพราะเราใช้วงกลม เราใช้สี่เหลี่ยม เราใช้วงรีนะคะ เราใช้เส้นตรง เส้นโค้ง เส้นประ ทุกอย่างมีความหมายหมดนะคะ มันก็แสดงให้เห็นถึงความชัดเจนของข้อมูลด้วย โดยที่เราอาจจะใช้สัญลักษณ์ที่ต่างกันเล็กน้อยนะคะ ซึ่งตัวรูปแบบของการวาดนี่ มันก็จะมีหลาย หลายรูปแบบ หนังสือแต่ละเล่ม บางเล่มก็ไม่เหมือนกัน บางคนใช้รูปแบบของคนนี้ หรือหนังสืออีกเล่มหนึ่งอาจจะใช้รูปแบบที่ต่างออกไปนะคะ ในการวาดรูป แต่เดี๋ยว ตอนถึงเวลาวาดรูปเราต้องตกลงกันก่อนว่า เราจะเลือกใช้รูปแบบไหนนะคะ ข้อสำคัญคือแผนภาพที่ได้มานี่ มันควรที่จะอ่านง่าย ๆ ไม่ซับซ้อน เส้นไม่ลากตัดกันไปตัดกันมา ฉันเพิ่งคิดได้ ฉันเลยอยากวาดไว้ตรงนี้ ไม่ได้นะคะ เราต้องคิดก่อนว่า เราจะลากเส้นตรงจากกระดาษฝั่งหนึ่งไปอีกฝั่งหนึ่งนี่ มันก็ทำให้เราอ่านยาก เพราะฉะนั้นเราต้องมาจัดระเบียบความคิดตัวเองด้วยว่า ในฐานข้อมูลที่เราต้องการนี่ มันมีตารางอะไรบ้าง แล้วแต่ละตารางนี่ มันควรจะเชื่อมกันอย่างไรนะคะ โดยในแผนภาพที่เราวาดนะคะ รายละเอียดต้องอยู่ในระดับที่เหมาะสม อาจจะไม่ได้ละเอียดยิบขนาดนั้น ไม่ต้องละเอียดแบบเป๊ะ ๆ ๆ ๆ ๆ แต่ว่าเราต้องมองภาพให้ออก หรืออาจจะมีการเปลี่ยนแปลงแก้ไข มันจะต้องยืดหยุ่นนะคะ รวมถึงรายละเอียดต้องเพียงพอ ไม่ใช่ว่า โอ๊ยน้อยไป บางอันก็เยอะไปนะคะ เอาที่พอดี โดยที่แต่ละอันนี่อย่างที่บอกเราจะต้องมีการเชื่อมโยงความสัมพันธ์ของแต่ละตารางด้วย นะคะ แล้วก็การวาดรูปของเรา เราจะไม่ตายตัวเลยว่าเราวาดเพื่อไปใช้กับโปรแกรมอะไร นะคะ รูปที่เราวาดจะต้องเอาไปใช้ได้กับทุกโปรแกรม หรือทุกรูปแบบของการเขียนฐานข้อมูลนะคะ แล้วก็เวลาใครมาอ่าน จะต้องเข้าใจง่าย ถึงแม้ว่าเขาจะไม่ได้เรียนทางด้านคอมพิวเตอร์มาก่อน แต่พอเขาดูรูปภาพ อย่างน้อยเขาก็จะเข้าใจว่าเราต้องการจะสื่ออะไร ในฐานข้อมูลเรามีอะไรบ้างนะคะ เขาอาจะไม่รู้หรอกว่าวงรีมันหมายความว่าอะไร หรือสี่เหลี่ยมหมายความว่าอย่างไร ทำไมต้องเป็นเส้นประ ทำไมต้องมีเส้นโค้งด้วย เขาอาจจะไม่ต้องเข้าใจตรงนั้น แต่เขาดูแล้วเขาก็พอเข้าใจว่าเราต้องการจะนำเสนออะไร สื่ออะไร ในฐานข้อมูลเรามีอะไรบ้างนะคะ อันนี้ก็คือไม่ว่าจะเป็นใครต้องอ่านรูปที่เราวาด เข้าใจระดับหนึ่งก็ยังดีนะคะ ขั้นตอนในการออกแบบแผนภาพ ER นะคะ มันก็จะมีอยู่หลายขั้นตอน แต่เราก็จะแบ่งออกมาได้เป็นประมาณ 5 ขั้นตอน ในการออกแบบ หรือการวาดด้วยนะคะ โดยพอเราได้ภาพคร่าว ๆ มาแล้วนี่ เราค่อยไปใส่รายละเอียดทีหลังก็ได้ ว่าผู้ใช้งาน เขาควรจะดูข้อมูลได้ในระดับไหน ผู้ใช้งานแต่ละคน การเข้าถึงข้อมูลแต่ละชั้นนี่ แต่ละขั้น แต่ละชั้นนี่ ใครเข้าได้บ้าง หรือว่าผู้ใช้งานทั่วไปดูได้อย่างเดียวอะไรไหม อันนั้นคือ เป็นหลังจากที่เราวาดรูปเสร็จแล้ว แล้วค่อยมาใส่รายละเอียดทีหลังก็ได้นะคะ โดยขั้นตอนแรก เราจะกำหนด Entity หลัก หรือตารางหลักนะคะ โดยในการออกแบบฐานข้อมูลนี่ เราจะต้องเอา... รวบรวมความต้องการของผู้ใช้งาน ก็คือ requirement นี่ล่ะนะคะ มากำหนดว่าในฐานข้อมูลเราจะมี Entity หรือว่ามีตารางอะไรบ้าง ซึ่งขั้นตอนนี้เป็นขั้นตอนที่ค่อนข้างยากนะคะ ต้องเข้าใจในสิ่งที่เรากำลังจะสร้าง ทั้งผู้ใช้งานและก็ผู้ออกแบบต้องเข้าใจตรงกัน เพราะถ้าเรากำหนดตารางไปแล้ว แล้วอยู่ดี ๆ มาเพิ่ม มันอาจจะต้องเชื่อมต่อความสัมพันธ์ใหม่นะคะ โดยวิธีการ ก็คือถ้าอยากทำให้มันครอบคลุมมากที่สุด ก็คือเอาข้อมูลทั้งหมดที่มีมาวาง แล้วจัดกลุ่มของข้อมูลนะคะ โดยรู้ว่าข้อมูลมีค่าอะไรบ้าง มีความหมายอย่างไร แต่อะไร แต่ละอย่างนี่เชื่อมโยงกันอย่างไรนะคะ ถ้าข้อมูลเป็นข้อมูลชนิดเดียวกัน ให้รวมไว้ในตารางเดียวกัน แล้วก็กำหนดชื่อ เช่น นักศึกษานะคะ อาจจะมีหลายคณะก็จริง แต่ก็คือนักศึกษา เรารวมเป็นตารางเดียวได้ไหม ได้ แล้วค่อยมากำหนดลักษณะพิเศษของแต่ละคนว่า ในนักศึกษาหลาย ๆ พันคนนี่ เขามีความแตกต่างอะไรบ้าง แต่เราก็เก็บข้อมูลไว้ในตารางเดียวก็พอนะคะ โดยทุกอย่างจะต้องจดไว้ในบันทึก บันทึกไว้ในพจนานุกรมด้วย แล้วก็เขียนลงไปในแผนภาพที่เรากำลังจะวาดด้วยว่า ในตารางนี้มีข้อมูลอะไรบ้าง ที่เราต้องใช้นะคะ ขั้นตอนที่ 2 ก็จะต้องมากำหนดความสัมพันธ์ระหว่าง Entity หรือว่าระหว่างตารางนั่นเอง ก็จะมีการกำหนดชื่อ กำหนดความหมาย ความสัมพันธ์ ทิศทางการเชื่อมโยงของข้อมูล อัตราส่วนการเกิดความสัมพันธ์นะคะ เช่น นักศึกษา 1 คน สามารถลงทะเบียนเรียนได้หลายวิชานะคะ แต่ในหลาย ๆ ในแต่ละวิชา จะต้องมีผู้สอนคนเดียว อันนี้คือความสัมพันธ์ที่เกิดขึ้น แต่อาจารย์ 1 คน ก็สามารถสอนนักศึกษาได้หลายคนเหมือนกัน ได้หลายวิชาด้วยนะคะ ซึ่งอาจจะเป็นยกตัวอย่างการกำหนดอัตราส่วนอีกอย่างหนึ่ง ก็คือ เหมือนที่อาจารย์ชอบยกตัวอย่างบ่อย ๆ รหัสบัตรประชาชน ไม่ควร มันไม่เกิน 13 หลักอยู่แล้ว เราก็ต้องกำหนด ชื่อคน กำหนดไว้เลยก็ได้ ไม่ควรเกิน 20 ตัวอักษร คงไม่มีใครตั้งชื่อตามหลักโหราศาสตร์ ยาวเกิน 20 ตัวหรอกนะคะ แล้วก็เราก็สามารถแบ่งกลุ่มได้แล้วว่าข้อมูลแต่ละอันมันจะต้องเชื่อมโยงกันอย่างไร หลังจากนั้นก็มาดูว่า ขนาดของความสัมพันธ์เป็นอย่างไร 1 ต่อ 1 หรือ 1 ต่อ มากกว่า 1 อะไรพวกนี้นะคะ ภาษาอังกฤษก็คือ One-to-One One-to-Many อะไรพวกนี้นะคะ ซึ่งก็จะต้องวิเคราะห์ดี ๆ นะคะ เพราะมันจะต้องสามารถอ่านไปข้างหน้า แล้วก็อ่านย้อนกลับมา โดยที่ความหมายไม่เปลี่ยน ในแผนภาพของเราด้วยนะคะ ขั้นตอนที่ 3 กำหนดคีย์หลัก กำหนดคีย์รอง ก็คือ Primary Key กับ Secondary Key นะคะ หลังจากที่เราได้ตารางต่าง ๆ แล้วนะคะ ขั้นตอนต่อไปก็คือ ในตารางเราจะต้องเก็บข้อมูล หรือว่า Attribute อะไรบ้าง เช่น ตารางนักศึกษา ต้องเก็บข้อมูลอะไรบ้างเกี่ยวกับนักศึกษา ถ้าพอจำได้ ก็คือตอนเราเข้ามาเรียน เรากรอกข้อมูลเยอะมาก ตั้งแต่ใบสมัครเลยนะคะ อันนั้นคือ Attribute ที่มหาวิทยาลัยต้องการ ชื่ออะไร นามสกุลอะไร บัตรประชาชขนเลขอะไร เกิดวันที่เท่าไร บ้านอยู่ไหน พ่อแม่ชื่ออะไร จบจากโรงเรียนอะไร เกรดเฉลี่ยเท่าไร ที่อยู่ปัจจุบันที่ไหน ใครเป็นคนส่งเรียน ได้เงินเดือนละเท่าไร นะคะ ใครเป็นผู้ปกครอง เบอร์ผู้ปกครองเบอร์อะไร บางคนผู้ปกครองไม่ใช่พ่อหรือแม่ อาจจะเป็นคุณตาคุณยายนะคะ ที่อยู่ปัจจุบันอยู่ไหน แล้วมาเรียนราชภัฏ พักที่ไหน กรอกให้หมด เกรดเฉลี่ยตั้งแต่ ม.4 ม.5 ม.6 เป็นอย่างไร อันนี้คือสิ่งที่มหาวิทยาลัยต้องการรู้เกี่ยวกับพวกคุณ ซึ่งก็คือ Attribute นั่นเองนะคะ โดยหัวของแต่ละคอลัมน์ หรือ Attribute นี่ ควรกำหนดเป็นคำสั้น ๆ ง่าย ๆ อาจจะเป็นตัวย่อก็ได้ แต่ต้องสื่อความหมายนะคะ แล้วก็หลีกเลี่ยงการตั้งชื่อเหมือนกันนะคะ อาจจะเป็นชื่อ ชื่อนี่ บางคนไม่เข้าใจ สรุปใส่ชื่อเล่นหรือชื่อจริง เพราะฉะนั้น ต้องกำหนดไปเลยว่าคุณต้องการอะไร ชื่อจริงก็ใส่ชื่อจริง ชื่อเล่นก็ใส่ชื่อเล่น ไม่ใช่คำว่า "ชื่อ" เฉย ๆ แล้วเขาจะรู้ไหมว่าเขาต้องใส่อะไร เขาอาจจะใส่ชื่อเล่นก็ได้นะคะ กำหนดคีย์ภายนอก หรือว่า Foreign Key เป็นคีย์ที่เอาไว้เชื่อมโยงแต่ละตารางเข้าด้วยกันนะคะ อย่างเช่น นักศึกษากับอาจารย์นี่จะเชื่อมโยงกันได้อย่างไร เชื่อมโยงโดยรหัสวิชา เช่น รหัสวิชานี้ ใครเรียนบ้าง ใครสอนบ้าง แค่กรอกรหัสเข้าไปก็รู้ได้เลย อันนี้คือการเชื่อมโยงกันของอาจารย์กับนักศึกษาในวิชานั้น ๆ นะคะ โดยที่คีย์นอกหรือ Foreign Key นี่ มันอาจจะเป็นคีย์หลักของตารางอื่นก็ได้นะคะ เดี๋ยวพอวาดรูปก็จะเข้าใจมากขึ้น อันนี้ตอนพูดนี่อาจจะไม่ค่อยเข้าใจเท่าไร ว่าเอ๊ะทำไมมันถึงเชื่อมโยงกันได้นะคะ ขั้นที่ 5 พิจารณาขอบเขตค่าแต่ละค่าที่อยู่ในแต่ละข้อมูลที่เราต้องการนะคะ ก็คือขอบเขตของข้อมูลนั่นแหละ เช่น ชนิดของข้อมูล เราจะกำหนดเป็นอะไร วันเกิด ควรกำหนดเป็นอะไร เงินเดือน มันควรเป็นจำนวนเต็มไหม คุณอยากได้ทศนิยมหรือเปล่านะคะ อย่างชื่อก็ควรกำหนดเป็นรับข้อมูลเฉพาะตัวอักษรเท่านั้น กรอกเป็นตัวเลขไม่ได้ อันนี้คือสิ่งที่เราต้องกำหนดตั้งแต่ตอนที่ออกแบบฐานข้อมูลเลยนะคะ ความยาว เลขบัตรประชาชนก็ 13 หลักนะคะ เบอร์โทรศัพท์ก็ 10 หลัก อะไรแบบนี้ นามสกุลไม่ควรเกิน 35 ตัวอักษร เงินเดือน ก็เอาสักไม่เกิน 7 หลัก ประมาณนี้นะคะ รูปแบบข้อมูล บางประเทศมันไม่เหมือนประเทศเรา เขาจะเอาเดือนขึ้นก่อน ตามด้วยวัน ตามด้วยปี คุณก็สามารถกำหนดได้เหมือนกัน เราอยากใช้แบบของเราเพื่อดูง่าย ๆ ก็เป็น วัน เดือน ปี ตามกันอย่างนี้ก็ได้นะคะ กับค่าที่อนุญาตโดยเฉพาะ เช่น ทุกวันที่ 1 กับ 16 ของเดือนเป็นวันหยุด คุณก็สามารถตั้งได้ ว่าในฐานข้อมูล คือ ถ้าสมมติลูกค้าต้องการจะจองคิวทำอะไรก็ตาม ถ้าเป็นวันที่ 1 กับวันที่ 16 จะไม่อนุญาตให้จอง แบบนี้ก็ได้นะคะ อันนี้ก็ต้องตั้งแต่เราออกแบบเลย ว่าข้อตกลงของเราควรจะเป็นอย่างไรนะคะ อันนี้ก็อธิบายไปแล้วนะ กับอีกอันหนึ่ง สำคัญ ความเป็นหนึ่งเดียว ก็คือ อย่างเช่น รหัสนักศึกษา ต้องกำหนดเลยว่าห้ามเป็นค่าที่ซ้ำ ซ้ำกันไม่ได้ เราอาจจะกรอกเลขผิดไปตัวหนึ่ง ระบบต้องแจ้งเตือนว่า เอ๊ยคุณเลขนี้ใช้ไม่ได้ มันซ้ำไปแล้ว กับการเป็นค่า Null ค่า Null ในที่นี้ คือ คุณไม่กรอกข้อมูลได้ไหม บางระบบจะบอกว่าไม่ได้ ถ้าใครเคยกรอกข้อมูลในอินเทอร์เน็ตจะเห็นว่าบางช่องของการกรอกข้อมูล เขาจะมีดอกจันสีแดงกำหนดไว้อยู่ นั่นคือเป็นข้อมูลที่เขาต้องการ คุณจะเว้นว่างไม่ได้นะคะ หรือถ้าต้องการจะเว้นว่าง หรือไม่ตอบ เขาจะเรียกอีกอย่างหนึ่งว่า "ค่า Default" ก็คือค่าโดยปริยาย ถ้าไม่ตอบว่าเงินเดือนเป็นเท่าไร ค่าเริ่มต้นคือ 0 แต่เป็นค่าว่างไม่ได้ ไม่ตอบไม่ได้ เพราะฉะนั้น เราใส่ไปเลย 0 บาท แบบนี้ก็ได้ แต่ส่วนมากทุกคนก็ต้องกรอกอยู่แล้วน่ะนะคะ ขั้นตอนสุดท้าย ก็มาวิเคราะห์ดูว่า แผนภาพที่เราออกแบบนี่ มันสามารถปรับปรุงแก้ไข หรือว่าขยายตัวในอนาคตได้หรือเปล่า เพราะว่าการออกแบบที่ดีนี่ ต้องคำนึงถึงการเปลี่ยนแปลงด้วย ไม่ใช่ว่าตายตัวไปตลอด เกิดสมมติว่าวันนี้คุณอาจจะเปิดร้าน ลูกค้าอาจจะไม่ถึง 100 คน แต่ใครจะไปรู้ อนาคตคุณอาจจะเป็นธุรกิจที่มันเติบโตได้มีสาขาไปอีกเป็นร้อยสาขา มีลูกค้าเป็น 10,000 คน แต่ฐานข้อมูลคุณ fix ไว้ว่าอย่างรหัสลูกค้าแค่ 1-100 มันเป็นไปไม่ได้ค่ะ นะคะ ต้องวิเคราะห์ด้วยว่า เอ๊ย รหัสลูกค้านี่ มันจะต้องเป็นการ เพิ่มขึ้นอย่างอัตโนมัติไปได้เรื่อย ๆ หรือเปล่า หรือคุณจะเป็นคนกรอกเอง นะคะ อันนี้ก็ต้องคิดด้วย ไม่ใช่ว่า โอ๊ย ระบบฉันใช้แค่ 10 คนนี่ล่ะ บางทีในอนาคตมันอาจจะไม่ใช่อย่างนั้นนะคะ โดยการสร้างแบบจำลองข้อมูล หรือการวาดแผนภาพนี่ มันจะต้องวิเคราะห์ถึงข้อมูลที่จำเป็นต้องเก็บในระบบนะคะ อาจจะเกี่ยวกับข้อมูลที่เราจำเป็นต้องเรียกใช้ โครงสร้างที่มี รวมถึงถ้ามันการเพิ่มลบแก้ไขข้อมูล จะต้องทำที่ตารางไหน ถ้าสมมติว่าข้อมูลในตารางนั้นถูกลบไป มันจะไปกระทบกับข้อมูลในตารางอื่นหรือเปล่านะคะ เช่น วันดีคืนดีอาจารย์ลบชื่อสาขาที่คุณเรียนออก มันจะกระทบกับพวกคุณไหม เป็นนักศึกษาไม่มีสังกัด ทำได้ไหม ไม่ได้นะคะ ก็ต้องดูด้วย เขาเรียกว่า "กฎการคงสภาพของข้อมูล" อยู่ดี ๆ อยากลบ ไม่ได้ เหมือนอยากเปลี่ยนเลขรหัสบัตรประชาชนให้เดชมงคลได้ไหม ไม่ได้ เลขมันไม่สวย อยากได้เลข 9 ลงท้ายอะไรอย่างนี้ เปลี่ยนไม่ได้นะคะ แต่ชื่อเปลี่ยนได้ไหม เปลี่ยนได้ แต่บางอย่างมันเปลี่ยนได้นะคะ เช่น รหัสนักศึกษา เลขบัตรประชาชนอย่างนี้ เราต้องวิเคราะห์ด้วยนะคะ ไม่ใช่ว่า ออกแบบไปแล้วใครอยากเปลี่ยนเลขบัตรประชาชนตอนไหนก็ได้ แบบนี้เป็นต้น โดยการเขียนแผนภาพ ER นี่ มันก็จะอธิบายภาพรวมทั้งหมดนะคะ อย่างที่บอกตอนต้น ก็คือมันต้องเข้าใจง่ายนะคะ อาจจะไม่ต้องรู้ว่าข้อมูลที่เรากำลังจะเก็บนี่ เก็บที่ไหน เก็บอย่างไร ไม่จำเป็น แค่วาดออกมาให้ดูก่อนว่า ในฐานข้อมูลเราต้องมีอะไรบ้างนะคะ ในแต่ละตารางมีความสัมพันธ์กันอย่างไร ข้อมูลมันจะซ้ำซ้อนกันไหมนะคะ แล้วก็เขียนให้ออกมาดูง่ายที่สุด อย่างที่อาจารย์บอกตอนแรก แผนภาพการวาดรูปนี่ มันมีหลาย... เขาเรียกว่าอะไรล่ะ หลายมาตรฐานแล้วกัน หนังสือแต่ละเล่มก็เลือกมาใช้ไม่เหมือนกันนะคะ มีทั้งแบบ Chen โมเดล แบบ Crow’s Foot ก็คือแบบ ไอ้ความสัมพันธ์นี่ จะคล้าย ๆ กับรอยเท้าของนก รอยเท้าอีกา เขาก็เรียกเป็นรูปแบบรูปแบบหนึ่งนะคะ แต่ที่เราจะใช้กันบ่อย ๆ นะคะ จะเป็นแบบของ Chen โมเดล ตัวช่องสีเหลือง เราจะเลือกใช้ตัวแบบนี้ เพราะว่ามันเขียนง่าย มันอ่านง่ายที่สุดนะคะ แต่ถ้าคุณไปเจอหนังสือเล่มอื่น เขาใช้แบบอื่น ผิดไหม ไม่ผิด อยู่ที่เขาจะเลือกใช้แบบไหนแค่นั้นเองนะคะ สัญลักษณ์ที่ต้องใช้ในการวาดรูปนะคะ สัญลักษณ์สี่เหลี่ยมผืนผ้า มันจะหมายถึงชื่อตารางนะคะ แบบสี่เหลี่ยมข้าวหลามตัด มันจะบอกถึงความสัมพันธ์ของตารางแต่ละตารางนะคะ แล้วคอลัมน์ในแต่ละตารางล่ะนะคะ เราก็จะใส่เป็นรูปวงรี ถ้าคอลัมน์นั้น ๆ เป็นคีย์หลักที่ห้ามซ้ำกัน ในรูปวงรีจะต้องขีดเส้นใต้ด้วย ส่วนด้านข้าง อันนี้จะไม่ค่อยพบเห็นบ่อย แต่เจอในข้อสอบแน่ ๆ นะคะ อันแรกเป็นสี่เหลี่ยมผืนผ้าซ้อนกัน 2 อัน มันหมายถึงตารางนั้นน่ะ เป็นตารางอ่อนแอ หรือว่า Weak Entity จะต้องพึ่งพิงค่าจากตารางอื่น เพื่อให้ตารางของมันมีความหมายนะคะ กับต่อมา สี่เหลี่ยมข้าวหลามตัดซ้อนกัน 2 อัน ก็เช่นเดียวกันค่ะ เขาจะเรียกว่า "ความสัมพันธ์แบบอ่อนแอ" มันจะต้องไปดึงค่าหรือความสัมพันธ์แบบอื่น ๆ มาทำให้ตัวมันมีความหมายขึ้นมานะคะ วงรีซ้อนกัน 2 วง ก็คือในตารางนี้นี่ เอ้ย ในคอลัมน์นี้ หรือในข้อมูลนั้น ๆ นี่ มันอาจจะมีข้อมูลได้มากกว่า 1 ข้อมูล เช่น คุณอาจจะมีเบอร์โทรศัพท์ 3 เบอร์ หรือว่ามีชื่อเล่น พ่อเรียกชื่อหนึ่ง แม่เรียกชื่อหนึ่ง ก็บอกได้ มีสัตว์เลี้ยงมากกว่า 2 ตัว แต่ละตัวชื่อว่าอะไรบ้าง อย่างนี้ก็ได้นะคะ กับวงรีที่เป็นเส้นประ มันหมายถึงว่า ค่าข้อมูลในนี้นี่ จะได้มาจากการคำนวณของข้อมูลอื่น ๆ ที่พบบ่อยที่สุด ก็คืออายุ อายุจะได้มาจากการคำนวณวันเกิดใช่ไหมคะ เพราะฉะนั้น ไอ้เส้นวงรีประ ๆ พวกนี้ มันก็คือจะบอกว่าอายุของเรา ได้มาจากการกรอกวัน เดือน ปีเกิด นั่นเองนะคะ ให้มันคำนวณให้อัติโนมัติ ผู้ใช้งานไม่ต้องบอกเองว่าอายุเท่าไร ให้ระบบคำนวณได้เลย อายุ 18 ปี 11 เดือน 10 วันอะไรก็ว่าไปนะคะ อันนี้คือสัญลักษณ์ที่เราใช้บ่อย รูปเดียวกันกับเมื่อกี้นี้นะคะ อันนี้จะอธิบายโดยละเอียด Entity หรือว่าชื่อของตารางนะคะ ก็จะเป็นส่วนในการเก็บข้อมูล รายการแต่ละรายการที่ระบบจัดการฐานข้อมูล หรือเรากำลังจะสร้างระบบขึ้นมานะคะ เช่น สัญลักษณ์ Entity จะเป็นสี่เหลี่ยมผืนผ้า มีชื่อตารางหรือชื่อ Entity อยู่ข้างในนะคะ เราจะต้องวาดแบบนี้ทุกครั้งนะคะ โดยตัวอย่าง เช่น ตารางบุคคล บุคคลคืออะไรบ้าง เป็นตารางพนักงาน ตารางผู้ป่วย ตารางบุคลากร ตารางนักศึกษา ตารางลูกค้า อาจจะเป็นข้อมูลเกี่ยวกับสถานที่ ก็จะเป็นตารางเก็บจังหวัด เก็บข้อมูลจังหวัด เก็บข้อมูลอำเภอนะคะ ตารางที่เกี่ยวกับวัตถุ อาจจะเป็นรถยนต์ อาคาร เครื่องจักร สินค้าก็ได้นะคะ หรืออาจจะเป็นเหตุการณ์ต่าง ๆ ที่เกิดขึ้น เช่น การลงทะเบียน การรักษาโรค การซื้อ การขาย การส่งสินค้านะคะ สัญลักษณ์ อย่างที่บอกเป็นสี่เหลี่ยมผืนผ้า มีชื่อ Entity ตารางหรือว่าชื่อตารางอยู่ข้างในนะคะ ประเภทของ Entity ก็มีอยู่ 2 ประเภทนะคะ แต่ส่วนใหญ่ที่เราใช้กันนี่ จะเป็น Entity ทั่วไปนะคะ เป็น Regular ก็คือเป็นตารางที่ข้อมูลในนั้น สามารถแยกข้อมูลในแต่ละแถวออกได้นะคะ กับอีกอันหนึ่ง คือ Entity อ่อนแอ มันจำเป็นจะต้องใช้ข้อมูลอื่น มาช่วยทำให้ข้อมูลในแถวนั้น ๆ มีคุณค่า หรือมีความหมายขึ้นมานะคะ อันนี้เป็นตัวอย่าง Entity ทั่วไป หรือตารางทั่วไปนะคะ จะสังเกตได้ว่า อย่างข้างบนนี่ อาจารย์เขียนไว้ว่า Entity Student ก็คือตารางตารางหนึ่งที่มีข้อมูลเกี่ยวกับนักเรียนอยู่ แต่สิ่งที่เราจะเอามาวาดแผนภาพ มันไม่ใช่กรอบสี่เหลี่ยมนี้นะคะ เราจะเอามาแต่ชื่อ เช่น ตาราง Student ก็คือ Entity Student เก็บข้อมูลอะไรบ้าง ก็คือตัวนี้ แต่ที่เรามาวาดรูป เอาแค่นี้ค่ะ เอาสี่เหลี่ยมข้างล่างมาวาด แค่นั้นเอง แล้วก็บอกด้วยว่าชื่อตารางอะไรนะคะ อันนี้เป็นตัวอย่างของตารางอ่อนแอ หรือว่า Entity อ่อนแอนะคะ อันนี้ก็คือ เป็นข้อมูลเกี่ยกับการลงเวลาทำงาน เวลาออกจากงาน เหมือนเวลาถ้าใครไปทำงานก็จะมีมาทำงานกี่โมง กลับบ้านกี่โมง ตารางนี้นะคะ Time stamp ก็คือลงเวลา ตารางนี้จะไม่มีความหมายเลย ถ้าขาด ข้อมูลที่เข้าทำงาน แล้วก็เวลากลับบ้าน เพราะฉะนั้น 2 ตัวนี้จะต้องเชื่อมโยงกันอยู่แล้ว ถ้าขาดอันใดอันหนึ่งไป ตารางนี้จะไม่มีความหมายเลย ก็คือมีแต่เวลามาทำงาน อ้าว แล้วกลับบ้านตอนไหน ไม่รู้ อย่างนี้ไม่ได้นะคะ ก็คือมาทำงาน ก็ต้องมีเวลากลับบ้าน หรือมีแต่เวลากลับบ้าน ไม่มีเวลาทำงาน มันก็ไม่ได้ อย่างนั้นจะรู้ได้อย่างไรว่าคุณมาทำงานกี่โมงนะคะ อันนี้เป็นตัวอย่างของตารางที่ ถ้าขาดข้อมูลใดข้อมูลหนึ่งไป จะทำให้ข้อมูลในตารางนั้น ๆ นี่ ไม่สมบูรณ์ มีปัญหานั่นเองนะคะ อย่างเช่น อันนี้เป็นตัวอย่าง ถ้าเป็นตารางทั่วไป ตารางนักเรียนกับตารางรายวิชานะคะ มีนักศึกษา 2 คน มี 2 วิชา อันนี้เป็นตารางทั่วไป แต่ตารางการลงทะเบียน สมมติว่ามีแต่รหัสนักศึกษา มีปีการศึกษา แต่ไม่รู้เลย ว่าเขาลงทะเบียนวิชาอะไร ได้ไหม ไม่ได้ ไม่อย่างนั้นจะรู้ได้อย่างไรว่าเทอมนี้มีใครเรียนอะไรบ้าง หรือนะคะ รู้รายวิชา รู้ปีการศึกษา แต่ไม่รู้เลยว่าใครลงทะเบียนเรียน ได้ไหม ก็ไม่ได้อีกนะคะ เพราะฉะนั้น ในตารางการลงทะเบียน ถ้าขาดข้อมูลใดข้อมูลหนึ่งไป ตารางนั้นจะเป็นตารางที่ไม่สมบูรณ์ โดยข้อมูลในแต่ละตารางนี่ ก็ไปดึงข้อมูลมาจากคนอื่นทั้งนั้น อันนี้คือตารางอ่อนแอนะคะ ก็คือไม่มีความหมายในตัวเอง จะต้องมีข้อมูลจากตารางอื่นมาช่วยนั่นเองนะคะ ต่อมา Attribute ก็คือพูดง่าย ๆ ก็คือคอลัมน์ในแต่ละตารางนั่นล่ะค่ะว่า ในตารางนั้นมีคอลัมน์อะไรบ้าง ก็คือหัวของคอลัมน์นะคะ นี่แบบนี้ เพราะฉะนั้น Attribute นะคะ สัญลักษณ์ของ Attribute จะเป็นวงรีนะคะ อย่างข้อมูลพนักงานควรจะมีอะไรบ้าง ก็จะมีรหัสพนักงาน ชื่อ นามสกุล มีเพศ มีเงินเดือนนะคะ สัญลักษณ์จะเป็นแบบนี้ นี่นะคะ ข้อมูลพนักงาน อันนี้ก็คือ Entity ใช่ไหมคะ ตาราง หัวตาราง อันนี้ก็จะเป็นคอลัมน์ คอลัมน์ คอลัมน์ ซึ่งใน Attribute นี่ มันก็ยังแบ่งไปอีกเป็น 6 ประเภทเหมือนกันนะคะ แต่ก็ใช้วงรีเหมือนกันนี่ล่ะ แต่อาจจะมีสิ่งที่เปลี่ยนไปนิดหนึ่งนะคะ โดย Attribute นี่ ประเภทที่ 1 คือ Attribute ที่ไม่สามารถแบ่งย่อยได้อีกแล้วนะคะ เช่น เพศ คุณก็ตอบได้แค่เพศเดียว คุณเป็นเพศอะไรคุณก็ตอบตัวนั้น เงินเดือนตอบได้ค่าเดียว คุณไม่จำเป็นต้องบอกว่าเงินเดือนเดือนที่ 1 เงินเดือนเดือนที่ 2 เงินเดือนเดือนที่ 3 ไม่ใช่ เราตอบค่าเดียว เงินเดือนปัจจุบันเราเท่าไรนะคะ เลขบัตรประชาชนตอบได้ค่าเดียว รหัสนักศึกษาตอบได้ค่าเดียว อันนี้คือ เป็น Attribute หรือเป็นข้อมูลโดยทั่วไปนะคะ ต่างจาก Attribute ประเภทที่ 2 คือ Attribute ที่สามารถแบ่งย่อยได้ เช่น ชื่อ นามสกุล เราแยกกันกรอกได้ไหม ได้ แบ่งเป็นชื่อ คอลัมน์ 1 นามสกุลคอลัมน์ 1 ก็ได้นะคะ ต่อมาเป็น Key Attribute นะคะ ก็เป็นค่าเอกลักษณ์ จะต้องไม่ซ้ำกัน ในตารางนั้น ๆ ต้องค่านี้จะต้องไม่ซ้ำกัน โดยลักษณะเฉพาะของคีย์นะคะ มันจะมีการขีดเส้นใต้ เพื่อแสดงว่ามันเป็นค่าที่ซ้ำกันไม่ได้ เหมือนเวลาเราเรียนวิชาใด ๆ ก็ตาม ถ้าอันไหนมีการขีดเส้นใต้ มันเป็นการเน้นใช่ไหมคะในวิชาอื่น ๆ ในการวาดรูปก็เหมือนกัน วาดรูปในฐานข้อมูลก็เหมือนกัน แสดงว่าค่านั้นน่ะ เป็นจุดเน้นที่เราจะต้องให้ความสำคัญกับมันนะคะ กับข้อมูลนะคะ ที่มีเพียงค่าเดียวเท่านั้น เช่น คุณจะระบุว่าคุณจะเป็นเพศไหน คุณระบุมา อาจจะไม่มีแค่ชายหรือหญิง ตอนนี้คุณเป็นเพศอะไร ก็ระบุมานะคะ หรือค่าที่มีได้หลายค่า อย่างเช่น เบอร์บ้าน ถ้าแต่ละที่ก็จะมีรหัสพื้นที่ไม่เหมือนกัน กรุงเทพฯ ก็เป็น 02 สกลฯ ก็เป็น 042 ขอนแก่นก็ 043 อุดรฯ ก็ 042 ใช่ไหมคะ มันก็ต้องระบุด้วยอย่างนี้นะคะ ถ้าค่าไหนมีได้หลายค่า อย่าลืมเป็นวงรี 2 เส้น กับค่าของข้อมูลที่ได้จากการคำนวณ เราจะใช้วงรีที่เป็นเส้นประ เช่น อายุที่ได้มาจากวันเกิดนะคะ หรือว่าวันเข้าทำงานจนถึงปัจจุบัน คุณทำงานมาแล้วกี่ปี อย่างนี้ก็ได้นะคะ ค่าที่ได้มาจากการคำนวณนั่นแหละ อันนี้เป็นตัวอย่าง Simple Attribute แยกให้ออกนะคะ อันไหนเป็น Attribute Attribute คือ วงรี ตัวนี้ ตัวนี้ ตัวนี้ ตัวนี้ ตัวนี้ แล้วในสี่เหลี่ยมคืออะไร สี่เหลี่ยมคือ Entity ก็คือชื่อตารางนั่นเองนะคะ ตัวอย่างของ Attribute ที่แยกย่อยไปได้ เช่น ชื่อ นามสกุล อาจารย์ก็แยกออกมาเป็น FirstName LastName ก็คือชื่อกับนามสกุลไม่ได้ ที่อยู่ บางคนอาจจะกรอกบรรทัดเดียวเลยก็ได้ หรือคุณอาจจะออกแบบให้มัน บ้านเลขที่อยู่บรรทัดหนึ่ง ถนนบรรทัดหนึ่ง ตำบลบรรทัดหนึ่ง อำเภอ จังหวัด แยกกันหมดเลย ก็ได้นะคะ ถามว่าใช้สัญลักษณะแตกต่างไปไหม ไม่นะคะ ไม่ เหมือนกัน แต่ถามว่าเราลบอันนี้ออกได้ไหม ก็ได้นะคะ เพราะว่ามันจะได้ไม่เปลืองเนื้อที่อย่างนี้ก็ได้ แล้วคุณก็กรอกไปเลย ชื่ออันหนึ่ง นามสกุลอันหนึ่ง อย่างนี้ก็ได้นะคะ คีย์ Attribute ค่าที่ห้ามซ้ำกัน ก็คือตารางนักเรียน อะไรที่ห้ามซ้ำกัน ก็คือรหัสนักเรียน อันนี้มันย่อมาจาก Student ID นะคะ Student Student ID ทำไมถึงรู้ว่าเป็น Student ID เพราะคำย่อแบบนี้ หรือชื่อทุกอย่างนี้ จะต้องจดไว้ในพจนานุกรมข้อมูลด้วย ถามว่าอันนี้มันง่ายค่ะ มันเข้าใจง่ายค่ะว่ามันมาจากอะไร แต่ถ้า คนที่ไม่มีความรู้พื้นฐานเลย เขาจะรู้ไหมว่า SID คืออะไร อันนี้เดี๋ยวอีกเรื่องหนึ่งนะคะ เป็นอีกเรื่องหนึ่ง ถ้าเอาทุกอย่างมารวมกันใน 1 ตาราง สามารถมี Attribute หรือมีรูปแบบข้อมูลได้ทุกรูปแบบก็ได้นะคะ มีทั้งคีย์หลัก มีทั้ง Attribute ที่สามารถแบ่งย่อยได้ มีทั้ง Attribute ที่ได้มาจากการคำนวณ คือ อายุ จะได้ค่ามาจากวัน เดือน ปีเกิด เบอร์โทรศัพท์ เป็น Multi-Valued ก็คือมีได้หลายค่า ก็ใส่วงรีซ้อนกัน อันนี้คือตัวอย่างนะคะ ตัวอย่างของ Attribute แต่เดี๋ยวเราอาจจะยังไม่เข้าใจ เดี๋ยววาดรูปก็น่าจะเข้าใจได้มากขึ้นนะคะ ต่อมา ความสัมพันธ์นะคะ มันเป็นความสัมพันธ์ของตารางตั้งแต่ 2 ตารางขึ้นไปนะคะ โดยความสัมพันธ์นี่ อาจจะมีข้อมูลที่ใช้ร่วมกัน สัญลักษณ์คือ สี่เหลี่ยมข้าวหลามตัดนะคะ เช่น ตารางพนักงาน อันนี้พนักงานนะคะ พนักงาน Work_in แปลว่า ทำงานอยู่ในแผนกอะไร ก็คือ Department โดยความสัมพันธ์ตัวนี้นี่ จะต้องสามารถอ่านไปข้างหน้า อ่านกลับย้อนหลังก็ได้ อย่างเช่นยกตัวอย่างก็คือพนักงานทำงานอยู่ในแผนกอะไร หรือในแผนกนั้น ๆ มีใครทำงานอยู่บ้าง มันจะต้องเข้าใจได้แบบนี้นะคะ หรือการสั่งสินค้า อยู่ในใบสั่งสินค้าตัวไหนนะคะ สินค้าชนิดนั้น ๆ อยู่ในใบสั่งซื้ออะไร ก็ต้องดูได้ สินค้า อย่างเช่น Power Bank อาจจะอยู่ได้ในหลายใบสั่งซื้อสินค้าก็ได้ เพราะสินค้าเรามีหลายตัวนะคะ ไม่ใช่ว่าขายให้แค่คนเดียว ขายให้ได้หลายคนนะคะ ความสัมพันธ์แบบ 1 ต่อ 1 จะต้องเป็นความสัมพันธ์ที่มีสมาชิกคนเดียว มีความสัมพันธ์ไปอีกสมาชิกหนึ่งของอีกตารางหนึ่งเท่านั้นนะคะ เช่น เจ้าของรถ เป็นเจ้าของรถยนต์ได้ 1 คันนะคะ อันนี้สมมติ ๆ นะคะ คน 1 คน เป็นเจ้าของรถยนต์ได้ 1 คัน ใช่ไหม ใครเคยเห็นในทะเบียนรถยนต์ ใบทะเบียนรถยนต์จะต้องมีเจ้าของคนเดียวนะ ตัวอย่าง แต่ถ้าเปลี่ยนเป็นความสัมพันธ์แบบ 1 กับมากกว่า 1 ล่ะ นะคะ เช่น คน 1 คน มีรถยนต์ได้หลายคัน ใช่ไหม อยู่บ้านบางคนอาจจะมีรถยนต์มากกว่า 1 คน อาจจะมีรถเก๋ง มีรถกระบะ มีรถ 6 ล้อ พ่อเป็นเจ้าของรถหมดเลย ก็ได้ แต่ในบรรดารถทุกคันจะต้องมีเจ้าของคนเดียว อันนี้คือสิ่งที่เราต้องคิดด้วยนะคะ คน ๆ หนึ่ง มีรถได้หลายคนก็จริง แต่รถคนนั้น ๆ จะต้องมีเจ้าของได้คนเดียว กับความสัมพันธ์ที่มากกว่า 1 เช่น ลูกค้าหลายคน ลูกค้า 1 คน สมมติเวลาเราไปซื้อของ เราจะต้องซื้อกับแคชเชียร์คนนี้ใช่ไหม เวลาจ่ายเงิน แต่แคชเชียร์คนนี้ก็สามารถรับลูกค้าได้หลายคนเหมือนกัน ลูกค้าหลายคนก็ไปจ่ายกับแคชเชียร์คนไหนก็ได้นะคะ ไม่จำเป็นต้องจ่ายเฉพาะคนนี้เท่านั้น เหมือนเวลาเราไปเดินห้างซื้อของใน Super วันวันหนึ่งเขามีลูกค้าหลายคนไหม มีหลายคนนะคะ คนคิดเงินก็มีหลายคนไหม มีหลายคนเหมือนกัน เพราะฉะนั้น วันนี้เราอาจจะเจอพนักงานคนหนึ่ง พรุ่งนี้อาจจะเจอคนใหม่ก็ได้ เขาก็อาจจะไม่ได้เจอเราคนเดียว เขาก็เจอลูกค้าหลายคน อันนี้เป็นความสัมพันธ์ที่มากกว่า 1 ทั้ง 2 ฝั่ง ภาษาอังกฤษจะเรียกว่า Many-to-Many นะคะ อันนี้เป็นตัวอย่างความสัมพันธ์แบบ 1 ต่อ 1 จะเห็นได้ว่า เส้นที่เชื่อมความสัมพันธ์จะเป็นเส้นตรง มีตัวเลขกำกับเห็นไหมคะ จะมีตัวเลขกำกับด้วย เพราะฉะนั้น เวลาเราลากเส้นเชื่อมความสัมพันธ์ใด ๆ ก็ตาม จะต้องมีตัวเลข หรือตัวอักษรกำกับทุกครั้งนะคะ อันนี้เป็นความสำคัญแบบ 1 ต่อ 1 ตัวแทนขายสินค้า ดูแลลูกค้าได้ 1 คน จริงไหม อาจจะไม่จริงเสมอไป ตัวแทน 1 คนอาจจะดูแลลูกค้าได้หลายคนก็ได้ ถ้าเป็นลูกค้าหลายคน เราจะแทนด้วยตัว M หรือตัว N ก็ได้นะคะ M หรือ N ก็ได้ แต่ต้องใส่ ถามว่าถูกต้องหรือยัง ตัวแทน 1 คน ดูแลลูกค้าได้หลายคน ถูก ลูกค้าหลาย ๆ คน ก็ได้รับการดูแลจากตัวแทน 1 คน ถูกไหม ก็ถูกนะคะ แบบนี้เป็นต้นมีการใส่คีย์หลัก มีการขีดเส้น อันนี้เป็นความสัมพันธ์ ก็คือเขาดูแลกัน ต้องใส่ ต้องระบุนะคะ แต่ถ้าเป็นความสัมพันธ์ที่มากกว่า 1 ทั้ง 2 ด้าน เราจะต้องใส่เป็น M กับ N เท่านั้น เราจะใส่เป็น M M อย่างนี้ ไม่ได้ ไม่ได้นะคะ ไม่ได้ เป็น N กับ N แบบนี้ได้ไหม ก็ไม่ได้ ต้องเป็น M กับ N เพื่อให้สื่อความหมายได้ถูกว่ามันเป็นความสัมพันธ์ที่เชื่อมกัน ระหว่างเส้น 2 เส้นนี้นะคะ อันนี้เป็นตัวอย่าง เดี๋ยวพอวาดง่าย ๆ ก่อน น่าจะเข้าใจง่ายขึ้น กับอันนี้ออกสอบง่ายมาก อาจารย์อาจจะมีรูปภาพให้ แล้วให้พวกคุณเปลี่ยนเป็นตาราง ง่ายมากเลยนะคะ ก็คือข้อมูลที่อยู่ในกรอบสี่เหลี่ยม มันคือชื่อตารางใช่ไหมคะ คุณก็เอากรอบสี่เหลี่ยมออก แล้วก็เขียนชื่อตาราง อยู่ในวงรี คือ Attribute ก็เป็นคอลัมน์ของตาราง เสร็จแล้ว หรือถ้าอาจารย์ให้วาดรูป ทำอย่างไร จากตารางข้างล่าง ชื่อตรางใช่ไหมคะ ชื่อตารางก็เอามาใส่กรอบสี่เหลี่ยม คอลัมน์แต่ละคอลัมน์ก็เอามาใส่ในวงรี โยงเส้น เสร็จ แค่นั้นเอง อันนี้ออกสอบด้วยนะ นะคะ อาจจะไม่ง่ายอย่างนี้ แต่หลักการมีประมาณนี้ล่ะนะคะ กับถ้าสมมติว่า มันมีข้อมูลที่มันสามารถแบ่งแยกออกได้นะคะ จะเห็นได้ว่า ตอนก่อนหน้านี้ ที่อาจารย์ตัดตรงนี้ออก ใช่ไหม เวลาเราเอามาเขียนในรูปแบบของตาราง อันนี้เราจะไม่ใส่ เราจะดูเฉพาะ Attribute ที่อยู่ขอบนอกสุดเท่านั้น นะคะ เราจะเอาเฉพาะข้างนอกสุดมาเขียนลงเป็นตาราง อันนี้เป็น ดูดี ๆ นะ ข้อกำหนดแต่ละอันนะคะ กับถ้าตารางไหนมีข้อมูลที่สามารถมีได้หลายค่า เห็นไหมวงรีซ้อนกัน 2 วง เราจะเอาข้อมูลนั้นแยกมาเป็นอีก 1 ตาราง แต่คีย์หลักจะเอามาจากตารางเดิมนะคะ เพื่อให้ 2 ตารางนี้ มันเชื่อมโยงกัน โดยค่าคีย์หลักเชื่อมกัน อันนี้เป็นข้อสังเกตก่อนนะ อันนี้ก็ยังเป็นกฎที่ยังต้องใช้อยู่นะคะ กับอันไหนที่เป็นค่า ที่เป็น Weak Entity หรือว่าความสัมพันธ์แบบอ่อนแอ หรือตารางอ่อนแอ เราต้องดูด้วยว่ามันมีความสัมพันธ์กับตารางไหนนะคะ เราจะเอาคีย์หลักของตารางที่มันมีความสำคัญด้วย มาใส่ด้วยเหมือนกัน อย่างเช่น เดี๋ยวลบอันนี้ออกก่อน ทำไมถึงบอกว่าตารางด้านขวามือเป็นตารางอ่อนแอ เพราะ ในตารางนี้มีเวลาทำงาน มีเวลากลับบ้าน มีวันที่ แต่ถามว่าเป็นของใคร ใครน่ะมาทำงาน 7 โมง กลับ 4 โมงเย็น ใครมาทำงาน 8 โมง กลับ 2 ทุ่ม ไม่รู้ เพราะฉะนั้น ต้องไปดูด้วยว่าพนักงานรหัสคนไหน ที่เขามาสแกนนิ้วทำงาน หรือตอกบัตรทำงาน นะคะ แต่ถามว่าในตารางนี้ทำไมเราไม่ให้กรอกรหัสพนักงานด้วยเลยล่ะ มันก็เป็นการซ้ำซ้อนกันไงคะ ในเมื่อเรามีรหัสพนักงานอยู่แล้ว เราก็เรียกใช้ได้เลย เราไม่จำเป็นต้องมาเพิ่มตรงนี้ก็ได้ อันนี้คือการออกแบบที่ดี ถ้าอันไหนซ้ำซ้อนกันเราจะไม่ใช้ เราจะดึงข้อมูลมันมาใช้เลย อันนี้คือข้อดีของการออกแบบฐานข้อมูลนะคะ อันนี้คือตัวอย่างอย่างหนึ่ง กับการเปลี่ยนให้เป็นตาราง ถ้าเมื่อกี้นี้ ในรูปนี้ อาจารย์ไม่ได้ใส่ความสัมพันธ์ใช่ไหมคะ ยังไม่มีเส้นเชื่อมโยงไปตารางอื่นใช่ไหม แต่ถ้ามันมีเส้นเชื่อมโยงไปตารางอื่นล่ะ นะคะ อันนี้เป็นความสัมพันธ์แบบ 1 ต่อ 1 เราจะต้องเอาคีย์หลัก ไอ้ที่ขีดเส้นใต้นี่ ของตารางด้านข้าง ที่เรามีความสัมพันธ์ด้วย มาใส่ในตารางเรา แต่ความสัมพันธ์แบบ 1 ต่อ 1 จะมีข้อได้เปรียบอย่างหนึ่ง คือ ในตารางแรก อาจจะเอารหัสลูกค้ามาเป็นคีย์เพื่อเชื่อมต่อกันก็ได้ หรืออาจจะเอารหัสตัวแทนนะคะ มาเป็นตัวเชื่อมต่อกันก็ได้ อันนี้เป็นความพิเศษเฉพาะ ตารางแบบ 1 ต่อ 1 แต่จะต้องเอาคีย์หลักของตารางที่เรามีความสัมพันธ์ด้วย อาจจะเป็น เลือกมาตารางไหนก็ได้ แต่ต้องมีนะคะ ต้องมี มันสามารถยืดหยุ่นได้นั่นเอง เฉพาะความสัมพันธ์แบบ 1 ต่อ 1 นะคะ แต่ถ้าเป็นความสัมพันธ์แบบ 1 ต่อกลุ่ม จะต้องเอาคีย์หลักของฝั่งที่มีความสัมพันธ์เป็น 1 มาใส่ในตารางที่มีความสัมพันธ์แบบกลุ่มเท่านั้น อันนี้เป็นลักษณะเฉพาะนะคะ ลักษณะเฉพาะของความสัมพันธ์แบบ 1 ต่อกลุ่ม แต่ถ้าเป็นความสัมพันธ์แบบกลุ่มต่อกลุ่มล่ะ เห็นไหมคะ เป็น M กับ N เราจะไม่เอาตาราง... เอ้ย ไม่เอาค่าคีย์หลักมาใส่ในตาราง แต่เราจะสร้างตารางใหม่ขึ้นมา โดยใช้คีย์หลักของทั้ง 2 ตารางที่มีความสัมพันธ์กัน มาสร้างเป็นตารางใหม่เลย จำลักษณะ 3 อย่างนี้ให้ดีนะคะ 1 ต่อ 1, 1 ต่อ กลุ่ม กับกลุ่มต่อกลุ่ม การเอามาสร้างเป็นตาราง ลักษณะเฉพาะมี 3 แบบ แบบแรก คือ เอาคีย์หลักฝั่งไหนก็ได้ แบบที่ 2 คือเอาเฉพาะคีย์หลักของฝั่งที่เป็นความสัมพันธ์ที่เป็น 1 เท่านั้น แบบที่ 3 คือ เอาคีย์หลักของทั้ง 2 ความสัมพันธ์มาสร้างตารางใหม่เลยนะคะ อันนี้ก็คือลักษณะเฉพาะของการเปลี่ยนรูปภาพให้เป็นตารางนะคะ เดี๋ยวจะมีให้ทำด้วย บางคนจะจำไม่ได้ การออกแบบนะคะ ก็อันนี้พูดไปแล้ว เราจะมาลองวาดรูปกัน ให้ น่าจะเคยไปร้านหนังสือกัน หรืออาจจะเคยเห็นหนังสืออยู่แล้วนะ นะคะ ในหนังสือ 1 เล่ม จะมีอะไรบ้าง แน่นอน ข้อมูลหนังสือแต่ละเล่มก็จะมีรหัสหนังสือนะ มีชื่อหนังสือ มีรหัสผู้แต่ง รหัสสำนักพิมพ์ อันนี้คือข้อมูลที่อาจารย์ให้ก่อนนะ เดี๋ยวเรามาวาดรูปกัน ในข้อมูลของคนแต่งหนังสือมีอะไรบ้าง ก็จะมีรหัสของผู้แต่งคนนั้นนะคะ มีชื่อผู้แต่งหนังสือ ในข้อมูลสำนักพิมพ์ ก็จะมีรหัสสำนักพิมพ์ มีชื่อสำนักพิมพ์ มีที่อยู่ มีเบอร์โทรศัพท์นะคะ ขั้นตอนแรก ศึกษาก่อน ในระบบร้านหนังสือ ก็คือข้อมูลที่อาจารย์ให้เมื่อกี้ มันจะมีข้อมูลหนังสือนะคะ มีข้อมูลคนแต่ง มีข้อมูลสำนักพิมพ์ มีกระดาษใช่ไหม พลอย โอเค ขั้นตอนต่อมา กำหนด Entity เดี๋ยวจะให้ทำเอง ก็คือในข้อมูลที่อาจารย์ให้อันนี้ มันจะต้องมีกี่ Entity หรือกี่ตาราง ทำสิ ใช้สัญลักษณ์ให้ถูกด้วยนะคะ เดี๋ยวอาจารย์จะเดินดู ทำเลย นี่ จากข้อมูลนี้ ข้อมูลตัวหนังสือสีดำ ๆ นี่ ดำ ๆ เข้ม ๆ นี่ เราควรมีกี่ตาราง วาดรูป นี่ วาดรูปแบบนี้ จะให้วาดแบบนี้ ง่าย ๆ วาดแบบนี้ ให้วาดรูป ให้เอาข้อมูลน่ะ มาวาดเป็นรูปแบบนี้ แต่อย่างแรกเลย ดูก่อนว่าข้อมูลที่อาจารย์ให้นี่ มันควรจะมีกี่ตาราง ดูสิว่ามันต้องมีกี่ตาราง สัญลักษณ์ของตาราง หรือ Entity ก็คือ สี่เหลี่ยมผืนผ้า ลองวาดสิ น่า... มันควรจะมีสี่เหลี่ยมผืนผ้ากี่อัน แล้วในสี่เหลี่ยมผืนผ้า จะต้องเขียนว่าอะไร ลองทำดู อันนี้ยังไม่ยาก สรุปแล้วมีกี่ตาราง อันนี้ง่ายมาก ดูจากที่อาจารย์เน้นตัวหนังสือสีดำเข้มไว้ เราจะได้ 3 ตาราง ในกรอบสี่เหลี่ยม มีตารางผู้แต่ง มีตารางหนังสือ มีตารางสำนักพิมพ์ ก็คือ 3 Entity นั่นเองนะคะ จากโจทย์ที่อาจารย์กำหนดให้นะ ที่อาจารย์เน้นให้ อันนี้จะให้ทำเอง หลังจากเราได้ตารางหรือ Entity แล้วนะคะ มันจะต้องกำหนดความสัมพันธ์ นี่ ๆ ความสัมพันธ์ ก็คือเส้นที่โยงแต่ละ ของ 3 อันนี้ เราจะโยงเส้นมันอย่างไร โดยความสัมพันธ์ของแต่ละอัน มันควรจะเป็นอย่างไร สิ่งที่มันควรจะเป็นก็คือหนังสือแต่ละเล่ม จะถูกพิมพ์จากสำนักพิมพ์ใดสำนักพิมพ์หนึ่งเท่านั้น ใช่ไหม แต่ว่าใน 1 สำนักพิมพ์ เขาก็สามารถพิมพ์หนังสือได้หลายเล่มนะ อันนี้คือเงื่อนไข ๆ หนังสือแต่ละเล่ม กำหนดว่าจะต้องมีคนแต่งคนเดียวเท่านั้น แต่ในโลกของความเป็นจริงนี่ หนังสือนี่ มันอาจจะมีคนแต่งช่วยกันก็ได้นะ แต่ว่าในโจทย์ของที่อาจารย์ให้ อาจารย์ให้หนังสือ 1 เล่ม คนแต่งได้คนเดียวเท่านั้น อันนี้คือโจทย์ที่อาจารย์กำหนดนะคะ แต่ว่า ผู้แต่งหนังสือแต่ละคน เขาก็สามารถแต่งหนังสือได้หลายเล่มเหมือนกัน อันนี้คือข้อกำหนดที่อาจารย์กำหนดให้นะคะ แล้ว เราจะให้ความสัมพันธ์แต่ละอันอย่างไร ก็คือการวาด นี่ ๆ วาดแบบนี้ นี่ มันจะเป็นการวาดแบบนี้นะคะ ความสัมพันธ์จะเป็นแบบนี้ อันนี้คือความสัมพันธ์ที่นักศึกษาต้องวาด จากโจทย์ตัวนี้นะคะ จากโจทย์ตัวนี้ ไอ้ 3 อันนี้ มันจะต้องสัมพันธ์กันอย่างไร ลองวาดดูสิ ลองวาดดู รูปมันจะต้องออกมาเป็นแบบนี้นะคะ แต่ข้อมูลข้างในนี่ เราจะใส่ว่าอย่างไร ลองใส่ดู เดี๋ยวให้เวลา 5 นาที ลองดูสิว่า จะเข้าใจโจทย์อาจารย์ไหม จะวาดได้หรือเปล่า 5 นาทีเดี๋ยวดูกัน เดี๋ยวเอาตัวอย่างให้ดูอีกอันหนึ่ง แล้วที่เหลือลองทำดูสิ นะคะ เดี๋ยวลบอันนี้ก่อน ให้ตัวอย่าง 1 อันก่อน ให้วาดแบบนี้ค่ะ เช่น ผู้แต่ง 1 คน ในโจทย์ที่อาจารย์บอก แต่งหนังสือ 1 เล่มใช่ไหมคะ แต่หนังสือหลาย ๆ นี่ ก็มีผู้แต่งได้แค่คนเดียว แต่เขาแต่งได้หลายเล่มใช่ไหม เพราะฉะนั้น ความสัมพันธ์ก็คือ ผู้แต่ง 1 คน สามารถแต่งหนังสือได้หลายเล่ม แต่ถ้าเราอ่านย้อนกลับ หนังสือหลาย ๆ เล่มนี่ มีผู้แต่งแค่ 1 คน อันนี้ยกตัวอย่างให้ 1 อันแล้ว ที่เหลือลองวาดดูสิ ให้มันได้เหมือนของอาจารย์นี่ ที่เหลือมันควรจะเป็นอย่างไร ลองดูสิ เริ่มให้แล้ว 1 อัน ที่เหลือลองทำดูก่อน ที่เหลือ หนังสือหลาย ๆ เล่ม จะต้องถูกพิมพ์จาก 1 สำนักพิมพ์เท่านั้น ใช่ไหม อันนี้ตามโจทย์ที่อาจารย์กำหนดนะคะ ถ้าเราเอามารวมกันในความสัมพันธ์นะคะ มันอาจจะเขียนได้เป็นแบบนี้นะคะ ผู้แต่ง 1 คน แต่งหนังสือได้หลายเล่ม และหนังสือหลาย ๆ เล่ม จะต้องถูกจัดพิมพ์จาก 1 สำนักพิมพ์เท่านั้น อันนี้คือรูปความสัมพันธ์ที่เกิดขึ้นนะคะ อันนี้ยังง่ายอยู่ พอเห็นภาพขึ้นบ้างไหมนะคะ อันนี้ยังง่าย อันนี้พอเราอ่าน ถ้าเป็นคนที่ไม่มีความรู้ทางด้านคอมพิวเตอร์มาอ่าน เขาก็ยังจะเข้าใจนะคะ อันนี้คือการวาดรูป มันเลยทำให้เราเข้าใจง่ายขึ้น แล้วก็จัดระเบียบความคิดของเราได้ว่า สิ่งที่มันควรจะเป็นในฐานข้อมูลมันควรจะเป็นอย่างไรนะคะ ต่อมา ง่ายแล้ว อันนี้ยิ่งง่าย พอเราได้ความสัมพันธ์ เราได้ Entity แล้ว เราต้องมาเขียนว่าในแต่ละตาราง มันควรจะมีข้อมูลอะไร แล้วอะไรจะเป็นคีย์หลัก ก็คือค่าที่ห้ามซ้ำกัน ที่เราต้องขีดเส้นน่ะค่ะ เอามาจากตรงไหน มาจากตรงนี้ เรารู้แล่วว่าอันไหนคือชื่อตาราง ก็คือชื่อ Entity แล้วข้อมูลมีอะไรบ้าง มันก็แค่ เอาข้อมูลที่อาจารย์กำหนดให้นี่ค่ะ ไปใส่ในรูปวงรี ใช่ไหม คือ Attribute แต่มันจะยาก ก็คือในแต่ละข้อมูล อะไรจะเป็นคีย์หลัก ก็คือค่าที่ห้ามซ้ำกัน ลองวาดดู อาจารย์เอาให้หมดแล้ว 3 อันนี้ จะต้องมีข้อมูลอะไรบ้างกำหนดอยู่ อันที่ยากก็คือเราจะเส้นใต้ในข้อมูลตัวไหนนะคะ อันนี้ บอกไปแล้ว ทำเอง ลองดูสิ ลองดูสิ มันจะได้รูปเหมือนกับของอาจารย์ไหม ลองทำดู แค่เอาข้อมูลที่อาจารย์กำหนดให้ในสไลด์ก่อนหน้านี้ค่ะ มาใส่ แค่นั้นเอง เดี๋ยวให้ลองทำเองดูว่าเหมือนกันไหม 5 นาทีเหมือนเดิม เดี๋ยววันนี้ไม่เสร็จ ให้ 1 ตัวอย่างก่อน มันต้องแบบนี้ อีก 2 อันที่เหลือทำเอง เอาตัวอย่างให้ดูก่อน ได้ตารางหนังสือแล้ว เหลือตารางสำนักพิมพ์กับตารางผู้แต่ง ลองทำอีกสิ อีก 2 อันที่เหลือ ให้รูปมันออกมาเป็นแบบนี้ ต้องทำอย่างไร ยกตัวอย่างให้ก่อน เดี๋ยวไม่เข้าใจ เห็นไหมว่าอาจารย์กำหนดคีย์ด้วย ก็คือเราขีดเส้นใต้รหัสหนังสือน่ะ ห้ามซ้ำกัน อีก 2 อันที่เหลือ อันไหนต้องห้ามซ้ำกัน แล้วทำไมในตารางหนังสืออาจารย์ถึงมีรหัสสำนักพิมพ์ด้วย ทำไมต้องมี ต้องมีเพราะว่าเราจะได้รู้ว่าหนังสือเล่มนี้ สำนักพิมพ์ไหนเอามาขาย ใช่ไหม อันนี้ไอ้รหัสสำนักพิมพ์นี่ คือคีย์นอก ซึ่งเอาไว้เชื่อมโยงไปดูว่าสำนักพิมพ์ชื่ออะไร อยู่ที่ไหน เบอร์โทรศัพท์อะไร ไม่จำเป็นต้องเอาข้อมูลมาทั้งหมด เอามาแค่รหัสก็พอ ในการเชื่อมโยงกัน 2 ตารางนะ ลองวาดดูสิ อีก 2 อันที่เหลือ ในผู้แต่งต้องมีอะไร ในสำนักพิมพ์ต้องมีอะไร ลองวาดดูสิ เห็นไหม ผู้แต่งได้หรือยัง เหมือนกันหรือเปล่า อันนี้ง่ายมากเลย ก็เอาข้อมูลที่อาจารย์ให้มาวาดแค่นั้นเอง ใช่ไหม สำนักพิมพ์ ก็เป็นแบบนี้ เพราะอาจารย์ให้ข้อมูลไปหมดแล้ว พอเราวาดเสร็จ ได้องค์ประกอบทุกอย่าง รูปที่สมบูรณ์ มันเลยเป็นแบบนี้ ใช่ไหม จากข้อมูลที่อาจารย์ให้ทั้งหมด พอมาวาดรูป เหมือนกันเลย แค่เอาข้อมูลที่ได้น่ะค่ะ จากตัวหนังสือเป็นยาว ๆ เฟื้อย ๆ นี่ เราก็เอามาวาดเป็นรูป แล้วมันจะได้เช็กได้ว่าเราขาดข้อมูลตรงไหนหรือเปล่านะคะ ข้อมูลมันยังสามารถเติมตรงไหนได้อีก มันเป็นไปอย่างที่เราเข้าใจไหม ในตัวของสมมติว่า เขามาจ้างให้เราออกแบบ ข้อมูลเข้าใจตรงกันหรือเปล่านะคะ หรือเขาอยากให้เอาข้อมูลอะไรเข้ามาอีก แต่ถ้าเป็นการออกแบบฐานข้อมูลจริง ๆ ที่ใช้กันในชีวิตประจำวัน ถามว่าแค่นี้พอไหม ไม่พอนะคะ อันนี้เป็นแค่ตัวอย่างที่อยากให้คุณทำ ฐานข้อมูลจริง ๆ มันจะเป็นอย่างไร มันจะเป็นแบบนี้เลย เห็นไหมคะ ว่าร้านหนังสือร้านหนึ่ง มันไม่ได้มีแค่เท่าเมื่อกี้ มันต้องเป็นแบบนี้ เมื่อกี้มันน้อยมาก แต่ถ้าเราทำงานจริง ๆ ข้อมูลมันจะเยอะขนาดนี้เลยนะคะ ข้อมูลจะเยอะขนาดนี้เลย เพราะฉะนั้นวันนี้มีสิ่งที่ให้นักศึกษาไปทำ อาจารย์กำหนดข้อมูลให้แล้วด้วย ให้วาดรูปเหมือนเมื่อกี้นี้ค่ะ เหมือนที่อาจารย์ยกตัวอย่าง แต่คราวนี้จะเป็นการขายคอมพิวเตอร์นะคะ โดยข้อกำหนด คือ ลูกค้ามีได้หลายคน แล้วก็สามารถซื้อสินค้าได้หลายชิ้นนะคะ แล้วก็ 1 ใบเสร็จรับเงิน ก็มีสินค้าได้หลายชิ้นเหมือนกัน มีชิ้นเดียวได้ไหม ได้ แต่มีมากกว่า 1 ชิ้นก็ได้เหมือนกันนะคะ ในแต่ละใบเสร็จ จะต้องมีแคชเชียร์หรือพนังานขายแค่คนเดียวเท่านั้น อันนี้คือเรื่องทั่วไปเลยนะคะ เหมือนเวลาเราไปซื้อของในห้าง คนคิดเงินให้เราก็มีคนเดียวใช่ไหม แล้วก็ต้องมีการแยกประเภทสินค้าด้วยนะคะ เช่น เหมือนเวลาเราไปห้างมันก็จะแยกกัน เครื่องครัวอยู่ที่หนึ่ง ที่นอนอยู่ที่หนึ่ง ใช่ไหม ของกินอยู่ที่หนึ่ง อันนี้คือการแยก คอมพิวเตอร์ก็เหมือนกันนะคะ โดยที่อาจารย์กำหนดให้แล้วนะคะ ว่ามันควรจะมีตารางอะไรบ้าง มี 5 ตาราง นะคะ 5 ตาราง ก็จะเป็นตารางลูกค้า ตารางพนักงานขาย ตารางรายละเอียดของสินค้า ตารางประเภทสินค้า ตารางใบเสร็จ อันนี้อาจารย์กำหนดให้แล้วนะคะ ว่าควรจะมีข้อมูลอะไรบ้าง ให้เราไปวาดรูปมา ทำเอง ใช้หลักการเดียวกันกับเหมือนที่อาจารย์ยกตัวอย่างไปเมื่อกี้นี้นะคะ ลองวาดดูสิว่ารูปที่ได้จะเป็นอย่างไรนะ อันนี้เป็นการบ้าน สำหรับวันนี้ไม่มีอะไร แค่นี้ก็ปวดหัวมากแล้ว ถ้าใครจะนั่งวาดรูปต่อก็ได้ แต่ต้องส่งนะคะ ต้องส่ง วันนี้ก็ประมาณนี้ มาครบทุกคน เดี๋ยวให้ไปปวดหัววาดรูปต่อนะ ปกติวาดรูปไม่เคยปวดหัวเท่านี้มาก่อนเลย วันนี้ไปลองดู ที่แน่ ๆ มีกี่ตารางนี่ 5 ตาราง ไปวาดมาสิ ว่าในแต่ละตารางมันควรมีข้อมูลอะไรบ้าง จากที่เมื่อกี้อาจารย์กำหนดให้ ลองกำหนดเองสิว่ามันต้องมีอะไร นะคะ แล้วทำส่งอาจารย์ ใส่กระดาษวาดรูปนี่แหละ วาดมานะคะ ความสัมพันธ์ให้ครบด้วย อันไหนเป็นค่าที่ห้ามซ้ำกันอย่าลืมขีดเส้นให้อาจารย์ด้วยนะคะ วันนี้ก็ประมาณนี้ค่ะ ขอบคุณมากนะคะ ขอบคุณล่ามด้วย ขอบคุณถอดความด้วยนะคะ โอเคค่ะ เจอกันสัปดาห์หน้าค่ะ