วันอาทิตย์ที่ 28 กรกฎาคม พ.ศ. 2562

วันไหว้ครู

           Teacher's day  📙 🙏  
               

        
Image result for วันไหว้ครู รูป
.
.
.

ในภาพอาจจะมี NongNess Khoonchandee

ฉันได้รับมอบหมายในการเป็นผู้นำสวดบูชาครู
.
.
.
ในภาพอาจจะมี หนึ่งคนขึ้นไป และผู้คนกำลังนั่ง

ฉันเล่นคีย์บอร์ดการขับร้องประสานเสียง เพลง พระคุณที่สาม
.
.
.

 พวกเราชั้ยมัธยมศึกษาปีที่ 3 ร่วมไหว้คุณครูที่ปรึกษา และคุณครูรายวิชาต่างๆ
ในภาพอาจจะมี 19 คน, รวมถึง NongNess Khoonchandee, Rita Charita Onphuthorn และ GT SJ, คนที่ยิ้ม, ผู้คนกำลังนั่ง      

วันพฤหัสบดีที่ 27 มิถุนายน พ.ศ. 2562

Lego Mindstorms

Lego Mindstorms

1. Know how to use and learn about application Lego Mindstorms. 🤖

    -Practice English language skills. ✔
  
Image result for lego mindstorm use application



2. Problem solving skills. 🔎

    - Such as
                 The pieces of lego disappear. we have to solve problems, by creativity the new format.


3. Teamwork 👋💭

         - Help each other.
         - Exchange the ideas together.




       If you follow 3 of skills⬆, you can do it❗✔


Add caption

  



วันศุกร์ที่ 18 พฤษภาคม พ.ศ. 2561

วิทยาการคำนวณ ม.1

เรื่อง เทคโนโลยีคอมพิวเตอร์


        คอมพิวเตอร์เป็นเครื่องมืออิเล็กทรอนิกส์ที่สามารถจดจำข้อมูลต่างๆ และปฏิบัติตามคำสั่งที่บอกเพื่อให้คอมพิวเตอร์ทำงานอย่างใด  อย่างหนึ่ง ในคอมพิวเตอร์นั้นประกอบด้วยอุปกรณ์ต่างๆ ต่อเชื่อมกันเรียกว่า Hardwareและอุปกรณ์ Hardware นี้จะต้อง  ทำงานร่วมกับโปรแกรมคอมพิวเตอร์หรือเรียกว่า Software 
     Hardware
       
                - อุปกรณ์รับข้อมูล (Input) 
                - อุปกรณ์ส่งข้อมูล (Output)
                 - หน่วยประมวลผลกลาง
                 - หน่วยความจำหลัก
                 - หน่วยความจำรอง


  
 Software
      

                 - ซอฟต์แวร์ระบบ
                 - ซอฟต์แวร์ประยุกต์

     

            ซอฟต์แวร์ระบบ =มีหน้าที่ควบคุมระบบต่างๆ ภายในคอมพิวเตอร์ และเป็นตัวกลางระหว่างผู้ใช้กับคอมพิวเตอร์หรือ Hardware
                ซอฟต์แวร์ประยุกต์ =เป็นโปรแกรมที่เขียนขึ้นเพื่อทำงานเฉพาะด้านตามความต้องการของผู้ใช้งาน

ระบบคอมพิวเตอร์


1. ฮาร์ดแวร์ (Hardware)

1.1. หน่วยรับข้อมูล

1.2. หน่วยประมวลกลาง

1.2.1. หน่วยควบคุมหน้าที่

1.2.2. หน่วยคำนวณและตรรกทำหน้าที่

1.3. หน่วยแสดงผล

1.3.1. หน้าจอภาพ

1.3.2. เครื่องพิมพ์

1.4. หน่วยความจำภายใน

1.4.1. หน่วยความจำภายใน

1.4.2. หน่วยความจำสำรอง

2. บุคลากราทางคอมพิวเตอร์ (People ware)

2.1. ผู้บริหาร

2.1.1. ทำหน้าที่วางแนวนโยบายในส่วนที่เกี่ยวกับคอมพิวเตอร์

2.2. นักวิเคราะห์และนักออกแบบระบบ

2.2.1. ทำหน้าที่วางแผนและออกแบบระบบงานเพื่อนำเอาระบบคอมพิวเตอร์เข้ามาใช้งาน

2.3. นักเขียนโปรแกรม

2.3.1. ทำหน้าที่เขียนและสร้างชุดคำสั่งเพื่อควบคุมให้คอมพิวเตอร์ทำงาน

2.4. ผู้ปฏิบัติการ

2.4.1. ทำหน้าที่ควบคุมเครื่องเตรียมข้อมูลและป้อนข้อมูลเข้าสู่ระบบคอมพิวเตอร์

3. ซอฟต์แวร์ (Software)

3.1. โปรแกรมจัดระบบ

3.1.1. โปรแกรมควบคุมเครื่อง

3.1.2. ระบบปฏิบัติการ

3.2. โปรแกรมประยุกต์

3.2.1. โปรแกรมสำเร็จรูปต่างๆ

3.3. โปรแกรมแปลภาษา

3.3.1. คอมไพเจอร์

3.3.2. อินเตอร์พรีเตอร์

3.4. โปรแกรมอรรถประโยชน์

3.4.1. โปรแกรมจำกัดไวรัสคอมพิวเตอร์

3.4.2. โปรแกรมที่ใช้บีบอัดข้อมูล

ระบบปฏิบัติการ

 (operating system) หรือ โอเอส (OS) เป็นระบบซอฟต์แวร์ที่ทำหน้าที่จัดการอุปกรณ์คอมพิวเตอร์และแหล่งซอฟต์แวร์และบริการโปรแกรมคอมพิวเตอร์
ระบบปฏิบัติการมีหน้าที่หลัก ๆ คือ การจัดสรรทรัพยากรในเครื่องคอมพิวเตอร์ เพื่อให้บริการซอฟต์แวร์ประยุกต์ ในเรื่องการรับส่งและจัดเก็บข้อมูลกับฮาร์ดแวร์ เช่น การส่งข้อมูลภาพไปแสดงผลที่จอภาพ การส่งข้อมูลไปเก็บหรืออ่านจากฮาร์ดดิสก์ การรับส่งข้อมูลในระบบเครือข่าย การส่งสัญญานเสียงไปออกลำโพง หรือจัดสรรพื้นที่ในหน่วยความจำ ตามที่ซอฟต์แวร์ประยุกต์ร้องขอ รวมทั้งทำหน้าที่จัดสรรเวลาการใช้หน่วยประมวลผลกลาง ในกรณีที่อนุญาตให้ซอฟต์แวร์ประยุกต์หลายๆ ตัวทำงานพร้อมๆ กัน
ระบบปฏิบัติการ ช่วยให้ตัวซอฟต์แวร์ประยุกต์ ไม่ต้องจัดการเรื่องเหล่านั้นด้วยตนเอง เพียงแค่เรียกใช้บริการจากระบบปฏิบัติการก็พอ ทำให้พัฒนาซอฟต์แวร์ประยุกต์ได้ง่ายขึ้น
ระบบปฏิบัติการที่เป็นที่นิยมในคอมพิวเตอร์ส่วนบุคคลทุกวันนี้ ได้แก่ ไมโครซอฟท์ วินโดวส์ แมคโอเอส และลินุกซ์ นอกจากนี้ ยังมีระบบปฏิบัติการตระกูลยูนิกซ์ ซึ่งได้รับความนิยมในเครื่องเซิร์ฟเวอร์ที่ใช้กันในหน่วยงาน ระบบปฏิบัติการตระกูลยูนิกซ์ที่เป็นที่รู้จักกันดี ได้แก่ ยูนิกซ์ตระกูลบีเอสดี เอไอเอกซ์ และโซลาริส และรวมถึงลินุกซ์ซึ่งพัฒนาโดยอาศัยหลักการเดียวกันกับยูนิกซ์ ระบบปฏิบัติการบางตัว ถูกออกแบบมาสำหรับการเรียนการสอนวิชาระบบปฏิบัติการโดยเฉพาะ เช่น มินิกซ์ ซินู หรือ พินโทส
ในอุปกรณ์อื่นๆ ที่ควบคุมด้วยระบบคอมพิวเตอร์ ก็อาจมีระบบปฏิบัติการเช่นกัน เช่น ไอโอเอส แอนดรอยด์ หรือ ซิมเบียน ในโทรศัพท์มือถือ หรือระบบปฏิบัติการ TRON ในเครื่องใช้ไฟฟ้าตามบ้าน 

สาระสำคัญ

การทำงานต่างๆ ในคอมพิวเตอร์จะใช้ข้อมูลที่อยู่ในรูปแบบของเลขฐานสองมาประมวลผลดังนั้นจึงต้องทำความเข้าใจเกี่ยวกับการแทนค่าตัวเลข และการกระทำทางคณิตศาสตร์ต่างๆ
ระบบตัวเลขในคอมพิวเตอร์ 
เนื่อง จากคอมพิวเตอร์ประมวลผลด้วยระบบดิจิตอล ดังนั้นข้อมูลที่คอมพิวเตอร์จะประมวลผลจะถูกเก็บในรูปแบบของเลขฐานสอง โดยหน่วยที่เล็กที่สุดของการเก็บข้อมูลคอมพิวเตอร์จะเรียกว่า บิต ระบบเลขฐานสองนี้จะมีค่าเป็นไปได้ 2 ค่า คือ 0 และ 1 ถ้าหากนำข้อมูล 0 และข้อมูล 1 หลาย ๆ บิตมาต่อเรียงกันจะทำให้สามารถนำมาแทนค่าข้อมูลได้ ดังนั้นเมื่อมีการเขียนโปรแกรมจะต้องพิจารณาด้วยว่าจะประกาศตัวแปรให้เป็น ข้อมูลขนาดกี่บิตโดยควรทราบล่วงหน้าว่าข้อมูลที่จะเก็บอยู่ในช่วงใด
การแทนค่าข้อมูลเลขจำนวนเต็ม 
ปกติ การทำงานของเครื่องคอมพิวเตอร์ ใช้สัญญาณอิเล็กทรอนิกส์ ซึ่งมีสองสถานะ คือ ปิด และ เปิด จึงมีการกำหนดให้ใช้ตัวเลข 0 และ 1 แทนสถานะทั้งสองและมีการกำหนดรหัสแทนอักขระด้วยชุดของตัวเลขซึ่งประกอบด้วย 0 และ 1 ซึ่งเป็นตัวเลขในระบบเลขฐานสอง
ตัวเลขแต่ละหลักของจำนวนในระบบเลขฐานสองเราเรียนกว่า บิต (Bit) ดัง นั้นจำนวน 1011 จึงเป็นเลขฐานสองที่มีจำนวน 4 บิตการใช้เลขฐานสองมาแทนอักขระต่าง ๆ จะพบว่า ถ้าใช้ตัวเลขฐานสอง 1 บิต จะแทนข้อมูลได้ 2 แบบ คือ 0 และ 1 ถ้าใช้ตัวเลขฐานสอง 4 บิต จะแทนอักขระได้ทั้งหมด 16 แบบ
ตัวดำเนินการ 
ตัวดำเนินการ(Operator) หมายถึง เครื่องหมายที่ใช้เชื่อมต่อกันระหว่างนิพจน์ หรือตัวแปรอย่างน้อย 2 ตัวขึ้นไป โดยที่ข้อมูลที่ถูกกระทำหรือตัวที่ถูกกระทำเราเรียกว่า โอปะแรนต์ (Operand)
ความหมายของโปรแกรมคอมพิวเตอร์

โปรแกรมคอมพิวเตอร์ หมายถึง คำสั่งหรือชุดคำสั่ง ที่เขียนขึ้นมาเพื่อสั่งให้เครื่องคอมพิวเตอร์ทำงานตามที่เราต้องการ  เราจะให้คอมพิวเตอร์ทำอะไรก็เขียนเป็นคำสั่ง  ซึ่งต้องสั่งเป็นขั้นตอนและแต่ละขั้นตอนต้องทำอย่างละเอียดและครบถ้วน ซึ่งจะเกิดเป็นงานชิ้นหนึ่งขึ้นมามีชื่อเรียกว่า "โปรแกรม"   ซอฟต์แวร์จะแบ่งออกเป็นประเภทใหญ่ ๆ ได้ ประเภท คือ
1.1   ซอฟต์แวร์ระบบ (System Software)
1.2   ซอฟต์แวร์ประยุกต์ (Application Software)

ขั้นตอนที่ 1 : รับข้อมูลเข้า (Input)
เริ่มต้นด้วยการนำข้อมูลเข้าเครื่องคอมพิวเตอร์ ซึ่งสามารถผ่านทางอุปกรณ์ชนิดต่างๆ แล้วแต่ชนิดของข้อมูลที่จะป้อนเข้าไป เช่น ถ้าเป็นการพิมพ์ข้อมูลจะใช้แผงแป้นพิมพ์ (Keyboard) เพื่อพิมพ์ข้อความหรือโปรแกรมเข้าเครื่อง ถ้าเป็นการเขียนภาพจะใช้เครื่องอ่านพิกัดภาพกราฟิค (Graphics Tablet) โดยมีปากกาชนิดพิเศษสำหรับเขียนภาพ หรือถ้าเป็นการเล่นเกมก็จะมีก้านควบคุม (Joystick) สำหรับเคลื่อนตำแหน่งของการเล่นบนจอภาพ เป็นต้น

ขั้นตอนที่ 2 : ประมวลผลข้อมูล (Process)
เมื่อนำข้อมูลเมาแล้ว เครื่องจะดำเนินการกับข้อมูลตามคำสั่งที่ได้รับมาเพื่อให้ได้ผลลัพธ์ตามที่ต้องการ  การประมวลผลอาจจะมีได้หลายอย่าง เช่น นำข้อมูลมาหาผลรวม นำข้อมูลมาจัดกลุ่ม นำข้อมูลมาหาค่ามากที่สุด หรือน้อยที่สุดเป็นต้น 

ขั้นตอนที่ 3 : แสดงผลลัพธ์ (Output)
เป็นการนำผลลัพธ์จากการประมวลผลมาแสดงให้ทราบทางอุปกรณ์ที่กำหนดไว้ โดยทั่วไปจะแสดงผ่านทางจอภาพ หรือเรียกกันโดยทั่วไปว่า "จอมอนิเตอร์" (Monitor) หรือจะพิมพ์ข้อมูลออกทางกระดาษโดยใช้เครื่องพิมพ์ก็ได้
 
 
ภาษาโปรแกรมมิ่ง (Programming Language)
ภาษาโปรแกรมมิ่ง  หมาย ถึง ภาษาใดๆ ที่ถูกออกแบบโครงสร้างขึ้นมา เพื่อใช้ในการเขียนคำสั่งหรือชุดคำสั่ง ส่วนใหญ่เป็นภาษาอังกฤษที่มนุษย์เข้าใจ ประกอบด้วยโครงสร้างของภาษา (Structure) รูปแบบไวยากรณ์ (Syntax) และคำศัพท์ต่าง ๆ (Vocabulary หรือ Keyword) เพื่อสั่งให้เครื่องคอมพิวเตอร์ทำงานตามที่เราต้องการ ในงานเขียนโปรแกรมจะต้องมีการเตรียมงานเกี่ยวกับการเขียนโปแกรมอย่างเป็นขั้นตอน เรียกขั้นตอนเหล่านี้ว่า “ขั้นตอนการพัฒนาโปรแกรม” ดังนี้

ขั้นตอนการพัฒนาโปรแกรม
1.    การวิเคราะห์ปัญหา
การวิเคราะห์ปัญหา ประกอบด้วยขั้นตอนต่างๆ ดังนี้
    1.1   กำหนดวัตถุประสงค์ของงาน เพื่อพิจารณาว่าโปรแกรมต้องทำการประมวลผลอะไรบ้าง
    1.2   พิจารณาข้อมูลนำเข้า เพื่อให้ทราบว่าจะต้องนำข้อมูลอะไรเข้าคอมพิวเตอร์ ข้อมูลมีคุณสมบัติเป็นอย่างไร ตลอดจนถึงลักษณะและรูปแบบของข้อมูลที่จะนำเข้า
    1.3   พิจารณาการประมวลผล ให้ทราบว่าโปรแกรมมีขั้นตอนการประมวลผลอย่างไร มีเงื่อนไปการประมวลผลอะไรบ้าง
    1.4   พิจารณาข้อสนเทศนำออก เพื่อให้ทราบว่ามีข้อสนเทศอะไรที่จะแสดง รูปแบบและสื่อที่จะใช้ในการแสดงผล

2.  การออกแบบโปรแกรม
การออกแบบขั้นตอนการทำงานของโปรแกรมเป็นขั้นตอนที่ใช้เป็นแนวทางในการลงรหัสโปรแกรม ผู้ออกแบบขั้นตอนการทำงานของโปรแกรมอาจใช้เครื่องมือต่างๆ ช่วยในการออกแบบ อาทิเช่น คำสั่งลำลอง (Pseudo code) หรือ ผังงาน (Flow chart) การออกแบบโปรแกรมนั้นไม่ต้องพะวงกับรูปแบบคำสั่งภาษาคอมพิวเตอร์ แต่ให้มุ่งความสนใจไปที่ลำดับขั้นตอนในการประมวลผลของโปรแกรมเท่านั้น

3.  การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
การเขียนโปรแกรมเป็นการนำเอาผลลัพธ์ของการออกแบบโปรแกรม มาเปลี่ยนเป็นโปรแกรมภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง ผู้เขียนโปรแกรมจะต้องให้ความสนใจต่อรูปแบบคำสั่งและกฎเกณฑ์ของภาษาที่ใช้เพื่อให้การประมวลผลเป็นไปตามผลลัพธ์ที่ได้ออกแบบไว้ นอกจากนั้นผู้เขียนโปรแกรมควรแทรกคำอธิบายการทำงานต่างๆ ลงในโปรแกรมเพื่อให้โปรแกรมนั้นมีความกระจ่างชัดและง่ายต่อการตรวจสอบและโปรแกรมนี้ยังใช้เป็นส่วนหนึ่งของเอกสารประกอบ

4. การทดสอบและแก้ไขโปรแกรม
การทดสอบโปรแกรมเป็นการนำโปรแกรมที่ลงรหัสแล้วเข้าคอมพิวเตอร์ เพื่อตรวจสอบรูปแบบกฎเกณฑ์ของภาษา และผลการทำงานของโปรแกรมนั้น ถ้าพบว่ายังไม่ถูกก็แก้ไขให้ถูกต้องต่อไป ขั้นตอนการทดสอบและแก้ไขโปรแกรม อาจแบ่งได้เป็น ขั้น
4.1    สร้างแฟ้มเก็บโปรแกรมซึ่งส่วนใหญ่นิยมนำโปรแกรมเข้าผ่านทางแป้นพิมพ์โดยใช้โปรแกรมประมวลคำ
4.2  ใช้ตัวแปลภาษาคอมพิวเตอร์แปลโปรแกรมที่สร้างขึ้นเป็นภาษาเครื่อง โดยระหว่างการแปลจะมีการตรวจสอบความถูกต้องของรูปแบบและกฎเกณฑ์ในการใช้ภาษา ถ้าคำสั่งใดมีรูปแบบไม่ถูกต้องก็จะแสดงข้อผิดพลาดออกมาเพื่อให้ผู้เขียนนำไปแก้ไขต่อไป ถ้าไม่มีข้อผิดพลาด เราจะได้โปรแกรมภาษาเครื่องที่สามารถให้คอมพิวเตอร์ประมวลผลได้
4.3  ตรวจสอบความถูกต้องของการประมวลผลของโปรแกรม โปรแกรมที่ถูกต้องตามรูปแบบและกฎเกณฑ์ของภาษา แต่อาจให้ผลลัพธ์ของการประมวลผลไม่ถูกต้องก็ได้ ดังนั้นผู้เขียนโปรแกรมจำเป็นต้องตรวจสอบว่าโปรแกรมประมวลผลถูกต้องตามต้องการหรือไม่ วิธีการหนึ่งก็คือ สมมติข้อมูลตัวแทนจากข้อมูลจริงนำไปให้โปรแกรมประมวลผลแล้วตรวจสอบผลลัพธ์ว่าถูกต้องหรือไม่ ถ้าพบว่าไม่ถูกต้องก็ต้องดำเนินการแก้ไขโปรแกรมต่อไป การสมมติข้อมูลตัวแทนเพื่อการทดสอบเป็นสิ่งที่มีความสำคัญเป็นอย่างมาก ลักษณะของข้อมูลตัวแทนที่ดีควรจะสมมติทั้งข้อมูลที่ถูกต้องและข้อมูลที่ผิดพลาด เพื่อทดสอบว่าโปรแกรมที่พัฒนาขึ้นสามารถครอบคลุมการปฏิบัติงานในเงื่อนไขต่างๆ ได้ครบถ้วน นอกจากนี้อาจตรวจสอบการทำงานของโปรแกรมด้วยการสมมติตัวเองเป็นคอมพิวเตอร์ทีจะประมวลผล แล้วทำตามคำสั่งทีละคำสั่งของโปรแกรมนั้นๆ วิธีการนี้อาจทำได้ยากถ้าโปรแกรมมีขนาดใหญ่ หรือมีการประมวลผลที่ซับซ้อน

5.  การทำเอกสารประกอบโปรแกรม
การทำเอกสารประกอบโปรแกรมเป็นงานที่สำคัญของการพัฒนาโปรแกรม เอกสารประกอบโปรแกรมช่วยให้ผู้ใช้โปรแกรมเข้าใจวัตถุประสงค์ ข้อมูลที่จะต้องใช้กับโปรแกรม ตลอดจนผลลัพธ์ที่จะได้จากโปรแกรม การทำโปรแกรมทุกโปรแกรมจึงควรต้องทำเอกสารกำกับ เพื่อใช้สำหรับการอ้างอิงเมื่อจะใช้งานโปรแกรมและเมื่อต้องการแก้ไขปรับปรุงโปรแกรม เอกสารประกอบโปรแกรมที่จัดทำ ควรประกอบด้วยหัวข้อต่อไปนี้
1.    วัตถุประสงค์
2.    ประเภทและชนิดของคอมพิวเตอร์และอุปกรณ์ที่ใช้ในโปรแกรม
3.    วิธีการใช้โปรแกรม
4.    แนวคิดเกี่ยวกับการออกแบบโปรแกรม
5.    รายละเอียดโปรแกรม
6.    ข้อมูลตัวแทนที่ใช้ทดสอบ
7.    ผลลัพธ์ของการทดสอบ

6.  การบำรุงรักษาโปรแกรม
เมื่อโปรแกรมผ่านการตรวจสอบตามขั้นตอนเรียบร้อยแล้ว และถูกนำมาให้ผู้ใช้ได้ใช้งาน ในช่วงแรกผู้ใช้อาจจะยังไม่คุ้นเคยก็อาจทำให้เกิดปัญหาขึ้นมาบ้าง ดังนั้นจึงต้องมีผู้คอยควบคุมดูแลและคอยตรวจสอบการทำงาน การบำรุงรักษาโปรแกรมจึงเป็นขั้นตอนที่ผู้เขียนโปรแกรมต้องคอยเฝ้าดูและหาข้อผิดพลาดของโปรแกรมในระหว่างที่ผู้ใช้ใช้งานโปรแกรม และปรับปรุงโปรแกรมเมื่อเกิดข้อผิดพลาดขึ้น หรือในการใช้งานโปรแกรมไปนานๆ ผู้ใช้อาจต้องการเปลี่ยนแปลงการทำงานของระบบงานเดิมเพื่อให้เหมาะกับเหตุการณ์ นักเขียนโปรแกรมก็จะต้องคอยปรับปรุงแก้ไขโปรแกรมตามความต้องการของผู้ใช้ที่เปลี่ยนแปลงไปนั่นเอง
การพัฒนาโปรแกรมจะดำนเนินการตามขั้นตอนที่ 1-6 ซึ่งแต่ละขั้นตอน สามารถย้อนกลับไปทำในขั้นตอนก่อนหน้านี้ได้ เมื่อเกิดความผิดพลาด หรือพัฒนาโปรแกรมไม่ครบถ้วน หรือไม่ตรงตามความต้องการของู้ใช้ในทุกขั้นตอน ซึ่งการดำเนนการต่ง ๆ ของขั้นตอนที่ 1-6 เราจะต้องมีการดำเนินการทำเอกสารประกอบโปรแกรม ควบคู่กับการดำเนนการพัฒนาโปรแกรมตลอด เมื่อเกิดารแก้ไขเพิ่มเติม หรือเปลี่ยนแปลอะไรก็ตามในโปรแกรมจะต้องทำการแก้ไขปรับปรุงโปรแกรมในอนาคต สำหรับผู้พัฒนาที่จะต้องมาดูแลการใช้งานโปรแกรม และเมื่อพัฒนาโปรแกรมเสร็จแล้ว ก็จะต้องดำเนินการทำเอกสารประกอบการใช้งานให้กับผู้ใช้ เพื่อที่จะสามารถใช้โปรแกรมได้ครบถ้วน และถูกต้อง

พื้นฐานการออกแบบฐานข้อมูล

ฐานข้อมูลที่ได้รับการออกแบบมาอย่างเหมาะสมมอบการเข้าถึงข้อมูลที่ทันสมัยและถูกต้อง เนื่องจากการออกแบบที่ถูกต้องเป็นสิ่งจำเป็นในการบรรลุเป้าหมายในการทำงานกับฐานข้อมูล ต้องการเวลาในการตรวจสอบเพื่อเรียนรู้หลักการของการออกแบบที่ดีที่เหมาะสม ในที่สุด คุณมีแนวโน้มมากที่จะจบที่ฐานข้อมูลที่ตรงตามความต้องการของคุณและง่ายต่อการจัดการการเปลี่ยนแปลง
บทความนี้มีแนวทางสำหรับการวางแผนฐานข้อมูลบนเดสก์ท็อป คุณจะเรียนรู้วิธีการตัดสินใจว่าข้อมูลใดที่คุณต้องการ วิธีการแบ่งข้อมูลเป็นตารางและคอลัมน์ที่เหมาะสม และตารางเหล่านั้นเกี่ยวข้องกับแต่ละตารางอย่างไร คุณควรอ่านบทความนี้ก่อนที่คุณจะสร้างฐานข้อมูลแรกของคุณ
สิ่งสำคัญ: Access มอบประสบการณ์การออกแบบที่ช่วยให้คุณสร้างแอปพลิเคชันฐานข้อมูลสำหรับ Web ข้อควรพิจารณาการออกแบบมากมายจะต่างกันเมื่อคุณออกแบบสำหรับเว็บ บทความนี้ไม่พูดคุยเกี่ยวกับการออกแบบแอปพลิเคชันฐานข้อมูลบนเว็บ สำหรับข้อมูลเพิ่มเติม โปรดดูบทความ สร้างฐานข้อมูลเพื่อแชร์บนเว็บ

ในบทความนี้


คำศัพท์เกี่ยวกับฐานข้อมูลบางอย่างที่ควรรู้

Access จะจัดระเบียบข้อมูลของคุณลงในตาราง: รายการแถวและคอลัมน์ทำให้นึกถึงแผ่นงานหรือสเปรดชีตของนักบัญชี ในฐานข้อมูลอย่างง่าย คุณอาจมีแค่ตารางเดียว สำหรับฐานข้อมูลส่วนใหญ่ คุณจำเป็นต้องมีมากกว่าหนึ่งตาราง เช่น คุณอาจมีตารางที่เก็บข้อมูลเกี่ยวกับผลิตภัณฑ์ อีกตารางหนึ่งเป็นที่เก็บข้อมูลเกี่ยวกับคำสั่งซื้อ และอีกตารางหนึ่งมีข้อมูลเกี่ยวกับลูกค้า
รูปแสดงตารางสามตารางในแผ่นข้อมูล
แต่ละแถวจะถูกเรียกให้เหมาะสมยิ่งขึ้นว่า ระเบียน แต่ละคอลัมน์เป็น เขตข้อมูล ระเบียนเป็นวิธีที่สื่อถึงความหมายและเกี่ยวข้องกับการรวมข้อมูลเกี่ยวกับบางอย่าง เขตข้อมูลเป็นรายการข้อมูลเดี่ยว — ชนิดรายการที่ปรากฏในทุกระเบียน ในตารางผลิตภัณฑ์ เช่น แต่ละแถวหรือระเบียนควรมีข้อมูลเกี่ยวกับหนึ่งผลิตภัณฑ์ แต่ละคอลัมน์หรือเขตข้อมูลจะมีชนิดข้อมูลบางอย่างเกี่ยวกับผลิตภัณฑ์ เช่น ชื่อหรือราคา

การออกแบบฐานข้อมูลที่ดีคืออะไร

หลักการบางอย่างเป็นแนวทางสำหรับขั้นตอนการออกแบบฐานข้อมูล หลัการแรกคือข้อมูลที่เกิดขึ้นซ้ำๆ (หรือเรียกว่าข้อมูลที่ซ้ำกัน) เป็นสิ่งไม่ดี เนื่องจากเปลืองพื้นที่และเพิ่มความน่าจะเป็นที่จะเกิดข้อผิดพลาดและความไม่สอดคล้องกัน หลักการที่สองคือความถูกต้องและความสมบูรณ์ของข้อมูลเป็นสิ่งสำคัญ ถ้าฐานข้อมูลของคุณมีข้อมูลที่ไม่ถูกต้อง รายงานใดๆ ที่ถึงข้อมูลจากฐานข้อมูลจะมีข้อมูลที่ไม่ถูกต้องเช่นเดียวกัน ส่งผลให้การตัดใจใดๆ ที่คุณทำโดยอ้างอิงจากรายงานเหล่านั้นจะเป็นข้อมูลที่ผิดพลาด
การออกแบบฐานข้อมูลที่คือ ฐานข้อมูลที่:
  • แบ่งข้อมูลของคุณลงในตารางตามหัวข้อเพื่อลดข้อมูลที่ซ้ำกัน
  • มอบการเข้าถึงข้อมูลที่จำเป็นเพื่อใช้งานข้อมูลในตารางร่วมกันตามจำเป็น
  • ช่วยสนับสนุนและแน่ใจในความถูกต้องและความสมบูรณ์ของข้อมูลของคุณ
  • เหมาะสำหรับการดำเนินการข้อมูลและความต้องการในการทำรายงานของคุณ

ขั้นตอนการออกแบบ

ขั้นตอนการออกแบบมีขั้นตอนดังต่อไปนี้:
  • กำหนดวัตถุประสงค์ของฐานข้อมูลของคุณ    
    ซึ่งช่วยให้คุณเตรียมพร้อมสำหรับขั้นตอนที่เหลือ
  • ค้นหาและจัดระเบียบข้อมูลที่ต้องการ    
    รวบรวมข้อมูลทุกชนิดที่คุณอาจต้องการบันทึกไว้ในฐานข้อมูล เช่น ชื่อผลิตภัณฑ์และหมายเลขคำสั่งซื้อ
  • แบ่งข้อมูลเป็นตาราง    
    แบ่งรายการข้อมูลของคุณเป็นรายการหรือหัวข้อหลัก เช่น ผลิตภัณฑ์ หรือ คำสั่งซื้อ แต่ละหัวเรื่องจะกลายเป็นตาราง
  • เปลี่ยนรายการข้อมูลเป็นคอลัมน์    
    ตัดสินใจว่าข้อมูลใดที่คุณต้องการจัดเก็บไว้ในตารางใด แต่ละรายการจะเป็นเขตข้อมูล และแสดงเป็นคอลัมน์ในตาราง เช่น ตารางพนักงาน อาจมีเขตข้อมูลเช่น นามสกุล และ วันที่จ้าง
  • ระบุคีย์หลัก    
    เลือกคีย์หลักของแต่ละตาราง คีย์หลักเป็นคอลัมน์ที่ใช้ระบุแถวแต่ละแถวแบบไม่ซ้ำกัน ตัวอย่างอาจเป็น ID ผลิตภัณฑ์หรือ ID คำสั่งซื้อ
  • ตั้งค่าความสัมพันธ์ตาราง    
    ดูแต่ละตารางแล้วตัดสินใจว่าข้อมูลในตารางหนึ่งเกี่ยวข้องกับข้อมูลในตารางอื่นๆ อย่างไร เพิ่มเขตข้อมูลลงในตารางหรือสร้างตารางใหม่เพื่อทำให้ความสัมพันธ์ชัดเจนตามที่จำเป็น
  • จำกัดการออกแบบของคุณ    
    วิเคราะห์การออกแบบของคุณสำหรับข้อผิดพลาด สร้างตารางแล้วเพิ่มระเบียนข้อมูลตัวอย่างบางระเบียน ดูว่าคุณได้รับผลลัพธ์ที่คุณต้องการจากตารางของคุณหรือไม่ ปรับเปลี่ยนการออกแบบตามจำเป็น
  • นำกฎการนอร์มัลไลซ์ไปใช้    
    นำกฎการนอร์มัลไลซ์ไปใช้กับข้อมูลเพื่อดูว่าตารางของคุณมีโครงสร้างถูกต้องแล้วหรือไม่ ปรับเปลี่ยนตารางตามจำเป็น

การกำหนดวัตถุประสงค์ของฐานข้อมูลของคุณ

เราแนะนำให้เขียนจุดประสงค์ของฐานข้อมูลลงกระดาษ เช่น จุดประสงค์ของฐานข้อมูล สิ่งที่คุณคาดหวังว่าจะใช้ฐานข้อมูล และใครจะใช้ฐานข้อมูลบ้าง สำหรับฐานข้อมูลขนาดเล็กสำหรับธุรกิจในบ้าน เช่น คุณอาจเขียนบางอย่างอย่างง่ายๆ เช่น “ฐานข้อมูลลูกค้าเก็บข้อมูลรายชื่อลูกค้าสำหรับจุดประสงค์การส่งจดหมายและรายงานเกี่ยวกับการผลิต” ถ้าฐานข้อมูลมีความซับซ้อนหรือถูกใช้โดยผู้ใช้หลายคน ตามที่เกิดขึ้นบ่อยๆ ในการตั้งค่าขององค์กร จุดประสงค์อาจเป็นย่อหน้าอย่างง่ายหรือเพิ่มเติม และควรบันทึกเวลาและวิธีที่ผู้ใช้ใช้ฐานข้อมูล แนวคิดคือเพื่อให้ได้คำชี้แจงภารกิจที่พัฒนาอย่างดีแล้วที่สามารถอ้างอิงถึงขั้นตอนการออกแบบทั้งหมด การมีคำชี้แจ้งเช่นนั้นช่วยให้คุณเน้นไปที่เป้าหมายเมื่อคุณทำการตัดสินใจ

การค้นหาและการจัดระเบียบข้อมูลที่จำเป็น

เมื่อต้องการค้นหาและจัดระเบียบข้อมูลที่จำเป็น ให้เริ่มด้วยข้อมูลที่มีอยู่ เช่น คุณอาจบันทึกคำสั่งซื้อในบัญชีแยกประเภทหรือเก็บข้อมูลลูกค้าบนฟอร์มกระดาษในตู้เก็บเอกสาร รวบรวมเอกสารเหล่านั้นและทำรายการแต่ละชนิดข้อมูลที่แสดง (เช่น แต่ละช่องที่คุณกรอกลงบนฟอร์ม) ถ้าคุณไม่มีฟอร์มที่มีอยู่ ให้นึกถึงฟอร์มที่คุณออกแบบเพื่อบันทึกข้อมูลลูกค้าแทน ข้อมูลอะไรที่ควรเก็บไว้บนฟอร์ม ช่องเติมคำตอบใดที่คุณควรสร้าง ระบุและทำรายการเหล่านั้น เช่น สมมติว่าขณะนี้คุณเก็บรายชื่อลูกค้าไว้บนบัตรดัชนี ตรวจสอบบัตรเหล่านี้ซึ่งอาจแสดงให้เห็นว่าบัตรแต่ละใบมีชื่อลูกค้า ที่อยู่ เมือง รัฐ รหัสไปรษณีย์ และหมายเลขโทรศัพท์ แต่ละรายการเหล่านี้แสดงถึงคอลัมน์ที่จะเกิดขึ้นใสตาราง
ขณะที่คุณเตรียมรายการนี้ ไม่ต้องกังวลเกี่ยวกับการทำให้สมบูรณ์แบบในครั้งแรก แต่ให้ใส่แต่ละรายการที่นึกออกแทน ถ้าบุคคลอื่นจะใช้ฐานข้อมูล ให้ถามแนวคิดของพวกเขาด้วย คุณสามารถปรับแต่งรายการในภายหลังได้
ถัดไป ให้พิจารณาชนิดรายงานหรือจดหมายที่คุณต้องการสร้างจากฐานข้อมูล เช่น คุณอาจต้องการรายงานยอดขายผลิตภัณฑ์เพื่อแสดงยอดขายตามภูมิภาค หรือรายงานสรุปคลังสินค้าที่แสดงระดับสินค้าคงคลัง คุณอาจยังต้องการสร้างจดหมายฟอร์มเพื่อส่งให้ลูกค้าเพื่อแจ้งกิจกรรมการขายหรือข้อเสนอสุดพิเศษ ออกแบบรายงานในความคิดของคุณ แล้วจินตนาการว่ารายงานจะหน้าต่างเป็นอย่างไร ข้อมูลอะไรที่ควรมีอยู่ในรายงาน รายการแต่ละรายการ ทำเช่นเดียวกันสำหรับจดหมายฟอร์มและรายงานอื่นๆ ที่คุณคาดว่าจะสร้าง
บุคคลกำลังจินตนาการเกี่ยวกับรายงานสินค้าคงคลังของผลิตภัณฑ์
การมอบแนวคิดเพื่อรายงานและส่งจดหมายที่คุณอาจต้องการสร้างเพื่อช่วยให้คุณระบุรายการที่จำเป็นในฐานข้อมูลของคุณ เช่น สมมติว่าคุณมอบโอกาสให้ลูกค้าในการเลือก (หรือไม่เลือก) การอัปเดตอีเมลเป็นครั้งคราว และคุณต้องการพิมพ์รายชื่อผู้ที่เลือกใช้เหล่านั้น เมื่อต้องการบันทึกข้อมูลดังกล่าว ให้คุณเพิ่มคอลัมน์ “ส่งอีเมล” ไปยังตารางลูกค้า สำหรับลูกค้าแต่ละราย คุณสามารถตั้งเขตข้อมูลเป็น ใช่ หรือ ไม่ใช่ ได้
สิ่งที่จำเป็นในการส่งข้อความอีเมลให้กับลูกค้าเพื่อแนะนำรายการอื่นไปยังระเบียน เมื่อคูณทราบว่าลูกค้าต้องการรับข้อความอีเมล คุณยังจำเป็นต้องทราบที่อยู่ที่เมลที่จะส่งไปด้วย ดังนั้นคุณจำเป็นต้องบันทึกที่อยู่อีเมลสำหรับลูกค้าแต่ละราย
เพื่อสร้างต้นโครงสร้างที่สมเหตุสมผลของแต่ละรายงานหรือรายการผลลัพธ์และพิจารณาว่ารายการใดที่จำเป็นในการสร้างรายการ เช่น เมื่อคุณตรวจสอบจดหมายฟอร์ม คุณอาจมีบางสิ่งบางอย่างอยู่ในใจ ถ้าคุณต้องการรวมคำทักทายที่เหมาะสม — เช่น “นาย”, “นาง” หรือ “นางสาว” ซึ่งเป็นสตริงเริ่มต้นของคำทักทาย คุณจำเป็นต้องสร้างรายการคำทักทาย นอกจากนี้ คุณอาจเริ่มจดหมายด้วย “เรียนคุณสมชาย” แทนที่ “เรียน” คุณ ประสงค์ วัฒนาพณิชย์ แนะนำให้คุณจัดเก็บนามสกุลแยกจากชื่อ
จุดสำคัญในการจำคือคุณควรแบ่งข้อมูลแต่ละชิ้นลงในส่วนที่มีประโยชน์ที่เล็กที่สุด ในกรณีของชื่อ เพื่อทำให้นามสกุลพร้อมใช้งาน คุณจะต้องแบ่งชื่อออกเป็นสองส่วน — ชื่อและนามสกุล เมื่อต้องการรายงานนามสกุล เช่น ช่วยในการจัดเก็บนามสกุลของลูกค้าแยกต่างหาก โดยทั่วไป ถ้าคุณต้องการจัดเรียง ค้นหา คำนวณ หรือรายงานโดยอ้างอิงจากรายการข้อมูล คุณควรใส่รายการดังกล่าวลงในเขตข้อมูลของแต่ละรายการ
ลองนึกถึงคำถามที่อยู่อาจต้องการคำตอบจากฐานข้อมูล เช่น จำนวนยอดขายของผลิตภัณฑ์ที่น่าสนใจที่คุณปิดเดือนที่แล้ว ลูกค้าที่ดีที่สุดของคุณอาศัยอยู่ที่ใด ใครเป็นผู้ขายสำหรับผลิตภัณฑ์ที่ขายดีที่สุดของคุณ การคาดการณ์คำถามเหล่านี้ช่วยให้คุณไม่ต้องการรายการเพิ่มเติมลงในระเบียน
หลังจากรวบรวมข้อมูลนี้ คุณพร้อมสำหรับขั้นตอนถัดไปแล้ว

การแบ่งข้อมูลลงในตาราง

เมื่อต้องการแบ่งข้อมูลลงในตาราง ให้เลือกรายการหรือหัวเรื่องหลัก เช่น หลังจากค้นหาและจัดระเบียบข้อมูลฐานข้อมูลยอดขายของผลิตภัณฑ์ รายการหลักอาจมีลักษณะเช่นนี้:
รายการข้อมูลที่เขียนด้วยลายมือถูกจัดกลุ่มตามหัวเรื่อง
รายการหลักที่แสดงอยู่ที่นี่เป็นผลิตภัณฑ์ ผู้ขาย ลูกค้า และคำสั่งซื้อ ดังนั้น จึงสมเหตุสมผลที่จะเริ่มด้วยตารางทั้งสี่เหล่านี้: ตาราหนึ่งสำหรับข้อมูลผลิตภัณฑ์ ตาราหนึ่งเกี่ยวกับข้อมูลผู้ขาย ตารางหนึ่งสำหรับลูกค้า และตารางหนึ่งสำหรับข้อมูลเกี่ยวกับคำสั่งซื้อ ถึงแม้ว่าจะไม่ใช่รายการที่สมบูรณ์ แต่ก็เป็นการเริ่มต้นที่ดี คุณสามารถดำเนินการต่อเพื่อปรับแต่งรายการจนกว่าคุณจะได้แบบที่ทำงานได้อย่างดี
เมื่อคุณตรวจทานรายการเบื้องต้นเป็นครั้งแรก คุณอาจต้องการใส่ทุกอย่างลงในตารางเดียว แทนที่ตารางทั้งสี่ที่แสดงในรูปภาพประกอบ คุณจะเรียนรู้ได้ที่นี่ว่าทำไมนั่นจึงเป็นความคิดที่ไม่ดี พิจารณาสักครู่ ตารางแสดงที่นี่:
รูปแสดงตารางที่มีทั้งข้อมูลเกี่ยวกับผลิตภัณฑ์และผู้จำหน่ายผลิตภัณฑ์
ในกรณีนี้ แต่ละแถวจะมีข้อมูลเกี่ยวกับทั้งผลิตภัณฑ์และผู้ขาย เนื่องจากคุณสามารถมีหลายผลิตภัณฑ์จากผู้ขายรายเดียวกัน ข้อมูลชื่อผู้ขายและที่อยู่จะซ้ำกันหลายครั้ง ซึ่งทำให้เปลืองเนื้อที่ในดิสก์ การบันทึกข้อมูลผู้ขายเพียงครั้งเดียวในตารางผู้ขายแยก จากนั้นลิงก์ตารางดังกล่าวไปยังตารางผลิตภัณฑ์ ถือเป็นโซลูชันที่ดีกว่ามาก
ปัญหาที่สองด้วยการออกแบบนี้เกี่ยวกับเมื่อคุณจำเป็นต้องปรับเปลี่ยนข้อมูลเกี่ยวกับผู้ขาย เช่น สมมติว่าคุณเปลี่ยนที่อยู่ของผู้ขาย เนื่องจากที่อยู่ปรากฏอยู่ในหลายที่ คุณอาจเปลี่ยนที่อยู่ในที่หนึ่งแต่ลืมเปลี่ยนอีกที่หนึ่งโดยไม่ได้ตั้งใจ การบันทึกที่อยู่ของผู้ขายแค่ที่เดียวเท่านั้นสามารถแก้ไขปัญหานี้ได้
เมื่อคุณออกแบบฐานข้อมูลของคุณ ให้พยายามบันทึกข้อมูลแต่ละอย่างเพียงครั้งเดียวเสมอ ถ้าคุณพบว่าตัวเองกำลังใส่ข้อมูลเดียวกันซ้ำในตำแหน่งที่มากกว่าหนึ่งที่ เช่น ที่อยู่สำหรับผู้ขายบางราย ให้ใส่ข้อมูลดังกล่าวไว้ในตารางแยก
สุดท้าย สมมติว่ามีผลิตภัณฑ์เพียงอย่างเดียวที่ขายโดย Coho Winery และคุณต้องการลบผลิตภัณฑ์ แต่มีข้อมูลชื่อผู้ขายและที่อยู่อยู่ คุณจะลบระเบียนผลิตภัณฑ์อย่างไรไม่ให้สูญเสียข้อมูลผู้ขาย คุณไม่สามารถ เนื่องจากแต่ละระเบียนมีข้อมูลเกี่ยวกับผลิตภัณฑ์ เช่นเดียวกับข้อมูลเกี่ยวกับผู้ขาย คุณไม่สามารถลบข้อมูลหนึ่งโดยไม่ลบข้อมูลอีกอย่างหนึ่งได้เลย เมื่อต้องการเก็บข้อมูลเหล่านี้แยกกัน คุณต้องแยกหนึ่งตารางออกเป็นสองตาราง: ตารางหนึ่งสำหรับข้อมูลผลิตภัณฑ์ และอีกตารางหนึ่งสำหรับข้อมูลผู้ขาย การลบระเบียนผลิตภัณฑ์ควรลบเฉพาะข้อมูลเกี่ยวกับผลิตภัณฑ์ ไม่ใช่ข้อมูลเกี่ยวกับผู้ขาย
เมื่อคุณเลือกหัวเรื่องที่แสดงในตาราง คอลัมน์ตารางดังกล่าวควรมีข้อมูลเกี่ยวกับหัวเรื่องดังกล่าวเท่านั้น เช่น ตารางผลิตภัณฑ์ ควรมีเฉพาะข้อมูลเกี่ยวกับผลิตภัณฑ์เท่านั้น เนื่องจากที่อยู่ผู้ขายเป็นข้อมูลเกี่ยวกับผู้ขาย และไม่ใช่ข้อมูลเกี่ยวกับผลิตภัณฑ์ จึงควรอยู่ในตารางผู้ขาย

การเปลี่ยนรายการข้อมูลลงในคอลัมน์

เมื่อต้องการตรวจสอบคอลัมน์ในตาราง ตัดสินใจว่าข้อมูลอะไรที่คุณต้องการติดตามเกี่ยวกับหัวเรื่องที่บันทึกในตาราง เช่น สำหรับตารางลูกค้า ชื่อ ที่อยู่ เมือง-รัฐ-รหัสไปรษณีย์ ส่งอีเมล จดหมายทักทาย และที่อยู่อีเมล ถือเป็นการเริ่มต้นคอลัมน์ของรายการที่ดี ระเบียนแต่ละชุดในตารางจะมีชุดคอลัมน์เดียวกัน เพื่อให้คุณสามารถจัดเก็บชื่อ ที่อยู่ ่ เมือง-รัฐ-รหัสไปรษณีย์ ส่งอีเมล จดหมายทักทาย และที่อยู่อีเมลสำหรับแต่ละระเบียนได้ เช่น คอลัมน์ที่อยู่ มีที่อยู่ของลูกค้า ระเบียนแต่ละชุดมีข้อมูลเกี่ยวกับลูกค้าหนึ่งราย และเขตข้อมูลที่อยู่มีที่อยู่สำหรับลูกค้าดังกล่าว
เมื่อคุณตรวจสอบคอลัมน์เริ่มต้นสำหรับแต่ละตารางแล้ว คุณสามารถปรับแต่งคอลัมน์เพิ่มเติมได้ เช่น จัดเก็บชื่อของลูกค้าเป็นคอลัมน์แยกสองคอลัมน์: ชื่อและนามสกุลเป็นสิ่งที่เหมาะสม เพื่อให้คุณสามารถจัดเรียง ค้นหา และดัชนีเพียงบนคอลัมน์เหล่านั้นได้ ในทำนองเดียวกัน ที่อยู่ควรมีคอมโพเนนต์แยกห้าชนิด ได้แก่ ท่อยู่ เมือง รัฐ รหัสไปรษณีย์ และประเทศ/ภูมิภาค และยังเหมาะที่จะจัดเก็บแยกเป็นคอลัมน์ ถ้าคุณต้องการค้นหา กรอง หรือจัดเรียงตามรัฐ เช่น คุณต้องการข้อมูลของรัฐที่จัดเก็บไว้ในคอลัมน์แยก
คุณควรพิจารณาว่าฐานข้อมูลควรมีข้อมูลเฉพาะภายในประเทศหรือนานาชาติด้วยเช่นกัน เช่น ถ้าคุณวางแผนที่จะจัดเก็บที่อยู่นานาชาติ คอลัมน์ควรเป็นภูมิภาคมากกว่าที่จะเป็นรัฐ เนื่องจากคอลัมน์สามารถจัดการได้ทั้งรัฐและภูมิภาคภายในประเทศของประเทศ/ภูมิภาคอื่น ในทำนองเดียวกัน รหัสไปรษณีย์ (Postal Code) มีความสมเหตุสมผลมากกว่ารหัสไปรษณีย์ (Zip Code) ถ้าคุณต้องการจัดเก็บที่อยู่แบบนานาชาติ
รายการต่อไปนี้แสดงเคล็ดลับบางอย่างสำหรับการตรวจสอบคอลัมน์ของคุณ
  • ไม่รวมข้อมูลที่คำนวณแล้ว    
    ในกรณีส่วนใหญ่ คุณไม่ควรจัดเก็บผลลัพธ์การคำนวณในตาราง คุณสามารถให้ Access ดำเนินการคำนวณแทนได้เมื่อคุณต้องการดูผลลัพธ์ เช่น สมมติว่ามีรายงานสินค้าที่จะสั่งซื้อ ที่แสดงผลรวมย่อยของคำสั่งซื้อสำหรับผลิตภัณฑ์แต่ละประเภทในฐานข้อมูล อย่างไรก็ตาม ไม่มีคอลัมน์ผลรวมย่อยจำนวนที่จะสั่งซื้อในตารางใดๆ ให้รวมคอลัมน์จำนวนที่จะสั่งซื้อ ที่จัดเก็บจำนวนที่จะสั่งซื้อสำหรับแต่ละผลิตภัณฑ์ไว้ในตารางผลิตภัณฑ์แทน Access จะคำนวณผลรวมย่อยแต่ละครั้งที่คุณพิมพ์รายงานโดยใช้ข้อมูลดังกล่าว ผลรวมย่อยไม่ควรถูกจัดเก็บในตาราง
  • จัดเก็บข้อมูลในส่วนทางตรรกะที่เล็กที่สุด    
    คุณอาจต้องการใส่ชื่อเต็มในเขตข้อมูลเดียว หรือสำหรับชื่อผลิตภัณฑ์ควบคู่กับรายละเอียดผลิตภัณฑ์ ถ้าคุณผสานข้อมูลมากกว่าหนึ่งประเภท จะทำให้ยากต่อการเรียกใช้ข้อมูลแต่ละอย่างในภายหลัง ลองแบ่งข้อมูลเป็นส่วนตามตรรกะ เช่น สร้างเขตข้อมูลแยกสำหรับชื่อและนามสกุล หรือชื่อผลิตภัณฑ์ ประเภท และคำอธิบาย
รูปแสดงรายการข้อมูลในระหว่างกระบวนการออกแบบ
เมื่อคุณกำหนดคอลัมน์ข้อมูลในแต่ละตารางแล้ว คุณพร้อมแล้วที่จะเลือกคีย์หลักของแต่ละตาราง

การระบุคีย์หลัก

แต่ละตารางควรมีคอลัมน์หรือชุดคอลัมน์ที่ไม่ซ้ำกันที่ระบุถึงแต่ละแถวที่จัดเก็บในตาราง ซึ่งมักจะเป็นหมายประจำตัวที่ไม่ซ้ำกัน เช่น หมายเลข ID ของพนักงานหรือเลขลำดับ ในคำศัพท์ฐานข้อมูล ข้อมูลนี้จะเรียกว่า คีย์หลัก ของตาราง Access จะใช้เขตข้อมูลคีย์หลักเพื่อเชื่อมโยกข้อมูลอย่างรวดเร็วจากตารางหลายตารางและรวบรวมข้อมูลให้คุณ
ถ้าคุณมีตัวระบุที่ไม่ซ้ำกันสำหรับตารางอยู่แล้ว เช่น หมายเลขผลิตภัณฑ์ที่ไม่ซ้ำกันที่ระบุผลิตภัณฑ์แต่ละชิ้นในแคตตาล็อกของคุณ คุณสามารถใช้ตัวระบุดังกล่าวเป็นคีย์หลักของตารางได้ — แต่เฉพาะค่าในคอลัมน์นี้ที่นั้นที่จะเป็นแตกต่างกันในระเบียนอื่น คุณไม่สามารมีค่าซ้ำกันในคีย์หลักได้ เช่น อย่าใช้ชื่อคนเป็นคีย์หลัก เนื่องจากชื่อมีซ้ำกัน คุณอาจพบชื่อสองคนซ้ำกันได้ง่ายๆ ในตารางเดียวกัน
คีย์หลักต้องเป็นค่าเสมอ ถ้าไม่ได้มอบหมายค่าของคอลัมน์หรือไม่ทราบค่า (ค่าหายไป) ในบางจุด ค่าจะไม่สามารถใช้เป็นคอมโพเนนต์ในคีย์หลักได้
คุณควรเลือกคีย์หลักที่ไม่มีการเปลี่ยนค่าเสมอ ในฐานข้อมูลที่ใช้มากกว่าหนึ่งตาราง คีย์หลักของตารางสามารถใช้เป็นข้อมูลอ้างอิงในอีกตารางหนึ่งได้ ถ้าคีย์หลักเปลี่ยนแปลง คุณจะต้องเปลี่ยนทุกที่ที่คีย์หลักอ้างอิงถึงด้วย การใช้คีย์หลักที่ไม่มีการเปลี่ยนแปลงจะช่วยลดโอกาสที่คีย์หลักจะไม่ซิงค์กับตารางอื่นที่อ้างอิงถึงได้
มักจะใช้ตัวเลขไม่ซ้ำกันแบบกำหนดเองเป็นคีย์หลัก เช่น คุณอาจกำหนดคำสั่งซื้อแต่ละรายการเป็นหมายเลขคำสั่งซื้อที่ไม่ซ้ำกัน จุดประสงค์เฉพาะของหมายเลขคำสั่งซื้อคือเพื่อระบุคำสั่งซื้อ เมื่อมอบหมายแล้ว จะไม่มีการเปลี่ยนแปลง
ถ้าคุณยังไม่มีคอลัมน์หรือชุดคอลัมน์ในใจที่อาจทำให้เกิดคีย์หลักที่ดี ให้พิจารณาการใช้คอลัมน์ที่มีชนิดข้อมูล AutoNumber เมื่อคุณใช้ชนิดข้อมูล AutoNumber โปรแกรม Access จะกำหนดค่าให้คุณ ตัวระบุดังกล่าวเป็นแบบไม่เป็นจริง ซึ่งไม่มีข้อมูลจริงที่อธิบายว่าแต่ละแถวหมายถึงอะไร ตัวระบุแบบไม่เป็นจริงเหมาะสมที่สุดที่จะใช้กับคีย์หลักเนื่องจากไม่มีการเปลี่ยนแปลง คีย์หลักที่มีข้อมูลเกี่ยวกับแถว — เช่น หมายเลขโทรศัพท์หรือชื่อลูกค้า — มีแนวโน้มที่จะมีการเปลี่ยนแปลง เนื่องจากข้อมูลจริงอาจมีการเปลี่ยนแปลง
รูปแสดงตารางผลิตภัณฑ์ที่มีเขตข้อมูลคีย์หลัก
1. ชุดคอลัมน์ที่ตั้งค่าชนิดข้อมูลเป็น AutoNumber มักจะมีคีย์หลักที่ดี ไม่มีสอง ID ผลิตภัณฑ์ที่เหมือนกัน
ในบางกรณี คุณอาจต้องการใช้เขตข้อมูลอย่างน้อยสองรายการร่วมกัน เพื่อมอบคีย์หลักของตาราง เช่น ตารางรายละเอียดคำสั่งซื้อที่จัดเก็บรายการสำหรับคำสั่งซื้อที่ใช้สองคอลัมน์ในคีย์หลัก: ID คำสั่งซื้อ และ ID ผลิตภัณฑ์ เมื่อคีย์หลักใช้มากกว่าหนึ่งคอลัมน์ จะเรียกว่าคีย์รวม
สำหรับฐานข้อมูลยอดขายของผลิตภัณฑ์ คุณสามารถสร้างคอลัมน์ AutoNumber สำหรับแต่ละตารางเพื่อให้เป็นคีย์หลักได้: ID ผลิตภัณฑ์สำหรับตารางผลิตภัณฑ์, ID คำสั่งซื้อสำหรับตารางคำสั่งซื้อ, ID ลูกค้าสำหรับตารางลูกค้า, และ ID ผู้ขายสำหรับตารางผู้ขาย
รูปแสดงรายการข้อมูลในระหว่างกระบวนการออกแบบ

การสร้างความสัมพันธ์ตาราง

ตอนนี้คุณได้แบ่งข้อมูลลงในตารางแล้ว คุณต้องการวิธีที่จะรวบรวมข้อมูลอีกครั้งด้วยวิธีที่สื่อความหมาย เช่น ฟอร์มต่อไปนี้มีข้อมูลจากหลายๆ ตาราง
ฟอร์มใบสั่งซื้อ
1. ข้อมูลในฟอร์มนี้มาจากตารางลูกค้า...
2. ...ตารางพนักงาน...
3. ...ตารางใบสั่งซื้อ...
4. ...ตารางผลิตภัณฑ์...
5. ...และตารางรายละเอียดใบสั่งซื้อ
Access เป็นระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ ในฐานข้อมูลเชิงสัมพันธ์ ให้คุณแบ่งข้อมูลของคุณออกเป็นตารางแยกตามหัวข้อ จากนั้นให้ใช้ความสัมพันธ์ของตารางเพื่อรวบรวมข้อมูลที่ต้องการ

การสร้างความสัมพันธ์แบบหนึ่ง-ต่อ-กลุ่ม

พิจารณาตัวอย่างต่อไปนี้ ตารางผู้ขายและผลิตภัณฑ์ในฐานข้อมูลคำสั่งซื้อผลิตภัณฑ์ ผู้ขายสามารถสร้างหมายเลขผลิตภัณฑ์ได้ สิ่งที่ตามมาคือตัวแทนของผู้ขายในตารางผู้ขาย ซึ่งอาจเป็นผลิตภัณฑ์ต่างๆ ที่แสดงอยู่ในตารางผลิตภัณฑ์ ความสัมพันธ์ระหว่างตารางผู้ขายและตารางผลิตภัณฑ์ ซึ่งอาจจะเป็นความสัมพันธ์แบบหนึ่ง-ต่อ-กลุ่ม
กรอบความคิดแบบหนึ่ง-ต่อ-กลุ่ม
เมื่อต้องการแสดงความสัมพันธ์แบบหนึ่ง-ต่อ-กลุ่มในการออกแบบฐานข้อมูลของคุณ ให้เอาคีย์หลักมาไว้บนด้าน "หนึ่ง" ของความสัมพันธ์และเพิ่มให้เป็นคอลัมน์เพิ่มเติมลงในตารางบนด้าน "กลุ่ม" ของความสัมพันธ์ ตัวอย่างเช่น ในกรณีนี้คุณเพิ่มคอลัมน์ ID ผู้ขาย จากตารางผู้ขายลงในตารางผลิตภัณฑ์ จากนั้น Access จะสามารถใช้หมายเลข ID ผู้ขายในตารางผลิตภัณฑ์เพื่อระบุตำแหน่งผู้ขายที่ถูกต้องสำหรับลูกค้าแต่ละรายได้
คอลัมน์ ID ผู้ขายในตารางผลิตภัณฑ์เรียกว่าคีย์นอก คีย์นกเป็นคีย์หลักของอีกตารางหนึ่ง คอลัมน์ ID ผู้ขายในตารางผลิตภัณฑ์เป็นคีย์นอก เนื่องจากมีคีย์หลักในตารางผู้ขายเช่นเดียวกัน
รูปแสดงรายการข้อมูลในระหว่างกระบวนการออกแบบ
คุณได้มอบพื้นฐานสำหรับเข้าร่วมตารางที่เกี่ยวข้องกันโดยการเผยแพร่คู่คีย์หลักและคีย์นอก ถ้าคุณไม่แน่ใจว่าตารางใดควรใช้คอลัมน์ทั่วไปร่วมกัน การระบุความสัมพันธ์แบบหนึ่ง-ต่อ-กลุ่มช่วยให้แน่ใจได้ว่าสองตารางมีส่วนเกี่ยวข้อง และจำเป็นต้องเป็นคอลัมน์ที่แชร์

การสร้างความสัมพันธ์แบบกลุ่ม-ต่อ-กลุ่ม

พิจารณาความสัมพันธ์ระหว่างตารางผลิตภัณฑ์และตารางคำสั่งซื้อ
ใบสั่งซื้อเดียวสามารถมีผลิตภัณฑ์ได้มากกว่าหนึ่งอย่าง ในทางกลับกัน ผลิตภัณฑ์เดียวก็สามารถปรากฏบนใบสั่งซื้อหลายใบได้ ดังนั้น สำหรับแต่ละระเบียนในตารางใบสั่งซื้อจึงสามารถมีหลายระเบียนในตารางผลิตภัณฑ์ได้ และสำหรับแต่ละระเบียนในตารางผลิตภัณฑ์ก็สามารถมีหลายระเบียนในตารางใบสั่งซื้อได้ ความสัมพันธ์ชนิดนี้เรียกว่าความสัมพันธ์แบบกลุ่ม-ต่อ-กลุ่ม เนื่องจากสำหรับผิตภัณฑ์ใดๆ สามารถมีหลายคำสั่งซื้อ และคำสั่งซื้อใดๆ สามารถมีหลายผลิตภัณฑ์ โปรดสังเกตว่าในการกำหนดความสัมพันธ์แบบกลุ่ม-ต่อ-กลุ่มระหว่างตารางของคุณนั้น สิ่งสำคัญคือ คุณต้องพิจารณาทั้งสองด้านของความสัมพันธ์
หัวเรื่องของสองตาราง — คำสั่งซื้อและผลิตภัณฑ์ — เป็นความสัมพันธ์แบบกลุ่ม-ต่อ-กลุ่ม ซึ่งแสดงให้เห็นถึงปัญหา เมื่อต้องการทำความเข้าใจกับปัญหา ให้ลองคิดว่าอะไรจะเกิดขึ้นเมื่อคุณพยายามสร้างความสัมพันธ์ระหว่างสองตารางโดยการเพิ่มเขตข้อมูล ID ผลิตภัณฑ์ ไปยังตารางคำสั่งซื้อ เมื่อต้องกมาให้มีผลิตภัณฑ์มากกว่าหนึ่งต่อคำสั่งซื้อ คุณจำเป็นต้องมีระเบียนมากกว่าหนึ่งระเบียนในตารางคำสั่งซื้อต่อคำสั่งซื้อ คุณอาจทำซ้ำข้อมูลคำสั่งซื้อในแต่ละแถวที่เกี่ยวข้องกำแต่ละคำสั่งซื้อ — ส่งผลให้เกิดการออกแบบที่ไม่มีประสิทธิภาพที่อาจทำให้เกิดข้อมูลที่ไม่ถูกต้อง คุณจะเกิดปัญหาเดียวกันถ้าคุณใส่เขตข้อมูล ID คำสั่งซื้อในตารางผลิตภัณฑ์ — คุณอาจมีระเบียนมากกว่าหนึ่งระเบียนในตารางผลิตภัณฑ์สำหรับแต่ละผลิตภัณฑ์ คุณแก้ไขปัญหานี้อย่างไร
คำตอบคือให้สร้างตารางที่สาม มักจะถูกเรียกว่าตารางเชื่อมต่อ ที่แบ่งความสัมพันธ์แบบกลุ่ม-ต่อ-กลุ่มเป็นความสัมพันธ์แบบหนึ่ง-ต่อ-กลุ่มสองความสัมพันธ์ คุณแทรกคีย์หลักจากแต่ละตารางทั้งสองตารางลงในตารางที่สาม ทำให้ตารางที่สามบันทึกแต่ละเหตุการณ์หรืออินสแตนซ์ของความสัมพันธ์
ความสัมพันธ์แบบกลุ่ม-ต่อ-กลุ่ม
แต่ละระเบียนในตารางรายละเอียดคำสั่งซื้อแสดงรายการหนึ่งบรรทัดบนคำสั่งซื้อ คีย์หลักของตารางรายละเอียดคำสั่งซื้อประกอบด้วยเขตข้อมูลสองเขตข้อมูล — คีย์นอกจากตารางคำสั่งซื้อและตารางผลิตภัณฑ์ การใช้เขตข้อมูล ID คำสั่งซื้อเพียงอย่างเดียวไม่ได้เป็นการทำงานเป็นคีย์หลักสำหรับตารางนี้ เนื่องจากคำสั่งซื้อหนึ่งสามารถมีรายการได้หลายบรรทัด ID คำสั่งซื้อจำทำซ้ำรายการในแต่ละบรรทัดบนคำสั่งซื้อ ดังนั้นเขตข้อมูลไม่ใช่ค่าที่ไม่ซ้ำกัน การใช้เขตข้อมูล ID ผลิตภัณฑ์เพียงอย่างเดียวก็ไม่ได้ผลเช่นกัน เนื่องจากผลิตภัณฑ์หนึ่งสามารถปรากฏได้บนคำสั่งซื้ออื่นๆ แต่ร่วมกัน เขตข้อมูลทั้งสองมักจะสร้างค่าที่ไม่ซ้ำกันสำหรับแต่ละระเบียน
ในฐานข้อมูลยอดขายผลิตภัณฑ์ ตารางคำสั่งซื้อ และตารางผลิตภัณฑ์จะไม่เกี่ยวข้องต่อกันและกันโดยตรง แต่จะเกี่ยวข้องกันทางอ้อมผ่านตารางรายละเอียดคำสั่งซื้อแทน ความสัมพันธ์แบบกลุ่ม-ต่อ-กลุ่มระหว่างคำสั่งซื้อและผลิตภัณฑ์จะแสดงในฐานข้อมูลโดยใช้ความสัมพันธ์แบบหนึ่ง-ต่อ-กลุ่มสองความสัมพันธ์
  • ตารางคำสั่งซื้อและตารางรายละเอียดคำสั่งซื้อมีความสัมพันธ์แบบหนึ่ง-ต่อกลุ่ม แต่ละคำสั่งซื้อสามารถมีรายการมากกว่าหนึ่งบรรทัดที่เชื่อมต่อกันหนึ่งคำสั่งซื้อเท่านั้น
  • ตารางผลิตภัณฑ์และตารางรายละเอียดคำสั่งซื้อมีความสัมพันธ์แบบหนึ่ง-ต่อกลุ่ม แต่ละผลิตภัณฑ์สามารถมีรายการบรรทัดหลายบรรทัดที่เกี่ยวข้องกับผลิตภัณฑ์ได้ แต่แต่ละบรรทัดจะหมายถึงผลิตภัณฑ์เดียวเท่านั้น
จากตารางรายละเอียดคำสั่งซื้อ คุณสามารถตรวจสอบผลิตภัณฑ์ทั้งหมดในคำสั่งซื้อที่ระบุได้ คุณยังสามารถตรวจสอบคำสั่งซื้อทั้งหมดสำหรับเฉพาะผลิตภัณฑ์ได้
หลังจากการรวมตารางรายละเอียดคำสั่งซื้อ รายการตารางและเขตข้อมูลอาจมีลักษณะดังนี้:
รูปแสดงรายการข้อมูลในระหว่างกระบวนการออกแบบ

การสร้างความสัมพันธ์แบบหนึ่ง-ต่อ-หนึ่ง

ความสัมพันธ์อีกชนิดหนึ่งคือความสัมพันธ์แบบหนึ่ง-ต่อ-หนึ่ง เช่น สมมติว่าคุณต้องการระเบียนเฉพาะข้อมูลผลิตภัณฑ์เสริมบางอย่างที่คุณไม่ค่อยได้ใช้หรือเฉพาะผลิตภัณฑ์บางอย่าง เนื่องจากคุณไม่ต้องการข้อมูลบ่อยๆ และเนื่องจากการจัดเก็บข้อมูลในตารางผลิตภัณฑ์อาจทำให้เกิดพื้นที่ว่างสำหรับทุกผลิตภัณฑ์ที่ไม่เกี่ยวข้อง ให้คุณใส่ในตารางแยก เช่น ตารางผลิตภัณฑ์ คุณจะเห็น ID ผลิตภัณฑ์และคีย์หลัก ความสัมพันธ์ระหว่างตารางเสริมและตารางผลิตภัณฑ์เป็นความสัมพันธ์แบบหนึ่ง-ต่อ-หนึ่ง สำหรับแต่ละระเบียนในตารางผลิตภัณฑ์ จะมีระเบียนการจับคู่เดี่ยวในตารางเสริม เมื่อคุณระบุความสัมพันธ์ดังกล่าว ทั้งสองตารางจะต้องใช้เขตข้อมูลทั่วไปเดียวกัน
เมื่อคุณตรวจสอบความจำเป็นสำหรับความสัมพันธ์แบบหนึ่ง-ต่อ-หนึ่งในฐานข้อมูลของคุณ ให้พิจารณาว่าคุณได้ใส่ข้อมูลจากสองตารางรวมกันในหนึ่งตารางหรือไม่ ถ้าคุณไม่ต้องการทำดังกล่าวด้วยเหตุผลบางอย่าง บางทีอาจเป็นเพราะอาจส่งผลให้เกิดพื้นที่ว่างจำนวนมาก รายการต่อไปนี้จะแสดงวิธีที่คุณสามารถแสดงความสัมพันธ์ได้ในการออกแบบของคุณ:
  • ถ้าสองตารางมีหัวเรื่องเดียวกัน คุณอาจตั้งค่าความสัมพันธ์โดยใช้คีย์หลักเดียวกันทั้งสองตารางได้
  • ถ้าสองตารางมีหัวเรื่องต่างกันและมีคีย์หลักต่างกัน ให้เลือกตารางใดตารางหนึ่งแล้วแทรกคีย์หลักในอีกตารางหนึ่งเป็นคีย์นอก
การตรวจสอบความสัมพันธ์ระหว่างตารางช่วยให้คุณแน่ใจได้ว่าคุณมีตารางและคอลัมน์ที่ถูกต้อง เมื่อมีความสัมพันธ์แบบหนึ่ง-ต่อ-หนึ่ง หรือหนึ่ง-ต่อ-กลุ่ม ตารางที่เกี่ยวข้องจะต้องมีคอลัมน์ทั่วไปเดียวกัน เมื่อมีความสัมพันธ์แบบกลุ่ม-ต่อ-กลุ่ม ตารางที่สามจะต้องแสดงความสัมพันธ์

การจำกัดการออกแบบ

เมื่อคุณมีตาราง เขตข้อมูล และความสัมพันธ์ที่ต้องการ คุณควรสร้างและเติมข้อมูลในตารางด้วยข้อมูลตัวอย่างและพยายามทำงานกับข้อมูล: การสร้างคิวรี การเพิ่มระเบียนใหม่ และอื่นๆ การทำเช่นนี้ช่วยให้คุณเน้นถึงปัญหาสำคัญ — เช่น คุณอาจำเป็นต้องเพิ่มคอลัมน์ที่คุณลืมแทรกระหว่างขั้นตอนการออกแบบของคุณ หรือคุณอาจมีตารางที่ควรแยกเป็นสองตารางเพื่อขจัดการทำซ้ำ
ดูว่าคุณสามารถใช้ฐานข้อมูลเพื่อให้ได้คำตอบที่คุณต้องการหรือไม่ สร้างแบบร่างดิบสำหรับฟอร์มและรายงานของคุณ และดูว่าแบบร่างเหล่านั้นแสดงข้อมูลตามที่คุณคาดหวังหรือไม่ มองหาข้อมูลที่ซ้ำกันโดยไม่จำเป็น เมื่อคุณพบ ให้เปลี่ยนหรือลบออก
เมื่อคุณลองฐานข้อมูลเบื้องต้น คุณอาจพบจุดที่ควรปรับปรุง ต่อไปนี้เป็นบางอย่างสำหรับการตรวจสอบ:
  • คุณลืมคอลัมน์อะไรหรือไม่ ถ้าเป็นเช่นนั้น ข้อมูลควรอยู่ในตารางที่มีอยู่หรือไม่ ถ้าเป็นข้อมูลอย่างอื่น คุณอาจจำเป็นต้องสร้างอีกตารางหนึ่ง สร้างคอลัมน์สำหรับทุกรายการข้อมูลที่คุณจำเป็นต้องติดตาม ถ้าข้อมูลไม่สามารถคำนวณได้จากคอลัมน์อื่น มีแนวโน้มว่าคุณจำเป็นต้องสร้างคอลัมน์ใหม่
  • มีคอลัมน์ใดๆ ที่ไม่จำเป็นเนื่องจากสามารถคำนวณจากเขตข้อมูลที่มีอยู่หรือไม่ ถ้ารายการข้อมูลสามารถคำนวณได้จากคอลัมน์อื่นที่มีอยู่ — เช่น ราคาส่วนลดคำนวณจากราคาขายปลีก — โดยทั่วไปแล้วคุณควรทำดังกล่าวและหลีกเลี่ยงการสร้างคอลัมน์ใหม่
  • คุณใส่ข้อมูลซ้ำๆ ในตารางเดียวใช่ไหม ถ้าใช่ คุณอาจจำเป็นต้องแยกตารางเป็นสองตารางที่มีความสัมพันธ์แบบหนึ่ง-ต่อ-กลุ่ม
  • คุณมีตารางที่มีหลายเขตข้อมูล จำนวนระเบียนที่จำกัด และมีเขตข้อมูลเปล่ามากมายในแต่ละระเบียนใช่ไหม ถ้าใช่ ให้ลองออกแบบตารางใหม่เพื่อให้มีเขตข้อมูลที่น้อยลงและมีระเบียนมากขึ้น
  • รายการข้อมูลแต่ละรายการถูกแบ่งเป็นส่วนต่างๆ ที่เป็นประโยชน์ขนาดเล็กที่สุดใช่ไหม ถ้าคุณต้องการรายงาน จัดเรียง ค้นหา หรือคำนวณรายการข้อมูล ให้ใส่รายการดังกล่าวในคอลัมน์ของรายการ
  • คอลัมน์แต่ละคอลัมน์มีข้อมูลเกี่ยวกับหัวเรื่องในตารางหรือไม่ ถ้าคอลัมน์ไม่มีข้อมูลเกี่ยวกับหัวเรื่องของตาราง แสดงว่าคอลัมน์ดังกล่าวควรอยู่ในตารางอื่น
  • ความสัมพันธ์ระหว่างตารางทั้งหมดแสดงเขตข้อมูลทั่วไปหรือโดยตารางที่สามใช่ไหม ความสัมพันธ์หนึ่งต่อหนึ่งและหนึ่งต่อกลุ่มต้องการคอลัมน์ทั่วไป ความสัมพันธ์แบบกลุ่มต่อกลุ่มจำเป็นต้องมีตารางที่สาม

การกำหนดตารางผลิตภัณฑ์

สมมติว่าผลิตภัณฑ์แต่ละชิ้นในฐานข้อมูลยอดขายผลิตภัณฑ์อยู่ใต้ประเภททั่วไป เช่น เครื่องดื่ม เครื่องปรุง หรืออาหารทะเล ตารางผลิตภัณฑ์ควรมีเขตข้อมูลที่แสดงประเภทของสินค้าแต่ละชิ้น
สมมติว่าหลังจากการตรวจสอบและการปรับแต่งการออกแบบฐานข้อมูล คุณตัดสินใจที่จะจัดเก็บคำอธิบายจองประเภทควบคู่กับชื่อ ถ้าคุณเพิ่มเขตข้อมูลคำอธิบายประเภทลงในตารางผลิตภัณฑ์ คุณต้องทำซ้ำคำอธิบายแต่ละประเภทสำหรับแต่ละผลิตภัณฑ์ที่อยู่ภายใต้ประเภทนั้นๆ — ซึ่งไม่ใช่โซลูชันที่ดี
โซลูชันที่ดีกว่าคือสร้างประเภทเป็นหัวเรื่องใหม่สำหรับฐานข้อมูลเพื่อติดตาม ด้วยตารางของตัวเองและคีย์หลักของตัวเอง จากนั้นคุณสามารถเพิ่มคีย์หลักจากตารางประเภทลงในตารางผลิตภัณฑ์เป็นคีย์นอกได้
ตารางประเภทและผลิตภัณฑ์มีความสัมพันธ์แบบหนึ่ง-ต่อ-กลุ่ม: ประเภทสามารถมีมากกว่าหนึ่งผลิตภัณฑ์ แต่ผลิตภัณฑ์สามารถมีได้ประเภทเดียว
เมื่อคุณตรวนทางเค้าโครงตารางของคุณ ให้ระวังการทำกลุ่มซ้ำ เช่น พิจารณาการใส่คอลัมน์ต่อไปนี้:
  • ID ผลิตภัณฑ์
  • ชื่อ
  • ID ผลิตภัณฑ์1
  • ชื่อ1
  • ID ผลิตภัณฑ์2
  • ชื่อ2
  • ID ผลิตภัณฑ์3
  • ชื่อ3
ที่นี่ แต่ละผลิตภัณฑ์เป็นกลุ่มคอลัมน์ซ้ำกันที่แตกต่างจากคอลัมน์อื่นๆ เพียงการเพิ่มตัวเลขลงไปที่ส่วนท้ายของชื่อคอลัมน์ เมื่อคุณเห็นคอลัมน์แสดงตัวเลขในลักษณะนี้ คุณควรตรวจสอบการออกแบบของคุณใหม่
การออกแบบดังกล่าวมีจุดบกพร่องหลายแห่ง สำหรับมือใหม่ คุณจำเป็นต้องใส่ขีดจำกัดสูงสุดให้กับจำนวนผลิตภัณฑ์ ทันทีที่คุณเกินขีดจำกัดดังกล่าว คุณจะต้องเพิ่มกลุ่มคอลัมน์ใหม่ไปยังโครงสร้างตาราง ซึ่งเป็นงานการจัดการหลัก
ปัญหาอื่นๆ ที่ผู้ขายเหล่านั้นอาจมีน้อยกว่าจำนวนผลิตภัณฑ์สูงสุดจะทำให้เปลืองพื้นที่ว่าง เมื่อคอลัมน์เพิ่มเติมจะเป็นคอลัมน์เปล่า ปัญหาร้ายแรงส่วนใหญ่ เช่น การออกแบบที่ทำงานงานหลายย่างทำได้ยาก เช่น การจัดเรียงหรือการทำดัชนีตารางตาม ID หรือชื่อผลิตภัณฑ์
เมื่อใดก็ตามที่คุณเห็นกลุ่มซ้ำ ให้ตรวจสอบการออกแบบโดยละเอียดโดยให้ความสนใจในการแยกตารางเป็นสองตาราง ในตัวอย่างด้านบน คุณควรใช้สองตาราง ตารางหนึ่งสำหรับผู้ขาย อีกตารางหนึ่งสำหรับผลิตภัณฑ์ เชื่อมโยงตาม ID ผู้ขาย

การนำกฎการนอร์มัลไลซ์ไปใช้

คุณสามารถนำกฎการนอร์มัลไลซ์ไปใช้ (บางครั้งเรียกว่ากฎการนอร์มัลไลซ์) ตามขั้นตอนถัดไปในการออกแบบของคุณ คุณใช้กฎเหล่านี้เพื่อดูว่าตารางของคุณมีโครงสร้างถูกต้องแล้วหรือไม่ ขั้นตอนการนำกฎไปใช้กับการออกแบบฐานข้อมูลของคุณเรียกว่าการนอร์มัลไลซ์ฐานข้อมูล หรือการนอร์มัลไลซ์
การนอร์มัลไลซ์มีประโยชน์สูงสุดหลังจากที่คุณแสดงรายการข้อมูลทั้งหมดและสิ้นสุดการออกแบบเบื้องต้น แนวคิดที่จะช่วยให้คุณแน่ใจได้ว่าคุณได้แบ่งรายการข้อมูลออกเป็นตารางที่เหมาะสม สิ่งที่การนอร์มัลไลซ์ไม่สามารถทำได้คือยืนยันว่าคุณมีรายการข้อมูลที่ถูกต้องทั้งหมดที่จะเริ่มต้น
คุณนำกฎไปใช้ได้สำเร็จ ในแต่ละขั้นตอนช่วยให้แน่ใจว่าการออกแบบของคุณมาถึงจุดที่เรียกว่า “ฟอร์มปกติ” แล้ว ฟอร์มทั่วไปห้าแบบที่ได้รับการยอมรับอย่างกว้างขวาง — ฟอร์มทั่วไปแรกจนถึงฟอร์มทั่วไปที่ห้า บทความนี้อธิบายสามฟอร์มแรก เนื่องจากเป็นข้อมูลหลักๆ ทั้งหมดที่จำเป็นสำหรับการออกแบบฐานข้อมูล

ฟอร์มปกติที่หนึ่ง

ฟอร์มทั่วไปที่หนึ่งระบุว่าทุกแถวและจุดตัดในคอลัมน์ในตาราง มีค่าเดี่ยวและไม่ใช่รายการค่า เช่น คุณไม่สามารถมีชื่อ ราคา ในตำแหน่งที่มากกว่าหนึ่ง ราคา ได้ ถ้าคุณคิดว่าจุดตัดแต่ละจุดของแถวและคอลัมน์เป็นเซลล์ แต่ละเซลล์สามารถมีเพียงค่าเดียวเท่านั้น

ฟอร์มปกติที่สอง

ฟอร์มทั่วไปที่สอง คอลัมน์ที่ไม่ใช่คอลัมน์หลักแต่ะลคอลัมน์จะต้องขึ้นอยู่กับคีย์หลักทั้งหมด ไม่ใช่เพียงคีย์บางส่วน กฎนี้นำไปใช้เมื่อคุณมีคีย์หลักที่มีมากกว่าหนึ่งคอลัมน์ เช่น สมมติว่าคุณมีตารางที่มีคอลัมน์ต่อไปนี้ โดยที่ ID คำสั่งซื้อและ ID ผลิตภัณฑ์เป็นคีย์หลัก:
  • ID คำสั่งซื้อ (คีย์หลัก)
  • ID ผลิตภัณฑ์ (คีย์หลัก)
  • ชื่อผลิตภัณฑ์
การออกแบบนี้ละเมิดฟอร์มทั่วไปที่สอง เนื่องจากชื่อผลิตภัณฑ์ต้องขึ้นอยู่กับ ID ผลิตภัณฑ์แต่ไม่ใช่ ID คำสั่งซื้อ ดังนั้นจึงไม่เป็นการขึ้นกับคีย์หลักทั้งหมด คุณต้องเอาชื่อผลิตภัณฑ์ออกจากตาราง ซึ่งควรอยู่ในตารางอื่น (ผลิตภัณฑ์)

ฟอร์มปกติที่สาม

ฟอร์มทั่วไปที่สามจำเป็นต้องมีคอลัมน์ที่ไม่ใช่คีย์ทุกคอลัมน์ขึ้นอยู่กับคีย์หลักทั้งหมด แต่คอลัมน์ที่ไม่คีย์เป็นอิสระต่อกัน
พูดอีกอย่างหนึ่งคือคอลัมน์ที่ไม่ใช่คีย์แต่ละคอลัมน์จะต้องขึ้นอยู่กับคีย์หลักแต่ไม่ขึ้นอยู่กับอย่างอื่นนอกจากคีย์หลัก เช่น สมมติว่าคุณมีตารางที่มีคอลัมน์ต่อไปนี้:
  • ID ผลิตภัณฑ์ (คีย์หลัก)
  • ชื่อ
  • SRP
  • ส่วนลด
สมมติว่า ส่วนลด ขึ้นกับราคาปลีกที่แนะนำ (SRP) ตางรางนี้ละเมิดฟอร์มทั่วไปที่สามเนื่องจากไม่ใช่คอลัมน์คีย์ ส่วนลด ขึ้นอยู่กับคอลัมน์ที่ไม่ใช่คีย์อีกคอลัมน์หนึ่งคือ SRP คอลัมน์อิสระหมายถึงคุณควรสามารถเปลี่ยนแปลงคอลัมน์ที่ไม่ใช่คีย์ใดๆ โดยไม่มีผลต่อคอลัมน์อื่นๆ ถ้าคุณเปลี่ยนค่าในเขตข้อมูล SRP ส่วนลด จะเปลี่ยนตาม ดังนั้นจึงเป็นการละเมิดกฎ ในกรณีนี้ ส่วนลด ควรย้ายไปยังอีกตารางหนึ่งที่เป็นคีย์บน SRP

วันไหว้ครู

             Teacher's day   📙  🙏                              . . . ฉันได้รับมอบหมายในการเป็นผู้นำสวดบูชาครู ...