bài 3 các ràng buộc toàn vẹn dữ liệu

27 1.6K 2
bài 3 các ràng buộc toàn vẹn dữ liệu

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

11 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC SQL Server 22 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các ràng buộc toàn vẹn dữ liệu 3 33 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Ràng buộc toàn vẹn dữ liệu - Constraint 44 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các quy định của công việc trong thực tế Các quy định của công việc trong thực tế • Trong thực tế mỗi công việc đều có những quy định phải tuân theo − Mỗi quy định trở thành một hay nhiều ràng buộc trong CSDL − Một số quy định đơn giản, mặc nhiên thấy cũng phải mô tả trong CSDL • Ví dụ quản lý đơn đặt hàng − Số lượng đặt hàng phải lớn hơn 0 − Các số hoá đơn giao hàng không được trùng nhau − Ngày dự kiến nhận hàng phải sau ngày đặt hàng − Một đơn đặt hàng phải do một khách hành lập ra − Mỗi một mặt hàng phải có nhà cung cấp (mỗi mặt hàng phải có xuất xứ) − Số lượng mặt hàng giao cho khách phải nhỏ hơn hay tối đa bằng với số lượng đặt − Hai nhà cung cấp có thể trùng tên nhưng là hai nhà cung cấp khác nhau 55 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các ràng buộc toàn vẹn dữ liệu Các ràng buộc toàn vẹn dữ liệu • SQL Server chia làm hai loại chính − Loại đơn giản: sử dụng CONSTRAINT để mô tả − Loại phức tạp: sử dụng TRIGGER để thực hiện • Các loại ràng buộc đơn giản − Kiểm tra duy nhất • PRIMARY KEY, UNIQUE − Kiểm tra khác rỗng • NOT NULL − Kiểm tra tồn tại • FOREIGN KEY − Kiểm tra miền giá trị • CHECK, DEFAULT 66 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Nguyên tắc chung • Một constraint luôn gắn với một bảng • Nếu không đặt tên thì hệ thống sẽ tự động phát sinh tên cho constraint. • Có thể tạo constraint : − Cùng với thời điểm tạo bảng hoặc − Sau khi đã tạo bảng xong • Có thể khai báo constraint ở mức cột hoặc mức bảng. • Có thể xem các constraint hiện có trong Database. 77 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Khai báo constraint CREATE TABLE [schema.]ten_bang (cot kieu_du_lieu [DEFAULT bieu_thuc] [constraint_muc_cot], [constraint_muc_bang][, ]) CREATE TABLE nhanvien( manhanvien NUMERIC(6), honv NVARCHAR(20), macongviec NVARCHAR(10) NOT NULL, CONSTRAINT nv_manhanvien_pk PRIMARY KEY (MANHANVIEN)) 88 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Khai báo Constraint • Constraint mức cột • Constraint mức bảng column [CONSTRAINT ten_constraint] loai_constraint column, [CONSTRAINT ten_constraint] loai_constraint tham_so 99 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Constraint NOT NULL Đảm bảo rằng giá trị NULL sẽ không tồn tại trong cột NOT NULL constraint (Không dòng nào được phép chứa giá trị NULL cột này.) Không tồn tại NOT NULL constraint (Dòng bất kỳ có thể chứa giá trị null.) NOT NULL constraint … 1010 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC CREATE TABLE nhanvien( manhanvien NUMERIC(6), tennv NVARCHAR(25) NOT NULL, mucluong NUMERIC(10), phucap NUMERIC(10), ngayvaolam DATE CONSTRAINT nv_ngayvaolam_nn NOT NULL, Constraint NOT NULL Được khai báo ở mức cột Tên của hệ thống Tên người dùng đặt [...]... về mô hình quan hệ dữ liệu • Thể hiện mối quan hệ giữa các bảng trong CSDL • Có thể sử dụng để − − − − Thiết lập mối quan hệ khoá ngoại (FOREIGN KEY) Chỉnh sửa cấu trúc bảng Chỉnh sửa thuộc tính bảng Tạo bảng mới 25 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Ví dụ mô hình quan hệ 26 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Tạo mới mô hình quan hệ dữ liệu • • Chỉ có thể... TP.HCM TRUNG TÂM TIN HỌC Xem các constraint trong một bảng • • Xem bằng SSMS Xem bằng câu lệnh sp_helpconstraint ‘ten_bang’ Hoặc sp_help ‘ten_bang’ • Xem từ view hệ thống sys.objects SELECT * FROM sys.objects WHERE parent_object_id IN (SELECT object_id FROM sys.objects WHERE name=‘Ten_bang') 23 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Mô hình quan hệ dữ liệu (Diagram) 24 TRƯỜNG ĐẠI... bảng Không cho phép (50 đã tồn tại) 13 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Constraint PRIMARY KEY Khai báo ở mức cột hoặc mức bảng: CREATE TABLE phong( maphong NUMERIC(4) PRIMARY KEY, tenphong NVARCHAR (30 ) CONSTRAINT phong_ten_nn NOT NULL, manguoiquanly NUMERIC(6), makhuvuc NUMERIC(4)) hoặc CREATE TABLE phong( maphong NUMERIC(4), tenphong NVARCHAR (30 ) CONSTRAINT phong_ten_nn NOT NULL,... CASCADE | SET NULL | SET DEFAULT }] 17 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Constraint CHECK • Khai báo những qui định mà mỗi dòng đều phải thỏa mãn • Dùng để kiểm tra miền giá trị của dữ liệu [CONSTRAINT ten_constraint] CHECK (bieu_thuc_luan_ly) ., mucluong NUMERIC(10) CONSTRAINT nv_luong_min CHECK (mucluong >= 0), 18 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Thêm Constraint... TIN HỌC Ví dụ mô hình quan hệ 26 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Tạo mới mô hình quan hệ dữ liệu • • Chỉ có thể tạo bằng SSMS Với một CSDL lớn, tạo một hay nhiều mô hình cho các nghiệp vụ thực tế khác nhau 27 . HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các ràng buộc toàn vẹn dữ liệu 3 33 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Ràng buộc toàn vẹn dữ liệu - Constraint 44 TRƯỜNG ĐẠI HỌC. nhau 55 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các ràng buộc toàn vẹn dữ liệu Các ràng buộc toàn vẹn dữ liệu • SQL Server chia làm hai loại chính − Loại đơn giản: sử dụng. HỌC Các quy định của công việc trong thực tế Các quy định của công việc trong thực tế • Trong thực tế mỗi công việc đều có những quy định phải tuân theo − Mỗi quy định trở thành một hay nhiều ràng

Ngày đăng: 23/05/2014, 18:24

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan