470 likes | 560 Views
Database Management System. Adisak Intana Lecturer. Chapter 2: Relational Database System. Table Contents. Database Model. Relational Database System. Relationship. Relation characteristics. Kinds of key. Table Contents. Database Model. Relational Database System. Relationship.
E N D
Database Management System Adisak Intana Lecturer Chapter 2: Relational Database System
Table Contents Database Model Relational Database System Relationship Relation characteristics Kinds of key 2
Table Contents Database Model Relational Database System Relationship Relation characteristics Kinds of key 3
Database Model • Database Modelใช้สำหรับอธิบายโครงการสร้างและความสัมพันธ์ระหว่างฐานข้อมูล เพื่อช่วยให้สามารถสร้างฐานข้อมูลได้ง่ายขึ้น • Database Modelแบ่งเป็น 3 ประเภท ดังนี้ • Hierarchical Database Model • Network Database Model • Relational Database Model 4
Hierarchical Database Model • โครงสร้าง มีลักษณะเป็นแบบ ต้นไม้ (Tree) • ส่วนที่อยู่ระดับบนสุดเรียกว่า root ซึ่งเป็น parent • ส่วนที่อยู่ระดับที่ต่ำกว่า เรียกว่า child 5
Hierarchical Database Model Root: Painter Level 1: Painter Name Level 2: Picture Name 8
Hierarchical Database Model • ข้อดี • เห็นภาพชัดเจน เข้าใจง่าย • โครงสร้างเห็นได้ชัดเจน ทำให้ข้อมูลเป็นอิสระจากตัวโปรแกรมที่ดึงข้อมูลขึ้นมาใช้งาน • สามารถจัดการกับข้อมูลที่มีความสัมพันธ์แบบ 1:Mได้อย่างมีประสิทธิภาพ 9
Hierarchical Database Model • ข้อเสีย • ความซับซ้อนของข้อมูล จะต้องมีความเข้าใจในลักษณะโครงสร้างทางกายภาพ (Physical data storage characteristics) ของการจัดเก็บข้อมูล • ยากต่อการจัดการโครงสร้าง • ไม่สามารถจัดการกับข้อมูลที่มีความสัมพันธ์แบบ M:M 10
Network Database Model • ความสัมพันธ์ของข้อมูลจะอยุ่ในรูปแบบ Set • ในแต่ละ set จะประกอบไปด้วย 2 ส่วน คือ • Owner (Parent) • Member (child) • ในแต่ละ set จะแทนด้วยความสัมพันธ์ 1:M ระหว่าง owner กับ member 11
Network Database Model 12 **INVOICE (ใบสั่งซื้อสินค้า) **INVLINE (รายละเอียดใบสั่งซื้อสินค้า)
Network Database Model • ข้อดี • สามารถจัดการกับข้อมูลที่มีความสัมพันธ์แบบ M:N • โครงสร้างเห็นได้ชัดเจน ทำให้ข้อมูลเป็นอิสระจากตัวโปรแกรมที่ดึงข้อมูลขึ้นมาใช้งาน 15
Network Database Model • ข้อเสีย • ความซับซ้อนของข้อมูล จะต้องมีความเข้าใจในลักษณะโครงสร้างทางกายภาพ (Physical data storage characteristics) ของการจัดเก็บข้อมูลมากกว่าแบบ Hierarchy Model • ยากต่อการจัดการโครงสร้าง 16
Table Contents Database Model Relational Database Management System Relationship Relation characteristics Kinds of key 17
Relational DBMS (RDBMS) • A type of DBMS that stores data in the form of related two dimensional tables. • The structure of the database is based on the “ Relational data model “ which was introduced by Dr. E.F. Codd in 1970. 18
Relational DBMS (RDBMS) • Logical database is called relational database. • Data in the logical database is represented as a collection of relations( the same terminology used in mathematics ) or tables. 19
Stud-id Name Sex Age Stud_id Subj_id Grade 4702777 Math102 B+ 4702777 Amporn F 18 4702777 Phy101 C 4703666 Narin M 19 4703666 Math102 A 4702888 Sasin M 19 4702888 Phy101 B Subj-id Sjame Credit 4702888 Math101 C Phy101 Physics 3 Math102 Math 4 A Sample of relational database Student Enroll Subject 20
Stud-id Name Sex Age 4702777 Amporn F 18 4703666 Narin M 19 4702888 Sasin M 19 Relational database • Domain of an attribute X is the set of all possible values of X. Student Domain of Sex = {F, M} Age= {x I|0 < x < 60} 21
Attributes Relation name EmpNo Ename Job Sal Comm DeptNo Emp E1 USA SALESMAN 5000 0 D1 E2 PRANEE SALESMAN 5000 1000 D1 E3 SUTAT MANAGER 2000 2000 D2 E4 WATTANA ANALYST 8000 D1 E5 BOON CLERK 4000 D2 tuple atomic value null value A relation in a relational database 22
Relational DBMS (RDBMS) • Logical database is called relational database. • Data in the logical database is represented as a collection of relations( the same terminology used in mathematics ) or tables. 23
Relationship • ในระบบฐานข้อมูล ข้อมูลแต่ละส่วนจะมีความสัมพันธ์เกี่ยวข้องกัน • ทฤษฎีระบบฐานข้อมูลได้แบ่งความสัมพันธ์ของข้อมูลออกเป็น 3 รูปแบบคือ • one-to-one relationship • one-to-many relationship • many-to-many relationship 24
One-to-One Relationship • ความสัมพันธ์แบบ 1:1 เป็นความสัมพันธ์ที่ข้อมูลชุด A แต่ละรายการ มีความสัมพันธ์กับข้อมูลชุด Bเพียงรายการเดียว • ตัวอย่างเช่น อาจารย์กับห้องพักอาจารย์ เป็นความสัมพันธ์แบบ 1:1 เพราะ • อาจารย์แต่ละคนมีห้องพัก 1 ห้อง • ห้องพักแต่ละห้องเป็นของอาจารย์เพียงคนเดียว 25
One-to-One Relationship Teacher 1 1 Room 26
One-to-Many Relationship • ความสัมพันธ์แบบ 1:M เป็นความสัมพันธ์ที่ข้อมูลชุด A แต่ละรายการ มีความสัมพันธ์กับข้อมูลชุด Bมากกว่า 1 รายการ • ตัวอย่างเช่น จิตรกรกับภาพวาด เป็นความสัมพันธ์แบบ 1:M เพราะ • จิตกรแต่ละคนสามารถวาดภาพได้มากกว่า 1 ภาพ • ภาพแต่ละภาพถูกจิตรกรเพียง 1 คนเท่านั้น 27
One-to-Many Relationship Painter 1 M Painting 28
Many-to-Many Relationship • ความสัมพันธ์แบบ M:M เป็นความสัมพันธ์ที่ข้อมูลชุด A แต่ละรายการ มีความสัมพันธ์กับข้อมูลชุด Bมากกว่า 1 รายการ • และในขณะเดียวกัน ข้อมูลชุด Bแต่ละรายการ มีความสัมพันธ์กับข้อมูลชุด Aมากกว่า 1 รายการ • ตัวอย่างเช่น นักศึกษากับวิชาที่ลงทะเบียนเรียน เป็นความสัมพันธ์แบบ M:M เพราะ • นักศึกษาแต่ละคนสามารถลงทะเบียนเรียนได้หลายรายวิชา • รายวิชาแต่ละรายวิชาถูกนักศึกษาลงทะเบียนเรียนได้หลายคน 29
One-to-Many Relationship Student M N Subject 30
Table Contents Database Model Relational Database Management System Relationship Relation characteristics Kinds of key 31
คุณสมบัติของ Relation • ข้อมูลในแต่ละ tuple ต้องไม่ซ้ำกัน 32
คุณสมบัติของ Relation • การเรียงลำดับของ tuple ไม่มีความสำคัญ • การเรียงลำดับของ attribute ไม่มีความสำคัญ • ค่าข้อมูลของแต่ละ attribute ต้องอยู่ใน Domain เดียว • ค่าของข้อมูลในแต่ละ attribute มีเพียงค่าเดียว (Single Value) 33
Table Contents Database Model Relational Database Management System Relationship Relation characteristics Kinds of key 34
Candidate key and primary key • An attribute (or set of attributes) of a relation whose values can be used to identified each tuple in the relation is called a candidate key. • If a relation has only one candidate key, it will be the primary key of that relation. 35
Primary key and secondary key • If there is more than one candidate key in a relation, one candidate key must be selected to be the primary key of that relation and the rest will become the secondary key(s)or alternate key(s). 36
DeptNo Dname Dept D1 MARKETING D2 PERSONNEL D3 COMPUTER Primary key and secondary key • BothDeptNo and Dnameare candidate keys • If DeptNo is chosen to be the primary key, thus Dname must be the secondary key 37
Primary key and secondary key Dname DeptNo Dept D1 MARKETING D2 PERSONNEL D3 COMPUTER • Relation “Dept” structure (intension part) is represented as : Dept(DeptNo, Dname) Secondary key Primary key 38
Primary key • Each relation, there is always an attribute (or a set of attributes) has been set to be theprimary key. • student(std-id, name, sex, age) • subject(sj-id, sjname, credit) • enroll(std-id, sj-id, grade) 39
Primary key • Each tuple of a relation, theattribute value of the primary key (primary key value) can be used to identify that tuple. • Primary key value of each tuple of a relation mustsatisfy the following two time-independent properties • Not null • Unique 40
Stud_id Subj_id Grade 4702777 Math102 B+ 4702777 Phy101 C 4703666 Math102 A 4702888 Phy101 B 4702888 Math101 C Compound primary key • A key which consists of more than one attribute is called a compound key. Enroll Compound key 41
Stud_id Subj_id Grade 4702777 Math102 B+ 4702777 Phy101 C 4703666 Math102 A 4702888 Phy101 B 4702888 Math101 C Compound primary key • In each tuple, the compound value of attributes of the compound keys must be unique and can be used to be the representation of that tuple. Enroll 42
Foreign keys • An attribute (or set of attributes) X of a relation R2 is a foreign keyif it is the primary key of some other relation R1 in the same database. • For all time, each current value of X in the relation R2 must be a current value of X in the relation R1. • R2 is called referencing relation • R1 is called referenced relation 43
Foreign key Emp Dept DeptNois a foreign key of relation Emp 44
Foreign key Emp Dept Each DeptNo value in relation Emp must refer to an existed DeptNo value in relationEmp 45
กฎเกี่ยวกับ Key • The Entity integrity rule – PK จะต้อง unique และ not NULL • The Referential integrity rule – foreign key จะต้องอ้างถึง primary key ของอีก relation ได้ 46
กฎเกี่ยวกับ Key • ข้อกำหนดเกี่ยวกับ foreign key ดังนี้ • FK สามารถเป็น NULL ได้หรือไม่ • ข้อบังคับในการแก้ไข PK ซึ่งเป็น FK ของ relation อื่น • Restrict - ถ้าจะลบ DeptId 01 จะต้องไม่มี StdId อ้างถึง • Cascade - ถ้าจะลบ DeptId 02 จะต้องลบ StdId 4001 ด้วย หรือถ้าจะแก้ไข DeptId 02 เป็น 200 จะ • ต้องแก้ไข StdId 4001 ให้ DeptId เป็น 200 ด้วย • Nullify - ถ้าจะแก้ไขหรือลบ DeptId 02 จะต้องแก้ไข StdId 4001 ให้ DeptId เป็น NULL ก่อน 47