210 likes | 935 Views
บทที่ 4 ฐานข้อมูลเชิงสัมพันธ์. Relational Database. Topics. ความหมายของฐานข้อมูลเชิงสัมพันธ์ ศัทพ์ที่เกี่ยวข้อง คุณสมบัติของ Relation ประเภทของ Key ประเภทของ Relation. โครงสร้างฐานข้อมูลเชิงสัมพันธ์. รีเลชัน (Relation)
E N D
บทที่ 4 ฐานข้อมูลเชิงสัมพันธ์ Relational Database
Topics • ความหมายของฐานข้อมูลเชิงสัมพันธ์ • ศัทพ์ที่เกี่ยวข้อง • คุณสมบัติของ Relation • ประเภทของ Key • ประเภทของ Relation
โครงสร้างฐานข้อมูลเชิงสัมพันธ์โครงสร้างฐานข้อมูลเชิงสัมพันธ์ รีเลชัน (Relation) แบบจำลองฐานข้อมูลเชิงสัมพันธ์ จะมีการเก็บข้อมูลในรูปแบบตาราง (table) ซึ่งเรียกอีกอย่างว่า รีเลชัน (Relation) ประกอบด้วย คอลัมน์และแถวของข้อมูล • คอลัมย์ แสดงถึงคุณลักษณะของรีเลชัน คือ เขตข้อมูลหรือแอททริบิวต์ • แถว เรียกอีกอย่างว่า ทัพเพิล (tuple) หรือ เรคอร์ด (record) เป็นที่เก็บสามาชิกของรีเลชัน
โครงสร้างของรีเลชัน ชื่อรีเลชั่น ช่องข้อมูล (Cell) นักศึกษา แถว หรือ ทัพเพิล คอลัมน์ หรือ แอททริบิวท์ จำนวนของแอททริบิวท์ในรีเลชั่นเรียกว่า ดีกรี (Degree) ของรีเลชั่น จำนวนแถวข้อมูลที่อยู่ในรีเลชันเรียกว่า คาร์ดินัลลิตี (Cardinality)
ศัพท์ที่เกี่ยวข้อง • Relationคือ ตารางเก็บข้อมูล แบบสองมิติ ที่ประกอบด้วยแถวและหลัก แต่ละช่องตารางบรรจุ ข้อมูลค่าเดียว (single value) • Tupleคือ ข้อมูลในแต่ละแถว ( row หรือ record) • Attribute คือ รายละเอียดของข้อมูลในแต่ละคอลัมน์ ( column หรือ field) ชื่อ attribute ใน Relation เดียวกัน ต้องแตกต่างกัน • Degree คือ จำนวนของ attribute หรือจำนวนคอมลัมน์ ในตารางใด ๆ • Cardinalityคือจำนวนของแถวในตาราง • Domainคือ ขอบเขตของค่าต่างๆ ที่เป็นไปได้ในแต่ละคอลัมน์
คุณสมบัติของรีเลชั่น (Properties Of Relation) • ช่อง(Cell) แต่ละช่องของตารางจะเก็บข้อมูลได้เพียงค่าเดียว • ชนิดข้อมูล ข้อมูลที่อยู่ในคอลัมน์เดียวกันจะต้องมีชนิดข้อมูล (Data Type) เป็นแบบเดียวกัน เช่น คอลัมน์รหัสนักศึกษา ของทุกแถวจะต้องมีข้อมูลที่เป็นตัวเลขเท่านั้น • ชื่อคอลัมน์ แต่ละคอลัมน์ของรีเลชันหนึ่ง ๆ จะต้องมีชื่อคอลัมน์ที่แตกต่างกัน ส่วนลำดับของคอลัมน์ก่อนและหลังไม่ถือว่าสำคัญ • แถว ข้อมูลแต่ละแถว่ารีเลชันหนึ่ง ๆ จะต้องแตกต่างกันไม่ซ้ำกัน การเรียงลำดับของแถวไม่ถือว่าสำคัญ • โดเมน(Domain) คือกลุ่มหรือขอบเขตของข้อมูลทั้งหมดที่เป็นไปได้ • ค่าว่าง ถ้ามีแอททริบิวต์ใดไม่มีค่าข้อมูลเก็บอยู่ จะเรียกค่าในแอททริบิวต์นั้นว่า ค่าว่าง (Null Values)
ประเภทของคีย์ (Keys) • Key คือ Attribute หรือ กลุ่มของ Attribute ที่สามารถแยกความแตกต่างของข้อมูลในแต่ละแถวได้ หรือ Key คือ Attribute ที่มีข้อมูลไม่ซ้ำกัน • ประเภทของคีย์ • คีย์หลัก (Primary Key) • คีย์ร่วม (Composite Key) • คีย์นอก (Foreign Key) • คีย์คู่แข่งและคีย์สำรอง (Candidate Keyand Alternate Key)
คีย์หลัก (Primary Key : PK) • ข้อมูลของแอททริบิวต์ที่เป็นคีย์หลัก จะมีความเป็นหนึ่งเดียว คือ ทุก ๆ แถวของตารางจะต้องไม่มีข้อมูลของแอททริบิวต์ที่เป็นคีย์หลักนี้ซ้ำกัน สรุป (ค่าในคอลัมย์ที่ถูกเลือกมาเป็นคีย์หลักของตารางจะต้องไม่ซ้ำกัน นั่นเอง) • คีย์หลักของแต่ละตารางจะต้องประกอบด้วยจำนวนแอททริบิวต์ที่น้อยที่สุด และสามารถอ้างอิงถึงแถวแต่ละแถวในรีเลชั่นหรือตารางได้ • แอททริบิวต์ที่เป็นคีย์หลักของรีเลชันจะแทนได้ด้วยการขีดเส้นใต้แอททริบิวต์ดังกล่าว เช่น ในรีเลชันนักศึกษา จะมีรหัสนักศีกษาเป็นคีย์หลัก • คีย์หลัก จะเป็นค่าว่าง (Null) ไม่ได้ นักศึกษา (รหัสนักศึกษา,เพศ,ชื่อนักศึกษา,วันเดือนปีเกิด,ที่อยู่,เบอร์โทร,รหัสคณะ)
นักศึกษา นักศึกษา หรือ นักศึกษา(รหัสนักศึกษา, ชื่อ สกุล, วดป.เกิด, ที่อยู่, รหัสคณะ) • จากรูปสามารถเขียนเป็นแบบจำลองฐานข้อมูลเชิงสัมพันธ์สำหรับรีเลชัน นักศึกษา ได้ดังนี้
คีย์ร่วม (Composite Key) ตารางผลการเรียน สามารถเขียน เป็น แบบจำลองฐานข้อมูลเชิงสัมพันธ์ได้ดังนี้ ผลการเรียน(รหัสนักศึกษา,รหัสวิชา,ปีการศึกษา,เกรด) คีย์ร่วม • จากตาราง • ถ้าใช้รหัสนักศึกษาอย่างเดียวเป็นคีย์หลักจะไม่สามารถระบุความแตกp • ต่างของแถวได้ เพราะมีรหัสที่เหมือนกัน • ถ้าใช้ รหัสนักศึกษา และ รหัสวิชา ทั้งสองตัวร่วมกัน จะระบุได้ว่าแต่ละแถวต่างกัน • ดังนั้น สรุปได้ว่า ตารางผลการเรียนมีคีย์หลักของตารางคือ รหัสนักศึกษา และ รหัสวิชา เรียกคีย์มี่มีลักษณะนี้ว่า คีย์ร่วม
คีย์คู่แข่งและคีย์สำรอง (Candidate Keyand Alternate Key) • รีเลชันหรือตารางทั่วไป อาจจะมีหลายแอททริบิวต์ที่มีคุณสมบัติที่สามารถเลือกมาเป็นคีหลักของตารางได้ จะเรียกกลุ่มของแอททริบิวต์เหล่านี้ว่า คีย์คู่แข่ง • เช่นตารางนี้มี รหัสลูกค้า และ เลขที่บัตรประชาชน เป็น candidate key • ถ้าเลือก รหัสลูกค้าเป็น คีย์หลัก ของตาราง นี้ เลขที่บัตรประชาชนจะเป็น คีย์สำรอง คีย์สำรอง คีย์หลัก
คีย์นอก(Foreign Key : FK) • คีย์นอก ใช้แสดงความสัมพันธ์ระหว่างรีเลชันหรือตาราง มีคุณสมบัติดังนี้ • คีย์นอก เป็นแอททริบิวต์หรือกลุ่มของแอททริบิวต์ที่อยู่ในรีเลชั่น หนึ่ง ๆ ที่ค่าของแอททริบิวต์นั้นไปปรากฏเป็นคีย์หลักใน อีกรีเลชันหรือตาราง (หรืออาจเป็นรีเลชันหรือตารางเดิมก็ได้) • คีย์นอก เปรียบเสมือนกาวเชื่อมข้อมูลในรีเลชันหนึ่งกับอีกรีเลชั่นหนึ่ง ซึ่งเป็นการสร้างความสัมพันธ์ระหว่างรีเลชั่น • คีย์นอกและคีย์หลักของอีกรีเลชั่นที่มีความสัมพันธ์กัน จะต้องอยู่ภายใต้โดเมนเดียวกัน และคีย์นอกไม่จำเป็นต้องมีชื่อเหมือนกับคีย์หลักของอีกรีเลชั่นที่มีความสัมพันธ์กัน • รีเลชั่นหนึ่ง ๆ อาจจะมีคีย์นอกอยู่หรือไม่มีก็ได้ แต่ทุกรีเลชั่นจะต้องมีคีย์หลักเสมอ
คีย์นอก(Foreign Key : FK) ตารางพนักงาน รหัสแผนกเป็นคีย์นอกของตารางพนักงาน ตารางแผนก เขียนเป็นแบบจำลองฐานข้อมูลเชิงสัมพันธ์ได้ดังนี้ พนักงาน แผนก
ประเภทของ Relation 1) Relation หลัก (Base Relation) เป็นรีเลชั่นจริงที่ถูกสร้างขึ้นมาเพื่อใช้เก็บข้อมูล เช่น รีเลชั่น Student สำหรับเก็บข้อมูลนักศึกษา 2) Virtual Relation หรือ วิว (View)เป็นรีเลชั่นเสมือนที่ถูกสร้างขึ้นมาตามความต้องการของผู้ใช้ เนื่องจากผู้ใช้แต่ละคนอาจต้องการข้อมูลที่แตกต่างกันโดยเอาข้อมูลใน Attribute ที่ต้องการจากรีเลชั่นหลักมาแสดงผล สามารถนำมาจากรีเลชั่นหลัก เพียงรีเลชั่นเดียวหรือหลายรีเลชั่นก็ได้
ประเภทของ Relation Major STUDENT Relation หลัก Virtual Relation