หน่วยที่ 4 ฐานข้อมูลเชิงสัมพันธ์
4.1 ฐานข้อมูลเชิงสัมพันธ์
ความหมายของฐานข้อมูลเชิงสัมพันธ์
ระบบฐานข้อมูลเชิงสัมพันธ์
(Relational
Database) เป็นฐานข้อมูลที่ใช้โมเดลเชิงสัมพันธ์ (Relational
Database Model) ซึ่งผู้คิดค้นโมเดลเชิงสัมพันธ์นี้คือ Dr.
E.F. Codd โดยใช้หลักพื้นฐานทางคณิตศาสตร์
เนื่องด้วยแนวคิดของแบบจำลองแบบนี้มีลักษณะที่คนใช้กันทั่วกล่าวคือมีการเก็บเป็นตาราง
ทำให้ง่ายต่อการเข้าใจและการประยุกต์ใช้งาน ด้วยเหตุนี้
ระบบฐานข้อมูลแบบนี้จึงที่ได้รับความนิยมมากที่สุด ในแง่ของ entity แบบจำลองแบบนี้คือ แฟ้มข้อมูลในรูปตาราง และ attribute ก็เปรียบเหมือนเขตข้อมูล ส่วนความสัมพันธ์คือความสัมพันธ์ระหว่าง entity
ฐานข้อมูลเชิงสัมพันธ์
คือ การเก็บข้อมูลในรูปของตาราง (Table) หลายๆตารางที่มีความสัมพันธ์กัน
ในแต่ละตารางแบ่งออกเป็นแถวๆ และในแต่ละแถวจะแบ่งเป็นคอลัมน์ (Column) ในทางทฤษฎีจะมีคำศัพท์เฉพาะแตกต่างออกไป
เนื่องจากแบบจำลองแบบนี้เกิดจากทฤษฎีทางคณิตศาสตร์เรื่องเซ็ท (Set)
ข้อดีของระบบฐานข้อมูลเชิงสัมพันธ์
1.เป็นกลุ่มของ Relation หรือตารางที่ถูกจัดเก็บเป็นแถวและคอลัมน์ทำให้ผู้ใช้งานมองเห็นภาพของข้อมูลได้ง่าย
2.ผู้ใช้ไม่จำเป็นต้องรู้ว่าข้อมูลถูกจัดเก็บจริงอย่างไร
รวมถึงวิธีการเรียกใช้ข้อมูล (Access Approach)
การเรียกใช้หรือเชื่อมโยงข้อมูลสามารถทำได้ง่าย
3.ภาษาที่ใช้ในการเรียกดูข้อมูลเป็นลักษณะคล้ายภาษาอังกฤษ
และไม่จำเป็นต้องเขียนเป็นลำดับขั้นตอน เช่น ภาษา SQL
กฎที่เกี่ยวข้องกับคีย์ในฐานข้อมูลเชิงสัมพันธ์
1. กฎความบูรณภาพของเอนทิตี (The Entity Integrity Rule)
Attribute ใดที่จะเป็นคีย์หลัก(PK) ข้อมูลใน Attribute นั้นจะเป็นค่าเอกลักษณ์
และเป็นค่า ว่าง(Null) ไม่ได้
2. กฎความ บูรณภาพของการอ้างอิง (The Reference Rule) ค่าของคีย์หลัก(PK)ได้ จึงจะเชื่อมโยงหรืออ้างอิงข้อมูลระหว่าง 2 Relation ได้
2.2 โครงสร้างฐานข้อมูลเชิงสัมพันธ์
Attribute หมายถึง
คุณลักษณะเฉพาะของแต่ละ Entity
คุณสมบัติของค่า attirbute
1.
เป็นค่าที่เป็นอะตอมมิค (atomic) หมายถึง เป็นค่าที่ไม่สามารถแบ่งย่อยต่อไปอีก
2.
ไม่อนุญาตให้มีแอตทริบิวต์ที่มีหลายค่า (multivalued attribute) ซึ่งเป็นคุณสมบัติของ FirstNormal Form
ชื่อของ attribute มีคุณสมบัติดังนี้
1.
แต่ละคอลัมน์ต้องมีการกำหนดชื่อที่แตกต่างกัน
2.
ชื่อโดยทั่วไปจะแสดงความหมายของข้อมูลที่จะถูกจัดเก็บไว้ในคอลัมน์นั้น
3.
ลำดับของคอลัมน์ไม่มีความสำคัญ
Domain คือ
เซตของค่าที่เป็นไปได้ในแอตทริบิวต์นั้น
คุณสมบัติของ Domain
แต่ละโดเมนจะถูกกำหนดด้วย ชื่อ, ชนิดข้อมูล(data
type) และ รูปแบบ (Format)
ภาพที่ 1.6 ตัวอย่างโดเมนจะถูกกำหนดด้วย ชื่อ
ชนิดข้อมูลและ รูปแบบ
ดีกรี(degree)ของรีเลชัน
หมายถึง จำนวนของ attribute(คอลัมน์)ใน Relationนั้น
คาร์ดินัลลิตี(Cardinality) หมายถึง
จำนวนของ Tuple (แถว)
ภาพที่ 1.7 โครงสร้างฐานข้อมูลเชิงสัมพันธ์
2.3 ประเภทของคีย์
เพื่อเพิ่มประสิทธิภาพในการจัดการฐานข้อมูล คีย์ที่ใช้ในระบบฐานข้อมูลมีหลายประเภท ดังนี้
คีย์หลัก
(Primary key)
หมายถึง
แอตทริบิวต์หรือกลุ่มของแอตทริบิวต์ของเทเบิลหนึ่ง
ที่มีข้อมูลไม่ซ้ำกันและมีค่าเสมา (ไม่เป็น NULL) ทำให้สามารถระบุได้ว่าเป็นข้อมูลแถวใดในเทเบิลนั้น
คีย์หลักจะใช้ประโยชน์ในการระบุ (identify) ข้อมูลที่ต้องการเข้าถึง
คีย์ลำดับรอง
(Secondary Key)
หรือบางครั้งก็เรียกว่า อินเด็ก (index)
หรือ ดัชนีซึ่งนอกจากกำหนดคีย์หลักให้กับแต่ละเทเบิล
แล้วเรายังใช้อินเด็กซ์เป็นคีย์ช่วยในการค้นหาหรือจัดเรียงกลุ่มแถวที่มีจำนวนมากได้อย่างรวดเร็ว
คอลัมน์ที่เป็นอินเด็กซ์นี้อาจยอมให้มีข้อมูลซ้ำกันได้
(ต่างกับคีย์หลักซึ่งจะมีข้อมูลซ้ำกันไม่ได้และคีย์หลักทุกตัวจะมีคุณสมบัติเป็นอินเด็กซ์อยู่แล้วโดยอัติโนมัติ) อีกประเด็นหนึ่งคือ
การสร้างอินเด็กซ์จากคอลัมน์ที่มีข้อมูลซ้ำกันมากๆ อาจไม่ให้ผลดีมากนัก
คีย์คู่แข่ง
(Candidate Key)
ถ้าในเทเบิลหนึ่งมีคอลัมน์หลายคอลัมน์ที่เป็นคุณสมบัติครบถ้วนจนนำมาใช้เป็นคีย์หลักแทนกันได้
จะเรียกคอลัมน์เหล่านั้นแต่ละคอลัมน์ว่าเป็น Candidate Key หรือ
คีย์คู่แข่ง
คีย์รวม
(Compound Key)
คีย์รวม (บางครั้งเรียก Composite
key) เป็นคีย์ที่เกิดจากการนำคอลัมน์หลายๆคอลัมน์มารวมกัน
เพื่อให้มีคุณสมบัติเป็นคีย์หลักหรือคือไม่มีข้อมูลซ้ำและไม่มีค่าว่าง (Null)
เนื่องจากในบางครั้งการสร้างคีย์หลักจากคอลัมน์เดียวอาจมีโอกาสที่จะเกิดข้อมูลซ้ำกันได้
คีย์นอก(Foreign
Key)
คีย์นอก
เป็นคีย์ที่ใช้เชื่อมเทเบิลที่เกี่ยวข้องเข้าด้วยกัน เช่น
ในเทเบิลลูกค้าจะมีคอลัมน์รหัสลูกค้าเป็นคีย์หลักเราจะให้รหัสลูกค้าในเทเบิลลูกค้าเชื่อมโยงกับรหัสลูกค้าในเทเบิลการสั่งซื้อ
เพื่อที่จะได้ทราบชื่อและที่อยู่ของลูกค้าที่สั่งซื้อสินค้านั้น
ในกรณีคอลัมน์รหัสลูกค้าในเทเบิลการสั่งซื้อจะมีคุณสมบัติเป็นคีย์นอก
(ในขณะที่คอลัมน์รหัสลูกค้าเมื่ออยู่ในเทเบิลลูกค้า จะมีคุณสมบัติเป็นคีย์หลัก)
ไม่มีความคิดเห็น :
แสดงความคิดเห็น