357337 – Web Programming and Web Database Relational Model 357337 – Web Programming and Web Database
Relational Model โมเดลเชิงสัมพันธ์ (Relational Model) แสดงข้อมูลรวมทั้งความสัมพันธ์ระหว่างข้อมูล ให้อยู่ในรูปของ ตาราง ซึ่งตารางในที่นี้จะหมายถึง ตาราง 2 มิติ ที่มี แถว (row) และ คอลัมน์ (column) ตาราง (Tables) อาจเรียกได้อีกอย่างว่า Relations ระบบฐานข้อมูลแบบ Relational ประกอบจาก set ของตาราง (Tables) ในแต่ละ Table ประกอบด้วย Columns (Fields หรือ Attributes)
Relational Model ค่าของทุก column ต้องเป็น atomic ในแต่ละ Table ประกอบด้วย set ของแถว (แบบไม่คิดลำดับ) ในแต่ละ row จะมีค่าของ column สอดคล้องกับ column ของ Tables Keys: แนวคิดเดียวกับ Superkey, candidate key, และ primary key
Relational Model Relation name Attributes Degree = number of attributes = 3 Relation Schema or Intention account Account-number Balance Branch-name บางซื่อ A-101 500000 A102 10200 ถนนจันทร์ A-524 80500 A215 45007 A-215 45000 บางกอกน้อย A342 70278 Tuples Relation or Extension Domains: String Number String
ตัวอย่าง Relation schema Account-schema กำหนดลักษณะของ Table Relation Account-schema = (account-number, balance, branch-name) Account-schema กำหนดลักษณะของ Table Relation account(Account-schema) หรือกล่าวว่า “account เป็น table บน Account-schema”
ประเภทของคีย์ (Types of Keys) Primary Key คือข้อมูลที่มีค่า unique หรือมีค่าไม่ซ้ำกันเลย โดย primary key จะเป็นคีย์หลักของตาราง เพื่อที่จะเข้าไปทำงานกับแต่ละแถวข้อมูล Foreign Key คือคีย์ที่เป็น primary key ของตารางหนึ่ง แต่ไปอยู่ในอีกตารางหนึ่ง เพื่อให้กำหนดความสัมพันธ์ระหว่างตาราง
การแปลง E-R schema เป็น Tables แปลง Entity Set E โดยที่ E มี attributes a1, a2, …, an สร้าง Table E’ ประกอบด้วย column a1, a2, …, an primary key ของ Table E’ = primary key ของ Entity Set E Relationship Set R ของ Entities E1 กับ E2 ให้เพิ่ม primary key ของ Entity E1 เป็น column ใน Table E2 เพื่อใช้เป็นForeign key ไปยัง E1 สามารถเลือกตัว Entity ใดเป็น E1 หรือ E2 ก็ได้ แนะนำให้เลือก E ที่เป็น totally participated ใน Relationship set R เป็น E2 ถ้า total participated ทั้ง 2 ข้างอาจรวม 2 entities+ relationship เป็น 1 Table
การแปลง E-R schema เป็น Tables แปลง Multivalued Attribute M ของ Entity E สร้าง Table M โดยมี column ที่เกิดจาก attribute นั้น และ column ของ primary key ของ E
ตัวอย่าง n m depositor 1 borrower m 1 n street city zipcode name address SSN Acct-No Balance n m depositor Customer Account 1 access-date borrower m 1 n Loan-payment Loan Payment loan-no amount payment-no payment-amount payment-date
ตัวอย่าง E: customer(SSN, name, street, city, zipcode) E: account(account-no, balance) E: loan(loan-no, amount, SSN*) // SSN is foreign key to customer WE: payment(loan-no*, payment-no, payment-amount, payment-date) R: depositor(SSN*, account-no*, access-date)
สรุปความสัมพันธ์ของ ER กับ Relational Models ER Model Entity Type 1:1 หรือ 1:N relationship type M:N relationship type n-ary relationship type Simple attribute Composite attribute Multi-valued attribute Value set Key attribute Relational Model Entity Relation Foreign Key ตาราง กับ 2 foreign keys ตาราง กับ n foreign keys attribute กลุ่มของ simple attributes ตารางและ foreign key Domain Primary key หรือ secondary key
Example Customer Customer Customer_ID Customer_Name Customer_Address
Example Customer Customer Customer_ID Customer_Name Street City Zipcode Customer_Name Customer_ID Customer_Address Customer Customer Customer_ID Customer_Name Street City Zipcode
Example Employee Employee_Skill Employee Employee_ID Employee_Name Employee_Address Employee Skill Employee Employee_ID Employee_Name Employee_Address Employee_Skill Employee_ID Skill
Example Student Contact Contact Student 1 1 Student_ID Student_Name Amount Student_Name Contact_ID Student_ID Student_Address 1 1 Student loan Contact Loan_Date Student Student_ID Student_Name Student_Address Contact Contact_ID Amount Student_ID Loan_Date
Example Student Faculty N 1 Faculty Student Student_ID Student_Name Student_Address N 1 Member_of Faculty Student Student Student_ID Student_Name Student_Address Faculty_ID Faculty ID Name
Example Student Class Register M N Class Student Student_ID Name Student_Name ID Student_ID Student_Address M N register Class Student Student Student_ID Student_Name Student_Address Class ID Name Register Student_ID Class_ID