--- title: ฝึก PE กับ Bot ASR ห้องเรียนสกลฯ หลักการและระบบการจัดการฐานข้อมูล อ.เกวลี 3 ม.ค. 66 ตู่ subtitle: date: วันพฤหัสบดีที่ 5 มกราคม 2566 เวลา 09.00 น. --- (ข้อความสดจากระบบถอดความเสียงพูดทางไกล) (อาจารย์เกวลี) โอเคค่ะ เดี๋ยวเริ่มเลยแล้วกันนะคะ งวดนี้จะเป็นบทที่ 7 ปีใหม่อะไรจะไม่เยอะนะคะ นิดเดียวแล้วก็วันนี้ไม่มีการบ้านมีการบ้านเฉพาะอาทิตย์นี้เท่านั้นนะคะ ถือว่าให้ปีใหม่ บทนี้นะคะจะเป็นเกี่ยวกับวิชาคณิตเชิงสัมพันธ์ก็จะเป็นกระบวนการโดยใช้คณิตศาสตร์อย่างง่ายนะคะ ที่เอามาเป็นตัวกระทำในการจัดการฐานข้อมูลของเราด้วยโดยพีชชนิดเชิงสัมพันธ์หรือว่าเป็นเกี่ยวกับโครงสร้างในการ Query ข้อมูลคือการการข้อมูลของเราจะเป็นการกระทำที่เกิดขึ้นกับตารางหรือความสัมพันธ์ที่เราสร้างตารางใหม่ขึ้นมานะคะ มันจะเป็นแบบจำลองของการกระทำต่าง ๆ ที่อาจจะเกิดขึ้นข้อมูลในฐานข้อมูลของเรา ซึ่งส่วนมากจะเป็นการกระทำพื้นฐานนะคะ โดยมันจะมีอยู่ 2 กลุ่มคือแบบดั้งเดิมแบบพิเศษจะเป็นอย่างละ 4 ตัวนะคะ แบบดั้งเดิมก่อนนะคะ ภาษาอังกฤษ ก็คือ นะคะ ก็จะเป็นการกระทำที่เกิดขึ้นกับตารางหรือความสัมพันธ์โดยอาศัยทฤษฎีของเซต ซึ่งเราเคยเรียนเซตมาแล้วในวิชาคณิตศาสตร์โดยที่ตารางหรือความสัมพันธ์ที่เกิดขึ้นเนี่ยจะมีการกระทำต้องมีอาชีพเดียวคือในตารางจะต้องมีข้อมูลเกิดขึ้น เช่น ตารางนักศึกษาก็จะมีแอตทริบิวต์หรือว่าข้อมูลที่เรามีก็คือชื่อนามสกุลเป็นต้น การกระทำของกลุ่มที่เป็นแบบดั้งเดิมจะมีอยู่ 4 อย่างมี product มี Union Intersecแล้วก็มีประเด็นวันนี้จะต้องเป็นภาษาอังกฤษเพราะว่าคำสั่งในระบบจัดการฐานข้อมูลก็จะเป็นภาษาอังกฤษก็ประมาณนี้นะคะ อันแรก Product นะคะเป็นการกระทำที่ให้มันแสดงข้อมูลทุก ๆ บรรทัด หรือทุก ๆ พที่เรามีที่สามารถเป็นไปได้โดยการจับคู่ผลคูณคาร์ทีเซียนนี่ ก็เป็นคณิตศาสตร์อย่างง่ายคำสั่งของภาษาที่ใช้ในการจัดการฐานข้อมูลจะใช้คำว่า Time รูปแบบของมันก็คือในกรอบสี่เหลี่ยมนะคะ ก็คือเอา A time b กันเดี๋ยวจะมีตัวอย่างให้ดูอย่างเช่น ตัวอย่างนะคะ การเขียนให้ดูก่อนเมื่อกี้ A กับ B นี่ถ้าคำสั่ง Product หรือคำสั่งค่าในฐานข้อมูลในระบบจัดการฐานข้อมูลใช้คำสั่ง Time เอาทุกตัวเป็นไปได้มาคูณกัน x x x y ใช่ไหมคะ b x x x y B x b yfzy คำสั่งนี้จริง ๆ จับคู่ทุกตัวที่เป็นไปได้นะคะ ยังง่ายอยู่ยังอีกเหมือนในตัวอย่างค่ะ มีตาราง A มีตาราง B ถ้าสั่งให้มันคูณกัน ก็คือเป็น time B ผลลัพธ์ที่ได้ก็จะเป็นทุกตัวที่ a กับ B มันสามารถจับคู่กันได้คำสั่งนี้จริงๆคือ 3 x 3 ได้ 9 ต้องได้ 9 Records 9 แถวนั่นเอง ถ้าจะเช็กแนวข้อสอบก็ออกนะนะคะ ยัง ๆ อยู่การ Union อันนี้ก็เป็นทฤษฎีเซตเหมือนกันก็จะเป็นการรวมกันของข้อมูล 2 ตารางหรือว่า 2 Relation เพื่อแสดงข้อมูลทุก ๆ เรื่องของเรื่องคือทุก ๆ แถวในรูปแบบของตามทฤษฎีของเซตคำสั่งก็คือยูเนี่ยนนะคะa Union b คือเอาเองกับบีมารวมกันตัวนี้มีตาราง A กับตาราง B ทฤษฎีเซตของยูเนียนนะคะ จะสังเกตได้ว่าข้อมูลมันมีข้อมูลซ้ำกันข้อมูล s1 ตาราง A ก็มี ตาราง B ก็มีตามทฤษฎียูเนียนนะคะ ถ้ามันซ้ำกันเราก็เอามาแค่ข้อมูลเดียวจะเห็นว่าจาก 4 Records ก็คือสีแถวข้อมูลนะคะ แต่ว่าอันนี้กำลัง ก็มีแต่รังบีก็มีมันซ้ำกันเราจะนับเป็นแค่ 1 ข้อมูลเท่านั้นนะคะ พอมันเอามายูเนียนกันข้อมูลจาก 4 บรรทัดจะเหลือแค่ 3 บรรทัดเพราะว่า s1 ไม่มีทั้ง 2 ตารางก็คือ a b ยูเนียนนะคะ ส่วนที่ทับซ้อนกันก็เอาแค่ข้อมูลเดียวอินเตอร์เซกชันก็ตามทฤษฎีเซตเหมือนกันค่ะ มันจะเป็นการกระทำเพื่อแสดงข้อมูลของตารางหรือ Record ที่ปรากฏอยู่ทั้ง 2 ตารางที่มันทับซ้อนกันนั่นละในรูปแบบของ intersection ตามทฤษฎีของเซตคำสั่ง ก็คืออินเตอร์เซคให้ a อินเตอร์เซค b นะคะ ตัวอย่างจากตารางเดิมเลยค่ะ A กับ B ข้อมูลไหนที่ทับซ้อนกันคือข้อมูล s1 ไม่มีทั้ง 2 ตารางกำลังเอกกับกระบี่เราจะแสดงผลเฉพาะตารางที่มันทับซ้อนกันเท่านั้นเพราะฉะนั้นคำสั่ง a อินเตอร์เซค b จะมีผลลัพธ์แค่ A Rccord เท่านั้นก็คือทฤษฎีของเซตนะคะ ต่อมา 1 ตาราง 1 ไม่มีนะคะ ก็คืออะไรก็ตามที่อยู่ในตารางนั้นแต่ไม่อยู่กับกี่ตาราง 1 คำสั่งที่ใช้เป็น Minus คือคำสั่งไว้ลบ แปลเป็นภาษาไทยคือเครื่องหมายลบแล้วนี่ไม่เอาอย่างเช่น ที่อยู่ใน A แต่ไม่อยู่ใน B เมื่อคืนเหมือนตัวที่ทำไฮไลท์สีเหลืองไว้ไปด้วยค่ะ ให้คำสั่ง A B อะไรที่อยู่ใน A แต่ไม่อยู่ใน B Minus B ว่าจะเป็น S4 ในทางกลับกันค่ะ B ก็คืออยู่ใน B แต่ไม่อยู่ใน A อยู่ดี ๆ S2F1 ไม่ได้ s1 อยู่ในเองเหมือนกันในทางกลับกันจะเป็นแบบนี้นะคะ ขึ้นอยู่กับว่าเราจะเอาข้อมูลจากตารางไหนเราจะเอาข้อมูลในวันข้างหน้าถ้าอยู่ใน a ไม่อยู่ใน B จะเป็นแบบนี้จะเขียนแบบนี้นะคะ แต่ถ้าอยู่ใน B ไม่อยู่ใน A ก็จะเขียนขึ้นต้นด้วย B นำหน้าแบบนี้ไม่ใช่ว่าทุกตารางจะชื่อ A กับ B นะคะแล้วแต่ว่าตารางที่นักศึกษาได้ทำชื่อตารางอะไรอย่างเช่น ตาราง Student Minus แล้วก็ได้นะคะ อยู่ในตาราง student แต่ไม่อยู่ในร้าน Address ว่าไปนะคะ ต่อมาจะเป็นตัวดำเนินการแบบพิเศษนะคะ เป็น Special ซึ่งมันจะแตกต่างจากรูปแบบการทำงานของเซตโดยทั่วไป โดยการกระทำของกลุ่มที่จะเป็น Special หรือแบบพิเศษนี่ ไม่จำเป็นจะต้องมีจำนวนแอตทริบิวต์เท่ากัน Attribute คืออะไร คือตัวนี้นะคะ ถ้าเป็นแบบ Credit analyst นี่คอลัมน์ทั้ง 2 ตาราง 13 ตารางต้องเท่ากันเท่านั้นถ้าเป็น Special คือคอลัมน์หรือ senior ไม่จำเป็นจะต้องมีจำนวนเท่ากันไม่จำเป็นซึ่งคำสั่งพรุ่งนี้นี่ จะถูกเรียกใช้บ่อยเพราะว่าฐานข้อมูลข้อมูลอาจจะมีตารางที่บรรจุอยู่รูปแบบที่แตกต่างกันไปนะคะโดยถึงแม้มันจะไม่มีคิวที่เท่ากันไม่เท่ากันนั่นละ โดยถึงแม้จะไม่มีแอตทริบิวต์ของทั้ง 2 ตารางจะถูกนำมาใช้จะต้องมีเงื่อนไขต้องมีชื่อโดเมนของข้อมูลชื่อเดียวกัน ก็คือชื่อคอลัมน์เดียวกันอาจจะเป็นชื่อตารางใด ๆ ในตารางนั้นอาจจะมี 10 คอลัมน์อีกตารางหนึ่งมี 8 ค่ำแปลต้องมีสิ่งที่เราจะเอามาดำเนินการเนี่ยชื่อคอลัมน์จะต้องเหมือนกันนะคะ คำสั่งจะมีอยู่ 4 คำสั่งด้วยกันอันแรกคำสั่ง regedit หรือถ้าในระบบจัดการฐานข้อมูลภาษาที่ใช้ภาษา SQL เราจะใช้คำสั่งเรียกว่า Siri นะคะ เดี๋ยวประมาณอีก 2 สัปดาห์ต้องได้พิมพ์ลองทำโค้ดภาษา SQL ดู ซึ่งการกระทำเพื่อแสดงข้อมูลในเรคคอร์ดของตารางนั้น ๆ จะต้องตรงตามเงื่อนไขที่ระบุนะคะ เงื่อนไขที่ใช้จะใช้คำว่า where นะคะ เช่น a where x Vegetable อันนี้เป็นต้นนะคะ เดี๋ยวตอนที่เราทำโปรแกรมจริง ๆ นักศึกษาจะเห็นภาพได้เข้าใจมากกว่านี้อันนี้เป็นแค่การเกริ่นก่อนเฉย ๆ หาว่าเราจะต้องเจอคำสั่งพิเศษอะไรบ้างในการจัดการฐานข้อมูลนะคะ ตัวอย่างเดิมค่ะ ตาราง a กับ Bตัวอย่างอาจารย์อาจจะเห็นว่าเอ๊ะ Column มันก็ยังเท่ากันนี่แต่ก็เพื่อให้เห็นภาพที่ชัดเจนนะคะ อาจารย์จะเลยจะยังยกตัวอย่างเป็นแบบนี้ก่อน บอกให้คำสั่ง Select หรือ Re นะคะจะต้องมาคู่กับคำว่าเสมออย่างเช่นขึ้นต้นด้วยดีก็คือในตารางดีให้ดูที่เงื่อนไขซิตี้ซิตี้ตรงนี้แปลว่าชื่อเมืองนะคะ ในตาราง B ค่าของ Column City อันไหนที่มีค่าเท่ากับชัยนาทขอดูหน่อยค่ะ ตาราง B City ชัยนาทนะคะ พอว่า City เท่ากับชัยนาทผลลัพธ์ที่ได้จะต้องแสดงผลลัพธ์ของ TF2 ทั้งหมดนะคะ เพราะว่าเงื่อนไข ก็คือในตาราง จังหวัดข้อมูลอะไรที่มีข้อมูลว่าชัยนาทเราต้องยกมาทั้งหมดมาแสดงผลเป็นโปรเจกต์นะคะ ก็จะเป็นการเลือกข้อมูลทุก ๆ แถวโดยเลือกมาเพียงแค่บางคอลัมน์เช่น อาจารย์อยากดูแค่รหัสนักศึกษากับชื่อ ก็แสดงผลแค่ชื่อกับรหัสนักศึกษาโดยที่ในตารางข้อมูลศึกษาอาจจะมีคอลัมน์ประมาณ 20 คอลัมน์ก็ได้ แต่อาจารย์อยากดูแค่ 2 คอลัมน์นี้เท่านั้น เราจะใช้คำสั่งที่เกี่ยวข้องกับการเรียกดูข้อมูล คือมันจะเป็นคำสั่งเกี่ยวกับการทำโปรเจกต์นั่นเองนะคะ รูปแบบคำสั่งก็จะขึ้นต้นด้วยชื่อตารางแล้วตามด้วยเงื่อนไขนะคะ ตารางเดิมค่ะ ตารางเดิม คำสั่ง A ในวงเล็บ S name กับ กับเอดส์นะคะ ก็คืออธิบายคือเอาข้อมูลในตาราง A เท่านั้นอยู่ใน Column name และคอลัมน์ผลลัพธ์ที่ได้จะแสดงผลแค่นี้ จากตอนแรกมันมีแค่ 4 คอลัมน์ใช่ไหมคะ 1 2 3 4 อาจารย์ให้แสดงผลแค่ s name เท่านั้นนี่คือการทํางานของคําสั่ง project เผื่อจะมีเป็นร้อยคอลัมน์มาจากไหนจะเรียกดูแค่คอลัมน์ที่น่าสนใจจะใช้คำสั่ง projectนะคะเดี๋ยวภาษาโปรแกรมยังมีอีกเยอะค่ะนี่แค่ตัวอย่างคร่าวๆว่าเนาะอย่างเช่น หรืออย่างเช่น ทำไมผลลัพธ์ทำไมมันโชว์แค่รหัส s1 คำสั่งที่จะต้องใช้คืออะไร เงื่อนไขของคำสั่งคือดูในตาราง B นะคะ โดยหน่วยค่าของคอลัมน์ City มีค่าเท่ากับ Bangkok แล้วให้แสดงผลเฉพาะ f เท่านั้นกูอยากรู้แค่รหัสมีเมืองที่อยู่ในเมืองกรุงเทพฯนะคะ ก็โชว์แค่ s1 เท่านั้นจากเมื่อก่อนนี้เรียกว่า Where City กลับ Bangkok ปกติแล้วมันแสดงข้อมูลทุก ๆ คนใช่ไหมคะ แต่ถ้าตามกำหนดให้มาแสดงแค่คอลัมน์ใดคอลัมน์หนึ่งเท่านั้น ก็สามารถทำได้ความสามารถของคำสั่ง project ต่อมาคำสั่งจอยค่ะ จะเป็นการกระทำเพื่อแสดงข้อมูลที่เป็นไปได้ทั้งหมดซึ่งเกิดจากการเชื่อมโยงข้อมูลของ 2 ตารางขึ้นไป โดยที่กำหนดค่าคอลัมน์หรือว่าอาทิตย์อยู่ที่เหมือนกันอาจจะเป็นคอลัมเดียวหรือมากกว่าก็ได้นะคะ แต่ที่สำคัญคือคอลัมน์จะต้องชื่อเหมือนกัน โดเมนของข้อมูลต้องเท่ากัน รูปแบบคำสั่งก็คือ A join B นัคัมาดูตัวอย่างกันจอยนะคะจะคล้าย ๆ กับยูเนียนแต่เงื่อนไขคือจะต้องมีโดเมนหรือว่า Column ที่เท่ากันถึงจะจอยได้นะคะ อย่างตัวนี้มี 2 คอลัมน์มี 2 คอลัมน์รายการข้อมูลที่ซับซ้อนกันอยู่ในรูปแบบคล้าย ๆ กับคำสั่งอยู่เนี่ยนะคะ เช่นตัวนี้คำสั่งจอยมีอะไรที่เหมือนกันCity ใช่ไหมคะ A join B อันนี้มี 6 คอลัมน์นะคะ ตัวนี้ City เหมือนกันแต่เนื่องจาก Attribute ที่มีคำว่า City เหมือนกันนี่ มันจะต้องดูพิจารณาใน Reของรหัสด้วยเพราะฉะนั้น ถ้ามันเกินมามันเกินแล้วต้องทำข้อมูลซ้ำให้เกิดขึ้นอันนี้ก็จะเป็นอีกรูปแบบหนึ่งของการทำงานคือเติมข้อมูลเข้าไปนะคะ เพื่อให้ผลลัพธ์ที่ได้ในทุก ๆ Records นะคะ มีค่า Attribute ก็คือที่เท่ากัน เดี๋ยวอันนี้เราจะไปดูอีกทีหนึ่งนะคะ ในตอนที่เราทำโปรแกรมเลย ต่อมาจะเป็นการแสดงข้อมูลจาก 2 Realtion โดยที่ รีเลชั่นหรือว่าทั้งสองตารางเนี่ยมีแอตทริบิวต์หรือรอบมีคอลัมน์เนี่ยอย่างน้อย 1 คอลัมน์ที่เหมือนกันกดรับจากคอลัมน์นะคะ จากตารางที่มีจำนวน Attribute มากกว่านี่จะถูกจับคู่ กับอีกคอลัมน์หนึ่งที่มีคอลัมน์ของตารางที่มีคอลัมน์น้อยกว่านะคะ คำสั่งรูปแบบก็คือ a b y by Bมันจะเป็นคล้า ๆ กับการหารนะคะต้องเป็นซับเซตของตัวตั้งก็คือในตัวตั้งมี A ไหมมี มี B ไหมมี ไหมมีรับทุกตัวคือตัวที่แมทกับตัวหารอะไรบ้างที่อยู่ใน A มี XYZ B มีแค่ X C มีแค่ x เพราะฉะนั้น สิ่งที่เอา ABC หารได้ครบทุกตัวมีแค่ตัวเดียวก็คือตรงตามเงื่อนไขทั้งหมด นะคะ เราอาจจะมีการตั้งเงื่อนไขมาแล้วมีแค่ X ตัวเดียวเท่านั้นที่เข้าตรงทุกเงื่อนไข 3 เงื่อนไขที่เราต้องตั้งไว้ หลักการนี้จะใช้ตอนที่เราค้นหาข้อมูลอย่างเช่น ในอาจารย์อยากได้กระเป๋าสีแดง มี 6 ล้อลากเงื่อนไขกระเป๋าสีแดงมีล้อ6 ล้ออาจจะมีผลลัพธ์ที่ตรงตามเงื่อนไขที่ฉันต้องการแค่อย่างเดียวเท่านั้นเป็นต้นนะคะ เป็นต้น ตัวอย่างมีข้อมูลในตาราง A มีข้อมูลตามนี้ตาราง B มีคอลัมน์เดียวคือตัวนี้ P2 นให้ a d y B B ก็คือมีข้อมูล P2 อยู่ในชุดข้อมูลอะไรบ้างของเอ E2 อันนี้ B 2 เพราะฉะนั้น ผลลัพธ์ที่ได้จะมีแค่ 2 รักคอร์ดเท่านั้นที่มี P2 อยู่ด้วยอันนี้ก็จะยังตรงตามเงื่อนไขนะคะ ถ้าเพิ่มอีกนะคะ B P1 P2 ปี 3 ปี 6S2 มีแค่นี้มีแค่นี้มีส่ง S4 มีแค่นี้ไม่ตรงมีที่ตรงแค่ s1 เท่านั้นที่เอา B ทุกตัวหารไม่ลงตัว อันนี้คือหลักการนะคะ ปัญหานั่นละ ต้องหาลงตัวนะคะ วันนี้จะประมาณนี้เพราะว่าเดี๋ยวอาจจะให้เช็กโปรแกรมค่ะ เนื้อหาจะมีแค่นี้เดี๋ยวจะเช็กในห้องแลปว่าโปรแกรมที่จะใช้สมบูรณ์หรือเปล่าก็วันนี้ก็น่าจะประมาณนี้ค่ะ เพราะเดี๋ยวจะให้เช็กโปรแกรมในห้องเรียนนะคะ เหนื่อยนิดหนึ่งเพราะว่าหลังปีใหม่ขอเช็คโปรแกรมก่อนสัปดาห์หน้าอาจจะเริ่มใช้โปรแกรมอาทิตย์นี้ก็เลยเดี๋ยวนี้เดี๋ยวเรามาเช็กดูว่าห้องเรียนเราใช้โปรแกรมได้หรือเปล่านะคะ วันนี้ก็ขอบคุณล่ามกับขอบคุณค่ะ ความด้วยนะคะประมาณนี้ค่ะเพราะว่าเดี๋ยวเช็คห้องแลปก่อนขอบคุณมากค่ะ