(อาจารย์เกวลี) โอเค สวัสดีค่ะ โอเคค่ะ วันนี้จะเป็นบทที่ 4 นะคะ จะเป็นเกี่ยวกับแบบจำลองข้อมูล หรือเวลาเราเรียกสั้น ๆ ก็คือการวาดรูป ER นะคะ ตัว E แล้วก็ตัว R เป็นภาษาอังกฤษ โดยแผนภาพนะคะ ER นะคะ หรือว่า ER Model นี่ มันจะเป็น... ล่ามเขาได้ยินเราไหมพลอย ทำไม ล่ามดูนิ่ง ๆ ล่ามได้ยินไหมคะ ล่ามได้ยินไหมคะ ถ้าได้ยิน โอเคด้วยค่ะ โอเค โอเคก็การวาด ER นะคะ หรือเป็นแบบจำลองข้อมูลนะคะ มันจะเป็นแบบจำลองที่ใช้อธิบายโครงสร้างของฐานข้อมูล โดยที่เราจะแสดงออกมาเป็นรูปภาพนะคะ โดยที่โครงสร้างสำคัญที่จะต้องใช้ในการวาดรูปของเรานะคะ ก็คือ Entity หรือว่าตาราง กับความสัมพันธ์ ก็คือแต่ละเส้นที่เชื่อมโยงในแต่ละตาราง เราจะต้องโยงกันให้ถูกนะคะ อย่างเช่นตารางของอาจารย์กับนักศึกษา เราต้องมีความสัมพันธ์กัน ในฐานะการเรียนการสอนแบบนี้นะคะ การวาดรูปจะเป็นเหมือนรูปที่อาจารย์ยกตัวอย่างให้ดูบนจอนะคะ การที่เราจะวาดรูปได้เราต้องรู้ด้วยว่าสัญลักษณ์แต่ละอันหมายความว่าอย่างไร ทำไมเราต้องใช้วงรี ทำไมเราต้องใช้สี่เหลี่ยมผืนผ้า ทำไมเราต้องลากเส้นตรงนะคะ แต่ละอันมีความหมายหมดเลย แล้ววันนี้ก็จะพอบรรยายเสร็จ จะให้วาดเองด้วยนะคะ จุดเด่นของแผนภาพ ER นะคะ มันจะทำให้เราออกแบบฐานข้อมูลได้เร็วขึ้น เพราะว่ามันเหมือนเป็นการจัดระเบียบความคิดของผู้ที่ต้องการออกแบบ คล้าย ๆ กับเราสมัยมัธยมน่าจะเคยวาด Mind Map นะคะ การวาด ER ก็เหมือนกันนะคะ มันจะได้รู้ว่าเราต้องการจะออกแบบอะไร อะไรควรมีความสัมพันธ์กัน หรืออะไรที่ขาดหายไปนะคะ เราจะได้เห็น รวมถึงลดความซ้ำซ้อนของข้อมูลออกไปด้วย เช่น ในตารางนี้ ข้อมูลนี้อยู่แล้ว ก็ไม่จำเป็นต้องใส่เพิ่มในตารางอื่นก็ได้นะคะ หรือว่าพอเราวาดเสร็จออกมา ทำไมมีตารางที่คล้าย ๆ กัน 2 อัน มันลบออกได้ไหมนะคะ การวาดรูปก็จะทำให้เราเห็นภาพได้ง่ายขึ้น โดยคุณลักษณะของการวาดแผนภาพ ER นะคะ ก็คือแน่นอน มันแสดงผลออกมาเป็นภาพนะคะ โมเดลข้อมูลหรือรูปแบบข้อมูลแบบไหนก็ตามนี่ มันจะมีภาษา หรือรูปภาพที่เป็นกราฟิกโดยเฉพาะนะคะ อาจจะมีทั้งภาพขนาดใหญ่ ภาพขนาดย่อย มันจะทำให้เราอ่านข้อมูล หรืออ่านฐานข้อมูลนั้นได้ง่าย เพราะเราใช้วงเราใช้สี่เหลี่ยม เราใช้วงรีนะคะ เราใช้เส้นตรง เราใช้เส้นโค้ง เส้นประ ทุกอย่างมีความหมายหมดนะคะ มันก็แสดงให้เห็นถึงความชัดเจนของข้อมูลด้วย โดยทีเราอาจจะใช้สัญลักษณ์ที่ต่างกันเล็กน้อยนะคะ ซึ่งตัวรูปแบบของการวาดนี่ มันก็จะมีหลาย หลายรูปแบบ หนังสือแต่ละเล่ม บางเล่มก็ไม่เหมือนกัน บางคนใช้รูปแบบของคนนี้ หรือหนังสืออีกเล่มหนึ่งอาจจะใช้รูปแบบที่ต่างออกไปวาดรูป แต่เดี๋ยวตอนถึงเวลาวาดรูปเราต้องตกลงกันก่อนว่า เราจะเลือกรูปแบบไหนนะคะ ข้อสำคัญ คือ แผนภาพที่ได้มานี่ มันควรที่จะอ่านง่าย ๆ ไม่ซับซ้อน เส้นไม่ลากตัดกันไปตัดกันมา ฉันเพิ่งคิดได้ฉันเลยอยากวาดตรงนี้ ไม่ได้นะคะ เราต้องคิดก่อน ว่าเราจะวาดเส้นตรงจากกระดาษฝั่งหนึ่งไปอีกฝั่งหนึ่งนี่ เราต้องมาจัดระเบียบความคิดตัวเองด้วยว่า ในตารางนี่ มันมีตารางอะไรบ้าง แล้วแต่ละตารางนี่มันควรจะเชื่อมกันอย่างไรนะคะ โดยในแผนภาพที่เราวาดนะคะ รายละเอียดต้องอยู่ในระดับที่เหมาะสม อาจจะไม่ได้ละเอียดยิบขนาดนั้น ไม่ได้ละเอียดแบบเป๊ะ ๆ ๆ แต่ว่าเราต้องมองภาพให้ออก หรืออาจจะมีการเปลี่ยนแปลงแก้ไข มันจะต้องยืดหยุ่นนะคะ รวมถึงรายละเอียดต้องเพียงพอ ไม่ใช่ว่าน้อยไป บางอันก็เยอะไปนะคะ เอาที่พอดี โดยแต่ละอันนี่ อย่างที่บอกเราจะต้องมีการเชื่อมโยงความสัมพันธ์ของแต่ละตารางด้วยนะคะ แล้วก็การวาดรูปของเรา เราจะไม่ตายตัวเลยว่าเราวาดเพื่อไปใช้กับโปรแกรมอะไรนะคะ รูปที่เราวาดจะต้องเอาไปใช้ได้กับทุกโปรแกรม หรือทุกรูปแบบของการเขียนฐานข้อมูลนะคะ แล้วก็เวลาใครมาอ่าน จะต้องเข้าใจง่าย ถึงแม้ว่าเขาจะไม่ได้เรียนทางด้านคอมพิวเตอร์มาก่อน แต่พอดูรูปภาพ อย่างน้อยเขาก็จะเข้าใจว่าเราจะสื่ออะไร ในฐานข้อมูลเรามีอะไรบ้างนะคะ เขาอาจะไม่รู้หรอกว่าวงรีมันหมายความว่าอะไร หรือสี่เหลี่ยมหมายความว่าอย่างไร ทำไมต้องเป็นเส้นปะ ทำไมต้องมีเส้นโค้งด้วย เขาไม่ต้องเข้าใจตรงนั้น แต่เขาดูแล้วเขาก็พอเข้าใจว่าเราต้องการจะสื่อนำเสนออะไร สื่ออะไร ในฐานข้อมูล ฃอันนี้ก็คือไม่ว่าจะเป็นใครต้องอ่านรูปที่เราวาดเข้าใจระดับหนึ่งก็ยังดีนะคะ ขั้นตอนในการออกแบบแผนภาพ 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 จะไม่อนุญาตให้จองแบบนี้ก็ได้นะคะ อันนี้ก็ต้องตั้งแต่เราออกแบบเลย ว่าข้อตกลงของเราควรจะเป็นอย่างไรนะคะ อันนี้ก็อธิบายไปแล้วนะ กับอีกอัน 1 สำคัญความเป็นหนึ่งเดียว ก็คืออย่างเช่น รหัสนักศึกษาต้องกำหนดเลยว่าห้ามเป็นค่าที่ซ้ำ ซ้ำกันไม่ได้ เราอาจจะกรอกเลขผิดไปตัวหนึ่ง ระบบต้องแจ้งว่าคุณเลขนี้ใช้ไม่ได้มันซ้ำไปแล้วกับการเป็นค่า Null ค่า Null ในที่นี้คือ คุณไม่กรอกข้อมูลได้ไหม บางระบบจะบอกว่าไม่ได้ ถ้าใครเคยกรอกจะเห็นว่าบางช่องของการกรอกข้อมูลเขาจะมีดอกจันสีแดงกำหนดไว้อยู่ เป็นข้อมูลที่เขาต้องการ คุณจะเว้นว่างไม่ได้นะคะ หรือถ้าต้องการจะเว้นว่าง หรือไม่ตอบ เขาจะเรียกอีกอย่างหนึ่งว่า "ค่า Default" หรือ "ค่าปริยาย" ถ้าไม่ตอบว่าเงินเดือนเป็นเท่าไร ค่าเริ่มต้นคือ 0 แต่เป็นค่าว่างไม่ได้ไม่ตอบไม่ได้ เพราะฉะนั้น เราใส่ไปเลย 0 บาท แบบนี้ก็ได้ แต่ส่วนมากทุกคนก็ต้องกรอกอยู่แล้วนะคะ ขั้นตอนสุดท้าย ก็มาวิเคราะห์ดูว่าแผนภาพที่เราออกแบบนี่ มันสามารถปรับปรุงแก้ไข หรือว่าขยายตัวในอนาคตได้หรือเปล่า เพราะว่าการออกแบบที่ดีนี่ต้องคำนึงถึงการเปลี่ยนแปลงด้วย ไม่ใช่ว่าตายตัวไปตลอด เกิดสมมติว่าวันนี้คุณอาจเปิดร้าน ลูกค้าอาจจะไม่ถึง 100 คน แต่ใครจะรู้ในอนาคตคุณอาจจะเป็นธุรกิจที่มันเติบโตมีสาขาไปอีกเป็นร้อยสาขา มีลูกค้าอีกเป็นหมื่นคน แต่ฐานข้อมูลคุณ fix ไว้ว่า อย่างรหัสลูกค้าแค่ 1-100 มันเป็นไปไม่ได้ค่ะ นะคะ ต้องวิเคราะห์ด้วยว่ารหัสลูกค้านี่ มันจะต้องเป็นการเพิ่มขึ้นอย่างอัตโนมัติไปได้เรื่อย ๆ หรือเปล่า หรือคุรจะเป็นคนกรอกเองนะคะ อันนี้ก็ต้องคิดด้วย ไม่ใช่ว่าระบบฉันใช้แค่ 10 คนนี่ล่ะ บางที่ในอนาคตมันอาจจะไม่ใช่อย่างนั้นนะคะ โดยการสร้างแบบจำลองข้อมูล หรือการวาดแผนภาพนี่ มันจะต้องวิเคราะห์ของข้อมูลที่ต้องเก็บในระบบนะคะ อาจจะเกี่ยวกับข้อมูลที่เราจำเป็นต้องเรียกใช้ โครงสร้างที่มี รวมถึงมีการเพิ่ม ลบ แก้ไขข้อมูลจะต้องทำที่ตารางไหน ถ้าสมมติว่าข้อมูลในตารางนั้นถูกลบไป มันจะไปกระทบกับข้อมูลในตารางอื่นหรือเปล่านะคะ เช่น วันดีคืนดีอาจารย์ลบชื่อสาขาที่คุณเรียนออก มันจะกระทบกับพวกคุณไหม เป็นนักศึกษาไม่มีสังกัด ทำได้ไหม ไม่ได้นะคะ ก็ต้องดูด้วย เขาเรียกว่ากฎการคงสภาพของข้อมูล อยู่ดี ๆ อยากลบไม่ได้ เหมือนอยากเปลี่ยนเลขบัตรประชาชนบัตรประชาชนให้เดชมงคลได้ไหม ไม่ได้เลขมันไม่สวย อยากได้เลข 9 ลงท้ายอะไรอย่างนี้ เปลี่ยนไม่ได้นะคะ แต่ชื่อเปลี่ยนได้ไหม เปลี่ยนได้ แต่บางอย่างมันเปลี่ยนไม่ได้นะคะ เช่น เลขบัตรประชาชนอย่างนี้ เราต้องวิเคราะห์ด้วย ไม่ใช่ว่าออกแบบไปแล้วใครอยากเปลี่ยนเลขบัตรประชาชนตอนไหนก็ได้แบบนี้เป็นต้นโดยการเขียนแผนภาพ ER นี่ มันก็จะอธิบายภาพรวมทั้งหมดนะคะ อย่างที่บอกตอนต้น ก็คือมันต้องเข้าใจง่ายนะคะ อาจจะไม่ต้องรู้ว่าข้อมูลที่เรากำลังจะเก็บนี่ เก็บที่ไหน เก็บอย่างไร ไม่จำเป็น แค่วาดออกมาให้ดูก่อนว่าในฐานข้อมูลเราต้องมีอะไรบ้างนะคะ ในแต่ละตารางมีความสัมพันธ์กันอย่างไร ข้อมูลมันจะซ้ำซ้อนกันไหมนะคะแล้วก็เขียนออกมาให้ออกมาดูง่ายที่สุด อย่างที่อาจารย์บอกตคอนแรก แผนภาพการวาดรูปนี่มันมีหลาย...เขาเรียกว่าอะไรล่ะ หลายมาตรฐานก็แล้วกันแต่ละเล่มก็เลือกมาใช้ไม่เหมือนกันนะคะ มีทั้งแบบ Chian Model แบบ Craw foot ความสัมพันธ์นี่จะคล้าย ๆ กับรอยเท้าของนก รอยเท้าอีกา เขาก็เรียกเป็นรูปแบบรูปแบบหนึ่งนะคะ แต่ที่เราจะใช้กันบ่อย ๆ นะคะ จะเป็นแบบของเชนโมเดล ตัวช่องสีเหลืองเราจะเลือกตัวใช้แบบนี้ เพราะว่ามันเขียนง่าย มันอ่านง่ายที่สุดนะคะ แต่ถ้าคุณไปเจอหนังสือเล่มอื่น เขาใช้แบบอื่น ผิดไหม ไม่ผิด อยู่ที่เขาจะเลือกใช้แบบไหนแค่นั้นเองนะคะ สัญลักษณ์ที่ต้องใช้ในการวาดรูปนะคะ สัญลักษณ์สี่เหลี่ยมผืนผ้ามันจะหมายถึงชื่อตารางนะคะ แบบสี่เหลี่ยมข้าวหลามตัดมันจะบอกถึงความสัมพันธ์ของตารางแต่ละตารางนะคะ แล้วคอลัมน์ในแต่ละตารางล่ะนะคะ เราก็จะใส่เป็นรูปวงรี ถ้าคอลัมน์นั้น ๆ เป็นคีย์หลักที่ห้ามซ้ำกัน ในรูปวงรีจะต้องขีดเส้นใต้ด้วย ส่วนด้านข้าง อันนี้จะไม่ค่อยพบเห็นบ่อย แต่จะเจอในข้อสอบแน่ ๆ นะคะ อันแรกเป็นสี่เหลี่ยมผืนผ้าซ้อนกัน 2 อัน มันหมายถึงตารางนั้นน่ะ เป็นตารางอ่อนแอ หรือ Weak Entity จะต้องพึ่งพิงค่าตารางอื่นเพื่อให้ตารางของมันมีความหมายนะคะ กับต่อมา สี่เหลี่ยมข้าวหลามตัดซ้อนกัน 2 อัน ก็เช่นกันค่ะ เขาจะเรียกว่า "ความสัมพันธ์แบบอ่อนแอ" มันจะต้องไปดึงค่าหรือความสัมพันธ์อื่น ๆ มาทำให้ตัวมันมีความหมายขึ้นมานะคะ วงรีซ้อนกัน 2 วง ก็คือในตารางนี้น่ะ ไอ้ในคอลัมน์นี้ หรือในข้อมูลนั้น ๆ นี่ มันอาจจะมีข้อมูลได้มากกว่า 1 ข้อมูล เช่น คุณอาจจะมีเบอร์โทรศัพท์ 3 เบอร์ หรือว่ามีชื่อเล่นพ่อเรียกชื่อหนึ่ง แม่เรียกชื่อหนึ่งก็บอกได้ มีสัตว์เลี้ยงมากกว่า 2 ตัว แต่ละตัวมีชื่อว่าอะไรบ้าง อย่างนี้ก็ได้นะคะ กับวงรีที่เป็นเส้นประ มันหมายถึงว่า ค่าข้อมูลในนี้นี่ จะได้มาจากการคำนวณของข้อมูลอื่น ๆ ที่พบบ่อยที่สุด ก็คืออายุไอ้เส้นวงรีประ ๆ พวกนี้ เหมือนก็คือจะบอกว่าอายุของเราได้มาจากการกรอกวัน เดือน ปีเกิด นั่นเองนะคะ ให้มันคำนวณให้ ยุเท่าไร ให้ระบบคำนวณให้เลย อายุ 18 ปี 11 เดือน 10 วัน อะไรก็ว่าไปนะคะ อัตโนมัติ นะคะ อันนี้จะอธิบายโดยละเอียด Entity หรือว่าชื่อของตารางอันนี้คือสัญลักษณ์ที่เราใช้บ่อยแต่ละรายการที่ระบบจัดการฐานข้อมูล หรือเรากำลังจะสร้างระบบขึ้นมานะคะ เช่นนะคะ ชื่อตารางหรือชื่อ Entity อยู่ข้างในนะคะ เราจะต้องวาดแบบนี้ทุกครั้ง สัญลักษณ์นะคะ Entity จะเป็นสี่เหลี่ยมผืนผ้า เช่น ตารางบุคคล บุคคลคืออะไรบ้างนะคะบุคลากร ตารางนักศึกษา ตารางลูกค้า อาจจะเป็นข้อมูลเกี่ยวกับ นะคะ ตารางที่เกี่ยวกับวัตถุ อาจจะเป็นรถยนต์ อาคาร เครื่องจักร สินค้าก็ได้สถานที่นะคะ หรืออาจจะเป็นเหตุการณ์ต่าง ๆ ที่เกิดขึ้น สัญลักษณ์อย่างที่บอก เป็นสี่เหลี่ยมผืนผ้า มีชื่อตาราง หรือ Entity อยู่ข้างในนะคะ ประเภทของ Entity ก็มีอยู่ 2 ประเภท การรักษาโรค นะคะ เป็น regular ก็คือเป็นตารางที่ข้อมูลในนั้นสามารถแยกข้อมูลแต่ละแถวนะคะ อ่อนแอ มันจำเป็นจะต้องใช้ข้อมูลอื่นมาช่วยทำให้ข้อมูลในแถวนั้น ๆ มีคุณค่าหรือมีความหมายขึ้นมาออกได้นะคะ Entity ทั่วไป หรือตารางทั่วไปนะคะ จะสังเกตได้ว่านะคะ ก็คือตาราง อย่างข้างบนนี่ที่เราจะเอามาวาดแผนภาพ มันไม่ใช่กรอบสี่เหลี่ยมนี้นะคะ เราจะเอามาแต่ชื่อ เช่น ตาราง Student ก็คือ Entity Student ตารางหนึ่งแค่นี้ค่ะ เอาสี่เหลี่ยมข้างล่างมาวาด แล้วก็บอกด้วยว่าชื่อตารางอะไรนะคะ อันนี้เป็นตัวอย่างของ Entityการลงเวลาทำงาน เวลาออกจากงานตารางอ่อนแอตารางนี้นะคะ Time stamp ก็คือลงเวลา ตรางนี้จะไม่มีความหมายเลย ถ้าขาดข้อมูลที่เข้าทำงาน แล้วก็เวลากลับบ้าน ถ้าขาดอันใดอันหนึ่งไป ตารางนี้จะไม่มีความหมายเลยเพราะฉะนั้น 2 ตัวนี้จะต้องเชื่อมโยงกัน อยู่แล้ว อย่างนี้ไม่ได้นะคะ ก็คือมาทำงาน ก็ต้องมีเวลากลับบ้าน ก็คือมีแต่เวลามาทำงาน แล้วกลับบ้านตอนไหนไม่อย่างนั้นจะรู้ได้อย่างไรว่าคุณมาทำงานกี่โมงนะคะ อันนี้เป็นตัวอย่างของตารางที่ถ้าขาดข้อมูลใดข้อมูลหนึ่งไปจะทำให้ข้อมูลในตารางนั้น หรือมีแต่เวลากลับบ้าน ไม่มีเวลาทำงาน อย่างเช่น อันนี้เป็นตัวอย่าง ถ้าเป็นตารางทั่วไป ๆ นี่ ไม่สมบูรณ์ มีนักศึกษา 2 คน มี 2 วิชา อันนี้เป็นตารางทั่วไป แต่ตารางการลงทะเบียน สมมติว่ามีแต่รหัสตารางนักเรียน กับตารางรายวิชานะคะว่าเขาลงทะเบียนวิชาอะไร ได้ไหม ไม่ได้ ไม่อย่างนั้นจะรู้ได้อย่างไรว่าเทอมนี้นักศึกษา มีปีการศึกษา รู้รายวิชา รู้ปีการศึกษา แต่ไม่รู้เลยว่าใครลงทะเบียนเรียน ได้ไหม ก็ไม่ได้อีกนะคะ เพราะฉะนั้น ในตารางการลงทะเบียนหรือนะคะถ้าขาดข้อมูลใดข้อมูลหนึ่งไปตารางนั้นก็ไปดึงข้อมูลมาจากคนอื่นทั้งนั้น อันนี้คือตารางอ่อนแอนะคะ ก็คือไม่มีความหมายในตัวเอง จะต้องมีข้อมูลจากตารางอื่นมาช่วยนั่นเองจะเป็นตารางที่ไม่สมบูรณ์ ก็คือพูดง่าย ๆ ก็คือคอลัมน์ในแต่ละตารางนั่นล่ะค่ะ ว่าในตารางนั้นมีคอลัมน์อะไรบ้าง ก็คือหัวของคอลัมน์นะคะ นะคะ นะคะ นี่แบบนี้ เพราะฉะนั้นAttrib นะคะ สัญลักของ Attrib เป้นงนะคะพนักงาน ชื่อ นามสกุล มีเพศ มีเงินเดือนนะคะ สัญลักษณ์จะเป็นแบบนี้อย่างข้อมูลพนักงานต้องมีอะไรบ้าง ก็ต้องมีฐานข้อมูล Entity ใช่ไหมคะ ของตาราง อันนี้ก็จะเป็นคอลัมน์ คอลัมน์นะคะ ข้อมูลพนักงานไปอีกเป็น 6 ประเภทนะคะ ก็ใช้เป็นวงรีเหมือนกันนี่ล่ะ แต่อาจจะมีสิ่งที่เปลี่ยนไปนิดหนึ่ง คอลัมน์ ซึ่งใน Attribute นี่ มัน Attribute ที่ไม่สามารถแบ่งย่อยได้อีกแล้วนะคะ โดย Atribute นี่ คุณเป็นเพศอะไรคุณก็ตอบเพศนั้นตอบได้ค่าเดียว คุณไม่จำเป็นต้องบอกว่าเงินเดือนเดือนที่ 1 เงินเดือนเดือนที่ 2 เงินเดือนเดือนที่ 3 ไม่ใช่ เช่น เพศ เลขบัตรประชาชนตอบได้ค่าเดียว รหัสนักศึกษาเงินเดือนปัจจุบันเราเท่าไรนะคะตอบได้ค่าเดียว หรือเป็นข้อมูลโดยทั่วไปนะคะ ประเภทที่ 2 เช่น ชื่อนามสกุล เราแยกกันกรอกได้ไหมนะคะ ต่อมาเป็น Key Attribute นะคะ ก็เป็นค่าเอกลักษณ์ไพด้ แบ่งเป้นชื่อ คอลัมน์ 1 นามสกุลคอลัมน์ 1 ก็ได้นี้จะต้องไม่ซ้ำกัน โดยลักษณะเฉพาะของคีย์นะคะ มันจะมีการขีดเส้นใต้เพื่อแสดงว่ามันเป็น จะต้องไม่ซ้ำกัน เหมือนเวลาเราเรียนวิชาใด ๆ ก็ตาม ถ้าอันไหนมีการขีดเส้นใต้ มันเป็นการเน้นใช่ไหมคะ ในวิชาอื่น ๆ ในการวาดรูปก็เหมือนกัน วาดรูปในฐานข้อมูลก็เหมือนกันค่าที่ซ้ำกันไม่ได้กับมันนะคะ กับข้อมูลนะคะ ค่านั้นน่ะ คุณจะเป็นเพศไหน คุณระบุมา อาจจะไม่มีแค่ชขายหรือหญิง ตอนนี้คุรเป็นเพศอะไร ก็ระบุมานะคะ หรือค่าที่มีได้หลายค่าที่มีเพียงค่าเดียวเท่านั้นแต่ละที่ ก็จะมีรหัสพื้นที่ไม่เหมือนกันอย่างเช่น เบอร์บ้าน ถ้าขอนแก่นก็ 043 อุดรฯ ก็ 042 ใช่ไหมคะ มันก็ต้องระบุด้วยอย่างนี้นะคะ ถ้าค่าไหนมีได้หลายค่ากรุงเทพก็เป็น 02 สกลยครก็เป้ฯ 04ของข้อมูลที่ได้จากการคำนวณ เราจะใช้วงรีที่เป็นเส้นประ เช่น อายุที่ได้มาจากวันเกิดนะคะ หรือว่าวันเข้าทำงานอย่าลืมเป็นวงรี 2 เส้น กับค่า อย่างนี้ก็ได้นะคะ ค่าที่ได้มาจากการคำนวณนั่นล่ะ อันนี้เป็นตัวอย่าง Simple Attribute แยกให้ออกนะคะ จนถึงปัจจุบันคือวงรี ตัวนี้ ตัวนี้ ตัวนี้ แล้วในสี่เหลี่ยมคืออะไร สี่เหลี่ยมคือ Entityอันไหนเป็น Attribute ที่แยกย่อยไปได้ เช่น ชื่อ นามสกุล อาจารย์ก็แยกออกมาเป็น FirstName LastName ก็คือชื่อกับนามสกุลก็ได้ ก็คือชื่อตารางนั่นเองบรรทัดเดียวเลยก็ได้ หรือคุณอาจจะออกแบบให้มันบ้านเลขที่บรรทัดหนึ่ง ถนนบรรทัดหนึ่งที่อยู่ ตำบลบรรทัดหนึ่ง ไม่ เหมือนกัน แต่ถามว่าเราลบอันนี้ออกได้ไหม ก็ได้นะคะ เพราะว่ามันจะได้นะคะ ถามว่าใช้สัญลักษณะแตกต่างกันไหมอย่างนี้ก็ได้นะคะ คีย์ Attribute ค่าที่ห้ามซ้ำกัน ก็คือตารางนักเรียนอะไรที่ห้ามซ้ำกัน ก็คือไม่เปลืองเนื้อที่อย่างนี้ก็ได้ แล้วคุณก็กรอกไปเลยชื่ออันหนึ่ง รหัสนักเรียนstudent id นะคะ studentid ท เพราะคำย่อแบบนี้ หรือชื่อทุกอย่างนี้ จะต้องจดไว้ในพจนานุกรมข้อมูลด้วยID ทำไมถึงรู้ว่าเป็น Student IDมันมาจากอะไร แต่ถ้าเป็นคนที่ไม่มีความรู้พื้นฐานเลย เขาจะรู้ไหม คือ SID คืออะไร อันนี้เดี๋ยวอีกเรื่องหนึ่ง เป็นอีกเรื่องหนึ่ง ถ้าเอาทุกอย่างมารวมกัน ถามว่าอันนี้มันง่ายค่ะ หรือมีรูปแบบข้อมูลได้ทุกรูปแบบก็ได้นะคะ มีทั้งคีย์หลัก มีทั้ง Attribute ที่สามารถแบ่งย่อยได้ มีทั้ง Attribute ที่ใน 1 ตาราง สามารถมี Attributeวัน เดือน ปีเกิด เบอร์โทรศัพท์เป็น Multi Value มีได้หลายค่าได้มาจากการคำนวณ Attribute แต่เดี๋ยวเราอาจจะยังไม่เข้าใจ เดี๋ยววาดรูปก็น่าจะเข้าใจได้มากขึ้นอันนี้คือตัวอย่างนะคะ ตัวอย่างของมันเป็นความสัมพันธ์ของตาราง 2 ตารางขึ้นไปนะคะ โดยความสัมพันธ์นี่ อาจจะมีข้อมูลต่อมา ความสัมพันธ์นะคะนะคะ เช่น ตารางพนักงาน อันนี้พนักงานนะคะ พนักงาน Work in แปลว่าที่ใช้ร่วมกัน โดยความสัมพันธ์ตัวนี้นี่จะต้องสามารถอ่านไปข้างหน้า อ่านย้อนหลังก็ได้ ในแผนกอะไร หรือในแผนกนั้น ๆ มีใครทำงานอยู่บ้าง มันจะต้องเข้าใจได้แบบนี้นะคะ หรือการสั่งสินค้าอย่างเช่น ตัวอย่าง นะคะ สินค้าชนิดนั้น ๆ อยู่ในใบสั่งซื้ออะไร ก็ต้องดูได้ สินค้า อย่างเช่นอยู่ในใบสั่งสินค้าตัวไหนก็ได้ เพราะสินค้าเรามีหลายตัวนะคะ ไม่ใช่ว่าขายให้แค่คนเดียว ขายให้ได้หลายคนนะคะ ความสัมพันธ์แบบ 1 ต่อ 1 Pที่มีสมาชิกคนเดียว มีความสัมพันธ์ไปอีกสมาชิกหนึ่ง ของอีกตารางหนึ่งเท่านั้นนะคะ เช่น เจ้าของรถเป็นเจ้าของรถยนต์ได้ 1 คันจะต้องเป็นความสัมพันธ์คน 1 คน เป็นเจ้าของรถยนต์ได้หนึ่งคัน ใช่ไหมนะคะ นะ ตัวอย่าง แต่ถ้าเปลี่ยนเป็นความสัมพันธ์แบบ 1 และมากกว่า 1 ล่ะ นะคะ เช่นคนหนึ่งคน มีรถยนต์ ใครเคยเห็นในทะเบียนรถยนต์ บางคนอาจจะมีรถยนต์มากกว่า 1 คัน อาจจะมีรถเก๋ง มีรถกระบะ มีรถ 6 ล้อได้หลายคัน แต่ในบรรดารถทุกคนจะต้องมีเจ้าของคนเดียว นะคะ คนคนหนึ่งมีรถได้หลายคนก็จริง แต่รถคนนั้นมีเจ้าของได้คนเดียวอันนี้คือสิ่งที่เราต้องคิดด้วยมากกว่า 1 เช่น ลูกค้าหลายคน ลูกค้า 1 คน สมมติเราไปซื้อของ แต่แคชเชียร์คนนี้ก็สามารถต้องซื้อกับ แคชเชียร์คนนี้เวลาจ่ายเงินร์นะคะ ไม่จำเป็นต้องจ่ายเฉพาะคนนี้เท่านั้นเหมือนเวลาเราไปเดินห้าง ซื้อรับลูกค้าได้หลายคนเหมือนกัน หลายคนไหม มีหลายคน คนคิดเงินก็มีหลายคนไหมเหมือนกัน เพราะฉะนั้น วันนี้เราอาจจะเจอพนักงานคนหนึ่ง พรุ่งนี้ของใน Super วันวันหนึ่ง อันนี้เป็นความสัมพันธ์ที่มากกว่า 1ภาษาอังกฤษเรียกว่า Many-to-Manyอาจจะเจอคนใหม่ก็ได้ เขาก็ไม่ได้เจอเราคนเดียวความสัมพันธ์แบบ 1 ต่อ 1 จะเห็นได้ว่า เส้นที่เชื่อมความสัมพันธ์จะเป็นเส้นตรง มีเลขกกำกับ เห็นไหมคะ จะมีตัวเลขกำกับด้วย นะคะ จะต้องมีตัวเลข หรือตัวอักษรกำกับทุกครั้งนะคะ อันนี้เป็นความสำคัญแบบ 1 ต่อ 1 เพราะฉะนั้น อาจจะไม่จริงเสมอไป ตัวแทน 1 คน อาจจะดูแลลูกค้าได้หลายคนก็ได้ขายสินค้า ดูแลลูกค้าได้ 1 คน จริงไหมก็ได้นะคะ M หรือ N ก็ได้นะคะ M หรือ N ก็ได้ แต่ต้องใส่ ถามว่าถูกต้องหรือยัง ตัวแทน 1 คน ดูแลลูกค้าได้ ถ้าเป็นลูกค้าหลายคน หลาย ๆ คนก็ได้รับการดูแลจากตัวแทน 1 คน ก็ถูกนะคะ แบบนี้เป็นต้น มีการใส่คีย์หลัก มีการหลายคน ถูก ต้องใส่ ต้องระบุนะคะ แต่ถ้าเป็นความสัมพันธ์ที่มากกว่า 1 ทั้ง 2 ด้าน จะต้องใส่เป็น M กับ N เท่านั้นขีดเส้นไม่ได้ เป็น N กับ N แบบนี้ได้ไหม ก็ไม่ได้ ต้องเป็น M กับ N เพื่อให้สื่อความหมายได้ถูกว่ามันเป็นความสัมพันธ์เราจะใส่เป็น M M แบบนี้ไม่ได้นะคะเดี๋ยวพอวาดง่าย ๆ ก่อน น่าจะเข้าใจง่ายขึ้น กับที่เชื่อมอาจจะมีรูปภาพให้ แล้วให้พวกคุณเปลี่ยนเป็นตาราง ง่ายมากเลยอันนี้ออกสอบง่ายมากสี่เหลี่ยม มันคือชื่อตารางใช่ไหมคะ คุณก็เอากรอบสี่เหลี่ยมออก แล้วก็เขียนชื่อตารางนะคะ เสร็จแล้ว หรือถ้าอาจารย์ให้วาดรูปทำอย่างไร จากตารางข้างล่าง ชื่อตรางใช่ไหมคะ วงรี คือ Attribute ก็เป็นคอลัมน์ของตาราง แต่ละคอลัมน์ ก็เอามาใส่ในวงรี โยงเส้นเสร็จ แค่นั้นเองชื่อตารางก็เอามาใส่กรอบสี่เหลี่ยม คอลัมน์นะคะ อาจจะไม่ง่ายอย่างนี้ แต่หลักการมีประมาณนี่ล่ะ มันสามารถแบ่งแยกออกได้นะคะ จะเห็นว่าตอนก่อนหน้านี้ที่อาจารย์ตัดตรงนี้ออกนะคะ กับถ้าสมมติว่าของตาราง อันนี้เราจะไม่ใส่ เราจะดูเฉพาะ Attribute ที่อยู่ขอบนอกสุดเท่านั้นใช่ไหม ลงเป็นตาราง อันนี้เป็น ดูดี ๆ นะ ข้อกำหนดแต่ละอันนะคะ นะคะ ที่สามารถมีได้หลายค่า เห็นไหมวงรีซ้อนกัน 2 วง เราจะเอาข้อมูลนั้นกับถ้าตารางไหนมีข้อมูล แต่คีย์หลักจะเอามาจากตารางเดิมนะคะ แยกมาเป็นอีก เชื่อมกัน อันนี้เป็นข้อสังเกตก่อนนะ อันนี้ยังเป็นกฎที่ต้องใช้อยู่นะคะ เพื่อให้เ 2 ตารางนี้ มัน หรือความสัมพันธ์แบบอ่อนแอ เราต้องดูด้วยว่ามันมีความสัมพันธ์กับตารางไหนนะคะ เราจะเอาคีย์หลักกับอันไหนที่เป็นค่า ที่เป็น Weak Entityอย่างเช่น... เดี๋ยวลบอันนี้ออกก่อน ทำไมถึงบอกว่าตารางด้านขวามือเป็นตารางอ่อนแอ ของตารางที่มั มีเวลาทำงาน มีเวลากลับบ้าน มีวันที่ แต่ถามว่าเป็นของใครเพราะในตารางนี้ใครน่ะมาทำงาน 7 โมง กลับ น. ไม่รู้ เพราะฉะนั้นต้องไปดูด้วยว่าพนักงานรหัสคนไหนที่เขามา 16.00 น. นะคะ แต่ถามว่าในตารางนี้ทำไมเราไม่ให้กรอกรหัสพนักงานด้วยเลยล่ะ มันก็เป็นการซ้ำซ้อนกันไงคะ ในเมื่อเรามีรหัสพนักงานอยู่แล้ว เราก็เรียกใช้ได้เลย แสกนนิ้วทำงาน หรือตอกบัตรทำงาน ถ้าอันไหนซ้ำซ้อนกันเราจะไม่ใช้ เราจะดึงข้อมูลมันมาใช้เลยเราไม่จำเป็นต้องมาเพิ่มตรงนี้ก็ได้ นี่เป็นการออกแบบที่ดีนะคะ อันนี้คือตัวอย่างอย่างหนึ่งกับการเปลี่ยนให้เป็นตาราง ถ้าเมื่อกี้นี้ในรูปนี้อาจารย์ไม่ได้ใส่ความสัมพันธ์ใช่ไหมคะ อันนี้คือข้อดีของการออกแบบฐานข้อมูลแต่ถ้ามันมีเส้นเชื่อมโยงไปตารางอื่นล่ะนะคะ อันนี้เป็นความสัมพันธ์แบบ 1 ต่อ 1ยังไม่มีเส้นเชื่อมโยงไปตารางอื่นใช่ไหมคีย์หลักไอ้ที่ขีดเส้นใต้นี่ ของตารางด้านข้าง ที่เรามีความสัมพันธ์ด้วย มาใส่เราจะต้องเอาได้เปรียบอย่างหนึ่ง คือ ในตารางแรกอาจจะเอารหัสลูกค้ามาเป็นคีย์เพื่อเชื่อมต่อกันก็ได้ หรืออาจจะเอารหัสตัวแทนในตารางเรา อันนี้เป็นความพิเศษเฉพาะ ของตารางแบบ 1 ต่อ 1 แต่จะต้องเอาคีย์หลักของตารางที่เรามีความสัมพันธ์นะคะนะคะ ต้องมี มันสามารถยืดหยุ่นได้ด้วย แต่ถ้าเป็นความสัมพันธ์แบบ 1 ต่อ กลุ่มนั่นเองมาใส่ในตารางที่มีความสัมพันธ์แบบกลุ่มเท่านั้น อันนี้เป็นลักษณะเฉพาะจะต้องเอาคีย์หลักของฝั่งที่มีความสัมพันธ์แบบ 1 ต่อ 1แต่ถ้าเป็นความสัมพันธ์ แบบกลุ่มต่อกลุ่มล่ะเห็นไหมคะ เป็น M กับ Nนะคะ ลักษณะเฉพาะ แต่เราจะสร้างตารางใหม่ขึ้นมา โดยใช้คีย์หลักของทั้ง 2 ตารางที่มีความสัมพันธ์กัน มาสร้างเป็นตารางใเราจะไม่เอาตาราง... เอ้ย ไม่เอาค่าคีย์หลักมาใส่ในตาราง 3 อย่างนี้ให้ดีนะคะ 1 ต่อ 1 1 ต่อกลุ่ม กับกลุ่มต่อกลุ่ม การเอามาสร้างเป็นตารางหม่เลย ะฝั่งไหนก็ได้ แบบที่ 2 ก็คือเอาเฉพาะคีย์หลักของความสัมพันธ์ที่เป็น 1 เท่านั้นลักษณะเฉพาะมี 3 แบบ แบบแรก คือ ตารางใหม่เลยนะคะ อันนี้คือลักษณะเฉพาะของการเปลี่ยนรูปภาพให้เป็นตารางนะคะ เดี๋ยวจะมีให้ทำด้วย บางคนเอาคีย์หลักของทั้ง 2 ความสัมพันธ์มาสร้างการออกแบบนะคะ อันนี้พูดไปแล้ว เราจะมาลองวาดรูปกัน ให้... น่าจะเคยไปร้านหนังสือกันจะจำไม่ได้ นะคะ ในหนังสือ 1 เล่มจะมีอะไรบ้าง แน่นอน ข้อมูลหรืออาจจะเคยเห็นหนังสืออยู่แล้วนะรหัสหนังสือนะ มีชื่อหนังสือ มีรหัสผู้แต่งหนังสือแต่ละเล่ม รูปกัน ในข้อมูลในผู้แต่งหนังสือมีอะไรบ้าง ก็จะมีรหัสของผู้แต่งคนนั้นนะคะ มีชื่อผู้แต่งหนังสือ รหัสสำนักพิมพ์ อันนี้คือข้อมูลที่อาจารย์ให้ก่อนนะ มีชื่อสำนักพิมพ์ มีที่อยู่ มีเบอร์โทรศัพท์นะคะ ขั้นตอนแรก ศึกษาก่อนในข้อมูลสำนักพิมพ์ ก็จะมีรหัสสำนักพิมพ์ข้อมูลที่อาจารย์ให้เมื่อกี้ มันจะมีข้อมูลหนังสือ มีข้อมูลคนแต่ง มีข้อมูลในระบบร้านหนังสือ ก็คือพลอย โอเค ขั้นตอนต่อมา กำหนดสำนักพิมพ์ในข้อมูลที่อาจารย์ให้อันนี้ มันจะต้องมีกี่ Entity หรือกี่ตาราง ทำสิ ใช้สัญลักษณ์ให้ถูกด้วยนะคะ เดี๋ยวอาจารย์จะเดินดู ทำเลย Entity เดี๋ยวจะให้ทำเอง ข้อมูลตัวหนังสือสีดำ ๆ นี่ ดำ ๆ เข้ม ๆ นี่ เราควรมีกี่ตาราง วาดรูปนี่ วาดรูปนี่ จากข้อมูลนี้วาดแบบนี้ ให้วาดรูป ให้เอาข้อมูลน่ะมาวาดรูปแบบนี้ แต่อย่างแรกเลย ดูก่อนว่าแบบนี้ จะมีกี่ตาราง ดูสิว่ามันต้องมีกี่ตารางสัญลักษณ์ของตารางหรือ Entityข้อมูลที่อาจารย์ให้นี่มันควรมันควรจะมีสี่เหลี่ยมผืนผ้ากี่อัน แล้วในสี่เหลี่ยมผืนผ้าจะต้องเขียนว่าอะไร ลองทำดู ก็คือสี่เหลี่ยมผืนผ้า สรุปแล้วมีกี่ตารางอันนี้ยังไม่ยากตัวหนังสือสีดำเข้มไว้ เราจะได้ 3 อันนี้ง่ายมาก มีตารางผู้แต่ง มีตารางหนังสือ มีตารางสำนักพิมพ์ ก็คือ 3 Entity นั่นเองนะคะ จากโจทย์ที่อาจารย์กำหนดให้นะตาราง ในกรอบสี่เหลี่ยมจะให้ทำเอง หลังจากเราได้ตารางหรือ Entity แล้วนะคะ มันจะต้องกำหนดความสัมพัน ที่อาจารย์เน้นให้ เราจะโยงเส้นมันอย่างไร โดยความสัมพันธ์ของแต่ละอัน มันควรจะเป็นอย่างไร สิ่งที่มันควรจะเป็นธ์ นี่ ๆ ใดสำนักพิมพ์หนึ่งเท่านั้นใช่ไหม แต่ว่าใน 1 สำนักก็คือหนังสือแต่ละเล่ม จะถูกพิมพ์จากสำนักพิมพ์ อันนี้คือเงื่อนไข เงื่อนไข หนังสือแต่ละเล่มพิมพ์ คนเดียวเท่านั้น แต่ในโลกของความเป็นจริง หนังสือนี่ มันอาจจะมีกำหนดว่าคนแต่งช่วยกันก็ได้นะ อันนี้คือโจทย์ที่อาจารย์กำหนดนะคะ แต่ว่าผู้แต่งหนังสือแต่ละคนเขาก็สามารถแต่งหนังสือได้หลายเล่มเหมือนกันอาจารย์ให้แล้วเราจะให้ความสัมพันธ์แต่ละอันอย่างไร ก็คือการวาด นี่ ๆ วาดแบบนี้อันนี้คือข้อกำหนดที่อาจารยืกำหนดให้นะคะความสัมพันธ์จะเป็นแบบนี้ อันนี้คือความสัมพันธ์ที่นักศึกษาต้องวาดนี่ มันจะมีการวาดแบบนี้นะคะ ไอ้ 3 อันนี้ มันจะต้องสัมพันธ์กันอย่างไรลองวาดดูสิ จากโจทย์ตัวนี้นะคะ จากโจทย์ตัวนี้จะต้องออกมาเป็นอย่างนี้นะคะ แต่ข้อมูลข้างในน่ะเราจะใส่ว่าอย่างไร ลองใส่ดูลองวาดดู รูปมันลองดูสิว่าจะเข้าใจโจทย์อาจารย์ไหม จะวาดได้หรือเปล่า 5 นาทีเดี๋ยวดูกัน เดี๋ยวให้เวลา 5 นาทีเดี๋ยวเอาตัวอย่างให้ดูเลย ที่เหลือจะได้ลองทำดู ให้ตัวอย่าง 1สิ ผู้แต่ง 1 คน โจทย์ที่อาจารย์บอก อันก่อน นี่ก็มีผู้แต่งได้แค่คนเดียว แต่เขาแต่งได้หลายเล่มใช่ไหม เพราะฉะนั้น ความสัมพันธ์ ก็คือผู้แต่ง 1 คน สามารถแต่งหนังสือได้หลายเล่ม แต่ถ้าเราอ่านย้อนกล แต่งหนังสือ 1 เล่มใช่ไหมคะแค่ 1 คน อันนี้ยกตัวอย่างให้ 1 อันแล้ว ที่เหลือ ลองวาดดูสิับ ลองดูสิ เริ่มให้แล้ว 1 อัน ที่เหลือลองทำดูก่อน ให้มันได้เหมือนของอาจารย์นี่หนังสือหลาย ๆ เล่ม จะต้องถูกพิมพ์จาก 1 สำนักพิมพ์เท่านั้นใช่ไหม อันนี้ตามโจทย์ที่อาจารย์กำหนดที่เหลือมารวมกันในความสัมพันธ์นะคะ มันอาจจะเขียนได้เป็นแบบนี้นะคะ ผู้แต่ง 1 คน แต่งหนังสือได้หลายเล่มนะคะ ถูกจัดพิมพ์จาก 1 สำนักพิมพ์เท่านั้น อันนี้คือรูปความสัมพันธ์ที่เกิดขึ้นนะคะ อันนี้ยังง่ายอยู่พอเห็นภาพขึ้นบ้างไหมนะคะ และหนังสือหลาย ๆ เล่มจะต้องถ้าเป็นคนที่ไม่มีความรู้ทางด้านคอมพิวเตอร์มาอ่านเขาก็จะเข้าใจนะคะ อันนี้คือการวาดรูปอันนี้ยังง่าย อันนี้พอเราอ่านความคิดของเราด้วย ว่าสิ่งที่มันควรจะเป็นในฐานข้อมูลมันควรจะเป็นอย่างไรนะคะ ต่อมา ง่ายแล้วมันเลยจะทำให้เราเข้าใจมากขึ้น เราต้องมาเขียนว่าในอันนี้ยิ่งง่าย พอเราได้ความสัมพันธ์เราได้ Entity แล้วแล้วอะไรจะเป็นคีย์หลัก ก็คือค่าที่ห้ามซ้ำกัน ที่เราต้องขีดเส้นน่ะค่ะ เอามาจากตรงไหน มาจากแต่ละตาราง มันควรจะมีข้อมูลอะไร ง ก็คือชื่อ Entity แล้วข้อมูลมีอะไรบ้าง มันก็แค่เอาข้อมูลที่อาจารย์กำหนดให้นี่ค่ะ ไปใส่ในรูปวงรีตรงนี้ เรารู้แล้ในแต่ละข้อมูล อะไรจะเป็นคีย์หลัก ก็คือค่าที่ห้ามซ้ำกัน ลองวาดดูอาจารย์เอาให้หมดแล้วใช่ไหม คือ Attribute อันยาก ก็คือเราจะขีดข้อมูลเส้นใต้ตัวไหนนะคะ อันนี้ไปแล้ว ทำเองลองดูสิ มันจะได้รูปเหมือนกับของอาจารย์ไหม ลองทำดู 3 อันนี้จะต้องมีข้อมูลอะไรบ้างมาใส่ แค่นั้นเอง เดี๋ยวให้ลองทำเองดูว่าเหมือนกันไหมแค่เอาข้อมูลที่อาจารย์กำหนดให้ในสไลด์ก่อนหน้านี้ค่ะ5 นาทีเหมือนเดิมมันต้องแบบนี้ อีก 2 อันที่เหลือทำเอง เอาตัวอย่างให้ดูก่อนได้ตารางหนังสือแล้วเดี่ยววันนี้ไม่เสร็จ ให้ 1 ตัวอย่างก่อนอีกสิ อีก 2 อันที่เหลือให้รูปมันออกมาเป็นแบบนี้ ต้องทำอย่างไรยกตัวอย่างให้ก่อน เดี๋ยวไม่เข้าใจ เหลือตารางสำนักพิมพ์กับตารางผู้แต่ง ก็คือเราขีดเส้นใต้ รหัสหนังสือน่ะ ห้ามซ้ำกัน อีก 2 อันที่เหลือเห็นไหมว่าอาจารย์กำหนดคีย์ด้วยด้วย ทำไมต้องมี ต้องมีเพราะว่าเราจะได้รู้ว่าหนังสือเล่มนี้สำนักพิมพ์ไหนเอามาขาย อันไหนต้องห้ามซ้ำกัน คือ คีย์นอก ซึ่งเอาไว้เชื่อมโยงไปดูว่าสำนักพิมพ์ ใช่ไหม ชื่ออะไร อยู่ที่ไหน เบอร์โทรศัพท์เบอร์อะไรจำเป็นต้องเอาข้อมูลมาทั้งหมด2 ตารางนะ ลองวาดต้องมีอะไร ในสำนักพิมพ์ต้องมีอะไร ลองวาดดูสิดูสิ เหมือนกันหรือเปล่า อันนี้ง่ายมากเลย ก็เอาข้อมูลที่อาจารย์ให้มาวาดแค่นั้นเอง ใช่ไหมผู้แต่งได้หรือยังก็เป็นแบบนี้ เพราะอาจารย์ให้ข้อมูลไปหมดแล้ว พอเราวาดเสร็จ สำนักพิมพ์ รูปที่สมบูรณ์มันเลยเป็นแบบนี้ใช่ไหม จากข้อมูลที่อาจารย์ให้ทั้งหมด พอมาวาดรูปได้องค์ประกอบทุกอย่างที่ได้น่ะค่ะ จากตัวหนังสือเป็นยาว ๆ เฟื้อย ๆ นี่ เราก็เอามาวาดเป็นรูป แล้วมันจะได้เช็กได้ว่าเราขาดข้อมูลตรงไหนหรือเปล่าเหมือนกันเลย แค่เอาข้อมูลได้อีก มันเป็นไปอย่างที่เราเข้าใจไหม ในตัวของสมมติว่าเขามาจ้างให้เราออกแบบ ข้อมูลเข้าใจตรงกันหรือเปล่านะคะ นะคะ แต่ถ้าเป็นการออกแบบฐานข้อมูลจริง ๆ ที่หรือเขาอยากให้เอาข้อมูลอะไรเข้ามาอีกนะคะ อันนี้เป็นแค่ตัวอย่างที่อยากให้คุณทำฐานข้อมูลจริง ๆ มันจะเป็นอย่างไร มันจะเป็นแบบนี้เลย เห็นไหมคะ ว่าใช้กันในชีวิตประจำวัน ถามว่าแค่นี้พอไหมนี้ มันต้องเป็นแบบนี้ เมื่อกี้มันน้อยมาก แต่ถ้าเราทำงานจริง ๆ ข้อมูลมันจะเยอะขนาดนี้เลยนะคะ ข้อมูลจะเยอะขนาดนี้เลยร้านหนังสือร้านหนึ่งสิ่งที่ให้นักศึกษาไปทำ อาจารย์กำหนดข้อมูลให้แล้วด้วยเพราะฉะนั้น วันนี้มีาจารย์ยกตัวอย่าง แต่จะเป็นการขายคอมพิวเตอร์นะคะ โดยข้อกำหนด คือ ให้วาดรูปเหมือนเมื่อกี้นี้ค่ะ สามารถซื้อสินค้าได้หลายชิ้นนะคะ แล้วก็ 1 ใบเสร็จรับเงินก็มีสินค้าได้หลายชิ้นเหมือนกัน มีชิ้นเดียวได้ไหม ลูกค้ามีได้หลายคน นะคะ ในแต่ละใบเสร็จ จะต้องมีแคชเชียร์หรือพนักงานขายแค่คนเดียวเท่านั้นได้ ซื้อของในห้าง คนคิดเงินให้เราก็มีคนเดียวใช่ไหมแล้วก็ต้องมีการแยกประเภทสินค้าด้วย อันนี้คือเรื่องทั่วไปเลยนะคะมันก็จะแยกกัน เครื่องครัวอยู่ที่หนึ่ง ที่นอนอยู่ที่หนึ่ง ของกินนะคะ อันนี้คือการแยก คอมพิวเตอร์ก็เหมือนกันนะคะ โดยที่อาจารย์กำหนดให้แล้วนะคะ ว่ามันควรจะมีตารางอะไรบ้าง อยู่ที่หนึ่ง ใช่ไหม ก็จะเป็นตารางลูกค้า ตารางพนักงานขาย ตารางรายละเอียดของสินค้า ตารางประเภทสินค้า ตารางใบเสร็จ อันนี้มี 5 ตารางนะคะ 5 ตารางว่าควรจะมีข้อมูลอะไรบ้าง ให้เราไปวาดรูปมาอาจารย์กำหนดให้แล้วนะคะเมื่อกี้นี้นะคะ ลองวาดดูสิว่ารูปที่ได้จะเป็นอย่างไรนะ อันนี้เป็นการบ้าน ทำเอง ใช้หลักการเดียวแล้ว ถ้าใครจะนั่งวาดรูปต่อ ก็ได้ แต่ต้องส่ สำหรับวันนี้ไม่มีอะไรประมาณนี้ มาครบทุกคน เดี๋ยวให้ไปปวดหัววาดรูปต่อนะ ปกติวาดรูปไม่เคยปวดหัวเท่านี้มาก่อนเลย วันนี้ลองดูง ต้องส่งนะคะ ต้องส่ง ว่าในแต่ละตารางมันควรมีอะไรบ้าง จากที่เมื่อกี้อาจารย์กำหนดให้ ลองกำหนดเองสิ ว่ามันต้องมี ที่แน่ ๆ มีกี่ตารางนี่ 5 ตาราง อะไร แล้วทำส่งอาจารย์ ะ วาดมา ใส่ความสัมพันธ์ให้ครบด้วย ประมาณนี้ค่ะ ขอบคุณมากค่ะ ขอบคุณล่ามด้วย ขอบคุณถอดความด้วยนะคะ โอเคค่ะ เจอกันสัปดาห์หน้าค่ะ ขีดเส้นให้อาจารย์ด้วยนะคะ วันนี้ก็