- Chuyên mục khác :
- Git cơ bản và nâng cao
- ·
- MySQL cơ bản và nâng cao
- ·
- MongoDB cơ bản và nâng cao
- ·
- SQL cơ bản và nâng cao
- ·
- Linux cơ bản và nâng cao
- Học MySQL cơ bản và nâng cao
- Học MySQL cơ bản và nâng cao
- MySQL là gì
- Cài đặt MySQL
- Quản lý MySQL
- Cú pháp kết hợp MySQL và PHP
- Kết nối MySQL
- Tạo Database trong MySQL
- Xóa cơ sở dữ liệu trong MySQL
- Chọn cơ sở dữ liệu trong MySQL
- Kiểu dữ liệu trong MySQL
- Tạo bảng trong MySQL
- Xóa bảng trong MySQL
- Truy vấn INSERT trong MySQL
- Truy vấn SELECT trong MySQL
- Mệnh đề WHERE trong MySQL
- Truy vấn UPDATE trong MySQL
- Truy vấn DELETE trong MySQL
- Mệnh đề LIKE trong MySQL
- Mệnh đề ORDER BY trong MySQL
- Sử dụng JOIN trong MySQL
- Xử lý giá trị NULL trong MySQL
- Regexp trong MySQL
- Transaction trong MySQL
- Lệnh ALTER trong MySQL
- Chỉ mục (INDEX) trong MySQL
- Bảng tạm trong MySQL
- Mô phỏng bảng trong MySQL
- Lấy và sử dụng MySQL Metadata
- Sử dụng Sequence trong MySQL
- Xử lý bản sao trong MySQL
- Injection trong MySQL và SQL
- Export và Phương thức Backup trong MySQL
- Import và phương thức Recovery trong MySQL
- Mệnh đề GROUP BY trong MySQL
- Mệnh đề IN trong MySQL
- Mệnh đề BETWEEN trong MySQL
- Từ khóa UNION trong MySQL
- Hàm hữu ích trong MySQL
Một bảng là theo Third Normal Form (3NF) khi nó thỏa mãn các điều kiện sau:
Nó là một bảng theo Second Normal Form (2NF).
Tất cả các trường mà không phải là primary là phụ thuộc vào primary key.
Sự phụ thuộc của các trường không phải là primary là sự phụ thuộc giữa dữ liệu. Ví dụ, trong bảng dưới đây, tên Phường, Quận, và Thành phố là được kết nối (mà không thể phá vỡ) tới một zip code.
CREATE TABLE KHACHHANG( KH_ID INT NOT NULL, KH_TEN VARCHAR (20) NOT NULL, DOB DATE, PHUONG VARCHAR(200), QUAN VARCHAR(100), THANHPHO VARCHAR(100), ZIP VARCHAR(12), EMAIL_ID VARCHAR(256), PRIMARY KEY (KH_ID) );
Sự phụ thuộc giữa các zip code và DIACHI được gọi là phụ thuộc có tính bắc cầu. Để tuân theo Third Normal Form (3NF), điều bạn cần làm là di chuyển các trường PHUONG, QUAN, THANHPHO vào trong bảng riêng của chúng, mà bạn có thể gọi là bảng Zip Code.
CREATE TABLE DIACHI( ZIP VARCHAR(12), PHUONG VARCHAR(200), QUAN VARCHAR(100), THANHPHO VARCHAR(100), PRIMARY KEY (ZIP) );
Bây giờ, biến đổi bảng KHACHHANG như sau:
CREATE TABLE KHACHHANG( KH_ID INT NOT NULL, KH_TEN VARCHAR (20) NOT NULL, DOB DATE, ZIP VARCHAR(12), EMAIL_ID VARCHAR(256), PRIMARY KEY (KH_ID) );
Việc gỡ bỏ các phụ thuộc có tính bắc cầu đem lại cho ta hai lợi thế. Đầu tiên, lượng bản sao dữ liệu bị giảm xuống và vì thế Database của bạn trở nên nhỏ hơn.
Lợi thế thứ hai là toàn vẹn dữ liệu. Khi dữ liệu bị sao thay đổi, có một rủi ro lớn xảy ra khi chỉ cập nhật một số dữ liệu nào đó, đặc biệt kh nếu nó trải dài rộng một số vị trí khác nhau trong Database. Ví dụ, nếu dữ liệu address và zip code được lưu giữ trong 3 hoặc 4 bảng khác nhau, thì bất kỳ thay đổi nào trong zip code sẽ tác động đến mỗi bản ghi trong 3 hay 4 bảng đó.
Bình luận (0)