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

2
00:00:04,003 --> 00:00:04,003

3
00:00:04,003 --> 00:00:04,869

4
00:00:04,869 --> 00:00:06,033

5
00:00:06,033 --> 00:00:08,337

6
00:00:08,337 --> 00:00:08,521

7
00:00:08,521 --> 00:00:09,741

8
00:00:09,741 --> 00:00:10,124

9
00:00:10,124 --> 00:00:10,575

10
00:00:10,575 --> 00:00:10,763

11
00:00:10,763 --> 00:00:12,505

12
00:00:12,505 --> 00:00:12,695

13
00:00:12,695 --> 00:00:12,956

14
00:00:12,956 --> 00:00:13,396

15
00:00:13,396 --> 00:00:13,597

16
00:00:13,597 --> 00:00:13,847

17
00:00:13,847 --> 00:00:14,170

18
00:00:14,170 --> 00:00:14,298

19
00:00:14,298 --> 00:00:15,390

20
00:00:15,390 --> 00:00:15,641

21
00:00:15,641 --> 00:00:15,900

22
00:00:15,900 --> 00:00:17,560

23
00:00:17,560 --> 00:00:18,143

24
00:00:18,143 --> 00:00:18,330

25
00:00:18,330 --> 00:00:18,462

26
00:00:18,462 --> 00:00:18,788

27
00:00:18,788 --> 00:00:19,875

28
00:00:19,875 --> 00:00:20,774

29
00:00:20,774 --> 00:00:21,286

30
00:00:21,286 --> 00:00:21,734

31
00:00:21,734 --> 00:00:21,997

32
00:00:21,997 --> 00:00:25,896

33
00:00:25,896 --> 00:00:26,928

34
00:00:26,928 --> 00:00:27,688

35
00:00:27,688 --> 00:00:27,950

36
00:00:27,950 --> 00:00:28,458

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

38
00:01:50,977 --> 00:01:52,329

39
00:01:52,329 --> 00:01:53,742

40
00:01:53,742 --> 00:01:54,443

41
00:01:54,443 --> 00:01:55,401
เดี๋ยวเริ่มเลยก็ได้ค่ะ โอเค หรืประมาณนี้

42
00:01:55,401 --> 00:01:56,232
นะคะ

43
00:01:56,232 --> 00:01:56,496

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

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

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

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

48
00:02:02,330 --> 00:02:02,587

49
00:02:02,587 --> 00:02:04,888
ขาภาษาอังกฤษก็จะเป็นนกอะไร Season

50
00:02:04,888 --> 00:02:08,161

51
00:02:08,161 --> 00:02:09,830

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

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

54
00:02:17,516 --> 00:02:17,719

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

56
00:02:22,069 --> 00:02:22,783
นะคะ

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

58
00:02:27,135 --> 00:02:27,775

59
00:02:27,775 --> 00:02:27,963

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

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

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

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

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

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

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

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

68
00:02:59,312 --> 00:02:59,573

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

70
00:03:02,193 --> 00:03:04,575
ระดับแรกนึกว่า 1nf

71
00:03:04,575 --> 00:03:04,954

72
00:03:04,954 --> 00:03:05,728

73
00:03:05,728 --> 00:03:06,556

74
00:03:06,556 --> 00:03:08,418
นะคะ 2nf 3nf

75
00:03:08,418 --> 00:03:09,568

76
00:03:09,568 --> 00:03:09,953

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

78
00:03:11,749 --> 00:03:12,277

79
00:03:12,277 --> 00:03:13,870
ถึง 3 NF  ได้

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

81
00:03:15,404 --> 00:03:16,622
นะคะ

82
00:03:16,622 --> 00:03:16,875

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

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

85
00:03:25,202 --> 00:03:27,441

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

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

88
00:03:37,573 --> 00:03:38,403
การระบ

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

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

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

92
00:03:45,646 --> 00:03:46,796
วาดรูป

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

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

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

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

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

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

99
00:04:09,104 --> 00:04:10,124

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

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

102
00:04:19,743 --> 00:04:20,450

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

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

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

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

107
00:04:27,938 --> 00:04:29,539

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

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

110
00:04:36,985 --> 00:04:39,183

111
00:04:39,183 --> 00:04:41,139

112
00:04:41,139 --> 00:04:43,009

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

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

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

116
00:04:58,268 --> 00:04:58,458

117
00:04:58,458 --> 00:04:59,419

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

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

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

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

122
00:05:11,203 --> 00:05:13,319
วันจันทร์อาจจะเกิดจากสาเหตุคือ

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

124
00:05:16,785 --> 00:05:17,108

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

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

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

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

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

130
00:05:30,362 --> 00:05:31,975
นะคะ

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

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

133
00:05:44,980 --> 00:05:46,260
นะคะ เก็บไว้ที่เดียว

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

135
00:05:51,205 --> 00:05:51,713

136
00:05:51,713 --> 00:05:52,544

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

138
00:05:56,136 --> 00:05:56,396

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

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

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

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

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

144
00:06:07,625 --> 00:06:08,950

145
00:06:08,950 --> 00:06:11,003
แล้วก็

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

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

148
00:06:19,657 --> 00:06:19,846

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

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

151
00:06:31,004 --> 00:06:34,148

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

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

154
00:06:42,673 --> 00:06:43,440

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

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

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

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

159
00:06:55,942 --> 00:06:57,160

160
00:06:57,160 --> 00:06:58,440

161
00:06:58,440 --> 00:06:58,569

162
00:06:58,569 --> 00:07:00,101

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

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

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

166
00:07:17,227 --> 00:07:19,667
จะเห็นได้ว่า

167
00:07:19,667 --> 00:07:20,180

168
00:07:20,180 --> 00:07:20,878
ตาราง

169
00:07:20,878 --> 00:07:21,707
พนักงาน

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

171
00:07:25,299 --> 00:07:26,138
ห้อยไว้อยู่

172
00:07:26,138 --> 00:07:26,650

173
00:07:26,650 --> 00:07:28,832
ถามว่าทำไมไม่เอา

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

175
00:07:32,471 --> 00:07:34,662
ทำไมต้องแยกออก

176
00:07:34,662 --> 00:07:35,437

177
00:07:35,437 --> 00:07:35,757

178
00:07:35,757 --> 00:07:37,289
ถ้า

179
00:07:37,289 --> 00:07:39,146
ศึกษาดูคนแรกนะคะ

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

181
00:07:45,360 --> 00:07:47,478
ก็คือสาขา

182
00:07:47,478 --> 00:07:49,719
เชียงใหม่

183
00:07:49,719 --> 00:07:49,969

184
00:07:49,969 --> 00:07:50,100

185
00:07:50,100 --> 00:07:50,562

186
00:07:50,562 --> 00:07:51,393

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

188
00:07:54,528 --> 00:07:55,366

189
00:07:55,366 --> 00:07:57,284

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

191
00:07:59,975 --> 00:08:01,326

192
00:08:01,326 --> 00:08:04,007
มีการลบข้อมูล

193
00:08:04,007 --> 00:08:05,740
บุคคลนี้

194
00:08:05,740 --> 00:08:08,892
ขีดฆ่าทิ้ง

195
00:08:08,892 --> 00:08:10,551
ขีดฆ่าทิ้ง

196
00:08:10,551 --> 00:08:13,433
สิ่งไหนที่หายไปบ้าง

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

198
00:08:16,966 --> 00:08:18,817
ถ้าสมมุติเราอยู่ด้วยกัน

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

200
00:08:22,469 --> 00:08:23,819
ยังอยู่

201
00:08:23,819 --> 00:08:25,039
นะคะ

202
00:08:25,039 --> 00:08:27,021
ซึ่งแตกต่างจากด้านล่าง

203
00:08:27,021 --> 00:08:28,370
นะคะ ด้านล่าง

204
00:08:28,370 --> 00:08:30,612
เห็นไหมคะ ว่า

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

206
00:08:33,303 --> 00:08:34,265

207
00:08:34,265 --> 00:08:35,165

208
00:08:35,165 --> 00:08:38,748
กากบาททิ้ง

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

210
00:08:40,808 --> 00:08:43,687
แบบนี้เป็นการออกแบบที่ไม่ดี

211
00:08:43,687 --> 00:08:45,419
เหมือน

212
00:08:45,419 --> 00:08:47,018
คนข้างล่าง

213
00:08:47,018 --> 00:08:47,862
ออก

214
00:08:47,862 --> 00:08:48,630

215
00:08:48,630 --> 00:08:50,163
สาขาพิษณุโลก

216
00:08:50,163 --> 00:08:52,665
ก็หายไปด้วย

217
00:08:52,665 --> 00:08:53,042

218
00:08:53,042 --> 00:08:55,416
แต่ถ้าเป็นตารางด้านบน

219
00:08:55,416 --> 00:08:56,070

220
00:08:56,070 --> 00:08:57,858
ถ้าคนนี้ลาออก

221
00:08:57,858 --> 00:08:59,204
สาขายังอยู่ไหม

222
00:08:59,204 --> 00:09:00,226
ยังอยู่เหมือนเดิม

223
00:09:00,226 --> 00:09:02,921

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

225
00:09:09,777 --> 00:09:13,439

226
00:09:13,439 --> 00:09:15,810

227
00:09:15,810 --> 00:09:18,300
นะคะ ตัวอย่าง

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

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

230
00:09:22,853 --> 00:09:23,563
ได้

231
00:09:23,563 --> 00:09:24,735

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

233
00:09:29,140 --> 00:09:29,658

234
00:09:29,658 --> 00:09:31,508
เห็นไหมคะ ว่ามันจะมี

235
00:09:31,508 --> 00:09:32,729
รหัสสาขา

236
00:09:32,729 --> 00:09:34,660
แล้วก็ที่อยู่

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

238
00:09:37,732 --> 00:09:40,352
ถ้าสมมุติว่าอาจารย์เพิ่ม

239
00:09:40,352 --> 00:09:42,084
เข้ามาใหม่อีก 1 คน

240
00:09:42,084 --> 00:09:43,045
นะคะ

241
00:09:43,045 --> 00:09:45,296
เป็น EM 10

242
00:09:45,296 --> 00:09:45,867

243
00:09:45,867 --> 00:09:46,386

244
00:09:46,386 --> 00:09:46,900

245
00:09:46,900 --> 00:09:47,470

246
00:09:47,470 --> 00:09:47,921

247
00:09:47,921 --> 00:09:48,310

248
00:09:48,310 --> 00:09:51,315
ถ้าต้องการเพิ่มพนักงานสาขา

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

250
00:09:54,015 --> 00:09:54,344

251
00:09:54,344 --> 00:09:57,157
เชียงใหม่ณโ

252
00:09:57,157 --> 00:09:59,010
แต่ถ้า

253
00:09:59,010 --> 00:10:00,868
การออกแบบฐานข้อมูลที่ดีเนี่

254
00:10:00,868 --> 00:10:03,560
เราแค่ใส่รหัสสาขา

255
00:10:03,560 --> 00:10:05,590

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

257
00:10:08,244 --> 00:10:08,566

258
00:10:08,566 --> 00:10:10,108

259
00:10:10,108 --> 00:10:10,560

260
00:10:10,560 --> 00:10:12,218

261
00:10:12,218 --> 00:10:12,667

262
00:10:12,667 --> 00:10:12,797

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

264
00:10:15,358 --> 00:10:15,611

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

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

267
00:10:21,005 --> 00:10:21,451

268
00:10:21,451 --> 00:10:22,151

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

270
00:10:27,856 --> 00:10:28,629

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

272
00:10:36,456 --> 00:10:39,654

273
00:10:39,654 --> 00:10:40,487

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

275
00:10:51,713 --> 00:10:52,287

276
00:10:52,287 --> 00:10:53,825

277
00:10:53,825 --> 00:10:55,674
อันนี้ก็เช่นเดียวกัน

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

279
00:10:59,468 --> 00:11:00,618
มันทำให้

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

281
00:11:02,800 --> 00:11:03,443

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

283
00:11:08,953 --> 00:11:10,551
นั่งกรอก

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

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

286
00:11:18,304 --> 00:11:20,865
นะคะ

287
00:11:20,865 --> 00:11:20,997

288
00:11:20,997 --> 00:11:24,997
กับอีกอย่างหนึ่งถ้าสมมุติว่าเมื่อกี้อาจารย์เพิ่มพนักงานแล้ว

289
00:11:27,207 --> 00:11:27,658

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

291
00:11:31,630 --> 00:11:34,972
อย่เพิ่งแค่สาขาซึ่งในตารางนี้

292
00:11:34,972 --> 00:11:35,731
กีฬา

293
00:11:35,731 --> 00:11:36,053

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

295
00:11:41,183 --> 00:11:42,143

296
00:11:42,143 --> 00:11:45,800
ซึ่งอาจารย์อยากเพิ่มสาขาสมุทรปราการจะเพิ่ม

297
00:11:45,800 --> 00:11:46,245

298
00:11:46,245 --> 00:11:48,098
B100

299
00:11:48,098 --> 00:11:49,710
สกลนคร

300
00:11:49,710 --> 00:11:50,797
นะคะ

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

302
00:11:55,224 --> 00:11:55,862

303
00:11:55,862 --> 00:11:57,023

304
00:11:57,023 --> 00:11:58,873
ถ้าจากตารางนี้

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

306
00:12:03,353 --> 00:12:04,444

307
00:12:04,444 --> 00:12:08,164
เรายังไม่มีรหัสพนักงาน เพราะรหัสพนักงานเป็นคีย์หลัก

308
00:12:08,164 --> 00:12:09,826

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

310
00:12:13,945 --> 00:12:14,508

311
00:12:14,508 --> 00:12:15,668

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

313
00:12:18,548 --> 00:12:19,948
ไม่มีพนักงาน

314
00:12:19,948 --> 00:12:21,434
อันนี้ก็เป็น

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

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

317
00:12:29,836 --> 00:12:30,275

318
00:12:30,275 --> 00:12:31,497
นี่ก็คือ

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

320
00:12:35,208 --> 00:12:36,879

321
00:12:36,879 --> 00:12:37,911

322
00:12:37,911 --> 00:12:39,889
กลับ

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

324
00:12:43,280 --> 00:12:46,363
ถ้าพนักงานคนนี้

325
00:12:46,363 --> 00:12:48,164
ออก

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

327
00:12:51,622 --> 00:12:53,288

328
00:12:53,288 --> 00:12:54,903
โดนลบไป

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

330
00:12:56,940 --> 00:12:57,072

331
00:12:57,072 --> 00:13:00,785
เหมือน b03 b03 นะคะ

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

333
00:13:03,163 --> 00:13:03,484

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

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

336
00:13:13,992 --> 00:13:17,516
สมมุติมีพนักงาน 3,000 คน

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

338
00:13:19,953 --> 00:13:22,267

339
00:13:22,267 --> 00:13:23,735
เป็นนนทบุรี

340
00:13:23,735 --> 00:13:23,985

341
00:13:23,985 --> 00:13:25,399

342
00:13:25,399 --> 00:13:25,717

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

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

345
00:13:34,431 --> 00:13:38,431

346
00:13:38,601 --> 00:13:42,449
มันก็เป็นปัญหานะคะ เพราะฉะนั้น

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

348
00:13:48,355 --> 00:13:48,924
นี่คือ

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

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

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

352
00:14:05,850 --> 00:14:09,504

353
00:14:09,504 --> 00:14:09,953

354
00:14:09,953 --> 00:14:10,084

355
00:14:10,084 --> 00:14:10,467

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

357
00:14:17,463 --> 00:14:18,610

358
00:14:18,610 --> 00:14:20,081

359
00:14:20,081 --> 00:14:20,724

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

361
00:14:24,824 --> 00:14:25,462

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

363
00:14:32,387 --> 00:14:34,117
เดี๋ยวดูตัวอย่างเลยแล้วกัน

364
00:14:34,117 --> 00:14:35,148

365
00:14:35,148 --> 00:14:35,660

366
00:14:35,660 --> 00:14:38,730
อย่างเช่นตารางนี้นะคะ

367
00:14:38,730 --> 00:14:42,002
ดูจากรหัสพนักงานนะคะ

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

369
00:14:45,844 --> 00:14:47,637
จะส่งผลกับชื่อ

370
00:14:47,637 --> 00:14:50,338
ตำแหน่ง

371
00:14:50,338 --> 00:14:50,596

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

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

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

375
00:15:03,153 --> 00:15:07,153
นะคะ

376
00:15:07,703 --> 00:15:09,366
อย่างเช่น

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

378
00:15:14,950 --> 00:15:16,810
ไม่ได้

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

380
00:15:23,282 --> 00:15:23,662

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

382
00:15:33,984 --> 00:15:34,201

383
00:15:34,201 --> 00:15:35,009

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

385
00:15:39,434 --> 00:15:41,486

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

387
00:15:44,425 --> 00:15:47,446
นะคะ

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

389
00:15:49,498 --> 00:15:52,309
ตารางนะคะ จะมีคอลัมน์

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

391
00:15:54,950 --> 00:15:55,335

392
00:15:55,335 --> 00:15:57,512
นะคะ โดยในคอลัมน์นั้น ๆ นี่

393
00:15:57,512 --> 00:15:58,347

394
00:15:58,347 --> 00:16:01,288
จะระบุค่าที่ระบุ

395
00:16:01,288 --> 00:16:02,317
ความพิเศษ

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

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

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

399
00:16:13,722 --> 00:16:14,110

400
00:16:14,110 --> 00:16:15,452

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

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

403
00:16:24,107 --> 00:16:28,107
นะคะ

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

405
00:16:34,236 --> 00:16:37,895
Attribute ก็คือคอลัมน์ที่ไม่ใช่คีย์หลัก ค

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

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

408
00:16:42,377 --> 00:16:44,498

409
00:16:44,498 --> 00:16:45,201

410
00:16:45,201 --> 00:16:46,418

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

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

413
00:16:52,570 --> 00:16:55,772
เช่นเลขบัตรประชาชน

414
00:16:55,772 --> 00:16:57,301

415
00:16:57,301 --> 00:16:58,902
จะขึ้น

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

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

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

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

420
00:17:20,702 --> 00:17:21,661

421
00:17:21,661 --> 00:17:22,302

422
00:17:22,302 --> 00:17:22,682

423
00:17:22,682 --> 00:17:23,642

424
00:17:23,642 --> 00:17:25,313
ตัวอย่างนะคะ

425
00:17:25,313 --> 00:17:28,004
ตารางที่มี Column หลายตัว

426
00:17:28,004 --> 00:17:29,155
นะคะ

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

428
00:17:32,106 --> 00:17:33,077
คนหนึ่งคนนี่

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

430
00:17:37,619 --> 00:17:38,961
แต่ว่า

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

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

433
00:17:45,445 --> 00:17:45,826

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

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

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

437
00:17:56,334 --> 00:17:56,917

438
00:17:56,917 --> 00:17:57,819

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

440
00:18:06,025 --> 00:18:06,409

441
00:18:06,409 --> 00:18:08,519

442
00:18:08,519 --> 00:18:08,777

443
00:18:08,777 --> 00:18:09,220

444
00:18:09,220 --> 00:18:10,178

445
00:18:10,178 --> 00:18:11,459

446
00:18:11,459 --> 00:18:12,360

447
00:18:12,360 --> 00:18:15,311
แต่บางตารางนะคะ

448
00:18:15,311 --> 00:18:15,954

449
00:18:15,954 --> 00:18:18,452
ก็อาจจะเป็นการรวมตัวกันของ

450
00:18:18,452 --> 00:18:19,476

451
00:18:19,476 --> 00:18:22,629
คีย์หลักมากกว่า 1 คีย์หลักนะคะ

452
00:18:22,629 --> 00:18:26,532
มารวมกัน เช่น นักศึกษา

453
00:18:26,532 --> 00:18:27,808
นี้

454
00:18:27,808 --> 00:18:29,218
เอกสารนี้

455
00:18:29,218 --> 00:18:31,210
ลงทะเบียนวิชานี้

456
00:18:31,210 --> 00:18:33,511
ได้เกรดอะไร

457
00:18:33,511 --> 00:18:34,286

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

459
00:18:39,362 --> 00:18:39,998

460
00:18:39,998 --> 00:18:40,830

461
00:18:40,830 --> 00:18:43,963
รหัสวิชาซ้ำกันได้ไหม

462
00:18:43,963 --> 00:18:47,367
เหมือนชื่อวิชา

463
00:18:47,367 --> 00:18:48,399
รหัสหนึ่ง

464
00:18:48,399 --> 00:18:51,144
เชืคนอื่นก็รหัสวิชาอีกอันนึง

465
00:18:51,144 --> 00:18:51,655

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

467
00:18:56,278 --> 00:18:57,298

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

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

470
00:19:03,773 --> 00:19:04,223

471
00:19:04,223 --> 00:19:06,462
คีย์ผสมนะคะ อาจจะเป็น

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

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

474
00:19:14,031 --> 00:19:15,060
คอลัมน์หนึ่ง

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

476
00:19:17,421 --> 00:19:18,383

477
00:19:18,383 --> 00:19:21,085
อย่างเช่น

478
00:19:21,085 --> 00:19:22,171

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

480
00:19:27,425 --> 00:19:28,587
แล้วก็

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

482
00:19:32,999 --> 00:19:33,768
นะคะ

483
00:19:33,768 --> 00:19:34,148

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

485
00:19:36,080 --> 00:19:36,722

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

487
00:19:38,514 --> 00:19:41,344
คอลัมน์หรือว่า Accident รวมกัน

488
00:19:41,344 --> 00:19:43,386

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

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

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

492
00:19:55,692 --> 00:19:57,611
มีรหัสนักศึกษา

493
00:19:57,611 --> 00:19:59,603
กับรหัสวิชา

494
00:19:59,603 --> 00:20:02,109

495
00:20:02,109 --> 00:20:03,328
นะคะ ถามว่า

496
00:20:03,328 --> 00:20:06,531
ถ้ามีแต่

497
00:20:06,531 --> 00:20:08,058
รหัสนักศึกษา

498
00:20:08,058 --> 00:20:08,970

499
00:20:08,970 --> 00:20:09,867
เกรดนะคะ

500
00:20:09,867 --> 00:20:11,402
รหัสวิชา

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

502
00:20:15,116 --> 00:20:18,460
ชื่อวิชาอะไร

503
00:20:18,460 --> 00:20:18,580

504
00:20:18,580 --> 00:20:20,497

505
00:20:20,497 --> 00:20:20,948

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

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

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

509
00:20:31,972 --> 00:20:33,583
ไปหลายวิชานี่

510
00:20:33,583 --> 00:20:35,435
ชื่อวิชาอะไร

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

512
00:20:39,027 --> 00:20:41,459
แต่มีคีย์หลัก 1 ตัวนี่

513
00:20:41,459 --> 00:20:42,679
ไปมีผลกับ

514
00:20:42,679 --> 00:20:44,473
Attribute 1 ได้

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

516
00:20:49,345 --> 00:20:49,726

517
00:20:49,726 --> 00:20:50,754

518
00:20:50,754 --> 00:20:51,277

519
00:20:51,277 --> 00:20:51,916

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

521
00:20:58,454 --> 00:21:00,691
มีแค่ 5 วิชามีเกรดมีการ

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

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

524
00:21:06,597 --> 00:21:07,428

525
00:21:07,428 --> 00:21:10,250
นะคะ หรือว่า

526
00:21:10,250 --> 00:21:10,892

527
00:21:10,892 --> 00:21:14,863
อย่าลบไปก่อนนะ

528
00:21:14,863 --> 00:21:16,534
หรือว่า

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

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

531
00:21:23,067 --> 00:21:26,342
ชื่อวิชา แล้วถามว่า

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

533
00:21:28,640 --> 00:21:29,797

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

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

536
00:21:35,828 --> 00:21:37,617

537
00:21:37,617 --> 00:21:39,550

538
00:21:39,550 --> 00:21:40,379

539
00:21:40,379 --> 00:21:41,589

540
00:21:41,589 --> 00:21:41,790

541
00:21:41,790 --> 00:21:41,982

542
00:21:41,982 --> 00:21:44,220

543
00:21:44,220 --> 00:21:44,860

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

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

546
00:21:55,568 --> 00:21:57,805
แต่ไปสามารถ

547
00:21:57,805 --> 00:21:59,483
ขึ้น

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

549
00:22:02,998 --> 00:22:03,192

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

551
00:22:07,363 --> 00:22:10,112

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

553
00:22:12,481 --> 00:22:13,003

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

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

556
00:22:18,698 --> 00:22:22,698

557
00:22:22,811 --> 00:22:26,811
ดูตัวอย่างนะคะ เช่นตาราง

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

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

560
00:22:42,215 --> 00:22:42,928

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

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

563
00:22:49,785 --> 00:22:51,458
เขา

564
00:22:51,458 --> 00:22:52,801
นี่ รถประจำตำแหน่ง

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

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

567
00:23:00,678 --> 00:23:02,422

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

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

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

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

572
00:23:12,800 --> 00:23:13,754

573
00:23:13,754 --> 00:23:17,089
การออกแบบที่ไม่ดี

574
00:23:17,089 --> 00:23:17,606

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

576
00:23:23,760 --> 00:23:25,483
เราควรจะแยก

577
00:23:25,483 --> 00:23:28,633
ตารางนี้

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

579
00:23:30,935 --> 00:23:31,127

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

581
00:23:34,088 --> 00:23:37,410
ที่มีคีย์หลัก

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

583
00:23:41,890 --> 00:23:44,655

584
00:23:44,655 --> 00:23:46,062

585
00:23:46,062 --> 00:23:49,843
กลับต่อมาเป็นการขึ้นต่อการเชิงกลุ่ม

586
00:23:49,843 --> 00:23:50,095

587
00:23:50,095 --> 00:23:51,138
นะคะ

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

589
00:23:55,170 --> 00:23:55,873

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

591
00:23:59,915 --> 00:24:00,684

592
00:24:00,684 --> 00:24:01,065

593
00:24:01,065 --> 00:24:01,774

594
00:24:01,774 --> 00:24:02,992
โดยที่

595
00:24:02,992 --> 00:24:04,526
อย่างเช่นตัวอย่าง

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

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

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

599
00:24:16,966 --> 00:24:17,683

600
00:24:17,683 --> 00:24:19,147
122

601
00:24:19,147 --> 00:24:19,469

602
00:24:19,469 --> 00:24:21,323

603
00:24:21,323 --> 00:24:23,050
รหัสนักศึกษา

604
00:24:23,050 --> 00:24:27,050
B122 คืออะไร B12 ก็คือหลักสูตรที่เราเรียนอยู่

605
00:24:29,148 --> 00:24:30,426

606
00:24:30,426 --> 00:24:30,809

607
00:24:30,809 --> 00:24:31,068

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

609
00:24:34,208 --> 00:24:37,479
มากกว่า 20 วิชา

610
00:24:37,479 --> 00:24:38,759
นะคะ

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

612
00:24:45,292 --> 00:24:45,932

613
00:24:45,932 --> 00:24:47,282

614
00:24:47,282 --> 00:24:47,863

615
00:24:47,863 --> 00:24:48,446

616
00:24:48,446 --> 00:24:51,325
ก็คือการขึ้นต่อกันแบบ

617
00:24:51,325 --> 00:24:53,376
มีค่ามากกว่า 1

618
00:24:53,376 --> 00:24:55,037
รหัสหลักสูตร

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

620
00:24:57,739 --> 00:24:58,630

621
00:24:58,630 --> 00:25:00,552
แล้วรหัสหลักสูตร

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

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

624
00:25:07,415 --> 00:25:10,171
ศึกษาเกือบ 100 คน

625
00:25:10,171 --> 00:25:12,481
แต่รหัสหลักสูตรเดียวนะ

626
00:25:12,481 --> 00:25:13,632
นะคะ

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

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

629
00:25:23,376 --> 00:25:24,337

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

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

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

633
00:25:43,881 --> 00:25:44,131

634
00:25:44,131 --> 00:25:45,162

635
00:25:45,162 --> 00:25:46,893
นะคะ โดยหลักการนะคะ

636
00:25:46,893 --> 00:25:48,362
ที่บอกมี 5 ระดับ

637
00:25:48,362 --> 00:25:49,962
แต่ระดับ

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

639
00:25:53,819 --> 00:25:53,955

640
00:25:53,955 --> 00:25:56,503

641
00:25:56,503 --> 00:25:58,046
โดย

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

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

644
00:26:06,498 --> 00:26:08,738
ข้อแลกง่ายมาก ๆ

645
00:26:08,738 --> 00:26:10,670

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

647
00:26:13,681 --> 00:26:16,563
ต่อมาครั้งที่ 2 อยู่ 2 nf

648
00:26:16,563 --> 00:26:18,876
จะกำจัด

649
00:26:18,876 --> 00:26:22,206
การขึ้นต่อกันบางส่วนออก

650
00:26:22,206 --> 00:26:24,579

651
00:26:24,579 --> 00:26:27,664
อันสุดท้าย 3nf นะคะ

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

653
00:26:30,604 --> 00:26:31,246

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

655
00:26:33,673 --> 00:26:35,862
ว่ามันจะต้องเป็นอย่างไรบ้าง

656
00:26:35,862 --> 00:26:38,036

657
00:26:38,036 --> 00:26:38,547

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

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

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

661
00:26:50,468 --> 00:26:52,198
ซ้ำซ้อนกันไหม

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

663
00:26:56,111 --> 00:26:56,624

664
00:26:56,624 --> 00:27:00,151
อันที่ 3 อันไหนไม่ใช่

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

666
00:27:03,865 --> 00:27:05,018

667
00:27:05,018 --> 00:27:06,936
ดูอันดับที่ 1 ก่อน

668
00:27:06,936 --> 00:27:07,647

669
00:27:07,647 --> 00:27:08,477

670
00:27:08,477 --> 00:27:09,828
ขั้นที่ 1 ได้มาก

671
00:27:09,828 --> 00:27:12,070
นะคะ ทุก ๆ

672
00:27:12,070 --> 00:27:12,390

673
00:27:12,390 --> 00:27:15,079
คอลัมน์  Records

674
00:27:15,079 --> 00:27:18,992
จะต้องเป็นค่า Single Value คือมีค่าเดียวเท่านั้น

675
00:27:18,992 --> 00:27:19,504

676
00:27:19,504 --> 00:27:21,744
จะใส่แบบนี้ไม่ได้

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

678
00:27:25,085 --> 00:27:26,747
อย่างนี้

679
00:27:26,747 --> 00:27:28,218
นักศึกษาคนที่ 1

680
00:27:28,218 --> 00:27:28,480

681
00:27:28,480 --> 00:27:29,690
แน่นอนทั้ง 3

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

683
00:27:35,143 --> 00:27:35,975

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

685
00:27:38,289 --> 00:27:42,198
ถ้าเราไม่มีการท

686
00:27:42,198 --> 00:27:43,160
ำ Normalization คราวนี้

687
00:27:43,160 --> 00:27:44,819
ขั้นตอนที่ 1

688
00:27:44,819 --> 00:27:45,532
เราจะ

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

690
00:27:53,473 --> 00:27:54,186

691
00:27:54,186 --> 00:27:56,037
ดูตัวอย่างนะคะ

692
00:27:56,037 --> 00:27:56,629

693
00:27:56,629 --> 00:27:56,879

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

695
00:28:01,940 --> 00:28:02,770

696
00:28:02,770 --> 00:28:04,052
คนที่ 1 วิชา

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

698
00:28:08,092 --> 00:28:08,225

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

700
00:28:10,915 --> 00:28:13,096
เอามันกระจายออกมาค่ะ

701
00:28:13,096 --> 00:28:13,357

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

703
00:28:15,850 --> 00:28:17,639
กระจายออกใช่ไหมคะ กระจายออก

704
00:28:17,639 --> 00:28:19,118

705
00:28:19,118 --> 00:28:21,112
ง่ายมาก

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

707
00:28:25,272 --> 00:28:27,332

708
00:28:27,332 --> 00:28:28,724
ทำซ้ำลงมา

709
00:28:28,724 --> 00:28:31,164

710
00:28:31,164 --> 00:28:33,856
ถามว่า อ้า อาจาเขาทำไม

711
00:28:33,856 --> 00:28:34,567

712
00:28:34,567 --> 00:28:35,078

713
00:28:35,078 --> 00:28:37,193
ทำไม 001 มันซ้ำกันได้ล่ะ

714
00:28:37,193 --> 00:28:37,380

715
00:28:37,380 --> 00:28:38,293

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

717
00:28:43,473 --> 00:28:46,300
เด็ก ๆ เลยง่ายมากค่ะ

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

719
00:28:51,300 --> 00:28:52,058

720
00:28:52,058 --> 00:28:53,729
อย่างน้อยในข้อสอบ

721
00:28:53,729 --> 00:28:57,643
ต้องทำ ให้ได้

722
00:28:57,643 --> 00:28:59,113
มันง่ายที่สุดแล้ว

723
00:28:59,113 --> 00:28:59,563

724
00:28:59,563 --> 00:29:01,808
นะคะ

725
00:29:01,808 --> 00:29:03,286

726
00:29:03,286 --> 00:29:07,286
ไม่ใช่ตัวนี้นะคะ ก็กระจายออกมา

727
00:29:07,902 --> 00:29:09,241

728
00:29:09,241 --> 00:29:09,370

729
00:29:09,370 --> 00:29:10,202

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

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

732
00:29:16,354 --> 00:29:16,939

733
00:29:16,939 --> 00:29:18,476
มันมีตาราง

734
00:29:18,476 --> 00:29:19,249

735
00:29:19,249 --> 00:29:19,566

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

737
00:29:21,678 --> 00:29:23,859
เขาจะมีคีย์หลัก 1 ตัวละ

738
00:29:23,859 --> 00:29:25,008
แต่ว่า

739
00:29:25,008 --> 00:29:25,461

740
00:29:25,461 --> 00:29:27,261
มันจะมีตัวนี้ค่ะ

741
00:29:27,261 --> 00:29:31,235
ตัวที่ 1 ตัวที่ 2 ที่มีคุณสมบัติ

742
00:29:31,235 --> 00:29:31,554

743
00:29:31,554 --> 00:29:35,016
เป็นคีย์หลักได้

744
00:29:35,016 --> 00:29:38,088
เราต้องแยกมันออก

745
00:29:38,088 --> 00:29:40,529

746
00:29:40,529 --> 00:29:41,173

747
00:29:41,173 --> 00:29:43,022
นะคะ กระบวนการนะคะ

748
00:29:43,022 --> 00:29:44,760
ดูก่อนว่า

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

750
00:29:52,647 --> 00:29:54,496
สังเกตแล้ว ว่าที่รักมีตัวเดียว

751
00:29:54,496 --> 00:29:55,781
ข้อมูลมีเยอะมาก

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

753
00:29:59,434 --> 00:29:59,699

754
00:29:59,699 --> 00:30:00,589

755
00:30:00,589 --> 00:30:01,498
รหัส

756
00:30:01,498 --> 00:30:02,009

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

758
00:30:06,748 --> 00:30:08,992
งบประมาณเท่าไ

759
00:30:08,992 --> 00:30:09,700

760
00:30:09,700 --> 00:30:10,402

761
00:30:10,402 --> 00:30:10,794

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

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

764
00:30:15,523 --> 00:30:18,037

765
00:30:18,037 --> 00:30:18,478

766
00:30:18,478 --> 00:30:18,607

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

768
00:30:23,922 --> 00:30:24,191

769
00:30:24,191 --> 00:30:25,921
2 ตัว

770
00:30:25,921 --> 00:30:27,964
2 ตัว

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

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

773
00:30:36,110 --> 00:30:36,561

774
00:30:36,561 --> 00:30:37,901
อย่างตัวนี้

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

776
00:30:42,133 --> 00:30:43,867
ถามว่า

777
00:30:43,867 --> 00:30:46,046
มันขึ้นตรงกับโปรเจกต์ Code ไหม

778
00:30:46,046 --> 00:30:46,819
ไม่

779
00:30:46,819 --> 00:30:49,508
นะคะ

780
00:30:49,508 --> 00:30:51,109

781
00:30:51,109 --> 00:30:51,300

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

783
00:30:55,852 --> 00:30:56,230

784
00:30:56,230 --> 00:30:57,265
2 NF ขั้นตอนที่ 1

785
00:30:57,265 --> 00:30:57,582

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

787
00:31:00,921 --> 00:31:03,224
แล้วก็ต้องมา

788
00:31:03,224 --> 00:31:05,534
บัตรของการขึ้นต่อกันบางส่วนออก

789
00:31:05,534 --> 00:31:05,915

790
00:31:05,915 --> 00:31:07,836
ก็คือการ

791
00:31:07,836 --> 00:31:08,614
กำจัด

792
00:31:08,614 --> 00:31:11,227
Attribute ไม่ขึ้น

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

794
00:31:14,630 --> 00:31:17,714
จะออกนะคะ

795
00:31:17,714 --> 00:31:21,163
อย่างเช่นตัวนี้นะคะ

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

797
00:31:23,928 --> 00:31:26,996
รหัสวิชากับชื่อวิชา

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

799
00:31:30,848 --> 00:31:33,280
นะ รูปเดิม

800
00:31:33,280 --> 00:31:34,049

801
00:31:34,049 --> 00:31:34,690

802
00:31:34,690 --> 00:31:35,013

803
00:31:35,013 --> 00:31:35,201

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

805
00:31:41,611 --> 00:31:44,177
ไปสร้างตารางใหม่

806
00:31:44,177 --> 00:31:45,134

807
00:31:45,134 --> 00:31:46,292
สร้างตารางเพิ่ม

808
00:31:46,292 --> 00:31:46,484

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

810
00:31:52,323 --> 00:31:53,598

811
00:31:53,598 --> 00:31:55,211
นะคะ ในตารางเดิม

812
00:31:55,211 --> 00:31:56,358
นะคะ

813
00:31:56,358 --> 00:31:59,372
เราก็เอาคีย์หลักของตารางใหม่ไปใส่

814
00:31:59,372 --> 00:32:00,261
แค่นั้นเอง

815
00:32:00,261 --> 00:32:02,896
วิธีการก็คือ

816
00:32:02,896 --> 00:32:03,922

817
00:32:03,922 --> 00:32:05,582
รูปนี้นะคะ

818
00:32:05,582 --> 00:32:09,428
สิ่งที่เป็นปัญหาที่ยกตัวอย่างคือ รหัสวิชา

819
00:32:09,428 --> 00:32:11,097
ชื่อวิชา

820
00:32:11,097 --> 00:32:11,736

821
00:32:11,736 --> 00:32:11,938

822
00:32:11,938 --> 00:32:15,938
เพราะรหัสวิชามันไม่ได้ขึ้นตรงกับรหัสนักศึกษา

823
00:32:18,730 --> 00:32:22,730
เพราะฉะนั้น ไอ้สองตัวนี้คือสิ่งที่เป็นปัญหา

824
00:32:23,083 --> 00:32:27,083
วิธีการแก้ปัญหาคือเราสร้างตารางผลการเรียนใหม่

825
00:32:27,893 --> 00:32:28,145

826
00:32:28,145 --> 00:32:29,945
สร้างตารางวิชาใหม่

827
00:32:29,945 --> 00:32:31,347
เห็นไหมคะ

828
00:32:31,347 --> 00:32:35,347
ในตารางใหม่เราจะตัดชื่อวิชาออก

829
00:32:36,292 --> 00:32:36,550

830
00:32:36,550 --> 00:32:38,533
แต่ต้องเหลือ

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

832
00:32:43,664 --> 00:32:45,517
จากอีกตาราง 1

833
00:32:45,517 --> 00:32:47,694
แค่นั้นเองนะคะ

834
00:32:47,694 --> 00:32:48,974

835
00:32:48,974 --> 00:32:49,614

836
00:32:49,614 --> 00:32:50,957

837
00:32:50,957 --> 00:32:51,156

838
00:32:51,156 --> 00:32:53,145
โอเคค่ะ

839
00:32:53,145 --> 00:32:53,788

840
00:32:53,788 --> 00:32:53,978

841
00:32:53,978 --> 00:32:54,430

842
00:32:54,430 --> 00:32:55,520

843
00:32:55,520 --> 00:32:57,629
อันนี้เป็นตัวอย่าง ของการ

844
00:32:57,629 --> 00:32:58,143

845
00:32:58,143 --> 00:33:00,519
สารในรูปแบบของ

846
00:33:00,519 --> 00:33:01,670

847
00:33:01,670 --> 00:33:03,464
2 NF เดี๋ยววันนี้

848
00:33:03,464 --> 00:33:03,847

849
00:33:03,847 --> 00:33:07,433
จะให้ทำการบ้านเดี๋ยวค่อยย้อนกลับมาแล้วกันนะคะ

850
00:33:07,433 --> 00:33:07,814

851
00:33:07,814 --> 00:33:09,935

852
00:33:09,935 --> 00:33:10,575

853
00:33:10,575 --> 00:33:12,567

854
00:33:12,567 --> 00:33:14,421
เดี๋ยวแก้แล้

855
00:33:14,421 --> 00:33:15,322

856
00:33:15,322 --> 00:33:18,530
ว เมื่อกี้นะคะ

857
00:33:18,530 --> 00:33:21,661
ขั้นตอนสุดท้ายนะคะ 3nf

858
00:33:21,661 --> 00:33:22,491

859
00:33:22,491 --> 00:33:23,332
นะคะ

860
00:33:23,332 --> 00:33:24,744

861
00:33:24,744 --> 00:33:28,744
โดยความสัมพันธ์นะคะ ก่อนที่จะทำเป็น 3Nf ได้จะต้องทำ 2 อย่างนี้มาก่อน

862
00:33:31,277 --> 00:33:34,098
หลักของการทำขั้นตอนที่ 3 คือ

863
00:33:34,098 --> 00:33:36,857
ต้องเอาความสัมพันธ์ที่ไม่ใช่คีย์หลัก

864
00:33:36,857 --> 00:33:39,931
ออกนะคะ

865
00:33:39,931 --> 00:33:43,710
เช่น ไม่ใช่คีย์หลักแต่ไม่มีผลกับ

866
00:33:43,710 --> 00:33:46,850
คอลัมน์อื่นไม่ได้นะคะ ไม่ได้

867
00:33:46,850 --> 00:33:48,384

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

869
00:33:52,101 --> 00:33:54,022
แก้ปัญหานาน ๆ

870
00:33:54,022 --> 00:33:54,923

871
00:33:54,923 --> 00:33:56,395

872
00:33:56,395 --> 00:33:59,989
อย่างเช่นในตัวอย่างนะคะ

873
00:33:59,989 --> 00:34:03,317
รหัสพนักงานนะคะ

874
00:34:03,317 --> 00:34:06,396
ชื่อ สกุล รหัสแผนก ชื่อแผนก เงินเดือน

875
00:34:06,396 --> 00:34:10,396
จะเห็นได้ว่าในตารางนี้นี่ คีย์หลักก็คือรหัสพนักงาน

876
00:34:10,883 --> 00:34:11,594

877
00:34:11,594 --> 00:34:11,847

878
00:34:11,847 --> 00:34:12,745

879
00:34:12,745 --> 00:34:13,063

880
00:34:13,063 --> 00:34:17,063
แต่มันมีรหัสแผนกกับชื่อแผนกติดมาด้วย

881
00:34:17,673 --> 00:34:20,307
ซึ่งมันไม่ได้เกี่ยวกับรหัสพนักงานเลย

882
00:34:20,307 --> 00:34:20,946

883
00:34:20,946 --> 00:34:22,299

884
00:34:22,299 --> 00:34:24,670
วิธีการแก้ปัญหา ก็คือ

885
00:34:24,670 --> 00:34:24,800

886
00:34:24,800 --> 00:34:26,202
เอารหัสแผนก

887
00:34:26,202 --> 00:34:26,402

888
00:34:26,402 --> 00:34:27,744
กับชื่อแผนก

889
00:34:27,744 --> 00:34:28,191

890
00:34:28,191 --> 00:34:32,191
ไปสร้างตารางใหม่

891
00:34:32,427 --> 00:34:36,330
แต่ต้องยังคงรหัสแผนกไว้

892
00:34:36,330 --> 00:34:38,901
ตารางเดิมนะคะ

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

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

895
00:34:55,174 --> 00:34:59,174
อันนี้คือ 3NF จริง ๆ แล้วอยากให้ลองทำในห้องมากกว่า แต่ด้วยสัปดาห์นี้มันมีข้อจำกัดเนะก็ไม่เป็นไร

896
00:35:02,988 --> 00:35:03,259

897
00:35:03,259 --> 00:35:06,259

898
00:35:06,259 --> 00:35:06,967

899
00:35:06,967 --> 00:35:09,593
อันนี้เป็นตัวอย่างนะคะ

900
00:35:09,593 --> 00:35:10,746

901
00:35:10,746 --> 00:35:11,064

902
00:35:11,064 --> 00:35:11,196

903
00:35:11,196 --> 00:35:15,196
สรุปนะคะ วิธีการทำ Normalization หรือว่าการปรับบรรทัดฐานนะคะ

904
00:35:18,117 --> 00:35:22,117
ทุก ๆ ที่ทุก ๆ คอลัมน์ในแต่ละแถว

905
00:35:22,988 --> 00:35:26,321
จะต้องมีค่าของข้อมูลเพียงค่าเดียวเท่านั้น

906
00:35:26,321 --> 00:35:27,152

907
00:35:27,152 --> 00:35:29,273
เช่นเวลาเรากรอกเบอร์โทรศัพท์

908
00:35:29,273 --> 00:35:33,273
เรามีโทรศัพท์ 3 เบอร์ก็จริง แต่เราจะกรอกได้แค่เบอร์เดียว

909
00:35:33,759 --> 00:35:35,487

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

911
00:35:39,599 --> 00:35:42,034

912
00:35:42,034 --> 00:35:44,014
ต่อมา

913
00:35:44,014 --> 00:35:45,114
2 NF

914
00:35:45,114 --> 00:35:47,736
นะคะ ก็

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

916
00:35:55,244 --> 00:35:56,653
ของตาราง

917
00:35:56,653 --> 00:35:57,934
ตัวเดียวเท่านั้น

918
00:35:57,934 --> 00:35:59,532
นะคะ

919
00:35:59,532 --> 00:35:59,913

920
00:35:59,913 --> 00:36:03,122
ข้อที่ 3 ถ้า

921
00:36:03,122 --> 00:36:05,363
คอลัมน์ไหนที่ไม่ใช่คีย์หลัก

922
00:36:05,363 --> 00:36:05,684

923
00:36:05,684 --> 00:36:06,706

924
00:36:06,706 --> 00:36:07,216

925
00:36:07,216 --> 00:36:07,476

926
00:36:07,476 --> 00:36:10,500
นะคะ จะมาส่งผลกับคอลัมน์อื่นในตารางไม่ได้

927
00:36:10,500 --> 00:36:12,349
เพราะฉะนั้น

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

929
00:36:15,422 --> 00:36:18,064
อันที่ 2 อันที่ 3 ถ้ามีปัญหา

930
00:36:18,064 --> 00:36:20,175
เราต้องสร้างตารางใหม่

931
00:36:20,175 --> 00:36:23,247

932
00:36:23,247 --> 00:36:24,210

933
00:36:24,210 --> 00:36:24,848

934
00:36:24,848 --> 00:36:25,037

935
00:36:25,037 --> 00:36:26,588

936
00:36:26,588 --> 00:36:27,158

937
00:36:27,158 --> 00:36:29,792
การบ้านเอาอย่างนี้ดีกว่า

938
00:36:29,792 --> 00:36:33,792
อาจารย์จะให้ทำ น่าจะส่งวันนี้

939
00:36:33,895 --> 00:36:37,098
เอาแค่

940
00:36:37,098 --> 00:36:41,098
ข้อเดียวนะคะ ข้อเดียวพอเพราะว่าจริง ๆ อยากให้ทำในห้องเดี๋ยวสัปดาห์หน้าค่อยทำในห้อง

941
00:36:42,802 --> 00:36:43,442

942
00:36:43,442 --> 00:36:43,701

943
00:36:43,701 --> 00:36:46,450
จะให้ลองทำดูก่อนว่าที่เรียนไปวันนี้

944
00:36:46,450 --> 00:36:48,054
เข้าใจไหม

945
00:36:48,054 --> 00:36:48,764

946
00:36:48,764 --> 00:36:51,456
ถ้าทำเสร็จแล้วก็ค่อยเอามาส่ง

947
00:36:51,456 --> 00:36:55,456
ตู้ส่งงานอาจารย์ เอาเฉพาะข้อนี้นะ ข้อเดียว

948
00:36:57,164 --> 00:37:01,132
ข้อเดียวพอวันนี้คนเดียวพอนะคะ ส่งในเวลานี้แหละ

949
00:37:01,132 --> 00:37:01,523

950
00:37:01,523 --> 00:37:02,732

951
00:37:02,732 --> 00:37:05,106
ให้ลองทำดูว่าเข้าใจไหมข้อนี้

952
00:37:05,106 --> 00:37:06,334

953
00:37:06,334 --> 00:37:07,164

954
00:37:07,164 --> 00:37:10,882
ทำอย่างนี้ ทำอย่ได้มาก ๆ เลย

955
00:37:10,882 --> 00:37:11,520

956
00:37:11,520 --> 00:37:12,989
การเว้นช่องว่างให้แล้ว

957
00:37:12,989 --> 00:37:13,951
เติมมา

958
00:37:13,951 --> 00:37:14,272

959
00:37:14,272 --> 00:37:15,245

960
00:37:15,245 --> 00:37:16,144

961
00:37:16,144 --> 00:37:17,866
2 มิติ

962
00:37:17,866 --> 00:37:19,986
คุณเห็นไหมว่า

963
00:37:19,986 --> 00:37:20,104

964
00:37:20,104 --> 00:37:22,286
มันมีรหัสวิชานี่

965
00:37:22,286 --> 00:37:23,389
วิชาเนี่

966
00:37:23,389 --> 00:37:24,990
ต้องทำยังไงกับมัน

967
00:37:24,990 --> 00:37:25,308

968
00:37:25,308 --> 00:37:27,416

969
00:37:27,416 --> 00:37:29,267
แยกมันออกมาสิแยกยังไง

970
00:37:29,267 --> 00:37:31,331
เอาข้าวเหนียวก่อน

971
00:37:31,331 --> 00:37:32,674
นะคะ แล้วลอง

972
00:37:32,674 --> 00:37:33,125

973
00:37:33,125 --> 00:37:34,794
ส่งมาให้อาจารย์ดูก่อน ว่า

974
00:37:34,794 --> 00:37:36,646
เข้าใจมากน้อยขนาดไหน

975
00:37:36,646 --> 00:37:37,096

976
00:37:37,096 --> 00:37:38,505
จริง ๆ

977
00:37:38,505 --> 00:37:41,515
อยากให้เรียนในห้องมากกว่า แต่วันนี้ก็เอา

978
00:37:41,515 --> 00:37:43,058
มานี้ก่อนแล้วกัน

979
00:37:43,058 --> 00:37:43,436

980
00:37:43,436 --> 00:37:44,408

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

982
00:37:47,418 --> 00:37:48,005

983
00:37:48,005 --> 00:37:49,600
เดินดูในห้องดีกว่า

984
00:37:49,600 --> 00:37:50,940

985
00:37:50,940 --> 00:37:53,055
วันนี้ก็

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

987
00:37:56,458 --> 00:37:56,847

988
00:37:56,847 --> 00:37:58,249
วันนี้เลยยิ่งดี

989
00:37:58,249 --> 00:37:59,148

990
00:37:59,148 --> 00:38:01,970
เ วลาที่เหลือทำใส่กระดาษมาส่งอาจารย์

991
00:38:01,970 --> 00:38:04,151
แล้วกันนะ

992
00:38:04,151 --> 00:38:06,905
ประมาณนี้ค่ะ เวลาที่เหลือทำให้เสร็จภายในวันนี้นะคะ

993
00:38:06,905 --> 00:38:10,876
ข้อเดียวเองนะคะ ข้อเดียว

994
00:38:10,876 --> 00:38:12,038

995
00:38:12,038 --> 00:38:13,507
ใครสงสัยไหมคะ

996
00:38:13,507 --> 00:38:16,390
ปุ๋ยสงสัยไหม

997
00:38:16,390 --> 00:38:18,249
เปิดไม่ได้หรือเปล่า

998
00:38:18,249 --> 00:38:18,571

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

1000
00:38:25,743 --> 00:38:26,902

1001
00:38:26,902 --> 00:38:29,852
(อาจารย์เกวลี)  ไม่ ๆ ส่วนมากอยู่ในการอยู่หอนี่แหละ

1002
00:38:29,852 --> 00:38:30,305

1003
00:38:30,305 --> 00:38:33,186

1004
00:38:33,186 --> 00:38:35,749
ตอนนี้เหลืออยู่ประมาณ

1005
00:38:35,749 --> 00:38:37,109

1006
00:38:37,109 --> 00:38:37,418

1007
00:38:37,418 --> 00:38:41,320
ใส่ได้ก็เอามา

1008
00:38:41,320 --> 00:38:41,449

1009
00:38:41,449 --> 00:38:41,714

1010
00:38:41,714 --> 00:38:42,603

1011
00:38:42,603 --> 00:38:46,603
Ok Thank You

1012
00:38:47,672 --> 00:38:49,844

1013
00:38:49,844 --> 00:38:50,236

1014
00:38:50,236 --> 00:38:53,696
วันนี้ก็ประมาณนี้ค่ะ ขอบคุณทุกคนมากนะคะ

1015
00:38:53,696 --> 00:38:54,078

1016
00:38:54,078 --> 00:38:58,078
ที่ยังตั้งใจเรียนอยู่ แล้วก็งานอย่าลืมส่งวันนี้นะคะ อยู่ดี ๆ ก็

1017
00:38:58,561 --> 00:38:59,331
ทำให้เสร็จ

1018
00:38:59,331 --> 00:39:03,331
แล้วก็ฝากเพื่อนมาส่งรวมกันมาส่งก็ได้นะคะ ถ้าใครอยู่หอก็จะมาทำอยู่ DSS  ก็ได้หรือว่าทำเสร็จแล้วมาส่งที่

1019
00:39:06,642 --> 00:39:07,663
อาจารย์ก็ได้

1020
00:39:07,663 --> 00:39:10,744

1021
00:39:10,744 --> 00:39:14,744
โอเคค่ะ วันนี้ก็ประมาณนี้ค่ะ ขอบคุณล่ามด้วยนะคะ

1022
00:39:15,677 --> 00:39:19,677
ค่ะ ขอบคุณค่ะ

1023
00:39:32,940 --> 00:39:45,520

1024
00:39:18,629 --> 00:39:19,780

1025
00:39:19,780 --> 00:39:20,179

1026
00:39:20,179 --> 00:39:20,552

1027
00:39:20,552 --> 00:39:21,451

1028
00:39:21,451 --> 00:39:24,203

1029
00:39:24,203 --> 00:39:25,547

1030
00:39:25,547 --> 00:39:29,547

1031
00:39:37,275 --> 00:39:41,275
ปุ๋ย วันนี้ครบนะ

1032
00:39:41,565 --> 00:39:42,976

1033
00:39:42,976 --> 00:39:43,236

1034
00:39:43,236 --> 00:39:43,425

1035
00:39:43,425 --> 00:39:43,749

1036
00:39:43,749 --> 00:39:45,101

1037
00:39:45,101 --> 00:39:46,314
ปุ๋ยไปแล้ว OK

1038
00:39:46,314 --> 00:39:50,314

1039
00:39:55,025 --> 00:39:59,025


