--- title: (ASR) หลักการและระบบการจัดการฐานข้อมูล subtitle: date: วันอังคารที่ 3 มกราคม 2566 เวลา 12.50 น. --- (ข้อความสดจากระบบถอดความเสียงพูดทางไกล) เคค่ะ เดี๋ยวเริ่มเลยละกันนะคะงวดนี้จะเป็นบทที่ 7 พี่ใหม่ อะไรจะไม่เยอะ นะคะนิดเดียว แล้วก็วันนี้ ไม่มีการบ้าน มีการบ้าน เฉพาะอาทิตย์นี้เท่านั้นนะคะถึงให้ปีใหม่ งวดนี้นะคะจะเป็นเกี่ยวกับวิชาคณิตเชิงสัมพันธ์ก็จะเป็นกระบวนการ โดยใช้ คณิตศาสตร์ อย่างง่าย นะคะเที่ยวมาเป็นตัวกระทำในการจัดการฐานข้อมูลของเราด้วย โดยเพชรชนิดเชิงสัมพันธ์ หรือว่าเป็นเกี่ยวกับโครงสร้างในการ Query ข้อมูลคือการ การข้อมูลของเรา จะเป็นการกระทำที่เกิดขึ้นกับตารางหรือความสัมพันธ์ ที่เราสร้างตารางใหม่ นะคะมันจะเป็นแบบจำลองของการกระทำต่างๆที่อาจจะเกิดขึ้น ข้อมูลในฐานข้อมูลของเรา ซึ่งส่วนมากจะเป็นการกระทำพื้นฐาน นะคะ โดยมันจะมีอยู่ 2 กลุ่มคือแบบดั้งเดิม แบบพิเศษ จะเป็นอย่างละ 4 ตัว แบบดั้งเดิมก่อนนะคะภาษาอังกฤษก็คือเจดีย์ที่นั่น นะคะก็จะเป็นการกระทำที่เกิดขึ้นกับตารางหรือความสัมพันธ์โดยอาศัยทฤษฎีของเซต ซึ่งเราเคยเรียนเซตมาแล้วในวิชาคณิตศาสตร์ โดยที่ตารางหรือความสัมพันธ์ที่เกิดขึ้นเนี่ย จะมีการกระทำ ต้องมีอาชีพเดียวคือในตารางจะต้องมีข้อมูลเกิดขึ้น เช่นตารางนักศึกษาก็จะมีแอตทริบิวต์หรือว่าข้อมูลที่เรามีก็คือ ชื่อนามสกุลเป็นต้น การกระทำของกลุ่มที่เป็นแบบดั้งเดิม จะมีอยู่ 4 อย่าง มี product มียูเนี่ยนอินเตอร์เซคแล้วก็มีประเด็น วันนี้จะต้องเป็นภาษาอังกฤษ เพราะว่าคำสั่ง ในระบบจัดการฐานข้อมูล ก็จะเป็นภาษาอังกฤษมานี้นะคะ แลกโปรดักส์นะคะ เป็นการกระทำที่ให้มันแสดงข้อมูลทุกๆบรรทัด หรือทุกๆเล็กคอร์ดที่เรามี ที่สามารถเป็นไปได้โดยการจับคู่ ผลคูณคาร์ทีเซียน นี่ก็เป็นคณิตศาสตร์อย่างง่าย คำสั่งของภาษาที่ใช้ในการจัดการฐานข้อมูลจะใช้คำว่า Time cimbs รูปแบบของมันก็คือ ในกรอบสี่เหลี่ยมนะคะก็คือเอาเองกับบีมันมา x กัน เดี๋ยวจะมีตัวอย่างให้ดู อย่างเช่นตัวอย่างนะคะ การเขียนให้ดูก่อน เมื่อกี้ a กับ B นี่ ถ้าคำสั่ง product หรือคำสั่งค่าในฐานข้อมูลในระบบจัดการฐานข้อมูลใช้คำสั่ง Time เอาทุกตัว เป็นไปได้มาคูณกัน x x x x y ใช่ไหมคะ b e x x x y B x b y fzy คำสั่งนี้จริงๆ จับคู่ทุกตัวที่เป็นไปได้ นะคะ ยังไงอยู่ ยังอีก เหมือนในตัวอย่างค่ะมีตาราง A มีพลังดี สั่งให้มัน คุณกานต์ก็คือเป็น a time B ผลลัพธ์ที่ได้ ก็จะเป็นทุกตัวที่ a กับ B มันสามารถจับคู่กันได้ คำสั่งนี้จริงๆ คือ 3 * 3 ได้ 9 ต้องได้ 9 Records 9 แถวนั้นเอง ถ้าจะเช็ค แนวข้อสอบก็ไม่ออกนะนะคะ ยังๆอยู่ การ Union อันนี้ก็เป็นทฤษฎีเซตเหมือนกัน ก็จะเป็นการรวมกันของข้อมูล 2 ตารางหรือว่า 2 รีเลชั่น เพื่อแสดงข้อมูลทุกๆเรื่องของเรื่องคือทุกๆแถว ในรูปแบบของยูเนี่ยนตามทฤษฎีของเซต คำสั่งก็คือ ยูเนี่ยนนะคะ a Union b คือเอาเองกับบีมารวมกัน ตัวนี้ มีตาราง a กับตาราง B ทฤษฎีเซตของยูเนี่ยนนะคะจะสังเกตได้ว่าข้อมูลมันมีข้อมูลซ้ำกัน ข้อมูล s1 นางเอกก็มี กำลังดีก็มี ตามทฤษฎียูเนี่ยนนะคะ ถ้ามันซ้ำกันเราก็เอามาแค่ข้อมูลเดียว จะเห็นว่าจากสี Records ก็คือสีแถวข้อมูลนะคะ แต่ว่าอันเนี้ยกำลังเอกก็มีแต่รังบีก็มีมันซ้ำกัน เราจะนับเป็นแค่ 1 ข้อมูลเท่านั้น นะคะ พอมันเอามายูเนี่ยนกันข้อมูลจาก 4 บรรทัด จะเหลือแค่ 3 บรรทัดเพราะว่า s1 ไม่มีทั้ง 2 ตารางก็คือ a b เลย ยูเนี่ยน นะคะ ส่วนที่ทับซ้อนกันก็เอาแค่ข้อมูลเดียว อินเตอร์เซกชัน ก็ตามทฤษฎีเซตเหมือนกันค่ะ มันจะเป็นการกระทำเพื่อแสดงข้อมูลของตารางหรือเล็กคอร์ด ที่ปรากฏอยู่ทั้ง 2 ตาราง ที่มันทับซ้อนกันนั่นแหละ ในรูปแบบของ intersection ตามทฤษฎีของเซต คำสั่งก็คือ อินเตอร์เซค ให้ a อินเตอร์เซค b ตัวอย่าง ตารางเดิมเลยค่ะ A กับ B ข้อมูลไหนที่ทับซ้อนกัน คือข้อมูล s1 ไม่มีทั้ง 2 ตารางกำลังเอกกับกระบี่ เราจะแสดงผลเฉพาะตารางที่มันทับซ้อนกันเท่านั้น เพราะฉะนั้นคำสั่ง a อินเตอร์เซค b จะมีผลลัพธ์แค่ Accord เท่านั้นก็คือ ทฤษฎีของเซต นะคะ เรามา ก็เป็นการกระทำเพื่อแสดงข้อมูลของแถวนั้นๆที่ปรากฏอยู่ในตาราง นึ่งแปลตาราง 1 ไม่มีนะคะก็คือ อะไรก็ตามที่อยู่ในตารางนั้นแต่ไม่อยู่กับกี่ตาราง 1 คำสั่งที่ใช้ คือคำสั่งไว้นะ แปลเป็นภาษาไทยคือเครื่องหมายลบแล้วนี่ไม่เอา อย่างเช่นที่อยู่ในเอ แต่ไม่อยู่ใน B เมื่อคืนเหมือนตัวที่ทำไฮไลท์สีเหลืองไว้ ไปนั่งดื่มด้วยค่ะ ให้คำสั่ง A B อะไรที่อยู่ในเอเชียไม่อยู่ในบี อันนี้ไม่ใช่แน่นอนเพราะ s1 มีทั้ง a ทั้ง B เพราะฉะนั้น ไม่นะบี ว่าจะเป็น S4 ในทางกลับกันค่ะบีบก็คืออยู่ในบีแต่ไม่อยู่ใน A อยู่ดีๆ S2 F1 ไม่ได้ s1 อยู่ในเองเหมือนกัน ในทางกลับกันจะเป็นแบบนี้ นะคะขึ้นอยู่กับว่าเราจะเอาข้อมูลจากตารางไหนเราจะเอาข้อมูลในวันข้างหน้า ถ้าอยู่ใน a ไม่อยู่ใน B จะเป็นแบบนี้จะเขียนแบบนี้นะคะ แต่ถ้าอยู่ในบี ไม่อยู่ใน a ก็จะเขียนขึ้นต้นด้วย B นำหน้าแบบนี้ ไม่ใช่ว่าทุกตารางจะชื่อเองกับบีนะคะแล้วแต่ว่า ตารางที่นักศึกษา ได้ทำ ชื่อตารางอะไรอย่างเช่นตาราง Student ดีเด่น แล้วก็ไม่นะ ก็ได้นะคะ อยู่ในตาราง student แต่ไม่อยู่ในร้าน Address ว่าไป นะคะ ต่อมาจะเป็น ตัวดำเนินการแบบ พิเศษนะคะเป็น Special ซึ่งมันจะแตกต่างจาก รูปแบบการทำงานของเซตโดยทั่วไป โดยการกระทำของกลุ่มที่จะเป็น Special หรือแบบพิเศษเนี่ย ไม่จำเป็นจะต้องมีจำนวนแอตทริบิวต์เท่ากัน คิวคืออะไรคือตัวนี้ หมอลำ นะคะ ถ้าเป็นแบบ Credit analyst เนี่ย คอลัมน์ทั้ง 2 ตาราง 13 ตารางต้องเท่ากัน เท่านั้น ถ้าเป็น Special คือ คอลัมน์หรือ senior ไม่จำเป็นจะต้องมีจำนวนเท่ากัน ไม่จำเป็น ซึ่งคำสั่งพรุ่งนี้เนี่ย จะถูกเรียกใช้บ่อยเพราะว่าฐานข้อมูล ข้อมูลอาจจะมีตารางที่บรรจุอยู่ รูปแบบที่แตกต่างกันไปนะคะ โดย ถึงแม้มันจะไม่มีคิวที่เท่ากันไม่เท่ากันนั่นแหละ แอตทริบิวต์ของทั้ง 2 ตาราง จะถูกนำมาใช้ จะต้องมีเงื่อนไข ต้องมีชื่อโดเมนของข้อมูลชื่อเดียวกัน ชื่อคอลัมน์เดียวกัน อาจจะเป็น ชื่อตารางใดๆ ในตารางนั้นอาจจะมี อีกตานึงมี 8 ค่ำ แปล ต้องมีสิ่งที่เราจะเอามาดำเนินการเนี่ย ชื่อคอลัมน์จะต้องเหมือนกัน นะคะ คำสั่งจะมีอยู่ 4 คำสั่งด้วยกัน อันแรก คำสั่ง regedit หรือถ้าใน ระบบจัดการฐานข้อมูลภาษาที่ใช้ภาษา SQL เราจะใช้คำสั่งเรียกว่า Siri นะคะ เดี๋ยวประมาณอีก 2 สัปดาห์ ต้องได้พิมพ์ ลองทำโค้ดภาษา SQL ดู ซึ่งการกระทำเพื่อแสดงข้อมูลในเรคคอร์ดของตารางนั้นๆจะต้องตรงตามเงื่อนไขที่ระบุ เงื่อนไขที่ใช้จะใช้คำว่า where เช่น a Vegetable อันนี้เป็นต้นนะคะ เดี๋ยวตอนที่เราทำ โปรแกรมจริงๆอ่ะนักศึกษาจะเห็นภาพได้เข้าใจมากกว่านี้ อันนี้เป็นแค่การเกริ่นก่อนเฉยๆ หาว่า เราจะต้องเจอคำสั่งพิเศษอะไรบ้างในการจัดการฐานข้อมูล ตัวอย่างเดิมค่ะตาราง a กับ B ตัวอย่างอาจารย์อาจจะเห็นว่าเอ๊ะ Column มันก็ยังเท่ากันนี่แต่ก็ เพื่อให้เห็นภาพที่ชัดเจนนะคะอาจารย์จะเลยจะยังยกตัวอย่างเป็นแบบนี้ก่อน บอกให้คำสั่ง Siri หรือ Racing นะคะจะต้องมาคู่กับคำว่าเสมอ อย่างเช่น ขึ้นต้นด้วยดีก็คือในตารางดี ให้ดูที่เงื่อนไขซิตี้ซิตี้ตรงนี้แปลว่าชื่อเมืองนะคะ ในตาราง B ค่าของ Column City อันไหน ที่มีค่าเท่ากับชัยนาท ขอดูหน่อยค่ะกำลังดี City ชัยนาทนะคะพอดีว่า City เท่ากับชัยนาท ผลลัพธ์ที่ได้จะต้อง แสดงผลลัพธ์ของ TF2 ทั้งหมด นะคะ เงื่อนไขในตารางบีจังหวัด ข้อมูลอะไรที่มีข้อมูลว่าชัยนาท เราต้องยกมาทั้งหมดมาแสดงผล เป็นโปรเจคนะคะก็จะเป็นการเลือกข้อมูลทุกๆแถวโดยเลือกมาเพียงแค่บางคอลัมน์ เห็นอาจารย์อยากดูแค่รหัสนักศึกษากับชื่อ ก็แสดงผลแค่ชื่อกับรหัสนักศึกษา โดยที่ในตารางข้อมูลศึกษาอาจจะมีคอลัมน์ประมาณ 20 คอลัมน์ แปล อาจารย์อยากดูแค่ 2 คอลัมน์นี้เท่านั้น เราจะใช้คำสั่งที่เกี่ยวข้องกับ การเรียกดูข้อมูล คือมันจะเป็นคำสั่งเกี่ยวกับการทำโปรเจคนั่นเอง รูปแบบคำสั่งก็จะขึ้นต้นด้วยชื่อตารางแล้วตามด้วยเงื่อนไข ตารางเดิมค่ะตารางเดิม คำสั่งในวงเล็บ SMM กับเอดส์ นะคะก็คือ อธิบายคือ เอาข้อมูลในตาราง a เท่านั้น อยู่ใน Column name และคอลัมน์ ผลลัพธ์ที่ได้ แสดงผลแค่นี้ จากตอนแรกมันมีแค่ 14 ค่ำใช่ไหมคะ 1 2 3 อาจารย์ให้แสดงผลแค่เฟซ name เท่านั้น นี่คือการทํางานของคําสั่ง project เผื่อจะมีเป็นร้อยคนละมาจากไหนจะเรียกดูแค่ คอลัมน์ที่น่าสนใจ จะใช้คำสั่ง project นะคะ เดี๋ยวภาษาโปรแกรมยังมีอีกเยอะค่ะนี่แค่ตัวอย่างคร่าวๆว่าเนาะ อย่างเช่น ผลลัพธ์ทำไมมันโชว์แค่ รหัส s1 คำสั่งที่จะต้องใช้คืออะไร เงื่อนไขของคำสั่งคือดูในตารางบี หน่วยค่าของคอลัมน์ City มีค่าเท่ากับ แบงค์คอก แล้วให้แสดงผลเฉพาะ f Sharp เท่านั้น กูอยากรู้แค่รหัส มีเมืองที่อยู่ในเมืองกรุงเทพฯ นะคะ ก็ส่งแค่ s1 เท่านั้น จากเมื่อก่อนนี้เรียกว่า Where City กลับ Bangkok ปกติแล้วมันแสดงข้อมูลทุกๆคนใช่ไหมคะ แต่ถ้าตามกำหนดให้มาแสดงแค่คอลัมน์ใดคอลัมน์หนึ่งเท่านั้น ก็สามารถทำได้ ความสามารถของคำสั่ง project ประมาณคำสั่งจอยค่ะจะเป็นการกระทำเพื่อแสดงข้อมูลที่เป็นไปได้ทั้งหมด ซึ่งเกิดจากการเชื่อมโยงข้อมูลของ 2 ตารางขึ้นไป โดยที่กำหนดค่าคอลัมน์หรือว่าอาทิตย์อยู่ที่เหมือนกัน อาจจะเป็นคอลัมเดียวหรือมากกว่าก็ได้ นะคะ แต่ที่สำคัญคือคอลัมน์จะต้องชื่อเหมือนกันโดเมนของข้อมูลต้องเท่ากัน คำสั่งก็คือ A B มาดูตัวอย่างกัน จอยนะคะ จะคล้ายๆกับยูเนี่ยน แต่เงินไขคือจะต้องมีโดเมนหรือว่า Column ที่เท่ากันถึงจะจอยได้ นะคะ อย่างตัวนี้มี 2 คนล่ำ มี 2 คอลัมน์ รายการข้อมูลที่ซับซ้อนกัน อยู่ในรูปแบบคล้ายๆกับคำสั่งอยู่เนี่ย นะคะ เช่นตัวนี้คำสั่งจอย มีอะไรที่เหมือนกัน City ใช่ไหมคะ hib มี 6 คอลัมน์นะคะ City เหมือนกัน แต่เนื่องจาก พี่บิวที่มีคำว่า City เหมือนกันเนี่ย มันจะต้องดูพิจารณาในเรคคอร์ดของ รหัสด้วย เพราะฉะนั้นถ้า มันเกินมา มันเกินแล้วต้องทำข้อมูลซ้ำ ให้เกิดขึ้นอันนี้ก็จะเป็นอีก รูปแบบหนึ่งของการทำงานคือเติมข้อมูลเข้าไป นะคะ เพื่อให้ผลลัพธ์ที่ได้ในทุกๆ Records นะคะมีค่า except ก็คือที่เท่ากัน เดี๋ยวนี้เราจะไปดูอีกทีนึงนะคะ ในตอนที่เราทำ โปรแกรมเลย ตอบมา จะเป็นการแสดงข้อมูลจาก 2 รีเลชั่น โดยที่ รีเลชั่นหรือว่าทั้งสองตารางเนี่ยมีแอตทริบิวต์หรือรอบมีคอลัมน์เนี่ยอย่างน้อย 1 คอลัมน์ที่เหมือนกัน กดรับจากคอลัมน์นะคะ จากตารางที่มีจำนวนอธิบดีมากกว่าเนี่ย จะถูกจับคู่ คอลัมน์หนึ่งที่มีคอลัมน์ของตารางที่มีคอลัมน์น้อยกว่า คำสั่งรูปแบบก็คือ a b y by B มันจะเป็นคล้ายๆกับการหาร นะคะ การเป็นตัวหาร นะคะ ต้องเป็นสับเซต ของตัวตั้ง ก็คือในตัวตั้งมี a ไหมมี มีไหมมีไหมมี รับทุกตัวคือตัวที่แมทกับตัวหาร อะไรบ้างที่อยู่ใน A AV XYZ มีมีแค่ X C มีแค่ x เพราะฉะนั้น สิ่งที่ เอา ABC หารได้ครบทุกตัว มีแค่ตัวเดียว ก็คือตรงตามเงื่อนไขทั้งหมด น่าจะมีการตั้งเงื่อนไขมา แล้วมีแค่ X ตัวเดียวเท่านั้นที่เข้าตรงทุกเงื่อนไข 3 เงื่อนไขที่เราต้องตั้งไว้ อันนี้จะใช้ตอนที่เราค้นหาข้อมูลอย่างเช่นใน อาจารย์อยากได้กระเป๋า สีแดงมี 6 ล้อลาก เงื่อนไข กระเป๋าสีแดง 6 ล้อ อาจจะมีผลลัพธ์ที่ตรงตามเงื่อนไขที่ฉันต้องการแค่ อย่างเดียวเท่านั้น เป็นต้น ราคาเป็นต้น ตัวอย่าง ข้อมูล ในตาราง A มีข้อมูล ตามนี้ ตารางดีมีคอลัมน์เดียวคือตัวนี้ 2:00 น ให้ a d y B B ก็คือ มีข้อมูล P2 อยู่ในชุดข้อมูลอะไรบ้างของเอ E2 อันนี้ปี 2 เพราะฉะนั้นผลลัพธ์ที่ได้จะมีแค่ สองรักคอร์ด เท่านั้น ที่มี P2 อยู่ด้วย อันนี้ก็จะยัง ตรงตามเงื่อนไข เพิ่มอีก ที่ 1 ปี 2 ปี 3 ปี 6 S2 มีแค่นี้ มีแค่นี้มีส่ง S4 มีแค่นี้ไม่ตรง มีที่ตรงแค่ s1 เท่านั้นที่เอาบีทุกตัว หารไม่ลงตัว I คือหลักการ นะคะ ปัญหานั่นแหละต้องหาลงตัวนะคะ วันนี้จะประมาณนี้เพราะว่าเดี๋ยว อาจจะให้เช็คโปรแกรมค่ะ เนื้อหาจะมีแค่นี้เดี๋ยวจะเช็คในห้องแลปว่า โปรแกรมที่จะใช้สมบูรณ์หรือเปล่า ก็วันนี้ก็น่าจะ แม่จ๋าจะประมาณนี้ค่ะเพราะเดี๋ยวจะให้เช็ค โปรแกรมในห้องเรียน นะคะ เหนื่อย ป้านิดนึงเพราะว่าหลังปีใหม่ขอเช็คโปรแกรมก่อน สัปดาห์หน้าอาจจะเริ่มใช้โปรแกรมอาทิตย์นี้ก็เลยเดี๋ยว มหาสมุทรเท่านี้ เดี๋ยวเรามาเช็คดูว่าห้องเรียนเรา ใช้โปรแกรมได้หรือเปล่า นะคะ วันนี้ก็ขอบคุณล่ามกับขอบคุณค่ะความด้วยนะคะประมาณนี้ค่ะเพราะว่าเดี๋ยวเช็คห้องแลปก่อน ขอบคุณมากค่ะ