(อาจารย์เกวลี) โอเคค่ะ
เดี๋ยวเริ่มเลยละกันนะคะ วันนี้จะเป็นบทที่ 7
หลังผีใหม่สไลด์อะไรจะไม่เยอะ
นะคะ นิดเดียว
แล้วก็วันนี้
ไม่มีการบ้าน
มีการบ้าน
เฉพาะอาทิตย์นี้เท่านั้นนะคะ ให้ปีใหม่
บทนี้นะคะ จะเป็นเกี่ยวกับวิชาคณิตเชิงสัมพันธ์ เป็นกระบวนการ
โดยใช้
คณิตศาสตร์
อย่างง่าย
นะคะ เที่ยวมาเป็นตัวกระทำในการจัดการฐานข้อมูลของเราด้วย
โดยพีชคณิตเชิงสัมพันธ์
หรือว่าเป็นเกี่ยวกับโครงสร้างในการ
Query ข้อมูล คือ การ
การข้อมูลของเรา
จะเป็นการกระทำที่เกิดขึ้นกับตารางหรือความสัมพันธ์
นะคะ ที่เราสร้างตารางใหม่
ขึ้นมานะคะ มันจะเป็นแบบจำลองของการกระทำต่าง ๆ ที่อาจจะเกิดขึ้น
กับข้อมูลในฐานข้อมูลของเรา
ซึ่งส่วนมากจะเป็นการกระทำพื้นฐาน
นะคะ
โดยมันจะมีอยู่ 2 กลุ่ม คือ แบบดั้งเดิม
กับแบบพิเศษ
จะเป็นอย่างละ 4 ตัว
นะคะ แบบดั้งเดิมก่อนนะคะ ภาษาอังกฤษก็คือ
น Transaction นะคะ ก็จะเป็นการกระทำที่เกิดขึ้นกับตารางหรือความสัมพันธ์โดยอาศัยทฤษฎีของเซต
ซึ่งเราเคยเรียนเซตมาแล้วในวิชาคณิตศาสตร์
นะคะ โดยที่ตารางหรือความสัมพันธ์ที่เกิดขึ้น
นี่ จะมีการกระทำ
จะต้องมี Attribute คือในตารางจะต้องมีข้อมูลเกิดขึ้น
เช่นตารางนักศึกษาก็จะมี Attribute หรือว่าข้อมูลที่เรามีก็คือ
ชื่อนามสกุลเป็นต้น
การกระทำของกลุ่มที่เป็นแบบดั้งเดิม
จะมีอยู่ 4 อย่าง
มี product
วันนี้จะต้องเป็นภาษาอังกฤษ
เพราะว่าคำสั่ง
ในระบบจัดการฐานข้อมูล
ก็จะเป็นภาษาอังกฤษมานี้นะคะ
อันแรก Prโปรดักส์นะคะ
เป็นการกระทำที่ให้มันแสดงข้อมูลทุก ๆ บรรทัด
หรือทุก ๆ เล็กคอร์ดที่เรามี
ที่สามารถเป็นไปได้โดยการจับคู่
ผลคูณคาร์ทีเซียน
อันนี้ก็เป็นคณิตศาสตร์อย่างง่าย
คำสั่งของภาษาที่ใช้ในการจัดการฐานข้อมูลจะใช้คำว่า Time
s
รูปแบบของมัน ก็คือ
ในกรอบสี่เหลี่ยมนะคะ A TIMES B ก็คือ
A กับ B มาคูณดี๋ยวจะมีตัวอย่างให้ดู
อย่างเช่นตัวอย่างนะคะ
การเขียนให้ดูก่อน
เมื่อกี้
a กับ B
นี่
ถ้าคำสั่ง product หรือคำสั่งค่าในฐานข้อมูลในระบบจัดการฐานข้อมูล ใช้คำสั่ง Time
ก็คือเอาทุกตัว
เป็นไปได้มาคูณกัน
AxX A x y ใช่ไหมคะ
b x x B x y B x b y
คำสั่งนี้จริง ๆ
จับคู่ทุกตัวที่เป็นไปได้
นะคะ
อันนี้จะยังง่ายอยู่
ยังอีก
เหมือนในตัวอย่างค่ะ มีตาราง A
มีตาราง B
สั่งให้มัน
คูณกัน ก็คือเป็น a time B
ผลลัพธ์ที่ได้
ก็จะเป็นทุกตัวที่ a กับ B มันสามารถจับคู่กันได้
คำสั่งนี้จริง ๆ
คือ 3 * 3 ได้ 9 ต้องได้ 9 Records 9 แถวนั้นเอง
นะคะ ถ้าจะเช็
ก ในข้อสอบก็ไม่ออกนะนะคะ
อันนี้ยังง่ายอยู่
การ Union อันนี้ก็เป็นทฤษฎีเซตเหมือนกัน
ก็จะเป็นการรวมกันของข้อมูล 2 ตารางหรือว่า 2 Re
lation เพื่อแสดงข้อมูลทุก ๆ เรื่องของเรื่องคือทุก ๆ แถว
ในรูปแบบของยูเนี่ยนตามทฤษฎีของเซต
คำสั่งก็คือ
UNION นะคะ
a Union b คือ เอา aกับb มารวมกัน
ตัวนี้
มีตาราง a กับตาราง B
ทฤษฎีเซตของUNION นะคะ จะสังเกตได้ว่าข้อมูลมันมีข้อมูลซ้ำกัน
อย่างข้อมูล s1
ตาราง A ก็มี
ตาราง B ก็มี
ตามทฤษฎียูเนี่ยนนะคะ
ถ้ามันซ้ำกันเราก็เอามาแค่ข้อมูลเดียว
จะเห็นว่าจากสี Records ก็คือสีแถวข้อมูลนะคะ
แต่ว่าอันเนี้ยกำลังเอกก็มีแต่รังบีก็มีมันซ้ำกัน
เราจะนับเป็นแค่ 1 ข้อมูลเท่านั้น
นะคะ
พอมันเอามายูเนี่ยนกันข้อมูลจาก 4
บรรทัด
จะเหลือแค่ 3 บรรทัดเพราะว่า s1
ไม่มีทั้ง 2 ตารางก็คือ a b เลย
ยูเนี่ยน
นะคะ
ส่วนที่ทับซ้อนกันก็เอาแค่ข้อมูลเดียว
อินเตอร์เซกชัน
ก็ตามทฤษฎีเซตเหมือนกันค่ะ
มันจะเป็นการกระทำเพื่อแสดงข้อมูลของตารางหรือ
Racoard รากฏอยู่ทั้ง 2 ตาราง
ที่มันทับซ้อนกันนั่นแหละ
ในรูปแบบของ intersection ตามทฤษฎีของเซต
คำสั่งก็คือ
อินเตอร์เซค
ให้ a อินเตอร์เซค b
ตัวอย่าง
ตารางเดิมเลยค่ะ A กับ B
ข้อมูลไหนที่ทับซ้อนกัน
คือ ข้อมูล s1
มันมีทั้ง 2 ตาราง
ตาราง A กับตาราง B เราจะแสดงผลเฉพาะตารางที่มันทับซ้อนกันเท่านั้น
เพราะฉะนั้นคำสั่ง a อินเตอร์เซค b จะมีผลลัพธ์แค่
1Record เท่านั้นก็คือ
ทฤษฎีของเซต
นะคะ
เรามา
Difference ก็เป็นการกระทำเพื่อแสดงข้อมูลของแถวนั้น ๆ ที่ปรากฏอยู่ในตาราง
1 อีกแปลตารางหนึ่งไม่มีนะคะ ก็คือ
อะไรก็ตามที่อยู่ในตารางนั้นแต่ไม่อยู่กับกี่ตาราง 1 คำสั่งที่ใช้
คือคำสั่งไว้นะ
MINUS แปลเป็นภาษาไทยคือเครื่องหมายลบแล้วนี่ไม่เอา
อย่างเช่น A MINUS B ที่อยู่ใน
A แต่ไม่อยู่ใน B
เ ก็คือเหมือนตัวที่ทำไฮไลท์สีเหลืองไว้
ตารางเดิมเลยค่ะ
ให้คำสั่ง A
B
อะไรที่อยู่ใน Aไม่อยู่ใน
Bอันนี้ไม่ใช่แน่นอนเพราะ s1 มีทั้ง a ทั้ง B เพราะฉะนั้น
A MINUS B
ก็จะเป็น S4
ในทางกลับกันค่ะ B ก็คืออยู่ในB แต่ไม่อยู่ใน A
อยู่ดี ๆ
S2
S1 ไม่ได้ s1 อยู่ในเองเหมือนกัน
ในทางกลับกันจะเป็นแบบนี้
นะคะ ขึ้นอยู่กับว่าเราจะเอาข้อมูลจากตารางไหน เราจะเอาข้อมูลในวันข้างหน้า
นะคะ ถ้าอยู่ใน a ไม่อยู่ใน B จะเป็นแบบนี้จะเขียนแบบนี้นะคะ
แต่ถ้าอยู่ใน B ไม่อ
ยู่ใน A จะเขียนนำหน้าแบบนี้นะคะ ไม่ใช่ว่าทุกตารางจะชื่อเองกับบีนะคะ แล้วแต่ว่า
ตารางที่นักศึกษา
ได้ทำ
ชื่อตารางอะไร อย่างเช่นตาราง Student
student แล้วก็
MINUS Address ก็ได้นะคะ
อยู่ในตาราง student แต่ไม่อยู่ในร้าน Address
ก็ว่าไป
นะคะ
ต่อมาจะเป็น
ตัวดำเนินการแบบ
พิเศษนะคะ เป็น Special ซึ่งมันจะแตกต่างจาก
รูปแบบการทำงานของเซตโดยทั่วไป
นะคะ โดยการกระทำของกลุ่มที่จะเป็น Special หรือแบบพิเศษนี่
ไม่จำเป็นจะต้องมีจำนวน Attribute เท่ากัน
คิวคืออะไร คือตัวนี้
หมอลำ
นะคะ
ถ้าเป็นแบบ Credit analyst
นี่ คอลัมน์ทั้ง 2 ตาราง 13 ตารางต้องเท่ากัน
เท่านั้น
ถ้าเป็น Special คือ
คอลัมน์หรือ
Attribute ไม่จำเป็นจะต้องมีจำนวนเท่ากัน
ไม่จำเป็น
ซึ่งคำสั่งพวกนี้
นี่ จะถูกเรียกใช้บ่อยเพราะว่าฐานข้อมูล
ข้อมูลอาจจะมีตารางที่บรรจุอยู่
รูปแบบที่แตกต่างกันไปนะคะ
โดย
ถึงแม้มันจะไม่มี Attribute ที่เท่ากันไม่เท่ากันนั่นแหละ
Attribute ของทั้ง 2 ตาราง
จะถูกนำมาใช้
จะต้องมีเงื่อนไข
ต้องมีชื่อโดเมนของข้อมูลชื่อเดียวกัน
ก็คือชื่อคอลัมน์เดียวกัน
อาจจะเป็น
ชื่อตารางใด ๆ
ในตารางนั้นอาจจะมี
10 คอลัมน์
อีกตารางหนึ่งมี 8 คอลัมน์ แ
ต่ต้องมีสิ่งที่เราจะเอามาดำเนินการเนี่ย
ชื่อคอลัมน์จะต้องเหมือนกัน
นะคะ
คำสั่งจะมีอยู่ 4 คำสั่งด้วยกัน
อันแรก
คำสั่ง Restrict
หรือถ้าใน
ระบบจัดการฐานข้อมูลภาษาที่ใช้ภาษา SQL
เราจะใช้คำสั่งเรียกว่า
Select นะคะ
เดี๋ยวประมาณอีก 2 สัปดาห์
ต้องได้พิมพ์
ลองทำโค้ดภาษา SQL ดู
นะคะ ซึ่งการกระทำเพื่อแสดงข้อมูลในเรคคอร์ดของตารางนั้น ๆ จะต้องตรงตามเงื่อนไขที่ระบุ
นะคะ เงื่อนไขที่ใช้จะใช้คำว่า where นะคะ
เช่น
A WHERE X operator Y อันนี้เป็นต้นนะคะ
เดี๋ยวตอนที่เราทำ
โปรแกรมจริง ๆ นี่ นักศึกษาจะเห็นภาพได้เข้าใจมากกว่านี้
อันนี้เป็นแค่การเกริ่นก่อนเฉย ๆ
นะคะ ว่า
เราจะต้องเจอคำสั่งพิเศษอะไรบ้าง ในการจัดการฐานข้อมูลนะคะ
ตัวอย่างเดิมค่ะ ตาราง a กับ B นะคะ
ในตัวอย่างอาจารย์อาจจะเห็นว่าเอ๊ะ Column มันก็ยังเท่ากันนี่ แต่ก็
เพื่อให้เห็นภาพที่ชัดเจนนะคะ อาจารย์จะเลยจะยังยกตัวอย่างเป็นแบบนี้ก่อน
พอใช้คำสั่ง
Select หรือRestrict นะคะ จะต้องมาคู่กับคำว่าเสมอ
อย่างเช่น
ขึ้นต้นด้วยดีก็คือในตาราง
D ให้ดูที่เงื่อนไข City City ตรงนี้แปลว่าชื่อเมืองนะคะ
ในตาราง B
ค่าของ Column City
อันไหน
ที่มีค่าเท่ากับ
chinat ขอดูหน่อยค่ะ
ตาราง D City
ชัยนาทนะคะ พอดีว่า City เท่ากับชัยนาท
ผลลัพธ์ที่ได้จะต้อง
แสดงผลลัพธ์ขอ
งที่ s2
ทั้งหมด
นะคะ
เงื่อนไขในตารางบีจังหวัด
ข้อมูลอะไรที่มีข้อมูลว่าชัยนาท
นะคะ เราต้องยกมาทั้งหมดมาแสดงผล
ต่อมาเป็น Project นะคะ ก็จะเป็นการเลือกข้อมูลทุก ๆ แถวโดยเลือกมาเพียงแค่บางคอลัมน์
เห็นอาจารย์อยากดูแค่รหัสนักศึกษากับชื่อ
ก็แสดงผลแค่ชื่อกับรหัสนักศึกษา
โดยที่ในตารางข้อมูลศึกษาอาจจะมีคอลัมน์ประมาณ 20 คอลัมน์
ก็ได้ แ
ต่อาจารย์อยากดูแค่ 2 คอลัมน์นี้เท่านั้น
เราจะใช้คำสั่งที่เกี่ยวข้องกับ
การเรียกดูข้อมูล
คือ มันจะเป็นคำสั่งเกี่ยวกับการทำ Project นั่นเอง
รูปแบบคำสั่งก็จะขึ้นต้นด้วยชื่อตารางแล้วตามด้วยเงื่อนไข
ตารางเดิมค่ะ ตารางเดิม
คำสั่ง A ในวงเล็บ
S name
= age นะคะ ก็คือ
อธิบายคือ
เอาข้อมูลในตาราง a เท่านั้น
อยู่ใน Column sname
และคอลัมน์
age ผลลัพธ์ที่ได้
จะแสดงผลแค่นี้
จากตอนแรกมันมีแค่ 4 คอลัมน์ใช่ไหมคะ 1 2 3 4
อาจารย์ให้แสดงผลแค่เฟซ name
เท่านั้น
นี่คือการทํางานของคําสั่ง project
นะคะ คือ อาจจะมีเป็นร้อยคอลัมน์ มาจากไหนจะเรียกดูแค่
คอลัมน์ที่น่าสนใจ
จะใช้คำสั่ง project
นะคะ
เดี๋ยวภาษาโปรแกรมยังมีอีกเยอะค่ะ นี่แค่ตัวอย่างคร่าว ๆ ก่
อนนะ หรือ อย่างเช่น
ผลลัพธ์ทำไมมันโชว์แค่
รหัส s1
คำสั่งที่จะต้องใช้คืออะไร
เงื่อนไขของคำสั่ง คือ ดูในตาราง B นะคะ
โดยค่าของคอลัมน์ City
มีค่าเท่ากับ
bangkok แล้วให้แสดงผลเฉพาะ
S# เท่านั้น
ครูอยากรู้แค่รหัส
มีเมืองที่อยู่ในเมืองกรุงเทพฯ
นะคะ
ก็ส่งแค่ s1 เท่านั้น
จากเมื่อก่อนนี้เรียกว่า Where City
เท่ากับ Bangkok
ปกติแล้วมันแสดงข้อมูลทุก ๆ คนใช่ไหมคะ
แต่ถ้าตามกำหนดให้มาแสดงแค่คอลัมน์ใดคอลัมน์หนึ่งเท่านั้น
ะคะ อันนี้คือความสามารถของคำสั่ง project
ประมาณคำสั่ง Join ค่ะ จะเป็นการกระทำเพื่อแสดงข้อมูลที่เป็นไปได้ทั้งหมด
ซึ่งเกิดจากการเชื่อมโยงข้อมูลของ 2 ตารางขึ้นไป
โดยที่กำหนดค่าคอลัมน์หรือว่า Attribute ที่เหมือนกัน
อาจจะเป็นคอลัมเดียว หรือมากกว่าก็ได้
นะคะ
แต่ที่สำคัญคือคอลัมน์จะต้องชื่อเหมือนกันโดเมนของข้อมูลต้องเท่ากัน
คำสั่งก็คือ A B
นะคะ มาดูตัวอย่างกัน
Join นะคะ
จะคล้าย ๆ กับ
UNION แต่เงินไข คือ จะต้องมีโดเมนหรือว่าคอลัมน์ที่เท่ากันถึงจะจอยได้
นะคะ
อย่างตัวนี้มี 2
คอลัมน์ มี 2 คอลัมน์
รายการข้อมูลที่ซับซ้อนกัน
อยู่ในรูปแบบคล้าย ๆ กับคำสั่ง
UNION นะคะ
เช่น ตัวนี้คำสั่งจอย
มีอะไรที่เหมือนกัน
City
ใช่ไหมคะ
A JOIN B อันนี้มี 6 คอลัมน์นะคะ
1 2 City เหมือนกัน
แต่เนื่องจาก
พี่บิวที่มีคำว่า City เหมือนกันเนี่ย
นี่ มันจะต้องดูพิจารณาในเรคคอร์ดของ
รหัสด้วย
เพราะฉะนั้น ถ้า
มันเกินมา
มันเกินแล้วต้องทำข้อมูลซ้ำ
ให้เกิดขึ้น อันนี้ก็จะเป็นอีก
รูปแบบหนึ่งของการทำงาน คือ เติมข้อมูลเข้าไป
นะคะ
เพื่อให้ผลลัพธ์ที่ได้ในทุกๆ
Record นะคะ มีค่า Attribute ก็คือที่เท่ากัน
เดี๋ยวนี้เราจะไปดูอีกทีหนึ่งนะคะ
ในตอนที่เราทำ
โปรแกรมเลย
ต่อมา
จะเป็นการแสดงข้อมูลจาก 2
Relation โดยที่
Relation หรือว่าทั้งสองตารางเนี่ยมีแอตทริบิวต์หรือรอบมีคอลัมน์เนี่ยอย่างน้อย 1 คอลัมน์ที่เหมือนกัน
กดรับจากคอลัมน์นะคะ
จากตารางที่มีจำนวนอธิบดีมากกว่า
นี่ จะถูกจับคู่
คอลัมน์หนึ่งที่มีคอลัมน์ของตารางที่มีคอลัมน์น้อยกว่า
คำสั่งรูปแบบ ก็คือ A DIVIDED BY B
มันจะเป็นคล้าย ๆ กับการหาร
นะคะ
คำสั่งตัวนี้ การเป็นตัวหาร
นะคะ
ต้องเป็น
sub set ของตัวตั้ง
ก็คือในตัวตั้งมี a ไหมมี
มี b ไหม มี มี c ไหม มี
รับทุกตัวคือตัวที่แมทกับตัวหาร
อะไรบ้าง ที่อยู่ใน A
AV XYZ
มีมีแค่ X C มีแค่ x
เพราะฉะนั้น
สิ่งที่
เอา ABC หารได้ครบทุกตัว
มีแค่ x ตัวเดียว
ก็คือตรงตามเงื่อนไขทั้งหมด
นะคะ เราอาจจะมีการตั้งเงื่อนไขมา
แล้วมีแค่ X ตัวเดียวเท่านั้นที่เข้าตรงทุกเงื่อนไข 3 เงื่อนไขที่เราต้องตั้งไว้
หลักการนี้จะใช้ตอนที่เราค้นหาข้อมูล อย่างเช่นใน
Google อาจารย์อยากได้กระเป๋า
สีแดง มี 6 ล้อลาก
เงื่อนไข
อยากได้กระเป๋าสีแดง
มีล้อ 6 ล้อ
อาจจะมีผลลัพธ์ที่ตรงตามเงื่อนไขที่ฉันต้องการแค่
อย่างเดียวเท่านั้น
เป็นต้น
นะคะ เป็นต้น
อย่างเช่น ตัวอย่าง
มีข้อมูลนะคะ
ในตาราง A มีข้อมูล
ตามนี้
ตาราง D มีคอลัมน์เดียว คือตัวนี้
ย2
ให้ A DIVIDED BY B ก็คือ
มีข้อมูล P2
อยู่ในชุดข้อมูลอะไรบ้าง ของA
p2
อันนี้ p2
เพราะฉะนั้นผลลัพธ์ที่ได้จะมีแค่
2 record เท่านั้น
ที่มี P2 อยู่ด้วย
อันนี้ก็จะยัง
ตรงตามเงื่อนไขนะคะ
ถ้าเพิ่มอีกนะคะ
p1 p2 p3 p6 มีแค่นี้
มีแค่นี้มีส่ง S4 มีแค่นี้ไม่ตรง
มีที่ตรงแค่ s1 เท่านั้นที่เอา b ทุกตัว
หารไม่ลงตัว
I คือหลักการ
นะคะ
ปัญหานั่นแหละต้องหาลงตัวนะคะ
วันนี้จะประมาณนี้ เพราะว่าเดี๋ยว
อาจจะให้เช็คโปรแกรมค่ะล่าม
เนื้อหาจะมีแค่นี้ เดี๋ยวจะเช็กในห้องแลปว่า
โปรแกรมที่จะใช้สมบูรณ์หรือเปล่า
ก็วันนี้ก็น่าจะ
แม่จ๋าจะประมาณนี้ค่ะเพราะเดี๋ยวจะให้เช็ค
โปรแกรมในห้องเรียน
นะคะ
เ
นื้อหาน้อยนิดหนึ่ง เพราะว่าหลังปีใหม่ขอเช็คโปรแกรมก่อน
สัปดาห์หน้าอาจจะเริ่มใช้โปรแกรม อาทิตย์นี้ก็เลยเดี๋ยว
มหาสมุทรเท่านี้
เดี๋ยวเรามาเช็กดูว่าห้องเรียนเรา
ใช้โปรแกรมได้หรือเปล่า
นะคะ
วันนี้ก็ขอบคุณล่ามกับขอบคุณค่ะ กับขอบคุณถอดความด้วยนะคะ ประมาณนี้ค่ะ เพราะว่าเดี๋ยวเช็กห้องแลปก่อน
ขอบคุณมากค่ะ