WEBVTT
Kind: captions
Language: th

00:00:25.680 --> 00:00:28.118
(อาจารย์เกวลี) โอเค สวัสดีค่ะ

00:00:30.584 --> 00:00:35.816
โอเคค่ะ วันนี้จะเป็นบทที่ 4 นะคะ

00:00:38.573 --> 00:00:43.181
จะเป็นเกี่ยวกับแบบจำลองข้อมูล

00:00:45.212 --> 00:00:53.738
หรือเวลาเราเรียกสั้น ๆ ก็คือการวาดรูป ER นะคะ ตัว E แล้วก็ตัว R เป็นภาษาอังกฤษ

00:00:57.752 --> 00:01:04.011
โดยแผนภาพนะคะ ER นะคะ หรือว่า ER Model นี่ มันจะเป็น

00:01:06.864 --> 00:01:08.312
ล่ามเขาได้ยินเราไหมพลอย

00:01:09.666 --> 00:01:11.975
ทำไมล่ามดูนิ่ง ๆ

00:01:20.000 --> 00:01:21.316
ล่ามได้ยินไหมคะ

00:01:38.907 --> 00:01:44.988
ล่ามได้ยินไหมคะ ถ้าได้ยินโอเคด้วยค่ะ โอเค โอเค โอเคค่ะ

00:01:44.988 --> 00:01:50.010
ก็การวาด ER นะคะ หรือเป็นแบบจำลองข้อมูลนะคะ

00:01:50.203 --> 00:01:54.826
มันจะเป็นแบบที่ใช้อธิบายโครงสร้างของฐานข้อมูล

00:01:55.068 --> 00:01:58.026
โดยที่เราจะแสดงออกมาเป็นรูปภาพนะคะ

00:01:58.026 --> 00:02:05.071
โดยที่โครงสร้างสำคัญที่จะต้องใช้ในการวาดรูปของเรานะคะ ก็คือ Entity

00:02:05.071 --> 00:02:11.230
หรือว่าตารางกับความสัมพันธ์ ก็คือแต่ละเส้นที่เชื่อมโยงในแต่ละตาราง

00:02:11.230 --> 00:02:19.285
เราจะต้องโยงกันให้ถูกนะคะ อย่างเช่น ตารางของอาจารย์กับนักศึกษา เราต้องมีความสัมพันธ์กัน

00:02:19.624 --> 00:02:23.473
ในฐานะการเรียนการสอนแบบนี้นะคะ

00:02:25.407 --> 00:02:30.968
การวาดรูปจะเป็นเหมือนรูปที่อาจารย์ยกตัวอย่างให้ดูบนจอนะคะ

00:02:32.274 --> 00:02:37.810
การที่เราจะวาดรูปได้เราต้องรู้ด้วยว่าสัญลักษณ์แต่ละอันหมายความว่าอย่างไร

00:02:38.149 --> 00:02:44.900
ทำไมเราต้องใช้วงรี ทำไมเราต้องใช้สี่เหลี่ยมผืนผ้า ทำไมเราต้องลากเส้นตรงนะคะ

00:02:45.142 --> 00:02:47.447
แต่ละอันมีความหมายหมดเลย

00:02:48.076 --> 00:02:53.999
แล้ววันนี้ก็จะพอบรรยายเสร็จจะให้วาดเองด้วยนะคะ

00:03:01.156 --> 00:03:04.734
จุดเด่นของแผนภาพ ER นะคะ

00:03:05.073 --> 00:03:08.563
มันจะทำให้เราออกแบบฐานข้อมูลได้เร็วขึ้น เพราะว่า

00:03:08.853 --> 00:03:13.004
มันเหมือนการจัดระเบียบความคิดของผู้ที่ออกแบบ

00:03:13.004 --> 00:03:17.905
คล้าย ๆ กับเราสมัยมัธยมน่าจะเคยวาด Mind Map นะคะ

00:03:18.292 --> 00:03:24.372
การวาด ER ก็เหมือนกันนะคะ มันจะได้รู้ว่าเราต้องการจะออกแบบอะไร

00:03:24.662 --> 00:03:30.831
อะไรควรมีความสัมพันธ์กัน หรืออะไรที่ขาดหายไปนะคะ เราจะได้เห็น รวมถึง

00:03:31.363 --> 00:03:35.528
ลดความซ้ำซ้อนของข้อมูลออกไปด้วย เช่น

00:03:35.528 --> 00:03:42.267
ในตารางนี้มีข้อมูลนี้อยู่แล้ว ก็ไม่จำเป็นต้องใส่เพิ่มในตารางอื่นก็ได้นะคะ

00:03:42.267 --> 00:03:47.069
หรือว่าพอเราวาดเสร็จออกมาทำไมมีตารางที่คล้าย ๆ กัน 2 อัน

00:03:47.359 --> 00:03:52.195
มันลบออกได้ไหมนะคะ การวาดรูปก็จะทำให้เราเห็นภาพได้ง่ายขึ้น

00:03:58.289 --> 00:04:04.079
โดยคุณลักษณะของการวาดแผนภาพ ER นะคะ ก็คือแน่นอนมันแสดงผล

00:04:04.079 --> 00:04:10.228
ออกมาเป็นภาพนะคะ Model ข้อมูล หรือว่ารูปแบบข้อมูลแบบไหนก็ตามนี่

00:04:10.228 --> 00:04:14.956
มันจะมีภาษาแล้วก็รูปภาพที่เป็นกราฟิกโดยเฉพาะนะคะ

00:04:15.246 --> 00:04:18.566
อาจจะมีทั้งภาพขนาดใหญ่ ภาพขนาดย่อย

00:04:18.856 --> 00:04:26.236
มันจะทำให้เราอ่านข้อมูล หรืออ่านฐานข้อมูลนั้นได้ง่าย เพราะเราใช้วงกลม เราใช้สี่เหลี่ยม

00:04:26.236 --> 00:04:34.045
เราใช้วงรีนะคะ เราใช้เส้นตรง เส้นโค้ง เส้นประ ทุกอย่างมีความหมายหมดนะคะ

00:04:34.045 --> 00:04:37.627
มันก็แสดงให้เห็นถึงความชัดเจนของข้อมูลด้วย

00:04:37.917 --> 00:04:43.234
โดยที่เราอาจจะใช้สัญลักษณ์ที่ต่างกันเล็กน้อยนะคะ

00:04:43.234 --> 00:04:47.806
ซึ่งตัวรูปแบบของการวาดนี่ มันก็จะมีหลาย หลายรูปแบบ

00:04:47.806 --> 00:04:52.876
หนังสือแต่ละเล่ม บางเล่มก็ไม่เหมือนกัน บางคนใช้รูปแบบของคนนี้

00:04:53.215 --> 00:04:58.311
หรือหนังสืออีกเล่มหนึ่งอาจจะใช้รูปแบบที่ต่างออกไปนะคะ ในการวาดรูป แต่เดี๋ยว

00:04:59.036 --> 00:05:04.179
ตอนถึงเวลาวาดรูปเราต้องตกลงกันก่อนว่า เราจะเลือกใช้รูปแบบไหนนะคะ

00:05:05.050 --> 00:05:11.736
ข้อสำคัญคือแผนภาพที่ได้มานี่ มันควรที่จะอ่านง่าย ๆ ไม่ซับซ้อน

00:05:12.026 --> 00:05:16.903
เส้นไม่ลากตัดกันไปตัดกันมา ฉันเพิ่งคิดได้ ฉันเลยอยากวาดไว้ตรงนี้

00:05:17.290 --> 00:05:22.949
ไม่ได้นะคะ เราต้องคิดก่อนว่า เราจะลากเส้นตรงจากกระดาษฝั่งหนึ่งไปอีกฝั่งหนึ่งนี่

00:05:22.949 --> 00:05:27.328
มันก็ทำให้เราอ่านยาก เพราะฉะนั้นเราต้องมาจัดระเบียบความคิดตัวเองด้วยว่า

00:05:27.715 --> 00:05:31.387
ในฐานข้อมูลที่เราต้องการนี่ มันมีตารางอะไรบ้าง

00:05:31.387 --> 00:05:35.546
แล้วแต่ละตารางนี่ มันควรจะเชื่อมกันอย่างไรนะคะ

00:05:43.477 --> 00:05:48.796
โดยในแผนภาพที่เราวาดนะคะ รายละเอียดต้องอยู่ในระดับที่เหมาะสม

00:05:48.796 --> 00:05:55.927
อาจจะไม่ได้ละเอียดยิบขนาดนั้น ไม่ต้องละเอียดแบบเป๊ะ ๆ ๆ ๆ ๆ แต่ว่าเราต้องมองภาพให้ออก

00:05:55.927 --> 00:06:00.937
หรืออาจจะมีการเปลี่ยนแปลงแก้ไข มันจะต้องยืดหยุ่นนะคะ

00:06:00.937 --> 00:06:06.856
รวมถึงรายละเอียดต้องเพียงพอ ไม่ใช่ว่า โอ๊ยน้อยไป บางอันก็เยอะไปนะคะ

00:06:06.856 --> 00:06:08.450
เอาที่พอดี

00:06:08.450 --> 00:06:13.764
โดยที่แต่ละอันนี่อย่างที่บอกเราจะต้องมีการเชื่อมโยงความสัมพันธ์ของแต่ละตารางด้วย

00:06:14.924 --> 00:06:15.849
นะคะ

00:06:16.429 --> 00:06:23.743
แล้วก็การวาดรูปของเรา เราจะไม่ตายตัวเลยว่าเราวาดเพื่อไปใช้กับโปรแกรมอะไร

00:06:24.323 --> 00:06:31.001
นะคะ รูปที่เราวาดจะต้องเอาไปใช้ได้กับทุกโปรแกรม หรือทุกรูปแบบของการเขียนฐานข้อมูลนะคะ

00:06:31.243 --> 00:06:33.879
แล้วก็เวลาใครมาอ่าน

00:06:34.508 --> 00:06:40.322
จะต้องเข้าใจง่าย ถึงแม้ว่าเขาจะไม่ได้เรียนทางด้านคอมพิวเตอร์มาก่อน

00:06:40.322 --> 00:06:44.913
แต่พอเขาดูรูปภาพ อย่างน้อยเขาก็จะเข้าใจว่าเราต้องการจะสื่ออะไร

00:06:44.913 --> 00:06:47.896
ในฐานข้อมูลเรามีอะไรบ้างนะคะ

00:06:47.896 --> 00:06:52.862
เขาอาจะไม่รู้หรอกว่าวงรีมันหมายความว่าอะไร หรือสี่เหลี่ยมหมายความว่าอย่างไร

00:06:52.862 --> 00:06:57.465
ทำไมต้องเป็นเส้นประ ทำไมต้องมีเส้นโค้งด้วย เขาอาจจะไม่ต้องเข้าใจตรงนั้น

00:06:57.465 --> 00:07:02.762
แต่เขาดูแล้วเขาก็พอเข้าใจว่าเราต้องการจะนำเสนออะไร สื่ออะไร

00:07:02.762 --> 00:07:08.898
ในฐานข้อมูลเรามีอะไรบ้างนะคะ อันนี้ก็คือไม่ว่าจะเป็นใครต้องอ่านรูปที่เราวาด

00:07:08.898 --> 00:07:12.311
เข้าใจระดับหนึ่งก็ยังดีนะคะ

00:07:17.389 --> 00:07:20.720
ขั้นตอนในการออกแบบแผนภาพ ER นะคะ

00:07:21.252 --> 00:07:25.751
มันก็จะมีอยู่หลายขั้นตอน แต่เราก็จะแบ่งออกมาได้เป็นประมาณ 5 ขั้นตอน

00:07:25.751 --> 00:07:29.060
ในการออกแบบ หรือการวาดด้วยนะคะ

00:07:29.060 --> 00:07:32.288
โดยพอเราได้ภาพคร่าว ๆ มาแล้วนี่

00:07:32.288 --> 00:07:36.435
เราค่อยไปใส่รายละเอียดทีหลังก็ได้ ว่าผู้ใช้งาน

00:07:36.725 --> 00:07:41.922
เขาควรจะดูข้อมูลได้ในระดับไหน ผู้ใช้งานแต่ละคน

00:07:42.261 --> 00:07:47.087
การเข้าถึงข้อมูลแต่ละชั้นนี่ แต่ละขั้น แต่ละชั้นนี่

00:07:47.474 --> 00:07:52.550
ใครเข้าได้บ้าง หรือว่าผู้ใช้งานทั่วไปดูได้อย่างเดียวอะไรไหม อันนั้นคือ

00:07:52.550 --> 00:07:57.855
เป็นหลังจากที่เราวาดรูปเสร็จแล้ว แล้วค่อยมาใส่รายละเอียดทีหลังก็ได้นะคะ

00:08:03.368 --> 00:08:10.022
โดยขั้นตอนแรก เราจะกำหนด Entity หลัก หรือตารางหลักนะคะ

00:08:10.022 --> 00:08:17.014
โดยในการออกแบบฐานข้อมูลนี่ เราจะต้องเอา... รวบรวมความต้องการของผู้ใช้งาน

00:08:17.014 --> 00:08:24.744
ก็คือ requirement นี่ล่ะนะคะ มากำหนดว่าในฐานข้อมูลเราจะมี Entity หรือว่ามีตารางอะไรบ้าง

00:08:24.744 --> 00:08:35.343
ซึ่งขั้นตอนนี้เป็นขั้นตอนที่ค่อนข้างยากนะคะ ต้องเข้าใจในสิ่งที่เรากำลังจะสร้าง

00:08:35.972 --> 00:08:39.386
ทั้งผู้ใช้งานและก็ผู้ออกแบบต้องเข้าใจตรงกัน

00:08:40.000 --> 00:08:44.541
เพราะถ้าเรากำหนดตารางไปแล้ว แล้วอยู่ดี ๆ มาเพิ่ม

00:08:45.218 --> 00:08:50.248
มันอาจจะต้องเชื่อมต่อความสัมพันธ์ใหม่นะคะ

00:08:50.248 --> 00:08:58.102
โดยวิธีการ ก็คือถ้าอยากทำให้มันครอบคลุมมากที่สุด ก็คือเอาข้อมูลทั้งหมดที่มีมาวาง

00:08:58.537 --> 00:09:05.001
แล้วจัดกลุ่มของข้อมูลนะคะ โดยรู้ว่าข้อมูลมีค่าอะไรบ้าง มีความหมายอย่างไร

00:09:05.001 --> 00:09:11.771
แต่อะไร แต่ละอย่างนี่เชื่อมโยงกันอย่างไรนะคะ ถ้าข้อมูลเป็นข้อมูลชนิดเดียวกัน

00:09:12.400 --> 00:09:19.409
ให้รวมไว้ในตารางเดียวกัน แล้วก็กำหนดชื่อ เช่น นักศึกษานะคะ

00:09:19.796 --> 00:09:25.400
อาจจะมีหลายคณะก็จริง แต่ก็คือนักศึกษา เรารวมเป็นตารางเดียวได้ไหม ได้

00:09:25.690 --> 00:09:31.525
แล้วค่อยมากำหนดลักษณะพิเศษของแต่ละคนว่า ในนักศึกษาหลาย ๆ พันคนนี่

00:09:31.525 --> 00:09:36.575
เขามีความแตกต่างอะไรบ้าง แต่เราก็เก็บข้อมูลไว้ในตารางเดียวก็พอนะคะ

00:09:36.575 --> 00:09:41.201
โดยทุกอย่างจะต้องจดไว้ในบันทึก บันทึกไว้ในพจนานุกรมด้วย

00:09:41.733 --> 00:09:46.370
แล้วก็เขียนลงไปในแผนภาพที่เรากำลังจะวาดด้วยว่า

00:09:46.563 --> 00:09:50.070
ในตารางนี้มีข้อมูลอะไรบ้าง ที่เราต้องใช้นะคะ

00:09:53.891 --> 00:09:59.746
ขั้นตอนที่ 2 ก็จะต้องมากำหนดความสัมพันธ์ระหว่าง Entity หรือว่าระหว่างตารางนั่นเอง

00:10:00.762 --> 00:10:06.921
ก็จะมีการกำหนดชื่อ กำหนดความหมาย ความสัมพันธ์ ทิศทางการเชื่อมโยงของข้อมูล

00:10:07.114 --> 00:10:11.120
อัตราส่วนการเกิดความสัมพันธ์นะคะ เช่น

00:10:11.459 --> 00:10:17.397
นักศึกษา 1 คน สามารถลงทะเบียนเรียนได้หลายวิชานะคะ

00:10:18.122 --> 00:10:22.558
แต่ในหลาย ๆ ในแต่ละวิชา จะต้องมีผู้สอนคนเดียว

00:10:23.138 --> 00:10:25.402
อันนี้คือความสัมพันธ์ที่เกิดขึ้น

00:10:25.789 --> 00:10:29.759
แต่อาจารย์ 1 คน ก็สามารถสอนนักศึกษาได้หลายคนเหมือนกัน

00:10:30.194 --> 00:10:39.325
ได้หลายวิชาด้วยนะคะ ซึ่งอาจจะเป็นยกตัวอย่างการกำหนดอัตราส่วนอีกอย่างหนึ่ง ก็คือ

00:10:39.615 --> 00:10:44.091
เหมือนที่อาจารย์ชอบยกตัวอย่างบ่อย ๆ รหัสบัตรประชาชน

00:10:44.816 --> 00:10:50.378
ไม่ควร มันไม่เกิน 13 หลักอยู่แล้ว เราก็ต้องกำหนด ชื่อคน

00:10:51.490 --> 00:10:55.093
กำหนดไว้เลยก็ได้ ไม่ควรเกิน 20 ตัวอักษร

00:10:56.109 --> 00:11:03.289
คงไม่มีใครตั้งชื่อตามหลักโหราศาสตร์ ยาวเกิน 20 ตัวหรอกนะคะ

00:11:03.773 --> 00:11:09.905
แล้วก็เราก็สามารถแบ่งกลุ่มได้แล้วว่าข้อมูลแต่ละอันมันจะต้องเชื่อมโยงกันอย่างไร

00:11:09.905 --> 00:11:16.498
หลังจากนั้นก็มาดูว่า ขนาดของความสัมพันธ์เป็นอย่างไร 1 ต่อ 1 หรือ 1 ต่อ

00:11:17.997 --> 00:11:24.363
มากกว่า 1 อะไรพวกนี้นะคะ ภาษาอังกฤษก็คือ One-to-One One-to-Many อะไรพวกนี้นะคะ

00:11:24.653 --> 00:11:28.342
ซึ่งก็จะต้องวิเคราะห์ดี ๆ นะคะ

00:11:28.342 --> 00:11:34.220
เพราะมันจะต้องสามารถอ่านไปข้างหน้า แล้วก็อ่านย้อนกลับมา โดยที่ความหมายไม่เปลี่ยน

00:11:34.220 --> 00:11:37.067
ในแผนภาพของเราด้วยนะคะ

00:11:40.356 --> 00:11:44.127
ขั้นตอนที่ 3 กำหนดคีย์หลัก กำหนดคีย์รอง

00:11:44.998 --> 00:11:48.535
ก็คือ Primary Key กับ Secondary Key นะคะ

00:11:48.535 --> 00:11:56.281
หลังจากที่เราได้ตารางต่าง ๆ แล้วนะคะ ขั้นตอนต่อไปก็คือ ในตารางเราจะต้องเก็บข้อมูล

00:11:56.281 --> 00:11:58.095
หรือว่า Attribute อะไรบ้าง

00:11:58.675 --> 00:12:01.001
เช่น ตารางนักศึกษา

00:12:01.630 --> 00:12:08.090
ต้องเก็บข้อมูลอะไรบ้างเกี่ยวกับนักศึกษา ถ้าพอจำได้ ก็คือตอนเราเข้ามาเรียน

00:12:08.429 --> 00:12:10.253
เรากรอกข้อมูลเยอะมาก

00:12:10.592 --> 00:12:15.916
ตั้งแต่ใบสมัครเลยนะคะ อันนั้นคือ Attribute

00:12:16.690 --> 00:12:24.624
ที่มหาวิทยาลัยต้องการ ชื่ออะไร นามสกุลอะไร บัตรประชาชขนเลขอะไร เกิดวันที่เท่าไร

00:12:24.866 --> 00:12:30.680
บ้านอยู่ไหน พ่อแม่ชื่ออะไร จบจากโรงเรียนอะไร เกรดเฉลี่ยเท่าไร ที่อยู่ปัจจุบันที่ไหน

00:12:31.019 --> 00:12:32.720
ใครเป็นคนส่งเรียน

00:12:33.445 --> 00:12:35.049
ได้เงินเดือนละเท่าไร

00:12:36.403 --> 00:12:40.371
นะคะ ใครเป็นผู้ปกครอง เบอร์ผู้ปกครองเบอร์อะไร

00:12:40.951 --> 00:12:47.703
บางคนผู้ปกครองไม่ใช่พ่อหรือแม่ อาจจะเป็นคุณตาคุณยายนะคะ

00:12:47.703 --> 00:12:52.424
ที่อยู่ปัจจุบันอยู่ไหน แล้วมาเรียนราชภัฏ พักที่ไหน

00:12:53.295 --> 00:12:57.678
กรอกให้หมด เกรดเฉลี่ยตั้งแต่ ม.4 ม.5 ม.6 เป็นอย่างไร

00:12:57.920 --> 00:13:05.286
อันนี้คือสิ่งที่มหาวิทยาลัยต้องการรู้เกี่ยวกับพวกคุณ ซึ่งก็คือ Attribute นั่นเองนะคะ

00:13:05.286 --> 00:13:09.327
โดยหัวของแต่ละคอลัมน์ หรือ Attribute นี่

00:13:09.327 --> 00:13:16.702
ควรกำหนดเป็นคำสั้น ๆ ง่าย ๆ อาจจะเป็นตัวย่อก็ได้ แต่ต้องสื่อความหมายนะคะ

00:13:16.702 --> 00:13:22.725
แล้วก็หลีกเลี่ยงการตั้งชื่อเหมือนกันนะคะ

00:13:24.805 --> 00:13:32.720
อาจจะเป็นชื่อ ชื่อนี่ บางคนไม่เข้าใจ สรุปใส่ชื่อเล่นหรือชื่อจริง

00:13:32.720 --> 00:13:35.428
เพราะฉะนั้น ต้องกำหนดไปเลยว่าคุณต้องการอะไร

00:13:36.347 --> 00:13:41.490
ชื่อจริงก็ใส่ชื่อจริง ชื่อเล่นก็ใส่ชื่อเล่น ไม่ใช่คำว่า "ชื่อ" เฉย ๆ

00:13:42.312 --> 00:13:47.288
แล้วเขาจะรู้ไหมว่าเขาต้องใส่อะไร เขาอาจจะใส่ชื่อเล่นก็ได้นะคะ

00:13:50.000 --> 00:13:57.746
กำหนดคีย์ภายนอก หรือว่า Foreign Key เป็นคีย์ที่เอาไว้เชื่อมโยงแต่ละตารางเข้าด้วยกันนะคะ

00:13:57.746 --> 00:14:02.419
อย่างเช่น นักศึกษากับอาจารย์นี่จะเชื่อมโยงกันได้อย่างไร

00:14:02.951 --> 00:14:05.371
เชื่อมโยงโดยรหัสวิชา

00:14:06.242 --> 00:14:12.949
เช่น รหัสวิชานี้ ใครเรียนบ้าง ใครสอนบ้าง แค่กรอกรหัสเข้าไปก็รู้ได้เลย

00:14:12.949 --> 00:14:18.150
อันนี้คือการเชื่อมโยงกันของอาจารย์กับนักศึกษาในวิชานั้น ๆ นะคะ

00:14:18.150 --> 00:14:27.811
โดยที่คีย์นอกหรือ Foreign Key นี่ มันอาจจะเป็นคีย์หลักของตารางอื่นก็ได้นะคะ

00:14:28.923 --> 00:14:34.608
เดี๋ยวพอวาดรูปก็จะเข้าใจมากขึ้น อันนี้ตอนพูดนี่อาจจะไม่ค่อยเข้าใจเท่าไร

00:14:34.608 --> 00:14:37.636
ว่าเอ๊ะทำไมมันถึงเชื่อมโยงกันได้นะคะ

00:14:40.344 --> 00:14:41.532
ขั้นที่ 5

00:14:42.499 --> 00:14:50.147
พิจารณาขอบเขตค่าแต่ละค่าที่อยู่ในแต่ละข้อมูลที่เราต้องการนะคะ

00:14:50.147 --> 00:14:52.047
ก็คือขอบเขตของข้อมูลนั่นแหละ

00:14:53.304 --> 00:15:00.664
เช่น ชนิดของข้อมูล เราจะกำหนดเป็นอะไร วันเกิด ควรกำหนดเป็นอะไร

00:15:01.003 --> 00:15:07.644
เงินเดือน มันควรเป็นจำนวนเต็มไหม คุณอยากได้ทศนิยมหรือเปล่านะคะ

00:15:07.644 --> 00:15:13.863
อย่างชื่อก็ควรกำหนดเป็นรับข้อมูลเฉพาะตัวอักษรเท่านั้น กรอกเป็นตัวเลขไม่ได้

00:15:13.863 --> 00:15:20.548
อันนี้คือสิ่งที่เราต้องกำหนดตั้งแต่ตอนที่ออกแบบฐานข้อมูลเลยนะคะ

00:15:20.548 --> 00:15:21.640
ความยาว

00:15:23.091 --> 00:15:26.394
เลขบัตรประชาชนก็ 13 หลักนะคะ

00:15:27.168 --> 00:15:29.313
เบอร์โทรศัพท์ก็ 10 หลัก

00:15:30.280 --> 00:15:34.304
อะไรแบบนี้ นามสกุลไม่ควรเกิน 35 ตัวอักษร

00:15:35.658 --> 00:15:42.747
เงินเดือน ก็เอาสักไม่เกิน 7 หลัก ประมาณนี้นะคะ รูปแบบข้อมูล

00:15:43.134 --> 00:15:47.566
บางประเทศมันไม่เหมือนประเทศเรา เขาจะเอาเดือนขึ้นก่อน

00:15:48.291 --> 00:15:54.860
ตามด้วยวัน ตามด้วยปี คุณก็สามารถกำหนดได้เหมือนกัน เราอยากใช้แบบของเราเพื่อดูง่าย ๆ

00:15:54.860 --> 00:16:02.915
ก็เป็น วัน เดือน ปี ตามกันอย่างนี้ก็ได้นะคะ กับค่าที่อนุญาตโดยเฉพาะ เช่น

00:16:03.447 --> 00:16:07.268
ทุกวันที่ 1 กับ 16 ของเดือนเป็นวันหยุด

00:16:09.202 --> 00:16:10.914
คุณก็สามารถตั้งได้

00:16:11.253 --> 00:16:17.023
ว่าในฐานข้อมูล คือ ถ้าสมมติลูกค้าต้องการจะจองคิวทำอะไรก็ตาม

00:16:17.023 --> 00:16:21.067
ถ้าเป็นวันที่ 1 กับวันที่ 16 จะไม่อนุญาตให้จอง

00:16:22.276 --> 00:16:32.389
แบบนี้ก็ได้นะคะ อันนี้ก็ต้องตั้งแต่เราออกแบบเลย ว่าข้อตกลงของเราควรจะเป็นอย่างไรนะคะ

00:16:36.693 --> 00:16:40.132
อันนี้ก็อธิบายไปแล้วนะ กับอีกอันหนึ่ง สำคัญ

00:16:41.244 --> 00:16:50.497
ความเป็นหนึ่งเดียว ก็คือ อย่างเช่น รหัสนักศึกษา ต้องกำหนดเลยว่าห้ามเป็นค่าที่ซ้ำ

00:16:51.223 --> 00:16:52.745
ซ้ำกันไม่ได้

00:16:54.196 --> 00:17:00.930
เราอาจจะกรอกเลขผิดไปตัวหนึ่ง ระบบต้องแจ้งเตือนว่า เอ๊ยคุณเลขนี้ใช้ไม่ได้ มันซ้ำไปแล้ว

00:17:00.930 --> 00:17:07.895
กับการเป็นค่า Null ค่า Null ในที่นี้ คือ คุณไม่กรอกข้อมูลได้ไหม

00:17:08.669 --> 00:17:10.640
บางระบบจะบอกว่าไม่ได้

00:17:11.752 --> 00:17:16.592
ถ้าใครเคยกรอกข้อมูลในอินเทอร์เน็ตจะเห็นว่าบางช่องของการกรอกข้อมูล

00:17:16.592 --> 00:17:19.559
เขาจะมีดอกจันสีแดงกำหนดไว้อยู่

00:17:20.333 --> 00:17:25.904
นั่นคือเป็นข้อมูลที่เขาต้องการ คุณจะเว้นว่างไม่ได้นะคะ

00:17:26.194 --> 00:17:29.833
หรือถ้าต้องการจะเว้นว่าง หรือไม่ตอบ

00:17:30.268 --> 00:17:34.511
เขาจะเรียกอีกอย่างหนึ่งว่า "ค่า Default" ก็คือค่าโดยปริยาย

00:17:34.946 --> 00:17:38.925
ถ้าไม่ตอบว่าเงินเดือนเป็นเท่าไร ค่าเริ่มต้นคือ 0

00:17:39.554 --> 00:17:44.414
แต่เป็นค่าว่างไม่ได้ ไม่ตอบไม่ได้ เพราะฉะนั้น เราใส่ไปเลย 0 บาท

00:17:45.236 --> 00:17:50.000
แบบนี้ก็ได้ แต่ส่วนมากทุกคนก็ต้องกรอกอยู่แล้วน่ะนะคะ

00:17:51.596 --> 00:18:00.225
ขั้นตอนสุดท้าย ก็มาวิเคราะห์ดูว่า แผนภาพที่เราออกแบบนี่ มันสามารถปรับปรุงแก้ไข

00:18:00.225 --> 00:18:02.839
หรือว่าขยายตัวในอนาคตได้หรือเปล่า

00:18:04.096 --> 00:18:08.369
เพราะว่าการออกแบบที่ดีนี่ ต้องคำนึงถึงการเปลี่ยนแปลงด้วย

00:18:09.288 --> 00:18:15.866
ไม่ใช่ว่าตายตัวไปตลอด เกิดสมมติว่าวันนี้คุณอาจจะเปิดร้าน ลูกค้าอาจจะไม่ถึง 100 คน

00:18:16.446 --> 00:18:23.304
แต่ใครจะไปรู้ อนาคตคุณอาจจะเป็นธุรกิจที่มันเติบโตได้มีสาขาไปอีกเป็นร้อยสาขา

00:18:23.304 --> 00:18:31.315
มีลูกค้าเป็น 10,000 คน แต่ฐานข้อมูลคุณ fix ไว้ว่าอย่างรหัสลูกค้าแค่ 1-100

00:18:31.654 --> 00:18:40.331
มันเป็นไปไม่ได้ค่ะ นะคะ ต้องวิเคราะห์ด้วยว่า เอ๊ย รหัสลูกค้านี่ มันจะต้องเป็นการ

00:18:40.331 --> 00:18:47.460
เพิ่มขึ้นอย่างอัตโนมัติไปได้เรื่อย ๆ หรือเปล่า หรือคุณจะเป็นคนกรอกเอง

00:18:48.427 --> 00:18:50.668
นะคะ อันนี้ก็ต้องคิดด้วย

00:18:51.152 --> 00:18:57.593
ไม่ใช่ว่า โอ๊ย ระบบฉันใช้แค่ 10 คนนี่ล่ะ บางทีในอนาคตมันอาจจะไม่ใช่อย่างนั้นนะคะ

00:18:58.512 --> 00:19:01.649
โดยการสร้างแบบจำลองข้อมูล หรือการวาดแผนภาพนี่

00:19:03.051 --> 00:19:07.205
มันจะต้องวิเคราะห์ถึงข้อมูลที่จำเป็นต้องเก็บในระบบนะคะ

00:19:08.486 --> 00:19:12.503
อาจจะเกี่ยวกับข้อมูลที่เราจำเป็นต้องเรียกใช้ โครงสร้างที่มี

00:19:12.503 --> 00:19:18.320
รวมถึงถ้ามันการเพิ่มลบแก้ไขข้อมูล จะต้องทำที่ตารางไหน

00:19:19.722 --> 00:19:28.464
ถ้าสมมติว่าข้อมูลในตารางนั้นถูกลบไป มันจะไปกระทบกับข้อมูลในตารางอื่นหรือเปล่านะคะ

00:19:28.803 --> 00:19:32.550
เช่น วันดีคืนดีอาจารย์ลบชื่อสาขาที่คุณเรียนออก

00:19:33.662 --> 00:19:43.030
มันจะกระทบกับพวกคุณไหม เป็นนักศึกษาไม่มีสังกัด ทำได้ไหม ไม่ได้นะคะ

00:19:43.030 --> 00:19:50.646
ก็ต้องดูด้วย เขาเรียกว่า "กฎการคงสภาพของข้อมูล" อยู่ดี ๆ อยากลบ ไม่ได้

00:19:50.646 --> 00:19:55.780
เหมือนอยากเปลี่ยนเลขรหัสบัตรประชาชนให้เดชมงคลได้ไหม ไม่ได้

00:19:56.892 --> 00:20:01.711
เลขมันไม่สวย อยากได้เลข 9 ลงท้ายอะไรอย่างนี้ เปลี่ยนไม่ได้นะคะ

00:20:02.533 --> 00:20:04.683
แต่ชื่อเปลี่ยนได้ไหม เปลี่ยนได้

00:20:05.602 --> 00:20:09.203
แต่บางอย่างมันเปลี่ยนได้นะคะ เช่น รหัสนักศึกษา

00:20:09.687 --> 00:20:13.850
เลขบัตรประชาชนอย่างนี้ เราต้องวิเคราะห์ด้วยนะคะ ไม่ใช่ว่า

00:20:13.850 --> 00:20:18.831
ออกแบบไปแล้วใครอยากเปลี่ยนเลขบัตรประชาชนตอนไหนก็ได้ แบบนี้เป็นต้น

00:20:20.475 --> 00:20:23.775
โดยการเขียนแผนภาพ ER นี่

00:20:24.162 --> 00:20:32.143
มันก็จะอธิบายภาพรวมทั้งหมดนะคะ อย่างที่บอกตอนต้น ก็คือมันต้องเข้าใจง่ายนะคะ

00:20:32.627 --> 00:20:37.996
อาจจะไม่ต้องรู้ว่าข้อมูลที่เรากำลังจะเก็บนี่ เก็บที่ไหน เก็บอย่างไร ไม่จำเป็น

00:20:38.383 --> 00:20:42.891
แค่วาดออกมาให้ดูก่อนว่า ในฐานข้อมูลเราต้องมีอะไรบ้างนะคะ

00:20:43.278 --> 00:20:46.301
ในแต่ละตารางมีความสัมพันธ์กันอย่างไร

00:20:46.881 --> 00:20:56.280
ข้อมูลมันจะซ้ำซ้อนกันไหมนะคะ แล้วก็เขียนให้ออกมาดูง่ายที่สุด อย่างที่อาจารย์บอกตอนแรก

00:20:56.619 --> 00:21:04.275
แผนภาพการวาดรูปนี่ มันมีหลาย... เขาเรียกว่าอะไรล่ะ หลายมาตรฐานแล้วกัน

00:21:04.952 --> 00:21:10.292
หนังสือแต่ละเล่มก็เลือกมาใช้ไม่เหมือนกันนะคะ

00:21:10.776 --> 00:21:15.494
มีทั้งแบบ Chen โมเดล แบบ Crow’s Foot ก็คือแบบ

00:21:15.881 --> 00:21:20.926
ไอ้ความสัมพันธ์นี่ จะคล้าย ๆ กับรอยเท้าของนก

00:21:21.603 --> 00:21:27.143
รอยเท้าอีกา เขาก็เรียกเป็นรูปแบบรูปแบบหนึ่งนะคะ

00:21:27.143 --> 00:21:33.921
แต่ที่เราจะใช้กันบ่อย ๆ นะคะ จะเป็นแบบของ Chen โมเดล ตัวช่องสีเหลือง

00:21:33.921 --> 00:21:39.314
เราจะเลือกใช้ตัวแบบนี้ เพราะว่ามันเขียนง่าย มันอ่านง่ายที่สุดนะคะ

00:21:40.000 --> 00:21:45.767
แต่ถ้าคุณไปเจอหนังสือเล่มอื่น เขาใช้แบบอื่น ผิดไหม ไม่ผิด

00:21:45.767 --> 00:21:49.248
อยู่ที่เขาจะเลือกใช้แบบไหนแค่นั้นเองนะคะ

00:21:54.229 --> 00:21:59.461
สัญลักษณ์ที่ต้องใช้ในการวาดรูปนะคะ

00:22:00.428 --> 00:22:07.446
สัญลักษณ์สี่เหลี่ยมผืนผ้า มันจะหมายถึงชื่อตารางนะคะ

00:22:08.075 --> 00:22:15.143
แบบสี่เหลี่ยมข้าวหลามตัด มันจะบอกถึงความสัมพันธ์ของตารางแต่ละตารางนะคะ

00:22:15.965 --> 00:22:21.238
แล้วคอลัมน์ในแต่ละตารางล่ะนะคะ เราก็จะใส่เป็นรูปวงรี

00:22:24.430 --> 00:22:29.804
ถ้าคอลัมน์นั้น ๆ เป็นคีย์หลักที่ห้ามซ้ำกัน

00:22:30.000 --> 00:22:32.868
ในรูปวงรีจะต้องขีดเส้นใต้ด้วย

00:22:36.786 --> 00:22:42.941
ส่วนด้านข้าง อันนี้จะไม่ค่อยพบเห็นบ่อย แต่เจอในข้อสอบแน่ ๆ นะคะ

00:22:43.231 --> 00:22:46.155
อันแรกเป็นสี่เหลี่ยมผืนผ้าซ้อนกัน 2 อัน

00:22:46.687 --> 00:22:51.203
มันหมายถึงตารางนั้นน่ะ เป็นตารางอ่อนแอ หรือว่า Weak Entity

00:22:51.203 --> 00:22:57.260
จะต้องพึ่งพิงค่าจากตารางอื่น เพื่อให้ตารางของมันมีความหมายนะคะ

00:23:00.391 --> 00:23:01.885
กับต่อมา

00:23:02.272 --> 00:23:07.446
สี่เหลี่ยมข้าวหลามตัดซ้อนกัน 2 อัน ก็เช่นเดียวกันค่ะ เขาจะเรียกว่า "ความสัมพันธ์แบบอ่อนแอ"

00:23:08.075 --> 00:23:15.863
มันจะต้องไปดึงค่าหรือความสัมพันธ์แบบอื่น ๆ มาทำให้ตัวมันมีความหมายขึ้นมานะคะ

00:23:17.024 --> 00:23:24.945
วงรีซ้อนกัน 2 วง ก็คือในตารางนี้นี่ เอ้ย ในคอลัมน์นี้ หรือในข้อมูลนั้น ๆ นี่

00:23:24.945 --> 00:23:30.340
มันอาจจะมีข้อมูลได้มากกว่า 1 ข้อมูล เช่น คุณอาจจะมีเบอร์โทรศัพท์ 3 เบอร์

00:23:35.660 --> 00:23:41.283
หรือว่ามีชื่อเล่น พ่อเรียกชื่อหนึ่ง แม่เรียกชื่อหนึ่ง ก็บอกได้

00:23:41.622 --> 00:23:48.800
มีสัตว์เลี้ยงมากกว่า 2 ตัว แต่ละตัวชื่อว่าอะไรบ้าง อย่างนี้ก็ได้นะคะ

00:23:48.800 --> 00:23:58.379
กับวงรีที่เป็นเส้นประ มันหมายถึงว่า ค่าข้อมูลในนี้นี่ จะได้มาจากการคำนวณของข้อมูลอื่น ๆ

00:23:58.959 --> 00:24:02.237
ที่พบบ่อยที่สุด ก็คืออายุ

00:24:05.332 --> 00:24:11.879
อายุจะได้มาจากการคำนวณวันเกิดใช่ไหมคะ เพราะฉะนั้น ไอ้เส้นวงรีประ ๆ พวกนี้

00:24:11.879 --> 00:24:19.374
มันก็คือจะบอกว่าอายุของเรา ได้มาจากการกรอกวัน เดือน ปีเกิด นั่นเองนะคะ

00:24:20.000 --> 00:24:24.818
ให้มันคำนวณให้อัติโนมัติ ผู้ใช้งานไม่ต้องบอกเองว่าอายุเท่าไร

00:24:25.495 --> 00:24:32.565
ให้ระบบคำนวณได้เลย อายุ 18 ปี 11 เดือน 10 วันอะไรก็ว่าไปนะคะ

00:24:34.596 --> 00:24:38.239
อันนี้คือสัญลักษณ์ที่เราใช้บ่อย รูปเดียวกันกับเมื่อกี้นี้นะคะ

00:24:41.528 --> 00:24:48.955
อันนี้จะอธิบายโดยละเอียด Entity หรือว่าชื่อของตารางนะคะ ก็จะเป็นส่วนในการเก็บข้อมูล

00:24:48.955 --> 00:24:56.939
รายการแต่ละรายการที่ระบบจัดการฐานข้อมูล หรือเรากำลังจะสร้างระบบขึ้นมานะคะ เช่น

00:24:58.051 --> 00:25:04.907
สัญลักษณ์ Entity จะเป็นสี่เหลี่ยมผืนผ้า มีชื่อตารางหรือชื่อ Entity อยู่ข้างในนะคะ

00:25:05.149 --> 00:25:09.896
เราจะต้องวาดแบบนี้ทุกครั้งนะคะ

00:25:10.428 --> 00:25:15.079
โดยตัวอย่าง เช่น ตารางบุคคล

00:25:15.950 --> 00:25:22.879
บุคคลคืออะไรบ้าง เป็นตารางพนักงาน ตารางผู้ป่วย ตารางบุคลากร ตารางนักศึกษา ตารางลูกค้า

00:25:23.556 --> 00:25:28.489
อาจจะเป็นข้อมูลเกี่ยวกับสถานที่ ก็จะเป็นตารางเก็บจังหวัด เก็บข้อมูลจังหวัด

00:25:28.489 --> 00:25:34.523
เก็บข้อมูลอำเภอนะคะ ตารางที่เกี่ยวกับวัตถุ อาจจะเป็นรถยนต์

00:25:34.523 --> 00:25:40.208
อาคาร เครื่องจักร สินค้าก็ได้นะคะ หรืออาจจะเป็นเหตุการณ์ต่าง ๆ ที่เกิดขึ้น

00:25:40.208 --> 00:25:45.457
เช่น การลงทะเบียน การรักษาโรค การซื้อ การขาย การส่งสินค้านะคะ

00:25:45.457 --> 00:25:51.220
สัญลักษณ์ อย่างที่บอกเป็นสี่เหลี่ยมผืนผ้า มีชื่อ Entity ตารางหรือว่าชื่อตารางอยู่ข้างในนะคะ

00:25:55.089 --> 00:26:01.784
ประเภทของ Entity ก็มีอยู่ 2 ประเภทนะคะ แต่ส่วนใหญ่ที่เราใช้กันนี่ จะเป็น Entity ทั่วไปนะคะ

00:26:01.784 --> 00:26:11.366
เป็น Regular ก็คือเป็นตารางที่ข้อมูลในนั้น สามารถแยกข้อมูลในแต่ละแถวออกได้นะคะ

00:26:11.753 --> 00:26:17.601
กับอีกอันหนึ่ง คือ Entity อ่อนแอ มันจำเป็นจะต้องใช้ข้อมูลอื่น

00:26:17.601 --> 00:26:22.909
มาช่วยทำให้ข้อมูลในแถวนั้น ๆ มีคุณค่า หรือมีความหมายขึ้นมานะคะ

00:26:24.311 --> 00:26:25.746
อันนี้เป็นตัวอย่าง

00:26:27.439 --> 00:26:31.931
Entity ทั่วไป หรือตารางทั่วไปนะคะ จะสังเกตได้ว่า

00:26:33.672 --> 00:26:37.464
อย่างข้างบนนี่ อาจารย์เขียนไว้ว่า Entity Student

00:26:40.000 --> 00:26:44.371
ก็คือตารางตารางหนึ่งที่มีข้อมูลเกี่ยวกับนักเรียนอยู่

00:26:44.371 --> 00:26:51.932
แต่สิ่งที่เราจะเอามาวาดแผนภาพ มันไม่ใช่กรอบสี่เหลี่ยมนี้นะคะ เราจะเอามาแต่ชื่อ

00:26:54.060 --> 00:26:55.802
เช่น ตาราง Student

00:26:56.141 --> 00:27:01.321
ก็คือ Entity Student เก็บข้อมูลอะไรบ้าง ก็คือตัวนี้ แต่ที่เรามาวาดรูป เอาแค่นี้ค่ะ

00:27:01.321 --> 00:27:08.947
เอาสี่เหลี่ยมข้างล่างมาวาด แค่นั้นเอง แล้วก็บอกด้วยว่าชื่อตารางอะไรนะคะ

00:27:13.638 --> 00:27:20.259
อันนี้เป็นตัวอย่างของตารางอ่อนแอ หรือว่า Entity อ่อนแอนะคะ อันนี้ก็คือ

00:27:20.259 --> 00:27:25.744
เป็นข้อมูลเกี่ยกับการลงเวลาทำงาน เวลาออกจากงาน

00:27:25.744 --> 00:27:30.000
เหมือนเวลาถ้าใครไปทำงานก็จะมีมาทำงานกี่โมง กลับบ้านกี่โมง

00:27:30.339 --> 00:27:37.811
ตารางนี้นะคะ Time stamp ก็คือลงเวลา ตารางนี้จะไม่มีความหมายเลย ถ้าขาด

00:27:37.811 --> 00:27:41.402
ข้อมูลที่เข้าทำงาน แล้วก็เวลากลับบ้าน

00:27:41.692 --> 00:27:45.649
เพราะฉะนั้น 2 ตัวนี้จะต้องเชื่อมโยงกันอยู่แล้ว

00:27:46.133 --> 00:27:51.676
ถ้าขาดอันใดอันหนึ่งไป ตารางนี้จะไม่มีความหมายเลย

00:27:53.175 --> 00:28:01.823
ก็คือมีแต่เวลามาทำงาน อ้าว แล้วกลับบ้านตอนไหน ไม่รู้ อย่างนี้ไม่ได้นะคะ

00:28:02.452 --> 00:28:09.495
ก็คือมาทำงาน ก็ต้องมีเวลากลับบ้าน หรือมีแต่เวลากลับบ้าน ไม่มีเวลาทำงาน มันก็ไม่ได้

00:28:09.495 --> 00:28:16.359
อย่างนั้นจะรู้ได้อย่างไรว่าคุณมาทำงานกี่โมงนะคะ อันนี้เป็นตัวอย่างของตารางที่

00:28:16.359 --> 00:28:26.033
ถ้าขาดข้อมูลใดข้อมูลหนึ่งไป จะทำให้ข้อมูลในตารางนั้น ๆ นี่ ไม่สมบูรณ์ มีปัญหานั่นเองนะคะ

00:28:29.805 --> 00:28:33.172
อย่างเช่น อันนี้เป็นตัวอย่าง

00:28:33.752 --> 00:28:44.717
ถ้าเป็นตารางทั่วไป ตารางนักเรียนกับตารางรายวิชานะคะ มีนักศึกษา 2 คน มี 2 วิชา

00:28:44.717 --> 00:28:48.841
อันนี้เป็นตารางทั่วไป แต่ตารางการลงทะเบียน

00:28:49.760 --> 00:28:58.955
สมมติว่ามีแต่รหัสนักศึกษา มีปีการศึกษา แต่ไม่รู้เลย ว่าเขาลงทะเบียนวิชาอะไร

00:29:00.000 --> 00:29:05.511
ได้ไหม ไม่ได้ ไม่อย่างนั้นจะรู้ได้อย่างไรว่าเทอมนี้มีใครเรียนอะไรบ้าง

00:29:05.995 --> 00:29:08.699
หรือนะคะ

00:29:10.000 --> 00:29:15.733
รู้รายวิชา รู้ปีการศึกษา แต่ไม่รู้เลยว่าใครลงทะเบียนเรียน

00:29:16.265 --> 00:29:21.965
ได้ไหม ก็ไม่ได้อีกนะคะ เพราะฉะนั้น ในตารางการลงทะเบียน

00:29:21.965 --> 00:29:27.251
ถ้าขาดข้อมูลใดข้อมูลหนึ่งไป ตารางนั้นจะเป็นตารางที่ไม่สมบูรณ์

00:29:27.638 --> 00:29:34.937
โดยข้อมูลในแต่ละตารางนี่ ก็ไปดึงข้อมูลมาจากคนอื่นทั้งนั้น อันนี้คือตารางอ่อนแอนะคะ

00:29:34.937 --> 00:29:41.373
ก็คือไม่มีความหมายในตัวเอง จะต้องมีข้อมูลจากตารางอื่นมาช่วยนั่นเองนะคะ

00:29:43.162 --> 00:29:49.758
ต่อมา Attribute ก็คือพูดง่าย ๆ ก็คือคอลัมน์ในแต่ละตารางนั่นล่ะค่ะว่า

00:29:49.758 --> 00:29:57.200
ในตารางนั้นมีคอลัมน์อะไรบ้าง ก็คือหัวของคอลัมน์นะคะ

00:29:57.974 --> 00:30:08.909
นี่แบบนี้ เพราะฉะนั้น Attribute นะคะ สัญลักษณ์ของ Attribute จะเป็นวงรีนะคะ

00:30:09.538 --> 00:30:18.728
อย่างข้อมูลพนักงานควรจะมีอะไรบ้าง ก็จะมีรหัสพนักงาน ชื่อ นามสกุล มีเพศ มีเงินเดือนนะคะ

00:30:19.260 --> 00:30:24.314
สัญลักษณ์จะเป็นแบบนี้ นี่นะคะ ข้อมูลพนักงาน

00:30:24.556 --> 00:30:31.440
อันนี้ก็คือ Entity ใช่ไหมคะ ตาราง หัวตาราง อันนี้ก็จะเป็นคอลัมน์ คอลัมน์

00:30:33.471 --> 00:30:34.298
คอลัมน์

00:30:35.314 --> 00:30:39.783
ซึ่งใน Attribute นี่ มันก็ยังแบ่งไปอีกเป็น 6 ประเภทเหมือนกันนะคะ

00:30:40.267 --> 00:30:46.291
แต่ก็ใช้วงรีเหมือนกันนี่ล่ะ แต่อาจจะมีสิ่งที่เปลี่ยนไปนิดหนึ่งนะคะ

00:30:46.823 --> 00:30:54.739
โดย Attribute นี่ ประเภทที่ 1 คือ Attribute ที่ไม่สามารถแบ่งย่อยได้อีกแล้วนะคะ เช่น เพศ

00:30:55.223 --> 00:31:02.267
คุณก็ตอบได้แค่เพศเดียว คุณเป็นเพศอะไรคุณก็ตอบตัวนั้น  เงินเดือนตอบได้ค่าเดียว

00:31:03.041 --> 00:31:08.599
คุณไม่จำเป็นต้องบอกว่าเงินเดือนเดือนที่ 1 เงินเดือนเดือนที่ 2 เงินเดือนเดือนที่ 3 ไม่ใช่

00:31:08.599 --> 00:31:12.806
เราตอบค่าเดียว เงินเดือนปัจจุบันเราเท่าไรนะคะ

00:31:13.386 --> 00:31:19.688
เลขบัตรประชาชนตอบได้ค่าเดียว รหัสนักศึกษาตอบได้ค่าเดียว อันนี้คือ

00:31:19.688 --> 00:31:23.254
เป็น Attribute หรือเป็นข้อมูลโดยทั่วไปนะคะ

00:31:24.463 --> 00:31:31.304
ต่างจาก Attribute ประเภทที่ 2 คือ Attribute ที่สามารถแบ่งย่อยได้ เช่น ชื่อ นามสกุล

00:31:31.304 --> 00:31:38.869
เราแยกกันกรอกได้ไหม ได้ แบ่งเป็นชื่อ คอลัมน์ 1 นามสกุลคอลัมน์ 1 ก็ได้นะคะ

00:31:40.562 --> 00:31:47.486
ต่อมาเป็น Key Attribute นะคะ ก็เป็นค่าเอกลักษณ์ จะต้องไม่ซ้ำกัน

00:31:47.728 --> 00:31:50.703
ในตารางนั้น ๆ ต้องค่านี้จะต้องไม่ซ้ำกัน

00:31:51.574 --> 00:31:58.519
โดยลักษณะเฉพาะของคีย์นะคะ มันจะมีการขีดเส้นใต้

00:31:59.486 --> 00:32:03.683
เพื่อแสดงว่ามันเป็นค่าที่ซ้ำกันไม่ได้

00:32:04.892 --> 00:32:08.144
เหมือนเวลาเราเรียนวิชาใด ๆ ก็ตาม

00:32:08.724 --> 00:32:13.568
ถ้าอันไหนมีการขีดเส้นใต้ มันเป็นการเน้นใช่ไหมคะในวิชาอื่น ๆ

00:32:13.568 --> 00:32:18.559
ในการวาดรูปก็เหมือนกัน วาดรูปในฐานข้อมูลก็เหมือนกัน แสดงว่าค่านั้นน่ะ

00:32:18.559 --> 00:32:22.945
เป็นจุดเน้นที่เราจะต้องให้ความสำคัญกับมันนะคะ

00:32:24.928 --> 00:32:29.786
กับข้อมูลนะคะ

00:32:30.270 --> 00:32:36.213
ที่มีเพียงค่าเดียวเท่านั้น เช่น คุณจะระบุว่าคุณจะเป็นเพศไหน คุณระบุมา

00:32:36.455 --> 00:32:43.439
อาจจะไม่มีแค่ชายหรือหญิง ตอนนี้คุณเป็นเพศอะไร ก็ระบุมานะคะ

00:32:43.874 --> 00:32:53.448
หรือค่าที่มีได้หลายค่า อย่างเช่น เบอร์บ้าน ถ้าแต่ละที่ก็จะมีรหัสพื้นที่ไม่เหมือนกัน

00:32:53.448 --> 00:33:00.586
กรุงเทพฯ ก็เป็น 02 สกลฯ ก็เป็น 042 ขอนแก่นก็ 043 อุดรฯ ก็ 042

00:33:01.118 --> 00:33:07.200
ใช่ไหมคะ มันก็ต้องระบุด้วยอย่างนี้นะคะ

00:33:07.200 --> 00:33:10.843
ถ้าค่าไหนมีได้หลายค่า อย่าลืมเป็นวงรี 2 เส้น

00:33:11.955 --> 00:33:17.945
กับค่าของข้อมูลที่ได้จากการคำนวณ เราจะใช้วงรีที่เป็นเส้นประ

00:33:17.945 --> 00:33:22.200
เช่น อายุที่ได้มาจากวันเกิดนะคะ

00:33:22.200 --> 00:33:27.761
หรือว่าวันเข้าทำงานจนถึงปัจจุบัน คุณทำงานมาแล้วกี่ปี

00:33:29.792 --> 00:33:33.273
อย่างนี้ก็ได้นะคะ ค่าที่ได้มาจากการคำนวณนั่นแหละ

00:33:35.836 --> 00:33:39.669
อันนี้เป็นตัวอย่าง Simple Attribute

00:33:40.201 --> 00:33:48.314
แยกให้ออกนะคะ อันไหนเป็น Attribute Attribute คือ วงรี ตัวนี้ ตัวนี้ ตัวนี้ ตัวนี้ ตัวนี้

00:33:49.330 --> 00:33:54.751
แล้วในสี่เหลี่ยมคืออะไร สี่เหลี่ยมคือ Entity ก็คือชื่อตารางนั่นเองนะคะ

00:33:56.492 --> 00:33:59.787
ตัวอย่างของ Attribute ที่แยกย่อยไปได้ เช่น

00:34:00.222 --> 00:34:05.672
ชื่อ นามสกุล อาจารย์ก็แยกออกมาเป็น FirstName LastName ก็คือชื่อกับนามสกุลไม่ได้

00:34:06.929 --> 00:34:10.722
ที่อยู่ บางคนอาจจะกรอกบรรทัดเดียวเลยก็ได้

00:34:12.221 --> 00:34:14.474
หรือคุณอาจจะออกแบบให้มัน

00:34:14.474 --> 00:34:20.000
บ้านเลขที่อยู่บรรทัดหนึ่ง ถนนบรรทัดหนึ่ง ตำบลบรรทัดหนึ่ง อำเภอ จังหวัด แยกกันหมดเลย

00:34:20.000 --> 00:34:21.980
ก็ได้นะคะ

00:34:22.319 --> 00:34:28.300
ถามว่าใช้สัญลักษณะแตกต่างไปไหม ไม่นะคะ ไม่ เหมือนกัน

00:34:28.639 --> 00:34:35.523
แต่ถามว่าเราลบอันนี้ออกได้ไหม ก็ได้นะคะ เพราะว่ามันจะได้ไม่เปลืองเนื้อที่อย่างนี้ก็ได้

00:34:35.523 --> 00:34:39.472
แล้วคุณก็กรอกไปเลย ชื่ออันหนึ่ง นามสกุลอันหนึ่ง อย่างนี้ก็ได้นะคะ

00:34:40.826 --> 00:34:48.484
คีย์ Attribute ค่าที่ห้ามซ้ำกัน ก็คือตารางนักเรียน อะไรที่ห้ามซ้ำกัน

00:34:48.871 --> 00:34:56.832
ก็คือรหัสนักเรียน อันนี้มันย่อมาจาก Student ID นะคะ Student

00:35:00.000 --> 00:35:01.832
Student ID

00:35:04.202 --> 00:35:10.671
ทำไมถึงรู้ว่าเป็น Student ID เพราะคำย่อแบบนี้ หรือชื่อทุกอย่างนี้

00:35:10.671 --> 00:35:13.477
จะต้องจดไว้ในพจนานุกรมข้อมูลด้วย

00:35:14.686 --> 00:35:18.474
ถามว่าอันนี้มันง่ายค่ะ มันเข้าใจง่ายค่ะว่ามันมาจากอะไร แต่ถ้า

00:35:18.474 --> 00:35:22.051
คนที่ไม่มีความรู้พื้นฐานเลย เขาจะรู้ไหมว่า SID คืออะไร

00:35:22.244 --> 00:35:25.739
อันนี้เดี๋ยวอีกเรื่องหนึ่งนะคะ เป็นอีกเรื่องหนึ่ง

00:35:27.093 --> 00:35:30.836
ถ้าเอาทุกอย่างมารวมกันใน 1 ตาราง

00:35:31.755 --> 00:35:37.987
สามารถมี Attribute หรือมีรูปแบบข้อมูลได้ทุกรูปแบบก็ได้นะคะ

00:35:37.987 --> 00:35:44.153
มีทั้งคีย์หลัก มีทั้ง Attribute ที่สามารถแบ่งย่อยได้

00:35:44.153 --> 00:35:50.367
มีทั้ง Attribute ที่ได้มาจากการคำนวณ คือ อายุ จะได้ค่ามาจากวัน เดือน ปีเกิด

00:35:51.092 --> 00:35:57.308
เบอร์โทรศัพท์ เป็น Multi-Valued ก็คือมีได้หลายค่า ก็ใส่วงรีซ้อนกัน

00:35:57.647 --> 00:36:02.461
อันนี้คือตัวอย่างนะคะ ตัวอย่างของ Attribute

00:36:03.138 --> 00:36:08.469
แต่เดี๋ยวเราอาจจะยังไม่เข้าใจ เดี๋ยววาดรูปก็น่าจะเข้าใจได้มากขึ้นนะคะ

00:36:09.726 --> 00:36:13.411
ต่อมา ความสัมพันธ์นะคะ

00:36:13.750 --> 00:36:17.993
มันเป็นความสัมพันธ์ของตารางตั้งแต่ 2 ตารางขึ้นไปนะคะ

00:36:18.283 --> 00:36:22.446
โดยความสัมพันธ์นี่ อาจจะมีข้อมูลที่ใช้ร่วมกัน

00:36:23.075 --> 00:36:27.350
สัญลักษณ์คือ สี่เหลี่ยมข้าวหลามตัดนะคะ

00:36:28.704 --> 00:36:34.336
เช่น ตารางพนักงาน อันนี้พนักงานนะคะ พนักงาน

00:36:36.319 --> 00:36:41.773
Work_in แปลว่า ทำงานอยู่ในแผนกอะไร ก็คือ Department

00:36:44.191 --> 00:36:50.076
โดยความสัมพันธ์ตัวนี้นี่ จะต้องสามารถอ่านไปข้างหน้า อ่านกลับย้อนหลังก็ได้

00:36:50.269 --> 00:36:55.015
อย่างเช่นยกตัวอย่างก็คือพนักงานทำงานอยู่ในแผนกอะไร

00:36:55.305 --> 00:37:02.190
หรือในแผนกนั้น ๆ มีใครทำงานอยู่บ้าง มันจะต้องเข้าใจได้แบบนี้นะคะ

00:37:02.190 --> 00:37:15.427
หรือการสั่งสินค้า อยู่ในใบสั่งสินค้าตัวไหนนะคะ สินค้าชนิดนั้น ๆ อยู่ในใบสั่งซื้ออะไร ก็ต้องดูได้

00:37:15.669 --> 00:37:18.476
สินค้า อย่างเช่น Power Bank

00:37:19.008 --> 00:37:25.445
อาจจะอยู่ได้ในหลายใบสั่งซื้อสินค้าก็ได้ เพราะสินค้าเรามีหลายตัวนะคะ

00:37:25.445 --> 00:37:30.000
ไม่ใช่ว่าขายให้แค่คนเดียว ขายให้ได้หลายคนนะคะ

00:37:31.548 --> 00:37:34.116
ความสัมพันธ์แบบ 1 ต่อ 1

00:37:36.679 --> 00:37:40.000
จะต้องเป็นความสัมพันธ์ที่มีสมาชิกคนเดียว

00:37:40.000 --> 00:37:45.314
มีความสัมพันธ์ไปอีกสมาชิกหนึ่งของอีกตารางหนึ่งเท่านั้นนะคะ

00:37:45.991 --> 00:37:52.218
เช่น เจ้าของรถ เป็นเจ้าของรถยนต์ได้ 1 คันนะคะ

00:37:52.218 --> 00:37:57.590
อันนี้สมมติ ๆ นะคะ คน 1 คน เป็นเจ้าของรถยนต์ได้ 1 คัน

00:37:58.509 --> 00:37:59.601
ใช่ไหม

00:38:01.777 --> 00:38:06.357
ใครเคยเห็นในทะเบียนรถยนต์ ใบทะเบียนรถยนต์จะต้องมีเจ้าของคนเดียวนะ

00:38:07.082 --> 00:38:14.920
ตัวอย่าง แต่ถ้าเปลี่ยนเป็นความสัมพันธ์แบบ 1 กับมากกว่า 1 ล่ะ นะคะ

00:38:15.307 --> 00:38:23.947
เช่น คน 1 คน มีรถยนต์ได้หลายคัน ใช่ไหม อยู่บ้านบางคนอาจจะมีรถยนต์มากกว่า 1 คน

00:38:24.721 --> 00:38:29.378
อาจจะมีรถเก๋ง มีรถกระบะ มีรถ 6 ล้อ

00:38:30.539 --> 00:38:40.000
พ่อเป็นเจ้าของรถหมดเลย ก็ได้ แต่ในบรรดารถทุกคันจะต้องมีเจ้าของคนเดียว

00:38:41.481 --> 00:38:45.353
อันนี้คือสิ่งที่เราต้องคิดด้วยนะคะ

00:38:46.030 --> 00:38:50.652
คน ๆ หนึ่ง มีรถได้หลายคนก็จริง แต่รถคนนั้น ๆ จะต้องมีเจ้าของได้คนเดียว

00:38:55.488 --> 00:38:58.749
กับความสัมพันธ์ที่มากกว่า 1

00:39:00.393 --> 00:39:04.097
เช่น ลูกค้าหลายคน

00:39:06.467 --> 00:39:14.282
ลูกค้า 1 คน สมมติเวลาเราไปซื้อของ เราจะต้องซื้อกับแคชเชียร์คนนี้ใช่ไหม เวลาจ่ายเงิน

00:39:14.572 --> 00:39:19.143
แต่แคชเชียร์คนนี้ก็สามารถรับลูกค้าได้หลายคนเหมือนกัน

00:39:19.143 --> 00:39:25.918
ลูกค้าหลายคนก็ไปจ่ายกับแคชเชียร์คนไหนก็ได้นะคะ ไม่จำเป็นต้องจ่ายเฉพาะคนนี้เท่านั้น

00:39:26.112 --> 00:39:31.306
เหมือนเวลาเราไปเดินห้างซื้อของใน Super

00:39:31.306 --> 00:39:35.304
วันวันหนึ่งเขามีลูกค้าหลายคนไหม มีหลายคนนะคะ

00:39:35.304 --> 00:39:38.296
คนคิดเงินก็มีหลายคนไหม มีหลายคนเหมือนกัน

00:39:38.296 --> 00:39:42.895
เพราะฉะนั้น วันนี้เราอาจจะเจอพนักงานคนหนึ่ง พรุ่งนี้อาจจะเจอคนใหม่ก็ได้

00:39:42.895 --> 00:39:46.285
เขาก็อาจจะไม่ได้เจอเราคนเดียว เขาก็เจอลูกค้าหลายคน

00:39:46.285 --> 00:39:49.187
อันนี้เป็นความสัมพันธ์ที่มากกว่า 1 ทั้ง 2 ฝั่ง

00:39:49.767 --> 00:39:52.985
ภาษาอังกฤษจะเรียกว่า Many-to-Many นะคะ

00:39:56.032 --> 00:40:04.236
อันนี้เป็นตัวอย่างความสัมพันธ์แบบ 1 ต่อ 1 จะเห็นได้ว่า เส้นที่เชื่อมความสัมพันธ์จะเป็นเส้นตรง

00:40:04.236 --> 00:40:09.728
มีตัวเลขกำกับเห็นไหมคะ จะมีตัวเลขกำกับด้วย

00:40:09.728 --> 00:40:13.782
เพราะฉะนั้น เวลาเราลากเส้นเชื่อมความสัมพันธ์ใด ๆ ก็ตาม

00:40:13.782 --> 00:40:20.783
จะต้องมีตัวเลข หรือตัวอักษรกำกับทุกครั้งนะคะ

00:40:21.944 --> 00:40:24.156
อันนี้เป็นความสำคัญแบบ 1 ต่อ 1

00:40:24.736 --> 00:40:29.645
ตัวแทนขายสินค้า ดูแลลูกค้าได้ 1 คน จริงไหม

00:40:31.870 --> 00:40:37.410
อาจจะไม่จริงเสมอไป ตัวแทน 1 คนอาจจะดูแลลูกค้าได้หลายคนก็ได้

00:40:37.410 --> 00:40:44.327
ถ้าเป็นลูกค้าหลายคน เราจะแทนด้วยตัว M หรือตัว N ก็ได้นะคะ M หรือ N ก็ได้

00:40:46.890 --> 00:40:50.867
แต่ต้องใส่ ถามว่าถูกต้องหรือยัง

00:40:51.786 --> 00:40:56.047
ตัวแทน 1 คน ดูแลลูกค้าได้หลายคน ถูก

00:40:56.918 --> 00:41:03.411
ลูกค้าหลาย ๆ คน ก็ได้รับการดูแลจากตัวแทน 1 คน ถูกไหม ก็ถูกนะคะ

00:41:03.604 --> 00:41:10.000
แบบนี้เป็นต้นมีการใส่คีย์หลัก มีการขีดเส้น

00:41:11.016 --> 00:41:17.799
อันนี้เป็นความสัมพันธ์ ก็คือเขาดูแลกัน ต้องใส่ ต้องระบุนะคะ

00:41:18.186 --> 00:41:25.552
แต่ถ้าเป็นความสัมพันธ์ที่มากกว่า 1 ทั้ง 2 ด้าน เราจะต้องใส่เป็น M กับ N เท่านั้น

00:41:25.552 --> 00:41:30.205
เราจะใส่เป็น M M อย่างนี้ ไม่ได้ ไม่ได้นะคะ

00:41:30.205 --> 00:41:34.921
ไม่ได้ เป็น N กับ N แบบนี้ได้ไหม ก็ไม่ได้

00:41:36.227 --> 00:41:42.107
ต้องเป็น M กับ N เพื่อให้สื่อความหมายได้ถูกว่ามันเป็นความสัมพันธ์ที่เชื่อมกัน

00:41:42.107 --> 00:41:46.075
ระหว่างเส้น 2 เส้นนี้นะคะ อันนี้เป็นตัวอย่าง

00:41:46.317 --> 00:41:52.244
เดี๋ยวพอวาดง่าย ๆ ก่อน น่าจะเข้าใจง่ายขึ้น

00:41:53.211 --> 00:42:03.509
กับอันนี้ออกสอบง่ายมาก อาจารย์อาจจะมีรูปภาพให้ แล้วให้พวกคุณเปลี่ยนเป็นตาราง

00:42:04.282 --> 00:42:12.678
ง่ายมากเลยนะคะ ก็คือข้อมูลที่อยู่ในกรอบสี่เหลี่ยม มันคือชื่อตารางใช่ไหมคะ

00:42:12.920 --> 00:42:17.063
คุณก็เอากรอบสี่เหลี่ยมออก แล้วก็เขียนชื่อตาราง

00:42:17.063 --> 00:42:22.913
อยู่ในวงรี คือ Attribute ก็เป็นคอลัมน์ของตาราง เสร็จแล้ว

00:42:27.556 --> 00:42:32.654
หรือถ้าอาจารย์ให้วาดรูป ทำอย่างไร จากตารางข้างล่าง

00:42:32.654 --> 00:42:36.202
ชื่อตรางใช่ไหมคะ ชื่อตารางก็เอามาใส่กรอบสี่เหลี่ยม

00:42:36.879 --> 00:42:43.031
คอลัมน์แต่ละคอลัมน์ก็เอามาใส่ในวงรี โยงเส้น เสร็จ

00:42:44.579 --> 00:42:45.830
แค่นั้นเอง

00:42:48.296 --> 00:42:51.876
อันนี้ออกสอบด้วยนะ นะคะ

00:42:53.037 --> 00:42:57.309
อาจจะไม่ง่ายอย่างนี้ แต่หลักการมีประมาณนี้ล่ะนะคะ

00:43:01.420 --> 00:43:09.057
กับถ้าสมมติว่า มันมีข้อมูลที่มันสามารถแบ่งแยกออกได้นะคะ

00:43:09.057 --> 00:43:15.316
จะเห็นได้ว่า ตอนก่อนหน้านี้ ที่อาจารย์ตัดตรงนี้ออก ใช่ไหม

00:43:15.558 --> 00:43:18.972
เวลาเราเอามาเขียนในรูปแบบของตาราง

00:43:19.214 --> 00:43:24.166
อันนี้เราจะไม่ใส่ เราจะดูเฉพาะ Attribute ที่อยู่ขอบนอกสุดเท่านั้น

00:43:27.455 --> 00:43:30.877
นะคะ เราจะเอาเฉพาะข้างนอกสุดมาเขียนลงเป็นตาราง

00:43:34.020 --> 00:43:39.374
อันนี้เป็น ดูดี ๆ นะ ข้อกำหนดแต่ละอันนะคะ

00:43:42.131 --> 00:43:50.912
กับถ้าตารางไหนมีข้อมูลที่สามารถมีได้หลายค่า เห็นไหมวงรีซ้อนกัน 2 วง

00:43:52.169 --> 00:43:55.975
เราจะเอาข้อมูลนั้นแยกมาเป็นอีก 1 ตาราง

00:43:58.973 --> 00:44:04.007
แต่คีย์หลักจะเอามาจากตารางเดิมนะคะ

00:44:04.926 --> 00:44:11.000
เพื่อให้ 2 ตารางนี้ มันเชื่อมโยงกัน โดยค่าคีย์หลักเชื่อมกัน

00:44:12.499 --> 00:44:18.668
อันนี้เป็นข้อสังเกตก่อนนะ อันนี้ก็ยังเป็นกฎที่ยังต้องใช้อยู่นะคะ

00:44:22.247 --> 00:44:29.697
กับอันไหนที่เป็นค่า ที่เป็น Weak Entity หรือว่าความสัมพันธ์แบบอ่อนแอ หรือตารางอ่อนแอ

00:44:30.568 --> 00:44:36.410
เราต้องดูด้วยว่ามันมีความสัมพันธ์กับตารางไหนนะคะ

00:44:36.410 --> 00:44:41.713
เราจะเอาคีย์หลักของตารางที่มันมีความสำคัญด้วย มาใส่ด้วยเหมือนกัน

00:44:42.487 --> 00:44:50.185
อย่างเช่น เดี๋ยวลบอันนี้ออกก่อน ทำไมถึงบอกว่าตารางด้านขวามือเป็นตารางอ่อนแอ

00:44:51.700 --> 00:44:52.543
เพราะ

00:44:55.945 --> 00:45:05.641
ในตารางนี้มีเวลาทำงาน มีเวลากลับบ้าน มีวันที่ แต่ถามว่าเป็นของใคร

00:45:07.382 --> 00:45:15.045
ใครน่ะมาทำงาน 7 โมง กลับ 4 โมงเย็น ใครมาทำงาน 8 โมง กลับ 2 ทุ่ม ไม่รู้

00:45:18.914 --> 00:45:23.552
เพราะฉะนั้น ต้องไปดูด้วยว่าพนักงานรหัสคนไหน

00:45:23.552 --> 00:45:27.643
ที่เขามาสแกนนิ้วทำงาน หรือตอกบัตรทำงาน

00:45:28.997 --> 00:45:35.489
นะคะ แต่ถามว่าในตารางนี้ทำไมเราไม่ให้กรอกรหัสพนักงานด้วยเลยล่ะ

00:45:35.924 --> 00:45:41.768
มันก็เป็นการซ้ำซ้อนกันไงคะ ในเมื่อเรามีรหัสพนักงานอยู่แล้ว เราก็เรียกใช้ได้เลย

00:45:41.768 --> 00:45:46.332
เราไม่จำเป็นต้องมาเพิ่มตรงนี้ก็ได้ อันนี้คือการออกแบบที่ดี

00:45:46.622 --> 00:45:50.499
ถ้าอันไหนซ้ำซ้อนกันเราจะไม่ใช้ เราจะดึงข้อมูลมันมาใช้เลย

00:45:50.499 --> 00:45:56.556
อันนี้คือข้อดีของการออกแบบฐานข้อมูลนะคะ อันนี้คือตัวอย่างอย่างหนึ่ง

00:45:59.409 --> 00:46:06.849
กับการเปลี่ยนให้เป็นตาราง ถ้าเมื่อกี้นี้ ในรูปนี้ อาจารย์ไม่ได้ใส่ความสัมพันธ์ใช่ไหมคะ

00:46:06.849 --> 00:46:09.839
ยังไม่มีเส้นเชื่อมโยงไปตารางอื่นใช่ไหม

00:46:12.982 --> 00:46:20.493
แต่ถ้ามันมีเส้นเชื่อมโยงไปตารางอื่นล่ะ นะคะ อันนี้เป็นความสัมพันธ์แบบ 1 ต่อ 1

00:46:24.555 --> 00:46:28.801
เราจะต้องเอาคีย์หลัก ไอ้ที่ขีดเส้นใต้นี่

00:46:30.000 --> 00:46:34.390
ของตารางด้านข้าง ที่เรามีความสัมพันธ์ด้วย มาใส่ในตารางเรา

00:46:35.599 --> 00:46:39.371
แต่ความสัมพันธ์แบบ 1 ต่อ 1 จะมีข้อได้เปรียบอย่างหนึ่ง คือ

00:46:40.580 --> 00:46:46.483
ในตารางแรก อาจจะเอารหัสลูกค้ามาเป็นคีย์เพื่อเชื่อมต่อกันก็ได้

00:46:46.483 --> 00:46:53.190
หรืออาจจะเอารหัสตัวแทนนะคะ มาเป็นตัวเชื่อมต่อกันก็ได้

00:46:54.302 --> 00:46:58.047
อันนี้เป็นความพิเศษเฉพาะ ตารางแบบ 1 ต่อ 1

00:46:58.821 --> 00:47:03.789
แต่จะต้องเอาคีย์หลักของตารางที่เรามีความสัมพันธ์ด้วย อาจจะเป็น เลือกมาตารางไหนก็ได้

00:47:03.789 --> 00:47:13.764
แต่ต้องมีนะคะ ต้องมี มันสามารถยืดหยุ่นได้นั่นเอง เฉพาะความสัมพันธ์แบบ 1 ต่อ 1 นะคะ

00:47:15.260 --> 00:47:20.102
แต่ถ้าเป็นความสัมพันธ์แบบ 1 ต่อกลุ่ม

00:47:21.456 --> 00:47:26.307
จะต้องเอาคีย์หลักของฝั่งที่มีความสัมพันธ์เป็น 1

00:47:27.371 --> 00:47:31.310
มาใส่ในตารางที่มีความสัมพันธ์แบบกลุ่มเท่านั้น

00:47:33.728 --> 00:47:41.760
อันนี้เป็นลักษณะเฉพาะนะคะ ลักษณะเฉพาะของความสัมพันธ์แบบ 1 ต่อกลุ่ม

00:47:44.323 --> 00:47:51.585
แต่ถ้าเป็นความสัมพันธ์แบบกลุ่มต่อกลุ่มล่ะ เห็นไหมคะ เป็น M กับ N

00:47:54.100 --> 00:48:02.449
เราจะไม่เอาตาราง... เอ้ย ไม่เอาค่าคีย์หลักมาใส่ในตาราง แต่เราจะสร้างตารางใหม่ขึ้นมา

00:48:03.368 --> 00:48:08.433
โดยใช้คีย์หลักของทั้ง 2 ตารางที่มีความสัมพันธ์กัน มาสร้างเป็นตารางใหม่เลย

00:48:13.221 --> 00:48:18.663
จำลักษณะ 3 อย่างนี้ให้ดีนะคะ 1 ต่อ 1, 1 ต่อ กลุ่ม กับกลุ่มต่อกลุ่ม

00:48:18.856 --> 00:48:26.712
การเอามาสร้างเป็นตาราง ลักษณะเฉพาะมี 3 แบบ แบบแรก คือ เอาคีย์หลักฝั่งไหนก็ได้

00:48:27.244 --> 00:48:31.566
แบบที่ 2 คือเอาเฉพาะคีย์หลักของฝั่งที่เป็นความสัมพันธ์ที่เป็น 1 เท่านั้น

00:48:32.146 --> 00:48:39.743
แบบที่ 3 คือ เอาคีย์หลักของทั้ง 2 ความสัมพันธ์มาสร้างตารางใหม่เลยนะคะ

00:48:40.000 --> 00:48:47.051
อันนี้ก็คือลักษณะเฉพาะของการเปลี่ยนรูปภาพให้เป็นตารางนะคะ

00:48:47.051 --> 00:48:51.071
เดี๋ยวจะมีให้ทำด้วย บางคนจะจำไม่ได้

00:48:52.377 --> 00:48:55.920
การออกแบบนะคะ ก็อันนี้พูดไปแล้ว

00:48:57.951 --> 00:49:00.055
เราจะมาลองวาดรูปกัน

00:49:02.667 --> 00:49:10.526
ให้ น่าจะเคยไปร้านหนังสือกัน หรืออาจจะเคยเห็นหนังสืออยู่แล้วนะ นะคะ

00:49:11.590 --> 00:49:12.906
ในหนังสือ 1 เล่ม

00:49:14.357 --> 00:49:24.990
จะมีอะไรบ้าง แน่นอน ข้อมูลหนังสือแต่ละเล่มก็จะมีรหัสหนังสือนะ

00:49:25.570 --> 00:49:33.454
มีชื่อหนังสือ มีรหัสผู้แต่ง รหัสสำนักพิมพ์ อันนี้คือข้อมูลที่อาจารย์ให้ก่อนนะ

00:49:33.454 --> 00:49:35.760
เดี๋ยวเรามาวาดรูปกัน

00:49:36.244 --> 00:49:44.260
ในข้อมูลของคนแต่งหนังสือมีอะไรบ้าง ก็จะมีรหัสของผู้แต่งคนนั้นนะคะ มีชื่อผู้แต่งหนังสือ

00:49:45.324 --> 00:49:49.566
ในข้อมูลสำนักพิมพ์ ก็จะมีรหัสสำนักพิมพ์

00:49:49.759 --> 00:49:58.668
มีชื่อสำนักพิมพ์ มีที่อยู่ มีเบอร์โทรศัพท์นะคะ ขั้นตอนแรก

00:50:01.231 --> 00:50:10.032
ศึกษาก่อน ในระบบร้านหนังสือ ก็คือข้อมูลที่อาจารย์ให้เมื่อกี้ มันจะมีข้อมูลหนังสือนะคะ

00:50:10.032 --> 00:50:14.236
มีข้อมูลคนแต่ง มีข้อมูลสำนักพิมพ์

00:50:16.122 --> 00:50:23.433
มีกระดาษใช่ไหม พลอย โอเค ขั้นตอนต่อมา

00:50:25.174 --> 00:50:31.754
กำหนด Entity เดี๋ยวจะให้ทำเอง ก็คือในข้อมูลที่อาจารย์ให้อันนี้

00:50:33.108 --> 00:50:43.832
มันจะต้องมีกี่ Entity หรือกี่ตาราง ทำสิ ใช้สัญลักษณ์ให้ถูกด้วยนะคะ เดี๋ยวอาจารย์จะเดินดู ทำเลย

00:50:56.599 --> 00:51:03.623
นี่ จากข้อมูลนี้ ข้อมูลตัวหนังสือสีดำ ๆ นี่ ดำ ๆ เข้ม ๆ นี่ เราควรมีกี่ตาราง

00:51:06.427 --> 00:51:15.975
วาดรูป นี่ วาดรูปแบบนี้ จะให้วาดแบบนี้ ง่าย ๆ วาดแบบนี้ ให้วาดรูป

00:51:15.975 --> 00:51:19.767
ให้เอาข้อมูลน่ะ มาวาดเป็นรูปแบบนี้ แต่อย่างแรกเลย

00:51:20.686 --> 00:51:27.142
ดูก่อนว่าข้อมูลที่อาจารย์ให้นี่ มันควรจะมีกี่ตาราง

00:51:28.641 --> 00:51:35.966
ดูสิว่ามันต้องมีกี่ตาราง สัญลักษณ์ของตาราง หรือ Entity ก็คือ สี่เหลี่ยมผืนผ้า

00:51:36.837 --> 00:51:44.751
ลองวาดสิ น่า... มันควรจะมีสี่เหลี่ยมผืนผ้ากี่อัน แล้วในสี่เหลี่ยมผืนผ้า จะต้องเขียนว่าอะไร

00:51:45.283 --> 00:51:46.533
ลองทำดู

00:54:26.833 --> 00:54:28.332
อันนี้ยังไม่ยาก

00:54:35.635 --> 00:54:42.886
สรุปแล้วมีกี่ตาราง อันนี้ง่ายมาก ดูจากที่อาจารย์เน้นตัวหนังสือสีดำเข้มไว้

00:54:43.805 --> 00:54:46.252
เราจะได้ 3 ตาราง

00:54:47.800 --> 00:54:59.470
ในกรอบสี่เหลี่ยม มีตารางผู้แต่ง มีตารางหนังสือ มีตารางสำนักพิมพ์ ก็คือ 3 Entity นั่นเองนะคะ

00:54:59.663 --> 00:55:08.499
จากโจทย์ที่อาจารย์กำหนดให้นะ ที่อาจารย์เน้นให้ อันนี้จะให้ทำเอง

00:55:09.756 --> 00:55:14.397
หลังจากเราได้ตารางหรือ Entity แล้วนะคะ

00:55:15.606 --> 00:55:22.315
มันจะต้องกำหนดความสัมพันธ์ นี่ ๆ ความสัมพันธ์ ก็คือเส้นที่โยงแต่ละ ของ 3 อันนี้

00:55:22.315 --> 00:55:24.153
เราจะโยงเส้นมันอย่างไร

00:55:26.909 --> 00:55:30.935
โดยความสัมพันธ์ของแต่ละอัน มันควรจะเป็นอย่างไร

00:55:32.047 --> 00:55:40.607
สิ่งที่มันควรจะเป็นก็คือหนังสือแต่ละเล่ม จะถูกพิมพ์จากสำนักพิมพ์ใดสำนักพิมพ์หนึ่งเท่านั้น

00:55:42.735 --> 00:55:43.703
ใช่ไหม

00:55:46.846 --> 00:55:53.957
แต่ว่าใน 1 สำนักพิมพ์ เขาก็สามารถพิมพ์หนังสือได้หลายเล่มนะ

00:55:54.876 --> 00:55:57.299
อันนี้คือเงื่อนไข ๆ

00:56:01.023 --> 00:56:07.209
หนังสือแต่ละเล่ม กำหนดว่าจะต้องมีคนแต่งคนเดียวเท่านั้น

00:56:10.836 --> 00:56:15.566
แต่ในโลกของความเป็นจริงนี่ หนังสือนี่ มันอาจจะมีคนแต่งช่วยกันก็ได้นะ

00:56:15.566 --> 00:56:21.505
แต่ว่าในโจทย์ของที่อาจารย์ให้ อาจารย์ให้หนังสือ 1 เล่ม คนแต่งได้คนเดียวเท่านั้น

00:56:21.505 --> 00:56:26.924
อันนี้คือโจทย์ที่อาจารย์กำหนดนะคะ แต่ว่า

00:56:27.795 --> 00:56:33.444
ผู้แต่งหนังสือแต่ละคน เขาก็สามารถแต่งหนังสือได้หลายเล่มเหมือนกัน

00:56:37.748 --> 00:56:44.146
อันนี้คือข้อกำหนดที่อาจารย์กำหนดให้นะคะ แล้ว

00:56:45.162 --> 00:56:53.507
เราจะให้ความสัมพันธ์แต่ละอันอย่างไร ก็คือการวาด นี่ ๆ วาดแบบนี้

00:56:55.780 --> 00:57:00.892
นี่ มันจะเป็นการวาดแบบนี้นะคะ ความสัมพันธ์จะเป็นแบบนี้

00:57:06.212 --> 00:57:09.647
อันนี้คือความสัมพันธ์ที่นักศึกษาต้องวาด

00:57:13.772 --> 00:57:22.458
จากโจทย์ตัวนี้นะคะ จากโจทย์ตัวนี้ ไอ้ 3 อันนี้ มันจะต้องสัมพันธ์กันอย่างไร

00:57:26.907 --> 00:57:28.946
ลองวาดดูสิ

00:57:32.504 --> 00:57:40.377
ลองวาดดู รูปมันจะต้องออกมาเป็นแบบนี้นะคะ แต่ข้อมูลข้างในนี่ เราจะใส่ว่าอย่างไร ลองใส่ดู

00:57:42.505 --> 00:57:45.850
เดี๋ยวให้เวลา 5 นาที

00:57:50.588 --> 00:57:56.486
ลองดูสิว่า จะเข้าใจโจทย์อาจารย์ไหม จะวาดได้หรือเปล่า 5 นาทีเดี๋ยวดูกัน

01:00:51.136 --> 01:00:57.693
เดี๋ยวเอาตัวอย่างให้ดูอีกอันหนึ่ง แล้วที่เหลือลองทำดูสิ นะคะ เดี๋ยวลบอันนี้ก่อน

01:01:05.431 --> 01:01:11.327
ให้ตัวอย่าง 1 อันก่อน ให้วาดแบบนี้ค่ะ เช่น ผู้แต่ง 1 คน

01:01:12.923 --> 01:01:18.310
ในโจทย์ที่อาจารย์บอก แต่งหนังสือ 1 เล่มใช่ไหมคะ แต่หนังสือหลาย ๆ นี่

01:01:18.503 --> 01:01:23.439
ก็มีผู้แต่งได้แค่คนเดียว แต่เขาแต่งได้หลายเล่มใช่ไหม เพราะฉะนั้น ความสัมพันธ์ก็คือ

01:01:23.439 --> 01:01:28.531
ผู้แต่ง 1 คน สามารถแต่งหนังสือได้หลายเล่ม

01:01:29.015 --> 01:01:35.770
แต่ถ้าเราอ่านย้อนกลับ หนังสือหลาย ๆ เล่มนี่ มีผู้แต่งแค่ 1 คน

01:01:39.252 --> 01:01:41.089
อันนี้ยกตัวอย่างให้ 1 อันแล้ว

01:01:44.136 --> 01:01:50.057
ที่เหลือลองวาดดูสิ ให้มันได้เหมือนของอาจารย์นี่ ที่เหลือมันควรจะเป็นอย่างไร

01:01:51.218 --> 01:01:56.092
ลองดูสิ เริ่มให้แล้ว 1 อัน ที่เหลือลองทำดูก่อน

01:04:16.284 --> 01:04:25.042
ที่เหลือ หนังสือหลาย ๆ เล่ม จะต้องถูกพิมพ์จาก 1 สำนักพิมพ์เท่านั้น

01:04:27.847 --> 01:04:32.444
ใช่ไหม อันนี้ตามโจทย์ที่อาจารย์กำหนดนะคะ

01:04:33.460 --> 01:04:42.107
ถ้าเราเอามารวมกันในความสัมพันธ์นะคะ มันอาจจะเขียนได้เป็นแบบนี้นะคะ

01:04:42.107 --> 01:04:45.766
ผู้แต่ง 1 คน แต่งหนังสือได้หลายเล่ม

01:04:47.555 --> 01:04:53.602
และหนังสือหลาย ๆ เล่ม จะต้องถูกจัดพิมพ์จาก 1 สำนักพิมพ์เท่านั้น

01:04:54.473 --> 01:04:59.346
อันนี้คือรูปความสัมพันธ์ที่เกิดขึ้นนะคะ

01:05:00.000 --> 01:05:06.236
อันนี้ยังง่ายอยู่ พอเห็นภาพขึ้นบ้างไหมนะคะ

01:05:06.961 --> 01:05:12.956
อันนี้ยังง่าย อันนี้พอเราอ่าน ถ้าเป็นคนที่ไม่มีความรู้ทางด้านคอมพิวเตอร์มาอ่าน

01:05:13.149 --> 01:05:20.874
เขาก็ยังจะเข้าใจนะคะ อันนี้คือการวาดรูป มันเลยทำให้เราเข้าใจง่ายขึ้น

01:05:20.874 --> 01:05:27.406
แล้วก็จัดระเบียบความคิดของเราได้ว่า สิ่งที่มันควรจะเป็นในฐานข้อมูลมันควรจะเป็นอย่างไรนะคะ

01:05:31.807 --> 01:05:38.830
ต่อมา ง่ายแล้ว อันนี้ยิ่งง่าย พอเราได้ความสัมพันธ์ เราได้ Entity แล้ว

01:05:39.507 --> 01:05:43.818
เราต้องมาเขียนว่าในแต่ละตาราง

01:05:44.785 --> 01:05:53.374
มันควรจะมีข้อมูลอะไร แล้วอะไรจะเป็นคีย์หลัก ก็คือค่าที่ห้ามซ้ำกัน ที่เราต้องขีดเส้นน่ะค่ะ

01:05:53.858 --> 01:05:55.652
เอามาจากตรงไหน

01:05:56.813 --> 01:05:58.362
มาจากตรงนี้

01:06:00.000 --> 01:06:06.313
เรารู้แล่วว่าอันไหนคือชื่อตาราง ก็คือชื่อ Entity แล้วข้อมูลมีอะไรบ้าง

01:06:06.313 --> 01:06:15.955
มันก็แค่ เอาข้อมูลที่อาจารย์กำหนดให้นี่ค่ะ ไปใส่ในรูปวงรี ใช่ไหม คือ Attribute

01:06:16.390 --> 01:06:24.232
แต่มันจะยาก ก็คือในแต่ละข้อมูล อะไรจะเป็นคีย์หลัก ก็คือค่าที่ห้ามซ้ำกัน

01:06:25.006 --> 01:06:33.377
ลองวาดดู อาจารย์เอาให้หมดแล้ว 3 อันนี้ จะต้องมีข้อมูลอะไรบ้างกำหนดอยู่

01:06:33.861 --> 01:06:42.802
อันที่ยากก็คือเราจะเส้นใต้ในข้อมูลตัวไหนนะคะ อันนี้ บอกไปแล้ว ทำเอง ลองดูสิ

01:06:44.011 --> 01:06:49.096
ลองดูสิ มันจะได้รูปเหมือนกับของอาจารย์ไหม ลองทำดู

01:06:50.353 --> 01:06:56.122
แค่เอาข้อมูลที่อาจารย์กำหนดให้ในสไลด์ก่อนหน้านี้ค่ะ มาใส่ แค่นั้นเอง

01:06:56.509 --> 01:06:59.647
เดี๋ยวให้ลองทำเองดูว่าเหมือนกันไหม

01:07:07.385 --> 01:07:10.066
5 นาทีเหมือนเดิม

01:07:34.375 --> 01:07:44.053
เดี๋ยววันนี้ไม่เสร็จ ให้ 1 ตัวอย่างก่อน มันต้องแบบนี้ อีก 2 อันที่เหลือทำเอง เอาตัวอย่างให้ดูก่อน

01:07:46.471 --> 01:07:49.513
ได้ตารางหนังสือแล้ว

01:07:50.000 --> 01:07:57.236
เหลือตารางสำนักพิมพ์กับตารางผู้แต่ง ลองทำอีกสิ อีก 2 อันที่เหลือ ให้รูปมันออกมาเป็นแบบนี้

01:07:57.623 --> 01:07:59.051
ต้องทำอย่างไร

01:08:04.081 --> 01:08:07.787
ยกตัวอย่างให้ก่อน เดี๋ยวไม่เข้าใจ

01:08:16.105 --> 01:08:23.211
เห็นไหมว่าอาจารย์กำหนดคีย์ด้วย ก็คือเราขีดเส้นใต้รหัสหนังสือน่ะ ห้ามซ้ำกัน

01:08:23.840 --> 01:08:27.473
อีก 2 อันที่เหลือ อันไหนต้องห้ามซ้ำกัน

01:08:27.908 --> 01:08:33.602
แล้วทำไมในตารางหนังสืออาจารย์ถึงมีรหัสสำนักพิมพ์ด้วย ทำไมต้องมี

01:08:34.279 --> 01:08:40.511
ต้องมีเพราะว่าเราจะได้รู้ว่าหนังสือเล่มนี้ สำนักพิมพ์ไหนเอามาขาย

01:08:43.316 --> 01:08:48.068
ใช่ไหม อันนี้ไอ้รหัสสำนักพิมพ์นี่ คือคีย์นอก

01:08:51.115 --> 01:08:56.909
ซึ่งเอาไว้เชื่อมโยงไปดูว่าสำนักพิมพ์ชื่ออะไร อยู่ที่ไหน เบอร์โทรศัพท์อะไร

01:08:56.909 --> 01:09:05.001
ไม่จำเป็นต้องเอาข้อมูลมาทั้งหมด เอามาแค่รหัสก็พอ ในการเชื่อมโยงกัน 2 ตารางนะ

01:09:05.243 --> 01:09:14.035
ลองวาดดูสิ อีก 2 อันที่เหลือ ในผู้แต่งต้องมีอะไร ในสำนักพิมพ์ต้องมีอะไร ลองวาดดูสิ

01:12:14.933 --> 01:12:19.675
เห็นไหม ผู้แต่งได้หรือยัง เหมือนกันหรือเปล่า

01:12:20.000 --> 01:12:27.165
อันนี้ง่ายมากเลย ก็เอาข้อมูลที่อาจารย์ให้มาวาดแค่นั้นเอง ใช่ไหม

01:12:32.581 --> 01:12:34.507
สำนักพิมพ์

01:12:36.683 --> 01:12:40.000
ก็เป็นแบบนี้ เพราะอาจารย์ให้ข้อมูลไปหมดแล้ว

01:12:45.513 --> 01:12:46.817
พอเราวาดเสร็จ

01:12:48.558 --> 01:12:50.437
ได้องค์ประกอบทุกอย่าง

01:12:52.662 --> 01:12:56.449
รูปที่สมบูรณ์ มันเลยเป็นแบบนี้

01:12:57.706 --> 01:13:02.291
ใช่ไหม จากข้อมูลที่อาจารย์ให้ทั้งหมด พอมาวาดรูป

01:13:03.597 --> 01:13:04.783
เหมือนกันเลย

01:13:05.944 --> 01:13:13.243
แค่เอาข้อมูลที่ได้น่ะค่ะ จากตัวหนังสือเป็นยาว ๆ เฟื้อย ๆ นี่ เราก็เอามาวาดเป็นรูป

01:13:14.355 --> 01:13:20.367
แล้วมันจะได้เช็กได้ว่าเราขาดข้อมูลตรงไหนหรือเปล่านะคะ

01:13:20.609 --> 01:13:27.192
ข้อมูลมันยังสามารถเติมตรงไหนได้อีก มันเป็นไปอย่างที่เราเข้าใจไหม

01:13:27.192 --> 01:13:35.418
ในตัวของสมมติว่า เขามาจ้างให้เราออกแบบ ข้อมูลเข้าใจตรงกันหรือเปล่านะคะ

01:13:35.418 --> 01:13:38.514
หรือเขาอยากให้เอาข้อมูลอะไรเข้ามาอีก

01:13:40.400 --> 01:13:49.391
แต่ถ้าเป็นการออกแบบฐานข้อมูลจริง ๆ ที่ใช้กันในชีวิตประจำวัน ถามว่าแค่นี้พอไหม

01:13:49.391 --> 01:13:57.231
ไม่พอนะคะ อันนี้เป็นแค่ตัวอย่างที่อยากให้คุณทำ ฐานข้อมูลจริง ๆ มันจะเป็นอย่างไร

01:13:57.521 --> 01:13:59.334
มันจะเป็นแบบนี้เลย

01:14:01.172 --> 01:14:07.165
เห็นไหมคะ ว่าร้านหนังสือร้านหนึ่ง มันไม่ได้มีแค่เท่าเมื่อกี้ มันต้องเป็นแบบนี้

01:14:09.003 --> 01:14:17.592
เมื่อกี้มันน้อยมาก แต่ถ้าเราทำงานจริง ๆ ข้อมูลมันจะเยอะขนาดนี้เลยนะคะ

01:14:17.592 --> 01:14:26.192
ข้อมูลจะเยอะขนาดนี้เลย เพราะฉะนั้นวันนี้มีสิ่งที่ให้นักศึกษาไปทำ

01:14:26.192 --> 01:14:28.338
อาจารย์กำหนดข้อมูลให้แล้วด้วย

01:14:29.692 --> 01:14:32.978
ให้วาดรูปเหมือนเมื่อกี้นี้ค่ะ เหมือนที่อาจารย์ยกตัวอย่าง

01:14:32.978 --> 01:14:44.849
แต่คราวนี้จะเป็นการขายคอมพิวเตอร์นะคะ โดยข้อกำหนด คือ ลูกค้ามีได้หลายคน

01:14:45.816 --> 01:14:57.426
แล้วก็สามารถซื้อสินค้าได้หลายชิ้นนะคะ แล้วก็ 1 ใบเสร็จรับเงิน ก็มีสินค้าได้หลายชิ้นเหมือนกัน

01:14:57.426 --> 01:15:02.880
มีชิ้นเดียวได้ไหม ได้ แต่มีมากกว่า 1 ชิ้นก็ได้เหมือนกันนะคะ

01:15:04.234 --> 01:15:10.536
ในแต่ละใบเสร็จ จะต้องมีแคชเชียร์หรือพนังานขายแค่คนเดียวเท่านั้น

01:15:10.536 --> 01:15:18.081
อันนี้คือเรื่องทั่วไปเลยนะคะ เหมือนเวลาเราไปซื้อของในห้าง คนคิดเงินให้เราก็มีคนเดียวใช่ไหม

01:15:23.401 --> 01:15:28.336
แล้วก็ต้องมีการแยกประเภทสินค้าด้วยนะคะ

01:15:29.593 --> 01:15:36.055
เช่น เหมือนเวลาเราไปห้างมันก็จะแยกกัน เครื่องครัวอยู่ที่หนึ่ง ที่นอนอยู่ที่หนึ่ง ใช่ไหม

01:15:36.490 --> 01:15:42.090
ของกินอยู่ที่หนึ่ง อันนี้คือการแยก คอมพิวเตอร์ก็เหมือนกันนะคะ

01:15:43.396 --> 01:15:55.764
โดยที่อาจารย์กำหนดให้แล้วนะคะ ว่ามันควรจะมีตารางอะไรบ้าง มี 5 ตาราง

01:15:57.650 --> 01:16:06.281
นะคะ 5 ตาราง ก็จะเป็นตารางลูกค้า ตารางพนักงานขาย ตารางรายละเอียดของสินค้า

01:16:06.281 --> 01:16:15.110
ตารางประเภทสินค้า ตารางใบเสร็จ อันนี้อาจารย์กำหนดให้แล้วนะคะ

01:16:15.545 --> 01:16:22.729
ว่าควรจะมีข้อมูลอะไรบ้าง ให้เราไปวาดรูปมา ทำเอง

01:16:22.729 --> 01:16:27.795
ใช้หลักการเดียวกันกับเหมือนที่อาจารย์ยกตัวอย่างไปเมื่อกี้นี้นะคะ

01:16:27.795 --> 01:16:34.583
ลองวาดดูสิว่ารูปที่ได้จะเป็นอย่างไรนะ อันนี้เป็นการบ้าน

01:16:36.131 --> 01:16:45.055
สำหรับวันนี้ไม่มีอะไร แค่นี้ก็ปวดหัวมากแล้ว ถ้าใครจะนั่งวาดรูปต่อก็ได้ แต่ต้องส่งนะคะ ต้องส่ง

01:16:45.877 --> 01:16:53.764
วันนี้ก็ประมาณนี้ มาครบทุกคน เดี๋ยวให้ไปปวดหัววาดรูปต่อนะ

01:16:53.764 --> 01:17:00.452
ปกติวาดรูปไม่เคยปวดหัวเท่านี้มาก่อนเลย วันนี้ไปลองดู ที่แน่ ๆ มีกี่ตารางนี่

01:17:00.452 --> 01:17:04.980
5 ตาราง ไปวาดมาสิ ว่าในแต่ละตารางมันควรมีข้อมูลอะไรบ้าง

01:17:04.980 --> 01:17:10.000
จากที่เมื่อกี้อาจารย์กำหนดให้ ลองกำหนดเองสิว่ามันต้องมีอะไร

01:17:10.000 --> 01:17:16.430
นะคะ แล้วทำส่งอาจารย์ ใส่กระดาษวาดรูปนี่แหละ วาดมานะคะ ความสัมพันธ์ให้ครบด้วย

01:17:16.430 --> 01:17:21.277
อันไหนเป็นค่าที่ห้ามซ้ำกันอย่าลืมขีดเส้นให้อาจารย์ด้วยนะคะ

01:17:21.277 --> 01:17:27.832
วันนี้ก็ประมาณนี้ค่ะ ขอบคุณมากนะคะ ขอบคุณล่ามด้วย ขอบคุณถอดความด้วยนะคะ

01:17:30.000 --> 01:17:32.545
โอเคค่ะ เจอกันสัปดาห์หน้าค่ะ

