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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

46
00:03:00,176 --> 00:03:04,176
นะคะ 2NF 3NF นะคะ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

213
00:14:12,792 --> 00:14:16,792
นะคะ

214
00:14:16,793 --> 00:14:20,793
การขึ้นต่อกัน เดี๋ยว

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

231
00:15:24,855 --> 00:15:28,855

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

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

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

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

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

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

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

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

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

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

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

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

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

245
00:16:20,901 --> 00:16:24,901
ู่นะคะ

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

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

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

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

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

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

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

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

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

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

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

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

258
00:17:12,956 --> 00:17:16,956

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

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

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

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

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

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

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

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

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

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

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

270
00:18:01,003 --> 00:18:05,003

271
00:18:05,005 --> 00:18:09,005
แต่

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

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

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

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

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

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

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

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

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

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

282
00:18:49,040 --> 00:18:53,040
นะคะ จะต่อมา

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

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

285
00:19:01,054 --> 00:19:05,054
คีย์ผสมนะคะ อาจจะเป็นตารางอื่น

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

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

288
00:19:13,069 --> 00:19:17,069
นะคะ

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

290
00:19:21,078 --> 00:19:25,078
รหัสวิชา มีเกรดแล้วก็มีการบอกด้วยว่า

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

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

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

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

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

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

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

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

299
00:19:57,119 --> 00:20:01,119
ถามว่าถ้า

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

323
00:21:33,201 --> 00:21:37,201

324
00:21:37,205 --> 00:21:41,205
อันนี้ตัวอย่างนะคะ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

350
00:23:21,312 --> 00:23:25,312
นี้ ออก

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

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

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

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

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

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

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

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

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

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

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

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

363
00:24:13,356 --> 00:24:17,356
122

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

435
00:29:01,613 --> 00:29:05,613

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

460
00:30:41,701 --> 00:30:45,701
ไม่นะคะ

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

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

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

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

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

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

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

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

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

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

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

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

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

474
00:31:37,744 --> 00:31:41,744
ตัวนั้น ไปสร้างตารางใหม่ สร้างตารางเพิ่ม

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

491
00:32:45,800 --> 00:32:49,800
โอเคค่ะ

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

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

494
00:32:57,810 --> 00:33:01,810
จะ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

516
00:34:25,882 --> 00:34:29,882

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

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

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

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

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

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

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

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

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

526
00:35:05,911 --> 00:35:09,911
นะคะ สรุปนะคะ

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

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

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

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

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

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

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

534
00:35:37,940 --> 00:35:41,940
ต่อมา

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

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

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

538
00:35:53,954 --> 00:35:57,954

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

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

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

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

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

544
00:36:17,978 --> 00:36:21,978
นะคะ

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

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

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

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

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

550
00:36:41,997 --> 00:36:45,997
ที่เรียนไปวันนี้เข้าใจไหมนะคะ ถ้าทำเสร็จแล้ว

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

574
00:38:18,070 --> 00:38:22,070
ให้อุบลไปส่ง อุบล

575
00:38:22,075 --> 00:38:26,075
กลับหอแล้วน่ะค่ะ (อาจารย์เกวลี) อ๋อไม่ ๆ  ส่วนมากอยู่ไหนกัน

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

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

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

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

580
00:38:42,093 --> 00:38:46,093
โอเค Thank you

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

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

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

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

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

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

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

588
00:39:28,154 --> 00:39:29,122
[สิ้นสุดการถอดความ]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

603
00:40:10,176 --> 00:40:14,176

604
00:40:14,181 --> 00:40:18,181

605
00:40:18,185 --> 00:40:22,185

606
00:40:26,192 --> 00:40:30,192

607
00:40:30,195 --> 00:40:34,195

608
00:40:34,198 --> 00:40:38,198

609
00:40:38,203 --> 00:40:42,203

610
00:40:42,207 --> 00:40:46,207

611
00:40:46,211 --> 00:40:50,211

612
00:40:50,213 --> 00:40:54,213

613
00:40:54,217 --> 00:40:58,217

614
00:40:58,223 --> 00:41:02,223

615
00:41:02,226 --> 00:41:06,226

616
00:41:06,229 --> 00:41:10,229

617
00:41:10,232 --> 00:41:14,232

618
00:41:14,235 --> 00:41:18,235

619
00:41:18,239 --> 00:41:22,239

620
00:41:22,247 --> 00:41:26,247

621
00:41:26,251 --> 00:41:30,251

622
00:41:30,254 --> 00:41:34,254

623
00:41:34,260 --> 00:41:38,260

624
00:41:38,265 --> 00:41:42,265

625
00:41:42,272 --> 00:41:46,272

626
00:41:46,277 --> 00:41:50,277

627
00:41:50,279 --> 00:41:54,279

628
00:41:54,285 --> 00:41:58,285

629
00:41:58,290 --> 00:42:02,290

630
00:42:02,296 --> 00:42:06,296

631
00:42:06,302 --> 00:42:10,302

632
00:42:10,305 --> 00:42:14,305

633
00:42:14,311 --> 00:42:18,311

634
00:42:18,321 --> 00:42:22,321

635
00:42:22,326 --> 00:42:26,326

636
00:42:26,333 --> 00:42:30,333

637
00:42:30,335 --> 00:42:34,335

638
00:42:34,340 --> 00:42:38,340
-

