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

ฟอร์มปกติครั้งแรก (1NF)


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 และเรามีค่าอะตอมในทุกคอลัมน์ดังที่สรุปไว้ในภาพหน้าจอต่อไปนี้ -

ฟอร์มปกติครั้งแรก (1NF)