+1

Các chuẩn trong cơ sở dữ liệu và các bước chuẩn hóa

Mục đích

Trong đa số các ứng dụng web và mobile đều cần có một bộ cơ sở dữ liệu để xử lý, lưu trữ và kết xuất thông tin. Hầu hết các chức năng trong một ứng dụng động cần thao tác với cơ sở dữ liệu. Vì thế, nếu một cơ sở dữ liệu không được thiết kế đúng chuẩn, nó sẽ không chỉ gây lãng phí không gian lưu trữ của hệ thống mà còn gây ảnh hưởng nghiêm trọng đến tốc độ của ứng dụng.

Các dạng chuẩn hóa chính

Có 4 dạng chuẩn hóa chính để xử lý cơ sở dữ liệu:

  • Dạng chuẩn 1(1NF)
  • Dạng chuẩn 2(2NF)
  • Dạng chuẩn 3(3NF)
  • Chuẩn Boyce-Codd(BCNF)

Các khái niệm cơ bản

  1. Phụ thuộc hàm
    Trong một quan hệ, nếu giá trị của bộ thuộc tính A có thể suy ra được nếu biết giá trị của bộ thuộc tính B thì ta nói A phụ thuộc hàm vào B
    VD: HocSinh(MaHS, TenHS, NgaySinh)
    TenHS và NgaySinh đều là những thuộc tính phụ thuộc hàm vào MaHS
  2. Phụ phụ thuộc đầy đủ, phụ thuộc bộ phận
    Trong một quan hệ, bộ thuộc tính A phụ thuộc hàm vào bộ thuộc tính B. Nếu loại bỏ một thuộc tính bất kì trong bộ thuộc tính B mà A vẫn phụ thuộc hàm vào B thì A được gọi là phụ thuộc hàm đầy đủ vào B. Ngược lại, A được gọi là phụ thuộc bộ phận vào B.
  3. Phụ thuộc bắc cầu
    Trong một quan hệ, nếu thuộc tính A phụ thuộc hàm vào thuộc tính B, thuộc tính B phụ thuộc hàm vào thuộc tính C thì thuộc tính A được gọi là phụ thuộc bắc cầu vào thuộc tính C thông qua thuộc tính B.

Dạng chuẩn 1(1NF)

Khái niệm

Một quan hệ gọi là 1NF nếu
-Miền giá trị của mỗi thuộc tính chỉ chứa giá trị đơn nguyên tử, không thể phân tách ra được
-Giá trị của mỗi thuộc tính trong mỗi bộ phải là giá trị đơn

Chuẩn hóa

-Miền giá trị của mỗi thuộc tính chỉ chứa giá trị đơn nguyên tử, không thể phân tách ra được

Xử lý: Tách các thuộc tính có miền giá trị đa nguyên tử thành các thuộc tính có miền giá trị đơn nguyên tử
VD: HOCSINH(MaHS, Tuoi, HoTen)
Thuộc tính HoTen trong bảng trên là một thuộc tính chứa giá trị đa nguyên tử. HoTen bao gồm Họ và Tên.
HOCSINH(MaHS, Tuoi, Ho, Ten)
-Giá trị của mỗi thuộc tính trong mỗi bộ phải là giá trị đơn
Xử lý: Tách các thuộc tính chứa giá trị đa trị ra thành một bảng riêng
VD: NhanVien_ChucVu(MaNV, MaChucVu, ThoiGianNhanChuc)

MaNV MaChucVu ThoiGianNhanChuc
1 2 3 15-8-2019 16-8-2019

ChucVu(MaChuVu, TenChucVu)

MaChucVu TenChucVu
3 GiamDoc
2 BaoVe

NhanVien_ChucVu(MaNV, MaChucVu, ThoiGianNhanChuc)

MaNV MaChucVu ThoiGianNhanChuc
1 2 15-8-2019
1 3 16-8-2019

Dạng chuẩn 2(2NF)

Khái niệm

Một quan hệ gọi là 2NF nếu
- Quan hệ đó thỏa mãn chuẩn 1
- Mọi thuộc tính không khóa của quan hệ phụ thuộc hàm đầy đủ vào khóa chính

Chuẩn hóa

  • Tách các thuộc tính không khóa phụ thuộc bộ phận vào khóa chính thành quan hệ riêng, khóa của quan hệ mới là khóa bộ phận tương ứng ban đầu
  • Loại bỏ thuộc tính không khóa ra khỏi quan hệ gốc VD: MuonTra(SoThe, MaSach, TenNguoiMuon, TenSach, NgayMuon, NgayTra)
    TenNguoiMuon và TenSach phụ thuộc bộ phận vào khóa. Sach(MaSach, TenSach)
    NguoiMuon(SoThe, TenNguoiMuon)
    MuonTra(Sothe, MaSach, NgayMuon, NgayTra)

Dạng chuẩn 3(3NF)

Khái niệm

Một quan hệ gọi là 3NF nếu
- Quan hệ đó thỏa mãn chuẩn 2
- Không có thuộc tính không khóa nào phụ thuộc bắc cầu vào khóa chính.

Chuẩn hóa

  • Tách quan hệ mới gồm các thuộc tính phụ thuộc bắc cầu và thuộc tính không khóa mà nó phụ thuộc vào
  • Loại bỏ các thuộc tính phụ thuộc bắc cầu vào khóa chính trong quan hệ ban đầu
    VD: NV(MaNV, HoTen, MaDV, TenDV)
    Ta thấy TenDV phụ thuộc bắc cầu vào khóa chính thông qua thuộc tính không khóa MaDV
    NV(MaNV, HoTen)
    DV(MaDV, TenDV)

Dạng chuẩn Boyce-Codd

Khái niệm

*Một quan hệ được gọi là ở dạng chuẩn Boyce-Codd (BCNF) nếu:

  • Thỏa mãn dạng chuẩn 3NF
  • Không có thuộc tính khóa phụ thuộc hàm vào thuộc tính không khóa.*

Chuẩn hóa

  • Tách các thuộc tính không khóa và thuộc tính khóa phụ thuộc hàm vào nó thành quan hệ mới, thuộc tính không khóa đó trở thành khóa trong quan hệ mới.
  • Loại bỏ các thuộc tính khóa ở bước 1 khỏi lược đồ gốc
  • Bổ sung các thuộc tính không khóa mà thuộc tính khóa (đã loại bỏ ở bước 2) phụ thuộc vào vào khóa của quan hệ gốc

Kết luận

Chuẩn hóa cơ sở dữ liệu là điều quan trọng cần làm trong quá trình thiết kế cơ sở dữ liệu. Nó giúp loại bỏ các dữ liệu thừa và các dữ liệu dị thường ra khỏi bộ nhớ. Có 4 dạng chuẩn hóa cơ bản thường được áp dụng là 1NF, 2NF, 3NF, Boyce-Codd. Ngoài ra còn rất nhiều dạng chuẩn hóa khác với mức độ yêu cầu về cấu trúc cơ sở dữ liệu cao hơn.
Tài liệu tham khảo
Giáo trình: Nhập môn cơ sở dữ liệu (Vũ Bá Duy)


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.