Làm cú hiệu lực cỏc ràng buộc khoỏ

Một phần của tài liệu Giáo trình ngôn ngữ SQL pps (Trang 68 - 69)

Trong phần núi về chỉ số, chỳng ta đó biết rằng mặc dự chỳng khụng phải là một phần của chuẩn SQL, mỗi phiờn bản SQL cú một cỏch tạo ra cỏc chỉ số như là một phần của định nghĩa lược đồ cơ sở dữ liệu. Thụng thường, chỉ số được xõy dựng trờn khoỏ chớnh để hỗ trợ kiểu truy vấn cú chỉ ra một giỏ trị đối với khoỏ chớnh. Chỳng ta cũng cú thể xõy dựng cỏc chỉ số trờn cỏc thuộc tớnh khỏc được mụ tả là UNIQUE. Sau khi tạo ra chỉ số, nếu một mệnh đề WHERE của truy vấn chứa một điều kiện được tạo nờn từ một khoỏ và một giỏ trị cụ thể, bộ giỏ trị phự hợp sẽ được tỡm thấy rất nhanh chúng mà khụng phải tỡm kiếm qua tất cả cỏc bộ giỏ trị của quan hệ. Nhiều phiờn bản SQL cung cấp một lệnh tạo chỉ số bằng cỏch sử dụng từ khoỏ UNIQUE mụ tả một

thuộc tớnh là khoỏ tại cựng thời điểm nú tạo ra một chỉ số trờn thuộc tớnh đú. Vớ dụ, lệnh

CREATE UNIQUE INDEX MósốNVIndex ON NHÂNVIấN(MósốNV);

tạo ra chỉ số đồng thời mụ tả ràng buộc về tớnh duy nhất trờn thuộc tớnh Mó sốNV của quan hệ NHÂNVIấN.

Bõy giờ chỳng ta hóy xem xột hệ thống SQL sẽ làm cú hiệu lực một ràng buộc khoỏ như thế nào. Về nguyờn tắc, ràng buộc phải được kiểm tra mỗi một lần chỳng ta làm thay đổi cơ sở dữ liệu. Tuy nhiờn, mỗi ràng buộc khoỏ đối với quan hệ R cú thể bị vi phạm chỉ khi R bị thay đổi. Trờn thực tế, một lệnh xoỏ cỏc bộ giỏ trị ra khỏi quan hệ R khụng thể gõy ra một vi phạm, chỉ cú phộp chốn và phộp cập nhật là cú thể. Như vậy, thụng thường hệ thống SQL kiểm tra ràng buộc khoỏ chỉ khi xuất hiện một phộp chốn hoặc một phộp cập nhật đối với quan hệ.

Nếu cú chỉ số trờn thuộc tớnh (hoặc cỏc thuộc tớnh) được mụ tả là khoỏ thỡ hệ thống SQL làm hiệu lực ràng buộc khoỏ một cỏch rất hiệu quả. Thật vậy, nếu cú sẵn chỉ số thỡ khi ta chốn một bộ giỏ trị vào quan hệ hoặc cập nhật một thuộc tớnh khoỏ trong một bộ nào đấy, hệ thống dựng chỉ số để kiểm tra rằng cú hay khụng cú sẵn một bộ với cựng giỏ trị trong thuộc tớnh (hoặc cỏc thuộc tớnh) được mụ tả là khoỏ. Nếu cú, hệ thống phải ngăn ngừa sự thay đổi xảy ra.

Nếu khụng cú chỉ số trờn cỏc thuộc tớnh khoỏ thỡ vẫn cũn khả năng làm cú hiệu lực một ràng buộc khoỏ. Việc sắp xếp quan hệ theo giỏ trị khoỏ sẽ giỳp việc tỡm kiếm của hệ thống. Tuy nhiờn, nếu khụng cú sự hỗ trợ tỡm kiếm thỡ hệ thống phải xem xột toàn bộ quan hệ để tỡm kiếm một bộ giỏ trị với giỏ trị khoỏ cho trước. Quỏ trỡnh đú là cực kỳ tốn thời gian và cú thể làm cho việc sửa đổi cỏc quan hệ lớn của cơ sở dữ liệu trở nờn khụng thể.

Một phần của tài liệu Giáo trình ngôn ngữ SQL pps (Trang 68 - 69)

Tải bản đầy đủ (DOC)

(178 trang)
w