Computer >> Máy Tính >  >> Lập trình >> MySQL

Dạng thường đầu tiên (1NF)

1NF

là gì

1NF là Dạng chuẩn đầu tiên trong DBMS, được áp dụng trên một bảng chưa chuẩn hóa để làm cho nó chuẩn hóa. Một bảng không chuẩn hóa có những vấn đề sau mà chúng ta cần tránh để có được một thiết kế cơ sở dữ liệu hoàn hảo -

Sự cố với Bảng không chuẩn hóa

Dự phòng dữ liệu

Lưu trữ cùng một mục dữ liệu nhiều lần được gọi là Dự phòng dữ liệu.

Hãy để chúng tôi xem một ví dụ -

Chúng tôi có bảng có một trường để lưu trữ địa chỉ hiện tại của Nhân viên. Một số nhân viên này được công ty cho một chỗ ở; do đó, chúng có cùng một địa chỉ. Địa chỉ sẽ được lặp lại trong cơ sở dữ liệu -

Bảng 1.1

EmpID

EmpName
EmpAddress
001
Amit
11, Phố VA, New York
002
Tom
11, Phố VA, New York
003
David
11, Phố VA, New York
004
Steve
13, HG Block, Philadelphia
005
Jeff
13, HG Block, Philadelphia


Để giải quyết vấn đề này, hãy lưu trữ địa chỉ nhân viên trong một bảng riêng và trỏ vào bảng .

Sự bất thường về cập nhật

Nó xảy ra khi bạn gặp sự cố trong khi cập nhật bảng.

Hãy để chúng tôi xem một ví dụ -

Bảng 1.2

EmpID

EmpName

EmpAddress

EmpDept

001
Amit
11, Phố VA, New York
A
002
Tom
11, Phố VA, New York
B
003
Tom
11, Phố VA, New York
C
004
Steve
13, HG Block, Philadelphia
D
005
Jeff
27, ZR Block, Virginia
E


Nếu chúng ta cần cập nhật địa chỉ của nhân viên Tom, người đến từ hai phòng ban, thì chúng ta cần cập nhật hai hàng. Nếu chúng tôi chỉ cập nhật một hàng duy nhất, thì Tom sẽ có hai địa chỉ khác nhau dẫn đến sự không nhất quán trong dữ liệu.

Xóa bất thường

Giả sử công ty quyết định đóng cửa Phòng D, thì việc xóa hàng cũng sẽ dẫn đến việc xóa dữ liệu của nhân viên Steve.

Sự bất thường khi chèn

Nó xảy ra khi bạn cố gắng chèn dữ liệu vào một bản ghi không tồn tại.

Chuẩn hóa loại bỏ tất cả các vấn đề / bất thường ở trên và cung cấp cho bạn một thiết kế cơ sở dữ liệu hoàn hảo đã chuẩn hóa mà người quản trị cơ sở dữ liệu yêu thích.

Hãy để chúng tôi xem cách chuẩn hóa dữ liệu bằng Biểu mẫu chuẩn đầu tiên (1NF)

Tại sao lại INF

First Normal Form (1 INF) hữu ích trong việc loại bỏ vấn đề dư thừa dữ liệu và các dị thường của cơ sở dữ liệu như được trình bày trong phần trên. Tất cả các thuộc tính trong 1NF phải có miền nguyên tử. Nếu nó không phải là nguyên tử, thì cơ sở dữ liệu của bạn đang có thiết kế xấu. Đây là bước đầu tiên trong Chuẩn hóa.

Do đó, quy tắc quan trọng nhất để một bảng ở dạng chuẩn hóa là nó phải chỉ có các giá trị nguyên tử.

Ví dụ

Ví dụ dưới đây có một bảng với mọi cột bao gồm các giá trị nguyên tử, ngoại trừ cột DeptRole. Do đó, cột DeptRole vi phạm quy tắc giá trị nguyên tử cho Cục A, B và C.

Bảng 1.3

DeptId
DeptName
DeptRole
001
A
Tài chính, Nhân sự
002
B
Lập trình, Mạng
003
C
Quản lý, Tiếp thị
004
D
Hoạt động


Bây giờ hãy để chúng tôi sửa nó và chuyển đổi thành 1NF:

DeptId
Tên bộ phận
DeptRole
001
A
Tài chính
001
A
Nhân sự
002
B
Lập trình
002
B
Mạng
003
C
Quản lý
003
C
Tiếp thị
004
D
Hoạt động


Bây giờ bảng trên là 1NF và chúng tôi có các giá trị nguyên tử trong mỗi cột như được tóm tắt trong ảnh chụp màn hình sau -

Dạng thường đầu tiên (1NF)