22
!" แผนการสอนประจําบทเรียน รายชื่ออาจารยผูจัดทํา ศิรินุช เทียนรุงโรจน รายละเอียดของเนื ้อหา ตอนที 2.1 Key Rule เรื ่องที 2.1.1 แนวคิดเกี่ยวกับฐานขอมูลเชิงสัมพันธ เรื ่องที 2.1.2 คีย ตอนที 2.2 Algebra Rule เรื ่องที 2.2.1 แนวคิดเกี่ยวกับ Relation Algebra เรื ่องที 2.2.2 Relation Algebra พื ้นฐาน ตอนที 2.3 Constraints เรื ่องที 2.3.1 Constraints ตอนที 2.4 Cartesian Rule เรื ่องที 2.4.1 Cartesian product เรื ่องที 2.4.2 Join แนวคิด 1. ในปจจุบันฐานขอมูลเชิงสัมพันธเปนที่รูจักกันแพรหลายและเปนที่นิยมใชในการจัดเก็บขอมูล อยางมาก แนวความคิดที่สนับสนุนหรืออยูเบื้องหลังของรูปแบบฐานขอมูลเชิงสัมพันธมาจากรูป แบบทางคณิตศาสตรที่เรียกวา relational algebra และ relational calculus 2. รูปแบบฐานขอมูลเชิงสัมพันธ การเก็บขอมูลจะเปนแบบรูปตาราง 2 มิติคือ แถวและคอลัมนนั้น จําเปนตองมีคอลัมนหรือกลุมของคอลัมนในตารางที่ระบุแตละแถวไดอยางชัดเจน คอลัมนหรือ กลุมของคอลัมนที่เห็นไดเดนชัดนี้ที่ใชระบุแตละแถวและทําใหแถวทั้งหมดแตกตางกันเรียกวา กุญแจหลัก (key) 3. รูปแบบฐานขอมูลเชิงสัมพันธ ผูใชสามารถเลือกขอมูลที่ตองการดูไดโดยผูใชสามารถใสเงื่อนไข บังคับ (constraints) เพื ่อไดคําตอบที ่ตองการ 4. ผูใชสามารถนําขอมูลจากหลายๆตารางมารวมกันไดตามที่ตองการโดยอาศัยกฎของความ สัมพันธมาจากรูปแบบทางคณิตศาสตรเขามาชวย คือ Cartesian Rule วัตถุประสงค

บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

Embed Size (px)

Citation preview

Page 1: บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

!"

แผนการสอนประจําบทเรียน

รายชื่ออาจารยผูจัดทํา ศิรินุช เทียนรุงโรจน รายละเอียดของเนือ้หา ตอนท่ี 2.1 Key Rule

เร่ืองท่ี 2.1.1 แนวคิดเกี่ยวกับฐานขอมูลเชิงสัมพันธ เร่ืองท่ี 2.1.2 คีย

ตอนท่ี 2.2 Algebra Rule เร่ืองท่ี 2.2.1 แนวคิดเกี่ยวกับ Relation Algebra เร่ืองท่ี 2.2.2 Relation Algebra พ้ืนฐาน

ตอนท่ี 2.3 Constraints เร่ืองท่ี 2.3.1 Constraints

ตอนท่ี 2.4 Cartesian Rule

เร่ืองท่ี 2.4.1 Cartesian product เร่ืองท่ี 2.4.2 Join

แนวคิด 1. ในปจจุบันฐานขอมูลเชิงสัมพันธเปนที่รูจักกันแพรหลายและเปนที่นิยมใชในการจัดเก็บขอมูลอยางมาก แนวความคิดที่สนับสนุนหรืออยูเบื้องหลังของรูปแบบฐานขอมูลเชิงสัมพันธมาจากรูปแบบทางคณิตศาสตรที่เรียกวา relational algebra และ relational calculus

2. รูปแบบฐานขอมูลเชิงสัมพันธ การเก็บขอมูลจะเปนแบบรูปตาราง 2 มิติคือ แถวและคอลัมนนั้นจําเปนตองมีคอลัมนหรือกลุมของคอลัมนในตารางที่ระบุแตละแถวไดอยางชัดเจน คอลัมนหรือกลุมของคอลัมนที่เห็นไดเดนชัดนี้ที่ใชระบุแตละแถวและทําใหแถวทั้งหมดแตกตางกันเรียกวา กุญแจหลัก (key)

3. รูปแบบฐานขอมูลเชิงสัมพันธ ผูใชสามารถเลือกขอมูลที่ตองการดูไดโดยผูใชสามารถใสเงื่อนไขบังคับ (constraints) เพ่ือไดคําตอบท่ีตองการ

4. ผูใชสามารถนําขอมูลจากหลายๆตารางมารวมกันไดตามที่ตองการโดยอาศัยกฎของความสัมพันธมาจากรูปแบบทางคณิตศาสตรเขามาชวย คือ Cartesian Rule

วัตถุประสงค

Page 2: บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

#$

หลังจากศึกษาบทเรียนที่ 1 แลว นักศึกษาสามารถ 1. เขาใจแนวความคิดของรูปแบบฐานขอมูลเชิงสัมพันธ บอกถึงรูปแบบและลักษณะท่ีสําคัญของ

relational algebra และ relational calculus 2. เขาใจหลักการและทฤษฎีทางคณิตศาสตรที่อยูเบื้องหลังของรูปแบบฐานขอมูลเชิงสัมพันธและการกระทํากับขอมูลที่ตองการที่ถูกจัดเก็บในฐานขอมูล

กิจกรรมการเรียนการสอน กิจกรรมท่ีนักศึกษาตองทําสําหรับการเรียนการสอน ไดแก 1. ศึกษาเอกสารการสอน 2. ปฏิบัติกิจกรรมตามที่ไดรับมอบหมายในเอกสารการสอนแตละตอน

สื่อการสอน 1. เอกสารการสอนของชุดวิชา 2. แบบฝกปฏิบัติ 3. บทความ/ขอมลูทางคอมพิวเตอร 4. การใหคําปรึกษาทางโทรศัพท 5. CD-ROM 6. Homepage ของชุดวิชาผานทางอินเตอรเน็ต

เอกสารประกอบการสอน 1. Fundamentals of Database Systems, by Ramez Elmasri, Shamkant B. Navathe, The

Second Edition, 1994 2. Database System Concepts, by Abraham Siberschaty, Henry F.Korth, S.Sudarshan, The

Third Edition, 1991 ประเมินผล

1. ประเมินผลจากแบบฝกหัด/ทดสอบ ในแตละบท 2. ประเมินผลจากการสอนประจําภาคการศึกษา

Page 3: บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

#%

ตอนท่ี 2.1 Key Rule

หัวเรื่อง เร่ืองท่ี 2.1.1 แนวคิดเรื่องโมเดลเชิงสัมพันธ เร่ืองท่ี 2.1.2 คีย

แนวคดิ 1. รูปแบบฐานขอมูลเชิงสัมพันธ การเก็บขอมูลจะเปนแบบรูปตาราง 2 มิติคือ แถวและคอลัมนนั้นจําเปนตองมีคอลัมนหรือกลุมของคอลัมนในตารางที่ระบุแตละแถวไดอยางชัดเจน คอลัมนหรือกลุมของคอลัมนที่เห็นไดเดนชัดนี้ที่ใชระบุแตละแถวและทําใหแถวทั้งหมดแตกตางกันเรียกวา กุญแจหลัก (key)

วัตถุประสงค หลังจากที่ศึกษาตอนที่ 2.1 แลว นักศึกษาสามารถ 1. เขาใจแนวความคิดของรูปแบบฐานขอมูลเชิงสัมพันธ

เรื่องที่ 2.1.1 แนวคิดเรื่องโมเดลเชิงสัมพันธ

โมเดลเชิงสัมพันธใชรูปแบบของความสัมพันธที่ชัดเจนมาเปนตัวกําหนดลักษณะของขอมูล โมเดลเชิงสัมพันธไดถูกนําไปใชอยางแพรหลายในระบบการประมวลผลขอมูล ความสัมพันธในฐานขอมูลจะอยูในรูปแบบของตาราง (table) ดังน้ัน

• ชื่อของตารางคือชื่อของความสัมพันธ • แตละคอลัมนของตารางความสัมพันธ เรียกวา แอททริบิว (attribute) ของความสัมพันธ ซึ่งแตละคุณสมบัติจะมีชื่อเรียกและคาของแอททริบิวที่แตกตางกัน คาและขอบเขตของขอมูลของแอททริบิวเรียกวาโดเมน (domain) เชน ความสัมพันธ “player” ประกอบดวยแอททริบิว 5 อยาง คือ ชื่อ ตําแหนง อาย ุ สวนสูง นํ้าหนัก

• แตละแถวของตารางความสัมพันธ เรียกวา แถว หรือ ทูเพิล (tuple) ของความสัมพันธ จากที่กลาวมาขางตน สรุปโดยใชหลักการทางคณิตศาสตรไดวา

• โดเมน D คือ ชุดของขอมูลที่มีคาเฉพาะเจาะจง และมีความหมายเปนอยางใดอยางหนึ่ง • แอททริบิว A คือ ตัวแทนของโดเมน เขียนไดเปน dom(A) เมื่อกลาวถึงแอททริบิว A จะหมายความถึงชุดของขอมูลชุดหนึ่งที่เปนที่รูกันวามีขอบเขตเพียงไร

• รูปแบบของความสัมพันธ R ซ่ึงสามารถเขียนไดเปน R(A1, A2, …, An) คือ ชุดของแอททริบิว โดยที่เมื่อกลาวถึง R จะหมายถึง {A1, A2, …, An} โดยปริยาย

Page 4: บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

#&

• ดังน้ัน ความสัมพันธ r คือ กลุมของแถว ท่ีเปน subset ของกลุมของแอททริบิว dom(A1) x dom(A2) x … x dom(An)

• หนึ่งแถวในความสัมพันธ r จึงเขียนไดเปน t(A1, A2, …, An) และมีความหมายเปน subset หนึ่งของ dom(A1) x dom(A2) x … x dom(An)

รูปแบบทางคณิตศาสตรของความสัมพันธดังขางตนไดถูกนําไปใชในการอธิบายรูปแบบของความสัมพนัธ ซึ่งเปนการกําหนดชนิดและความหมายของขอมูล ในฐานขอมูลส่ิงท่ีมักทําใหเกิดความสับสนก็คือ รูปแบบของความสัมพันธ (Relational schema) และตัวความสัมพันธ (Relational instance) รูปแบบของความสัมพันธเปนการกําหนดลักษณะโครงสรางของความสัมพันธ แตความสัมพันธเปนขอมูลที่เกิดความสัมพันธกันของแอททริบิว ทั้งรูปแบบและความสัมพันธมีหลักในการตั้งชื่อที่ไมเหมือนกัน น่ันคือ รูปแบบของความสัมพันธมักจะตั้งชื่อโดยใชตัวอักษรพิมพใหญทุกตัวหรือเฉพาะตัวแรกของชื่อ และตั้งชื่อความสัมพันธโดยใชตัวอักษรพิมพเล็กทั้งหมด ตัวอยาง รูปแบบของความสัมพันธ PLAYER_SCHEMA และ ความสัมพนัธ player

PLAYER_SCHEME = (ชื่อ, ตําแหนง, อาย,ุ สวนสูง, นํ้าหนัก) player(PLAYER_SHEMA) หมายความวา รูปแบบของความสัมพันธ PLAYER_SCHEMA ประกอบไปดวยแอททริบิว ชื่อ

ตําแหนง อาย ุสวนสูง นํ้าหนัก และความสัมพันธ player เปนความสัมพันธที่เกิดจากกลุมของแอททริบิวใน PLAYER_SCHEMA ตัวอยางของความสัมพันธ player แสดงดังตารางตอไปน้ี

Name position age height weight สุเมธ กองหนา 26 183 82 ผลดี ปกซาย 21 175 78 ชาติชาย กองหลัง 30 169 71 กองเกียรติ กองกลาง 24 180 78

ตาราง 2-1 ความสัมพันธ player

คุณสมบัติของความสัมพันธ

• ลําดับของแถวและคอลัมนไมทําใหความหมายของขอมูลเปลี่ยนไป ดังนั้นความสัมพันธดังตาราง 2-2 จึงมีความหมายเหมือนตาราง 2-1

• แตละแถวในความสัมพันธจะเปนเอกลักษณ คือจะไมมีสองแถวที่ซ้ํากัน • แอททริบิวทุกตัวจะเปน atomic เทาน้ัน ไมมีแอททริบิวที่เปน multivalue หรือ composite • ดีกรีของความสัมพันธ คือ จํานวนแอททริบิวที่มีในความสัมพันธนั้น

Position age name height weight

Page 5: บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

#!

กองหนา 26 สุเมธ 183 82 กองหลัง 30 ชาติชาย 169 71 กองกลาง 24 กองเกียรติ 180 78 ปกซาย 21 ผลดี 175 78

ตาราง 2-2 ความสัมพันธ player

เรื่องที่ 2.1.2 คีย

คุณสมบัติหนึ่งที่สําคัญของความสัมพันธก็คือ ความเปนเอกลักษณ (Uniqueness property) สิ่งที่ใชกําหนดความเปนเอกลักษณของแถวในความสัมพันธ เรียกวา คีย (key)

ฐานขอมูลหน่ึงๆ จะมีขอมูลอยูมากมาย ยิ่งฐานขอมูลมีขนาดใหญขึ้นก็จะมีขอมูลจํานวนมากขึ้นเปนเงาตามตัวขอมูลเหลานี้อาจมีคาแตกตางกัน คลายกัน หรือแมกระทั่งเหมือนกัน ทําใหการแยกแยะโดยอาศัยเพียงตัวขอมูลอยางเดียวทําไดอยางยากลําบาก ดังนั้นจึงมีการกําหนดคา Keys ประจําขอมูลเพื่อทําใหการแยกแยะขอมูลในฐานขอมูลเปนไปอยางถูกตอง

คียมีหลายประเภท ไดแก คียหลัก, Secondary key, Foreign key, Candidate key, Super key ดังจะไดกลาวในรายละเอียดตอไป

2.1.2.1 คียหลัก (Primary key)

คียหลัก คือ Key หลักที่ใชในการอางถึง Entity ในฐานขอมูล การเลือกคียหลักสามารถเลือกไดจากRecord ใดๆ ก็ไดท่ีไมมีโอกาสซํ้าซอนกันบนฐานขอมูลน้ัน

เลขประจําตัวประชาชน ชื่อ นามสกุล อายุ 3501552150054 สมชาย แซตั้ง 25 3210077565107 สมศรี แซอ้ึง 42 4110597520235 สมชาย แซตั้ง 25 2156800512473 สมปอง แซแต 16 7812350453784 สมชัย แซเลง 50

ตารางที่ 2-3 ขอมูลทั่วไปของประชาชน

ตารางที่ 1 แสดง Entity ของประชาชนซึ่งประกอบดวยเลขประจําตัวประชาชน ชื่อ นามสกุล และอาย ุ โดยจะสามารถเห็นไดวา นอกจาก Field เลขประจําตัวประชาชนแลว Field อ่ืนๆ คือชื่อ นามสกุล และ

Page 6: บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

##

อาย ุอาจซํ้ากันไดท้ังน้ัน ในกรณีน้ี Field ที่เหมาะสมที่จะเปนคียหลักที่สุดก็คือ Field เลขประจําตัวประชาชนน่ันเอง

คียหลักเปนขอมูลสําคัญที่จะทําใหการเขาถึงขอมูลบนฐานขอมูลเปนไปไดอยางรวดเร็ว ดังนั้นผูใชจึงควรกําหนดคียหลักใหชัดเจนตั้งแตขั้นตอนออกแบบฐานขอมูล หากไมมีขอมูลใดเลยในฐานขอมูลที่เหมาะที่จะเปนคียหลักก็ควรที่จะกําหนด Record ใหมสําหรับใหเปนคียหลักโดยเฉพาะ

ชื่อ นามสกุล อายุ เพศ สมชาย แซตั้ง 25 ชาย สมศรี แซอ้ึง 42 หญิง สมชาย แซตั้ง 25 ชาย สมปอง แซแต 16 ชาย สมชัย แซเลง 50 ชาย

ตารางที่ 2-4 ขอมูลทั่วไปของพนักงานบริษัท

จากตารางที่ 2 จะเห็นไดวาฐานขอมูลพนักงานบริษัทนี้ไมมี Field ใดเลยที่เหมาะสมที่จะใชเปนคียหลัก ดังน้ัน ผูออกแบบฐานขอมลูจึงควรเพ่ิม Field เฉพาะสําหรับใชเปนคียหลักของฐานขอมูลดังตารางที่ 3

ID ชื่อ นามสกุล อาย ุ

เพศ

1 สมชาย แซตั้ง 25 ชาย 2 สมศรี แซอ้ึง 42 หญิง 3 สมชาย แซตั้ง 25 ชาย 4 สมปอง แซแต 16 ชาย 5 สมชัย แซเลง 50 ชาย

ตารางที่ 2-5 ขอมูลทั่วไปของพนักงานบริษัทหลังจากเพิ่ม คียหลัก แลว

หลังจากเพิ่ม Field พิเศษคือ ID เขาไปในตารางที่ 2 เพื่อใชเปนคียหลักโดยเฉพาะ จะสามารถทําใหการอางถึงขอมูลในฐานขอมูลเปนไปไดสะดวกและมีประสิทธิภาพมากข้ึน

Page 7: บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

#'

โครงสรางของคีย

รูป 2-6 โครงสรางของคีย

2.1.2.2 คียรอง (Secondary Key)

คียสํารอง คือ คียเด่ียวหรือคียผสม (Single or Composite key) ซึ่งเมื่อใชในการคนหาขอมูลจากความสัมพันธจะไดมากกวาหนึ่งเรคคอรด ตางจากคียหลักที่ทําใหขอมูลในตารางไมซ้ํากัน ดังนั้นคียรองจึงไมจาํเปนจะตองเปนเอกลักษณ

2.1.2.3 คียนอก (Foreign key)

คียนอก คือ คียเด่ียวหรือคียผสม ซึ่งปรากฏเปนคียทั่วไปของความสัมพันธหนึ่ง แตไปปรากฏเปนอีกคียหลักในอีกความสัมพันธหนึ่ง คียนอกเปนอีกคียหนึ่งที่มีความสําคัญมากใสฐานขอมูลเชิงสัมพันธ เน่ืองจากเปนตัวที่ใชสรางการเชื่อมตอระหวางความสัมพันธ การเปลี่ยนแปลงคาของคียนอกจะตองอาศัยความระมัดระวังเปนอยางมากเนื่องจากจะมีผลกระทบโดยตรงตอขอมูลในความสัมพันธอื่นที่มีการอางอิงถึงคียนอกตัวนี้ จึงมีกฏและเงื่อนไขที่บังคับใชเพื่อทําใหขอมูลมีความถูกตองอยูเสมอ ดังจะกลาวในตอนท่ี 2.3

Page 8: บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

#(

การกําหนดคาใหกับคียนอกของความสัมพันธที่อางอิงถึงจะตองกําหนดคาของคียใหอยูในโดเมนเดียวกันกับความสัมพันธที่คียนอกนั้นเปนคียหลัก แตคียนอกนั้นไมจําเปนจะตองเปนสวนหนึ่งในคียหลักของความสัมพันธอื่น

2.1.2.4 ซุปเปอรคีย (Superkey)

คือกลุมของแอททริบิวที่สามารถนําไปใชในการคนหาขอมูลที่เปนเอกลักษณได

2.1.2.5 คียแขงขัน (Candidate key)

คียแขงขัน ก็คือ ซุปเปอรคีย และไมมีกลุมยอยของคียใดในคียแขงขันที่จะสามารถเปนซุปเปอรคียไดอีก

Page 9: บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

#)

ตอนท่ี 2.2 Algebra Rule

หัวเร่ือง เร่ืองท่ี 2.2.1 Relational Algebra เบื้องตน เร่ืองท่ี 2.2.2 Relational Algebra Operations พ้ืนฐาน เร่ืองท่ี 2.2.3 Relational Calculus

แนวคิด ในปจจุบันฐานขอมูลเชิงสัมพันธเปนที่รูจักกันแพรหลายและเปนที่นิยมใชในการจัดเก็บขอมูลอยาง

มาก แนวความคิดที่สนับสนุนหรืออยูเบื้องหลังของรูปแบบฐานขอมูลเชิงสัมพันธมาจากรูปแบบทางคณิตศาสตรท่ีเรียกวา relational algebra และ relational calculus วัตถุประสงค

หลังจากศึกษาตอนที่ 2.2 แลว นักศึกษาสามารถ 1. บอกถึงรูปแบบและลักษณะท่ีสําคัญของ relational algebra

เรื่องที่ 2.2.1 พื้นฐาน Relational Algebra

Relational Algebra ใชในการจัดการขอมูลโดยระบุตัวกระทํา (operand) กับความสัมพันธที่ตองการจัดการ และจะไดผลลัพธออกมาเปนความสัมพันธใหม Relational Algebra เรียกไดอีกอยางวาเปน Relational query language ที่ประกอบไปดวยรูปแบบที่ใชในการจัดการและคนหาขอมูลจากฐานขอมูลเชิงสัมพนัธ Query language ในที่นี้ไมใช Programming language ดังน้ันจึงไมไดสนับสนุนการคํานวณท่ีซับซอนนัก แตสนับสนุนการเขาถึงขอมูลขนาดใหญดวยวิธีงายๆ และมีประสิทธิภาพ

Query language ที่ใชกับฐานขอมูลเชิงสัมพันธม ี2 รูปแบบ คือ 1. Relational Algebra ประกอบดวยตัวกระทําตางๆ ซ่ึงมีประโยชนมากในการจัดการฐานขอมูลเชิงสัมพันธ

2. Relational Calculus เปนภาษาท่ีอาศัยหลักการทางตรรกะคณิตศาสตรเพ่ือการจัดการขอมูล ตัวกระทํากับความสัมพันธใน Relational Algebra แบงตามประเภทการใชงาน แยกไดเปน 2

ประเภท คือ 1. การใชงานข้ันพ้ืนฐาน ไดแก

• Selection (σ). เลือกแถวจากความสัมพันธ • Projection (π) เลือกเฉพาะคอลัมนท่ีตองการจากความสัมพันธ • Cross- product (X) สามารถรวมความสัมพันธได • Set difference (−) หาความแตกตางระหวาง 2 ความสัมพันธ

Page 10: บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

#*

• Union (∪ ) เชื่อมความสัมพันธ 2 อันเขาดวยกัน 2. การใชงานขั้นสูง ไดแก Intersection, join , division, renaming ตัวกระทํากับความสัมพันธใน Relational Algebra แบงตามการกระทํากับความสัมพันธแยกไดเปน

2 ประเภท คือ • Unary operators คือ ตัวกระทําที่ตองการเพียงความสัมพันธเดียว เชน select, project และ rename

• Binary operators คือ ตัวกระทําที่ตองการสองความสัมพันธ เชน Union, Intersection, Difference และ Cartesian product.

เรื่องที่ 2.2.2 Relational Algebra Operations พื้นฐาน

การกระทําเก่ียวกับ Relational Algebra ข้ันพ้ืนฐานไดแก Select, Project, Composition, Union, Set difference, Cartesian-product และ Rename

2.2.2.1 Selection operator

ตัวกระทําในการ Select คือ σ (sigma) ทําหนาที่เปนตัวเลือกขอมูลความสัมพันธจากเงื่อนไขที่กําหนด ผลลัพธจาก Select คือแถวในความสัมพันธจํานวนหนึ่งซึ่งจะมีจํานวนดีกรีเทากับความสัมพันธที่นํามาผานการเลือก จํานวนแถวที่เปนผลลัพธอาจจะนอยกวาจํานวนแถวทั้งหมดที่มีในความสัมพันธแตจะไมมากกวา

เงื่อนไขในการเลือกจะถูกเขียนไวเปนตัวหอยจากเครื่องหมาย σ การระบุเง่ือนไขสามารถทําไดโดยใชเครื่องหมายในการเปรียบเทียบและตัวกระทําทางตรรกะรวมกันได

- เครื่องหมายเปรียบเทียบ ไดแก = (เทากับ), ≠ (ไมเทากับ), < (นอยกวา), ≤ (นอยกวาหรือเทากับ), > (มากกวา), > (มากกวาหรือเทากับ)

- ตัวกระทําทางตรรกะ ไดแก ∧ (and) , ∨ (or) และ ¬ (not) ตัวอยางเชน การคนหาขอมูลของผูเลนท่ีสวนสูงมากกวา 178 จากความสัมพันธ Player ในตาราง

2-1 สามารถเขียนโดยใช Selection operator ไดเปน σheight > 178 Player

การคนหาขอมูลของผูเลนที่อายุมากกวา 25 และเปนผูเลนในตําแหนงกองหนา σ age > 178 ∧ position = กองหนา Player

ผลลัพธท่ีไดแสดงดังตาราง 2-3

name position age Height weight สุเมธ กองหนา 26 183 82

Page 11: บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

#"

กองเกียรติ กองกลาง 24 180 78 ตาราง 2-7 ผลลัพธของ selection : σheight > 178 Player

การเลือกขอมลูโดยใช σ เทียบไดกับการใชคําสั่ง SELECT … FROM … WHERE ในภาษา SQL SELECT name, position, age, height, weight FROM Player WHERE height > 178

2.2.2.2 Projection operator

Projection คือ การเลือกเฉพาะบางคอลัมนของความสัมพันธที่สนใจขึ้นมาแสดง โดยใชสัญลักษณ π (pi) เขียนในรูปแบบของ π attributes r ผลลัพธจากการเลือกโดยใช π จะไดจํานวนแถวเทากับความสัมพันธ r แตจํานวนดีกรีอาจจะเทากันหรือนอยกวาก็ได เทียบไดกับการใชคําสั่ง SELECT … FROM ในภาษา SQL ตัวอยางเชน การเลือกดูขอมูลเฉพาะนํ้าหนักและสวนสูงจากความสัมพันธ Player ผลลัพธจากการ project น้ีแสดงไดดังตาราง 2-4

π weight, height Player

SELECT weight, height FROM Player

weight height 82 183 78 175 71 169 78 180

ตาราง 2-8 ผลลัพธของการใช projection : π weight, height Player

2.2.2.3 การใช Selection operator รวมกับ Projection operator

Selection operator () และ Projection operator () สามารถนํามาใชรวมกันไดเพื่อเลือกขอมูลจากความสัมพันธที่ตองการได เชน การเลือก ชื่อ และ ตําแหนงของผูเลนที่สวนสูงมากกวา 178 เทียบไดกับคําส่ังSQLดังขางลาง และผลลัพธแสดงดังตาราง 2-5

π name, position (σheight > 178 Player)

Page 12: บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

'$

SELECT name, position FROM Player WHERE height > 178

Name position สุเมธ กองหนา กองเกียรติ กองกลาง

ตาราง 2-9 ความสัมพันธที่เกิดจากการใช selection และ projection รวมกัน

2.2.2.4 Union

เราสามารถกลาวไดวาความสัมพันธ R1 และ R2 เปนความสัมพันธที่สามารถนําทํามา Union กันได(Union compatible) ก็ตอเมือ่มีรูปแบบของความสัมพนัธเหมือนกัน การ Union ความสัมพันธ R1 และ R2 สามารถเขียนไดในรูปของ R1 ∪∪∪∪ R2

ผลลัพธที่ไดนี้จะมีรูปแบบของเหมือนกับความสัมพันธตนแบบ R1 และ R2 และประกอบไปดวยแถว t ใดๆ ที่อยูใน R1 หรือ R2 เม่ือพิจารณาการ Union ความสัมพันธ Player2000 และ Player2001 ตอไปน้ี ความสัมพันธที่เปนผลลัพธจะประกอบไปดวย 4 แถวจากความสัมพันธ Player2000 และแถวใหม 3 แถวจากความสัมพันธ Player2001 แสดงดังตาราง 2-7 โปรดสังเกตวาแถวที่ซ้ํากันจะปรากฏเพียงครั้งเดียวหลังจากการ Union

Name position age height weight สุเมธ กองหนา 26 183 82 ผลดี ปกซาย 21 175 78 ชาติชาย กองหลัง 30 169 71 กองเกียรติ กองกลาง 24 180 78

ความสัมพันธ Player2000

Name position age height weight เอกพจน ปกขวา 20 180 78 สุชาติ กองหนา 19 179 80 ชาติชาย กองหลัง 30 169 71 พิเชษฐ ปกซาย 22 177 76

Page 13: บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

'%

ความสัมพันธ Player2001 ตาราง 2-10 ความสัมพันธ Player2000 และ Player2001

Name position age height weight สุเมธ กองหนา 26 183 82 ผลดี ปกซาย 21 175 78 ชาติชาย กองหลัง 30 169 71 กองเกียรติ กองกลาง 24 180 78 เอกพจน ปกขวา 20 180 78 สุชาติ กองหนา 19 179 80 พิเชษฐ ปกซาย 22 177 76

ตาราง 2-11 ความสัมพันธผลลัพธของ Player2000 ∪ Player2001

การ Union โดยใชคําสั่ง SQL สามารถกระทําไดโดยการใชคําส่ัง UNION เพื่อเชื่อมระหวางคําสั่ง SELECT

SELECT name, position, age, height, weight FROM Player2000 UNION SELECT name, position, age, height, weight FROM Player2001

2.2.2.5 Difference

เราสามารถกลาวไดความสัมพันธ R1 และ R2 เปนความสัมพันธที่มีความแตกตาง (Difference Compatible) ก็ตอเมือ่ R1 และ R2 มีรูปแบบของความสัมพันธเหมือนกัน ความแตกตางของความสัมพันธ R1 และ R2 หมายความวา พบใน R1 และไมพบใน R2 เขียนไดในรูป R1 − R2 ตัวอยาง การหาความแตกตางของความสัมพันธ Player2000 และ Player 2001 แสดงดังตาราง 2-8

Name position age height weight

Page 14: บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

'&

สุเมธ กองหนา 26 183 82 ผลดี ปกซาย 21 175 78 กองเกียรติ กองกลาง 24 180 78

ตาราง 2-12 ความสัมพันธผลลัพธของ Player2000 − Player2001

การหาความแตกตางโดยใชคําส่ัง SQL สามารถกระทําไดโดยการใชคําส่ัง MINUS ระหวางคําสั่ง SELECT SELECT name, position, age, height, weight

FROM Player2000 MINUS SELECT name, position, age, height, weight

FROM Player2001

2.2.2.6 Intersection

การทํา Intersection ระหวางความสัมพันธ R1 และ R2 ผลลัพธที่ไดจะเปนความสัมพันธที่เกิดจากแถวที่ซ้ํากันใน R1 และ R2 แถวใดที่ไมปรากฏใน R1 และ R2 เหมือนกันจะไมอยูในความสัมพันธผลลัพธ สามารถเขียนไดในรูป R1 ∩ R2 ตัวอยาง การทํา Intersection ระหวางความสัมพันธ Player2000 และ Player 2001 จะไดผลลัพธดังตาราง 2-9 และการทํา Intersection ใน SQL ก็คลายกับตัวอยางการทํา Union และ Difference ขางตน เพียงแตใชคําสั่ง INTERSECT ค่ันระหวางคําส่ัง SELECT

Name position Age height weight ชาติชาย กองหลัง 30 169 71

ตาราง 2-13 ความสัมพันธผลลัพธของ Player2000 ∩ Player2001 การหาความแตกตางโดยใชคําส่ัง SQL สามารถกระทําไดโดยการใชคําส่ัง MINUS ระหวางคําสั่ง SELECT

SELECT name, position, age, height, weight FROM Player2000 INTERSECT SELECT name, position, age, height, weight

Page 15: บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

'!

FROM Player2001

2.2.2.9 Division

การทํา Division ไมคอยถูกใชนักใน Relation Algebra แตมีประโยชนในการคนหาบางประเภท รูปแบบของ Division คือ R1/R2 เมื่อ R1 และ R2 เปนความสัมพันธ ตัวอยาง การคนหาลูกจางที่ทํางานอยูสองแผนกคือ CS และ Fin จากความสัมพันธ DEPTNAME ผลปรากฏวา สิทธิ คือคนทํางานอยูท้ังสองแผนก สังเกตผลลัพธจากตาราง 2- 13

DEPTNAME DName EMPDEPT Name Dept EMPDEPT/DEPTNA CS สิทธิ CS สิทธิ Fin โจ Econ เขียว Econ ตาล CS สิทธิ Fin

รูป 2-14 EMPDEPT / DEPTNAME

เรื่องที่ 2.2.3 Relational Calculus

เมื่อผูใชทําการคนหาขอมูลโดยใช Relational algebra ผูใชจะตองกําหนดการกระทําและเงื่อนไขเพื่อใหไดขอมูลตามที่ตองการ จึงกลาวไดวา Relational algebra เปน procedural language เชน การ Join แลวตามดวย Projection ดวยการใช Relational calculus ผูใชสามารถกําหนดรูปแบบการคนหาในลักษณะของนิพจนหรือสมการทางคณิตศาสตรที่มีตัวแปร คาคงที่ ตัวกระทํา ตัวเชื่อม และอ่ืนๆ Relational calculus จึงเปนการใชคณิตศาสตรในรูปของตรรกะเขามาชวยในการคนหาขอมูล คําตอบท่ีไดจากการใช Relational calculus ถือแถวของขอมูลจากความสัมพันธที่ทําใหคาของสมการคณิตศาสตรนั้นมีคาเปน จริง

เมื่อ R1, …, Rk เปนชุดของความสัมพนัธ และความสัมพันธ Ri ประกอบไปดวยแอททริบิวจํานวน n ตัว (A1,…,An) แลว Relational Calculus จะประกอบดวยสมการทางตรรกะท่ีสรางไดโดยการใช

สัญลักษณแทนเง่ือนไข : ∈ , =, <, <=, >, >= , ≠ รูปแบบของคิวรี

{ (A1, …,An) | p[(A1,…,An)] }

Page 16: บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

'#

คําตอบที่ไดจากคิวรี ประกอบไปดวยแถวของขอมูล (A1,…,An) ที่ทําใหสมการ p [(A1,…,An)] มีคาเปนจริง

สมการมีอยู 2 แบบ คือ สมการเด่ียว (Atomic formula) อยูในรูป p [(A1,…,An)] สมการผสม (Formula) อยูในรูปของสมการเด่ียวผสมกับสมการเด่ียวอ่ืน โดยอาศัยตัวกระทํากับสมการ : ¬ (not) , ∧ (intersection), ∨ (union), ∀ (for all) , ∃ (there exists)

ตัวอยาง สมการตอไปนี้หมายความวา ใหหาขอมูล t1 ทุกแถวในความสัมพันธ EmpDept (รูปจากตาราง 2-10) ที่ทําใหมีบางแถวใน t2 ซ่ึง t2 อยูในความสัมพันธ Emp (รูปจากตาราง 2-11) และทั้ง t1 และ t2 มีคาในคอลัมน Dept เหมือนกัน

{t1 | (∃ t2 )((t1 ∈ EmpDept) & (t2 ∈ Emp) & (t1 .Dept = t2.Dept)}

Page 17: บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

''

ตอนท่ี 2.3 Constraints

หัวเร่ือง เร่ืองท่ี 2.3.1 Constraints

แนวคิด รูปแบบฐานขอมูลเชิงสัมพันธ ผูใชสามารถเลือกขอมูลที่ตองการดูไดโดยผูใชสามารถใสเงื่อนไข

บังคับ (constraints) เพ่ือไดคําตอบท่ีตองการ วัตถุประสงค

หลังจากศึกษาตอนที่ 2.3 แลว นักศึกษาสามารถ เขาใจหลักการและทฤษฎีทางคณิตศาสตรที่อยูเบื้องหลังของรูปแบบฐานขอมูลเชิงสัมพันธและการกระทํากับขอมูลที่ตองการที่ถูกจัดเก็บในฐานขอมูล

เรื่องที่ 2.3.1 Constraints

Constraints คือ ขอบังคับหรือเงื่อนไขในการอนุญาติใหเก็บเฉพาะขอมูลที่เหมาะสมลงในฐานขอมูลเพ่ือใหการเลือกขอมูลจากฐานขอมูลเปนไปอยางถูกตอง ประโยชนอยางอื่นของการมีเงื่อนไข ไดแก

1. เพ่ือตรวจสอบขอผิดพลาดในการกรอกขอมูลลงในฐานขอมูล 2. เพื่อความถูกตองในการปรับปรุงขอมูล 3. เพื่อรักษาความถูกตองของขอมูลโดยรวม 4. เพื่อบอกใหฐานขอมูลทราบวาผูใชตองการจะเก็บขอมูลหรือคนหาขอมูล รูปแบบของการแสดงฐานขอมลู เชน E/R model เงื่อนไขที่สามารถแสดงไดมีเพียงการประกาศคีย

ชนิดความสัมพันธ ลักษณะการเปนสมาชิก และความซํ้าซอนเทาน้ัน ตางจาก Relational model หรือ SQL ท่ีสามารถรองรับเง่ือนไขท่ีมากกวาน้ีได คือ

- Key constraint - Not Null constraint - Referential Integrity constraint - Check - Assertion constraint ในการประกาศและบังคับใชเงื่อนไขเพื่อใหมีผลกับฐานขอมูล สามารถทําไดโดยการประกาศไวใน

รูปแบบของความสัมพันธ หรือประกาศภายหลัง ซึ่งจะมีผลใชกับฐานขอมูลที่ใชอยูปจจุบัน เม่ือประกาศเงื่อนไขบังคับไปแลว และมีเหตุการณใดที่ทําใหผิดเงื่อนไข เชน คําส่ัง SQL ระบบจดัการฐานขอมลูก็จะตอง

Page 18: บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

'(

ยกเลิกเหตุการณหรือคําสั่งนั้นและแจงขอผิดพลาดใหผูใชทราบทันที ตัวอยางที่จะกลาวตอไปจะอางอิงโดยใชคําสั่ง SQL ซึ่งเปนคําสั่งที่นิยมใชมากในการคนหาขอมูลจากฐานขอมูล

Key constraint

ในฐานขอมูลเชิงสัมพันธมีเงื่อนไขเกี่ยวกับคียอยู 2 แบบ คือ คียหลัก เมื่อมีการใหคาแก คียหลัก ในความสัมพันธใดๆ ก็แลวแต คาของคียชนิดนี้จะไมเปน

Null เสมอ (Not Null) และจะถูกใชเปนดัชนีในการเรียงลําดับเสมอ เมื่อผูใชคนหาขอมูลจากความสัมพันธโดยใสคา คียหลัก เปน Null ก็จะไมพบขอมูลที่ตองการ ดังนั้นผูใชจึงจําเปนจะตองทราบถึงเงื่อนไขนี้ เพื่อใหไดขอมูลที่ถูกตองจากการคนหา

การกําหนดคียใน SQL สามารถทําไดสองแบบ คือ การกําหนดใหแอททริบิวแตละตัว หรือกําหนดไวตั้งแตตนเมื่อสรางความสัมพันธ ดังตัวอยาง

CREATE TABLE Emp (EmpID integer คียหลัก, Name char(40), Address char(80) Dept char(3) Office integer, Phone char(10) UNIQUE (name,address))

Unique ความสัมพันธใดๆ สามารถมีแอททริบิวท่ีเปนเอกลักษณไดมากกวาหน่ึงนอกจาก คียหลัก โดยการกําหนดใหแอททริบิวนั้นเปน Unique และทุกแอททริบิวที่เปน Unique นั้นจะถูกใชเปนดัชนีในการเรียงรายการในความสัมพันธนั้นโดยอัตโนมัติ ตอจาก คียหลัก ตัวอยางดังการสรางตารางในภาษา SQL ขางบน

Referential Integrity

การอางอิงถึงขอมูลจากความสัมพันธอื่น มีเงื่อนไข คือ แอททริบิวที่อางอิงมาจากความสัมพันธอื่นจะตองเปน คียหลัก เสมอ เพ่ือปองกันไมใหเกิดการซํ้า

ซอนของขอมูลท่ีอางอิงได แอททริบิวที่ถูกอางอิงและนํามาอยูในความสัมพันธจะถูกเรียกวา Foreign key ในการบังคับใช Referential Integrity จาก SQL สามารถประกาศไวกับตัวแอททริบิวโดยตรงหรือ

ประกาศแยกไวในความสัมพันธที่ตองการอางอิงถึงแอททริบิวตัวนั้น CREATE TABLE Apply(ID integer REFERENCES Emp(EmpID),

Location char(20),

Page 19: บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

')

Dept char(3), FOREIGN KEY (location) REFERENCES Building(location))

Check

การตรวจสอบคาของขอมูลในความสัมพันธเปนเงื่อนไขอยางหนึ่งที่จะตองทําตาม เพ่ือกรองเฉพาะขอมูลที่เหมาะสมลงไปเก็บในฐานขอมูล คําส่ัง CHECK ในภาษา SQL สามารถใชรวมกับคําสั่งสรางตารางความสัมพันธ CREATE TABLE ใน SQL เพื่อตรวจสอบการรับขอมูลวาสมควรจะเก็บขอมูลแถวนั้นในตารางหรือไม ยกตัวอยางเชน ความสัมพันธ Emp มีการเพิ่มอายุของพนักงาน จึงตองมีการตรวจสอบวาพนักงานมีอายุเกิน 20 ปหรือไม

CREATE TABLE Emp (EmpID integer คียหลัก, Name char(40), Age integer, Address char(80) Dept char(3) Office integer, Phone char(10) CHECK (age > 20))

Assertion

Assertion คือ เงื่อนไขที่ใชทั่วไปในการตรวจสอบความถูกตองโดยรวมของทุกความสัมพันธหรือทุกฐานขอมูล ซ่ึงสามารถใสเปนเง่ือนไข เชน การเปรียบเทียบไดโดยตรง การสราง Assertion โดยใช SQL สามารถทําไดโดยใชคําสั่งในรูปแบบตอไปนี้

CREATE ASSERTION <name> CHECK (<condition>) อาศัยตัวอยางความสัมพันธ Emp ที่ปรับปรุงแลวขางตน

CREATE ASSERTION ageover CHECK (NOT EXISTS (SELECT age FROM Emp) > 20) Assertion ที่สรางไวจะเปนเงื่อนไขที่ทําใหระบบจัดการฐานขอมูลคอยเช็ควาเกิดการผิดเงื่อนไขตามที่กําหนดไวใน Assertion หรือไม ถาเกิดการผิดพลาดระบบจัดการฐานขอมูลก็จะรายงานตอผูใชดวยช่ือของ Assertion ที่สรางไวทันท ี

Page 20: บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

'*

ตอนท่ี 2.4 Cartesian Rule

หัวเร่ือง เร่ืองท่ี 2.4.1 Cartesian Product เร่ืองท่ี 2.4.2 Join

แนวคิด 1.ผูใชสามารถนําขอมูลจากหลายๆตารางมารวมกันไดตามที่ตองการโดยอาศัยกฎของความสัมพันธมาจากรูปแบบทางคณิตศาสตรเขามาชวย คือ Cartesian Rule

วัตถุประสงค หลังจากศึกษาตอนที่ 2.4 แลว นักศึกษาสามารถ 1. เขาใจหลักการและทฤษฎีทางคณิตศาสตรที่อยูเบื้องหลังของรูปแบบฐานขอมูลเชิงสัมพันธและการกระทํากับขอมูลที่ตองการที่ถูกจัดเก็บในฐานขอมูล

เรื่องที่ 2.4.1 Cartesian Product

พิจารณาความสัมพันธ R1 และ R2 ที่ตางกัน R1(A1,A2,…,An) และ R2(A1’,A2’,…,Am’) เมื่อตองการจะเชื่อมเขาดวยกันจะตองทํา Cartesian Product ของทั้งสองความสัมพันธ ซ่ึงสามารถเขียนไดเปน R1 X R2 ที่มีผลลัพธในรูปแบบความสัมพันธใหม (A1,A2,…,Am, A1’, A2’,…, Am’) และประกอบไปดวยแถวทั้งหมดจากทั้งสองความสัมพันธ (t1,…, tn, t1’,…, tm’) โดยที่ (t1,…, tn) อยูใน R1 และ (t1,…,tm’) อยูใน R2 ความสัมพันธในลักษณะของ Cartesian product จะถูกนําไปใชในการ Join ซ่ึงเราจะไดเรียนตอไป

การทํา Cartesian Product แทที่จริงแลวคือการนําแถวจาก R1 มาตอกับแถวจาก R2 ทําเชนนี้ไปทีละแถว จนกระทั่งไดผลลัพธทั้งหมด ดังนั้นจํานวนแถวของความสัมพันธผลลัพธจะเทากับจํานวนแถวของ R1 คูณดวยจํานวนแถวของ R2 ตัวอยาง ตาราง 2-10 แสดงความสัมพันธ R, S และ R X S

R First Last Age S Dinner Dessert บิณฑ บันลือ 22 ขาวเหนียว เฉากวย มะลิ หอมชื่นใจ 23 อาหารทะเล รวมมิตร โตน ตนตาล 32 อาหารทะเล รวมมิตร

R X S First Last Age ฃ Dessert บิณฑ บันลือ 22 ขาวเหนียว เฉากวย บิณฑ บันลือ 22 อาหารทะเล รวมมิตร มะลิ หอมชื่นใจ 23 ขาวเหนียว เฉากวย

Page 21: บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

'"

มะลิ หอมชื่นใจ 23 อาหารทะเล รวมมิตร โตน ตนตาล 32 ขาวเหนียว เฉากวย

โตน ตนตาล 32 อาหารทะเล รวมมิตร ตาราง 2-15 ความสัมพันธ R, S และ R X S

เรื่องที่ 2.4.2 Join

การรวมขอมูลจากหลายความสัมพันธเขาดวยกัน เรียกวา Join ซึ่งตางจาก Projection และ Selection จากขางตนที่กระทําบนความสัมพันธเดียว Join จะรวมขอมูลเขาดวยกันโดยอาศัยเงื่อนไขทางตรรกะในรูปแบบ R CS โดยที่ R และ S เปนความสัมพันธ C เปนเง่ือนไข ตัวอยางเชน การ Join ความสัมพันธ EMP และ DEPTINFO เขาดวยกัน แสดงดังตาราง 2-11

EMP Name Office Dept Salary DEPT Dept MainOffice Phone สิทธ ิ 400 CS 45000 CS 404 555-1212 โจ 220 Econ 35000 Econ 200 555-1234 เขียว 160 Econ 50000 Fin 501 555-4321 ตาล 420 CS 65000 Hist 100 555-9876 สิทธ ิ 500 Fin 60000

ตาราง 2-11 ความสัมพันธ EMP และ ความสัมพันธ DEPT เราสามารถ ใช Join เพ่ือคนหารายละเอียดเก่ียวกับท่ีทํางานของพนักงานทุกคนไดโดยเขียนในรูปแบบ EMP DEPT=DEPTDEPTINFO ผลลัพธจากการ Join น้ีแสดงดังตาราง 2-12

EMP Name Office Dept Salary Dept MainOffice Phone สิทธ ิ 400 CS 45000 CS 404 555-1212 โจ 220 Econ 35000 Econ 200 555-1234 เขียว 160 Econ 50000 Econ 200 555-1234 ตาล 420 CS 65000 CS 404 555-1212 สิทธ ิ 500 Fin 60000 Fin 501 555-4321

ตาราง 2-16 ผลลัพธจากการ Join ความสัมพันธ EMP และ DEPTINFO โดยใชเงื่อนไข DEPT=DEPT ลักษณะการ Join มีหลายแบบ ไดแก Theta-Join คือ การ Join แบบปกติซึ่งทําใหเกิดชื่อคอลัมนที่ซ้ํากัน

Page 22: บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์ (Relational Data Model)

($

Equi-Join คือ การ Join แบบที่เงื่อนไขเทากับ = เทาน้ัน และผลลัพธท่ีไดคอลัมนท่ีซํ้ากันจะถูกแสดงเพียงแคครั้งเดียว

Natural-Join คือ Equi-Join ที ่Join ทุกคอลัมนท่ีซํ้ากัน