Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

First Normal Form (1NF) ในการ Normalize ฐานข้อมูล

1NF (First Normal Form) คืออะไร

ขั้นตอนแรกของ Normalization ใช้กับตารางที่ยังไม่ Normalized (Unnormalized Table) เพื่อกำจัดปัญหา:

ปัญหาของ Unnormalized Table

1. Data Redundancy (ข้อมูลซ้ำ)

เก็บข้อมูลเดียวกันหลายครั้ง

EmpIDEmpNameEmpAddress
001Amit11, VA Street, New York
002Tom11, VA Street, New York
003David11, VA Street, New York

แก้ไข: แยกที่อยู่เป็นตารางแยก ใช้ FK อ้างอิง

2. Updation Anomaly (ความผิดปกติขณะอัปเดท)

อัปเดทที่อยู่ของ Tom (อยู่ 2 แผนก) ต้องแก้ 2 แถว หากแก้แค่แถวเดียว → ข้อมูลขัดแย้ง

3. Deletion Anomaly (ความผิดปกติขณะลบ)

ลบแผนก D → ข้อมูลพนักงาน Steve หายไปด้วย

4. Insertion Anomaly (ความผิดปกติขณะเพิ่ม)

เพิ่มข้อมูลที่ยังไม่มี (เช่น แผนกใหม่ที่ยังไม่มีพนักงาน) ไม่ได้

กฎหลักของ 1NF: Atomic Values (ค่าอะตอม)

ทุกแอตทริบิวต์ต้องมีค่า Atomic (ไม่สามารถแบ่งได้อีก) หากมีค่าซ้อน/หลายค่าในฟิลด์เดียว →違反 1NF

ตัวอย่าง違反 1NF: คอลัมน์ DeptRole มีหลายค่า

DeptIdDeptNameDeptRole
001AFinance, HR
002BProgramming, Networking
003CManagement, Marketing
004DOperations

แก้ไขเป็น 1NF: แยกแถวตาม Role

DeptIdDept NameDeptRole
001AFinance
001AHR
002BProgramming
002BNetworking
003CManagement
003CMarketing
004DOperations

สรุป: 1NF กำจัด Repeating Groups และ Multi-valued Attributes ทำให้ทุกคอลัมน์มีค่า Atomic เดียว