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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

203
00:13:28,269 --> 00:13:32,269
แน่ ๆ นะคะ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

246
00:16:20,314 --> 00:16:24,314
นะคะ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

279
00:18:32,360 --> 00:18:36,360
ซ้ำกันได้ไหม ไม่ซ้ำนะคะ

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

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

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

283
00:18:48,366 --> 00:18:52,366
ต่อมา

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

303
00:20:08,391 --> 00:20:12,391
เรียนไปนี่ ชื่อวิชาอะไร

304
00:20:12,392 --> 00:20:16,392
นะคะ เหมือนบางคน

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

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

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

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

309
00:20:32,404 --> 00:20:36,404
มี 2 อัน แต่มีคีย์หลัก 1ตัวนี้ แต่

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

311
00:20:40,410 --> 00:20:44,410
ขึ้นต่อกันบางส่วน

312
00:20:44,411 --> 00:20:48,411
นะคะ อย่างเช่นตัวนี้

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

314
00:20:52,413 --> 00:20:56,413
ออก มีแค่รหัสวิชา มีเกรด มีชื่อวิชาดารเขียนโปปรแกรม

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

316
00:21:00,415 --> 00:21:04,415
ไม่รู้นะคะ

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

318
00:21:08,418 --> 00:21:12,418
หรือว่าอาจารย์ลบรหัส

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

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

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

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

323
00:21:28,424 --> 00:21:32,424
การขึ้นต่อกันบางส่วนนะคะ

324
00:21:32,425 --> 00:21:36,425

325
00:21:36,426 --> 00:21:40,426
ตัวอย่างนะคะ

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

327
00:21:44,428 --> 00:21:48,428
ที่เกิดขึ้นก็ต่อเมื่อ มี Attribute อื่น ๆ ที่

328
00:21:48,429 --> 00:21:52,429
ไม่ใช่คีย์หลัก แต่

329
00:21:52,430 --> 00:21:56,430
ไปสามารถขึ้น สามารถระบุค่า

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

331
00:22:00,432 --> 00:22:04,432
ไม่เหมาะสม นะคะ

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

333
00:22:08,434 --> 00:22:12,434
จะระบุค่าอื่นให้คอลัมนือื่นได้ ก็

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

335
00:22:16,436 --> 00:22:20,436
ดูตัวอย่างนะคะ

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

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

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

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

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

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

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

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

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

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

346
00:23:00,450 --> 00:23:04,450
จะรู้เลยว่ารถประจำตำแหน่งคืออะไร แต่เขาไปเช็กเลข

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

348
00:23:08,453 --> 00:23:12,453
คือการออกแบบที่ไม่ดี

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

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

351
00:23:20,458 --> 00:23:24,458
นี้ ออก

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

353
00:23:28,460 --> 00:23:32,460
ที่มีคีย์หลัก

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

355
00:23:36,462 --> 00:23:40,462
นะคะ

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

357
00:23:44,464 --> 00:23:48,464
นะคะ ก็จะเป็นความสัมพันธ์

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

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

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

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

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

363
00:24:08,474 --> 00:24:12,474
ในรหัสนักศึกษาจะได้เห็นได้ว่ามีเลข

364
00:24:12,474 --> 00:24:16,474
122

365
00:24:16,475 --> 00:24:20,475
เป็นรหัสนักศึกษา 122 คืออะไร

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

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

368
00:24:28,478 --> 00:24:32,478
วิชามากกว่า 20 วิชา

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

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

371
00:24:40,483 --> 00:24:44,483
นะคะ อันนี้ก็คือ

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

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

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

375
00:24:56,488 --> 00:25:00,488
รหัสนักศึกษษได้หลายคนเช่นเดียวกัน

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

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

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

379
00:25:12,492 --> 00:25:16,492
แบบหลายค่านะคะ

380
00:25:16,493 --> 00:25:20,493
เพราะฉะนั้น

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

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

383
00:25:28,496 --> 00:25:32,496
โครงสร้างของ ที่มีความซ้ำซ้อนกัน

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

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

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

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

388
00:25:48,503 --> 00:25:52,503
แล้วนะคะ โดย

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

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

391
00:26:00,508 --> 00:26:04,508
ข้อแรกง่ายมาก ๆ

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

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

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

395
00:26:16,513 --> 00:26:20,513
นะคะ ขั้นสุดท้าย

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

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

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

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

400
00:26:36,519 --> 00:26:40,519
ให้นักศึกษาจำ

401
00:26:40,520 --> 00:26:44,520
กระบวนการหลัก ๆ ก็จะมี 3 ข้อนะคะ

402
00:26:44,521 --> 00:26:48,521
ดูก่อน ว่าข้อมูลมันซ้ำซ้อนกันไหม ขั้นที่ 2 ก็ดู

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

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

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

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

407
00:27:04,529 --> 00:27:08,529
นะคะ ทุก ๆ คอลัมน์

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

409
00:27:12,534 --> 00:27:16,534
มีค่าเดียวเท่านั้นนะคะ จะใส่แบบนี้

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

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

412
00:27:24,538 --> 00:27:28,538
1 เทอมนี้คุณลงทะเบียนประมาณ 6-7 วิชา

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

414
00:27:32,543 --> 00:27:36,543
ถ้าเราไม่มีการทำ Normalization

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

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

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

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

419
00:27:52,549 --> 00:27:56,549
การทำ 1 NF ง่ายมากค่ะ ถ้า

420
00:27:56,550 --> 00:28:00,550
คนที่ 1 ลงวิชา... ลงทะเบียนเรียน 3 วิชาใช่ไหมคะ

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

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

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

424
00:28:12,553 --> 00:28:16,553
1NF ง่ายมากนะคะ

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

426
00:28:20,555 --> 00:28:24,555
ทำซ้ำลงมานะคะ ทำซ้ำลงมา

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

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

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

430
00:28:36,560 --> 00:28:40,560
เห็นไหมคะ 1 NF นี่ ง่ายมากค่ะ

431
00:28:40,561 --> 00:28:44,561
ข้อมูลถ้ามันเป็นก้อนอาจารย์นี้ เรากระจายมันออกเป็น

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

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

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

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

436
00:29:00,567 --> 00:29:04,567

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

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

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

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

441
00:29:20,572 --> 00:29:24,572
ตัวนี้ค่ะ ตัวที่  1 ตัวที่ 2

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

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

444
00:29:32,575 --> 00:29:36,575
นะคะ กระบวนการ

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

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

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

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

449
00:29:52,584 --> 00:29:56,584
อันแรกเลย ก็จะมีรรหัส

450
00:29:56,585 --> 00:30:00,585
โพรเจกต์นะคะ ใครเป็นผู้จัดการ เงินเดือน

451
00:30:00,586 --> 00:30:04,586
เท่าไร ไม่ใช่สิ

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

453
00:30:08,588 --> 00:30:12,588
ก้คือโพรเจกต์โค้ดตัวนี้นะคะ

454
00:30:12,589 --> 00:30:16,589
ส่วนตัวนี้ เป็น

455
00:30:16,591 --> 00:30:20,591
คีย์คู่แข่ง 2 ตัว

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

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

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

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

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

461
00:30:40,605 --> 00:30:44,605
ไม่นะคะ

462
00:30:44,606 --> 00:30:48,606
เพราะฉะนั้น การทำขั้นตอน

463
00:30:48,607 --> 00:30:52,607
ต่อมานะคะ 2 NF ขั้นตอนที่ 1

464
00:30:52,608 --> 00:30:56,608
เราจะต้องทำ 1NF มาเรียบร้อยแล้ว ง่ายมาก

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

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

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

468
00:31:08,614 --> 00:31:12,614
กำจัดออกนะคะ

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

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

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

472
00:31:24,619 --> 00:31:28,619
รูปเดิมนะคะ รูปเดิม

473
00:31:28,620 --> 00:31:32,620
วิธีกำจัดปัญหา

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

475
00:31:36,622 --> 00:31:40,622
ตารางใหม่ สร้างตารางเพิ่ม

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

477
00:31:44,628 --> 00:31:48,628
กำหนดคีย์หลักใหม่นะคะ

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

479
00:31:52,630 --> 00:31:56,630
ไปใส่แค่นั้นเองนะคะ

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

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

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

483
00:32:08,636 --> 00:32:12,636
ขึ้นตรงกับรหัสนักศึกษา

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

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

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

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

488
00:32:28,641 --> 00:32:32,641
แต่ต้องเหลือ

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

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

491
00:32:40,645 --> 00:32:44,645
แค่นั้นเองนะคะ

492
00:32:44,646 --> 00:32:48,646
โอเคค่ะ

493
00:32:48,647 --> 00:32:52,647
อันนี้เป็นตัวอย่างของ

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

495
00:32:56,649 --> 00:33:00,649
อันนี้จะ

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

497
00:33:04,655 --> 00:33:08,655
อันนี้เป็น 1NF นะคะ

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

499
00:33:12,657 --> 00:33:16,657
ขั้นตอนสุดท้ายนะคะ 3NF

500
00:33:16,658 --> 00:33:20,658
นะคะ โดยความสัมพันธ์

501
00:33:20,659 --> 00:33:24,659
นะคะ ก่อนที่จะเป็น 3NF ได้จะต้องเป็น 2NF

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

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

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

505
00:33:36,666 --> 00:33:40,666
ผลกับคอลัมนือื่นไม่ได้นะคะ

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

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

508
00:33:48,670 --> 00:33:52,670
นะคะ อย่างเช่น

509
00:33:52,671 --> 00:33:56,671
ในตัวอย่างนะคะ หัสพนักงาน

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

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

512
00:34:04,675 --> 00:34:08,675
นะคะ แต่มันมีรหัส

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

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

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

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

517
00:34:24,682 --> 00:34:28,682

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

519
00:34:32,684 --> 00:34:36,684
เพื่อให้มันเชื่อมโยงได้ ไอ้แผนก

520
00:34:36,685 --> 00:34:40,685
A001 นี่คือแผนกอะไร

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

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

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

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

525
00:34:56,690 --> 00:35:00,690
ไม่เป็นไรนะคะ

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

527
00:35:04,692 --> 00:35:08,692
นะคะ สรุปนะคะ

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

529
00:35:12,694 --> 00:35:16,694
ก็คือ ทุก ๆ  Attribute นะคะ ก็คือทุก ๆ คอลัมน์

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

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

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

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

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

535
00:35:36,701 --> 00:35:40,701
ต่อมา

536
00:35:40,702 --> 00:35:44,702
2NF นะคะ ก็ปัญหา ก็คือถ้า

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

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

539
00:35:52,705 --> 00:35:56,705

540
00:35:56,706 --> 00:36:00,706
ข้อที่ 3 ถ้าคอลัมน์ไหนที่ไม่ใช่คีย์หลัก

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

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

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

544
00:36:12,712 --> 00:36:16,712
เราต้องสร้างตารางใหม่

545
00:36:16,713 --> 00:36:20,713
นะคะ

546
00:36:20,714 --> 00:36:24,714
การบ้าน เอาอย่างนี้ดีกว่านะคะ

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

548
00:36:28,716 --> 00:36:32,716
เอาแค่ข้อเดียว

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

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

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

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

553
00:36:48,721 --> 00:36:52,721
ข้อเดียว

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

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

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

557
00:37:04,726 --> 00:37:08,726
นะคะ อาจารย์เว้นช่องว่างให้แล้ว

558
00:37:08,728 --> 00:37:12,728
เติมมานะคะ 2 NF คุณ

559
00:37:12,729 --> 00:37:16,729
เห็นไหมว่า นี่มันมีรหัสวิชานี่

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

561
00:37:20,731 --> 00:37:24,731
นะคะ แยกมันออกมาสิ

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

563
00:37:28,733 --> 00:37:32,733
เข้าใจมากน้อยขนาดไหนนะคะ จริง ๆ

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

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

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

567
00:37:44,737 --> 00:37:48,737
วันนี้ก็จะประมาณนี้นะคะ

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

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

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

571
00:38:00,740 --> 00:38:04,740
นะคะ ข้อเดียวเองนะคะ ข้อเดียว

572
00:38:04,741 --> 00:38:08,741
มีใครสงสัยไหมคะ ปุ๋ยสงสัย

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

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

575
00:38:16,743 --> 00:38:20,743
ให้อุบลไปส่ง อุบล

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

577
00:38:24,745 --> 00:38:28,745
อยู่หอหรืออยู่ DSS

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

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

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

581
00:38:40,751 --> 00:38:44,751
โอเค Thk you

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

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

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

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

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

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

588
00:39:08,759 --> 00:39:12,759
ค่ะ ขอบคุณค่ะ

589
00:39:12,760 --> 00:39:16,760

590
00:39:16,760 --> 00:39:20,760

591
00:39:20,762 --> 00:39:24,762

592
00:39:24,764 --> 00:39:28,764

593
00:39:28,768 --> 00:39:32,768
ปุ๋ย

594
00:39:32,770 --> 00:39:36,770
วันนี้ครบนะ

595
00:39:36,772 --> 00:39:40,772
โอเค

596
00:39:40,773 --> 00:39:44,773

597
00:39:44,774 --> 00:39:48,774

598
00:39:48,776 --> 00:39:52,776

599
00:39:52,779 --> 00:39:56,779

600
00:39:56,780 --> 00:40:00,780

601
00:40:00,784 --> 00:40:04,784

602
00:40:04,787 --> 00:40:08,787

603
00:40:08,788 --> 00:40:12,788

604
00:40:12,790 --> 00:40:16,790

605
00:40:16,791 --> 00:40:19,795

606
00:40:24,796 --> 00:40:23,795

607
00:40:28,798 --> 00:40:31,799

608
00:40:32,800 --> 00:40:35,801

609
00:40:36,802 --> 00:40:39,803

610
00:40:40,804 --> 00:40:43,807

611
00:40:44,805 --> 00:40:47,808

612
00:40:48,807 --> 00:40:51,811

613
00:40:52,808 --> 00:40:55,811

614
00:40:56,811 --> 00:40:59,815

615
00:41:00,813 --> 00:41:03,816

616
00:41:04,815 --> 00:41:07,817

617
00:41:08,817 --> 00:41:11,821

618
00:41:12,819 --> 00:41:15,822

619
00:41:16,821 --> 00:41:19,823

620
00:41:20,824 --> 00:41:23,828

621
00:41:24,826 --> 00:41:27,828

622
00:41:28,828 --> 00:41:31,829

623
00:41:32,830 --> 00:41:35,835

624
00:41:36,832 --> 00:41:39,833

625
00:41:40,834 --> 00:41:43,835

626
00:41:44,836 --> 00:41:47,839

627
00:41:48,838 --> 00:41:51,839

628
00:41:52,840 --> 00:41:55,843

629
00:41:56,843 --> 00:41:59,846

630
00:42:00,845 --> 00:42:03,846

631
00:42:04,847 --> 00:42:07,851

632
00:42:08,849 --> 00:42:11,852

633
00:42:12,851 --> 00:42:15,854

634
00:42:16,857 --> 00:42:19,858

635
00:42:20,859 --> 00:42:23,859

636
00:42:24,863 --> 00:42:24,864

637
00:42:28,865 --> 00:42:28,865

638
00:42:32,866 --> 00:42:32,870


