แบบจำลองเชิงสัมพันธ์ The Relational Model หัวข้ อ Relation และองค์ ประกอบ Key Integrity Constraints (IC) Relational Algebra.
Download
Report
Transcript แบบจำลองเชิงสัมพันธ์ The Relational Model หัวข้ อ Relation และองค์ ประกอบ Key Integrity Constraints (IC) Relational Algebra.
แบบจำลองเชิงสัมพันธ์
The Relational Model
หัวข้ อ
Relation
และองค์ ประกอบ
Key
Integrity
Constraints (IC)
Relational Algebra
The Relational Model
คิดค้ นโดย Dr. Edgar Frank Codd (E.F. Codd) รู้ จักกันดีในบทควำมที่ช่ ือ
“A Relational Model of Data for Large Shared Data Banks” ในปี ค.ศ.
1970
เป็ นรู ปแบบฐำนข้ อมูลที่เข้ ำใจง่ ำย
มีพนื ้ ฐำนมำจำกทฤษฎีทำงคณิตศำสตร์ (ทฤษฎี Set)
มีวัตถุประสงค์ หลักเพื่อรั กษำควำมอิสระของข้ อมูล(Data Independence)
มีระบบจัดกำรฐำนข้ อมูลเชิงสัมพันธ์ (Relational Database Management
System : RDBMS) ที่สนับสนุนมำกมำย เช่ น DB2 , Oracle , Informix , MS
SQL Server , MySQL , Ingres , MS Access ฯลฯ
มีภำษำ SQL สำหรั บจัดกำรข้ อมูล
รี เลชัน(Relation)
หมำยถึง
ตำรำงข้ อมูล(Table) 2 มิติ ที่ประกอบด้ วย
แอททริบวิ ต์ (Attribute) หรื อคอลัมน์ (Column) และ ทู
เพิล(Tuple) หรื อ แถว(Row)
รี เลชัน เป็ นตำรำงข้ อมูลหลัก(Base Relation) ที่มี
ข้ อมูลจัดเก็บไว้ จริง
ใช้ คำสั่ง Create Table ของภำษำ SQL ในกำรสร้ ำง
รี เลชันในฐำนข้ อมูล
แอททริบวิ ต์ (Attribute)
หมำยถึง
คอลัมน์ หนึ่ง ๆ ในรี เลชันใด ๆ เป็ น
รำยละเอียดข้ อมูลที่จัดเก็บในรี เลชัน
ตัวอย่ ำงเช่ น รี เลชัน “นักศึกษำ” ประกอบด้ วย
แอททริบวิ ต์ รหัสนักศึกษำ , ชื่อ , นำมสกุล , ที่อยู่
เป็ นต้ น
จำนวนแอททริ บว
ิ ต์ ในรี เลชันหนึ่ง ๆ เรี ยกว่ ำ ดีกรี
(Degree)
เช่ น รี เลชัน นักศึกษำ มีดีกรี เท่ ำกับ 4
ทเู พิล(Tuple)
หมำยถึง
ข้ อมูลในแต่ ละแถวของรี เลชัน
ข้ อมูลในแต่ ละแถวของรี เลชัน อำจมีกำร
เปลี่ยนแปลง เนื่องจำกกำร ลบ เพิ่มหรื อปรั บปรุ ง
ข้ อมูล
จำนวนทูเพิลในรี เลชันหนึ่ง ๆ เรี ยกว่ ำ คำร์ ดน
ิ ัลลิตี ้
(Cardinality)
Relation name
Attribute
Student
Std_Fname
Std_Lname
Std_Address
1234567801
Bob
Norbert
USA
IT
3.00
Sc
1234567821
Wiliam
Pilgrim
AUS
CS
2.50
Sc
1234567822
Luke
Brazzi
USA
PHY
3.50
Sc
1234567840
Homer
Wells
AUS
CS
2.50
Sc
2345678910
Candy
Kendall
NZ
FIN
2.75
Msc
2345678920
Roberto
Morales
AUS
FIN
3.25
Msc
2345789015
Tess
Dodge
CAN
ECON
3.75
Msc
4567890122
Joe
Estrada
CAN
Art
3.25
En
4567890133
Cristopher
Colan
USA
MUS
2.75
En
5678901235
Wally
Kendall
NZ
GSc
3.50
Ed
5678901240
Mariah
Dodge
CAN
Gsc
2.50
Ed
Degree
Std_Major
Std_GPA
Fac_ID
Cardinality
Tuple
Std_ID
โดเมน(Domain)
ประกอบด้ วย
ค่ ำหรื อเซตของข้ อมูลที่แอททริบวิ ต์
หนึ่งควรจะเป็ น
ค่ ำของข้ อมูล มีควำมหมำยครอบคลุมถึง ประเภท
และขนำดของข้ อมูล รวมถึงขอบเขตค่ ำของข้ อมูลที่
แอททริบวิ ต์ นัน้ ๆ ควรจะเป็ น เพื่อรั กษำควำมคง
สภำพของข้ อมูล(Data Integrity)
โดเมน(Domain)
ตัวอย่ ำงเช่ น
แอททริบวิ ต์ เพศ มีกำรกำหนดโดเมน
ให้ เก็บค่ ำของข้ อมูลเป็ นตัวอักษร มีขอบเขตค่ ำของ
ข้ อมูลเป็ น F หรื อ M
Domain
EmpID Name
E001 Peter
E002 Nicole
M,F
Sex
M
F
Age Salary DeptID
24 55,000 D01
30 12,000 D02
โดเมน(Domain)
ตัวอย่ ำงเช่ น
แอททริบวิ ต์ อำยุ มีกำรกำหนดโดเมน
ให้ เก็บค่ ำของข้ อมูลเป็ นเลขจำนวนเต็ม มีขอบเขต
ค่ ำของข้ อมูลไม่ ต่ำกว่ ำ 18 ปี
>= 18
Domain
EmpID Name
E001 Peter
E002 Nicole
Sex
M
F
Age Salary DeptID
24 55,000 D01
30 12,000 D02
โดเมน(Domain)
ตัวอย่ ำงเช่ น
แอททริบวิ ต์ เงินเดือน มีกำรกำหนด
โดเมนให้ เก็บค่ ำของข้ อมูลเป็ นตัวเลข มีขอบเขตค่ ำ
ของข้ อมูลมำกกว่ ำ 0
>0
Domain
EmpID Name
E001 Peter
E002 Nicole
Sex
M
F
Age Salary DeptID
24 55,000 D01
30 12,000 D02
คุณสมบัตขิ องรี เลชัน
มีช่ อื รีเลชันไม่ ซำ้ กัน
ในแต่ ละเซลล์ (cell)ของรี ชัน บรรจุข้อมูลได้ 1 ค่ ำเท่ ำนัน
้
ในรี เลชันเดียวกันจะต้ องไม่ มีแอททริ บว
ิ ต์ ท่ ชี ่ ือซำ้ กัน
ค่ ำข้ อมูลที่อยู่ในแอททริ บว
ิ ต์ เดียวกันต้ องอยู่ในขอบเขต
โดเมนเดียวกัน
ห้ ำมมีทเู พิลซำ้ กันในรี เลชันเดียวกัน
กำรเรี ยงลำดับแอททริ บว
ิ ท์ ในรีเลชันไม่ ถือเป็ นสำคัญ
กำรเรี ยงลำดับทูเพิลในรี เลชันไม่ ถือเป็ นสำคัญ
กำรสร้ ำงรี เลชัน
CREATE TABLE
( Std_ID
Std_FName
Std_LName
Std_Address
Std_Major
Std_GPA
Fac_ID
);
Student
CHAR(11),
VARCHAR(20),
VARCHAR(30),
VARCHAR(50),
VARCHAR(15),
DECIMAL(3,2),
CHAR(5)
ตัวอย่ ำง Relation
EmployeeNumber
FirstName
LastName
Department
Email
Phone
100
Jerry
Johnson
Accounting
[email protected]
236-9987
200
Mary
Abernathy
Finance
[email protected]
444-8898
300
Liz
Smarthers
Finance
[email protected]
777-0098
400
Tom
Caruthers
Accounting
[email protected]
236-9987
500
Tom
Jackson
Production
[email protected]
444-9980
600
Eleanore
Caldera
Legal
[email protected]
767-09000
700
Richard
Bandalone
Legal
[email protected]
767-0900
ตัวอย่ ำง Table แต่ ไม่ ใช่ Relation
EmployeeNumbe
r
FirstName
LastName
Department
Email
Phone
100
Jerry
Johnson
Accounting
[email protected]
236-9987
200
Mary
Abernathy
Finance
[email protected]
444-8898
300
Liz
Smarthers
Finance
[email protected]
777-0098
400
Tom
Caruthers
Accounting
[email protected]
236-9987 ,
266-9987 ,
555-7171
500
Tom
Jackson
Production
[email protected]
444-9980
600
Eleanore
Caldera
Legal
[email protected]
767-09000
700
Richard
Bandalon
e
Legal
[email protected]
767-0900 ,
767-0011
ตัวอย่ ำง Table แต่ ไม่ ใช่ Relation
EmployeeNumbe
r
FirstName
LastName
Department
Email
Phone
100
Jerry
Johnson
Accounting
[email protected]
236-9987
200
Mary
Abernathy
Finance
[email protected]
444-8898
300
Liz
Smarthers
Finance
[email protected]
777-0098
400
Tom
Caruthers
Accounting
[email protected]
236-9987
Fax :
266-9987
Home :
555-7171
500
Tom
Jackson
Production
[email protected]
444-9980
600
Eleanore
Caldera
Legal
[email protected]
767-09000
700
Richard
Bandalon
e
Legal
Fax :
236-9987
Home :
555-7171
[email protected]
767-0900
ประเภทของคีย์ (Keys)
Candidate
Key
Primary Key
Composite Key
Alternate key
Foreign Key
Candidate Key
หมำยถึง
แอททริบวิ ต์ หรื อ กลุ่มของแอททริบวิ ต์ ที่
มีค่ำไม่ ซำ้ และสำมำรถระบุทเู พิลในรี เลชันได้ 1
รำยกำร
เช่ น รหัสพนักงำน , ชื่อและนำมสกุล
Candidate Key
ึ ษา
รห ัสน ักศก
ื่
ชอ
นามสกุล
บ ัตรประชาชน
โปรแกรมวิชา
4804234207
ั ์
สมศกดิ
ร ักการดี
3120100755991
คณิตศาสตร์
4804234208
วาสนา
เรียนนา
3110211212005
คณิตศาสตร์
4804234210
วาสนา
นฤท ัย
3141901485662
คณิตศาสตร์
4804234211
ั ์
สมศกดิ
เรียบร้อย
3120233125447
วิทยาการคอมพิวเตอร์
4804234215
จงจิต
ั
อินทชย
3155002551549
วิทยาการคอมพิวเตอร์
4804234219
ปิ ยะพร
ั
สอนชยดี
3112251445345
วิทยาการคอมพิวเตอร์
4804234222
วาสนา
ผ่องแผ้ว
3122234567657
บ ัญช ี
4804234225
ก ัลยา
นาคสมภพ
3122343231156
บ ัญช ี
Primary Key
หมำยถึง
Candidate Key ที่ถูกำหนดให้ เป็ นตัวแทน
ของทูเพิลในรี เลชัน ดังนัน้
Primary key คือ แอททริ บว
ิ ต์ หรื อ กลุ่มของแอททริ
บิวต์ ที่มีค่ำไม่ ซำ้ และไม่ เป็ นค่ ำว่ ำง และสำมำรถระบุ
ค่ ำข้ อมูลในแอททริบวิ ต์ อ่ ืน ๆ ในทูเพิลเดียวกันได้
Primary Key
ึ ษา
รห ัสน ักศก
ื่
ชอ
นามสกุล
บ ัตรประชาชน
โปรแกรมวิชา
4804234207
ั ์
สมศกดิ
ร ักการดี
3120100755991
คณิตศาสตร์
4804234208
วาสนา
เรียนนา
3110211212005
คณิตศาสตร์
4804234210
วาสนา
นฤท ัย
3141901485662
คณิตศาสตร์
4804234211
ั ์
สมศกดิ
เรียบร้อย
3120233125447
วิทยาการคอมพิวเตอร์
4804234215
จงจิต
ั
อินทชย
3155002551549
วิทยาการคอมพิวเตอร์
4804234219
ปิ ยะพร
ั
สอนชยดี
3112251445345
วิทยาการคอมพิวเตอร์
4804234222
วาสนา
ผ่องแผ้ว
3122234567657
บ ัญช ี
4804234225
ก ัลยา
นาคสมภพ
3122343231156
บ ัญช ี
Primary Key
Composite Key
หมำยถึง
คีย์ต่ำง ๆ ที่ประกอบขึน้ จำกแอททริบวิ ต์
มำกกว่ ำ 1 แอททริบวิ ต์
Composite Key
ึ ษา
รห ัสน ักศก
ื่
ชอ
นามสกุล
บ ัตรประชาชน
โปรแกรมวิชา
4804234207
ั ์
สมศกดิ
ร ักการดี
3120100755991
คณิตศาสตร์
4804234208
วาสนา
เรียนนา
3110211212005
คณิตศาสตร์
4804234210
วาสนา
นฤท ัย
3141901485662
คณิตศาสตร์
4804234211
ั ์
สมศกดิ
เรียบร้อย
3120233125447
วิทยาการคอมพิวเตอร์
4804234215
จงจิต
ั
อินทชย
3155002551549
วิทยาการคอมพิวเตอร์
4804234219
ปิ ยะพร
ั
สอนชยดี
3112251445345
วิทยาการคอมพิวเตอร์
4804234222
วาสนา
ผ่องแผ้ว
3122234567657
บ ัญช ี
4804234225
ก ัลยา
นาคสมภพ
3122343231156
บ ัญช ี
Composite Key
Alternate Key
หมำยถึง
คีย์ค่ ูแข่ ง(Candidate key) ที่ไม่ ได้ ถูกเลือก
ให้ เป็ นคีย์หลัก(Primary Key)
Alternate Key
ึ ษา
รห ัสน ักศก
ื่
ชอ
นามสกุล
บ ัตรประชาชน
โปรแกรมวิชา
4804234207
ั ์
สมศกดิ
ร ักการดี
3120100755991
คณิตศาสตร์
4804234208
วาสนา
เรียนนา
3110211212005
คณิตศาสตร์
4804234210
วาสนา
นฤท ัย
3141901485662
คณิตศาสตร์
4804234211
ั ์
สมศกดิ
เรียบร้อย
3120233125447
วิทยาการคอมพิวเตอร์
4804234215
จงจิต
ั
อินทชย
3155002551549
วิทยาการคอมพิวเตอร์
4804234219
ปิ ยะพร
ั
สอนชยดี
3112251445345
วิทยาการคอมพิวเตอร์
4804234222
วาสนา
ผ่องแผ้ว
3122234567657
บ ัญช ี
4804234225
ก ัลยา
นาคสมภพ
3122343231156
บ ัญช ี
Primary Key
Alternate Key
Foreign Key
หมำยถึง
แอททริบวิ ต์ ในรี เลชันที่ใช้ ในกำรเชื่อมโยง
กับรี เลชันอื่น ๆ
โดยแอททริ บว
ิ ต์ ท่ เี ป็ น Foreign key ใน child relation
จะเชื่อมโยงไปยัง แอททริบวิ ต์ ท่ เี ป็ น Primary key
ใน Parent relation
Foreign Key
Primary key
Faculty
Fac_ID
Foreign key
Fac_Name
Phone
Sc
Science
201
Msc
Management Science
145
En
Engineering
512
Ed
Education
301
Student
Std_ID
Std_Fname
Std_Lname
Std_Address
Std_Major
Std_GPA
Fac_ID
1234567801
Bob
Norbert
USA
IT
3.00
Sc
1234567821
Wiliam
Pilgrim
AUS
CS
2.50
Sc
1234567822
Luke
Brazzi
USA
PHY
3.50
Sc
1234567840
Homer
Wells
AUS
CS
2.50
Sc
2345678910
Candy
Kendall
NZ
FIN
2.75
Msc
2345678920
Roberto
Morales
AUS
FIN
3.25
Msc
2345789015
Tess
Dodge
CAN
ECON
3.75
Msc
4567890122
Joe
Estrada
CAN
Art
3.25
En
4567890133
Cristopher
Colan
USA
MUS
2.75
En
5678901235
Wally
Kendall
NZ
GSc
3.50
Ed
5678901240
Mariah
Dodge
CAN
Gsc
2.50
Ed
Parent relation
Child relation
คุณสมบัตขิ องกุญแจนอก(Foreign Key)
1. สำมำรถกำหนดจำกแอททริบวิ ท์ เดียวหรือมำกกว่ ำ
2. ค่ ำของ FK ใน รีเลชัน หนึ่งจะต้ องปรำกฏใน กุญแจคู่แข่ ง ของ
อีก รีเลชัน หนึ่งที่สัมพันธ์ กัน แต่ ในแง่ กลับกัน ทุกค่ ำของ
FK ใน รีเลชัน หนึ่ง ไม่ จำเป็ นที่จะต้ องปรำกฎอยู่ใน FK
ของอีก รีเลชัน หนึ่งที่สัมพันธ์ กัน
3. จำนวนของ แอททริบวิ ท์ ที่มำประกอบเป็ น FK ขึน้ อยู่กับ
จำนวนของ แอททริบวิ ท์ ที่กำหนดเป็ น CK ของ รีเลชัน ที่มี
ควำมสัมพันธ์ กับ รีเลชันนัน้ ที่ถูกนำมำใช้ เปรียบเทียบกับ
ค่ ำของ FK
คุณสมบัตขิ อง Foreign Key
4. Domain ของ แอททริบวิ ท์ ที่กำหนดเป็ น FK ต้ องมีค่ำ
เช่ นเดียวกันกับ Domain ของ แอททริบวิ ท์ ที่เป็ น CK ของ
รีเลชัน ที่สัมพันธ์ กัน
5. แอททริบวิ ท์ ที่ทำหน้ ำที่เป็ น FK ไม่ จำเป็ นต้ องเป็ น CK ของ
รีเลชันนัน้
6. รีเลชัน ใดที่เป็ นเจ้ ำของ FK จะถูกเรียกว่ ำ “Referencing
Relation” ส่ วน รีเลชัน ที่เป็ นเจ้ ำของ CK ที่สัมพันธ์ กับ FK
นัน้ จะเรียกว่ ำ “Referenced Relation” หรือ “Target Relation”
คุณสมบัตขิ อง Foreign Key
7. รีเลชันใดๆ สำมำรถเป็ นได้ ทงั ้ Referenced Relation และ
Referencing Relation
8. รีเลชันใดๆ สำมำรถมีควำมสัมพันธ์ ด้วย FK กับตัวมันเองได้
(Self-Referencing)
EmpID
PK E001
E002
E003
Ename
Peter
Nicole
Willy
Esurname EMgr
Corp
E002
Terio
Mac
E002
FK
FK
Alternate key
Primary key
รห ัสพน ักงาน
SUD21
SNK37
SNK14
SUB09
SUD04
SNR41
ื่
ชอ
สมชาย
แอน
ศรราม
สุวนันท์
ปนัดดา
เจนจิรา
นามสกุล
เข็มกลัด
ทองประสม
ตาแหน่ง
ผู ้จัดการ
พนักงาน
เทพพิทักษ์
หัวหน ้าแผนก
คงยิง่
พนักงาน
ผู ้จัดการ
พนักงาน
์ ู ้ดี
วงศผ
เกิดประสพ
Foreign key
เพศ
ช
ญ
ช
ญ
ญ
ญ
ว ันเกิด
1 ตค. 2516
10 พย. 2519
24 มีค. 2517
19 กพ. 2521
3 กค. 2518
13 มิย. 2520
เงินเดือน
30000
12000
20000
9000
25000
9000
Candidate key
สาขา
รห ัสสาขา
ทีอ
่ ยู่
B003
B005
B007
B002
B004
44/3 ถ.อุดรดุษฎี
Primary key
55/5 ถ.นิตโย
ั
16 ถ.โพนพิสย
จ ังหว ัด
อุดรธานี
อุดรธานี
หนองคาย
30 ถ.ชยางกูร
อุบลราชธานี
ี า
88/10 ถ.ราชสม
ี า
นครราชสม
รห ัสไปรษณีย ์
41000
41000
44000
34000
43000
รห ัสสาขา
B005
B007
B007
B002
B003
B004
ควำมคงสภำพของข้ อมูล
Data Integrity
ควำมคงสภำพ (Integrity Constraints)
ควำมคงสภำพของข้ อมูล
หมำยถึงข้ อบังคับ
หรือ ข้ อกำหนด ที่บังคับใช้ กับข้ อมูลใน
ฐำนข้ อมูล
มีข้อกำหนดที่สำคัญ คือ
Domain
Constraints
Entity Integrity
Referential Integrity
Domain Constraints
นิยำม
“ค่ ำข้ อมูลที่ปรำกฏอยู่ในแอททริบวิ ต์ เดียวกัน
ในรี เลชันหนึ่ง จะต้ องอยู่ภำยในโดเมนเดียวกัน”
กำรนิยำมโดเมนจะประกอบด้ วย : ชื่อโดเมน ,
ควำมหมำย , ชนิดข้ อมูล , ขนำด และค่ ำหรื อช่ วง
ของข้ อมูลที่สำมำรถจัดเก็บได้
Entity Integrity
กฎควำมคงสภำพของเอนทิต(ี ้ Entity
Integrity Rule)
กล่ ำวว่ ำ “ค่ ำข้ อมูลของแอททริบวิ ต์ ท่ เี ป็ นกุญแจหลัก
(Primary key) จะต้ องไม่ เป็ นค่ ำว่ ำง(not null)”
ค่ ำว่ ำง(Null value) คือ ค่ ำที่อำจจะกำหนดให้ แก่
แอททริบวิ ต์ เมื่อยังไม่ กำหนดค่ ำหรื อไม่ ทรำบค่ ำที่
แท้ จริงของแอททริบวิ ต์ นัน้ ๆ
ค่ ำว่ ำงไม่ ใช่ ค่ำข้ อมูล แต่ เป็ นค่ ำข้ อมูลที่ขำดไป
กำรสร้ ำงรี เลชันที่มีกุญแจหลัก
CREATE TABLE CUSTOMER
(Customer_ID Char(5) Not Null,
Customer_Name Varchar(25),
Customer_Address Varchar(100),
Primary Key(Customer_ID));
Referential Integrity
กฎควำมคงสภำพของกำรอ้ ำงอิง(Referential
Integrity Rule) กล่ ำวว่ ำ “ค่ ำข้ อมูลของแอททริบวิ ต์ ท่ ี
เป็ นกุญแจนอก(Foreign key) จะต้ องสอดคล้ องกับ
ค่ ำในแอททริบวิ ต์ ท่ เี ป็ นกุญแจหลัก(Primary key) ใน
อีกรี เลชันที่สัมพันธ์ กัน หรื อ ไม่ กอ็ ำจเป็ นค่ ำว่ ำง
(Null value) ได้ ”
Referential Integrity
CUSTOMER
Cumtomer_ID Cumtomer_Name
Cumtomer_Address
ORDERS
Order_ID
Order_Date
Cumtomer_ID
Product_ID
Quantity
ORDERLINE
Order_ID
PRODUCT
Product_ID
Product_Name
Unit_Price
On_Hand
กำรสร้ ำงรี เลชันที่มีกุญแจนอก
CUSTOMER
Cumtomer_ID
Cumtomer_Name
Cumtomer_Address
CREATE TABLE CUSTOMER
(Customer_ID Char(5) Not Null,
Customer_Name Varchar(25),
Customer_Address Varchar(100),
Primary Key(Customer_ID));
ORDERS
Order_ID
Order_Date
Cumtomer_ID
CREATE TABLE ORDERS
(Order_ID
Char(5) Not Null,
Order_Date
Date
Not Null,
Customer_ID
Char(5) Not Null,
Primary Key(Order_ID),
Foreign Key(Customer_ID) References CUSTOMER(Customer_ID));
กำรรั กษำกฎ Referential Integrity
กำรลบหรื อแก้ ไขค่ ำ
Primary key ใน Parent relation
ที่มีกำรอ้ ำงอิงจำก Foreign key ใน Child relation
อำจส่ งผลทำให้ ควำมคงสภำพในกำรอ้ ำงอิงไม่
ถูกต้ อง
ดังนัน
้ จึงมีข้อกำหนดในกำรปรั บปรุ งข้ อมูลสำหรั บ
รำยกำรข้ อมูลที่มี Foreign key อ้ ำงอิง เพื่อคงควำม
คงสภำพของกำรอ้ ำงอิงให้ ถูกต้ อง
กำรรั กษำกฎ Referential Integrity
ข้ อกำหนดในกำรกระทำกับข้ อมูล
Restrict
Cascade
Nullify
Default
มีดังนี ้
Restrict
จะไม่ อนุญำตให้ มีกำรลบรำยกำรข้ อมูล
หรื อ แก้ ไข
ค่ ำ Primary key ใน Parent relation หำกรำยกำร
ข้ อมูลนัน้ มีกำรอ้ ำงอิงจำก Foreign key ใน Child
relation
บำง DBMS ใช้ คำว่ ำ NO ACTION
ตัวอย่ ำง Resctrict
Primary key
•จะไม่อนุญาตให้ลบรายการข้อมูลใน Faculty
หามีการอ้างอิงรายการนนใน
ั้
Student
•จะไม่อนุญาตให้แก้ไขค่าในแอททริบวิ ต์
Fac_ID ใน Faculty หากมีการอ้างอิงค่านนอยู
ั้
่
ใน Fac_ID ใน Student
Faculty
Fac_ID
Foreign key
Fac_Name
Phone
Sc
Science
201
Msc
Management Science
145
En
Engineering
512
Ed
Education
301
Student
Std_ID
Std_Fname
Std_Lname
Std_Address
Std_Major
Std_GPA
Fac_ID
1234567801
Bob
Norbert
USA
IT
3.00
Sc
1234567821
Wiliam
Pilgrim
AUS
CS
2.50
Sc
1234567822
Luke
Brazzi
USA
PHY
3.50
Sc
1234567840
Homer
Wells
AUS
CS
2.50
Sc
2345678910
Candy
Kendall
NZ
FIN
2.75
Msc
2345678920
Roberto
Morales
AUS
FIN
3.25
Msc
2345789015
Tess
Dodge
CAN
ECON
3.75
Msc
4567890122
Joe
Estrada
CAN
Art
3.25
En
4567890133
Cristopher
Colan
USA
MUS
2.75
En
5678901235
Wally
Kendall
NZ
GSc
3.50
Ed
5678901240
Mariah
Dodge
CAN
Gsc
2.50
Ed
Parent relation
Child relation
Cascade
กำรลบรำยกำรข้ อมูล
ใน Parent relation ที่มี
รำยกำรข้ อมูลใน Child relation ที่อ้ำงอิงอยู่ จะมีผล
ให้ รำยกำรข้ อมูลใน Child relation ที่อ้ำงอิงนัน้ ถูก
ลบไปด้ วย
ส่ วนกำรแก้ ไขค่ ำใน Primary key ของ Parent
relation ที่มี Foreign key ใน Child relation อ้ ำงอิงถึง
จะมีผลทำให้ ค่ำใน Foreign key เปลี่ยนค่ ำตำมค่ ำ
Primary key ไปด้ วย
ตัวอย่ ำง Cascade
•ถ้าลบรายการใน Faculty จะทาให้รายการ
ข้อมูลใน Student ทีอ
่ า้ งอิงค่าใน Faculty ถูก
ลบตามไปด้วย
•หากแก้ไขค่า Fac_ID ใน Faculty ค่าใน
Fac_ID ใน Student ทีอ
่ า้ งอิงค่าเดิมเปลีย
่ น
ตามค่าใหม่
Primary key
Faculty
Fac_ID
Foreign key
Fac_Name
Phone
Sc
Science
201
Msc
Management Science
145
En
Engineering
512
Ed
Education
301
Student
Std_ID
Std_Fname
Std_Lname
Std_Address
Std_Major
Std_GPA
Fac_ID
1234567801
Bob
Norbert
USA
IT
3.00
Sc
1234567821
Wiliam
Pilgrim
AUS
CS
2.50
Sc
1234567822
Luke
Brazzi
USA
PHY
3.50
Sc
1234567840
Homer
Wells
AUS
CS
2.50
Sc
2345678910
Candy
Kendall
NZ
FIN
2.75
Msc
2345678920
Roberto
Morales
AUS
FIN
3.25
Msc
2345789015
Tess
Dodge
CAN
ECON
3.75
Msc
4567890122
Joe
Estrada
CAN
Art
3.25
En
4567890133
Cristopher
Colan
USA
MUS
2.75
En
5678901235
Wally
Kendall
NZ
GSc
3.50
Ed
5678901240
Mariah
Dodge
CAN
Gsc
2.50
Ed
Parent relation
Child relation
Nullify
กำรลบรำยกำรข้ อมูล
หรื อ กำรแก้ ไขค่ ำใน Primary
key ของ Parent relation ที่มี Foreign key ใน Child
relation อ้ ำงอิงถึง จะมีผลทำให้ ค่ำใน Foreign key
เปลี่ยนค่ ำเป็ น Null value
ตัวอย่ ำง Nullify
Primary key
•ถ้าลบรายการใน Faculty หรือ แก้ไขค่า
Fac_ID ใน Faculty ค่าใน Fac_ID ใน
Student ทีอ
่ า้ งอิงค่าเดิมเปลีย
่ นค่าเป็น
Null value
Faculty
Fac_ID
Foreign key
Fac_Name
Phone
Sc
Science
201
Msc
Management Science
145
En
Engineering
512
Ed
Education
301
Student
Std_ID
Std_Fname
Std_Lname
Std_Address
Std_Major
Std_GPA
Fac_ID
1234567801
Bob
Norbert
USA
IT
3.00
Sc
1234567821
Wiliam
Pilgrim
AUS
CS
2.50
Sc
1234567822
Luke
Brazzi
USA
PHY
3.50
Sc
1234567840
Homer
Wells
AUS
CS
2.50
Sc
2345678910
Candy
Kendall
NZ
FIN
2.75
Msc
2345678920
Roberto
Morales
AUS
FIN
3.25
Msc
2345789015
Tess
Dodge
CAN
ECON
3.75
Msc
4567890122
Joe
Estrada
CAN
Art
3.25
En
4567890133
Cristopher
Colan
USA
MUS
2.75
En
5678901235
Wally
Kendall
NZ
GSc
3.50
Ed
5678901240
Mariah
Dodge
CAN
Gsc
2.50
Ed
Parent relation
Child relation
Default
กำรลบรำยกำรข้ อมูล
หรื อ กำรแก้ ไขค่ ำใน Primary
key ของ Parent relation ที่มี Foreign key ใน Child
relation อ้ ำงอิงถึง จะมีผลทำให้ ค่ำใน Foreign key
เปลี่ยนค่ ำเป็ นค่ ำเริ่มต้ น(Default)
ตัวอย่ ำง Default
Primary key
•ถ้าลบรายการใน Faculty หรือ แก้ไขค่า
Fac_ID ใน Faculty ค่าใน Fac_ID ใน
Student ทีอ
่ า้ งอิงค่าเดิมเปลีย
่ นค่าเป็น
Default value
Faculty
Fac_ID
Foreign key
Fac_Name
Phone
Sc
Science
201
Msc
Management Science
145
En
Engineering
512
Ed
Education
301
Student
Std_ID
Std_Fname
Std_Lname
Std_Address
Std_Major
Std_GPA
Fac_ID
1234567801
Bob
Norbert
USA
IT
3.00
Sc
1234567821
Wiliam
Pilgrim
AUS
CS
2.50
Sc
1234567822
Luke
Brazzi
USA
PHY
3.50
Sc
1234567840
Homer
Wells
AUS
CS
2.50
Sc
2345678910
Candy
Kendall
NZ
FIN
2.75
Msc
2345678920
Roberto
Morales
AUS
FIN
3.25
Msc
2345789015
Tess
Dodge
CAN
ECON
3.75
Msc
4567890122
Joe
Estrada
CAN
Art
3.25
En
4567890133
Cristopher
Colan
USA
MUS
2.75
En
5678901235
Wally
Kendall
NZ
GSc
3.50
Ed
5678901240
Mariah
Dodge
CAN
Gsc
2.50
Ed
Parent relation
Child relation
ตัวอย่ ำงกำรกำหนดค่ ำในกำรสร้ ำงรีเลชัน
ด้ วยภำษำ SQL
Fac_ID
Fac_Name
Std_ID
Phone
Std_Fname
Create table Faculty
( Fac_ID
Char(5) Not null,
Fac_Name
Varchar(50),
Phone
Varchar(5),
Primary key(Fac_ID) );
Std_Lname
Std_Address
Create table Student
( Std_ID
Char(11) Not null,
Std_Fname
Varchar(25),
Std_LName
Varchar(35),
Std_Address
Varchar(100),
Std_Major
Varchar(15)
Std_GPA
decimal,
Fac_ID
Char(5),
Primary key(Fac_ID)
Foreign key(Fac_ID) References Faculty(Fac_ID)
On Update Cascade
On Delete Restict);
Std_Major
Std_GPA
Fac_ID
Relational Algebra
Restrict หรือ Selection
Project
Product
Union
Intersect
Difference
Join
Divide
Restrict หรื อ Select
ตัวดำเนินกำร
Selection จะกระทำกับรี เลชันเดียว
เพื่อดึงข้ อมูลเฉพำะทูเพิลที่ตรงกับเงื่อนไขที่กำหนด
ผลลัพธ์ จำกกำร Selection จะแสดงทุกแอททริบวิ ต์
แต่ จำนวนทูเพิลของผลลัพธ์ ขนึ ้ อยู่กับเงื่อนไขที่
กำหนด
รู ปแบบคำสั่ง เงื่อนไข (ชื่อรี เลชัน)
Restrict หรื อ Select
กำรใช้ คำสั่ง
Restrict จะทำให้ ได้ Relation หรื อ
ตำรำงที่มีแถวหรื อรำยกำรข้ อมูลตรงกับเงื่อนไข
Restrict หรื อ Select
ให้ แสดงข้ อมูลพนักงำนที่มีเงินเดือนมำกกว่ ำ 10000 บำท
สำมำรถเขียนคำสั่งได้ ดังนี ้
เงินเดือน > 10000(พนักงำน)
รห ัสพน ักงาน
ื่
ชอ
นามสกุล
ตาแหน่ง
เพศ
SUD21
สมชาย
เข็มกล ัด
ผูจ
้ ัดการ
ช
1 ตค. 2516
30000
B005
SNK37
แอน
ทองประสม
พน ักงาน
ญ
10 พย. 2519
12000
B007
SNK14
ศรราม
เทพพิท ักษ์
ห ัวหน้าแผนก
ช
24 มีค. 2517
20000
B007
SUD04
ปน ัดดา
์ ด
วงศผ
ู้ ี
ผูจ
้ ัดการ
ญ
3 กค. 2518
25000
B003
ว ันเกิด
เงินเดือ
น
รห ัสสาขา
Project
ตัวดำเนินกำร
Projection จะกระทำกับข้ อมูลในรี เล
ชันเดียว เป็ นกำรดึงข้ อมูลในรี เลชันมำแสดงเฉพำะ
บำงแอททริบวิ ต์ ท่ กี ำหนดไว้ ในเงื่อนไข โดยผลลัพธ์
ที่ได้ จะแสดงรำยกำรที่ไม่ ซำ้ รำยกำรกัน
รู ปแบบคำสั่ง
แอททริบวิ ท์1 ,….., แอททริบวิ ท์n (ชื่อรี เลชัน)
Project
กำรใช้ คำสั่ง
Project จะเป็ นกำรเลือกข้ อมูลทุกแถว
หรื อทุกรำยกำร โดยเลือกมำเพียงบำงคอลัมน์
เท่ ำนัน้
Project
แสดงข้ อมูล
รหัสพนักงำน , ชื่อ , นำมสกุล และ
เงินเดือน ของพนักงำน สำมำรถเขียนคำสั่งได้ ดังนี ้
รหัสพนักงำน , ชื่อ , นำมสกุล , เงินเดือน(พนักงำน)
รห ัสพน ักงาน
ื่
ชอ
นามสกุล
SUD21
สมชาย
เข็มกล ัด
30000
SNK37
แอน
ทองประสม
12000
SNK14
ศรราม
เทพพิท ักษ์
20000
SUB09
สุวน ันท์
คงยิง่
SUD04
ปน ัดดา
์ ด
วงศผ
ู้ ี
SNR41
เจนจิรา
เกิดประสพ
เงินเดือน
9000
25000
9000
Union
เป็ นกำรกระทำเพื่อแสดงข้ อมูลของทุกทูเพิล
ที่เกิด
จำกกำรรวมกันของข้ อมูลของรี เลชันที่นำมำ Union
กัน ซึ่งรี เลชันที่จะนำมำ Union ต้ องมีคุณสมบัตขิ อง
รี ชันแบบเดียวกัน(มีจำนวนแอททริบวิ ท์ เท่ ำกันและ
มีโดเมนเดียวกัน)
รู ปแบบคำสั่ง
ชื่อรี เลชัน1 ชื่อรี เลชัน2
Union
ผลของคำสั่งนี ้ จะทำให้ ได้ แถวทัง้ หมดที่ปรำกฏอยู่
ใน 2 Relation
Union
แสดงชื่อจังหวัดทัง้ หมด
ที่สำขำตัง้ อยู่ หรื อมีส่ งิ ปลูก
สร้ ำงตัง้ อยู่
จังหวัด(สำขำ) จังหวัด(สิ่งปลูกสร้ ำง)
จ ังหว ัด
จังหวัด
จ ังหว ัด
อุดรธานี
อุดรธานี
อุบลราชธานี
หนองคาย
หนองคาย
หนองคาย
อุบลราชธานี
อุบลราชธานี
อุดรธานี
ี า
นครราชสม
ี า
นครราชสม
Intersect
เป็ นกำรกระทำเพื่อแสดงข้ อมูลของทุกทูเพิล
ที่
ปรำกฏอยู่ในทัง้ 2 รี เลชัน ที่นำมำรวมกันในรู ปแบบ
ของ Intersection ซึ่งรี เลชันที่จะนำมำ Union ต้ องมี
คุณสมบัตขิ องรี ชันแบบเดียวกัน(มีจำนวนแอททริ
บิวท์ เท่ ำกันและมีโดเมนเดียวกัน)
รู ปแบบคำสั่ง
ชื่อรี เลชัน1 ชื่อรี เลชัน2
Intersect
ผลของคำสั่งนี ้ จะทำให้ ได้ แถวที่ปรำกฏอยู่ในทัง้
Relation
2
Intersection Operation
ให้ แสดง
ชื่อจังหวัดทุกจังหวัด ที่มีทงั ้ สำขำของ
บริษัท และมีส่ งิ ปลูกสร้ ำงที่ให้ เช่ ำ ตัง้ อยู่ด้วย
จังหวัด(สำขำ) จังหวัด(สิ่งปลูกสร้ ำง)
จ ังหว ัด
จ ังหว ัด
จ ังหว ัด
อุดรธานี
อุดรธานี
อุบลราชธานี
หนองคาย
หนองคาย
หนองคาย
อุบลราชธานี
ี า
นครราชสม
อุบลราชธานี
อุดรธานี
Difference
กำรกระทำเพื่อแสดงข้ อมูลของทุกทูเพิล
ปรำกฏอยู่ในรีเลชันหนึ่ง แต่ ไม่ ปรำกฏใน
อีกรีเลชัน
รู ปแบบคำสั่ง
ชื่อรีเลชัน1 - ชื่อรี เลชัน2
ที่
Difference
ผลของคำสั่งนี ้ จะทำให้ ได้ แถวที่ปรำกฏอยู่เฉพำะใน
Relation แรก
Difference
แสดงชื่อจังหวัดที่มีสำขำตัง้ อยู่แต่ ในจังหวัด
ดังกล่ ำวไม่ มีส่ งิ ปลูกสร้ ำงที่ให้ เช่ ำตัง้ อยู่ เขียนคำสั่ง
ได้ ดังนี ้
จังหวัด(สำขำ) - จังหวัด(สิ่งปลูกสร้ ำง)
จ ังหว ัด
จ ังหว ัด
จ ังหว ัด
อุดรธานี
ี า
นครราชสม
อุบลราชธานี
หนองคาย
หนองคาย
อุบลราชธานี
อุดรธานี
ี า
นครราชสม
Cartesian Product
ตัวดำเนินกำร
Cartesian Product เป็ นกำร
กระทำกับรีเลชัน 2 รีเลชัน โดยกำรจับคู่ทุกทู
เพิลในรีเลชันหนึ่งกับทุกทูเพิลในอีกรี เลชัน
R
S
a
b
1
2
3
RXS
=
a
a
a
b
b
b
1
2
3
1
2
3
Cartesian Product
ผลของคำสั่งนี ้ จะทำให้ ได้ Relation ที่ข้อมูลคือค่ ำที่
เป็ นไปได้ ทงั ้ หมดจำกกำรนำข้ อมูลของแต่ ละแถวใน 2
Relation มำรวมกัน
Product
a
b
c
x
y
a
a
b
b
c
c
x
y
x
y
x
y
จงหาผลล ัพธ์ ของสมการ ต่อไปนี้
( รห ัสลูกค้า , ชอื่ , นามสกุล (ลูกค้า)) x ( รห ัสลูกค้า , รห ัสสงิ่ ปลูกสร้างทีใ่ ห้เชา่ ,ความคิดเห็น (การเข้าชม))
( รหัสลูกค้ ำ , ชื่อ , นำมสกุล (ลูกค้ ำ))
( รหัสลูกค้ ำ , รหัสสิ่งปลูกสร้ ำงที่ให้ เช่ ำ,ควำมคิดเห็น (กำรเข้ ำชม))
รห ัส
ลูกค้า
ื่
ชอ
นามสกุล
รห ัสลูกค้า
รห ัสสงิ่ ปลูก
สร้าง
ความคิดเห็น
CR76
นิพล
ั ทธิ
สงสุ
CR56
UD36
หล ังเล็ กเกินไป
CR56
อารีร ัตน์
บุญทอง
CR76
UD16
ไกลเกินไป
CR74
ปราการ
พิพ ัฒน์
CR56
UD16
CR62
ราไพ
ทองอ่อน
CR62
UD36
CR56
UB15
X
ไม่มห
ี อ
้ งกินข้าว
( รห ัสลูกค้า , ชอื่ , นามสกุล (ลูกค้า)) x ( รห ัสลูกค้า , รห ัสสงิ่ ปลูกสร้างทีใ่ ห้เชา่ ,ความคิดเห็น (การเข้าชม))
ลูกค้า.รห ัสลูกค้า
ื่
ชอ
นามสกุล
การเข้าชม.รห ัสลูกค้า
รห ัสสงิ่ ปลูกสร้าง
ความคิดเห็น
CR76
นิพล
ั ทธิ
สงสุ
CR56
UD36
หล ังเล็กเกินไป
CR76
นิพล
ั ทธิ
สงสุ
CR76
UD16
ไกลเกินไป
CR76
นิพล
ั ทธิ
สงสุ
CR56
UD16
CR76
นิพล
ั ทธิ
สงสุ
CR62
UD36
CR76
นิพล
ั ทธิ
สงสุ
CR56
UB15
CR56
อารีร ัตน์
บุญทอง
CR56
UD36
หล ังเล็กเกินไป
CR56
อารีร ัตน์
บุญทอง
CR76
UD16
ไกลเกินไป
CR56
อารีร ัตน์
บุญทอง
CR56
UD16
CR56
อารีร ัตน์
บุญทอง
CR62
UD36
CR56
อารีร ัตน์
บุญทอง
CR56
UB15
CR74
ปราการ
พิพ ัฒน์
CR56
UD36
หล ังเล็กเกินไป
CR74
ปราการ
พิพ ัฒน์
CR76
UD16
ไกลเกินไป
CR74
ปราการ
พิพ ัฒน์
CR56
UD16
CR74
ปราการ
พิพ ัฒน์
CR62
UD36
CR74
ปราการ
พิพ ัฒน์
CR56
UB15
CR62
ราไพ
ทองอ่อน
CR56
UD36
หล ังเล็กเกินไป
CR62
ราไพ
ทองอ่อน
CR76
UD16
ไกลเกินไป
CR62
ราไพ
ทองอ่อน
CR56
UD16
CR62
ราไพ
ทองอ่อน
CR62
UD36
CR62
ราไพ
ทองอ่อน
CR56
UB15
ไม่มห
ี อ
้ งกินข้าว
ไม่มห
ี อ
้ งกินข้าว
ไม่มห
ี อ
้ งกินข้าว
ไม่มห
ี อ
้ งกินข้าว
Join
คล้ ำย
Product แต่ ต่ำงกันที่จะได้ เฉพำะแถวที่สำมำรถ
เชื่อมต่ อกันได้ ด้วย Attribute ที่ทงั ้ 2 Relation มี
เหมือนกันเท่ ำนัน้ ประโยชน์ ของคำสั่ง Join คือใช้ เชื่อม
ตำรำง 2 ตำรำงเพื่อหำข้ อมูลที่เกี่ยวข้ องกัน
Join
a1 b1
a2 b1
a3 b2
b1 c1
b2 c2
b3 c3
a1 b1 c1
a2 b1 c1
a3 b2 c2
Alternate key
Primary key
รห ัสพน ักงาน
SUD21
SNK37
SNK14
SUB09
SUD04
SNR41
ื่
ชอ
สมชาย
แอน
ศรราม
สุวนันท์
ปนัดดา
เจนจิรา
นามสกุล
เข็มกลัด
ทองประสม
ตาแหน่ง
ผู ้จัดการ
พนักงาน
เทพพิทักษ์
หัวหน ้าแผนก
คงยิง่
พนักงาน
ผู ้จัดการ
พนักงาน
์ ู ้ดี
วงศผ
เกิดประสพ
Foreign key
เพศ
ช
ญ
ช
ญ
ญ
ญ
ว ันเกิด
1 ตค. 2516
10 พย. 2519
24 มีค. 2517
19 กพ. 2521
3 กค. 2518
13 มิย. 2520
เงินเดือน
30000
12000
20000
9000
25000
9000
Candidate key
สาขา
รห ัสสาขา
ทีอ
่ ยู่
B003
B005
B007
B002
B004
44/3 ถ.อุดรดุษฎี
Primary key
55/5 ถ.นิตโย
ั
16 ถ.โพนพิสย
จ ังหว ัด
อุดรธานี
อุดรธานี
หนองคาย
30 ถ.ชยางกูร
อุบลราชธานี
ี า
88/10 ถ.ราชสม
ี า
นครราชสม
รห ัสไปรษณีย ์
41000
41000
44000
34000
43000
รห ัสสาขา
B005
B007
B007
B002
B003
B004
Divide
เป็ นกำรหำร Relation โดยนำ Relation ที่มี Attribute เพียงตัว
เดียวมำหำร Relation ที่มี Attribute 2 ตัว ผลที่ได้ กค็ ือค่ ำของ
Attribute ตัวแรกที่มี Attribute ตัวที่ 2 ตรงกับค่ ำของ Attribute
ทัง้ หมดใน Relation ที่นำมำหำร
Divide
a
a
a
b
c
x
y
z
x
y
x
y
z
a