(อาจารย์เกวลี) โอเคค่ะ
เดี๋ยวเริ่มเลยแล้วกันนะคะ บทนี้จะเป็นบทที่ 7
ปีใหม่
อะไรจะไม่เยอะ
นะคะ นิดเดียว
แล้วก็วันนี้
ไม่มีการบ้าน
มีการบ้าน
เฉพาะอาทิตย์นี้เท่านั้นนะคะ ถือให้ปีใหม่
บทนี้นะคะ จะเป็นเกี่ยวกับพีชคณิตเชิงสัมพันธ์ก็จะเป็นกระบวนการ
โดยใช้
คณิตศาสตร์
อย่างง่าย
นะคะ ที่งมาเป็นตัวกระทำในการจัดการฐานข้อมูลของเราด้วย
โดยเพชรชนิดเชิงสัมพันธ์
หรือว่าเป็นเกี่ยวกับโครงสร้างในการ
Query ข้อมูล คือ การ
การข้อมูลของเรา
จะเป็นการกระทำที่เกิดขึ้นกับตารางหรือความสัมพันธ์
ที่เราสร้างตารางใหม่
นะคะ มันจะเป็นแบบจำลองของการกระทำต่าง ๆ ที่อาจจะเกิดขึ้น
ข้อมูลในฐานข้อมูลของเรา
ซึ่งส่วนมากจะเป็นการกระทำพื้นฐาน
นะคะ
โดยมันจะมีอยู่ 2 กลุ่มคือแบบดั้งเดิม
แบบพิเศษ
จะเป็นอย่างละ 4 ตัว
แบบดั้งเดิมก่อนนะคะ ภาษาอังกฤษก็คือ Dinational ที่นั่น
นะคะ ก็จะเป็นการกระทำที่เกิดขึ้นกับตารางหรือความสัมพันธ์ โดยอาศัยทฤษฎีของเซต
ซึ่งเราเคยเรียนเซตมาแล้วในวิชาคณิตศาสตร์
นะคะ โดยที่ตารางหรือความสัมพันธ์ที่เกิดขึ้นนี่
จะมีการกระทำ
ต้องมี Aเดียว คือ ในตารางจะต้องมีข้อมูลเกิดขึ้น
เช่นตารางนักศึกษาก็จะมีแอตทริบิวต์หรือว่าข้อมูลที่เรามีก็คือ
ชื่อนามสกุลเป็นต้น
การกระทำของกลุ่มที่เป็นแบบดั้งเดิม
จะมีอยู่ 4 อย่าง
มี product มียูเนี่ยน มีอินเตอร์เซค แล้วก็มีประเด็น
วันนี้จะต้องเป็นภาษาอังกฤษ
เพราะว่าคำสั่ง
ในระบบจัดการฐานข้อมูล
ก็จะเป็นภาษาอังกฤษประมาณนี้นะคะ
แลกโปรดักส์นะคะ
เป็นการกระทำที่ให้มันแสดงข้อมูลทุก ๆ บรรทัด
หรือทุก ๆ Record ที่เรามี
ที่สามารถเป็นไปได้โดยการจับคู่
ผลคูณคาร์ทีเซียน
นี่ก็เป็นคณิตศาสตร์อย่างง่าย
คำสั่งของภาษาที่ใช้ในการจัดการฐานข้อมูลจะใช้คำว่า Time
cimbs
รูปแบบของมัน ก็คือ
ในกรอบสี่เหลี่ยมนะคะ ก็คือเอา A กับ B มันมา
คูณกัน
เดี๋ยวจะมีตัวอย่างให้ดู
อย่างเช่นตัวอย่างนะคะ
อาจารย์เขียนให้ดู ก่อน
เมื่อกี้
A กับ B
นี่
ถ้าคำสั่ง product หรือคำสั่งค่าในฐานข้อมูลในระบบจัดการฐานข้อมูลใช้คำสั่ง Time
ก็คือ
เป็นไปได้มาคูณกัน
A x X A x Y ใช่ไหมคะ
B e x x x y B x b y
คำสั่งนี้จริง ๆ
จับคู่ทุกตัวที่เป็นไปได้
นะคะ
อันนี้จะยังง่ายอยู่
อีก
เหมือนในตัวอย่างค่ะ มีตาราง A
มีตาร
าง B สั่งให้มัน
คูณกัน ก็คือเป็น ฤ time B
ผลลัพธ์ที่ได้
ก็จะเป็นทุกตัวที่ ฤ กับ B มันสามารถจับคู่กันได้
คำสั่งนี้จริง ๆ
คือ 3 * 3 ได้ 9 ต้องได้ 9 Records 9 แถวนั่นเอง
ถ้าจะเช็
ก ในข้อสอบก็มีออกนะนะคะ
อยู่
การ Union อันนี้ก็เป็นทฤษฎีเซตเหมือนกัน
ก็จะเป็นการรวมกันของข้อมูล 2 ตารางหรือว่า 2
Relation เพื่อแสดงข้อมูลทุก ๆ เรื่องของเรื่องคือทุก ๆ แถว
ในรูปแบบของยูเนี่ยนตามทฤษฎีของเซต
คำสั่งก็คือ
Union นะคะ
a Union b คือ เอาเองกับบีมารวมกัน
ตัวนี้
มีตาราง a กับตาราง B
ทฤษฎีเซตของยูเนี่ยนนะคะ จะสังเกตได้ว่าข้อมูลมันมีข้อมูลซ้ำกัน
ข้อมูล s1
นางเอกก็มี
ตาราง ดีก็มี
ตามทฤษฎียูเนี่ยนนะคะ
ถ้ามันซ้ำกันเราก็เอามาแค่ข้อมูลเดียว
จะเห็นว่าจากสี Records ก็คือ สีแถวข้อมูลนะคะ
แต่ว่าอันเนี้ยกำลังเอกก็มีแต่รังบีก็มีมันซ้ำกัน
เราจะนับเป็นแค่ 1 ข้อมูลเท่านั้น
นะคะ
พอมันเอามายูเนี่ยนกัน ข้อมูลจาก 4
บรรทัด
จะเหลือแค่ 3 บรรทัด เพราะว่า s1
ไม่มีทั้ง 2 ตารางก็คือ a b เลย
ยูเนี่ยน
นะคะ
ส่วนที่ทับซ้อนกันก็เอาแค่ข้อมูลเดียว
อินเตอร์เซกชัน
ก็ตามทฤษฎีเซตเหมือนกันค่ะ
มันจะเป็นการกระทำเพื่อแสดงข้อมูลของตารางหรือเล็กคอร์ด
ที่ปรากฏอยู่ทั้ง 2 ตาราง
ที่มันทับซ้อนกันนั่นแหละ
ในรูปแบบของ intersection ตามทฤษฎีของเซต
คำสั่งก็คือ
อินเตอร์เซค
ให้ a อินเตอร์เซค b
ตัวอย่าง
จากตารางเดิมเลยค่ะ A กับ B
ข้อมูลไหนที่ทับซ้อนกัน
คือ ข้อมูล S1
มีทั้ง 2 ตารางกำลัง A กับ
B เราจะแสดงผลเฉพาะตารางที่มันทับซ้อนกันเท่านั้น
เพราะฉะนั้นคำสั่ง A อินเตอร์เซค B จะมีผลลัพธ์แค่
1 record เท่านั้น ก็คือ
ทฤษฎีของเซต
นะคะ
ต่อมา
Different ก็เป็นการกระทำเพื่อแสดงข้อมูลของแถวนั้น ๆ ที่ปรากฏอยู่ในตาราง
นึ่งแปลตาราง 1 ไม่มีนะคะ ก็คือ
อะไรก็ตามที่อยู่ในตารางนั้นแต่ไม่อยู่กับกี่ตารางหนึ่งคำสั่งที่ใช้
คือคำสั่งไ
มนัส แปลเป็นภาษาไทยคือเครื่องหมายลบนั่นเอง แล้วนี่ไม่เอา
อย่างเช่น ที่อยู่ในเอ
แต่ไม่อยู่ใน B
เมื่อคืนเหมือนตัวที่ทำไฮไลท์สีเหลืองไว้
ตารางเดิมเลยค่ะ
ให้คำสั่ง A
B
อะไรที่อยู่ใน A ไม่อยู่ในบี
อันนี้ไม่ใช่แน่นอนเพราะ s1 มีทั้ง a ทั้ง B เพราะฉะนั้น
ไมนัส B ว่าจะเป็น S4
ในทางกลับกันค่ะ B ก็คืออยู่ใน B แต่ไม่อยู่ใน A
อยู่ดี ๆ
S2
S1 ไม่ได้ S1 อยู่ในเองเหมือนกัน
ในทางกลับกันจะเป็นแบบนี้
นะคะ ขึ้นอยู่กับว่าเราจะเอาข้อมูลจากตารางไหนเราจะเอาข้อมูลในวันข้างหน้า
นะคะ ถ้าอยู่ใน a ไม่อยู่ใน B จะเป็นแบบนี้จะเขียนแบบนี้นะคะ
แต่ถ้าอยู่ใน
B ไม่อยู่ใน A ก็จะเขียนขึ้นต้นด้วย B นำหน้าแบบนี้
ไม่ใช่ว่าทุกตารางจะชื่อเองกับ B นะคะ แล้วแต่ว่า
ตารางที่นักศึกษา
ได้ทำ
มันชื่อว่าตารางอะไร อย่างเช่นตาราง Student
แล้วก็ไ
มนัส Address ก็ได้นะคะ
อยู่ในตาราง student แต่ไม่อยู่ในตาราง Address
ว่าไป
นะคะ
ต่อมาจะเป็น
ตัวดำเนินการแบบ
พิเศษนะคะ เป็น Special ซึ่งมันจะแตกต่างจาก
รูปแบบการทำงานของเซตโดยทั่วไป
โดยการกระทำของกลุ่มที่จะเป็น Special หรือแบบพิเศษนี่
ไม่จำเป็นจะต้องมีจำนวนแอตทริบิวต์เท่ากัน
แอตทริบิวต์คืออะไร คือตัวนี้
คอลัมน์นะคะ
ถ้าเป็นแบบ Credit analyst เนี่ย
คอลัมน์ทั้ง 2 ตาราง 13 ตารางต้องเท่ากัน
เท่านั้น
ถ้าเป็น Special คือ
คอลัมน์หรือ senior
ไม่จำเป็นจะต้องมีจำนวนเท่ากัน
ไม่จำเป็น
ซึ่งคำสั่งพวกนี้นี่
จะถูกเรียกใช้บ่อยเพราะว่าฐานข้อมูล
ข้อมูลอาจจะมีตารางที่บรรจุอยู่
รูปแบบที่แตกต่างกันไปนะคะ
โดย
ถึงแม้มันจะไม่มีคิวที่เท่ากัน ก็คือคอลัมน์ไม่เท่ากันนั่นแหละ
แอตทริบิวต์ของทั้ง 2 ตาราง
จะถูกนำมาใช้
จะต้องมีเงื่อนไข
จะต้องมีชื่อโดเมนของข้อมูลชื่อเดียวกัน
ชื่อคอลัมน์เดียวกัน
อาจจะเป็น
ชื่อตารางใด ๆ
ในตารางนั้นอาจจะมี
10 คอลัมน์ อีกตารางมี 8 ค
อลัมน์ ต้องมีสิ่งที่เราจะเอามาดำเนินการนี่
ชื่อคอลัมน์จะต้องเหมือนกัน
นะคะ
คำสั่งจะมีอยู่ 4 คำสั่งด้วยกัน
อันแรก
คำสั่ง regedit
หรือถ้าใน
ระบบจัดการฐานข้อมูลภาษาที่ใช้ภาษา SQL
เราจะใช้คำสั่งเรียกว่า Siri
SELECT นะคะ
เดี๋ยวประมาณอีก 2 สัปดาห์
ต้องได้พิมพ์
ลองทำโค้ดภาษา SQL ดู
ซึ่งการกระทำเพื่อแสดงข้อมูลในเรคคอร์ดของตารางนั้น ๆ จะต้องตรงตามเงื่อนไขที่ระบุ
เงื่อนไขที่ใช้จะใช้คำว่า "where" นะคะ
เช่น
a where x oparator y อันนี้เป็นต้นนะคะ
เดี๋ยวตอนที่เราทำ
โปรแกรมจริง ๆ อ่ะนักศึกษาจะเห็นภาพได้เข้าใจมากกว่านี้
อันนี้เป็นแค่การเกริ่นก่อนเฉย ๆ
ว่า
เราจะต้องเจอคำสั่งพิเศษอะไรบ้าง ในการจัดการฐานข้อมูล
ตัวอย่างเดิมค่ะ ตาราง A กับ B
ตัวอย่าง อาจารย์อาจจะเห็นว่า เอ๊ะ Column มันก็ยังเท่ากันนี่ แต่ก็
เพื่อให้เห็นภาพที่ชัดเจนนะคะ อาจารย์จะเลยจะยังยกตัวอย่างเป็นแบบนี้ก่อน
พอใช้คำสั่ง
SELECT หรือ... นะคะ จะต้องมาคู่กับคำว่า... เสมอ
อย่างเช่น
ขึ้นต้นด้วยดีก็คือในตารางดี
ให้ดูที่เงื่อนไข CITY ตรงนี้แปลว่าชื่อเมืองนะคะ
ในตาราง B
ค่าของ Column City
อันไหน
ที่มีค่าเท่ากับชัยนาท
ขอดูเลยค่ะ
ชัยนาทนะคะ พอพิมพ์ว่า City เท่ากับชัยนาท
ผลลัพธ์ที่ได้จะต้อง
แสดงผลลัพธ์ของ
S2
ทั้งหมด
นะคะ
เงื่อนไขในตารางบีจังหวัด
ข้อมูลอะไรที่มีข้อมูลว่าชัยนาท
นะคะ เราต้องยกมาทั้งหมดมาแสดงผล
ต่อมาเป็นโปรเจ็กต์นะคะ ก็จะเป็นการเลือกข้อมูลทุก ๆ แถวโดยเลือกมาเพียงแค่บางคอลัมน์
เห็นอาจารย์อยากดูแค่รหัสนักศึกษากับชื่อ
ก็แสดงผลแค่ชื่อกับรหัสนักศึกษา
โดยที่ในตารางข้อมูลศึกษาอาจจะมีคอลัมน์ประมาณ 20 คอลัมน์
แ
ต่อาจารย์อยากดูแค่ 2 คอลัมน์นี้เท่านั้น
เราจะใช้คำสั่งที่เกี่ยวข้องกับ
การเรียกดูข้อมูล
คือมันจะเป็นคำสั่งเกี่ยวกับการทำโปรเจ็กต์นั่นเอง
รูปแบบคำสั่งก็จะขึ้นต้นด้วยชื่อตารางแล้วตามด้วยเงื่อนไข
ตารางเดิมค่ะ ตารางเดิม
คำสั่งในวงเล็บ
S_NAME กับ
AGE นะคะ ก็คือ
อธิบายคือ
เอาข้อมูลในตาราง a เท่านั้น
อยู่ใน Column Name
และคอลัมน์
AGE ผลลัพธ์ที่ได้
แสดงผลแค่นี้
จากตอนแรกมันมีแค่ 14 คอลัมน์ใช่ไหมคะ 1 2 3
อาจารย์ให้แสดงผลแค่
S_NAME เท่านั้น
นี่คือการทํางานของคําสั่ง project
เผื่อจะมีเป็นร้อยคนละมาจากไหนจะเรียกดูแค่
คอลัมน์ที่น่าสนใจ
จะใช้คำสั่ง project
นะคะ
เดี๋ยวภาษาโปรแกรมยังมีอีกเยอะค่ะ นี่แค่ตัวอย่างคร่าว ๆ ว่านะ
อย่างเช่น
ผลลัพธ์ทำไมมันโชว์แค่
รหัส s1
คำสั่งที่จะต้องใช้คืออะไร
เงื่อนไขของคำสั่งคือดูในตาราง B นะคะ
โดยค่าของคอลัมน์ City
มีค่าเท่ากับ
Bangkok
และให้แสดงผล S Sharp เท่านั้น
คือ อยากรู้แค่รหัส
มีเมืองที่อยู่ในเมืองกรุงเทพฯ
นะคะ
ก็ส่งแค่ s1 เท่านั้น
จากเมื่อก่อนนี้เรียกว่า Where City
กับ Bangkok
ปกติแล้วมันแสดงข้อมูลทุก ๆ คนใช่ไหมคะ
แต่ถ้าตามกำหนดให้มาแสดงแค่คอลัมน์ใดคอลัมน์หนึ่งเท่านั้น
ก็สามารถทำได้
ความสามารถของคำสั่ง project
ประมาณคำสั่งจอยค่ะ จะเป็นการกระทำเพื่อแสดงข้อมูลที่เป็นไปได้ทั้งหมด
ซึ่งเกิดจากการเชื่อมโยงข้อมูลของ 2 ตารางขึ้นไป
โดยที่กำหนดค่าคอลัมน์หรือว่าอยู่ที่เหมือนกัน
อาจจะเป็นคอลัมน์เดียวหรือมากกว่าก็ได้
นะคะ
แต่ที่สำคัญคือคอลัมน์จะต้องชื่อเหมือนกันโดเมนของข้อมูลต้องเท่ากัน
คำสั่งก็คือ A B
มาดูตัวอย่างกัน
Join นะคะ
จะคล้าย ๆ กับยูเนี่ยน
แต่เงื่อนไข คือ จะต้องมีโดเมนหรือว่า Column ที่เท่ากันถึงจะจอยได้
นะคะ
อย่างตัวนี้มี 2 คนล่ำ
มี 2 คอลัมน์
รายการข้อมูลที่ซับซ้อนกัน
จะ
ยูเนียนนะคะ
เช่นตัวนี้คำสั่ง
Join มีอะไรที่เหมือนกัน
City
ใช่ไหมคะ
A Join B มี 6 คอลัมน์นะคะ
City เหมือนกัน
แต่เนื่องจาก
แอตทริบิวต์ที่มีคำว่า "City" เหมือนกันนี่
มันจะต้องดูพิจารณาในเรคคอร์ดของ
รหัสด้วย
เพราะฉะนั้นถ้า
มันเกินมา
มันเกินแล้วต้องทำข้อมูลซ้ำ
ให้เกิดขึ้นอันนี้ก็จะเป็นอีก
รูปแบบหนึ่งของการทำงานคือเติมข้อมูลเข้าไป
นะคะ
เพื่อให้ผลลัพธ์ที่ได้ในทุก ๆ
Records นะคะ มีค่า คือที่เท่ากัน
เดี๋ยวนี้เราจะไปดูอีกทีหนึ่งนะคะ
ในตอนที่เราทำ
โปรแกรมเลย
ตอบมา
จะเป็นการแสดงข้อมูลจาก 2 รีเลชั่น
โดยที่
รีเลชั่นหรือว่าทั้งสองตารางนี่มี Attribute หรือรอบมีคอลัมน์เนี่อย่างน้อย 1 คอลัมน์ที่เหมือนกัน
กดรับจากคอลัมน์นะคะ
จากตารางที่มีจำนวนอธิบดีมากกว่าเนี่ย
จะถูกจับคู่
คอลัมน์หนึ่งที่มีคอลัมน์ของตารางที่มีคอลัมน์น้อยกว่า
นะคะ คำสั่งรูปแบบก็คือ A B Y by B
มันจะเป็นคล้าย ๆ กับการหาร
นะคะ
การเป็นตัวหาร
นะคะ
ต้องเป็นสับเซต
ของตัวตั้ง
ก็คือในตัวตั้งมี a ไหมมี
มีไหมมีไหมมี
รับทุกตัวคือตัวที่แมทกับตัวหาร
มีอะไรบ้าง ที่อยู่ใน
... มีแค่ X C มีแค่ x
เพราะฉะนั้น
สิ่งที่
เอา A B C หารได้ครบทุกตัว
มีแค่ตัวเดียว
ก็คือตรงตามเงื่อนไขทั้งหมด
น่าจะมีการตั้งเงื่อนไขมา
แล้วมีแค่ X ตัวเดียวเท่านั้นที่เข้าตรงทุกเงื่อนไข 3 เงื่อนไขที่เราต้องตั้งไว้
อันนี้จะใช้ตอนที่เราค้นหาข้อมูลใน Google อย่างเช่น
อาจารย์อยากได้กระเป๋า
สีแดงมี 6 ล้อลาก
เงื่อนไข
กระเป๋าสีแดง
6 ล้อ
อาจจะมีผลลัพธ์ที่ตรงตามเงื่อนไขที่อาจารย์ต้องการแค่
อย่างเดียวเท่านั้น
เป็นต้น
นะคะ
เป็นตัวอย่าง
ข้อมูล
ในตาราง A มีข้อมูล
ตามนี้
ตาราง B มีคอลัมน์เดียวคือตัวนี้
2
ให้ A B Y by B ก็คือ
มีข้อมูล P2
อยู่ในชุดข้อมูลอะไรบ้าง ของ
E2
อันนี้ปี 2
เพราะฉะนั้น ผลลัพธ์ที่ได้จะมีแค่
2 Record เท่านั้น
ที่มี P2 อยู่ด้วย
อันนี้ก็จะยัง
ตรงตามเงื่อนไข
นะคะ ถ้าเพิ่มอีก
นะคะ ที่
S2 มีแค่นี้
มีแค่นี้มีส่ง S4 มีแค่นี้ไม่ตรง
มีที่ตรงแค่ S1 เท่านั้นที่
หารไม่ลงตัว
I คือ หลักการ
นะคะ
ปัญหานั่นแหละต้องหาลงตัวนะคะ
วันนี้จะประมาณนี้ เพราะว่าเดี๋ยว
อาจจะให้เช็กโปรแกรมค่ะ
เนื้อหาจะมีแค่นี้เดี๋ยวจะเช็กในห้องแล็บว่า
โปรแกรมที่จะใช้สมบูรณ์หรือเปล่า
ก็เนื้อหาวันนี้ก็น่า
จะประมาณนี้ค่ะ เพราะเดี๋ยวจะให้เช็ก
โปรแกรมในห้องเรียน
นะคะ
เหนื่อย
นิดหนึ่ง เพราะว่าหลังปีใหม่ขอเช็กโปรแกรมก่อน
สัปดาห์หน้าอาจจะเริ่มใช้โปรแกรมอาทิตย์นี้ ก็เลยเดี๋ยว
เท่านี้
เดี๋ยวเรามาเช็กดูว่าห้องเรียนเรา
ใช้โปรแกรมได้หรือเปล่า
นะคะ
วันนี้ก็ขอบคุณล่ามกับขอบคุณค่ะ ขอบคุณถอดความด้วยนะคะ ประมาณนี้ค่ะ เพราะว่าเดี๋ยวเช็กห้องแลปก่อน
ขอบคุณมากค่ะ