﻿1
00:00:04,015 --> 00:00:04,016

2
00:00:04,016 --> 00:00:04,016

3
00:00:04,016 --> 00:00:04,881

4
00:00:04,881 --> 00:00:06,045

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

20
00:00:15,402 --> 00:00:15,652

21
00:00:15,652 --> 00:00:15,912

22
00:00:15,912 --> 00:00:17,571

23
00:00:17,571 --> 00:00:18,154

24
00:00:18,154 --> 00:00:18,342

25
00:00:18,342 --> 00:00:18,474

26
00:00:18,474 --> 00:00:18,802

27
00:00:18,802 --> 00:00:19,888

28
00:00:19,888 --> 00:00:20,787

29
00:00:20,787 --> 00:00:21,298

30
00:00:21,298 --> 00:00:21,747

31
00:00:21,747 --> 00:00:22,010

32
00:00:22,010 --> 00:00:25,910

33
00:00:25,910 --> 00:00:26,943

34
00:00:26,943 --> 00:00:27,703

35
00:00:27,703 --> 00:00:27,964

36
00:00:27,964 --> 00:00:28,473

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

38
00:01:51,002 --> 00:01:52,353

39
00:01:52,353 --> 00:01:53,766

40
00:01:53,766 --> 00:01:54,466

41
00:01:54,466 --> 00:01:55,424
(อาจารย์เกวลี) ประมาณนี้

42
00:01:55,424 --> 00:01:56,254
นะคะ

43
00:01:56,254 --> 00:01:56,519

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

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

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

47
00:02:01,008 --> 00:02:02,355
การปรับบรรทัดฐาน

48
00:02:02,355 --> 00:02:02,611

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

50
00:02:04,912 --> 00:02:08,185

51
00:02:08,185 --> 00:02:09,855

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

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

54
00:02:17,536 --> 00:02:17,739

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

56
00:02:22,090 --> 00:02:22,803
นะคะ

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

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

59
00:02:37,787 --> 00:02:40,126
จากข้อมูลอาจจะเป็นข้อมูลที่ซับซ้อน

60
00:02:40,126 --> 00:02:43,182
นะคะ ให้มันง่าย

61
00:02:43,182 --> 00:02:44,271
เข้าใจก็ง่าย

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

63
00:02:51,253 --> 00:02:54,137

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

65
00:02:59,324 --> 00:02:59,585

66
00:02:59,585 --> 00:03:02,206
จริง ๆ เราก็จะเรียกสั้น ๆ ว่า

67
00:03:02,206 --> 00:03:04,587
ระดับแรกนึกว่า 1nf

68
00:03:04,587 --> 00:03:04,966

69
00:03:04,966 --> 00:03:05,740

70
00:03:05,740 --> 00:03:06,568

71
00:03:06,568 --> 00:03:08,430
นะคะ 2nf 3nf

72
00:03:08,430 --> 00:03:09,579

73
00:03:09,579 --> 00:03:09,964

74
00:03:09,964 --> 00:03:11,760
นะคะ ในระดับปริญญาตร

75
00:03:11,760 --> 00:03:12,288

76
00:03:12,288 --> 00:03:13,882
ีนี่ ถึง 3nf ได้

77
00:03:13,882 --> 00:03:15,416
ก็ถือว่าเก่งมากแล้ว

78
00:03:15,416 --> 00:03:16,634
นะคะ

79
00:03:16,634 --> 00:03:16,886

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

81
00:03:20,804 --> 00:03:24,804
นะคะ

82
00:03:25,218 --> 00:03:27,458

83
00:03:27,458 --> 00:03:28,489
อันนี้เป็น

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

85
00:03:37,592 --> 00:03:38,422
การระบ

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

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

88
00:03:44,706 --> 00:03:45,666
หลังจากนั้น

89
00:03:45,666 --> 00:03:46,815
ก็จะมาวาดรูป

90
00:03:46,815 --> 00:03:48,417
เหมือนที่เราเรียนอาทิตย์ที่แล้ว

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

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

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

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

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

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

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

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

99
00:04:19,763 --> 00:04:20,475

100
00:04:20,475 --> 00:04:22,905
นี่ มาเข้าสู่กระบวนการปรับพื้นฐานก่อน

101
00:04:22,905 --> 00:04:24,568
ซึ่งอย่างที่บอก

102
00:04:24,568 --> 00:04:26,756
เราทำแค่ถึง 3S นี่ ก็

103
00:04:26,756 --> 00:04:27,966
เก่งมากแล้ว

104
00:04:27,966 --> 00:04:29,567

105
00:04:29,567 --> 00:04:31,239
แต่อย่างน้อยต้องถึง 3 นะคะ

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

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

108
00:04:39,207 --> 00:04:41,164

109
00:04:41,164 --> 00:04:43,042

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

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

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

113
00:04:58,299 --> 00:04:58,488

114
00:04:58,488 --> 00:04:59,448

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

116
00:05:00,860 --> 00:05:02,260
ประมาณเหมือนกัน

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

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

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

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

121
00:05:16,817 --> 00:05:17,139

122
00:05:17,139 --> 00:05:18,928
อย่างนักศึกษา

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

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

125
00:05:26,679 --> 00:05:28,222
ที่บ้าน

126
00:05:28,222 --> 00:05:30,393
เราก็ต้องไปตามเปลี่ยนทุกที่เลย

127
00:05:30,393 --> 00:05:32,006
นะคะ

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

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

130
00:05:45,009 --> 00:05:46,289
นะคะ เก็บไว้ที่เดียว

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

132
00:05:51,231 --> 00:05:51,740

133
00:05:51,740 --> 00:05:52,571

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

135
00:05:56,163 --> 00:05:56,422

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

137
00:05:58,665 --> 00:06:00,454
เราเลยเก็บข้อมูลไว้ที่เดียว

138
00:06:00,454 --> 00:06:02,125
แก้ไขก็ที่เดียว

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

140
00:06:05,456 --> 00:06:07,652
ปัจจุบันด้วย

141
00:06:07,652 --> 00:06:08,978

142
00:06:08,978 --> 00:06:11,032
แล้วก็

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

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

145
00:06:19,682 --> 00:06:19,871

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

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

148
00:06:31,032 --> 00:06:34,177

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

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

151
00:06:42,699 --> 00:06:43,466

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

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

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

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

156
00:06:55,965 --> 00:06:57,183

157
00:06:57,183 --> 00:06:58,463

158
00:06:58,463 --> 00:06:58,593

159
00:06:58,593 --> 00:07:00,126

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

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

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

163
00:07:17,242 --> 00:07:19,682
นะคะ จะเห็นได้ว่า

164
00:07:19,682 --> 00:07:20,196

165
00:07:20,196 --> 00:07:20,893
ตาราง

166
00:07:20,893 --> 00:07:21,722
พนักงาน

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

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

169
00:07:26,156 --> 00:07:26,668

170
00:07:26,668 --> 00:07:28,851
ถามว่าทำไมไม่เอา

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

172
00:07:32,493 --> 00:07:34,681
ทำไมต้องแยกออก

173
00:07:34,681 --> 00:07:35,456

174
00:07:35,456 --> 00:07:35,776

175
00:07:35,776 --> 00:07:37,308
นะะค อย่างถ้า

176
00:07:37,308 --> 00:07:39,165
ศึกษาดูคนแรกนะคะ

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

178
00:07:45,379 --> 00:07:47,497
ก็คือสาขา

179
00:07:47,497 --> 00:07:49,738
เชียงใหม่

180
00:07:49,738 --> 00:07:49,987

181
00:07:49,987 --> 00:07:50,119

182
00:07:50,119 --> 00:07:50,581

183
00:07:50,581 --> 00:07:51,412

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

185
00:07:54,545 --> 00:07:55,384

186
00:07:55,384 --> 00:07:57,302

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

188
00:07:59,994 --> 00:08:01,346

189
00:08:01,346 --> 00:08:04,026
มีการลบข้อมูล

190
00:08:04,026 --> 00:08:05,759

191
00:08:05,759 --> 00:08:08,910
ลบคนนี้ออก ขีดฆ่าทิ้ง

192
00:08:08,910 --> 00:08:10,571
ฆ่าทิ้ง

193
00:08:10,571 --> 00:08:13,454
นี่นะคะ ขีดฆ่าทิ้ง สิ่งไหนที่หายไปบ้าง

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

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

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

197
00:08:22,486 --> 00:08:23,836
ยังอยู่

198
00:08:23,836 --> 00:08:25,056
นะคะ

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

200
00:08:27,039 --> 00:08:28,387
ด้านล่าง

201
00:08:28,387 --> 00:08:30,630
เห็นไหมคะ ว่า

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

203
00:08:33,323 --> 00:08:34,284

204
00:08:34,284 --> 00:08:35,184

205
00:08:35,184 --> 00:08:38,770
ลบทิ้งนี่ กากบาททิ้ง

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

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

208
00:08:43,711 --> 00:08:45,443
เหมือน

209
00:08:45,443 --> 00:08:47,041
ลบคนข้างล่าง

210
00:08:47,041 --> 00:08:47,885
คนนี้ออก

211
00:08:47,885 --> 00:08:48,653

212
00:08:48,653 --> 00:08:50,187
สาขาพิษณุโลก

213
00:08:50,187 --> 00:08:52,691
ก็หายไปด้วย

214
00:08:52,691 --> 00:08:53,067

215
00:08:53,067 --> 00:08:55,442
แต่ถ้าเป็นตารางด้านบน

216
00:08:55,442 --> 00:08:56,096

217
00:08:56,096 --> 00:08:57,884
นะคะ ถ้าคนนี้ลาออก

218
00:08:57,884 --> 00:08:59,229
สาขายังอยู่ไหม

219
00:08:59,229 --> 00:09:00,252
ยังอยู่เหมือนเดิม

220
00:09:00,252 --> 00:09:02,947

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

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

223
00:09:13,464 --> 00:09:15,834

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

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

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

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

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

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

230
00:09:29,162 --> 00:09:29,681

231
00:09:29,681 --> 00:09:31,531
เห็นไหมคะ ว่ามันจะมี

232
00:09:31,531 --> 00:09:32,752
รหัสสาขา

233
00:09:32,752 --> 00:09:34,683
แล้วก็ที่อยู่

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

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

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

237
00:09:42,108 --> 00:09:43,069
นะคะ เป็น em 10

238
00:09:43,069 --> 00:09:45,319

239
00:09:45,319 --> 00:09:45,891

240
00:09:45,891 --> 00:09:46,409

241
00:09:46,409 --> 00:09:46,923

242
00:09:46,923 --> 00:09:47,494

243
00:09:47,494 --> 00:09:47,944

244
00:09:47,944 --> 00:09:48,333

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

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

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

248
00:09:54,365 --> 00:09:57,176
เชียงใหม่

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

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

251
00:10:00,888 --> 00:10:03,581
เราแค่ใส่รหัสสาขา

252
00:10:03,581 --> 00:10:05,611

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

254
00:10:08,264 --> 00:10:08,586

255
00:10:08,586 --> 00:10:10,128

256
00:10:10,128 --> 00:10:10,579

257
00:10:10,579 --> 00:10:12,237

258
00:10:12,237 --> 00:10:12,687

259
00:10:12,687 --> 00:10:12,817

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

261
00:10:15,378 --> 00:10:15,630

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

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

264
00:10:21,024 --> 00:10:21,470

265
00:10:21,470 --> 00:10:22,170

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

267
00:10:27,876 --> 00:10:28,648

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

269
00:10:36,469 --> 00:10:39,670

270
00:10:39,670 --> 00:10:40,502

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

272
00:10:51,726 --> 00:10:52,300

273
00:10:52,300 --> 00:10:53,838

274
00:10:53,838 --> 00:10:55,686
อันนี้ก็เช่นเดียวกัน

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

276
00:10:59,478 --> 00:11:00,628
นี่ มันทำให้

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

278
00:11:02,809 --> 00:11:03,452

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

280
00:11:08,967 --> 00:11:10,565
ต้องนั่งกรอก

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

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

283
00:11:18,321 --> 00:11:20,884
นะคะ

284
00:11:20,884 --> 00:11:21,015

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

286
00:11:27,229 --> 00:11:27,679

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

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

289
00:11:34,992 --> 00:11:35,751

290
00:11:35,751 --> 00:11:36,074

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

292
00:11:41,204 --> 00:11:42,164

293
00:11:42,164 --> 00:11:45,818
ซึ่งอาจารย์อยากเพิ่มสาขา สมมติอาจารย์จะเพิ่มบี

294
00:11:45,818 --> 00:11:46,263

295
00:11:46,263 --> 00:11:48,117
100

296
00:11:48,117 --> 00:11:49,730
สกลนคร

297
00:11:49,730 --> 00:11:50,817
ละครนะคะ

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

299
00:11:55,243 --> 00:11:55,881

300
00:11:55,881 --> 00:11:57,042

301
00:11:57,042 --> 00:11:58,890
ถ้าจากตารางนี้

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

303
00:12:03,375 --> 00:12:04,465

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

305
00:12:08,186 --> 00:12:09,848

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

307
00:12:13,967 --> 00:12:14,529

308
00:12:14,529 --> 00:12:15,690

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

310
00:12:18,570 --> 00:12:19,970
เพราะเราไม่มีพนักงาน

311
00:12:19,970 --> 00:12:21,455
อันนี้ก็เป็น

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

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

314
00:12:32,047 --> 00:12:34,633
นี

315
00:12:29,860 --> 00:12:30,300

316
00:12:30,300 --> 00:12:31,521
่ก็คือ

317
00:12:31,521 --> 00:12:35,231
การ ปัญหาที่เกิดขึ้นจากการออกแบบตารางไม่ดี

318
00:12:35,231 --> 00:12:36,902

319
00:12:36,902 --> 00:12:37,933

320
00:12:37,933 --> 00:12:39,911
กับ

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

322
00:12:43,304 --> 00:12:46,387
ถ้าพนักงานคนนี้

323
00:12:46,387 --> 00:12:48,188
ออก

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

325
00:12:51,646 --> 00:12:53,312

326
00:12:53,312 --> 00:12:54,927
นะคะ โดนลบไป

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

328
00:12:56,963 --> 00:12:57,096

329
00:12:57,096 --> 00:13:00,809
เหมือน b03 b03 นะคะ

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

331
00:13:03,186 --> 00:13:03,507

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

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

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

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

336
00:13:19,972 --> 00:13:22,286

337
00:13:22,286 --> 00:13:23,755
เป็นนนทบุรี

338
00:13:23,755 --> 00:13:24,005

339
00:13:24,005 --> 00:13:25,418

340
00:13:25,418 --> 00:13:25,737

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

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

343
00:13:34,454 --> 00:13:38,454

344
00:13:38,626 --> 00:13:42,470
อันนี้มันก็เป็นปัญหานะคะ เพราะฉะนั้น

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

346
00:13:48,373 --> 00:13:48,941
อันนี้ คือ

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

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

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

350
00:14:05,870 --> 00:14:09,521

351
00:14:09,521 --> 00:14:09,971

352
00:14:09,971 --> 00:14:10,101

353
00:14:10,101 --> 00:14:10,485

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

355
00:14:17,478 --> 00:14:18,624

356
00:14:18,624 --> 00:14:20,095

357
00:14:20,095 --> 00:14:20,737

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

359
00:14:24,838 --> 00:14:25,475

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

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

362
00:14:34,130 --> 00:14:35,161

363
00:14:35,161 --> 00:14:35,673

364
00:14:35,673 --> 00:14:38,746
อย่างเช่นทางนี้นะคะ

365
00:14:38,746 --> 00:14:42,015
ดูจากรหัสพนักงานนะ คะ

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

367
00:14:45,858 --> 00:14:47,650
จะส่งผลกับชื่อ

368
00:14:47,650 --> 00:14:50,351
ตำแหน่ง

369
00:14:50,351 --> 00:14:50,610

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

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

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

373
00:15:03,167 --> 00:15:07,167
นะคะ

374
00:15:07,718 --> 00:15:09,380
อย่างเช่น

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

376
00:15:14,959 --> 00:15:16,819
ไม่ได้

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

378
00:15:23,295 --> 00:15:23,675

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

380
00:15:34,001 --> 00:15:34,219

381
00:15:34,219 --> 00:15:35,026

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

383
00:15:39,452 --> 00:15:41,503

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

385
00:15:44,444 --> 00:15:47,464
นะคะ

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

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

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

389
00:15:54,970 --> 00:15:55,356

390
00:15:55,356 --> 00:15:57,532
นะคะ โดยในคอลัมน์น

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

392
00:15:58,367 --> 00:16:01,308
ั้น ๆ นี่ จะบรรจุค่าที่ระบุ

393
00:16:01,308 --> 00:16:02,337
ความพิเศษ

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

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

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

397
00:16:13,742 --> 00:16:14,129

398
00:16:14,129 --> 00:16:15,472

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

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

401
00:16:24,127 --> 00:16:28,127
นะคะ

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

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

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

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

406
00:16:42,400 --> 00:16:44,522

407
00:16:44,522 --> 00:16:45,225

408
00:16:45,225 --> 00:16:46,442

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

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

411
00:16:52,596 --> 00:16:55,798
เช่น เลขบัตรประชาชน

412
00:16:55,798 --> 00:16:57,327

413
00:16:57,327 --> 00:16:58,928
จะขึ้น

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

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

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

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

418
00:17:20,734 --> 00:17:21,693

419
00:17:21,693 --> 00:17:22,334

420
00:17:22,334 --> 00:17:22,714

421
00:17:22,714 --> 00:17:23,675

422
00:17:23,675 --> 00:17:25,346
ตัวอย่างนะคะ

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

424
00:17:28,036 --> 00:17:29,187
นะคะ

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

426
00:17:32,139 --> 00:17:33,110
คนหนึ่งคน

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

428
00:17:37,650 --> 00:17:38,993
แต่ว่า

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

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

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

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

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

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

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

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

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

438
00:18:06,054 --> 00:18:06,437

439
00:18:06,437 --> 00:18:08,548

440
00:18:08,548 --> 00:18:08,807

441
00:18:08,807 --> 00:18:09,249

442
00:18:09,249 --> 00:18:10,208

443
00:18:10,208 --> 00:18:11,488

444
00:18:11,488 --> 00:18:12,389

445
00:18:12,389 --> 00:18:15,339
แต่บางตารางนะคะ

446
00:18:15,339 --> 00:18:15,982

447
00:18:15,982 --> 00:18:18,479
ก็อาจจะเป็นการรวมตัวกันของ

448
00:18:18,479 --> 00:18:19,502

449
00:18:19,502 --> 00:18:22,656
คีย์หลัก มากกว่า 1 คีย์หลักนะคะ

450
00:18:22,656 --> 00:18:26,558
มารวมกัน เช่น นักศึกษา

451
00:18:26,558 --> 00:18:27,835
วันนี้

452
00:18:27,835 --> 00:18:29,245
เอกสารนี้

453
00:18:29,245 --> 00:18:31,238
ลงทะเบียนวิชานี้

454
00:18:31,238 --> 00:18:33,539
ได้เกรดอะไร

455
00:18:33,539 --> 00:18:34,316

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

457
00:18:39,390 --> 00:18:40,026

458
00:18:40,026 --> 00:18:40,858

459
00:18:40,858 --> 00:18:43,990
ไม่ซ้ำ รหัสวิชาซ้ำกันได้ไหม

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

461
00:18:47,394 --> 00:18:48,426
รหัส

462
00:18:48,426 --> 00:18:51,172
หนึ่ง ชื่ออาจารย์คนอื่นก็รหัสวิชาอีกอันนึง

463
00:18:51,172 --> 00:18:51,684

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

465
00:18:56,304 --> 00:18:57,324

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

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

468
00:19:03,801 --> 00:19:04,251

469
00:19:04,251 --> 00:19:06,491
คีย์ผสมนะคะ อาจจะเป็น

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

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

472
00:19:14,060 --> 00:19:15,088
อีกคอลัมน์หนึ่ง

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

474
00:19:17,449 --> 00:19:18,411

475
00:19:18,411 --> 00:19:21,114
อย่างเช่น

476
00:19:21,114 --> 00:19:22,200

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

478
00:19:27,454 --> 00:19:28,616
แล้วก็

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

480
00:19:33,026 --> 00:19:33,796
นะคะ

481
00:19:33,796 --> 00:19:34,176

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

483
00:19:36,107 --> 00:19:36,750

484
00:19:36,750 --> 00:19:38,541
คีย์หลักระกอบกันด้วย

485
00:19:38,541 --> 00:19:41,370
คอลัมน์หรือว่า Attribute รวมกัน

486
00:19:41,370 --> 00:19:43,409

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

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

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

490
00:19:55,711 --> 00:19:57,629
มีรหัสนักศึกษา

491
00:19:57,629 --> 00:19:59,619
กับรหัสวิชานะคะ

492
00:19:59,619 --> 00:20:02,123

493
00:20:02,123 --> 00:20:03,342
ถามว่า

494
00:20:03,342 --> 00:20:06,542
ถ้ามีแต่

495
00:20:06,542 --> 00:20:08,068
รหัสนักศึกษา

496
00:20:08,068 --> 00:20:08,980

497
00:20:08,980 --> 00:20:09,877
เกรดนะคะ

498
00:20:09,877 --> 00:20:11,410
รหัสวิชา

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

500
00:20:15,123 --> 00:20:18,466
นี่ ชื่อวิชาอะไรนะคะ

501
00:20:18,466 --> 00:20:18,586

502
00:20:18,586 --> 00:20:20,504

503
00:20:20,504 --> 00:20:20,955

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

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

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

507
00:20:31,982 --> 00:20:33,593
ไอ้รหัสวิชา

508
00:20:33,593 --> 00:20:35,445
นี้ ชื่อวิชาอะไร

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

510
00:20:39,036 --> 00:20:41,466
แต่มีคีย์หลัก 1 ตัวเนี่ย

511
00:20:41,466 --> 00:20:42,685
ไปมีผลกับ

512
00:20:42,685 --> 00:20:44,479
Attribute 1 ได้

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

514
00:20:49,351 --> 00:20:49,731

515
00:20:49,731 --> 00:20:50,760

516
00:20:50,760 --> 00:20:51,283

517
00:20:51,283 --> 00:20:51,922

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

519
00:20:58,455 --> 00:21:00,693
มีแค่รหัสวิชา มีเกรด มีการ

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

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

522
00:21:06,595 --> 00:21:07,426

523
00:21:07,426 --> 00:21:10,249
นะคะ ไม่รู้ หรือว่า

524
00:21:10,249 --> 00:21:10,891

525
00:21:10,891 --> 00:21:14,859
เดี๋ยวลบอันนี้ิออกก่อนนะ

526
00:21:14,859 --> 00:21:16,530
หรือว่า

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

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

529
00:21:23,062 --> 00:21:26,337
ชื่อวิชา แล้วถามว่า

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

531
00:21:28,637 --> 00:21:29,793

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

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

534
00:21:39,696 --> 00:21:43,696
นะคะ

535
00:21:42,081 --> 00:21:48,300
อัน

536
00:21:35,822 --> 00:21:37,611

537
00:21:37,611 --> 00:21:39,545

538
00:21:39,545 --> 00:21:40,374

539
00:21:40,374 --> 00:21:41,584

540
00:21:41,584 --> 00:21:41,786

541
00:21:41,786 --> 00:21:41,977

542
00:21:41,977 --> 00:21:44,215

543
00:21:44,215 --> 00:21:44,855

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

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

546
00:21:55,563 --> 00:21:57,800
คีย์หลัก แต่ไปสามารถ

547
00:21:57,800 --> 00:21:59,473
ขึ้น

548
00:21:59,473 --> 00:22:02,993
สามารถระบุค่าของ Attribute อื่นใน Attribute ได้

549
00:22:02,993 --> 00:22:03,187

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

551
00:22:07,357 --> 00:22:10,106

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

553
00:22:12,477 --> 00:22:12,998

554
00:22:12,998 --> 00:22:15,620
น่ี่ ถ้าเราจะระบุค่าอื่นให้กับ

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

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

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

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

559
00:22:39,280 --> 00:22:42,219
คีย์หลักนี้ก็คือเลขประจำตัว

560
00:22:42,219 --> 00:22:42,931

561
00:22:42,931 --> 00:22:44,861
ตัวเลขประจำตัว

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

563
00:22:49,787 --> 00:22:51,460
แต่ครา

564
00:22:51,460 --> 00:22:52,804
วนี้รถประจำตำแหน่ง

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

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,730
แผนที่ผู้จัดการนะคะ จะรู้เลยว่ารถประจำตำแหน่งคืออะไร

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

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

572
00:23:12,801 --> 00:23:13,755

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

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

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

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,411
ที่มี

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

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

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

585
00:23:46,063 --> 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
ก็จะเป็นความสัมพันธ์น่าจะเป็นความสัมพันธ์ระหว่างคอลัมน์ Matrix

589
00:23:55,166 --> 00:23:55,866

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

591
00:23:59,911 --> 00:24:00,680

592
00:24:00,680 --> 00:24:01,062

593
00:24:01,062 --> 00:24:01,771

594
00:24:01,771 --> 00:24:02,988
โดยที่

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

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

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

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

599
00:24:16,958 --> 00:24:17,675

600
00:24:17,675 --> 00:24:19,138
122

601
00:24:19,138 --> 00:24:19,460

602
00:24:19,460 --> 00:24:21,314

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

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

605
00:24:29,138 --> 00:24:30,415

606
00:24:30,415 --> 00:24:30,798

607
00:24:30,798 --> 00:24:31,057

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

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

610
00:24:37,472 --> 00:24:38,751
นะคะ

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

612
00:24:45,284 --> 00:24:45,924

613
00:24:45,924 --> 00:24:47,275

614
00:24:47,275 --> 00:24:47,858

615
00:24:47,858 --> 00:24:48,438

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

617
00:24:51,317 --> 00:24:53,370
มีค่ามากกว่า 1 นะ

618
00:24:53,370 --> 00:24:55,031
คะ รหัสหลักสูตร

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

620
00:25:01,390 --> 00:25:01,057
นะ

621
00:24:57,731 --> 00:24:58,622

622
00:24:58,622 --> 00:25:00,545
คะ แล้วรหัสหลักสูตร

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

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

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

626
00:25:10,165 --> 00:25:12,474
รหัสหลักสูตรเดียวนะ

627
00:25:12,474 --> 00:25:13,625
นะคะ

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

629
00:25:18,815 --> 00:25:22,815

630
00:25:23,369 --> 00:25:24,330

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

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

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

634
00:25:43,878 --> 00:25:44,127

635
00:25:44,127 --> 00:25:45,159

636
00:25:45,159 --> 00:25:46,890
โดยหลักการนะคะ

637
00:25:46,890 --> 00:25:48,360
อย่างที่บอก มี 5 ระดับ

638
00:25:48,360 --> 00:25:49,961
แต่ระดับ

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

640
00:25:53,820 --> 00:25:53,956

641
00:25:53,956 --> 00:25:56,505

642
00:25:56,505 --> 00:25:58,049
โดย

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

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

645
00:26:06,503 --> 00:26:08,743
ข้อแรก ง่ายมาก ๆ

646
00:26:08,743 --> 00:26:10,675

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

648
00:26:13,685 --> 00:26:16,566
ต่อมาขั้นที่ 2 หรือ 2 nf

649
00:26:16,566 --> 00:26:18,879
จะกำจัด

650
00:26:18,879 --> 00:26:22,207
การขึ้นต่อกันบางส่วนออกนะคะ

651
00:26:22,207 --> 00:26:24,582

652
00:26:24,582 --> 00:26:27,665
ขั้นสุดท้าย 3nf นะคะ

653
00:26:27,665 --> 00:26:30,604
กำจัดการขึ้นต่อกันของ Attribute ที่ไม่ใช่

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

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

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

657
00:26:35,864 --> 00:26:38,040

658
00:26:38,040 --> 00:26:38,550

659
00:26:38,550 --> 00:26:42,550
คนแรกง่ายที่สุดง่ายมาก ๆ นะคะ

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

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

662
00:26:50,478 --> 00:26:52,207
ข้อมูลมันซ้อนกันไหม

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

664
00:26:56,120 --> 00:26:56,632

665
00:26:56,632 --> 00:27:00,162
ขั้นที่ 3 อันไหนไม่ใช่

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

667
00:27:03,875 --> 00:27:05,028

668
00:27:05,028 --> 00:27:06,946
ดูอันดับที่ 1 ก่อน

669
00:27:06,946 --> 00:27:07,657

670
00:27:07,657 --> 00:27:08,487

671
00:27:08,487 --> 00:27:09,838
วันที่ 1 ได้มาก

672
00:27:09,838 --> 00:27:12,081
นะคะ ทุก ๆ

673
00:27:12,081 --> 00:27:12,401

674
00:27:12,401 --> 00:27:15,091
คอลัมน์ akashic Records

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

676
00:27:19,004 --> 00:27:19,516

677
00:27:19,516 --> 00:27:21,756
จะใส่แบบนี้ไม่ได้

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

679
00:27:25,098 --> 00:27:26,760
อย่าง

680
00:27:26,760 --> 00:27:28,233
อันนี้นักศึกษาคนที่ 1

681
00:27:28,233 --> 00:27:28,492

682
00:27:28,492 --> 00:27:29,702
แน่นอนทั้ง 3

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

684
00:27:35,151 --> 00:27:35,982

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

686
00:27:38,297 --> 00:27:42,208
ถ้าเราไม่มีการทำ

687
00:27:42,208 --> 00:27:43,171
Normaization คราวนี้

688
00:27:43,171 --> 00:27:44,830
ขั้นตอนที่ 1

689
00:27:44,830 --> 00:27:45,542
เราจะ

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

691
00:27:53,482 --> 00:27:54,195

692
00:27:54,195 --> 00:27:56,046
ดูตัวอย่างนะคะ

693
00:27:56,046 --> 00:27:56,638

694
00:27:56,638 --> 00:27:56,887

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

696
00:28:01,952 --> 00:28:02,783

697
00:28:02,783 --> 00:28:04,065
คนที่ 1 วิชา

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

699
00:28:08,106 --> 00:28:08,239

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

701
00:28:10,929 --> 00:28:13,109
เอามันจะจายออกมาค่ะ

702
00:28:13,109 --> 00:28:13,370

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

704
00:28:15,863 --> 00:28:17,653
กระจายออกใช่ไหมคะ กระจายออก

705
00:28:17,653 --> 00:28:19,133

706
00:28:19,133 --> 00:28:21,128
ง่ายมาก

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

708
00:28:25,285 --> 00:28:27,345
ทำซ้ำลงมา

709
00:28:27,345 --> 00:28:28,736
ทำซ้ำลงมา

710
00:28:28,736 --> 00:28:31,177

711
00:28:31,177 --> 00:28:33,868
ถามว่าอ้าวตาเขาทำไม

712
00:28:33,868 --> 00:28:34,579

713
00:28:34,579 --> 00:28:35,090

714
00:28:35,090 --> 00:28:37,204
ทำไม 001 มันซ้ำกันได้ล่ะ

715
00:28:37,204 --> 00:28:37,392

716
00:28:37,392 --> 00:28:38,304

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

718
00:28:43,486 --> 00:28:46,313
เด็ก ๆ 1 nf เลยง่ายมากค่ะ

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

720
00:28:51,316 --> 00:28:52,073

721
00:28:52,073 --> 00:28:53,744
อย่างน้อยในข้อสอบ

722
00:28:53,744 --> 00:28:57,657
ต้องทำ 1 nf ให้ได

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

724
00:28:59,128 --> 00:28:59,577

725
00:28:59,577 --> 00:29:01,823
นะคะ

726
00:29:01,823 --> 00:29:03,299

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

728
00:29:07,915 --> 00:29:09,253

729
00:29:09,253 --> 00:29:09,382

730
00:29:09,382 --> 00:29:10,214

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

732
00:29:17,195 --> 00:29:18,581
ก

733
00:29:14,329 --> 00:29:16,368
็จะมาดูว่าในตารางนี้ค่ะ

734
00:29:16,368 --> 00:29:16,952

735
00:29:16,952 --> 00:29:18,490
มันมีตาราง

736
00:29:18,490 --> 00:29:19,263

737
00:29:19,263 --> 00:29:19,581

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

739
00:29:21,693 --> 00:29:23,874
เขาจะมีคีย์หลัก 1 ตั

740
00:29:23,874 --> 00:29:25,025
วแล้ว แต่ว่า

741
00:29:25,025 --> 00:29:25,477

742
00:29:25,477 --> 00:29:27,278
มันจะมีตัวนี้ค่ะ

743
00:29:27,278 --> 00:29:31,252
ตัวที่ 1 ตัวที่ 2 ที่มีคุณสมบัติ

744
00:29:31,252 --> 00:29:31,571

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

746
00:29:35,031 --> 00:29:38,102
เราต้องแยกมันออกนะคะ

747
00:29:38,102 --> 00:29:40,543

748
00:29:40,543 --> 00:29:41,190

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

750
00:29:43,037 --> 00:29:44,775
ดูก่อนว่า

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

752
00:29:52,662 --> 00:29:54,511
สังเกตเรา ว่าที่มีคีย์หลักตัวเดียว

753
00:29:54,511 --> 00:29:55,796
ข้อมูลมีเยอะมาก

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

755
00:29:59,451 --> 00:29:59,716

756
00:29:59,716 --> 00:30:00,607

757
00:30:00,607 --> 00:30:01,508
รหัส

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

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

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

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

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

763
00:30:10,416 --> 00:30:10,808

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

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

766
00:30:15,537 --> 00:30:18,051

767
00:30:18,051 --> 00:30:18,492

768
00:30:18,492 --> 00:30:18,621

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

770
00:30:23,937 --> 00:30:24,206

771
00:30:24,206 --> 00:30:25,938
2 ตัว

772
00:30:25,938 --> 00:30:27,981
2 นะคะ 2 ตัว

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

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

775
00:30:36,121 --> 00:30:36,573

776
00:30:36,573 --> 00:30:37,912
อย่างตัวนี้

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

778
00:30:42,147 --> 00:30:43,877
ถามว่า

779
00:30:43,877 --> 00:30:46,056
มันขึ้นตรงกับ project Code ไหม

780
00:30:46,056 --> 00:30:46,829
ไม่

781
00:30:46,829 --> 00:30:49,518
นะคะ

782
00:30:49,518 --> 00:30:51,120

783
00:30:51,120 --> 00:30:51,310

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

785
00:30:55,862 --> 00:30:56,241

786
00:30:56,241 --> 00:30:57,275
1 nf ขั้นตอนที่ 1

787
00:30:57,275 --> 00:30:57,592

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

789
00:31:00,931 --> 00:31:03,234
แล้วก็ต้องมา

790
00:31:03,234 --> 00:31:05,546
บัตรของการขึ้นต่อกันบางส่วนออก

791
00:31:05,546 --> 00:31:05,926

792
00:31:05,926 --> 00:31:07,847
ก็คือการ

793
00:31:07,847 --> 00:31:08,626
กำจัด

794
00:31:08,626 --> 00:31:11,238
Attribute ไม่ขึ้น

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

796
00:31:14,641 --> 00:31:17,724
จะออกนะคะ

797
00:31:17,724 --> 00:31:21,173
อย่างเช่นตัวนี้นะคะ

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

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

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

801
00:31:30,860 --> 00:31:33,292
นะคะ รูปเดิม

802
00:31:33,292 --> 00:31:34,061

803
00:31:34,061 --> 00:31:34,702

804
00:31:34,702 --> 00:31:35,031

805
00:31:35,031 --> 00:31:35,218

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

807
00:31:41,630 --> 00:31:44,194
ไปสร้างตารางใหม่

808
00:31:44,194 --> 00:31:45,155

809
00:31:45,155 --> 00:31:46,313
สร้างตารางเพิ่ม

810
00:31:46,313 --> 00:31:46,505

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

812
00:31:52,342 --> 00:31:53,616

813
00:31:53,616 --> 00:31:55,230
ในตารางเดิม

814
00:31:55,230 --> 00:31:56,377
นะคะ

815
00:31:56,377 --> 00:31:59,392
เราก็เอาคีย์หลักของตารางใหม่ไปใส่

816
00:31:59,392 --> 00:32:00,281
แค่นั้นเอง

817
00:32:00,281 --> 00:32:02,916
นะคะ วิธีการ ก็คือ

818
00:32:02,916 --> 00:32:03,942

819
00:32:03,942 --> 00:32:05,602
เหมือนรูปนี้นะคะ

820
00:32:05,602 --> 00:32:09,449
สิ่งที่เป็นปัญหาที่จะยกตัวอย่างคือรหัสวิชา

821
00:32:09,449 --> 00:32:11,119
ชิชา

822
00:32:11,119 --> 00:32:11,758

823
00:32:11,758 --> 00:32:11,959

824
00:32:11,959 --> 00:32:15,959
เพราะรหัสวิชามันไม่ได้ขึ้นตรงกับรหัสนักศึกษานะคะ

825
00:32:18,750 --> 00:32:22,750
เพราะฉะนั้น ไอ้สองตัวนี้คือสิ่งที่เป็นปัญหา

826
00:32:23,103 --> 00:32:27,103
วิธีการแก้ปัญหา คือ เราสร้างตารางผลการเรียนใหม่

827
00:32:27,914 --> 00:32:28,165

828
00:32:28,165 --> 00:32:29,965
สร้างตารางวิชาใหม่

829
00:32:29,965 --> 00:32:31,367
นะคะ เห็นไหมคะ

830
00:32:31,367 --> 00:32:35,367
ตารางใหม่ เราจะตัดชื่อวิชาออก

831
00:32:36,309 --> 00:32:36,568

832
00:32:36,568 --> 00:32:38,552
แต่ต้องเหลือ

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

834
00:32:43,681 --> 00:32:45,535
จากอีกตาราง

835
00:32:45,535 --> 00:32:47,712
หนึ่งแค่นั้นเองนะคะ

836
00:32:47,712 --> 00:32:48,992

837
00:32:48,992 --> 00:32:49,632

838
00:32:49,632 --> 00:32:50,976

839
00:32:50,976 --> 00:32:51,176

840
00:32:51,176 --> 00:32:53,167

841
00:32:53,167 --> 00:32:53,809

842
00:32:53,809 --> 00:32:53,999

843
00:32:53,999 --> 00:32:54,450

844
00:32:54,450 --> 00:32:55,541

845
00:32:55,541 --> 00:32:57,650
โอเคค่ะ อันนี้เป็นตัวอย่างของการ

846
00:32:57,650 --> 00:32:58,163

847
00:32:58,163 --> 00:33:00,541
สารในรูปแบบบรรทัดฐาน ของ

848
00:33:00,541 --> 00:33:01,691

849
00:33:01,691 --> 00:33:03,485
2nf เดี๋ยววันนี้

850
00:33:03,485 --> 00:33:03,869

851
00:33:03,869 --> 00:33:07,456
จะให้ทำการบ้านเดี๋ยวค่อยย้อนกลับมาแล้วกันนะคะ

852
00:33:07,456 --> 00:33:07,837

853
00:33:07,837 --> 00:33:09,958

854
00:33:09,958 --> 00:33:10,598

855
00:33:10,598 --> 00:33:12,590

856
00:33:12,590 --> 00:33:14,444
อันนี้ 2 nf เดี๋ยวแก้แล้ว

857
00:33:14,444 --> 00:33:15,345

858
00:33:15,345 --> 00:33:18,553
ตาเมื่อกี้นะคะ

859
00:33:18,553 --> 00:33:21,686
ขั้นตอนสุดท้ายนะคะ 3nf

860
00:33:21,686 --> 00:33:22,516

861
00:33:22,516 --> 00:33:23,356
นะคะ

862
00:33:23,356 --> 00:33:24,768

863
00:33:24,768 --> 00:33:28,768
โดยความสัมพันธ์นะคะ ก่อนที่จะทำเป็น 3nf ได้ จะต้องทำ 2 อย่างนี้มาก่อน

864
00:33:31,302 --> 00:33:34,125
หลักของการทำขั้นตอนที่ 3 คือ

865
00:33:34,125 --> 00:33:36,884
ต้องเอาความสัมพันธ์ที่ไม่ใช่คีย์หลัก

866
00:33:36,884 --> 00:33:39,958
ออกนะคะ

867
00:33:39,958 --> 00:33:43,737
เช่น ไม่ใช่คีย์หลักแต่ไปมีผลกับ

868
00:33:43,737 --> 00:33:46,879
คอลัมน์อื่นไม่ได้นะคะ ไม่ได้

869
00:33:46,879 --> 00:33:48,414

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

871
00:33:52,132 --> 00:33:54,052
แก้ปัญหานั้น ๆ

872
00:33:54,052 --> 00:33:54,952

873
00:33:54,952 --> 00:33:56,423

874
00:33:56,423 --> 00:34:00,018
อย่างเช่น ในตัวอย่างนะคะ

875
00:34:00,018 --> 00:34:03,347
รหัสพนักงานนะคะ

876
00:34:03,347 --> 00:34:06,427
ชื่อสกุล รหัสแผนก ชื่อแผนก เงินเดือน

877
00:34:06,427 --> 00:34:10,427
จะเห็นได้ว่าในตารางนี้เนี่ยคีย์หลัก ก็คือรหัสพนักงาน

878
00:34:10,915 --> 00:34:11,626

879
00:34:11,626 --> 00:34:11,879

880
00:34:11,879 --> 00:34:12,778

881
00:34:12,778 --> 00:34:13,096

882
00:34:13,096 --> 00:34:17,096
มันมีรหัสแผนกกับชื่อแผนกติดมาด้วย

883
00:34:17,708 --> 00:34:20,341
ซึ่งมันไม่ได้เกี่ยวกับรหัสพนักงานเลย

884
00:34:20,341 --> 00:34:20,981

885
00:34:20,981 --> 00:34:22,333

886
00:34:22,333 --> 00:34:24,703
วิธีการแก้ปัญหา ก็คือ

887
00:34:24,703 --> 00:34:24,834

888
00:34:24,834 --> 00:34:26,235
เอารหัสแผนก

889
00:34:26,235 --> 00:34:26,436

890
00:34:26,436 --> 00:34:27,776
กับชื่อแผนก

891
00:34:27,776 --> 00:34:28,224

892
00:34:28,224 --> 00:34:32,224
ไปสร้างตารางใหม่

893
00:34:32,459 --> 00:34:36,360
แต่ต้องยังคงรหัสแผนกไว้

894
00:34:36,360 --> 00:34:38,930
ตารางเดิมนะคะ

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

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

897
00:34:55,206 --> 00:34:59,206
อันนี้คือ 3nf จริง ๆ แล้วอยากให้ลองทำในห้องมากกว่า แต่ด้วยสัปดาห์นี้มันมีข้อจำกัดนะ ก็ไม่เป็นไร

898
00:35:03,021 --> 00:35:03,293

899
00:35:03,293 --> 00:35:06,293

900
00:35:06,293 --> 00:35:07,001

901
00:35:07,001 --> 00:35:09,626
อันนี้เป็นตัวอย่างนะคะ

902
00:35:09,626 --> 00:35:10,780

903
00:35:10,780 --> 00:35:11,098

904
00:35:11,098 --> 00:35:11,230

905
00:35:11,230 --> 00:35:15,230
สรุปนะคะ วิธีการทำ Normalization หรือว่าการปรับบรรทัดฐานนะคะ

906
00:35:18,150 --> 00:35:22,150
ทุก ๆ ที่ทุก ๆ คอลัมน์ในแต่ละแถว

907
00:35:23,020 --> 00:35:26,354
จะต้องมีค่าของข้อมูลเพียงค่าเดียวเท่านั้น

908
00:35:26,354 --> 00:35:27,185

909
00:35:27,185 --> 00:35:29,306
เช่นเวลาเรากรอกเบอร์โทรศัพท์

910
00:35:29,306 --> 00:35:33,306
เรามีโทรศัพท์ 3 เบอร์ก็จริง แต่เราจะกรอกได้แค่เบอร์เดียวนะ

911
00:35:33,791 --> 00:35:35,517

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

913
00:35:39,627 --> 00:35:42,061

914
00:35:42,061 --> 00:35:44,041
ต่อมา

915
00:35:44,041 --> 00:35:45,141
2 nF

916
00:35:45,141 --> 00:35:47,763
นะคะ ก็

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

918
00:35:55,265 --> 00:35:56,675
ของตาราง

919
00:35:56,675 --> 00:35:57,955
ตัวเดียวเท่านั้น

920
00:35:57,955 --> 00:35:59,554
นะคะ

921
00:35:59,554 --> 00:35:59,934

922
00:35:59,934 --> 00:36:03,144
ข้อที่ 3 ถ้า

923
00:36:03,144 --> 00:36:05,385
คอลัมน์ไหนที่ไม่ใช่คีย์หลักนะคะ

924
00:36:05,385 --> 00:36:05,705

925
00:36:05,705 --> 00:36:06,727

926
00:36:06,727 --> 00:36:07,238

927
00:36:07,238 --> 00:36:07,498

928
00:36:07,498 --> 00:36:10,522
จะมาส่งผลกับคอลัมน์อื่นในตารางไม่ได้

929
00:36:10,522 --> 00:36:12,371
เพราะฉะนั้น

930
00:36:12,371 --> 00:36:15,443
ไปข้อ 1 นี้ คือแค่กระจายตาราง

931
00:36:15,443 --> 00:36:18,084
อันที่ 2 อันที่ 3 ถ้ามีปัญหา

932
00:36:18,084 --> 00:36:20,195
เราต้องสร้างตารางใหม่

933
00:36:20,195 --> 00:36:23,266

934
00:36:23,266 --> 00:36:24,229

935
00:36:24,229 --> 00:36:24,867

936
00:36:24,867 --> 00:36:25,056

937
00:36:25,056 --> 00:36:26,607

938
00:36:26,607 --> 00:36:27,177

939
00:36:27,177 --> 00:36:29,810
การบ้านเอาอย่างนี้ดีกว่า

940
00:36:29,810 --> 00:36:33,810
อาจารย์จะให้ทำ น่าจะส่งวันนี้

941
00:36:33,914 --> 00:36:37,116
เอาแค่

942
00:36:37,116 --> 00:36:41,116
ข้อเดียวนะคะ ข้อเดียวพอ เพราะว่าจริง ๆ อยากให้ทำในห้องเดี๋ยว สัปดาห์หน้าค่อยทำในห้องนะ

943
00:36:42,820 --> 00:36:43,459

944
00:36:43,459 --> 00:36:43,718

945
00:36:43,718 --> 00:36:46,468
คะ แต่อันนี้จะให้ลองทำดูก่อนว่าที่เรียนไปวันนี้

946
00:36:46,468 --> 00:36:48,071
เข้าใจไหม

947
00:36:48,071 --> 00:36:48,780

948
00:36:48,780 --> 00:36:51,471
ถ้าทำเสร็จแล้วก็ค่อยเอามาส่ง

949
00:36:51,471 --> 00:36:55,471
ที่ตู้ส่งงานอาจารย์ เอาเฉพาะข้อดีนะ ข้อเดียว

950
00:36:57,175 --> 00:37:01,142
ข้อเดียวพอ วันนี้คนเดียวพอนะคะ ส่งในเวลานี้แหละ

951
00:37:01,142 --> 00:37:01,534

952
00:37:01,534 --> 00:37:02,743

953
00:37:02,743 --> 00:37:05,117
ให้ลองทำดูว่าเข้าใจไหมข้อนี้

954
00:37:05,117 --> 00:37:06,345

955
00:37:06,345 --> 00:37:07,175

956
00:37:07,175 --> 00:37:10,890
ทำอย่างนี้ ทำอย่างไร ง่ายมาก ๆ เลย

957
00:37:10,890 --> 00:37:11,528

958
00:37:11,528 --> 00:37:12,997
อาจารย์เว้นช่องว่างให้แล้ว

959
00:37:12,997 --> 00:37:13,959
เติมมา

960
00:37:13,959 --> 00:37:14,280

961
00:37:14,280 --> 00:37:15,252

962
00:37:15,252 --> 00:37:16,150

963
00:37:16,150 --> 00:37:17,873
2 มิติ

964
00:37:17,873 --> 00:37:19,994
คุณเห็นไหมว่า

965
00:37:19,994 --> 00:37:20,111

966
00:37:20,111 --> 00:37:22,293
มันมีรหัสวิชา

967
00:37:22,293 --> 00:37:23,396
วิชา

968
00:37:23,396 --> 00:37:24,998
นี่ ต้องทำยังไงกับมัน

969
00:37:24,998 --> 00:37:25,315

970
00:37:25,315 --> 00:37:27,424

971
00:37:27,424 --> 00:37:29,275
แยกมันออกมาซิแยกยังไง

972
00:37:29,275 --> 00:37:31,337
เอาข้าวเหนียวก่อน

973
00:37:31,337 --> 00:37:32,680
นะคะ แล้วลอง

974
00:37:32,680 --> 00:37:33,131

975
00:37:33,131 --> 00:37:34,800
ส่งมาให้อาจารย์ดูก่อนว่า

976
00:37:34,800 --> 00:37:36,652
เข้าใจมากน้อยขนาดไหน

977
00:37:36,652 --> 00:37:37,102

978
00:37:37,102 --> 00:37:38,511
จริง ๆ

979
00:37:38,511 --> 00:37:41,522
อยากให้เรียนในห้องมากกว่า แต่วันนี้ก็เอา

980
00:37:41,522 --> 00:37:43,065
ประมาณมานี้ก่อนแล้วกัน

981
00:37:43,065 --> 00:37:43,443

982
00:37:43,443 --> 00:37:44,404

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

984
00:37:47,423 --> 00:37:48,010

985
00:37:48,010 --> 00:37:49,606
เดินดูในห้องดีกว่า

986
00:37:49,606 --> 00:37:50,944

987
00:37:50,944 --> 00:37:53,060
นะคะ วันนี้ก็

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

989
00:37:56,460 --> 00:37:56,849

990
00:37:56,849 --> 00:37:58,251
วันนี้เลยยิ่งดี

991
00:37:58,251 --> 00:37:59,150

992
00:37:59,150 --> 00:38:01,973
เวลาที่เหลือ ทำใส่กระดาษมาส่งอาจารย์

993
00:38:01,973 --> 00:38:04,154
แล้วกัน

994
00:38:04,154 --> 00:38:06,907
นะ ประมาณนี้ค่ะ เวลาที่เหลือทำให้เสร็จภายในวันนี้นะคะ

995
00:38:06,907 --> 00:38:10,878
ข้อเดียวเองนะคะ ข้อเดียว

996
00:38:10,878 --> 00:38:12,041

997
00:38:12,041 --> 00:38:13,509
มีใครสงสัยไหมคะ

998
00:38:13,509 --> 00:38:16,390
ปุ๋ยสงสัยไหม

999
00:38:16,390 --> 00:38:18,248
เปิดไม่ได้หรือเปล่า

1000
00:38:18,248 --> 00:38:18,570

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

1002
00:38:25,746 --> 00:38:26,905

1003
00:38:26,905 --> 00:38:29,853
ไม่ ๆ ส่วนมากอยู่ในการอยู่หอนี่แหละ

1004
00:38:29,853 --> 00:38:30,306

1005
00:38:30,306 --> 00:38:33,186

1006
00:38:33,186 --> 00:38:35,750
ตอนนี้เหลืออยู่ DSS ประมาณ

1007
00:38:35,750 --> 00:38:37,108

1008
00:38:37,108 --> 00:38:37,418

1009
00:38:37,418 --> 00:38:41,319
4 คนค่ะ ก็รวบรวมได้เท่าไรไก็เอามา

1010
00:38:41,319 --> 00:38:41,448

1011
00:38:41,448 --> 00:38:41,713

1012
00:38:41,713 --> 00:38:42,602

1013
00:38:42,602 --> 00:38:46,602
Ok Thank You

1014
00:38:47,670 --> 00:38:49,842

1015
00:38:49,842 --> 00:38:50,234

1016
00:38:50,234 --> 00:38:53,694
วันนี้ก็ประมาณนี้ค่ะ ขอบคุณทุกคนมากนะคะ

1017
00:38:53,694 --> 00:38:54,075

1018
00:38:54,075 --> 00:38:58,075
ที่ยังตั้งใจเรียนอยู่ แล้วก็งานอย่าลืมส่งวันนี้นะคะ อยู่ DSS ก็

1019
00:38:58,557 --> 00:38:59,327
ทำให้เสร็จ

1020
00:38:59,327 --> 00:39:03,327
แล้วก็ฝากเพื่อนมาส่งรวมกันมาส่งก็ได้นะคะ ถ้าใครอยู่หอก็จะมาทำอยู่ DSS ก็ได้ หรือว่าทำเสร็จแล้วมาส่งที่

1021
00:39:06,642 --> 00:39:07,662
โต๊ะอาจารย์ก็ได้

1022
00:39:07,662 --> 00:39:10,745

1023
00:39:10,745 --> 00:39:14,745
โอเคค่ะ วันนี้ก็ประมาณนี้ค่ะ ขอบคุณล่ามด้วยนะคะ

1024
00:39:15,674 --> 00:39:19,674
ค่ะ ขอบคุณค่ะ

1025
00:39:30,821 --> 00:39:41,107
ป

1026
00:39:18,627 --> 00:39:19,777

1027
00:39:19,777 --> 00:39:20,177

1028
00:39:20,177 --> 00:39:20,549

1029
00:39:20,549 --> 00:39:21,449

1030
00:39:21,449 --> 00:39:24,200

1031
00:39:24,200 --> 00:39:25,543

1032
00:39:25,543 --> 00:39:29,543

1033
00:39:37,272 --> 00:39:41,272
ุ๋ย วันนี้ครบนะ

1034
00:39:47,229 --> 00:39:44,909
โอเค

1035
00:39:41,562 --> 00:39:42,974

1036
00:39:42,974 --> 00:39:43,233

1037
00:39:43,233 --> 00:39:43,423

1038
00:39:43,423 --> 00:39:43,747

1039
00:39:43,747 --> 00:39:45,099

1040
00:39:45,099 --> 00:39:46,312
OK

1041
00:39:46,312 --> 00:39:50,312

1042
00:39:55,026 --> 00:39:59,026


