Các bất thường (anomalies) xảy ra trong quá trình thiết kế cơ sở dữ liệu liên quan chủ yếu đến các hoạt động thêm (insert), xóa (delete) và sửa (update). Để dễ hiểu, xét quan hệ (bảng) ĐĂNG KÝ KHÓA HỌC sau:
Mã sinh viên | Mã khóa học | Tên sinh viên | Địa chỉ | Khóa học |
S21 | 9201 | An | Khánh Hòa | Kế toán |
S21 | 9267 | An | Khánh Hòa | Toán |
S24 | 9267 | Bình | Hà Nội | Toán |
S30 | 9201 | Đông | Nghệ An | Kế toán |
S30 | 9322 | Đông | Nghệ An | Quản trị học |
S41 | 9267 | Hào | Thanh Hóa | Toán |
Một số bất thường có thể xảy ra với quan hệ trên:
- Cập nhật bất thường (Update anomaly): Thông tin về Địa chỉ của sinh viên được lặp lại cho mỗi khóa học họ đang tham gia. Nếu thông tin thay đổi, ví dụ sinh viên An chuyển sang tỉnh Cần Thơ sinh sống thì mọi hàng liên quan đến sinh viên này phải cập nhật thông tin Địa chỉ. Thất bại trong cập nhật sẽ dẫn đến hai phiên bản với địa chỉ khác nhau.
- Xóa bất thường (Delete anomaly): Một sinh viên đã đăng ký một khóa học thì khi sinh viên này không tham gia nữa thì các thông tin liên quan giữa sinh viên và khóa học phải bị xóa. Ví dụ sinh viên Đông có Mã sinh viên là S30 rút khỏi khóa học 9322 thì toàn bộ thông tin về khóa học và sinh viên (hàng thứ 5) sẽ bị xóa.
- Thêm bất thường (Insertion anomaly): Đây là trường hợp ngược của Xóa bất thường, nghĩa là chúng ta không thể chèn một hàng mới nếu thông tin chưa tồn tại. Ví dụ chúng ta không thể chèn một hàng với khóa học mới là Vật lý (mã là 9300) cho đến khi có sinh viên đăng ký. Hàng sau đây sẽ không hợp lệ:
Mã sinh viên | Mã khóa học | Tên sinh viên | Địa chỉ | Khóa học |
Null | 9300 | Null | Null | Vật lý |
Các vấn đề bất thường trên sẽ được xử lý thông qua quá trình chuẩn hóa cơ sở dữ liệu (Database Normalization).