1. Trang chủ
  2. » Công Nghệ Thông Tin

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

27 1,6K 2

Đ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

Thông tin cơ bản

Định dạng
Số trang 27
Dung lượng 258,66 KB

Nội dung

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

Trang 1

SQL Server

Trang 2

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

3

Trang 3

Ràng buộc toàn vẹn dữ liệu -

Constraint

Trang 4

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

Trang 5

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

Trang 6

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.

Trang 7

Khai báo constraint

CREATE TABLE [schema.]ten_bang

(cot kieu_du_lieu [DEFAULT bieu_thuc]

Trang 8

Khai báo Constraint

Trang 9

Constraint NOT NULL

Đảm bảo rằng giá trị NULL sẽ không tồn tại trong cột

NOT NULL constraint

NOT NULL constraint

Trang 10

CREATE TABLE nhanvien(

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

Trang 11

Cho phép

Trang 12

Constraint UNIQUE

Khai báo ở mức bảng hoặc mức cột:

CREATE TABLE nhanvien(

manhanvien NUMERIC(6), tennv NVARCHAR(25) NOT NULL, email NVARCHAR(25),

mucluong NUMERIC(8,2),

CREATE TABLE nhanvien(

manhanvien NUMERIC(6), tennv NVARCHAR(25) NOT NULL, email NVARCHAR(25) UNIQUE, mucluong NUMERIC(8,2),

hoặc

Trang 13

Constraint PRIMARY KEY

Trang 14

CREATE TABLE phong(

maphong NUMERIC(4) PRIMARY KEY,

tenphong NVARCHAR(30)

CONSTRAINT phong_ten_nn NOT NULL,

manguoiquanly NUMERIC(6),

makhuvuc NUMERIC(4))

Constraint PRIMARY KEY

Khai báo ở mức cột hoặc mức bảng:

CREATE TABLE phong(

Trang 15

Constraint FOREIGN KEY

PHONG

NHANVIEN

KHÓA NGOẠI (FK)

Thêm vào (75 không tồn tại) Không cho phép

KHÓA CHÍNH

(PK)

Trang 16

Constraint FOREIGN KEY

CREATE TABLE nhanvien(

CONSTRAINT nv_email_uk UNIQUE(email))

Khai báo ở mức bảng hoặc mức cột:

Trang 17

Cú pháp constraint FOREIGN KEY

FOREIGN KEY [( cot [ , n ] ) ]

REFERENCES Ten_bang_tham_chieu [ ( cot [ , n ] ) ]

[ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT }] [ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT }]

Trang 18

[CONSTRAINT ten_constraint]

CHECK ( bieu_thuc_luan_ly )

Trang 19

Thêm Constraint mới vào bảng

ALTER TABLE bang

ADD [CONSTRAINT ten_constraint]

Loai_Constraint Tham_so

Dùng để tạo constraint sau khi đã tạo

bảng

Sử dụng lệnh ALTER TABLE.

Trang 20

Cú pháp chi tiết từng loại constraint

ALTER TABLE bang

ADD [CONSTRAINT ten_constraint]

PRIMARY KEY (danh_sach_cot_khoa_chinh) hoặc UNIQUE (danh_sach_cot)

hoặc FOREIGN KEY (danh_sach_cot_khoa_ngoai)

REFERENCES bang_tham_chieu (ds_cot_tham_chieu) hoặc CHECK (bieu_thuc_luan_ly)

hoặc DEFAULT gia_tri_mac_dinh FOR Ten_cot

Trang 21

Xóa Constraint

Cú pháp

Ví dụ

ALTER TABLE nhanvien

DROP CONSTRAINT nv_luong_min ALTER TABLE ten_bang

DROP CONSTRAINT ten_constraint [,…]

Trang 22

Tắt kiểm tra Constraints

ALTER TABLE ten_bang

NOCHECK CONSTRAINT ALL | ten_constraint[, ]

Bật lại kiểm tra Constraints

ALTER TABLE ten_bang

CHECK CONSTRAINT ALL | ten_constraint[, ]

Trang 23

Xem các constraint trong một bảng

Xem bằng SSMS.

Xem bằng câu lệnh

Xem từ view hệ thống sys.objects

sp_helpconstraint ‘ten_bang’

Hoặc sp_help ‘ten_bang’

SELECT * FROM sys.objects

WHERE parent_object_id IN

(SELECT object_id FROM sys.objects

WHERE name=‘Ten_bang')

Trang 24

Mô hình quan hệ dữ liệu

(Diagram)

Trang 25

Khái niệm về mô hình quan hệ dữ liệu

Thể hiện mối quan hệ giữa các bảng trong

Trang 26

Ví dụ mô hình quan hệ

Trang 27

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

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

TỪ KHÓA LIÊN QUAN

w