ฐานข้อมูลเชิงสัมพันธ์ Relational Database...– ค...

Preview:

Citation preview

ฐานขอมลเชงสมพนธ Relational Database

4122206A ระบบจดการฐานขอมล 3(2-2)

อ.ชนดา ค าเพง สาขาวชาเทคโนโลยสารสนเทศ

Today Topic • ความรเบองตนเกยวกบฐานขอมลเชงสมพนธ • การสรางฐานขอมลดวย MS Access • การสรางตาราง • การสรางความสมพนธระหวางตาราง

ศพทเทคนค ศพทเทคนค ศพททวไป

• รเลชน (Relation) ตาราง (Table) • ทเพล (Tuple) แถว (Row) หรอ Reccord • แอททรบวต (Attribute) คอลมน (Column), Field • คารดนาลต (Cardinality) จ านวนแถว (Number of Rows)

• คยหลก (Primary Key) คาเอกลกษณ (Unique Identifier)

ความหมายของฐานขอมลเชงสมพนธ

เปนการจดเกบรวบรวมขอมลเปนแถวและคอลมนในลกษณะตารางสองมต ทประกอบไปดวย Attribute ทแสดงคณสมบตของ Relation หนงๆ

โดย Relation ตางๆ ไดผานกระบวนการท าให Relation เปนบรรทดฐาน (Normalized) ในระหวางการออกแบบเพอลดความซ าซอน และเพอใหการจดการฐานขอมลเปนไปอยางมประสทธภาพ

แนวคดเรองโมเดลเชงสมพนธ

– ความสมพนธของฐานขอมลจะอยในรปแบบของตาราง – ชอของตารางคอ ชอของความสมพนธ – แตละคอลมนของตารางความสมพนธ เรยกวา แอททรบว

(attribute) ของความสมพนธ – คาและขอบเขตของขอมลของแอททรบวเรยกวา โดเมน

(Domain) – แตละแถวของตารางความสมพนธ เรยกวา แถว หรอ ทเพล

(tuple) ของความสมพนธ

ฐานขอมลเชงสมพนธ (Relational Database

• ดกรของความสมพนธ คอ จ านวนแอททรบวทมในตารางนน • Cardinality ของความสมพนธคอ จ านวนแถวในตาราง

คณสมบตของความสมพนธ

A Sample Relation

EmployeeNumber FirstName LastName

100 Mary Abermany

700 Jerry Caldera

300 Alea Copley

40 Murugan Jacksoni

• Deegree = • Cardinality =

Attributes

3 4

คณลกษณะในการจดเกบขอมลของรเลชน

1. ขอมลในแตละแถวจะไมซ ากน

คณลกษณะในการจดเกบขอมลของรเลชน

2. การเรยงล าดบของขอมลในแตละแถวไมเปนสาระส าคญ

คณลกษณะในการจดเกบขอมลของรเลชน

3. การเรยงล าดบของ Attribute จะเรยงล าดบกอนหลงอยางไรกได

คณลกษณะในการจดเกบขอมลของรเลชน

4. คาของขอมลในแตละ Attribute ของ Tuple หนงๆ จะบรรจ ขอมลไดเพยงคาเดยว (Single Value)

คณลกษณะในการจดเกบขอมลของรเลชน

5. คาของขอมลในแตละ Attribute จะบรรจคาของขอมล ประเภทเดยวกน

ประเภทของคย

1. คยหลก (Primary Key) เปน Attribute ทมคณสมบตของขอมลทมคาเปนเอกลกษณ หรอไมมคาซ ากน

โดยคณสมบตนนจะสามารถระบวาขอมลนนเปนของ Tuple ใด

ประเภทของคย 2. คยผสม (Composite Key)

• การน าฟลดตงแต 2 ฟลดขนไปมารวมกน • เพอใหมคณสมบตเปน Primary Key • เนองจากหากใชฟลดใดฟลดหนงเปน PK จะสงผลใหขอมลในแตละ

เรคอรดซ าซอนได

3. คยคแขง (Candidates Key)

ในแตละ Relation อาจม Attribute ทท าหนาทเปนคยหลกไดมากกวาหนง Attribute โดยเรยก Attribute เหลานวา คยคแขง (Candidate Key)

• เชน นกศกษาแตละคน ม – รหสประจ าตวนกศกษา – รหสประจ าตวบตรประชาชน

• โดยปกตแลวจะเลอก Candidates Key ทสนทสดเปน Primary Key

ประเภทของคย

ประเภทของคย

โดยเราจะเรยก Candidate Key ทถกเลอกมาใชเปนคยหลกในตารางวา “Primary Key” และเรยก Candidate Key ทไมถกเลอกเปนคยหลกวา “คยส ารอง (Alternate Key)”

Key Rule (Continued)

รหส ชอ สกล บตรประชาชน

ชนเรยน สาขา

คยคแขง Candidate Key

คยหลก (Primary Key) คยส ารอง Alternate Key

Key Rule (Continued)

• Candidate Key สามารถเปน Primary Key และ Alternate Key ได

ประเภทของคย

2. คยนอก (Foreign Key) คอคยซงประกอบดวยแอทรบวตหรอกลมของ แอตทรบวตในรเลชนหนงซงมคณสมบตเปนคยหลก และไปปรากฏอกรเลชนหนง เพอประโยชนในการเชอมโยงขอมล ซงกนและกน

2. คยนอก (Foreign Key) • เปน Key ทใชในการเชอมโยงขอมลระหวางตารางเขาดวยกน • เชน ฐานขอมลของธนาคารแหงหนงประกอบดวย 2 ตาราง คอ

– ตารางบญชทลกคาเปด (เลขประจ าตวลกคา, ชอ-นามสกล และประเภทของบญช )

– ตารางลกคา (เลขประจ าตวลกคา, ชอ-นามสกล และทอย) หากตองการทราบวาลกคารายหนงเปดบญชใดบาง กเชอมโยง

ขอมล 2 ตารางเขาดวยกน โดยใชเลขประจ าตวลกคาเปน Foreign Key

ประเภทของคย

เลขประจ าตวประชาชน

ชอ

นามสกล

อาย

3501552150054

สมชาย

แซตง

25

3210077565107

สมศร

แซอง

42

4110597520235

สมฤทย

แซตง

23

2156800512473

สมปอง

แซแต

16

7812350453784

สมชย

แซเอง

50

Primary Key ?

ชอ

นามสกล

อาย

เพศ

สมชาย

แซตง

25

ชาย

สมศร

แซอง

42

หญง

สมฤทย

แซตง

23

ชาย

สมปอง

แซแต

16

ชาย

สมชย

แซเลง

50

ชาย

Primary Key?

ID

ชอ

นามสกล

อาย

เพศ

1

สมชาย

แซตง

25

ชาย

2

สมศร

แซอง

42

หญง

3

สมฤทย

แซตง

23

ชาย

4

สมปอง

แซแต

16

ชาย

5

สมชย

แซเลง

50

ชาย

Primary Key ?

ID เพศ

รหสสนคา ชอสนคา จ านวน

รหสพนกงาน รหสสนคา ยอดขาย

Foreign Key ? ตารางสนคา

ตารางยอดขาย

กฎเกยวของกบคยในฐานขอมลเชงสมพนธ • คอขอบงคบหรอเงอนไขในการอนญาตใหเกบเฉพาะขอมลท

เหมาะสมลงในฐานขอมล • เพอใหการเลอกขอมลจากฐานขอมลมความถกตอง ประเภทของเงอนไข • Key constraint ม 2 รปแบบ คอ

– คยหลก คาจะไมเปน NULL – Null ไมใชคาทเปน 0 (กรณเปนตวเลข) และไมใช space (ในกรณเปนขอความ)

– Null หมายถงไมทราบคาหรอไมรคาแนชด

มคาเปน Null หมายถงอะไร ?

• Null เปนศพทเฉพาะใน Relational Database หมายถง ไมทราบคาขอมลทรแนชด เราสามารถก าหนดใหคาของคอลมนใดๆ เปน Null ได (ถาเปนไปไดควรใสใหครบจะดทสด ) ยกเวนคอลมนทเปน Primary Key เพราะจะไมสามารถน า Primary Key มาใชเขาถงขอมลในแตละแถวได

ตวอยางตารางทแสดงคา Null

รหสนกศกษา รหสวชา เกรดทได

4900222 E182

4900123 M117 C

4900125 P210 B+

4900236 E182 A

Referential Integrity

เปนการอางองขอมลจากความสมพนธอน

คาของ Foreign Key ตองมาจากคาของ Primary Key จากตารางทเกยวของเทานน

กฎเกยวของกบคยในฐานขอมลเชงสมพนธ

รหสสนคา ชอสนคา จ านวน

bk00198 เสอยด 100

cd00034 กางเกงขายาง 250

รหสพนกงาน รหสสนคา ยอดขาย

HY001 bk00198 80

HY002 cd00034 200

ตารางยอดขาย

ตารางสนคา

กฎการควบคมความถกตองของขอมล (Data Integrity)

ฐานขอมลไมสามารถรไดเองวาขอมลทเกบอยนนสอดคลองกบความเปนจรงหรอไม เราจงตองบอกใหฐานขอมลรดวยสงทเรยกวา กฎการควบคมความถกตองของขอมล หรอ Data Integrity

ตวอยางงานระบบทะเบยนนกศกษาจะม Integrity Rule ดงตอไปน • นกศกษาทกคนตองสงกดคณะทมอยเทานน • วชาทลงทะเบยนตองเปนวชาทเปดสอนเทานน • เกรดเฉลยแตละเทอมจะอยระหวาง 0.00-4.00 เทานน • เกรดทไดจะตองเปน A,B+,B,C+,C,D+,D หรอ F เทานน เปนตน

ประเภทของรเลชน

1. รเลชนหลก (Base Relation)

Relation ทถกก าหนดขนเพอเกบขอมลเพอน าไปใช โดย Base Relation จะเปน relation ทเกบขอมลอยจรง

ประเภทของรเลชน

2. วว (View)

Relation ทถกสรางขนตามความตองการของผใชงานแตละคน โดยจะก าหนด view ของตนขนมาจากรเลชนหลก

Virtual Table Or Derived Table

Relationship (ความสมพนธ) • แบงออกเปน 3 ประเภท คอ

– One to One Relationship (1 – 1) – One to Many Relationship (1 – M) – Many to Many Relationship (M – N)

ความสมพนธแบบหนงตอหนง (One to One Relationship)

• เปนความสมพนธทเขาใจงายทสด • เปนความสมพนธของขอมลใน 1 เรคอรดในตารางหนงม

ความสมพนธกบขอมลอยางมากหนงขอมลกบอกเรคอรดในอกตารางหนงเทานนในลกษณะทเปนหนงตอหนง – นกศกษา 1 คนเทานนทจะเปนนายกองคการนกศกษา

นกศกษา องคการนกศกษา เปนนายกฯ 1 1

ความสมพนธแบบหนงตอกลม (One to Many Relationship)

• เปนความสมพนธทพบบอยทสดในฐานขอมล • เปนความสมพนธของขอมลใน 1 เรคอรดในตารางหนงม

ความสมพนธกบขอมลมากกวาหนงขอมลกบอกเรคอรดในอกตารางหนงเทานนในลกษณะทเปนหนงตอหนง – นกศกษาแตละคนสามารถลงทะเบยนเรยนไดมากกวา 1 วชา

นกศกษา รายวชา ลงทะเบยน 1 M

ความสมพนธแบบกลมตอกลม (Many to Many Relationship)

• เปนความสมพนธทพบไมบอยนก • เปนความสมพนธของขอมลในเรคอรดใดๆ ของตารางหนง

มคาตรงกบขอมลของหลายๆ เรคอรดในตารางอนๆ – รายวชา 1 รายวชามอาจารยสอนไดมากกวา 1 คน – การสงซอสนคาในแตละครงสามารถสงซอสนคาไดมากกวา 1 ชนด

รายวชา อาจารย สอนโดย M N

ขอดของฐานขอมลเชงสมพนธ

1. ผใชงานเหนภาพของขอมลไดงาย 2. ผใชไมตองรวาขอมลจดเกบจรงอยางไร รวมถงการเขาถง

วธการเรยกใชขอมล 3. ภาษาทใชในการเรยกดขอมล มลกษณะคลายภาษาองกฤษ

และไมจ าเปนตองเขยนเปนล าดบขนตอน

4. การเรยกใชหรอเชอมโยงขอมลท าไดงาย

Microsoft Access

ขนตอนการออกแบบฐานขอมล

• วเคราะหตวงาน พจารณาวาตองการเกบขอมลใดในฐานขอมล – สอบถามจากผใชงาน

• ขอมลทจะจดเกบ • ตองการรายงาน / แบบฟอรมอยางไร ขอมลทใหแสดงมอะไรบาง

– ดแบบฟอรม / รายงานทใชงานในขณะนน

ขนตอนการออกแบบฐานขอมล

• จดขอมลใหเปนหมวดหม / กลม – พจารณาจากลกษณะของขอมล – พจารณาจากความสมพนธของขอมล

• พจารณาขอมลแตละกลมมาประกอบดวยขอมลใดบาง (โดยละเอยด) – ขอมลนกศกษา : รหสประจ าตว, ค าน าหนา, ชอ, นามสกล, เพศ, สาขาวชา เปนตน

ขนตอนการออกแบบฐานขอมล

• แปลงขอมลแตละตวใหเปนชอฟลด (Field Name) – ชอฟลดควรเปนภาษาองกฤษ – ความยาวไมควรเกน 64 ตวอกษร

• ก าหนดชนดของขอมล (Data Type) ทจะจดเกบ • พจารณาเลอกฟลดทเหมาะสมเปนคยหลก (PK) • ก าหนดความสมพนธ (Relationship) ระหวางตาราง

ชนดของขอมล (Data Type) ชนด ขนาด ความหมาย

Text สงสด 255 ตวอกษร ตวอกษร ตวเลข หรอเครองหมายตางๆ ทไมไดใชในการค านวณ

Memo สงสด 65,635 ตวอกษร ตวหนงสอ หรอตวเลขทเปนค าอธบาย หรอบกทกทมความยาวมากๆ

Number 1 – 8 ไบท

ขอมลตวเลขทงจ านวนเตม หรอทศนยม ทตองใชในการค านวณ

ชนด ขนาด ความหมาย

Date/Time 8 ไบท วนทและเวลาซงมรปแบบการแสดงผลหลายแบบ และสามารถก าหนดแบบของการแสดงผลเองได

Currency 8 ไบท เกบขอมลทเปนจ านวนเงน เพอปองกนเรองการปดเศษทศนยม

Auto Number 4 Byte ก าหนดตวเลขทเรยงล าดบตอเนองกนโดยอตโนมต โดยโปรแกรม

ชนดของขอมล (Data Type)

ชนดของขอมล (Data Type) ชนด ขนาด ความหมาย

Yes/No 1 บท เกบขอมลในรปทเปนได 2 อยาง เชน จรง/เทจ ชาย/หญง ถก/ผด

OLE Object 1 GB เกบขอมลทถกสรางโดยโปรแกรมอน เชน รปภาพ เสยง หรอไฟลขอมล เปนตน

Hyperlink สงสด 2,048 ตวอกษร

จด Link ตางๆ

Lookup Wizard 4 ไบท ขอมลทเลอกจากตารางอนๆ ทสมพนธกน

ตวอยางการออกแบบฐานขอมล • ตองการสรางฐานขอมลนกศกษาสาขาวชาคอมพวเตอร

ธรกจ • ขอมลทจะเกบลงฐานขอมล ประกอบดวย

– รหสนกศกษา – ชอ-นามสกล – หลกสตร – เพศ – E-Mail

– ทอย – หมายเลขโทรศพท – วนเดอนปเกด – อาจารยทปรกษา

ตวอยางการออกแบบฐานขอมล

• แปลงขอมลแตละตวใหเปนชอฟลด (Field Name) – รหสนกศกษา StuID – ชอ-นามสกล StuName – หลกสตร StuMajor – เพศ StuSex – E-mail StuMail

ตวอยางการออกแบบฐานขอมล

• แปลงขอมลแตละตวใหเปนชอฟลด (Field Name) – ทอย StuAddr – หมายเลขโทรศพท StuTel – วนเดอนปเกด StuBirth – อาจารยทปรกษา StuAdvisor

ตวอยางการออกแบบฐานขอมล

• ก าหนดชนดของขอมล (Data Type) ทจะจดเกบ – รหสนกศกษา StuID Text / 8 ตวอกษร – ชอ-นามสกล StuName Text / 30 ตวอกษร – หลกสตร StuMajor Text / 20 ตวอกษร

– เพศ StuSex Text / 5 ตวอกษร

– E-Mail StuMail Text / 20 ตวอกษร

ตวอยางการออกแบบฐานขอมล

• ก าหนดชนดของขอมล (Data Type) ทจะจดเกบ – ทอย StuAddr Text / 20 ตวอกษร – หมายเลขโทรศพท StuTel Text / 9 ตวอกษร – วนเดอนปเกด StuBirthday Date / 8 ตวอกษร

– อาจารยทปรกษา StuAdvisor Text / 30 ตวอกษร

ตวอยางการออกแบบฐานขอมล

• เมอก าหนดประเภทและขนาดของขอมลแลว พบวา – คณะวทยาการจดการ ม 3 สาขาวชา – อาจารยทปรกษาของนกศกษาสาขาวชาคอมพวเตอรธรกจมนกศกษาในการดแลมากกวา 1 คน

ตวอยางการออกแบบฐานขอมล

• ดงนนฐานขอมลนกศกษาประกอบดวยตาราง – ตาราง Student

• เกบขอมลนกศกษา

– ตาราง Major • เกบขอมลสาขาวชา

– ตาราง Advisor • เกบขอมลอาจารยทปรกษา

ตวอยางการออกแบบฐานขอมล • ตาราง Student

– รหสนกศกษา StuID Text / 8 ตวอกษร – ชอ-นามสกล StuName Text / 30 ตวอกษร – หอ-หอง StuRoom Text / 7 ตวอกษร – หลกสตร MajID Text / 2 ตวอกษร – เพศ StuSex Text / 5 ตวอกษร – ทอย StuAddr Text / 20 ตวอกษร – E-mail StuMail Text / 20 ตวอกษร – หมายเลขโทรศพท StuTel Text / 9 ตวอกษร – วนเดอนปเกด StuBirthday Date / 8 ตวอกษร – อาจารยทปรกษา AdvID Text / 2 ตวอกษร

ตวอยางการออกแบบฐานขอมล • ตาราง Major

– รหสสาขาวชา MajID Text / 2 ตวอกษร – ชอหลสาขาวชา MajName Text / 30 ตวอกษร

• ตาราง Advisor

– รหสอาจารยทปรกษา AdvID Text / 2 ตวอกษร – ชออาจารยทปรกษา AdvName Text / 30 ตวอกษร

ตวอยางการออกแบบฐานขอมล

• พจารณาเลอกฟลดทเหมาะสมเปนคยหลก (PK) – ตาราง Student ก าหนดให StuID เปน PK – ตาราง Major ก าหนดให MajID เปน PK – ตาราง Advisor ก าหนดให AdvID เปน PK

ตวอยางการออกแบบฐานขอมล

• ก าหนดความสมพนธ (Relationship) ระหวางตาราง – ฟลด MajID ตาราง Major กบฟลด MajID ตาราง

Student • ความสมพนธแบบ 1 : M

– ฟลด AdvID ตาราง Advisor กบฟลด AdvID ตาราง Student • ความสมพนธแบบ 1 : M

• คลกเลอกเมน Tools • เลอกค าสง

Relationships

การก าหนดความสมพนธระหวางตาราง

การก าหนดความสมพนธระหวางตาราง

• ปรากฏหนาตาง Show Table

การก าหนดความสมพนธระหวางตาราง

• คลกเลอกชอตารางทตองการ • คลกปม Add

การก าหนดความสมพนธระหวางตาราง

• ปรากฏหนาตาง Relationship

การก าหนดความสมพนธระหวางตาราง • การเชอมความสมพนธระหวางตาราง

– คลกเมาสทฟลด MajID ของตาราง Major – คลกเมาสคางไวแลวลากมายงฟลด MajID ของตาราง

Student – ปลอยเมาส

การก าหนดความสมพนธระหวางตาราง

• ปรากฏหนาตาง Edit Relationship

Enforce Referential Integrity

• การตรวจสอบความถกตองของความสมพนธ – ปรากฏขอความเตอนเมอมการปอนขอมลทผดพลาดหรอไมสอดคลองกนระหวางตารางทเชอมความสมพนธ

• ม 2 ประเภทคอ – Cascade Update Related Fields – Cascade Delete Related Records

Cascade Update Related Fields • กรณทตารางหลกเกบฟลด ID ทเปนคยหลก ( PK) และ

ตารางสมพนธเกบ ID เปนคยนอก ( FK) – MajID ใน Major เปน PK – MajID ใน Student เปน FK

• หากผใชแกไขขอมลในฟลด ID ในตารางหลก จะสงผลใหคา ID ในตารางสมพนธไมสามารถอางองขอมลในตารางหลกได

• เพราะโปรแกรม MS-Access ไมยอมใหแกไขขอมลใน ID ของตารางหลก

• ดงนนถาเลอกตวเลอก Cascade Update Related Fields แลว หากแกไขขอมลในฟลด ID ของตารางหลก คา ID ของตารางสมพนธกจะเปลยนใหเหมอนกนโดยอตโนมต

Cascade Update Related Fields

Cascade Delete Related Records

• มลกษณะการท างานคลายคลงกบ Cascade Update Related Fields

• เมอลบระเบยบ (Record) ในตารางหลก ระเบยนในตารางความสมพนธทมความสมพนธกนดวย PK และ FK จะถกลบไปพรอมกน

การก าหนดความสมพนธระหวางตาราง

• คลกเลอก Enforce Referential Integrity • คลกปม Create

การก าหนดความสมพนธระหวางตาราง

• ปรากฏหนาตาง Relationship ทแสดงการเชอมความสมพนธระหวางตาราง

ค าถามทายบท

• 1. โครงสรางขอมลเชงสมพนธประกอบดวยอะไรบาง จงอธบาย • 2. คณสมบตในการจดเกบขอมลของรเลชนมอะไรบาง • 3. รเลชนประกอบดวยคยประเภทตางๆ อะไรบาง จงอธบายพรอม

ยกตวอยางประกอบประเภทคยดงกลาว • 4. Null หมายถงอะไรใน Relational Database • 5. เหตใดจงตองมการน า Integrity rule มาใชในฐานขอมล • 6. ความสมพนธระหวางรเลชนมกประเภท อะไรบาง จงยกตวอยาง

ประกอบ (หามยกตวอยางซ ากบสไลดประกอบการเรยน)

Recommended