Giáo trình cơ sở dữ liệu 1

76 1.5K 0
Giáo trình cơ sở dữ liệu 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

KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN HỆ THỐNG THÔNG TIN VŨ ĐỨC THÁI NGÔ LAN PHƯƠNG, PHẠM BÍCH TRÀ, NGUYÊN HŨU THÁI, ĐỖ THỊ BẮC, LÊ THU TRANG GIÁO TRÌ NH CƠ SỞ DỮ LIỆU NĂM 2008 Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin MỘT SỐ CÁC QUY ƯỚC R: quan hệ r: Lược đồ quan hệ sơ đồ quan hệ A, B, C , tên thuộc tính đơn X, Y, Z, tập hợp thuộc tính t, t1, t2,… giá trị t.A: giá trị t ứng với thuộc tính A F: tập phụ thuộc hàm f: kí hiệu phụ thuộc hàm Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin CHƯƠNG NHẬP MÔN CƠ SỞ DỮ LIỆU 1.1 Giới thiệu thống quản lý tệp truyền thống Hệ thống quản lý tệp truyền thống cho phép ta tạo tệp, truy cập xử lý thông tin tệp thông qua chương trình ứng dụng Các phần mềm ứng dụng viết ngôn ngữ lập trình đa PASCAL, C Giả sử viết chương trình quản lý sách cho thư viện, ta phải thực công việc sau: - Viết chương trình tạo tệp quản lý sách có cấu trúc: SACH(TÊN sách, tên tác giả, tên nhà xuất bản, ) - Chương trình tạo tệp quản lý việc cho mượn có cấu trúc: MUON (Tên sách, tên độc giả, ngày mượn, ) - Chương trình tạo tệp quản lý độc giả có cấu trúc: DOCGIA(TÊN độc giả, số thẻ mượn, nơi công tác, ) - Chương trình tạo tệp quản lý số sách tồn có cấu trúc: SACHTON (TÊN sách, tên tác giả, tên nhà xuất bản, năm xuất ) Nhân xét: Trên tệp có nhiều thông tin trùng lặp sách nên gây nội số vấn đề sau: - Nhập nhằng: Do mô tả không rõ ràng truy cập sách với tên ta gặp nhiều trùng tên - Không bền vững: Do việc lưu liệu nhiều nơi nên muốn thay đổi ta phải tận thay hết cho liệu nơi bỏ sót gây sai lạc thông tin - Lãng phí: Có thông tin ta phải lưu trữ nhiều lần tốn nhớ, thời gian công sức nhập liệu 1.2 Định nghĩa sở liệu Cơ sở liệu hệ thống thông tin có cấu trúc lưu trữ thiết bị lưu trữ thông tin (như băng từ, địa từ…) , để thoả mãn yêu cầu khai thác thông tin đồng thời nhiều người sử dụng hay nhiều chương trình ứng dụng với mục đích khác 1.3 Hệ sở liệu 1.3.1 Các thành phần hệ sở liệu Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin Hình 1.1: Các thành phần hệ sở liệu a) Người sử dụng - Người sử dụng cuối (End - User) người phép truy nhập vào sử dụng sở liệu thông qua thiết bị đầu cuối (Terminal) Thông thường máy tính cá nhân Mỗi enduser có quyền hạn phạm vi định sở liệu (như đọc, ghi, copy ) - Người viết chương trình ứng dụng: Là người viết phần mềm phục vụ cho việc thực chức hệ thống Thường chuyên gia tin học kết hợp với nhà quản lý - Người quản trị sở liệu: Là một, hay nhóm người có quyền hạn cao hệ thống có nhiệm vụ điều khiển toàn hoạt động hệ sở liệu b) Các ứng dụng Các thao tác cần thiết truy cập vào sở liệu tạo lập, xử lý, cập nhật liệu c) Hệ quản trị sở liệu Một hệ quản trị sở liệu phần mềm điều khiển truy nhập người sử dụng CSDL Hiện có số hệ quản trị sở liệu thông dụng FOXPRO, ACCESS, SQL SERVER, ORACLE d) Phần cứng Phần cứng thiết bị phương tiện sử dụng để lưu trữ truy cập vào sở liệu 3.2 Cấu trúc hệ sở liệu Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin Hình 1.2: Cấu trúc hệ sở liệu Cấu trúc hệ sở liệu gồm ba mức: + Mức ngoài: Là mức sát với người sử dụng nhất, cách nhìn, quan niệm người sử dụng sở liệu mức khái niệm Khả truy nhập tuỳ thuộc vào quyền hạn USER + Mức logic (CSDL mức khái niệm): Là tập tất liệu biểu diễn dạng trừu tượng sở liệu vật lý + Mức vật lý: Là tập tất liệu biểu diễn theo cấu trúc đó, lưu thiết bị nhớ thứ cấp (như đ a từ, băng từ ) Khung nhìn User tập tất liệu mà User truy nhập vào, phận CSDL ứng với người 1.3.3 Phân loại hệ sở liệu a) Các hệ tập trung Các hệ tập trung hệ mà CSDL lưu trữ lại nơi định Bao gồm hệ sở sau: + Hệ sở liệu cá nhân (Personal Database) Mô hình hệ sở liệu nhỏ gồm máy tính cá nhân làm nhiệm vụ đơn lẻ với quy mô nhỏ + Hệ sở liệu trung tâm (Central Database) Hệ sở liệu trung tâm hệ đa người dùng từ thiết bị đầu cuối (terminal) có hình phím để trao đổi thông tin Mọi xử lý, tính toán thực trung tâm với máy tính mạnh xử lý nhiều yêu cầu Một hệ máy tính trung tâm có cố, toàn hệ thống ngừng hoạt động Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin Hình l.3: Hệ sở liệu a) Personal DB; b) Central DB + Hệ sở liệu Client/server (Client/server Database) Cơ sở liệu lưu trữ máy chủ, nơi quản lý sở liệu (gọi Server) có nhiều máy trạm loại Clientl kết nối sử dung sở liêu b) Các hệ sở liệu phân tán Hệ sở liệu phân tán hệ CSDL CSDL phân bố thành nhiều CSDL địa phương, lưu trữ máy mạng máy tính Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin Phân loại: hệ CSDL phân tán có hai loại + Hệ + Hệ không Nếu hệ CSDL địa phương biểu diễn theo cách giống nhau, mô hình giống nhau, gọi hệ nhất, ngược lại gọi hệ không 3.4 Những ưu điểm việc xây dựng hệ sở liệu + Đảm bảo độc lập liệu: Dữ liệu độc lập với chương trình làm cho liệu sử dụng rộng rãi thuận lợi + Giảm thiểu việc dư thừa liệu: Khác với hệ thống tệp, hệ thống sở liệu tổ chức theo cấu trúc thống nhất, hợp lý hạn chế việc lưu trữ nhiều nơi + Đảm bảo tính quán toàn vẹn liệu: Do dư thừa nên hạn chế dị thường thay đổi, cập nhật + Tăng tính dùng chung: Cơ sở liệu có khả cho nhiều người truy cập sử dụng người nhìn vào sở liệu riêng không bị ảnh hưởng người khác + Tăng khả phát triển ứng dụng: Do có mở rộng giao lưu nên khả sáng lạo cải tiến thuận lợi + Tính chuẩn hoá cao + Chất lượng liệu cải thiện + Giảm bớt chi phí bảo trì hệ thống Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin Tính độc lập liệu Tính độc lập liệu bất biến chương trình ứng dụng thay đổi cấu trúc lưu trữ chiến lược truy nhập vào sở số liệu Tính độc lập liệu có hai mặt: - Độc lập vật lý: Là độc lập lưu trữ, chương trình ứng dụng không phụ thuộc vào việc liệu lưu giữ đâu lưu giữ thiết bị nhớ thứ cấp - Độc lập lôgic: Sự thay đổi, thêm bớt thông tin thực thể mức quan niệm không đòi hỏi thay đổi khung nhìn người sử dụng dẫn tới không cần thay đổi chương trình ứng dụng Hệ quản trị sở liệu 5.1 Các chức hệ quản trị CSDL Một hệ quản trị CSDL thực chức sau: + Tạo cấu trúc liệu tương ứng với mô hình liệu chọn + Đảm bảo tính độc lập liệu + Cập nhật liệu + Phát sinh báo cáo từ liệu CSDL + Đảm bảo tính an toàn toàn vẹn liệu CSDL + Cung cấp tiện ích lưu phục hồi liệu + Cung cấp thủ tục điều khiển tương tranh 1.5.2 Các thành phán hệ QTCSDL Một hệ quản trị thông thường có thành phần sau: + Ngôn ngữ định nghĩa liệu (Data Definition Language) + Ngôn ngữ thao tác liệu (Data Manipulation Language) + Ngôn ngữ hỏi đáp liệu (Quay Language) + Bộ viết báo cáo + Từ điển liệu + Bộ phát sinh đồ hoạ 1.6 Các mô hình liệu Mô hình liệu khuôn dạng liệu, cho phép người dùng biểu diễn liệu cấu trúc thuật ngữ dễ hiểu Một mô hình liệu hình thức toán học bao gồm: + Một hệ thống ký hiệu để mô tả liệu 10 Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin + Tập phép toán để thao tác lên sở liệu Vào năm đầu thầy kỷ 60 (thế kỷ 20), mô hình mạng mô hình phân cấp hệ gia đình mô hình liệu Sang đầu thập kỷ 70 E.F Codd đề xuất mô hình quan hệ mới, hệ thứ hai Mô hình quan hệ có cấu trúc chặt chẽ, sáng sủa, quán tính trực quan cao 6.1 Khái niệm thực thể liên kết a) Thực thể Thực thể (entity) đối tượng cụ thể hay trừu tượng mà ta cần quan tâm công tác quản lý Tên thực thể danh từ Ví dụ: Quản lý thư viện ta có thực thể như: "Sách", "Độc giả" đối tượng cụ thể Các đối tượng trừu tượng là: Khoa công nghệ thông tin, Ngành toán ứng dụng b) Kiểu thực thể Là tập hợp đối tượng loại hình thành kiểu thực thể, nói cách khác kiểu thực thể tập hợp thực thể mô tả đặc trưng giống Ví dụ: Một nhân viên thực thể, tập hợp nhân viên hệ thống tạo thành kiểu thực thể Biểu diễn kiểu thực thể: ta dùng hình chữ nhật ghi tên kiểu thực thể Tên kiểu thực ể Ví dụ: Nhân viên sách Độc giả Ghi chú: Thể thực thể thực thể cụ thể, phần tử tập hợp hay lớp kiểu thực thể Vì ứng dụng để tránh sử dụng nhiều khái niệm ta đồng thực thể kiểu thực thể c) Thuộc tính (Attribute) Thuộc tính liệu dùng để mô tả đặc trưng thực thể Mỗi thực thể có tập thuộc tính Tên thuộc tính phải danh từ Ví dụ: Thực thể "Sách" có thuộc tính: Tên sách, tên tác giả, nhà xuất 6.2 Liên kết kiểu kết Liên kết ghép nối hai hay nhiều thực thể phản ánh thực tế quản lý 11 Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin Ví dụ: Ông Nguyễn Văn Hưng làm việc phòng đào tạo; Hoá đơn số 60 gửi cho khách hàng Trần Văn Hùng; Sinh viên Dương Văn Việt thuộc lớp ĐTVT-K1 Phân loại liên kết: + Liên kết 1- (liên kết - một) : Hai kiểu thực thể A B có mối liên kết 1 thực thể kiểu A tương ứng với thực thể kiểu B ngược lại Kí hiệu: Ví dụ: Ghi chú: Trong biểu đồ cấu trúc liệu hai kiểu thực thể có mối liên kết - đồng + Liên kết 1-n (Một - nhiều): Hai kiểu thực thể A B có mối liên kết 1-n thực thể kiểu A tương ứng với nhiều thực thực thể kiểu B ngược lại thực thể kiểu B tương ứng với thực thể kiểu A Ký hiệu: Ví dụ: + Liên kết n-n (nhiều - nhiều): Hai kiểu thực thể A B có mối liên kết n - n thực thể kiểu A tương ứng với nhiều thực thể kiểu B ngược lại Kí hiệu: ví dụ: Ghi chú: Trong biểu đồ cấu trúc liệu tồn liên kết n-n kiểu thực thể, ta cần chuẩn hoá theo nguyên tắc sau: + Chẳng hạn tồn mối liên kết n-n 12 Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin danh sách chọn câu lệnh SELECT Trong trường hợp này, danh sách chọn không sử dụng tên cột hay biểu thức hàm gộp Ví dụ: Để thống kê trung bình điểm thi tất môn học ta sử dụng câu lệnh sau: SELECT AVG(DiemThi) AS Tinh_Trung_Binh_Diem FROM Diem f.2 Thống kê liệu nhóm Trong trường hợp cần thực tính toán giá trị thống kê nhóm liệu, ta sử dụng mệnh đề GROUP BY để phân hoạch liệu vào nhóm Các hàm nhóm sử dụng thực thao tác tính toán nhóm cho biết giá trị thống kê theo nhóm liệu Ví dụ: Câu lệnh cho biết sĩ số sinh viên lớp SELECT Lop.Malop, Tenlop, COUNT(MaSV) AS SiSo FROM LOP, Sinhvien WHERE Lop.MaLop = SinhVien Malop GROUP BY Lop.MaLop, TenLop Chú v: • Biểu thức điều khiển việc phân nhóm liệu biểu thức phải liệt kê sau mệnh đề GROUP BY • Trong trường hợp danh sách chọn câu lệnh SELECT có hàm nhóm biểu thức đối số hàm nhóm biểu thức phải liệt kê đầy đủ mệnh đề GROUP BY, không câu lệnh không hợp lệ Ví dụ: Dưới câu lệnh sai thiếu trường Tenlop sau mệnh đề GROUP BY SELECT Lop.MaLop, TenLop, COUNT(MaSV) AS SiSo FROM Lop, SinVien WHERE Lop.MaLop = SinhVien MaLop GROUP BY Lop.MaLop g) Mệnh đề điều kiện hàm nhóm - HAVING Mệnh đề HAVING mệnh đề đặt điều kiện lên nhóm liệu Mệnh đề HAVING thường không thực có nghĩa không sử dụng kết hợp với mệnh đề GROUP BY Một điểm khác biệt HAVING WHERE điều kiện WHERE nam nhóm HAVING lại cho phép sử dụng hàm nhóm điều kiện Ví dụ: Đưa danh sách sinh viên có trung bình điểm thi lớn 64 Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin SELECT SinhVien.MaSV, HoDem, Ten, SUM(DiemThi*SoDvht)/SUM(SoDvht) FROM Sinhvien , MonHoc , Diem WHERE SinhVien.MaMon = Diem.MaMon AND MonHoc.MaMon=Diem.MaMon GROUP BY SinhVien.MaSV, HoDem, Ten HAVING SUM(DiemThi*SoDvht)/SUM(SoDvht) >=5 h) Truy vấn (Subquery) Truy vấn câu lệnh SELECT lồng vào bên câu lệnh SELECT, INSERT, UPDATE, DELETE bên truy vấn khác Loại truy vấn sử dụng để biểu diễn cho truy vấn điều kiện truy vấn liệu cần phải sử dụng đến kết truy vấn khác + Tìm tên công ty cung cấp mặt hàng H2 SELECT TenCongTy FROM CongTy, CungCap WHERE (CongTy.MaCongTy = CungCap.MaCongTy) AND (MaHang = ‘H2’) Hoặc viết sau: SELECT TenCongTy FROM CongTy WHERE MaCongTy IN (SELECT MaCongTy FROM CungCap WHERE MaHang = ‘H2’) Ví du: Câu lệnh sau liệt kê tên công ty chưa cung cấp mặt hàng SELECT TenCongTy FROM CongTy WHERE MaCongTy NOT IN (SELECT MaCongTy FROM Cungcap) Hoặc viết sau: SELECT * FROM CongTy WHERE MaCongTy ALL (SELECT MaCongTy FROM CungCap) + Tìm công ty cung cấp mặt hàng màu đỏ 65 Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin SELECT TenCongTy FROM CongTy WHERE MaCongTy IN (SELECT MaCongTy FROM Cungcap WHERE MaHang IN (SELECT MaHang FROM HangHoa WHERE màu = “đỏ”)) + Câu lệnh sau liệt kê tên công ty chưa cấp mặt hàng có mã H1 SELECT TenCongTy FROM CongTy WHERE EXISTS (SELECT MaCongTy FROM Cungcap CC WHERE CC.MaCongTy=CongTy.MaCongTy AND MaHang ‘H1’) 2) Bổ sung liệu Dữ liệu bảng thề dòng (bản nghi) Để bổ xung thêm dòng liệu vào bảng, ta sử dụng câu lệnh INSERT SQL cung cấp cách để thực thao tác bổ sung liệu cho bảng: Bổ sung dòng liệu với câu lệnh INSERT Bổ sung nhiều dòng liệu cách truy xuất liệu tù bảng liệu khác a) Bổ sung dòng liệu với lệnh INSERT INSERT INTO [()] VALUES () Trong câu lệnh INSERT, danh_sách_tên_cột sau tên bảng không cần thiết phải định giá trị trường cửa ghi định đầy đủ danh sách giá trị Trong trường hợp này, thứ tự giá trị danh sách trị phải số lượng trường bảng cần bổ sung liệu phải tuân theo thứ tự trường bảng định nghĩa Ví dụ: Câu lệnh bồ sung thêm công ty vào quan hệ cong ty INSERT INTO CongTy VALUES (C12, ‘Hoà bình’, 600000000, ‘Thái nguyên’, ’0280754379’) Trong trường hợp nhập giá trị cho số cột bảng, ta phải định 66 Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin danh sách cột cần nhập liệu sau tên bảng Khi cột không nhập liệu nhận giá trị mặc định (nếu có) nhận giá trị NULL (nếu cột cho phép nhận giá trị NULL) Nếu cột giá trị mặc định không chấp nhận giá trị NULL mà không nhập liệu, câu lệnh bị lỗi Ví dụ: Câu lệnh sau bổ sung ghi cho bảng CongTy INSERT INTO CongTy ( MaCongTy, TenCongTy, Diachi, NganSach) VALUES (C13, ‘Trần Anh’, ‘Hà nội’, 500000000) Khi trường SODT nhận giá trị NULL Câu lệnh viết sau: INSERT INTO CongTy VALUES (CI3, ‘Trần Anh’, 500000000, ‘Hà nội’, NULL) b) Bổ sung nhiều dòng liệu từ bảng khác Một cách sử dụng khác câu lệnh INSERT sử dụng để bổ sung nhiều dòng liệu vào bảng, dòng liệu lấy từ bảng khác thông qua câu lệnh SELECT Ờ cách này, giá trị liệu bổ sung vào bảng không chì định tường minh mà thay vào câu lệnh SELECT truy vấn liệu từ bảng khác Cú pháp câu lệnh có dạng sau: INSERT INTO [()] Ví dụ: Giả sử ta có bảng LuuCongTy bao gồm trường MaCongTy, TenCongTy, NganSach, DiaChi Câu lệnh bô sung vào bảng LuuCongTy dòng liệu có từ câu truy vấn SELECT INSERT INTO LuuCongTy SELECT MaCongTy, TenCongTy, NganSach, DiaChi FROM CongTy WHERE Diachi = ‘Hà nội’ Ghi chú: Kết câu lệnh SELECT phải có số cột với số cột định bảng đích phải tương thích kiểu liệu 3) Cập nhật liệu Câu lệnh UPDATE SQL sử dụng để cập nhật liệu bảng Câu lệnh có cú pháp sau: UPDATE SET = [,…, = ] 67 Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin [FROM ] [WHERE ] Sau UPDATE tên bảng cần cập nhật liệu Một câu lệnh UPDATE cập nhật liệu cho nhiều cột cách định danh sách tên cột biểu thức tương ứng sau từ khoá SET Mệnh đề WHERE câu lệnh UPDATE thường tược sử dụng đề định dòng liệu chịu tác động câu lệnh (nêu không định, phạm vi tác động câu lệnh toàn dòng bảng) Ví dụ: Cập nhật lại địa công ty có mã CT1 UPDATE TABLE CongTy SET DiaChi = ‘Thái nguyên’ WHERE MaCongTy = ‘CTl’ 4) Xoá liệu Để xoá liệu bảng, ta sử dụng câu lệnh DELETE Cú pháp câu lệnh sau: DELETE FROM [FROM ] [WHERE ] Trong đó, tên bàng cần xoá liệu định sau DELETE FROM Mệnh đề WHERE câu lệnh sử dụng để định điều kiện dòng liệu cần xoá Nếu câu lệnh DELETE mệnh đề WHERE toàn dòng bảng bị xoá Mệnh đề FROM định danh sách bảng có liệu liên quan đến việc xoá liệu + Ví dụ: Câu lệnh sau xoá khỏi bảng CONGTY công ty có địa Hà nội DELETE FROM CongTy WHERE DiaChi = ‘Hà nội’ Ví dụ: Xoá khỏi bảng CongTy danh sách công ty cung cấp mặt có mã H1 DELETE FROM CongTy FROM Cungcap WHERE Cungcap.MaCongTy = CongTy.MaCongTy AND MaHang= ‘H1’ + Xoá khỏi bảng CongTy công ty chưa cung cấp mặt hàng DELETE FROM CongTy WHERE MaCongTy NOT IN (SELECT DISTINCT MaCongTy FROM CungCap) + Xoá tất thông tin bảng Cungcap : DELETE FROM CungCap 68 Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin BÀI TẬP CÂU HỎI Cho CSDL gồm quan hệ CC(MSNCC, TEN_CC, DCCC) MH(MSNCC, MSMH) Trong đó: MSNCC: Mã số người cung cấp TEN CC: Tên người cung cấp DCCC: Địa cung cấp MSMH: Mã số mặt hàng Hãy cho quan hệ liệu Hãy biểu diễn yêu cáu sau ngôn ngữ SQL a Tìm mã số người cung cấp Ql: mặt hàng Q2: không cung cấp mặt hàng Q3: cung cấp mặt hàng có MSMH 15 Q4: cung cấp mặt hàng mặt hàng có mã số 15 b Mặt hàng có mã số 12, 13, 15 dược cung cấp nhà cung cấp địa nào? c Lập danh sách gồm cột MSNCC, TEN_CC, MSMH) từ sở liệu Cho CSĐL gồm quan hệ sau: DAIHOC(TENTRUONG,HIEUTRUONG,DIACHI) KHOA(TENTRUONG,MSKHOA,TENKHOA,SOSINHVIEN) SINHVIEN(TENTRUONG,MSKHOA,MSSV,TENSV,DIACHISV) Trong đó: SOSINHVIEN: số lượng sum Viên MSKHOA: mã số khoa TENSV: tên sinh viên DIACHISV: địa sinh viên (hiểu quê quán) Hãy cho quan hệ liệu Biểu diễn câu hỏi sau ngôn ngữ SQL 1/ Trường Đại học có khoa TINHOC 2/ Tổng số sinh viên học tất trường đại học 69 Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin 3/ Sinh viên học quê nhà (giả sử lấy tên tỉnh, thành phố) 4/ Khoa trường có số sinh viên cao nhất? 5/ Cho biết tên hiệu trưởng trường có khoa TINHOC Cho CSDL với quan hệ: NHANVIEN(MSNV,TENNHANVIEN,MSCOQUAN,CONGVIEC, THUTRUONG,LUONG) COQUAN(MSCOQUAN,TENCOQUAN,DIACHI) Hãy cho quan hệ liệu Biểu diễn ngôn ngữ SQL, đại số quan hệ yêu cầu sau đây: Ql: Tìm tên nhân viên quan có mã số 50 Q2: lân mã số tất quan từ quan hệ NHANVIEN Q3: Tìm tên nhân viên quan có mã số 15, 20, 25 Q4: Tìm tên người làm việc Đồ Sơn 70 Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin CHƯƠNG TỐI ƯU HOÁ CÂU HỎI Nói chung ngông ngữ bậc cao, đòi hỏi thực máy tính tốn thời gian Do trước thực câu hỏi thuộc ngôn ngữ cần thiết phải biến đổi hợp lý để giảm thời gian tính toán Việc làm tạm thời gọi “tối ưu hoá” Trong chương chủ yếu trình bày vài phương pháp tối ưu hoá biểu thức quan hệ, đặc biệt xử lý biểu thức có liên quan tới phép kết nối phép tích Đề Sau trình bày chi tiết phương pháp tối ưu ho lớp phổ cập biểu thức quan hệ 5.1 Các chiến lược tối ưu 1- Thức phép chọn sớm Biến đổi câu hỏi để đưa phép chọn vào thực trước nhằm làm giảm bớt kích cỡ kết trung gian chi phí phải trả giá cho việc truy nhập nhớ thứ cấp lưu trữ nhớ nhỏ 2- Tổ hợp phép chọn với phép tích Đề thành phép kết nối Như biết, phép kết nối, đặc biệt phép kết nối thực “rẻ” thực phép tích Đề-các quan hệ Nếu kết tích Đề-các R x S đối số phép chọn phép chọn liên quan tới phép so sánh thuộc tính R S rõ ràng phép tích Đề-các phép kết nối 3- tổ hợp dãy phép tính thành Một dãy phép phép chọn phép chiếu mà kết chúng phụ thuộc vào quan hệ độc lập nhóm phép lại 4- Tìm biểu thức chung biểu thức F = Fl x F2 ∪ Fl x F3 ⇒ F = Fl x (F2 ∪ F3) 5- Xử lý độc lập tệp trước xử lý chung CSDL Có thể xếp thiết lập tệp số cho quan hệ độc lập trước xử lý 6- Lựa chọn thứ tự thực phép toán Một cần chọn trình tự thực phép tính biểu thức chọn hai đối số phép hai cần tính toán xem chi phí thực phép tính (thường số phép tính, thời gian, dung tích nhớ theo tỷ lệ kích cỡ quan hệ…) Từ có chi phí phải trả cho cách khác để thực câu hỏi 71 Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin 5.2 Các phép biến đổi tương đương l- Phép giao hoán Nếu R1 R2 hai quan hệ, F điều kiện thuộc tính Rl R2 Rl*R2 ≡ R2* Rl; Rl x R2 ≡ R2 x Rl 2- Phép kết hợp Nếu R1, R2 R+3 quan hệ, Fl F2 biểu thức điều kiện (Rl x R2) x R3 ≡ Rl x (R2 x R3); 3- Xử lý dãy phép toán chọn σ F1( σ F2( σ F3…( σ F1n(r))) ≡σ F1^F2^F3^…^Fn(r) 4- Xử lý dãy phép toán chiếu Nếu có: A1A2…An ⊆ B1B2…Bn Thì Π A1A2 An( Π B1B2 Bn(R)) ≡ Π A1A2 An(R) 5- Giao hoán phép chọn phép chiếu σ F( Π A1A2 An(R)) ≡ Π A1A2 An( σ F(R)) 6-Giao hoán phép chọn phép tích Đề -các - Nếu điều kiện chọn liên quan đến R1 σ F(R1 x R2) ≡ σ F1(Rl) x (R2) - Nếu F = Fl ∧ F2 Fl liên quan đến Rl; F2 liên quan đến R2 σ F(Rl x R2) ≡ σ F1(Rl) x σ F2(R2) - Nếu F1 liên quan đến Rl, F2 liên quan đến Rl R2 σ F(Rl x R2) ≡ σ F1( σ F1(Rl) x R2) 7- Giao hoán phép chọn phép hợp σ F(Rl ∪ R2) ≡ σ F(Rl) ∪ σ F(R2) 8- Giao hoán phép chọn phép trừ σ F(Rl - R2) ≡ σ F(Rl) - σ F(R2) 9- Giao hoán phép chiếu phép tích Đề Nếu thuộc tính Al, A2,…An ∈ Rl; Bl, B2,…Bn ∈ R2 Ta có: Π A1A2 An,B1B2…BN(Rl x R2) ≡ Π A1A2 An(Rl) x Π B1B2 Bn(R2) 72 Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin 10- Giao hoán phép chiếu phép hợp Π A1A2 An(Rl ∪ R2) ≡ Π A1A2 An(Rl) ∪ Π A1A2 An(R2) Ví dụ: Cho biết tên công ty cung cấp mặt hàng màu đỏ *Dùng đại số quan hệ Π TenCongTy( σ mau = “đỏ”( σ CongTy.MaCongTy = CungCap.MaCongTy ( σ CungCap.MaHang=HangHoa.MaHang(congty x hanghoa x cungcap)))) - Đẩy phép chọn lên trước Π TenCongTy( σ mau = “đỏ”( σ CongTy.MaCongTy = CungCap.MaCongTy (CongTy x σ CungCap.MaHang=HangHoa.MaHang(HangHoa x Cungcap))) - Chuyển phép chọn phép tích Đề thành phép kết nối Π TenCongTy( σ mau=“đỏ”( σ CongTy.MaCongTy = CungCap.MaCongTy (CongTy x (HangHoa * Cungcap))) MaHang - Chuyển phép chọn phép tích Đề thành phép kết nối Π TenCongTy( σ mau=“đỏ”(CongTy * HangHoa * CungCap)) MaCongTy MaHang - Đẩy phép chọn lên trước Π TenCongTy(CongTy * ( σ mau=“đỏ”(HangHoa) * CungCap)) *Dùng SQL - Không tối ưu: SELECT TenCongTy FROM Congty, HangHoa,CungCap WHERE (CongTy.MaCongTy = CungCap.MaCongTy) AND (CungCap.MaHang = HangHoa.MaHang) AND (HangHoa.Mau = “Đỏ”) - Tối ưu : SELECT TenCongTy FROM CongTy WHERE MaCongTy IN ( SELECT MaCongTy FROM Cungcap WHERE MaHang lN ( SELECT MaHang FROM HangHoa WHERE Mau = “Đỏ”))) 73 Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin CHƯƠNG AN TOÀN VÀ TOÀN VẸN ĐỮ LIỆU 6.1 An toàn liệu 6.1.1 Giới thiệu - Một hệ sở liệu bao gồm liệu chương trình ứng dụng để thực thao tác liệu - Người sử dụng (enduser) truy cập vào sở liệu sử dụng chương trình ứng dụng để thao tác liệu Để đảm bảo an toàn hệ thống phải xác định: + User hợp pháp: Là người phép truy nhập vào liệu với số quyền + User bất hợp pháp: Là người không phép truy nhập vào liệu 6.1.2 Thực việc an toàn liệu - Xác định user hợp pháp: Sử dụng mật để xác minh - Xác minh khung nhìn user: Hệ thống cho phép user truy nhập vào phán sở liệu - Xác minh quyền user: Hệ thống cho phép user có quyền sở liệu 6.1.3 Các lệnh an toàn liệu SQL a) Lệnh tạo khung nhìn CREAT VIEW (danh sách tên cột) AS Ví dụ: - Tạo View DSmoi CREAT VIEW DSmoi AS SELECT * FROM Nhanvien WHERE Ma phong = “M2” Tạo View “Tong” từ bảng “cungcap” với số lượng tăng thêm 20 đơn vị 74 Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin CREAT VIEW Tong (MaCongTy, MaHang, Tổng số lượng) AS SELECT MaCongTy, MaHang, ( Soluong + 20) FROM Cungcap b) Lệnh trao quyền cho user GRANT On TO [WITH GRANT OPTION] Các quyền gồm CREAT: Tạo sở liệu READ: Đọc SELECI: Chọn WRITE: Ghi INSERT: Bổ sung UPDATE: Cập nhật DELETE: Xoá RUN: Chạy chương trình ứng dụng Trong đó: - Đối tượng: Là bảng, view, chương trình ứng dụng - Tên user: Là tên người, nhóm, danh sách dùng từ khoá PUBLIC, WORLD cho users - Tuỳ chọn GRANT OPTION: Khi có tuỳ chọn user phép trao quyền cho user khác Ví dụ: GRANT Select, Delete, Update ON Dsluong TO abc WITH GRANT OPTION GRANT Select ON Dsluong TO def c) Thu hồi quyền REVOKE ON FROM Ví dụ: REVOKE Delete ON Write FROM abc 6.2 Tính toàn vẹn liệu 6.2.1 Khái niệm ràng buộc liệu Khi nhập liệu vào ta có số ràng buộc để hợp lệ hoá nhập liệu có giá trị không hợp lệ chương trình thông báo yêu cầu nhập lại Hoặc ràng báo sửa chữa cập nhật liệu để tránh tình trạng dị thường sở liệu 75 Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin 6.2.2 Các ràng buộc - Ràng buộc tập giá trị cho phép: Dùng phép so sánh để ràng buộc Ví dụ: Bổ xung thêm nhân viên INSERT INTO Nviên ( MãNV, TênNV, Địa chỉ, Lương) VALUES (NV05, “Trần Long”, “Hà nội”, 500 000) Nếu có ràng buộc 1000000 < lương < 2000000 giá trị lương không hợp lệ Ràng buộc giá trị NULL: Nếu thuộc tính bắt buộc phải có giá trị dùng ràng buộc NOT NULL, không để trống -Ràng buộc khoá chính: Mối quan hệ phải có thuộc tính khoá, thuộc tính có giá trị cho không trùng lặp Dùng ràng buộc chương trình kiểm tra tính trùng lặp trị khoá Ràng buộc khoá ngoài: Hạn chế phát sinh lỗi khỉ sửa chứa cập nhật quan hệ có liên kết với 76 Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin TÀI LIỆU THAM KHẢO [l] Tô Văn Nam, Giáo trình sở liệu Nhà xuất giáo dục [2] Nguyễn Xuân Huy Bài giảng sớ liệu [3] Vũ Đức Thi, Cơ sở liệu - Kiến thức thực hành Nhà xuất bán Thông kê, 1997 [4] TS.Nguyễn Bá Tường, Nhập môn sở liệu phân tán, Nhà xuất Khoa học Kỹ thuật Hà Nội, 2005 [5] Nguyễn Bá Tường, Cơ sở liệu - Lý thuyết thực hành, Nhà xuất bàn Khoa học Kỹ thuật, 2001 [6] Lê Tiến Vương Nhập môn sở liệu quan hệ, Nhà xuất Khoa học Kỹ thuật, 1997 [7] M.Tamer Ôzsu, Patrick Valduriez, Nguyên lý hệ sở liệu phân tán, Nhà xuất bán Thống kê, 2000 [8] J.Ulman, Nguyên lý hệ sở liệu sớ tri thức, Nhà xuất Thống kê, 1998 77 Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin MỤC LỤC Trang MỘT SỐ CÁC QUY ƯỚC CHƯƠNG NHẬP MÔN CƠ SỞ DỮ LIỆU 1.1 Giới thiệu thống quản lý tệp truyền thống 1.2 Định nghĩa sở liệu 1.3 Hệ sở liệu Tính độc lập liệu 10 Hệ quản trị sở liệu 10 1.6 Các mô hình liệu 10 BÀI TẬP VÀ CÂU HỎI 18 CHƯƠNG 19 MÔ HÌNH DỮ LIỆU QUAN HỆ 19 2.1 Thuộc tính 19 2.2 Quan hệ 19 2.3 Khoá quan hệ 20 2.4 Các phép toán đại số quan hệ 21 BÀI TẬP VÀ CÂU HỎI 28 CHƯƠNG 30 LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU 30 3.1 Giới thiệu 30 3.2 Sơ đồ quan hệ 31 3.3 Hệ tiên đề cho tập phụ thuộc hàm 32 3.4 Bao đóng tập phụ thuộc hàm 35 3.5 Phép tách quan hệ 36 3.6 Chuẩn hoá lược đồ quan hệ 38 3.7 Các thuật toán 40 3.8 Phụ thuộc đa trị 47 BÀI TẬP VÀ CÂU HỎI 49 CHƯƠNG 51 NGÔN NGỮ ĐỊNH NGHĨA VÀ THAO TÁC DỮ LIỆU 51 4.1 Giới thiệu mô hình xử lý liệu 51 4.2 Ngôn ngữ đại số quan hệ 51 4.3 Ngôn ngữ SQL (Structure Quay Language) 53 BÀI TẬP CÂU HỎI 69 CHƯƠNG 71 TỐI ƯU HOÁ CÂU HỎI 71 5.1 Các chiến lược tối ưu 71 5.2 Các phép biến đổi tương đương 72 CHƯƠNG 74 AN TOÀN VÀ TOÀN VẸN ĐỮ LIỆU 74 6.1 An toàn liệu 74 6.2 Tính toàn vẹn liệu 75 TÀI LIÊU THAM KHẢO 77 78 [...]... 28 Giáo trình Cơ sở dữ liệu 1 – Bộ môn Hệ thống thông tin Hãy tính kết quả của các phép toán đại số quan hệ sau: • R*S*T • σ c = l(R x S) * T) 29 Giáo trình Cơ sở dữ liệu 1 – Bộ môn Hệ thống thông tin CHƯƠNG 3 LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU 3 .1 Giới thiệu 3 .1. 1 Vấn đề thiết kế cơ sở dữ liệu Một cơ sở dữ liệu quan hệ gồm tập các quan hệ Muốn xây dựng một cơ sở dữ liệu quan hệ cần xác định trong cơ sở. .. 4 Phân loại các hệ cơ sở dữ liệu 5 Nêu ưu điểm của việc thiết kế một hệ cơ sở dữ liệu 6 Nêu tính độc lập dữ liệu 7 Trình bày khái niệm về hệ quản trị cơ sở dữ liệu? Hãy liệt kê các hệ quản trị cơ sở dữ liệu mà anh chị biết 8 Nêu các chức năng và các thành phần của một hệ quản trị cơ sở dữ liệu 9 Thế nào là mô hình dữ liệu 10 Định nghĩa thực thể và kiểu thực thể Cho ví dụ minh hoạ 11 Nêu các kiểu trên... hình 1 : Tìm trên các nhánh của cây • Mô hình 2 : rắn trên toàn bộ dây chuyền • Mô hình 3: lùn trên các bảng Như vậy so sánh các thao tác ta thấy với mô hình quan hệ đơn giản thuận tiện hơn so với các mô hình trên 17 Giáo trình Cơ sở dữ liệu 1 – Bộ môn Hệ thống thông tin BÀI TẬP VÀ CÂU HỎI 1 Định nghĩa cơ sở dữ liệu 2 Nêu các thành phần của một hệ cơ sở dữ liệu 3 Nêu kiến trúc của một hệ cơ sở dữ liệu. .. quan hệ khả hợp 2.4.2 Các phép toán (1) Phép họp Hợp của hai quan hệ R và S khả hợp là tập các bộ thuộc R hoặc S hoặc thuộc cả hai quan hệ Ký hiệu phép họp là R u S Biểu diễn hình thức phép hợp có dạng: Ví dụ : Cho R(A C) B C) S (A B 21 Giáo trình Cơ sở dữ liệu 1 – Bộ môn Hệ thống thông tin a1 a2 Ta có: R ∪ S = t (A b1 c1 b1 a1 c1 b2 c2 b2 a1 c2 B C) a1 b1 c1 a1 b2 c2 a2 b2 c2 (2) Phép giao Giao của... {tên, phách, điểm} Nếu tách U1 = {tên}; U2 = {phách, điểm} Thì U1 ∩ U2 = Φ Rõ ràng ta thấy dữ liệu không còn chính xác Minh hoạ bằng bảng sau ta thấy: 36 Giáo trình Cơ sở dữ liệu 1 – Bộ môn Hệ thống thông tin ♦ Giả sử chọn bộ t nào đó thuộc R Khi tách thành R1, R2 ta được t1, t2 Ta thấy t = t1 * t2 hay R ⊆ Rl * R2 Mặt khác ∀ t1 ∈ R1 ; và ∀ t2 ∈ R2 ta có: t1[U1 ∩ U2] = t2[U1 ∩ U2] Theo tính chất phép.. .Giáo trình Cơ sở dữ liệu 1 – Bộ môn Hệ thống thông tin + Khi đó ta chuẩn hoá mối liên kết n-n về dạng l-n như sau: ví dụ: 1. 6.2 Các mô hình dữ liệu a) Mô hình dữ liệu phân cấp Mô hình dữ liệu phân cấp (Hierachical Dâm Model) - được gọi tắt là mô hình phân cấp (Hierachical Model): được đưa ra vào những năm 60, trong mô hình dữ liệu này dữ liệu được tổ chức thành cấu trúc... dùng 3 .1. 2 Bài toán ví dụ Giả sử một cửa hàng bán lẻ các nhân viên mở sổ theo dõi việc bán hàng hàng ngày là một bảng (quan hệ) như sau: Nhận xét: - Cơ sở dữ liệu trên chỉ có một bảng (quan hệ) - Một số thuộc tính lặp lại nhiều lần như: Tên hàng, Đơn giá Ta tách bảng trên thành 3 bảng: BH1 30 Giáo trình Cơ sở dữ liệu 1 – Bộ môn Hệ thống thông tin BH2 BH3 Với cách tổ chức này ta thấy: - Cơ sở dữ liệu. .. đó dẫn đến bài toán tổ chức cơ sở dữ liệu chỉ là một bài toán thủ công 32 Giáo trình Cơ sở dữ liệu 1 – Bộ môn Hệ thống thông tin không thể áp dụng các công cụ toán học và quá trình xử lý trên máy tính được Từ đó người ta trên một giải pháp sao cho có thế khái quát hoá các cơ sở dữ liệu bằng mô hình toán học và có thể áp dụng được các công cụ toán học Trong cơ sở dữ liệu khái quát đó, các thuật toán xử... hoạ 12 Hãy nêu các mô hình dữ liệu 18 Giáo trình Cơ sở dữ liệu 1 – Bộ môn Hệ thống thông tin CHƯƠNG 2 MÔ HÌNH DỮ LIỆU QUAN HỆ 2 .1 Thuộc tính - Thuộc tính (Attribute): Thuộc tính là dữ liệu dùng để mô tả một đặc trưng của thực thể (Các thuộc tính đơn thường ký hiệu là các chữ cái A,B,C,.: Tập thuộc tính thường ký hiệu là các chữ cái X, Y, Z ) Các thuộc tính được phân biệt qua tên gọi và phải thuộc 1. .. hàng có thể có nhiều mặt hàng 13 Giáo trình Cơ sở dữ liệu 1 – Bộ môn Hệ thống thông tin Nhận xét: Cách tổ chức này phù hợp với các thông tin có tính chất phân cấp nhưng có nhược điểm là lặp lại dữ liệu, lãng phí bộ nhớ và tốn nhiều công sức tạo lập b) Mô hình dữ liệu mạng Mô hình dữ liệu mạng (Network Data Model) được gọi tắt là mô hình mạng (Network Model) là mô hình dữ liệu được biểu diễn bởi một đồ ... hay nhiều chương trình ứng dụng với mục đích khác 1. 3 Hệ sở liệu 1. 3 .1 Các thành phần hệ sở liệu Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin Hình 1. 1: Các thành phần hệ sở liệu a) Người sử... CHƯƠNG LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU 3 .1 Giới thiệu 3 .1. 1 Vấn đề thiết kế sở liệu Một sở liệu quan hệ gồm tập quan hệ Muốn xây dựng sở liệu quan hệ cần xác định sở liệu có quan hệ gì, quan... tiện so với mô hình 17 Giáo trình Cơ sở liệu – Bộ môn Hệ thống thông tin BÀI TẬP VÀ CÂU HỎI Định nghĩa sở liệu Nêu thành phần hệ sở liệu Nêu kiến trúc hệ sở liệu Phân loại hệ sở liệu Nêu ưu điểm

Ngày đăng: 03/01/2016, 19:54

Từ khóa liên quan

Mục lục

  • GIÁO TRÌ NH: CƠ SỞ DỮ LIỆU 1

    • MỘT SỐ CÁC QUY ƯỚC

    • CHƯƠNG 1: NHẬP MÔN CƠ SỞ DỮ LIỆU

      • 1.1 Giới thiệu về hề thống quản lý tệp truyền thống

      • 1.2 Định nghĩa cơ sở dữ liệu

      • 1.3. Hệ cơ sở dữ liệu

      • 1. 4 Tính độc lập dữ liệu

      • 1. 5 Hệ quản trị cơ sở dữ liệu

      • 1.6 Các mô hình dữ liệu.

      • BÀI TẬP VÀ CÂU HỎI

      • CHƯƠNG 2: MÔ HÌNH DỮ LIỆU QUAN HỆ

        • 2.1 Thuộc tính

        • 2.2 Quan hệ

        • 2.3 Khoá của một quan hệ

        • 2.4 Các phép toán của đại số quan hệ

        • BÀI TẬP VÀ CÂU HỎI

        • CHƯƠNG 3: LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU

          • 3.1 Giới thiệu

          • 3.2 Sơ đồ quan hệ

          • 3.3 Hệ tiên đề cho tập phụ thuộc hàm

          • 3.4 Bao đóng của tập phụ thuộc hàm

          • 3.5 Phép tách một quan hệ

          • 3.6 Chuẩn hoá lược đồ quan hệ

          • 3.7 Các thuật toán

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

Tài liệu liên quan