Download - 2. ใบความรู้ที่ 5
• •
อาจารย์� คอมพิวเตอร�
รหั�สวิ�ชา ง 32202 ช��อวิ�ชา การสร�างฐานข้�อมู�ลเบื้��องต้�น ระดั�บื้ช��นมู�ธยมูศึ�กษาปี"ที่$� 5
หัน%วิยการเร$ยนร��ที่$� 5 เร��อง การสร�างควิามูส�มูพั�นธ(ระหัวิ%างต้าราง จำ*านวิน 4 คาบื้เร$ยน
--------------------------------------------------------------------------------------------------------------------------------
ในฐานข้�อม�ลเชิงสั�มพิ�นธ์� (Relational Database) ม�กจะทำ�างานก�บข้�อม�ลหลาย์ๆ ตาราง เพิ"#อข้จ�ดปั&ญหาความซ้ำ�)าซ้ำ�อนข้องข้�อม�ล ในการเชิ"#อมความสั�มพิ�นธ์�ระหว*างตาราง
1. ปีระเภที่ข้องควิามูส�มูพั�นธ(ระหัวิ%างต้ารางในฐานข้�อมู�ล แบ*งออกเปั,น 3 ปัระเภทำ ได�แก*
1.1 ควิามูส�มูพั�นธ(แบื้บื้หัน��งต้%อหัน��ง (One-to-One Relationship)การสัร�างความสั�มพิ�นธ์�ระหว*างตารางในฐานข้�อม�ลแบบหน/#งต*อหน/#ง
หมาย์ถึ/ง ม1ฟิ3ลด�ข้�อม�ล 1 ฟิ3ลด�ทำ1#จ�บค�*ก�น ต้�วิอย%างเช%น อาจำารย(ก�บื้คอมูพั�วิเต้อร( หากก�าหนดว*า อาจารย์� 1
คน จะม1คอมพิวเตอร� 1 เคร"#อง และเคร"#องคอมพิวเตอร� 1 เคร"#อง จะต�องเปั,นข้องอาจารย์�คนเด1ย์วเทำ*าน�)นต้�วิอย%างที่$� 1
ควิามูส�มูพั�นธ(แบื้บื้หัน��งต้%อหัน��ง
ต้�วิอย%างที่$� 2
ใบื้ควิามูร��ที่$� 5
สัถึาบ�นการศึ/กษาแห*งหน/#ง ก�าหนดว*า อาจารย์�แต*ละคนจะม1น�กศึ/กษาในความด�แลข้องตนได�เพิ1ย์ง 1 คน ในข้ณะทำ1#น�กศึ/กษาแต*ละคนก7จะม1อาจารย์�ทำ1#ปัร/กษาโครงงานได�เพิ1ย์งคนเด1ย์ว จ/งสัามารถึแสัดงตารางทำ1#ใชิ�เก7บข้�อม�ล ได�ด�งน1)
อาจำารย( น�กศึ�กษารหั�สอาจำารย(ที่$�
ปีร�กษาช��ออาจำารย(ที่$�
ปีร�กษารหั�ส
น�กศึ�กษาช��อน�กศึ�กษา
60 นาย์ธ์น� อนจ�นทำร� 1006 นาย์ธ์าน1 ศึร1สั9ดใจ
01 น.สั.อาร1ย์� ฤทำ�ย์ชิ"#น 4113 น.สั.สั9ดา ชิ�ย์อน�นต�
11 น.สั.น9ชินาฎ พิาสั9ข้ 3102 น.สั.มาล1 ตะว�นแดง
80 นาย์เฉลมชิ�ย์ ข้ว�ญเม"อง
6214 นาย์คมศึร สัว*างใจ
จากตารางข้�างต�น พิจารณาแล�วจะพิบว*าในตารางด�งกล*าวม1ข้�อม�ล 2
ชินดรวมก�นอย์�* ค"อ ข้�อม�ลข้องอาจารย์�ทำ1#ปัร/กษา และข้�อม�ลข้องน�กศึ/กษา จ/งอาจทำ�าให�เกดปั&ญหาการเล"อกแอทำทำรบวต�ทำ1#จะเปั,นค1ย์�หล�ก เพิราะทำ�)งรห�สัอาจารย์�ทำ1#ปัร/กษาและรห�สัน�กศึ/กษา ต*างก7สัามารถึใชิ�เปั,นค1ย์�หล�กได�เชิ*นก�น ด�งน�)น หากเล"อกรห�สัอาจารย์�ทำ1#ปัร/กษาเปั,นค1ย์�หล�กแล�ว รห�สัน�กศึ/กษาก7จะกลาย์เปั,นค$ย(ค�%แข้%ง (Candidate Key) หร"อ ค$ย(รอง (Alternate
Key) ไปัทำ�นทำ1ด�งน�)น หากม1การแย์กเก7บข้�อม�ลแต*ละเอนทำต1ไว�คนละตาราง จะได�ด�งน1)
อาจำารย(ที่$�ปีร�กษารหั�สอาจำารย( ช��ออาจำารย( รหั�ส
น�กศึ�กษา60 นาย์ธ์น� อนจ�นทำร� 1006
01 น.สั.อาร1ย์� ฤทำ�ย์ชิ"#น 4113
11 น.สั.น9ชินาฎ พิาสั9ข้ 3102
80 นาย์เฉลมชิ�ย์ ข้ว�ญเม"อง 6214
น�กศึ�กษา
อาจารย์� วชิา•
•
รหั�สน�กศึ�กษา
ช��อน�กศึ�กษา รหั�สอาจำารย(
1006 นาย์ธ์าน1 ศึร1สั9ดใจ 60
4113 น.สั.สั9ดา ชิ�ย์อน�นต� 01
3102 น.สั.มาล1 ตะว�นแดง 11
6214 นาย์คมศึร สัว*างใจ 80
จากตารางทำ�)งสัองข้�างต�น ตารางอาจารย์�ทำ1#ปัร/กษาจะใชิ�รห�สัอาจารย์�ทำ1#ปัร/กษาเปั,นค1ย์�หล�ก สั*วนตารางน�กศึ/กษา ใชิ�รห�สัน�กศึ/กษาเปั,นค1ย์�หล�ก ความสั�มพิ�นธ์�ระหว*างเอนทำต1ทำ�)งสัองจ/งก�าหนดใชิ� ค$ย(นอก (Foreign Key)
ทำ�าให�ตารางอาจารย์�ทำ1#ปัร/กษา ม1รห�สัน�กศึ/กษาเปั,นค1ย์�นอก เพิ"#ออ�างองถึ/งข้�อม�ลในตารางน�กศึ/กษา สั*วนในตารางน�กศึ/กษาจะม1รห�สัอาจารย์�ทำ1#ปัร/กษาเปั,นค1ย์�นอก เพิ"#ออ�างองถึ/งข้�อม�ลในตารางอาจารย์�ทำ1#ปัร/กษา และค1ย์�นอกทำ1#ก�าหนดก7จะปัรากฏอย์�*ในแต*ละตาราง เพิ1ย์งคร�)งเด1ย์ว เน"#องจากเปั,นความสั�มพิ�นธ์�แบบหน/#งต*อหน/#ง น�#นเอง
1.2 ควิามูส�มูพั�นธ(แบื้บื้หัน��งต้%อกล.%มู (One-to-Many Relationship)
การสัร�างความสั�มพิ�นธ์�ระหว*างตารางฐานข้�อม�ลแบบหน/#งต*อกล9*ม หมาย์ถึ/ง ม1ฟิ3ลด� ข้�อม�ล 1 ฟิ3ลด�ทำ1#จ�บค�*ก�บฟิ3ลด�ข้�อม�ลหลาย์ฟิ3ลด�ในตารางอ"#น แต*ฟิ3ลด�ในตารางน�)นจ�บค�*ได�เพิ1ย์งแค*ฟิ3ลด�เด1ย์ว
ต้�วิอย%างเช%น อาจำารย(ก�บื้วิ�ชา หากก�าหนดว*า วชิา 1 วชิา จะม1อาจารย์�สัอนได�เพิ1ย์ง 1 คนเทำ*าน�)น แต*อาจารย์� 1 คน สัามารถึสัอนได�หลาย์วชิา
ต้�วิอย%างที่$� 1
ควิามูส�มูพั�นธ(แบื้บื้หัน��งต้%อกล.%มูต้�วิอย%างที่$� 2
ตารางน�กศึ/กษาและตารางอาจารย์�ทำ1#ปัร/กษา โดย์ในตารางน�กศึ/กษาจะเพิ#มสัดมภ�อ1ก 1 สัดมภ� เพิ"#อเก7บค*ารห�สัอาจารย์�ทำ1#ปัร/กษาทำ1#ด�แลตนอย์�* และค*าข้องรห�สัอาจารย์�ทำ1#ปัร/กษาน1) ก7จะเปั,นค1ย์�หล�กในตารางอาจารย์�ทำ1#ปัร/กษาด�วย์ ด�งแสัดงในตารางต*อไปัน1)
น�กศึ�กษา อาจำารย(ที่$�ปีร�กษา
จำากต้ารางข้�างต้�น ข้�อม�ลน�กศึ/กษาแต*ละคนจะอย์�*ในแต*ละแถึวข้องตารางน�กศึ/กษา และค*าข้องรห�สัอาจารย์�ทำ1#ปัร/กษาในแต*ละแถึวข้องตารางน�กศึ/กษาจะม1เพิ1ย์งค*าเด1ย์ว ซ้ำ/#งเปั,นความสั�มพิ�นธ์�ว*า น�กศึ/กษาแต*ละคนจะม1อาจารย์�ทำ1#ปัร/กษาด�แลเพิ1ย์งคนเด1ย์ว สั*วนตารางอาจารย์�ทำ1#ปัร/กษาจะไม*ม1ข้�อม�ลข้องน�กศึ/กษาเก7บอย์�*เลย์ ด�งน�)น ถึ�าต�องการทำราบว*าอาจารย์�ทำ1#ปัร/กษาแต*ละคนม1น�กศึ/กษาในความด�แลเปั,นใครบ�าง จะต�องไล*ด�รห�สัอาจารย์�ทำ1#ปัร/กษาคนน�)นในตารางน�กศึ/กษา ซ้ำ/#งอาจจะม1มากกว*าหน/#งแถึว เปั,นการแสัดงว*า อาจารย์�ทำ1#ปัร/กษาแต*ละคนม1น�กศึ/กษาในความด�แลได�หลาย์คน ต�วอย์*างเชิ*น อาจารย์�ทำ1#ปัร/กษาทำ1#ชิ"#อ อ.ธ์น� ม1น�กศึ/กษาในความด�แล 3 คน ค"อ นาย์ธ์าน1 น.สั.อ�จฉรา และน.สั.สัมใจ
1.3 ควิามูส�มูพั�นธ(แบื้บื้กล.%มูต้%อกล.%มู (Many-to-Many Relationship)
การสัร�างความสั�มพิ�นธ์�ระหว*างตารางฐานข้�อม�ลแบบกล9*มต*อกล9*ม หมาย์ถึ/ง ม1ฟิ3ลด�ข้�อม�ลหลาย์ฟิ3ลด�ทำ1#จ�บค�*ก�นระหว*างตาราง
รหั�สน�กศึ�กษา
ช��อน�กศึ�กษา
รหั�สอาจำารย(ที่$�ปีร�กษา
1006 นาย์ธ์าน1 60
4113 น.สั.สั9ดา 01
3102 น.สั.มาล1 11
6214 นาย์คมศึร 80
8104 นาย์อาว9ธ์ 01
4412 น 60
รหั�สอาจำารย(ที่$�ปีร�กษา
ช��ออาจำารย(
60 อ.ธ์น�01 อ.อาร1ย์�11 อ.น9ชินาฎ80 อ.เฉลม
วชิาน�กเร1ย์น
ต้�วิอย%างเช%น น�กเร$ยนก�บื้วิ�ชา หากก�าหนดว*า น�กเร1ย์นแต*ละคนสัามารถึเร1ย์นได�หลาย์วชิา และแต*ละวชิาก7สัามารถึม1น�กเร1ย์นเร1ย์นได�หลาย์คน
ต้�วิอย%างที่$� 1
ควิามูส�มูพั�นธ(แบื้บื้กล.%มูต้%อกล.%มู
ต้�วิอย%างที่$� 2 ย์กต�วอย์*าง กรณ1การลงทำะเบ1ย์นเร1ย์นในสัถึาบ�นการศึ/กษาแห*งหน/#ง
ก�าหนดว*า การลงทำะเบ1ย์นเร1ย์นแต*ละคร�)งน�กศึ/กษาสัามารถึลงทำะเบ1ย์นเร1ย์นได�มากกว*า 1 วชิา ซ้ำ/#งวชิาแต*ละวชิาก7อาจปัรากฏอย์�*ในใบลงทำะเบ1ย์นข้องน�กศึ/กษามากกว*า 1 คน ด�งน�)น ควิามูส�มูพั�นธ(ระหัวิ%างการลงที่ะเบื้$ยนและรายวิ�ชา จำะเปี/นแบื้บื้กล.%มูต้%อกล.%มู กรณ1เชิ*นน1)จะต�องสัร�างตารางข้/)นใหม* ใชิ�ชิ"#อว*า ตารางราย์การลงทำะเบ1ย์น เพิ"#อให�ตารางใหม*น1)เปั,นตารางทำ1#จะสัร�างความสั�มพิ�นธ์�ข้องตารางราย์การลงทำะเบ1ย์น ก�บตารางราย์วชิา ซ้ำ/#งในตารางราย์การลงทำะเบ1ย์นจะปัระกอบด�วย์แอทำทำรบวต�หมาย์เลข้ใบลงทำะเบ1ย์น และรห�สัวชิาทำ1#ลงทำะเบ1ย์น ด�งแสัดงในตารางต*อไปัน1) การลงที่ะเบื้$ยน รายวิ�ชา
หัมูายเลข้ใบื้ลงที่ะเบื้$ยน
วิ�นที่$�ลงที่ะเบื้$ยน
รหั�สน�กศึ�กษ
า2101 01/05/
464113
2102 09/05/46
3102
2103 10/05/ 1006
รหั�สวิ�ชา
ช��อวิ�ชาจำ*านวินหัน%วิยก�
ต้410-101
ภาษาไทำย์ - 1
2
410-102
ภาษาไทำย์ - 2
2
510-101
ภาษาอ�งกฤษ -
2
รายการลงที่ะเบื้$ยนหัมูายเลข้ใบื้ลง
ที่ะเบื้$ยนรหั�สวิ�ชา
2101 410-1022101 630-1012101 630-1022102 510-1022102 630-1012103 410-1022103 510-1012103 630-1022104 410-1012104 510-101
2. วิ�ธ$การสร�างควิามูส�มูพั�นธ(ระหัวิ%างต้ารางในฐานข้�อมู�ล
� ตารางทำ1#ม1เข้ตข้�อม�ลสั�มพิ�นธ์�ก�นหน/#งเข้ตข้�อม�ล ซ้ำ/#งก*อนสัร�างความสั�มพิ�นธ์�ต�องปั3ด ตารางทำ�)งหมดลงเสั1ย์ก*อน แล�วไปัทำ1#แทำ7บเคร"#องม"อฐานข้�อม�ล คลกปั9>มค�าสั�#งความสั�มพิ�นธ์� จะเปั3ดแทำ7บบรบทำเคร"#องม"อการทำ�าความสั�มพิ�นธ์� ทำ1#แทำ7บออกแบบให�คลกแสัดงตารางทำ1#ต�องการสัร�าง ความสั�มพิ�นธ์�ออกมา แล�วด�บเบลคลกเพิ#มชิ"#อตารางทำ1#ต�องการสัร�างความสั�มพิ�นธ์� จากน�)นจ/งลากชิ"#อเข้ตข้�อม�ลทำ1#เหม"อนก�นข้องทำ�)งสัองตาราง ให�ตรงก�น เม"#อแผ่*นงานแก�ไข้ความสั�มพิ�นธ์�ปัรากฏข้/)นมาให�คลกเล"อก บ�งค�บให�ม1 Referential Integrity ซ้ำ/#งหมาย์ความว*า ระบบข้องกฎต*าง ๆ ทำ1# Access 2007 ใชิ�เพิ"#อให� ม�#นใจได�ว*าความสั�มพิ�นธ์�ระหว*างระเบ1ย์นในตารางทำ1#สั�มพิ�นธ์�ก�นน�)นถึ�กต�อง และจะต�องไม*ลบหร"อ เปัล1#ย์นแปัลงข้�อม�ลทำ1#ม1ความสั�มพิ�นธ์�ก�นโดย์บ�งเอญ
จำากต้าราง หากต�องการทำราบว*าใบลงทำะเบ1ย์นหมาย์เลข้ 2102 ม1การลงทำะเบ1ย์นเร1ย์นวชิาใดบ�าง เราจะเร#มด�ข้�อม�ลในตารางราย์การลงทำะเบ1ย์น โดย์ด�แถึวทำ1#ม1หมาย์เลข้ใบลงทำะเบ1ย์นเปั,นหมาย์เลข้ 2102 แล�วใชิ�รห�สัวชิาทำ1#หาได�จากตารางน1) ไปัด�ข้�อม�ลข้องวชิาน�)นในตาราง
วิ�ธ$การสร�างควิามูส�มูพั�นธ(ระหัวิ%างต้าราง
ค�าสั�#งแสัดงตารางในแทำ7บออกแบบข้องแทำ7บเคร"#องม"อการทำ�าความสั�มพิ�นธ์�
เร#มต�นสัร�างความสั�มพิ�นธ์�จากการคลกปั9>มค�าสั�#งความสั�มพิ�นธ์�
ค�าสั�#งเพิ#มแสัดงตารางข้�อม�ลน�กศึ/กษา
เม"#อลากชิ"#อเข้ตข้�อม�ล studentID
ข้�ามตารางแล�ว ให�คลกเล"อกบ�งค�บให�
เส�นควิามูส�มูพั�นธ(เปี/น
ตารางทำ1#ม1เข้ตข้�อม�ลสั�มพิ�นธ์�ก�นหน/#งเข้ตข้�อม�ล ซ้ำ/#งก*อนสัร�างความสั�มพิ�นธ์�ต�องปั3ด ตารางทำ�)งหมดลงเสั1ย์ก*อน แล�วไปัทำ1#แทำ7บเคร"#องม"อฐานข้�อม�ล คลกปั9>มค�าสั�#งความสั�มพิ�นธ์� จะเปั3ด แทำ7บบรบทำเคร"#องม"อการทำ�าความสั�มพิ�นธ์� ทำ1#แทำ7บออกแบบให�คลกแสัดงตารางทำ1#ต�องการสัร�าง ความสั�มพิ�นธ์�ออกมา แล�วด�บเบลคลกเพิ#มชิ"#อตารางทำ1#ต�องการสัร�างความสั�มพิ�นธ์� จากน�)นจ/งลากชิ"#อ เข้ตข้�อม�ลทำ1#ตรงก�นข้องทำ�)งสัองตาราง เม"#อแผ่*นงานแก�ไข้ความสั�มพิ�นธ์�ปัรากฏข้/)นมาให�คลกเล"อก บ�งค�บให�ม1 Referential Integrity
เม"#อลากชิ"#อเข้ตข้�อม�ล divisionID ข้�ามตารางแล�วให�คลกเล"อกบ�งค�บให�ม1 Referential Integrity
ค�าสั�#งแสัดงตาราง
วิ�ธ$การสร�างควิามูส�มูพั�นธ(ระหัวิ%างต้าราง แบื้บื้หัน��งต้%อ
เสั�นความสั�มพิ�นธ์�เปั,นแบบหน/#งต*อหน/#ง แบบหน/#งต*อกล9*ม