﻿1
00:00:04,017 --> 00:00:04,018

2
00:00:04,018 --> 00:00:04,018

3
00:00:04,018 --> 00:00:04,882

4
00:00:04,882 --> 00:00:06,046

5
00:00:06,046 --> 00:00:08,349

6
00:00:08,349 --> 00:00:08,532

7
00:00:08,532 --> 00:00:09,753

8
00:00:09,753 --> 00:00:10,135

9
00:00:10,135 --> 00:00:10,586

10
00:00:10,586 --> 00:00:10,774

11
00:00:10,774 --> 00:00:12,515

12
00:00:12,515 --> 00:00:12,706

13
00:00:12,706 --> 00:00:12,967

14
00:00:12,967 --> 00:00:13,407

15
00:00:13,407 --> 00:00:13,607

16
00:00:13,607 --> 00:00:13,858

17
00:00:13,858 --> 00:00:14,180

18
00:00:14,180 --> 00:00:14,309

19
00:00:14,309 --> 00:00:15,401

20
00:00:15,401 --> 00:00:15,651

21
00:00:15,651 --> 00:00:15,911

22
00:00:15,911 --> 00:00:17,570

23
00:00:17,570 --> 00:00:18,153

24
00:00:18,153 --> 00:00:18,340

25
00:00:18,340 --> 00:00:18,473

26
00:00:18,473 --> 00:00:18,798

27
00:00:18,798 --> 00:00:19,885

28
00:00:19,885 --> 00:00:20,784

29
00:00:20,784 --> 00:00:21,296

30
00:00:21,296 --> 00:00:21,745

31
00:00:21,745 --> 00:00:22,007

32
00:00:22,007 --> 00:00:25,908

33
00:00:25,908 --> 00:00:26,940

34
00:00:26,940 --> 00:00:27,700

35
00:00:27,700 --> 00:00:27,961

36
00:00:27,961 --> 00:00:28,470

37
00:00:28,470 --> 00:00:32,470

38
00:01:50,989 --> 00:01:52,341

39
00:01:52,341 --> 00:01:53,753

40
00:01:53,753 --> 00:01:54,454

41
00:01:54,454 --> 00:01:55,412
(อาจารย์เกวลี) เดี๋ยวเริ่มเลยก็ได้ค่ะ ประมาณนี้

42
00:01:55,412 --> 00:01:56,242
นะคะ

43
00:01:56,242 --> 00:01:56,507

44
00:01:56,507 --> 00:01:58,232
วันนี้จะเป็นบทที่ 5

45
00:01:58,232 --> 00:01:59,715
เกี่ยวกับ

46
00:01:59,715 --> 00:02:00,995
กระบวน

47
00:02:00,995 --> 00:02:04,995
การปรับบรรทัดฐาน

48
00:02:13,857 --> 00:02:11,363
นะคะ ฃ

49
00:02:02,341 --> 00:02:02,597

50
00:02:02,597 --> 00:02:04,898

51
00:02:04,898 --> 00:02:08,169

52
00:02:08,169 --> 00:02:09,839

53
00:02:09,839 --> 00:02:13,481
มันก็จะมีความหมายแล้วก็จุดประสงค์ของการทำ

54
00:02:13,481 --> 00:02:17,481
การปรับมาตรฐานนะคะ แล้วก็จะเกี่ยวกับ

55
00:02:17,523 --> 00:02:17,725

56
00:02:17,725 --> 00:02:21,725
ฟังก์ชั่นการขึ้นต่อกันและกระบวนการในการทำ Normalization นมคาร์เนชั่นด้วย

57
00:02:22,076 --> 00:02:22,790
นะคะ

58
00:02:22,790 --> 00:02:26,790
มี 3 ข้อวันนี้

59
00:02:27,141 --> 00:02:27,781

60
00:02:27,781 --> 00:02:27,970

61
00:02:27,970 --> 00:02:31,970
โดยการประปาฐานนะคะ หรือว่า Normalization นี่มันจะเป็นทฤษฎีที่

62
00:02:33,813 --> 00:02:37,774
คนที่จะต้องออกแบบฐานข้อมูลเขาจะต้องมาแปลงข้อมูล

63
00:02:37,774 --> 00:02:40,113
ข้อมูลอาจจะเป็นข้อมูลที่ซับซ้อน

64
00:02:40,113 --> 00:02:43,170
นะคะ ให้มันง่าย

65
00:02:43,170 --> 00:02:44,259
เข้าใจก็ง่าย

66
00:02:44,259 --> 00:02:48,259
ใช้งานก็ง่าย แล้วก็ต้องเป็นระบบที่หลังจากออกแบบแล้วนำไปใช้งานจริงต้องเกิดปัญหาน้อยที่สุดนะคะ

67
00:02:51,243 --> 00:02:54,128

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

69
00:03:08,835 --> 00:03:08,021

70
00:02:59,317 --> 00:02:59,578

71
00:02:59,578 --> 00:03:02,198
จริง ๆ เราก็จะเรียกสั้น ๆ ว่า...

72
00:03:02,198 --> 00:03:04,579
ระดับแรกนึกว่า 1NF

73
00:03:04,579 --> 00:03:04,959

74
00:03:04,959 --> 00:03:05,733

75
00:03:05,733 --> 00:03:06,561

76
00:03:06,561 --> 00:03:08,423
2NF 3NF

77
00:03:08,423 --> 00:03:09,572

78
00:03:09,572 --> 00:03:09,958

79
00:03:09,958 --> 00:03:11,753
ในระดับปริญญาตรีนี่

80
00:03:11,753 --> 00:03:12,281

81
00:03:12,281 --> 00:03:13,875
ถึง 3NF ได้

82
00:03:13,875 --> 00:03:15,409
ก็ถือว่าเก่งมากแล้ว

83
00:03:15,409 --> 00:03:16,628
นะคะ

84
00:03:16,628 --> 00:03:16,881

85
00:03:16,881 --> 00:03:20,801
ถ้าเป็นระดับที่สูงขึ้นไปอีกก็จะถึงได้ถึง 5NF เลย

86
00:03:20,801 --> 00:03:24,801
นะคะ

87
00:03:25,211 --> 00:03:27,451

88
00:03:27,451 --> 00:03:28,483
อันนี้เป็น

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

90
00:03:37,591 --> 00:03:38,421
การระบบจัดเ

91
00:03:38,421 --> 00:03:41,813
การฐานข้อมูลแบบไหน มีความต้องการใช้

92
00:03:41,813 --> 00:03:44,704
ตารางกี่ตารางในฐานข้อมูลนะคะ

93
00:03:44,704 --> 00:03:48,704
หลังจากนั้น

94
00:03:52,219 --> 00:03:51,860
ก็จะมา

95
00:03:45,663 --> 00:03:46,813
วาดรูป

96
00:03:46,813 --> 00:03:48,414
แผนที่โรงเรียนอาทิตย์ที่แล้ว

97
00:03:48,414 --> 00:03:51,934
นะคะ วาดเป็นแผนภาพเพื่อให้เข้าใจว่า

98
00:03:51,934 --> 00:03:55,934
สิ่งที่เรากำลังจะออกแบบหรือสิ่งที่เรากำลังจะทำฐานข้อมูล

99
00:04:02,835 --> 00:04:00,380
นี่

100
00:03:56,369 --> 00:04:00,369
มันตรงตามความต้องการหรือเปล่านะคะ

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

102
00:04:05,457 --> 00:04:09,118
ยังไม่เป็นบรรทัดฐานหรือว่ายังไม่มีการจัดระเบียบความคิด

103
00:04:09,118 --> 00:04:10,138

104
00:04:10,138 --> 00:04:14,138
ข้อมูลที่ซ้ำซ้อนกันออกไป หรืออาจจะมีคีย์หลักที่มัน

105
00:04:23,317 --> 00:04:23,252
ทับซ้อนกัน

106
00:04:15,009 --> 00:04:19,009
นะคะ เราก็เลยจะต้องเอาข้อมูลจากที่เราว่าอาทิตย์ที่แล้วนี่

107
00:04:19,755 --> 00:04:20,466

108
00:04:20,466 --> 00:04:22,895
เข้าสู่กระบวนการปรับพื้นฐานก่อน

109
00:04:22,895 --> 00:04:24,561
ซึ่งอย่างที่บอก

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

111
00:04:26,748 --> 00:04:27,960
เก่งมากแล้ว

112
00:04:27,960 --> 00:04:29,560

113
00:04:29,560 --> 00:04:31,232
อย่างน้อย 2-3 นะคะ

114
00:04:31,232 --> 00:04:35,232
ไอ้บอยคอร์ดกับ 4 นี่ไม่ทำก็ก็ก็รักไว้ได้นะคะ แต่อย่างน้อยต้องถึง

115
00:04:37,006 --> 00:04:39,202

116
00:04:39,202 --> 00:04:41,159

117
00:04:41,159 --> 00:04:43,029

118
00:04:43,029 --> 00:04:45,860
วัตถุประสงค์ของการปรับฐานนะคะ

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

120
00:04:51,806 --> 00:04:55,806
เนื้อหาแล้วก็พื้นที่ในการเก็บข้อมูลอย่างมันก็จะเยอะ

121
00:04:58,292 --> 00:04:58,481

122
00:04:58,481 --> 00:04:59,440

123
00:04:59,440 --> 00:05:00,851
ก็ทำให้สิ้นเปลือง

124
00:05:00,851 --> 00:05:02,252
ประมาณเหมือนกัน

125
00:05:02,252 --> 00:05:05,973
รวมถึงลดปัญหาความไม่ถูกต้องของข้อมูล

126
00:05:05,973 --> 00:05:09,973
ข้อมูลนี่นอกจากที่จะไม่เกิดความซ้ำซ้อนกันแล้วนี่

127
00:05:11,223 --> 00:05:13,339
อาจจะเกิดจากสาเหตุ คือ

128
00:05:13,339 --> 00:05:16,806
ถ้าเหมือนที่ตัดกระจกทุกอย่างก็คือถ้าเราเก็บข้อมูลหลาย ๆ ที่

129
00:05:16,806 --> 00:05:17,129

130
00:05:17,129 --> 00:05:18,918
นักศึกษา

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

132
00:05:24,693 --> 00:05:26,668
คุณอาจจะเปลี่ยนแปลงเบอร์โทรศัพท์

133
00:05:26,668 --> 00:05:28,211
ที่บ้าน

134
00:05:28,211 --> 00:05:30,381
ก็ต้องไปตามเปลี่ยนทุกที่เลย

135
00:05:30,381 --> 00:05:31,994
นะคะ

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

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

138
00:05:45,000 --> 00:05:46,280
นะคะ เก็บไว้ที่เดียว

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

140
00:05:51,224 --> 00:05:51,732

141
00:05:51,732 --> 00:05:52,563

142
00:05:52,563 --> 00:05:56,158
นะคะ แต่ถ้ามันมีการเปลี่ยนแปลงข้อมูลหรือมีการลบหรือการเพิ่มข้อมูล

143
00:05:56,158 --> 00:05:56,418

144
00:05:56,418 --> 00:05:58,661
เพื่อให้ข้อมูลเป็นปัจจุบันมากที่สุด

145
00:05:58,661 --> 00:06:00,450
เราจะเก็บข้อมูลไว้ที่เดียว

146
00:06:00,450 --> 00:06:02,122
แก้ไขก็ที่เดียว

147
00:06:02,122 --> 00:06:05,450
เพราะฉะนั้น ข้อมูลก็จะเป็นข้อมูลที่ถูกต้องแล้วก็

148
00:06:05,450 --> 00:06:07,646
ปัจจุบันด้วย

149
00:06:07,646 --> 00:06:08,971

150
00:06:08,971 --> 00:06:11,025
แล้วก็

151
00:06:11,025 --> 00:06:15,025
อย่างที่ให้เหตุผลในการเก็บข้อมูลที่เดียวนี่มันก็จะลดความผิดพลาดที่เกิดจากการ

152
00:06:16,473 --> 00:06:19,674
เปลี่ยนแปลงข้อมูลปรับปรุงข้อมูลนะคะ เหมือนที่บอกว่าคือ

153
00:06:19,674 --> 00:06:19,863

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

155
00:06:26,786 --> 00:06:30,786
พร้อม ๆ กันถ้าต้องการข้อมูลนะคะ

156
00:06:31,029 --> 00:06:34,173

157
00:06:34,173 --> 00:06:38,173
ความซ้ำซ้อนกันของข้อมูลนี่ หรือมันอาจจะเกิดความผิดพลาดของการปรับปรุงข้อมูลนะคะ

158
00:06:39,497 --> 00:06:42,698
แนวคิดที่สำคัญของการออกแบบฐานข้อมูล

159
00:06:42,698 --> 00:06:43,465

160
00:06:43,465 --> 00:06:46,285
นี่ ก็คือการออกแบบข้อมูลที่ซ้ำซ้อนกันน้อยที่สุด

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

162
00:06:50,769 --> 00:06:54,170
ถ้าสมมติว่าข้อมูลมันซ้ำซ้อนกันมากเกินไปหรือ

163
00:06:54,170 --> 00:06:55,965
ปริมาณข้อมูลมันเยอะเกินไป

164
00:06:55,965 --> 00:06:57,182

165
00:06:57,182 --> 00:06:58,462

166
00:06:58,462 --> 00:06:58,591

167
00:06:58,591 --> 00:07:00,124

168
00:07:00,124 --> 00:07:04,124
อย่างเช่น ตัวอย่างนะคะ ตารางด้านบนตารางสีเทาข้างบน

169
00:07:05,442 --> 00:07:07,814
นะคะ จะเป็นตัวอย่างการออกแบบ

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

171
00:07:17,245 --> 00:07:19,686
นะคะ จะเห็นได้ว่า

172
00:07:19,686 --> 00:07:20,200

173
00:07:20,200 --> 00:07:20,898
ตาราง

174
00:07:20,898 --> 00:07:21,727
พนักงาน

175
00:07:21,727 --> 00:07:25,318
นี่จะมีส่วนหนึ่งที่เป็นข้อมูลของรหัสสาขา

176
00:07:25,318 --> 00:07:26,159
ห้อยไว้อยู่

177
00:07:26,159 --> 00:07:26,670

178
00:07:26,670 --> 00:07:28,854
ถามว่าทำไมไม่เอา

179
00:07:28,854 --> 00:07:32,495
ข้อมูลสาขามาไว้ในตารางพนักงานทีเดียวเลยล่ะ

180
00:07:32,495 --> 00:07:34,684
ทำไมต้องแยกออก

181
00:07:34,684 --> 00:07:35,459

182
00:07:35,459 --> 00:07:35,778

183
00:07:35,778 --> 00:07:37,311
อย่างถ้า

184
00:07:37,311 --> 00:07:39,168
ศึกษาดูคนแรกนะคะ

185
00:07:39,168 --> 00:07:43,168
พนักงานคนแรก รหัสสาขา B005

186
00:07:45,382 --> 00:07:47,500
ก็คือสาขา

187
00:07:47,500 --> 00:07:49,741
เชียงใหม่

188
00:07:49,741 --> 00:07:49,991

189
00:07:49,991 --> 00:07:50,122

190
00:07:50,122 --> 00:07:50,585

191
00:07:50,585 --> 00:07:51,416

192
00:07:51,416 --> 00:07:54,551
ถ้าสมมติว่าพนักงานคนที่ 1 ลาออก

193
00:07:54,551 --> 00:07:55,390

194
00:07:55,390 --> 00:07:57,307

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

196
00:08:00,000 --> 00:08:01,352

197
00:08:01,352 --> 00:08:04,032
มีการลบข้อมูล

198
00:08:04,032 --> 00:08:05,766
ลบคนนี้ออก

199
00:08:05,766 --> 00:08:08,917
ขีดฆ่าทิ้ง

200
00:08:08,917 --> 00:08:10,577
ฆ่าทิ้ง

201
00:08:10,577 --> 00:08:13,458
สิ่งไหนที่หายไปบ้าง

202
00:08:13,458 --> 00:08:16,993
แน่นอนสาขาเชียงใหม่จะหายไปด้วย

203
00:08:16,993 --> 00:08:18,843
นะคะ ถ้าสมมติเราอยู่ด้วยกัน

204
00:08:18,843 --> 00:08:22,497
แต่ถ้าสมมุติพนักงานคนนี้ลาออก สาขาเชียงใหม่ยังอยู่ไหม

205
00:08:22,497 --> 00:08:23,847
ยังอยู่

206
00:08:23,847 --> 00:08:25,067
นะคะ

207
00:08:25,067 --> 00:08:27,049
ซึ่งแตกต่างจากด้านล่าง

208
00:08:27,049 --> 00:08:28,398
นะคะ ด้านล่าง

209
00:08:28,398 --> 00:08:30,639
จะเห็นว่า

210
00:08:30,639 --> 00:08:33,331
ถ้าสมมติว่าจะลบทิ้งหมดเลย

211
00:08:33,331 --> 00:08:34,292

212
00:08:34,292 --> 00:08:35,192

213
00:08:35,192 --> 00:08:38,776
กากบาททิ้ง

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

215
00:08:40,837 --> 00:08:43,717
อันนี้คือการออกแบบที่ไม่ดี

216
00:08:43,717 --> 00:08:45,449
เหมือน

217
00:08:45,449 --> 00:08:47,047
คนข้างล่าง

218
00:08:47,047 --> 00:08:47,891
ออก

219
00:08:47,891 --> 00:08:48,659

220
00:08:48,659 --> 00:08:50,192
สาขาพิษณุโลก

221
00:08:50,192 --> 00:08:52,695
ก็หายไปด้วย

222
00:08:52,695 --> 00:08:53,072

223
00:08:53,072 --> 00:08:55,447
แต่ถ้าเป็นตารางด้านบน

224
00:08:55,447 --> 00:08:56,101

225
00:08:56,101 --> 00:08:57,888
นะคะ ถ้าคนนี้ลาออก

226
00:08:57,888 --> 00:08:59,233
สาขายังอยู่ไหม

227
00:08:59,233 --> 00:09:00,255
ยังอยู่เหมือนเดิม

228
00:09:00,255 --> 00:09:02,950

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

230
00:09:09,800 --> 00:09:13,462

231
00:09:13,462 --> 00:09:15,833

232
00:09:15,833 --> 00:09:18,324
ตัวอย่าง

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

234
00:09:20,766 --> 00:09:22,878
ปัญหาความซ้ำซ้อนกันของข้อมูล

235
00:09:22,878 --> 00:09:23,588
ออกได้

236
00:09:23,588 --> 00:09:24,759

237
00:09:24,759 --> 00:09:28,759
เช่น ตัวนี้อันนี้เป็นตารางที่ออกแบบที่ไม่ดีนะคะ

238
00:09:29,164 --> 00:09:29,685

239
00:09:29,685 --> 00:09:31,534
เห็นไหมคะ ว่ามันจะมี

240
00:09:31,534 --> 00:09:32,754
รหัสสาขา

241
00:09:32,754 --> 00:09:34,685
แล้วก็ที่อยู่

242
00:09:34,685 --> 00:09:37,757
อยู่ในตารางเดียวกัน

243
00:09:37,757 --> 00:09:40,379
ถ้าสมมติว่าอาจารย์เพิ่ม

244
00:09:40,379 --> 00:09:42,110
เข้ามาใหม่อีก 1 คน

245
00:09:42,110 --> 00:09:43,071
นะคะ E

246
00:09:43,071 --> 00:09:45,320

247
00:09:45,320 --> 00:09:45,892

248
00:09:45,892 --> 00:09:46,410

249
00:09:46,410 --> 00:09:46,924

250
00:09:46,924 --> 00:09:47,495

251
00:09:47,495 --> 00:09:47,945

252
00:09:47,945 --> 00:09:48,334

253
00:09:48,334 --> 00:09:51,340
M10 ตรงนี้นะคะ ถ้าต้องการเพิ่มพนักงานสาขา

254
00:09:51,340 --> 00:09:54,037
เชียงใหม่ก็ต้องมากรอกข้อมูลตรงนี้อีก

255
00:09:54,037 --> 00:09:54,367

256
00:09:54,367 --> 00:09:57,177
เชียงใหม่

257
00:09:57,177 --> 00:09:59,030
โน่นนี่นั่นโน่น แต่ถ้า

258
00:09:59,030 --> 00:10:00,887
การออกแบบฐานข้อมูลที่ดีเนี่ย

259
00:10:00,887 --> 00:10:03,578
เราแค่ใส่รหัสสาขา

260
00:10:03,578 --> 00:10:05,608

261
00:10:05,608 --> 00:10:08,260
ไม่จำเป็นจะต้องพิมพ์ที่อยู่ทุกครั้งก็ได้นะค

262
00:10:08,260 --> 00:10:08,583

263
00:10:08,583 --> 00:10:10,125

264
00:10:10,125 --> 00:10:10,576

265
00:10:10,576 --> 00:10:12,234

266
00:10:12,234 --> 00:10:12,684

267
00:10:12,684 --> 00:10:12,814

268
00:10:12,814 --> 00:10:15,376
ะ เหมือนเวลาคุณไปธนาคารใช่ไหมคะ

269
00:10:15,376 --> 00:10:15,628

270
00:10:15,628 --> 00:10:17,616
คุณก็แค่ยื่นบัตรประชาชน

271
00:10:17,616 --> 00:10:21,022
พนักงานธนาคารก็จะกรอกเลขบัตรประชาชนคุณลงไป

272
00:10:21,022 --> 00:10:21,468

273
00:10:21,468 --> 00:10:22,167

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

275
00:10:27,870 --> 00:10:28,641

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

277
00:10:36,462 --> 00:10:39,663

278
00:10:39,663 --> 00:10:40,494

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

280
00:10:51,716 --> 00:10:52,290

281
00:10:52,290 --> 00:10:53,827

282
00:10:53,827 --> 00:10:55,677
อันนี้ก็เช่นเดียวกัน

283
00:10:55,677 --> 00:10:59,471
ถ้าการออกแบบไม่ดีแต่เราต้องกรอกข้อมูลถูกต้องทุกช่องทุกช่องเลยนี่

284
00:10:59,471 --> 00:11:00,622
มันทำให้

285
00:11:00,622 --> 00:11:02,803
อาจจะคนเดียวไม่เดือดร้อนค่ะ

286
00:11:02,803 --> 00:11:03,446

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

288
00:11:08,960 --> 00:11:10,558
นั่งกรอก

289
00:11:10,558 --> 00:11:13,954
เชียงใหม่เป็นพัน ๆ ครั้งนี่เสียเวลามาก ๆ

290
00:11:13,954 --> 00:11:17,954
นะคะ อันนี้คือการออกแบบที่ไม่ดี

291
00:11:18,314 --> 00:11:20,876
นะคะ

292
00:11:20,876 --> 00:11:21,008

293
00:11:21,008 --> 00:11:25,008
กลับอีกอย่างหนึ่ง ถ้าสมมติว่าเมื่อกี้อาจารย์เพิ่มพนักงานแล้ว

294
00:11:27,218 --> 00:11:27,669

295
00:11:27,669 --> 00:11:31,638
ถ้าอาจารย์อยากเพิ่มแค่สาขา

296
00:11:31,638 --> 00:11:34,983
อยากเพิ่มแค่สาขา ซึ่งในตารางนี้

297
00:11:34,983 --> 00:11:35,742
ค

298
00:11:35,742 --> 00:11:36,064

299
00:11:36,064 --> 00:11:40,064
ีย์หลักจำได้ไหมคะ ที่รักจะเป็นคีย์ที่ขีดเส้นใต้

300
00:11:41,196 --> 00:11:42,157

301
00:11:42,157 --> 00:11:45,811
ซึ่งอาจารย์อยากเพิ่มสาขาสมุทรปราการจะเพิ่มบี

302
00:11:45,811 --> 00:11:46,256

303
00:11:46,256 --> 00:11:48,109
100

304
00:11:48,109 --> 00:11:49,720
สกลนคร

305
00:11:49,720 --> 00:11:50,808
ละครนะคะ

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

307
00:11:55,236 --> 00:11:55,873

308
00:11:55,873 --> 00:11:57,035

309
00:11:57,035 --> 00:11:58,883
นะคะ ถ้าจากตารางนี้

310
00:11:58,883 --> 00:12:02,883
นะคะ เราจะเพิ่มเฉพาะชื่อสาขาไม่ได้

311
00:12:03,364 --> 00:12:04,454

312
00:12:04,454 --> 00:12:08,173
เนื่องจากเรายังไม่มีรหัสพนักงาน เพราะรหัสพนักงานเป็นคีย์หลัก

313
00:12:08,173 --> 00:12:09,835
ค

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

315
00:12:13,956 --> 00:12:14,518

316
00:12:14,518 --> 00:12:15,679

317
00:12:15,679 --> 00:12:18,567
อันนี้ก็ทำให้เราเพิ่มสาขาไม่ได้

318
00:12:18,567 --> 00:12:19,968
เพราะเราไม่มีพนักงาน

319
00:12:19,968 --> 00:12:21,454
อันนี้ก็เป็น

320
00:12:21,454 --> 00:12:25,454
ข้อผิดพลาดในการเพิ่มข้อมูล ถ้าเราออกแบบ

321
00:12:25,491 --> 00:12:29,491
ตารางแบบนี้นะคะ

322
00:12:29,852 --> 00:12:30,292

323
00:12:30,292 --> 00:12:31,513
นี่ก็คือ

324
00:12:31,513 --> 00:12:35,224
ปัญหาที่เกิดขึ้นจากการออกแบบตารางที่ดี

325
00:12:35,224 --> 00:12:36,895

326
00:12:36,895 --> 00:12:37,926

327
00:12:37,926 --> 00:12:39,905
ก

328
00:12:39,905 --> 00:12:43,297
ับปัญหาต่อมาเป็นปัญหาการลบข้อมูลที่อาจารย์บอก

329
00:12:43,297 --> 00:12:46,379
ถ้าพนักงานคนนี้

330
00:12:46,379 --> 00:12:48,180
ลาออก

331
00:12:48,180 --> 00:12:51,637
สาขาเชียงใหม่หายไปด้วย

332
00:12:51,637 --> 00:12:53,303

333
00:12:53,303 --> 00:12:54,918
ลบไป

334
00:12:54,918 --> 00:12:56,954
กรณีความผิดพลาดจากการเปลี่ยนแปลง

335
00:12:56,954 --> 00:12:57,087

336
00:12:57,087 --> 00:13:00,802
เหมือน B003 B003 นะคะ

337
00:13:00,802 --> 00:13:03,180
เป็นกรุงเทพฯ ใช่ไหมคะ

338
00:13:03,180 --> 00:13:03,502

339
00:13:03,502 --> 00:13:06,122
แล้วคราวนี้ข้อมูลมันอยู่ในตารางเดียวกัน

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

341
00:13:14,010 --> 00:13:17,533
สมมติมีพนักงาน 3,000 คน

342
00:13:17,533 --> 00:13:19,972
คุณต้องแก้กรุงเทพฯ 3,000 ครั้ง

343
00:13:19,972 --> 00:13:22,285

344
00:13:22,285 --> 00:13:23,754
เป็นนนทบุรี

345
00:13:23,754 --> 00:13:24,004

346
00:13:24,004 --> 00:13:25,417

347
00:13:25,417 --> 00:13:25,735

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

349
00:13:31,190 --> 00:13:34,450
นั่งแก้ทีละ 3,000 คน ไม่ใช่เรื่องสนุกแน่ ๆ นะคะ

350
00:13:34,450 --> 00:13:38,450

351
00:13:38,621 --> 00:13:42,464
อันนี้ก็เป็นปัญหานะคะ เพราะฉะนั้น

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

353
00:13:48,366 --> 00:13:48,935
อันนี้คือ

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

355
00:13:53,110 --> 00:13:57,110
องค์กรขนาดใหญ่เป็นบริษัทเป็นโรงงานระดับโรงเรียนมีนักเรียนเป็น 200-300 2,000-3 คนก็ได้นะคะ

356
00:14:02,407 --> 00:14:05,865
มีปัญหาเยอะมากถ้าสมมุติว่าเราจัดการตารางไม่ดี

357
00:14:05,865 --> 00:14:09,517

358
00:14:09,517 --> 00:14:09,967

359
00:14:09,967 --> 00:14:10,097

360
00:14:10,097 --> 00:14:10,481

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

362
00:14:17,479 --> 00:14:18,625

363
00:14:18,625 --> 00:14:20,095

364
00:14:20,095 --> 00:14:20,738

365
00:14:20,738 --> 00:14:24,738
ฟังก์ชั่นการขึ้นต่อกันนะคะ อันนี้เดี๋ยว

366
00:14:24,839 --> 00:14:25,477

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

368
00:14:32,405 --> 00:14:34,135
เดี๋ยวดูตัวอย่างเลยละกัน

369
00:14:34,135 --> 00:14:35,166

370
00:14:35,166 --> 00:14:35,678

371
00:14:35,678 --> 00:14:38,749
อย่างเช่น ทางนี้นะคะ

372
00:14:38,749 --> 00:14:42,019
ดูจากรหัสพนักงานนะคะ

373
00:14:42,019 --> 00:14:45,860
เราจะเห็นได้ว่ารหัสพนักงาน

374
00:14:45,860 --> 00:14:47,653
จะส่งผลกับชื่อ

375
00:14:47,653 --> 00:14:50,353
ตำแหน่ง

376
00:14:50,353 --> 00:14:50,611

377
00:14:50,611 --> 00:14:53,813
สัญลักษณ์ของการขึ้นต่อกันนะคะ อันไหนเป็นตัวหลัก

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

379
00:14:58,494 --> 00:15:02,494
ดูทิศทางตามหัวลูกศรนะคะ อันไหนเป็นตัวหลัก อันไหนเป็นตัวรอง

380
00:15:03,165 --> 00:15:07,165
นะคะ

381
00:15:07,716 --> 00:15:09,379
อย่างเช่น

382
00:15:09,379 --> 00:15:13,379
ตัวนี้ถามว่าตำแหน่งมาชี้ที่รหัสพนักงานได้ไหมนะคะ ถามว่า

383
00:15:14,963 --> 00:15:16,823
ไม่ได้

384
00:15:16,823 --> 00:15:20,823
เพราะการขึ้นต่อการจะต้องเป็นลักษณะ 1 ต่อหนึ่งเท่านั้น

385
00:15:23,299 --> 00:15:23,679

386
00:15:23,679 --> 00:15:27,679
เป็น 1 ต่อกลุ่มไม่ได้

387
00:15:33,999 --> 00:15:34,216

388
00:15:34,216 --> 00:15:35,025

389
00:15:35,025 --> 00:15:39,025
ชนิดของการขึ้นต่อกันนะคะ จะมีอยู่ 4 ชนิดนะคะ

390
00:15:39,450 --> 00:15:41,502

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

392
00:15:44,441 --> 00:15:47,463
นะคะ

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

394
00:15:49,516 --> 00:15:52,327
ตารางนะคะ จะมีคอลัมน์

395
00:15:52,327 --> 00:15:54,969
1 คอลัมน์ หรือมากกว่า 1 คอลัมน์มาประกอบกัน

396
00:15:54,969 --> 00:15:55,354

397
00:15:55,354 --> 00:15:57,531
นะคะ โดยในคอลัมน์นะนี่

398
00:15:57,531 --> 00:15:58,366

399
00:15:58,366 --> 00:16:01,307
จะบรรจุค่าที่ระบุ

400
00:16:01,307 --> 00:16:02,336
ความพิเศษ

401
00:16:02,336 --> 00:16:04,515
ของแถว ๆ ได้อย่างชัดเจน

402
00:16:04,515 --> 00:16:08,515
Attribute หนึ่งนี่จะเป็นค่าเฉพาะที่บอกเลยว่า

403
00:16:09,449 --> 00:16:13,449
ข้อมูลแถวนั้นนี่มันมีลักษณะพิเศษอย่างไร เฉพาะตัวยังไง

404
00:16:13,745 --> 00:16:14,132

405
00:16:14,132 --> 00:16:15,475

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

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

408
00:16:24,126 --> 00:16:28,126
นะคะ

409
00:16:29,828 --> 00:16:33,828
อย่างเช่น การขึ้นต่อกันอย่างสมบูรณ์อันแรกนะคะ

410
00:16:34,254 --> 00:16:37,914
Attribute ที่... ก็คือคอลัมน์ที่ไม่ใช่คีย์หลัก ค

411
00:16:37,914 --> 00:16:40,025
ีย์หลักจำได้ใช่ไหมคะ คีย์หลักจะเป็น

412
00:16:40,025 --> 00:16:42,396
คอลัมน์ที่มีขีดเส้นใต้

413
00:16:42,396 --> 00:16:44,517

414
00:16:44,517 --> 00:16:45,220

415
00:16:45,220 --> 00:16:46,437

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

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

418
00:16:52,589 --> 00:16:55,790
เช่น เลขบัตรประชาชน

419
00:16:55,790 --> 00:16:57,321

420
00:16:57,321 --> 00:16:58,923
จะขึ้น

421
00:16:58,923 --> 00:17:02,923
จะเป็นเจ้าของชื่อนี้เท่านั้นนะคะ

422
00:17:03,037 --> 00:17:07,037
เพราะฉะนั้น การขึ้นตัวกันอย่างสมบูรณ์จะเป็นลักษณะแบบ 1 ต่อ 1 นะคะ เลขบัตรประชาชน 1 เลข

423
00:17:09,058 --> 00:17:12,520
ต้องเป็นของคนคนเดียวเท่านั้น

424
00:17:12,520 --> 00:17:16,520
ไม่ใช่ว่าเลขประชาชนนี้ใช้ 10 คน เป็นไปไม่ได้นะคะ

425
00:17:20,728 --> 00:17:21,688

426
00:17:21,688 --> 00:17:22,328

427
00:17:22,328 --> 00:17:22,709

428
00:17:22,709 --> 00:17:23,669

429
00:17:23,669 --> 00:17:25,339
ตัวอย่างนะคะ

430
00:17:25,339 --> 00:17:28,030
ตารางที่มีคอลัมน์หลายตัว

431
00:17:28,030 --> 00:17:29,181
นะคะ

432
00:17:29,181 --> 00:17:32,132
ขึ้นอยู่กับคีย์หลักตัวเดียว เช่น

433
00:17:32,132 --> 00:17:33,104
คน 1 คนนี่

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

435
00:17:37,643 --> 00:17:38,985
แต่ว่า

436
00:17:38,985 --> 00:17:42,985
เขาจะต้องขึ้นตรงกับเลขบัตรประชาชนเดียวเท่านั้น ถามว่า 3 คนนี้

437
00:17:43,737 --> 00:17:45,469
อาจจะเกิดวันเดียวกันก็ได้ค่ะ

438
00:17:45,469 --> 00:17:45,849

439
00:17:45,849 --> 00:17:49,762
แต่เลขบัตรประชาชนเขาจะไม่เหมือนกัน

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

441
00:17:52,390 --> 00:17:56,353
นะคะ แต่เลขบัตรประชาชนเขาจะไม่ซ้ำกัน

442
00:17:56,353 --> 00:17:56,935

443
00:17:56,935 --> 00:17:57,836

444
00:17:57,836 --> 00:18:01,836
คืออะไรซ้ำกันได้ทุกอย่างค่ะ ยกเว้นหมายเลขบัตรประชาชน

445
00:18:06,042 --> 00:18:06,426

446
00:18:06,426 --> 00:18:08,536

447
00:18:08,536 --> 00:18:08,794

448
00:18:08,794 --> 00:18:09,237

449
00:18:09,237 --> 00:18:10,195

450
00:18:10,195 --> 00:18:11,475

451
00:18:11,475 --> 00:18:12,376

452
00:18:12,376 --> 00:18:15,329
แต่บางตารางนะคะ

453
00:18:15,329 --> 00:18:15,971

454
00:18:15,971 --> 00:18:18,468
ก็อาจจะเป็นการรวมตัวกันของค

455
00:18:18,468 --> 00:18:19,492

456
00:18:19,492 --> 00:18:22,645
ีย์หลักมากกว่า 1 คีย์หลักนะคะ

457
00:18:22,645 --> 00:18:26,549
มารวมกัน เช่น นักศึกษา

458
00:18:26,549 --> 00:18:27,825
นี้

459
00:18:27,825 --> 00:18:29,235
เอกสารนี้

460
00:18:29,235 --> 00:18:31,227
ลงทะเบียนวิชานี้

461
00:18:31,227 --> 00:18:33,527
ได้เกรดอะไร

462
00:18:33,527 --> 00:18:34,303

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

464
00:18:39,374 --> 00:18:40,010

465
00:18:40,010 --> 00:18:40,842

466
00:18:40,842 --> 00:18:43,974
ไม่ซ้ำนะคะ รหัสวิชาซ้ำกันได้ไหม

467
00:18:43,974 --> 00:18:47,378
ไม่ซ้ำนะคะ เหมือนชื่อวิชาการ

468
00:18:47,378 --> 00:18:48,410
รหัสหนึ่ง

469
00:18:48,410 --> 00:18:51,156
ชื่อคนอื่นก็รหัสวิชาอีกอันนึง

470
00:18:51,156 --> 00:18:51,668

471
00:18:51,668 --> 00:18:55,668
นี้จะไม่ซ้ำกันอยู่แล้วนะคะ

472
00:18:56,289 --> 00:18:57,308

473
00:18:57,308 --> 00:19:00,320
ต่อมาจะเป็นการขึ้นต่อกันบางส่วน

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

475
00:19:03,785 --> 00:19:04,235

476
00:19:04,235 --> 00:19:06,474
วิธีผสมนะคะ อาจจะเป็น

477
00:19:06,474 --> 00:19:09,356
เส้นตรงจากตารางอื่นหรือ 2 ตารางมารวมกัน

478
00:19:09,356 --> 00:19:13,356
อาจจะไม่ใช่คีย์หลักก็ได้แต่มันมีความหมายกับ

479
00:19:14,040 --> 00:19:15,068
คอลัมน์หนึ่ง

480
00:19:15,068 --> 00:19:17,428
นะคะ เดี๋ยวจะยกตัวอย่างเลยดีกว่า

481
00:19:17,428 --> 00:19:18,391

482
00:19:18,391 --> 00:19:21,109
นะคะ อย่างเช่น

483
00:19:21,109 --> 00:19:22,180

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

485
00:19:27,433 --> 00:19:28,595
แล้วก็

486
00:19:28,595 --> 00:19:32,595
มีการบอกด้วยว่ารหัสวิชานี้เป็นชื่อวิชาอะไร

487
00:19:33,007 --> 00:19:33,777
นะคะ

488
00:19:33,777 --> 00:19:34,157

489
00:19:34,157 --> 00:19:36,089
มันจะเป็นการเกิดขึ้นเมื่อ

490
00:19:36,089 --> 00:19:36,731
ค

491
00:19:36,731 --> 00:19:38,523
ีย์หลักประกอบกันด้วย

492
00:19:38,523 --> 00:19:41,354
คอลัมน์หรือว่า Attribute รวมกัน

493
00:19:41,354 --> 00:19:43,393

494
00:19:43,393 --> 00:19:47,393
โดยบางส่วนของคีย์หลักสามารถไประบุค่าอย่างอื่น

495
00:19:48,717 --> 00:19:50,447
ที่ไม่ใช่คีย์หลักได้

496
00:19:50,447 --> 00:19:54,447
นะคะ อย่างเช่น ในความสัมพันธ์นี้คีย์หลักจะมี 2 ตัว

497
00:19:55,702 --> 00:19:57,621
มีรหัสนักศึกษา

498
00:19:57,621 --> 00:19:59,612
กับรหัสวิชา

499
00:19:59,612 --> 00:20:02,118

500
00:20:02,118 --> 00:20:03,337
นะคะ ถามว่า

501
00:20:03,337 --> 00:20:06,538
ถ้ามีแต่

502
00:20:06,538 --> 00:20:08,066
รหัสนักศึกษา

503
00:20:08,066 --> 00:20:08,978

504
00:20:08,978 --> 00:20:09,875
เกรดนะคะ

505
00:20:09,875 --> 00:20:11,408
รหัสวิชา

506
00:20:11,408 --> 00:20:15,123
แล้วเราจะรู้ไหมว่าชื่อวิชาที่เราเรียนไปนี่

507
00:20:15,123 --> 00:20:18,467
วิชาอะไรนะคะ

508
00:20:18,467 --> 00:20:18,587

509
00:20:18,587 --> 00:20:20,505

510
00:20:20,505 --> 00:20:20,955

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

512
00:20:24,289 --> 00:20:27,881
นะคะ เพราะฉะนั้น รหัสวิชานี่มันเลยสามารถ

513
00:20:27,881 --> 00:20:31,881
ไปส่งผลกับชื่อวิชาได้เหมือนกัน เพราะเป็นตัวระบุว่า

514
00:20:31,984 --> 00:20:33,595
ไอ้รหัสวิชานี

515
00:20:33,595 --> 00:20:35,447
้ชื่อวิชาอะไร

516
00:20:35,447 --> 00:20:39,037
ก็คือคีย์หลักในตารางนี้มี 2 อัน

517
00:20:39,037 --> 00:20:41,469
แต่มีคีย์หลัก 1 ตัวนี่

518
00:20:41,469 --> 00:20:42,689
ไปมีผลกับ

519
00:20:42,689 --> 00:20:44,482
Attribute หนึ่งได้

520
00:20:44,482 --> 00:20:48,482
นะคะ อันนี้คือความขึ้นต่อกันบางส่วน

521
00:20:49,355 --> 00:20:49,736

522
00:20:49,736 --> 00:20:50,764

523
00:20:50,764 --> 00:20:51,288

524
00:20:51,288 --> 00:20:51,927

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

526
00:20:58,465 --> 00:21:00,702
มีแค่ 5 วิชามีเกรดมีการ

527
00:21:00,702 --> 00:21:02,305
วิชาเขียนโปรแกรม แล้วถาม

528
00:21:02,305 --> 00:21:06,305
รู้ไหมคะ ว่าเกรด A นี้ของใคร

529
00:21:06,608 --> 00:21:07,439

530
00:21:07,439 --> 00:21:10,261
นะคะ ไม่รู้ หรือว่า

531
00:21:10,261 --> 00:21:10,903

532
00:21:10,903 --> 00:21:14,873
... เดี๋ยวลบไปก่อนนะคะ

533
00:21:14,873 --> 00:21:16,544
หรือว่า

534
00:21:16,544 --> 00:21:20,544
การลบรหัสวิชาออก

535
00:21:20,638 --> 00:21:23,078
เหลือแต่ชื่อนักศึกษา เหลือเกรด

536
00:21:23,078 --> 00:21:26,352
ชื่อวิชา แล้วถามว่า

537
00:21:26,352 --> 00:21:28,650
รหัสวิชาอะไรล่ะที่เราได้เกรด A

538
00:21:28,650 --> 00:21:29,807

539
00:21:29,807 --> 00:21:33,466
เราก็ไม่ทราบอีกเหมือนกันนะคะ อันนี้ก็คือ

540
00:21:33,466 --> 00:21:35,837
การขึ้นต่อกันบางส่วนนะคะ

541
00:21:35,837 --> 00:21:37,625

542
00:21:37,625 --> 00:21:39,558

543
00:21:39,558 --> 00:21:40,388

544
00:21:40,388 --> 00:21:41,598

545
00:21:41,598 --> 00:21:41,799

546
00:21:41,799 --> 00:21:41,991

547
00:21:41,991 --> 00:21:44,229

548
00:21:44,229 --> 00:21:44,869

549
00:21:44,869 --> 00:21:47,827
อันนี้เป็นตัวอย่างนะคะ ต่อมาเป็นการขึ้นต่อกันบางส่วน แบบส่งต่อ

550
00:21:47,827 --> 00:21:51,827
ก็จะเป็นความสัมพันธ์ที่เกิดขึ้นก็ต่อเมื่อมีแอตทริบิวต์หรือว่าคนอื่นที่ไม่ใช่ครีม

551
00:21:55,581 --> 00:21:57,818
แต่ไปสามารถ

552
00:21:57,818 --> 00:21:59,493
ขึ้น

553
00:21:59,493 --> 00:22:03,013
สามารถระบุค่าของ Attribute อื่นใน Record ได้

554
00:22:03,013 --> 00:22:03,207

555
00:22:03,207 --> 00:22:07,207
ซึ่งเป็นการออกแบบที่ไม่เหมาะสม

556
00:22:07,378 --> 00:22:10,128

557
00:22:10,128 --> 00:22:12,497
เพราะส่วนใหญ่แล้วในตารางนี่

558
00:22:12,497 --> 00:22:13,019

559
00:22:13,019 --> 00:22:15,641
ถ้าเราจะระบุค่าอื่นให้กับ

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

561
00:22:18,713 --> 00:22:22,713

562
00:22:22,825 --> 00:22:26,825
ดูตัวอย่างนะคะ เช่นตารางนี้

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

564
00:22:39,298 --> 00:22:42,237
ตารางนี้ก็คือเลขประจำตัว

565
00:22:42,237 --> 00:22:42,950

566
00:22:42,950 --> 00:22:44,880
นะคะ โดยเลขประจำตัวนี่

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

568
00:22:49,806 --> 00:22:51,479
แต่คราวนี้

569
00:22:51,479 --> 00:22:52,823
รถประจำตำแหน่ง

570
00:22:52,823 --> 00:22:56,823
มันไม่ถูกระบุโดยเลขประจำตัว

571
00:22:58,329 --> 00:23:00,699
มันถูกระบุโดยรหัสตำแหน่ง

572
00:23:00,699 --> 00:23:02,444

573
00:23:02,444 --> 00:23:04,171
เหมือนถ้าเป็นผู้จัดการนี่

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

575
00:23:07,753 --> 00:23:10,196
แต่เขาไปเช็กที่รหัสตำแหน่ง

576
00:23:10,196 --> 00:23:12,824
จะไปเช็กกับเลขประจําตัว

577
00:23:12,824 --> 00:23:13,778

578
00:23:13,778 --> 00:23:17,113
การออกแบบที่ไม่ดี

579
00:23:17,113 --> 00:23:17,630

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

581
00:23:23,781 --> 00:23:25,504
เราควรจะแยก

582
00:23:25,504 --> 00:23:28,653
ตารางนี้

583
00:23:28,653 --> 00:23:30,954
ออกไปสร้างตารางใหม่เลยค่ะ

584
00:23:30,954 --> 00:23:31,146

585
00:23:31,146 --> 00:23:34,107
มันไม่ควรจะมาขึ้นกับตาราง

586
00:23:34,107 --> 00:23:37,432
ที่มีคีย์หลัก

587
00:23:37,432 --> 00:23:41,432
แต่ไม่สามารถระบุค่าข้อมูลตรงนี้ได้นี่มันไม่ควรทำ

588
00:23:41,913 --> 00:23:44,678

589
00:23:44,678 --> 00:23:46,086

590
00:23:46,086 --> 00:23:49,865
นะคะ กับต่อมาเป็นการขึ้นต่อการเชิงกลุ่ม

591
00:23:49,865 --> 00:23:50,116

592
00:23:50,116 --> 00:23:51,160
นะคะ

593
00:23:51,160 --> 00:23:55,160
ก็จะเป็นความสัมพันธ์ระหว่างคอลัมน์

594
00:23:55,191 --> 00:23:55,890

595
00:23:55,890 --> 00:23:59,890
หรือ Attribute ขึ้นต่อกันแบบสมบูรณ์นะคะ ก็ไปสามารถระบุค่าอื่นได้

596
00:23:59,936 --> 00:24:00,705

597
00:24:00,705 --> 00:24:01,086

598
00:24:01,086 --> 00:24:01,795

599
00:24:01,795 --> 00:24:03,013
นะคะ โดยที่

600
00:24:03,013 --> 00:24:04,547
อย่างเช่นตัวอย่าง

601
00:24:04,547 --> 00:24:08,547
ในตารางนี้นะคะ จะมีรหัสหลักสูตร

602
00:24:10,248 --> 00:24:13,520
สามารถระบุรหัสวิชาได้หลายวิชา เช่น

603
00:24:13,520 --> 00:24:16,981
จริง ๆ ในรหัสนักศึกษาจะเห็นได้ว่ามีเลข

604
00:24:16,981 --> 00:24:17,698

605
00:24:17,698 --> 00:24:19,162
122

606
00:24:19,162 --> 00:24:19,483

607
00:24:19,483 --> 00:24:21,337

608
00:24:21,337 --> 00:24:23,065
ในรหัสนักศึกษา

609
00:24:23,065 --> 00:24:27,065
ในนี่ 122 คืออะไร 122 ก็คือหลักสูตรที่เราเรียนอยู่

610
00:24:29,157 --> 00:24:30,434

611
00:24:30,434 --> 00:24:30,817

612
00:24:30,817 --> 00:24:31,076

613
00:24:31,076 --> 00:24:34,217
ซึ่งในหลักสูตรที่เราเรียนเนี่ยมันมีวิชา

614
00:24:34,217 --> 00:24:37,490
มากกว่า 20 วิชา

615
00:24:37,490 --> 00:24:38,769
นะคะ

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

617
00:24:45,302 --> 00:24:45,942

618
00:24:45,942 --> 00:24:47,293

619
00:24:47,293 --> 00:24:47,873

620
00:24:47,873 --> 00:24:48,456

621
00:24:48,456 --> 00:24:51,335
คะ ก็คือการขึ้นต่อกันแบบ

622
00:24:51,335 --> 00:24:53,387
มีค่ามากกว่า 1

623
00:24:53,387 --> 00:24:55,048
นะคะ รหัสหลักสูตร

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

625
00:24:57,749 --> 00:24:58,640

626
00:24:58,640 --> 00:25:00,564
นะคะ แล้วรหัสหลักสูตร

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

628
00:25:05,186 --> 00:25:07,426
เหมือนตอนนี้หลักสูตรที่เราเรียน

629
00:25:07,426 --> 00:25:10,181
นี่มีนักศึกษาเกือบ 100 คน

630
00:25:10,181 --> 00:25:12,490
รหัสหลักสูตรเดียวนะ

631
00:25:12,490 --> 00:25:13,642
นะคะ

632
00:25:13,642 --> 00:25:17,642
นี่คือความสัมพันธ์แบบสามารถระบุค่าได้มากกว่า 1 นั่นเอง แบบหลายค่า

633
00:25:18,833 --> 00:25:22,833

634
00:25:23,386 --> 00:25:24,347

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

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

637
00:25:40,173 --> 00:25:43,894
เป็นรูปแบบที่พร้อมที่จะเอาไปพัฒนาเป็นฐานข้อมูลได้

638
00:25:43,894 --> 00:25:44,144

639
00:25:44,144 --> 00:25:45,176

640
00:25:45,176 --> 00:25:46,907
นะคะ โดยหลักการนะคะ

641
00:25:46,907 --> 00:25:48,377
อย่างที่บอกมี 5 ระดับ

642
00:25:48,377 --> 00:25:49,977
แต่ระดับ

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

644
00:25:53,833 --> 00:25:53,970

645
00:25:53,970 --> 00:25:56,518

646
00:25:56,518 --> 00:25:58,063
นะคะ โดย

647
00:25:58,063 --> 00:26:02,063
คีย์หลักของการทำงานนะคะ ขั้นที่ 1 นะคะ

648
00:26:02,741 --> 00:26:06,515
กำจัดกลุ่มของข้อมูลที่มีความซ้ำซ้อนกันออกไป

649
00:26:06,515 --> 00:26:08,756
ข้อแรกง่ายมาก ๆ

650
00:26:08,756 --> 00:26:10,688

651
00:26:10,688 --> 00:26:13,698
ง่ายที่สุดก็คือ 1NF นะคะ

652
00:26:13,698 --> 00:26:16,579
ต่อมาครั้งที่ 2 อยู่ 2

653
00:26:16,579 --> 00:26:18,891
NF จะกำจัด

654
00:26:18,891 --> 00:26:22,222
การขึ้นต่อกันบางส่วนออก

655
00:26:22,222 --> 00:26:24,596

656
00:26:24,596 --> 00:26:27,681
อันสุดท้าย 3NF นะคะ

657
00:26:27,681 --> 00:26:30,619
กำจัดการขึ้นต่อกันของ Attribute ที่ไม่ใช่คีย์หลักนะคะ

658
00:26:30,619 --> 00:26:31,262

659
00:26:31,262 --> 00:26:33,690
เดี๋ยวจะมาดูทีละขั้น

660
00:26:33,690 --> 00:26:35,880
มันจะต้องเป็นอย่างไรบ้าง

661
00:26:35,880 --> 00:26:38,056

662
00:26:38,056 --> 00:26:38,566

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

664
00:26:42,611 --> 00:26:46,611
ให้นักศึกษาจำกระบวนการหลัก ๆ จะมี 3 ข้อนี่น่ะค่ะ

665
00:26:48,180 --> 00:26:50,490
ขั้นตอนการแรกเลยดูก่อนว่า

666
00:26:50,490 --> 00:26:52,219
คำซ้อนกันไหม

667
00:26:52,219 --> 00:26:56,134
ขั้นที่ 2 คือ มันขึ้นต่อกันแค่บางส่วนหรือเปล่า

668
00:26:56,134 --> 00:26:56,647

669
00:26:56,647 --> 00:27:00,178
อันที่ 3 อันไหนไม่ใช่ค

670
00:27:00,178 --> 00:27:03,888
ีย์หลัก แต่มันไปส่งผลกระทบกับข้อมูลอื่นได้หรือเปล่า

671
00:27:03,888 --> 00:27:05,041

672
00:27:05,041 --> 00:27:06,960
ดูขั้นตอนที่ 1 ก่อน

673
00:27:06,960 --> 00:27:07,671

674
00:27:07,671 --> 00:27:08,501

675
00:27:08,501 --> 00:27:09,852
ขั้นตอนที่ 1 ง่ายมาก

676
00:27:09,852 --> 00:27:12,096
นะคะ ทุก ๆ

677
00:27:12,096 --> 00:27:12,416

678
00:27:12,416 --> 00:27:15,107
คอลัมน์  Records

679
00:27:15,107 --> 00:27:19,017
จะต้องเป็นค่า Single Value คือ มีค่าเดียวเท่านั้น

680
00:27:19,017 --> 00:27:19,529

681
00:27:19,529 --> 00:27:21,768
จะใส่แบบนี้ไม่ได้

682
00:27:21,768 --> 00:27:25,108
เพราะฉะนั้น ข้อมูลทุกแถวจะต้องไม่มีค่าที่ซ้ำกัน

683
00:27:25,108 --> 00:27:26,770
อย่างเนี้ย

684
00:27:26,770 --> 00:27:28,241
นักศึกษาคนที่ 1

685
00:27:28,241 --> 00:27:28,502

686
00:27:28,502 --> 00:27:29,713
แน่นอนทั้ง 3

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

688
00:27:35,165 --> 00:27:35,997

689
00:27:35,997 --> 00:27:38,312
ข้อมูลมันก็จะเป็นแบบนี้

690
00:27:38,312 --> 00:27:42,221
ถ้าเราไม่มีการทำ Normalization

691
00:27:42,221 --> 00:27:43,183
แต่คราวนี้

692
00:27:43,183 --> 00:27:44,840
ขั้นตอนที่ 1

693
00:27:44,840 --> 00:27:45,553
เราจะ

694
00:27:45,553 --> 00:27:49,553
ข้อมูลที่ซ้ำซ้อนกันออก วิธีการง่ายมากค่ะ คือ แยกข้อมูลออกเป็นอย่างละแถวที่ไม่ซ้ำกัน

695
00:27:53,497 --> 00:27:54,210

696
00:27:54,210 --> 00:27:56,060
ดูตัวอย่างนะคะ

697
00:27:56,060 --> 00:27:56,653

698
00:27:56,653 --> 00:27:56,902

699
00:27:56,902 --> 00:28:00,902
วิธีการทำ 1NF ง่ายมากค่ะ ถ้าข้อมูลตัวไหนเป็นกลุ่มนี่ค่ะ

700
00:28:01,963 --> 00:28:02,794

701
00:28:02,794 --> 00:28:04,075
คนที่ 1 วิชา

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

703
00:28:08,114 --> 00:28:08,247

704
00:28:08,247 --> 00:28:10,935
สามารถทำในรูปแบบ 1NF ก็คือ

705
00:28:10,935 --> 00:28:13,116
เอามันกระจายออกมาค่ะ

706
00:28:13,116 --> 00:28:13,378

707
00:28:13,378 --> 00:28:15,870
กระจายข้อมูลพรุ่งนี้ออกมา

708
00:28:15,870 --> 00:28:17,658
กระจายออกใช่ไหมคะ กระจายออก

709
00:28:17,658 --> 00:28:19,139

710
00:28:19,139 --> 00:28:21,133
ง่ายมาก

711
00:28:21,133 --> 00:28:25,133
ข้อมูลพวกนี้ก็ทำซ้ำลงมา ทำซ้ำลงมา

712
00:28:25,290 --> 00:28:27,350
ทำซ้ำลงมา

713
00:28:27,350 --> 00:28:28,742

714
00:28:28,742 --> 00:28:31,182

715
00:28:31,182 --> 00:28:33,873
ถามว่า อ้าว เขาทำไม

716
00:28:33,873 --> 00:28:34,584

717
00:28:34,584 --> 00:28:35,095

718
00:28:35,095 --> 00:28:37,211
001 มันซ้ำกันได้ล่ะ

719
00:28:37,211 --> 00:28:37,399

720
00:28:37,399 --> 00:28:38,311

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

722
00:28:43,494 --> 00:28:46,319
เด็ก ๆ เลยง่ายมากค่ะ

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

724
00:28:51,319 --> 00:28:52,077

725
00:28:52,077 --> 00:28:53,748
อย่างน้อยในข้อสอบ

726
00:28:53,748 --> 00:28:57,661
ต้องทำ 1NF ให้ได้

727
00:28:57,661 --> 00:28:59,132
เพราะมันง่ายที่สุดแล้ว

728
00:28:59,132 --> 00:28:59,581

729
00:28:59,581 --> 00:29:01,827
นะคะ

730
00:29:01,827 --> 00:29:03,303

731
00:29:03,303 --> 00:29:07,303
อย่างเช่นตัวนี้นะคะ ก็กระจายออกมา

732
00:29:07,919 --> 00:29:09,257

733
00:29:09,257 --> 00:29:09,386

734
00:29:09,386 --> 00:29:10,218

735
00:29:10,218 --> 00:29:14,218
แล้วคราวนี้ถ้าเรากระจายข้อมูลเรียบร้อยแล้วนะคะ

736
00:29:14,333 --> 00:29:16,371
ก็จะมาดูว่าในตารางนี้ค่ะ

737
00:29:16,371 --> 00:29:16,956

738
00:29:16,956 --> 00:29:18,493
มันมีตาราง

739
00:29:18,493 --> 00:29:19,266

740
00:29:19,266 --> 00:29:19,583

741
00:29:19,583 --> 00:29:21,695
ของพนักงานใช่ไหมคะ

742
00:29:21,695 --> 00:29:23,877
เขาจะมีคีย์หลัก 1 ตัวแ

743
00:29:23,877 --> 00:29:25,027
ล้ว แต่ว่า

744
00:29:25,027 --> 00:29:25,480

745
00:29:25,480 --> 00:29:27,281
มันจะมีตัวนี้ค่ะ

746
00:29:27,281 --> 00:29:31,253
ตัวที่ 1 ตัวที่ 2 ที่มีคุณสมบัติ

747
00:29:31,253 --> 00:29:31,577

748
00:29:31,577 --> 00:29:35,034
เป็นคีย์หลักได้

749
00:29:35,034 --> 00:29:38,106
เราต้องแยกมันออกนะ

750
00:29:38,106 --> 00:29:40,549

751
00:29:40,549 --> 00:29:41,193

752
00:29:41,193 --> 00:29:43,042
คะ กระบวนการนะคะ

753
00:29:43,042 --> 00:29:44,780
ดูก่อนว่า

754
00:29:44,780 --> 00:29:48,780
ตารางเมื่อกี้นะคะ สิ่งที่ขึ้นตรงกับคีย์หลักตัวนี้นะคะ ก็จะเป็นตัวที่ 1 ตัวที่ 2 ตัวที่ 3

755
00:29:52,664 --> 00:29:54,513
สังเกตเราว่าคีย์หลักมีตัวเดียว

756
00:29:54,513 --> 00:29:55,798
แต่ข้อมูลมีเยอะมาก

757
00:29:55,798 --> 00:29:59,453
นะคะ ออกมาได้อันแรกเลย

758
00:29:59,453 --> 00:29:59,717

759
00:29:59,717 --> 00:30:00,608

760
00:30:00,608 --> 00:30:01,508
รหัส

761
00:30:01,508 --> 00:30:02,020

762
00:30:02,020 --> 00:30:06,020
Project นะคะ แล้วก็ชื่อ Projeนะคะ ใครเป็นผู้จัดการเงินเดือนเท่าไหร่

763
00:30:06,759 --> 00:30:09,004
งบประมาณเท่าไหร่

764
00:30:09,004 --> 00:30:09,712

765
00:30:09,712 --> 00:30:10,414

766
00:30:10,414 --> 00:30:10,806

767
00:30:10,806 --> 00:30:12,464
คือมันจะเชื่อมโยงกับ

768
00:30:12,464 --> 00:30:15,535
ข้อมูลที่เป็นคีย์หลักก็คือ Project Code ตัวนี้

769
00:30:15,535 --> 00:30:18,050

770
00:30:18,050 --> 00:30:18,491

771
00:30:18,491 --> 00:30:18,620

772
00:30:18,620 --> 00:30:22,620
ส่วนตัวนี้เป็นคีย์คู่แข่ง

773
00:30:23,933 --> 00:30:24,201

774
00:30:24,201 --> 00:30:25,932
2 ตัว

775
00:30:25,932 --> 00:30:27,975
นะคะ 2 ตัว

776
00:30:27,975 --> 00:30:31,975
นี่ มันสามารถทำหน้าที่เป็นคีย์หลักให้กับอย่างตัวนี้นะคะ

777
00:30:32,406 --> 00:30:36,119
มันจะเป็นคีย์หลักให้กับชื่อของพนักงาน

778
00:30:36,119 --> 00:30:36,571

779
00:30:36,571 --> 00:30:37,911
อย่างตัวนี้

780
00:30:37,911 --> 00:30:41,911
ก็จะเป็นคีย์หลักสำหรับชื่อแผนก

781
00:30:42,142 --> 00:30:43,873
นะคะ ถามว่า

782
00:30:43,873 --> 00:30:46,052
มันขึ้นตรงกับ Project Code ไหม

783
00:30:46,052 --> 00:30:46,825
ไม่

784
00:30:46,825 --> 00:30:49,525
นะคะ

785
00:30:49,525 --> 00:30:51,127

786
00:30:51,127 --> 00:30:51,317

787
00:30:51,317 --> 00:30:55,317
เพราะฉะนั้น การทำขั้นตอนต่อมานะคะ ส่ง 2

788
00:30:55,871 --> 00:30:56,251

789
00:30:56,251 --> 00:30:57,284
NF ขั้นตอนที่ 1

790
00:30:57,284 --> 00:30:57,601

791
00:30:57,601 --> 00:31:00,941
เราจะต้องทำ 1NF มาเรียบร้อยแล้ว ซึ่งง่ายมาก ๆ

792
00:31:00,941 --> 00:31:03,244
แล้วก็ต้องมา

793
00:31:03,244 --> 00:31:05,555
ทำขั้นตอนของการขึ้นต่อกันบางส่วนออก

794
00:31:05,555 --> 00:31:05,935

795
00:31:05,935 --> 00:31:07,855
ก็คือการ

796
00:31:07,855 --> 00:31:08,634
กำจัด

797
00:31:08,634 --> 00:31:11,247
Attribute ้ไม่ขึ้น

798
00:31:11,247 --> 00:31:14,647
คีย์หลักของตารางนั้นเอง

799
00:31:14,647 --> 00:31:17,730
จะออกนะคะ

800
00:31:17,730 --> 00:31:21,178
อย่างเช่น ตัวนี้นะคะ

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

802
00:31:23,943 --> 00:31:27,012
รหัสวิชากับชื่อวิชา

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

804
00:31:30,865 --> 00:31:33,298
นะคะ รูปเดิม

805
00:31:33,298 --> 00:31:34,067

806
00:31:34,067 --> 00:31:34,708

807
00:31:34,708 --> 00:31:35,032

808
00:31:35,032 --> 00:31:35,219

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

810
00:31:41,634 --> 00:31:44,199
ไปสร้างตารางใหม่

811
00:31:44,199 --> 00:31:45,158

812
00:31:45,158 --> 00:31:46,316
สร้างตารางเพิ่ม

813
00:31:46,316 --> 00:31:46,509

814
00:31:46,509 --> 00:31:50,509
นะคะ เอาสิ่งที่เป็นปัญหาออกมาไปใส่ตารางใหม่ กำหนดคีย์หลักใหม่

815
00:31:52,345 --> 00:31:53,619

816
00:31:53,619 --> 00:31:55,233
นะคะ ในตารางเดิม

817
00:31:55,233 --> 00:31:56,381
นะคะ

818
00:31:56,381 --> 00:31:59,393
เราก็เอาคีย์หลักของตารางใหม่ไปใส่

819
00:31:59,393 --> 00:32:00,282
แค่นั้นเอง

820
00:32:00,282 --> 00:32:02,917
นะคะ วิธีการ ก็คือ

821
00:32:02,917 --> 00:32:03,943

822
00:32:03,943 --> 00:32:05,602
รูปนี้นะคะ

823
00:32:05,602 --> 00:32:09,449
สิ่งที่เป็นปัญหาที่อาจารย์ยกตัวอย่าง ก็คือรหัสวิชา

824
00:32:09,449 --> 00:32:11,119
กับชื่อวิชา

825
00:32:11,119 --> 00:32:11,758

826
00:32:11,758 --> 00:32:11,959

827
00:32:11,959 --> 00:32:15,959
นะคะ เพราะรหัสวิชามันไม่ได้ขึ้นตรงกับรหัสนักศึกษา

828
00:32:18,753 --> 00:32:22,753
เพราะฉะนั้น ไอ้ 2 ตัวนี้คือสิ่งที่เป็นปัญหา

829
00:32:23,109 --> 00:32:27,109
วิธีการแก้ปัญหา คือ เราสร้างตารางผลการเรียนใหม่

830
00:32:27,918 --> 00:32:28,169

831
00:32:28,169 --> 00:32:29,969
สร้างตารางวิชาใหม่

832
00:32:29,969 --> 00:32:31,371
นี่เห็นไหมคะ

833
00:32:31,371 --> 00:32:35,371
ในตารางใหม่เราจะตัดชื่อวิชาออก

834
00:32:36,317 --> 00:32:36,575

835
00:32:36,575 --> 00:32:38,559
แต่ต้องเหลือ

836
00:32:38,559 --> 00:32:42,559
รหัสวิชาไว้เพื่อให้ไปเชื่อมโยงว่ารหัสวิชานี้มันชื่อวิชาอะไร

837
00:32:43,693 --> 00:32:45,546
จากอีกตารางห

838
00:32:45,546 --> 00:32:47,723
นึ่งแค่นั่นเองนะคะ

839
00:32:47,723 --> 00:32:49,004

840
00:32:49,004 --> 00:32:49,644

841
00:32:49,644 --> 00:32:50,988

842
00:32:50,988 --> 00:32:51,187

843
00:32:51,187 --> 00:32:53,177
โอเคค่ะ

844
00:32:53,177 --> 00:32:53,820

845
00:32:53,820 --> 00:32:54,010

846
00:32:54,010 --> 00:32:54,461

847
00:32:54,461 --> 00:32:55,552

848
00:32:55,552 --> 00:32:57,661
อันนี้เป็นตัวอย่างของการ

849
00:32:57,661 --> 00:32:58,174

850
00:32:58,174 --> 00:33:00,551
ปรับบรรทัดฐานในรูปแบบของส่ง 2

851
00:33:00,551 --> 00:33:01,702

852
00:33:01,702 --> 00:33:03,496
NF เดี๋ยววันนี้

853
00:33:03,496 --> 00:33:03,879

854
00:33:03,879 --> 00:33:07,466
จะให้ทำการบ้าน เดี๋ยวค่อยย้อนกลับมาแล้วกันนะคะ

855
00:33:07,466 --> 00:33:07,846

856
00:33:07,846 --> 00:33:09,968
เดี๋ยวค่อยย้อนมาสั่ง

857
00:33:09,968 --> 00:33:10,607

858
00:33:10,607 --> 00:33:12,600

859
00:33:12,600 --> 00:33:14,453
อันนี้ 1NF แก้แล้ว

860
00:33:14,453 --> 00:33:15,355

861
00:33:15,355 --> 00:33:18,563
เมื่อกี้นะคะ

862
00:33:18,563 --> 00:33:21,697
ขั้นตอนสุดท้ายนะคะ 3NF

863
00:33:21,697 --> 00:33:22,527

864
00:33:22,527 --> 00:33:23,368
นะคะ

865
00:33:23,368 --> 00:33:24,780

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

867
00:33:31,312 --> 00:33:34,133
หลักของการทำขั้นตอนที่ 3 คือ

868
00:33:34,133 --> 00:33:36,894
ต้องเอาความสัมพันธ์ที่ไม่ใช่คีย์หลัก

869
00:33:36,894 --> 00:33:39,968
ออกนะคะ

870
00:33:39,968 --> 00:33:43,747
เช่น ไม่ใช่คีย์หลักแต่ไม่มีผลกับ

871
00:33:43,747 --> 00:33:46,888
คอลัมน์อื่น ไม่ได้นะคะ ไม่ได้

872
00:33:46,888 --> 00:33:48,423

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

874
00:33:52,143 --> 00:33:54,064
แก้ปัญหาน

875
00:33:54,064 --> 00:33:54,965

876
00:33:54,965 --> 00:33:56,435

877
00:33:56,435 --> 00:34:00,032
ั้น ๆ อย่างเช่น ในตัวอย่างนะคะ

878
00:34:00,032 --> 00:34:03,361
รหัสพนักงานนะคะ

879
00:34:03,361 --> 00:34:06,440
ชื่อ-สกุล รหัสแผนก ชื่อแผนก เงินเดือน

880
00:34:06,440 --> 00:34:10,440
จะเห็นได้ว่าในตารางนี้นี้คีย์หลัก ก็คือรหัสพนักงาน

881
00:34:10,924 --> 00:34:11,635

882
00:34:11,635 --> 00:34:11,887

883
00:34:11,887 --> 00:34:12,786

884
00:34:12,786 --> 00:34:13,104

885
00:34:13,104 --> 00:34:17,104
รหัสแผนก กับชื่อแผนกติดมาด้วย

886
00:34:17,717 --> 00:34:20,352
ซึ่งมันไม่ได้เกี่ยวกับรหัสพนักงานเลย

887
00:34:20,352 --> 00:34:20,992

888
00:34:20,992 --> 00:34:22,343

889
00:34:22,343 --> 00:34:24,715
วิธีการแก้ปัญหา ก็คือ

890
00:34:24,715 --> 00:34:24,845

891
00:34:24,845 --> 00:34:26,247
เอารหัสแผนก

892
00:34:26,247 --> 00:34:26,448

893
00:34:26,448 --> 00:34:27,788
ชื่อแผนก

894
00:34:27,788 --> 00:34:28,245

895
00:34:28,245 --> 00:34:32,245
ไปสร้างตารางใหม่

896
00:34:32,469 --> 00:34:36,372
แต่ต้องยังคงรหัสแผนกไว้

897
00:34:36,372 --> 00:34:38,943
ในตารางเดิมนะคะ

898
00:34:38,943 --> 00:34:42,943
เพื่อให้มันเชื่อมโยงได้ว่าไอ้แผนก A001 นี่คือแผนกอะไร

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

900
00:34:55,221 --> 00:34:59,221
อันนี้คือ 3NF จริง ๆ แล้วอยากให้ลองทำในห้องมากกว่า แต่ด้วยสัปดาห์นี้มันมีข้อจำกัดเนาะก็ไม่เป็นไร

901
00:35:03,037 --> 00:35:03,308

902
00:35:03,308 --> 00:35:06,307

903
00:35:06,307 --> 00:35:07,014

904
00:35:07,014 --> 00:35:09,640
นี้เป็นตัวอย่างนะคะ

905
00:35:09,640 --> 00:35:10,792

906
00:35:10,792 --> 00:35:11,111

907
00:35:11,111 --> 00:35:11,242

908
00:35:11,242 --> 00:35:15,242
สรุปนะคะ วิธีการทำ Normalization หรือว่าการปรับบรรทัดฐานนะคะ

909
00:35:18,167 --> 00:35:22,167
ทุก ๆ NF ที่ทุก ๆ คอลัมน์ในแต่ละแถว

910
00:35:23,037 --> 00:35:26,370
จะต้องมีค่าของข้อมูลเพียงค่าเดียวเท่านั้น

911
00:35:26,370 --> 00:35:27,201

912
00:35:27,201 --> 00:35:29,323
เช่นเวลาเรากรอกเบอร์โทรศัพท์

913
00:35:29,323 --> 00:35:33,323
เรามีโทรศัพท์ 3 เบอร์ก็จริง แต่เราจะกรอกได้แค่เบอร์เดียว

914
00:35:33,811 --> 00:35:35,538

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

916
00:35:39,651 --> 00:35:42,088

917
00:35:42,088 --> 00:35:44,068
ต่อมา

918
00:35:44,068 --> 00:35:45,168
2NF

919
00:35:45,168 --> 00:35:47,789
นะคะ ก็

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

921
00:35:55,297 --> 00:35:56,707
ของตาราง

922
00:35:56,707 --> 00:35:57,987
ตัวเดียวเท่านั้น

923
00:35:57,987 --> 00:35:59,586
นะคะ

924
00:35:59,586 --> 00:35:59,967

925
00:35:59,967 --> 00:36:03,178
ข้อที่ 3 ถ้า

926
00:36:03,178 --> 00:36:05,419
คอลัมน์ไหนที่ไม่ใช่คีย์หลักนะคะ

927
00:36:05,419 --> 00:36:05,740

928
00:36:05,740 --> 00:36:06,764

929
00:36:06,764 --> 00:36:07,273

930
00:36:07,273 --> 00:36:07,532

931
00:36:07,532 --> 00:36:10,556
ฟ้าส่งผลกับคอลัมน์อื่นในตารางไม่ได้

932
00:36:10,556 --> 00:36:12,405
นะคะ เพราะฉะนั้น

933
00:36:12,405 --> 00:36:15,479
ไอ้ตารางข้อ 1 นี้ คือ แค่กระจายตาราง

934
00:36:15,479 --> 00:36:18,121
อั นที่ 2 อันที่ 3 ถ้ามีปัญหา

935
00:36:18,121 --> 00:36:20,232
เราต้องสร้างตารางใหม่นะคะ

936
00:36:20,232 --> 00:36:23,304

937
00:36:23,304 --> 00:36:24,267

938
00:36:24,267 --> 00:36:24,905

939
00:36:24,905 --> 00:36:25,094

940
00:36:25,094 --> 00:36:26,645

941
00:36:26,645 --> 00:36:27,215

942
00:36:27,215 --> 00:36:29,849
การบ้านเอาอย่างนี้ดีกว่า

943
00:36:29,849 --> 00:36:33,849
นะคะ อาจารย์จะให้ทำน่าจะส่งวันนี้

944
00:36:33,953 --> 00:36:37,154
เอาแค่

945
00:36:37,154 --> 00:36:41,154
ข้อเดียวนะคะ ข้อเดียวพอ เพราะว่าจริง ๆ อยากให้ทำในห้อง เดี๋ยวสัปดาห์หน้าค่อยทำในห้อง

946
00:36:42,860 --> 00:36:43,500

947
00:36:43,500 --> 00:36:43,759

948
00:36:43,759 --> 00:36:46,508
แต่อันนี้จะให้ลองทำดูก่อนว่าที่เรียนไปวันนี้

949
00:36:46,508 --> 00:36:48,111
เข้าใจไหม

950
00:36:48,111 --> 00:36:48,821

951
00:36:48,821 --> 00:36:51,512
ถ้าทำเสร็จแล้วก็ค่อยเอามาส่ง

952
00:36:51,512 --> 00:36:55,512
ที่ตู้ส่งงานอาจารย์ เอาเฉพาะข้อนี้นะข้อเดียว

953
00:36:57,221 --> 00:37:01,190
ข้อเดียวพอวันนี้ข้อเดียวพอนะคะ ส่งในเวลานี้แหละ

954
00:37:01,190 --> 00:37:01,581

955
00:37:01,581 --> 00:37:02,791

956
00:37:02,791 --> 00:37:05,164
ให้ลองทำดูว่าเข้าใจไหมข้อนี้

957
00:37:05,164 --> 00:37:06,393

958
00:37:06,393 --> 00:37:07,223

959
00:37:07,223 --> 00:37:10,939
ทำอย่างนี้ทำอย่างไร ง่ายมาก ๆ เลย

960
00:37:10,939 --> 00:37:11,576

961
00:37:11,576 --> 00:37:13,046
การเว้นช่องว่างให้แล้ว

962
00:37:13,046 --> 00:37:14,007
เติมมา

963
00:37:14,007 --> 00:37:14,327

964
00:37:14,327 --> 00:37:15,300

965
00:37:15,300 --> 00:37:16,199

966
00:37:16,199 --> 00:37:17,921
2

967
00:37:17,921 --> 00:37:20,042
NF คุณเห็นไหมว่า

968
00:37:20,042 --> 00:37:20,159

969
00:37:20,159 --> 00:37:22,341
มันมีรหัสวิชานี่

970
00:37:22,341 --> 00:37:23,443
ชื่อวิชานี่

971
00:37:23,443 --> 00:37:25,045
ต้องทำอย่างไรกับมัน

972
00:37:25,045 --> 00:37:25,362

973
00:37:25,362 --> 00:37:27,476

974
00:37:27,476 --> 00:37:29,323
แยกมันออกมาสิแยกยังไง

975
00:37:29,323 --> 00:37:31,386
เอาก่อน

976
00:37:31,386 --> 00:37:32,728
นะคะ แล้วลอง

977
00:37:32,728 --> 00:37:33,180

978
00:37:33,180 --> 00:37:34,849
ส่งมาให้อาจารย์ดูก่อนว่า

979
00:37:34,849 --> 00:37:36,701
เข้าใจมากน้อยขนาดไหน

980
00:37:36,701 --> 00:37:37,151

981
00:37:37,151 --> 00:37:38,560
จริง ๆ

982
00:37:38,560 --> 00:37:41,573
อยากให้เรียนในห้องมากกว่าแต่วันนี้ก็เอา

983
00:37:41,573 --> 00:37:43,116
มานี้ก่อนแล้วกัน

984
00:37:43,116 --> 00:37:43,494

985
00:37:43,494 --> 00:37:44,455

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

987
00:37:47,474 --> 00:37:48,061

988
00:37:48,061 --> 00:37:49,657
เดินดูในห้องดีกว่า

989
00:37:49,657 --> 00:37:50,996

990
00:37:50,996 --> 00:37:53,111
นะคะ วันนี้ก็

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

992
00:37:56,512 --> 00:37:56,902

993
00:37:56,902 --> 00:37:58,303
วันนี้เลยยิ่งดี

994
00:37:58,303 --> 00:37:59,201

995
00:37:59,201 --> 00:38:02,023
นะคะ เวลาที่เหลือทำใส่กระดาษมาส่งอาจารย์

996
00:38:02,023 --> 00:38:04,204
แล้วกันนะ

997
00:38:04,204 --> 00:38:06,957
ก็ประมาณนี้ค่ะ เวลาที่เหลือทำให้เสร็จภายในวันนี้นะคะ

998
00:38:06,957 --> 00:38:10,926
ข้อเดียวเองนะคะ ข้อเดียว

999
00:38:10,926 --> 00:38:12,087

1000
00:38:12,087 --> 00:38:13,557
มีใครสงสัยไหมคะ

1001
00:38:13,557 --> 00:38:16,441
ปุ๋ยสงสัยไหม

1002
00:38:16,441 --> 00:38:18,300
ปุ๋ยเปิดไม่ได้หรือเปล่า

1003
00:38:18,300 --> 00:38:18,621

1004
00:38:18,621 --> 00:38:22,621
(นักศึกษาหญิง) ไม่มีค่ะ อาจารย์เดี๋ยวถ้าอย่างไรเดี๋ยวให้อุบลไปส่งหรือยังไงคะเพราะว่าบนขึ้น

1005
00:38:25,793 --> 00:38:26,953

1006
00:38:26,953 --> 00:38:29,903
ไม่ ๆ ส่วนมากอยู่ในการอยู่หอนี่แหละ

1007
00:38:29,903 --> 00:38:30,355

1008
00:38:30,355 --> 00:38:33,237

1009
00:38:33,237 --> 00:38:35,800
ตอนนี้เหลืออยู่ประมาณ

1010
00:38:35,800 --> 00:38:37,160

1011
00:38:37,160 --> 00:38:37,469

1012
00:38:37,469 --> 00:38:41,373
ใส่ได้ก็เอามา

1013
00:38:41,373 --> 00:38:41,502

1014
00:38:41,502 --> 00:38:41,767

1015
00:38:41,767 --> 00:38:42,657

1016
00:38:42,657 --> 00:38:46,657
โอเค Thank You

1017
00:38:47,725 --> 00:38:49,896

1018
00:38:49,896 --> 00:38:50,288

1019
00:38:50,288 --> 00:38:53,748
วันนี้ก็ประมาณนี้ค่ะ ขอบคุณทุกคนมากนะคะ

1020
00:38:53,748 --> 00:38:54,130

1021
00:38:54,130 --> 00:38:58,130
ที่ยังตั้งใจเรียนกันอยู่ แล้วก็งานอย่าลืมส่งวันนี้นะคะ อยู่ดี ๆ ก็

1022
00:38:58,613 --> 00:38:59,383
ทำให้เสร็จ

1023
00:38:59,383 --> 00:39:03,383
แล้วก็ฝากเพื่อนมาส่งรวมกันมาส่งก็ได้นะคะ ถ้าใครอยู่หอก็จะมาทำอยู่ DSS ก็ได้หรือว่าทำเสร็จแล้วมาส่งที่

1024
00:39:06,693 --> 00:39:07,715
อาการก็ได้

1025
00:39:07,715 --> 00:39:10,795

1026
00:39:10,795 --> 00:39:14,795
โอเคค่ะ วันนี้ก็ประมาณนี้ค่ะ ขอบคุณล่ามด้วยนะคะ

1027
00:39:15,729 --> 00:39:18,682
ค่ะขอบคุณค่ะ

1028
00:39:18,682 --> 00:39:19,833

1029
00:39:19,833 --> 00:39:20,232

1030
00:39:20,232 --> 00:39:20,605

1031
00:39:20,605 --> 00:39:21,505

1032
00:39:21,505 --> 00:39:24,257

1033
00:39:24,257 --> 00:39:25,601

1034
00:39:25,601 --> 00:39:29,601

1035
00:39:37,334 --> 00:39:41,334
ปุ๋ยวันนี้ครบนะ ปุ๋ยไป

1036
00:39:41,628 --> 00:39:43,039

1037
00:39:43,039 --> 00:39:43,299

1038
00:39:43,299 --> 00:39:43,488

1039
00:39:43,488 --> 00:39:43,813

1040
00:39:43,813 --> 00:39:45,164

1041
00:39:45,164 --> 00:39:46,378
แล้ว โอเค

1042
00:39:46,378 --> 00:39:50,378

1043
00:39:55,092 --> 00:39:59,092


