﻿1
00:00:02,673 --> 00:00:06,673
เดี๋ยวเริ่มเลยก็ได้ค่ะ น่าจะประมาณนี้

2
00:01:54,412 --> 00:01:54,727
นะคะ

3
00:01:54,727 --> 00:01:57,117
วันนี้จะเป็นบทที่ 5

4
00:01:57,117 --> 00:01:58,978
เกี่ยวกับ

5
00:01:58,978 --> 00:02:00,328
กระบวนการ

6
00:02:00,328 --> 00:02:01,031
การปรับบรรทัดฐาน

7
00:02:01,031 --> 00:02:03,367
ภาษาอังกฤษก็จะเป็นนกอะ Season

8
00:02:03,367 --> 00:02:07,367
มันก็จะมีความหมายแล้วก็จุดประสงค์ของการทำ

9
00:02:15,620 --> 00:02:15,976
การปรับมาตรฐานนะคะ แล้วก็จะเกี่ยวกับ

10
00:02:15,976 --> 00:02:19,976
ฟังก์ชันการขึ้นต่อการและกระบวนการในการทำ ด้วย

11
00:02:20,938 --> 00:02:22,373
นะคะ

12
00:02:22,373 --> 00:02:25,727
มี 3 ข้อวันนี้

13
00:02:25,727 --> 00:02:29,727
โดยการบฐานนะคะ หรือว่านอนเมื่อไหร่แฟชั่นเนี่ยมันจะเป็นทฤษฎีที่

14
00:02:35,956 --> 00:02:38,275
คนที่จะต้องออกแบบฐานข้อมูลเขาจะต้องมาแปลงข้อมูล

15
00:02:38,275 --> 00:02:40,507
ข้อมูลอาจจะเป็นข้อมูลที่ซับซ้อน

16
00:02:40,507 --> 00:02:42,465
นะคะ ให้มันง่าย

17
00:02:42,465 --> 00:02:46,465
เข้าใจก็ง่าย

18
00:02:49,310 --> 00:02:50,092
ใช้งานก็ง่ายแล้วก็ต้องเป็นระบบที่หลังจากออกแบบแล้วนำไปใช้งานจริงต้องเกิดปัญหาน้อยที่สุด

19
00:02:50,092 --> 00:02:54,092
โดยกระบวนการทำงานนะคะ ในการปรับบรรทัดฐานเนี่ยมันจะมี 3 ระดับ

20
00:02:57,752 --> 00:03:01,752
นะคะ  จริง ๆ เราก็จะเรียกสั้น ๆ ว่

21
00:03:02,534 --> 00:03:03,148
า ระดับแรกเรียกว่า 1nf

22
00:03:03,148 --> 00:03:07,148
2nf 3nf

23
00:03:07,190 --> 00:03:10,132
ในระดับปริญญาตรีนี่

24
00:03:10,132 --> 00:03:13,529
ถึง 3ms ได้

25
00:03:13,529 --> 00:03:14,274
ก็ถือว่าเก่งมากแล้ว

26
00:03:14,274 --> 00:03:14,997
นะคะ

27
00:03:14,997 --> 00:03:18,997
ถ้าเป็นระดับที่สูงขึ้นไปอีกก็จะถึงได้ถึง 5 nf เลย

28
00:03:19,872 --> 00:03:23,872
นะคะ

29
00:03:24,677 --> 00:03:28,677
อันนี้เป็น

30
00:03:35,916 --> 00:03:36,529
แผนภาพกระบวนการทำงานนะคะ  ก่อนที่เราจะมาทำกระบวนการปรับบรรทัดฐานได้นี่ มันก็ต้องวิเคราะห์ความต้องการของผู้ใช้งานก่อน ว่าเขาต้อง

31
00:03:36,529 --> 00:03:39,810
การระบุ

32
00:03:39,810 --> 00:03:42,905
การฐานข้อมูลแบบไหน มีความต้องการใช้

33
00:03:42,905 --> 00:03:43,848
ตารางกี่ตารางในฐานข้อมูลนะคะ

34
00:03:43,848 --> 00:03:44,948
หลังจากนั้น

35
00:03:44,948 --> 00:03:46,377
วาดรูป

36
00:03:46,377 --> 00:03:50,067
แผนที่เรียนอาทิตย์ที่แล้ว

37
00:03:50,067 --> 00:03:54,067
นะคะ ว่าเป็นแผนภาพเพื่อให้เข้าใจว่า

38
00:03:54,334 --> 00:03:58,005
สิ่งที่เรากำลังจะออกแบบ หรือสิ่งที่เรากำลังจะทำฐานข้อมูล

39
00:03:58,005 --> 00:04:02,005
มันตรงตามความต้องการหรือเปล่านะคะ

40
00:04:03,617 --> 00:04:07,236
แต่รูปแบบของรูปที่เราวันอาทิตย์ที่แล้วนี่ มันจะยังเป็นรูปแบบที่

41
00:04:07,236 --> 00:04:07,939
ยังไม่เป็นบรรทัดฐาน หรือว่ายังไม่มีการจัดระเบียบความคิด

42
00:04:07,939 --> 00:04:11,939
ข้อมูลที่ซ้ำซ้อนกันออกไป หรืออาจจะมีคีย์หลักที่มัน

43
00:04:17,959 --> 00:04:18,566
นะคะ เราก็เลยจะต้องเอาข้อมูลจากที่เราว่าอาทิตย์ที่แล้วนี่

44
00:04:18,566 --> 00:04:22,566
เข้าสู่กระบวนการปรับพื้นฐานก่อน

45
00:04:22,725 --> 00:04:24,977
ซึ่งอย่างที่บอก

46
00:04:24,977 --> 00:04:26,059
เราทำแค่ถึง 3NF เนี่ก็

47
00:04:26,059 --> 00:04:27,205
เก่งมากแล้ว

48
00:04:27,205 --> 00:04:31,205
แอย่างน้อย 2-3 นะคะ

49
00:04:35,463 --> 00:04:36,625
ไอ้บอยคอร์ดกับสีนี่ไม่ทำก็ก็ก็รักไว้ได้นะคะ แต่อย่างน้อยต้องถึง

50
00:04:36,625 --> 00:04:40,625
วัตถุประสงค์ของการปรับฐานนะคะ

51
00:04:50,071 --> 00:04:54,071
แน่นอนลดความซ้ำซ้อนของข้อมูล ก็คือถ้าข้อมูลมันซ้ำกันนี่ เราก็ต้องตัดออกไป

52
00:04:56,328 --> 00:04:56,834
โครงสร้างเป็นสิ่งสำคัญมากเท่าไร เนื้อหาแล้วก็พื้นที่ในการเก็บข้อมูลอย่างมันก็จะเยอะ

53
00:04:56,834 --> 00:05:00,215
ก็ทำให้สิ้นเปลือง

54
00:05:00,215 --> 00:05:04,026
ประมาณเหมือนกัน

55
00:05:04,026 --> 00:05:08,026
รวมถึงลดปัญหาความไม่ถูกต้องของข้อมูล

56
00:05:08,901 --> 00:05:11,502
ข้อมูลนี่ นอกจากที่จะไม่เกิดความซ้ำซ้อนกันแล้วเนี่ย

57
00:05:11,502 --> 00:05:15,005
วันจันทร์อาจจะเกิดจากสาเหตุคือ

58
00:05:15,005 --> 00:05:15,158
ถ้าเหมือนที่ตัดกระจกทุกอย่างก็คือถ้าเราเก็บข้อมูลหลาย ๆ ที่

59
00:05:15,158 --> 00:05:19,158
นักศึกษา

60
00:05:22,916 --> 00:05:24,738
เก็บข้อมูลที่คณะด้วยเก็บที่มหาลัยด้วยเก็บที่สาขาด้วยนี่บางทีถ้าวันนึง

61
00:05:24,738 --> 00:05:25,626
คุณอาจจะเปลี่ยนแปลงเบอร์โทรศัพท์

62
00:05:25,626 --> 00:05:28,449
ที่บ้าน

63
00:05:28,449 --> 00:05:29,156
เราก็ต้องไปตามเปลี่ยนทุกที่เลย

64
00:05:29,156 --> 00:05:33,156
นะคะ

65
00:05:36,251 --> 00:05:40,251
ซึ่งเสียเวลาแล้วคราวนี้ก็จะเป็นที่เถียงกันว่าสรุปแล้วเบอร์ไหนถูกเบอร์ไหนผิด

66
00:05:42,939 --> 00:05:44,443
โดยวัตถุประสงค์ของการปรับบรรทัดฐานนี่  ก็คือข้อมูลจะถูกเก็บอยู่อย่างเดียว

67
00:05:44,443 --> 00:05:48,443
นะคะ เก็บไว้ที่เดียว

68
00:05:49,347 --> 00:05:49,846
แต่สามารถเรียกใช้และใช้งานได้หลาย ๆ ที่พร้อมกันได้

69
00:05:49,846 --> 00:05:53,846
แต่ถ้ามันมีการเปลี่ยนแปลงข้อมูลหรือมีการลบหรือการเพิ่มข้อมูล

70
00:05:54,471 --> 00:05:58,471
เพื่อให้ข้อมูลเป็นปัจจุบันที่สุด

71
00:05:58,558 --> 00:05:59,845
เราจะเก็บข้อมูลไว้ที่เดียว

72
00:05:59,845 --> 00:06:03,497
แก้ไขก็ที่เดียว

73
00:06:03,497 --> 00:06:04,773
เพราะฉะนั้น ข้อมูลก็จะเป็นข้อมูลที่ถูกต้อง แล้วก็

74
00:06:04,773 --> 00:06:05,966
ปัจจุบันด้วย

75
00:06:05,966 --> 00:06:09,966
แล้วก็

76
00:06:14,656 --> 00:06:17,744
อย่างที่ใช้ในการเก็บข้อมูลที่เดียวนี่ มันก็จะลดความผิดพลาดที่เกิดจากการ

77
00:06:17,744 --> 00:06:17,948
เปลี่ยนแปลงข้อมูล ปรับปรุงข้อมูลนะคะ เหมือนที่บอกว่าคือ

78
00:06:17,948 --> 00:06:21,948
ถ้าเปลี่ยนเบอร์โทรศัพท์ หรือเปลี่ยนบ้านเลขที่นะคะ ก็เปลี่ยนแปลงที่เดียว เราสามารถเรียกใช้ข้อมูลได้

79
00:06:27,815 --> 00:06:29,428
ทุกที่พร้อมกันถ้าต้องการข้อมูลนะคะ

80
00:06:29,428 --> 00:06:33,428
ความซ้ำซ้อนกันของข้อมูลนี่ มันอาจจะเกิดความผิดพลาดของการปรับปรุงข้อมูลนะคะ

81
00:06:40,808 --> 00:06:41,471
แนวคิดที่สำคัญของการออกแบบฐานข้อมูล

82
00:06:41,471 --> 00:06:45,471
นี่ ก็คือการออกแบบข้อมูลที่ซ้ำซ้อนกันน้อยที่สุด

83
00:06:48,800 --> 00:06:52,280
เพื่อประหยัดเนื้อที่ในการเก็บข้อมูลแล้วก็ลดปัญหาที่จะเกิดขึ้น

84
00:06:52,280 --> 00:06:53,918
ถ้าสมมุติว่าข้อมูลมันซ้ำซ้อนกันมากเกินไป หรือ

85
00:06:53,918 --> 00:06:54,607
ปริมาณข้อมูลมันเยอะเกินไป

86
00:06:54,607 --> 00:06:58,607
นะคะ อย่างเช่นตัวอย่างนะคะ ตารางด้านบน ตารางสีเทาข้างบน

87
00:07:05,690 --> 00:07:09,690
จะเป็นตัวอย่างการออกแบบ

88
00:07:15,274 --> 00:07:17,680
ฐานข้อมูลที่ดี เดี๋ยวจะมาให้ดูว่าทำไมมันถึงดีกว่า ในตารางข้างบนนี่ มันจะมีตารางของพนักงาน แล้วก็ต่างสาขา

89
00:07:17,680 --> 00:07:18,238
จะเห็นได้ว่า

90
00:07:18,238 --> 00:07:19,730
ตาราง

91
00:07:19,730 --> 00:07:23,375
พนักงาน

92
00:07:23,375 --> 00:07:24,350
นี่ จะมีส่วนหนึ่งที่เป็นข้อมูลของรหัสสาขา

93
00:07:24,350 --> 00:07:24,388
ห้อยไม่อยู่

94
00:07:24,388 --> 00:07:28,388
ถามว่าทำไมไม่เอา

95
00:07:30,004 --> 00:07:31,640
ข้อมูลสาขามาไว้ในตารางพนักงานทีเดียวเลยล่ะ

96
00:07:31,640 --> 00:07:33,435
ทำไมต้องแยกออก

97
00:07:33,435 --> 00:07:37,143
ถ้า

98
00:07:37,143 --> 00:07:40,786
ศึกษาดูคนแรกนะคะ

99
00:07:40,786 --> 00:07:44,786
พนักงานคนแรก รหัสสาขา b005

100
00:07:45,480 --> 00:07:46,366
ก็คือสาขา

101
00:07:46,366 --> 00:07:47,941
เชียงใหม่

102
00:07:47,941 --> 00:07:51,941
ถ้าสมมุติว่าพนักงานคนที่ 1 ลาออก

103
00:07:53,284 --> 00:07:57,284
ก็จะมีการลบข้อมูลเกิดขึ้นใช่ไหมคะ

104
00:07:58,214 --> 00:08:02,214
มีการลบข้อมูล

105
00:08:03,555 --> 00:08:06,704
บุคคลนี้

106
00:08:06,704 --> 00:08:08,305
ออก ขีดฆ่าทิ้ง

107
00:08:08,305 --> 00:08:10,779
ขีดฆ่าทิ้ง

108
00:08:10,779 --> 00:08:14,024
สิ่งไหนที่หายไปบ้าง

109
00:08:14,024 --> 00:08:16,911
แน่นอนสาขาเชียงใหม่จะหายไปด้วย

110
00:08:16,911 --> 00:08:20,575
ถ้าสมมุติเราอยู่ด้วยกัน

111
00:08:20,575 --> 00:08:21,683
แต่ถ้าสมมุติพนักงานคนนี้ลาออก สาขาเชียงใหม่ยังอยู่ไหม

112
00:08:21,683 --> 00:08:22,690
ยังอยู่

113
00:08:22,690 --> 00:08:24,941
นะคะ

114
00:08:24,941 --> 00:08:26,351
ซึ่งแตกต่างจากด้านล่าง

115
00:08:26,351 --> 00:08:28,520
ด้านล่าง

116
00:08:28,520 --> 00:08:31,310
เห็นไหมคะว่า

117
00:08:31,310 --> 00:08:32,317
ถ้าสมมุติว่าจะลบทิ้งหมดเลย

118
00:08:32,317 --> 00:08:36,317
กากบาททิ้ง

119
00:08:38,788 --> 00:08:40,572
สาขาเชียงใหม่หายไปด้วย

120
00:08:40,572 --> 00:08:43,442
อันีแบบที่ไม่ดี

121
00:08:43,442 --> 00:08:44,556
เหมือน

122
00:08:44,556 --> 00:08:45,825
คนข้างล่าง

123
00:08:45,825 --> 00:08:46,112
ออก

124
00:08:46,112 --> 00:08:49,545
สาขาพิษณุโลก

125
00:08:49,545 --> 00:08:50,915
ก็หายไปด้วย

126
00:08:50,915 --> 00:08:54,081
แต่ถ้าเป็นตารางด้านบน

127
00:08:54,081 --> 00:08:57,182
นะคะ ถ้าคนนี้ลาออก

128
00:08:57,182 --> 00:08:58,185
สาขายังอยู่ไหม

129
00:08:58,185 --> 00:08:58,880
ยังอยู่เหมือนเดิม

130
00:08:58,880 --> 00:09:02,880
อันนี้คือการออกแบบฐานข้อมูลที่ดี ถ้าข้อมูลตัวไหนที่มันมีผลกระทบต่อกัน เราจะต้องแยกตารางออก

131
00:09:08,427 --> 00:09:12,427
นะคะ ตัวอย่าง

132
00:09:18,804 --> 00:09:20,833
นะคะ ถ้าการออกแบบที่ดีนี่ เราจะลด

133
00:09:20,833 --> 00:09:21,514
ปัญหาความซ้ำซ้อนของข้อมูล

134
00:09:21,514 --> 00:09:22,205
ออกได้

135
00:09:22,205 --> 00:09:26,205
อย่างเช่นตัวนี้ อันนี้เป็นตารางที่ออกแบบที่ไม่ดีนะคะ

136
00:09:27,380 --> 00:09:30,661
เห็นไหมคะ ว่ามันจะมี

137
00:09:30,661 --> 00:09:32,195
รหัสสาขา

138
00:09:32,195 --> 00:09:34,443
แล้วก็ที่อยู่

139
00:09:34,443 --> 00:09:38,093
อยู่ในตารางเดียวกัน

140
00:09:38,093 --> 00:09:40,091
ถ้าสมมุติว่าอาจารย์เพิ่ม

141
00:09:40,091 --> 00:09:41,044
เข้ามาใหม่อีก 1 คน

142
00:09:41,044 --> 00:09:42,979
นะคะ

143
00:09:42,979 --> 00:09:43,820
เป็น

144
00:09:43,820 --> 00:09:47,820
EM10 ตรงนี้ ถ้าต้องการเพิ่มพนักงานสาขา

145
00:09:52,118 --> 00:09:52,230
เชียงใหม่ ก็ต้องมากรอกข้อมูลตรงนี้อีก

146
00:09:52,230 --> 00:09:56,230
เชียงใหม่ณโรงเรียนระโน

147
00:09:56,923 --> 00:09:58,864
แต่ถ้า

148
00:09:58,864 --> 00:10:00,855
การออกแบบฐานข้อมูลที่ดีเนี่ย

149
00:10:00,855 --> 00:10:02,130
เราแค่ใส่รหัสสาขา

150
00:10:02,130 --> 00:10:06,130
ไม่จำเป็นจะต้องพิมพ์ที่อยู่ทุกครั้งก็ได้

151
00:10:06,408 --> 00:10:10,408
เหมือนเวลาคุณไปธนาคารใช่ไหมคะ

152
00:10:13,574 --> 00:10:17,574
คุณก็แค่ยื่นบัตรประชาชน

153
00:10:18,942 --> 00:10:19,188
พนักงานธนาคารก็จะกรอกเลขบัตรประชาชนคุณลงไป

154
00:10:19,188 --> 00:10:23,188
หรืออาจจะเอาชิปการ์ดของคุณนี่ เสียบเข้าไปในเครื่อง ถามว่าตอนนี้เราได้กรอกข้อมูลไหม

155
00:10:26,703 --> 00:10:30,703
ไม่ต้อง ขอแค่มีเลขบัตรประชาชนข้อมูลทุกอย่างที่คุณมี เขาจะดึงออกมาจากระบบให้เลยเราไม่ต้องมาเสียเวลาก่อน

156
00:10:34,975 --> 00:10:38,975
เหมือนเมื่อก่อนนี่ ต้องเขียนใส่กระดาษและเลขบัตรประชาชน รายชื่ออะไรนามสกุลอะไรที่อยู่ที่ไหนเบอร์โทรศัพท์อะไรเดี๋ยวนี้ไม่ต้องเลยขอแค่มีเลขบัตรประชาชนข้อมูลทุกอย่างเราสามารถดึงขึ้นมาได้อยู่แล้ว

157
00:10:50,227 --> 00:10:54,227
อันนี้ก็เช่นเดียวกัน

158
00:10:57,235 --> 00:10:58,611
ถ้าการออกแบบไม่ดี แต่เราต้องกรอกข้อมูลถูกต้องทุกช่องเลยเนี่ย

159
00:10:58,611 --> 00:11:00,548
มันทำให้

160
00:11:00,548 --> 00:11:00,948
อาจจะคนเดียวไม่เดือดร้อนค่ะ

161
00:11:00,948 --> 00:11:04,948
ถ้าเป็นพนักงานใหม่เป็นเหมือนโรงงานน่ะค่ะ ที่รักพันคน

162
00:11:07,949 --> 00:11:11,693
นั่งกรอก

163
00:11:11,693 --> 00:11:15,693
เชียงใหม่เป็นพันครั้งนี่เสียเวลามาก ๆ

164
00:11:16,138 --> 00:11:17,069
อันนี้คือการออกแบบที่ไม่ดี

165
00:11:17,069 --> 00:11:19,016
นะคะ

166
00:11:19,016 --> 00:11:23,016
กลับอีกอย่างนึงถ้าสมมุติว่าเมื่อกี้อาจารย์เพิ่มพนักงานแล้ว

167
00:11:25,602 --> 00:11:29,602
ถ้ามันอยากเพิ่มแค่สาขา

168
00:11:32,900 --> 00:11:33,764
อยากเพิ่มแค่สาขาซึ่งในตารางนี้

169
00:11:33,764 --> 00:11:33,837
กีฬา

170
00:11:33,837 --> 00:11:37,837
จำได้ไหมคะ ที่รัจะเป็นคีย์ที่ขีดเส้นใต้

171
00:11:39,816 --> 00:11:43,816
ซึ่งอาจารย์อยากเพิ่มสาขาสมุทรจะเพิ่มบี

172
00:11:43,906 --> 00:11:47,184
100

173
00:11:47,184 --> 00:11:48,729
สกลนคร

174
00:11:48,729 --> 00:11:52,729
ละครนะคะ

175
00:11:53,029 --> 00:11:53,709
ถามว่าเพิ่มได้ไหม อาจจะเป็นการตั้งสาขาแต่ยังไม่มีพนักงานหรอก

176
00:11:53,709 --> 00:11:57,709
ถ้าจากตารางนี้

177
00:12:00,454 --> 00:12:02,239
เราจะเพิ่มเฉพาะชื่อสาขาไม่ได้

178
00:12:02,239 --> 00:12:06,239
เรายังไม่มีรหัสพนักงานเพราะรหัสพนักงานเป็นคีย์หลัก

179
00:12:07,688 --> 00:12:10,800
ค

180
00:12:10,800 --> 00:12:12,415
ีย์หลักคือคุณสมบัติมันคือเป็นค่าว่างไม่ได้

181
00:12:12,415 --> 00:12:16,415
ก็ทำให้เราเพิ่มสาขาไม่ได้

182
00:12:17,886 --> 00:12:19,338
ไม่มีพนักงาน

183
00:12:19,338 --> 00:12:22,922
อันนี้ก็เป็น

184
00:12:22,922 --> 00:12:25,683
ข้อผิดพลาดในการเพิ่มข้อมูลถ้าเราออกแบบ

185
00:12:25,683 --> 00:12:28,110
ตารางแบบนี้นะคะ นี่

186
00:12:28,110 --> 00:12:31,986
ก็คือกัน

187
00:12:31,986 --> 00:12:33,286
ปัญหาที่เกิดขึ้นจากการออกแบบตารางที่ดี

188
00:12:33,286 --> 00:12:37,286
ก

189
00:12:41,193 --> 00:12:44,266
ับปัญหาต่อมาเป็นปัญหาการลบข้อมูลที่อาจารย์บอก

190
00:12:44,266 --> 00:12:45,602
ถ้าพนักงานคนนี้

191
00:12:45,602 --> 00:12:47,725
ออก

192
00:12:47,725 --> 00:12:50,334
สาขาเชียงใหม่หายไปด้วย

193
00:12:50,334 --> 00:12:54,334
ลบไป

194
00:12:54,860 --> 00:12:55,047
กรณีความผิดพลาดจากการเปลี่ยนแปลง

195
00:12:55,047 --> 00:12:59,047
เหมือน b03 b03 นะคะ

196
00:13:00,551 --> 00:13:01,213
เป็นกรุงเทพฯใช่ไหมคะ

197
00:13:01,213 --> 00:13:05,213
แล้วคราวนี้ข้อมูลมันอยู่ในตารางเดียวกัน

198
00:13:09,242 --> 00:13:13,242
ถ้านักศึกษาจะแก้ สมมุติว่าเราย้ายจากกรุงเทพฯ ไปอยู่นนทบุรี

199
00:13:14,370 --> 00:13:17,760
สมมุติมีพนักงาน 3000 คน

200
00:13:17,760 --> 00:13:18,059
คุณต้องแก้กรุงเทพฯ  3000 ครั้ง

201
00:13:18,059 --> 00:13:21,773
เป็นนนทบุรี

202
00:13:21,773 --> 00:13:25,773
ถ้าพนักงานมีคน 2 คนไม่ใช่ปัญหาค่ะ แต่ถ้าคุณเป็นโรงงานขนาดใหญ่

203
00:13:32,331 --> 00:13:32,949
นั่งแก้ทีละ 3000 คนไม่ใช่เรื่องสนุกแน่ ๆ

204
00:13:32,949 --> 00:13:36,949
นี่มันก็เป็นปัญหานะคะ เพราะฉะนั้น

205
00:13:46,273 --> 00:13:46,778
เราควรแยกตารางพนักงาน กับตารางสาขาออกจากกันนะคะ มีเป็นเหตุผล

206
00:13:46,778 --> 00:13:50,778
นี่คือ

207
00:13:51,011 --> 00:13:55,011
ขนาดข้อมูลขนาดเล็กนะคะ แล้วยังเห็นปัญหาขนาดนี้ถ้าสมมุติว่า

208
00:14:00,269 --> 00:14:03,740
องค์กรขนาดใหญ่ เป็นบริษัทเป็นโรงงาน หรือระดับโรงเรียนมีนักเรียนเป็น 2 3000 คนก็ได้นะคะ

209
00:14:03,740 --> 00:14:04,265
มีปัญหาเยอะมากถ้าสมมุติว่าเราจัดการตารางไม่ดี

210
00:14:04,265 --> 00:14:08,265
จากปัญหาที่เกิดขึ้นเมื่อกี้นะคะ อย่างที่บอกค่ะ เราจะแก้ปัญหาโดยการแยกตารางเป็น 2 ตารางแบบนี้นะคะ

211
00:14:15,510 --> 00:14:19,510
ฟังก์ชันการขึ้นต่อกันนะคะ อันนี้เดี๋ยว

212
00:14:22,839 --> 00:14:26,839
เป็นเกี่ยวกับตารางหนึ่งนะคะ มีผลดีต่ออีตาราง 1 เราจะเรียกว่าเป็นฟังก์ชันการขึ้นต่อกัน

213
00:14:31,958 --> 00:14:32,595
เดี๋ยวดูตัวอย่างเลยละกัน

214
00:14:32,595 --> 00:14:36,595
อย่างเช่นทางนี้นะคะ

215
00:14:39,198 --> 00:14:42,008
ดูจากรหัสพนักงานนะคะ

216
00:14:42,008 --> 00:14:45,398
เขียนได้ว่ารหัสพนักงาน

217
00:14:45,398 --> 00:14:46,359
จะส่งผลกับชื่อ

218
00:14:46,359 --> 00:14:48,388
ตำแหน่ง

219
00:14:48,388 --> 00:14:52,388
สัญลักษณ์ของการขึ้นต่อกันนะคะ อันไหนเป็นตัวหลัก

220
00:14:55,027 --> 00:14:59,027
จะชี้ไปที่ตัวรองนะคะ ตามหัวลูกศรเลย

221
00:15:01,070 --> 00:15:01,799
ดูทิศทางตามหัวลูกศรนะคะ อันไหนเป็นตัวหลัก อันไหนเป็นตัวรอง

222
00:15:01,799 --> 00:15:05,799
นะคะ

223
00:15:06,592 --> 00:15:10,592
อย่างเช่น

224
00:15:12,750 --> 00:15:13,460
ตัวนี้ถามว่าตำแหน่งบัญชี ที่รหัสพนักงานได้ไหมนะคะ ถามว่า

225
00:15:13,460 --> 00:15:17,460
ไม่ได้

226
00:15:18,790 --> 00:15:21,245
เพราะการขึ้นต่อกัน จะต้องเป็นลักษณะหนึ่งต่อหนึ่งเท่านั้น

227
00:15:21,245 --> 00:15:25,245
เป็นหนึ่งต่อกลุ่มไม่ได้

228
00:15:32,047 --> 00:15:36,047
ชนิดของการขึ้นต่อกันนะคะ จะมีอยู่ 4 ชนิดนะคะ

229
00:15:37,407 --> 00:15:41,407
ชนิดแรกเป็นการขึ้นต่อกันโดยสมบูรณ์

230
00:15:42,856 --> 00:15:46,856
นะคะ

231
00:15:47,029 --> 00:15:49,915
ซึ่งอาจจะเป็นเกี่ยวกับ

232
00:15:49,915 --> 00:15:52,780
ตารางนะคะ จะมีคอลัมน์

233
00:15:52,780 --> 00:15:53,038
1 คอลัมน์หรือมากกว่า 1 คอลัมน์มาประกอบกัน

234
00:15:53,038 --> 00:15:56,003
นะคะ โดยในคอลัมน์นั้น ๆ นี่

235
00:15:56,003 --> 00:15:59,953
จะระค่าที่ระบุ

236
00:15:59,953 --> 00:16:02,231
ความพิเศษ

237
00:16:02,231 --> 00:16:06,231
ของแถว ๆ ได้อย่างชัดเจน

238
00:16:07,061 --> 00:16:11,061
จะเป็นค่าเฉพาะที่บอกเลยว่า

239
00:16:11,592 --> 00:16:11,867
คอร์ดข้อมูลแถวนั้นเนี่ยมันมีลักษณะพิเศษเฉพาะตัวยังไง

240
00:16:11,867 --> 00:16:15,867
โดยในทุกความสัมพันธ์เนี่ยจะต้องระบุค่าคีย์หลักไว้ด้วย

241
00:16:21,953 --> 00:16:22,714
ครึ่งปีหลังนี้คือต้องเป็นค่าเอกลักษณ์คือไม่ซ้ำกันอยู่แล้ว

242
00:16:22,714 --> 00:16:26,714
นะคะ

243
00:16:31,759 --> 00:16:35,673
อย่างเช่นการขึ้นต่อกันอย่างสมบูรณ์อันแรกนะคะ

244
00:16:35,673 --> 00:16:37,482
ก็คือคอลัมน์ที่ไม่ใช่คีย์ คหลัก

245
00:16:37,482 --> 00:16:39,447
จำได้ใช่ไหมคะ คีย์หลักจะเป็น

246
00:16:39,447 --> 00:16:40,894
คอลัมน์ที่มีขีดเส้นใต้

247
00:16:40,894 --> 00:16:44,894
คอลัมน์ที่ไม่ใช่คีย์หลัก จะขึ้นตรงต่อคอลัมน์ที่เป็นคีย์หลัก

248
00:16:50,204 --> 00:16:52,884
คอลัมน์เดียวเท่านั้น

249
00:16:52,884 --> 00:16:54,089
เช่นเลขบัตรประชาชน

250
00:16:54,089 --> 00:16:58,089
จะขึ้น

251
00:16:59,652 --> 00:17:03,652
จะเป็นเจ้าของชื่อนี้เท่านั้นนะคะ

252
00:17:06,459 --> 00:17:08,848
เพราะฉะนั้น การขึ้นตัวกันอย่างสมบูรณ์จะเป็นลักษณะแบบ 1 ต่อหนึ่นะคะ เลขบัตรประชาชน 1 เลข

253
00:17:08,848 --> 00:17:12,848
ต้องเป็นของคนคนเดียวเท่านั้น

254
00:17:14,812 --> 00:17:18,812
ไม่ใช่ว่าเลขประชาชนที่ใช้ 10 คน เป็นไปไม่ได้นะคะ

255
00:17:19,142 --> 00:17:23,142
ตัวอย่างนะคะ

256
00:17:25,634 --> 00:17:26,765
ตารางที่มี Column หลายตัว

257
00:17:26,765 --> 00:17:29,348
นะคะ

258
00:17:29,348 --> 00:17:30,863
ขึ้นอยู่กับคีย์หลักตัวเดียว เช่น

259
00:17:30,863 --> 00:17:34,863
คนหนึ่งคนนี่

260
00:17:35,385 --> 00:17:36,243
ก็จะมีข้อมูลชื่อนามสกุล วัน เดือน ปีเกิด วันที่ทำบัตรใช่ไหมคะ

261
00:17:36,243 --> 00:17:40,243
แต่ว่า

262
00:17:41,550 --> 00:17:43,165
เขาจะต้องขึ้นตรงกับเลขบัตรประชาชนเดียวเท่านั้น ถามว่า 3 คนนี้

263
00:17:43,165 --> 00:17:43,543
อาจจะเกิดวันเดียวกันก็ได้ค่ะ

264
00:17:43,543 --> 00:17:47,543
เลขบัตรประชาชนเขาจะไม่เหมือนกัน

265
00:17:49,586 --> 00:17:52,680
หรือเขาอาจจะมาทำบัตรวันเดียวกัน

266
00:17:52,680 --> 00:17:54,627
แต่หมายเลขบัตรประชาชนเขาจะไม่ซ้ำกัน

267
00:17:54,627 --> 00:17:58,627
คืออะไรซ้ำกันได้ทุกอย่างค่ะ ยกเว้นหมายเลขบัตรประชาชน

268
00:18:03,967 --> 00:18:07,967
ต้องไม่ซ้ำกัน แต่บางตารางนะคะ

269
00:18:13,177 --> 00:18:16,992
ก็อาจจะเป็นการรวมตัวกันของ

270
00:18:16,992 --> 00:18:20,992
คีย์หลักมากกว่า 1 ปีหลักนะคะ

271
00:18:23,661 --> 00:18:25,377
มารวมกันเช่นนักศึกษา

272
00:18:25,377 --> 00:18:26,921
วันนี้

273
00:18:26,921 --> 00:18:28,852
เอกสารนี้

274
00:18:28,852 --> 00:18:30,451
ลงทะเบียนวิชานี้

275
00:18:30,451 --> 00:18:31,794
ได้เกรดอะไร

276
00:18:31,794 --> 00:18:35,794
อันนี้ก็เป็นความสัมพันธ์ที่เกิดขึ้นได้เหมือนกันค่ะ ว่าบัตรนักศึกษาซ้ำกันได้ไหม

277
00:18:37,682 --> 00:18:41,682
ไม่ซ้ำนะคะ รหัสวิชาซ้ำกันได้ไหม

278
00:18:44,325 --> 00:18:46,031
ไม่ซ้ำนะคะ เหมือนชื่อวิชาการ

279
00:18:46,031 --> 00:18:48,915
รหัสหนึ่ง

280
00:18:48,915 --> 00:18:49,003
เชื่คนอื่นก็รหัสวิชาอีกอันนึง

281
00:18:49,003 --> 00:18:53,003
นี้จะไม่ซ้ำกันอยู่แล้วนะคะ

282
00:18:54,208 --> 00:18:58,208
ต่อมาจะเป็นการขึ้นต่อกันบางส่วน

283
00:19:01,359 --> 00:19:01,635
มันก็จะเป็นอาศัยความสัมพันธ์ที่เกิดขึ้นจาก

284
00:19:01,635 --> 00:19:05,635
คีย์ผสมนะคะ อาจจะเป็น

285
00:19:06,937 --> 00:19:10,937
เส้นตรงจากตารางอื่นหรือส่งตารางมารวมกัน

286
00:19:11,793 --> 00:19:12,640
อาจจะไม่ใช่คีย์หลักก็ได้แต่มันมีความหมายกับ

287
00:19:12,640 --> 00:19:14,620
คอลัมน์หนึ่ง

288
00:19:14,620 --> 00:19:15,989
เดี๋ยวจะยกตัวอย่างเลยดีกว่า

289
00:19:15,989 --> 00:19:18,926
อย่างเช่น

290
00:19:18,926 --> 00:19:22,926
ตารางให้ดูเมื่อกี้นะคะ ก็จะมีรหัสนักศึกษา รหัสวิชามีเกรด

291
00:19:26,190 --> 00:19:29,784
แล้วก็

292
00:19:29,784 --> 00:19:31,308
มีการบอกด้วยว่ารหัสวิชานี้ เป็นชื่อวิชาอะไร

293
00:19:31,308 --> 00:19:31,620
นะคะ

294
00:19:31,620 --> 00:19:34,439
มันจะเป็นการเกิดขึ้นเมื่อ

295
00:19:34,439 --> 00:19:35,923

296
00:19:35,923 --> 00:19:38,964
คีย์หลักประกอบกันด้วย

297
00:19:38,964 --> 00:19:40,071
คอลัมน์หรือว่า Accident รวมกัน

298
00:19:40,071 --> 00:19:44,071
โดยบางส่วนของคีย์หลักสามารถไประบุค่า Attribute อย่างอื่น

299
00:19:47,902 --> 00:19:51,902
ที่ไม่ใช่คีย์หลักได้

300
00:19:52,985 --> 00:19:55,203
นะคะ อย่างเช่น ในความสัมพันธ์นี้คีย์หลักจะมี 2 ตัว

301
00:19:55,203 --> 00:19:56,359
มีรหัสนักศึกษา

302
00:19:56,359 --> 00:19:57,824
รหัสวิชา

303
00:19:57,824 --> 00:20:01,824
ถามว่า

304
00:20:03,407 --> 00:20:05,379
ถ้ามีแต่

305
00:20:05,379 --> 00:20:06,343
รหัสนักศึกษา

306
00:20:06,343 --> 00:20:08,661
นะคะ

307
00:20:08,661 --> 00:20:12,300
เกรด รหัสวิชา

308
00:20:12,300 --> 00:20:13,843
แล้วเราจะรู้ไหมว่าชื่อวิชาที่เราเรียนไปนี่

309
00:20:13,843 --> 00:20:16,267
วิชาอะไร

310
00:20:16,267 --> 00:20:20,267
นะคะ เหมือนบางคนรู้รหัสวิชาแต่จำชื่อวิชาไม่ได้ก็มี

311
00:20:25,354 --> 00:20:29,354
เพราะฉะนั้น รหัสวิชานี่ มันเลยสามารถ

312
00:20:29,634 --> 00:20:30,814
ไปส่งผลกับชื่อวิชาได้เหมือนกัน เพราะเป็นตัวระบุว่า

313
00:20:30,814 --> 00:20:32,618
ไปหลายวิชานี่

314
00:20:32,618 --> 00:20:36,033
มันชื่อวิชาอะไร

315
00:20:36,033 --> 00:20:38,270
ก็คือคีย์หลักในตารางนี้มี 2 อัน

316
00:20:38,270 --> 00:20:40,251
แต่มีคีย์หลัก 1 ตัวนี่

317
00:20:40,251 --> 00:20:41,925
ไปมีผลกับ

318
00:20:41,925 --> 00:20:44,680
Attribute1 ได้

319
00:20:44,680 --> 00:20:47,161
นะคะ อันนี้คือความขึ้นต่อกันบางส่วน

320
00:20:47,161 --> 00:20:51,161
อย่างเช่นตัวนี้ก็จะเป็นของจริง ถ้าสมมติว่าอาจารย์ตัดรหัสนักศึกษาออก

321
00:20:58,301 --> 00:20:59,949
มีแค่ 5 วิชามีเกรดมีการ

322
00:20:59,949 --> 00:21:01,766
วิชาเขียนโปรแกรมแล้วถาม

323
00:21:01,766 --> 00:21:05,038
รู้ไหมคะ ว่าเกรดเอที่ของใคร

324
00:21:05,038 --> 00:21:08,061
นะคะ หรือว่า

325
00:21:08,061 --> 00:21:12,061
อย่าลบไปก่อนนะ

326
00:21:14,057 --> 00:21:17,015
หรือว่า

327
00:21:17,015 --> 00:21:20,380
การลบรหัสวิชาออก

328
00:21:20,380 --> 00:21:23,249
เหลือแต่นักศึกษา เหลือเกรด

329
00:21:23,249 --> 00:21:26,185
ชื่อวิชา แล้วถามว่า

330
00:21:26,185 --> 00:21:26,461
รหัสวิชาอะไรล่ะที่เราได้เกรด A

331
00:21:26,461 --> 00:21:30,461
เราก็ไม่ทราบอีกเหมือนกันนะคะ อันนี้ก็คือ

332
00:21:33,056 --> 00:21:34,107
การขึ้นต่อกันบางส่วนนะคะ

333
00:21:34,107 --> 00:21:38,107
นี่เป็นตัวอย่าง ต่อมาเป็นการขึ้นต่อกันแบบส่งต่อ

334
00:21:52,415 --> 00:21:54,422
ก็จะเป็นความสัมพันธ์ที่เกิดขึ้นก็ต่อเมื่อมี Attribute หรือว่าที่ไม่ใช่ครีม

335
00:21:54,422 --> 00:21:56,214
แต่ไปสามารถ

336
00:21:56,214 --> 00:22:00,214
ขึ้น

337
00:22:00,599 --> 00:22:00,803
สามารถระบุค่าของ Attribute อื่นใน Accord ได้

338
00:22:00,803 --> 00:22:04,803
ซึ่งเป็นการออกแบบที่ไม่เหมาะสม

339
00:22:05,628 --> 00:22:09,628
เพราะส่วนใหญ่แล้วในตารางนี่

340
00:22:10,235 --> 00:22:14,235
ถ้าเราจะระบุค่าอื่นให้กับ

341
00:22:15,971 --> 00:22:16,827
คอลัมน์อื่นได้ ควรจะต้องเป็นคีย์หลักเท่านั้น

342
00:22:16,827 --> 00:22:20,827
ดูตัวอย่างนะคะ เช่นตารางนี้

343
00:22:37,045 --> 00:22:39,368
เขาบอกว่าสิ่งที่เกิดขึ้นคือ Attribute คือคอลัมน์ที่ไม่ใช่คีย์หลักหรือ Primary Key นะคะ ก็คือไม่ใช่คอลัมน์ที่มีเส้นขีดมันไประบุค่าอื่น ๆ ในตารางได้เช่น

344
00:22:39,368 --> 00:22:40,411
ตารางนี้ก็คือเลขประจำตัว

345
00:22:40,411 --> 00:22:44,411
โดยตัวเลขประจำตัวนี่

346
00:22:46,572 --> 00:22:48,237
ไปมีผลกับชื่อนามสกุล ที่อยู่ตำแหน่งใช่ไหมคะ

347
00:22:48,237 --> 00:22:50,347
เขานี่

348
00:22:50,347 --> 00:22:54,145
รถประจำตำแหน่ง

349
00:22:54,145 --> 00:22:58,105
มันไม่ถูกระบุโดยเลขประจำตัว

350
00:22:58,105 --> 00:22:58,532
มันถูกระบุโดยรหัสตำแหน่ง

351
00:22:58,532 --> 00:23:02,532
เหมือนถ้าเป็นผู้จัดการนี่

352
00:23:05,283 --> 00:23:07,714
แผนที่ผู้จัดการนะคะ จะรู้เลยว่ารถประจำตำแหน่งคืออะไร

353
00:23:07,714 --> 00:23:09,579
แต่เขาไปเช็กที่รหัสตำแหน่ง

354
00:23:09,579 --> 00:23:10,911
แทนที่จะเช็กกับเลขประจําตัว

355
00:23:10,911 --> 00:23:14,841
นี่คือการออกแบบที่ไม่ดี

356
00:23:14,841 --> 00:23:18,841
เพราะฉะนั้น ถ้าสมมุติว่าจะให้รถประจำตำแหน่ง วิธีการแก้ปัญหาก็คือ

357
00:23:22,697 --> 00:23:23,910
เราควรจะแยก

358
00:23:23,910 --> 00:23:27,910
ตารางนี้

359
00:23:28,194 --> 00:23:28,660
ออกไปสร้างตารางใหม่เลยค่ะ

360
00:23:28,660 --> 00:23:32,660
มันไม่ควรจะมาขึ้นกับตาราง

361
00:23:33,726 --> 00:23:37,726
ที่มีคีย์หลัก

362
00:23:38,416 --> 00:23:39,988
แต่ไม่สามารถระบุค่าข้อมูลตรงนี้ได้นี่ มันไม่ควรทำ

363
00:23:39,988 --> 00:23:43,988
นะคะ กับต่อมาเป็นการขึ้นต่อการเชิงกลุ่ม

364
00:23:47,569 --> 00:23:51,569
นะคะ

365
00:23:52,778 --> 00:23:53,053
น่าจะเป็นความสัมพันธ์ระหว่างคอลัมน์

366
00:23:53,053 --> 00:23:57,053
Attribute ขึ้นต่อกันแบบสมบูรณ์นะคะ ก็ไปสามารถระบุค่าอื่นได้

367
00:23:58,058 --> 00:24:01,900
โดยที่

368
00:24:01,900 --> 00:24:05,900
อย่างเช่นตัวอย่าง

369
00:24:07,041 --> 00:24:10,492
ในตารางนี้นะคะ จะมีรหัสหลักสูตร

370
00:24:10,492 --> 00:24:14,346
สามารถระบุรหัสวิชาได้หลายวิชา เช่น

371
00:24:14,346 --> 00:24:14,686
จริง ๆ ในรหัสศึกษา จะเห็นได้ว่ามีเลข

372
00:24:14,686 --> 00:24:16,823
122

373
00:24:16,823 --> 00:24:20,823
รหัสนักศึกษา

374
00:24:25,068 --> 00:24:27,783
B122 คืออะไร B122 ก็คือหลักสูตรที่เราเรียนอยู่

375
00:24:27,783 --> 00:24:31,783
ซึ่งในหลักสูตรที่โรงเรียนนี่ มันมีวิชา

376
00:24:33,803 --> 00:24:36,111
มากกว่า 20 วิชา

377
00:24:36,111 --> 00:24:40,111
นะคะ

378
00:24:42,888 --> 00:24:43,220
ก็คือรหัสหลักสูตรนี่มันสามารถระบุรหัสวิชาได้หลากหลายรหัสวิชามาก ๆ

379
00:24:43,220 --> 00:24:47,220
อันนี้ก็คือการขึ้นต่อกันแบบ

380
00:24:50,390 --> 00:24:52,435
มีค่ามากกว่า 1

381
00:24:52,435 --> 00:24:55,226
รหัสหลักสูตร

382
00:24:55,226 --> 00:24:55,961
สามารถระบุรหัสวิชาได้หลายค่านั่นเอง

383
00:24:55,961 --> 00:24:59,961
แล้วรหัสหลักสูตร

384
00:25:01,332 --> 00:25:04,921
ก็สามารถระบุค่ารหัสนักศึกษาได้หลายคนเช่นกัน

385
00:25:04,921 --> 00:25:06,669
เหมือนตอนนี้หลักสูตรที่เราเรียน

386
00:25:06,669 --> 00:25:09,045
นี่ มีนักศึกษาเกือบ 100 คน

387
00:25:09,045 --> 00:25:10,594
รหัสหลักสูตรเดียวนะ

388
00:25:10,594 --> 00:25:14,594
นะคะ

389
00:25:16,361 --> 00:25:16,859
นี่คือความสัมพันธ์แบบสามารถระบุค่าได้มากกว่า 1 นั่นเองแบบไหนค่า

390
00:25:16,859 --> 00:25:20,859
เพราะฉะนั้น วิธีการแก้ปัญหาของสิ่งที่เกิดขึ้นนะคะ เราเลยจะต้องมีการ

391
00:25:37,547 --> 00:25:41,352
กระบวนการปรับบรรทัดฐาน หรือว่ากระบวนการปรับปรุงโครงสร้างของฐานข้อมูลนะคะ ที่มีความซ้ำซ้อนกันให้อยู่ในรูปแบบที่เป็นบรรทัดฐาน ก็คือ

392
00:25:41,352 --> 00:25:41,517
เป็นรูปแบบที่พร้อมที่จะเอาไปพัฒนาเป็นฐานข้อมูลได้

393
00:25:41,517 --> 00:25:45,517
โดยหลักการนะคะ

394
00:25:45,820 --> 00:25:47,068
อย่างที่บอกมี 5 ระดับ

395
00:25:47,068 --> 00:25:51,068
แต่ระดับ

396
00:25:51,332 --> 00:25:51,493
ที่ 3 นี่ ก็ถือว่าเพียงพอสำหรับการออกแบบฐานข้อมูลในปัจจุบันแล้ว

397
00:25:51,493 --> 00:25:55,493
โดย

398
00:26:00,199 --> 00:26:03,464
คีย์หลักของการทำงานนะคะ ท่านที่ 1 นะคะ

399
00:26:03,464 --> 00:26:05,312
กำจัดกลุ่มของข้อมูลที่มีความซ้ำซ้อนกันออกไป

400
00:26:05,312 --> 00:26:06,567
ขอแรกง่ายมาก ๆ

401
00:26:06,567 --> 00:26:10,567
ง่ายที่สุดก็คือ 1 nf นะคะ

402
00:26:13,908 --> 00:26:15,874
ต่อมาครั้งที่ 2 อยู่ 2 nf

403
00:26:15,874 --> 00:26:19,527
จะกำจัด

404
00:26:19,527 --> 00:26:20,274
การขึ้นต่อกันบางส่วนออก

405
00:26:20,274 --> 00:26:24,274
ขั้นสุดท้าย 3nf นะคะ

406
00:26:28,138 --> 00:26:28,543
กำจัดการขึ้นต่อกันของ Attribute ที่ไม่ใช่

407
00:26:28,543 --> 00:26:32,543
คีย์หลัก เดี๋ยวจะมาดูทีละขั้น

408
00:26:33,099 --> 00:26:34,044
มันจะต้องเป็นยังไงบ้าง

409
00:26:34,044 --> 00:26:38,044
ข้อแรกง่ายที่สุดง่ายมาก ๆ นะคะ

410
00:26:45,640 --> 00:26:47,866
ให้นักศึกษาจำกระบวนการหลัก ๆ จะมี 3 ข้อนะคะ

411
00:26:47,866 --> 00:26:49,378
ขั้นตอนการแรกเลย ดูก่อนว่า

412
00:26:49,378 --> 00:26:53,378
ซ้อนกันไหม

413
00:26:53,588 --> 00:26:53,832
คำที่ 2 คือมันขึ้นต่อกันแค่บางส่วนหรือเปล่า

414
00:26:53,832 --> 00:26:57,832
อันที่ 3 อันไหนไม่ใช่ค

415
00:27:01,172 --> 00:27:02,162
ีย์หลักแต่มันไปส่งผลกระทบกับข้อมูลอื่นได้หรือเปล่า

416
00:27:02,162 --> 00:27:05,056
ดูอันดับที่ 1 ก่อน

417
00:27:05,056 --> 00:27:08,834
วันที่ 1 ได้มาก

418
00:27:08,834 --> 00:27:09,693
นะคะ ทุก ๆ

419
00:27:09,693 --> 00:27:13,693
คอลัมน์ Records

420
00:27:16,451 --> 00:27:16,633
จะต้องเป็นค่า Single Value คือมีค่าเดียวเท่านั้น

421
00:27:16,633 --> 00:27:20,633
จะใส่แบบนี้ไม่ได้

422
00:27:22,355 --> 00:27:24,099
เพราะฉะนั้นข้อมูลทุกแถว จะต้องไม่มีค่าที่ซ้ำกัน

423
00:27:24,099 --> 00:27:25,573
อย่างนี้

424
00:27:25,573 --> 00:27:25,860
นักศึกษาคนที่ 1

425
00:27:25,860 --> 00:27:29,860
แน่นอนทั้ง

426
00:27:31,223 --> 00:27:33,110
1 เทอมนี่ คุณลงทะเบียนประมาณ 6-7 วิชาใช่ไหมคะ

427
00:27:33,110 --> 00:27:37,110
ข้อมูลมันก็จะเป็นแบบนี้

428
00:27:39,580 --> 00:27:40,493
ถ้าเราไม่มีการทำ

429
00:27:40,493 --> 00:27:41,521
Noราวนี้

430
00:27:41,521 --> 00:27:42,919
ขั้นตอนที่ 1

431
00:27:42,919 --> 00:27:46,919
เราจะ

432
00:27:50,375 --> 00:27:51,501
ข้อมูลที่ซ้ำซ้อนกันออกวิธีการง่ายมากค่ะ คือแจ้งข้อมูลออกเป็นอย่างละแถวที่ไม่ซ้ำกัน

433
00:27:51,501 --> 00:27:53,731
ดูตัวอย่างนะคะ

434
00:27:53,731 --> 00:27:57,731
วิธีการทำ 1 nf ง่ายมากค่ะ ถ้าข้อมูลตัวไหนเป็นกลุ่มนะคะ

435
00:27:59,474 --> 00:28:03,474
คนที่ 1 วิชา

436
00:28:04,922 --> 00:28:05,670
ลงทะเบียนเรียน 3 วิชาใช่ไหมคะ คนที่ 2 มี 2 วิชา

437
00:28:05,670 --> 00:28:09,670
สามารถทำในรูปแบบ 1nf ก็คือ

438
00:28:09,970 --> 00:28:10,687
เอามันกระจายออกมาค่ะ

439
00:28:10,687 --> 00:28:14,687
ย้ายข้อมูลพรุ่งนี้ออกมา

440
00:28:15,089 --> 00:28:15,244
กระต่ายออกใช่ไหมคะ กระจายออก

441
00:28:15,244 --> 00:28:19,244
ง่ายมาก

442
00:28:22,550 --> 00:28:23,677
ข้อมูลพรุ่งนี้ก็ทำซ้ำลงมาทำซ้ำลงมา

443
00:28:23,677 --> 00:28:26,112
สำโรงมา

444
00:28:26,112 --> 00:28:26,258
ทำซ้ำลงมา

445
00:28:26,258 --> 00:28:30,258
ถามว่าเขาทำไม

446
00:28:31,800 --> 00:28:34,786
ทำไม 001 มันซ้ำกันได้ล่ะ

447
00:28:34,786 --> 00:28:38,786
แต่รหัสวิชาเขาไม่ซ้ำกันเห็นไหมค่ะ

448
00:28:43,647 --> 00:28:47,647
เด็ก ๆ เลยง่ายมากค่ะ

449
00:28:48,699 --> 00:28:48,851
ข้อมูลทำไมเป็นก้อนอย่างนี้ เรากระจายออกมาเป็นแยกออกมาเป็นบรรทัด บรรทัดเลยแค่นั้นเอง

450
00:28:48,851 --> 00:28:52,851
อย่างน้อยในข้อสอบ

451
00:28:52,897 --> 00:28:56,358
ต้องทำ 1 NF ให้ได้

452
00:28:56,358 --> 00:28:56,640
มันง่ายที่สุดแล้ว

453
00:28:56,640 --> 00:28:59,989
นะคะ

454
00:28:59,989 --> 00:29:03,989
อย่างตัวนี้นะคะ ก็กระจายออกมา

455
00:29:05,903 --> 00:29:09,903
แล้ว คราวนี้ถ้าเรากระจายข้อมูลเรียบร้อยแล้วนะคะ

456
00:29:13,778 --> 00:29:14,274
ว่าจะมาดูว่าในตารางนี้ค่ะ

457
00:29:14,274 --> 00:29:16,513
มันมีตาราง

458
00:29:16,513 --> 00:29:20,513
ของพนักงานใช่ไหมคะ

459
00:29:20,920 --> 00:29:22,275
เขาจะมีคีย์หลัก 1 ตัวละ

460
00:29:22,275 --> 00:29:22,556
แต่ว่า

461
00:29:22,556 --> 00:29:26,556
มันจะมีตัวนี้ค่ะ

462
00:29:28,026 --> 00:29:28,769
ตัวที่ 1 ตัวที่ 2 ที่มีคุณสมบัติ

463
00:29:28,769 --> 00:29:32,769
เป็นคีย์หลักได้

464
00:29:34,145 --> 00:29:37,520
เราต้องแยกมันออก

465
00:29:37,520 --> 00:29:41,520
นะคะ กระบวนการนะคะ

466
00:29:42,013 --> 00:29:46,013
ดูก่อนว่า

467
00:29:48,614 --> 00:29:51,881
ตารางวิธีนะคะ สิ่งที่ขึ้นตรงกับคีย์หลักตัวนี้นะคะ ก็จะเป็นตัวที่ 1 ตัวที่ 2 ตัวที่ 3

468
00:29:51,881 --> 00:29:53,045
สังเกตแล้วว่า คีย์หลักมีตัวเดียว

469
00:29:53,045 --> 00:29:56,012
ข้อมูลมีเยอะมาก

470
00:29:56,012 --> 00:29:56,903
นะคะ ออกมาได้อันแรกเลย

471
00:29:56,903 --> 00:29:59,026
รหัส

472
00:29:59,026 --> 00:30:03,026
โปรเจกต์นะคะ แล้วก็ชื่อโปรเจกต์นะคะ ใครเป็นผู้จัดการเงินเดือนเท่า

473
00:30:06,120 --> 00:30:06,874
ไรงบประมาณเท่าไหร่

474
00:30:06,874 --> 00:30:10,874
คือมันจะเชื่อมโยงกับ

475
00:30:12,713 --> 00:30:13,400
ข้อมูลที่เป็นคีย์หลักก็คือ Project Code วันนี้

476
00:30:13,400 --> 00:30:17,400
ส่วนตัวนี้เป็นคีย์คู่แข่ง

477
00:30:21,447 --> 00:30:24,674
2 ตัว

478
00:30:24,674 --> 00:30:28,674
2 ตัว

479
00:30:29,106 --> 00:30:33,029
มันสามารถทำหน้าที่เป็นคีย์หลัก ให้กับอย่างตัวนี้นะคะ

480
00:30:33,029 --> 00:30:33,628
มันจะเป็นคีย์หลักให้กับชื่อของพนักงาน

481
00:30:33,628 --> 00:30:37,628
อย่างตัวนี้

482
00:30:38,023 --> 00:30:41,146
ว่าจะเป็นคีย์หลักสำหรับชื่อแผนก

483
00:30:41,146 --> 00:30:43,324
ถามว่า

484
00:30:43,324 --> 00:30:44,026
มันขึ้นตรงกับโปรเจกต์ Code ไหม

485
00:30:44,026 --> 00:30:44,791
ไม่

486
00:30:44,791 --> 00:30:47,927
นะคะ

487
00:30:47,927 --> 00:30:51,927
เพราะฉะนั้น การทำขั้นตอนต่อมานะคะ

488
00:30:53,318 --> 00:30:54,711
2 NF ขั้นตอนที่ 1

489
00:30:54,711 --> 00:30:58,711
เราจะต้องทำ 1 nf มาเรียบร้อย แล้วซึ่งได้มา

490
00:31:00,429 --> 00:31:02,916
แล้วก็ต้องมา

491
00:31:02,916 --> 00:31:02,982
ตัของการขึ้นต่อกันบางส่วนออก

492
00:31:02,982 --> 00:31:05,680
ก็คือการ

493
00:31:05,680 --> 00:31:08,317
กำจัด

494
00:31:08,317 --> 00:31:10,760
ไม่ขึ้น

495
00:31:10,760 --> 00:31:14,413
คีย์หลักของตารางนั้นเอง

496
00:31:14,413 --> 00:31:17,858
จะออกนะคะ

497
00:31:17,858 --> 00:31:21,189
อย่างเช่นตัวนี้นะคะ

498
00:31:21,189 --> 00:31:23,752
การขึ้นต่อกันบางส่วน จะเห็นได้ว่า

499
00:31:23,752 --> 00:31:27,735
รหัสวิชากับชื่อวิชา

500
00:31:27,735 --> 00:31:29,203
มันไม่ขึ้นตรงกับรหัสนักศึกษาใช่ไหมคะ อันนี้จำได้นะ รูปเดิม

501
00:31:29,203 --> 00:31:31,230
รูปเดิม

502
00:31:31,230 --> 00:31:35,230
วิธีกำจัดปัญหาเราก็ดึงสิ่งที่มันเป็นปัญหาสิ่งที่มันไม่ขึ้นตรงกับคีย์หลักตัวนั้น

503
00:31:41,320 --> 00:31:41,603
ไปสร้างตารางใหม่

504
00:31:41,603 --> 00:31:43,731
สร้างตารางเพิ่ม

505
00:31:43,731 --> 00:31:47,731
เอาสิ่งที่เป็นปัญหาออกมาไปใส่ตารางใหม่ กำหนดคีย์หลักใหม่

506
00:31:50,833 --> 00:31:53,276
นะคะ ในตารางเดิม

507
00:31:53,276 --> 00:31:56,584
นะคะ

508
00:31:56,584 --> 00:31:57,375
เราก็เอาคีย์หลักของตารางใหม่ไปใส่

509
00:31:57,375 --> 00:31:59,752
แค่นั้นเอง

510
00:31:59,752 --> 00:32:00,462
นะคะ วิธีการก็คือ

511
00:32:00,462 --> 00:32:04,462
เหมือนรูปนี้นะคะ

512
00:32:06,606 --> 00:32:07,828
สิ่งที่เป็นปัญหาที่อาจารย์จะยกตัวอย่างคือรหัสวิชา

513
00:32:07,828 --> 00:32:08,906
ชิชา

514
00:32:08,906 --> 00:32:12,906
เพราะรหัสวิชามันไม่ได้ขึ้นตรงกับรหัสนักศึกษา

515
00:32:19,498 --> 00:32:23,498
เพราะฉะนั้น ไอ้สองตัวนี้คือสิ่งที่เป็นปัญหา

516
00:32:24,940 --> 00:32:25,312
วิธีการแก้ปัญหาคือเราสร้างตารางผลการเรียนใหม่

517
00:32:25,312 --> 00:32:28,260
สร้างตารางวิชาใหม่

518
00:32:28,260 --> 00:32:31,248
เห็นไหมคะ

519
00:32:31,248 --> 00:32:33,724
ในตารางใหม่เราจะตัดชื่อวิชาออก

520
00:32:33,724 --> 00:32:37,724
แต่ต้องเหลือ

521
00:32:40,713 --> 00:32:42,166
รหัสวิชาไว้ เพื่อให้เชื่อมโยงว่ารหัสวิชาน ี้มันชื่อวิชาอะไร

522
00:32:42,166 --> 00:32:44,467
จากอีกตาราง 1

523
00:32:44,467 --> 00:32:45,175
แค่นั้นเองนะคะ

524
00:32:45,175 --> 00:32:49,175
โอเคค่ะ

525
00:32:50,663 --> 00:32:54,663
อันนี้เป็นตัวอย่างของ

526
00:32:55,025 --> 00:32:58,758
ปรับบรรทัดฐานในรูปแบบของส

527
00:32:58,758 --> 00:33:00,856
2 Nเดี๋ยววันนี้

528
00:33:00,856 --> 00:33:04,833
จะให้ทำการบ้าน เดี๋ยวค่อยย้อนกลับมาแล้วกันนะคะ

529
00:33:04,833 --> 00:33:07,528
สอนภาษา

530
00:33:07,528 --> 00:33:11,528
เดี๋ยวแก้แล้

531
00:33:11,996 --> 00:33:15,996
ว เมื่อกี้นะคะ

532
00:33:18,712 --> 00:33:19,697
ขั้นตอนสุดท้ายนะคะ 3nf

533
00:33:19,697 --> 00:33:21,432
นะคะ

534
00:33:21,432 --> 00:33:25,432
โดยความสัมพันธ์นะคะ ก่อนที่จะทำเป็น 3NF ได้จะต้องทำ 2 Nอย่างนี้มาก่อน

535
00:33:31,268 --> 00:33:33,841
หลักของการทำขั้นตอนที่ 3 คือ

536
00:33:33,841 --> 00:33:35,648
ต้องเอาความสัมพันธ์ที่ไม่ใช่คีย์หลัก

537
00:33:35,648 --> 00:33:39,648
ออกนะคะ

538
00:33:39,794 --> 00:33:43,479
เช่น ไม่ใช่คีย์หลัก แต่ไม่มีผลกั

539
00:33:43,479 --> 00:33:44,425
บคอลัมน์อื่นไม่ได้นะคะ ไม่ได้

540
00:33:44,425 --> 00:33:48,425
วิธีการแก้ปัญหาเช่นเดิมค่ะ สร้างตารางใหม่ขึ้นมา

541
00:33:50,524 --> 00:33:51,798
แก้ปัญหานาน ๆ

542
00:33:51,798 --> 00:33:55,798
อย่างเช่นในตัวอย่างนะคะ

543
00:33:59,546 --> 00:34:03,526
รหัสพนักงานนะคะ

544
00:34:03,526 --> 00:34:07,269
ชื่อสกุล รหัสแผนก ชื่อแผนก เงินเดือน

545
00:34:07,269 --> 00:34:08,641
จะเห็นได้ว่าในตารางนี้นี่ คีย์หลักก็คือรหัสพนักงาน

546
00:34:08,641 --> 00:34:12,641
แต่มันมีรหัสแผนกกับชื่อแผนกติดมาด้วย

547
00:34:17,229 --> 00:34:18,118
ซึ่งมันไม่ได้เกี่ยวกับรหัสพนักงานเลย

548
00:34:18,118 --> 00:34:22,017
วิธีการแก้ปัญหาก็คือ

549
00:34:22,017 --> 00:34:23,553
เอารหัสแผนก

550
00:34:23,553 --> 00:34:25,162
กับชื่อแผนก

551
00:34:25,162 --> 00:34:29,162
ไปสร้างตารางใหม่

552
00:34:32,948 --> 00:34:35,430
แต่ต้องยังคงรหัสแผนกไว้

553
00:34:35,430 --> 00:34:39,430
ในตารางเดิมนะคะ

554
00:34:41,148 --> 00:34:45,148
เพื่อให้มันเชื่อมโยงได้ว่าไอ้แผนก a001 นี่ คือแผนกอะไรนะ

555
00:34:50,818 --> 00:34:54,818
คะ อันนี้คือการแก้ปัญหาไม่ใช่คีย์หลัก แต่ไปส่งผลกับคอลัมน์อื่นในตารางนะคะ

556
00:35:00,195 --> 00:35:00,347
จริง ๆ แล้วอยากให้ลองทำในห้องมากกว่า แต่ด้วยสัปดาห์นี้มันมีข้อจำกัดนะ ก็ไม่เป็นไร

557
00:35:00,347 --> 00:35:04,347
อันนี้เป็นตัวอย่างนะคะ

558
00:35:07,062 --> 00:35:11,062
สรุปนะคะ วิธีการทำ Normalizatioหรือว่าการปรับบรรทัดฐานนะคะ

559
00:35:20,038 --> 00:35:22,976
ทุก ๆ ที่ทุก ๆ คนร่ำในแต่ละแถว

560
00:35:22,976 --> 00:35:24,230
จะต้องมีค่าของข้อมูลเพียงค่าเดียวเท่านั้น

561
00:35:24,230 --> 00:35:28,230
เช่นเวลาเรากรอกเบอร์โทรศัพท์

562
00:35:30,405 --> 00:35:31,534
เรามีโทรศัพท์ 3 เบอร์ก็จริง แต่เราจะกรอกได้แค่เบอร์เดียว

563
00:35:31,534 --> 00:35:35,534
ถ้าอยากใส่เบอร์ที่ 2 ที่ 3 ก็ต้องเพิ่มข้อมูลแถวใหม่ขึ้นมา

564
00:35:37,549 --> 00:35:41,549
ต่อมา

565
00:35:42,012 --> 00:35:44,356
2 nF

566
00:35:44,356 --> 00:35:48,356
ก็

567
00:35:51,607 --> 00:35:53,261
ปัญหาคือถ้ามีข้อมูลนะคะ ขอข้อมูลทุกตัวในตารางนั้น จะต้องขึ้นกับคีย์หลัก

568
00:35:53,261 --> 00:35:54,981
ของตาราง

569
00:35:54,981 --> 00:35:55,766
ตัวเดียวเท่านั้น

570
00:35:55,766 --> 00:35:56,848
นะคะ

571
00:35:56,848 --> 00:36:00,848
ข้อที่ 3 ถ้า

572
00:36:02,494 --> 00:36:02,669
คอลัมน์ไหนที่ไม่ใช่คีย์หลัก

573
00:36:02,669 --> 00:36:06,669
นะคะ จะมาส่งผลกับคอลัมน์อื่นในตารางไม่ได้

574
00:36:09,211 --> 00:36:12,622
เพราะฉะนั้น

575
00:36:12,622 --> 00:36:15,202
ข้อ 1 นี้คือแค่กระจายตาราง

576
00:36:15,202 --> 00:36:16,896
อันที่ 2 อันที่ 3 ถ้ามีปัญหา

577
00:36:16,896 --> 00:36:17,539
เราต้องสร้างตารางใหม่

578
00:36:17,539 --> 00:36:21,539
การบ้านเี้ดีกว่า

579
00:36:30,265 --> 00:36:33,353
อาจารย์จะให้ทำน่าจะส่งวันนี้

580
00:36:33,353 --> 00:36:37,353
เอาแค่

581
00:36:39,377 --> 00:36:40,477
ข้อเดียวนะคะ ข้อเดียวพอ เพราะว่าจริง ๆ อยากให้ทำในห้องเดี๋ยวสัปดาห์หน้าค่อยทำในห้อง

582
00:36:40,477 --> 00:36:44,477
จะให้ลองทำดูก่อน ว่าที่เรียนไปวันนี้

583
00:36:44,503 --> 00:36:45,847
เข้าใจไหม

584
00:36:45,847 --> 00:36:49,847
ถ้าทำเสร็จแล้วก็ค่อยเอามาส่ง

585
00:36:52,075 --> 00:36:56,075
โต๊ะ ส่งงานอาจารย์เอาเฉพาะข้อดีนะข้อเดียว

586
00:36:58,220 --> 00:36:58,422
ขเดียวพอวันนี้คนเดียวพอนะคะ ส่งในเวลานี้แหละ

587
00:36:58,422 --> 00:37:02,422
ให้ลองทำดูว่าเข้าใจไหมข้อนี้

588
00:37:03,071 --> 00:37:07,071
ทำอย่างทำยังไงได้มาก ๆ เลย

589
00:37:08,521 --> 00:37:10,847
การเว้นช่องว่างให้แล้ว

590
00:37:10,847 --> 00:37:11,209
เติมมา

591
00:37:11,209 --> 00:37:15,209
2

592
00:37:16,120 --> 00:37:17,233
คุณเห็นไหมว่า

593
00:37:17,233 --> 00:37:20,422
มันมีรหัสวิชาเนี่

594
00:37:20,422 --> 00:37:22,048
ชาเนี่ย

595
00:37:22,048 --> 00:37:22,293
ต้องทำยังไงกับมัน

596
00:37:22,293 --> 00:37:26,293
แยกมันออกมาสิ แยกยังไง

597
00:37:28,351 --> 00:37:29,755
เอาข้าวเหนียวก่อน

598
00:37:29,755 --> 00:37:29,916
นะคะ แล้วลอง

599
00:37:29,916 --> 00:37:33,639
ส่งมาให้อาจารย์ดูก่อนว่า

600
00:37:33,639 --> 00:37:33,948
เข้าใจมากน้อย ขนาดไหน

601
00:37:33,948 --> 00:37:37,918
จริง ๆ

602
00:37:37,918 --> 00:37:40,069
อยากให้เรียนในห้องมากกว่า แต่วันนี้ก็เอา

603
00:37:40,069 --> 00:37:40,293
มานี้ก่อนแล้วกัน

604
00:37:40,293 --> 00:37:44,293
ให้ทุกคนหายดี กลับมาอาทิตย์หน้าค่อย

605
00:37:44,917 --> 00:37:47,225
เดินดูในห้องดีกว่า

606
00:37:47,225 --> 00:37:51,225
วันนี้ก็

607
00:37:53,544 --> 00:37:53,817
ประมาณนี้นะคะ เดี๋ยวเวลาที่เหลือให้ทำข้อนี้ แล้วมาส่ง

608
00:37:53,817 --> 00:37:55,935
วันนี้เลยยิ่งดี

609
00:37:55,935 --> 00:37:59,782
เวลาที่เหลือทำใส่กระดาษมาส่งอาจารย์

610
00:37:59,782 --> 00:38:03,782
แล้วกันนะ

611
00:38:03,956 --> 00:38:05,927
ประมาณนี้ค่ะ เวลาที่เหลือทำให้เสร็จภายในวันนี้นะคะ

612
00:38:05,927 --> 00:38:08,880
ข้อเดียวเองนะคะ ข้อเดียว

613
00:38:08,880 --> 00:38:11,827
ใครสงสัยไหมคะ

614
00:38:11,827 --> 00:38:15,286
ปุ๋ยสงสัยไหม

615
00:38:15,286 --> 00:38:15,545
เปิดไม่ได้หรือเปล่า

616
00:38:15,545 --> 00:38:19,545
ไม่มีค่ะ อาจารย์เดี๋ยวถ้ายังไงเดี๋ยวให้อุบลไปส่งหรือยังไงคะ เพราะว่าอุบลขึ้น

617
00:38:23,745 --> 00:38:27,130
ไม่ ๆ ส่วนมากอยู่ในการอยู่หอนี่แหละ

618
00:38:27,130 --> 00:38:31,130
ตอนนี้เหลืออยู่ประมาณ

619
00:38:33,890 --> 00:38:37,890
ใส่ได้ก็เอามา

620
00:38:38,522 --> 00:38:42,522
Ok Thank You

621
00:38:46,352 --> 00:38:50,352
วันนี้ก็ประมาณนี้ค่ะ ขอบคุณทุกคนมากนะคะ

622
00:38:51,084 --> 00:38:55,084
ที่ยังตั้งใจเรียนอยู่ แล้วก็งานอย่าลืมส่งวันนี้นะคะ ใครที่อยู่ Dดี ๆ ก็

623
00:38:56,256 --> 00:39:00,256
ทำให้เสร็จ

624
00:39:03,734 --> 00:39:04,626
แล้วก็ฝากเพื่อนมาส่ง รวมกันมาส่งก็ได้นะคะ ถ้าใครอยู่หอก็จะมาทำอยู่ดี ๆ ก็ได้หรือว่าทำเสร็จแล้วมาส่งที่

625
00:39:04,626 --> 00:39:05,188
อาการก็ได้

626
00:39:05,188 --> 00:39:09,188
โอเคค่ะ วันนี้ก็ประมาณนี้ค่ะ ขอบคุณล่ามด้วยนะคะ

627
00:39:14,867 --> 00:39:16,275
ค่าขอบคุณค่ะ

628
00:39:16,275 --> 00:39:20,275
ปุ๋ยวันนี้ครบนะ

629
00:39:39,975 --> 00:39:43,975
ไปแล้ว OK

630
00:39:45,475 --> 00:39:49,475


