200 likes | 396 Views
โมเดลเชิงสัมพันธ์ Relational Model. Relational Data Model และ Relational Database Constraints. ถูกนำเสนอครั้งแรกโดย Ted Codd of IBM Research ในปี ค.ศ. 1970 Codd,E. [1970] “A relational Model for Large Shared DataBanks,” CAAM, 13:6, June 1970.
E N D
Relational Data Model และ Relational Database Constraints • ถูกนำเสนอครั้งแรกโดย Ted Codd of IBM Research ในปี ค.ศ. 1970 • Codd,E. [1970] “A relational Model for Large Shared DataBanks,”CAAM, 13:6, June 1970. • โมเดลนี้จะใช้หลักการของ Mathematical Relation • ตารางของค่า (Tableof value)มองคล้ายกับการสร้างบล็อก (Building block) • ใช้ทฤษฏีพื้นฐานด้านSet theory และ first-order predict logic • การใช้งานเชิงพาณิชย์ (Commercial implements)ในราวต้น 1980s • ตัวอย่าง ORACLE, SQL/DS system on the MVS OS by IBM • ที่นิยมใช้กันในปัจจุบันCurrent Popular RDBMS • DB2 and Informix Dynamic Server (IBM) • Oracle and Rdb (Oracle) • SQL server and Access (Microsoft) • MySQL • Etc.
หลักการของโมเดลเชิงสัมพันธ์หลักการของโมเดลเชิงสัมพันธ์ • โมเดลเชิงสัมพันธ์นำเสนอฐานข้อมูลว่าประกอบด้วยกลุ่มของรีเลชั่น(collection of relations) หรือ ตารางของค่าข้อมูล (table of value) ที่ประกอบด้วย row และ column • โดยที่แต่ละ row ในตารางแสดงถึงค่าข้อมูลที่สัมพันธ์กัน • แต่ละคอลัมน์จะแสดงคุณสมบัติของข้อมูล (จะมีโดเมนที่เหมือนกัน) • ชื่อของตาราง และชื่อของคอลัมน์ ถูกใช้ในการสื่อถึงค่าของข้อมูลแต่ละแถวที่ปรากฏในตาราง • ตัวอย่างเช่น ตาราง student ประกอบด้วยคอลัมน์ ID FName, LName, Tel, BDate และ GPA
Attributes/Column Relation Name / table Name Tuple /Row DEGREE Example Student
หลักการของโมเดลเชิงสัมพันธ์หลักการของโมเดลเชิงสัมพันธ์ • โมเดลเชิงสัมพันธ์นำเสนอฐานข้อมูลเหมือนประกอบด้วยกลุ่มของรีเลชั่น(collection of relations) • Informal • แต่ละรีเลชั่นคือตารางของค่าข้อมูล • ตัวอย่างเช่น • Thought of as table of Values • Each Row represent a collection of related data values • Table Name, Column Names help in interpreting the meaning of the values in each row • All values in the same Column are of the same data type
Formal relational terminology • ตาราง (Table)ถูกเรียกว่ารีเลชั่น(Relation) • แถว (row)ถูกเรียกว่าทัพเปิล (tuple) • (หัว)คอลัมน์(Columnheader)ถูกเรียกว่า แอตตริบิว(Attribute) • ดีกรี (Degree) คือจำนวนของคอลัมน์ • ชนิดของข้อมูล(data type)เป็นตัวอธิบายชนิดของค่าที่สามารถปรากฏในคอลัมน์ถูกนำเสนอโดยโดเมน(Domain) ของค่าที่เป็นไปได้
Domains, attributes, Tuples, และ Relations • โดเมน Dคือขอบเขตหรือกรอบค่าที่เป็นไปได้ของข้อมูล • วิธีที่ใช้ในการกำหนดโดเมนคือ • กำหนดชนิดของข้อมูล (data type)โดยดูจากค่าของข้อมูล(data values forming) • กำหนดชื่อสำหรับโดเมน • ตัวอย่าง (Example) • เบอร์โทรศัพท์ (Tel) : เป็นเชตของเลข 9 หลัก (9digit phone number)ที่ใช้ได้ในประเทศไทย • รหัสนักศึกษา (ID) : เป็นเชตของเลข 10 หลัก • ชื่อ (FName) : เป็นเชตของอักษร(Character string)เพื่อใช้สำหรับเก็บชื่อ และต้องมีความยาวไม่เกิน 10 ตัวอักษร • นามสกุล (SName) : เป็นเช็ตของอักษร(Character string)เพื่อใช้สำหรับเก็บชื่อสกุล และต้องมีความยาวไม่เกิน 10 ตัวอักษร • เกรดเฉลี่ย (GPA) : ค่าเกรดเฉลี่ยที่เป็นไปได้ ดังนั้นต้องเป็นเลขจำนวนจริงมีค่าระหว่าง 0 ถึง 4. • วันเกิด (Birthdates) : วันเกิดของนักศึกษา รูปแบบเป็น วัน-เดือน-ปี
M or F 0 - 4 Example Student
ในการกำหนดโดเมนให้กับข้อมูล ข้อมูลต้องเป็น atomic • ต้องไม่ขึ้นกับข้อมูลอื่น • ต้องเป็นข้อมูลประเภทเดียวกัน
Relation Schema • Relation Rหรือ รีเลชั่นชื่อ R ที่ประกอบด้วยแอตตริบิว A1,A2,…,An, โดยที่แสดงในรูปแบบดังนี้คือ • R(A1,A2,…,An) • โดยที่แต่ละแอตตริวบิวAiคือชื่อของ a role ที่มีโดเมน D เหมือนกันในรีเลชั่น R • Dถูกเรียกว่าโดเมนของ Ai (domain of Ai) และมีรูปแบบในการนำเสนอคือdom(Ai) • โครงสร้างของรีเลชั่น(relation schema)ถูกใช้ในการอธิบายรีเลชั่นR โดยที่ R จะเป็นชื่อของรีเลชั่น • ดีกรี(degree or arity) ของรีเลชั่นคือจำนวนของแอตตริบิว nของโครงสร้างของรีเลชั่น (relation schema)
คุณสมบัติของรีเลชั่น (Characteristics of Relations) • คุณสมบัติของทัฟเปิล • รีเลชั่นอยู่ในรูปแบบของเซตคณิตศาสตร์ ภายในประกอบด้วยเซตของทัฟเปิล ซึ่งมีคุณสมบัตคือ ทัฟเปิลต้องไม่ซ้ำกัน • สมาชิกในเซตไม่มีลำดับที่ ดังนั้น ลำดับที่ของทัฟเปิลไม่มีความสำคัญ • คุณสมบัติของแอตตริบิว • ลำดับที่ของแอตตริบิวไม่มีความสัมคัญ • ข้อมูลในแต่ละแอตตริบิวต้องมีโดเมนเดียวกันหมด • ทุกแอตตริบิวต้องเป็นแบบ atomic value
Multi value Example Stud_code Name Subject_code 470020090-2 Somsak 320111,414101,321102 470020011-4 Somsri 320111,414101,321102 470020015-1 Sompong 320111,321101,321102 470020018-3 Somchay 320111,321101,321102 Problem Difficult to manipulate
Example Stud_code Name Subj1 Subj2 Subj3 470020090-2 Somsak 320111 414101 321102 470020011-4 Somsri 320111 414101 321102 470020015-1 Sompong 320111 321101 321102 470020018-3 Somchay 320111 321101 321102 Problem Difficult to manipulate
Relational Model Notation • รีเลชั่นที่ดีกรีเท่ากับ n ถูกแสดงโดยสัญลักษณ์ต่อไปนี้ • R(A1,A2,…, An) • โดยที่ A1,A2,…, An คือแอตตริบิว • n-tuple ในรีเลชั่น r(R) แสดงโดยสัญลักษณ์ต่อไปนี้ • t = <v1,v2,…,vn>; • โดยที่ viคือค่าที่สอดคล้องกับแอตตริบิว
ฐานข้อมูลเชิงสัมพันธ์ (Relation databases) • ฐานข้อมูลเชิงสัมพันธ์(relational database) • ปกติประกอบด้วยกลุ่มของรีเลชั่น โดยที่แต่ละรีเลชันประกอบด้วยทูเปิลที่มีความสัมพันธ์กันในทางใดทางหนึ่ง • กล่าวได้ว่าเป็นฐานข้อมูลที่ผู้ใช้มองเห็นในรูปของการจัดเก็บบันทึกรีเลชั่นที่มีความสัมพันธ์กันไว้ด้วยกัน • โครงสร้างของฐานข้อมูลเชิงสัมพันธ์(relational databaseschema) • S คือเซตของโครงสร้างของรีเลชั่น (set of relation schemas) • S = {R1,R2,…, Rm} และ • เซตของความคงสภาพ(set of integrity)
รายละเอียดของโครงสร้างเชิงสัมพันธ์ได้ถูกนิยามไว้ในรีเลชั่นนัลโมเดลรายละเอียดของโครงสร้างเชิงสัมพันธ์ได้ถูกนิยามไว้ในรีเลชั่นนัลโมเดล • Codd กล่าวถึงฐานข้อมูลเชิงสัมพันธ์ไว้ 3 คือ • Data Structure ส่วนที่กล่าวถึงโครงสร้างของฐานข้อมูล • Data Integrity กฏเกณท์ในการควบคุมความถูกต้องของข้อมูลในฐานข้อมูล • Data Manipulation ปฏิบัติการต่างๆที่เกิดขึ้นกับฐานข้อมูล
ตัวอย่างของฐานข้อมูลเชิงสัมพันธ์ตัวอย่างของฐานข้อมูลเชิงสัมพันธ์ FACULTY (FCODE, Fname, Tel, Fax) DEPARTMENT (FCode, DCode, Dname, Tel) STUDENT(SID, Fname, SName, BDate, Sex, TCODE) TEACHER (TCODE, TName, Address, FCode, DCode) SUBJECT (SCODE , SNAME, CREDIT, EDESC, TDESC) REGISTRATION( SID, SCODE, YEAR, SEMESTER, GRADE)