Contenu connexe
Plus de Rungnapa Rungnapa (20)
Slide3
- 3. หัวข้อการบรรยาย
1. คา ศัพท์เกี่ยวกับโมเดลเชิงสัมพันธ์
2. คุณสมบัติของ Relation
3. แนวคิดของ E.F. Codd
4. ค่าว่าง (Null Value)
5. Redundant & Duplicate Data
6. ชนิดของ Relation
7. ประเภทของ Key
8. ภาษาของฐานข้อมูลเชิงสัมพันธ์
9. เหตุผลในการใช้ฐานข้อมูลเชิงสัมพันธ์
3
ปัจจุบัน
- 5. 1. คา ศัพท์เกี่ยวกับโมเดลเชิงสัมพันธ์
รีเลชัน่(Relation)
ทูเปิล (Tuple)
แอททริบิวท์(Attribute)
คาร์ดินัลลิตี้(Cardinality)
ดีกรี(Degree)
คีย์หลัก (Primary key)
โดเมน (Domain)
5
ค.ศ. 1975 ปัจจุบัน
- 6. 1. คา ศัพท์เกี่ยวกับโมเดลเชิงสัมพันธ์
6
ศัพท์เฉพาะ ศัพท์ทัว่ไป
รีเลชัน่(Relation) ตาราง (Table)
ทูเปิล (Tuple) แถว ค(.ศRow) . 1975 หรือ เรคอร์ด (Record) หปัจรืจุอ บัระน
เบียน
แอทรบิิวท์(Attribute) คอลัมน์(Column) หรือ ฟิลด์ (Field)
คาร์ดินัลลิตี้(Cardinality) จา นวนแถว (Number of rows)
ดีกรี(Degree) จานวนแอทริบิวท์(Number of attribute)
คีย์หลัก (Primary key) ค่าเอกลักษณ์ (Unique identifier)
โดเมน (Domain) ขอบข่ายของค่าของข้อมูล (Pool of legal values)
- 7. 7
ลูกค้า(รหัสประจา ตัวประชาชน,ชื่อ,นามสกุล,วันเกิด)
แอททริบิวท์(Attribute)
รหัสประจำ ตัวประชำชน ชื่อ นำมสกุล วันเกิด
3102401250111 ชนวัฒน์ศรีสอ้ำน 16/04/2514
3102401250112 สมชำย รักไทย 6/11/2514
3102401250113 ไอรดำ สืบสำย 12/06/2514
เรคคอร์ด (Record) ตาราง (Table) หรือ รีเลชัน่(Relation)
- 8. 2. คุณสมบัติของ Relation
1) รีเลชัน่จะต้องมีชื่อกา กับ โดยแต่ละรีเลชัน่จะมีชื่อที่แตกต่างกัน ซ้า กันไม่ได้
2) แต่ละแอทรบิิวท์ของรีเลชัน่จะบรรจุค่าเพียงค่าเดียว (Atomic) กล่าวคือ
ค่าที่บรรจุนั้นจะไม่สามารถแบ่งย่อยต่อไปได้อีก
3) แต่ละแอทรบิิวท์ในรีเลชัน่นั้น ๆ ต้องมีชื่อแตกต่างกัน จะมีชื่อแอทรบิิวท์
ซ้า กันไม่ได้
4) ข้อมูลที่บรรจุลงในแต่ละแอทรบิิวท์เป็นไปตามข้อกา หนดของโดเมนที่
กา หนดขึ้น
8
- 9. 2. คุณสมบัติของ Relation
5) ข้อมูลในแต่ละทูเปิลต้องมีความแตกต่างกัน จะไม่มีทูเปิลที่ซ้า กัน
6) การเรียงลา ดับของแต่ละแอทริบิวต์ไม่มีความสา คัญใด ๆ
7) การเรียงลา ดับของทูเปิลไม่มีความสา คัญใด ๆ แต่ในเชิงปฏิบัติลา ดับ
มีผลต่อประสิทธิภาพการเข้าถึงข้อมูล
9
- 10. 10
ไม่มี Tuples คู่ใด ๆ เลยที่ซ้า กัน
รหัสประจา ตัวประชาชน ชื่อ นามสกุล วันเกิด
3102401250111 ชนวัฒน์ศรีสอ้าน 16/04/2514
3102401250112 สมชาย รักไทย 6/11/2514
3102401250111 ชนวัฒน์ศรีสอ้าน 16/04/2514
3102401250113 ไอรดา สืบสาย 12/06/2514
- 11. 11
ลา ดับที่ของ Tuples ไม่มีความสา คัญ
รหัสประจา ตัวประชาชน ชื่อ นามสกุล วันเกิด
3102401250113 ไอรดา สืบสาย 12/06/2514
3102401250111 ชนวัฒน์ศรีสอ้าน 16/04/2514
3102401250112 สมชาย รักไทย 6/11/2514
- 12. 12
ลา ดับที่ของ Attributes ไม่มีความสา คัญ
ชื่อ รหัสประจา ตัวประชาชน นามสกุล วันเกิด
ไอรดา 3102401250113 สืบสาย 12/06/2514
ชนวัฒน์3102401250111 ศรีสอ้าน 16/04/2514
สมชาย 3102401250112 รักไทย 6/11/2514
- 13. 13
ค่าของ Attribute จะเป็นค่าเดี่ยว ๆ (Atomic)
ชื่อ รหัสประจา ตัวประชาชน นามสกุล วันเกิด
ไอรดา 3102401250113
3102401250112
3102401250111
สืบสาย 12/06/2514
ชนวัฒน์3102401250111 ศรีสอ้าน 16/04/2514
สมศรี
3102401250112 รักไทย 6/11/2514
สมชาย
- 14. 14
ค่าของข้อมูลในแต่ละ Attribute
จะบรรจุค่าของข้อมูลประเภทเดียวกัน
ชื่อ รหัสประจา ตัวประชาชน นามสกุล วันเกิด
ไอรดา สามหนึ่งศูนย์สองสี่สืบสาย 99999
ชนวัฒน์3102401250111 ศรีสอ้าน 16/04/2514
สมชาย 3102401250112 รักไทย สวัสดี
- 15. 3. กฎ 12 ข้อบนฐานข้อมูลเชิงสัมพันธ์ของคอดด์
(Codd’s 12 Relational Database Rules)
1. กฎด้านสารสนเทศ (Information)
2. กฎการรับประกันการเข้าถึง (Guaranteed Access)
3. กฎการปฏิบัติกับค่า Null อย่างมีแบบแผน
4. กฎการออนไลน์แคตาล๊อกแบบไดนามิกที่ตัง้อยู่บนพื้นฐานของ
แบบจา ลองเชิงสัมพันธ์
5. กฎด้านภาษาข้อมูล
6. กฎการปรับปรุงวิว
7. กฎการแทรก การปรับปรุง และการลบข้อมูลระดับสูง
8. กฎความอิสระของข้อมูลเชิงกายภาพ
15
- 16. 3. กฎ 12 ข้อบนฐานข้อมูลเชิงสัมพันธ์ของคอดด์
9. กฎความอิสระของข้อมูลเชิงตรรกะ (Logical Data Independence)
10. กฎความคงสภาพที่เป็นอิสระ (Integrity Independence)
11. กฎการกระจายที่เป็นอิสระ (Distribution Independence)
12. กฎปราศจากเวอร์ชัน่ย่อย (Nonsubversion)
16
(Codd’s 12 Relational Database Rules)
- 17. ค่าของ Attribute อาจจะเป็นค่าว่าง (Null)
คือ ไม่มีค่าหรือยังไม่ทราบค่าได้
ตัวอย่าง เช่น
จานวนไข่ของนกกระจอกเทศ จะสามารถบอกได้เมื่อนกกระจอกเทศออกไข่
แล้ว แต่ยังไม่ทราบค่า ในขณะที่จา นวนไข่ของช้างนั้นไม่มีค่า เป็นต้น
17
4. ค่าว่าง (Null Value)
- 18. ตัวอย่าง
18
Part Part
ค.ศ. 1975 ปัจจุบัน
part Part-description
P2 Nut
P1 Bolt
P3 Washer
P4 Nut
part Part-description
P2 -
P1 Bolt
P3 Washer
P4 Nut
(a) (b)
- 19. Duplicate data จะเกิดขึ้นก็ต่อเมื่อ Attribute หนึ่งมีค่าของข้อมูลที่
เหมือนกันตัง้แต่สองค่าขึ้นไป
ข้อมูลจะซ้าซ้อน (Redundant) ก็ต่อเมื่อเราสามารถตัดข้อมูลที่
ซ้า ซ้อนนั้นออกไปได้ โดยไม่ทา ให้สูญเสียข้อมูล
อาจกล่าวได้ว่า ความซ้าซ้อน (Redundancy) คือ Duplication ที่ไม่
จาเป็น
19
5. Redundant & Duplicate Data
- 20. ตัวอย่าง
20
Supplier - Part Supplier - Part
ค.ศ. 1975 ปัจจุบัน
Supplier part Part-description
S2 P1 Bolt
S7 P6 Bolt
S2 P4 Nut
s5 P1 Bolt
Supplier part Part-description
S2 P1 Bolt
S7 P6 Bolt
S2 P4 Nut
s5 P1 -
(a) (b)
- 21. ตัวอย่าง
21
Supplier – Part-1 Part
ค.ศ. 1975 ปัจจุบัน
Supplier# Part-description
S2 P1
S7 P6
S2 P4
s5 P1
Part# Part-description
P1 Bolt
P6 Bolt
P4 Nut
(a) (b)
- 22. Relation หลัก (Base Relation)
เป็น Relation ที่ถูกกา หนดขึ้นเพื่อเก็บข้อมูลและเพื่อนาข้อมูลไปใช้
เมื่อมีการสร้าง Relation โดยใช้ Data Definition Language เช่น
ใน SQL คา สัง่ CREATE TABLE เป็นการสร้าง Relation หลัก
วิว (View) หรืออาจเรียกอีกอย่างหนึ่งว่า Relation สมมติ (Virtual
Relation)
เป็น Relation ที่ถูกสร้างขึ้นตามความต้องการใช้ข้อมูลของผู้ใช้แต่ละคน
เนื่องจากผู้ใช้แต่ละคนอาจต้องการใช้ข้อมูลในลักษณะที่แตกต่างกัน
จึงทา การกา หนดวิวของตัวเองขึ้นมาจาก Relation หลัก
22
6. ชนิดของ Relation
- 23. Simple key
หมายถึง key ที่ประกอบด้วย attribute เดียว
Combine key (Composite key หรือ Concatenated key)
Combine Key หรือ คีย์ประกอบ หมายถึง Key ที่ประกอบด้วย attribute
มากกว่า 1 attribute
Candidate key
Candidate Key หรือ คีย์คู่แข่ง หมายถึง key ที่สามารถจะเป็นคู่แข่ง ซึ่งจะถูก
เลือกให้เป็นคีย์หลัก
23
7. ประเภทของ Key
- 24. Primary key
Primary key หรือ คีย์หลัก หมายถึง candidate key ตัวหนึ่งที่ถูกเลือกขึ้นมา
เป็นคีย์หลัก สา หรับ primary key เราจะใช้สัญลักษณ์ขีดเส้นใต้กา กับไว้ใต้
attribute ตัวนั้น
Foreign key
หมายถึง nonkey attribute ใน relation หนึ่งที่เป็น primary key ใน relation
อื่น
24
7. ประเภทของ Key
- 25. Secondary key (Alternate key)
คีย์รอง หมายถึง candidate key ที่ไม่ได้ถูกเลือกเป็นคีย์หลัก (primary key)
Superkey
attribute หรือ เซ็ทของ attribute ที่สามารถบ่งบอกว่าแต่ละแถว (Tuple)
แตกต่างกัน ในทุก ๆ ความสัมพันธ์จะต้องมีอย่างน้อย หนึ่ง Super key ใน
เซ็ทของ attributes
25
7. ประเภทของ Key
- 26. ต้องเป็นภาษา Relational Complete Language ตามแนวคิดของ
Codd มี 2 สาย ดังนี้
Relational Calculus (R.C)
Relational Algebra (R.A)
26
8. ภาษาของฐานข้อมูลเชิงสัมพันธ์
- 27. ผลงานที่ได้จากการพัฒนาระบบงานสูงสุด (Productivity) สูงมาก
โครงสร้างข้อมูลเรียบง่าย ทาให้ง่ายต่อการใช้งานและการเขียนโปรแกรม
ภาษาที่ใช้เหมาะสม เป็นภาษาที่เรียกว่า “relational complete language”
เป็น concept ของ set theory เช่น ภาษา SQL, QBE เป็นต้น
27
9. เหตุผลในการใช้ฐานข้อมูลเชิงสัมพันธ์
- 29. Key Rule
แนวคิดเรื่องโมเดลเชิงสัมพันธ์
คีย์
พื้นฐาน Relational Algebra
29
- 30. Key Rule
แนวคิดเรื่องโมเดลเชิงสัมพันธ์
ความสัมพันธ์ของฐานข้อมูลจะอยู่ในรูปแบบของตาราง
ชื่อของตารางคือ ชื่อของความสัมพันธ์
แต่ละคอลัมน์ของตารางความสัมพันธ์ เรียกว่า แอททริบิว (attribute)
ของความสัมพันธ์
ค่าและขอบเขตของข้อมูลของแอททริบิวต์เรียกว่า โดเมน (Domain)
แต่ละแถวของตารางความสัมพันธ์ เรียกว่า แถว หรือ ทูเพิล (tuple)
ของความสัมพันธ์
30
- 31. Key Rule
คุณสมบัติของความสัมพันธ์
ลา ดับของแถวและคอลัมน์ไม่ทา ให้ข้อมูลเปลี่ยนไป
จะไม่มีสองแถวที่ซ้า กัน
แอททริบิวต์ทุกตัวจะเป็น atomic เท่านั้น
ดีกรีของความสัมพันธ์ คือ จา นวนแอททริบิวต์ที่มีในความสัมพันธ์นั้น
31
- 32. Key Rule
คีย์
คีย์ คือ สงิ่ที่ใช้ในการกา หนดความเป็นเอกลักษณ์ของแถวใน
ความสัมพันธ์
ทาให้การเข้าถึงข้อมูลบนฐานข้อมูลเป็นไปได้อย่างรวดเร็ว
ทาให้สามารถแยกแยะข้อมูลในฐานข้อมูลให้เป็นไปอย่างถูกต้อง
32
- 33. Key Rule
ประเภทของคีย์
คีย์หลัก (Primary Key) คือ คีย์ที่ใช้ในการอ้างถึง Entity ในฐานข้อมูล
คีย์รอง (Secondary Key) คือ คีย์เดี่ยวหรือคีย์ผสม เมื่อใช้ในการค้นหาข้อมูลของ
ความสัมพันธ์จะได้มากกว่าหนึ่งเรคคอร์ด
คีย์นอก (Foreign Key) คือ คีย์เดี่ยวหรือคีย์ผสม ซึ่งเป็นคีย์ทัว่ไปของ
ความสัมพันธ์หนึ่ง แต่เป็นคีย์หลักของอีกความสัมพันธ์หนึ่ง เป็นตัวที่ใช้ในการ
เชื่อมต่อระหว่างความสัมพันธ์
33
- 34. Key Rule
ซุปเปอร์คีย์ (Super key) คือ กลุ่มของแอททริบิวที่สามาร
ถนา ไปค้นหาข้อมูลที่เป็นเอกลักษณ์ได้
คีย์แข่งขัน (Candidate key) คือ ซุปเปอร์คีย์และไม่มีกลุ่ม
ย่อยของคีย์ใดในคีย์แข่งขันที่สามารถเป็นซุปเปอร์คีย์ได้
34
- 35. Algebra Rule
พื้นฐาน Relational Algebra
Relational Algebra Operations ขั้นพื้นฐาน
Relational Calculus
35
- 36. Algebra Rule
พื้นฐาน Relational Algebra
Relational Algebra เรียกอีกอย่างว่า Relational
query language
ใช้ในการจัดการข้อมูลโดยการระบุตัวกระทา กับความสัมพันธ์ที่ต้องการ
จัดการ ผลลัพธ์ที่ได้คือ ความสัมพันธ์ใหม่
36
- 37. Algebra Rule
ประเภทการใช้งานของตัวกระทา กับความสัมพันธ์
มี 2 รูปแบบ คือ
การใช้งานขั้นพื้นฐาน
Selection เลือกแถวจากความสัมพันธ์
Projection เลือกเฉพาะคอลัมน์ที่ต้องการจากความสัมพันธ์
Cross Product สามารถรวมความสัมพันธ์ได้
Set Difference หาความแตกต่างระหว่าง 2 ความสัมพันธ์
Union เชื่อม 2 ความสัมพันธ์เข้าด้วยกัน
37
- 38. Algebra Rule
การใช้งานขั้นสูง
intersection
join
division
renaming
38
- 39. Algebra Rule
ประเภทการกระทา กับความสัมพันธ์ มี 2 รูปแบบ คือ
Unary Operators คือ ตัวกระทา ที่ต้องการเพียง
ความสัมพันธ์เดียว เช่น select, project และ rename
Binary Operators คือ ตัวกระทา ที่ต้องการ 2
ความสัมพันธ์ เช่น union, intersection,
difference และ cartesian product
39
- 40. Algebra Rule
Relational Algebra Operations ขั้นพื้นฐาน ได้แก่
Selection operator คือ การเลือกข้อมูลความสัมพันธ์จากเงื่อนไขที่
กา หนด เทียบได้กับ SELECT...FROM...WHERE ในคา สั่ง SQL
Projection Operator คือ การเลือกเฉพาะบางคอลัมน์ของความสัมพันธ์
ขึ้นมาแสดง
Union ความสัมพันธ์ที่จะนา มาทา Union กันได้ ก็ต่อเมื่อรูปแบบของ
ความสัมพันธ์เหมือนกัน เทียบได้กับ
SELECT…FROM…WHERE…UNION
SELECT…FROM…WHERE…
40
- 41. Algebra Rule
Difference คือ ความสัมพันธ์ที่มีความแตกต่างกัน โดยมี รูปแบบ
ความสัมพันธ์ที่เหมือนกัน เทียบได้กับ
SELECT…FROM…WHERE…MINUS
SELECT…FROM…WHERE
Intersection คือ ความสัมพันธ์ที่เกิดจากแถวที่ซ้า กัน เทียบได้
กับ
SELECT…FROM…WHERE…INTERSECTION
SELECT…FROM…WHERE
Division รูปแบบของความสัมพันธ์ คือ R1/R2 ไม่นิยมใช้แต่
อาจจะใช้ในการค้นหาบางประเภท
41
- 42. Algebra Rule
Relational Calculus
เป็นการใช้คณิตศาสตร์ของตรรกะเข้ามาช่วยในการค้นหา ข้อมูล
คา ตอบที่ได้คือแถวของข้อมูลจากความสัมพันธ์ที่ทา ให้ค่าของสมการ
คณิตศาสตร์มีค่าเป็น จริง
42
- 43. Constraints
คือ ข้อบังคับหรือเงื่อนไขในการอนุญาตให้เก็บเฉพาะข้อมูลที่
เหมาะสมลงในฐานข้อมูล เพื่อให้การเลือกข้อมูลจากฐานข้อมูลมี
ความถูกต้อง
43
- 44. Constraints
ประเภทของเงื่อนไข
Key constraint มี 2 รูปแบบ คือ
คีย์หลัก ค่าจะไม่เป็น NULL และถูกใช้เป็นดัชนีในการเรียงลา ดับเสมอ
Unique เป็น key เอกลักษณ์อาจมีเพิ่ม นอกเหนือจาก คีย์หลักโดย
จะถูกใช้เป็นดัชนีในการเรียงรายการต่อจากคีย์หลัก โดยอัตโนมัติ
Referential Integrity
เป็นการอ้างอิงข้อมูลจากความสัมพันธ์อื่น
44
- 45. Constraints
Check เป็นการตรวจสอบค่าของข้อมูลในความสัมพันธ์ให้
เป็นไปตามเงื่อนไข เพื่อกรองเฉพาะข้อมูลที่เหมาะสมลงไปใน
ฐานข้อมูล
Assertion เป็นการตรวจสอบค่าของข้อมูลโดยรวมของทุก
ความสัมพันธ์ให้เป็นไปตามเงื่อนไข
45
- 47. Cartesian Rule
Cartesian Product คือ การนา แถวจากความสัมพันธ์ที่1
มาต่อกับแถวจากความสัมพันธ์ที่ 2
จา นวนแถวของความสัมพันธ์ผลลัพธ์ จะเท่ากับจา นวนแถวของ
ความสัมพันธ์ที่ 1 X จา นวนแถวของความสัมพันธ์ที่ 2
47
- 48. Cartesian Rule
Join คือ การรวมข้อมูลจากหลายความสัมพันธ์เข้าด้วยกัน มีหลาย
แบบดังนี้
Theta-Join คือ การ join แบบปกติซึ่งทา ให้เกิดชื่อคอลัมน์ที่ซ้า
กัน
Equi-Join คือ การ join แบบมีเงื่อนไข “เท่ากับ” (=) เท่านั้น
และคอลัมน์ที่ซ้า กันจะถูกแสดงเพียงครั้งเดียว
Natural-Join คือ Equi-Join ที่ join ทุกคอลัมน์ที่ซ้า กัน
48
- 50. ประเภทของคีย์
1. คีย์หลัก (Primary Key)
เป็น Attribute ที่มีคุณสมบัติของข้อมูลที่มีค่าเป็น
เอกลักษณ์ หรือไม่มีค่าซ้า กัน
โดยคุณสมบัตินั้นจะสามารถระบุว่าข้อมูลนั้นเป็นของ
Tuple ใด
- 52. ประเภทของคีย์
2. คีย์ผสม (Composite Key)
การนา ฟิลด์ตั้งแต่ 2 ฟิลด์ขึ้นไปมารวมกัน
เพื่อให้มีคุณสมบัติเป็น Primary Key
เนื่องจากหากใช้ฟิลด์ใดฟิลด์หนึ่งเป็น PK จะส่งผลให้ข้อมูลในแต่ละ
เรคอร์ดซ้า ซ้อนได้
3001
- 53. ประเภทของคีย์
3. คีย์คู่แข่ง (Candidates Key)
ในแต่ละ Relation อาจมี Attribute ที่ทา หน้าที่เป็นคีย์หลักได้
มากกว่าหนึ่ง Attribute โดยเรียก Attribute เหล่านี้ว่า คีย์คู่แข่ง
(Candidate Key)
เช่น นักศึกษาแต่ละคน มี
รหัสประจา ตัวนักศึกษา
รหัสประจา ตัวบัตรประชาชน
โดยปกติแล้วจะเลือก Candidates Key ที่สั้นที่สุดเป็น Primary
Key
- 55. Key Rule (Continued)
รหัส ชื่อ สกุล บัตร
ประชาชน
ชั้นเรียน สาขา
คีย์คู่แข่ง Candidate Key
คีย์หลัก (Primary Key) คีย์สำรอง Alternate Key
- 57. ประเภทของคีย์
2. คีย์นอก (Foreign Key)
คือคีย์ซึ่งประกอบด้วยแอทริบิวต์หรือกลุ่มของ
แอตทริบิวต์ในรีเลชันหนึ่งซึ่งมีคุณสมบัติเป็นคีย์หลัก และไป
ปรากฏอีกรีเลชันหนึ่ง เพื่อประโยชน์ในการเชื่อมโยงข้อมูล
ซึ่งกันและกัน
- 58. ประเภทของคีย์
2. คีย์นอก หรือคีย์เชื่อมโยง (Foreign Key)
เป็น Key ที่ใช้ในการเชื่อมโยงข้อมูลระหว่างตารางเข้าด้วยกัน เช่น
ฐานข้อมูลของธนาคารแห่งหนึ่งประกอบด้วย 2 ตาราง คือ
ตารางบัญชีที่ลูกค้าเปิด (เลขประจาตัวลูกค้า, ชื่อ-นามสกุล และ
ประเภทของบัญชี )
ตารางลูกค้า (เลขประจาตัวลูกค้า, ชื่อ-นามสกุล และที่อยู่)
หากต้องการทราบว่าลูกค้ารายหนึ่งเปิดบัญชีใดบ้าง ก็เชื่อมโยงข้อมูล 2
ตารางเข้าด้วยกัน โดยใช้เลขประจำตัวลูกค้ำเป็น Foreign Key