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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

31
00:02:00,129 --> 00:02:04,129

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

33
00:02:08,136 --> 00:02:12,136
ของการทำ Nomanlization

34
00:02:12,141 --> 00:02:16,141
หรือการปรับบรรทัดฐานนะคะ แล้วก็จะเกี่ยวกับฟังก์ชันการขึ้นต่อกัน แล้วก็หลักการขึ้น normal

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

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

37
00:02:24,151 --> 00:02:28,151
โดยการปรับมาตรฐานหรือ

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

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

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

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

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

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

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

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

46
00:03:00,180 --> 00:03:04,180
ยกว่า 1NFะคะ 2NF 3NF นะคะ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

63
00:04:08,229 --> 00:04:12,229
คีย์หลักที่มันทับซ้อนกันนะคะ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

86
00:05:40,297 --> 00:05:44,297
ดียวนะคะ เก็บอยู่ที่เดียว แต่สามารถเรียนใช้งานหลาย ๆ

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

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

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

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

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

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

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

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

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

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

97
00:06:24,322 --> 00:06:28,322
พร้อม ๆ กัน ถ้าต้องการข้อมูลนะคะ

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

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

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

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

102
00:06:44,339 --> 00:06:48,339

103
00:06:48,342 --> 00:06:52,342

104
00:06:52,347 --> 00:06:56,347

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

143
00:09:28,470 --> 00:09:32,470
ที่อยู่ อยู่ในตารางเดียวกัน

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

188
00:12:28,627 --> 00:12:32,627
ไม่ดี

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

299
00:19:53,011 --> 00:19:57,011
กับรหัสวิชานะคะ

300
00:19:57,016 --> 00:20:01,016
ถามว่าถ้า

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

327
00:21:45,115 --> 00:21:49,115
ที่เกิดขึ้นก็ต่อเมื่อมี Attribute หรือว่าคอลัมน์อื่น ๆ ที่

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

371
00:24:41,259 --> 00:24:45,259
นะคะ อันนี้ก็คือ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

402
00:26:45,342 --> 00:26:49,342
ดูก่อนว่าข้อมูลมันซ้ำซ้อนกันไหม ขั้นที่ 2 ก็คือ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

450
00:29:57,507 --> 00:30:01,507
Project นะคะ ชื่อ Project ใครเป็นผู้จัดการ เงินเดือน

451
00:30:01,511 --> 00:30:05,511
เท่าไร ไม่ใช่สิ

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

453
00:30:09,516 --> 00:30:13,516
ก็ คือ Project Code ตัวนี้นะคะ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

574
00:38:13,923 --> 00:38:17,923
(นักศึกษาหญิง)  ไม่มีค่ะอาจารย์ เดี๋ยวถ้าอย่างไร เดี๋ยว

575
00:38:17,927 --> 00:38:21,927
ให้อุบลไปส่ง อุบล

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

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

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

579
00:38:33,943 --> 00:38:37,943
ก็รวม ๆ เท่าไรได้ก็เอามา (เจ้าหน้าที่) ค่ะ ๆ ๆ

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

581
00:38:41,951 --> 00:38:45,951
โอเค Thankyou

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

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

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

585
00:38:57,963 --> 00:39:01,963
ถ้าใครอยู่หอก็มาส่งที่  DSS ก็ได้

586
00:39:01,970 --> 00:39:05,970
หรือว่าทำเสร็จแล้วมาส่งที่โต๊ะอาจารย์ก็ได้นะคะ

587
00:39:05,970 --> 00:39:09,970
โอเคค่ะ วันนี้ก็ประมาณนี้ค่ะ ขอบคุณล่ามได้นะคะ

588
00:39:09,972 --> 00:39:13,972
ค่ะ ขอบคุณค่ะ

589
00:39:13,975 --> 00:39:17,975

590
00:39:17,979 --> 00:39:21,979

591
00:39:21,984 --> 00:39:25,984

592
00:39:25,987 --> 00:39:29,987

593
00:39:29,994 --> 00:39:33,994
ปุ๋ย

594
00:39:33,999 --> 00:39:37,999
วันนี้ครบนะ

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

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

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

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

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


