แบบทดสอบเรื่อง การอ่านจับใจความสำคัญ... จำนวน 10 ข้อ วิชาภาษาไทย (รหัส ท23101) ระดับ มัธยมศึกษาปีที่ 3 เรื่อง การอ่านจับใจความสำคัญ... จำนวน 10 ข้อ โดย ด.ช. สุธิวัฒน์ สหุนันต์ โรงเรียนผาแดงวิทยา... คำสั่ง เลือก หรือ เติมคำตอบที่ถูกต้องที่สุด ข้อที่ 1) ข้อใดสำคัญที่สุดในการเขียนกรอบความคิด การอ่านจับใจความสำคัญ การลากเส้นโยงความคิด การกำหนดรูปแบบในการนำเสนอ การใช้ภาพสัญลักษณ์ที่เกี่ยวข้อง ข้อที่ 2) ข้อใดกล่าวถูกต้องเกี่ยวกับใจความสำคัญ ครอบคลุมข้อความอื่นๆ ทำให้เกิดเรื่อง เด่นเฉพาะตัว ถูกทุกข้อ ข้อที่ 3) ใจความสำคัญมีลักษณะอย่างไร เป็นคำ เป็นวลี เป็นอนุเฉท เป็นประโยค ข้อที่ 4) ข้อใดกล่าวถูกต้องเกี่ยวกับใจความสำคัญ เข้าใจประเภท ตั้งจุดมุ่งหมาย ใช้พจนานุกรม สำรวจส่วนประกอบ ข้อที่ 5) ข้อใดไม่ใช่ขั้นตอนการอ่านจับใจความสำคัญ อ่านผ่านๆ อ่านให้ละเอียด อ่านซ้ำ คัดลอก ข้อที่ 6) ข้อใดไม่ใช่การพิจารณาความหมาย บริบท สำนวน น้ำเสียง การเปลี่ยนแปลง ข้อที่ 7) คำในข้อใดมีความหมายอ้อม น้ำมาปลากินมด น้ำลดมดกินปลา อันอ้อยตาลหวานลิ้นแล้วสิ้นซาก แต่ลมปากหวานหูไม่รู้ร้าย โบราณว่าถ้าเหลือกำลังลาก ให้บอกปากบอกแขกช่วยแบกหาม ถึงเถาวัลย์พันเกี่ยวที่เลี้ยวลด ก็ไม่คดเหมือนหนึ่งในน้ำใจคน ข้อที่ 8) คำว่า ฆ้อง ในข้อใดมีความหมายอ้อม ถึงยามค่ำย่ำฆ้องจะร้องให้ ในสมัยโบราณใช้ฆ้องตีบอกเวลา วาทีหนีจากบ้านมีฆ้องกระแตไปด้วย นายมีชอบทำตัวเป็นพวกฆ้องปากแตก ข้อที่ 9) ข้อใดสำคัญที่สุดในการเขียนกรอบความคิด การอ่านจับใจความสำคัญ การลากเส้นโยงความคิด การกำหนดรูปแบบในการนำเสนอ การใช้ภาพสัญลักษณ์ที่เกี่ยวข้อง ข้อที่ 10) ข้อใดไม่ใช่วิธีการศึกษาข้อมูลเพื่อเขียนกรอบความคิด วิเคราะห์เนื้อหาและแตกประเด็น ศึกษาเรื่องที่ต้องการเขียนกรอบแนวคิด สังเคราะห์เรื่องเข้าเป็นประเด็นเดียวกัน เรียบเรียงและจัดหมวดหมู่ความคิดตัดประเด็นที่ไม่จำเป็นออก Show
ฐานข้อมูลที่ได้รับการออกแบบมาอย่างเหมาะสมมอบการเข้าถึงข้อมูลที่ทันสมัยและถูกต้อง เนื่องจากการออกแบบที่ถูกต้องเป็นสิ่งจำเป็นในการบรรลุเป้าหมายในการทำงานกับฐานข้อมูล ต้องการเวลาในการตรวจสอบเพื่อเรียนรู้หลักการของการออกแบบที่ดีที่เหมาะสม ในที่สุด คุณมีแนวโน้มมากที่จะจบที่ฐานข้อมูลที่ตรงตามความต้องการของคุณและง่ายต่อการจัดการการเปลี่ยนแปลง บทความนี้มีแนวทางสำหรับการวางแผนฐานข้อมูลบนเดสก์ท็อป คุณจะเรียนรู้วิธีการตัดสินใจว่าข้อมูลใดที่คุณต้องการ วิธีการแบ่งข้อมูลเป็นตารางและคอลัมน์ที่เหมาะสม และตารางเหล่านั้นเกี่ยวข้องกับแต่ละตารางอย่างไร คุณควรอ่านบทความนี้ก่อนที่คุณจะสร้างฐานข้อมูลแรกของคุณ สิ่งสำคัญ: Access มอบประสบการณ์การออกแบบที่ช่วยให้คุณสร้างแอปพลิเคชันฐานข้อมูลสำหรับ Web ข้อควรพิจารณาการออกแบบมากมายจะต่างกันเมื่อคุณออกแบบสำหรับเว็บ บทความนี้ไม่พูดคุยเกี่ยวกับการออกแบบแอปพลิเคชันฐานข้อมูลบนเว็บ สำหรับข้อมูลเพิ่มเติม โปรดดูบทความ สร้างฐานข้อมูลเพื่อแชร์บนเว็บ ในบทความนี้
คำศัพท์เกี่ยวกับฐานข้อมูลบางอย่างที่ควรรู้Access จะจัดระเบียบข้อมูลของคุณลงในตาราง: รายการแถวและคอลัมน์ทำให้นึกถึงแผ่นงานหรือสเปรดชีตของนักบัญชี ในฐานข้อมูลอย่างง่าย คุณอาจมีแค่ตารางเดียว สำหรับฐานข้อมูลส่วนใหญ่ คุณจำเป็นต้องมีมากกว่าหนึ่งตาราง เช่น คุณอาจมีตารางที่เก็บข้อมูลเกี่ยวกับผลิตภัณฑ์ อีกตารางหนึ่งเป็นที่เก็บข้อมูลเกี่ยวกับคำสั่งซื้อ และอีกตารางหนึ่งมีข้อมูลเกี่ยวกับลูกค้า แต่ละแถวจะถูกเรียกให้เหมาะสมยิ่งขึ้นว่า ระเบียน แต่ละคอลัมน์เป็น เขตข้อมูล ระเบียนเป็นวิธีที่สื่อถึงความหมายและเกี่ยวข้องกับการรวมข้อมูลเกี่ยวกับบางอย่าง เขตข้อมูลเป็นรายการข้อมูลเดี่ยว — ชนิดรายการที่ปรากฏในทุกระเบียน ในตารางผลิตภัณฑ์ เช่น แต่ละแถวหรือระเบียนควรมีข้อมูลเกี่ยวกับหนึ่งผลิตภัณฑ์ แต่ละคอลัมน์หรือเขตข้อมูลจะมีชนิดข้อมูลบางอย่างเกี่ยวกับผลิตภัณฑ์ เช่น ชื่อหรือราคา ด้านบนของหน้า การออกแบบฐานข้อมูลที่ดีคืออะไรหลักการบางอย่างเป็นแนวทางสำหรับขั้นตอนการออกแบบฐานข้อมูล หลัการแรกคือข้อมูลที่เกิดขึ้นซ้ำๆ (หรือเรียกว่าข้อมูลที่ซ้ำกัน) เป็นสิ่งไม่ดี เนื่องจากเปลืองพื้นที่และเพิ่มความน่าจะเป็นที่จะเกิดข้อผิดพลาดและความไม่สอดคล้องกัน หลักการที่สองคือความถูกต้องและความสมบูรณ์ของข้อมูลเป็นสิ่งสำคัญ ถ้าฐานข้อมูลของคุณมีข้อมูลที่ไม่ถูกต้อง รายงานใดๆ ที่ถึงข้อมูลจากฐานข้อมูลจะมีข้อมูลที่ไม่ถูกต้องเช่นเดียวกัน ส่งผลให้การตัดใจใดๆ ที่คุณทำโดยอ้างอิงจากรายงานเหล่านั้นจะเป็นข้อมูลที่ผิดพลาด การออกแบบฐานข้อมูลที่คือ ฐานข้อมูลที่:
ด้านบนของหน้า ขั้นตอนการออกแบบขั้นตอนการออกแบบมีขั้นตอนดังต่อไปนี้:
ด้านบนของหน้า การกำหนดวัตถุประสงค์ของฐานข้อมูลของคุณเราแนะนำให้เขียนจุดประสงค์ของฐานข้อมูลลงกระดาษ เช่น จุดประสงค์ของฐานข้อมูล สิ่งที่คุณคาดหวังว่าจะใช้ฐานข้อมูล และใครจะใช้ฐานข้อมูลบ้าง สำหรับฐานข้อมูลขนาดเล็กสำหรับธุรกิจในบ้าน เช่น คุณอาจเขียนบางอย่างอย่างง่ายๆ เช่น “ฐานข้อมูลลูกค้าเก็บข้อมูลรายชื่อลูกค้าสำหรับจุดประสงค์การส่งจดหมายและรายงานเกี่ยวกับการผลิต” ถ้าฐานข้อมูลมีความซับซ้อนหรือถูกใช้โดยผู้ใช้หลายคน ตามที่เกิดขึ้นบ่อยๆ ในการตั้งค่าขององค์กร จุดประสงค์อาจเป็นย่อหน้าอย่างง่ายหรือเพิ่มเติม และควรบันทึกเวลาและวิธีที่ผู้ใช้ใช้ฐานข้อมูล แนวคิดคือเพื่อให้ได้คำชี้แจงภารกิจที่พัฒนาอย่างดีแล้วที่สามารถอ้างอิงถึงขั้นตอนการออกแบบทั้งหมด การมีคำชี้แจ้งเช่นนั้นช่วยให้คุณเน้นไปที่เป้าหมายเมื่อคุณทำการตัดสินใจ ด้านบนของหน้า การค้นหาและการจัดระเบียบข้อมูลที่จำเป็นเมื่อต้องการค้นหาและจัดระเบียบข้อมูลที่จำเป็น ให้เริ่มด้วยข้อมูลที่มีอยู่ เช่น คุณอาจบันทึกคำสั่งซื้อในบัญชีแยกประเภทหรือเก็บข้อมูลลูกค้าบนฟอร์มกระดาษในตู้เก็บเอกสาร รวบรวมเอกสารเหล่านั้นและทำรายการแต่ละชนิดข้อมูลที่แสดง (เช่น แต่ละช่องที่คุณกรอกลงบนฟอร์ม) ถ้าคุณไม่มีฟอร์มที่มีอยู่ ให้นึกถึงฟอร์มที่คุณออกแบบเพื่อบันทึกข้อมูลลูกค้าแทน ข้อมูลอะไรที่ควรเก็บไว้บนฟอร์ม ช่องเติมคำตอบใดที่คุณควรสร้าง ระบุและทำรายการเหล่านั้น เช่น สมมติว่าขณะนี้คุณเก็บรายชื่อลูกค้าไว้บนบัตรดัชนี ตรวจสอบบัตรเหล่านี้ซึ่งอาจแสดงให้เห็นว่าบัตรแต่ละใบมีชื่อลูกค้า ที่อยู่ เมือง รัฐ รหัสไปรษณีย์ และหมายเลขโทรศัพท์ แต่ละรายการเหล่านี้แสดงถึงคอลัมน์ที่จะเกิดขึ้นใสตาราง ขณะที่คุณเตรียมรายการนี้ ไม่ต้องกังวลเกี่ยวกับการทำให้สมบูรณ์แบบในครั้งแรก แต่ให้ใส่แต่ละรายการที่นึกออกแทน ถ้าบุคคลอื่นจะใช้ฐานข้อมูล ให้ถามแนวคิดของพวกเขาด้วย คุณสามารถปรับแต่งรายการในภายหลังได้ ถัดไป ให้พิจารณาชนิดรายงานหรือจดหมายที่คุณต้องการสร้างจากฐานข้อมูล เช่น คุณอาจต้องการรายงานยอดขายผลิตภัณฑ์เพื่อแสดงยอดขายตามภูมิภาค หรือรายงานสรุปคลังสินค้าที่แสดงระดับสินค้าคงคลัง คุณอาจยังต้องการสร้างจดหมายฟอร์มเพื่อส่งให้ลูกค้าเพื่อแจ้งกิจกรรมการขายหรือข้อเสนอสุดพิเศษ ออกแบบรายงานในความคิดของคุณ แล้วจินตนาการว่ารายงานจะหน้าต่างเป็นอย่างไร ข้อมูลอะไรที่ควรมีอยู่ในรายงาน รายการแต่ละรายการ ทำเช่นเดียวกันสำหรับจดหมายฟอร์มและรายงานอื่นๆ ที่คุณคาดว่าจะสร้าง การมอบแนวคิดเพื่อรายงานและส่งจดหมายที่คุณอาจต้องการสร้างเพื่อช่วยให้คุณระบุรายการที่จำเป็นในฐานข้อมูลของคุณ เช่น สมมติว่าคุณมอบโอกาสให้ลูกค้าในการเลือก (หรือไม่เลือก) การอัปเดตอีเมลเป็นครั้งคราว และคุณต้องการพิมพ์รายชื่อผู้ที่เลือกใช้เหล่านั้น เมื่อต้องการบันทึกข้อมูลดังกล่าว ให้คุณเพิ่มคอลัมน์ “ส่งอีเมล” ไปยังตารางลูกค้า สำหรับลูกค้าแต่ละราย คุณสามารถตั้งเขตข้อมูลเป็น ใช่ หรือ ไม่ใช่ ได้ สิ่งที่จำเป็นในการส่งข้อความอีเมลให้กับลูกค้าเพื่อแนะนำรายการอื่นไปยังระเบียน เมื่อคูณทราบว่าลูกค้าต้องการรับข้อความอีเมล คุณยังจำเป็นต้องทราบที่อยู่ที่เมลที่จะส่งไปด้วย ดังนั้นคุณจำเป็นต้องบันทึกที่อยู่อีเมลสำหรับลูกค้าแต่ละราย เพื่อสร้างต้นโครงสร้างที่สมเหตุสมผลของแต่ละรายงานหรือรายการผลลัพธ์และพิจารณาว่ารายการใดที่จำเป็นในการสร้างรายการ เช่น เมื่อคุณตรวจสอบจดหมายฟอร์ม คุณอาจมีบางสิ่งบางอย่างอยู่ในใจ ถ้าคุณต้องการรวมคำทักทายที่เหมาะสม — เช่น “นาย”, “นาง” หรือ “นางสาว” ซึ่งเป็นสตริงเริ่มต้นของคำทักทาย คุณจำเป็นต้องสร้างรายการคำทักทาย นอกจากนี้ คุณอาจเริ่มจดหมายด้วย “เรียนคุณสมชาย” แทนที่ “เรียน” คุณ ประสงค์ วัฒนาพณิชย์ แนะนำให้คุณจัดเก็บนามสกุลแยกจากชื่อ จุดสำคัญในการจำคือคุณควรแบ่งข้อมูลแต่ละชิ้นลงในส่วนที่มีประโยชน์ที่เล็กที่สุด ในกรณีของชื่อ เพื่อทำให้นามสกุลพร้อมใช้งาน คุณจะต้องแบ่งชื่อออกเป็นสองส่วน — ชื่อและนามสกุล เมื่อต้องการรายงานนามสกุล เช่น ช่วยในการจัดเก็บนามสกุลของลูกค้าแยกต่างหาก โดยทั่วไป ถ้าคุณต้องการจัดเรียง ค้นหา คำนวณ หรือรายงานโดยอ้างอิงจากรายการข้อมูล คุณควรใส่รายการดังกล่าวลงในเขตข้อมูลของแต่ละรายการ ลองนึกถึงคำถามที่อยู่อาจต้องการคำตอบจากฐานข้อมูล เช่น จำนวนยอดขายของผลิตภัณฑ์ที่น่าสนใจที่คุณปิดเดือนที่แล้ว ลูกค้าที่ดีที่สุดของคุณอาศัยอยู่ที่ใด ใครเป็นผู้ขายสำหรับผลิตภัณฑ์ที่ขายดีที่สุดของคุณ การคาดการณ์คำถามเหล่านี้ช่วยให้คุณไม่ต้องการรายการเพิ่มเติมลงในระเบียน หลังจากรวบรวมข้อมูลนี้ คุณพร้อมสำหรับขั้นตอนถัดไปแล้ว ด้านบนของหน้า การแบ่งข้อมูลลงในตารางเมื่อต้องการแบ่งข้อมูลลงในตาราง ให้เลือกรายการหรือหัวเรื่องหลัก เช่น หลังจากค้นหาและจัดระเบียบข้อมูลฐานข้อมูลยอดขายของผลิตภัณฑ์ รายการหลักอาจมีลักษณะเช่นนี้: รายการหลักที่แสดงอยู่ที่นี่เป็นผลิตภัณฑ์ ผู้ขาย ลูกค้า และคำสั่งซื้อ ดังนั้น จึงสมเหตุสมผลที่จะเริ่มด้วยตารางทั้งสี่เหล่านี้: ตาราหนึ่งสำหรับข้อมูลผลิตภัณฑ์ ตาราหนึ่งเกี่ยวกับข้อมูลผู้ขาย ตารางหนึ่งสำหรับลูกค้า และตารางหนึ่งสำหรับข้อมูลเกี่ยวกับคำสั่งซื้อ ถึงแม้ว่าจะไม่ใช่รายการที่สมบูรณ์ แต่ก็เป็นการเริ่มต้นที่ดี คุณสามารถดำเนินการต่อเพื่อปรับแต่งรายการจนกว่าคุณจะได้แบบที่ทำงานได้อย่างดี เมื่อคุณตรวจทานรายการเบื้องต้นเป็นครั้งแรก คุณอาจต้องการใส่ทุกอย่างลงในตารางเดียว แทนที่ตารางทั้งสี่ที่แสดงในรูปภาพประกอบ คุณจะเรียนรู้ได้ที่นี่ว่าทำไมนั่นจึงเป็นความคิดที่ไม่ดี พิจารณาสักครู่ ตารางแสดงที่นี่: ในกรณีนี้ แต่ละแถวจะมีข้อมูลเกี่ยวกับทั้งผลิตภัณฑ์และผู้ขาย เนื่องจากคุณสามารถมีหลายผลิตภัณฑ์จากผู้ขายรายเดียวกัน ข้อมูลชื่อผู้ขายและที่อยู่จะซ้ำกันหลายครั้ง ซึ่งทำให้เปลืองเนื้อที่ในดิสก์ การบันทึกข้อมูลผู้ขายเพียงครั้งเดียวในตารางผู้ขายแยก จากนั้นลิงก์ตารางดังกล่าวไปยังตารางผลิตภัณฑ์ ถือเป็นโซลูชันที่ดีกว่ามาก ปัญหาที่สองด้วยการออกแบบนี้เกี่ยวกับเมื่อคุณจำเป็นต้องปรับเปลี่ยนข้อมูลเกี่ยวกับผู้ขาย เช่น สมมติว่าคุณเปลี่ยนที่อยู่ของผู้ขาย เนื่องจากที่อยู่ปรากฏอยู่ในหลายที่ คุณอาจเปลี่ยนที่อยู่ในที่หนึ่งแต่ลืมเปลี่ยนอีกที่หนึ่งโดยไม่ได้ตั้งใจ การบันทึกที่อยู่ของผู้ขายแค่ที่เดียวเท่านั้นสามารถแก้ไขปัญหานี้ได้ เมื่อคุณออกแบบฐานข้อมูลของคุณ ให้พยายามบันทึกข้อมูลแต่ละอย่างเพียงครั้งเดียวเสมอ ถ้าคุณพบว่าตัวเองกำลังใส่ข้อมูลเดียวกันซ้ำในตำแหน่งที่มากกว่าหนึ่งที่ เช่น ที่อยู่สำหรับผู้ขายบางราย ให้ใส่ข้อมูลดังกล่าวไว้ในตารางแยก สุดท้าย สมมติว่ามีผลิตภัณฑ์เพียงอย่างเดียวที่ขายโดย Coho Winery และคุณต้องการลบผลิตภัณฑ์ แต่มีข้อมูลชื่อผู้ขายและที่อยู่อยู่ คุณจะลบระเบียนผลิตภัณฑ์อย่างไรไม่ให้สูญเสียข้อมูลผู้ขาย คุณไม่สามารถ เนื่องจากแต่ละระเบียนมีข้อมูลเกี่ยวกับผลิตภัณฑ์ เช่นเดียวกับข้อมูลเกี่ยวกับผู้ขาย คุณไม่สามารถลบข้อมูลหนึ่งโดยไม่ลบข้อมูลอีกอย่างหนึ่งได้เลย เมื่อต้องการเก็บข้อมูลเหล่านี้แยกกัน คุณต้องแยกหนึ่งตารางออกเป็นสองตาราง: ตารางหนึ่งสำหรับข้อมูลผลิตภัณฑ์ และอีกตารางหนึ่งสำหรับข้อมูลผู้ขาย การลบระเบียนผลิตภัณฑ์ควรลบเฉพาะข้อมูลเกี่ยวกับผลิตภัณฑ์ ไม่ใช่ข้อมูลเกี่ยวกับผู้ขาย เมื่อคุณเลือกหัวเรื่องที่แสดงในตาราง คอลัมน์ตารางดังกล่าวควรมีข้อมูลเกี่ยวกับหัวเรื่องดังกล่าวเท่านั้น เช่น ตารางผลิตภัณฑ์ ควรมีเฉพาะข้อมูลเกี่ยวกับผลิตภัณฑ์เท่านั้น เนื่องจากที่อยู่ผู้ขายเป็นข้อมูลเกี่ยวกับผู้ขาย และไม่ใช่ข้อมูลเกี่ยวกับผลิตภัณฑ์ จึงควรอยู่ในตารางผู้ขาย ด้านบนของหน้า การเปลี่ยนรายการข้อมูลลงในคอลัมน์เมื่อต้องการตรวจสอบคอลัมน์ในตาราง ตัดสินใจว่าข้อมูลอะไรที่คุณต้องการติดตามเกี่ยวกับหัวเรื่องที่บันทึกในตาราง เช่น สำหรับตารางลูกค้า ชื่อ ที่อยู่ เมือง-รัฐ-รหัสไปรษณีย์ ส่งอีเมล จดหมายทักทาย และที่อยู่อีเมล ถือเป็นการเริ่มต้นคอลัมน์ของรายการที่ดี ระเบียนแต่ละชุดในตารางจะมีชุดคอลัมน์เดียวกัน เพื่อให้คุณสามารถจัดเก็บชื่อ ที่อยู่ ่ เมือง-รัฐ-รหัสไปรษณีย์ ส่งอีเมล จดหมายทักทาย และที่อยู่อีเมลสำหรับแต่ละระเบียนได้ เช่น คอลัมน์ที่อยู่ มีที่อยู่ของลูกค้า ระเบียนแต่ละชุดมีข้อมูลเกี่ยวกับลูกค้าหนึ่งราย และเขตข้อมูลที่อยู่มีที่อยู่สำหรับลูกค้าดังกล่าว เมื่อคุณตรวจสอบคอลัมน์เริ่มต้นสำหรับแต่ละตารางแล้ว คุณสามารถปรับแต่งคอลัมน์เพิ่มเติมได้ เช่น จัดเก็บชื่อของลูกค้าเป็นคอลัมน์แยกสองคอลัมน์: ชื่อและนามสกุลเป็นสิ่งที่เหมาะสม เพื่อให้คุณสามารถจัดเรียง ค้นหา และดัชนีเพียงบนคอลัมน์เหล่านั้นได้ ในทำนองเดียวกัน ที่อยู่ควรมีคอมโพเนนต์แยกห้าชนิด ได้แก่ ท่อยู่ เมือง รัฐ รหัสไปรษณีย์ และประเทศ/ภูมิภาค และยังเหมาะที่จะจัดเก็บแยกเป็นคอลัมน์ ถ้าคุณต้องการค้นหา กรอง หรือจัดเรียงตามรัฐ เช่น คุณต้องการข้อมูลของรัฐที่จัดเก็บไว้ในคอลัมน์แยก คุณควรพิจารณาว่าฐานข้อมูลควรมีข้อมูลเฉพาะภายในประเทศหรือนานาชาติด้วยเช่นกัน เช่น ถ้าคุณวางแผนที่จะจัดเก็บที่อยู่นานาชาติ คอลัมน์ควรเป็นภูมิภาคมากกว่าที่จะเป็นรัฐ เนื่องจากคอลัมน์สามารถจัดการได้ทั้งรัฐและภูมิภาคภายในประเทศของประเทศ/ภูมิภาคอื่น ในทำนองเดียวกัน รหัสไปรษณีย์ (Postal Code) มีความสมเหตุสมผลมากกว่ารหัสไปรษณีย์ (Zip Code) ถ้าคุณต้องการจัดเก็บที่อยู่แบบนานาชาติ รายการต่อไปนี้แสดงเคล็ดลับบางอย่างสำหรับการตรวจสอบคอลัมน์ของคุณ
เมื่อคุณกำหนดคอลัมน์ข้อมูลในแต่ละตารางแล้ว คุณพร้อมแล้วที่จะเลือกคีย์หลักของแต่ละตาราง ด้านบนของหน้า การระบุคีย์หลักแต่ละตารางควรมีคอลัมน์หรือชุดคอลัมน์ที่ไม่ซ้ำกันที่ระบุถึงแต่ละแถวที่จัดเก็บในตาราง ซึ่งมักจะเป็นหมายประจำตัวที่ไม่ซ้ำกัน เช่น หมายเลข 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 ผู้ขาย ด้านบนของหน้า การนำกฎการนอร์มัลไลซ์ไปใช้คุณสามารถนำกฎการนอร์มัลไลซ์ไปใช้ (บางครั้งเรียกว่ากฎการนอร์มัลไลซ์) ตามขั้นตอนถัดไปในการออกแบบของคุณ คุณใช้กฎเหล่านี้เพื่อดูว่าตารางของคุณมีโครงสร้างถูกต้องแล้วหรือไม่ ขั้นตอนการนำกฎไปใช้กับการออกแบบฐานข้อมูลของคุณเรียกว่าการนอร์มัลไลซ์ฐานข้อมูล หรือการนอร์มัลไลซ์ การนอร์มัลไลซ์มีประโยชน์สูงสุดหลังจากที่คุณแสดงรายการข้อมูลทั้งหมดและสิ้นสุดการออกแบบเบื้องต้น แนวคิดที่จะช่วยให้คุณแน่ใจได้ว่าคุณได้แบ่งรายการข้อมูลออกเป็นตารางที่เหมาะสม สิ่งที่การนอร์มัลไลซ์ไม่สามารถทำได้คือยืนยันว่าคุณมีรายการข้อมูลที่ถูกต้องทั้งหมดที่จะเริ่มต้น คุณนำกฎไปใช้ได้สำเร็จ ในแต่ละขั้นตอนช่วยให้แน่ใจว่าการออกแบบของคุณมาถึงจุดที่เรียกว่า “ฟอร์มปกติ” แล้ว ฟอร์มทั่วไปห้าแบบที่ได้รับการยอมรับอย่างกว้างขวาง — ฟอร์มทั่วไปแรกจนถึงฟอร์มทั่วไปที่ห้า บทความนี้อธิบายสามฟอร์มแรก เนื่องจากเป็นข้อมูลหลักๆ ทั้งหมดที่จำเป็นสำหรับการออกแบบฐานข้อมูล ฟอร์มปกติที่หนึ่งฟอร์มทั่วไปที่หนึ่งระบุว่าทุกแถวและจุดตัดในคอลัมน์ในตาราง มีค่าเดี่ยวและไม่ใช่รายการค่า เช่น คุณไม่สามารถมีชื่อ ราคา ในตำแหน่งที่มากกว่าหนึ่ง ราคา ได้ ถ้าคุณคิดว่าจุดตัดแต่ละจุดของแถวและคอลัมน์เป็นเซลล์ แต่ละเซลล์สามารถมีเพียงค่าเดียวเท่านั้น ฟอร์มปกติที่สองฟอร์มทั่วไปที่สอง คอลัมน์ที่ไม่ใช่คอลัมน์หลักแต่ะลคอลัมน์จะต้องขึ้นอยู่กับคีย์หลักทั้งหมด ไม่ใช่เพียงคีย์บางส่วน กฎนี้นำไปใช้เมื่อคุณมีคีย์หลักที่มีมากกว่าหนึ่งคอลัมน์ เช่น สมมติว่าคุณมีตารางที่มีคอลัมน์ต่อไปนี้ โดยที่ ID คำสั่งซื้อและ ID ผลิตภัณฑ์เป็นคีย์หลัก:
การออกแบบนี้ละเมิดฟอร์มทั่วไปที่สอง เนื่องจากชื่อผลิตภัณฑ์ต้องขึ้นอยู่กับ ID ผลิตภัณฑ์แต่ไม่ใช่ ID คำสั่งซื้อ ดังนั้นจึงไม่เป็นการขึ้นกับคีย์หลักทั้งหมด คุณต้องเอาชื่อผลิตภัณฑ์ออกจากตาราง ซึ่งควรอยู่ในตารางอื่น (ผลิตภัณฑ์) ฟอร์มปกติที่สามฟอร์มทั่วไปที่สามจำเป็นต้องมีคอลัมน์ที่ไม่ใช่คีย์ทุกคอลัมน์ขึ้นอยู่กับคีย์หลักทั้งหมด แต่คอลัมน์ที่ไม่คีย์เป็นอิสระต่อกัน พูดอีกอย่างหนึ่งคือคอลัมน์ที่ไม่ใช่คีย์แต่ละคอลัมน์จะต้องขึ้นอยู่กับคีย์หลักแต่ไม่ขึ้นอยู่กับอย่างอื่นนอกจากคีย์หลัก เช่น สมมติว่าคุณมีตารางที่มีคอลัมน์ต่อไปนี้:
สมมติว่า ส่วนลด ขึ้นกับราคาปลีกที่แนะนำ (SRP) ตางรางนี้ละเมิดฟอร์มทั่วไปที่สามเนื่องจากไม่ใช่คอลัมน์คีย์ ส่วนลด ขึ้นอยู่กับคอลัมน์ที่ไม่ใช่คีย์อีกคอลัมน์หนึ่งคือ SRP คอลัมน์อิสระหมายถึงคุณควรสามารถเปลี่ยนแปลงคอลัมน์ที่ไม่ใช่คีย์ใดๆ โดยไม่มีผลต่อคอลัมน์อื่นๆ ถ้าคุณเปลี่ยนค่าในเขตข้อมูล SRP ส่วนลด จะเปลี่ยนตาม ดังนั้นจึงเป็นการละเมิดกฎ ในกรณีนี้ ส่วนลด ควรย้ายไปยังอีกตารางหนึ่งที่เป็นคีย์บน SRP |