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

2
00:00:04,005 --> 00:00:08,005

3
00:00:08,009 --> 00:00:12,009

4
00:00:12,015 --> 00:00:16,015

5
00:00:16,021 --> 00:00:20,021

6
00:00:20,023 --> 00:00:24,023

7
00:00:24,029 --> 00:00:28,029

8
00:00:28,033 --> 00:00:32,033

9
00:00:32,035 --> 00:00:36,035

10
00:00:36,041 --> 00:00:40,041

11
00:00:40,045 --> 00:00:44,045

12
00:00:44,049 --> 00:00:48,049

13
00:00:48,053 --> 00:00:52,053

14
00:00:52,056 --> 00:00:56,056

15
00:00:56,060 --> 00:01:00,060

16
00:01:00,063 --> 00:01:04,063

17
00:01:04,067 --> 00:01:08,067

18
00:01:08,071 --> 00:01:12,071

19
00:01:12,076 --> 00:01:16,076

20
00:01:16,081 --> 00:01:20,081

21
00:01:20,086 --> 00:01:24,086

22
00:01:24,092 --> 00:01:28,092

23
00:01:28,096 --> 00:01:32,096

24
00:01:32,100 --> 00:01:36,100

25
00:01:36,105 --> 00:01:40,105

26
00:01:40,108 --> 00:01:44,108
(อาจารย์เกวลี) เดี๋ยวเริ่มเลย

27
00:01:44,113 --> 00:01:48,113
ก็ได้ค่ะ

28
00:01:48,122 --> 00:01:52,121
โอเค น่าจะประมาณนี้นะคะ

29
00:01:52,121 --> 00:01:56,121
วันนี้จะเป็นบทที่ 5 เกี่ยวกับกระบวนการ

30
00:01:56,123 --> 00:02:00,123
ปรับบรรทัดฐาน นะคะ ภาษาอังกฤษก็จะเป็น

31
00:02:00,126 --> 00:02:04,126
normalization

32
00:02:04,131 --> 00:02:08,131
เนื้อหาวันนี้ ก็จะมีความหมาย

33
00:02:08,135 --> 00:02:12,135
แล้วกของการทำ Nomanlization

34
00:02:12,137 --> 00:02:16,137
จะเกี่ยวกับฟังก์ชันการขึ้นต่อกัน แล้วก็หลักการขึ้น normali

35
00:02:16,141 --> 00:02:20,141
ด้วยนะคะ มีอยู่ 3 ข้อวันนี้

36
00:02:20,145 --> 00:02:24,145

37
00:02:24,149 --> 00:02:28,149
โดยการxiหรือ No

38
00:02:28,151 --> 00:02:32,151
มันจะเป็นทฤษฎีที่คนออกแบบฐานข้อมูลนี

39
00:02:32,154 --> 00:02:36,154
มาแปลงข้อมูลจากรูปที่ซับซ้อน

40
00:02:36,158 --> 00:02:40,158
นะคะ ให้มันง่าย เข้าใจ

41
00:02:40,161 --> 00:02:44,161
ก็ง่าย นำไปใช้งานก็ง่าย แล้วต้องเป็นระบบที่

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

43
00:02:48,166 --> 00:02:52,166
ุดโดยกระบวนการ

44
00:02:52,169 --> 00:02:56,169
ทำงานนะคะ ในการปรับบรรทัดฐานนี่ มันจะมี 3 ระดับ

45
00:02:56,175 --> 00:03:00,175
นะคะ จริง ๆ เราก็จะเรียกสั้น ๆ ระดับแรกจะเรียกว่

46
00:03:00,181 --> 00:03:04,181
า 1NFนะคะ 2NF 3NF นะคะ

47
00:03:04,186 --> 00:03:08,186
ในระดับปริญญาตรีนี่

48
00:03:08,190 --> 00:03:12,190
ถึง 3NF ได้ ก็ถือว่าเก่งมากแล้ว

49
00:03:12,192 --> 00:03:16,192
นะคะ แต่ถ้าเป็นระดับที่สูงขึ้นไปอีก ก็จะได้ถึง 5NF

50
00:03:16,197 --> 00:03:20,197
เลยนะคะ

51
00:03:20,202 --> 00:03:24,202
อันนี้เป็น

52
00:03:24,207 --> 00:03:28,207
แผนภาพกระบวนการทำงานนะคะ ก่อนเราจะมาทำแผนภาพปรับบรรทัดฐาน

53
00:03:28,209 --> 00:03:32,209
ได้นี่ มันก็ต้องวิเคราะห์ความต้องการใช้งานของผู้ใช้งานก่อน

54
00:03:32,210 --> 00:03:36,210
ว่า เขาต้องการระบบจัดการฐานข้อมูลแบบไหน มีความต้องการ

55
00:03:36,212 --> 00:03:40,212
ใช้ตารางกี่ตารางในฐานข้อมูลนะคะ

56
00:03:40,215 --> 00:03:44,215
หลังจากนั้นก็จะมาวาดรูป เหมือนที่เราเรียนอาทิตย์ที่แล้วนะคะ

57
00:03:44,219 --> 00:03:48,219
มาวาดเป็นแผนภาพ เพื่อให้เข้าใจว่า

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

59
00:03:52,223 --> 00:03:56,223
ตามความต้องการหรือเปล่านะคะ

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

61
00:04:00,229 --> 00:04:04,229
แบบที่ยังไม่เป็นบรรทัดฐาน

62
00:04:04,234 --> 00:04:08,234
หรือว่ายังไม่ได้มีการจัดระเบียบความคิดที่มันซับซ้อน

63
00:04:08,236 --> 00:04:12,236
ออกไป หรืออาจจะมีคีย์หลักที่มันทับซ้อนกันนะคะ

64
00:04:12,240 --> 00:04:16,240
เราก็เลยจะต้องเอาข้อมูลจากที่เราวาดอาทิตย์ที่แล้วนี่ มาเข้าสู่

65
00:04:16,245 --> 00:04:20,245
กระบวนการปรับบรรทัดฐานก่อน นะคะ ซึี่งอย่างที่บอก

66
00:04:20,249 --> 00:04:24,249
เราทำแค่ถึง 3 NF นี่ ก็ถือว่าเก่งมากแล้ว

67
00:04:24,251 --> 00:04:28,251
นะคะ แต่อย่างน้อยต้องถึง 3 นะคะ ไอ้บอยด์คอดด์ ก

68
00:04:28,253 --> 00:04:32,253
ับ 4NF ไม่ทำก็ละไว้ได้นะคะ แต่อย่างน้อยต้อง

69
00:04:32,258 --> 00:04:36,258
ถึง 3 นะคะ

70
00:04:36,262 --> 00:04:40,262
โดยวัตถุประสงค์ของการปรับบรรทัดฐานนะคะ

71
00:04:40,267 --> 00:04:44,267
แน่นอน ลดความซ้ำซ้อนกันของข้อมูล

72
00:04:44,269 --> 00:04:48,269
ก็คือถ้าข้อมูลมันซ้ำกันนี่เราต้องตัดออกไป เพราะถ้ามันยิ่งซ้ำกัน

73
00:04:48,275 --> 00:04:52,275
มันยิ่งซ้ำกันมากเท่าไร เนืหา และพื้นที่

74
00:04:52,278 --> 00:04:56,278
ในการเก็บข้อมูลมันเยอะ แล้วก็สิ้นเปลืองงบประมาณ

75
00:04:56,282 --> 00:05:00,282
ด้วยเหมือนกันรวมถึงลดปัญหาความไม่ถูกต้อง

76
00:05:00,286 --> 00:05:04,286
ของข้อมูลนะคะ ข้อมูลนี่ นอกจากจะไม่เกิดความ

77
00:05:04,290 --> 00:05:08,290
ซ้ำซ้อนกันแล้วนี่ มันยังเกิดจากสาเหตุอื่น

78
00:05:08,290 --> 00:05:12,290
คือ ถ้าเหมือนที่อาจารย์เคยยกตัวอย่าง ก็คือถ้าเราเก็บข้อมูลหลาย ๆ ที่

79
00:05:12,293 --> 00:05:16,293
นะคะ อย่างนักศึกษาเก็บข้อมูลที่คณะด้วย เก็บที่มหาวิทลัย

80
00:05:16,295 --> 00:05:20,295
เก็บที่สาขาด้วย บาทีถ้าวันหนึ่งคุณ

81
00:05:20,296 --> 00:05:24,296
อาจจะเปลี่ยนแปลงเบอร์โทรศัพท์ที่บ้าน

82
00:05:24,298 --> 00:05:28,298
เราก็ต้องไปตามเปลี่ยนทุกที่เลยนะคะ ซึ่งเสียเวลา

83
00:05:28,299 --> 00:05:32,299
แล้วคราวนี้ ก็จะเป็นที่เถียงกันว่า

84
00:05:32,302 --> 00:05:36,302
สรุปแล้วเบอร์ไหนถูก เบอร์ไหนผิดนะคะ โดยวัตถุประสงค์ของ

85
00:05:36,304 --> 00:05:40,303
การปรับบรรทัดฐานนี่ ก็คือข้อมูลอาจจะเก็บอยู่แหล่งเดียวนะคะ ที่แหล่งเ

86
00:05:40,303 --> 00:05:44,303
ที่เดียว แต่สามารถเรียนใช้งานหลาย ๆ

87
00:05:44,305 --> 00:05:48,305
ที่ พร้อม ๆ กันได้นะคะ แต่ถ้า

88
00:05:48,307 --> 00:05:52,307
มันมีการเปลี่ยนแปลงข้อมูล มีการลบหรือการเพิ่ม

89
00:05:52,308 --> 00:05:56,308
เป็น เพื่อให้ข้อมูลเป็นปัจจุบันที่สุด เราจึงเก็บข้อมูลไว้ที่เดียว

90
00:05:56,310 --> 00:06:00,310
มีแก้ไขก็ที่เดียวนะคะ เพราะฉะนั้น ข้อมูลถูกต้อง

91
00:06:00,311 --> 00:06:04,310
ก็เป็นปัจจุบันด้วย

92
00:06:04,310 --> 00:06:08,310
แล้วก็อย่างที่ให้เหตุผลเมื่อกี้นี้นะคะ การเก็บข้อมูล

93
00:06:08,312 --> 00:06:12,312
ที่เดียวนี่ มันก็จะลดการผิดพลาด ที่เปิดจากการ

94
00:06:12,313 --> 00:06:16,313
เปลี่ยนแปลงข้อมูล ปรับปรุงข้อมูล นะคะ เหมิือนที่บอก ก็คือ

95
00:06:16,314 --> 00:06:20,314
เปลี่ยนเบอร์โทรศัพท์ หรือว่าเปลี่ยนบ้านเลขที่ ก็

96
00:06:20,317 --> 00:06:24,317
เปลี่ยนแปลงที่เดียว เราสามารถเรียกใช้ข้อมูลได้ทุกที่

97
00:06:24,318 --> 00:06:28,318
นะคะ

98
00:06:28,321 --> 00:06:32,321
ถ้าต้องการข้อมูลนะคะ ความซ้ำซ้อนกันของข้อมูลนี่

99
00:06:32,323 --> 00:06:36,323
มันอาจจะเกิดผิดพลาดของการปรับปรุงของข้อมูลนะคะ แนวคิด

100
00:06:36,327 --> 00:06:40,327
ของการออกแบบฐานข้อมูลนี่ ก็คือการออกแบบข้อมูลที่

101
00:06:40,330 --> 00:06:44,330
ซ้ำซ้อนกันน้อยที่สุดนะคะ เพื่อประหยัดเนื้อที่ใน่าร

102
00:06:44,333 --> 00:06:48,333
แล้วก็ลดปัญหาที่เกิดขึ้น ถ้าข้อมูลมันซ้ำซอนมาก

103
00:06:48,336 --> 00:06:52,336
เกินไปหรือปริมาณข้อมูลมีเยอะ

104
00:06:52,338 --> 00:06:56,338
เกินไปนะคะ

105
00:06:56,341 --> 00:07:00,341
อย่างเช่น ตัวอย่างนะคะ

106
00:07:00,342 --> 00:07:04,342
ตารางด้านบน ตารางสีเทาข้างบนนะคะ จะเป็นการออกแบบฐานข้อมูลที่ดี

107
00:07:04,345 --> 00:07:08,345
เดี๋ยวจะมาให้ดูว่าทำไมมันถึงดีกว่า

108
00:07:08,349 --> 00:07:12,349
ในตารางข้อมูลนี่ มันจะมีตารางของพนักงาน และก็ตารางสาขา

109
00:07:12,350 --> 00:07:16,350
นะคะ จะเห็นได้ว่า

110
00:07:16,356 --> 00:07:20,356
ตารางพนักงานนี่ จะมีส่วนหนึ่งที่ข้อมูลของรหัสสาขา

111
00:07:20,357 --> 00:07:24,357
ห้อยไว้อยู่ ถามว่าทำไมไม่เอา

112
00:07:24,361 --> 00:07:28,361
ข้อมูลสาขามาไว้ในตารางพนักงานทีเดียวเลยล่ะ ทำไมต้องแยก

113
00:07:28,364 --> 00:07:32,364
ออกนะคะ อย่าง

114
00:07:32,368 --> 00:07:36,368
ถ้านักศึกษาดูคนแรกนะคะ พนักงานคนแรก รหัสสาขา

115
00:07:36,372 --> 00:07:40,372
B005

116
00:07:40,377 --> 00:07:44,377
ก็คือสาขาเชียงใหม่

117
00:07:44,381 --> 00:07:48,381
ถ้าสมมติว่า

118
00:07:48,385 --> 00:07:52,385
พนักงานคนที่ 1 ลาออก

119
00:07:52,386 --> 00:07:56,386
ก็จะมีการลบข้อมูลเกิดขึ้นใช่ไหมคะ

120
00:07:56,390 --> 00:08:00,390
มีการลบข้อมูล ลบคนนี้ออก

121
00:08:00,394 --> 00:08:04,394
ขีดฆ่าทิ้ง เดี๋ยวนะคะ

122
00:08:04,398 --> 00:08:08,398
ขีดฆ่าทิ้ง สิ่งไหนที่หายไปบ้าง

123
00:08:08,402 --> 00:08:12,402
แน่นอน สาขาเชียงใหม่จะหายไปด้วย  สมมติ

124
00:08:12,405 --> 00:08:16,405
นะคะ ถ้าสมมติเราอยู่ด้วยกัน แต่ถ้าสมมติพนักงานคนนี้ลาออก

125
00:08:16,406 --> 00:08:20,406
สาขาเชียงใหม่ยังอยู่ไหม ยังอยู่นะคะ

126
00:08:20,411 --> 00:08:24,411
ซึ่งแตกต่างจากด้านล่างนะคะ ด้านล่าง เห็นไหมคะ ว่า

127
00:08:24,415 --> 00:08:28,415
ถ้าสมมติว่าอาจารย์ลบทิ้งหมดเลย

128
00:08:28,419 --> 00:08:32,419
ลบทิ้งหมดนี่ กากบาททิ้ง

129
00:08:32,425 --> 00:08:36,425
สาขาเชียงใหม่หายไปด้วย

130
00:08:36,429 --> 00:08:40,429
อันนี้คือการออกแบบที่ไม่ดีนะคะ เหมือน

131
00:08:40,433 --> 00:08:44,433
ลบคนข้างล่าง คนนี้ออก

132
00:08:44,437 --> 00:08:48,437
สาขาพิษณุโลกก็หายไปด้วย

133
00:08:48,440 --> 00:08:52,440
แต่ถ้าเป็นตารางด้านบนนะคะ ถ้า

134
00:08:52,441 --> 00:08:56,441
คนนี้ลาออก สาขายังอยู่ไหม ยังอยู่เหมือนเดิมนะคะ

135
00:08:56,445 --> 00:09:00,445
อันนี้คือการออกแบบฐานข้อมูล

136
00:09:00,449 --> 00:09:04,449
ที่ดี ถ้าข้อมูลตัวไหนที่มันมีผลกระทบต่อกัน เราจะต้องแยกตาราง

137
00:09:04,454 --> 00:09:08,454
ออกนะคะ

138
00:09:08,458 --> 00:09:12,458
ตัวอย่าง

139
00:09:12,460 --> 00:09:16,460
นะคะ ถ้าการออกแบบที่ดีนี่ เราจะลด

140
00:09:16,465 --> 00:09:20,465
ปัญหาความซ้ำซ้อนกันของข้อมูลออกได้นะคะ

141
00:09:20,469 --> 00:09:24,469
อย่างเช่นตรงนี้ อันนี้เป็นตารางที่ออกแบบที่ไม่ดี

142
00:09:24,473 --> 00:09:28,473
นะคะ เห็นไหมคะ ว่ามันจะมีรหัสสาขา แล้วก็

143
00:09:28,476 --> 00:09:32,476
ที่อยู่

144
00:09:32,478 --> 00:09:36,478
ถ้าสมมติว่าอาจารย์เพิ่มเข้ามาใหม่

145
00:09:36,482 --> 00:09:40,482
อีก 1 คนนะคะ  เป็น EM

146
00:09:40,485 --> 00:09:44,485
10 ตรงนี้นะคะ ถ้าต้องการเพิ่ม

147
00:09:44,489 --> 00:09:48,489
พนักงานสาขาเชียงใหม่ อาจารย์ก็ต้องมา

148
00:09:48,492 --> 00:09:52,492
กรอกข้อมูลตรงนี้อีก ว่าเชียงใหม่นะ  โน่นนี่นั่นโน่น

149
00:09:52,497 --> 00:09:56,497
นะคะ แต่ถ้าเป็นการออกแบบฐานข้อมูลที่ดีนี่

150
00:09:56,501 --> 00:10:00,501
เราแค่ใส่รหัสสาขานะคะ

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

152
00:10:04,509 --> 00:10:08,509
เหมือน

153
00:10:08,512 --> 00:10:12,512
เวลาคุณไปธนาคารใช่ไหมคะ คุณก็แค่ยื่นบ

154
00:10:12,517 --> 00:10:16,517
ัตรประชาชน พนักงานธนาคารก็จะกรอกเลขบัตรประชาชนคุณลงไป

155
00:10:16,518 --> 00:10:20,518
นะคะ หรืออาจจะเอาชิปการ์ดของคุณเสียบเข้าไปใน

156
00:10:20,520 --> 00:10:24,520
เครื่อง ถามว่าตอนนี้เราได้กรอกข้อมูลไหม  ไม่ต้อง

157
00:10:24,522 --> 00:10:28,522
นะคะ ขอแค่มีเลขบัตรประชาชน ข้อมูลทุกอย่างที่คุณมี

158
00:10:28,525 --> 00:10:32,525
เขาจะดึงออกมาจากระบบให้เลย เราไม่ต้องมาเสียเวลากรอกนะคะ

159
00:10:32,535 --> 00:10:36,535
เหมือนเมื่อก่อนนี่

160
00:10:36,535 --> 00:10:40,535
ต้องเขียนใส่กระดาษ เลขบัตรประชาชนอะไร

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

162
00:10:44,541 --> 00:10:48,541
ข้อมูลทุกอย่างเราสามารถดึงขึ้นมาได้อยู่แล้วนะคะ

163
00:10:48,542 --> 00:10:52,542
อันนี้ก็เช่นเดียวกันถ้ากรอกข้อมูลแบบไม่ดีนี่

164
00:10:52,544 --> 00:10:56,544
เราต้องกรอกข้อมูลทุกช่องทุกช่องเลยนี่

165
00:10:56,546 --> 00:11:00,546
คนเดียว ไม่เดือดร้อนค่ะ แต่ถ้าเป็พนักงานใหม่

166
00:11:00,553 --> 00:11:04,553
เป็นเหมือนโรงงานน่ะค่ะ ทีละ 1,000 คน ต้องนั่ง

167
00:11:04,553 --> 00:11:08,553
กรอก เชียงใหม่เป็นพัน ๆ ครั้งนี่ เสียเวลา

168
00:11:08,556 --> 00:11:12,556
มาก ๆ นะคะ อันนี้คือการออกแบบที่

169
00:11:12,558 --> 00:11:16,558
ไม่ดีนะคะ

170
00:11:16,565 --> 00:11:20,565
กับอีกอย่างหนึ่ง ถ้าสมมติว่า

171
00:11:20,569 --> 00:11:24,569
เมื่อกี้อาจารย์เพิ่มพนักงานแล้ว ถ้าอาจารย์อยากเพิ่มแค่สาขา

172
00:11:24,573 --> 00:11:28,573
นะคะ อยากเพิ่มแค่สาขา

173
00:11:28,576 --> 00:11:32,576
ซึ่งในตารางนี้ คีย์หลัก จำได้ไหมคะ

174
00:11:32,577 --> 00:11:36,577
คีย์หลักจะเป็นคีย์ที่ขีดเส้นใต้

175
00:11:36,581 --> 00:11:40,581
ซึ่งอาจารย์อยากเพิ่มสาขา สมมติอาจารย์จะเพิ่ม

176
00:11:40,585 --> 00:11:44,585
B100 สกลนคร

177
00:11:44,589 --> 00:11:48,589
สกลนครนะคะ ถามว่าเพิ่มได้ไหม

178
00:11:48,592 --> 00:11:52,592
อาจจะเป็นการตั้งสาขา แต่ยังไม่มีพนักงานหรอกนะคะ

179
00:11:52,596 --> 00:11:56,596
ถ้าจากตารางนี้นะคะ

180
00:11:56,600 --> 00:12:00,600
เราจะเพิ่มเฉพาะชื่อสาขาไม่ได้ เนื่องจากเรายังไม่มี

181
00:12:00,602 --> 00:12:04,602
รหัสพนักงาน เพราะรหัสพนักงานเป็นคีย์หลัก

182
00:12:04,606 --> 00:12:08,606
นะคะ คีย์หลัก คือ คุณสมบัติมัน คือ เป็นค่าว่างไม่ได้

183
00:12:08,610 --> 00:12:12,610
นะคะ อันนี้ก็ทำให้เราเพิ่ม

184
00:12:12,611 --> 00:12:16,611
สาขาไม่ได้ เพราะเราไม่มีพนักงาน อันนี้ก็เป็น

185
00:12:16,617 --> 00:12:20,617
ข้อผิดพลาดในการเพิ่มข้อมูล

186
00:12:20,619 --> 00:12:24,619
ถ้าเราออกแบบตารางแบบนี้นะคะ

187
00:12:24,622 --> 00:12:28,622
นี่ก็คือปัญญาที่เกิดขึ้นจากการออกแบบ

188
00:12:28,624 --> 00:12:32,624
ตารางไม่ดี

189
00:12:32,628 --> 00:12:36,628
กับ

190
00:12:36,629 --> 00:12:40,629
ปัญหาต่อมา เป็นปัญหาการลบข้อมูล อย่างที่อาจารย์บอก

191
00:12:40,633 --> 00:12:44,633
นะคะ ถ้าพนักงานคนนี้ลาออก สาขาเชียงใหม่

192
00:12:44,639 --> 00:12:48,639
หายไปด้วยนะคะ โดน

193
00:12:48,641 --> 00:12:52,641
ลบไป กรณีความผิดพลาดจากการเปลี่ยนแปลง

194
00:12:52,645 --> 00:12:56,645
นะคะ เหมือน B003 นี่ค่ะ เป็นกรุงเทพฯ

195
00:12:56,650 --> 00:13:00,650
ใช่ไหมคะ แล้วคราวนี้ข้อมูลมันอยู่ใน

196
00:13:00,655 --> 00:13:04,655
ตารางเดียวกัน ถ้านักศึกษาจะแก้ สมมติว่าเราย้าย

197
00:13:04,659 --> 00:13:08,659
จากรุงเทพฯ ไปอยู่นนทบุรี

198
00:13:08,662 --> 00:13:12,662
สมมติมีพนักงาน 3,000 คน

199
00:13:12,665 --> 00:13:16,665
คุณต้องแก้กรุงเทพฯ 3,000 ครั้ง

200
00:13:16,669 --> 00:13:20,669
เป็นนนทบุรีนะคะ

201
00:13:20,675 --> 00:13:24,675
ถ้าพนักงานมี คน 2 คน ไม่ใช้ปัญหาค่ะ แต่ถ้าคุณเป็น

202
00:13:24,679 --> 00:13:28,679
โรงงานขนาดใหญ่ นั่งแก้ทีละ 3,000 คน ไม่ใช่เรื่องสนุกแน่ ๆ นะคะ

203
00:13:28,683 --> 00:13:32,683

204
00:13:32,686 --> 00:13:36,686
อันนี้ก็เป็นปัญหานะคะ

205
00:13:36,688 --> 00:13:40,688
เพราะฉะนั้น เราควรแยกตารางพนักงาน

206
00:13:40,693 --> 00:13:44,693
กับตารางสาขาออกจากกันนะคะ นี่เป็นเหตุผล

207
00:13:44,696 --> 00:13:48,696
อันนี้คือข้อมูลขนาดเล็กนะคะ เรายังเห็นปัญหาขนาดนี้ สมมติถ้า

208
00:13:48,699 --> 00:13:52,699
เป็นองค์กรขนาดใหญ่ เป็นบริษัท เป็นโรงงาน หรือ

209
00:13:52,700 --> 00:13:56,700
ระดับโรงเรียน มีนักเรียน 2-3 ร้อย หรือ 2-3 พันคน

210
00:13:56,702 --> 00:14:00,702
ก็ได้นะคะ มันก็จะมีปัญหาเยอะมาก ถ้าสมมติว่าเราจัดตารางไม่ดี

211
00:14:00,704 --> 00:14:04,704
นะคะ

212
00:14:04,709 --> 00:14:08,709
จากปัญหาที่เกิดขึ้นเมื่อกี้นะคะ ก็อย่างที่บอกค่ะ

213
00:14:08,709 --> 00:14:12,709
เราจะแก้ปัญหาโดยการแยกตารางออกเป็น 2 ตารางแบบนี้

214
00:14:12,712 --> 00:14:16,712
นะคะ

215
00:14:16,716 --> 00:14:20,716
ฟังก์ชันการขึ้นต่อกัน เดี๋ยว

216
00:14:20,720 --> 00:14:24,720
จะเป็นเกี่ยวกับตารางหนึ่งมีผลกับอีกตารางหนึ่ง

217
00:14:24,722 --> 00:14:28,722
การขึ้นต่อกัน

218
00:14:28,725 --> 00:14:32,725
เดี๋ยวดูตัวอย่างเลยแล้วกันนะคะ อย่างเช่น ตารางนี้

219
00:14:32,729 --> 00:14:36,729
นะคะ ดูจากรหัสพนักงานนะคะ

220
00:14:36,732 --> 00:14:40,732
เราจะเห็นได้ว่ารหัสพนักงาน

221
00:14:40,736 --> 00:14:44,736
จะส่งผลกับชื่อตำแหน่ง

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

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

224
00:14:52,746 --> 00:14:56,746
ดูทิศทางตามหัวลูกศรนะคะ อันไหน

225
00:14:56,749 --> 00:15:00,749
เป็นตัวหลัก อันไหนเป็นตัวรองนะคะ

226
00:15:00,753 --> 00:15:04,753
อย่างเช่น ตัวนี้

227
00:15:04,757 --> 00:15:08,757
ถามว่าตำแหน่งมาชี้ที่รหัส

228
00:15:08,760 --> 00:15:12,760
พนักงานได้ไหม นะคะ ถามว่า ไม่ได้

229
00:15:12,762 --> 00:15:16,762
นะคะ เพราะการขึ้นต่อกันจะต้องเป็นลักษณะ 1 ต่อ 1

230
00:15:16,763 --> 00:15:20,763
เท่านั้น นะคะ เป็น

231
00:15:20,769 --> 00:15:24,769
1 ต่อ กลุ่ม ไม่ได้

232
00:15:24,770 --> 00:15:28,770

233
00:15:28,772 --> 00:15:32,772
ชนิดของการขึ้นต่อกัน

234
00:15:32,776 --> 00:15:36,776
นะคะ จะมีอยู่ 4 ชนิดนะคะ

235
00:15:36,777 --> 00:15:40,777
ชนิดแรก เป็นการขึ้นต่อกันโดยสมบูรณ์นะคะ

236
00:15:40,781 --> 00:15:44,781
ซึ่งอาจจะเป็นเกี่ยวกับ

237
00:15:44,783 --> 00:15:48,783
ตารางนะคะ จะมีคอลัมน์ 1 คอลัมน์

238
00:15:48,786 --> 00:15:52,786
หรือมากกว่า 1 คอมลัมน์ มาประกอบกันนะคะ โดยในคอลัมน์นั้น ๆ นี่จะ

239
00:15:52,791 --> 00:15:56,791
บรรจุค่าที่ระบุความพิเศษ

240
00:15:56,796 --> 00:16:00,796
ความพิเศษของแถวแถวหนึ่งได้อย่างชัดเจนนะคะ

241
00:16:00,800 --> 00:16:04,800
ก็คือ Attribute Attribute 1 นี่

242
00:16:04,801 --> 00:16:08,801
Record แถว ๆ นั้น ๆ นี่ มันมีลักษณะพิเศษเฉพาะตัวอย่างไร

243
00:16:08,804 --> 00:16:12,804
นะคะ โดยในทุกความสัมพันธ์นี่จะต้อง

244
00:16:12,808 --> 00:16:16,808
ระบุค่าคีย์หลักไว้ด้วย ซึ่ง

245
00:16:16,812 --> 00:16:20,812
คียืหลักนี่ คือ เป็นค่าเอกลักษณ์ ไม่ซ้ำกันอ

246
00:16:20,814 --> 00:16:24,814
ยู่แล้วนะคะ

247
00:16:24,816 --> 00:16:28,816
อย่างเช่น การขึ้นต่อกันอย่างสมบูรณ์

248
00:16:28,818 --> 00:16:32,818
อันแรกนะคะ Attribute ที่...

249
00:16:32,822 --> 00:16:36,822
จำได้ใช่ไหมคะ คีย์หลักจ

250
00:16:36,826 --> 00:16:40,826
ะเป็นคอลัมน์ที่มีขีดเส้นใต้นะคะ

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

252
00:16:44,834 --> 00:16:48,834
ต่อคอลัมน์ที่เป็นคีย์หลัก คอลัมน์เดียวเท่านั้น

253
00:16:48,838 --> 00:16:52,838
นะคะ เช่น เลขบัตรประชาชน ตัวนี้

254
00:16:52,843 --> 00:16:56,843
จะขึ้น จะเป็นเจ้าของชื่อนี้เท่านั้นนะคะ

255
00:16:56,851 --> 00:17:00,851
เพราะฉะนั้น การขึ้นต่อกันอย่างสมบูรณ์ จะเป็น

256
00:17:00,854 --> 00:17:04,854
ลักษณะแบบ 1 ต่อ 1 นะคะ เลขบัตรประชาชน 1 เลข

257
00:17:04,855 --> 00:17:08,855
จะต้องเป็นของคน ๆ เดียวเท่านั้น

258
00:17:08,859 --> 00:17:12,859
นะคะ ไม่ใช่ว่าเลขบัตรประชาชนนี้ใช้ 10 คน เป็นไปไม่ได้นะคะ

259
00:17:12,860 --> 00:17:16,860

260
00:17:16,865 --> 00:17:20,865
ตัวอย่าง

261
00:17:20,869 --> 00:17:24,869
นะคะ ตารางที่มีคอลัมน์

262
00:17:24,874 --> 00:17:28,874
หลายตัวนะคะ ขึ้นอยู่กับคีย์หลักตัวเดียว เช่น คน 1 คนนี่

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

264
00:17:32,885 --> 00:17:36,885
แต่ว่าเขาจะต้องขึ้นตรงกับเลขบัตรประชาชนเดียว

265
00:17:36,887 --> 00:17:40,887
เท่านั้น ถามว่า 3 คนนี้ อาจจะเกิดวันเดียวกันก็ได้ค่ะ

266
00:17:40,889 --> 00:17:44,889
แต่เลขบัตรประชาชนเขาไม่เหมือนกัน

267
00:17:44,890 --> 00:17:48,890
หรือเขาอาจจะมาทำบัตรวันเดียวกัน

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

269
00:17:52,899 --> 00:17:56,899
นะคะ คืออะไร ซ้ำกันได้ทุกอย่างค่ะ ยกเว้นหมายเลข

270
00:17:56,903 --> 00:18:00,903
บัตรประชาชน

271
00:18:00,904 --> 00:18:04,904

272
00:18:04,909 --> 00:18:08,909
แต่

273
00:18:08,913 --> 00:18:12,913
บางตารางนะคะ ก็อาจจะเป็นการ

274
00:18:12,915 --> 00:18:16,915
รวมตัวกันของคีย์หลัก มากกว่า 1 คีย์หลักนะคะ

275
00:18:16,916 --> 00:18:20,916
มารวมกัน เช่น นักศึกษา

276
00:18:20,919 --> 00:18:24,919
คนนี้นะคะ รหัสนักศึกษานี้

277
00:18:24,921 --> 00:18:28,921
ลงทะเบียนวิชานี้นะคะ ได้เกรด

278
00:18:28,924 --> 00:18:32,924
อะไรนะคะ อันนี้ก็เป็นความสัมพันธ์ที่เกิดขึ้นได้เหมือนกัน ถามว่ารหัสนัก

279
00:18:32,925 --> 00:18:36,925
ศึกษาซ้ำกันได้ไหม ไม่ซ้ำนะคะ

280
00:18:36,926 --> 00:18:40,926
รหัสวิชาซ้ำกันได้ไหม ไม่ซ้ำนะคะ เหมือนชื่อ

281
00:18:40,930 --> 00:18:44,930
วิชาอาจารย์ก็รหัสหนึ่ง

282
00:18:44,931 --> 00:18:48,931
ชื่ออาจารย์คนอื่น ก็รหัสวิชาอีกอันหนึ่ง อันนี้จะไม่ซ้ำกันอยู่แล้ว

283
00:18:48,934 --> 00:18:52,934
นะคะ ต่อมา

284
00:18:52,938 --> 00:18:56,938
จะเป็นขึ้นต่อกันบางส่วน นะคะ มันก็จะเป็น

285
00:18:56,942 --> 00:19:00,942
อาศัยความสัมพันธ์ที่เกิดขึ้นจาก

286
00:19:00,946 --> 00:19:04,946
คีย์ผสมนะคะ อาจจะเป็นขึ้นตรงจากตารางอื่น

287
00:19:04,951 --> 00:19:08,951
2 ตารางมารวมกัน อาจจะไม่ใช่คีย์หลักก็ได้ แต่มันมี

288
00:19:08,955 --> 00:19:12,955
ความหมายกับอีกคอลัมน์หนึ่งนะคะ เดี๋ยวยกตัวอย่างเลยดีกว่า

289
00:19:12,960 --> 00:19:16,960
นะคะ

290
00:19:16,963 --> 00:19:20,963
อย่างเช่น เมื่อตารางที่อาจารย์ให้ดูเมื่อกี้นะคะ ก็จะมีรหัสนักศึกษา

291
00:19:20,967 --> 00:19:24,967
รหัสวิชา มีเกรด แล้วก็มีการบอกด้วยว่า

292
00:19:24,971 --> 00:19:28,971
รหัสวิชานี้เป็นชื่อวิชาอะไร

293
00:19:28,977 --> 00:19:32,977
นะคะ มันจะเป็น

294
00:19:32,977 --> 00:19:36,977
การเกิดขึ้น เมื่อคีย์หลักประกอบกันด้วยคอลัมน์หรือว่า Attribute หลาย Attribute รวมกัน

295
00:19:36,981 --> 00:19:40,981
โดยบางส่วนของคีย์หลัก

296
00:19:40,982 --> 00:19:44,982
สามารถไประบุค่า Attribute อื่น

297
00:19:44,987 --> 00:19:48,987
ที่ไม่ใช่คีย์หลักได้นะคะ อย่างเช่น

298
00:19:48,992 --> 00:19:52,992
ในความสัมพันธ์นี้ คีย์หลักจะมี 2 ตัว นะคะ มีรหัสนักศึกษา

299
00:19:52,994 --> 00:19:56,994
กับรหัสวิชานะคะ

300
00:19:56,997 --> 00:20:00,997
ถามว่า ถ้า

301
00:20:01,001 --> 00:20:05,001
มีแต่รหัสนักศึกษา เกรด

302
00:20:05,003 --> 00:20:09,003
นะคะ รหัสวิชา แล้วเราจะรู้ไหมว่าชื่อวิชาที่เรา

303
00:20:09,005 --> 00:20:13,005
เรียนไปนี่ ชื่อวิชาอะไร

304
00:20:13,007 --> 00:20:17,007
นะคะ เหมือนบางคน

305
00:20:17,009 --> 00:20:21,009
รู้รหัสวิชา แต่จำชื่อวิชาไม่ได้ก็มี

306
00:20:21,013 --> 00:20:25,013
นะคะ เพราะฉะนั้น รหัสวิชานี่ มันเลยสามารถไปส่งผลกับชื่อวิชา

307
00:20:25,017 --> 00:20:29,017
เหมือนกัน เพราะเป็นตัวระบุว่าไอ้รหัสวิชานี้

308
00:20:29,025 --> 00:20:33,025
ชื่อวิชาอะไรนะคะ ก็คือคีย์หลักในตารางนี้

309
00:20:33,029 --> 00:20:37,029
มี 2 อัน แต่มีคีย์หลัก 1 ตัวนี่

310
00:20:37,035 --> 00:20:41,035
ไปมีผลกับอีก Attribute หนึ่งได้นะคะ อันนี้คือค

311
00:20:41,042 --> 00:20:45,042
วามขึ้นต่อกันบางส่วน

312
00:20:45,046 --> 00:20:49,046
นะคะ อย่างเช่น ตัวนี้

313
00:20:49,047 --> 00:20:53,047
ก็จะเป็นของจริง ถ้าสมมติว่าอาจาย์ตัดรห

314
00:20:53,049 --> 00:20:57,049
ัสนักศึกษาออก มีแค่รหัสวิชา มีเกรด มีชื่อวิชาการเขียนโปรแกรม

315
00:20:57,051 --> 00:21:01,051
แล้วถาม รู้ไหมคะ ว่าเกรด A นี้ ของใคร

316
00:21:01,055 --> 00:21:05,055
ไม่รู้นะคะ

317
00:21:05,060 --> 00:21:09,060
หรือว่า เดี๋ยวลบอันนี้ออกก่อนนะ

318
00:21:09,064 --> 00:21:13,064
คะ หรือว่าอาจารย์ลบรหัส

319
00:21:13,065 --> 00:21:17,065
วิชาออก เหลือแต่นักศึกษา

320
00:21:17,069 --> 00:21:21,069
เหลือเกรด เหลือชื่อวิชา แล้วถามว่า

321
00:21:21,071 --> 00:21:25,071
แล้วรหัสวิชาอะไรล่ะ

322
00:21:25,073 --> 00:21:29,073
ที่เราได้เกรด A เราก็ไม่ทราบอีก เหมือนกันนะคะ  อันนี้ก็คือ

323
00:21:29,077 --> 00:21:33,077
เป็นการขึ้นต่อกันบางส่วนนะคะ

324
00:21:33,079 --> 00:21:37,079

325
00:21:37,081 --> 00:21:41,081
อันนี้เป็นตัวอย่างนะคะ

326
00:21:41,085 --> 00:21:45,085
ต่อมา เป็นการขึ้นต่อกันแบบส่งต่อนะคะ ก็จะเป็นความสัมพันธ์

327
00:21:45,089 --> 00:21:49,089
ที่เกิดขึ้นก็ต่อเมื่อ มี Attribute และคอมลัมน์อื่น ๆ ที่

328
00:21:49,093 --> 00:21:53,093
ไม่ใช่คีย์หลัก แต่

329
00:21:53,097 --> 00:21:57,097
ไปสามารถขึ้น สามารถระบุค่า

330
00:21:57,099 --> 00:22:01,099
ของ Attribute อื่น ใน Record ได้นะคะ ซึ่งเป็นการออกแบบ

331
00:22:01,103 --> 00:22:05,103
ที่ไม่เหมาะสมนะคะ

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

333
00:22:09,111 --> 00:22:13,111
เราจะระบุค่าอื่นให้กับคอลัมน์อื่นได้ ก็

334
00:22:13,113 --> 00:22:17,113
ควรจะต้องเป็นคีย์หลักเท่านั้นนะคะ

335
00:22:17,115 --> 00:22:21,115
ดูตัวอย่างนะคะ

336
00:22:21,116 --> 00:22:25,116
เช่น ตารางนี้ เขาบอกว่าสิ่งที่เกิดขึ้น คือ

337
00:22:25,122 --> 00:22:29,122
Attribute ก็คือคอลัมน์ที่ไม่ใช่คีย์หลัก หรือ Primary Key

338
00:22:29,124 --> 00:22:33,124
นะคะ ก็คือไม่คอลัมน์ที่มีเส้นขีดนี่ มันไประบุค่าอื่น ๆ ในตรางได้ ในคอม

339
00:22:33,127 --> 00:22:37,127
เช่น ตารางนี่คีย์หลักก็คือเลขที่ประจำตัว

340
00:22:37,129 --> 00:22:41,129
นะคะ โดยเลขประจำตัวนี่ จะไป

341
00:22:41,133 --> 00:22:45,133
มีผลกับชื่อ นามสกุล ที่อยู่ ตำแหน่ง

342
00:22:45,137 --> 00:22:49,137
ใช่ไหมคะ แต่คราวนี้ รถประจำตำแหน่ง

343
00:22:49,140 --> 00:22:53,140
มันไม่ถูกระบุโดยเลขประจำตัว

344
00:22:53,145 --> 00:22:57,145
มันถูกระบุโดยรหัสตำแหน่ง

345
00:22:57,148 --> 00:23:01,148
เหมือนถ้าเป็นผู้จัดการนี่

346
00:23:01,153 --> 00:23:05,153
แทนที่ผู้จัดการจะรู้เลยว่ารถประจำตำแหน่งคืออะไร แต่เขาไปเช็ก

347
00:23:05,157 --> 00:23:09,157
เลขตำแหน่ง แทนที่จะเช็กกับเลขประจำตัว อันนี้

348
00:23:09,161 --> 00:23:13,161
คือการออกแบบที่ไม่ดี

349
00:23:13,165 --> 00:23:17,165
เพราะฉะนั้น ถ้าจะให้รถประจำตำแหน่ง

350
00:23:17,169 --> 00:23:21,169
วิธีการแก้ปัญหา  ก็คือเราควรจะแยกตาราง

351
00:23:21,173 --> 00:23:25,173
นี้ ออก

352
00:23:25,177 --> 00:23:29,177
ไปสร้างตารางใหม่เลยค่ะ มันไม่ควรจะไปขึ้นกับตาราง

353
00:23:29,181 --> 00:23:33,181
ที่มีคีย์หลัก

354
00:23:33,182 --> 00:23:37,182
แต่ไม่สามารถระบุค่าข้อมูลตรงนี้ได้นี่

355
00:23:37,187 --> 00:23:41,187
มันไม่ควรทำนะคะ

356
00:23:41,191 --> 00:23:45,191
กับต่อมา เป็นการขึ้นต่อกันเชิงกลุ่ม

357
00:23:45,192 --> 00:23:49,192
นะคะ ก็จะเป็นความสัมพันธ์

358
00:23:49,195 --> 00:23:53,195
ระหว่างคอลัมน์ หรือ Attribute นี่ แบบขึ้นต่อกันโดยสมบูรณ์นะคะ

359
00:23:53,200 --> 00:23:57,200
ก็ไปสามารถไประบุค่าอื่นได้

360
00:23:57,205 --> 00:24:01,205
นะคะ โดยที่อย่างเช่นตัวอย่างนะคะ

361
00:24:01,206 --> 00:24:05,206
ในตารางนี้นะคะ จะมีรหัส

362
00:24:05,212 --> 00:24:09,212
หลักสูตร สามารถระบุรหัสวิชาได้หลายวิชา เช่น

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

364
00:24:13,215 --> 00:24:17,215
122

365
00:24:17,217 --> 00:24:21,217
เป็นรหัสนักศึกษา นี่ มี 122 คืออะไร 122

366
00:24:21,221 --> 00:24:25,221
ก็คือหลักสูตรที่เราเรียนอยู่นะคะ

367
00:24:25,225 --> 00:24:29,225
ซึ่งในหลักสูตรที่เราเรียนนี่ มันมี

368
00:24:29,228 --> 00:24:33,228
วิชามากกว่า 20 วิชา

369
00:24:33,234 --> 00:24:37,234
นะคะ นั่นก็คือในรหัสหลักสูตรนี่

370
00:24:37,237 --> 00:24:41,237
มันสามารถระบุหรัสวิชาได้หลากหลาย

371
00:24:41,241 --> 00:24:45,241
รหัสวิชามาก ๆ นะคะ อันนี้ก็คือ

372
00:24:45,245 --> 00:24:49,245
การขึ้นต่อกันแบบมีค่ามากกว่า 1

373
00:24:49,249 --> 00:24:53,249
นะคะ รหัสหลักสูตร สามารถระบุรหัสวิชาได้หลายค่า

374
00:24:53,253 --> 00:24:57,253
นั่นเองนะคะ แล้วรหัสหลักสูตร ก็สามารถระบุค่า

375
00:24:57,257 --> 00:25:01,257
รหัสนักศึกษาได้หลายคนเช่นกัน

376
00:25:01,261 --> 00:25:05,261
เหมือนตอนนี้ หลักสูตรที่เราเรียนนี่ มีนักศึกษามากกว่า 100 คน

377
00:25:05,265 --> 00:25:09,265
แต่รหัสหลักสูตรเดียวนะ

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

379
00:25:13,270 --> 00:25:17,270
แบบหลายค่านะคะ

380
00:25:17,273 --> 00:25:21,273
เพราะฉะนั้น

381
00:25:21,275 --> 00:25:25,275
วิธีการแก้ปัญหาของสิ่งที่เกิดขึ้นนะคะ

382
00:25:25,280 --> 00:25:29,280
เราเลยจะต้องมีการ กระบวนการปรับบรรทัดฐาน

383
00:25:29,284 --> 00:25:33,284
หรือว่าหระบวนการปรับปรุงโครงสร้างของข้อมูล ที่มีความซ้ำซ้อนกัน

384
00:25:33,286 --> 00:25:37,286
ให้อยู่ในรูปแบบที่เป็นบรรทัดฐาน เป็นรูปแบบ

385
00:25:37,291 --> 00:25:41,291
ที่พร้อมที่จะเอาไปพัฒนาเป็นฐานข้อมูลได้

386
00:25:41,294 --> 00:25:45,294
นะคะ โดยหลักการนะคะ อย่างที่บอก มี 5 ระดับ

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

388
00:25:49,299 --> 00:25:53,299
แล้วนะคะ โดย

389
00:25:53,305 --> 00:25:57,305
คีย์หลักของการทำงานนะคะ

390
00:25:57,309 --> 00:26:01,309
ขั้นที่ 1 นะคะ กำจัดกลุ่มของข้อมูลที่มีความซ้ำซ้อนกันออกไป

391
00:26:01,313 --> 00:26:05,313
ข้อแรกง่ายมาก ๆ

392
00:26:05,317 --> 00:26:09,317
ง่ายที่สุด ก็คือ 1NF นะคะ

393
00:26:09,320 --> 00:26:13,320
ต่อมา ข้อที่ 2 หรือ 2 NF นะคะ

394
00:26:13,325 --> 00:26:17,325
จะกำจัดการขึ้นต่อกันบางส่วนออก

395
00:26:17,329 --> 00:26:21,329
นะคะ ขั้นสุดท้าย

396
00:26:21,333 --> 00:26:25,333
3NF นะคะ กำจัดการขึ้นต่อกันของ Attribute

397
00:26:25,338 --> 00:26:29,338
ที่ไม่ใช่คีย์หลักนะคะ เดี๋ยวจะมาดู

398
00:26:29,341 --> 00:26:33,341
ทีละขั้น ว่ามันจะต้องเป็นอย่างไรบ้างนะคะ

399
00:26:33,347 --> 00:26:37,347
ข้อแรก ง่ายที่สุด ง่ายมาก ๆ นะคะ

400
00:26:37,349 --> 00:26:41,349
ให้นักศึกษาจำ

401
00:26:41,352 --> 00:26:45,352
กระบวนการหลัก ๆ ก็จะมีอยู่ 3 ข้อนะคะ

402
00:26:45,353 --> 00:26:49,353
ขั้นตอนอันแรกเลย ดูก่อนว่าข้อมูลมันซ้ำซ้อนกันไหม ขั้นที่ 2 ก็ดู

403
00:26:49,356 --> 00:26:53,356
มันขึ้นต่อกันแค่บางส่วนหรือเปล่านะคะ ขั้นที่ 3

404
00:26:53,363 --> 00:26:57,363
ค่าอันไหนไม่ใช่คีย์หลัก แต่มันไปส่งผลกระทบ

405
00:26:57,368 --> 00:27:01,368
กับข้อมูลอื่นได้หรือเปล่านะคะ

406
00:27:01,370 --> 00:27:05,370
ดูขั้นตอนที่ 1 ก่อนนะคะ ขั้นต้อนที่ 1 ง่ายมาก

407
00:27:05,374 --> 00:27:09,374
นะคะ ทุก ๆ คอลัมน์

408
00:27:09,382 --> 00:27:13,382
นะคะ หรือ Attribute ในแต่ละ Record จะต้องเป็นค่า Single Value

409
00:27:13,385 --> 00:27:17,385
คือ มีค่าเดียวเท่านั้นนะคะ จะใส่แบบนี้

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

411
00:27:21,393 --> 00:27:25,393
อย่างตัวนี้ นักศึกษาคนที่ 1

412
00:27:25,397 --> 00:27:29,397
แน่นอนนักศึกษา 1 เทอมนี่ คุณลงทะเบียนประมาณ 6-7 วิชา

413
00:27:29,401 --> 00:27:33,401
ใช่ไหมคะ ข้อมูลมันก็จะเป็นแบบนี้

414
00:27:33,406 --> 00:27:37,406
ถ้าเราไม่มีการทำ Normalization

415
00:27:37,412 --> 00:27:41,412
แต่คราวนี้ ขั้นตอนที่ 1 เราจะ

416
00:27:41,416 --> 00:27:45,416
ตัดข้อมูลที่ซ้ำซ้อนกันออก วิธีการง่ายมากค่ะ

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

418
00:27:49,418 --> 00:27:53,418
ดูตัวอย่างนะคะ วิธี

419
00:27:53,421 --> 00:27:57,421
การทำ 1 NF ง่ายมากค่ะ ถ้า

420
00:27:57,431 --> 00:28:01,429
ข้อมูลคนไหนเป็นกลุ่มนี่ค่ะ คนที่ 1 ลงวิชา... ลงทะเบียนเรียน 3 วิชาใช่ไหมคะ

421
00:28:01,429 --> 00:28:05,429
คนที่ 2 มี 2 วิชา สามารถทำ

422
00:28:05,430 --> 00:28:09,430
ในรูปแบบ 1NF ก็คือเอามากระจายออกมาค่ะ กระจายข้อมูล

423
00:28:09,433 --> 00:28:13,433
พวกนี้ออกมา กระจายออกเห็นไหมคะ กระจายออก

424
00:28:13,434 --> 00:28:17,434
1NF ง่ายมากนะคะ

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

426
00:28:21,437 --> 00:28:25,437
ทำซ้ำลงมานะคะ ทำซ้ำลงมา

427
00:28:25,438 --> 00:28:29,438
ถามว่า อาจารย์คะ ทำไม

428
00:28:29,442 --> 00:28:33,442
มัน... แล้วทำไม 001 มันซ้ำกันได้ล่ะ โน่นนี่นั่นโน่น

429
00:28:33,445 --> 00:28:37,445
แต่รหัสวิชาเขาไม่ซ้ำกัน

430
00:28:37,450 --> 00:28:41,450
เห็นไหมคะ 1 NF นี่ ง่ายมากค่ะ

431
00:28:41,452 --> 00:28:45,452
ข้อมูลถ้ามันเป็นก้อนแบบนี้ เรากระจายมันออกเป็น

432
00:28:45,456 --> 00:28:49,456
บรรทัด ๆ เลย แค่นั้นเอง อย่าง

433
00:28:49,458 --> 00:28:53,458
น้อยในข้อสอบ ต้องทำ 1NF ให้ได้

434
00:28:53,460 --> 00:28:57,460
เพราะมันง่ายที่สุดแล้วนะคะ

435
00:28:57,466 --> 00:29:01,466
อย่างเช่น ตัวนี้นะคะ ก็กระจายออกมา

436
00:29:01,470 --> 00:29:05,470

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

438
00:29:09,477 --> 00:29:13,477
เรียบร้อยแล้วนะคะ ก็จะมาดูว่า อย่างในตารางนี้น่ะค่ะ มันมีตาราง

439
00:29:13,481 --> 00:29:17,481
เป็นของพนักงานใช่ไหมคะ

440
00:29:17,485 --> 00:29:21,485
เขาจะมีคีย์หลัก 1 ตัวแล้ว แต่ว่ามันยังมี

441
00:29:21,489 --> 00:29:25,489
ตัวนี้ค่ะ ตัวที่  1 ตัวที่ 2

442
00:29:25,493 --> 00:29:29,493
ที่มีคุณสมบัติเป็นคีย์หลักได้

443
00:29:29,496 --> 00:29:33,496
เราต้องแยกมันออก

444
00:29:33,497 --> 00:29:37,497
นะคะ กระบวนการ

445
00:29:37,502 --> 00:29:41,502
นะคะ ดูก่อนว่า นี่ ตารางเมื่อกี้

446
00:29:41,506 --> 00:29:45,506
นะคะ สิ่งที่ขึ้นตรงกับคีย์หลักตัวนี้นะคะ ก็จะเป็นตัวที่ 1 ตัวที่ 2

447
00:29:45,511 --> 00:29:49,511
ตัวที่ 3 สังเกตแล้วว่าคีย์หลัก

448
00:29:49,515 --> 00:29:53,515
มีตัวเดียว แต่ข้อมูลมีเยอะมากนะคะ เราแยกออกมาได้

449
00:29:53,517 --> 00:29:57,517
อันแรกเลย ก็จะมีรหัส

450
00:29:57,520 --> 00:30:01,520
โพรเจกต์นะคะ แล้วก็ชื่อโพรเจกต์ ใครเป็นผู้จัดการ เงินเดือน

451
00:30:01,525 --> 00:30:05,525
เท่าไร

452
00:30:05,529 --> 00:30:09,529
งบประมาณเท่าไรนะคะ อันนี้คือมันจะเชื่อมโยงกับข้อมูลที่เป็นคีย์หลัก

453
00:30:09,532 --> 00:30:13,532
ก็คือโพรเจกต์โค้ด ตัวนี้นะคะ

454
00:30:13,534 --> 00:30:17,534
ส่วนตัวนี้ เป็น

455
00:30:17,539 --> 00:30:21,539
คีย์คู่แข่ง 2 ตัว

456
00:30:21,545 --> 00:30:25,545
นะคะ 2 ตัวนี่ มันสามารถทำหน้าที่เป็นคีย์หลักให้

457
00:30:25,551 --> 00:30:29,551
กับอย่างตัวนี้นะคะ มันจะเป็นคีย์หลัก

458
00:30:29,554 --> 00:30:33,554
ให้กับชื่อของพนักงาน อย่างตัวนี้

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

460
00:30:37,562 --> 00:30:41,562
นะคะ ถามว่ามันขึ้นตรงกับ Project Code ไหม

461
00:30:41,568 --> 00:30:45,568
ไม่นะคะ

462
00:30:45,570 --> 00:30:49,570
เพราะฉะนั้น การทำขั้นตอน

463
00:30:49,573 --> 00:30:53,573
ต่อมานะคะ 2NF ขั้นตอนที่ 1

464
00:30:53,576 --> 00:30:57,576
เราจะต้องทำ 1NF มาเรียบร้อยแล้ว ซึ่งง่ายมาก

465
00:30:57,580 --> 00:31:01,580
นะคะ แล้วก็ต้องมาตัดของการขึ้นบางส่วน

466
00:31:01,586 --> 00:31:05,586
ออกนะคะ ก็คือการกำจัด Attribute ที่

467
00:31:05,590 --> 00:31:09,590
ไม่ขึ้นกับคีย์หลักของตารางนั้น ๆ นั่นเอง

468
00:31:09,594 --> 00:31:13,594
กำจัดออกนะคะ

469
00:31:13,596 --> 00:31:17,596
อย่างเช่น ตัวนี้นะคะ การขึ้นต่อกัน

470
00:31:17,599 --> 00:31:21,599
บางส่วน จะเห็นได้ว่ารหัสวิชากับชื่อวิชา

471
00:31:21,604 --> 00:31:25,604
มันไม่ขึ้นตรงกับรหัสนักศึกษาใช่ไหมคะ อันนี้จำได้นะ

472
00:31:25,605 --> 00:31:29,605
รูปเดิมนะคะ รูปเดิม

473
00:31:29,608 --> 00:31:33,608
วิธีกำจัดปัญหา

474
00:31:33,617 --> 00:31:37,617
เราก็ดึงสิ่งที่มันเป็นปัญหาค่ะ สิ่งที่มันไม่ขึ้นตรงกับคีย์หลักตัวนั้น

475
00:31:37,621 --> 00:31:41,621
ไปสร้างตารางใหม่ สร้างตารางเพิ่ม

476
00:31:41,625 --> 00:31:45,625
นะคะ เอาสิ่งที่เป็นปัญหาออกมา ไปใส่ตารางใหม่

477
00:31:45,633 --> 00:31:49,633
กำหนดคีย์หลักใหม่นะคะ

478
00:31:49,636 --> 00:31:53,636
ในตารางเดิมนะคะ เราก็เอาคีย์หลักของตารางใหม่

479
00:31:53,641 --> 00:31:57,641
ไปใส่ แค่นั้นเองนะคะ

480
00:31:57,646 --> 00:32:01,646
วิธีการ ก็คือเหมือนรูปนี้นะคะ

481
00:32:01,649 --> 00:32:05,649
สิ่งที่เป็นปัญหาที่อาจารย์ยกตัวอย่าง

482
00:32:05,653 --> 00:32:09,653
คือ รหัสวิชากับชื่อวิชานะคะ เพราะรหัสวิชามันไม่ได้

483
00:32:09,658 --> 00:32:13,658
ขึ้นตรงกับรหัสนักศึกษา

484
00:32:13,661 --> 00:32:17,661
นะคะ เพราะฉะนั้น ไอ้ 2 ตัวนี้ คือ สิ่ง

485
00:32:17,665 --> 00:32:21,665
ที่เป็นปัญหานะคะ วิธีการแก้ปัญหา คือ

486
00:32:21,669 --> 00:32:25,669
เราสร้างตารางผลการเรียนใหม่ สร้างตารางวิชาใหม่

487
00:32:25,671 --> 00:32:29,671
นี่ เห็นไหมคะ ในตารางใหม่ เราจะตัดชื่อวิชาออก

488
00:32:29,674 --> 00:32:33,674
แต่ต้องเหลือ

489
00:32:33,679 --> 00:32:37,679
รหัสวิชาไว้ เพื่อให้ไปเชื่อมโยงว่า

490
00:32:37,683 --> 00:32:41,683
รหัสวิชานี้ มันชื่อวิชาอะไร จากอีกตารางหนึ่ง

491
00:32:41,684 --> 00:32:45,684
แค่นั้นเองนะคะ

492
00:32:45,688 --> 00:32:49,688
โอเคค่ะ

493
00:32:49,691 --> 00:32:53,691
อันนี้เป็นตัวอย่างของ

494
00:32:53,693 --> 00:32:57,693
การปรับบรรทัดฐาน ในรูปแบบของ 2NF นะคะ แต่เดี๋ยวอันนี้

495
00:32:57,697 --> 00:33:01,697
จะ

496
00:33:01,705 --> 00:33:05,705
ให้ทำเป็นการบ้าน เดี๋ยวค่อยย้อนกลับมาแล้วกันนะคะ เดี๋ยวค่อยย้อนมาสั่ง

497
00:33:05,709 --> 00:33:09,709
อันนี้เป็น 1NF นะคะ

498
00:33:09,713 --> 00:33:13,713
อันนี้ก็แก้แล้ว ตารางเมื่อกี้นะคะ ต่อมา

499
00:33:13,715 --> 00:33:17,715
ขั้นตอนสุดท้ายนะคะ 3NF

500
00:33:17,721 --> 00:33:21,721
นะคะ โดยความสัมพันธ์

501
00:33:21,723 --> 00:33:25,723
นะคะ ก่อนที่จะทำเป็น 3NF ได้ จะต้องทำเป็น 2NF

502
00:33:25,727 --> 00:33:29,727
มาก่อน หลักของการทำขั้นตอนที่ 3 คือ

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

504
00:33:33,737 --> 00:33:37,737
นะคะ เช่น ไม่ใช่คีย์หลักแต่ไปมี

505
00:33:37,742 --> 00:33:41,742
ผลกับคอลัมน์อื่น ไม่ได้นะคะ

506
00:33:41,746 --> 00:33:45,746
ไม่ได้ วิธีการแก้ปัญหา เช่นเดิมค่ะ

507
00:33:45,750 --> 00:33:49,750
สร้างตารางใหม่ขึ้นมาแก้ปัญหานั้น ๆ

508
00:33:49,755 --> 00:33:53,755
นะคะ อย่างเช่น

509
00:33:53,758 --> 00:33:57,758
ในตัวอย่างนะคะ  รหัสพนักงาน

510
00:33:57,762 --> 00:34:01,762
นะคะ ชื่อ สกุล รหัสแผนก ชื่อแผนก เงินเดือน

511
00:34:01,765 --> 00:34:05,765
จะเห็นได้ว่าในตารางนี้ คีย์หลัก คือ รหัสพนักงาน

512
00:34:05,770 --> 00:34:09,770
นะคะ แต่มันมีรหัส

513
00:34:09,774 --> 00:34:13,774
แผนก กับชื่อแผนกติดมาด้วย ซึ่ง

514
00:34:13,779 --> 00:34:17,779
มันไม่ได้เกี่ยวกับรหัสพนักงานเลยนะคะ

515
00:34:17,783 --> 00:34:21,783
วิธีการแก้ปัญหา ก็คือเอารหัส

516
00:34:21,787 --> 00:34:25,787
แผนกกับชื่อแผนกไปสร้างตารางใหม่

517
00:34:25,792 --> 00:34:29,792

518
00:34:29,795 --> 00:34:33,795
แต่ต้องยังคงรหัสแผนกไว้ในตารางเดิมนะคะ

519
00:34:33,800 --> 00:34:37,800
เพื่อให้มันเชื่อมโยงได้ว่า ไอ้

520
00:34:37,802 --> 00:34:41,802
รหัส  A001 นี่คือแผนกอะไร

521
00:34:41,803 --> 00:34:45,803
นะคะ อันนี้คือการแก้ปัญหา ไม่ใช่คีย์หลัก

522
00:34:45,805 --> 00:34:49,805
แต่ไปส่งผลกับคอมลัมน์อื่นในตารางนะคะ

523
00:34:49,806 --> 00:34:53,806
อันนี้คือ 3 NF จริง ๆ แล้ว

524
00:34:53,809 --> 00:34:57,809
อยากให้ลองทำในห้องมากกว่า แต่ด้วยสัปดาห์นี้มันมีข้อกำจัดนะ ก็

525
00:34:57,813 --> 00:35:01,813
ไม่เป็นไรนะคะ

526
00:35:01,815 --> 00:35:05,815
อันนี้เป็นตัวอย่าง

527
00:35:05,820 --> 00:35:09,820
นะคะ สรุปนะคะ

528
00:35:09,821 --> 00:35:13,821
วิธีการทำ Normalization หรือว่าการปรับบรรทัดฐานนะคะ

529
00:35:13,823 --> 00:35:17,823
1 NF ก็คือ ทุก ๆ  Attribute นะคะ ก็คือทุก ๆ คอลัมน์

530
00:35:17,826 --> 00:35:21,826
ในแต่ละแถว จะต้องมีค่าของข้อมูลเพียงค่าเดียวเท่านั้น

531
00:35:21,831 --> 00:35:25,831
นะคะ อย่างเช่น เหมือนเวลาเรากรอกเบอรโทรศัพท์

532
00:35:25,833 --> 00:35:29,833
เรามีโทรศัพท์ 3 เบอร์ก็จริง แต่เราจะกรอกได้แค่เบอร์เดียว

533
00:35:29,834 --> 00:35:33,834
นะคะ ถ้าอยากใส่เบอร์ที่ 2 ที่ 3 ก็ต้อง

534
00:35:33,837 --> 00:35:37,837
เพิ่มข้อมูลแถวใหม่ขึ้นมานะคะ

535
00:35:37,842 --> 00:35:41,842
ต่อมา

536
00:35:41,846 --> 00:35:45,846
2NF นะคะ ก็ ปัญหา ก็คือถ้า

537
00:35:45,851 --> 00:35:49,851
มีข้อมูลนะคะ ข้อมูลในทุกตัวในตารางนั้น จะต้องขึ้นก

538
00:35:49,853 --> 00:35:53,853
ับคีย์หลักของตารางตัวเดียวเท่านั้นนะคะ ข้อที่ 3 ถ้า

539
00:35:53,857 --> 00:35:57,857

540
00:35:57,861 --> 00:36:01,861
คอลัมน์ไหนที่ไม่ใช่คีย์หลัก

541
00:36:01,865 --> 00:36:05,865
นะคะ จะมาส่งผลกับคอลัมน์อื่นในตาราง

542
00:36:05,870 --> 00:36:09,870
ไม่ได้นะคะ เพราะฉะนั้น ไอ้ตาราง ข้อ 1 นี่ คือ

543
00:36:09,873 --> 00:36:13,873
แค่กระจายตาราง อันที่ 2 อันที่ 3 ถ้ามีปัญญาปุ๊บ

544
00:36:13,875 --> 00:36:17,875
เราต้องสร้างตารางใหม่

545
00:36:17,879 --> 00:36:21,879
นะคะ

546
00:36:21,881 --> 00:36:25,881
การบ้าน เอาอย่างนี้ดีกว่านะคะ

547
00:36:25,885 --> 00:36:29,885
อาจารย์จะให้ทำ น่าจะส่งวันนี้

548
00:36:29,889 --> 00:36:33,889
เอาแค่ข้อเดียว

549
00:36:33,892 --> 00:36:37,892
นะคะ ข้อเดียวพอ เพราะว่าจริง ๆ

550
00:36:37,895 --> 00:36:41,895
อยากให้ทำในห้อง เดี๋ยวสัปดาห์หน้าให้ทำในห้อง

551
00:36:41,900 --> 00:36:45,900
นะค ะ แต่อันนี้จะให้ลองทำดูก่อน ว่าที่เรียนไปวันนี้เข้าใจไหมนะคะ ถ้าทำเสร็จแล้ว

552
00:36:45,904 --> 00:36:49,904
ก็ค่อยเอามาส่งที่ตู้ส่งงานอาจารย์ เอาเฉพาะข้อนี้นะ

553
00:36:49,908 --> 00:36:53,908
ข้อเดียว

554
00:36:53,910 --> 00:36:57,910
ข้อเดียวพอ วันนี้ข้อเดียวพอนะคะ ส่งในเวลานี่ล่ะ

555
00:36:57,914 --> 00:37:01,914
ให้ลองทำดูว่าเข้าใจไหม ข้อนี้ทำ

556
00:37:01,917 --> 00:37:05,917
1NF ทำ 1NF ทำอย่างไร ง่ายมาก ๆ เลย

557
00:37:05,922 --> 00:37:09,922
นะคะ นี่ อาจารย์เว้นช่องว่างให้แล้ว

558
00:37:09,925 --> 00:37:13,925
เติมมานะคะ 2 NF คุณ

559
00:37:13,930 --> 00:37:17,930
เห็นไหมว่า นี่ มันมีรหัสวิชานี่

560
00:37:17,933 --> 00:37:21,933
ชื่อวิชานี่ ต้องทำอย่างไรกับมัน

561
00:37:21,937 --> 00:37:25,937
นะคะ แยกมันออกมาสิ

562
00:37:25,941 --> 00:37:29,941
แยกอย่างไรนะคะ เอาข้อเดียวก่อน แล้วลองส่งมาให้อาจารย์ดู

563
00:37:29,943 --> 00:37:33,943
ก่อน ว่าเข้าใจมากน้อยขนาดไหนนะคะ จริง ๆ

564
00:37:33,944 --> 00:37:37,944
อยากให้เรียนในห้องมากกว่า แต่วันนี้ก็เอาประมาณนี้

565
00:37:37,948 --> 00:37:41,948
ก่อนแล้วกันนะคะ ให้ทุกคนหายดี

566
00:37:41,951 --> 00:37:45,951
กลับมา อาทิตย์หน้าค่อยเดินดูในห้องดีกว่านะคะ

567
00:37:45,955 --> 00:37:49,955
วันนี้ก็จะประมาณนี้นะคะ

568
00:37:49,959 --> 00:37:53,959
เดี๋ยวเวลาที่เหลือให้ทำข้อนี้แล้วมาส่งวันนี้เลย ยิ่งดี

569
00:37:53,961 --> 00:37:57,961
นะคะ เวลาที่เหลือทำใส่กระดาษมาส่งอาจารย์

570
00:37:57,965 --> 00:38:01,965
แล้วกันนะ ก็ประมาณนี้ค่ะ เวลาที่เหลือทำให้เสร็จภายในวันนี้

571
00:38:01,969 --> 00:38:05,969
นะคะ ข้อเดียวเองนะคะ ข้อเดียว

572
00:38:05,973 --> 00:38:09,973
มีใครสงสัยไหมคะ ปุ๋ยสงสัย

573
00:38:09,976 --> 00:38:13,976
ไหม ปุ๋ยเปิดไมค์ได้เหลือเปล่า

574
00:38:13,977 --> 00:38:17,977
// ไม่มีค่ะ อาจารย์ เดี๋ยวถ้าอย่างไร เดี๋ยว

575
00:38:17,981 --> 00:38:21,981
ให้อุบลไปส่ง หรืออย่างไรคะ อุบล

576
00:38:21,985 --> 00:38:25,985
กลับหอแล้วน่ะค่ะ (อาจารย์เกวลี) อ๋อ ส่วนมากอยู่ไหนกัน

577
00:38:25,989 --> 00:38:29,989
อยู่หอหรืออยู่ DSS

578
00:38:29,992 --> 00:38:33,992
// ตอนนี้เหลืออยู่ DSS ประมาณ 4 คนค่ะ (อาจารย์เกวลี)

579
00:38:33,995 --> 00:38:37,995
ก็รวม ๆ เท่าไรได้ก็เอามา (นักศึกษาหญิง) ค่ะ ๆ ๆ

580
00:38:37,999 --> 00:38:41,999
ๆ (อาจารย์เกวลี) ก็ให้เด็กทำนั่นแหละ

581
00:38:42,003 --> 00:38:46,003
โอเค Thank you

582
00:38:46,004 --> 00:38:50,004
(อาจารย์เกวลี) ค่ะ วันนี้ก็ประมาณนี้ค่ะ ขอบคุณทุกคนมากนะคะ ที่

583
00:38:50,006 --> 00:38:54,006
ยังตั้งใจเรียนกันอยู่ ถ้าใครทำเสร็จ

584
00:38:54,007 --> 00:38:58,007
ก็ทำให้เสร็จแล้วฝากเพื่อนมากส่ง รวมกันมาส่งก็ได้นะคะ

585
00:38:58,009 --> 00:39:02,009
ถ้าใครอยู่หอก็มาทำอยู่ที่  DSS ก็ได้

586
00:39:02,015 --> 00:39:06,015
มาส่งที่โต๊ะอาจารย์ก็ได้นะคะ

587
00:39:06,018 --> 00:39:10,018
โอเคค่ะ วันนี้ก็ประมาณนี้ค่ะ ขอบคุณล่ามด้วยนะคะ

588
00:39:10,022 --> 00:39:14,022
ค่ะ ขอบคุณค่ะ

589
00:39:14,025 --> 00:39:18,025

590
00:39:18,028 --> 00:39:22,028

591
00:39:22,033 --> 00:39:26,033

592
00:39:26,037 --> 00:39:30,037

593
00:39:30,043 --> 00:39:34,043

594
00:39:34,048 --> 00:39:38,048
ปุ๋ย วันนี้ครบนะ

595
00:39:38,051 --> 00:39:42,051
ปุ๋ยไปแล้ว โอเค

596
00:39:42,055 --> 00:39:46,055

597
00:39:46,060 --> 00:39:50,060

598
00:39:50,065 --> 00:39:54,065

599
00:39:54,071 --> 00:39:58,071

600
00:39:58,076 --> 00:40:02,076

601
00:40:02,081 --> 00:40:06,081

602
00:40:06,085 --> 00:40:10,085


