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

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

77 158 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 77
Dung lượng 2,37 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

MỤ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 2

BÀI TẬP 23

CHƯƠNG 3: NGÔN NGỮ TRUY VẤN DỮ LIỆU (SQL) 26

3.1 GIỚI THIỆU 26

3.2 CÁC LỆNH ĐỊNH NGHĨA VÀ CẬP NHẬT SƠ ĐỒ CSDL 26

3.2.1 Tạo bảng 26

3.2.2 Xóa bảng 26

3.2.3 Sửa đổi cấu trúc bảng 27

3.2.4 Tạo 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 3

5.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 4

LỜ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 5

CHƯƠ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 6

Tă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 7

Trướ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 9

thứ 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 11

Ví 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 12

1.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 13

CHƯƠ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 14

Ví 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 16

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

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 17

R 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 18

a3 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 19

Ví 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 21

KHACHSAN 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 22

22/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 23

Vớ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 24

8 R ÷ S

Trang 25

BÀ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 26

8 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 27

CHƯƠ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 28

Ví 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 29

Lệ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 30

Ví 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 31

Ví 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 32

Ví 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 33

ORDER 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 34

Ví 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 36

KETQUA(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 37

23 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 38

14 Đư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ọ

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

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Lê Hoài Bắc, Nguyễn Xuân Huy (2003), “Bài tập cơ sở dữ liệu”, NXB Thống Kê Sách, tạp chí
Tiêu đề: Bài tập cơ sở dữ liệu
Tác giả: Lê Hoài Bắc, Nguyễn Xuân Huy
Nhà XB: NXB ThốngKê
Năm: 2003
[2] Lê Tiến Vương (2000), “Nhập môn cơ sở dữ liệu quan hệ”, NXB Thống Kê Sách, tạp chí
Tiêu đề: Nhập môn cơ sở dữ liệu quan hệ
Tác giả: Lê Tiến Vương
Nhà XB: NXB Thống Kê
Năm: 2000
[3] Nguyễn Đăng Tỵ, Đỗ Phúc (2009), “Giáo trình Cơ sở dữ liệu”, NXB Đại học quốc gia TP Hồ Chí Minh Sách, tạp chí
Tiêu đề: Giáo trình Cơ sở dữ liệu
Tác giả: Nguyễn Đăng Tỵ, Đỗ Phúc
Nhà XB: NXB Đại họcquốc gia TP Hồ Chí Minh
Năm: 2009
[4] Nguyễn Thị Ngọc Mai (2007), “Lý thuyết Cơ sở dữ liệu”, tập 1, NXB Lao Động Xã Hội Sách, tạp chí
Tiêu đề: Lý thuyết Cơ sở dữ liệu
Tác giả: Nguyễn Thị Ngọc Mai
Nhà XB: NXB Lao ĐộngXã Hội
Năm: 2007
[5] Phan Tấn Quốc (2005), “Giáo trình Cơ sở dữ liệu”, Trường Cao đẳng Kỹ thuật Cao Thắng Sách, tạp chí
Tiêu đề: Giáo trình Cơ sở dữ liệu
Tác giả: Phan Tấn Quốc
Năm: 2005
[6] Trần Thị Bạch Huệ (2014), “Đề cương chi tiết học phần Cơ sở dữ liệu ngành Tin học ứng dụng”, Khoa Công nghệ thông tin - Trường Cao Đẳng Bến Tre.Tiếng Anh Sách, tạp chí
Tiêu đề: Đề cương chi tiết học phần Cơ sở dữ liệu ngànhTin học ứng dụng
Tác giả: Trần Thị Bạch Huệ
Năm: 2014

TỪ KHÓA LIÊN QUAN

w