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

Chuong4 rangbuoctoanven

67 1 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

Nội dung

Chương Ràng Buộc Dữ Liệu Nội dung Giới thiệu Phân loại Qui tắc chung User-defined Constraint Mục tiêu Mỗi thể thực thể RB kích thước, định dạng, miền giá trị Thực thể Miền giá trị Tham chiếu RB tự định nghĩa RB tham chiếu giá trị RB nghiệp vụ mà loại không kiểm tra Mục tiêu Chuyển trách nhiệm kiểm tra RBDL cho SQL Server làm cách tự động có thay đổi DL (Con người không cần kiểm tra thủ công) Nội dung Giới thiệu Phân loại Qui tắc chung User-defined Constraint Phân loại Primary Trigger Foreign Check Unique Default Rule Ví dụ Rule CREATE RULE ur_LuongDuong AS @Luong>0 ur_LuongDuong sp_bindRule NHANVIEN MaNV … Luong NV1 … 10000 NV2 NV3 … … 30 -40 sp_unbindRule sp_bindRule ‘ur_LuongDuong’,’NhanVien.Luong’ sp_unbindRule ‘NhanVien.Luong’ Nội dung Giới thiệu Phân loại Qui tắc chung User-defined Constraint Qui tắc chung vSQL constraints có cách tạo § Tạo tạo bảng Ø Ràng buộc thuộc tính Ø Ràng buộc bảng § Tạo ngồi bảng v Ví dụ : tạo ràng buộc Unique RB thuộc tính Chỉ áp dụng cho RB thuộc tính CREATE TABLE Persons ( P_Id int NOT NULL UNIQUE, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) ) Liên thuộc tính, liên quan hệ vLà ràng buộc xảy thuộc tính nhiều quan hệ khác R A B C D α α α β β β S A B C α 7 α β 12 β β 23 γ 10 Ví dụ vNgày sinh trưởng phịng phải nhỏ ngày nhận chức § Bối cảnh: NHANVIEN, PHONGBAN § Biểu diễn: ∀t ∈ PHONGBAN ( ∃s ∈ NHANVIEN ( s.MANV = t.TRPHG ∧ t.NG_NHANCHUC > s.NGSINH )) § Bảng tầm ảnh hưởng: R12 NHANVIEN PHONGBAN Thêm Xóa Sửa − − + (NGSINH, MANV) + − + (NG_NHANCHUC, TRPHG) Thuộc tính tổng hợp vThuộc tính tổng hợp § Là thuộc tính có giá trị tính tốn từ thuộc tính khác vKhi CSDL có thuộc tính tổng hợp § RBTV bảo đảm quan hệ thuộc tính tổng hợp thuộc tính nguồn Ví dụ PHONGBAN(TENPHG, MAPHG, TRPHG, NG_NHANCHUC, SO_NV) vSố nhân viên phòng ban phải tổng số lượng nhân viên thuộc phịng § Bối cảnh: NHANVIEN, PHONGBAN § Biểu diễn: ∀t ∈ PHONGBAN ( t.SO_NV = ∑ { s ∈ NHANVIEN | s.PHG = t.MAPHG} ) § Bảng tầm ảnh hưởng: R13 Thêm Xóa Sửa NHANVIEN + + + (PHG) PHONGBAN − − + (SO_NV, MAPHG) RBTV – Chu trình vLược đồ CSDL biểu diễn đồ thị § Đỉnh • Quan hệ • Thuộc tính Tên quan hệ Tên thuộc tính vCạnh § Đường nối đỉnh quan hệ với đỉnh thuộc tính lược đồ CSDL Tên quan hệ Tên thuộc tính vChu trình § Đồ thị xuất đường khép kín ~ Lược đồ CSDL có chu trình Ví dụ vNhân viên phân cơng vào đề án phịng ban phụ trách PHG=PHONG NHANVIEN MANV=MA_NVIE N MANV, MADA MA_NVIEN, SODA PHANCONG DEAN SODA=MADA Ví dụ(tt) vNhân viên phân cơng vào đề án phịng ban phụ trách § Bối cảnh:NHANVIEN, DEAN, PHANCONG § Biểu diễn: NVDA ← NHANVIEN PHG=PHONG DEAN ∀t ∈ PHANCONG ( ∃s ∈ NVDA ( t.MA_NVIEN = s.MANV ∧ t.MADA = s.SODA )) § Bảng tầm ảnh hưởng: R14 NHANVIEN Thêm − Xóa − Sửa DEAN − − + (MADA,PHONG) PHANCONG + − + (MA_NVIEN,SODA) + (MANV,PHG) SQL Constraints vLỗi tạo PRIMARY § Thuộc tính khóa chưa đặt NOT NULL (tạo khóa bên ngồi) § Dữ liệu tồn khơng hợp lệ.(tạo khóa sau nhập liệu) vLỗi tạo FOREIGN § Thuộc tính bị tham chiếu chưa tồn (tạo khóa bảng) § Bảng tham chiếu chưa có khóa § Không kiểu, chiều dài §Dữ liệu không hợp lệ SQL Constraintss vLỗi tạo CHECK § Dữ liệu tồn không thỏa điều kiện check.(nếu yêu cầu check liệu tồn tại) vUNIQUE tạo một tập cột cần xác định giá trị nhất, nằm thư mục Keys § Cú pháp: ALTER TABLE ADD CONSTRAINT UNIQUE ([,…n]) § Lỗi tạo: liệu tồn có giá trị trùng SQL Constraints § Ví dụ: Bảng PHONGBAN có thuộc tính TenPhongBan chứa giá trị không trùng Giả sử bảng PHONGBAN tồn ALTER TABLE PHONGBAN ADD CONSTRAINT U_TenPhong UNIQUE (TenPhong) Unique CREATE TABLE Persons ( P_Id int NOT NULL UNIQUE, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) ) CREATE TABLE Persons3 ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName) ) CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), UNIQUE (P_Id) ) SQL Constraintss vDEFAULT gán giá trị mặc định cho cột § Đặc điểm ü Áp dụng thuộc tính cần khởi tạo giá trị ban đầu ü Mỗi RB áp dụng thuộc tính /một bảng § Cú pháp: ALTER TABLE ADD CONSTRAINT DEFAULT FOR §Lỗi tạo: cột đặt ràng buộc Default Default bảng CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) DEFAULT 'Sandnes' ) CREATE TABLE Orders ( O_Id int NOT NULL, OrderNo int NOT NULL, P_Id int, OrderDate date DEFAULT GETDATE() ) SQL Constraintss vRULE tương đương với Check § Đặc điểm ü Một rule áp dụng cho nhiều cột (một check áp dụng cho cột) ü Mỗi cột sử dụng rule ü Có thể áp dụng rule check cột § Cú pháp: CREATE RULE AS ü Biểu thức điều kiện phải chứa biến (bắt đầu @) thay cho thuộc tính cần kiểm tra ü Chứa biểu thức số học, toán tử… (khơng chứa thuộc tính)

Ngày đăng: 06/04/2023, 09:30

TÀI LIỆU CÙNG NGƯỜI DÙNG

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

TÀI LIỆU LIÊN QUAN

w