--- title: (แมน-NORMAL) หลักการและระบบการจัดการฐานข้อมูล อ เกวลี วันที่ 17 มค 2566 subtitle: date: วันพุธที่ 10 พฤษภาคม 2566 เวลา 09.00 น. --- (ข้อความสดจากระบบถอดความเสียงพูดทางไกล) ก็ เป็นโปรแกรม แต่มันก็จะใช้ภาษา ภาษา SQL ซึ่งโปรแกรมในเครื่องเราถ้าไม่ได้ติดตั้งเพิ่มเติมก็จะมีอยู่แล้วนะคะก็คือโปรแกรม Microsoft Access นะคะ มันก็จะมีความสามารถที่จะพิมพ์ คำสั่งภาษา html ลงไปได้ด้วย แล้วก็ในส่วนของตัวโปรแกรมนี้นี่หน้าตาการทำ งานมันจะคล้ายๆกับโปรแกรม Excel ที่เราเคยใช้งานกันอยู่แล้วนะคะเก็บข้อมูลในรูปแบบของตารางเหมือนกันเราก็จะได้ทำความเข้าใจกับมันง่ายขึ้นนะคะ โดยตัว Microsoft Access มีนะคะ ในรูปตัวโปรแกรมมันจะเป็นตัวสีส้มนะ มันจะเป็นตัวจัดการฐานข้อมูลเชิงสัมพันธ์อย่างที่เราเคยได้วาดรูปกันไปแล้วว่า พ่อแต่ละตารางมันจะสัมพันธ์กันอย่างไรนะคะโดยที่โปรแกรมนี้นี่มันก็จะมีความสามารถทั้งการจัดการฐานข้อมูล แล้วก็สร้างโปรแกรมในตัวเดียวกันก็คือโปรแกรมที่ค่อนข้างครบสำหรับการทำงานในการ ฐานข้อมูลเพิ่ม ต้นมันเลยเหมาะกับที่จะให้นักศึกษานี่เรียนรู้แล้วก็พัฒนาโปรแกรมไว้ใช้งานนะคะรวมถึงคนที่ อาจจะไม่มีความรู้ในการเขียนโปรแกรมมากนักนี่ เราก็สามารถใช้โปรแกรมนี้ในการ ได้เหมือนกัน วิธีใช้การก็ค่อนข้างสะดวกแล้วก็ ตัวโปรแกรมก็สามารถใช้งานได้ง่ายๆ คำสั่งไม่เยอะซับซ้อนวุ่นวายมาก หน้าตาตอนสร้างฐานข้อมูลก็จะเริ่ม ประมาณนี้แต่เดี๋ยว ไปดูในตัวโปรแกรมการมันจะมีส่วนของการโปรแกรม งานหนักๆด้านบนจะเรียกว่าเป็นริบบอนด้านบนนะคะ ในรูปนี่เกี่ยวกับการกำหนดโครงสร้างของตาราง นะคะแล้วก็การกำหนด หน้าจอสำหรับบันทึกข้อมูลหรือแสดงข้อมูลสามารถทำได้การสร้างรายงานนะคะเช่น สมมุติมีรายชื่ออยู่ 10 รายชื่อ เราจะให้ไล่ออก รายงานเป็น รายชื่อเฉพาะผู้หญิงเราก็สามารถรายงาน ด้วยเหมือนกันรวมถึงการสืบค้นตามเงื่อนไขเราสามารถทำได้ในส่วนของสืบค้นเรียกดูข้อมูลเราจะใช้คำสั่ง SQL เราจะพิมพ์ด้วยตัวเองนะคะเราจะไม่ใช้ โปรแกรมสำเร็จรูปทุกอย่างเราจะได้รู้ด้วยว่าเวลาที่เราใช้ภาษา SQL ใช้งานอย่างไรนะคะ โดยตารางที่อยู่ในโปรแกรม access นะคะ รูปแบบของตารางนี่ ซึ่งมันเป็นมาตรฐานของการจัดเก็บข้อมูลในรูปแบบฐานข้อมูลอยู่แล้วนะคะถ้าเราต้องการจะบันทึกหรือเก็บข้อมูลหนี้เราก็จะต้องสร้างตารางขึ้นมาก่อนถึงจะใช้งานได้ เหมือน อาทิตย์ก่อนก่อนที่อาจารย์ให้นักศึกษาลองเปิดโปรแกรมบางคนจะยังพิมพ์โปรแกรม อะไรลงไปไม่ได้เลยเพราะว่าเราไม่มีตาราง นะคะมันจะดูเหมือนกดอะไรไม่ได้ เพราะเราไม่ยังเริ่มสร้างตารางเลยนะคะการสร้างตาราง การตั้งชื่อ แล้วก็คำ กำหนดโครงสร้างของตารางด้วยนั่นก็คือเราก็จะมีค่าใน Excel ก็จะเป็นคอลัมน์ Column ใช่ไหมคะ access ก็เหมือนกันเราจะกำหนดว่าหัวคอลัมน์แต่ละคอลัมน์นี่ก็คือฟิวส์นี่แหละ จะมีชื่อว่าอะไรบ้าง แล้วก็คุณสมบัติของข้อมูลที่ต้องบรรจุลงไปในนั้นนี่ มีอะไร นะคะ เช่นเป็นตัวหนังสือเท่านั้นหรือเป็นตัวเลขผสมกับตัวหนังสือหรือรับเฉพาะค่าตัวเลข ค่าตัวเลขจะต้องไม่เกิน 10 ตัวอะไรก็ว่าไปรวมถึงต้องกำหนดคีย์หลัก นะคะ การกำหนดคีย์หลักในโปรแกรม access มันก็จะง่ายกดปุ่มเดียวมันก็จะเสร็จเลยนะคะแล้วก็ต้องกำหนดความสัมพันธ์ สำหรับ 2 ตารางขึ้นไป ว่ามาจะเชื่อมต่อกันอย่างไรนะคะ ตัวอย่างโครงสร้างของฐานข้อมูล ทบทวนการอีกรอบนะคะที่โชว์อยู่ในตอนนี้ก็คือตารางนะ นัด มีแถวมีคอลัมน์ นะคะ แนวตั้งเราจะเรียกว่าคอลัมน์ โทรศัพท์ในระบบในจัดการฐานข้อมูลจะเรียกว่าฟิวส์ ยางในตารางนี้จะมี 4 นิ้วก็คือ 4 คอลัมน์นะคะมี 3 เล็ก คอร์ดก็คือ 3 แถวของข้อมูลนะคะอันนี้เป็นตัวอย่างข้อมูลผู้ป่วย นะคะ ไอ้ตัว H n ย่อมาจากรหัส รหัสผู้ป่วย Hospital Number มีชื่อมีนามสกุลมีที่อยู่ ตัวอย่างการเก็บข้อมูลอย่างง่ายนะคะตัวอย่างอย่างง่าย ส่วนไอ้ตัวโปรแกรม เราจะสร้างตาราง โดยที่การเราจะมากำหนดคุณสมบัติของคอลัมน์แบบเมื่อ ปีนี้เราจะมากำหนดในส่วนของการดีไซน์ก็คือการออกแบบ ยางในส่วนตรงนี้ อันนี้มันเป็นเมนูภาษาอังกฤษนะคะ ว่าชื่อ Column อะไรนะคะ ข้อมูลชนิดอะไร บางทีตัว ID นี่ถ้าเราไม่ได้กำหนดค่ามันจะเป็นออโต้ มันจะเพิ่มไปเรื่อยๆตามจำนวนที่เราเพิ่มเข้ามาแต่เราสามารถ เองก็ได้บางทีเราไม่อยากได้ตัวเลข 1 2 3 4 5 ไปเรื่อยๆนี่บางทีก็ มันอาจจะเป็นอย่างนั้นไม่ได้ทุกระบบนะคะมันอาจจะต้องมีตัวหนังสือที่มันมาผสมกับตัวเลข อย่างรหัสนักศึกษาเรานี่เข้ามาใหม่เราจะรัน 1 2 3 4 5 ไปเลยไม่ได้นะคะ มันจะต้องกำหนดเฉพาะ เช่นขึ้นต้นด้วยปีการศึกษา มาด้วยรหัสคณะตามมาด้วยรหัสหลักสูตร แล้วค่อยเป็น เลขที่ของเราว่าเลขที่อะไรนะคะ ตัวอย่าง ช้าเป็นการทำงานในการจัด การตารางจริงๆนี่มันจะไม่ได้มีข้อมูลแค่นิดเดียวอย่างที่เราเคยเห็นอย่างด้านซ้ายนะคะ ข้อใดเป็นตัวอย่างของ ตารางทั้งหมดที่มันเอามาเชื่อมโยงกัน มีไม่ต่ำกว่า 20 ตารางเมตร ราคาที่เป็นระบบงานใหญ่ๆรวมถึงการกำหนดด้วยว่าข้อมูลแต่ละชนิดที่เข้ามานี่อย่างเช่น ID เขากำหนดเป็น เลขให้มันเพิ่มเข้าไปเรื่อยๆอัตโนมัติ ส่วนเลข ประจำตัวผู้ป่วยเขาจะให้กรอกนะคะ แล้วก็จะมีคำอธิบายด้วยว่า ไอ้คำคำย่อหรือหัวตารางนี่ ถ้าเป็นภาษาไทยคืออะไรนะคะ ยาง osn ก็คือเลขบัตรเดิมต้องพิมพ์อย่างไรหรือไม่จำเป็นต้องพิมพ์ไหมชื่อเลข จำเป็นต้องพิมพ์นามสกุลเราจะ กำหนดด้วยในคำอธิบายนะคะ ถ้าในส่วนของ ฐานข้อมูลเราจะเรียกว่าเป็นพจนานุกรมข้อมูล หรือ Data Dictionary ก็คือสิ่งที่เราต้องบอก คุณอาจจะเป็นโปรแกรมเมอร์คนใหม่มาทำงาน เห็นคำย่อ PT Mary คืออะไร สมมุติเรามาทำงานต่อจากเขาแล้วเขาไม่เขียนอธิบายว่าไอ้คำศัพท์คำนี้ มันคือข้อมูลอะไรที่ต้องกรอก นะคะ นั่นคือสถานภาพสมรสสมมุติเขาไม่ได้บอกเราไว้ เราก็ต้องมา เราก็ต้องความเข้าใจได้ว่าสรุปข้อมูลนี้เขาต้องการข้อมูลอะไรกันแน่เพราะฉะนั้นการเขียนคำอธิบายก็ค่อนข้างจะเป็นเหมือนกันสำหรับการจัดการฐานข้อมูลนะคะ ส่วนด้านล่าง จะเป็นการบอกขนาดของข้อมูล นะคะ เช่น จำนวนเงินเดือน เงินเดือนน่าจะไม่มีแค่ 2 หลัก บางคนเงินเดือนเยอะบางคนเงินเดือนน้อยเราก็สามารถกำหนดได้ว่า ตัวเลขที่สามารถกรอกไปได้นี่มากขนาดไหนเงินเดือนอาจจะยังไม่เห็นภาพถ้าสมมุติว่าเป็นคอลัมน์ที่เกี่ยวกับงบประมาณประเทศ ที่ต้องกรอกตัวเลขเยอะๆนะคะ เลข 67 หลักมันไม่พอแน่นอนนะคะเราก็ต้องมากำหนดตรงนี้ด้วยว่าข้อมูลที่ใส่ได้ควรจะเป็นข้อมูลขนาดไหน หรือบัตรประชาชนเรามากำหนดเลยว่าให้กรอกได้แค่ 13 หลัก เราก็จะมา กำหนดตรงพร็อพเพอร์ตี้ตรงนี้นะคะ การสร้างตารางโดยใช้มุมมองการออกแบบนะคะก็จะมีกำหนดบอกว่าชื่อของฟิวส์ ชื่อแต่ละคอลัมน์ควรตั้งชื่ออะไรควรจะตั้งให้มีความหมายแล้วก็ไม่ยาวจนเกินไป แล้วก็ห้ามใช้สัญลักษณ์พิเศษ พวกเครื่องหมายคำถามเครื่องหมายแฮชแท็ก อะไรพวกนี้ หรือจุดอันเดอร์สกอร์ขีดเส้นใต้เราจะไม่ใส่ รวมถึงประเภทของข้อมูลนะคะก็คือชนิดของข้อมูลที่จัดเก็บในคอลัมน์หรือ Field นั้นๆ เช็ครหัสสินค้า มันควรจะเป็นได้ทั้งตัวเลข แล้วตัวอักษรผสมกันส่วนราคา ควรจะเป็นตัวเลขอย่างเดียว เราไม่พิมพ์เราจะไม่พิมพ์ 500 แล้วก็ใส่กไก่อีก 2 ตัวแทน มันไม่ใช่เพราะฉะนั้น 500 คือตัวเลขอย่างเดียวกับ ถ้าสมมุติข้อมูลนั้นๆมันจะต้องไปคำนวณ นะคะควรจะเป็นข้อมูลชนิดอะไรเช่นอายุ นะคะ คือเอาวันเดือนปีเกิดไปคำนวณมาจะต้องเป็นตัวเลขหรือวันที่หรืออย่างไร ราคาเราก็ต้องมาพิจารณาข้อมูลพวกนั้นด้วยนะคะอย่างเช่นวันเข้าทำงานวันแรกจนถึงปัจจุบันเขาทำงานมาแล้วกี่ปีก็จะใช้วันที่ในการคำนวณนะคะ เราก็ต้องพิจารณาตรงนี้ด้วยถ้าสมมุติ กูจะไปทำฐานข้อมูลด้วยตัวเอง ข้อมูลที่เป็นข้อความหรือว่า Tech นะคะ มันจะเป็นข้อมูลที่เป็นตัวอักษรตัวเลขตัวเลขทำไมถึงบอกว่าเป็น text ถ้าเป็นตัวเลขที่ไม่ได้ใช้ การคำนวณเช่นรหัสนักศึกษาพวกคุณ เราจะไม่เอามาบวกกัน มันไม่มีผลในการคำนวณนะคะมันเป็น ตัวเลขในการบอกรหัสเฉยๆสัญลักษณ์ เครื่องหมาย ก็บางคนก็จำเป็นต้องใส่สัญลักษณ์ ยางคำนำหน้าชื่อ บางคนก็ได้พิมพ์ นางสาว บาง คนพิมพ์น้อย มีสัญลักษณ์มีเครื่องหมายมีอักขระนะคะที่ผสมกัน รวมถึงตัวเลข ขอตัวเลขนี่ก็จะมีหลายประเภทเหมือนกัน เป็นจำนวนเงิน การเก็บเงิน ก็มีให้เลือกหลากหลายรูปแบบ นะคะถ้าเราเลือกข้อมูลเป็น b ข้อมูลที่เราเก็บได้จะมี 0-255 เท่านั้น แล้วก็เป็นจำนวนเต็ม ใส่ทศนิยมไม่ได้นะคะข้อมูลที่เป็น integer ก็จะเป็นค่าตัวเลขระหว่าง - 3 หมื่นกว่า ทน จนถึง - 3 หมื่นสองเป็นจำนวนเต็มบวกนะครับเป็นเต็มบวกกับเต็ม ลบ ไม่มีจุดทศนิยม ถ้าเป็น long integer เมื่อกี้จากหลักหมื่น มันจะกลายเป็น 2 พันล้าน วันนี้ เหมาะกับการใส่งบประมาณที่เยอะมากๆหรือข้อมูล เงินใดๆก็ตามที่เป็นตัวเลขที่มากกว่า ค่า indicator ธรรมดาขึ้นไปนะคะ Single จะเป็นตัวเลขที่มีจุดทศนิยม นะคะ อาจจะมีค่า เป็นจำนวนติดลบนะครับเป็นทั้ง เป็นทั้งทุนนิยมที่ ลบแล้วก็เต็มบวกนะคะ ต่อมาดับเบิ้ลจะใช้กับตัวเลขที่เป็นจุดทศนิยม เช่น เราไปซื้อของเราจะเห็นว่าเป็น ให้เราด้วย การเขียนโปรแกรมในการเก็บข้อมูลของเขา เขาแสดงผลจนถึงทศนิยม 1 ตำแหน่ง 2 ตำแหน่ง 3 ตำแหน่งก็ว่ากันไปแต่ส่วนมากถ้าเป็นค่าเงินเราจะใช้แค่ 2 ตำแหน่งนะคะ ต่อมา วันที่ เวลา เขาจะเป็นการระบุข้อมูลที่มีรูปแบบของวันที่ เป็นคอร์สหรือพ. ศ. ก็ เราจะระบุก็ได้นะคะโดยที่ ระบบเต็มที่ วันที่ 19 เวลาแต่ส่วนมากเราจะใช้แบบ วันเดือนปีแค่นั้นนะคะ กลับ Yes No questions นะคะใช่หรือไม่ มันจะเป็นคำตอบสำหรับ ข้อมูลที่เป็นตรรกะที่มีอยู่ 2 ค่าก็คือจริงหรือเท็จ เช่น ตอนนี้คุณเป็นนักศึกษาเขาก็จะถามว่าจริงหรือเท็จ ถ้ายังเป็นนักศึกษาอยู่ก็ยัง Yes หรือใช่ถ้าเรียนจบแล้วก็จะบอกว่า No นะคะ กับ OLX จะเป็นข้อมูลที่ เอาไว้ App รูปภาพ ฐานข้อมูลบางอย่างให้เราแนบรูปบ้าน บางทีเราสมัคร บางทีสมาชิกหรือสมัครเรียนหนังสือ หรือสมัครสอบ เขาก็จะให้เราแนบรูปภาพแนบใบเสร็จ ถ้าเป็นระบบขายของ ใบเสร็จ เงินก็เป็นแนบรูปภาพมาด้วยนะคะ ส่วนที่ 3 ก็จะเป็นส่วนของการกำหนดค่า ที่อาจารย์เอาให้ดูเมื่อกี้นี้ในภาพก็จะเป็นบอกขนาดของข้อมูลที่จะเก็บเรากำหนดได้เลยนะคะ แล้วก็ รูปแบบของการแสดงผลข้อมูลจะเป็นอย่างไรการป้อนข้อมูลจะเป็นลักษณะไหน เราสามารถกำหนดได้นะคะ กำหนดคำอธิบายข้อมูลเช่นก่อนที่เราจะกรอกข้อมูลไปนี่ในระบบบางอันถ้าเราเอาเมาส์ไปชี้ เขาก็จะมีคำอธิบายว่าในช่องนี้ให้กรอกข้อมูลแบบไหน ถ้าเราบอกว่ารหัสประชาชนเอาไปชิ้วปุ๊บ เขาบอกว่า ให้กรอกเลขจำนวน 13 หลัก เป็นต้นนะคะ กับอาจารย์มีการกำหนดค่าเริ่มต้นเช่น เขาถามวันเกิดส่วนมากวันเกิดค่าเริ่มต้นของเขาก็จะเป็น 1 มกราคม ปี 2000 อะไรก็ว่าไป ถ้าเป็นค่าเริ่มต้นคุณไม่ได้เกิดมานั้น หรืออาจจะเป็นเงินบริจาค นะคะ ค่าเริ่มต้นจะเป็น 10 บาท คุณอาจจะไปเปลี่ยนค่าก็ได้ นะคะ กับการกำหนดเงื่อนไขของข้า นะคะเช่นเงินเดือน จะต้องเป็นบวกเสมอจะบอกว่า เขาถามเงินเดือนเท่าไหร่คุณจะบอกว่าติดลบ 5,000 บาท คือ สรุปทำงานเป็นหนี้ไปเรื่อยๆมันก็ไม่ใช่นะคะ ก็ต้องฆ่าบางข้าจะต้องเป็นบวกเสมอเช่นอายุ จะต้องเป็นจำนวนเต็มบวกเต็มลบไม่ได้นะคะ กับการกำหนดข้อความที่แสดงหากใส่ข้อมูลไม่ตรงตามเงื่อนไขเช่นใส่อายุเป็น -20 มันก็จะมีคำสั่งแจ้งเตือนขึ้นมาว่าให้ใส่ข้อมูลที่เป็นค่าบวกเท่านั้น ถ้าเป็นแบบนี้เราสามารถกำหนดได้รวมถึง ข้อมูลที่ จำเป็นต้องกรอก จะเว้นว่างไม่ได้ เช่นเลขบัตรประชาชนคุณจะบอกว่าคุณไม่มีเลขบัตรประชาชนเป็นไปไม่ได้นะคะเพราะฉะนั้นต้องกรอกทุกครั้ง หรืออาจจะเป็นแบบฟอร์มให้สมัครใดๆก็ตาม ให้เลขบัตรประชาชนเลขบัตรประชาชน จำเป็นต้องกรอกเสมอจะปล่อยวางไม่ได้ การกำหนดค่าคีย์หลัก นะคะ ก็ทำได้ง่ายมากถ้าในโปรแกรมก็คือคุณจะเลือกค่าไหนที่เป็นคีย์หลักคลิกที่ คอลัมน์นานๆหรือฟิวส์นานๆแล้วก็กด ไอ้ตัวลูกกุญแจ พวงกุญแจก็จะหมายถึงคีย์หลักหรือ Primary Key นี่ล่ะค่ะ แค่เรื่อง แล้วก็กด มันก็จะ เกมการแจ้ง ในระบบเลยว่า ให้ข้านี้ คือค่า คีย์หลักของตารางนี้นะคะ กับความสัมพันธ์มันจะเป็นความสัมพันธ์ที่ดีระหว่าง 2 ตารางขึ้นไปโดยที่เราจะมีการพิจารณาภายนอกของแต่ละตารางที่มันจะอ้างถึงของอีกตารางหนึ่ง นะคะ อันนี้ก็เราจะลองทำในตัวโปรแกรม ว่ามันจะอ้างอิงกันอย่างไรนะคะในตัวโปรแกรมนี่มันก็จะง่ายมากค่ะมันก็จะมีตัวให้เรากดได้เลยตามลูกศรสีแดงชี้นะคะ เป็นโปรแกรมที่ค่อนข้างสำเร็จรูปเลยนะคะ ว่า เราจะ สร้างคีย์หลักอย่างไร อันไหนจะเป็นความสัมพันธ์นะคะก่อนที่เราจะทำสิ่งเหล่านี้ได้เราต้องรู้แล้วว่า ตารางที่เราสร้างหนี้มันสัมพันธ์กันอย่างไรเพราะว่าเราเคยว่า er-diagram มาแล้ว เหมือนตัวอย่างที่อาจารย์ให้ทำร้านหนังสือ ว่าผู้แต่งร้านหนังสือกับหนังสือเขาควรจะมีความสัมพันธ์กันอย่างไรนะคะ อย่างเช่นตัวอย่างถ้าเราสร้างความสัมพันธ์ได้แล้วมันจะเป็นแบบนี้ล่ะค่ะมันจะมีการโยงเส้นของ 2 ตาราง ให้ดูเลยว่าตารางนี้กับตารางนี้ เขามีความสัมพันธ์กัน อย่างตารางนี้นะค่ะ 2 ตารางนี้ มีความสัมพันธ์แบบหนึ่ง มากกว่า 1 อย่างที่อาจารย์เคยบอกว่าในแต่ละโปรแกรมหรือในแต่ละหนังสือสัญลักษณ์เครื่องหมาย เขาอาจจะ ไม่ได้ใช้ตัวเองอย่างที่อาจารย์สอนแต่ มันเป็นความหมายเดียวกันคือวันทรูมันนี่ คือ มีความสัมพันธ์มากกว่า 1 กับอะไร เพราะฉะนั้นเรา เราอ่าน หนังสือบางเล่ม ว่าจะเขียนแบบนี้นะคะ ให้เราเข้าใจว่ามีความ ใบเดียวกัน ต่างกันที่เฉยเฉยๆถ้าเป็นความสัมพันธ์แบบหนึ่งต่อหนึ่ง หนึ่งต่อหนึ่ง บางรูปแบบมันจะไม่เขียนกำหนดไว้เลยให้รู้ด้วยตัวเองว่าเป็นความสัมพันธ์แบบไหนนะคะ one two one one to many นะคะ ข้อพิจารณาในการสร้างฐานข้อมูล เราต้องรู้ว่าคนเราจะสร้างฐานข้อมูล เพื่อมาทำงานเกี่ยวกับระบบอะไร นะคะเหมือนในตัวอย่างก็คือร้านเช่าหนังสือร้านขายหนังสือ ร้านหลาย ขายหนังสือต้องมีอะไรบ้าง มันอาจจะไม่ได้มีแค่ 3 ตัวอย่าง มันมากกว่านั้น คุณจะเช่าหรือคุณจะขายคุณจะมีระบบสมาชิกไหม รวมถึงรายละเอียด ในตาราง ข้อมูลจะต้องเก็บอะไรบ้าง เครื่องไหน ไปตกหรือ ต่อไปก็ต้องดูว่าในตาราง อะไรคือคีย์หลัก