﻿1
00:00:04,012 --> 00:00:04,012

2
00:00:04,012 --> 00:00:04,012

3
00:00:04,012 --> 00:00:04,878

4
00:00:04,878 --> 00:00:06,043

5
00:00:06,043 --> 00:00:08,346

6
00:00:08,346 --> 00:00:08,529

7
00:00:08,529 --> 00:00:09,750

8
00:00:09,750 --> 00:00:10,133

9
00:00:10,133 --> 00:00:10,583

10
00:00:10,583 --> 00:00:10,772

11
00:00:10,772 --> 00:00:12,513

12
00:00:12,513 --> 00:00:12,703

13
00:00:12,703 --> 00:00:12,964

14
00:00:12,964 --> 00:00:13,404

15
00:00:13,404 --> 00:00:13,604

16
00:00:13,604 --> 00:00:13,855

17
00:00:13,855 --> 00:00:14,177

18
00:00:14,177 --> 00:00:14,306

19
00:00:14,306 --> 00:00:15,398

20
00:00:15,398 --> 00:00:15,649

21
00:00:15,649 --> 00:00:15,908

22
00:00:15,908 --> 00:00:17,568

23
00:00:17,568 --> 00:00:18,151

24
00:00:18,151 --> 00:00:18,338

25
00:00:18,338 --> 00:00:18,470

26
00:00:18,470 --> 00:00:18,796

27
00:00:18,796 --> 00:00:19,883

28
00:00:19,883 --> 00:00:20,781

29
00:00:20,781 --> 00:00:21,293

30
00:00:21,293 --> 00:00:21,742

31
00:00:21,742 --> 00:00:22,004

32
00:00:22,004 --> 00:00:25,907

33
00:00:25,907 --> 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,413
ประมาณนี้

42
00:01:55,413 --> 00:01:56,245
นะคะ

43
00:01:56,245 --> 00:01:56,509

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

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

46
00:01:59,716 --> 00:02:00,997
กระบวนการ

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

48
00:02:02,342 --> 00:02:02,598

49
00:02:02,598 --> 00:02:04,899
นะคะ ภาษาอังกฤษก็จะเป็น

50
00:02:04,899 --> 00:02:08,172

51
00:02:08,172 --> 00:02:09,842

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

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

54
00:02:17,524 --> 00:02:17,726

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

56
00:02:22,077 --> 00:02:22,790
นะคะ

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

58
00:02:27,143 --> 00:02:27,783

59
00:02:27,783 --> 00:02:27,971

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

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

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

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

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

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

66
00:02:51,242 --> 00:02:54,125

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

68
00:02:59,315 --> 00:02:59,577

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

70
00:03:02,198 --> 00:03:04,580
ระดับแรกเรียกว่า 1nf

71
00:03:04,580 --> 00:03:04,960

72
00:03:04,960 --> 00:03:05,734

73
00:03:05,734 --> 00:03:06,562

74
00:03:06,562 --> 00:03:08,425
นะคะ 2nf 3nf

75
00:03:08,425 --> 00:03:09,574

76
00:03:09,574 --> 00:03:09,960

77
00:03:09,960 --> 00:03:11,756
ในระดับปริญญาตรีนี่

78
00:03:11,756 --> 00:03:12,284

79
00:03:12,284 --> 00:03:13,877
ถึง 3nf ได้

80
00:03:13,877 --> 00:03:15,411
ก็ถือว่าเก่งมากแล้ว

81
00:03:15,411 --> 00:03:16,629
นะคะ

82
00:03:16,629 --> 00:03:16,882

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

84
00:03:20,802 --> 00:03:24,802
นะคะ

85
00:03:25,215 --> 00:03:27,456

86
00:03:27,456 --> 00:03:28,488
อันนี้เป็น

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

88
00:03:37,591 --> 00:03:38,421
การระบุ

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

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

91
00:03:44,708 --> 00:03:45,667
หลังจากนั้น

92
00:03:45,667 --> 00:03:46,817
วาดรูป

93
00:03:46,817 --> 00:03:48,419
เหมือนอาทิตย์ที่โรงเรียนอาทิตย์ที่แล้ว

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

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

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

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

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

99
00:04:09,126 --> 00:04:10,147

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

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

102
00:04:19,762 --> 00:04:20,474

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

104
00:04:22,903 --> 00:04:24,567
ซึ่งอย่างที่บอก

105
00:04:24,567 --> 00:04:26,753
เราทำแค่ถึง 3nf นี่ก็

106
00:04:26,753 --> 00:04:27,964
เก่งมากแล้ว

107
00:04:27,964 --> 00:04:29,564

108
00:04:29,564 --> 00:04:31,236
อย่างน้อย 2-3 นะคะ

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

110
00:04:37,010 --> 00:04:39,207

111
00:04:39,207 --> 00:04:41,166

112
00:04:41,166 --> 00:04:43,037

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

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

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

116
00:04:58,296 --> 00:04:58,486

117
00:04:58,486 --> 00:04:59,445

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

119
00:05:00,855 --> 00:05:02,259
ประมาณเหมือนกัน

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

121
00:05:05,982 --> 00:05:09,982
นะคะ ข้อมูลนี่นอกจากที่จะไม่เกิดความสอดคล้องกันแล้วนี่

122
00:05:11,232 --> 00:05:13,347
มันอาจจะเกิดจากสาเหตุคือ

123
00:05:13,347 --> 00:05:16,816
ถ้าเหมือนที่ ก็คือถ้าเราเก็บข้อมูลหลาย ๆ ที่

124
00:05:16,816 --> 00:05:17,138

125
00:05:17,138 --> 00:05:18,927
นักศึกษา

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

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

128
00:05:26,682 --> 00:05:28,225
ที่บ้าน

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

130
00:05:30,396 --> 00:05:32,009
นะคะ

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

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

133
00:05:45,016 --> 00:05:46,297
นะคะ เก็บไว้ที่เดียว

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

135
00:05:51,238 --> 00:05:51,747

136
00:05:51,747 --> 00:05:52,578

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

138
00:05:56,171 --> 00:05:56,430

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

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

141
00:06:00,462 --> 00:06:02,134
มีแก้ไขก็ที่เดียว

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

143
00:06:05,465 --> 00:06:07,661
ปัจจุบันด้วย

144
00:06:07,661 --> 00:06:08,988

145
00:06:08,988 --> 00:06:11,040
แล้วก็

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

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

148
00:06:19,690 --> 00:06:19,879

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

150
00:06:26,806 --> 00:06:30,806
ทุกที่พร้อมกันถ้าต้องการข้อมูลนะคะ

151
00:06:31,036 --> 00:06:34,181

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

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

154
00:06:42,709 --> 00:06:43,476

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

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

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

158
00:06:54,182 --> 00:06:58,182
ปริมาณข้อมูลมันเยอะเกินไป

159
00:07:00,826 --> 00:06:59,042
นะคะ

160
00:06:55,976 --> 00:06:57,194

161
00:06:57,194 --> 00:06:58,473

162
00:06:58,473 --> 00:06:58,602

163
00:06:58,602 --> 00:07:00,135

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

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

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

167
00:07:17,252 --> 00:07:19,693
นะคะ จะเห็นได้ว่า

168
00:07:19,693 --> 00:07:20,207

169
00:07:20,207 --> 00:07:20,905
ตาราง

170
00:07:20,905 --> 00:07:21,734
พนักงาน

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

172
00:07:25,328 --> 00:07:26,168
ห้อยไว้อยู่

173
00:07:26,168 --> 00:07:26,680

174
00:07:26,680 --> 00:07:28,862
ถามว่าทำไมไม่เอา

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

176
00:07:32,502 --> 00:07:34,691
ทำไมต้องแยกออก

177
00:07:34,691 --> 00:07:35,466

178
00:07:35,466 --> 00:07:35,785

179
00:07:35,785 --> 00:07:37,318
อย่างถ้า

180
00:07:37,318 --> 00:07:39,175
ศึกษาดูคนแรกนะคะ

181
00:07:39,175 --> 00:07:43,175
พนักงานคนแรก รหัสสาขา b005

182
00:07:45,393 --> 00:07:47,510
ก็คือสาขา

183
00:07:47,510 --> 00:07:49,751
เชียงใหม่

184
00:07:49,751 --> 00:07:50,000

185
00:07:50,000 --> 00:07:50,131

186
00:07:50,131 --> 00:07:50,594

187
00:07:50,594 --> 00:07:51,425

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

189
00:07:54,560 --> 00:07:55,399

190
00:07:55,399 --> 00:07:57,316

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

192
00:08:00,007 --> 00:08:01,359

193
00:08:01,359 --> 00:08:04,039
มีการลบข้อมูล

194
00:08:04,039 --> 00:08:05,772

195
00:08:05,772 --> 00:08:08,922
ลบคนนี้ออก ขีดฆ่าทิ้ง

196
00:08:08,922 --> 00:08:10,582
ฆ่าทิ้ง

197
00:08:10,582 --> 00:08:13,462
สิ่งไหนที่หายไปบ้าง

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

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

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

201
00:08:22,496 --> 00:08:23,847
ยังอยู่

202
00:08:23,847 --> 00:08:25,066
นะคะ

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

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

205
00:08:28,400 --> 00:08:30,642
เห็นไหมคำว่า

206
00:08:30,642 --> 00:08:33,333
ถ้าสมมุติว่าจะลบทิ้งหมดเลย

207
00:08:33,333 --> 00:08:34,294

208
00:08:34,294 --> 00:08:35,193

209
00:08:35,193 --> 00:08:38,778
กากบาททิ้ง

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

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

212
00:08:43,718 --> 00:08:45,451
นะคะ เหมือน

213
00:08:45,451 --> 00:08:47,050
ลบคนข้างล่าง

214
00:08:47,050 --> 00:08:47,894
ออก

215
00:08:47,894 --> 00:08:48,662

216
00:08:48,662 --> 00:08:50,194
สาขาพิษณุโลก

217
00:08:50,194 --> 00:08:52,696
ก็หายไปด้วย

218
00:08:52,696 --> 00:08:53,073

219
00:08:53,073 --> 00:08:55,448
แต่ถ้าเป็นตารางด้านบน

220
00:08:55,448 --> 00:08:56,102

221
00:08:56,102 --> 00:08:57,889
นะคะ ถ้าคนนี้ลาออก

222
00:08:57,889 --> 00:08:59,234
สาขายังอยู่ไหม

223
00:08:59,234 --> 00:09:00,256
ยังอยู่เหมือนเดิม

224
00:09:00,256 --> 00:09:02,951

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

226
00:09:09,802 --> 00:09:13,464

227
00:09:13,464 --> 00:09:15,836

228
00:09:15,836 --> 00:09:18,328
ตัวอย่าง

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

230
00:09:20,768 --> 00:09:22,880
ปัญหาความซ้ำซ้อนของข้อมูล

231
00:09:22,880 --> 00:09:23,590
ออกได้

232
00:09:23,590 --> 00:09:24,763

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

234
00:09:29,167 --> 00:09:29,685

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

236
00:09:31,535 --> 00:09:32,756
รหัสสาขา

237
00:09:32,756 --> 00:09:34,686
แล้วก็ที่อยู่

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

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

240
00:09:40,377 --> 00:09:42,108
เข้ามาใหม่อีก 1 คน

241
00:09:42,108 --> 00:09:43,069
นะคะ

242
00:09:43,069 --> 00:09:45,320
เป็น em

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

244
00:09:45,892 --> 00:09:46,411

245
00:09:46,411 --> 00:09:46,924

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

247
00:09:47,495 --> 00:09:47,946

248
00:09:47,946 --> 00:09:48,335

249
00:09:48,335 --> 00:09:51,338
10 ถ้าต้องการเพิ่มพนักงานสาขา

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

251
00:09:54,035 --> 00:09:54,365

252
00:09:54,365 --> 00:09:57,175
เชียงใหม่ ณโร

253
00:09:57,175 --> 00:09:59,028
แต่ถ้า

254
00:09:59,028 --> 00:10:00,886
การออกแบบฐานข้อมูลที่ดีนี่

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

256
00:10:03,578 --> 00:10:05,607

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

258
00:10:08,261 --> 00:10:08,584

259
00:10:08,584 --> 00:10:10,125

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

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

262
00:10:12,234 --> 00:10:12,683

263
00:10:12,683 --> 00:10:12,813

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

265
00:10:15,374 --> 00:10:15,627

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

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

268
00:10:21,023 --> 00:10:21,468

269
00:10:21,468 --> 00:10:22,168

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

271
00:10:27,873 --> 00:10:28,646

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

273
00:10:36,467 --> 00:10:39,666

274
00:10:39,666 --> 00:10:40,498

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

276
00:10:51,719 --> 00:10:52,293

277
00:10:52,293 --> 00:10:53,830

278
00:10:53,830 --> 00:10:55,679
อันนี้ก็เช่นเดียวกัน

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

280
00:10:59,473 --> 00:11:00,623
มันทำให้

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

282
00:11:02,806 --> 00:11:03,447

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

284
00:11:08,962 --> 00:11:10,560
ต้องนั่งกรอก

285
00:11:10,560 --> 00:11:13,957
เ ชียงใหม่เป็นพันคนนี่เสียเวลามาก ๆ

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

287
00:11:18,318 --> 00:11:20,880
นะคะ

288
00:11:20,880 --> 00:11:21,012

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

290
00:11:27,225 --> 00:11:27,676

291
00:11:27,676 --> 00:11:31,646
ถ้ามันอยากเพิ่มแค่สาขา

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

293
00:11:34,990 --> 00:11:35,749
่

294
00:11:35,749 --> 00:11:36,072

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

296
00:11:41,205 --> 00:11:42,165

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

298
00:11:45,821 --> 00:11:46,266

299
00:11:46,266 --> 00:11:48,120
100

300
00:11:48,120 --> 00:11:49,732
สกลนคร

301
00:11:49,732 --> 00:11:50,819
ละครนะคะ

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

303
00:11:55,244 --> 00:11:55,882

304
00:11:55,882 --> 00:11:57,044

305
00:11:57,044 --> 00:11:58,892
ถ้าจากตารางนี้

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

307
00:12:03,376 --> 00:12:04,466

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

309
00:12:08,188 --> 00:12:09,850

310
00:12:09,850 --> 00:12:13,850
คือคุณสมบัติมันคือเป็นค่าว่างไม่ได้

311
00:12:13,973 --> 00:12:14,536

312
00:12:14,536 --> 00:12:15,697

313
00:12:15,697 --> 00:12:18,578
ก็ทำให้เราเพิ่มสาขาไม่ได้

314
00:12:18,578 --> 00:12:19,978
เพราะเราไม่มีพนักงาน

315
00:12:19,978 --> 00:12:21,463
อันนี้ก็เป็น

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

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

318
00:12:29,863 --> 00:12:30,303

319
00:12:30,303 --> 00:12:31,524
ก็คือกัน

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

321
00:12:35,236 --> 00:12:36,907

322
00:12:36,907 --> 00:12:37,938

323
00:12:37,938 --> 00:12:39,918
ไม่ดี กับ

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

325
00:12:43,309 --> 00:12:46,392
ถ้าพนักงานคนนี้

326
00:12:46,392 --> 00:12:48,193
ออก

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

328
00:12:51,649 --> 00:12:53,315

329
00:12:53,315 --> 00:12:54,931
ลบไป

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

331
00:12:56,967 --> 00:12:57,099

332
00:12:57,099 --> 00:13:00,816
เหมือน b03 b003 นะคะ

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

334
00:13:03,194 --> 00:13:03,515

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

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

337
00:13:14,021 --> 00:13:17,544
สมมติมีพนักงาน 3000คน

338
00:13:17,544 --> 00:13:19,983
คุณต้องแก้กรุงเทพฯ 3000 ครั้ง

339
00:13:19,983 --> 00:13:22,295

340
00:13:22,295 --> 00:13:23,764
เป็นนนทบุรี

341
00:13:23,764 --> 00:13:24,014

342
00:13:24,014 --> 00:13:25,426

343
00:13:25,426 --> 00:13:25,745

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

345
00:13:31,197 --> 00:13:34,456
นั่งแก้ทีละ 3000 คนไม่ใช่เรื่องสนุกแน่ ๆ นะคะ

346
00:13:34,456 --> 00:13:38,456

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

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

349
00:13:48,378 --> 00:13:48,947
นี่คือ

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

351
00:13:53,123 --> 00:13:57,123
องค์กรขนาดใหญ่เป็นบริษัทเ ป็นโรงงาน หรือเป็นระดับโรงเรียนมีนักเรียนเป็น 2 3000 คนก็ได้นะคะ

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

353
00:14:05,883 --> 00:14:09,533

354
00:14:09,533 --> 00:14:09,983

355
00:14:09,983 --> 00:14:10,113

356
00:14:10,113 --> 00:14:10,497

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

358
00:14:17,491 --> 00:14:18,637

359
00:14:18,637 --> 00:14:20,108

360
00:14:20,108 --> 00:14:20,751

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

362
00:14:24,854 --> 00:14:25,492

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

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

365
00:14:34,143 --> 00:14:35,175

366
00:14:35,175 --> 00:14:35,687

367
00:14:35,687 --> 00:14:38,758
อย่างเช่นทางนี้นะคะ

368
00:14:38,758 --> 00:14:42,030
ดูจากรหัสพนักงานนะคะ

369
00:14:42,030 --> 00:14:45,870
เราจะเขียนได้ว่ารหัสพนักงาน

370
00:14:45,870 --> 00:14:47,663
จะส่งผลกับชื่อ

371
00:14:47,663 --> 00:14:50,362
ตำแหน่ง

372
00:14:50,362 --> 00:14:50,621

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

374
00:14:53,823 --> 00:14:57,823
ชี้ไปที่ตัวรองตามหัวลูกศรเลย

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

376
00:15:03,177 --> 00:15:07,177
นะคะ

377
00:15:07,730 --> 00:15:09,392
อย่างเช่น

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

379
00:15:14,972 --> 00:15:16,832
ไม่ได้

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

381
00:15:23,307 --> 00:15:23,688

382
00:15:23,688 --> 00:15:27,688
เป็น หนึ่ง-ต่อ-กลุ่ม ไม่ได้

383
00:15:34,004 --> 00:15:34,222

384
00:15:34,222 --> 00:15:35,030

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

386
00:15:39,454 --> 00:15:41,504

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

388
00:15:44,442 --> 00:15:47,465
นะคะ

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

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

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

392
00:15:54,969 --> 00:15:55,355

393
00:15:55,355 --> 00:15:57,532
นะคะ โดยในคอลัมน์นะนี่

394
00:15:57,532 --> 00:15:58,367

395
00:15:58,367 --> 00:16:01,309
จะบรรจุค่าที่ระบุ

396
00:16:01,309 --> 00:16:02,339
ความพิเศษ

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

398
00:16:04,518 --> 00:16:08,518
นะคะ attribute จะเป็นค่าเฉพาะที่บอกเลยว่า

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

400
00:16:13,745 --> 00:16:14,133

401
00:16:14,133 --> 00:16:15,476

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

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

404
00:16:24,130 --> 00:16:28,130
นะคะ

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

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

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

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

409
00:16:42,397 --> 00:16:44,517

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

411
00:16:45,220 --> 00:16:46,438

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

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

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

415
00:16:55,792 --> 00:16:57,322

416
00:16:57,322 --> 00:16:58,924
ตัวนี้ จะขึ้น

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

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

419
00:17:09,062 --> 00:17:12,525
จะต้องเป็นของคนคนเดียวเท่านั้น

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

421
00:17:20,733 --> 00:17:21,692

422
00:17:21,692 --> 00:17:22,333

423
00:17:22,333 --> 00:17:22,713

424
00:17:22,713 --> 00:17:23,673

425
00:17:23,673 --> 00:17:25,344
ตัวอย่างนะคะ

426
00:17:25,344 --> 00:17:28,035
ตารางที่มี Column หลายตัว

427
00:17:28,035 --> 00:17:29,187
นะคะ

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

429
00:17:32,138 --> 00:17:33,109
คนหนึ่งคนนี่

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

431
00:17:37,653 --> 00:17:38,992
แต่ว่า

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

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

434
00:17:45,476 --> 00:17:45,856

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

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

437
00:17:52,399 --> 00:17:56,363
นะคะ แต่หมายเลขบัตรประชาชนเขาจะไม่ซ้ำกัน

438
00:17:56,363 --> 00:17:56,946

439
00:17:56,946 --> 00:17:57,848

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

441
00:18:06,061 --> 00:18:06,445

442
00:18:06,445 --> 00:18:08,555

443
00:18:08,555 --> 00:18:08,814

444
00:18:08,814 --> 00:18:09,256

445
00:18:09,256 --> 00:18:10,215

446
00:18:10,215 --> 00:18:11,495

447
00:18:11,495 --> 00:18:12,396

448
00:18:12,396 --> 00:18:15,346
แต่บางตารางนะคะ

449
00:18:15,346 --> 00:18:15,989

450
00:18:15,989 --> 00:18:18,485
ก็อาจจะเป็นการรวมตัวกันของก

451
00:18:18,485 --> 00:18:19,508

452
00:18:19,508 --> 00:18:22,659
คีย์หลัก มากกว่า 1 ปีหลักนะคะ

453
00:18:22,659 --> 00:18:26,564
มารวมกัน เช่น นักศึกษา

454
00:18:26,564 --> 00:18:27,841

455
00:18:27,841 --> 00:18:29,250
คนนี้

456
00:18:29,250 --> 00:18:31,242
ลงทะเบียนวิชานี้

457
00:18:31,242 --> 00:18:33,546
ได้เกรดอะไร

458
00:18:33,546 --> 00:18:34,322

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

460
00:18:39,394 --> 00:18:40,030

461
00:18:40,030 --> 00:18:40,862

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

463
00:18:43,995 --> 00:18:47,399
เหมือนชื่อวิชา

464
00:18:47,399 --> 00:18:48,431
รหัสนึง

465
00:18:48,431 --> 00:18:51,177
เชื่อใจคนอื่นก็รหัสวิชาอีกอันนึง

466
00:18:51,177 --> 00:18:51,689

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

468
00:18:56,308 --> 00:18:57,328

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

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

471
00:19:03,804 --> 00:19:04,254

472
00:19:04,254 --> 00:19:06,493
คีย์ผสมนะคะ อาจจะเป็น

473
00:19:06,493 --> 00:19:09,373
เส้นตรงจากตารางอื่นหรือส่งตารางมารวมกัน

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

475
00:19:14,058 --> 00:19:15,087
คอลัมน์หนึ่ง

476
00:19:15,087 --> 00:19:17,447
เดี๋ยวจะยกตัวอย่างเลยดีกว่า

477
00:19:17,447 --> 00:19:18,409

478
00:19:18,409 --> 00:19:21,112
อย่างเช่น

479
00:19:21,112 --> 00:19:22,199

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

481
00:19:27,453 --> 00:19:28,615
แล้วก็

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

483
00:19:33,027 --> 00:19:33,796
นะคะ

484
00:19:33,796 --> 00:19:34,177

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

486
00:19:36,108 --> 00:19:36,751

487
00:19:36,751 --> 00:19:38,543
คีย์หลักประกอบกันด้วย

488
00:19:38,543 --> 00:19:41,374
คอลัมน์หรือว่า A รวมกัน

489
00:19:41,374 --> 00:19:43,414

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

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

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

493
00:19:55,721 --> 00:19:57,639
มีรหัสนักศึกษา

494
00:19:57,639 --> 00:19:59,630
กับรหัสวิชา

495
00:19:59,630 --> 00:20:02,135

496
00:20:02,135 --> 00:20:03,355
นะคะ ถามว่า

497
00:20:03,355 --> 00:20:06,556
ถ้ามีแต่

498
00:20:06,556 --> 00:20:08,082
รหัสนักศึกษา

499
00:20:08,082 --> 00:20:08,994

500
00:20:08,994 --> 00:20:09,891
เกรดนะคะ

501
00:20:09,891 --> 00:20:11,425
รหัสวิชา

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

503
00:20:15,138 --> 00:20:18,482
ชื่อวิชาอะไร

504
00:20:18,482 --> 00:20:18,603

505
00:20:18,603 --> 00:20:20,521

506
00:20:20,521 --> 00:20:20,971

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

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

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

510
00:20:31,996 --> 00:20:33,607
ไป หลายวิชานี่

511
00:20:33,607 --> 00:20:35,459
ชื่อวิชาอะไร

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

513
00:20:39,050 --> 00:20:41,482
แต่มีคีย์หลัก 1 ตัวนี่

514
00:20:41,482 --> 00:20:42,702
ไปมีผลกับ

515
00:20:42,702 --> 00:20:44,496
แอตทริบิวต์ 1 ได้

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

517
00:20:49,366 --> 00:20:49,747

518
00:20:49,747 --> 00:20:50,776

519
00:20:50,776 --> 00:20:51,299

520
00:20:51,299 --> 00:20:51,938

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

522
00:20:58,475 --> 00:21:00,715
มีแค่ 5 วิชามีเกรดมีการ

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

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

525
00:21:06,619 --> 00:21:07,449

526
00:21:07,449 --> 00:21:10,271
นะคะ หรือว่า

527
00:21:10,271 --> 00:21:10,913

528
00:21:10,913 --> 00:21:14,884
ลบไปก่อนนะ

529
00:21:14,884 --> 00:21:16,555
หรือว่า

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

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

532
00:21:23,090 --> 00:21:26,364
เหลือชื่อวิชาแล้วถามว่า

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

534
00:21:28,662 --> 00:21:29,819

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

536
00:21:33,478 --> 00:21:37,478
การขึ้นต่อกันบางส่วน

537
00:21:40,743 --> 00:21:38,782
นะคะ

538
00:21:35,847 --> 00:21:37,636

539
00:21:37,636 --> 00:21:39,569

540
00:21:39,569 --> 00:21:40,399

541
00:21:40,399 --> 00:21:41,608

542
00:21:41,608 --> 00:21:41,810

543
00:21:41,810 --> 00:21:42,001

544
00:21:42,001 --> 00:21:44,239

545
00:21:44,239 --> 00:21:44,879

546
00:21:44,879 --> 00:21:47,837
อันนี้คือตัวอย่าง ต่อมาเป็นการขึ้นต่อกันแบบส่งต่อ

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

548
00:21:55,587 --> 00:21:57,825
แต่ไปสามารถ

549
00:21:57,825 --> 00:21:59,498
ขึ้น

550
00:21:59,498 --> 00:22:03,019
สามารถระบุค่าของแอตทริบิวต์อื่นใน Record ได้

551
00:22:03,019 --> 00:22:03,212

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

553
00:22:07,382 --> 00:22:10,130

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

555
00:22:12,501 --> 00:22:13,022

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

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

558
00:22:23,247 --> 00:22:22,639
นะคะ

559
00:22:18,716 --> 00:22:22,716

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

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

562
00:22:39,292 --> 00:22:42,232
ตารางนี้คีย์หลักก็คือเลขประจำตัว

563
00:22:42,232 --> 00:22:42,945

564
00:22:42,945 --> 00:22:44,875
ตัวเลขประจำตัวนี่

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

566
00:22:49,799 --> 00:22:51,472

567
00:22:51,472 --> 00:22:52,815
ทีนี้รถประจำตำแหน่ง

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

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

570
00:23:00,691 --> 00:23:02,434

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

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

573
00:23:07,744 --> 00:23:10,186
แต่เขาไปเช็คที่รหัสตำแหน่ง

574
00:23:10,186 --> 00:23:12,815
แทนที่จะเช็คกับเลขประจําตัว

575
00:23:12,815 --> 00:23:13,769

576
00:23:13,769 --> 00:23:17,101
อันนี้คือการออกแบบที่ไม่ดี

577
00:23:17,101 --> 00:23:17,618

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

579
00:23:23,772 --> 00:23:25,494
เราควรจะแยก

580
00:23:25,494 --> 00:23:28,646
ตารางนี้

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

582
00:23:30,946 --> 00:23:31,138

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

584
00:23:34,098 --> 00:23:37,421
ที่มีกี่หลัก

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

586
00:23:41,904 --> 00:23:44,670

587
00:23:44,670 --> 00:23:46,077

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

589
00:23:49,856 --> 00:23:50,107

590
00:23:50,107 --> 00:23:51,151
นะคะ

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

592
00:23:55,183 --> 00:23:55,882

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

594
00:23:59,928 --> 00:24:00,697

595
00:24:00,697 --> 00:24:01,078

596
00:24:01,078 --> 00:24:01,787

597
00:24:01,787 --> 00:24:03,004
โดยที่

598
00:24:03,004 --> 00:24:04,539
อย่างเช่นตัวอย่าง

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

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

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

602
00:24:16,972 --> 00:24:17,689

603
00:24:17,689 --> 00:24:19,153
122

604
00:24:19,153 --> 00:24:19,474

605
00:24:19,474 --> 00:24:21,328

606
00:24:21,328 --> 00:24:23,056
รหัสนักศึกษา

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

608
00:24:29,150 --> 00:24:30,428

609
00:24:30,428 --> 00:24:30,811

610
00:24:30,811 --> 00:24:31,070

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

612
00:24:34,211 --> 00:24:37,485
มากกว่า 20 วิชา

613
00:24:37,485 --> 00:24:38,764
นะคะ

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

615
00:24:45,296 --> 00:24:45,936

616
00:24:45,936 --> 00:24:47,286

617
00:24:47,286 --> 00:24:47,867

618
00:24:47,867 --> 00:24:48,450

619
00:24:48,450 --> 00:24:51,328
อันนี้ก็คือการขึ้นต่อกันแบบ

620
00:24:51,328 --> 00:24:53,381
มีค่ามากกว่า 1

621
00:24:53,381 --> 00:24:55,041
นะคะ รหัสหลักสูตร

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

623
00:24:57,742 --> 00:24:58,632

624
00:24:58,632 --> 00:25:00,555
นะคะ แล้วรหัสหลักสูตร

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

626
00:25:05,178 --> 00:25:07,417
เหมือนตอนนี้หลักสูตรที่โรงเรียน

627
00:25:07,417 --> 00:25:10,172
นี่ มีศึกษาเกือบ 100 คน

628
00:25:10,172 --> 00:25:12,481
แต่รหัสเดียวนะ

629
00:25:12,481 --> 00:25:13,633
นะคะ

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

631
00:25:18,823 --> 00:25:22,823

632
00:25:23,377 --> 00:25:24,338

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

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

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

636
00:25:43,885 --> 00:25:44,134

637
00:25:44,134 --> 00:25:45,166

638
00:25:45,166 --> 00:25:46,898
นะคะ โดยหลักการนะคะ

639
00:25:46,898 --> 00:25:48,368
อย่างที่บอกมี 5 ระดับ

640
00:25:48,368 --> 00:25:49,969
แต่ระดับ

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

642
00:25:53,828 --> 00:25:53,964

643
00:25:53,964 --> 00:25:56,513

644
00:25:56,513 --> 00:25:58,056
นะคะ โดย

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

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

647
00:26:06,513 --> 00:26:08,753
นะคะ ขอแรกง่ายมาก ๆ

648
00:26:08,753 --> 00:26:10,685

649
00:26:10,685 --> 00:26:13,699
ง่ายที่สุดก็คือ 1 nf นะคะ

650
00:26:13,699 --> 00:26:16,578
ต่อมาขั้นที่ 2 อยู่ 2 nf

651
00:26:16,578 --> 00:26:18,890
จะกำจัด

652
00:26:18,890 --> 00:26:22,218
การขึ้นต่อกันบางส่วนออก

653
00:26:22,218 --> 00:26:24,593

654
00:26:24,593 --> 00:26:27,679
นะคะ ขั้นสุดท้าย 3nf นะคะ

655
00:26:27,679 --> 00:26:30,615
กำจัดการขึ้นต่อกันของแอตทริบิวต์ที่ไม่ใช่ค

656
00:26:30,615 --> 00:26:31,258

657
00:26:31,258 --> 00:26:33,686
ีย์หลักนะคะ เดี๋ยวจะมาดูทีละขั้น

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

659
00:26:35,877 --> 00:26:38,052

660
00:26:38,052 --> 00:26:38,563

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

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

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

664
00:26:50,485 --> 00:26:52,214
คำซ้อนกันไหม

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

666
00:26:56,129 --> 00:26:56,643

667
00:26:56,643 --> 00:27:00,173
ขั้นที่ 3 อันไหนไม่ใช่ค

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

669
00:27:03,886 --> 00:27:05,040

670
00:27:05,040 --> 00:27:06,958
ดูขั้นตอรที่ 1 ก่อน

671
00:27:06,958 --> 00:27:07,668

672
00:27:07,668 --> 00:27:08,498

673
00:27:08,498 --> 00:27:09,850
ขั้นที่ 1 ได้มาก

674
00:27:09,850 --> 00:27:12,093
นะคะ ทุก ๆ

675
00:27:12,093 --> 00:27:12,413

676
00:27:12,413 --> 00:27:15,104
คอลัมน์  Records

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

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

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

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

681
00:27:25,112 --> 00:27:26,774
อย่างนี้

682
00:27:26,774 --> 00:27:28,245
นักศึกษาคนที่ 1

683
00:27:28,245 --> 00:27:28,507

684
00:27:28,507 --> 00:27:29,718
แน่นอนทั้ง 3

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

686
00:27:35,167 --> 00:27:35,999

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

688
00:27:38,313 --> 00:27:42,224
ถ้าเราไม่มีการ

689
00:27:42,224 --> 00:27:43,186
ทำ normalization คราวนี้

690
00:27:43,186 --> 00:27:44,843
ขั้นตอนที่ 1

691
00:27:44,843 --> 00:27:45,556
เราจะ

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

693
00:27:53,494 --> 00:27:54,207

694
00:27:54,207 --> 00:27:56,057
ดูตัวอย่างนะคะ

695
00:27:56,057 --> 00:27:56,650

696
00:27:56,650 --> 00:27:56,900

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

698
00:28:01,962 --> 00:28:02,793

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

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

701
00:28:08,115 --> 00:28:08,248

702
00:28:08,248 --> 00:28:10,937
สามารถทำในรูปแบบ 1nf ก็คือ

703
00:28:10,937 --> 00:28:13,118
เอามันกระจายออกมาค่ะ

704
00:28:13,118 --> 00:28:13,380

705
00:28:13,380 --> 00:28:15,873
ย้ายข้อมูลพรุ่งนี้ออกมา

706
00:28:15,873 --> 00:28:17,661
กระจายออกใช่ไหมคะ กระจายออก

707
00:28:17,661 --> 00:28:19,141

708
00:28:19,141 --> 00:28:21,135
ง่ายมาก

709
00:28:21,135 --> 00:28:25,135
ข้อมูลพรุ่งนี้ก็ทำซ้ำลงมา ทำซ้ำลงมา

710
00:28:25,294 --> 00:28:27,354
ทำซ้ำลงมา

711
00:28:27,354 --> 00:28:28,745
ทำซ้ำลงม

712
00:28:28,745 --> 00:28:31,185

713
00:28:31,185 --> 00:28:33,878
ถามว่าอ้าวตาเขาทำไม

714
00:28:33,878 --> 00:28:34,589

715
00:28:34,589 --> 00:28:35,100

716
00:28:35,100 --> 00:28:37,215
ทำไม 001 มันซ้ำกันได้ล่ะ

717
00:28:37,215 --> 00:28:37,402

718
00:28:37,402 --> 00:28:38,314

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

720
00:28:43,497 --> 00:28:46,324
เด็ก ๆ เลยง่ายมากค่ะ

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

722
00:28:51,323 --> 00:28:52,082

723
00:28:52,082 --> 00:28:53,751
อย่างน้อยในข้อสอบ

724
00:28:53,751 --> 00:28:57,665
ต้องทำ 1nf ให้ได้

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

726
00:28:59,135 --> 00:28:59,585

727
00:28:59,585 --> 00:29:01,829
นะคะ

728
00:29:01,829 --> 00:29:03,307

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

730
00:29:07,920 --> 00:29:09,257

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

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

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

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

735
00:29:16,372 --> 00:29:16,956

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

737
00:29:18,494 --> 00:29:19,267

738
00:29:19,267 --> 00:29:19,585

739
00:29:19,585 --> 00:29:21,697
เป็นของพนักงานใช่ไหมคะ

740
00:29:21,697 --> 00:29:23,878
เขาจะมีคีย์หลัก 1 ตัวล่ะ

741
00:29:23,878 --> 00:29:25,028
แต่ว่า

742
00:29:25,028 --> 00:29:25,480

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

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

745
00:29:31,253 --> 00:29:31,571

746
00:29:31,571 --> 00:29:35,032
เป็นคีย์หลักได้

747
00:29:35,032 --> 00:29:39,032
เราต้องแยกมันออก

748
00:29:40,812 --> 00:29:40,995
นะคะ

749
00:29:38,104 --> 00:29:40,545

750
00:29:40,545 --> 00:29:41,190

751
00:29:41,190 --> 00:29:43,039
กระบวนการนะคะ

752
00:29:43,039 --> 00:29:44,778
ดูก่อนว่า

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

754
00:29:52,663 --> 00:29:54,512
สังเกตเราว่าที่รักมีตัวเดียว

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

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

757
00:29:59,455 --> 00:29:59,719

758
00:29:59,719 --> 00:30:00,610

759
00:30:00,610 --> 00:30:01,511
ก็จะมีรหัส

760
00:30:01,511 --> 00:30:02,023

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

762
00:30:06,762 --> 00:30:09,006
งบประมาณเท่าไ

763
00:30:09,006 --> 00:30:09,714

764
00:30:09,714 --> 00:30:10,416

765
00:30:10,416 --> 00:30:10,809

766
00:30:10,809 --> 00:30:12,466
รคือมันจะเชื่อมโยงกับ

767
00:30:12,466 --> 00:30:15,536
ข้อมูลที่เป็นคีย์หลักก็คือ Project Code นะคะ วนนี้

768
00:30:15,536 --> 00:30:18,049

769
00:30:18,049 --> 00:30:18,490

770
00:30:18,490 --> 00:30:18,619

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

772
00:30:23,936 --> 00:30:24,204

773
00:30:24,204 --> 00:30:25,936
2 ตัว

774
00:30:25,936 --> 00:30:27,977
2 ตัว

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

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

777
00:30:36,120 --> 00:30:36,571

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

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

780
00:30:42,146 --> 00:30:43,876
ถามว่า

781
00:30:43,876 --> 00:30:46,054
มันขึ้นตรงกับโปรเจก Code ไหม

782
00:30:46,054 --> 00:30:46,827
ไม่

783
00:30:46,827 --> 00:30:49,514
นะคะ

784
00:30:49,514 --> 00:30:51,116

785
00:30:51,116 --> 00:30:51,307

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

787
00:30:55,858 --> 00:30:56,237

788
00:30:56,237 --> 00:30:57,271
2NF ขั้นตอนที่ 1

789
00:30:57,271 --> 00:30:57,588

790
00:30:57,588 --> 00:31:00,929
เราจะต้องทำ 1 nf มาเรียบร้อยแล้วซึ่งได้ทักมา

791
00:31:00,929 --> 00:31:03,233
แล้วก็ต้องมา

792
00:31:03,233 --> 00:31:05,545
บัตรของการขึ้นต่อกันบางส่วนออก

793
00:31:05,545 --> 00:31:05,925

794
00:31:05,925 --> 00:31:07,846
ก็คือการ

795
00:31:07,846 --> 00:31:08,625
กำจัด

796
00:31:08,625 --> 00:31:11,236
แอตทริบิวตี้ไม่ขึ้น

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

798
00:31:14,637 --> 00:31:17,722
จะออกนะคะ

799
00:31:17,722 --> 00:31:21,172
อย่างเช่นตัวนี้นะคะ

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

801
00:31:23,936 --> 00:31:27,006
รหัสวิชากับชื่อวิชา

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

803
00:31:30,858 --> 00:31:33,290
รูปเดิม

804
00:31:33,290 --> 00:31:34,059

805
00:31:34,059 --> 00:31:34,700

806
00:31:34,700 --> 00:31:35,023

807
00:31:35,023 --> 00:31:35,211

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

809
00:31:41,626 --> 00:31:44,190
ไปสร้างตารางใหม่

810
00:31:44,190 --> 00:31:45,150

811
00:31:45,150 --> 00:31:46,308
สร้างตารางเพิ่ม

812
00:31:46,308 --> 00:31:46,501

813
00:31:46,501 --> 00:31:50,501
นะคะ เอาสิ่งที่เป็นปัญหาออกมาไปใส่ตารางใหม่กำหนดคีย์หลักใหม่

814
00:31:52,336 --> 00:31:53,611

815
00:31:53,611 --> 00:31:55,225
นะคะ ในตารางเดิม

816
00:31:55,225 --> 00:31:56,372
นะคะ

817
00:31:56,372 --> 00:31:59,386
เราก็เอาคีย์หลักของตารางใหม่ไปใส่

818
00:31:59,386 --> 00:32:00,274
แค่นั้นเอง

819
00:32:00,274 --> 00:32:02,910
นะคะ วิธีการก็คือ

820
00:32:02,910 --> 00:32:03,936

821
00:32:03,936 --> 00:32:05,596
เหมือนรูปนี้นะคะ

822
00:32:05,596 --> 00:32:09,443
สิ่งที่เป็นปัญหาที่จะยกตัวอย่างคือ รหัสวิชา

823
00:32:09,443 --> 00:32:11,113
กับชื่อวิชา

824
00:32:11,113 --> 00:32:11,752

825
00:32:11,752 --> 00:32:11,953

826
00:32:11,953 --> 00:32:15,953
เพราะรหัสวิชามันไม่ได้ขึ้นตรงกับรหัสนักศึกษา

827
00:32:18,744 --> 00:32:22,744
นะคะ เพราะฉะนั้นไอ้สองตัวนี้คือสิ่งที่เป็นปัญหา

828
00:32:23,098 --> 00:32:27,098
นะคะ วิธีการแก้ปัญหาคือเราสร้างตารางผลการเรียนใหม่

829
00:32:27,911 --> 00:32:28,166

830
00:32:28,166 --> 00:32:29,963
สร้างตารางวิชาใหม่

831
00:32:29,963 --> 00:32:31,365
เห็นไหมคะ

832
00:32:31,365 --> 00:32:35,365
ตารางใหม่เราจะตัดชื่อวิชาออก

833
00:32:36,311 --> 00:32:36,569

834
00:32:36,569 --> 00:32:38,552
แต่ต้องเหลือ

835
00:32:38,552 --> 00:32:42,552
รหัสวิชาไว้เพื่อให้ไปเชื่อมโยงว่ารหัสวิชานี้มันชื่อวิชาอะไร

836
00:32:43,686 --> 00:32:45,539
จากอีกตาราง

837
00:32:45,539 --> 00:32:47,716
หนึ่งแค่นั้นเองนะคะ

838
00:32:47,716 --> 00:32:48,997

839
00:32:48,997 --> 00:32:49,636

840
00:32:49,636 --> 00:32:50,980

841
00:32:50,980 --> 00:32:51,179

842
00:32:51,179 --> 00:32:53,168
โอเคค่ะ

843
00:32:53,168 --> 00:32:53,811

844
00:32:53,811 --> 00:32:54,001

845
00:32:54,001 --> 00:32:54,452

846
00:32:54,452 --> 00:32:55,543

847
00:32:55,543 --> 00:32:57,652
อันนี้เป็นตัวอย่างของการ

848
00:32:57,652 --> 00:32:58,166

849
00:32:58,166 --> 00:33:00,543
ปรับบรรทัดฐาน ในรูปแบบของ

850
00:33:00,543 --> 00:33:01,693

851
00:33:01,693 --> 00:33:03,487
2NF เดี๋ยววันนี้

852
00:33:03,487 --> 00:33:03,871

853
00:33:03,871 --> 00:33:07,459
จะให้ทำการบ้านเดี๋ยวค่อยย้อนกลับมาแล้วกันนะคะ

854
00:33:07,459 --> 00:33:07,839

855
00:33:07,839 --> 00:33:09,961
สอนภาษา

856
00:33:09,961 --> 00:33:10,600

857
00:33:10,600 --> 00:33:12,592

858
00:33:12,592 --> 00:33:14,446
เดี๋ยวแก้แล้ว

859
00:33:14,446 --> 00:33:15,347

860
00:33:15,347 --> 00:33:18,556
ตารางเมื่อกี้นะคะ

861
00:33:18,556 --> 00:33:21,687
ขั้นตอนสุดท้ายนะคะ 3nf

862
00:33:21,687 --> 00:33:22,517

863
00:33:22,517 --> 00:33:23,358
นะคะ

864
00:33:23,358 --> 00:33:24,769

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

866
00:33:31,302 --> 00:33:34,123
หลักของการทำขั้นตอนที่ 3 คือ

867
00:33:34,123 --> 00:33:36,883
ต้องเอาความสัมพันธ์ที่ไม่ใช่คีย์หลัก

868
00:33:36,883 --> 00:33:39,957
ออกนะคะ

869
00:33:39,957 --> 00:33:43,734
เช่นไม่ใช่คีย์หลักแต่ไม่มีผลกับ

870
00:33:43,734 --> 00:33:46,875
คอลัมน์อื่นไม่ได้นะคะ ไม่ได้

871
00:33:46,875 --> 00:33:48,410

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

873
00:33:52,129 --> 00:33:54,051
แก้ปัญหานั้น ๆ

874
00:33:54,051 --> 00:33:54,950

875
00:33:54,950 --> 00:33:56,421

876
00:33:56,421 --> 00:34:00,017
อย่างเช่นในตัวอย่างนะคะ

877
00:34:00,017 --> 00:34:03,346
รหัสพนักงานนะคะ

878
00:34:03,346 --> 00:34:06,426
ชื่อสกุล รหัสแผนก ชื่อแผนก เงินเดือน

879
00:34:06,426 --> 00:34:10,426
จะเห็นได้ว่าในตารางนี้นี่คีย์หลักก็คือรหัสพนักงาน

880
00:34:10,911 --> 00:34:11,622

881
00:34:11,622 --> 00:34:11,874

882
00:34:11,874 --> 00:34:12,773

883
00:34:12,773 --> 00:34:13,092

884
00:34:13,092 --> 00:34:17,092
แต่มันมีรหัสแผนกกับชื่อแผนกติดมาด้วย

885
00:34:17,704 --> 00:34:20,338
ซึ่งมันไม่ได้เกี่ยวกับรหัสพนักงานเลย

886
00:34:20,338 --> 00:34:20,978

887
00:34:20,978 --> 00:34:22,329

888
00:34:22,329 --> 00:34:24,701
นะคะ วิธีการแก้ปัญหาก็คือ

889
00:34:24,701 --> 00:34:24,831

890
00:34:24,831 --> 00:34:26,232
เอารหัสแผนก

891
00:34:26,232 --> 00:34:26,433

892
00:34:26,433 --> 00:34:27,773
กับชื่อแผนก

893
00:34:27,773 --> 00:34:28,221

894
00:34:28,221 --> 00:34:32,221
ไปสร้างตารางใหม่

895
00:34:32,454 --> 00:34:36,357
แต่ต้องยังคงรหัสแผนกไว้

896
00:34:36,357 --> 00:34:38,927
ตารางเดิมนะคะ

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

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

899
00:34:55,205 --> 00:34:59,205
อันนี้คือ 3NF จริง ๆ แล้วอยากให้ลองทำในห้องมากกว่าแต่ด้วยสัปดาห์นี้มันมีข้อจำกัดนะก็ไม่เป็นไร

900
00:35:03,023 --> 00:35:03,295

901
00:35:03,295 --> 00:35:06,293

902
00:35:06,293 --> 00:35:07,001

903
00:35:07,001 --> 00:35:09,627
นี้เป็นตัวอย่างนะคะ

904
00:35:09,627 --> 00:35:10,779

905
00:35:10,779 --> 00:35:11,098

906
00:35:11,098 --> 00:35:11,229

907
00:35:11,229 --> 00:35:15,229
สรุปนะคะ วิธีการทำ normalization หรือว่าการปรับบรรทัดฐานนะคะ

908
00:35:18,149 --> 00:35:22,149
ทุก ๆ ที่ทุก ๆ ในแต่ละแถว

909
00:35:23,022 --> 00:35:26,355
จะต้องมีค่าของข้อมูลเพียงค่าเดียวเท่านั้น

910
00:35:26,355 --> 00:35:27,186

911
00:35:27,186 --> 00:35:29,307
เช่นเวลาเรากรอกเบอร์โทรศัพท์

912
00:35:29,307 --> 00:35:33,307
เรามีโทรศัพท์ 3 เบอร์ก็จริงแต่เราจะกรอกได้แค่เบอร์เดียว

913
00:35:33,795 --> 00:35:35,522

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

915
00:35:44,647 --> 00:35:42,494
นะคะ

916
00:35:39,634 --> 00:35:42,069

917
00:35:42,069 --> 00:35:44,049
ต่อมา

918
00:35:44,049 --> 00:35:45,149
2 NF

919
00:35:45,149 --> 00:35:47,769
ก็

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

921
00:35:55,271 --> 00:35:56,681
ของตาราง

922
00:35:56,681 --> 00:35:57,961
ตัวเดียวเท่านั้น

923
00:35:57,961 --> 00:35:59,560
นะคะ

924
00:35:59,560 --> 00:35:59,941

925
00:35:59,941 --> 00:36:03,153
ข้อที่ 3 ถ้า

926
00:36:03,153 --> 00:36:05,394
คอลัมน์ไหนที่ไม่ใช่คีย์หลัก

927
00:36:05,394 --> 00:36:05,715

928
00:36:05,715 --> 00:36:06,737

929
00:36:06,737 --> 00:36:07,247

930
00:36:07,247 --> 00:36:07,507

931
00:36:07,507 --> 00:36:10,529
นะคะ จะมาส่งผลกับคอลัมน์อื่นในตารางไม่ได้

932
00:36:10,529 --> 00:36:12,378
เพราะฉะนั้น

933
00:36:12,378 --> 00:36:15,449
ไปตลาดข้อ 1 นี้คือแค่กระจายตาราง

934
00:36:15,449 --> 00:36:18,091
อันที่ 2 อันที่ 3 ถ้ามีปัญหา

935
00:36:18,091 --> 00:36:22,091
ปุ๊บ เราต้องสร้างตารางใหม่

936
00:36:28,110 --> 00:36:25,719
นะคะ

937
00:36:20,202 --> 00:36:23,274

938
00:36:23,274 --> 00:36:24,238

939
00:36:24,238 --> 00:36:24,876

940
00:36:24,876 --> 00:36:25,065

941
00:36:25,065 --> 00:36:26,616

942
00:36:26,616 --> 00:36:27,186

943
00:36:27,186 --> 00:36:29,819
การบ้านเอาอย่างนี้ดีกว่า

944
00:36:29,819 --> 00:36:33,819
อาจารย์จะให้ทำน่าจะส่งวันนี้

945
00:36:33,923 --> 00:36:37,126
เอาแค่

946
00:36:37,126 --> 00:36:41,126
ข้อเดียวนะคะ ข้อเดียวพอ เพราะว่าจริง ๆ อยากให้ทำในห้องเดี๋ยวสัปดาห์หน้าค่อยทำในห้อง

947
00:36:42,833 --> 00:36:43,473

948
00:36:43,473 --> 00:36:43,732

949
00:36:43,732 --> 00:36:46,481
นะคะ แต่อันนี้จะให้ลองทำดูก่อนว่าที่เรียนไปวันนี้

950
00:36:46,481 --> 00:36:48,084
เข้าใจไหม

951
00:36:48,084 --> 00:36:48,793

952
00:36:48,793 --> 00:36:51,485
ถ้าทำเสร็จแล้วก็ค่อยเอามาส่ง

953
00:36:51,485 --> 00:36:55,485
ที่ตู้ส่งงานอาจารย์เอาเฉพาะข้อดีนะข้อเดียว

954
00:36:57,190 --> 00:37:01,159
ข้อเดียวพอวันนี้คนเดียวพอนะคะ ส่งในเวลานี้ล่ะ

955
00:37:01,159 --> 00:37:01,550

956
00:37:01,550 --> 00:37:02,759

957
00:37:02,759 --> 00:37:05,134
ให้ลองทำดูว่าเข้าใจไหมข้อนี้

958
00:37:05,134 --> 00:37:06,362

959
00:37:06,362 --> 00:37:07,192

960
00:37:07,192 --> 00:37:10,907
ทำอย่างนี้ ทำอย่างไรได้มาก ๆ เลย

961
00:37:10,907 --> 00:37:11,545

962
00:37:11,545 --> 00:37:13,015
การเว้นช่องว่างให้แล้ว

963
00:37:13,015 --> 00:37:13,976
เติมมา

964
00:37:13,976 --> 00:37:14,296

965
00:37:14,296 --> 00:37:15,268

966
00:37:15,268 --> 00:37:16,167

967
00:37:16,167 --> 00:37:17,890
2 มิติ

968
00:37:17,890 --> 00:37:20,012
คุณเห็นไหมว่า

969
00:37:20,012 --> 00:37:20,129

970
00:37:20,129 --> 00:37:22,312
มันมีรหัสวิชานี่

971
00:37:22,312 --> 00:37:23,414
วิชานี่

972
00:37:23,414 --> 00:37:25,016
ต้องทำอย่างไร กับมัน

973
00:37:25,016 --> 00:37:25,333

974
00:37:25,333 --> 00:37:27,442

975
00:37:27,442 --> 00:37:29,293
แยกมันออกมาซิแยกยังไง

976
00:37:29,293 --> 00:37:31,356

977
00:37:31,356 --> 00:37:32,699
เอาข้อเดียวก่อนนะคะ แล้วลอง

978
00:37:32,699 --> 00:37:33,151

979
00:37:33,151 --> 00:37:34,821
ส่งมาให้อาจารย์ดูก่อนว่า

980
00:37:34,821 --> 00:37:36,672
เข้าใจมากน้อยขนาดไหน

981
00:37:36,672 --> 00:37:37,122

982
00:37:37,122 --> 00:37:38,532
จริง ๆ

983
00:37:38,532 --> 00:37:41,545
อยากให้เรียนในห้องมากกว่าแต่วันนี้ก็เอา

984
00:37:41,545 --> 00:37:43,088
มานี้ก่อนแล้วกัน

985
00:37:43,088 --> 00:37:43,466

986
00:37:43,466 --> 00:37:44,428

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

988
00:37:47,446 --> 00:37:48,033

989
00:37:48,033 --> 00:37:49,629
เดินดูในห้องดีกว่า

990
00:37:49,629 --> 00:37:50,967

991
00:37:50,967 --> 00:37:53,082
วันนี้ก็

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

993
00:37:56,484 --> 00:37:56,873

994
00:37:56,873 --> 00:37:58,275
วันนี้เลยยิ่งดี

995
00:37:58,275 --> 00:37:59,173

996
00:37:59,173 --> 00:38:01,996
นะคะ เวลาที่เหลือทำใส่กระดาษมาส่งอาจารย์

997
00:38:01,996 --> 00:38:04,177
แล้วกันนะ

998
00:38:04,177 --> 00:38:06,930
ประมาณนี้ค่ะ เวลาที่เหลือทำให้เสร็จภายในวันนี้นะคะ

999
00:38:06,930 --> 00:38:10,930
ข้อเดียวเองนะคะ ข้อเดียว

1000
00:38:14,999 --> 00:38:15,495

1001
00:38:10,899 --> 00:38:12,060

1002
00:38:12,060 --> 00:38:13,530
มีใครสงสัยไหมคะ

1003
00:38:13,530 --> 00:38:16,413
ปุ๋ยยสงสัยไหม

1004
00:38:16,413 --> 00:38:18,272
ปุ๋ยเปิดไม่ได้หรือเปล่า

1005
00:38:18,272 --> 00:38:18,593

1006
00:38:18,593 --> 00:38:22,593
(นักศึกษาหญิง) ไม่มีค่ะ อาจารย์เดี๋ยวถ้าอไงเดี๋ยวให้อุบลไปส่งหรือยังไงคะเพราะว่าบนขึ้น

1007
00:38:25,772 --> 00:38:26,931

1008
00:38:26,931 --> 00:38:29,881
ไม่ ๆ ส่วนมากอยู่ในการอยู่หอนี่แหละ

1009
00:38:29,881 --> 00:38:30,334

1010
00:38:30,334 --> 00:38:33,214

1011
00:38:33,214 --> 00:38:35,778
ตอนนี้เหลืออยู่ประมาณ

1012
00:38:35,778 --> 00:38:37,138

1013
00:38:37,138 --> 00:38:37,447

1014
00:38:37,447 --> 00:38:41,348
4 คนนี่ล่ะค่ะ ใส่ได้ก็เอามา

1015
00:38:41,348 --> 00:38:41,478

1016
00:38:41,478 --> 00:38:41,742

1017
00:38:41,742 --> 00:38:42,631

1018
00:38:42,631 --> 00:38:46,631
Ok Thank You

1019
00:38:47,699 --> 00:38:49,871

1020
00:38:49,871 --> 00:38:50,263

1021
00:38:50,263 --> 00:38:53,724
ค่ะ วันนี้ก็ประมาณนี้ค่ะ ขอบคุณทุกคนมากนะคะ

1022
00:38:53,724 --> 00:38:54,106

1023
00:38:54,106 --> 00:38:58,106
ที่ยังตั้งใจเรียนอยู่ แล้วก็งานอย่าลืมส่งวันนี้นะคะ อยู่ดี ๆ ก็

1024
00:38:58,589 --> 00:38:59,359
ทำให้เสร็จ

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

1026
00:39:06,670 --> 00:39:07,691
โต๊ะ อาจารย์ก็ได้

1027
00:39:07,691 --> 00:39:10,772

1028
00:39:10,772 --> 00:39:14,772
โอเคค่ะ วันนี้ก็ประมาณนี้ค่ะ ขอบคุณล่ามด้วยนะคะ

1029
00:39:15,706 --> 00:39:18,658
ค่ะ ขอบคุณค่ะ

1030
00:39:18,658 --> 00:39:19,808

1031
00:39:19,808 --> 00:39:20,208

1032
00:39:20,208 --> 00:39:20,580

1033
00:39:20,580 --> 00:39:21,480

1034
00:39:21,480 --> 00:39:24,232

1035
00:39:24,232 --> 00:39:25,576

1036
00:39:25,576 --> 00:39:29,576

1037
00:39:37,304 --> 00:39:41,304
ปุ๋ยวันนี้ครบนะ

1038
00:39:41,598 --> 00:39:43,009

1039
00:39:43,009 --> 00:39:43,268

1040
00:39:43,268 --> 00:39:43,458

1041
00:39:43,458 --> 00:39:43,782

1042
00:39:43,782 --> 00:39:45,134

1043
00:39:45,134 --> 00:39:46,348
ปุ๋ยไปแล้ว OK

1044
00:39:46,348 --> 00:39:50,348

1045
00:39:55,058 --> 00:39:59,058


