(อาจารย์เกวลี) โอเคค่ะ
เดี๋ยวเริ่มเลยแล้วกันนะคะ งวดนี้จะเป็นบทที่ 7
หลังปีใหม่
อะไรจะไม่เยอะ
นะคะ นิดเดียว
แล้วก็วันนี้
ไม่มีการบ้าน
มีการบ้าน
เฉพาะอาทิตย์นี้เท่านั้นนะคะ เพราะถึงให้ปีใหม่
บทนี้นะคะ จะเป็นเกี่ยวกับวิชาพีชคณิตเชิงสัมพันธ์ก็จะเป็นกระบวนการ
โดยใช้
คณิตศาสตร์
อย่างง่าย
นะคะ ที่เอามาเป็นตัวกระทำในการจัดการฐานข้อมูลของเราด้วย
โดยพีชคณิตเชิงสัมพันธ์
หรือว่าเป็นเกี่ยวกับโครงสร้างในการ
Query ข้อมูลคือการ
การข้อมูลของเรา
จะเป็นการกระทำที่เกิดขึ้นกับตารางหรือความสัมพันธ์
ที่เราสร้างตารางใหม่
ขึ้นมานะคะ มันอาจจะเป็นแบบจำลองของการกระทำต่าง ๆ ที่อาจจะเกิดขึ้น
ข้อมูลในฐานข้อมูลของเรา
ซึ่งส่วนมากจะเป็นการกระทำพื้นฐาน
นะคะ
โดยมันจะมีอยู่ 2 กลุ่ม คือ แบบดั้งเดิม
กับแบบพิเศษ
จะเป็นอย่างละ 4 ตัว
แบบดั้งเดิมก่อนนะคะ ภาษาอังกฤษก็คือ De
nitional นะคะ ก็จะเป็นการกระทำที่เกิดขึ้นกับตารางหรือความสัมพันธ์โดยอาศัยทฤษฎีของเซต
ซึ่งเราเคยเรียนเซตมาแล้วในวิชาคณิตศาสตร์
นะคะ โดยที่ตารางหรือความสัมพันธ์ที่เกิดขึ้นนี่
จะมีการกระทำ
ต้องมีอาชีพเดียวคือในตารางจะต้องมีข้อมูลเกิดขึ้น
เช่นตารางนักศึกษาก็จะมีแอตทริบิวต์หรือว่าข้อมูลที่เรามีก็คือ
ชื่อ นามสกุล เป็นต้น
การกระทำของกลุ่มที่เป็นแบบดั้งเดิม
จะมีอยู่ 4 อย่าง
มี Product มี Uniaแล้วก็มีประเด็น
วันนี้จะต้องเป็นภาษาอังกฤษ
เพราะว่าคำสั่ง
ในระบบจัดการฐานข้อมูล
ก็จะเป็นภาษาอังกฤษประมาณนี้นะคะ
อันแรก Product นะคะ
เป็นการกระทำที่ให้มันแสดงข้อมูลทุก ๆ บรรทัด
หรือทุก ๆ เล็กคอร์ดที่เรามี
ที่สามารถเป็นไปได้โดยการจับคู่
ผลคูณคาร์ทีเซียน
นี่ก็เป็นคณิตศาสตร์อย่างง่าย
คำสั่งของภาษาที่ใช้ในการจัดการฐานข้อมูลจะใช้คำว่า Time
t-i
-m-e-s รูปแบบของมัน ก็คือ
ในกรอบสี่เหลี่ยมนะคะ ก็คือเอา ฟ บีมันมา
x กัน
เดี๋ยวจะมีตัวอย่างให้ดู
อย่างเช่นตัวอย่างนะคะ
การเขียนให้ดูก่อน
เมื่อกี้
a กับ B
นี่
ถ้าคำสั่ง Product หรือคำสั่งค่าในฐานข้อมูลในระบบจัดการฐานข้อมูลใช้คำสั่ง Time
เอาทุกตัว
เป็นไปได้มาคูณกัน
a x x a x y ใช่ไหมคะ
b x x x y b x b y
อันนี้คำสั่งนี้จริง ๆ
จะง่าย จับคู่ทุกตัวที่เป็นไปได้
นะคะ อ
ันนี้จะยังง่ายอยู่
อีก
เหมือนในตัวอย่างค่ะ มีตาราง A
มี ตา
คาง b ถ้าสั่งให้มันคูณกันก็คือเป็น a time B
ผลลัพธ์ที่ได้
ก็จะเป็นทุกตัวที่ a กับ B มันสามารถจับคู่กันได้
คำสั่งนี้จริง ๆ
คือ 3 x 3 ได้ 9 ต้องได้ 9 Records 9 แถวoั่เอง
ถ้าจะเช็ค
แนวข้อสอบก็ไม่ออกนะนะคะ
ยัง ๆ อยู่
การ Union อันนี้ก็เป็นทฤษฎีเซตเหมือนกัน
ก็จะเป็นการรวมกันของข้อมูล 2 ตารางหรือว่า 2 Re
lation เพื่อแสดงข้อมูลทุก ๆ เรื่องของเรื่องคือทุก ๆ แถว
ในรูปแบบของ Union ตามทฤษฎีของเซต
คำสั่งก็คือ
นะคะ
a Union b คือเอาเองกับบีมารวมกัน
ตัวนี้
มีตาราง a กับตาราง
b ทฤษฎีเซตของ Union นะคะ จะสังเกตได้ว่าข้อมูลมันมีข้อมูลซ้ำกัน
อย่างข้อมูล s1
ตาราง ก็มี
กำลังดีก็มี
ตามทฤษฎี นะคะ
ถ้ามันซ้ำกันเราก็เอามาแค่ข้อมูลเดียว
จะเห็นว่าจากสี Records ก็คือสีแถวข้อมูลนะคะ
แต่ว่าอันนี้ ตาราง a ก็มีแต่รังบีก็มีมันซ้ำกัน
เราจะนับเป็นแค่ 1 ข้อมูลเท่านั้น
นะคะ
พอมันเอามา Union กันข้อมูลจาก 4
บรรทัด
จะเหลือแค่ 3 บรรทัดเพราะว่า s1
ไม่มีทั้ง 2 ตารางก็คือ a b เลย
ตามทฤษฎี Union นะคะ
ส่วนที่ทับซ้อนกันก็เอาแค่ข้อมูลเดียว
อินเตอร์เซกชัน
ก็ตามทฤษฎีเซตเหมือนกันค่ะ
มันจะเป็นการกระทำเพื่อแสดงข้อมูลของตารางหรือ Recor
d ที่มันปรากฏอยู่ทั้ง 2 ตาราง
ที่มันทับซ้อนกันนั่นล
่ะ ในรูปแบบของ Intersection ตามทฤษฎีของเซต
คำสั่งก็คือ
ให้ a
intersให้ a อินเตอร์เซค b
ตัวอย่าง
ตารางเดิมเลยค่ะ a กับ
b ข้อมูลไหนที่ทับซ้อนกัน
คือข้อมูล s1
ไม่มีทั้ง 2 ตาราง
a กับตาราง b เราจะแสดงผลเฉพาะตารางที่มันทับซ้อนกันเท่านั้น
เพราะฉะนั้น คำสั่ง a อินเตอร์เซค b จะมีผลลัพธ์แค่
1 record เท่านั้น ก็คือ
ทฤษฎีของเซต
นะคะ
ต่อมา different ก็เป็นการกระทำเพื่อแสดงข้อมูลของแถวนั้น ๆ ที่ปรากฏอยู่ในตาราง
นึ่งแปลตาราง 1 ไม่มีนะคะ ก็คือ
อะไรก็ตามที่อยู่ในตารางนั้นแต่ไม่อยู่กับกี่ตารางหนึ่ง คำสั่งที่ใช้
คือคำสั่งไว้นะ
แปลเป็นภาษาไทยคือคำสั่ง Minus เครื่องหมายลบแล้วนี่ไม่เอา
อย่างเช่นที่อยู่ใน
a แต่ไม่อยู่ใน
b เมื่อเหมือนตัวที่ทำไฮไลท์สีเหลืองไว้
เหมือนเด้วยค่ะ
ให้คำสั่ง
a B
อะไรที่อยู่ในเอเชียไม่อยู่ในบี
อันนี้ไม่ใช่แน่นอนเพราะ s1 มีทั้ง a ทั้ง b เพราะฉะนั้น
ไม่นะบี
ว่าจะเป็น S4
ในทางกลับกันค่ะ บี ก็คืออยู่ในบีแต่ไม่อยู่ใน
a อยู่ดี ๆ
S2
F1 ไม่ได้ s1 อยู่ในเองเหมือนกัน
ในทางกลับกันจะเป็นแบบนี้
นะคะ ขึ้นอยู่กับว่าเราจะเอาข้อมูลจากตารางไหนเราจะเอาข้อมูลในวันข้างหน้า
ถ้าอยู่ใน a ไม่อยู่ใน b จะเป็นแบบนี้จะเขียนแบบนี้นะคะ
แต่ถ้าอยู่ใน b
ไม่อยู่ใน a ก็จะเขียนขึ้นต้นด้วย B นำหน้าแบบนี้
ไม่ใช่ว่าทุกตารางจะชื่อ นะคะ แล้วแต่ว่า
ตารางที่นักศึกษา
ได้ทำ
ชื่อตารางอะไรอย่างเช่น ตาราง Student
Stud
ent แล้ว
Minus Student ก็ได้นะคะ
อยู่ในตาราง Student แต่ไม่อยู่ในร้าน Address
ว่าไป
นะคะ
ต่อมาจะเป็น
ตัวดำเนินการแบบ
พิเศษนะคะ เป็น Special ซึ่งมันจะแตกต่างจาก
การทำงานของเซตโดยทั่วไป
โดยการกระทำของกลุ่มที่จะเป็น Special หรือแบบพิเศษนี่
ไม่จำเป็นจะต้องมีจำนวนแอตทริบิวต์เท่ากัน
คิวคืออะไร คือตัวนี้
C
olumn นะคะ
ถ้าเป็นแบบ Credit analyst นี่
คอลัมน์ทั้ง 2 ตาราง 13 ตารางต้องเท่ากัน
เท่านั้น
ถ้าเป็น Special คือ
คอลัมน์หรือ
Special ไม่จำเป็นจะต้องมีจำนวนเท่ากัน
ไม่จำเป็น
ซึ่งคำสั่งพวกนี้นี่
จะถูกเรียกใช้บ่อยเพราะว่าฐานข้อมูล
ข้อมูลอาจจะมีตารางที่บรรจุอยู่
รูปแบบที่แตกต่างกันไปนะคะ
โดย
ถึงแม้มันจะไม่มี Attribute ที่เท่ากันไม่เท่ากันนั่นแหละ
แอตทริบิวต์ของทั้ง 2 ตาราง
จะถูกนำมาใช้
จะต้องมีเงื่อนไข
จะต้องมีชื่อโดเมนของข้อมูลชื่อเดียวกัน
อาจจะเป็นชื่อตารางใด ๆ
ในตารางนั้นอาจจะมี
อีกคอลัมน์มี
8 คอลัมน์
ต้องมีสิ่งที่เราจะเอามาดำเนินการเนี่ย
ชื่อคอลัมน์จะต้องเหมือนกัน
นะคะ
คำสั่งจะมีอยู่ 4 คำสั่งด้วยกัน
อันแรก
คำสั่ง R
estic หรือถ้าใน
ระบบจัดการฐานข้อมูลภาษาที่ใช้ภาษา SQL
เราจะใช้คำสั่งเรียกว่า Select
นะคะ
เดี๋ยวประมาณอีก 2 สัปดาห์
ต้องได้พิมพ์
ลองทำโค้ดภาษา SQL ดู
นะคะ ซึ่งการกระทำเพื่อแสดงข้อมูลในเรคคอร์ดของตารางนั้น ๆ จะต้องตรงตามเงื่อนไขที่ระบุ
เช่น
a Where Operator y อันนี้เป็นต้นนะคะ
เดี๋ยวตอนที่เราทำ
โปรแกรมจริง ๆ นักศึกษาจะเห็นภาพได้เข้าใจมากกว่านี้
อันนี้เป็นแค่การเกริ่นก่อนเฉย ๆ
หาว่า
นักศึกษาจะต้องเจอคำสั่งพิเศษอะไรบ้าง ในการจัดการฐานข้อมูล
ตัวอย่างเดิมค่ะ ตาราง a กับ
b ตัวอย่างอาจารย์อาจจะเห็นว่า เอ๊ะ Column มันก็ยังเท่ากันนี่ แต่ก็
เพื่อให้เห็นภาพที่ชัดเจนนะคะ อาจารย์จะเลยจะยังยกตัวอย่างเป็นแบบนี้ก่อน
พอบอกให้ใช้คำสั่ง
Select หรือ Racing นะคะ จะต้องมาคู่กับคำว่าเสมอ
อย่างเช่น
ขึ้นต้นด้วยดีก็คือในตารางดี
ให้ดูที่เงื่อนไขซิตี ซิตีตรงนี้แปลว่าชื่อเมืองนะคะ
ในตาราง
b ค่าของ Column City
อันไหน
ที่มีค่าเท่ากับชัยนาท
ขอดูหน่อยค่ะกำลังดี
ตาราง b City
ชัยนาทนะคะ พอดีว่า City เท่ากับชัยนาท
ผลลัพธ์ที่ได้จะต้อง
แสดงผลลัพธ์
ที่ F2 ทั้งหมดนะคะ
เงื่อนไขในตาราง b จังหวัด
ข้อมูลอะไรที่มีข้อมูลว่าชัยนาท
เราต้องยกมาทั้งหมดมาแสดงผลทั้งหมด
ต่อมาเป็น Project นะคะ ก็จะเป็นการเลือกข้อมูลทุก ๆ แถวโดยเลือกมาเพียงแค่บางคอลัมน์
เห็นอาจารย์อยากดูแค่รหัสนักศึกษากับชื่อ
ก็แสดงผลแค่ชื่อกับรหัสนักศึกษา
โดยที่ในตารางข้อมูลศึกษาอาจจะมีคอลัมน์ประมาณ 20 คอลัมน์
ก็ได้ แต่
อาจารย์อยากดูแค่ 2 คอลัมน์นี้เท่านั้น
เราจะใช้คำสั่งที่เกี่ยวข้องกับ
การเรียกดูข้อมูล
คือมันจะเป็นคำสั่งเกี่ยวกับการทำ Project นั่นเอง
รูปแบบคำสั่งก็จะขึ้นต้นด้วยชื่อตารางแล้วตามด้วยเงื่อนไข
นะคะ ตารางเดิมค่ะ ตารางเดิม
คำสั่ง a ในวงเล็บ
H
a นะคะ ก็คือ
อธิบายคือ
เอาข้อมูลในตาราง a เท่านั้น
อยู่ใน Column sname
และคอลัมน์ ag
e ผลลัพธ์ที่ได้
จะแสดงผลแค่นี้
จากตอนแรกมันมีแค่ 4 คอลัมน์ ใช่ไหมคะ 1 2 3
อาจารย์ให้แสดงผลแค่ sname
เท่านั้น
นี่คือการทํางานของคําสั่ง P roject
เผื่อจะมีเป็นร้อยคนละมาจากไหนจะเรียกดูแค่
คอลัมน์ที่น่าสนใจ
จะใช้คำสั่ง Project
นะคะ
เดี๋ยวภาษาโปรแกรมยังมีอีกเยอะค่ะ นี่แค่ตัวอย่างคร่าว ๆ ว่านะ
หรืออย่างเช่น
ผลลัพธ์ทำไมมันโชว์แค่
รหัส s1
คำสั่งที่จะต้องใช้คืออะไร
เงื่อนไขของคำสั่งคือดูในตาราง b นะคะ
โดยค่าของคอลัมน์ City
มีค่าเท่ากับ
Bangkok
แล้วให้แสดงผลเฉพาะ
s# เท่านั้น
ครูอยากรู้แค่รหัส
มีเมืองที่อยู่ในเมืองกรุงเทพฯ
นะคะ
ก็โชว์แค่ s1 เท่านั้น
จากเมื่อก่อนนี้เรียกว่า Where City
กับ Bangkok
ปกติแล้วมันแสดงข้อมูลทุก ๆ คนใช่ไหมคะ
แต่ถ้าตามกำหนดให้มาแสดงแค่คอลัมน์ใดคอลัมน์หนึ่งเท่านั้น
ก็สามารถทำได้
นะคะ นี่คือความสามารถของคำสั่ง Project
ประมาณคำสั่ง Join ค่ะ จะเป็นการกระทำเพื่อแสดงข้อมูลที่เป็นไปได้ทั้งหมด
ซึ่งเกิดจากการเชื่อมโยงข้อมูลของ 2 ตารางขึ้นไป
โดยที่กำหนดค่าคอลัมน์หรือว่า Attribute ที่เหมือนกัน
อาจจะเป็นคอลัมเดียวหรือมากกว่าก็ได้
นะคะ
แต่ที่สำคัญคือคอลัมน์จะต้องชื่อเหมือนกันโดเมนของข้อมูลต้องเท่ากัน
คำสั่งก็คือ A B
B มาดูตัวอย่างกัน
จอยนะคะ
จะคล้าย ๆ กับ Un
ion แต่เงื่อนไข ก็คือจะต้องมีโดเมนหรือว่า Column ที่เท่ากันถึงจะจอยได้
นะคะ
อย่างตัวนี้มี 2 คนล่ำ
มี 2 คอลัมน์
รายการข้อมูลที่ซับซ้อนกัน
อยู่ในรูปแบบคล้าย ๆ กับคำสั่งอยู่นี่
นะคะ
อย่างเช่น ตัวนี้คำสั่ง
Join มีอะไรที่เหมือนกัน
มี City
ใช่ไหมคะ
อ
ันนี้มี 6 คอลัมน์นะคะ
City เหมือนกัน
แต่เนื่องจาก
Attribute ที่มีคำว่า City เหมือนกันนี่
มันจะต้องดูพิจารณาในเรคคอร์ดของ
รหัสด้วย
เพราะฉะนั้น ถ้า
มันเกินมา
มันเกินแล้วต้องทำข้อมูลซ้ำ
ให้เกิดขึ้นอันนี้ก็จะเป็นอีก
รูปแบบหนึ่งของการทำงานคือเติมข้อมูลเข้าไป
นะคะ
เพื่อให้ผลลัพธ์ที่ได้ในทุกๆ
Records นะคะ มีค่า Attribute ก็คือที่เท่ากัน
เดี๋ยวนี้เราจะไปดูอีกทีหนึ่งนะคะ
ในตอนที่เราทำ
โปรแกรมเลย
ต่อมา
จะเป็นการแสดงข้อมูลจาก 2
Relation โดยที่
รีเลชั่นหรือว่าทั้ง ตารางนี่มีแอตทริบิวต์หรือรอบมีคอลัมน์เนี่ยอย่างน้อย 1 คอลัมน์ที่เหมือนกัน
กดรับจากคอลัมน์นะคะ
จากตารางที่มีจำนวน Att
ribute ที่มีจำนวนมากกว่านี่ คอลัมน์หนึ่งที่มีคอลัมน์ของตารางที่มีคอลัมน์น้อยกว่า
คำสั่งรูปแบบก็คือ a b y by
b มันจะเป็นคล้าย ๆ กับการหาร
นะคะ
คำสั่งตัวนี้ การเป็นตัวหาร
นะคะ
จะต้องเป็นซับเซต
ของตัวตั้ง
นะคะ ก็คือในตัวตั้งมี a ไหมมี
มี b ไหมมีไหมมี
มีตัวรับทุกตัวคือตัวที่แมทกับตัวหาร
อะไรบ้าง ที่อยู่ใน A
มี XYZ
มีมีแค่ C มีแค่ x
เพราะฉะนั้น
สิ่งที่
เอา ABC หารได้ครบทุกตัว
มีแค่ X ตัวเดียว
ก็คือตรงตามเงื่อนไขทั้งหมด
เราอาจจะมีการตั้งเงื่อนไขมา
แล้วมีแค่ X ตัวเดียวเท่านั้นที่เข้าตรงทุกเงื่อนไข 3 เงื่อนไขที่เราต้องตั้งไว้
อันนี้จะใช้ตอนที่เราค้นหาข้อมูลอย่างเช่นใน Google นะค
ะ อาจารย์อยากได้กระเป๋า
สีแดงมี 6 ล้อลาก
เงื่อนไข
อยู่ในกระเป๋าสีแดง
มีล้อ 6 ล้อ
อาจจะมีผลลัพธ์ที่ตรงตามเงื่อนไขที่อาจารย์ต้องการแค่
อย่างเดียวเท่านั้น
เป็นต้น
นะคะ เป็นต้น
ตัวอย่าง
ข้อมูล
ในตาราง A มีข้อมูล
ตามนี้
ตาราง B มีคอลัมน์เดียวคือตัวนี้
b2
ให้ ady bB B ก็คือ
มีข้อมูล P2
อยู่ในชุดข้อมูลอะไรบ้าง ของ
AB2 อันนี้2
เพราะฉะนั้น ผลลัพธ์ที่ได้จะมีแค่
สองรักคอร์ด
เท่านั้น
ที่มี P2 อยู่ด้วย
อันนี้ก็จะยัง
ตรงตามเงื่อนไข
นะคะ ถ้าเพิ่มอีกนะคะ
b P1
P2 P3 ปี 6
S2 มีแค่นี้
มีแค่นี้มีส่ง S4 มีแค่นี้ไม่ตรง
มีที่ตรงแค่ s1 เท่านั้นที่เอา b ทุกตัว
หารได้ลงตัว
ก็คือหลักการ
นะคะ
ปัญหานั่นล่ะต้องหาลงตัวนะคะ
วันนี้จะประมาณนี้เพราะว่าเดี๋ยว
อาจจะให้เช็กโปรแกรมค่ะ
เนื้อหาจะมีแค่นี้เดี๋ยวจะเช็กในห้องแลปว่า
โปรแกรมที่จะใช้สมบูรณ์หรือเปล่า
ก็วันนี้ก็น่า
จะประมาณนี้ค่ะ เพราะเดี๋ยวจะให้เช็
กโปรแกรมในห้องเรียน
นะคะ
เหนื่อย
นิดหนึ่งเพราะว่าหลังปีใหม่ขอเช็ดโปรแกรมก่อน
สัปดาห์หน้าอาจจะเริ่มใช้โปรแกรมอาทิตย์นี้ก็เลยเดี๋ยว
มาเท่านี้
เดี๋ยวเรามาเช็กดูว่าห้องเรียนเรา
ใช้โปรแกรมได้หรือเปล่า
นะคะ
วันนี้ก็ขอบคุณล่ามกับขอบคุณค่ะ ถอดความด้วยนะคะ ประมาณนี้ค่ะ เพราะว่าเดี๋ยวเช็คห้องแลปก่อน
ขอบคุณมากค่ะ