Bài giảng Cơ sở dữ liệu nâng cao - Chương 2: Toàn vẹn và cơ sở dữ liệu active
Cơ sở dữ liệu nâng cao
Toàn vẹn và cơ sở dữ liệu active
Đỗ Thanh Nghị
Cần Thơ
11-10-2016
1
Toàn vẹn và cơ sở dữ liệu active
Mục tiêu
điều khiển toàn vẹn ngữ nghĩa
đưa khái niệm trigger
cài đặt trong mô hình quan hệ
minh họa với SQL3
2
Toàn vẹn ngữ nghĩa
Định nghĩa
Toàn vẹn ngữ nghĩa
dữ liệu phải hợp lệ và nhất quán
sự hợp lệ và nhất quán được định nghĩa với sự trợ giúp
ràng buộc toàn vẹn
Ràng buộc toàn vẹn
luật được định nghĩa bởi người thiết kế CSDL
cho phép định nghĩa tính hợp lệ của dữ liệu
phải được hệ thống kiếm soát
CSDL phải luôn thỏa tập các ràng buộc
4
Vấn đề
Định nghĩa ràng buộc
ngôn ngữ định nghĩa ràng buộc
tích hợp vào SQL, mở rộng
khi nào, làm sao định nghĩa ràng buộc?
nhiều cách tiếp cận khác
Kiểm chứng các ràng buộc
khi nào?
làm sao kiểm chứng?
giải thuật nào?
5
Các thể thức ràng buộc
toàn vẹn
Thể thức
Ràng buộc cấu trúc
đặc thù cho một mô hình dữ liệu
Ràng buộc về xử lý
sự tiến hóa dữ liệu
Ràng buộc phụ thuộc
phụ thuộc hàm, bao hàm, đa trị
Khẳng định tổng quát
luật quản lý và/hoặc biểu thức số học
7
Ràng buộc cấu trúc
Ràng buộc cấu trúc
đặc thù cho mô hình dữ liệu
trình bày các đặc tính cơ bản của mô hình
Mô hình quan hệ
khóa duy nhất
không rỗng
phụ thuộc tham chiếu
ràng buộc miền
8
Ràng buộc cấu trúc của mô hình
quan hệ
Khóa duy nhất
một hay nhóm thuộc tính được định nghĩa là khóa của
quan hệ phải có tính duy nhất
thuộc tính NoAp của quan hệ Appartment xác định một
và chỉ một mẫu tin của quan hệ
Không rỗng
thuộc tính không nhận giá trị rỗng
thuộc tính NoAp của quan hệ Appartment không nhận
giá trị rỗng
9
Ràng buộc cấu trúc của mô hình
quan hệ
Phụ thuộc tham chiếu
sự phụ thuộc giữa những giá trị của thuộc tính (nhóm
thuộc tính) của một quan hệ với những giá trị của thuộc
tính (nhóm thuộc tính) của một quan hệ khác
thuộc tính NoAp của quan hệ Room tham chiếu đến
thuộc tính NoAp của quan hệ Appartment
Ràng buộc miền
thuộc tính của một quan hệ chỉ nhận giá trị thuộc miền
giá trị
thuộc tính Name của quan hệ Room có thể nhận giá trị
nằm thuộc {phòng ngủ, phòng khách, phòng ăn, bếp,
phòng tắm, văn phòng}
10
Ràng buộc về xử lý
Theo thời gian
đặc tả sự tiến hóa dữ liệu khi cập nhật
lương của nhân viên không thể giảm, giá trị mới phải lớn
hơn giá trị củ
Tập hợp
đặc tả luật để kiểm soát tập hợp dữ liệu
lương trung bình không thể nhỏ hơn 15 000$
11
Ràng buộc phụ thuộc
Phụ thuộc hàm
đặc tả mối liên hệ tồn tại giữa 2 hay những nhóm thuộc
tính, tổng quát hóa một khóa
code postal xác định thành phố
Phụ thuộc bao hàm
đặc tả những giá trị của một thuộc tính được bao hàm
trong tập hợp giá trị của thuộc tính khác
Phụ thuộc đa trị
hệ quả của sự giới hạn đơn trị
đặc tả phụ thuộc của một thuộc tính đến thuộc tính thứ
hai và độc lập với thuộc tính thứ 3
12
Định nghĩa ràng buộc
Định nghĩa ràng buộc
Khi nào định nghĩa ràng buộc?
thời điểm tạo CSDL
bằng cách lệnh của ngôn ngữ định nghĩa dữ liệu
Làm sao định nghĩa ràng buộc?
bằng các từ khóa cho từng ràng buộc
NOT NULL, PRIMARY KEY, UNIQUE, …
với những khẳng định
SQL92: CREATE ASSERTION
14
Bảo toàn những ràng buộc
Định nghĩa định dạng cho các ràng buộc
trình bày thông tin đặc tả ràng buộc
quan hệ, kiểu ràng buộc...
Lưu trữ ràng buộc
trong các metadata
CSDL mô tả CSDL khác và các lược đồ quan hệ
tổ chức, chỉ mục ràng buộc
tăng tốc quá trình tìm kiếm ràng buộc
15
Giải pháp thương mại
Chuẩn SQL: SQL92
đề xuất cho các kiểu ràng buộc khác nhau
NOT NULL, UNIQUE, CHECK, CONSTRAINT,
ASSERTION, PRIMARY, KEY, REFERENCES
Trong những hệ thống
cài đặt gần như SQL92
sử dụng những luật, thủ tục và triggers
sử dụng các view
16
Ràng buộc toàn vẹn trong Oracle
Sử dụng các lệnh định nghĩa quan hệ
mệnh đề CONSTRAINT trong lệnh CREATE TABLE và
ALTER TABLE
Ràng buộc
không rỗng :
NOT NULL
UNIQUE
duy nhất :
khóa : PRIMARY KEY
ràng buộc miền : CONSTRAINT CHECK
ràng buộc tham chiếu : REFERENCES
17
Ví dụ 1
CREATE TABLE student (
no
integer NOT NULL PRIMARY KEY,
lname char(20),
fname char(20),
type char(15)
CONSTRAINT check_type
CHECK (type in ('graduated', 'undergraduated')));
18
Chú ý
Diễn đạt ràng buộc
không rỗng
NOT NULL
khóa
PRIMARY KEY
miền
CONSTRAINT và CHECK
check
cho phép diễn đạt những điều kiện trên những thuộc
tính của một quan hệ
19
Ví dụ 2
CREATE TABLE inscription (
(no integer
CONSTRAINT fk_no REFERENCES student(no)
ON DELETE CASCADE,
nc
CONSTRAINT fk_nc REFERENCES course(nc),
dateins date );
integer
20
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cơ sở dữ liệu nâng cao - Chương 2: Toàn vẹn và cơ sở dữ liệu active", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_co_so_du_lieu_nang_cao_chuong_2_toan_ven_va_co_so.pdf

