1NF คืออะไร
1NF คือ First Normal Form ใน DBMS ซึ่งใช้กับตาราง unnormalized เพื่อทำให้เป็นมาตรฐาน ตารางที่ไม่เป็นไปตามมาตรฐานมีปัญหาต่อไปนี้ที่เราต้องหลีกเลี่ยงเพื่อให้ได้รับการออกแบบฐานข้อมูลที่สมบูรณ์แบบ -
ปัญหาเกี่ยวกับตารางที่ไม่ปกติ
ความซ้ำซ้อนของข้อมูล
การจัดเก็บรายการข้อมูลเดียวกันหลายครั้งเรียกว่า Data Redundancy
เรามาดูตัวอย่างกัน −
เรามี
ตาราง 1.1
EmpID | EmpName | EmpAddress |
001 | อามิท | 11, VA Street, New York |
002 | ทอม | 11, VA Street, New York |
003 | David | 11, VA Street, New York |
004 | สตีฟ | 13, HG Block, ฟิลาเดลเฟีย |
005 | Jeff | 13, HG Block, ฟิลาเดลเฟีย |
ในการแก้ปัญหา ให้เก็บที่อยู่ของพนักงานไว้ในตารางแยกต่างหากและชี้ไปที่ตาราง
ความผิดปกติในการอัปเดต
เกิดขึ้นเมื่อคุณประสบปัญหาขณะอัปเดตตาราง
เรามาดูตัวอย่างกัน −
ตารางที่ 1.2
EmpID | EmpName | EmpAddress | EmpDept |
001 | อามิท | 11, VA Street, New York | A |
002 | ทอม | 11, VA Street, New York | B |
003 | ทอม | 11, VA Street, New York | C |
004 | สตีฟ | 13, HG Block, Philadelphia | D |
005 | Jeff | 27, ZR Block, เวอร์จิเนีย | E |
หากเราต้องอัปเดตที่อยู่ของพนักงานทอมซึ่งมาจากสองแผนก เราต้องอัปเดตสองแถว หากเราอัปเดตเพียงแถวเดียว Tom ก็จะมีที่อยู่สองแห่งที่แตกต่างกันซึ่งจะนำไปสู่ความไม่สอดคล้องกันของข้อมูล
ความผิดปกติในการลบ
สมมติว่าบริษัทตัดสินใจปิดแผนก D จากนั้นการลบแถวจะนำไปสู่การลบข้อมูลของพนักงานสตีฟด้วย
ความผิดปกติในการแทรก
เกิดขึ้นเมื่อคุณพยายามแทรกข้อมูลในระเบียนที่ไม่มีอยู่
การทำให้เป็นมาตรฐานช่วยขจัดปัญหา/ความผิดปกติข้างต้นทั้งหมด และให้การออกแบบฐานข้อมูลที่สมบูรณ์แบบที่ทำให้เป็นมาตรฐานซึ่งผู้ดูแลระบบฐานข้อมูลชื่นชอบ
มาดูวิธีการทำให้ข้อมูลเป็นมาตรฐานโดยใช้ First Normal Form (1NF)
ทำไมต้อง INF
First Normal Form (1 INF) มีประโยชน์ในการลบปัญหาความซ้ำซ้อนของข้อมูลและความผิดปกติของฐานข้อมูลดังที่แสดงไว้ในส่วนด้านบน คุณลักษณะทั้งหมดใน 1NF ควรมีโดเมนอะตอม หากไม่ใช่อะตอมมิก แสดงว่าฐานข้อมูลของคุณมีการออกแบบที่ไม่ดี เป็นขั้นตอนแรกในการทำให้เป็นมาตรฐาน
ดังนั้น กฎที่สำคัญที่สุดสำหรับตารางที่จะอยู่ในรูปแบบมาตรฐานก็คือควรมีเฉพาะค่าอะตอมเท่านั้น
ตัวอย่าง
ตัวอย่างด้านล่างมีตารางที่มีทุกคอลัมน์ที่ประกอบด้วยค่าอะตอม ยกเว้นคอลัมน์ DeptRole ดังนั้น คอลัมน์ DeptRole ละเมิดกฎค่าอะตอมของแผนก A, B และ C
ตาราง 1.3
DeptId | DeptName | DeptRole |
001 | A | การเงิน HR |
002 | B | การเขียนโปรแกรม เครือข่าย |
003 | C | การจัดการ การตลาด |
004 | D | การดำเนินการ |
ให้เราแก้ไขและแปลงเป็น 1NF:
DeptId | ชื่อแผนก | DeptRole |
001 | A | การเงิน |
001 | A | HR |
002 | B | การเขียนโปรแกรม |
002 | B | เครือข่าย |
003 | C | การจัดการ |
003 | C | การตลาด |
004 | D | การดำเนินการ |
ตอนนี้ตารางด้านบนอยู่ใน 1NF และเรามีค่าอะตอมในทุกคอลัมน์ดังที่สรุปไว้ในภาพหน้าจอต่อไปนี้ -