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

Tài liệu cơ sở dữ liệu

77 157 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 77
Dung lượng 2,37 MB

Nội dung

Tài liệu hướng dẫn viết các biểu thức đại số quan hệ, sử dụng ngôn ngữ truy vấn dữ liệu SQL, xác định ràng buộc toàn vẹn và mô tả một ràng buộc toàn vẹn, sử dụng ngôn ngữ T-SQL để cài đặt một ràng buộc toàn vẹn trên hệ quản trị SQL Server.

MỤC LỤC LỜI NÓI ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU 1.1 MỘT SỐ KHÁI NIỆM CƠ BẢN 1.1.1 Định nghĩa sở liệu 1.1.2 Định nghĩa môn sở dữliệu .5 1.1.3 Định nghĩa liệu .5 1.2 THUẬN LỢI VÀ BẤT LỢI KHI TIẾP CẬN CSDL 1.2.1 Thuận lợi 1.2.2 Bất lợi 1.3 HỆ THỐNG CSDL 1.3.1 Giới thiệu 1.3.2 Các thành phần hệ thống CSDL 1.4 HỆ QUẢN TRỊ CSDL 1.5 CÁC GIAI ĐOẠN PHÁT TRIỂN CỦA HỆ THỐNG CSDL 1.5.1 Lịch sử hệ thống CSDL 1.5.2 Hệ thống xử lý tệp cổ điển 1.5.3 Mô hình phân cấp .10 1.5.4 Mơ hình mạng 10 1.5.5 Mô hình quan hệ 11 1.5.6 Mơ hình hướng đối tượng 12 CÂU HỎI 12 CHƯƠNG 2: MƠ HÌNH QUAN HỆ .13 2.1 KHÁI NIỆM CƠ BẢN 13 2.1.1 Bảng quan hệ 13 2.1.2 Bộ 13 2.1.3 Sơ đồ quan hệ sơ đồ CSDL 13 2.1.4 Miền giá trị thuộc tính 14 2.1.5 Giá trị rỗng (NULL) 14 2.1.6 Khoá quan hệ 14 2.2 ĐẠI SỐ QUAN HỆ 14 2.2.1 Phép chọn 14 2.2.2 Phép chiếu .15 2.2.3 Phép tích Descartes 16 2.2.4 Phép kết, kết bằng, kết tự nhiên .16 2.2.5 Phép kết (outer join) .17 2.2.6 Phép trừ 19 2.2.7 Phép hợp 20 2.2.8 Phép giao 20 2.2.9 Phép chia 21 2.2.10 Một số hàm tính tốn .22 2.2.11 Một vài ký hiệu khác cho phép tốn quan hệ .22 2.3 NGƠN NGỮ TÂN TỪ 22 2.3.1 Ngơn ngữ tân từ có biến 22 2.3.2 Ngơn ngữ tân từ có biến miền giá trị 23 CÂU HỎI 23 BÀI TẬP 23 CHƯƠNG 3: NGÔN NGỮ TRUY VẤN DỮ LIỆU (SQL) 26 3.1 GIỚI THIỆU 26 3.2 CÁC LỆNH ĐỊNH NGHĨA VÀ CẬP NHẬT SƠ ĐỒ CSDL 26 3.2.1 Tạo bảng 26 3.2.2 Xóa bảng 26 3.2.3 Sửa đổi cấu trúc bảng 27 3.2.4 Tạo CSDL 27 3.2.5 Xóa CSDL 27 3.3 CÁC LỆNH CẬP NHẬT DỮ LIỆU .28 3.3.1 Sửa liệu .28 3.3.2 Xoá liệu 28 3.3.3 Thêm liệu 28 3.4 CÁC LỆNH TRUY VẤN DỮ LIỆU .29 3.4.1 Truy vấn chọn lựa 29 3.4.2 Truy vấn nhóm 32 3.4.3 Truy vấn 32 3.5 TỐI ƯU HÓA CÂU TRUY VẤN 33 CÂU HỎI 34 BÀI TẬP 34 CHƯƠNG 4: RÀNG BUỘC TOÀN VẸN .39 4.1 GIỚI THIỆU 39 4.2 MÔ TẢ MỘT RBTV 39 4.3 PHÂN LOẠI RÀNG BUỘC TOÀN VẸN 40 4.3.1 Ràng buộc toàn vẹn quan hệ 41 4.3.2 Ràng buộc toàn vẹn nhiều quan hệ 42 CÂU HỎI 45 BÀI TẬP 45 CHƯƠNG 5: CÀI ĐẶT RÀNG BUỘC TOÀN VẸN TRÊN MỘT HỆ QUẢN TRỊ CSDL (SQL SERVER) 47 5.1 GIỚI THIỆU 47 5.2 CÀI ĐẶT SQL SERVER 2005 EXPRESS .48 5.2.1 Yêu cầu hệ thống .48 5.2.2 Các bước cài đặt 48 5.2.3 Đăng nhập vào SQL Server 2005 Express .54 5.2.4 Một số thao tác SQL Server 2005 Express 55 5.3 GIỚI THIỆU TRANSACT-SQL (T-SQL) .58 5.3.1 Kiểu liệu .59 5.3.2 Biến 59 5.3.3 Lệnh gán 59 5.3.4 Toán tử .60 5.3.5 Các lệnh điều khiển 60 5.3.6 Vòng lặp while 60 5.3.7 Một số hàm xây dựng sẵn 61 5.4 THAO TÁC TẠO TRIGGER 61 5.4.1 Trigger gì? 61 5.4.2 Cách hoạt động trigger 61 5.4.3 Các trường hợp sử dụng trigger .62 5.4.4 Tạo trigger .62 5.4.5 Vơ hiệu hố trigger 63 5.4.6 Hiệu lực hóa trigger 64 5.5 THAO TÁC TẠO CONSTRAINT 64 5.5.1 Tạo Constraint 64 5.5.2 Xóa constraint 65 5.5.3 Vơ hiệu hóa constraint .65 5.5.4 Hiệu lực hóa constraint 65 5.5.5 Xem constraint bảng 65 CÂU HỎI 65 BÀI TẬP 66 CÂU HỎI TRẮC NGHIỆM 67 TÀI LIỆU THAM KHẢO .76 LỜI NÓI ĐẦU Tài liệu biên soạn theo đề cương chi tiết học phần Cơ sở liệu (CSDL) ngành Tin học ứng dụng theo phương thức đào tạo tín Trường Cao Đẳng Bến Tre Tài liệu trình bày đầy đủ vấn đề Cơ sở liệu với mục đích trang bị cho sinh viên kiến thức tảng lĩnh vực Tài liệu thiết kế theo khung mẫu nhằm phát huy khả tự học sinh viên Nó khơng giúp truyền đạt, tái tạo thơng tin mà cơng cụ điều khiển hoạt động dạy học, tạo động hứng thú học tập, ôn tập, kiểm tra đánh giá Tài liệu chia thành chương với nội dung sau: Chương 1: Tổng quan Cơ sở liệu Giới thiệu tổng quan CSDL; ưu, khuyết điểm tiếp cận CSDL; chức năng, vai trò hệ quản trị CSDL sơ lược lịch sử phát triển hệ thống CSDL Chương 2: Mơ hình quan hệ Giới thiệu số khái niệm mơ hình quan hệ, phép tốn Đại số quan hệ ngơn ngữ tân từ để thao tác CSDL Chương 3: Ngôn ngữ truy vấn liệu Giới thiệu số lệnh định nghĩa cập nhật sơ đồ CSDL, cập nhật liệu truy vấn liệu Chương 4: Ràng buộc toàn vẹn Giới thiệu số loại ràng buộc toàn vẹn (RBTV) cách mô tả chúng Chương 5: Cài đặt ràng buộc toàn vẹn hệ quản trị CSDL (SQL Server) Hướng dẫn cách cài đặt SQL Server 2005 Express, số thao tác tác động lên CSDL, giới thiệu ngôn ngữ T-SQL, cách tạo Trigger Constraint SQL Server 2005 Express Nội dung chương trình bày ngắn gọn, có nhiều ví dụ minh hoạ Cuối chương có hệ thống tập để sinh viên luyện tập Cuối tài liệu có số câu hỏi trắc nghiệm để sinh viên tự kiểm tra, đánh giá kiến thức Tôi mong việc kết hợp tài liệu với giảng lớp sinh viên rèn luyện nhiều kỹ năng, giành nhiều kiến thức cho thân từ môn học CHƯƠNG TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU Chương giới thiệu tổng quan CSDL, thuận lợi bất lợi tiếp cận CSDL, chức năng, vai trò hệ quản trị CSDL giới thiệu sơ lược lịch sử phát triển hệ thống CSDL MỤC TIÊU Học xong chương sinh viên có khả năng: - Ghi nhớ thành phần tham gia vào hệ thống CSDL - Ghi nhớ giai đoạn phát triển hệ thống CSDL - Phân biệt liệu CSDL - Phân tích thuận lợi bất lợi tiếp cận CSDL - Phát biểu nhiệm vụ hệ quản trị CSDL 1.1 MỘT SỐ KHÁI NIỆM CƠ BẢN 1.1.1 Định nghĩa sở liệu Cơ sở liệu tập liệu tổ chức nhằm mơ hình lại khía cạnh thực tế có liên quan Chúng lưu trữ nhớ ngồi 1.1.2 Định nghĩa mơn sở liệu Môn CSDL lĩnh vực tin học chuyên nghiên cứu chế, nguyên lý, phương pháp tổ chức nhóm liệu nhớ nhằm phục vụ cho việc khai thác liệu tốt 1.1.3 Định nghĩa liệu Dữ liệu thơng tin ngồi thực tế đưa vào máy tính Chẳng hạn thơng tin sách, liệu bao gồm kiện tên sách, năm xuất bản, nhà xuất bản,… Dữ liệu đưa vào máy tính thường định dạng thành loại văn bản, hình ảnh, âm hay đoạn video 1.2 THUẬN LỢI VÀ BẤT LỢI KHI TIẾP CẬN CSDL 1.2.1 Thuận lợi Giảm bớt dư thừa liệu Khi có hai ứng dụng khác đòi hỏi tập liệu lưu trữ lần dùng chung cho hai ứng dụng nói Điều giảm dư thừa liệu Tuy nhiên việc dư thừa liệu hết cách tuyệt đối, chẳng hạn liệu dùng để liên kết tập tin khác lưu trữ nhiều tập tin Có thể tránh không quán liệu lưu trữ Nếu liệu lưu trữ nhiều nơi khác khơng qn thao tác cập nhật (đã cập nhật tập tin chưa cập nhật tập tin kia) Ở CSDL giảm dư thừa khả rủi ro thay đổi giá trị giảm Tăng tính dùng chung liệu Một CSDL thiết kế để phục vụ chung cho tất ứng dụng Mỗi nhóm người dùng nhìn nhận CSDL có họ sử dụng liệu Tính chuẩn hoá cao Khi liệu sử dụng nhiều lĩnh vực chúng ngày chuẩn hoá cho phù hợp với nhiều nhu cầu Việc theo chuẩn chung cho phép tăng hiệu sử dụng liệu Tăng tính an tồn liệu Người quản trị CSDL cấp quyền sử dụng liệu cho nhóm người dùng tùy thuộc thẩm quyền họ Đồng thời kiểm tra ý đồ truy xuất đến liệu mật Có thể giữ toàn vẹn liệu CSDL chứa liệu Nhờ quản lý tập trung, cho phép người quản trị định thủ tục kiểm tra cần thiết thực thao tác cập nhật Ví dụ: Số lượng hàng bán khơng thể vượt số lượng hàng tồn Có thể đảm bảo tính độc lập liệu cao Giảm bớt việc bảo trì chương trình 1.2.2 Bất lợi Như với định kinh doanh nào, ứng dụng theo hướng CSDL cần trả giá chịu vài rủi ro cần đến nhân chuyên sâu, chi phí quản lý thực hiện, giải va chạm tâm lý,… Nhu cầu nhân mới, chuyên môn Cần phải thuê hay tự đào tạo chuyên gia cơng nghệ thơng tin để phân tích, thiết kế, thực CSDL tổ chức Mặc khác, công nghệ ngày phát triển nhanh khiến hệ thống CSDL thường xuyên cập nhật tri thức cho cán Chi phí quản lý, thực Hệ thống quản trị CSDL nhiều người dùng thường lớn phức tạp, đòi hỏi nhiều người tham gia bảo trì Người ta cần tính đến chi phí thiết bị máy tính, chi phí phần mềm, chi phí truyền thơng Chi phí chuyển đổi hệ thống Trước áp dụng CSDL, tổ chức xử lý liệu theo phương pháp thủ công, hay sử dụng hệ thống xử lý tệp Để chuyển công nghệ xử lý liệu sang cách tiếp cận mới, tổ chức cần có kinh phí chuyển mơ hình cũ sang mơ hình mới, chuyển đổi liệu cho phù hợp với môi trường Nhu cầu chép khôi phục liệu Tuy không mong muốn, xẩy rủi ro với CSDL liệu, hỏng phần mềm, hư phần cứng,…Hệ thống CSDL có cơng cụ cho phép chép liệu phòng hỏng hóc khơi phục lại liệu xảy cố Va chạm quan điểm sử dụng CSDL Trước CSDL áp dụng tổ chức, người ta cần thống mô tả liệu, khuôn dạng thể liệu,… Sau hình thành CSDL, việc sử dụng liệu CSDL cần đạt hiệu Cần khuyến khích phận phát huy tốt hệ thống CSDL số phận muốn độc quyền thơng tin hay e ngại dùng hệ thống tự động hố, có xu hướng giảm hiệu CSDL 1.3 HỆ THỐNG CSDL 1.3.1 Giới thiệu Hệ thống CSDL hệ thống thông tin, cho phép người sử dụng dùng chung liệu có hệ thống Khái niệm dùng chung, chia liệu dùng rộng rãi nhiều ứng dụng với nghĩa nhiều người dùng truy cập liệu thời điểm Vì vậy, hệ quản trị CSDL cần điều khiển tương tranh thao tác nhiều ứng dụng Có thể thao tác cần cập nhật liệu thao tác khác đọc liệu Chẳng hạn hệ thống quản lý sách, nơi cho độc giả mượn sách, thể trạng thái đánh dấu “đã cho mượn” vào thông tin sách CSDL nơi khác cho độc giả khác mượn sách Hệ thống CSDL đảm bảo tính an tồn tồn vẹn liệu Dữ liệu an tồn có nghĩa giữ bí mật Hệ thống ngăn cản truy cập không hợp lệ khơi phục sai sót liệu chẳng may an tồn khơng đảm bảo Người ta hay đề cập tính tồn vẹn liệu nói tính an tồn Tính tồn vẹn liên quan đến điều kiện mà liệu cần thỏa mãn Các điều kiện, hay ràng buộc liệu quan trọng liệu Chẳng hạn số sách đăng ký hệ thống quản lý sách phải tổng số sách kho số sách độc giả mượn Quản lý sai sót liệu điều khiển tính tồn vẹn liệu đòi hỏi qui trình phức tạp hệ quản trị CSDL 1.3.2 Các thành phần hệ thống CSDL Nhìn tổng quát, hệ thống CSDL gồm thành phần sau: - Người dùng: Người dùng người tiếp xúc với liệu thông qua ứng dụng, tức thực phép thêm, xoá, thay đổi liệu hay yêu cầu nhận liệu từ CSDL - Ứng dụng: Các chương trình, phần mềm cho phép người dùng truy cập liệu coi ứng dụng hệ thống CSDL - Hệ quản trị CSDL: Hệ quản trị CSDL phần mềm ứng dụng dùng để tạo mới, bảo trì đảm bảo truy cập có điều khiển đến CSDL người dùng - Dữ liệu: Là thông tin liên quan đến ứng dụng, lưu trữ tập tin CSDL - Hệ thống chủ: Hệ thống chủ hệ thống máy tính quản lý tập tin Nó thực việc truy cập tập tin liệu Vai trò hệ quản trị CSDL yêu cầu phương tiện lưu trữ tập tin phục vụ ứng dụng Do vậy, hệ quản trị CSDL phần mềm nằm phần mềm hệ thống chủ - Cơ sở liệu: CSDL tập liệu liên quan logic với nhau, thiết kế để phục vụ nhu cầu thông tin nhiều người dùng tổ chức - Giao diện người dùng: Giao diện người dùng hay giao diện người sử dụng phương tiện cho phép người dùng thao tác với thành phần hệ thống CSDL - Người quản trị CSDL: Người quản trị CSDL người có quyền điều khiển tập trung toàn hệ thống, liệu lẫn chương trình truy xuất liệu Họ chun cơng nghệ thơng tin, có nhiệm vụ tạo CSDL cài đặt điều khiển kỹ thuật - Người phát triển hệ thống: Những người phân tích viên hệ thống, lập trình viên gọi người phát triển hệ thống 1.4 HỆ QUẢN TRỊ CSDL Hệ quản trị CSDL hệ thống phần mềm nhằm cung cấp cho người sử dụng môi trường vừa thích hợp, vừa hiệu để khai thác CSDL theo chức mơ tả, lưu trữ, tìm kiếm, cập nhật liệu Như vậy, HQTCSDL phải thiết kế cho quản trị khối lượng lớn liệu Công việc quản trị bao gồm: - Định nghĩa cấu trúc để lưu trữ thông tin - Cung cấp chế để sử dụng thông tin - Tạo an toàn cho liệu dù có bất trắc hệ thống 1.5 CÁC GIAI ĐOẠN PHÁT TRIỂN CỦA HỆ THỐNG CSDL 1.5.1 Lịch sử hệ thống CSDL Các hệ thống CSDL giới thiệu vào năm 60 kỉ XX phát triển liên tục hàng chục năm qua Một số công nghệ CSDL phát triển lâu dài mơ hình quan hệ có từ năm 1970 hệ thống CSDL theo mơ hình quan hệ có ý nghĩa thương mại vào năm 80 Các hệ thống CSDL khắc phục nhiều hạn chế hệ thống xử lý tệp truyền thống Để đánh giá đạt thời gian qua hệ thống CSDL, người ta ln nhìn nhận việc phát triển, tiến hố theo mục đích: - Cần thiết đảm bảo độc lập chương trình liệu, giảm chi phí bảo trì - Mong muốn quản lý nhiều loại lịêu cấu trúc liệu phức tạp - Yêu cầu truy cập dễ dàng đến liệu cho dù người dùng chuyên viên công nghệ thông tin hay không Từ năm 1960-1970: Các hệ thống xử lý tệp thơng dụng giai đoạn Tuy nhiên, hệ thống CSDL giới thiệu, dù cồng kềnh Thực ra, mơ hình phân cấp mơ hình mạng tạo nên hệ thứ cho hệ thống CSDL Từ năm 1970-1980: Các hệ thống theo hệ thứ phát huy có nhiều sản phẩm thương mại Tuy nhiên, hai mơ hình phân cấp mạng dùng rộng rãi chúng có nhược điểm như: Các thủ tục tìm kiếm ghi, người ta khó truy cập liệu; tính độc lập chương trình liệu chưa thật tốt; chưa có sở lý thuyết hồn thiện Từ năm 1980-1990: Mơ hình quan hệ E.F.Codd khắc phục nhược điểm hai mơ hình CSDL Mơ hình CSDL quan hệ tạo nên hệ thống CSDL hệ thứ hai Các hệ thống quan hệ bán nhiều thị trường chiếm ưu so với hệ thống CSDL khác Người ta dùng ngôn ngữ SQL ngôn ngữ khác để truy cập liệu Từ năm 1990-2000: Những năm này, người ta sử dụng CSDL năm 80 kỷ XX để quản trị liệu với cấu trúc phức tạp liệu kế toán tài chính, liệu đa phương tiện (âm thanh, đồ hoạ, hình ảnh) Trong năm 90, vấn đề hướng đối tượng đề cập ngành CSDL mà nhiều ngành tin học khác Tuy nhiên chẳng có hệ thống CSDL hướng đối tượng xuất thị trường Từ năm 2000 trở đi: Trong chục năm tới, công nghệ CSDL có đột phá đáng ngạc nhiên Tuy nhiên người ta vạch hướng vững chắc: - Các kiểu liệu phức tạp quản lý tốt Chúng gồm liệu đa chiều, phù hợp với ứng dụng kho liệu - Phát triển tiếp tục máy chủ cực lớn Người ta dựa vào hệ quản trị CSDL quan hệ hướng đối tượng để thiết lập CSDL có khả quản lý nhiều loại liệu đa dạng, thuận tiện cho ứng dụng CSDL mạng Internet - Các CSDL phân tán trở thành thực Do tổ chức phân bố liệu nhiều địa điểm xa không gian - Việc lưu trữ liệu theo địa nội dung thông dụng Điều cho phép người dùng truy cập liệu theo nội dung liệu, mà không cần biết cách thức truy cập liệu - Các cơng nghệ CSDL, trí tuệ nhân tạo dịch vụ thông tin tạo nên môi trường truy cập liệu dễ dàng hơn, chẳng hạn giao tiếp ngôn ngữ tự nhiên - Mơ hình phân cấp mơ hình mạng coi đại diện cho hệ thống CSDL hệ thứ Mơ hình quan hệ đại diện cho hệ thống CSDL hệ thứ hai Các mơ hình CSDL hệ sau kể gồm mơ hình hướng đối tượng, mơ hình phân tán, mơ hình suy diễn 1.5.2 Hệ thống xử lý tệp cổ điển Trong hệ thống xử lý tệp trước phận công ty tổ chức lưu trữ liệu theo tập tin độc lập, khơng có liên quan với Các ứng dụng phận phát triển riêng lẽ truy cập đến liệu riêng phận đó, khơng có mơ hình tổng thể cho tồn cơng ty Hệ thống nhanh thao tác thủ cơng nhiều hạn chế - Dễ xảy tình trạng liệu bị trùng lắp, phán tán, thiếu quán Ví dụ: Trong trường đại học, kết học tập sinh viên lưu phòng Đào tạo, đồng thời lưu phòng Tài vụ để vào mà phát học bổng (gây dư thừa liệu) Nếu kết học tập sinh viên bị sụt giảm, khơng nhận học bổng phòng tài vụ khơng cập nhật kịp thời thơng tin nên tiếp tục trì học bổng cho em (do liệu không quán) - Số lượng liệu tăng nhanh - Sự chia liệu bị hạn chế - Chương trình ứng dụng làm chủ cách tổ chức số liệu nên bị phụ thuộc liệu Hơn nữa, phí tổn viết bảo trì chương trình cao - Các mối liên hệ thông tin không trọng 1.5.3 Mơ hình phân cấp Mơ hình phân cấp hay mơ hình CSDL dạng tổ chức theo cấu trúc từ xuống giống lộn ngược Mỗi nút tương ứng với kiểu liệu, có nhiều trường, mơ tả thực thể nhánh tạo nên liên kết kiểu liệu với kiểu liệu khác Mỗi nút có nút cha nhiều nút con, trừ nút gốc khơng có cha Ví dụ: PHỊNG NHÂN VIÊN CHUYÊN MÔN DỰ ÁN CẤP DƯỚI THIẾT BỊ Hình 1.1: Một ví dụ mơ hình phân cấp Tuy nhiên, mơ hình thể quan hệ 1-n, tức mô tả trường hợp nút cha có nhiều nút phòng có nhiều nhân viên hay phòng có nhiều dự án, trường hợp ngược lại khơng Chẳng hạn dự án mà thuộc nhiều phòng dự án phải lưu nhiều nơi khác Điều gây dư thừa liệu lãng phí khơng gian lưu trữ Điểm bật thủ tục truy xuất đến đối tượng mơ hình phân cấp đường dẫn từ gốc đến phần tử cần xét phân cấp 1.5.4 Mơ hình mạng Mơ hình mạng biểu diễn đồ thị có hướng Mỗi nút nối với nút để biểu diễn liên kết 1-n thông qua trỏ liên kết Sự khác hệ thống mạng hệ thống phân cấp mơ hình mạng khơng ràng buộc số hướng liên kết thiết lặp nút 10 Một trigger định nghĩa bảng xử lý trigger sử dụng nhiều bảng khác Có thể xử lý quay lui thao tác thực lệnh ROLL TRANSACTION Khi thực thi trigger, SQL Server tạo bảng INSERTED DELETED Đây bảng tạm, chứa nhớ Các bảng dùng để khôi phục lại phần liệu thay đổi (roll back) Hai bảng cục cho trigger, có cấu trúc giống bảng mà trigger định nghĩa tồn thời gian trigger xử lý - Inserted: Chứa dòng insert update vào bảng - Deleted: Chứa dòng vừa bị xoá khỏi bảng Chú ý: Thao tác Update = delete dòng cũ + insert dòng 5.4.3 Các trường hợp sử dụng trigger Có thể sử dụng trigger trường hợp sau: - Xử lý ràng buộc tồn vẹn liệu - Kiểm sốt liệu có thay đổi giá trị bảng - Xử lý liệu nhiều dòng - Tạo thơng báo lỗi - Phát sinh giá trị tính tốn 5.4.4 Tạo trigger Cú pháp CREATE TRIGGER tên_trigger ON tên_bảng AS Lệnh_trigger Ý nghĩa FOR | AFTER: Trigger gọi thực thi sau thao tác insert | update | delete thực thành cơng - Các dòng thêm đồng thời chứa bảng liệu bảng inserted - Các dòng bị xố nằm bảng deleted INSTEAD OF: Trigger gọi thực thi trước thực thao tác insert| update| delete bảng 63 - Các dòng thêm chứa bảng inserted - Các dòng bị xố nằm đồng thời bảng deleted bảng liệu Chú ý: Table1 có trigger1, table2 có trigger2, thao tác table1 có liên quan đến table2 trigger2 tự động thực thi, gọi trigger lồng (Nested Trigger) Ví dụ: Cài đặt ràng buộc “Không tồn khoa tên” CREATE TRIGGER KTTenKhoa ON khoa AFTER INSERT,UPDATE AS BEGIN IF update(tenK) BEGIN DECLARE @ten NVARCHAR(30) SET @ten= (SELECT tenK FROM inserted) DECLARE @count INT SET @count = (SELECT count(*) FROM Khoa WHERE tenk=@ten) IF (@count >1) BEGIN raiserror('Ten khoa da ton tai',16,1) rollback tran END END END 5.4.5 Vô hiệu hố trigger Trigger cần bị vơ hiệu hóa số trường hợp: - Trigger gây lỗi trình xử lý CSDL - Quá trình nhập hay khôi phục liệu không thỏa trigger Vô hiệu hóa trigger lệnh DISABLE TRIGGER có cấu trúc sau: DISABLE TRIGGER tên_trigger ON tên_đối_tượng | DATABASE | SERVER Ví dụ: Vơ hiệu hố trigger KTTenKhoa Disable trigger ON Khoa KTTenKhoa 64 5.4.6 Hiệu lực hóa trigger Hiệu lực hoá trigger lệnh: ENABLE TRIGGER tên_trigger ON tên_đối_tượng | DATABASE | SERVER Ví dụ: Hiệu lực hố trigger KTTenKhoa Enable trigger KTTenKhoa ON Khoa 5.5 THAO TÁC TẠO CONSTRAINT Tương tự Trigger, constraint dùng để trì tính qn liệu, đảm bảo liệu phù hợp với qui định theo yêu cầu tốn Constraint giúp ngăn chặn liệu khơng hợp lệ cho phép liệu hợp lệ lưu vào CSDL Thường ràng buộc đơn giản dùng constraint để mô tả, ràng buộc phức tạp dùng trigger thực Constraint khai báo mức cột mức bảng Có thể tạo constraint trường hợp sau: - Cùng với thời điểm tạo bảng hay tạo constraint bên lệnh Create table Tuy nhiên, phần không bàn sâu phạm vi tài liệu - Tạo constraint sau tạo bảng 5.5.1 Tạo Constraint ALTER TABLE tên_bảng ADD [CONSTRAINT tên_constraint] loại_constraint tham_số Ý nghĩa: CONSTRAINT tên_constraint: Nếu phần bị bỏ qua tên constraint hệ thống tự đặt Loại_constraint: Có thể trường hợp sau: - UNIQUE (danh_sách_cột): Dùng để đảm bảo liệu nhập vào danh_sách_cột Ví dụ: Thiết lập trường email bảng register phải alter table register add constraint pk_email unique(email) - PRIMARY KEY (danh_sách_cột_khóa_chính): Thiết lập khóa cho bảng Ví dụ: Thiết lập khóa cho bảng sinh viên trường masv alter table sinhvien add constraint pk_kc_masv primary key(masv) - FOREIGN KEY (danh_sách_cột_khóa_ngoại) REFERENCES bảng_tham_chiếu (danh_sách_cột_tham_chiếu): Dùng để tạo mối liên kết hai bảng 65 Ví dụ: Tạo mối liên kết bảng sinh viên (sinhvien) khoa alter table sinhvien add foreign key(mak) references khoa(mak) - CHECK (biểu_thức_luận_lý): Dùng để kiểm tra miền giá trị cho cột Ví dụ: Tạo constraint kiểm tra trường điểm bảng Kết phải có giá trị từ đến 10 alter table ketqua add constraint pk_diem check(diem>=0 and diem=50MAT="02"] b (D:(SNV>=50))[MADL, TD, TT] c (D:(SNV>=50MAT="02"))[MADL,TD] d ((D*T):(SNV>=50MAT="02"))[MADL,TD,TT] Cho CSDL QLBANHANG, liệt kê mã tên đại lý thuộc tỉnh có số lượng đại lý từ 10 đến 20 đại số quan hệ a ((D*T):(MADL,TD))[SNV>=20MAT="02"] b (T*D):(SoDL between 10  20)[MADL,TD] c (D:(SoDL>=10SoDL=10SoDL=5000]):(MASP,TS) b (S:(DG>=5000))[MASP,TS] c (S-(DG>=5000))[MASP,TS] d (DG:(S>=5000))[MASP,TS] 12 Cho CSDL QLBANHANG, liệt kê tên đại lý với tên số lượng sản phẩm có đơn giá từ 5000 trở lên đại lý thuộc tỉnh ‘02’ bán đại số quan hệ a ((((T*D)*B)*S):(DG>5000  MAT='02'))[TD,TS,SoSP] b (((D*B)*S):(DG>=5000  MAT='02'))[TD,TS,SoSP] c (((D*B)*S)[DG>=5000  MAT='02']):(TD,TS,SoSP) d (((D*S)*B):(DG>=5000  MAT='02'))[TD,TS,SoSP] 13 Cho CSDL QLBANHANG, liệt kê mã, tên đại lý, tên tỉnh có số nhân viên từ 50 trở lên đại số quan hệ a (D:(SNV>=50))[MADL,TD,TT] b ((D*T):(MADL,TD,TT))[SNV>=50] c ((D*T):(SNV>=50))[MADL,TD,TT] d ((D*T):(SNV>=50))[D.MADL,TD] 69 14 Cho CSDL QLBANHANG, liệt kê tên số lượng sản phẩm mà đại lý A bán đại số quan hệ a (((D*S)*B):(TD='A'))[TS,SoSP] b ((D*B):(TD='A'))[TS,SoSP] c (((D*B)*S):(TD='A'))[TS,SoSP] d (((D*B)*S):(TD='A')):(TS,SoSP) 15 Cho CSDL QLBANHANG, liệt kê tên đại lý có bán sản phẩm S1 S2 đại số quan hệ a (((D*B)*S):(TS='S1'  'S2'))[TD] b (((D*B)*S):(TS='S1')[TD]  (((D*B)*S):(TS='S2')[TD] c ((D*S):(TS='S1'  TS='S2'))[TD] d (((D*B)*S):(TS='S1'  TS='S2'))[TD] PHẦN SQL 16 Cho CSDL QLBANHANG, xóa đại lý có tổng số lượng bán 100 SQL a Delete From D,B Where D.MADL=B.MADL and sum(SoSP)3 c Select S.MASP, TS from S, B group by S.MASP having count(MADL)>3 d Select S.MASP, TS from S, B where S.MASP = B.MASP and count(MADL)>3 23 Cho CSDL QLBANHANG, cho biết mã tỉnh, tên tỉnh chưa có đại lý SQL a Select MAT, TT From T,D Where T.MAT = D.MAT and MAT Not In (Select MAT From D) b Select MAT, TT From T Where MAT Not In (Select MAT From D) c Select MAT, TT From D Where MAT Not In (Select MAT From T) d Select MAT, TT From T Where MAT =0 24 Cho CSDL QLBANHANG, liệt kê mã, tên đại lý bán nhiều loại sản phẩm SQL a Select top D.MADL, TD From D,B Where D.MADL=B.MADL Group by D.MADL, TD Order by Count(MASP) Desc b Select top D.MADL, TD From D,B Where D.MADL=B.MADL Group by D.MADL, TD Order by Sum(MASP) c Select D.MADL, TD, max(count(MASP)) From D,B Where D.MADL=B.MADL d Select top D.MADL, TD From D,B Where D.MADL=B.MADL Order by Count(MASP) Desc 25 Cho CSDL QLBANHANG, cho biết mã, tên đại lý có số nhân viên từ 50 trở lên thuộc tỉnh 02 SQL a Select MADL,TD,TT From D,T Where D.MAT=T.MAT and MAT='02' b Select MADL,TD From D Where SNV>=50 and MAT='02' c Select MADL,TD,TT From D,T Where D.MADL=T.MAT and SNV>=50 d Select T.MADL,TD From D,T Where D.MAT=T.MAT and MAT="02" 71 26 Cho CSDL QLBANHANG, liệt kê mã tên đại lý thuộc tỉnh có số lượng đại lý từ 10 đến 20 SQL a Select MADL, TD From D,T Where D.MAT=T.MAT and SoDL>=10 and SoDL=10 and =50 group by MADL,TD 27 Cho CSDL QLBANHANG, liệt kê mã, tên đại lý, tên tỉnh có số nhân viên từ 50 trở lên SQL a Select MADL,TD,TT From D,T Where D.MADL=T.MADL and SNV>=50 b Select MADL,TD,TT From D.MAT=T.MAT and SNV>=50 Where D,T c Select MADL,TD,TT From D,T Where D.MADL=T.MAT and SNV>=50 d Select MADL,TD,TT From D,T Where D.MAT=T.MAT and SNV>=50 28 Cho CSDL QLBANHANG, cho biết mã tên sản phẩm bán với tổng số lượng nhiều SQL a Select S.MASP,TS From S,B Where S.MASP=B.MASP Group by S.MASP,TS Having Sum(SoSP)>=All (Select Max(Sum(SoSP)) From B Group by MASP) b Select S.MASP,TS From S,B Where S.MASP=B.MASP and SoSP>=All (Select SoSP From B) c Select S.MASP,TS From S,B Where S.MASP=B.MASP Group by S.MASP,TS Having Sum(SoSP)>=All (Select Sum(SoSP) From B Group by MASP) d Tất sai 29 Cho CSDL QLBANHANG, liệt kê tên đại lý, tên sản phẩm số lượng sản phẩm có đơn giá từ 5000 trở lên đại lý thuộc tỉnh ‘02’ SQL a Select TD,TS,SoSP From D,S,B Where D.MADL=B.MADL and B.MASP=S.MASP and DG>=5000 and MAT='02' b Select TD,TS,SoSP From D,S,B Where B.MASP=S.MASP and D.MADL=B.MADL and (DG>=5000 and MAT='02') c Select TD,TS,SoSP From D,S,B Where B.MADL=D.MADL and S.MASP=B.MASP and (DG>=5000 and MAT='02') d Tất 30 Cho CSDL QLBANHANG, liệt kê mã tên đại lý có bán sản phẩm mà không bán sản phẩm SQL a Select MADL,TD From D,B Where D.MADL=B.MADL and MASP='1' and MASP'2' b Select MADL,TD From D Where MADL In (Select MADL From B Where MASP='1') and MADL Not In (Select MADL From B Where MASP='2') c Select MADL,TD From D Where MADL NOT In (Select MADL From B Where MASP='1' and MASP'2') d Select MADL,TD From D Where MASP NOT In (Select MASP From B Where MASP='1' and MASP'2') 72 31 Cho CSDL QLBANHANG, cho biết tổng số lượng sản phẩm bán sản phẩm SQL a Select S.MASP,TS,Count(SoSP) From S,B Where S.MASP=B.MASP Group by S.MASP,TS b Select S.MASP,TS,Sum(SoSP) From S,B Where S.MASP=B.MASP c Select S.MASP,TS,Sum(SoSP) From S,B Where S.MASP=B.MASP Group by S.MASP,TS d Select S.MASP,TS,Sum(SoSP) From S,B Where S.MASP=B.MASP Group by MADL 32 Cho CSDL QLBANHANG, liệt kê mã tên sản phẩm có đơn giá từ 5000 trở lên SQL a Select MASP,TS Where DG>=5000 b Select MASP,TS Where S From DG>=5000 c Select MASP,TS From S Where DG=5000 d Select MASP,TS From S Where DG>=5000 33 Cho CSDL QLBANHANG, liệt kê mã tên sản phẩm bán với tổng số lượng nhiều SQL a Select Top S.MASP,TS From S,B Where S.MASP=B.MASP Group by S.MASP,TS Order by Sum(SoSP) b Select Top S.MASP,TS From S,B Where S.MASP=B.MASP Group by S.MASP,TS Order by Sum(SoSP) desc c Select Top S.MASP,TS From S,B Where S.MASP=B.MASP Order by Sum(SoSP) desc d Select Top S.MASP,TS From S,B Where S.MASP=B.MASP Order by SoSP desc 34 Cho CSDL QLBANHANG, liệt kê mã tên sản phẩm đại lý D1 bán với tổng số lượng nhiều SQL a Select top S.MASP,TS From S,B Where S.MASP=B.MASP and MADL='D1' Order by sum(SoSP) desc b Select top S.MASP,TS From S,B Where S.MASP=B.MASP and MADL='D1' group by MADL Order by sum(SoSP) desc c Select top S.MASP,TS From S,B Where S.MASP=B.MASP and MADL='D1' Order by SoSP desc d Select S.MASP,TS From S,B Where S.MASP=B.MASP and MADL='D1' group by MADL having max(sum(SoSP)) 35 Cho CSDL QLBANHANG, liệt kê mã tên đại lý thuộc tỉnh có số đại lý từ 10 trở lên ngôn ngữ SQL a Select MADL,TD From D,T Where D.MADL=T.MADL and SoDL>=10 b Select MADL,TD From D Where MAT In (Select MAT From D Where count(SoDL)>=10) c Select MADL,TD From D Where MAT In (Select MAT From D Group by MAT Having count(SoDL)>=10) d Tất sai 73 36 Cho CSDL QLBANHANG, liệt kê mã tên tỉnh có đại lý SQL a Select T.MAT, TT From T,D Where T.MAT=D.MAT and SoDL>5 Group by T.MAT, TT b Select T.MAT, TT From T,D Where T.MAT=D.MAT Group by T.MAT, TT Having count(MADL)>5 c Select T.MAT, TT From T,D Where T.MAT=D.MAT Group by T.MAT, TT Having SoDL>5 d Select T.MAT, TT From T,D Where T.MAT=D.MAT Group by T.MAT, TT Having sum(SoDL)>=5 37 Cho CSDL QLBANHANG, liệt kê tên số lượng sản phẩm mà đại lý A bán SQL a Select TS,SoSP From D,B,S Where D.MASP=B.MASP and B.MADL=S.MADL and TD='A' b Select TS,SoSP From D,B Where D.MADL=B.MADL and TD='A' c Select TS,SoSP From D,B,S Where MADL.D=MADL.B and MASP.B=MASP.S and TD='A' d Select TS,SoSP From D,B,S Where D.MADL=B.MADL and B.MASP=S.MASP and TD='A' 38 Cho CSDL QLBANHANG, liệt kê mã tên đại lý thuộc TP HCM SQL a Select T.MADL,TD From D,T Where D.MAT=T.MAT and TT='TP HCM' b Select MADL,TD From D Where MAT='TP HCM' c Select MADL,TD From D,T Where D.MAT=T.MAT and TT='TP HCM' d Select MADL,TD From D,T Where D.MADL=T.MADL and TT='TP HCM' 39 Cho CSDL QLBANHANG, liệt kê mã đại lý, tên đại lý, tên sản phẩm đại lý có bán sản phẩm S1 S2 ngơn ngữ SQL a Select D.MADL,TD,TS From D,B,S Where D.MADL=B.MADL and B.MASP=S.MASP and (TS='S1' Or 'S2') b Select D.MADL, TD, TS From D,B,S Where D.MADL=B.MADL and B.MASP=S.MASP and TS='S1' and D.MADL IN (Select D.MADL From D,B,S Where D.MADL=B.MADL and B.MASP=S.MASP and TS='S2') c Select D.MADL,TD,TS From D,B,S Where D.MADL=B.MADL and B.MASP=S.MASP and (TS='S1' Or TS='S2') d Select D.MADL, TD, TS From D,B,S Where D.MADL=B.MADL and B.MASP=S.MASP and TS='S1' and D.MADL NOT IN (Select D.MADL From D,B,S Where D.MADL=B.MADL and B.MASP=S.MASP and TS='S2') 40 Cho CSDL QLBANHANG, liệt kê mã tên sản phẩm chưa có đại lý bán ngôn ngữ SQL a Select MASP,TS From S Where MASP Not In (Select MASP From B) b Select MASP,TS From B Where MASP Not In (Select MASP From S) c Select MASP,TS From S,B WhereS.MASP=B.B# and MASP Not In (Select MASP From B) d Select MASP,TS From S Where SoSP=0 41 Cho CSDL QLBANHANG Với đại lý, cho biết tổng số loại sản phẩm bán gồm mã đại lý, tên đại lý, tổng số sản phẩm SQL a Select D.MADL, TD, Sum(SoSP) From D,B Where D.MADL=B.MADL Group by MADL, TD b Select D.MADL, TD, Count(MASP) From D,B Where MADL.D=MADL.B Group by MADL c Select D.MADL, TD, Count(MASP) From D,B Where D.MADL=B.MADL Group by MADL, TD d Select D.MADL, TD, Sum(MASP) From D,B Where D.MADL=B.MADL 74 PHẦN RÀNG BUỘC TOÀN VẸN 42 Cho CSDL QLBANHANG, ràng buộc “SNV không bé 1” thuộc loại nào? a Miền giá trị b Liên thuộc tính c Liên d Tham chiếu 43 Cho CSDL QLBANHANG, chọn phát biểu nội dung cho ràng buộc “SNV không bé 1” a x  D, x.SNV >1 b x  D, x.SNV =1 d x  D, x.SNV >=1 44 Cho CSDL QLBANHANG, ràng buộc “Mỗi đại lý phải có mã nhất” thuộc loại nào? a Miền giá trị b Liên c Tham chiếu d Liên thuộc tính 45 Cho CSDL QLBANHANG, chọn phát biểu nội dung cho ràng buộc “Mỗi đại lý phải có mã nhất” a x,yD, x.MADL = y.MADL b x,yD, x.MAT  y.MAT c x,yD, x.MADL  y.MADL d x,yD, x.MAT = y.MAT 46 Cho CSDL QLBANHANG ràng buộc R “Thuộc tính SoDL quan hệ T phải số lượng đại lý thuộc tỉnh này” Vậy thêm quan hệ D có ảnh hưởng đến ràng buộc khơng? a – (*) b + c +(MADL,MASP) d – 47 Cho CSDL QLBANHANG, ràng buộc “Thuộc tính SoDL quan hệ T phải số lượng đại lý thuộc tỉnh này” thuộc loại nào? a Liên liên quan hệ b Liên thuộc tính liên quan hệ c Tham chiếu d Thuộc tính tổng hợp 48 Cho CSDL QLBANHANG ràng buộc “Thuộc tính SoDL quan hệ T phải số lượng đại lý thuộc tỉnh này” Vậy sửa quan hệ D có ảnh hưởng đến ràng buộc hay không? a – b +(SoSP) c +(MADL,MASP) d +(MAT) 49 Cho CSDL QLBANHANG ràng buộc “Thuộc tính SoDL quan hệ T phải số lượng đại lý thuộc tỉnh này” Vậy sửa quan hệ T có ảnh hưởng đến ràng buộc hay không? a – b +(MAT) c +(SoDL) 75 d Tất sai 50 Cho CSDL QLBANHANG, chọn phát biểu nội dung cho ràng buộc “Thuộc tính SoDL quan hệ T phải số lượng đại lý thuộc tỉnh này” a x T, x.SoDL = sum(y  D, y.MAT = x.MAT) b x T, x.SoDL = count(x.SoDL) c x T, y  D , x.SoDL = count(MADL) d x T, x.SoDL = count(y  D, y.MAT = x.MAT) 51 Cho CSDL QLBANHANG, ràng buộc “Đại lý cần phải thuộc tỉnh” thuộc loại nào? a Tham chiếu b Liên c Liên liên quan hệ d Liên thuộc tính liên quan hệ 52 Cho CSDL QLBANHANG, chọn phát biểu nội dung cho ràng buộc “Đại lý cần phải thuộc tỉnh” a x  D, y  T, x.MAT = y.MAT b x  T, y  D, x.MAT = y.MAT c x  D, y  T, x.MAT = y.MAT d x  D, y  T, x.MAT = y.MAT 76 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Lê Hoài Bắc, Nguyễn Xuân Huy (2003), “Bài tập sở liệu”, NXB Thống Kê [2] Lê Tiến Vương (2000), “Nhập môn sở liệu quan hệ”, NXB Thống Kê [3] Nguyễn Đăng Tỵ, Đỗ Phúc (2009), “Giáo trình Cơ sở liệu”, NXB Đại học quốc gia TP Hồ Chí Minh [4] Nguyễn Thị Ngọc Mai (2007), “Lý thuyết Cơ sở liệu”, tập 1, NXB Lao Động Xã Hội [5] Phan Tấn Quốc (2005), “Giáo trình Cơ sở liệu”, Trường Cao đẳng Kỹ thuật Cao Thắng [6] Trần Thị Bạch Huệ (2014), “Đề cương chi tiết học phần Cơ sở liệu ngành Tin học ứng dụng”, Khoa Công nghệ thông tin - Trường Cao Đẳng Bến Tre Tiếng Anh [7] Jeffrey D.Ullman (1989), “The principles of Database and Knowledge base systems”, vol 1, 2, Computer Science Press Nguồn từ Internet [8] Biền Văn Minh (2011), “Đổi biên soạn giáo trình môn học Đại học đáp ứng đào tạo theo hệ thống tín chỉ”, http://hueuni.edu.vn/csdlkhoahoc/index.php/congtrinhkhoahoc/chitiet/10998, trích dẫn 17/10/2013 77 ... TÀI LIỆU THAM KHẢO .76 LỜI NÓI ĐẦU Tài liệu biên soạn theo đề cương chi tiết học phần Cơ sở liệu (CSDL) ngành Tin học ứng dụng theo phương thức đào tạo tín Trường Cao Đẳng Bến Tre Tài. .. CSDL - Phân biệt liệu CSDL - Phân tích thuận lợi bất lợi tiếp cận CSDL - Phát biểu nhiệm vụ hệ quản trị CSDL 1.1 MỘT SỐ KHÁI NIỆM CƠ BẢN 1.1.1 Định nghĩa sở liệu Cơ sở liệu tập liệu tổ chức nhằm... 27 3.3 CÁC LỆNH CẬP NHẬT DỮ LIỆU .28 3.3.1 Sửa liệu .28 3.3.2 Xoá liệu 28 3.3.3 Thêm liệu 28 3.4 CÁC LỆNH TRUY VẤN DỮ LIỆU .29 3.4.1 Truy vấn chọn

Ngày đăng: 15/11/2018, 15:31

TỪ KHÓA LIÊN QUAN

w