1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng điện tử môn tin học: Ràng buộc và Toàn vẹn dữ liệu ppsx

31 1,2K 0

Đ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 31
Dung lượng 354,5 KB

Nội dung

6 Ràng buộc (Contraint) Toàn vẹn liệu (Data Integrity) I Giới thiệu toàn vẹn liệu (Data Integrity)  Toàn vẹn liệu đề cập đến trạng thái tất giá trị liệu lưu trữ CSDL  Các table CSDL SQL Server có số loại tồn vẹn liệu khác VD: định nghĩa NOT NULL, định nghĩa DEFAULT, thuộc tính IDENTITY, CONTRAINTS, RULES, TRIGGERS, INDEXES  Xác định Data type Column biến (variable) cách thúc ép tính tồn vẹn liệu VD: chấp nhận giá trị cột TenSinhVien giá trị dạng ngày ngược lại Các loại Ràng buộc loại  Ràng buộc thực thể: đảm bảo dòng xác định nhiều thuộc tính gọi khóa (Primary Key)  Ràng buộc miền trị: đảm bảo giá trị lưu giữ cột phải nằm miền trị hợp lệ xác định trước (CHECK)  Ràng buộc tham chiếu: đảm bảo giá trị khóa ngoại (Foreign Key) lưu trữ phải khóa (Primary Key) Table khác  Ràng buộc người dùng định nghĩa:  Ràng buộc tầm vực: Tầm vực cột Tầm vực bảng  Định nghĩa ràng buộc: Ràng buộc định nghĩa thiết kế cấu trúc table (Create Table) hay hiệu chỉnh table (Alter Table)  Để kiểm tra xem toàn vẹn liệu Sp_HelpConstraint Hoặc Bật cửa sổ Object Browser Query Analyzer, mở nhánh Constraint table  Xóa tồn vẹn liệu ALTER TABLE DROP CONSTRAINT II Tìm hiểu tồn vẹn liệu Định nghĩa NULL/ NOT NULL  Một giá trị NULL không đồng với giá trị 0, khoảng trắng, chuỗi rỗng  NULL có nghĩa khơng có thao tác nhập thực  Việc định cột không chấp nhận giá trị Null giúp trì tính tồn vẹn liệu  Nên tránh dùng NULL chúng gây nhiều phức tạp truy vấn cập nhật liệu thay giá trị Default Default Contraint:  Default constraint tạo thời điểm tạo Table, thêm sau Table tạo  Chì có giá trị Default tạo cho cột  Các cột TIMESTAMP, IDENTITY ROWGUIDCOL khơng thể có default constraint, giá trị tự động xác định  Giá trị default hằng; hàm hệ thống; biến toàn cục, @@trancount hàm người dùng định nghĩa  Định nghĩa Default constraing tạo bảng CREATE TABLE TableName(ColumnName datatype [NULL/NOT NULL] [CONSTRAINT constraintname] DEFAULT expression  Định nghĩa Default constraint bảng tồn ALTER TABLE tablename ADD [CONSTRAINT constraintname] DEFAULT expression FOR columnname Vd1: Định nghĩa default tạo table CREATE TABLE tbl_SinhVien ( MaSV NOT NULL Primary key, HoTen Nvarchar (100) NOT NULL, NgayNhapHoc smalldate NOT NULL, GioiTinh bit Defalut ) Vd2: Định nghĩa default table tồn Alter Table tbl_SinhVien Add Default GetDate() NgayNhapHoc_DF For NgayNhapHoc Hoặc: ALTER TABLE tbl_SinhVien Add Constraint NgayNhapHoc_DF Default GetDate() For NgayNhapHoc  Đối tượng Default (Default Object) Thuộc tính Identity:  Identity thuộc tính Column, hẳn khơng constraint Tuy nhiên, Identity dùng để ràng buộc tồn liệu  Một Table có Column định nghĩa Identity  Kiểu liệu cột Identity phải kiểu số nguyên  Giá trị cột Identity tự động tăng  Identity định nghĩa tạo Table, hiệu chỉnh Column lệnh Alter Table 10  Ghi Rule Object:  Ruler tính tương thích ngược để định nghĩa quy tắc hợp lệ  Phải tháo gỡ tất kết buộc (sp_unbindrule) Rule trước xóa rule (Drop Rule)  Một cột có Ruler kết buộc, bạn kết buộc Ruler với cột có định nghĩa Check Constraint Cả hai có giá trị ưu tiên Check Constraint  Rule tham chiếu đến nhiều Column Table  Rule tương tương với Check mức độ Column, Rule Constraint 17 Primary key Constraint • Một Table có constraint Primary key • SQL Server tự động tạo mục (Index) cho Table ứng với cột tham gia primary key • Column Primary key chấp nhận giá trị Null, trùng lắp • Nếu Primary key constraint ấn định nhiều cột, giá trị lập lại cột, kết hợp giá trị từ tất cột Primary key constraint phải kết hợp 18 a Tạo Primary key Constraint • Có thể tạo constraint Primary key tạo Table thêm constraint Primary key cho table có sẵn • Để hiệu chỉnh constraint Primary key Table bạn phải xóa constraint Primary key tạo lại • Đối với Column tạo mà chấp nhận giá trị NULL hiệu chỉnh cột giá Primary Key ta phải hiệu chỉnh NOT NULL trước sau gán cột Primary Key giá trị cột có không trùng lắp 19 Định nghĩa primary Key Constraint tạo bảng: CREATE TABLE ( ColumnName DataType not null [CONSTRAINT ConstraintName] PRIMARY KEY ) Create Table tbl_SinhVien ( MaSV char(10) not null Primary Key, TenSV Nchar(100) Not Null ) Create Table tbl_MonHoc ( MaMH char(10) not null Constraint PK_MaMH Primary Key, TenMH Nchar(100) Not Null ) 20 Định nghĩa Primary Key Constraint bảng tồn tại: ALTER TABLE TableName ADD [CONSTRAINT ConstraintName] PRIMARY KEY (ColumnName) VD: Create Table tbl_Diem ( MaSV char(10) Not null, MaMH char(10) Not null, Diem float Check (DiemThi Between and 10 ) ) Alter Table tbl_Diem Add Constraint PK_MaSV_MaMH Primary Key (MaSV, MaMH ) 21 Định nghĩa Primary Key Constraint bảng tồn tại: ALTER TABLE TableName ADD [CONSTRAINT ConstraintName] PRIMARY KEY (ColumnName) VD: Create Table tbl_Diem ( MaSV char(10) Not null, MaMH char(10) Not null, Diem float Check (DiemThi Between and 10 ) ) Alter Table tbl_Diem Add Constraint PK_tbl_Diem Primary Key (MaSV, MaMH ) 22 Lưu ý: Khơng thể xóa Primary Key Constraint tham chiếu Foreign key Constraint bảng khác, muốn xóa phải xóa Foreign key Constraint trước 23 Forein key Constraint • Một khóa ngoại (Foreign Key) kết hợp nhiều cột thiết lập tuân theo liên kết liệu hai bảng • Mặc dù mục đích Constraint Foreign Key điều khiển liệu chứa bảng khóa ngoại, củng điều khiển thay đổi bảng khóa • Một Constraint Foreign Key ngăn chặn tình trạng mồ côi liệu Constraint Foreign Key bảo đảm không cho phép bạn xóa liệu chứa Primary Key 24 Định nghĩa Foreign Key Constraint tạo Table: CREATE TABLE Table_Name ( Column_Name DataType [,…] , [CONSTRAINT Constraint_Name] FOREIGN KEY [(column [,…n])] REFERENCES ref_table [(ref_column[,…n])] [ON DELETE {CASCADE | NO ACTION} ] [ON UPDATE {CASCADE | NO ACTION} ] [NOT FOR REPLICATION] 25 CREATE TABLE PhongBan (MaPB int Not null, TenPB varchar (30) Constraint PK_PB Primary Key (MaPB) ) Create Table NhanVien ( MaNV int, TenNV Nvarchar (100), MaPB int not null, MaCV int not null Constraint PK_NV Primary Key (MaNV) Constraint FK_NVien_PBan Foreign Key (MaPB) References PhongBan (MaPB) ) 26 Đ/nghĩa Foreign Key Constraint Table tồn tại: ALTER TABLE TableName [ WITH CHECK / WITH NO CHECK] ADD [CONSTRAINT ConstraintName] FOREIGN KEY [(column [,…n])] REFERENCES ref_table [(ref_column[,…n])] [ON DELETE { CASCADE | NO ACTION } ] [ON UPDATE { CASCADE | NO ACTION } ] [NOT FOR REPLICATION] Trong đó: • WITH CHECK: SQL Server kiểm tra liệu có vi phạm ràng buộc hay khơng, có khơng tạo Constraint • WITH NO CHECK: Tạo Constraint mà khơng cần kiểm tra liệu có có vi phạm ràng buộc hay không 27 Vd: Create Table ChucVu ( MaCV int PRIMARY KEY, TenCV varchar (30), HSPC Real ) Alter Table NhanVien Add Constraint FK_NV_CV Foreign Key (MaCV) References ChucVu (MaCV) Lưu ý: • ON DELETET CASCADE | NO ACTION • ON UPDATE CASCADE | NO ACTION 28 Định nghĩa UNIQUE Constraint tạo Table: CREATE TABLE TableName ( ColumnName datatype [,…] [CONSTRAINT ConstraintName] UNIQUE [CLUSTERED | NONCLUSTERED] { (Column [ASC | DESC] [,…])} [ON {filegroup | DEFAULT}]) ) 29 Định nghĩa UNIQUE Constraint Table tồn tại: ALTER TABLE TableName ADD ColumnName Datatype [CONSTRAINT ConstraintName] UNIQUE [CLUSTERED | NONCLUSTERED] [ON {filegroup / DEFAULT}] [,…] Hoặc: ALTER TABLE TableName ADD [CONSTRAINT ConstraintName] UNIQUE [CLUSTERED | NONCLUSTERED] { (Column [ASC | DESC][,…n]) } [ ON { filegroup | DEFAULT} ] 30 Định nghĩa hiệu chỉnh ràng buộc toàn vẹn liệu Enterprise Manager 31 ... trữ phải khóa (Primary Key) Table khác  Ràng buộc người dùng định nghĩa:  Ràng buộc tầm vực: Tầm vực cột Tầm vực bảng  Định nghĩa ràng buộc: Ràng buộc định nghĩa thiết kế cấu trúc table (Create... tồn vẹn liệu VD: chấp nhận giá trị cột TenSinhVien giá trị dạng ngày ngược lại Các loại Ràng buộc loại  Ràng buộc thực thể: đảm bảo dòng xác định nhiều thuộc tính gọi khóa (Primary Key)  Ràng. ..I Giới thiệu toàn vẹn liệu (Data Integrity)  Toàn vẹn liệu đề cập đến trạng thái tất giá trị liệu lưu trữ CSDL  Các table CSDL SQL Server có số loại tồn vẹn liệu khác VD: định nghĩa

Ngày đăng: 11/08/2014, 22:22

TỪ KHÓA LIÊN QUAN