Tính toàn vẹn dữ liệu trong cơ sở dữ liệu phần 1

17 2.3K 2
Tính toàn vẹn dữ liệu trong cơ sở dữ liệu   phần 1

Đ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

-1- Tính toàn vẹn liệu sở liệu - Phần Toàn vẹn liệu việc đặt quy tắc sở liệu nhằm kiểm tra giá trị liệu trước lưu trữ phải đảm bảo tính xác hợp lý bên sở liệu Thuộc tính bảng Nếu giá trị liệu vi phạm quy tắc đặt liệu không lưu vào bảng Các quy tắc phần lớn xây dựng dựa vào quy tắc hữu tồn công việc kinh doanh Ví dụ : Trong sở liệu QLBanHang (quản lý bán hàng) bạn đưa số quy tắc sau : • Số lượng đặt hàng phải dương (miền giá trị) • Ngày nhập hàng phải sau ngày đặt hàng • Số hóa đơn giao hàng không bị cấp trùng số (khóa chính) • Đơn đặt hàng phải gởi cho nhà cung cấp có danh sách nhà cung cấp (khóa ngoại) • Số lượng bán hàng phải dương đủ số lượng có kho hàng Điều xảy liệu bên bảng có vi phạm quy tắc mà lưu trữ vào bên sở liệu ? Do đó, hệ sở liệu quan hệ lớn ngày nay, hệ thống giúp cho người sử dụng định nghĩa quy tắc thông qua từ khóa thuộc tính có liên quan đến sở liệu nhằm đảm bảo liệu lưu trữ vào sở liệu phải xác hợp lý Bên sở liệu Microsoft SQL Server việc kiểm tra tính toàn vẹn liệu thông qua hai đối tượng quản lý, constraint trigger Cả hai đối tượng liên kết trực tiếp vào bảng liệu Các loại quy tắc kiểm tra tính toàn vẹn liệu bao gồm : 1/- Kiểm tra liệu : Loại ràng buộc toàn vẹn cho phép bạn kiểm tra tính liệu bên bảng Điều ngăn cản việc người sử dụng tình cờ nhập trùng lại giá trị -2liệu bên bảng Bạn sử dụng hai thành phần PRIMARY KEY UNIQUE câu lệnh CREATE TABLE để thực việc kiểm tra tính liệu Điểm khác biệt PRIMARY KEY UNIQUE xuất thành phần câu lệnh CREATE TABLE Thành phần PRIMARY KEY cho phép bạn tạo cấu trúc bảng có chứa khóa Do bảng có khóa chính, nhiên khóa phép định nghĩa có nhiều cột tham gia Vì thành phần PRIMARY KEY xuất lần tạo cấu trúc bảng Thành phần UNIQUE cho phép bạn kiểm tra tính cột không tham gia làm khóa bảng Thành phần UNIQUE phép xuất nhiều lần tạo cấu trúc bảng cần kiểm tra tính cột không làm khóa Cú pháp : Trong : • Tên constraint : phải sở liệu Thông thường quy định tên constraint gồm có phần Bắt đầu chữ PRK, tên bảng cuối tên cột áp dụng quy tắc kiểm tra liệu cột khóa • Danh sách cột khóa : danh sách tên cột tham gia làm khóa chính, tên cột ngăn cách dấu phẩy (,) Cú pháp : Trong : • Tên constraint : phải sở liệu Thông thường quy định tên constraint gồm có phần Bắt đầu chữ UNQ, tên bảng cuối tên cột áp dụng quy tắc kiểm tra liệu cột không tham gia làm khóa • Danh sách cột : danh sách tên cột cần kiểm tra nhất, tên cột ngăn cách dấu phẩy (,) Lưu ý : -3Mặc định tên constraint hệ thống Microsoft SQL Server tạo nhằm đảm bảo tính bên sở liệu Tuy nhiên bạn chủ động đặt tên cho constraint tạo chúng cách đưa thêm từ khóa CONSTRAINT thành phần định nghĩa kiểm tra ràng buộc toàn vẹn liệu Ví dụ : Tạo bảng VATTU kiểm tra liệu cột mã vật tư phải Trường hợp định cột mã vật tư làm khóa bảng Bạn thực câu lệnh CREATE TABLE sau : Với cú pháp bảng VATTU có sử dụng constraint loại PRIMARY KEY dùng định nghĩa khóa bảng cột Mavtu Tuy nhiên tên constraint hệ thống Microsoft SQL Server tạo Trong trường hợp bạn muốn định tên constraint bạn định nghĩa bạn thực câu lệnh CREATE TABLE có sử dụng từ khóa CONSTRAINT sau : Khi mà thành phần đối tượng constraint xuất phía sau tên cột hai ví dụ ràng buộc toàn vẹn liệu kiểm tra cột liệu Bạn nên chọn cách thực việc kiểm tra ràng buộc toàn vẹn liệu cột bên bảng liệu Trong trường hợp bạn đặt thành phần đối tượng constraint bên tất cột liệu bên bảng ràng buộc toàn vẹn liệu kiểm tra bảng Bạn -4nên chọn cách thực việc kiểm tra ràng buộc toàn vẹn liệu nhiều cột có liên quan bên bảng liệu Ví dụ : Để tạo bảng có tên CTDONDH (chi tiết đơn đặt hàng) gồm có cột : số đặt hàng có kiểu liệu chuỗi chiều dài ký tự, mã vật tư có kiểu liệu chuỗi chiều dài ký tự, số lượng đặt có kiểu số nguyên Dữ liệu cột không phép trống Khóa gồm có cột số đặt hàng mã vật tư Bạn thực câu lệnh CREATE TABLE sau : Hoặc muốn đặt tên constraint PRK_CTDONDH_SodhID Lưu ý : Khi sử dụng loại ràng buộc toàn vẹn liệu kiểm tra cột liệu cần nhớ dấu phẩy (,) đặt vị trí sau thành phần constraint không đặt vị trí phía sau tên kiểu liệu cột Ngược lại sử dụng loại ràng buộc toàn vẹn liệu kiểm tra bảng không cần có thêm dấu phẩy (,) vị trí phía sau cột liệu cuối bên bảng Đôi điều lưu ý làm cho bạn cảm thấy khó nhớ Do để đơn giản tạo cấu trúc bảng, bạn thực hai bước : Bước : Tạo cấu trúc bảng đơn giản lệnh CREATE TABLE gồm có tên bảng, tên cột kiểu liệu mong muốn -5Bước : Thêm loại constraint tương ứng lệnh ALTER TABLE ADD CONSTRAINT để áp dụng kiểm tra ràng buộc toàn vẹn liệu cho bảng liệu 2/- Kiểm tra tồn liệu : Loại ràng buộc toàn vẹn cho phép bạn kiểm tra tính tồn liệu (khóa ngoại), bắt buộc phải có bên bảng khác, gọi bảng tham chiếu Điều ngăn cản việc người sử dụng nhập giá trị liệu bảng liệu khác Bạn sử dụng thành phần FOREIGN KEY câu lệnh CREATE TABLE để thực việc kiểm tra tính tồn liệu Trong bảng phép có nhiều khóa ngoại, nhiên cột tham chiếu phải định nghĩa khóa bảng tham chiếu trước Vì thành phần FOREIGN KEY phép xuất nhiều lần tạo cấu trúc bảng bạn cần kiểm tra tính tồn nhiều cột khác bảng khác Cú pháp : Trong : • Tên constraint : phải sở liệu Thông thường quy định tên constraint gồm có phần Bắt đầu chữ : FRK, tên bảng cuối tên cột áp dụng quy tắc kiểm tra tồn liệu • Danh sách cột khóa ngoại : danh sách tên cột tham gia làm khóa ngoại, tên cột ngăn cách dấu phẩy (,) • Tên bảng tham chiếu : tên bảng tham chiếu để kiểm tra tính tồn liệu bên bảng tham chiếu • Danh sách cột tham chiếu : danh sách tên cột tham chiếu bảng tham chiếu, tên cột ngăn cách dấu phẩy (,) Lưu ý danh sách cột khóa ngoại danh sách cột tham chiếu phải tương xứng Ví dụ : Tạo lại bảng CTDONDH có bổ sung thêm hai ràng buộc toàn vẹn liệu khóa ngoại : số đặt hàng tham chiếu qua bảng DONDH, nghĩa giá trị liệu cột số đặt hàng phải tồn bảng DONDH mã vật tư tham chiếu qua bảng VATTU, nghĩa giá trị liệu cột mã vật tư phải tồn bảng VATTU Bạn thực câu lệnh CREATE TABLE sau : -6- Hoặc muốn đặt tên cho constraint liên quan 3/- Kiểm tra miền giá trị : Loại ràng buộc toàn vẹn cho phép bạn kiểm tra miền giá trị cột liệu bên bảng Điều ngăn cản việc người sử dụng nhập giá trị liệu vượt khỏi phạm vi mà bạn quy định trước Bạn sử dụng thành phần CHECK câu lệnh CREATE TABLE để thực việc kiểm tra miền giá trị liệu Có thể thực việc kiểm tra để so sánh giá trị cột bên bảng với giá trị cụ thể hàm tính toán Microsoft SQL Server mà kiểu trả hàm phải khớp với kiểu liệu cột Ngoài bạn kiểm tra giá trị nhiều cột có liên quan bảng liệu Cú pháp : Trong : -7• Tên constraint : phải sở liệu Thông thường quy định tên constraint gồm có phần Bắt đầu chữ : CHK, tên bảng cuối tên cột áp dụng quy tắc kiểm tra miền giá trị liệu • Biểu thức luận lý : biểu thức định quy tắc kiểm tra liệu bảng Thông thường biểu thức luận lý biểu thức so sánh Ví dụ : Trong bảng CTDONDH (chi tiết đơn đặt hàng) kiểm tra quy tắc giá trị liệu cột số lượng đặt tối thiểu 10 không lớn 50 Có nghĩa cột số lượng đặt >=10 số lượng đặt [...]... chính là cột mã vật tư • Giá trị dữ liệu duy nhất tại cột tên vật tư • Giá trị mặc định cho cột phần trăm là 20 - 12 • Kiểm tra phạm vi giá trị của phần trăm từ 5 đến 10 0 Hoặc đầu tiên tạo bảng có cấu trúc đơn giản và sau đó thêm vào các ràng buộc toàn vẹn dữ liệu Bảng NHACC có các quy tắc kiểm tra toàn vẹn dữ liệu : • Khóa chính là cột mã nhà cung cấp - 13 • Giá trị dữ liệu duy nhất tại cột địa chỉ... đơn giản và sau đó thêm vào các ràng buộc toàn vẹn dữ liệu - 15 Bảng CTDONDH có các quy tắc kiểm tra toàn vẹn dữ liệu : • Khóa chính là cột số đặt hàng và mã vật tư • Giá trị mặc định cho cột số lượng đặt là 10 • Kiểm tra phạm vi giá trị của số lượng đặt từ 10 đến 50 • Kiểm tra tính tồn tại dữ liệu của cột số đặt hàng trong bảng DONDH và cột mã vật tư trong bảng VATTU Hoặc đầu tiên tạo bảng có cấu... constraint bên trong cơ sở dữ liệu Microsoft SQL Server Cú pháp : Trong đó : - 17 • Tên constraint : phải tồn tại trong cơ sở dữ liệu mà bạn muốn hủy bỏ Do đó đối với tên của các constraint mà bạn chủ động đặt khi sử dụng từ khóa CONSTRAINT thì sẽ giúp bạn dễ dàng gợi nhớ hơn tên của các constraint do hệ thống tự đặt Lưu ý : Hủy bỏ quy tắc kiểm tra số lượng đặt hàng trong bảng CTDONDH có giới hạn từ 10 đến... ràng buộc toàn vẹn dữ liệu - 16 - Lưu ý : Khi thực hiện tạo bảng có cấu trúc đơn giản và sau đó thêm vào các ràng buộc toàn vẹn dữ liệu thì bạn phải luôn luôn thêm từ khóa NOT NULL phía sau các cột tham gia làm khóa chính của bảng khi tạo cấu trúc bằng lệnh CREATE TABLE 5/- Hủy bỏ constraint đã có trong bảng : Với cú pháp ALTER TABLE bên dưới cho phép bạn hủy bỏ các quy tắc kiểm tra tòan vẹn dữ liệu thông... bên trong bảng đã tạo trước đó Các quy tắc mà bạn hủy bỏ sẽ không còn thực hiện việc kiểm tra tính toàn vẹn dữ liệu bên trong của bảng cho đến khi bạn phải tạo mới lại nó Muốn hủy bỏ được các đối tượng constraint bắt buộc bạn phải ghi nhớ được tên của các constraint lúc tạo ra nó Hoặc xem lại trong màn hình thuộc tính của bảng Do vậy khi tạo ra các quy tắc để kiểm tra các ràng buộc toàn vẹn dữ liệu. .. buộc toàn vẹn dữ liệu Bảng DONDH có các quy tắc kiểm tra toàn vẹn dữ liệu : • Khóa chính là cột số đơn đặt hàng • Giá trị mặc định cho các cột ngày đặt hàng và ngày dự kiến nhận hàng là ngày hiện hành - 14 • Ngày dự kiến nhận hàng phải sau ngày đặt hàng • Kiểm tra tính tồn tại dữ liệu của cột mã nhà cung cấp bên bảng NHACC Hoặc đầu tiên tạo bảng có cấu trúc đơn giản và sau đó thêm vào các ràng buộc toàn. .. trị mặc định cho một cột dữ liệu bên trong bảng thì bắt buộc bạn phải có thêm từ khóa FOR tên cột để chỉ định giá trị mặc định được tạo ra sẽ áp dụng cho cột dữ liệu nào Ví dụ : Sử dụng các câu lệnh CREATE TABLE để tạo ra cấu trúc các bảng VATTU (vật tư), NHACC (nhà cung cấp), DONDH (đơn đặt hàng) và CTDONDH (chi tiết đơn đặt hàng) Bảng VATTU có các quy tắc kiểm tra toàn vẹn dữ liệu : • Khóa chính là...- 11 - Sau đó bạn thêm vào các quy tắc kiểm tra duy nhất của dữ liệu tại khóa chính của bảng là cột mã nhà cung cấp bằng lệnh ALTER TABLE ADD CONSTRAINT Bạn có thể thêm một quy tắc mới dùng để kiểm tra tính duy nhất dữ liệu tại cột địa chỉ của bảng nhà cung cấp và đưa vào giá trị mặc định cho cột điện thoại của bảng nhà cung cấp là "Chưa có" bằng các câu lệnh như sau : Lưu ý : Trong lệnh ALTER ... hình quan hệ liệu (diagram) Tương tự, bạn di chuyển qua trang Relationships Indexs/Keys để thấy quy tắc kiểm tra liệu tính nhất, tính tồn liệu bên bảng -9- Tính toàn vẹn liệu sở liệu - Phần cuối... buộc toàn vẹn liệu kiểm tra cột liệu Bạn nên chọn cách thực việc kiểm tra ràng buộc toàn vẹn liệu cột bên bảng liệu Trong trường hợp bạn đặt thành phần đối tượng constraint bên tất cột liệu bên... ràng buộc toàn vẹn liệu kiểm tra cột liệu cần nhớ dấu phẩy (,) đặt vị trí sau thành phần constraint không đặt vị trí phía sau tên kiểu liệu cột Ngược lại sử dụng loại ràng buộc toàn vẹn liệu kiểm

Ngày đăng: 03/12/2015, 08:28

Từ khóa liên quan

Mục lục

  • 1/- Kiểm tra duy nhất dữ liệu :

  • 2/- Kiểm tra tồn tại dữ liệu :

  • 3/- Kiểm tra miền giá trị :

  • 4/- Thêm vào constraint mới trong bảng :

  • 5/- Hủy bỏ constraint đã có trong bảng :

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

Tài liệu liên quan