MƠ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
2.1.9.1. Phép thêm một bộ mới vào quan hệ
Việc thêm một bộ giá trị mới t vào quan hệ R (A1 … An) làm cho thể hiện TR của nó tăng thêm một phần tử mới: TR = TR t. Dạng hình thức của phép thêm bộ mới là:
INSERT (R; Ai1= v1, Ai2 = v2, ... Aim= vm)
trong đó, Ai1, Ai2, ... Aim là các thuộc tính, và v1, v2, ... vm là các giá trị thuộc DOM(Ai1), DOM(Ai2) , ..., DOM(Aim) tương ứng.
Cần lưu ý rằng các thuộc tính khơng có tên trong danh sách gán giá trị của bộ t trong câu lệnh INSERT sẽ có giá trị là NULL, tức là giá trị khơng xác định.
Ví dụ 2.10 :
Quan hệ: SINHVIEN (Masv, Tensv, Que).
Thêm bộ q5 = (SV5, Đinh Gia Nhi, Hà nội) vào quan hệ SINHVIEN bởi phép thêm như sau:
INSERT (SINHVIEN; [Masv]=SV5, [Tensv]=Đinh Gia Nhi, [Que]=Hà nội) Thể hiện TSINHVIEN giờ đây là:
Masv Tensv Que
Sv1 Nguyễn Văn Anh Hà Nội
Sv2 Phạm Ngọc Bình Hải phịng
Sv3 Nguyễn Hoa Cúc Quảng Ninh
Sv4 Đinh Gia Linh Hà Nội
Sv5 Đinh Gia Nhi Hà Nội
Nếu xem thứ tự của các thuộc tính là cố định và giá trị v1, v2, ... vm là hồn tồn tương ứng thì phép chèn có thể viết dưới dạng tường minh như sau:
INSERT (R; v1, v2, ... vm).
Phép chèn có thể khơng thực hiện được hoặc làm mất tính nhất quán của dữ liệu trong CSDL vì các lý do:
Giá trị khóa của bộ mới là rỗng (NULL) hoặc trùng với giá trị khóa của một bộ đã có trong CSDL. Trong trường hợp này hệ quản trị CSDL không cho bổ sung.
Bộ mới không phù hợp với lược đồ quan hệ. Trường hợp này có thể xảy ra khi người sử dụng lầm lẫn thứ tự, kiểu hoặc độ lớn của các thuộc tính. Hệ quản trị CSDL có thể khơng cho bổ sung nếu khơng tương thích kiểu giá trị, hoặc vẫn cho bổ sung bộ mới nhưng tính nhất qn dữ liệu khơng được đảm bảo.
Một số giá trị của bộ mới không thuộc miền giá trị của thuộc tính tương ứng. Trong trường hợp này, nếu quan hệ đã được đảm bảo tính nhất quán bởi các RBTV về miền giá trị thì hệ quản trị CSDL sẽ khơng cho bổ sung, nếu khơng có RBTV như vậy thì tính nhất qn của dữ liệu bị vi phạm mà hệ quản trị CSDL không phát hiện được.