Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 94 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
94
Dung lượng
0,93 MB
Nội dung
Giáo trình Cơ sở liệu quan hệ Version 1.0 ……… , tháng … năm …… Mục lục MỘT SỐ KÝ HIỆU VÀ QUY ƯỚC Hình 1.2: Cấu trúc hệ sở liệu .4 1.1 Giới thiệu thống quản lý tệp truyền thống .5 1.2 Hệ sở liệu 1.2.1 Các thành phần hệ sở liệu 1.2.2 Kiến trúc hệ sở liệu 1.3 Phân loại hệ sở liệu 1.3.1 Các hệ tập trung 1.3.2 Các hệ sở liệu phân tán 1.4 Những ưu điểm việc xây dựng hệ sở liệu 10 1.5 Tính độc lập liệu 11 1.6 Hệ quản trị sở liệu 11 1.7 Các mơ hình liệu 12 BÀI TẬP VÀ CÂU HỎI CHƯƠNG 18 Chương .19 2.4 Các phép toán đại số quan hệ 21 3.1 Giới thiệu 35 3.2 Sơ đồ quan hệ 37 3.7 Các thuật toán 48 3.8 Phụ thuộc đa trị 58 MỘT SỐ KÝ HIỆU VÀ QUY ƯỚC A, B, C ,… tên thuộc tính đơn X, Y, Z, … tập hợp thuộc tính t, t1, t2,…là giá trị t.[A]: giá trị t ứng với thuộc tính A 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 U : Tập hữu hạn thuộc tính R, S : Ký hiệu quan hệ r, s : Ký hiệu lược đồ quan hệ sơ đồ quan hệ R(f) : Ta nói quan hệ R thoả mãn phụ thuộc hàm f PTH : Phụ thuộc hàm F ├ f: ta gọi f phụ thuộc hàm suy dẫn logic từ F X →Y : Y phụ thuộc hàm vào X X! →Y : Y không phụ thuộc hàm vào X Sơ đồ quan hệ (lược đồ quan hệ) DANH SÁCH CÁC HÌNH VẼ VÀ CÁC BẢNG DỮ LIỆU Hình 1.1 :Các thành phần hệ sở liệu Hình 1.2: Cấu trúc hệ sở liệu Hình 1.3: Hệ sở liệu: a) Personal DB; b) Central DB Hình 1.4: Client/Server Database Hình 1.5: Hệ sở liệu phân tán Bảng 1.1: Khách hàng Bảng 1.2: Hàng hoá Bảng 1.3: Hàng bán Bảng 2.1: Chứa thông tin học sinh Bảng 2.2: Quan hệ LOPHOC Bảng 2.3: Quan hệ SINHVIEN Bảng 2.4: Quan hệ MONHOC Bảng 2.5: Quan hệ DIEMTHI Bảng 3.1: Sổ theo dõi việc bán hàng Bảng 3.2: Chứa thông tin hàng hố Bảng 3.3 Chứa thơng tin khách hàng Bảng 3.4: Chứa thơng tin hố đơn bán hàng Bảng 3.5 : Chứa thông tin chi tiết hố đơn bán hàng Bảng 3.6: Chứa thơng tin sinh viên Bảng 3.7: Bảng chứng minh định lý phép tách Bảng 3.7: Bảng đăng ký học sinh viên Bảng 4.1: Các kiểu liệu 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 thường tổ chức riêng rẽ, phục vụ cho mục đích đơn vị đơn vị trực thuộc cụ thể 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 - Ưu điểm: • Việc xây dựng hệ thống tệp tin riêng đơn vị quản lý tốn thời gian khối lượng thông tin cần quản lý khai thác nhỏ, khơng địi hỏi đầu tư vật chất chất xám nhiều, triển khai ứng dụng nhanh • Thơng tin khai thác phục vụ mục đích hẹp nên khả đáp ứng nhanh chóng, kịp thời - Nhược điểm: • Thơng tin tổ chức riêng rẽ nhiều nơi nên việc cập nhật dễ làm tính quán liệu • Hệ thống thông tin tổ chức thành hệ thống file riêng lẻ nên thiếu chia sẻ thơng tin nơi • Có dư thừa liệu lớn qua việc trùng lặp tệp tin ứng dụng khác • Khơng gian đĩa bị lãng phí, khó khăn việc bảo trì hệ thống • Khó khăn việc truy xuất liệu Một ví dụ điển hình trùng lắp liệu Hệ quản lý nguồn nhân lực bao gồm ba hệ chính: Hệ lương, hệ trì ngày cơng lương cho tất nhân viên Hệ nhân sự, hệ trì lý lịch cá nhân, liệu tổ chức, công việc đào tạo vị trí thăng tiến Hệ hưu, hệ quản trị qui tắc liên quan đến nghỉ hưu, loại nghỉ hưu Chi tiết hưu nhân viên Vấn đề bất lợi Hệ quản lý lương thơng thường quản lý phịng Tài chính, Hệ quản lý nhân Hệ quản lý hưu quản lý phòng Tổ chức cán Rõ ràng, có nhiều liệu nhân viên chung cho ba hệ Thường hệ thực lưu trữ riêng biệt nên chúng tạo trùng lặp liệu Qua phân tích trên, nhận thấy việc tổ chức liệu theo hệ thống tệp hồn tồn khơng phù hợp với hệ thống thông tin lớn Việc xây dựng hệ thống thơng tin đảm bảo tính quán liệu, đáp ứng nhu cầu khai thác đồng thời nhiều người thực cần thiết 1.2 Hệ sở liệu 1.2.1 Các thành phần hệ sở liệu Người dùng Các ứng dụng Hệ quản trị sở liệu Phần cứng Cơ sở liệu Hình 1.1 : Các thành phần hệ sở liệu Các thành phần hệ CSDL gồm: - Người dùng (User), gồm có đối tượng sử dụng: + Người quản trị sở liệu: Trong tổ chức có nhiều người sử dụng chung nguồn liệu thiết phải có người đứng đầu quản lý, chịu trách nhiệm nguồn liệu Đó người quản trị sở liệu (Database Administrators - DBA ) DBA có nhiệm vụ tổ chức nội dung sở liệu, tạo cấp quyền truy cập sở liệu cho người dùng, đưa yêu cầu phần cứng phần mềm… cần thiết DAB phải chịu trách nhiệm bảo vệ an tồn, Backup thơng tin…khi có cố + Người phân tích thiết kế hệ thống: Là người chịu trách nhiệm: (a) xác định liệu cần lưu trữ CSDL; (b) lựa chọn cấu trúc thích hợp để biểu diễn lưu trữ; (c) vấn tất người sử dụng CSDL sau để hiểu yêu cầu họ CSDL; (d) tiến hành phân tích thiết kế hệ thống sau thống tất yêu cầu người sử dụng + 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 ngơn ngữ phù hợp, ngồi cịn có nhiệm vụ: (a) chạy thử chương trình (test); (b) chữa lỗi gỡ rối chương trình (debug); (c) viết tài liệu, hướng dẫn sử dụng; (d) bảo trì hệ thống + Người dùng cuối (EndUser): Người dùng cuối người truy cập CSDL để: (a) cập nhật liệu; (b) cruy vấn liệu; (c) thống kê, báo cáo Mỗi EndUse có quyền hạn phạm vi định đỗi với sở liệu quyền đọc, ghi, copy ) - 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 - Hệ quản trị sở liệu: Hệ quản trị sở liệu phần mềm cho phép định nghĩa cấu trúc để lưu trữ liệu thao tác liệu cho đảm bảo an tốn bí mật liệu Hiện có số hệ quản trị sở liệu thông dụng FOXPRO, ACCESS, SQL SERVER, ORACLE - 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 - Cơ 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 sử dụng khác 1.2.2 Kiến trúc hệ sở liệu USER Khung nhìn USER Khung nhìn USER k Khung nhìn k CSDL CSDL mức khái niệm mức Mức lô gic Mức vật lý Mức ngồi 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 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 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ừ …) 1.3 Phân loại hệ sở liệu 1.3.1 Các hệ tập trung Hệ sở liệu tập trung hệ CSDL lưu trữ vị trí định, gồm hệ sở liệu 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 với vài người sử dụng 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 tố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ố, tồn hệ thống ngừng hoạt động User (a) (b) Hình 1.3: Hệ sở liệu; (a) Cá nhân; (b) Trung tâm - Hệ sở liệu Client/Server (Client/Server Database): Cơ sở liệu lưu trữ máy chủ (Server) nhiều máy trạm (Client) kết nối sử dụng chung sở liệu LAN, WAN, INTERNET Hình 1.4 Kiến trúc Client/Server Database 1.3.2 Các hệ sở liệu phân tán Hệ sở liệu phân tán hệ CSDL sở liệu tổ chức phân bố thành nhiều sở liệu địa phương, lưu trữ máy tính Mạng máy vị trí địa lý khác thuộc hệ thống Các sở liệu liên kết với qua mạng máy tính phục vụ nhu cầu người dùng tính nhiều địa điểm khác mức suốt Hình 1.5: Hệ sở liệu phân tán Hệ sở liệu phân tán phân thành hai loại + Hệ nhất: Trong hệ CSDL địa phương biểu diễn theo mơ hình giống phương thức truy cập giống + Hệ khơng nhất: Ngược lại với mơ hình hệ hệ không 1.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 qn tồ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 tạo cải tiến thuận lợi - Tính chuẩn hố cao - Chất lượng liệu cải thiện 10 08K7A1 Nguyễn Văn Dũng L01 K7A-CNTT 08K7A2 Lê Ngọc Dương L01 K7A-CNTT 08K7A3 Trần Thị Hồng L02 K7B-CNTT Trong câu lệnh trên, bảng tham gia vào truy vấn bao gồm: SinhVien LopHoc Điều kiện để thực phép kết nối hai bảng điều kiện sau: SinhVien.MaLop = LopHoc.MaLop Chú ý: - Tên số cột bảng có tham gia vào truy vấn Nếu tên cột bảng trùng tên tên cột phải viết dạng: Tên_bảng.tên_cột - Dấu (*) sử dụng danh sách chọn cần hiển thị tất cột bảng tham gia truy vấn -Trong trường hợp cần hiển thị tất cột bảng đó, ta sử dụng cách viết: tên_bảng.* Ví dụ 4.18 : Liệt kê danh sách sinh viên tham gia thực tập đề có mã số ‘DT02’ SELECT SinhVien.* FROM SinhVien , SV_DeTai WHERE SinhVien.MaSV = SV_DeTai.MaSV AND MaDT=’DT02’ Kết MaSV HotenSV NS GT Diachi MaLop 08K7A1 Nguyễn Văn Dũng 09/11/1989 Hà Nội L01 08K7A2 Lê Ngọc Dương 01/09/1989 Bắc Giang L01 f) Thống kê liệu với GROUP BY Mệnh đề GROUP BY sử dụng câu lệnh SELECT nhằm phân hoạch dịng liệu bảng thành nhóm liệu nhóm liệu thực tính tốn giá trị thống kê tính tổng, tính giá trị trung bình… Các hàm nhóm sử dụng để tính giá trị thống kê cho tồn bảng nhóm liệu Chúng sử dụng cột danh sách 80 chọn câu lệnh SELECT xuất mệnh đề HAVING, không phép xuất mệnh đề WHERE SQL cung cấp hàm nhóm đây: Hàm nhóm Chức SUM(Tên_thuộc_tính|biểu_thức) Tính tổng giá trị AVG(Tên_thuộc_tính|biểu_thức) Tính trung bình giá trị COUNT(Tên_thuộc_tính|biểu_thức) Đếm số giá trị biểu thức COUNT(*) Đếm số dịng chọn MAX(Tên_thuộc_tính|biểu_thức) Tính giá trị lớn MIN(Tên_thuộc_tính|biểu_thức) Tính giá trị nhỏ Trong đó: Hàm SUM, AVG làm việc với biểu thức số Hàm SUM, AVG, COUNT, MIN MAX bỏ qua giá trị NULL tính tốn Hàm COUNT(*) khơng bỏ qua giá trị NULL S1: Thống kê toàn liệu Khi cần tính tốn giá trị thống kê toàn liệu, ta sử dụng hàm nhóm 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 bẩt kỳ tên cột hay biểu thức ngồi hàm nhóm Ví dụ 4.19 : Để tính trung bình kinh phí tất đề tài ta sử dụng câu lệnh sau: SELECT AVG(KP) AS TBKP FROM DeTai Kết quả: TBKP 2500000 S2: Thống kê liệu nhóm 81 Trong trường hợp cần thực tính tốn giá trị thống kê nhóm liệu, ta sử dụng mệnh đề GROUP BY để phân hoạch liệu thành nhóm riêng biệt Các hàm nhóm sử dụng thực thao tác tính tốn nhóm cho biết giá trị thống kê theo nhóm liệu Ví dụ 4.20: Câu lệnh cho biết sĩ số sinh viên lớp SELECT LopHoc.MaLop, TenLop, COUNT(MaSV) AS SiSo FROM LopHoc, SinhVien WHERE LopHoc.MaLop = SinhVien MaLop GROUP BY LopHoc.MaLop, TenLop Kết quả: MaLop TenLop SiSo L01 K7A-CNTT L02 K7B-CNTT Chú ý: 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 thuộc tính khơng phải đối số hàm nhóm biểu thức thuộc tính phải liệt kê đầy đủ mệnh đề GROUP BY, khơng câu lệnh khơng hợp lệ Ví dụ 4.21: Dưới câu lệnh sai thiếu trường TenLop sau mệnh đề GROUP BY SELECT LopHoc.MaLop, TenLop, COUNT(MaSV) AS SiSo FROM WHERE LopHoc, SinhVien LopHoc.MaLop = SinhVien MaLop GROUP BY LopHoc.MaLop g) Mệnh đề điều kiện nhóm HAVING Mệnh đề HAVING mệnh điều kiện tác động nhóm liệu Mệnh đề HAVING ln sử dụng kết hợp với mệnh đề GROUP BY 82 Một điểm khác biệt HAVING WHERE điều kiện WHERE không phép sử dụng hàm nhóm HAVING lại cho phép sử dụng hàm nhóm điều kiện Ví dụ 4.22: Cho biết lớp có sĩ số >=50 học sinh SELECT LopHoc.MaLop, TenLop, COUNT(*) AS SiSo FROM LopHoc, SinhVien WHERE LopHoc.MaLop = SinhVien MaLop GROUP BY LopHoc.MaLop, TenLop HAVING COUNT(*)>=50 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 câu truy vấn liệu cần phải sử dụng đến kết truy vấn khác Ví dụ 4.23 :Đưa danh sách sinh viên thực đề tài có mã ‘DT02’ SELECT SV.* FROM SinhVien SV, SV_DeTai TT WHERE SV.MaSV=TT.MaSV AND MaDT=’DT02’ Hoặc viết sau: SELECT * FROM SinhVien WHERE MaSV IN (SELECT MaSV FROM SV_DeTai WHERE MaDT = 'DT02') Ví dụ 4.24: Cho biết sinh viên thực tập đề tài có tên đề tài ‘Truy vấn liệu Multimedia’ SELECT * FROM SinhVien WHERE MaSV IN (SELECT MaSV FROM SV_DeTai WHERE MaDT=(SELECT MaDT FROM DeTai 83 WHERE TenDT= ’Truy vấn liệu Multimedia’)) Ví du 4.25: Câu lệnh sau cho biết danh sách đề tài chưa có sinh viên thực tập SELECT * FROM DeTai WHERE MaDT NOT IN (SELECT DICTINCT MaDT FROM SV_DeTai) Ví du 4.26: Cho biết danh sách đề tài có kinh phí lớn nhất? SELECT * FROM DeTai WHERE KP = (SELECT Max(KP) FROM SV_DeTai) 4.2.3.2 Nhập liệu Dữ liệu bảng thể dòng (bản nghi) Để nhập thêm dòng liệu vào bảng, ta sử dụng câu lệnh INSERT với cú pháp sau: 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 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ụ 4.27: Câu lệnh bổ sung thêm lớp học vào bảng lớp INSERT INTO LopHoc VALUES (‘L03’, ‘K7C-KT’) Ngược lại định sau tên bảng phải tương ứng với thứ tự cột có danh sách Ví dụ: INSERT INTO LopHoc(TenLop) VALUES (‘K7D-ĐTVT’, ‘L04’) Ghi chú: Trong trường hợp nhập giá trị cho số cột bảng, ta phải định 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 84 cột cho phép nhận giá trị NULL) Nếu cột khơng có 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 4.2.3.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 = [, …., = ] [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 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 tồn dịng bảng) Ví dụ 4.28: Cập nhật lại địa sinh viên có mã 08K7A1 thành Thái Nguyên UPDATE SinhVien SET DiaChi = 'Thái Nguyên' WHERE MaSV ='08K7A1' Ví dụ 4.29: Cập nhhật lại kết thực tập sinh viên thực tập đề tài có tên đề tài ‘Truy vấn liệu Multimedia’ UPDATE SV_DeTai SET KQ = 10 WHERE MaDT=(SELECT MaDT FROM DeTai WHERE TenDT=’Truy d liu Multimedia) 4.2.3.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 [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 đối 85 với dòng liệu cần xố Nếu câu lệnh DELETE khơng có mệnh đề WHERE tồ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 xố liệu +Ví dụ 4.30: Câu lệnh sau xố khỏi bảng SinhVien sinh viên có địa Hà nội DELETE FROM SinhVien WHERE DiaChi = 'Hà nội' Ví dụ 4.31: Xoá khỏi bảng sinh viên sinh viên chưa tham gia đề tài thực tập nào? DELETE FROM SinhVien WHERE MaSV NOT IN (SELECT DISTINCT MaSV FROM SV_DeTai ) + Xố tất thơng tin tình hình thực tập sinh viên DELETE FROM SV_DeTai 86 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 Q1: 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 khơng có 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 CSDL gồm quan hệ sau: DAIHOC(TENTRUONG,HIEUTRUONG,DIACHI) KHOA(TENTRUONG,MSKHOA,TENKHOA,SOSINHVIEN) SINHVIEN(TENTRUONG,MSKHOA,MSSV,TENSV,DIACHISV) đó: SOSINHVIEN: số lượnglà sinh 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 a/ Trường Đại học có khoa TINHOC b/ Tổng số sinh viên học tất trường đại học c/ Sinh viên học quê nhà (giả sử lấy tên tỉnh, thành phố) d/ Khoa trường có số sinh viên cao nhất? e/ Cho biết tên hiệu trưởng trường có khoa TINHOC 87 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: Q1: Tìm tên nhân viên quan có mã số 50 Q2: Tìm 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 Cho sở liệu quản lý dự án gồm bảng liệu sau: + Bảng NHANVIEN chứa danh sách nhân viên gồm thuộc tính sau: Tên Thuộc tính MaNV Hoten Ngaysinh GT Giải thích Mã nhân viên Họ tên nhân viên Ngày sinh Giới tính + Bảng DU_AN chứa thơng tin dự án gồm có thuộc tính sau: Tên Thuộc tính MaDA TenDA NganSach Giải thích Mã dự án Tên dự án Ngân sách + Bảng THAMGIA ghi danh sách sinh viên đăng ký tham gia dự án Tên Thuộc tính MaDA MaNV TGBD TGKT Giải thích Mã dự án Mã nhân viên Thời gian bắt đầu Thời gian kết thúc Biểu diễn ngôn ngữ SQL, đại số quan hệ yêu cầu sau đây: a/ Đưa danh sách nhân viên ? b/ Đưa danh sách nhân viên có giới tính ? 88 c/ Đưa danh sách dự án có ngân sách lớn ? d/ Cho biết nhân viên tham gia tổng số dự án ? e/ Cho biết dự án có tổng số nhân viên tham gia ? f/ Cho biết mã tên dự án có số tổng số nhân viên tham gia >=10 người ? g/ Cho biết mã tên nhân viên tham gia dự án có tên dự án ‘Dự án nước nông thôn’ ? h/ Đưa mã tên dự án mà nhân viên có mã NV01 tham gia ? i/ Đưa danh sách nhân viên chưa tham gia dự án ? k/ Cho biết thơng tin nhân viên tham gia dự án ? m/ Đưa danh sách dự án có xếp giảm dần theo ngân sách ? Cho sở liệu gồm bảng liệu sau: + Bảng NSX (nước sản xuất) Tên Thuộc tính MaNSX TenNSX Giải thích Mã nhà sản xuất Tên nhà sản xuất + Bảng SANPHAM (sản phẩm) Tên Thuộc tính MaSP TenSP DVT NgaySX SoLuong ChungLoai MaNSX Giải thích Mã sản phẩm Tên sản phẩm Đơn vị tính Ngày sản xuất Số lượng Chủng loại Mã nhà sản xuất Biểu diễn ngôn ngữ SQL, đại số quan hệ yêu cầu sau đây: a) Cho biết mã tên nhà sản xuất sản xuất sản phẩm có tên ‘Máy lọc nước’? b) Cho biết mã, tên, số lượng, ngày sản xuất sản phẩm nhà sản xuất có mã ‘N01’ sản xuất? c) Hãy tổng hợp thông tin loại sản phẩm nhà sản xuất(gồm thuộc tính sau: MaSP, TenSP, DVT, TongSoLuong)? d) Cho biết nhà sản xuất sản xuất tổng số loại sản phẩm? 89 e) Cho biết danh sách sản phẩm nhà sản xuất có tên ‘Panasonic’ sản xuất? Cho sở liệu quản lý điểm gồm bảng sau: + Bảng LopHoc gồm thuộc tính Tên Thuộc tính MaLop TenLop Giải thích Mã lớp Tên lớp +Bảng SinhVien gồm thuộc tính Tên Thuộc tính MaSV HoTen NS GT DC MaLop Giải thích Mã sinh viên Họ tên sinh viên Ngày sinh Giới tính Địa Mã lớp + Bảng MonHoc gồm thuộc tính Tên Thuộc tính MaMon TenMon TC Giải thích Mã mơn Tên mơn Số tín +Bảng Diem gồm thuộc tính Tên Thuộc tính MaSV MaMon Ky DiemLan1 DiemLan2 Giải thích Mã sinh viên Mã môn Kỳ thi Điểm thi lần thi Điểm thi lần Hãy biểu diễn yêu cầu sau ngôn ngữ SQL: a) Cho biết danh sách sinh viên có giới tính ? b) Cho biết danh sách sinh viên có địa Thái Nguyên? c) Cho biết mã tên điểm thi lần sinh viên học mơn học có mã MH01? d) Cho biết mã tên điểm thi lần sinh viên học mơn học có tên mơn Cơ sở liệu? 90 e) Cho biết danh sách sinh viên phải thi lại mơn học có tên mơn Cơ sở liệu? f) Cho biết sinh viên có mã SV01 phải thi lại mơn học nào? g) Cho biết điểm cao thi cao môn học Hệ quản trị sở liệu bao nhiêu? h) Cho biết sinh viên đạt điểm thi cao môn Cơ sở liệu? 91 Chương TỐI ƯU HỐ 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 tố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 hố 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 Đề-các 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 ngơi thành 92 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 = F1 x F2 ∪ F1 x F3 ⇒ F = F1 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 tố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 ngơi cần tính tố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 5.2 Các phép biến đổi tương đương 1-Phép giao hoán Nếu R1 R2 hai quan hệ, F điều kiện thuộc tính R R2 R1 F R2 ≡ R2 F R1 ; R1*R2 ≡ R2* R1; R1 x R2 ≡ R2 x R1 2- Phép kết hợp Nếu R1, R2 R3 quan hệ, F1 F2 biểu thức điều kiện (R1 x R2) x R3 ≡ R1 x (R2 x R3); (R1 F1 R2) F2 R3 ≡ R F1 (R2 F2 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 tố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 93 σ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(R1) x (R2) -Nếu F = F1∧F2 F1 liên quan đến R1; F2 liên quan đến R2 σF(R1 x R2) ≡ σF1(R1) x σF2(R2) -Nếu F1 liên quan đến R1, F2 liên quan đến R1 R2 σF(R1 x R2) ≡ σF2(σF1(R1) x R2) 7- Giao hoán phép chọn phép hợp σF(R1 ∪ R2) ≡ σF(R1) ∪ σF(R2) 8- Giao hoán phép chọn phép trừ σF(R1 - R2) ≡ σF(R1) - σF(R2) 9- Giao hoán phép chiếu phép tích Đề Nếu thuộc tính A1, A2, ,An ∈ R1; B1, B2, ,Bn ∈ R2 Ta có: ΠA1A2…An,B1B2….Bn (R1 x R2) ≡ ΠA1A2 An,(R1) x ΠB1B2 Bn (R2) 10-Giao hoán phép chiếu phép hợp ΠA1A2…An (R1 ∪ R2) ≡ ΠA1A2 An,(R1) ∪ ΠA1A2 An (R2) Ví dụ: Cho sở liệu gồm bảng liệu sau Bảng Công Ty (CONGTY) gồm thuộc tính: Mã cơng ty (MaCongTy), Tên công ty (TenCongTy), Ngân sách (NganSach), Địa (DiaChi) Bảng Hàng Hố (HANGHOA) gồm thuộc tính: Mã hàng (MaHang), Tên hàng (TenHang), Mầu sắc (Mau), Đơn vị tính (DonViTinh) Bảng Cung Cấp hàng (CUNGCAP) gồm thuộc tính: MaCongTy, MaHang, Số lượng (SoLuong), Đơn giá (DonGia) Yêu cầu: Cho biết tên công ty cung cấp mặt hàng màu đỏ 1/ Dùng đại số quan hệ ΠTenCongTy(σMau =”đỏ”(σCongTy.MaCongTy = CungCap.MaCongTy 94 ... THUYẾT THẾ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 hệ có thuộc tính... thực cần thiết 1.2 Hệ sở liệu 1.2.1 Các thành phần hệ sở liệu Người dùng Các ứng dụng Hệ quản trị sở liệu Phần cứng Cơ sở liệu Hình 1.1 : Các thành phần hệ sở liệu Các thành phần hệ CSDL gồm: - Người... trúc hệ sở liệu .4 1.1 Giới thiệu thống quản lý tệp truyền thống .5 1.2 Hệ sở liệu 1.2.1 Các thành phần hệ sở liệu 1.2.2 Kiến trúc hệ sở liệu 1.3 Phân loại hệ sở liệu