บรรยายครั้งที่ 2

Download Report

Transcript บรรยายครั้งที่ 2

เอกสารประกอบการบรรยาย
วิชา 204204 การออกแบบและพัฒนา
ฐานข้ อมูล
บทที่ 5
ระบบฐานข้อมูลเชิงสัมพันธ์
วัตถุประสงค์ รายครั้ ง
นักศึกษาสามารถ
• อธิบายแนวคิดของฐานข้อมูลเชิงสัมพันธ์ได้อย่างถูกต้อง
• บอกความหมายของคาที่เกี่ยวข้องกับฐานข้อมูลเชิงสัมพันธ์ได้อย่าง
ถูกต้อง
หั วข้ อการสอน
•
•
•
•
•
•
•
•
•
คาศัพท์เกี่ยวกับโมเดลเชิงสัมพันธ์
คุณสมบัติของ Relation
แนวคิดของ E.F Codd
ค่าว่าง (Null Value)
Redundant & Duplicate Data
ชนิดของ Relation
ประเภทของ Key
คุณลักษณะของฐานข้อมูลเชิงสัมพันธ์
เหตุผลในการใช้ฐานข้อมูลเชิงสัมพันธ์
คาศัพท์ เกี่ยวกับโมเดลเชิ งสัมพันธ์
•
•
•
•
•
•
รี เลชัน่ (Relation)
ทูเปิ ล (Tuple)
แอททริ บิวท์ (Attribute)
คาร์ดินลั ลิติ้ (Cardinality)
ดีกรี (Degree)
คียห์ ลัก (Primary key)
• โดเมน (Domain)
คุณสมบัติของ Relation
•
•
•
•
•
ไม่มี Tuples คูใ่ ด ๆ เลยที่ซ ้ำกัน
ลำดับที่ของ Tuples ไม่มีควำมสำคัญ
ลำดับที่ของ Attributes ไม่มีควำมสำคัญ
ค่ำของ Attribute จะเป็ นค่ำเดี่ยว ๆ (Atomic)
ค่ำของข้ อมูลในแต่ละ Attribute จะบรรจุคำ่ ของข้ อมูลประเภท
เดียวกัน
แนวคิดของ E.F Codd
• กฎข้ อที่ 1 กฎข่ำวสำร (The Information Rule)
• กฎข้ อที่ 2 กฎกำรกำรันตีกำรเข้ ำถึงข้ อมูล (Guaranteed Access Rule)
• กฎข้ อที่ 3 วิธีแสดงว่ำข้ อมูลบำงรำยกำรยังไม่พร้ อม หรื อยังไม่มีคำ่ ให้ ใช้
ค่ำ null
• กฎข้ อที่ 4 โครงสร้ ำง จะต้ องมีสภำพ โมเดลแบบรี เลชัน่ นอล
• กฎข้ อที่ 5 กฎของภำษำ (Comprehensive data sublanguage rule)
• กฎข้ อที่ 6 กฎกำรแก้ ไขข้ อมูลผ่ำนทำงวิว (View update rule)
• กฎข้ อที่ 7 ควำมสำมำรถในกำรเพิ่ม ลด และแก้ ไขข้ อมูล
• กฎข้ อที่ 8 ควำมเป็ นอิสระของข้ อมูลในระดับกำยภำพ (Physical
data independence)
• กฎข้ อที่ 9 ควำมเป็ นอิสระของข้ อมูลในระดับตรรก (Logical data
independence)
• กฎข้ อ 10 ควำมเป็ นอิสระของ
• กฎข้ อ 11 ควำมเป็ นอิสระของกำรกระจำย
• กฎข้ อ 12 กำรไม่ยอมให้ ภำษำอื่นทำลำยกฎ
ค่ าว่ าง (Null Value)
• ค่าของ Attribute อาจจะเป็ นค่าว่าง (Null) คือ ไม่มีค่าหรื อยังไม่
ทราบค่าได้
• ตัวอย่างเช่น
– จานวนไข่ของนกกระจอกเทศ จะสามารถบอกได้เมื อ่ นกกระจอกเทศออก
ไข่แล้ว แต่ยงั ไม่ทราบค่า ในขณะทีจ่ านวนไข่ของช้างนัน้ ไม่มีค่า เป็ นต้น
Redundant & Duplicate Data
• Duplicate data จะเกิดขึ ้นก็ตอ่ เมื่อ Attribute หนึง่ มีคำ่ ของข้ อมูลที่
เหมือนกันตังแต่
้ สองค่ำขึ ้นไป
• ข้ อมูลจะซ ้ำซ้ อน (Redundant) ก็ตอ่ เมื่อเรำสำมำรถตัดข้ อมูลที่
ซ ้ำซ้ อนนันออกไปได้
้
โดยไม่ทำให้ สญ
ู เสียข้ อมูล
• อำจกล่ำวได้ วำ่ ควำมซ ้ำซ้ อน (Redundancy) คือ Duplication ที่ไม่
จำเป็ น
ชนิดของ Relation
• Relation หลัก (Base Relation)
– เป็ น Relation ที่ถกู กำหนดขึ ้นเพื่อเก็บข้ อมูลและเพื่อนำข้ อมูลไปใช้ เมื่อมี
กำรสร้ ำง Relation โดยใช้ Data Definition Language เช่น ใน SQL
คำสัง่ CREATE TABLE เป็ นกำรสร้ ำง Relation หลัก
• วิว (View) หรืออาจเรียกอีกอย่ างหนึ่งว่ า Relation สมมติ
(Virtual Relation)
– เป็ น Relation ที่ถกู สร้ ำงขึ ้นตำมควำมต้ องกำรใช้ ข้อมูลของผู้ใช้ แต่ละคน
เนื่องจำกผู้ใช้ แต่ละคนอำจต้ องกำรใช้ ข้อมูลในลักษณะที่แตกต่ำงกัน จึง
ทำกำรกำหนดวิวของตัวเองขึ ้นมำจำก Relation หลัก
ประเภทของ Key
• Simple key
– หมำยถึง key ที่ประกอบด้ วย attribute เดียว
• Combine key (Composite key หรือ Concatenated key)
– Combine key หรื อ คีย์ประกอบ หมำยถึง key ที่ประกอบด้ วย attribute
มำกกว่ำ 1 attribute
• Candidate key
– Candidate key หรื อ คีย์คแู่ ข่งหมำยถึง key ที่สำมำรถจะเป็ นคู่แข่งซึง่ จะ
ถูกเลือกให้ เป็ นคีย์หลัก
• Primary key
– Primary key หรื อ คีย์หลัก หมำยถึง candidate key ตัวหนึง่ ที่ถกู เลือก
ขึ ้นมำเป็ นคีย์หลัก สำหรับ primary key เรำจะใช้ สญ
ั ลักษณ์ขีดเส้ นใต้
กำกับไว้ ใต้ attribute ตัวนัน้
• Foreign key
– หมำยถึง nonkey attribute ใน relation หนึง่ ที่เป็ น primary key ใน
relation อื่น
• Secondary key (Alternate key)
– คีย์รอง หมำยถึง candidate key ที่ไม่ได้ ถกู เลือกเป็ นคีย์หลัก (primary
key)
• Superkey
– attribute หรื อ เซ็ทของ attribute ที่สำมำรถบ่งบอกว่ำแต่ละแถว (Tuple)
แตกต่ำงกัน ในทุก ๆ ควำมสัมพันธ์ จะต้ องมีอย่ำงน้ อย หนึง่ Super key
ในเซ็ทของ attributes
คุณลักษณะของฐานข้ อมูลเชิ งสัมพันธ์
• Data Structure ต้ องเป็ น relation เท่ำนัน้ โดย
– Domain จะต้ องเป็ น single value (atomic value) เท่ำนัน้ ไม่มี data item
ตัวหนึง่ ตัวใดมีลกั ษณะเป็ น repeating group
– N-ary relation เป็ นตำรำงที่ประกอบด้ วย attribute และ tuples
• Data Integrity rule
– Entity Integrity Rule กล่ำวไว้ วำ่ “ค่ำของ primary key จะเป็ น null ไม่ได้ ”
– Referential Integrity Rule กล่ำวไว้ วำ่ “foreign key ของ relation หนึง่
จะต้ องมีคำ่ เท่ำกับค่ำของ primary key ของอีก relation หนึง่ มิฉะนันจะต้
้ อง
มีคำ่ เป็ น null”
• ในกำรแก้ ไขหรื อกำรลบ primary key ใน relation หนึง่ จะมี
ผลกระทบถึง foreign key ในอีก relation หนึง่ DBMS จะยอมให้
กระทำได้ ใน 3 กรณี ดังนี ้
– Restriction ไม่ยอมให้ กระทำกำร update หรื อ delete นอกจำกจะมี
เงื่อนไขกำหนดไว้ จงึ จะทำได้
– Cascade ยอมให้ ทำกำร update หรื อ delete ได้ แต่ต้องกระทำอย่ำง
ต่อเนื่องในอีก relation หนึง่
– Nullify ยอมให้ ทำกำร update หรื อ delete ได้ โดยกำร set ค่ำของ foreign
key ให้ เป็ น null
• Data Manipulation language
– ต้ องเป็ นภำษำ Relational Complete Language ตำมแนวคิดของ Codd
มี 2 สำย ดังนี ้
• Relational Calculus (R.C)
• Relational Algebra (R.A)
เหตุผลในการใช้ ฐานข้ อมูลเชิ งสัมพันธ์
• ผลงานทีไ่ ด้จากการพัฒนาระบบงานสูงสุด (Productivity สูงมาก)
• โครงสร้างข้อมูลเรี ยบง่าย ทาให้ง่านต่อการใช้งาและการเขี ยน
โปรแกรม
• ภาษาทีใ่ ช้เหมาะสม เป็ นภาษาทีเ่ รี ยกว่า “relational complete
language” เป็ น concept ของ set theory เช่น ภาษา SQL, QBE
เป็ นต้น