﻿1
00:00:00,000 --> 00:00:03,994

2
00:00:03,994 --> 00:00:07,994

3
00:00:07,998 --> 00:00:11,998

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

31
00:02:00,131 --> 00:02:04,131
normali

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

50
00:03:16,204 --> 00:03:20,204
นะคะ

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

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

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

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

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

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

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

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

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

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

61
00:04:00,247 --> 00:04:04,247
แบบที่ที่เป็นบรรทัดฐาน

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

250
00:16:36,930 --> 00:16:40,930
ที่มีขีดเส้นใต้นะคะ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

270
00:17:57,014 --> 00:18:01,014
บัตรประชาชน

271
00:18:07,514 --> 00:18:17,206

272
00:18:01,018 --> 00:18:05,018

273
00:18:05,021 --> 00:18:09,021
แต่

274
00:18:09,022 --> 00:18:13,022
บางตารางนะคะ ก็อาจจะเป็นการ

275
00:18:13,024 --> 00:18:17,024
รวมตัวกันของคีย์หลักมากกว่า 1 คีย์หลักนะคะ

276
00:18:17,028 --> 00:18:21,028
มารวมกัน เช่น นักศึกษา

277
00:18:21,033 --> 00:18:25,033
คนนี้นะคะ รหัสนักศึกษานี้

278
00:18:25,036 --> 00:18:29,036
ลงทะเบียนวิชานี้นะคะ ได้เกรด

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

280
00:18:33,043 --> 00:18:37,043
กศึกษาซ้ำกันได้ไหม ไม่ซ้ำนะคะ

281
00:18:37,046 --> 00:18:41,046
รหัสวิชาซ้ำกันได้ไหม ไม่ซ้ำนะคะ เหมือนชื่อ

282
00:18:41,052 --> 00:18:45,052
วิชาอาจารย์ก็รหัสหนึ่ง

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

284
00:18:49,058 --> 00:18:53,058
นะคะ ต่อมา

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

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

287
00:19:01,070 --> 00:19:05,070
คีย์ผสมนะคะ อาจจะเป็นขึ้นตรงกับตารางอื่น

288
00:19:05,077 --> 00:19:09,077
อาจจะไม่ใช่คีย์หลักก็ได้แต่มันมี

289
00:19:09,081 --> 00:19:13,081
ความหมายกับอีกคอลัมน์หนึ่งนะคะ เดี๋ยวยกตัวอย่างเลยดีกว่า

290
00:19:13,086 --> 00:19:17,086
นะคะ

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

292
00:19:21,094 --> 00:19:25,094
วิชา มีเกรดแล้วก็มีการบอกด้วยว่า

293
00:19:25,097 --> 00:19:29,097
รหัสวิชานี้เป็นชื่อวิชาอะไร

294
00:19:29,102 --> 00:19:33,102
นะคะ มันจะเป็น

295
00:19:33,106 --> 00:19:37,106
การเกิดขึ้น เมื่อคีย์หลักประกอบกันด้วยคอลัมน์หรือว่า Attribute หลาย ๆ Attribute รวมกัน

296
00:19:37,106 --> 00:19:41,106
โดยบางส่วนของคีย์หลัก

297
00:19:41,110 --> 00:19:45,110
สามารถไประบุค่า Attribute อื่น

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

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

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

301
00:19:57,127 --> 00:20:01,127
ถามว่าถ้า

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

325
00:21:33,226 --> 00:21:37,226

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

350
00:23:13,318 --> 00:23:17,318
เพราะฉะนั้น ถ้าสมมติว่าจะให้รถประจำตำแหน่ง

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

352
00:23:21,332 --> 00:23:25,332
นี้ ออก

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

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

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

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

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

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

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

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

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

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

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

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

365
00:24:13,382 --> 00:24:17,382
122

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

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

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

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

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

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

372
00:24:41,406 --> 00:24:45,406
วิชามาก ๆ นะคะ อันนี้ก็คือ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

432
00:28:41,626 --> 00:28:45,626
ข้อมูลถ้ามันเป็นก้อนอาจารย์นี้ เรากระจายมันออกเป็น

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

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

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

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

437
00:29:01,640 --> 00:29:05,640

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

462
00:30:41,732 --> 00:30:45,732
ไม่นะคะ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

493
00:32:45,831 --> 00:32:49,831
โอเคค่ะ

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

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

496
00:32:57,835 --> 00:33:01,835
จะ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

518
00:34:25,903 --> 00:34:29,903

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

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

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

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

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

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

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

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

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

528
00:35:05,940 --> 00:35:09,940
นะคะ สรุปนะคะ

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

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

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

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

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

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

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

536
00:35:37,970 --> 00:35:41,967
ต่อมา

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

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

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

540
00:35:53,974 --> 00:35:57,974

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

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

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

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

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

546
00:36:17,994 --> 00:36:21,994
นะคะ

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

548
00:36:26,002 --> 00:36:30,002
อาจารย์จะให้ทำน่าจะส่งวันนี้

549
00:36:30,006 --> 00:36:34,006
เอาแค่ข้อเดียว

550
00:36:34,010 --> 00:36:38,010
นะคะ ข้อเดียวพอ เพราะว่าจริง ๆ

551
00:36:38,014 --> 00:36:42,014
อยากให้ทำในห้อง เดี๋ยวสัปดาห์หน้าให้ทำในห้อง

552
00:36:42,018 --> 00:36:46,018
แต่ให้ทำก่อนว่าที่เรียนไปวันนี้เข้าใจไหมนะคะ ถ้าทำเสร็จแล้ว

553
00:36:46,023 --> 00:36:50,023
ก็ค่อยเอามาส่งที่ตู้ส่งงานอาจารย์ เอาเฉพาะข้อนี้นะ

554
00:36:50,027 --> 00:36:54,027
ข้อเดียว

555
00:36:54,031 --> 00:36:58,031
ข้อเดียวพอ วันนี้ข้อเดียวพอนะคะ ส่งในเวลานี่ล่ะ

556
00:36:58,036 --> 00:37:02,036
นะคะ ให้ลองทำดูว่าเข้าใจไหม ข้อนี้ทำ

557
00:37:02,038 --> 00:37:06,038
1NF ทำ 1NF ทำอย่างไร ง่ายมาก ๆ เลย

558
00:37:06,043 --> 00:37:10,043
นะคะ อาจารย์เว้นช่องว่างให้แล้ว

559
00:37:10,046 --> 00:37:14,046
เติมมานะคะ 2NF คุณ

560
00:37:14,047 --> 00:37:18,047
เห็นไหมว่า นี่มันมีรหัสวิชานี่

561
00:37:18,050 --> 00:37:22,050
ชื่อวิชานี่ต้องทำอย่างไรกับมัน

562
00:37:22,054 --> 00:37:26,054
นะคะ แยกมันออกมาสิ

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

564
00:37:30,060 --> 00:37:34,060
เข้าใจมากน้อยขนาดไหนนะคะ จริง ๆ

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

566
00:37:38,065 --> 00:37:42,065
ก่อนแล้วกันนะคะ ให้ทุกคนหายดี

567
00:37:42,070 --> 00:37:46,070
กลับมา อาทิตย์หน้าค่อยเดินดูในห้องดีกว่านะคะ

568
00:37:46,071 --> 00:37:50,071
วันนี้ก็จะประมาณนี้นะคะ

569
00:37:50,075 --> 00:37:54,075
เดี๋ยวเวลาที่เหลือให้ทำข้อนี้แล้วมาส่งวันนี้เลยยิ่งดี

570
00:37:54,076 --> 00:37:58,076
นะคะ เวลาที่เหลือทำใส่กระดาษมาส่งอาจารย์

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

572
00:38:02,086 --> 00:38:06,086
นะคะ ข้อเดียวเองนะคะ ข้อเดียว

573
00:38:06,094 --> 00:38:10,089
มีใครสงสัยไหมคะ ปุ๋ยสงสัย

574
00:38:10,089 --> 00:38:14,089
ไหม ปุ๋ยเปิดไมค์ได้หรือเปล่า

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

576
00:38:18,099 --> 00:38:22,099
ให้อุบลไปส่งหอแล้วน่ะค่ะ อุบล

577
00:38:22,099 --> 00:38:26,099
(อาจารย์เกวลี) อ๋อ ส่วนมากอยู่ไหนกัน

578
00:38:26,103 --> 00:38:30,103
อยู่หอหรืออยู่ DSS

579
00:38:30,108 --> 00:38:34,108
(นักศึกษาหญิง) ตอนนี้เหลืออยู่ DSS ประมาณ 4 คนค่ะ (อาจารย์เกวลี)

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

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

582
00:38:42,118 --> 00:38:46,118
โอเค Thank you

583
00:38:46,128 --> 00:38:50,128
ค่ะ วันนี้ก็ประมาณนี้ค่ะ ขอบคุณทุกคนมากนะคะ ที่

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

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

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

587
00:39:02,144 --> 00:39:06,144
หรือว่าใครเสร็จแล้วมาส่งที่โต๊ะอาจารย์ก็ได้นะคะ

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

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

590
00:39:14,155 --> 00:39:18,155

591
00:39:18,158 --> 00:39:22,158

592
00:39:22,162 --> 00:39:26,162

593
00:39:26,167 --> 00:39:30,167

594
00:39:30,174 --> 00:39:34,174
ปุ๋ย

595
00:39:34,179 --> 00:39:38,179
วันนี้ครบนะ

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

597
00:39:42,189 --> 00:39:46,189

598
00:39:46,191 --> 00:39:50,191

599
00:39:50,195 --> 00:39:54,195

600
00:39:54,199 --> 00:39:58,199

601
00:39:58,202 --> 00:40:02,202

602
00:40:02,206 --> 00:40:06,206

603
00:40:06,213 --> 00:40:10,213

604
00:40:10,217 --> 00:40:14,217


