โอเคค่ะ
เดี๋ยวเริ่มเลยละกันนะคะ วันนี้จะเป็นบทที่ 7
หลังปีใหม่
อะไรจะไม่เยอะ
นะคะ นิดเดียว
แล้วก็วันนี้
ไม่มีการบ้าน
เฉพาะอาทิตย์นี้เท่านั้นนะคะ ถึงให้ปีใหม่
บทนี้นะคะ จะเป็นเกี่ยวกับวิชาคณิตเชิงสัมพันธ์ก็จะเป็นกระบวนการ
โดยใช้
คณิตศาสตร์
อย่างง่าย
นะคะ ที่เอามาเป็นตัวกระทำในการจัดการฐานข้อมูลของเราด้วย
โดยเพชรชนิดเชิงสัมพันธ์
หรือว่าเป็นเกี่ยวกับโครงสร้างในการ
Query ข้อมูล คือการ
การข้อมูลของเรา
นะคะ จะเป็นการกระทำที่เกิดขึ้นกับตาราง หรือความสัมพันธ์
นะคะ ที่เราสร้างตารางใหม่
ขึ้นมานะคะ มันจะเป็นแบบจำลองของการกระทำต่าง ๆ ที่อาจจะเกิดขึ้น
กับข้อมูลในฐานข้อมูลของเรา
นะคะ ซึ่งส่วนมากจะเป็นการกระทำพื้นฐาน
นะคะ
โดยมันจะมีอยู่ 2 กลุ่มคือแบบดั้งเดิม
กับแบบพิเศษ
จะเป็นอย่างละ 4 ตัว
นะคะ แบบดั้งเดิมก่อนนะคะ ภาษาอังกฤษก็คือ intersectionที่นั่น
นะคะ ก็จะเป็นการกระทำที่เกิดขึ้นกับตารางหรือความสัมพันธ์โดยอาศัยทฤษฎีของเซต
ซึ่งเราเคยเรียนเซตมาแล้ว ในวิชาคณิตศาสตร์
โดยที่ตารางหรือความสัมพันธ์ที่เกิดขึ้นเนี่ย
จะมีการกระทำ
ต้องมี Attribute คือในตารางจะต้องมีข้อมูลเกิดขึ้น
เช่นตารางนักศึกษาก็จะมี Attribute หรือว่าข้อมูลที่เรามีก็คือ
ชื่อนามสกุลเป็นต้น
การกระทำของกลุ่มที่เป็นแบบดั้งเดิม
จะมีอยู่ 4 อย่าง
มี product มี ๊ืรนื อินเตอร์เซคแล้วก็มีประเด็น
วันนี้จะต้องเป็นภาษาอังกฤษ
เพราะว่าคำสั่ง
ในระบบจัดการฐานข้อมูล
ก็จะเป็นภาษาอังกฤษมานี้นะคะ
อันแรก Product นะคะ
เป็นการกระทำที่ให้มันแสดงข้อมูลทุก ๆ บรรทัด
หรือทุก ๆ เล็กคอร์ดที่เรามี
ที่สามารถเป็นไปได้โดยการจับคู่
ผลคูณคาร์ทีเซียน
นี่ก็เป็นคณิตศาสตร์อย่างง่าย
นะคะ คำสั่งของภาษาที่ใช้ในการจัดการฐานข้อมูลจะใช้คำว่า Time
T-i-m-e-s รูปแบบของมันก็คือ
ในกรอบสี่เหลี่ยมนะคะ ก็คือเอาเองกับบีมันมา
คูณกัน
เดี๋ยวจะมีตัวอย่างให้ดู
อย่างเช่นตัวอย่างนะคะ
การเขียนให้ดูก่อน
เมื่อกี้
a กับ B
นี่
ถ้าคำสั่ง product หรือคำสั่งค่าในฐานข้อมูลในระบบจัดการฐานข้อมูลใช้คำสั่ง Time
ก็คือเอาทุกตัว
เป็นไปได้ มาคูณกัน
a คูณ x a คใช่ไหมคะ
b e x y B x b y
คำสั่งนี้จริง ๆ
จับคู่ทุกตัวที่เป็นไปได้
นะคะ
อันนี้จะยังง่ายอยู่
ยังอีก
เหมือนในตัวอย่างค่ะ มีตาราง A
มี
ตาราง B สั่งให้มัน
คูณกันก็คือเป็น a time B
ผลลัพธ์ที่ได้
ก็จะเป็นทุกตัวที่ a กับ B มันสามารถจับคู่กันได้
คำสั่งนี้
จะง่ายคือ 3 คูณ 3 ได้ 9 ต้องได้ 9 Records 9 แถวนั้นเอง
ถ้าจะเช็ค
แนวข้อสอบก็ไม่ออกนะนะคะ
ยัง ๆ
ต่อมา Union อันนี้ก็เป็นทฤษฎีเซตเหมือนกัน
ก็จะเป็นการรวมกันของข้อมูล 2 ตารางหรือว่า 2 รีเลชั่น
เพื่อแสดงข้อมูลทุก ๆ เรื่องของเรื่องคือทุก ๆ แถว
ในรูปแบบของยูเนี่ยนตามทฤษฎีของเซต
คำสั่งก็คือ
ยูเนี่ยนนะคะ
a Union b คือเอา A กับ ฺ ฺมารวมกัน
ตัวนี้
มีตาราง a กับตาราง B
ทฤษฎีเซตของยูเนี่ยนนะคะ จะสังเกตได้ว่าข้อมูลมันมีข้อมูลซ้ำกัน
ข้อมูล
ตาราง A ก็มี
ตาราง ก็มี
ตามทฤษฎียูเนี่ยนนะคะ
ถ้ามันซ้ำกันเราก็เอามาแค่ข้อมูลเดียว
จะเห็นว่าจากสี Records ก็คือสีแถวข้อมูลนะคะ
แต่ว่าอันนี้ ตาราง A ก็มีแต่รังบีก็มีมันซ้ำกัน
เราจะนับเป็นแค่ 1 ข้อมูลเท่านั้น
นะคะ
พอมันเอามายูเนี่ยนกันข้อมูลจาก 4
บรรทัด
จะเหลือแค่ 3 บรรทัดเพราะว่า s1
ไม่มีทั้ง 2 ตารางก็คือ a b เลย
ตามทฤษฎียูเนี่ยน
นะคะ
ส่วนที่ทับซ้อนกันก็เอาแค่ข้อมูลเดียว
ต่อมา
intersection ก็ตามทฤษฎีเซตเหมือนกันค่ะ
มันจะเป็นการกระทำเพื่อแสดงข้อมูลของตารางหรือ
เร็กคอร์ดที่ปรากฏอยู่ทั้ง 2 ตาราง
ที่มันทับซ้อนกันนั่นแหละ
ในรูปแบบของ intersection ตามทฤษฎีของเซต
คำสั่งก็คือ
intersection ให้ a intersection b
ตัวอย่าง
ตารางเดิมเลยค่ะ A กับ B
ข้อมูลไหนที่ทับซ้อนกัน
คือข้อมูล s1
มันมีทั้ง 2 ตาราง A กับ
B เราจะแสดงผลเฉพาะตารางที่มันทับซ้อนกันเท่านั้น
เพราะฉะนั้นคำสั่ง a intersection b จะมีผลลัพธ์แค่
Accord เท่านั้นก็คือ
ทฤษฎีของเซต
นะคะ
ก็เป็นการกระทำเพื่อแสดงข้อมูลของแถวนั้น ๆ ที่ปรากฏอยู่ในตาราง
หนึ่ง แต่ตารางหนึ่งไม่มีนะคะ ก็คือ
อะไรก็ตามที่อยู่ในตารางนั้นแต่ไม่อยู่กับกี่ตาราง 1 คำสั่งที่ใช้
คือคำสั่
ง Minas แปลเป็นภาษาไทยคือเครื่องหมายลบแล้วนี่ไม่เอา
อย่างเช่นที่อยู่ในเอ
แต่ไม่อยู่ใน B
เมื่อคืนเหมือนตัวที่ทำไฮไลท์สีเหลืองไว้
ตารางเดิมเลยค่ะ
ให้คำสั่ง A
ไป Minas B
อะไรที่อยู่ใน A ไม่อยู่ใ
น B อันนี้ไม่ใช่แน่นอนเพราะ s1 มีทั้ง a ทั้ง B เพราะฉะนั้น
ไม่นะ
B ว่าจะเป็น S4
ในทางกลับกันค่ะ B ก็คืออยู่ในบีแต่ไม่อยู่ใน A
อยู่ดี ๆ
S2
S1 ไม่ได้ s1 อยู่ในเองเหมือนกัน
ในทางกลับกันจะเป็นแบบนี้
นะคะ ขึ้นอยู่กับว่าเราจะเอาข้อมูลจากตารางไหนเราจะเอาข้อมูลในวันข้างหน้า
นะคะ ถ้าอยู่ใน a ไม่อยู่ใน B จะเป็นแบบนี้ จะเขียนแบบนี้นะคะ
แต่ถ้าอยู่ใน
B ไม่อยู่ใน a ก็จะเขียนขึ้นต้นด้วย B นำหน้าแบบนี้
ไม่ใช่ว่าทุกตารางจะชื่อ A กับ B นะคะ แล้วแต่ว่า
ตารางที่นักศึกษา
ได้ทำ
ชื่อตารางอะไร อย่างเช่นตาราง Student
Student แล้วก็ Minas Address ก็ได้นะคะ
อยู่ในตาราง student แต่ไม่อยู่ในร้าน Address
ก็ว่าไป
นะคะ
ต่อมาจะเป็น
ตัวดำเนินการแบบ
พิเศษนะคะ เป็น Special ซึ่งมันจะแตกต่างจาก
รูปแบบการทำงานของเซตโดยทั่วไป
นะคะ โดยการกระทำของกลุ่มที่จะเป็น Special หรือแบบพิเศษนี่
ไม่จำเป็นจะต้องมีจำนวน Attribute เท่ากัน
Attribute คืออะไร คือตัวนี้
คอลัมน์นะคะ
ถ้าเป็นแบบ Credit analyst เนี่
อลัมน์ทั้ง 2 ตาราง 13 ตารางต้องเท่ากัน
เท่านั้น
ถ้าเป็น Special คือ
คอลัมน์หรือ senior
ไม่จำเป็นจะต้องมีจำนวนเท่ากัน
ไม่จำเป็น
ซึ่งคำสั่ง
พวกนี้นี่ จะถูกเรียกใช้บ่อยเพราะว่าฐานข้อมูล
ข้อมูลอาจจะมีตารางที่บรรจุอยู่
รูปแบบที่แตกต่างกันไปนะคะ
โดย
ถึงแม้มันจะไม่มี Attribute ที่เท่ากัน ก็คอคอลัมน์ไม่เท่ากันนั่นแหละ
Attributeของทั้ง 2 ตาราง
จะถูกนำมาใช้
จะต้องมีเงื่อนไข
ต้องมีชื่อโดเมนของข้อมูลชื่อเดียวกัน
ชื่อคอลัมน์เดียวกัน
อาจจะเป็น
ชื่อตารางใด ๆ
ในตารางนั้นอาจจะมี
10 คอลัมน์ อีกตารางหนึ่งมี 8 ค่ำ
แปล
ต้องมีสิ่งที่เราจะเอามาดำเนินการเนี่ย
ชื่อคอลัมน์จะต้องเหมือนกัน
นะคะ
คำสั่งจะมีอยู่ 4 คำสั่งด้วยกัน
อันแรก
คำสั่ง regedit
หรือถ้าใน
ระบบจัดการฐานข้อมูลภาษาที่ใช้ภาษา SQL
เราจะใช้คำสั่งเรียกว่า
Select นะคะ
เดี๋ยวประมาณอีก 2 สัปดาห์
ต้องได้พิมพ์
ลองทำโค้ดภาษา SQL ดู
ซึ่งการกระทำเพื่อแสดงข้อมูลในเรคคอร์ดของตารางนั้น ๆ จะต้องตรงตามเงื่อนไขที่ระบุ
เงื่อนไขที่ใช้จะใช้คำว่า where
เช่น
a Vegetable อันนี้เป็นต้นนะคะ
แต่เดี๋ยวตอนที่เราทำ
โปรแกรมจริง ๆ น่ะ นักศึกษาจะเห็นภาพได้เข้าใจมากกว่านี้
อันนี้เป็นแค่การเกริ่นก่อนเฉย ๆ
ว่า
เราจะต้องเจอคำสั่งพิเศษอะไรบ้าง ในการจัดการฐานข้อมูล
ตัวอย่างเดิมค่ะ ตาราง a กับ B
ตัวอย่างอาจารย์อาจจะเห็นว่า เอ๊ะ Column มันก็ยังเท่ากันนี่ แต่ก็
เพื่อให้เห็นภาพที่ชัดเจนนะคะ อาจารย์จะเลยจะยังยกตัวอย่างเป็นแบบนี้ก่อน
พอเชาให้คำสั่ง
Select หรือ Racing นะคะ จะต้องมาคู่กับคำว่าเสมอ
อย่างเช่น
ขึ้นต้นด้วยดีก็คือในตารางดี
ให้ดูที่เงื่อนไข City Cตรงนี้แปลว่าชื่อเมืองนะคะ
ในตาราง B
ค่าของ Column City
อันไหน
ที่มีค่าเท่ากับชัยนาท
ขอดูหน่อยค่ะ
ตาราง D City
ชัยนาทนะคะ พอดีว่า City เท่ากับชัยนาท
ผลลัพธ์ที่ได้จะต้อง
แสดงผลลัพธ์ของ
S2
ทั้งหมด
นะคะ
เพราะว่าเงื่อนไขในตาราง B จังหวัด
ข้อมูลอะไรที่มีข้อมูลว่าชัยนาท
เราต้องยกมาทั้งหมดมาแสดงผล
ต่อมาเป็นโปรเจกต์นะคะ ก็จะเป็นการเลือกข้อมูลทุก ๆ แถว โดยเลือกมาเพียงแค่บางคอลัมน์
อาจารย์อยากดูแค่รหัสนักศึกษากับชื่อ
ก็แสดงผลแค่ชื่อกับรหัสนักศึกษา
โดยที่ในตารางข้อมูลศึกษาอาจจะมีคอลัมน์ประมาณ 20 คอลัมน์
ก็ได้
แต่อาจารย์อยากดูแค่ 2 คอลัมน์นี้เท่านั้น
เราจะใช้คำสั่งที่เกี่ยวข้องกับ
การเรียกดูข้อมูล
คือมันจะเป็นคำสั่งเกี่ยวกับการทำโปรเจกต์นั่นเอง
รูปแบบคำสั่งก็จะขึ้นต้นด้วยชื่อตารางแล้วตามด้วยเงื่อนไข
ตารางเดิมค่ะ ตารางเดิม
คำสั่ง A ในวงเล็บ
Sname กับ
age นะคะ ก็คือ
อธิบายคือ
เอาข้อมูลในตาราง a เท่านั้น
อยู่ใน Column Sname
และคอลัมน์
Age ผลลัพธ์ที่ได้
แสดงผลแค่นี้
จากตอนแรกมันมีแค่ 14 คอลัมน์ใช่ไหมคะ 1 2 3
อาจารย์ให้แสดงผลแค่
Sname กับ age เท่านั้น
นี่คือการทํางานของคําสั่ง project
เผื่อจะมีเป็นร้อยคนละมาจากไหนจะเรียกดูแค่
คอลัมน์ที่น่าสนใจ
เราจะใช้คำสั่ง project
นะคะ
เดี๋ยวภาษาโปรแกรมยังมีอีกเยอะค่ะ นี่แค่ตัวอย่างคร่าว ๆ ว่า
นะ หรืออย่างเช่น
ผลลัพธ์ทำไมมันโชว์แค่
รหัส s1
คำสั่งที่จะต้องใช้คืออะไร
เงื่อนไขของคำสั่งคือดูในตาราง
B โดยค่าของคอลัมน์ City
มีค่าเท่ากับ
Bankokแล้วให้แสดงผลเฉพาะ
S Sharp เท่านั้น
ครูอยากรู้แค่รหัส
มีเมืองที่อยู่ในเมืองกรุงเทพฯ
นะคะ
ก็ส่งแค่ s1 เท่านั้น
จากเมื่อก่อนนี้เรียกว่า Where City
กลับ Bangkok
ปกติแล้วมันแสดงข้อมูลทุก ๆ คนใช่ไหมคะ
แต่ถ้าตามกำหนดให้มาแสดงแค่คอลัมน์ใดคอลัมน์หนึ่งเท่านั้น
อันนี้คือสามารถทำได้
ความสามารถของคำสั่ง project
ประมาณคำสั่งจอยค่ะ จะเป็นการกระทำเพื่อแสดงข้อมูลที่เป็นไปได้ทั้งหมด
ซึ่งเกิดจากการเชื่อมโยงข้อมูลของ 2 ตารางขึ้นไป
โดยที่กำหนดค่าคอลัมน์หรือว่าอาทิตย์อยู่ที่เหมือนกัน
อาจจะเป็นคอลัมเดียวหรือมากกว่าก็ได้
นะคะ
แต่ที่สำคัญคือคอลัมน์จะต้องชื่อเหมือนกันโดเมนของข้อมูลต้องเท่ากัน
คำสั่งก็คือ A join B
มาดูตัวอย่างกัน
join นะคะ
จะคล้าย ๆ กับ
Unoin แต่เงินไขคือจะต้องมีโดเมนหรือว่า Column ที่เท่ากันถึงจได้
นะคะ
อย่างตัวนี้มี 2 คนล่ำ
มี 2 คอลัมน์
รายการข้อมูลที่ซับซ้อนกัน
อยู่ในรูปแบบคล้าย ๆ กับคำสั่ง
Unoiนะคะ
เช่นตัวนี้คำสั่งจอย
มีอะไรที่เหมือนกัน
City
ใช่ไหมคะ
A join B มี 6 คอลัมน์นะคะ
City เหมือนกัน
แต่เนื่องจาก
Attribute ที่มีคำว่า City เหมือนกันนี่
มันจะต้องดูพิจารณาใน Reของ
รหัสด้วย
เพราะฉะนั้นถ้า
มันเกินมา
มันเกินแล้วต้องทำข้อมูลซ้ำ
ให้เกิดขึ้นอันนี้ก็จะเป็นอีก
รูปแบบหนึ่งของการทำงานคือเติมข้อมูลเข้าไป
นะคะ
เพื่อให้ผลลัพธ์ที่ได้ในทุก ๆ
Records นะคะ มีค่า Attribute ก็คือที่เท่ากัน
เดี๋ยวนี้เราจะไปดูอีกทีหนึ่งนะคะ
ในตอนที่เราทำ
โปรแกรมเลย
ตอบมา
จะเป็นการแสดงข้อมูลจาก 2 รีเลชั่น
โดยที่
รีเลชั่นหรือว่าทั้ง 2 ตารางนี่ มีAttribute หรือรอบมีคอลัมน์เนี่ยอย่างน้อย 1 คอลัมน์ที่เหมือนกัน
กดรับจากคอลัมน์นะคะ
จากตารางที่มีจำนวน Attribute มากกว่านี่
จะถูกจับคู่
คอลัมน์หนึ่งที่มีคอลัมน์ของตารางที่มีคอลัมน์น้อยกว่า
คำสั่งรูปแบบก็คือ a b y by B
มันจะเป็นคล้าย ๆ กับการหาร
นะคะ คำ
สั่งตัวนี้ การเป็นตัวหาร
นะคะ
ต้องเป็นสับเซต
ของตัวตั้ง
ก็คือในตัวตั้งมี a ไหม B มี
มี C ไหม มีไ
รับทุกตัวคือตัวที่แมตกับตัวหาร
อะไรบ้าง ที่อยู่ใน A
AV XYZ
มีมีแค่ X C มีแค่ x
เพราะฉะนั้น
สิ่งที่
เอา ABC หารได้ครบทุกตัว
มีแค่ X ตัวเดียว
ก็คือตรงตามเงื่อนไขทั้งหมด
เราอาจจะมีการตั้งเงื่อนไขมา
แล้วมีแค่ X ตัวเดียวเท่านั้น ที่เข้าตรงทุกเงื่อนไข 3 เงื่อนไข ที่เราต้องตั้งไว้
อันนี้จะใช้ตอนที่เราค้นหาข้อมูลใน Gooogle อย่างเช่นใน
อาจารย์อยากได้กระเป๋า
สีแดงมี 6 ล้อลาก
เงื่อนไข
กระเป๋าสีแดง
6 ล้อ
อาจจะมีผลลัพธ์ที่ตรงตามเงื่อนไขที่ฉันต้องการแค่
อย่างเดียวเท่านั้น
เป็นต้น
นะคะ เป็นต้น
ตัวอย่าง
ข้อมูล
ในตาราง A มีข้อมูล
ตา
มนี้ ตาราง B มีคอลัมน์เดียวคือตัวนี้
ให้ a d y B B ก็คือ
มีข้อมูล P2
อยู่ในชุดข้อมูลอะไรบ้าง ของเอ
E2
อันนี้ P2
เพราะฉะนั้น ผลลัพธ์ที่ได้จะมีแค่
2 giคอร์ด
เท่านั้น
ที่มี P2 อยู่ด้วย
อันนี้ก็จะยัง
ตรงตามเงื่อนไข
ถ้าเพิ่มอีก
P1
P2 P3 ป6
S2 มีแค่นี้
มีแค่นี้มีส่ง S4 มีแค่นี้ไม่ตรง
มีที่ตรงแค่ s1 เท่านั้นที่เอา B ทุกตัว
หารไม่ลงตัว
I คือหลักการ
นะคะ
หารนั่นละต้องหาลงตัวนะคะ
วันนี้จะประมาณนี้เพราะว่าเดี๋ยว
อาจจะให้เช็คโปรแกรมค่ะ
เนื้อหาจะมีแค่นี้เดี๋ยวจะเช็กในห้องแลปว่า
โปรแกรมที่จะใช้สมบูรณ์หรือเปล่า
ก็วันนี้ก็น่าจะ
เนื้อหาจะประมาณนี้ค่ะ เพราะเดี๋ยวจะให้เช็
กโปรแกรมในห้องเรียน
นะคะ
นิดหนึ่งเพราะว่าหลังปีใหม่ขอเช็คโปรแกรมก่อน
สัปดาห์หน้าอาจจะเริ่มใช้โปรแกรมอาทิตย์นี้ก็เลยเดี๋ยว
เท่านี้
เดี๋ยวเรามาเช็กดูว่าห้องเรียนเรา
ใช้โปรแกรมได้หรือเปล่า
นะคะ
วันนี้ก็ขอบคุณล่ามกับขอบคุณค่ะ ถอดความด้วยนะคะ ประมาณนี้ค่ะ เพราะว่าเดี๋ยวเช็คห้องแลปก่อน
ขอบคุณมากค่ะ