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.
Trang 1MỤC LỤC
LỜI NÓI ĐẦU 4
CHƯƠNG 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU 5
1.1 MỘT SỐ KHÁI NIỆM CƠ BẢN 5
1.1.1 Định nghĩa cơ sở dữ liệu 5
1.1.2 Định nghĩa môn cơ sở dữliệu 5
1.1.3 Định nghĩa dữ liệu 5
1.2 THUẬN LỢI VÀ BẤT LỢI KHI TIẾP CẬN CSDL 5
1.2.1 Thuận lợi 5
1.2.2 Bất lợi 6
1.3 HỆ THỐNG CSDL 7
1.3.1 Giới thiệu 7
1.3.2 Các thành phần của một hệ thống CSDL 7
1.4 HỆ QUẢN TRỊ CSDL 8
1.5 CÁC GIAI ĐOẠN PHÁT TRIỂN CỦA HỆ THỐNG CSDL 8
1.5.1 Lịch sử của các hệ thống CSDL 8
1.5.2 Hệ thống xử lý tệp cổ điển 9
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ệ và sơ đồ CSDL 13
2.1.4 Miền giá trị và thuộc tính 14
2.1.5 Giá trị rỗng (NULL) 14
2.1.6 Khoá của 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 ngoài (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 toán 22
2.2.11 Một vài ký hiệu khác cho các phép toá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 là bộ 22
2.3.2 Ngôn ngữ tân từ có biến là miền giá trị 23
CÂU HỎI 23
Trang 2BÀ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 một CSDL 27
3.2.5 Xóa một CSDL 27
3.3 CÁC LỆNH CẬP NHẬT DỮ LIỆU 28
3.3.1 Sửa dữ liệu 28
3.3.2 Xoá dữ liệu 28
3.3.3 Thêm dữ 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 con 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 trên một quan hệ 41
4.3.2 Ràng buộc toàn vẹn trê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 cơ bản trên SQL Server 2005 Express 55
5.3 GIỚI THIỆU TRANSACT-SQL (T-SQL) 58
5.3.1 Kiểu dữ 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
Trang 35.4 THAO TÁC TẠO TRIGGER 61
5.4.1 Trigger là gì? 61
5.4.2 Cách hoạt động của 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 hoá 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 các constraint trong một 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
Trang 4LỜI NÓI ĐẦU
Tài liệu được biên soạn theo đề cương chi tiết học phần Cơ sở dữ liệu (CSDL)ngành Tin học ứng dụng theo phương thức đào tạo tín chỉ của Trường Cao ĐẳngBến Tre Tài liệu trình bày khá đầy đủ các vấn đề cơ bản về Cơ sở dữ liệu với mụcđích trang bị cho sinh viên kiến thức nền tảng về lĩnh vực này
Tài liệu được thiết kế theo khung mẫu mới nhằm phát huy khả năng tự học của sinhviên Nó không những giúp truyền đạt, tái tạo thông tin mà còn là công cụ điềukhiển hoạt động dạy và học, tạo động cơ hứng thú học tập, ôn tập, kiểm tra đánhgiá
Tài liệu được chia thành 5 chương với nội dung như sau:
Chương 1: Tổng quan về Cơ sở dữ liệu
Giới thiệu tổng quan về CSDL; ưu, khuyết điểm khi tiếp cận CSDL;chức năng, vai trò của hệ quản trị CSDL và sơ lược về lịch sử phát triểncủa hệ thống CSDL
Chương 2: Mô hình quan hệ
Giới thiệu một số khái niệm cơ bản về mô hình quan hệ, các phép toánĐại số quan hệ và ngôn ngữ tân từ để thao tác trên CSDL
Chương 3: Ngôn ngữ truy vấn dữ liệu
Giới thiệu một số lệnh định nghĩa và cập nhật sơ đồ CSDL, cập nhật dữliệu và truy vấn dữ liệu
Chương 4: Ràng buộc toàn vẹn
Giới thiệu một số loại ràng buộc toàn vẹn (RBTV) và cách mô tả chúng.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)
Hướng dẫn cách cài đặt SQL Server 2005 Express, một số các thao tác
cơ bản tác động lên CSDL, giới thiệu ngôn ngữ T-SQL, cách tạo Trigger
và Constraint trên SQL Server 2005 Express
Nội dung trong từng chương được trình bày ngắn gọn, có nhiều ví dụ minh hoạ.Cuối mỗi chương đều có hệ thống bài tập để sinh viên luyện tập Cuối tài liệu cómột số câu hỏi trắc nghiệm để sinh viên tự kiểm tra, đánh giá kiến thức Tôi mongrằng việc kết hợp tài liệu cùng với bài giảng trên lớp sinh viên có thể rèn luyệnđược nhiều kỹ năng, giành được nhiều kiến thức cho bản thân từ môn học này
Trang 5CHƯƠNG 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU
Chương này giới thiệu tổng quan về CSDL, các thuận lợi và bất lợi khi tiếp cậnCSDL, chức năng, vai trò của hệ quản trị CSDL và giới thiệu sơ lược về lịch sử pháttriển của hệ thống CSDL
MỤC TIÊU
Học xong chương này sinh viên có khả năng:
- Ghi nhớ được các thành phần tham gia vào hệ thống CSDL.
- Ghi nhớ được các giai đoạn phát triển của hệ thống CSDL.
- Phân biệt được dữ liệu và CSDL.
- Phân tích được những thuận lợi và bất lợi khi tiếp cận CSDL.
- Phát biểu được những nhiệm vụ chính của một hệ quản trị CSDL.
1.1 MỘT SỐ KHÁI NIỆM CƠ BẢN
1.1.1 Định nghĩa cơ sở dữ liệu
Cơ sở dữ liệu là tập dữ liệu đã được tổ chức nhằm mô hình lại các khía cạnh thực tế
có liên quan Chúng được lưu trữ ở bộ nhớ ngoài
1.1.2 Định nghĩa môn cơ sở dữ liệu
Môn CSDL là lĩnh vực của tin học chuyên nghiên cứu các cơ chế, nguyên lý,phương pháp tổ chức các nhóm dữ liệu trên các bộ nhớ ngoài nhằm phục vụ choviệc khai thác dữ liệu được tốt hơn
1.1.3 Định nghĩa dữ liệu
Dữ liệu là thông tin ngoài thực tế đã được đưa vào máy tính Chẳng hạn trong thôngtin về các cuốn sách, dữ liệu bao gồm các sự kiện như tên sách, năm xuất bản, nhàxuất bản,… Dữ liệu khi đưa vào máy tính thường được định dạng thành một trongnhững loại như văn bản, hình ảnh, âm thanh hay các đ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 dữ liệu
Khi có hai ứng dụng khác nhau cùng đòi hỏi những tập dữ liệu như nhau thì chỉ lưutrữ một lần và dùng chung cho cả hai ứng dụng nói trên Điều này giảm được dưthừa dữ liệu Tuy nhiên việc dư thừa dữ liệu không thể hết một cách tuyệt đối,chẳng hạn các dữ liệu dùng để liên kết các tập tin khác nhau vẫn được lưu trữ trênnhiều tập tin
Có thể tránh được sự không nhất quán trong dữ liệu lưu trữ
Nếu dữ liệu lưu trữ ở nhiều nơi khác nhau thì có thể không nhất quán do những thaotác cập nhật (đã cập nhật trong tập tin này nhưng chưa cập nhật trong tập tin kia) Ởđây CSDL đã giảm được dư thừa thì khả năng rủi ro do thay đổi giá trị cũng giảmđi
Trang 6Tăng tính dùng chung dữ liệu
Một CSDL được thiết kế để phục vụ chung cho tất cả các ứng dụng Mỗi nhómngười dùng nhìn nhận CSDL như chỉ có một mình họ sử dụng dữ liệu
Tính chuẩn hoá cao
Khi dữ liệu được sử dụng trong nhiều lĩnh vực thì chúng càng ngày càng đượcchuẩn hoá cho phù hợp với nhiều nhu cầu Việc theo chuẩn chung cho phép tănghiệu quả sử dụng dữ liệu
Tăng tính an toàn dữ liệu
Người quản trị CSDL có thể cấp quyền sử dụng dữ liệu cho các nhóm người dùngtùy thuộc thẩm quyền của họ Đồng thời cũng có thể kiểm tra các ý đồ truy xuất đến
dữ liệu mật
Có thể giữ được sự toàn vẹn dữ liệu
CSDL chỉ được chứa các dữ liệu đúng Nhờ sự quản lý tập trung, nó cho phép ngườiquản trị định ra các thủ tục kiểm tra cần thiết khi thực hiện các thao tác cập nhật
Ví dụ: Số lượng hàng bán không thể vượt quá số lượng hàng đang tồn
Có thể đảm bảo tính độc lập dữ liệu cao
Giảm bớt việc bảo trì các chương trình
1.2.2 Bất lợi
Như với bất kỳ quyết định kinh doanh nào, ứng dụng theo hướng CSDL cần trả giá
và chịu một vài rủi ro như cần đến nhân sự mới và chuyên sâu, chi phí quản lý vàthực hiện, giải quyết va chạm tâm lý,…
Nhu cầu về nhân sự mới, chuyên môn
Cần phải thuê hay tự đào tạo các chuyên gia công nghệ thông tin để phân tích, thiết
kế, thực hiện CSDL trong tổ chức Mặc khác, công nghệ ngày càng phát triển nhanh
đã khiến các hệ thống CSDL thường xuyên cập nhật tri thức cho các cán bộ
Chi phí về quản lý, thực hiện
Hệ thống quản trị CSDL nhiều người dùng thường lớn và phức tạp, đòi hỏi nhiềungười tham gia và 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 khi áp dụng CSDL, tổ chức đã xử lý dữ 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ý dữ liệu sang cách tiếp cậnmới, tổ chức cần có kinh phí chuyển các mô hình cũ sang mô hình mới, chuyển đổi
dữ liệu cho phù hợp với môi trường mới
Nhu cầu sao chép và khôi phục dữ liệu
Tuy không mong muốn, nhưng đôi khi vẫn xẩy ra rủi ro với CSDL như mất dữ liệu,hỏng phần mềm, hư phần cứng,…Hệ thống CSDL có các công cụ cho phép saochép dữ liệu phòng khi hỏng hóc và khôi phục lại dữ liệu khi xảy ra sự cố
Va chạm về quan điểm sử dụng CSDL
Trang 7Trước khi CSDL được áp dụng trong tổ chức, người ta cần thống nhất về mô tả dữliệu, các khuôn dạng thể hiện dữ liệu,… Sau khi hình thành CSDL, việc sử dụng dữliệu của CSDL cần đạt hiệu quả Cần khuyến khích các bộ phận phát huy tốt hệthống CSDL vì rất có thể một số bộ phận nào đó muốn độc quyền thông tin hay engại dùng hệ thống tự động hoá, cho nên có xu hướng giảm hiệu quả của CSDL.
1.3 HỆ THỐNG CSDL
1.3.1 Giới thiệu
Hệ thống CSDL là hệ thống thông tin, cho phép người sử dụng dùng chung các dữliệu có trong hệ thống Khái niệm dùng chung, chia sẽ dữ liệu được dùng rộng rãitrong nhiều ứng dụng với nghĩa nhiều người dùng cùng truy cập một dữ liệu tạicùng một thời điểm Vì vậy, hệ quản trị CSDL cần điều khiển sự tương tranh giữacác thao tác của nhiều ứng dụng Có thể thao tác này cần cập nhật dữ liệu trong khithao tác khác chỉ đọc dữ liệu này Chẳng hạn trong hệ thống quản lý sách, nơi nàycho độc giả mượn một cuốn sách, đang thể hiện trạng thái đánh dấu “đã cho mượn”vào thông tin của cuốn sách trong CSDL thì nơi khác cũng đang cho độc giả khácmượn cuốn sách đó
Hệ thống CSDL còn đảm bảo tính an toàn và toàn vẹn của dữ liệu Dữ liệu an toàn
có nghĩa giữ được bí mật Hệ thống ngăn cản các truy cập không hợp lệ và khôiphục các sai sót trên dữ liệu nếu chẳng may sự an toàn không đảm bảo được Người
ta hay đề cập tính toàn vẹn của dữ liệu khi nói về tính an toàn Tính toàn vẹn liênquan đến các điều kiện mà dữ liệu cần thỏa mãn Các điều kiện, hay các ràng buộctrên dữ liệu cũng quan trọng đối với dữ liệu Chẳng hạn số sách đã đăng ký trong hệthống quản lý sách phải luôn bằng tổng số sách trong kho và số sách độc giả mượn.Quản lý các sai sót dữ liệu và điều khiển tính toàn vẹn dữ liệu đòi hỏi qui trình phứctạp trong hệ quản trị CSDL
1.3.2 Các thành phần của một hệ thống CSDL
Nhìn tổng quát, hệ thống CSDL gồm những thành phần sau:
- Người dùng: Người dùng là người tiếp xúc với dữ liệu thông qua các ứng dụng,
tức là thực hiện các phép như thêm, xoá, thay đổi dữ liệu hay yêu cầu nhận các dữ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 dữ liệu
đều được coi như ứng dụng của hệ thống CSDL
- Hệ quản trị CSDL: Hệ quản trị CSDL là phần mềm ứng dụng dùng để tạo mới,
bảo trì và đảm bảo truy cập có điều khiển đến các CSDL của người dùng
- Dữ liệu: Là thông tin liên quan đến ứng dụng, được lưu trữ trong các tập tin
CSDL
- Hệ thống chủ: Hệ thống chủ là hệ thống máy tính quản lý các tập tin Nó thực
hiện việc truy cập tập tin dữ liệu Vai trò của hệ quản trị CSDL là yêu cầu cácphương tiện lưu trữ tập tin phục vụ các ứng dụng Do vậy, hệ quản trị CSDL làphần mềm nằm trong phần mềm của hệ thống chủ
- Cơ sở dữ liệu: CSDL là tập các dữ liệu liên quan logic với nhau, được thiết kế để
phục vụ các nhu cầu về thông tin của nhiều người dùng trong tổ chức
Trang 8- Giao diện người dùng: Giao diện người dùng hay giao diện người sử dụng là các
phương tiện cho phép người dùng thao tác với các thành phần của hệ thốngCSDL
- Người quản trị CSDL: Người quản trị CSDL là người có quyền điều khiển tập
trung trên toàn bộ hệ thống, về cả dữ liệu lẫn các chương trình truy xuất các dữliệu đó Họ chuyên về công nghệ thông tin, có nhiệm vụ tạo mới CSDL và cài đặtcác điều khiển kỹ thuật
- Người phát triển hệ thống: Những người như phân tích viên hệ thống, lập trình
viên được gọi là người phát triển hệ thống
1.4 HỆ QUẢN TRỊ CSDL
Hệ quản trị CSDL là một hệ thống phần mềm nhằm cung cấp cho người sử dụngmột môi trường vừa thích hợp, vừa hiệu quả để khai thác CSDL theo 3 chức năng
mô tả, lưu trữ, tìm kiếm, và cập nhật dữ liệu
Như vậy, HQTCSDL phải được thiết kế sao cho quản trị được một khối lượng lớn
dữ liệu Công việc quản trị bao gồm:
- Định nghĩa các cấu trúc để lưu trữ thông tin
- Cung cấp cơ chế để sử dụng thông tin
- Tạo sự an toàn cho dữ liệu dù có bất trắc của 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ử của các hệ thống CSDL
Các hệ thống CSDL được giới thiệu vào những năm 60 của thế kỉ XX và đã pháttriển liên tục trong hàng chục năm qua Một số công nghệ về CSDL đã phát triển lâudài như mô hình quan hệ có từ năm 1970 nhưng các hệ thống CSDL theo mô hìnhquan hệ có ý nghĩa thương mại chỉ vào những năm 80 Các hệ thống CSDL đã khắcphục được nhiều hạn chế của hệ thống xử lý tệp truyền thống Để đánh giá những gì
đã đạt được trong thời gian qua của các hệ thống CSDL, người ta luôn nhìn nhậnviệc phát triển, tiến hoá theo các mục đích:
- Cần thiết đảm bảo độc lập giữa chương trình và dữ liệu, giảm chi phí bảo trì
- Mong muốn quản lý nhiều loại dữ lịêu và cấu trúc dữ liệu phức tạp
- Yêu cầu truy cập dễ dàng đến dữ liệu cho dù người dùng là chuyên viên côngnghệ thông tin hay không
Từ năm 1960-1970: Các hệ thống xử lý tệp vẫn còn thông dụng trong giai đoạn
này Tuy nhiên, các hệ thống CSDL đầu tiên đã được giới thiệu, dù còn cồng kềnh.Thực ra, mô hình phân cấp và mô hình mạng đã tạo nên thế hệ thứ nhất cho hệthống CSDL
Từ năm 1970-1980: Các hệ thống theo thế hệ thứ nhất vẫn được phát huy và có
nhiều sản phẩm thương mại Tuy nhiên, hai mô hình phân cấp và mạng vẫn đượcdùng rộng rãi mặc dù chúng vẫn có các nhược điểm như: Các thủ tục tìm kiếm bảnghi, người ta khó truy cập dữ liệu; tính độc lập giữa chương trình và dữ liệu chưathật tốt; chưa có cơ sở lý thuyết hoàn thiện
Từ năm 1980-1990: Mô hình quan hệ của E.F.Codd đã khắc phục nhược điểm của
hai mô hình CSDL trên Mô hình CSDL quan hệ tạo nên các hệ thống CSDL thế hệ
Trang 9thứ hai Các hệ thống quan hệ được bán nhiều trên thị trường và chiếm ưu thế so vớicác hệ thống CSDL khác Người ta dùng ngôn ngữ SQL và các ngôn ngữ khác đểtruy cập dữ liệu.
Từ năm 1990-2000: Những năm này, người ta vẫn sử dụng các CSDL trong những
năm 80 của thế kỷ XX để quản trị dữ liệu với cấu trúc phức tạp như dữ liệu kế toántài chính, dữ liệu đa phương tiện (âm thanh, đồ hoạ, hình ảnh) Trong những năm
90, vấn đề hướng đối tượng không những được đề cập trong ngành CSDL mà còntrong nhiều ngành tin học khác Tuy nhiên cho đến nay chẳng có mấy hệ thốngCSDL hướng đối tượng xuất hiện trên thị trường
Từ năm 2000 trở đi: Trong chục năm tới, công nghệ về CSDL có thể có những đột
phá đáng ngạc nhiên Tuy nhiên người ta vẫn vạch ra các hướng vững chắc:
- Các kiểu dữ liệu phức tạp được quản lý tốt hơn Chúng gồm dữ liệu đa chiều, phùhợp với các ứng dụng của kho dữ liệu
- Phát triển tiếp tục cá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 các CSDL có khả năng quản lý nhiều loại dữ liệu
đa dạng, thuận tiện cho các ứng dụng CSDL trên mạng Internet
- Các CSDL phân tán sẽ trở thành hiện thực Do vậy các tổ chức có thể phân bố các
dữ liệu tại nhiều địa điểm xa nhau về không gian
- Việc lưu trữ dữ liệu theo địa chỉ và nội dung sẽ thông dụng hơn Điều này chophép người dùng truy cập dữ liệu theo nội dung của dữ liệu, mà không cần biếtcách thức truy cập các dữ liệu này
- Các công nghệ về CSDL, trí tuệ nhân tạo và các dịch vụ thông tin sẽ tạo nên môitrường truy cập dữ liệu dễ dàng hơn, chẳng hạn giao tiếp bằng ngôn ngữ tự nhiên
- Mô hình phân cấp và mô hình mạng được coi là đại diện cho các hệ thống CSDLthế hệ thứ nhất Mô hình quan hệ đại diện cho hệ thống CSDL thế hệ thứ hai Các
mô hình CSDL thế hệ sau được kể ra gồm mô hình hướng đối tượng, mô hìnhphâ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 đây thì các bộ phận của công ty được tổ chức lưu trữ
dữ liệu theo từng tập tin độc lập, không có liên quan với nhau Các ứng dụng củamỗi bộ phận được phát triển riêng lẽ và chỉ truy cập đến dữ liệu của riêng bộ phận
đó, không có một mô hình tổng thể cho toàn công ty Hệ thống này nhanh hơn thaotác thủ công nhưng còn nhiều hạn chế
- Dễ xảy ra tình trạng dữ liệu bị trùng lắp, phán tán, thiếu nhất quán
Ví dụ: Trong một trường đại học, kết quả học tập của sinh viên được lưu ở phòng
Đào tạo, đồng thời cũng được lưu ở phòng Tài vụ để căn cứ vào đó mà phát học
bổng (gây dư thừa dữ liệu) Nếu kết quả học tập của một sinh viên nào đó đang bị
sụt giảm, không còn được nhận học bổng nhưng do phòng tài vụ không cập nhật kịp
thời thông tin nên vẫn tiếp tục duy trì học bổng cho em (do dữ liệu không nhất quán).
- Số lượng dữ liệu tăng nhanh
- Sự chia sẽ dữ liệu bị hạn chế
Trang 10- Chương trình ứng dụng làm chủ các cách tổ chức số liệu nên nó bị phụ thuộc dữliệu Hơn nữa, phí tổn viết và bảo trì chương trình cao.
- Các mối liên hệ giữa các thông tin không được chú 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 cây được tổ chức theo cấu trúc từ trênxuống dưới giống như cây lộn ngược Mỗi nút tương ứng với một kiểu dữ liệu, cóthể có một hoặc nhiều trường, mô tả thực thể và một nhánh cây tạo nên một liên kếtgiữa kiểu dữ liệu này với kiểu dữ liệu khác Mỗi nút đều có một nút cha và nhiềunút con, trừ nút gốc là không có cha
Ví dụ:
Hình 1.1: Một ví dụ về mô hình phân cấp.
Tuy nhiên, mô hình chỉ thể hiện được quan hệ 1-n, tức là mô tả được trường hợp nútcha có nhiều nút con như một phòng thì có thể có nhiều nhân viên hay một phòng
có thể có nhiều dự án, còn trường hợp ngược lại thì không Chẳng hạn nếu một dự
án mà thuộc về nhiều phòng thì dự án phải được lưu ở nhiều nơi khác nhau Điềunày gây dư thừa dữ liệu và lãng phí không gian lưu trữ
Điểm nổi bật trong các thủ tục truy xuất đến một đối tượng trong mô hình phân cấp
là đường dẫn đi từ gốc đến phần tử cần xét trong cây phân cấp
1.5.4 Mô hình mạng
Mô hình mạng được biểu diễn như một đồ thị có hướng Mỗi nút có thể nối với mộtnút bất kỳ để biểu diễn một liên kết 1-n thông qua con trỏ liên kết Sự khác nhauchính giữa hệ thống mạng và hệ thống phân cấp là mô hình mạng không ràng buộc
về số và hướng của các liên kết thiết lặp giữa các nút
PHÒNG
Trang 11Ví dụ:
Hình 1.2: Một ví dụ về mô hình mạng.
1.5.5 Mô hình quan hệ
Cơ sở dữ liệu quan hệ được xây dựng theo lý thuyết do E.F.Codd giới thiệu năm
1970 Thuật ngữ “quan hệ” là do bảng dữ liệu hai chiều được Codd gọi là bảng quan
hệ Mô hình quan hệ khác hẳn với các mô hình trước nó và từ năm 1980 đã trởthành mô hình được dùng rộng rãi để phát triển hệ quản trị CSDL
Theo mô hình quan hệ, dữ liệu được thể hiện trong bảng hai chiều, gồm các dòng vàcột Các bảng gọi là các “quan hệ”, các dòng gọi là các “bộ” và cột là “thuộc tính”.Theo cách nhìn của các mô hình trước thì mỗi dòng là một bản ghi, các thuộc tínhcho biết ý nghĩa của các giá trị trong bản ghi
Ví dụ: Cho hai quan hệ KHÁCH HÀNG và ĐƠN HÀNG như sau:
Cơ sở dữ liệu quan hệ dùng các thuộc tính để liên kết dữ liệu giữa các bảng khácnhau thay vì dùng con trỏ để liên kết tập bản ghi như trong mô hình mạng Chẳng
hạn thuộc tính mã của bảng KHÁCH HÀNG và thuộc tính khách hàng của bảng
ĐƠN HÀNG là hai thuộc tính dùng để liên kết hai bảng quan hệ này Đi sâu vào chitiết của mô hình quan hệ sẽ được giới thiệu trong Chương 2
quản lý
Trang 121.5.6 Mô hình hướng đối tượng
Mô hình phân cấp và mô hình mạng được xếp vào thế hệ đầu của CSDL Thế hệ thứhai của các hệ quản trị CSDL có mô hình quan hệ Các mô hình này được xem là
mô hình cổ điển Mô hình mới nhất được xếp vào thế hệ thứ ba của CSDL là môhình hướng đối tượng Công nghệ CSDL hướng đối tượng dùng lược đồ gồm tậpcác “lớp” Mỗi lớp được mô tả gồm tập các “thuộc tính” và “phương thức” Mỗi đốitượng thuộc lớp đều mang đầy đủ các thuộc tính và phương thức của lớp đó
Thế hệ thứ ba của hệ quản trị nhằm đáp ứng các yêu cầu về:
- Các ứng dụng mới của công nghệ thông tin.
- Khai thác trong môi trường phức tạp như phân tán, không đồng nhất,…
- Xử lý các dữ liệu hướng đối tượng và thực hiện suy diễn trên các dữ liệu.
Theo cách tổ chức CSDL truyền thống, người ta có thể viết đoạn chương trình riêng
để mô tả các phương thức và dùng một giao diện để liên kết với hệ quản trị Tuynhiên điều quan trọng cần lưu ý là trong CSDL truyền thống phần chương trình này
là độc lập, còn trong CSDL hướng đối tượng thì chương trình này được mô tả nhưmột đối tượng của CSDL Vậy bằng công cụ đối tượng và phương thức, người ta cóthể lưu trữ và chia sẻ không những cấu trúc của đối tượng CSDL, mà còn cả cáchành vi của các đối tượng
Tuy tiếp cận hướng đối tượng được phổ biến vào đầu những năm 90 của thế kỷ XXnhưng đến nay vẫn chưa có nhiều CSDL thuộc loại này do nó còn nhiều khuyếtđiểm:
- Chưa thống nhất rõ ràng các lĩnh vực của lý thuyết.
- Chưa có phương pháp luận thiết kế CSDL hướng đối tượng theo cách hình thức
như việc chuẩn hoá trong CSDL quan hệ Rất ít hướng dẫn thiết kế CSDL hướngđối tượng cho phép tối ưu hoá Điều này khiến hệ thống không hiệu quả
- Các hệ thống chưa có khả năng cho phép người dùng hỏi các câu hỏi tùy ý.
- Hệ thống thiếu các luật về tính toàn vẹn tổng quát.
CÂU HỎI
Học xong chương này sinh viên cần trả lời được các câu hỏi sau:
1 Cơ sở dữ liệu khác với dữ liệu ở điểm nào?
2 Lĩnh vực CSDL nghiên cứu gì?
3 Từ việc quản lý dữ liệu một cách thủ công chuyển sang quản lý dữ liệu bằng một
hệ thống CSDL thì có các thuận lợi và bất lợi nào?
4 Các đối tượng nào tham gia vào hệ thống CSDL?
5 Hệ quản trị CSDL là gì? Có những chức năng nào?
6 Những điểm hạn chế của các mô hình hệ thống cũ?
Trang 13CHƯƠNG 2
MÔ HÌNH QUAN HỆ
Chương này chủ yếu giới thiệu về:
- Một số khái niệm cơ bản của mô hình quan hệ như bảng quan hệ, bộ, sơ đồ quan
hệ, sơ đồ cơ sở dữ liệu, thuộc tính, miền giá trị, khóa
- Các phép toán Đại số quan hệ.
- Ngôn ngữ tân từ.
MỤC TIÊU
Học xong chương này sinh viên có khả năng:
- Định nghĩa lại được các khái niệm cơ bản về mô hình quan hệ.
- Vận dụng các phép toán của đại số quan hệ để đặt các câu hỏi trên một CSDL.
2.1 KHÁI NIỆM CƠ BẢN
2.1.1 Bảng quan hệ
Bảng quan hệ là hình ảnh trực quan của quan hệ Nó gồm các dòng và các cột Cáccột ứng với các thuộc tính, các dòng ứng với các bộ, dùng để lưu trữ thông tin củaquan hệ
Ví dụ: Cho quan hệ SINHVIEN như sau:
A01 Nguyễn văn Tâm Nam 20/3/1992 Bến Tre CnttA02 Trần Trọng Nhân Nam 7/9/1990 Cần Thơ cntt
A04 Lê Thiên Kiều nữ 19/9/1990 Cần Thơ CnttA05 Châu Thanh Trúc Nam 3/6/1992 Long An ktcnA06 Thái Ngọc Huy Nam 7/7/1990 Kiên Giang ktcnKhông được có hai dòng giống nhau trên cùng một bảng
Bộ là một dòng của bảng quan hệ Nó gồm tập tất cả các thuộc tính trong bảng quan
hệ Bộ còn được gọi là mẫu tin hay record
Ví dụ: ('cntt', 'công nghệ thông tin') là một bộ của quan hệ Khoa
2.1.3 Sơ đồ quan hệ và sơ đồ CSDL
Sơ đồ quan hệ: Là tập hợp gồm tên các thuộc tính của quan hệ đó Nó có dạng:
R(A1, A2,…, An)
- R là bảng quan hệ.
- A1, A2,…, An: Là các thuộc tính của quan hệ R
Ví dụ: Sinhvien(masv, hosv, tensv, phai, ngaysinh, noisinh, que, mak) là sơ đồ quan
hệ của bảng Sinh viên
Sơ đồ CSDL: Là tập hợp tất cả các sơ đồ quan hệ có trong CSDL đó.
Trang 14Ví dụ: Sau đây là sơ đồ CSDL quản lý sinh viên.
Khoa(mak, tenk)
Sinhvien(masv, hosv, tensv, phai, ngaysinh, noisinh, que, mak)
Ketqua(masv, mamh, diem)
Ví dụ: - Thuộc tính điểm của quan hệ kết quả (Ketqua) có kiểu dữ liệu là kiểu sốnhưng phải có miền giá trị từ 0 đến 10
- Miền giá trị của thuộc tính phái phải là 'nam' hoặc 'nữ'
Khi xác định một thuộc tính người ta cần tính đến tên và miền giá trị của thuộc tính.Các giá trị gán cho thuộc tính cần thỏa mãn các ràng buộc về miền giá trị Thuộctính còn được gọi là trường hay field
Ví dụ: Hai sinh viên học cùng trường có mã khoa rỗng có thể không học cùng khoa
2.1.6 Khoá của quan hệ
Khoá chính (Primary key): Khoá của quan hệ là một tập nhỏ nhất các thuộc tính
mà các giá trị của các thuộc tính này dùng để phân biệt các bộ với nhau Vì vậy, dữliệu tại khóa chính không được phép trùng
Siêu khoá: Là một tập thuộc tính có chứa khoá Như vậy, khoá là một trường hợp
có chứa khóa
Khoá ngoại: Là một tập thuộc tính không phải là khoá của quan hệ R, nhưng là
khoá của quan hệ S khác (R≠S) Lúc này quan hệ S gọi là quan hệ cha, R gọi làquan hệ con Khóa ngoại dùng để liên kết hai quan hệ
2.2 ĐẠI SỐ QUAN HỆ
2.2.1 Phép chọn
Cú pháp: R:(e)
Trang 15- R: Bảng quan hệ có tập U thuộc tính.
- e: điều kiện lọc dữ liệu.
Phép chọn dùng để chọn lấy những bộ trên bảng R thỏa điều kiện e
P(U) = R:(e) = {t R | t thỏa điều kiện e}
Các phép toán có thể sử dụng trong điều kiện e:
- Các phép toán so sánh: <, =, >, , ≤,
- Các phép toán logic: (và), (hoặc), (phủ định)
Ví dụ: Cho quan hệ MONHOC như sau:
02 Cấu trúc dữ liệu 4 False
03 Phân tích hệ thống 6 False
04 Cấu trúc máy tính 4 TrueChọn ra các môn có 4 đơn vị học trình và có đề án cho sinh viên thực hiện
MONHOC:(soĐVHT = 4 coĐA)Kết quả truy vấn:
04 Cấu trúc máy tính 4 t
2.2.2 Phép chiếu
Cú pháp: R[X]
- R: Bảng quan hệ có tập U thuộc tính.
- X: Tập thuộc tính cần đưa vào kết quả truy vấn.
Phép chiếu dùng để lấy tập X thuộc tính trên quan hệ R với điều kiện X U
R[X] = {t.X | t R}
Kết quả truy vấn được tính theo 2 bước sau:
- Xoá các cột không thuộc X của bảng R.
- Xoá bớt các dòng giống nhau trong bảng kết quả, chỉ giữ lại một dòng trong số
Trang 16Ví dụ: Cho 2 quan hệ KHOA và SINHVIEN như sau:
Cntt Công nghệ thông tinKtcn Kỹ thuật công nghiệp
SINHVIE
A01 Nguyễn văn Tâm CnttA02 Trần Trọng Nhân Ktcn
A04 Lê Thiên Kiều CnttSINHVIEN x KHOA
Kết quả truy vấn:
A01 Nguyễn văn Tâm Cntt Cntt Công nghệ thông tin
A01 Nguyễn văn Tâm Cntt Ktcn Kỹ thuật công nghiệp
A02 Trần Trọng Nhân Ktcn Cntt Công nghệ thông tin
A02 Trần Trọng Nhân Ktcn Ktcn Kỹ thuật công nghiệp
A03 Lý Ngọc Diệp Cntt Cntt Công nghệ thông tin
A03 Lý Ngọc Diệp Cntt Ktcn Kỹ thuật công nghiệp
A04 Lê Thiên Kiều Cntt Cntt Công nghệ thông tin
A04 Lê Thiên Kiều Cntt Ktcn Kỹ thuật công nghiệp
Trang 17R S
Phép kết cho ta quan hệ chứa các bộ là sự phối hợp của bộ u trong quan hệ R với tất
cả các bộ v trong quan hệ S sao cho các trị trên miền thuộc tính chung của hai bộnày là giống nhau
Nếu là phép toán so sánh bằng (=) thì ta gọi đó là phép kết bằng
Nếu hai thuộc tính so sánh A và B là giống tên nhau thì trong kết quả của phép kết
sẽ loại bỏ một thuộc tính Khi đó phép kết được gọi là phép kết nối tự nhiên và ký
hiệu bằng dấu sao (*)
Ví dụ: Cho 2 quan hệ KHOA và SINHVIEN như sau:
Cntt Công nghệ thông tinKtcn Kỹ thuật công nghiệp
Kt Kinh tếCbts Chế biến thủy sản
SINHVIE N
A01 Nguyễn văn Tâm CnttA02 Trần Trọng Nhân Ktcn
A04 Lê Thiên Kiều CnttSINHVIEN KHOA
Kết quả truy vấn:
A01 Nguyễn văn Tâm Cntt Cntt Công nghệ thông tin
A02 Trần Trọng Nhân Ktcn Ktcn Kỹ thuật công nghiệp
A04 Lê Thiên Kiều Cntt Cntt Công nghệ thông tin
2.2.5 Phép kết ngoài (outer join)
Phép kết ngoài là sự mở rộng của phép kết để tránh mất thông tin Việc thực hiệnphép kết ngoài tương tự phép kết nhưng sau đó thêm vào kết quả các bộ của quan
hệ mà không phù hợp với các bộ trong quan hệ kia
Phép kết ngoài có 2 loại:
- Kết trái (left join)
- Kết phải (right join)
2.2.5.1 Kết trái (left join)
Cú pháp:
Kết trái là phép kết mà lấy hết các bộ của quan hệ bên trái
Ví dụ: Cho hai quan hệ R và S như sau:
Trang 18a3 b3 c3 Null Null Null Null
a5 b5 c5 Null Null Null Null
a7 b7 c7 a7 d7 e7 f7
Ví dụ: Cho 2 quan hệ sinh viên và kết quả có dữ liệu như sau:
2.2.5.2 Kết phải (right join)
Cú pháp:
Kết phải là phép kết mà lấy hết các bộ của quan hệ bên phải
SINHVIE
A01 Nguyễn văn Tâm CnttA02 Trần Trọng Nhân Ktcn
A04 Lê Thiên Kiều Cntt
A=B
R S
Trang 19Ví dụ: Cho hai quan hệ R và S như sau:
Null Null Null a4 d4 e4 f4
Null Null Null a6 d6 e6 f6
a7 b7 c7 a7 d7 e7 f7
2.2.6 Phép trừ
Cú pháp: R – S
- R, S là hai quan hệ có tập U thuộc tính.
Điều kiện: R và S có các thuộc tính giống nhau về số lượng lẫn ngữ nghĩa.
Phép trừ dùng để lấy những dòng thuộc quan hệ R nhưng không thuộc quan hệ S
P(U) = R - S = {t | t R, t S}
Ví dụ: Cho hai quan hệ NHANVIEN và LANHDAO như sau:
R S
Trang 20- R và S là hai quan hệ có tập U thuộc tính.
Điều kiện: R và S có các thuộc tính giống nhau về số lượng lẫn ngữ nghĩa.
Phép hợp dùng để lấy tất cả các dòng thuộc quan hệ R và tất cả các dòng thuộc S
P(U) = R S = {t | t R t S}
Ví dụ: Cho 2 quan hệ NHANVIEN và LANHDAO như trên Lập danh sách của tất
cả các nhân viên trong toàn cơ quan
BIENCHE HOPĐONGKết quả truy vấn:
- R và S là hai quan hệ có tập U thuộc tính.
Điều kiện: R và S có các thuộc tính giống nhau về số lượng lẫn ngữ nghĩa.
Phép giao lấy các dòng vừa thuộc R vừa thuộc S
P(U) = R S = {t | t R, t S}
Ví dụ: Cho 2 quan hệ:
Huy Hoàng 504 Điện Biên Phủ 14 3Tương Lai 229 Ngô Chí Thanh 6 5
Đông Nam Á 230 Ngô Gia Tự 10 1
Trang 21KHACHSAN Ten diachi phuon
Huy Hoàng 504 Điện Biên Phủ 14 3
Tương Lai 229 Ngô Chí Thanh 6 5Tìm các nơi vừa là khách sạn, vừa là nhà hàng
NHAHANG KHACHSANKết quả truy vấn:
Huy Hoàng 504 Điện Biên Phủ 14 3Tương Lai 229 Ngô Chí Thanh 6 5
Liệt kê các phi công lái được tất cả các máy bay
KHANANG MAYBAY
Kết quả truy vấn:
Ví dụ: Cho 2 quan hệ sau:
20/09/1994 013 A01 Dầu lửa lít
20/09/1994 013 B01 Đường trắng kg20/09/1994 013 B02 Đường vàng kg21/09/1994 014 A01 Dầu lửa lít
21/09/1994 014 B01 Đường trắng kg21/09/1994 014 B02 Đường vàng kg22/09/1994 015 B01 Đường trắng kg
Trang 2222/09/1994 015 B02 Đường vàng kg
2.2.10 Một số hàm tính toán
Hàm Sum(A, R): Tính tổng các giá trị trong thuộc tính A thuộc bảng R.
Hàm Avg(A, R): Tính trung bình cộng các giá trị trong thuộc tính A thuộc bảng R Hàm Max(A, R): Trả về giá trị lớn nhất trong thuộc tính A thuộc bảng R.
Hàm Min(A, R): Trả về giá trị nhỏ nhất trong thuộc tính A thuộc bảng R.
Hàm count(A, R): Đếm số dòng có trong thuộc tính A thuộc bảng R.
2.2.11 Một vài ký hiệu khác cho các phép toán quan hệ
Phép toán Ký hiệu Ký hiệu khác
- P(t): Công thức liên quan đến biến bộ t, phụ thuộc vào giá trị của t mà P(t) cho
kết quả đúng hay sai
Kết quả trả về là tập hợp các bộ t thoả P(t)
Ví dụ: Tìm tất cả những nhân viên nam
{t | NHANVIEN(t) t.Phai='Nam'}
Ví dụ: Tìm tất cả những nhân viên nữ và có lương trên 1500000
{t | NHANVIEN(t) t.Phai='Nữ' t.Luong > 1500000}
Trang 23Với mỗi biến bộ t, quan hệ R mà t biến thiên trên đó được gọi là quan hệ vùng củabiến bộ Giá trị này được chỉ định bằng điều kiện dạng R(t)
2.3.2 Ngôn ngữ tân từ có biến là miền giá trị
Dạng thức: {x1, x2,…, xn | P}
- x1, x2,…, xn là danh sách các biến miền giá trị
- P là điều kiện hay công thức theo x1, x2,…, xn
Biến miền giá trị nhận giá trị từ miền giá trị của một thuộc tính
Kết quả câu truy vấn là tập hợp các chọn lựa của các bộ x1, x2,…, xn sao cho, vớimọi i, giá trị xi được thay thế cho các biến tự do xi thì điều kiện đúng Biến xi có thể
là hằng số, khi đó tất cả các bộ trong tập hợp đều là hằng số trong vị trí i
CÂU HỎI
Nghiên cứu xong chương này sinh viên cần trả lời các câu hỏi sau:
1 Như thế nào là bảng quan hệ?
2 Một dòng trong bảng quan hệ còn có các tên gọi khác là gì?
3 Một cột trong bảng quan hệ còn có các tên gọi khác là gì?
4 Miền giá trị là gì?
5 Khóa chính là gì? Nhiệm vụ của khóa chính? Trong một quan hệ có thể có tối đabao nhiêu khóa chính?
6 Khóa ngoại là gì? Cách xác định khóa ngoại? Nhiệm vụ?
7 Đại số quan hệ có các phép toán nào? Cú pháp và ý nghĩa của từng phép toán?
Trang 248 R ÷ S
Trang 25BÀI 2: Cho CSDL Thực tập gồm 3 quan hệ:
SV(SV#, HT, NS, QUE, HL)
DT(DT#, TDT, CN, KP)
SD(SV#, DT#, NTT, KM, KQ)
Quan hệ SV(SV#, HT, NS, QUE, HL) chứa thông tin về các sinh viên trong một lớp
của một trường đại học
SV – tên quan hệ Sinh viên
SV# - mã số sinh viên
HT - họ và tên sinh viên
NS – năm sinh của sinh viên
QUE – quê (tỉnh)
HL - học lực thể hiện qua điểm trung bình
Quan hệ DT(DT#, TDT, CN, KP) chứa thông tin về các đề tài nhà trường quản lý.
DT – tên quan hệ Đề tài
DT# - mã số đề tài
TDT – tên đề tài
CN - họ và tên chủ nhiệm đề tài
KP – kinh phí cấp cho đề tài (triệu đồng)
Quan hệ SD(SV#, DT#, NTT, KM, KQ) chứa thông tin về tình hình thực tập của
các sinh viên theo các đề tài
SD – tên quan hệ Sinh viên - Đề tài
SV# - mã số sinh viên
DT# - mã số đề tài
NTT – nơi thực tập để triển khai đề tài (tỉnh)
KM - khoảng cách từ nơi thực tập đến trường
KQ - kết quả thực tập theo đề tài đã chọn
Giả thiết là một sinh viên có thể tham gia nhiều đề tài, mỗi đề tài sinh viên đó thựctập tại một địa điểm
Với mỗi câu hỏi, yêu cầu trả lời bằng một biểu thức của đại số quan hệ
Ví dụ: Cho danh sách các sinh viên trẻ (dưới 18 tuổi tính từ năm 2004), học và thựctập đều đạt loại khá/giỏi (điểm không dưới 8.5)
(SD:(KQ>=8.5)[SV#]*SV):(2014 – NS < 18 & HL >= 8.5)[HT]
Yêu cầu:
1 Cho thông tin về những sinh viên sinh trước năm 1983, quê ở Hải Phòng?
2 Cho danh sách các tỉnh có sinh viên đến thực tập?
3 Cho biết các địa điểm thực tập xa trường (KM > 100) của đề tài số 7?
4 Cho thông tin về việc thực tập tại Nha Trang của các sinh viên?
5 *Cho danh sách sinh viên thực tập tại quê nhà?
6 Cho thông tin về các đề tài có sinh viên thực tập?
7 Cho biết mã của các đề tài không có sinh viên nào tham gia?
Trang 268 Cho biết mã của những đề tài có kinh phí 1.5 triệu và những đề tài có kinh phítrên 2 triệu?
9 Cho biết mã của những sinh viên dưới 20 tuổi, thực tập khá (có điểm kết quảtrên 7)?
10.*Cho biết mã của những đề tài có địa bàn thực tập ít ra là như đề tài số 1
11.*Cho danh sách những đề tài được triển khai thực tập ở tất cả các tỉnh có sinhviên thực tập
12.*Cho danh sách những sinh viên thực tập theo đề tài có kinh phí lớn hơn mộtphần năm tổng kinh phí cấp cho các đề tài
13.*Cho danh sách các sinh viên có điểm học tập cao hơn điểm thực tập trung bìnhcủa đề tài mã số 4
Trang 27CHƯƠNG 3 NGÔN NGỮ TRUY VẤN DỮ LIỆU (SQL)
Chương này chủ yếu giới thiệu 3 tập lệnh thao tác lên CSDL gồm:
- Tập lệnh định nghĩa và cập nhật sơ đồ CSDL như tạo, xóa, chỉnh sửa cấu trúc
bảng quan hệ
- Tập lệnh cập nhật dữ liệu như thêm, sửa, xóa trên CSDL.
- Tập lệnh truy vấn dữ liệu nhằm rút trích, thống kê dữ liệu.
MỤC TIÊU
Học xong chương này sinh viên có khả năng vận dụng được ngôn ngữ SQL chuẩn
để thao tác cũng như truy vấn dữ liệu trên một CSDL bất kỳ
3.1 GIỚI THIỆU
SQL (Structured Query Language) là một ngôn ngữ hỏi hiện được sử dụng rất phổbiến trên thị trường Câu lệnh đơn giản, gần gũi với người sử dụng Nó là một ngônngữ CSDL quan hệ có tính chuyên sâu, được dùng để định nghĩa, sử dụng và kiểmtra các CSDL quan hệ
3.2 CÁC LỆNH ĐỊNH NGHĨA VÀ CẬP NHẬT SƠ ĐỒ CSDL
(DDL - Data Definition Language)
3.2.1 Tạo bảng
Cú pháp
CREATE TABLE tên_bảng(tên_trường1 kiểu_dữ_liệu(độ_lớn) [,…])
Kiểu_dữ_liệu có thể là một trong các kiểu sau:
Create table sinhvien(masv char(4), hosv char(35), tensv
char(10), phai logical, ngaysinh date, que char(50), mak
char(4))
3.2.2 Xóa bảng
DROP TABLE tên_bảng
Chỉ xóa được các bảng bên nhánh con (tức là những bảng không có bảng con liên
Trang 28Ví dụ: Xóa bảng register
3.2.3 Sửa đổi cấu trúc bảng
Cấu trúc của một bảng quan hệ có thể được sửa đổi bằng lệnh ALTER TABLE Câulệnh này cho phép thực hiện các thao tác sau:
Bổ sung một cột vào bảng
Xóa một cột khỏi bảng
Thay đổi định nghĩa của một cột trong bảng
Xóa bỏ hoặc bổ sung các ràng buộc cho bảng
Cú pháp
ALTER TABLE tên_bảng
ADD định_nghĩa_cột [NULL | NOT NULL] |
ALTER COLUMN tên_cột kiểu_dữ_liệu_mới |
DROP COLUMN tên_cột
Ý nghĩa
ADD định_nghĩa cột: Dùng để thêm một cột mới vào bảng.
Ví dụ: Thêm cột học bổng có kiểu số vào bảng sinh viên
ALTER COLUMN tên_cột kiểu_dữ_liệu_mới: Dùng để thay đổi kiểu dữ liệu
của cột
Ví dụ: Thay đổi kiểu dữ liệu của cột học bổng thành kiểu integer
DROP COLUMN tên_cột: Dùng để xóa một cột trong bảng.
Ví dụ: Xóa cột học bổng của bảng sinh viên
Nếu bổ sung thêm một cột vào bảng và trong bảng đã có ít nhất một mẫu tin thì cộtmới cần bổ sung phải cho phép chấp nhận giá trị NULL hoặc phải có giá trị mặcđịnh
3.2.4 Tạo một CSDL
CREATE DATABASE tên_CSDL_cần_tạo
Ví dụ: Tạo CSDL quản lý vật tư (qlvt)
Trang 29Lệnh UPDATE dùng để chỉnh sửa những dòng dữ liệu thỏa điều_kiện_lọc ở mệnh
đề WHERE Nếu có nhiều điều kiện lọc thì phải được nối với nhau bằng AND hoặcOR
SET trường = biểu_thức_chỉnh_sửa: Giá trị tại trường đang xét sẽ được thay
bằng trị của biểu_thức_chỉnh_sửa
Chú ý: Lệnh này chỉ có thể cập nhật các mẫu tin của một bảng duy nhất.
Ví dụ: Đổi tên sinh viên A01 thành Nguyễn Văn Tân
set hosv='Nguyễn Văn', tensv = 'Tân'
Ví dụ: Cập nhật ngày sinh của sinh viên Nguyễn Văn Tân thành 9/9/1990
Set ngaysinh = #9/9/1990#
Ví dụ: Tăng điểm cho tất cả các sinh viên lên 1 điểm
Lệnh DELETE dùng để xóa những dòng thỏa điều_kiện_lọc ở mệnh đề WHERE
Ví dụ: Xoá sinh viên mang mã số A01
Ví dụ: Xóa thông tin của sinh viên Nguyễn Phương Thảo
Trang 30Ví dụ: Thêm khoa xã hội nhân văn có mã là xhnv vào bảng khoa.
Chú ý: Giá trị cần thêm vào nếu là chuỗi thì để trong dấu nháy, nếu là ngày tháng
năm để trong dấu thăng (#)
WHERE điều_kiện_kết AND điều_kiện_lọc
ORDER BY trường_cần_sắp_xếp ASC | DESC
Ý nghĩa:
ALL: Tất cả những dòng trong kết quả truy vấn đều được hiển thị, tức là không loại
bỏ các dòng trùng Mặc định là ALL
DISTINCT: Loại bỏ những dòng giống nhau trong kết quả truy vấn.
Ví dụ: Liệt kê họ tên của tất cả các sinh viên
Kết quả truy vấn chứa nhiều dòng giống nhau do có nhiều sinh viên trùng họ và tên
Nếu có nhiều sinh viên trùng họ và tên thì chỉ giữ một trong kết quả truy vấn
*: Hiển thị tất cả các cột lấy từ các bảng trong mệnh đề FROM đưa vào kết quả truyvấn
Ví dụ: Liệt kê tất cả các thuộc tính của tất cả sinh viên
Select * from sinhvien
Danh_sách_các_trường: Có thể là một trong những trường hợp sau:
- Là danh sách các trường thuộc các bảng được liệt kê ở mệnh đề FROM cách nhau
bởi dấu phẩy Mỗi một trường được liệt kê dưới dạng:
trường_1 [AS tên_trường_mới]
AS tên_trường_mới: Đặt lại tiêu đề cho trường trong kết quả xuất ra của truy
vấn Điều này rất có lợi khi trường cần xuất là một biểu thức hoặc một hàm
Ví dụ: Liệt kê danh sách các khoa
From Khoa
Nếu trong danh sách các trường có nhiều hơn một trường cùng tên, chúng ta phảithêm tên bảng và dấu chấm trước tên trường
Trang 31Ví dụ:
From sinhvien, ketqua
Trong ví dụ trên, trường masv có ở hai bảng sinhvien và ketqua, vì vậy tại mệnh đềSELECT chúng ta cần chỉ rõ masv lấy từ bảng sinhvien bằng cách lấy tên bảngchấm tên trường (sinhvien.masv)
- Là một hằng sẽ xuất hiện trên mỗi dòng của kết quả truy vấn.
- Là một biểu thức mà có thể là tên của một hàm.
Mỗi trường được chỉ định trong mệnh đề SELECT sẽ tạo thành một cột trong kếtquả truy vấn
Sau đây là một số hàm tính toán có thể đặt trong mệnh đề SELECT:
AVG(trường): Tính trung bình cột dữ liệu kiểu số
COUNT(trường): Đếm số dòng trong cột
COUNT(*): Đếm số dòng dữ liệu xuất ra của truy vấn
MIN(trường): Trả về giá trị nhỏ nhất trong cột
MAX(trường): Trả về giá trị lớn nhất trong cột
SUM(trường): Tính tổng cột dữ liệu kiểu số
Danh_sách_các_bảng: Mệnh đề FROM chỉ được liệt kê danh sách các quan hệ
liên quan đến câu truy vấn Nếu có nhiều hơn một bảng thì ở mệnh đề WHERE phải
có điều_kiện_kết để kết các bảng này lại thành một
Điều_kiện_kết: Chỉ định các trường dùng để liên kết các bảng được liệt kê trong
FROM Nếu không chỉ định điều_kiện_kết thì chúng sẽ được kết theo qui tắc củaphép tích Descartes Điều này có thể đưa đến kết quả truy vấn rất dài mà không đápứng được yêu cầu Điều_kiện_kết có dạng như sau:
bảng1.trường1 so_sánh bảng2.trường2
so_sánh là một trong các toán tử :
Ví dụ: Liệt kê các sinh viên đã từng dự thi
From sinhvien, ketqua
Trang 32Ví dụ: Liệt kê tất cả các sinh viên cùng tên khoa.
From khoa, sinhvien, ketqua
sinhvien.mak = khoa.mak
Điều_kiện_lọc: Chỉ định tiêu chuẩn mà những dòng phải thỏa mới được chứa trong
kết quả truy vấn Một truy vấn có thể bao gồm nhiều điều_kiện_lọc và chúng được
nối với nhau bởi toán tử AND hoặc OR Chúng ta cũng có thể sử dụng toán tử NOT để đảo ngược giá trị của biểu thức logic Điều_kiện_lọc có thể là một trong
những dạng sau:
(1): trường1 so_sánh trường2
(2): trường so_sánh biểu thức
Lọc những dòng thỏa biểu thức
Ví dụ: Liệt kê các sinh viên nữ
(3): trường [NOT] BETWEEN giá_trị_đầu AND giá_trị_cuối
Lọc những dòng mà giá trị của trường nằm trong (nếu dùng thêm NOT thì khôngnằm trong) đoạn từ giá_trị_đầu đến giá_trị_cuối
Ví dụ: Liệt kê các sinh viên thi môn cơ sở dữ liệu có điểm từ 5 đến 7
From sinhvien, ketqua, monhoc
ketqua.mamh = monhoc.mamh andand tenmh = 'Cơ sở dữ liệu'
and Diem between 5 and 7
(4): trường [NOT] IN (tâp_giá_trị)
Lọc những dòng mà giá trị của trường thuộc (hoặc KHÔNG thuộc) một trongnhững giá trị được liệt kê trong tập_giá_trị
Ví dụ: Liệt kê các sinh viên thi môn cơ sở dữ liệu có điểm là 5, 6 hoặc 7
From sinhvien, ketqua, monhoc
ketqua.mamh = monhoc.mamh andand tenmh = 'Cơ sở dữ liệu' and Diem IN (5,6,7)
(5): trường [NOT] LIKE "chuỗi"
Lọc những dòng mà giá trị của trường giống (hoặc KHÔNG giống) với chuỗi
Ngoài ra, chúng ta có thể sử dụng ký tự đại diện * hoặc ? trong chuỗi với * đại diện
cho một chuỗi bất kỳ và ? đại diện cho một ký tự bất kỳ
Ví dụ: Liệt kê các sinh viên họ Trần
Select hosv, tensv from sinhvien where hosv LIKE "Trần*"
Trang 33ORDER BY trường_cần_sắp_xếp: Mệnh đề ORDER BY dùng để sắp xếp kết quả
truy vấn dựa trên dữ liệu của một hoặc nhiều trường Trường_cần_sắp_xếp có thểnhiều hơn một trường Nếu từ hai trường trở lên phải cách nhau bằng dấu phẩy
- ASC: Sắp xếp theo chiều tăng dần Mặc định là ASC.
- DESC: Sắp xếp theo chiều giảm dần.
Ví dụ: Liệt kê họ tên các sinh viên đồng thời sắp xếp theo tên
GROUP BY danh_sách_các_trường_để_nhóm_dữ_liệu: Mệnh đề Group by liệt
kê danh sách các trường mà dựa vào dữ liệu của trường đó để gom nhóm
Mệnh đề Having liệt kê các điều kiện lọc Tuy nhiên, các điều kiện lọc này được
chọn lựa trên từng nhóm Nhóm nào thỏa điều kiện thì đưa ra kết quả, nhóm nàykhông thỏa điều kiện thì loại bỏ
Ví dụ: Cho biết tổng số sinh viên của từng khoa
From sinhvien
hoặc
From sinhvien, khoa
Ví dụ: Cho biết điểm trung bình của từng sinh viên
3.4.3 Truy vấn con
SELECT danh_sách_các_trường
FROM danh_sách_các_bảng
WHERE điều_kiện_kết AND điều_kiện_lọc AND | OR
trường so_sánh (SELECT …)
GROUP BY các_trường_nhóm
HAVING trường so_sánh (SELECT …)
Truy vấn con thực chất là có nhiều câu truy vấn được lồng vào câu truy vấn khác.Các truy vấn bên trong gọi là truy vấn con Truy vấn ngoài cùng gọi là truy vấn cha
Ở đây, chúng ta có thể lồng câu truy vấn con vào mệnh đề WHERE hoặc HAVINGtùy vào bài toán cần giải quyết
Trang 34Ví dụ: Liệt kê các khoa không có sinh viên.
Phân tích đề
Where mak NOT IN(Select mak from Sinhvien)
Ví dụ: Liệt kê các sinh viên chưa từng thi môn nào
Where masv NOT IN(Select masv from ketqua)
3.5 TỐI ƯU HÓA CÂU TRUY VẤN
Tối ưu hóa câu truy vấn là biến đổi câu truy vấn thành dạng tương đương hay dạngcho cùng kết quả để giảm thời gian tính toán và tốn ít không gian lưu trữ Tuynhiên, tối ưu hóa không nhất thiết phải vừa giảm thời gian tính toán vừa tốn ítkhông gian lưu trữ mà có thể ưu tiên cho tối ưu hóa thời gian hơn tối ưu hóa khônggian hoặc ngược lại Nhìn chung, tối ưu hóa thời gian tính toán thường được đưa lênhàng đầu
Hiện nay, bộ nhớ ngoài có dung lượng khá lớn Tuy nhiên vẫn có thể tồn tại nguy cơthiếu không gian tính toán cho hệ thống nếu không chú ý đến việc tối ưu hóa cáccâu hỏi trước khi đưa vào máy và yêu cầu máy thi hành Chẳng hạn, có hai quan hệ
R và S Mỗi quan hệ đều có 10 thuộc tính và 1.000 bộ Kết quả của phép tích các R và S sẽ có 20 thuộc tính và 1.000.000 bộ Nếu mỗi thuộc tính chiếm 5 bytes,quan hệ trung gian này đã chiếm gần 1/10 gigabyte
Đề-Các nguyên tắc tối ưu hóa câu truy vấn
- Thực hiện phép chọn, phép chiếu càng sớm càng tốt nếu có thể.
Ví dụ: Liệt kê họ tên các sinh viên học khoa công nghệ thông tin
(Sinhvien * Khoa):(tenk = 'công nghệ thông tin')[hosv, tensv]
Có thể thay bằng biểu thức tương đương tối ưu hơn như sau:
(Sinhvien * Khoa:(tenk = 'công nghệ thông tin'))[hosv, tensv]
- Gộp phép chọn và phép tích Đề-các thành phép kết nếu có thể.
Tập hợp tất cả các khoa
Các khoa
có sinh viên học-
A = B(R x S):(A = B) = R S
Trang 35- Gộp dãy các phép toán một ngôi như phép chọn và phép chiếu.
((E:(f1)):(f2)): (fn) E:(f1 f2 … fn)E[B1B2…Bn][A1A2…Am] E[A1A2…Am]
- Xét các biểu thức con chung.
(F1 x F2) + (F1 x F3) F1 x (F2 + F3)
- Tiền xử lý các bảng quan hệ: Cần thiết lập trước các bảng chỉ mục cho các mẫu
tin của các bảng quan hệ Khi đó việc thực hiện các phép toán có liên quan đếnhai bản sẽ nhanh hơn rất nhiều
- Lựa chọn thứ tự thực hiện các phép toán thích hợp.
CÂU HỎI
Nghiên cứu xong chương này sinh viên cần trả lời được các câu hỏi sau:
1 Tập lệnh định nghĩa và cập nhật sơ đồ CSDL gồm những lệnh nào? Cú pháp và
ý nghĩa?
2 Tập lệnh cập nhật dữ liệu gồm những lệnh nào? Cú pháp và ý nghĩa?
3 Tập lệnh truy vấn dữ liệu được chia thành những lệnh nào? Cú pháp và ý nghĩa?
Quan hệ sinh viên gồm mã sinh viên, họ, tên, phái, ngày sinh, quê, mã khoa)
A01 Nguyễn văn Tâm Nam 20/3/1992 Bến Tre CnttA02 Trần Trọng Nhân Nam 7/9/1990 Cần Thơ ktcn
A04 Lê Thiên Kiều nữ 19/9/1990 Cần Thơ kt
A05 Châu Thanh Trúc Nam 3/6/1992 Long An ktcnA06 Thái Ngọc Huy Nam 7/7/1990 Kiên Giang ktcn
Trang 36KETQUA(MASV, MAMH, DIEM)
Quan hệ kết quả gồm mã sinh viên, mã môn học, điểm
1 Liệt kê danh sách các sinh viên (họ tên, ngày sinh, quê) nam học khoa cntt
2 Cho danh sách các sinh viên (họ tên, ngày sinh) nữ quê ở Bến Tre
3 Liệt kê danh sách các sinh viên (mã, họ tên, ngày sinh) học khoa kinh tế và cótuổi từ 19 đến 25 tuổi
4 Liệt kê danh sách các môn học có số tiết từ 30 đến 75
5 Cho danh sách các môn học có số tiết là 30, 45, 60 hoặc 75
6 Cho danh sách các môn học (tên môn, số tiết) có ít nhất một sinh viên thi
7 Cập nhật số tiết môn cơ sở dữ liệu thành 60 tiết
8 Cập nhật họ tên sinh viên có mã A01 thành Nguyễn Tiến Đô
9 Tạo bảng DANGKY(id, username, pass, firstname, lastname, country)
10 Xoá các sinh viên nam có tuổi lớn hơn 30
11 Liệt kê danh sách các sinh viên nữ (mã, họ tên, ngày sinh) có tuổi không nằmtrong khoảng từ 18 đến 24
12 Liệt kê các sinh viên khoa công nghệ thông tin đã từng thi ít nhất một môn
13 Cho danh sách các sinh viên (mã, họ tên, ngày sinh, quê) quê ở Mỏ Cày, thimôn cơ sở dữ liệu có điểm trên 7
14 Cho biết số lượng sinh viên của từng khoa
15 Cho biết số lượng sinh viên khoa công nghệ thông tin
16 Cho biết tổng số sinh viên hiện có
17 Cho biết tổng số sinh viên đã từng thi môn Cơ sở dữ liệu
18 Liệt kê các sinh viên thi trên 5 môn
19 Liệt kê danh sách các sinh viên thi rớt môn Cơ sở dữ liệu và môn Tin học đạicương
20 Liệt kê các sinh viên đã từng dự thi nhưng chưa rớt môn nào
21 Cho danh sách các sinh viên chưa từng thi môn Cơ sở dữ liệu
22 Xoá các khoa không có sinh viên học
Trang 3723 Xoá các sinh viên đã thi trên 10 môn
24 Liệt kê các môn có trên 5 sinh viên thi
25 Liệt kê các sinh viên nữ khoa công nghệ thông tin thi trên 3 môn
26 Cho danh sách các sinh viên đã từng thi môn toán rời rạc nhưng chưa từng thimôn giải tích
27 Liệt kê các môn không có sinh viên nào thi
28 Liệt kê các sinh viên chưa từng thi môn nào
29 Liệt kê các sinh viên nữ thi rớt tất cả các môn
30 Xoá các kết quả thi môn cơ sở dữ liệu dưới 1 điểm
31 Cho biết điểm trung bình của từng sinh viên
32 Liệt kê các sinh viên có điểm trung bình từ 5 trở lên
33 Liệt kê các sinh viên chưa từng thi rớt môn nào
34 Liệt kê các sinh viên khoa kinh tế có điểm trung bình lớn hơn 8
35 Liệt kê các sinh viên thi rớt môn cơ sở dữ liệu
36 Liệt kê các sinh viên có điểm trung bình cao nhất
37 Liệt kê điểm cao nhất của từng sinh viên
38 Liệt kê các sinh viên có điểm trung lớn hơn điểm trung bình sinh viên HuỳnhNgọc Thúy
39 Liệt kê các sinh viên có tổng điểm thấp nhất
40 Liệt kê các sinh viên khoa công nghệ thông tin có điểm cao nhất lớn hơn 9
41 Liệt kê các sinh viên khoa công nghệ thông tin có điểm cao nhất lớn hơn điểmmôn cơ sở dữ liệu của sinh viên Huỳnh Ngọc Thúy
42 Xoá các kết quả thi của sinh viên Huỳnh Ngọc Thúy
43 Tăng điểm môn cơ sở dữ liệu cho sinh viên Huỳnh Ngọc Thúy lên 1.5
Bài 2: Cho cơ sở dữ liệu “Quản lý thuê nhà” gồm các quan hệ sau:
KHACHHANG(MAKH, HT, SODIENTHOAI, COQUAN)
Quan hệ Khách hàng gồm mã khách, họ tên, số điện thoại, cơ quan
NHA(MAN, DIACHI, GIATHUE, TENCHUNHA)
Quan hệ Nhà gồm mã nhà, địa chỉ, giá thuê, tên chủ nhà
HOPDONG(MAN, MAKH, NGABD, NGAYKT)
Quan hệ Hợp đồng gồm mã nhà, mã khách, ngày bắt đầu, ngày kết thúc
1 Đưa ra danh sách {Địachỉ, tênchủnhà} của những ngôi nhà có giá thuê ít hơn300.000
2 Đưa ra danh sách {MãKH, họtên, cơquan} của những người đã từng thuê nhàcủa chủ nhà có tên “Nguyễn Văn A”
3 Cho biết tổng số nhà đã được thuê
4 Cho danh sách các nhà có giá thuê từ 250000 đến 1000000 đồng
5 Liệt kê danh sách các nhà tại Cần Thơ
6 Liệt kê tổng tiền thuê của từng khách hàng
7 Tăng giá thuê của các nhà ở TpHCM lên 5%
8 Liệt kê các nhà có trên 10 lần cho thuê
9 Liệt kê các khách hàng thuê nhà N01 trên 10 lần
10 Liệt kê các nhà chưa từng có khách thuê
11 Cập nhật địa chỉ của chủ nhà Lý Liên Kiệt thành 3/2 Nguyễn Thị Minh Khai
12 Liệt kê các khách hàng có thuê nhà trong tháng 2
13 Liệt kê các khách hàng thuê nhà trong 3 ngày gần đây
Trang 3814 Đưa ra danh sách các ngôi nhà chưa từng được ai thuê.
15 Hãy đưa ra giá thuê cao nhất trong số các giá thuê của các ngôi nhà đã từng ítnhất một lần được thuê
16 Hãy cho biết các khách hàng có tổng tiền thuê nhà lớn hơn tổng tiền thuê nhàcủa khách hàng mang mã 002
17 Thêm một dòng tùy ý vào bảng HOPDONG
Bài 3: Cho lược đồ CSDL “Quản lý đề án công ty” như sau:
NHANVIEN(MaNV, HoNV, TenNV, Phai, Que, Luong, NTNS, Ma_NQL, MaPH)Quan hệ Nhân viên gồm mã nhân viên, họ, tên, phái, quê, lương, ngày tháng năm sinh, mã người quản lý (là mã nhân viên), mã phòng
PHONGBAN(MaPH, TenPH, TRPH)
Quan hệ Phòng ban gồm mã phòng, tên phòng, mã trưởng phòng (là mã nhân viên).DEAN(MaDA, TenDA, Phong, NamThucHien)
Quan hệ Đề án gồm mã đề án, tên đề án, mã phòng, năm thực hiện
PHANCONG(MaNV, MaDA, ThoiGian)
Quan hệ Phân công gồm mã nhân viên, mã đề án, thời gian
1 Liệt kê các nhân viên nữ, quê ở Bến Tre
2 Cho danh sách các nhân viên quê ở Bình Dương và có lương từ 5 triệu tới 10triệu
3 Liệt kê các nhân viên làm ở phòng quản lý và các nhân viên làm ở phòng điều hành
4 Cho danh sách gồm họ tên, phái, ngày sinh của các nhân viên làm trưởng phòng
5 Thêm một dòng bất kỳ vào mỗi bảng
6 Cập nhật họ tên của nhân viên Vương Ngọc Quyên thành Vương Học Tiên
7 Liệt kê các dự án thực hiện vào năm 1997 và có thời gian thực hiện dưới 8 tuần
8 Cho danh sách các nhân viên sinh trong khoảng từ năm 1978 đến 1983 Sắp xếp theo mức lương giảm dần
9 Xóa các phòng không có nhân viên nào
10 Tăng lương cho mỗi nhân viên lên 5%
11 Cho biết mã số, họ tên, ngày tháng năm sinh của những nhân viên đã tham gia đề án
12 Cho biết tổng thời gian thực hiện của từng đề án
13 Liệt kê các nhân viên nữ chưa từng thực hiện đề án nào của phòng quản lý
14 Cho biết số đề án thực hiện của từng nhân viên
15 Tính số nhân viên của công ty
16 Tìm những nhân viên có tên lót là “Văn”
17 Tìm mức lương lớn nhất, mức lương trung bình, tổng lương của công ty
18 Cho biết nhân viên có mức lương lớn nhất
19 Liệt kê các phòng có số nhân viên lớn hơn 2
20 Liệt kê các phòng có số nhân viên lớn hơn số nhân viên phòng điều hành
21 Tìm phòng có số nhân viên cao nhất
22 Xóa các đề án có năm thực hiện là 2000 và chưa có nhân viên thực hiện
23 Cho danh sách các nhân viên làm đề án của chính phòng họ