48
Trang 1 MỤC LỤC BÀI 1: TỔNG QUAN VỀ CSDL ......................................................................................... 2 I. Dữ liệu – thông tin. ........................................................................................................... 2 II. Các ưu, khuyết điểm của CSDL....................................................................................... 2 III. Tính độc lập giữa dữ liệu và chương trình ...................................................................... 2 IV. Phân loại người dùng CSDL .......................................................................................... 3 BÀI 2: CÁC MÔ HÌNH CƠ SỞ DỮ LIỆU .......................................................................... 3 I. Sơ đồ tổng quát một hệ quản trị CSDL. ............................................................................ 3 II. Thực thể - quan h........................................................................................................... 3 III. Các mô hình CSDL ........................................................................................................ 4 IV. Mô hình thực thể quan hệ............................................................................................... 4 V. Mô hình dữ liệu quan hệ.................................................................................................. 5 VI. Mô hình dữ liệu mạng .................................................................................................... 5 VII. Mô hình dữ liệu phân cấp (dạng tree)............................................................................ 6 VIII. Mô hình dữ liệu hướng đối tượng. ............................................................................... 6 BÀI 3: MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ ................................................................. 7 I. Các khái niệm ................................................................................................................... 7 II. Ràng buộc toàn vẹn ......................................................................................................... 8 III. Các phép tính trên cơ sở dữ liệu quan hệ ...................................................................... 10 BÀI 4: NGÔN NGỮ THAO TÁC DỮ LIỆU ..................................................................... 12 I. Đại số quan hệ. .............................................................................................................. 12 II. Các phép toán trên quan h............................................................................................ 12 III. Các phép cơ sở trên quan h......................................................................................... 13 IV. Ngôn nggiao tiếp CSDL............................................................................................ 14 BÀI 5: NGÔN NGỮ TRUY VẤN DỮ LIỆU..................................................................... 16 I.Tổng quan, các qui ước biểu diễn câu lệnh SQL .............................................................. 16 II. Ngôn ngữ cập nhật dữ liệu. ............................................................................................ 18 III. Ngôn ngữ cập nhật CSDL. ........................................................................................... 18 IV. Ngôn ngữ truy vấn dữ liệu. .......................................................................................... 19 V. Nhóm lệnh tính toán, thống kê ...................................................................................... 21 BÀI 6: RÀNG BUỘC TOÀN VẸN VÀ PHỤ THUỘC HÀM ............................................ 21 I. RÀNG BUỘC TOÀN VẸN ............................................................................................ 21 II. PHÂN LOẠI RÀNG BUỘC TOÀN VẸN ..................................................................... 24 III. PHỤ THUỘC HÀM..................................................................................................... 27 BAI 6: DẠNG CHUẨN CỦA LƯỢC ĐỒ.......................................................................... 28 I.Một Số Khái Niệm Liên Quan Đến Các Dạng Chuẩn ...................................................... 28 II. Dạng Chuẩn Một (First Normal Form) .......................................................................... 29 III.Dạng Chuẩn 2 (second normal form)............................................................................. 29 IV. Dạng Chuẩn 3 (third normal form) ............................................................................... 30 V. .Dạng Chuẩn BC (Boyce Codd normal form) ................................................................ 31 BÀI TẬP............................................................................................................................ 32

BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Embed Size (px)

Citation preview

Page 1: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 1

MỤC LỤC BÀI 1: TỔNG QUAN VỀ CSDL ......................................................................................... 2 I. Dữ liệu – thông tin. ........................................................................................................... 2 II. Các ưu, khuyết điểm của CSDL ....................................................................................... 2 III. Tính độc lập giữa dữ liệu và chương trình ...................................................................... 2 IV. Phân loại người dùng CSDL .......................................................................................... 3 BÀI 2: CÁC MÔ HÌNH CƠ SỞ DỮ LIỆU .......................................................................... 3 I. Sơ đồ tổng quát một hệ quản trị CSDL. ............................................................................ 3 II. Thực thể - quan hệ ........................................................................................................... 3 III. Các mô hình CSDL ........................................................................................................ 4 IV. Mô hình thực thể quan hệ ............................................................................................... 4 V. Mô hình dữ liệu quan hệ .................................................................................................. 5 VI. Mô hình dữ liệu mạng .................................................................................................... 5 VII. Mô hình dữ liệu phân cấp (dạng tree)............................................................................ 6 VIII. Mô hình dữ liệu hướng đối tượng. ............................................................................... 6 BÀI 3: MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ ................................................................. 7 I. Các khái niệm ................................................................................................................... 7 II. Ràng buộc toàn vẹn ......................................................................................................... 8 III. Các phép tính trên cơ sở dữ liệu quan hệ ...................................................................... 10 BÀI 4: NGÔN NGỮ THAO TÁC DỮ LIỆU ..................................................................... 12 I. Đại số quan hệ. .............................................................................................................. 12 II. Các phép toán trên quan hệ ............................................................................................ 12 III. Các phép cơ sở trên quan hệ ......................................................................................... 13 IV. Ngôn ngữ giao tiếp CSDL ............................................................................................ 14 BÀI 5: NGÔN NGỮ TRUY VẤN DỮ LIỆU ..................................................................... 16 I.Tổng quan, các qui ước biểu diễn câu lệnh SQL .............................................................. 16 II. Ngôn ngữ cập nhật dữ liệu. ............................................................................................ 18 III. Ngôn ngữ cập nhật CSDL. ........................................................................................... 18 IV. Ngôn ngữ truy vấn dữ liệu. .......................................................................................... 19 V. Nhóm lệnh tính toán, thống kê ...................................................................................... 21 BÀI 6: RÀNG BUỘC TOÀN VẸN VÀ PHỤ THUỘC HÀM ............................................ 21 I. RÀNG BUỘC TOÀN VẸN ............................................................................................ 21 II. PHÂN LOẠI RÀNG BUỘC TOÀN VẸN ..................................................................... 24 III. PHỤ THUỘC HÀM ..................................................................................................... 27 BAI 6: DẠNG CHUẨN CỦA LƯỢC ĐỒ.......................................................................... 28 I.Một Số Khái Niệm Liên Quan Đến Các Dạng Chuẩn ...................................................... 28 II. Dạng Chuẩn Một (First Normal Form) .......................................................................... 29 III.Dạng Chuẩn 2 (second normal form) ............................................................................. 29 IV. Dạng Chuẩn 3 (third normal form) ............................................................................... 30 V. .Dạng Chuẩn BC (Boyce Codd normal form) ................................................................ 31 BÀI TẬP............................................................................................................................ 32

Page 2: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 2

BÀI 1: TỔNG QUAN VỀ CSDL I. Dữ liệu – thông tin. 1. Định nghĩa của CSDL Là một chổ chứa có tổ chức tập hợp các tập tin dữ liệu có tương quan, các mẫu tin và các cột. 2. Đơn vị, thông tin Bit: Là một số có một ký số, biểu diễn bằng số 0, hoặc số 1. Một ký tự hoặc byte là một số gồm 8 bit liên tục. Trường: Là một tập các byte có liên quan. Tên người có thể được cấu tạo bởi các trường tên, tên lót, họ. Một trường là đơn vị nhỏ nhất có ý nghĩa đối với người sử dụng. Mẫu tin: Là một tập các trường có liên hệ với nhau. Tập tin: Là một tập các mẫu tin, trong đó các mẫu tin đều chứa một loại dữ liệu đặc biệt và những dữ liệu này có liên hệ với nhau theo một cách nào đó II. Các ưu, khuyết điểm của CSDL 1. Ưu điểm: - Giảm thiểu dữ liệu thừa. - Bảo đảm tính toàn vẹn của dữ liệu - Bảo đảm tính độc lập của dữ liệu. - Bảo vệ an toàn dữ liệu. - Duy trì tính nhất quản của dữ liệu. - Tạo dễ dàng khi sử dụng. - Tiết kiệm không gian lưu trữ. 2. Khuyết điểm: - Tính phức tạp của CSDL. - Chi phí cao. - Dễ bị hư hại. - Chi phí huấn luyện. - Phụ thuộc vào công nghệ của CSDL. III. Tính độc lập giữa dữ liệu và chương trình Khi có sự thay đổi dữ liệu (như sửa đổi cấu trúc lưu trữ các bảng dữ liệu, thêm các chỉ mục (Index) ...) thì các chương trình ứng dụng (Application) đang chạy trên CSDL đó vẫn không cần phải được viết lại, hay cũng không làm ảnh hưởng đến những NSD khác. Sơ đồ tổng quát về CSDL

Page 3: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 3

IV. Phân loại người dùng CSDL Người dùng trong HQTCSDL gồm có 4 kiểu: * Người quản trị CSDL thực hiện các công việc quản lý và bảo trì CSDL như sau: - Sự chính xác và toàn vẹn dữ liệu, và bảo mật dữ liệu. - Thực hiện các công việc sao lưu và phục hồi dữ liệu. - Giữ liên lạc thường xuyên với người lập trình, người dùng, người phát triển ứng dụng để kịp thời cập nhật CSDL. - Bảo đảm sự hoạt động của CSDL và HQTCSDL. * Người phát triển và lập trình ứng dụng là những người rành về máy tính có trách nhiệm thiết kế và tạo các chương trình ứng dụng dành cho người dùng cuối cùng. * Người dùng cuối: là những người có thể không rành về máy tính nhưng nắm rõ về các nghiệp vụ mà ứng dụng triển khai.

BÀI 2: CÁC MÔ HÌNH CƠ SỞ DỮ LIỆU I. Sơ đồ tổng quát một hệ quản trị CSDL.

II. Thực thể - quan hệ

Page 4: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 4

1. Thực thể Loại thực thể (Entity Type) là những loại đối tượng hay sự vật của thế giới thực tồn tại cụ thể cần được quản lý. 2. Quan hệ Sự thể hiện của lược đồ quan hệ Q ở một thời điểm nào đó được gọi là quan hệ, rõ ràng là trên một lược đồ quan hệ có thể định nghĩa rất nhiều quan hệ. Thường ta dùng các ký hiệu như R, S, Q để chỉ các lược đồ quan hệ, còn quan hệ được định nghĩa trên nó tương ứng được ký hiệu là là r, s, q. III. Các mô hình CSDL 1. Định nghĩa Mô hình dữ liệu là sự trừu tượng hóa của môi trường thực thể, biểu diễn dữ liệu ở mức quan niệm. Giới thiệu các mô hình dữ liệu sau: 2. Các mô hình - Mô hình thực thể quan hệ. - Mô hình dữ liệu quan hệ. - Mô hình dữ liệu mạng. - Mô hình dữ liệu phân cấp. - Mô hình hướng đối tượng. IV. Mô hình thực thể quan hệ 1. Định nghĩa Mối liên hệ giữa các tập thực thể là một danh sách có thứ tự của các tập thực thể. Một tập thực thể đặc biệt có thể xuất hiện nhiều lần trong danh sách. Danh sách các tập thực thể này là khái niệm ở mức lược đồ của một mối liên hệ. Mô hình thực thể quan hệ được CHEN giới thiệu năm 1976. Mô hình này được sử dụng nhiều trong thiết kế dữ liệu mức khái niệm. Loại thực thể (Entity Type) là những loại đối tượng, sự vật của thế giới thực tồn tại cụ thể cần được quản lý. Thực thể (Entity) là một thể hiện của loại thực thể. Ví dụ: Trong loại thực thể HOCSINH có thực thể: - (HS001, ‘Nguyễn Văn A’,’20/11/1993’, ‘Nam’). - (HS002, ‘Trần Thị C’,’02/10/1992’, ‘Nữ’). Thuộc tính: là những tính chất đặc trưng của một loại thực thể. Ví dụ: Loại thực thể HOCSINH có các thuộc tính: MAHS, HOTEN, NGAYSINH, GIOITINH, NOISINH…. - Thuộc tính nhận diện: là thuộc tính để phân biệt thực thể này với thực thể kia trong tập thực thể. - Thuộc tính mô tả: là thuộc tính cung cấp thông tin chi tiết hơn về thực thể trong tập thực thể. Đơn trị (Simple): mỗi thực thể chỉ có một giá trị ứng với thuộc tính. Ví dụ: MAHV, HOTEN Đa trị (Multi Value): thuộc tính có thể có nhiều giá trị đối với một thực thể. Ví dụ: BANGCAP ký kiệu là {BANGCAP}

Page 5: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 5

Đa hợp (Composite): thuộc tính được tạo từ nhiều thành phần. Ví dụ: DIACHI (Sonha, tenduong, phuong, quan) Chú ý: các thuộc tính đa trị và đa hợp có thể lồng nhau tùy ý. Ví dụ: {BANGCAP(TRUONGCAP, KETQUA,CHUYENNGANH)} Khóa: Khóa của loại thực thể là thuộc tính để nhận dạng thực thể.Căn cứ vào đó để xác định duy nhất một thực thể. Ví dụ: Mỗi HOCSINH có một mã duy nhất để phân biệt HS này với HS kia. Loại kết hợp (quan hệ): là mối kết hợp, sự liên kết giữa hai hay nhiều loại thực thể. Bản số của nhánh là số lượng tối thiểu và số lượng tối đa tham gia vào mối kết hợp.Ký hiệu (số lượng tối thiểu, tối đa) – (1,n). Loại thực thể yếu. - Là loại thực thể không có khóa chính - Phải tham gia trong một loại mối kết hợp xác định trong đó phải có một loại thực thể chủ. Ví dụ: Thân nhân là một loại thực thể yếu có các thuộc tính HOTEN, NGAYSINH, QUANHE và tham gia và mối kết hợp Có với thực thể chủ NHANVIEN. V. Mô hình dữ liệu quan hệ 1. Định nghĩa mô hình Mô hình CSDL quan hệ do E.F Codd đề xuất năm 1971, mô hình này bao gồm: - Một hệ thống các ký hiệu để mô tả dữ liệu dưới dạng dòng và cột như quan hệ, bộ, thuộc tính, khóa chính, khoá ngoại, ... - Một tập hợp các phép toán thao tác trên dữ liệu như phép toán tập hợp, phép toán quan hệ, ràng buộc toàn vẹn quan hệ. VI. Mô hình dữ liệu mạng 1. Định nghĩa mô hình Mô hình dữ liệu mạng (Network Data Model) – còn được gọi tắt là mô hình mạng hoặc mô hình lưới (Network Model) là mô hình được biểu diễn bởi một đồ thị có hướng. Trong mô hình này người ta đưa vào các khái niệm: mẫu tin hay bản ghi (Record), loại mẫu tin (Record Type) và loại liên hệ (Set Type). Mẫu tin: Mô tả đối tượng trong thế giới thực. Ví dụ: (‘NV001’, ‘Nguyễn Văn Tuấn’, 02/02/1942’, ‘Nam’). Loại mẫu tin: Là tập các mẫu tin cùng tính chất Ví dụ: Tập hợp các mẫu tin về nhân viên trong công ty tạo thành NHANVIEN Loại liên hệ: Mô tả sự liên kết giữa 1 loại mẫu tin chủ và loại mẫu tin thành viên Ví dụ: Nhân viên (tham gia)công việc Bản số: chỉ ra số lượng các mẫu tin tham gia trong các mối quan hệ. - 1-1 (one to one): một mẫu tin từ loại mẫu tin chủ kết hợp với 1 mẫu tin của loại mẫu tin thành viên. - 1- n (one to many): 1 mẫu tin từ loại mẫu tin chủ kết hợp với 1 hoặc nhiều loại mẫu tin thành viên. - n- 1 (many to one): nhiều mẫu tin của loại mẫu tin chủ kết hợp với 1 loại mẫu tin thành viên. - Recursive: một mẫu tin chủ cũng có thể đồng thời là loại mẫu tin thành viên với chính nó. Loại liên hệ này gọi là Đệ quy.

Page 6: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 6

2. Đặc điểm của mô hình dữ liệu mạng - Tương đối đơn giản. - Dễ sử dụng. - Không thích hợp với việc biểu diễn CSDL có quy mô lớn. - Khả năng diễn đạt ngôn ngữ kém. VII. Mô hình dữ liệu phân cấp (dạng tree) 1. Định nghĩa Mô hình dữ liệu phân cấp (Hierachical Data Model) - được gọi tắt là mô hình phân cấp (Hierachical Model): Mô hình là một cây (Tree), trong đó mỗi nút của cây biểu diễn một thực thể, giữa nút con và nút cha được liên hệ với nhau theo một mối quan hệ xác định. 2. Loại mẫu tin: (Recorde Type) là mẫu đặc trưng cho 1 loại đối tượng riêng biệt. Chẳng hạn như trong việc quản lý nhân sự tại một đơn vị, đối tượng cần phản ảnh của thế giới thực có thể là Phòng, Nhân viên, Công việc, lý lịch ... do đó có các loại mẫu tin đặc trưng cho từng đối tượng này. Trong đồ thị biểu diễn mô hình mạng mỗi loại mẫu tin được biểu diễn bởi một hình chữ nhật, một thể hiện (Instance) của một loại mẫu tin được gọi là bản ghi.Trong ví dụ trên loại mẫu tin Phòng có các mẫu tin là các phòng, ban trong đơn vị; loại mẫu tin nhân viên có các mẫu tin là các nhân viên đang làm việc tại các phòng ban của cơ quan... 3. Loại mối liên hệ: Kiểu liên hệ là phân cấp, theo cách: • Mẫu tin thành viên chỉ đóng vai trò thành viên của một mối liên hệ duy nhất, tức là nó thuộc một chủ duy nhất. Như vậy, mối liên hệ từ mẫu tin chủ tới các mẫu tin thành viên là 1¸n, và từ mẫu tin (hay bản ghi - record) thành viên với mẫu tin chủ là 1¸1. • Giữa 2 loại mẫu tin chỉ tồn tại 1 mối liên hệ duy nhất. 2. Ví dụ Quản lý sổ hộ khẩu ta thấy một tỉnh thành phố (thì) có nhiều quận huyện, một quận huyện chỉ thuộc một tỉnh thành duy nhất. Một quận huyện (thì) có nhiều phường xã và một phường xã chỉ thuộc một quận huyện duy nhất. Mỗi phường xã được chia thành nhiều địa bàn điều tra, mỗi địa bàn chỉ thuộc một phường xã duy nhất v.v... VIII. Mô hình dữ liệu hướng đối tượng. Mô hình dữ liệu hướng đối tượng (Object Oriented Data Model) ra đời từ cuối những năm 80 và đầu những năm 90. Đây là loại mô hình tiên tiến nhất hiện nay dựa trên cách tiếp cận hướng đối tượng đã quen thuộc trong các phương pháp lập trình hướng đối tượng, nó sử dụng các khái niệm như lớp (class), sự kế thừa (inheritance), kế thừa bội (tức là kết thừa từ nhiều lớp cơ sở multi-inheritance). Đặc trưng cơ bản của cách tiếp cận này là tính đóng gói (encapsulation), tính đa hình (polymorphism) và tính tái sử dụng (Reusability).

Page 7: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 7

BÀI 3: MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ I. Các khái niệm 1. Thuộc tính Tên gọi: Dãy ký tự gợi nhớ. - Kiểu dữ liệu: Sổ, chuỗi, ngày tháng, luận lý…. - Miền giá trị: Tập giá trị mà thuộc tính đó có thể nhận. Ký hiệu Dom(A). Ví dụ: Thuộc tính GIOITINH, kiểu dữ liệu chuổi. Miền giá trị: Dom(GIOITINH) = “Nam, Nữ”. - Trong cùng đối tượng không có 2 thuộc tính cùng tên. 2. Lược đồ quan hệ Tất cả các thuộc tính cần quản lý của đối tượng cùng mối liên hệ giữa chúng gọi là lược đồ quan hệ. Ví dụ: HOCVIEN (MAHV, HOTEN, NGSINH, GIOITINH, NOISINH, MALOP) LOP (MALOP, TENLOP, SISO, TRGLOP, KHOA) Nhiều lược đồ quan hệ cùng nằm trong một hệ thống quản lý gọi là lược đồ cơ sở dữ liệu. 3. Tân từ Tân từ: là một quy tắc dùng để mô tả một quan hệ. Ký hiệu ║Q║ Ví dụ: Thi (MAHV, MAMH, LANTHI, DIEM). ║Thi║: mỗi học viên được phép thi một môn học nhiều lần, mỗi lần lưu trữ học viên nào học môn gì? Thi lần thứ mấy và điểm là bao nhiêu? 4. Bộ. Định nghĩa: Bộ là các thông tin của một đối tượng thuộc quan hệ, được gọi là mẫu tin (Record), dòng. Quan hệ của một bảng (table) với các cột gọi là thuộc tính và theo hàng gọi là bộ. Ví dụ: Mỗi bộ của quan hệ Q(A1, A2,…… , An) là q(a1, a2,…… , an) với giá trị € Dom(A). 5. Thể hiện của quan hệ Định nghĩa: Thể hiện của một quan hệ là tập hợp các bộ giá trị của quan hệ tại một thời điểm. Ký hiệu: thể hiện của quan hệ Q là TQ

Ví dụ: THOCVIEN là thể hiện của quan hệ HOCVIEN tại thời điểm hiện tại gồm có các bộ như sau: 6. Siêu khóa Là một tập con các thuộc tính của Q mà giá trị của chúng có thể phân biệt 2 bộ khác nhau trong cùng một thể hiện TQ bất kỳ. Nghĩa là ¥ t1, t2 € TQ t1[K] ≠ t2[K] K là siêu khóa của Q. Một quan hệ có thể có ít nhất một siêu khóa hay nhiều siêu khóa. Ví dụ: các siêu khóa của quan hệ HOCVIEN là: {Mahv};{Mahv,Hoten}; {Hoten};{Noisinh,Hoten} Siêu khóa có ít thuộc tính nhất được gọi là Khóa hay Khóa chỉ định. 1 lược đồ quan hệ có thể có nhiều khóa - Trong lược đồ quan hệ, 1 khóa được chọn làm khóa chính (primary key).

Page 8: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 8

- Thuộc tính có tham gia vào khóa được gọi là thuộc tính khóa, ngược lại, được gọi là thuộc tính không khóa. 7. Khóa ngoại - 1 tập thuộc tính được gọi là Khóa ngoại của Lược đồ quan hệ Q nếu và chỉ nếu nó nó là tập thuộc tính của Q+ và là khóa của lược đồ quan hệ khác. Ví dụ : Cho lược đồ cơ sở dữ liệu Quản Lý Sinh Viên, các lược đồ quan hệ : Q1= SINHVIEN(MaSV,Ho,Ten,DiemTB) Q2= HOCPHAN(MaHP,TenHP,SoTinChi) Q3= DANGKY_HOCPHAN(MaSV,MaHP) {MaSV} là khóa của Q1 {MaHP} là khóa của Q2 {MaSV,MaHP} là khóa của Q3 {MaSV}, {MaHP} là các khóa ngoại của Q3 Trong thiết kế CSDL, nhà thiết kế thường dựa vào các Tân từ để xác định khóa cho Lược đồ quan hệ. II. Ràng buộc toàn vẹn 1. Định nghĩa ràng buộc toàn vẹn. Ràng buộc toàn vẹn là các quy định điều kiện từ ứng dụng thực tế, các điều kiện này là bất biến. => Vì thế phải luôn đảm bảo cơ sở dữ liệu thỏa ràng buộc toàn vẹn sau mỗi thao tác làm thay đổi tình trạng của cơ sở dữ liệu. 2. Các đặc trưng của ràng buộc - Mô tả chặt chẽ ý nghĩa của ràng buộc toàn vẹn. Nội dung được phát biểu bằng ngôn ngữ tự nhiên hoặc ngôn ngữ hình thức (ngôn ngữ tân từ, đại số quan hệ, mã giã). - Ngôn ngữ tự nhiên: dễ hiểu, nhưng không chặt chẽ, logic. - Ngôn ngữ hình thức: chặt chẽ, cô động. 3. Bảng tầm ảnh hưởng - Nhằm xác định khi nào cần tiến hành kiểm tra ràng buộc toàn vẹn. Thao tác nào thực hiện có thể vi phạm ràng buộc toàn vẹn. - Phạm vi ảnh hưởng của một ràng buộc toàn vẹn được biểu diễn bằng bảng 2 chiều gọi là bảng tầm ảnh hưởng. Một số quy định chung: - Những thuộc tính là khóa chính không được sửa giá trị. - Trước khi xét thao tác thực hiện có thể vi phạm ràng buộc hay không thì CSDL phải thỏa mãn ràng buộc toàn vẹn trước. - Thêm xét trên một bộ của quan hệ. Sửa và xóa xét trên từng thuộc tính của quan hệ. Ràng buộc Ri Thêm Xóa Sửa Quan hệ 1 …….. Quan hệ n +: Ảnh hưởng đến RBTV

Page 9: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 9

-: Không ảnh hưởng. +(A): Ảnh hưởng khi sửa thuộc tính A. -(*): Không ảnh hưởng do thao tác không thực hiện được. 4. Ràng buộc bối cảnh trên một quan hệ a. Ràng buộc miền giá trị Là một tập các giá trị mà thuộc tính có thể nhận được. R1: Điểm của HV chỉ có thể từ 1-> 10

hv HOCVIEN: hv.DIEM {1 10} b. Ràng buộc liên thuộc tính Là ràng buộc giữa các thuộc tính với nhau trong cùng một bộ của quan hệ. R2: Ngày bắt đầu đi dạy luôn nhỏ hơn ngày kết thúc.

gd GIANGDAY: gd.TUNGAY < gd.DENNGAY Ràng buộc R2

Thêm Xóa Sửa

GIANGDAY + - + c. Ràng buộc liên bộ Là ràng buộc trên cũng nhiều bộ của quan hệ có thể liên quan đến nhiều thuộc tính. R3: Các giáo viên có cùng học vị, cùng hệ số lương thì mức lương là như nhau.

gv1,gv2 GIAOVIEN: Nếu gv1.Hocvi=gv2.Hocvi)

(gv1.Heso=gv2.Heso) thì gv.Mucluong=gv.Mucluong Ràng buộc R3

Thêm Xóa Sửa

GIAOVIEN + - + 5. Ràng buộc bối cảnh nhiều quan hệ a. Ràng buộc tham chiếu Là ràng buộc quy định giá trị thuộc tính một bộ của quan hệ R (khóa ngoại) phải phụ thuộc vào sự tồn tại của bộ trong quan hệ S (khóa chính). RBTV tham chiếu hay còn gọi là RB phụ thuộc tồn tại hay RV khóa ngoại. Học viên thi một môn nào đó thì môn đó phải có trong bảng môn học. • k KETQUATHI, m MONHOC: k.Mamh = m.Mamh •Hoặc:KETQUATHI[Mamh] MONHOC[Mamh] Ràng buộc R3

Thêm Xóa Sửa

KETQUA + - -(*) MONHOC - + -(*) R2: Ràng buộc liên bộ liên thuộc tính. Ngày mà giáo viên đó dạy một môn học phải sau ngày vào làm

gd GIANGDAY Nếu gv GIAOVIEN: gd.Magv = gv.Magv thì gv.NGVL gd.TUNGAY

Page 10: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 10

Ràng buộc R3

Thêm Xóa Sửa

GIANGDAY + - -(TN) GIAOVIEN - + -

(NVL) b. Ràng buộc toàn vẹn do thuộc tính tổng hợp. Là ràng buộc giữa các thuộc tính các bộ trên những quan hệ khác nhau. Thuộc tính tổng hợp là những thuộc tính được tính toán từ giá trị của các thuộc tính khác, các bộ khác. Ví dụ : SANPHAM(Masp, Tensp, Nuocsx, Gia) KHACHHANG(Makh, Hoten, Doanhso) HOADON(Sohd, Nghd,Makh,Trigia) CTHD(Sohd,Masp,Soluong,Gia) – Trị giá của một hóa đơn bằng tổng thành tiền của các chi tiết thuộc hóa đơn đó III. Các phép tính trên cơ sở dữ liệu quan hệ 1. Phép hợp (Union) : Cho lược đồ quan hệ Q, với các quan hệ thể hiện q1, q2 Ta có : q1 q2 = q3 = {r : r q1 r q2 } 2. Phép giao (Intersection) Phép giao : Cho lược đồ quan hệ Q, với các quan hệ thể hiện q1, q2 Ta có : q1 q2 = q3 = {r : r q1 r q2 } 3. Phép trừ (Minus, difference) Phép trừ : - Cho lược đồ quan hệ Q, với các quan hệ thể hiện q1, q2 Ta có : q1 - q2 = q3 = {r : r q1 r q2 } 4. Tích Descartes Cho lược đồ quan hệ Q1(A1,A2,…An) có quan hệ thể hiện là q1; Q2(B1,B2,…Bm) có quan hệ thể hiện là q2 q1 x q2 = q3 , ta có : q3 là 1 quan hệ của Q3 với Q3+ = Q1+ + Q2+ q3 = {r : r.(Q1+) q1 r.(Q2+) q2} Cho lược đồ quan hệ Q1(MaSV,MaMH,DiemThi), Q2(MaMH,TenMH) có các quan hệ q1, q2 : q1 = MaSV MaMH DiemThi 99001 CSDL 5.0 99002 CTDL 2.0

Page 11: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 11

99003 MANG 8.0 q2 = MaMH TenMH CSDL CSDL FOX Foxpro q3 = MaSVMaMH Diem MaMH TenMH99001 CSDL 5.0 CSDL CSDL 99001 CSDL 5.0 FOX Foxpro 99002 CTDL 2.0 CSDL CSDL 99002 CTDL 2.0 FOX Foxpro 99003 MANG 8.0 CSDL CSDL 99003 MANG 8.0 FOX Foxpro

Page 12: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 12

BÀI 4: NGÔN NGỮ THAO TÁC DỮ LIỆU I. Đại số quan hệ. 1. Định nghĩa Đại số quan hệ (ĐSQH) có nền tảng toán học (cụ thể là lý thuyết tập hợp) để mô hình hóa CSDL quan hệ. Đối tượng xử lý là các quan hệ trong cơ sở dữ liệu quan hệ. 2. Chức năng - Cho phép mô tả các phép toán rút trích dữ liệu từ các quan hệ trong cơ sở dữ liệu quan hệ. - Cho phép tối ưu quá trình rút trích bằng các phép toán có sẵn của lý thuyết tập hợp. 3. Biểu thức đại số quan hệ - Biểu thức ĐSQH là một biểu thức gồm các phép toán ĐSQH - Biểu thức ĐSQH được xem như một quan hệ (không có tên) - Có thể đặt tên cho quan hệ được tạo từ một biểu thức quan hệ. - Có thể đổi tên các thuộc tính của quan hệ được tạo từ một biểu thức ĐSQH. II. Các phép toán trên quan hệ 1. Phép chọn Trích chọn các bộ (dòng) từ quan hệ R. Các bộ được trích chọn phải thỏa mãn điều kiện chọn p Ký hiệu: p(R)

p(R) {t /t R, p(t)}

p1 ( p2(R))= p2 ( p1(R)) = p1 ^ p2)(R)

(Gioitinh=‘Nam’) (Noisinh=‘TpHCM’)(HOCVIEN)

Định nghĩa: t phải thỏa điều kiện p Kết quả trả về là một quan hệ, có cùng danh sách thuộc tính với quan hệ R. Không có kết quả trùng. Phép chọn có tính chất giao hoán

Ví dụ : Cho LĐ CSDL Quản lý giáo vụ như sau: HOCVIEN(MAHV, HO,TEN, NGAYSINH, GIOITINH, NOI SINH, MALOP). LOP(MALOP, TENLOP, TRUONGLOP, SISO, MAGVCN) KHOA(MAKHOA, TENKHOA, NGAYTLAP, TRUONGKHOA) MONHOC(MAMH, TENMH, TCLT, TCTH, MAKHOA) GIAOVIEN(MAGV, TENGV, HOCVI, HOCHAM, GIOITINH, NGAYSINH, NGVAOLAM, HESO, MUCLUONG, MAKHOA) GIANGDAY(MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY) KQTHI(MAHV, MAMH, LANTHI, NGAYTHI, DIEM, KQ) Thực hiện chọn những HS có giới tính là "Nam" và NOISINH ở "TPHCM".

Page 13: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 13

Mahv,Hoten (Gioitinh=‘Nam’) (Noisinh=‘TpHCM’)(HOCVIEN)

3. Phép gán

III. Các phép cơ sở trên quan hệ

R >p< S

Phép kết với điều kiện tổng quát gọi là điều kiện của phép kết là một trong các phép so sánh (#, =,>,<). Ví dụ

R> A1>B2< S HOCVIEN ►Mahv Trglop ◄ LOP Nếu điều kiện kết có 2 cột giống nhau thì bỏ bớt một cột.

HOCVIEN> Mahv< KETQUATHI HOCVIEN *MahvKETQUATHI 3. Phép kết ngoài

2. Phép chiếu Sử dụng để trích chọn giá trị một và thuộc tính của quan hệ. Ký hiệu (A1, A2....Ak)(R) Trong đó A1, A2, Ak là các thuộc tính được chiếu. Kết quả của phép tính trả về một quan hệ có k thuộc tính theo thứ tự như liệt kê. Các dòng trùng nhau chỉ lấy một. Phép chiếu không có tính chất giao hoán. Ví dụ: Tìm mã số, họ tên của những học viên “Nam” và có nơi sinh ở “TPHCM”.

Dùng để biểu diễn các câu truy vấn phức tạp. Ký hiệu A B Ví dụ: R(HO,TEN, LUONG) NV, TENNV, LUONG) (NHANVIEN) Bên trái là biến quan hệ mới, kết quả nằm bên tay phải sẽ được gán vào quan hệ mới ở bên trái.

1. Phép kết (Theta join) Phép tính này giống như phép tích dercarts kết hợp với phép chọn. Điều kiện chọn gọi là điều kiện kết.

Trong đó R,S là các quan hệ, p là điều kiện kết. - Các bộ có giá trị Null tại thuộc tính kết nối không xuất hiện trong kết quả của phép kết.

R B1 B2

4 3 5 7

R A1 A2

1 2 1 8

A1 A2 B1 B2

1 8 4 3 1 8 5 7

2. Phép kết bằng, phép kết tự nhiên. Nếu là phép so sánh bằng (=), phép gọi là phép kết bằng (equi – join)

Page 14: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 14

Left outer join Right outer join Full outer join Ví dụ: In ra danh sách của học viên và điểm số mà học viên đó tham gia thi KETQUATHI

HOCVIEN

Kết quả hiển thị sau khi kết

IV. Ngôn ngữ giao tiếp CSDL Là ngôn ngữ chuẩn dùng để thao tác và truy vấn trên CSDL quan hệ. - Là ngôn ngữ phi thủ tục - Khởi nguồn của SQL là SEQUEL – Structured English Query Language, năm 1974 1. Ngôn ngữ mô tả dữ liệu (Data Definition Language) Là ngôn định nghĩa CSDL cho phép khai báo cấu trúc bảng, các mối liên hệ và các ràng buộc. a. Lệnh tạo bảng.

b. Một số kiểu dữ liệu

Là một phép kết dùng để tránh trường hợp mất thông tin. - Thực hiện phép kết 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ộ của quan hệ kia.

Page 15: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 15

Sử dụng các kiểu dữ liệu và cấu trúc tạo bảng tạo các bảng dữ liệu sau đây trong SQL Server

Ví dụ: Tạo bảng CTHD

2. Ngôn ngữ thao tác dữ liệu (Data Manipulation Language) Là ngôn ngữ sử dụng các câu lệnh SQL để thao tác trên CSDL như: Thêm, Sửa, Xóa. Ví dụ: Thêm một Khách hàng vào bảng KHACHHANG. INSERT INTO (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK, CMND) Values (“KH02”, “Nguyen Van A”, “123 Hà Tây”, “ 0925364785”, “20/11/1983”, 25365, “25/12/2006”, “273083815”. 3. Ngôn ngữ truy vấn dữ liệu (Structured Query Language) Là ngôn ngữ sử dụng các câu lệnh truy vấn và nhóm lệnh gom nhóm cũng như các hàm tính toán, thống kê để tìm kiếm và chọn lọc dữ liệu cần thiết theo mong muốn, 4. Ngôn ngữ quản lý dữ liệu Thay đổi cấu trúc của các bảng dữ liệu Khai báo bảo mật thông tin Quyền hạn của người dùng trong khai thác CSDL

Kiểu SQL Server 2000

Chuỗi Char(n), nchar(n), varchar(n), nvarchar(n)

Logic Bit Ngày Smalldatetime,datetime Số Tinyint, smallint, int,

numeric(m,n)....

Page 16: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 16

BÀI 5: NGÔN NGỮ TRUY VẤN DỮ LIỆU I.Tổng quan, các qui ước biểu diễn câu lệnh SQL 1. Định nghĩa SQL = Structured Query Language - Là ngôn ngữ dùng để truy vấn dữ liệu - Ngôn ngữ = cú pháp (cấu trúc ngữ pháp) + các từ khóa (từ vựng) + hàm lập sẵn. - Là 1 công cụ giao tiếp của HQTCSDL Là cầu nối giữa: - Nhà phát triển (Lập trình viên ) và Hệ quản trị CSDL - Người dùng cuối (End-user) và Hệ quản trị CSDL 2. Qui ước biểu diễn - Chuỗi (String) : được đặt trong dấu nháy kép hoặc đơn. Ví dụ : SELECT * FROM SINHVIEN WHERE MASV = “SV01” - Số (number) Ví dụ : 1024 ; 4.5 ; … - Ngày tháng (date/time) : được đặt trong cặp dấu #, giữa ngày – tháng – năm là dấu phân cách “-” hoặc “/”, tên tháng có thể là số (1-12) hoặc viết tắt 3 chữ cái đầu. Ví dụ : #12/2/2001# ; #1-Jan-94# - Các toán tử so sánh Toán tử

Ý nghĩa Ví dụ KQ

< Nhỏ hơn 3 < 5 True <= Nhỏ hơn hay

bằng 2 <= 5

True

> Lớn hơn 2 > 5 False

>= Lớn hơn hay bằng

2 >= 5

False

= Bằng nhau 2 = 5 False

> Khác nhau 2 <> 5

True

Page 17: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 17

- Các toán tử luận lý Toán tử

Ý nghĩa Ví dụ KQ

Not Luật phủ định

Not (5 > 2) Not (2>5)

False True

And Luật và (5>2) And (2>5) (5>2) And (5>4)

False True

Or Luật hay (5>2) Or (2>5) (2>5) Or (4>5)

True False

- Toán tử Between …And Cú pháp : Giá trị so sánh Between value2 and value3 Ví dụ : SELECT * FROM SINHVIEN WHERE DIEMTB BETWEEN 5 AND 6.5 - Toán tử Like Cú pháp : Cột so sánh LIKE < giá trị> Các ký tự đại diện * : đại diện cho tất cả ký tự bất kỳ ? : đại diện cho một ký tự bất kỳ # : đại diện cho 1 ký tự số [A1,A2,…] : đại diện cho 1 ký tự thuộc tập {A1, A2, …} [A1 – A2] : đại diện cho 1 ký tự thuộc khoảng ký tự từ A1 đến A2 Ví dụ: Tìm tất cả sinh viên có từ Hoa trong phần cuối của tên, ví dụ : ‘Ngọc Thoa’, ‘Đào Hoa’, … SELECT * FROM SINHVIEN WHERE TEN LIKE ‘*Hoa’ 3. Một số hàm hệ thống

Page 18: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 18

Hàm IIf Cú pháp : IIf(điều kiện,giá trị 1,giá trị 2) Ví dụ : SELECT * FROM SINHVIEN WHERE DIEMTB>= IIF(GIOITINH=‘Nam’,6.5,6) Hàm Date: Trả về ngày giờ của hệ thống. SELECT * FROM HOADON WHERE NGAYLAP >= (DATE()-5) Hàm Day(<biểu thức ngày>) : trả về chỉ số của ngày trong <biểu thức ngày>. Ví dụ : Day(#12/2/2005#) 12 Hàm Month(<biểu thức ngày>) : trả về chỉ số của tháng trong <biểu thức ngày>. Hàm Year(<biểu thức ngày>) : trả về chỉ số của năm trong <biểu thức ngày>. Hàm Len(<giá trị chuỗi>) : trả về độ dài của chuỗi Left(s,n) : trả về chuỗi gồm n ký tự bên trái của chuỗi s. Right(s,n) : trả về chuỗi gồm n ký tự bên phải của chuỗi s. Mid(s,i,n) : trả về chuỗi con của chuỗi s gồm n ký tự kể từ vị trí i. II. Ngôn ngữ cập nhật dữ liệu. 1. Thêm thuộc tính vào quan hệ ALTER TABLE SINHVIEN ADD COLUMN GIOITINH TEXT(10) 2. Sửa kiểu dữ liệu của thuộc tính ALTER TABLE SINHVIEN ALTER COLUMN GIOITINH BOOLEAN 3. Xóa thuộc tính ALTER TABLE SINHVIEN DROP COLUMN GIOITINH 4. Xóa ràng buộc khóa chính ALTER TABLE SINHVIEN DROP CONSTRAINT k1 5. Thêm ràng buộc khóa chính ALTER TABLE SINHVIEN ADD CONSTRAINT k1 PRIMARY KEY (MASV) 6. Thêm ràng buộc miền giá trị lên thuộc tính ALTER TABLE SINHVIEN ADD CONSTRAINT k3 CHECK (DIEMTB>=0 AND DIEMTB<=10) III. Ngôn ngữ cập nhật CSDL. 1. Thêm một trường dữ liệu mới. INSERT INTO <TÊN BẢNG>( <TÊNTHUỘCTÍNH1>, <TÊNTHUỘCTÍNH2>,…) VALUES(<GIÁ TRỊ 1>, <GIÁ TRỊ 2>, …) Lưu ý : Các giá trị trong VALUES(…) phải tương ứng với các thuộc tính trong <TÊN BẢNG>(…)

Page 19: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 19

Nếu có thuộc tính nào trong lược đồ quan hệ <TÊN BẢNG> không được khai báo trong <TÊN BẢNG>(…) và VALUES(…) thì giá trị của bộ mới được thêm vào ứng với thuộc tính đó sẽ được đặt bằng Null 2. Sửa trường dữ liệu mới. UPDATE <TÊN BẢNG> SET <THUỘC TÍNH 1> = <GIÁ TRỊ 1>, <THUỘC TÍNH 2> = <GIÁ TRỊ 2>, … <THUỘC TÍNH n> = <GIÁ TRỊ n> WHERE <ĐIỀU KIỆN> Ví dụ: UPDATE MONHOC SET TCLT = 45 WHERE MAMH = ‘MH001’ 3. Xóa một trường dữ liệu mới. DELETE FROM <TÊN BẢNG> WHERE <ĐIỀU KIỆN> Lưu ý trong việc sửa, xóa trường dữ liệu cần phải có điều kiện where để tránh cập nhật dữ liệu sai Ví dụ: IV. Ngôn ngữ truy vấn dữ liệu. Cấu trúc chung của một câu truy vấn SELECT [DISTINCT] {<tên cột> | <biểu thức> [,]} | * FROM {<tên bảng> | <tên view> [,]} [WHERE <biểu thức điều kiện>] [GROUP BY {<tên cột> | <tên biểu thức> [,]} [HAVING <biểu thức điều kiện>]] [ORDER BY {<tên cột> | <tên biểu thức> [ASC | DESC] [,]} 1. Truy vấn chọn dữ liệu Là các câu truy vấn chọn lựa dữ liệu từ một hoặc nhiều bảng đơn giản dựa theo các điều kiện thích hợp. Cấu trúc SELECT * FROM <tên bảng> WHERE a. Chọn từ 1 bảng Ví dụ 1 : Chọn tất cả sinh viên có điểm trung bình >= 6.5 SELECT * FROM SINHVIEN WHERE DIEMTB >= 6.5; Ví dụ 2 : Chọn 10 sinh viên có điểm trung bình cao nhất SELECT TOP 10 FROM SINHVIEN; Ví dụ 3 : Chọn 10% sinh viên có điểm trung bình cao nhất SELECT TOP 10% FROM SINHVIEN; Ví dụ 4 : Chọn có loại bỏ các bộ trùng : chọn các mức điểm khác nhau mà các sinh viên đã đạt được SELECT DISTINCT DIEMTB FROM SINHVIEN;

Page 20: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 20

Lưu ý : Dấu ; cho biết đã kết thúc câu lệnh SQL b. Chọn từ nhiều bảng. Ví dụ 1 : Tìm tất cả các tên học phần mà sinh viên mang mã số SV01 đã đăng ký. SELECT HOCPHAN.TENHP FROM SINHVIEN S, DANGKY_HOCPHAN DK, HOCPHAN HP WHERE S.MASV = ‘SV01’ AND S.MASV= DK.MASV AND DK.MAHP= HP.MAHP; Cách 2: SELECT HOCPHAN.TENHP FROM (SINHVIEN INNER JOIN DANGKY_HOCPHAN ON SINHVIEN.MASV= DANGKY_HOCPHAN.MASV) INNER JOIN HOCPHAN ON DANGKY_HOCPHAN.MAHP = HOCPHAN.MAHP WHERE MASV = ‘SV01’; 2. Truy vấn chọn và sắp xếp Là chọn các dữ liệu theo điều kiện và sắp xếp thứ tự theo thuộc tính. Ví dụ 1 : Tìm tất cả các tên sinh viên đã đăng ký học phần có mã là CSDL, sắp thứ tự kết quả trả về theo tên tăng dần, họ tăng dần và mã sinh viên giảm dần. SELECT MASV,HO,TEN FROM (SINHVIEN INNER JOIN DANGKY_HOCPHAN ON SINHVIEN.MASV = DANGKY_HOCPHAN.MASV WHERE MAHP = ‘CSDL’ ORDER BY TEN ASC, HO ASC, MASV DESC; Lưu ý : Khi thuộc tính giữa các bảng được truy vấn sau từ khóa From không trùng tên thì ta có thể ghi tường minh tên thuộc tính, mà không cần phải ghi : <Tên bảng>.<Tên thuộc tính> Ví dụ 2 : Tìm tất cả các tên sinh viên đã đăng ký học phần ít nhất 3 học phần trở lên. SELECT SINHVIEN.MASV, SINHVIEN.HOTEN FROM DANGKY_HOCPHAN INNER JOIN SINHVIEN ON DANGKY_HOCPHAN.MASV=SINHVIEN.MASV GROUPBY SINHVIEN.MASV,SINHVIEN.HOTEN HAVING COUNT(DANGKY_HOCPHAN.MAHP)>4 3. Truy vấn lồng nhau (truy vấn con) Là câu lệnh truy vấn mà trong biểu thức điều kiện của WHERE hoặc HAVING là câu truy vấn khác. Ví dụ 1 : Lấy về thông tin của sinh viên có điểm trung bình cao nhất. SELECT MASV,HOTEN FROM SINHVIEN WHERE DIEMTB >= ALL(SELECT DIEMTB FROM SINHVIEN) Các từ khóa trong truy vấn lồng nhau

Page 21: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 21

ANY, SOME : Kết quả các bộ trả về của query cha so sánh với 1 trong (bất kỳ) các bộ của query con. ALL : Kết quả các bộ trả về của query cha so sánh với tất cả các bộ của query con. IN : Kết quả các bộ trả về của query cha bằng với 1 trong (bất kỳ) các bộ của query con. NOT IN : Kết quả các bộ trả về của query cha không bằng với bất kỳ bộ nào của query con. EXISTS / NOT EXISTS : Kết quả các bộ trả về của query cha được thỏa khi query con có tồn tại ít nhất 1 bộ / không tồn tại bộ nào. Ví dụ 2 : Lấy về thông tin của các sinh viên có đăng ký môn học CSDL. SELECT MASV,HOTEN FROM SINHVIEN WHERE MASV IN (SELECT MASV FROM DANGKY_HOCPHAN WHERE MAHP=‘CSDL’) Ví dụ 3: Trả về điểm trung bình cộng của các sinh viên nếu như có ít nhất 1 sinh viên có điểm trung bình >= 5. SELECT AVG(DIEMTB) FROM SINHVIEN WHERE EXISTS(SELECT DIEMTB FROM SINHVIEN WHERE DIEMTB>=5) V. Nhóm lệnh tính toán, thống kê Là các lệnh dùng để tính toán và thống kê dữ liệu theo các điều kiện thích hợp. Các hàm thông dụng: AVG, COUNT, SUM, MAX, MIN… Hàm Sum: Tính tổng của các giá trị của cột theo điều kiện sau Where Ví dụ: Trả về tổng giá trị của các hóa đơn có ngày lập trong vòng 6 ngày gần đây. SELECT Sum(GIATRI) FROM HOADON WHERE NGAYLAP >= (DATE()-5) Hàm Max: Dùng để tìm giá trị lớn nhấn của cột. Ví du: Trả về giá trị lớn nhất trong các hóa đơn có ngày lập trong vòng 6 ngày gần đây. SELECT Max(GIATRI) FROM HOADON WHERE NGAYLAP>=(DATE()-5) Avg(<tên thuộc tính>) : trả về giá trị trung bình cộng của các giá trị tương ứng với <tên thuộc tính> của các bộ thỏa điều kiện WHERE có trong quan hệ. Count(<tên thuộc tính>) : trả về số lượng các giá trị tương ứng với <tên thuộc tính> của các bộ thỏa điều kiện WHERE và khác Null có trong quan hệ.

BÀI 6: RÀNG BUỘC TOÀN VẸN VÀ PHỤ THUỘC HÀM I. RÀNG BUỘC TOÀN VẸN 1. Khái Niệm Ràng Buộc Toàn Vẹn Trong mỗi CSDL luôn tồn tại nhiều mối liên hệ giữa các thuộc tính, giữa các bộ; sự liên hệ này có thể xảy ra trong cùng một quan hệ hoặc trong các quan hệ của một lược đồ CSDL. Các mối liên hệ này là những điều kiện bất biến mà tất cả các bộ của những quan hệ có liên quan trong CSDL đều phải thoả mãn ở mọi thời điểm. Những điều kiện bất biến đó được

Page 22: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 22

gọi là ràng buộc toàn vẹn.. Trong thực tế ràng buộc toàn vẹn là các quy tắc quản lý được áp đặt trên các đối tượng của thế giới thực. Chẳng hạn mỗi sinh viên phải có một mã sinh viên duy nhất, hai thí sinh dự thi vào một trường phải có số báo danh khác nhau, một sinh viên dự thi một môn học không quá 3 lần,… Nhiệm vụ của người phân tích thiết kế là phải phát hiện càng đầy đủ các ràng buộc toàn vẹn càng tốt và mô tả chúng một cách chính xác trong hồ sơ phân tích thiết kế - đó là một việc làm rất quan trọng. Ràng buộc toàn vẹn được xem như là một công cụ để diễn đạt ngữ nghĩa của CSDL. Một CSDL được thiết kế cồng kềnh nhưng nó thể hiện được đầy đủ ngữ nghĩa của thực tế vẫn có giá trị cao hơn rất nhiều so với một cách thiết kế gọn nhẹ nhưng nghèo nàn về ngữ nghĩa vì thiếu các ràng buộc toàn vẹn của CSDL. Công việc kiểm tra ràng buộc toàn vẹn thường được tiến hành vào thời điểm cập nhật dữ liệu ( thêm, sửa, xoá). Những ràng buộc toàn vẹn phát sinh phải cần được ghi nhận và xử lý một cách tường minh (thường là bởi một hàm chuẩn hoặc một đoạn chương trình). Ràng buộc toàn vẹn và kiểm tra sự vi phạm ràng buộc toàn vẹn là hai trong số những vấn đề quan trọng trong quá trình phân tích thiết kế cơ sở dữ liệu, nếu không quan tâm đúng mức đến những vấn đề trên, thì có thể dẫn đến hậu quả nghiêm trọng về tính an toàn và toàn vẹn dữ liệu , đặc biệt là đối với những cơ sở dữ liệu lớn. 2. Các Yếu Tố Của Ràng Buộc Toàn Vẹn Mỗi ràng buộc toàn vẹn có bốn yếu tố: điều kiện, bối cảnh, bảng tầm ảnh hưởng và hành động phải cần thực hiện khi phát hiện có ràng buộc toàn vẹn bị vi phạm: a. Điều kiện Điều kiện của ràng buộc toàn vẹn là sự mô tả, và biểu diễn hình thức nội dung của nó Điều kiện của một ràng buộc toàn vẹn R có thể được biểu diễn bằng ngôn ngữ tự nhiên, ngôn ngữ đại số quan hệ, ngôn ngữ mã giả, ngôn ngữ truy vấn SQL,… ngoài ra điều kiện của ràng buộc toàn vẹn cũng có thể được biểu diễn bằng phụ thuộc hàm Sau đây là một số ràng buộc toàn vẹn trên lược đồ CSDL quản lý sinh viên . Mỗi lớp học phải có một mã số duy nhất để phân biệt với các lớp học khác trong trường. Mỗi lớp học phải thuộc về một khoa của trường. Mỗi sinh viên có một mã số sinh viên duy nhất, không trùng với bất cứ sinh viên nào trong trường. Mỗi học viên phải đăng ký vào một lớp học trong trường. Mỗi học viên chỉ được thi tối đa 3 lần cho mỗi môn học. Tổng số học viên của một lớp phải lớn hơn hoặc bằng số lượng đếm được của một lớp tại một thời điểm nào đó. b. Bối cảnh Bối cảnh của ràng buộc toàn vẹn là những quan hệ mà ràng buộc đó có hiệu lực hay nói một cách khác, đó là những quan hệ cần phải được kiểm tra khi tiến hành cập nhật dữ liệu. Bối cảnh của một ràng buộc toàn vẹn có thể là một hoặc nhiều quan hệ. Chẳng hạn với ràng buộc toàn vẹn R trên thì bối cảnh của nó là quan hệ Sinhvien c3.Bảng tầm ảnh hưởng Trong quá trình phân tích thiết kế một CSDL, người phân tích cần lập bảng tầm ảnh hưởng cho một ràng buộc toàn vẹn nhằm xác định thời điểm cần phải tiến hành kiểm tra khi tiến

Page 23: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 23

hành cập nhật dữ liệu. Thời điểm cần phải kiểm tra ràng buộc toàn vẹn chính là thời điểm cập nhật dữ liệu. Một bảng tầm ảnh hưởng của một ràng buộc toàn vẹn có dạng sau:

Bảng này chứa toàn các ký hiệu + , – hoặc -(*). Chẳng hạn + tại (dòng r1, cột Thêm) thì có nghĩa là khi thêm một bộ vào quan hệ r1 thì RBTV bị vi phạm. Dấu - Tại ô (dòng r2, cột sửa) thì có nghĩa là khi sửa một bộ trên quan hệ r2 thì RBTV không bị vi phạm. ,… Quy ước: -Không được sửa thuộc tính khoá. -Nếu không bị vi phạm do không được phép sửa đổi thì ký hiệu là -(*). d.Hành động cần phải có khi phát hiện có RBTV bị vi phạm: khi một ràng buộc toàn vẹn bị vi phạm, cần có những hành động thích hợp. Thông thường có 2 giải pháp: Thứ nhất: Đưa ra thông báo và yêu cầu sửa chữa dữ liệu của các thuộc tính cho phù hợp với quy tắc đảm bảo tính nhất quán dữ liệu. Thông báo phải đầy đủ và phải thân thiện với người sử dụng. Giải pháp này là phù hợp cho việc xử lý thời gian thực. Thứ hai:Từ chối thao tác cập nhật. Giải pháp này là phù hợp đối với việc xử lý theo lô. Việc từ chối cũng phải được lưu lại bằng những thông báo đầy đủ, rõ ràng vì sao thao tác bị từ chối và cần phải sữa lại những dữ liệu nào ? Khóa nội, khoá ngoại, giá trị NOT NULL là những ràng buộc toàn vẹn miền giá trị của các thuộc tính. Những ràng buộc toàn vẹn này là những ràng buộc toàn vẹn đơn giản trong CSDL. Các hệ quản trị cơ sở dữ liệu thường có các cơ chế tự động kiểm tra các ràng buộc toàn vẹn về miền giá trị của khoa nội, khoá ngoại, giá trị NOT NULL. Việc kiểm tra ràng buộc toàn vẹn có thể tiến hành vào những thời điểm sau đây. Thứ nhất: Kiểm tra ngay sau khi thực hiện một thao tác cặp nhật CSDL. Thao tác cặp nhật chỉ được xem là hợp lệ nếu như nó không vi phạm bất cứ một ràng buộc toàn vẹn nào , nghĩa là nó không làm mất tính toàn vẹn của CSDL Nếu vi phạm ràng buộc toàn vẹn , thao tác cặp nhật bị coi là không hợp lệ và sẽ bị hệ thống huỷ bỏ (hoặc có một xử lý thích hợp nào đó)

Page 24: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 24

Thứ hai: Kiểm tra định kỳ hay đột xuất, nghĩa là việc kiểm tra ràng buộc toàn vẹn được tiến hành độc lập với thao tác cặp nhật dữ liệu. Đối với những trường hợp vi phạm ràng buộc toàn vẹn , hệ thống có những xử lý ngầm định hoặc yêu cầu người sử dụng xử lý những sai sót một cách tường minh. II. PHÂN LOẠI RÀNG BUỘC TOÀN VẸN Trong quá trình phân tích thiết kế CSDL, người phân tích phải phát hiện tất cả các ràng buộc toàn vẹn tiềm ẩn trong CSDL đó. Việc phân loại các ràng buộc toàn vẹn là rất có ích, nó nhằm giúp cho người phân tích có được một định hướng để phát hiện các ràng buộc toàn vẹn, tránh bỏ sót. Các ràng buộc toàn vẹn có thể được chia làm hai loại chính như sau: Thứ nhất: Ràng buộc toàn vẹn có phạm vi là một quan hệ bao gồm :Ràng buộc toàn vẹn miền giá trị, ràng buộc toàn vẹn liên thuộc tính, ràng buộc toàn vẹn liên bộ. Thứ hai: Ràng buộc toàn vẹn có phạm vi là nhiều quan hệ bao gồm :Ràng buộc toàn vẹn phụ thuộc tồn tại, ràng buộc toàn vẹn liên bộ - liên quan hệ, ràng buộc toàn vẹn liên thuộc tính - liên quan hệ. Để minh hoạ cho phần lý thuyết của chương này, chúng ta xét ví dụ sau đây: Ví dụ 4.1 Cho một CSDL C dùng để quản lý việc đặt hàng và giao hàng của một công ty. Lược đồ CSDL C gồm các lược đồ quan hệ như sau: Q1: Khach (MAKH, TENKH, DIACHIKH, DIENTHOAI) Tân từ: Mỗi khách hàng có một mã khách hàng (MAKH) duy nhất, mỗi MAKH xác định tên khách hàng (TENKH), địa chỉ (DIACHIKH), số điện thoại (DIENTHOAI). Q2: Hang(MAHANG,TENHANG,QUYCACH, DVTINH) Tân từ: Mỗi mặt hàng có một mã hàng (MAHANG) duy nhất, mỗi MAHANG xác định tên hàng (TENHANG), quy cách hàng (QUYCACH), đơn vị tính (DVTINH). Q3: Dathang(SODH,MAHANG, SLDAT, NGAYDH, MAKH) Tân từ: Mỗi mã số đặt hàng (SODH) xác định một ngày đặt hàng (NGAYDH) và mã khách hàng tương ứng (MAKH). Biết mã số đặt hàng và mã mặt hàng thì biết được số lượng đặt hàng(SLDAT). Mõi khách hàng trong một ngày có thể có nhiều lần đặt hàng Q4: Hoadon(SOHD, NGAYLAP, SODH, TRIGIAHD, NGAYXUAT) Tân từ: Mỗi hoá đơn tổng hợp có một mã số duy nhất là SOHD, mỗi hoá đơn bán hàng có thể gồm nhiều mặt hàng. Mỗi hoá đơn xác định ngày lập hoá đơn (NGAYLAP), ứng với số đặt hàng nào (SODH). Giả sử rằng hoá đơn bán hàng theo yêu cầu của chỉ một đơn đặt hàng có mã số là SỌDH và ngược lại , mỗi đơn đặt hàng chỉ được giải quyết chỉ trong một hoá đơn. Do điều kiện khách quan có thể công ty không giao đầy đủ các mặt hàng cũng như số lượng từng mặt hàng như yêu cầu trong đơn đặt hàng nhưng không bao giờ giao vượt ngoài yêu cầu. Mỗi hóa đơn xác định một trị giá của nhưng các mặt hàng trong hoá đơn (TRIGIAHD) và một ngày xuất kho giao hàng cho khách (NGAYXUAT) Q5: Chitiethd (SOHD, MAHANG, GIABAN, SLBAN)

Page 25: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 25

Tân từ: Mỗi SOHD, MAHANG xác định giá bán (GIABAN) và số lượng bán (SLBAN) của một mặt hàng trong một hoá đơn. Q6: Phieuthu(SOPT, NGAYTHU, MAKH, SOTIEN) Tân từ: Mỗi phiếu thu có một số phiếu thu (SOPT) duy nhất, mỗi SOPT xác định một ngày thu (NGAYTHU) của một khách hàng có mã khách hàng là MAKH và số tiền thu là SOTIEN. Mỗi khách hàng trong một ngày có thể có nhiều số phiếu thu. 1. Ràng buộc toàn vẹn có bối cảnh là một quan hệ a. Ràng Buộc Toàn Vẹn liên bộ: +Ràng buộc toàn vẹn về khoá chính: Đây là một trường hợp dặc biệt của Ràng Buộc toàn Vẹn liên bộ, RBTV này rất phổ biến và thường được các hệ quản trị CSDL tự động kiểm tra. Ví dụ 4.2: Với r là một quan hệ trên lược đồ quan hệ Khach ta có ràng buộc toàn vẹn sau: R1: t1, t2 ∈ r t1. MAKH ≠ t2. MAKH Cuối

+Ràng buộc toàn vẹn về tính duy nhất Ví dụ: mỗi phòng ban phải có một tên gọi duy nhất +Ngoài ra nhiều khi ta còn gặp những RBTV khác chẳng hạn như RBTV sau trong quan hệ sau đây. Ví dụ:KETQUA(MASV,MAMH,LANTHI,DIEM) Mỗi sinh viên chỉ được đăng thi mỗi môn tối đa là 3 lần. b.Ràng Buộc Toàn Vẹn Về Miền Giá Trị Ràng buộc toàn vẹn có liên quan đến miền giá trị của các thuộc tính trong một quan hệ. Ràng buộc này thường gặp. Thông thường các hệ quản trị CSDL đã tự động kiểm tra (một số) ràng buộc loại này. Ví dụ 4.3: Với r là một quan hệ của Hoadon ta có ràng buộc toàn vẹn sau

c. Ràng Buộc Toàn Vẹn Liên Thuộc Tính

Page 26: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 26

Ràng buộc toàn vẹn liên thuộc tính (một quan hệ) là mối liên hệ giữa các thuộc tính trong một lược đồ quan hệ. Ví dụ 4.4 Với r là một quan hệ của Hoadon ta có ràng buộc toàn vẹn sau:

2.Ràng buộc toàn vẹn có bối cảnh là nhiều quan hệ a.Ràng Buộc Toàn Vẹn Về Khoá Ngoại: Ràng buộc toàn vẹn về khoá ngoại còn được gọi là ràng buộc toàn vẹn phụ thuộc tồn tại. Cũng giống như ràng buộc toàn vẹn về khoá nội, loại ràng buộc toàn vẹn này rất phổ biến trong các CSDL. Ví dụ 4.5

b.Ràng Buộc Toàn Vẹn Liên Thuộc Tính Liên Quan Hệ Ràng buộc loại này là mối liên hệ giữa các thuộc tính trong nhiều lược đồ quan hệ. Ví dụ 4.6 Với r,s lần lượt là quan hệ của Dathang và Hoadon. Ta có ràng buộc toàn vẹn R5 như sau:

c.Ràng Buộc Toàn Vẹn Liên Bộ Liên Quan Hệ Ràng buộc loại này là mối liên hệ giữa các bộ trong một lược đồ cơ sở dữ liệu. Chẳng hạn như tổng số tiền phải trả trong mỗi hoá đơn (chitiethd) phải bằng TRỊ GIÁ HOÁ ĐƠN của hoá đơn đó trong quan hệ Hoadon. Hoặc số lượng học viên trong một lớp phải bằng SOHOCVIEN của lớp đó.

Page 27: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 27

Ngoài ra còn có một số loại RBTV khác như :RBTV về thuộc tính tổng hợp, RBTV do tồn tại chu trình ,RBTV về giá trị thuộc tính theo thời gian. III. PHỤ THUỘC HÀM Phụ thuộc hàm (functional dependancy) là một công cụ dùng để biểu diễn một cách hình thức các ràng buộc toàn vẹn. Phương pháp biểu diễn này có rất nhiều ưu điểm, và đây là một công cực kỳ quan trọng, gắn chặt với lý thuyết thiết kế cơ sở dữ liệu. Trong chương này chúng ta sẽ tìm hiểu về lý thuyết thiết kế cơ sở dữ liệu quan hệ, mà bắt đầu là phụ thuộc hàm và một số ứng dụng trong việc giải quyết các bài toán như: tìm khoá, tìm phủ tối thiểu, xác định dạng chuẩn. Trong chương tới chúng ta sẽ tiếp tục tìm hiểu về cách thức chuẩn hoá một cơ sở dữ liệu. 1 Định Nghĩa Phụ Thuộc Hàm Cho lược đồ quan hệ Q{A1,A2,…,An}. X,Y là hai tập con khác rỗng của Q+. Ta nói X xác định Y (hay Y phụ thuộc hàm vào X) nếu với r là một quan hệ nào đó trên Q, t1,t2 ∈ r mà t1.X = t2.X ⇒ t1.Y = t2.Y (nghĩa là không thể tồn tại hai bộ trong r giống nhau ở các thuộc tính trong tập X mà lại khác nhau ở một hay nhiều thuộc tính nào đó trong tập Y). Khi đó ta ký hiệu là X → Y. Chẳng hạn như phụ thuộc hàm của thuộc tính họ tên của sinh viên (HOTENSV) vào mã số sinh viên (MASV) và ta có thể diễn tả bằng phụ thuộc MASV→ HOTENSV Phụ thuộc hàm X → X được gọi là phụ thuộc hàm hiển nhiên. người ta thường dùng F để chỉ tập các phụ thuộc hàm định nghĩa trên Q. Vì Q hữu hạn nên F cũng hữu hạn, ta có thể đánh số các phụ thuộc hàm của F là f1,f2,..,fm. Quy ước: chỉ cần mô tả các phụ thuộc hàm không hiển nhiên trong tập F, các phụ thuộc hàm hiển nhiên được ngầm hiểu là đã có trong F. Ví dụ 5.1: Cho lược dồ quan hệ Q(ABCDE), r là quan hệ xác định trên Q được cho như sau:

Những phụ thuộc hàm nào sau đây thoả r ? A → D; AB → D; E → A; A → E; Giải: AB → D; A → E; 2 Cách Xác Định Phụ Thuộc Hàm Cho Lược Đồ Quan Hệ Cách duy nhất để xác định đúng các phụ thuộc thích hợp cho một lược đồ quan hệ là xem xét nội dung tân từ của lược đồ quan hệ đó. Chẳng hạn với lược đồ cơ sở dữ liệu đã cho trong ví dụ 2.1, thì phụ thuộc hàm ứng với từng lược đồ quan hệ được xác định như sau:

Page 28: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 28

MASV → HOTENSV, NU, NGAYSINH, MALOP, TINH MALOP → TENLOP,MAKHOA MAKHOA → TENKHOA MAMH → TENMH, DONVIHT MASV, MAMH,LANTHI → DIEMTHI 3 Một Số Tính Chất Của Phụ Thuộc Hàm - hệ luật dẫn Armstrong Để có thể xác định được các phụ thuộc hàm khác từ tập phụ thuộc hàm đã có, ta dùng hệ tiên đề Armstrong (1974), gồm các luật sau: với X,Y,Z,W ⊆ Q+ 1.Luật phản xạ (reflexivity) X ⊇ Y ⇒ X→Y Quy tắc này đưa ra những phụ thuộc hàm hiển nhiên (phụ thuộc hàm tầm thường), đó là những phụ thuộc hàm mà vế trái bao hàm cả vế phải. Những phụ thuộc hàm hiển nhiên đều đúng trong mọi quan hệ. 2.Luật tăng trưởng(augmentation) X → Y ⇒ XZ → YZ 3.Luật bắc cầu(transitivity) X → Y, Y → Z ⇒ X → Z Các quy tắc suy rộng: 4.Luật hợp (the union rule) Cho X → Y, X → Z ⇒ X → YZ 5.Luật bắc cầu giả (the pseudotransitivity rule) Cho X → Y,WY→ Z ⇒ XW → Z 6.Luật phân rã (the decomposition rule): Cho X → Y, Z ⊆ Y ⇒ X → Z

BAI 6: DẠNG CHUẨN CỦA LƯỢC ĐỒ Khi thiết kế một hệ thống thông tin, thì việc lập lược đồ CSDL đạt đến một tiêu chuẩn nào đó là một việc làm quan trọng. Chất lượng của hệ thống thông tin phụ thuộc rất nhiều vào lược đồ CSDL này. Việc xác định chuẩn cho một lược đồ quan hệ có liên quan mật thiết với thuật toán tìm khoá. Có thể khẳng định rằng thuật toán tìm khoá là một trong những thuật toán quan trọng của lý thuyết thiết kế cơ sở dữ liệu. Chất lượng thiết kế của một lược đồ CSDL có thể được đánh giá dựa trên nhiều tiêu chuẩn trong đó sự trùng lắp thông tin và chi phí kiểm tra các ràng buộc toàn vẹn là hai tiêu chuẩn quan trọng. Sau đây là một số dạng chuẩn để đánh giá mức độ tốt/xấu của một lược đồ cơ sở dữ liệu. Trước hết, chúng ta cùng tìm hiểu một số khái niệm liên quan. I.Một Số Khái Niệm Liên Quan Đến Các Dạng Chuẩn Thuộc tính khoá/không khoá A là một thuộc tính khoá nếu A có tham gia vào bất kỳ một khoá nào của quan hệ, ngược lại A gọi là thuộc tính không khoá. Ví dụ 1 Cho lược đồ quan hệ Q(ABC) và tập phụ thuộc hàm F={ A→ B; A → C;

Page 29: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 29

B → A} Có hai khóa là A và B. khi đó thuộc tính khoá là A, B; thuộc tính không khóa là: C. Thuộc tính phụ thuộc đầy đủ- phụ thuộc hàm đầy đủ. A là một thuộc tính phụ thuộc đầy đủ vào tập thuộc tính X nếu X →A là một phụ thuộc hàm đầy đủ (tức là không tồn tại X' ⊂ X sao cho X' → A ∈ F+) Ví dụ 2 Cho lược đồ quan hệ Q(ABC) và tập phụ thuộc hàm F={ A → B A→ C; AB → C } thì A → ;B A → C là các phụ thuộc hàm đầy đủ. Phụ thuộc hàm AB → C không là phụ thuộc hàm đầy đủ vì có A → C. Chú ý rằng, một phụ thuộc hàm mà vế trái chỉ có một thuộc tính là phụ thuộc hàm đầy đủ. II. Dạng Chuẩn Một (First Normal Form) Lược đồ quan hệ Q được gọi là đạt dạng chuẩn 1 (1NF) nếu và chỉ nếu toàn bộ các thuộc tính của Q đều mang giá trị đơn. Chẳng hạn xét quan hệ

Lược đồ quan hệ này không đạt dạng chuẩn 1 vì các thuộc tính MONHOC, DIEMTHI không mang giá trị đơn (chẳng hạn sinh viên Nguyễn Văn Thành có thuộc tính môn học là Kỹ Thuật Lập Trình, Cơ Sở Dữ Liệu, Cấu Trúc Dữ Liệu. Ta hoàn toàn có thể đưa quan hệ trên về dạng chuẩn 1 như sau: Chú ý rằng nếu ta không nói gì thêm, thì lược đồ quan hệ đang xét ít nhất là đạt dạng chuẩn 1. III.Dạng Chuẩn 2 (second normal form) Một lược đồ quan hệ Q đạt dạng chuẩn 2 nếu Q đạt dạng chuẩn 1 và tất cả các thuộc tính không khoá của Q đều phụ thuộc đầy đủ vào khoá. Nếu một lược đồ quan hệ không đạt chuẩn 2 thì ta nói nó đạt dạng chuẩn1. Chẳng hạn xét lược đồ quan hệ Q(A,B,C,D) và F={ AB → C,D; B → D; C→ A} Khoá là {A,B} và {B,C}. Do đó D là thuộc tính không khoá, A,B → D không là phụ thuộc hàm đầy đủ vì có B → D.

Page 30: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 30

Vậy Q đạt chuẩn 1. Ví dụ 3: Xác định dạng chuẩn của lược đồ quan hệ sau. Q(GMVNHP) F={G→N; G→H; G→P; M→V; NHP→M} Dễ thấy khoá của Q là G. Thuộc tính không khoá là M,V,N,H,P. Do các phụ thuộc hàm G → M; G → V; G → N; G → H; G → P là các phụ thuộc hàm đầy đủ, nên lược đồ quan hệ Q đạt dạng chuẩn 2 Hệ quả: -Q đạt 2NF nếu Q là 1NF và tập thuộc tính không khoá của Q bằng rỗng. -Nếu khoá của quan hệ có một thuộc tính thì quan hệ đó ít nhất đạt chuẩn 2. Ví dụ 4: Q(ABCDEH) F={A → E; C → D; E → DH} Dễ thấy khoá của Q là K={ABC} D là thuộc tính không khoá. và C → D , vì C là tập con thực sự của khoá nên Q không đạt dạng chuẩn 2. IV. Dạng Chuẩn 3 (third normal form) Một lược đồ quan hệ Q đạt dạng chuẩn 3 nếu mọi phụ thuộc hàm X→A ∈ F+ ( F là tập phụ thuộc không hiển nhiên định nghĩa trên Q, A là thuộc tính đơn, X là tập thuộc tính con của tập Q+), thì một trong hai điều kiện sau được thoả: Hoặc X là một siêu khoá của Q Hoặc A là một thuộc tính khoá Nhận xét: Nếu Q đạt chuẩn 3 thì Q đạt chuẩn 2 Ví dụ 5 Cho lược đồ quan hệ Q(ABCD) F=[AB → C ; D → B C → ABD] K1=[AB]; K2=[AD];K3=[C] là các khoá, vậy Q không có thuộc tính không khoá nên Q đạt chuẩn 3 Hệ quả Nếu lược đồ quan hệ Q,F mà Q không có thuộc tính không khoá thì Q đạt chuẩn 3. Ví dụ 4 Xác định dạng chuẩn của lược đồ quan hệ sau. Q(NGPM) F={NGP→M; M→P} Dễ thấy các khoá của Q là {NGP}, {NGM} NGP → M có vế trái là siêu khoá M → P có vế phải là thuộc tính khoá. Nên Q đạt chuẩn 3.

Page 31: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 31

V. .Dạng Chuẩn BC (Boyce Codd normal form) Một lược đồ quan hệ Q ở dạng chuẩn BC nếu với mỗi phụ thuộc hàm không hiển nhiên X → A ∈ F thì X là một siêu khoá của Q. Nhận xét: Nếu Q đạt chuẩn BC thì Q đạt chuẩn 3 Ví dụ 6 Xác định dạng chuẩn của lược đồ quan hệ sau. Q(ACDEIB) F={ACD→EBI; CE→AD} Dễ thấy Q có hai khoá là: ACD và CE. Các phụ thuộc hàm của F đều có vế trái là siêu khoá, nên Q đạt dạng chuẩn BC. ĐỊNH LÝ : Các lớp dạng chuẩn của một lược đồ quan hệ có quan hệ lồng nhau: nghĩa là lớp sau nằm trọn trong lớp trước. BCNF ⊂ 3NF ⊂ 2NF ⊂ 1NF Ví dụ 7 Chẳng hạn cho lược đồ quan hệ Q(ABCD) và F = [AB → C; D → B; C→ ABD] thì Q đạt chuẩn 3NF nhưng không là BCNF Nếu F = [B → D, A → C, C → ABD] thì Q đạt dạng chuẩn 2NF nhưng không là 3 NF. Dạng chuẩn của một lược đồ cơ sở dữ liệu là dạng chuẩn thấp nhất của các lược đồ quan hệ con. Chú ý: Các dạng chuẩn cao hơn như dạng chuẩn bốn (với phụ thuộc đa trị), dạng chuẩn năm (với phụ thuộc chiếu kết) có thể xem các tài liệu tham khảo đã chỉ ra.

Page 32: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 32

BÀI TẬP Dựa vào các phân tích sơ bộ dưới đây, hãy lập mô hình thực thể kết hợp (gồm loại thực thể, mối kết hợp, bản số, thuộc tính của loại thực thể, khoá của loại thực thể ) cho mỗi bài toán quản lý sau: 1.1. QUẢN LÝ SỐ LƯỢNG NGÀY CÔNG CỦA CÁC NHÂN VIÊN Để quản lý việc phân công các nhân viên tham gia vào xây dựng các công trình. Công ty xây dựng ABC tổ chức quản lý như sau: Cùng lúc công ty có thể tham gia xây dựng nhiều công trình, mỗi công trình có một mã số công trình duy nhất (MACT), mỗi mã số công trình xác định các thông tin như: Tên gọi công trình (TENCT), địa điểm(ĐIAĐIEM), ngày công trình được cấp giấy phép xây dựng (NGAYCAPGP), ngày khởi công (NGAYKC), ngày hoàn thành (NGAYHT) Mỗi nhân viên của công ty ABC có một mã số nhân viên(MANV) duy nhất, một mã số nhân viên xác định các thông tin như: Họ tên (HOTEN), ngày sinh(NGSINH), phái (PHAI), địa chỉ (ĐIACHI),phòng ban, … Công ty phân công các nhân viên tham gia vào các công trình, mỗi công trình có thể được phân cho nhiều nhân viên và mỗi nhân viên cùng lúc cũng có thể tham gia vào nhiều công trình. Với mỗi công trình một nhân viên có một số lượng ngày công (SLNGAYCONG) đã tham gia vào công trình đó. Công ty có nhiều phòng ban(Phòng kế toán, phòng kinh doanh, phòng kỹ thuật, phòng tổ chức, phòng chuyên môn, Phòng phục vụ,…). Mỗi phòng ban có một mã số phòng ban(MAPB) duy nhất, một phòng ban ứng với một tên phòng ban(TENPB). 1.2. QUẢN LÝ VIỆC MƯỢN/TRẢ SÁCH Ở MỘT THƯ VIỆN Một thư viện tổ chức việc cho mượn sách như sau: Mỗi quyển sách được đánh một mã sách (MASH) dùng để phân biệt với các quyển sách khác (giả sử nếu một tác phẩm có nhiều bản giống nhau hoặc có nhiều tập thì cũng xem là có mã sách khác nhau), mỗi mã sách xác định các thông tin khác như : tên sách (TENSACH), tên tác giả (TACGIA), nhà xuất bản (NHAXB), năm xuất bản (NAMXB). Mỗi độc giả được thư viện cấp cho một thẻ thư viện, trong đó có ghi rõ mã độc giả (MAĐG), cùng với các thông tin khác như : họ tên (HOTEN), ngày sinh (NGAYSINH), địa chỉ (ĐIACHI), nghề nghiệp(NGHENGHIEP). Cứ mỗi lượt mượn sách, độc giả phải đăng ký các quyển sách cần mượn vào một phiếu mượn, mỗi phiếu mượn có một số phiếu mượn (SOPM) khác nhau, mỗi phiếu mượn xác định các thông tin như: ngày mượn sách (NGAYMUON), mã độc giả. Các các quyển sách trong cùng một phiếu mượn không nhất thiết phải trả trong một lần. Mỗi quyển sách có thể thuộc nhiều phiếu mượn khác nhau (tất nhiên là tại các thời điểm khác nhau). 1.3. QUẢN LÝ LỊCH DẠY CỦA GIÁO VIÊN Để quản lý lịch dạy của các giáo viên và lịch học của các lớp, một trường tổ chức như sau: Mỗi giáo viên có một mã số giáo viên (MAGV) duy nhất, mỗi MAGV xác định các thông tin như: họ và tên giáo viên (HOTEN), số điện thoại (DTGV). Mỗi giáo viên có thể dạy nhiều môn cho nhiều khoa nhưng chỉ thuộc sự quản lý hành chánh của một khoa nào đó. Mỗi môn học có một mã số môn học (MAMH) duy nhất, mỗi môn học xác định tên môn học(TENMH). Ứng với mỗi lớp thì mỗi môn học chỉ được phân cho một giáo viên. Mỗi phòng học có một số phòng học (PHONG) duy nhất, mỗi phòng có một chức năng (CHUCNANG); chẳng hạn như phòng lý thuyết, phòng thực hành máy tính, phòng nghe nhìn, xưởng thực tập cơ khí,… Mỗi khoa có một mã khoa (MAKHOA) duy nhất, mỗi khoa xác định các thông tin như: tên khoa (TENKHOA), điện thoại khoa(DTKHOA). Mỗi lớp có một mã lớp (MALOP) duy nhất, mỗi lớp có một tên lớp (TENLOP), sĩ số lớp (SISO). Mỗi lớp có thể học nhiều môn của nhiều khoa nhưng chỉ thuộc sự quản lý hành chính của một khoa nào đó.

Page 33: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 33

Hàng tuần, mỗi giáo viên phải lập lịch báo giảng cho biết giáo viên đó sẽ dạy những lớp nào, ngày nào (NGAYDAY), môn gì?, tại phòng nào, từ tiết nào (TUTIET) đến tiết nào (ĐENTIET),tựa đề bài dạy (BAIDAY), những ghi chú (GHICHU) về các tiết dạy này, đây là giờ dạy lý thuyết (LYTHUYET) hay thực hành - giả sử nếu LYTHUYET=1 thì đó là giờ dạy thực hành và nếu LYTHUYET=2 thì đó là giờ lý thuyết, một ngày có 16 tiết, sáng từ tiết 1 đến tiết 6, chiều từ tiết 7 đến tiết 12, tối từ tiết 13 đến 16. Một số yêu cầu của hệ thống này như:: Lập lịch dạy trong tuần của các giáo viên. Tổng số dạy của các giáo viên theo từng môn cho từng lớp, …. 1.4. QUẢN LÝ HỌC VIÊN Ở MỘT TRUNG TÂM TIN HỌC Trung tâm tin học KTCT thường xuyên mở các lớp tin học ngắn hạn và dài hạn. Mỗi lớp ngắn hạn có một hoặc nhiều môn học (chẳng hạn như lớp Tin học văn phòng thì có các môn : Word, Power Point, Excel, còn lớp lập trình Pascal thì chỉ học một môn Pascal). Các lớp dài hạn (chẳng hạn như lớp kỹ thuật viên đồ hoạ đa truyền thông, lớp kỹ thuật viên lập trình, lớp kỹ thuật viên phần cứng và mạng,… ) thì có thể học nhiều học phần và mỗi học phần có thể có nhiều môn học. Mỗi học viên có một mã học viên(MAHV) duy nhất và chỉ thuộc về một lớp duy nhất (nếu học viên cùng lúc học nhiều lớp thì ứng với mỗi lớp, học viên đó có một MAHV khác nhau). Mỗi học viên xác định họ tên (HOTEN), ngày sinh (NGAYSINH),nơi sinh (NOISINH), phái nam hay nữ (PHAI), nghề nghiệp (NGHENGHIEP) - nghề nghiệp là SINH VIÊN, GIÁO VIÊN, KỸ SƯ, HỌC SINH, BUÔN BÁN,… Trung tâm KTCT có nhiều lớp, mỗi lớp có một mã lớp duy nhất (MALOP), mỗi lớp xác định các thông tin: tên lớp (TENLOP), thời khoá biểu, ngày khai giảng (NGAYKG), học phí (HOCPHI).Chú ý rằng tại một thời điểm, trung tâm có thể mở nhiều lớp cho cùng một chương trình học. Với các lớp dài hạn thì ngày khai giảng được xem là ngày bắt đầu của mỗi học phần và HỌC PHÍ là học phí của mỗi học phần, với lớp ngắn hạn thì HỌC PHÍ là học phí của toàn khoá học đó. Trung tâm có nhiều môn học, mỗi môn học có mã môn học (MAMH) duy nhất, mỗi môn học xác định tên môn học(TENMH), số tiết lý thuyết (SOTIETLT), số tiết thực hành (SOTIETTH). Mỗi học viên ứng với mỗi môn học có một điểm thi(DIEMTHI) duy nhất. Mỗi lần đóng học phí, học viên sẽ được trung tâm giao cho một phiếu biên lai thu tiền, mỗi biên lai có một số biên lai duy nhất để quản lý. Một số yêu cầu của hệ thống này như::Lập danh sách những học viên khai giảng khoá ngày nào đó. Lập danh sách các học viên của một lớp ? Cho biết số lượng học viên của mỗi lớp khai giảng khoá ngày nào đó ? 1.5. QUẢN LÝ COI THI TUYỂN SINH Một hội đồng coi thi tuyển sinh có nhiều điểm thi, mỗi điểm thi được đặt tại một trường nào đó. Các điểm thi (DIEMTHISO) được đánh số là điểm thi số 1, điểm thi số 2, điểm thi số 3,…Mỗi điểm thi xác định địa chỉ (DIACHIDIEMTHI). Ví dụ: điểm thi số 1, đặt tại trường PTTH Nguyễn Thị Minh Khai, điểm thi số 2 đặt tại trường PTTH Bùi Thị Xuân,… Mỗi thí sinh có một số báo danh (SOBD) duy nhất, mỗi số báo danh xác định các thông tin: họ và tên (HOTEN), ngày sinh (NGAYSINH), phái (PHAI), hộ khẩu thường trú (TINH), đối tượng dự thi (DOITUONG), ngành đăng ký thi, khu vực của thí sinh (KHUVUC), số hiệu phòng thi. Ví dụ: thí sinh Vũ Mạnh Cường, có số báo danh là 02978, sinh ngày 12/12/1984, phái nam, hộ khẩu thường trú tại Chợ Gạo - Tiền Giang, thuộc khu vực 1, đối tượng là 5B, đăng ký dự thi vào ngành có mã ngành là 01, thi tại phòng thi 0178, điểm thi số 1. Mỗi ngành có một mã ngành (MANGANH) duy nhất, mỗi mã ngành xác định tên ngành (TENNGANH)

Page 34: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 34

Mỗi điểm thi có nhiều phòng thi – mỗi phòng thi (PHONGTHI) được đánh số khác nhau ở tất cả các điểm thi. Trong một phòng thi, danh sách các thí sinh được sắp xếp theo thứ tự alphabet (do đó trong một phòng thi có thể có thí sinh của nhiều ngành khác nhau). Mỗi phòng thi có thêm cột ghi chú (GHICHU) - ghi thêm các thông tin cần thiết như phòng thi đó nằm tại dãy nhà nào. Ví dụ phòng thi 0060 nằm ở dãy nhà H lầu 2 - điểm thi số 1 - trường PTTH Bùi Thị Xuân. Mỗi môn thi có một mã môn thi duy nhất (MAMT), mỗi mã môn thi biết các thông tin như : tên môn thi (TENMT), ngày thi (NGAYTHI), buổi thi (BUOITHI), thời gian làm bài thi được tính bằng phút (PHUT). Thời gian làm bài thi của các môn tối thiểu là 90 phút và tối đa là 180 phút (tuỳ theo kỳ tuyển sinh công nhân, trung cấp, cao đẳng hay đại học) Mỗi ngành có một mã ngành, chẳng hạn ngành Công Nghệ Thông Tin có mã ngành là 01, ngành Công Nghệ Hoá Thực Phẩm có mã ngành là 10,… Mỗi đơn vị có cán bộ tham gia vào kỳ thi có một mã đơn vị duy nhất (MADONVI), mã đơn vị xác định tên đơn vị (TENDONVI). Nếu là cán bộ, công nhân viên của trường thì đơn vị là khoa/phòng quản lý cán bộ đó, nếu là giáo viên từ các trường khác thì ghi rõ tên đơn vị đó. Chẳng hạn cán bộ Nguyễn Thanh Liêm đơn vị Khoa Công Nghệ Thông Tin, cán bộ coi thi Nguyễn Thị Tuyết Mai, đơn vị trường PTTH Ngôi Sao - Quận 1,… Mỗi cán bộ coi thi chỉ làm việc tại một điểm thi nào đó. Mỗi cán bộ có một mã số duy nhất (MACANBO), mỗi MACANBO xác định các thông tin khác như : họ và tên (HOTENCB), đơn vị công tác, chức vụ (CHUCVU) được phân công tại điểm thi, chẳng hạn chức vụ là điểm trưởng, điểm phó, giám sát, thư ký, cán bộ coi thi, phục vụ,… Ví dụ cán bộ Nguyen Van Thanh đơn vị Khoa Công Nghệ Thông Tin, làm nhiệm vụ thi tại điểm thi số 1, chức vụ là giám sát phòng thi. 1.6. Việc tổ chức kỳ thi tốt nghiệp của một khoa như sau: Mỗi thí sinh có một Mã số sinh viên duy nhất (MASV), mỗi MASV xác định được các thông tin: họ và tên (HOTEN), ngày sinh (NGAYSINH), nơi sinh, nữ,phái, dân tộc. Mỗi lớp có một mã lớp (MALOP) duy nhất , mỗi mã lớp xác định các thông tin: tên lớp (TENLOP), mỗi lớp chỉ thuộc sự quản lý của một khoa nào đó. Mỗi khoa có một mã khoa duy nhất (MAKHOA), mỗi mã khoa xác định tên khoa (TENKHOA). Mỗi thí sinh đều phải dự thi tốt nghiệp ba môn. Mỗi môn thi có một mã môn thi (MAMT) duy nhất, mỗi mã môn thi xác định các thông tin: tên môn thi (TENMT), thời gian làm bài – được tính bằng phút (PHUT), ngày thi (NGAYTHI), buổi thi (BUOITHI), môn thi này là môn lý thuyết hay thực hành (LYTHUYET). Chú ý rằng, nếu một môn học được cho thi ở nhiều hệ thì được đặt MAMT khác nhau (chẳng hạn cả trung cấp và cao đẳng ngành công nghệ thông tin đều thi môn Cơ Sở Dữ Liệu), để diễn tả điều này, mỗi mã môn học cần phải được ghi chú (GHICHU) để cho biết môn thi đó dành cho khối nào trung cấp, hay cao đẳng). Mỗi thí sinh ứng với một môn thi có một điểm thi (DIEMTHI) duy nhất, điểm thi được chấm theo thang điểm 10 và có lấy điểm lẻ đến 0.5. Một thí sinh được coi là đậu tốt nghiệp nếu điểm thi của tất cả các môn của thí sinh đó đều lớn hơn hoặc bằng 5. Trong một phòng thi có thể có thí sinh của nhiều lớp. Trong một kỳ thi, mỗi thí sinh có thể thi tại những phòng thi (PHONGTHI) khác nhau, chẳng hạn một thí sinh thi tốt nghiệp ba môn là Cơ sở dữ liệu, Lập trình C và Visual Basic thì môn Cơ Sở Dữ Liệu và Lập Trình C thi tại phòng A3.4, còn môn thực hành Visual Basic thi tại phòng máy H6.1 Qua phân tích sơ bộ trên, ta có thể lập một lược đồ cơ sở dữ liệu như sau: THISINH(MASV,HOTEN,NGAYSINH,MALOP) LOP(MALOP,TENLOP) MONTHI(MAMT,TENMT, LYTHUYET,PHUT,NGAYTHI,BUOITHI,GHICHU)

Page 35: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 35

KETQUA(MASV,MAMT,DIEMTHI) a. Tìm khoá cho mỗi lược đồ quan hệ trên. b.Hãy phát biểu các ràng buộc toàn có trong cơ sở dữ liệu trên. Bài tập 2: Cơ sở dữ liệu quản lý bán hàng gồm có các quan hệ sau: KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) Tân từ: Quan hệ khách hàng sẽ lưu trữ thông tin của khách hàng thành viên gồm có các thuộc tính: mã khách hàng, họ tên, địa chỉ, số điện thoại, ngày sinh, ngày đăng ký và doanh số (tổng trị giá các hóa đơn của khách hàng thành viên này). NHANVIEN (MANV,HOTEN, NGVL, SODT) Tân từ: Mỗi nhân viên bán hàng cần ghi nhận họ tên, ngày vào làm, điện thọai liên lạc, mỗi nhân viên phân biệt với nhau bằng mã nhân viên. SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA) Tân từ: Mỗi sản phẩm có một mã số, một tên gọi, đơn vị tính, nước sản xuất và một giá bán. HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) Tân từ: Khi mua hàng, mỗi khách hàng sẽ nhận một hóa đơn tính tiền, trong đó sẽ có số hóa đơn, ngày mua, nhân viên nào bán hàng, trị giá của hóa đơn là bao nhiêu và mã số của khách hàng nếu là khách hàng thành viên. CTHD (SOHD,MASP,SL) Tân từ: Diễn giải chi tiết trong mỗi hóa đơn gồm có những sản phẩm gì với số lượng là bao nhiêu. (sơ đồ thể hiện mối quan hệ giữa các bảng)

I- KHACHHANG

MAKH HOTEN DCHI SODT NGSINH DOANHSO NGDK KH01 Nguyen Van A 731 Tran Hung Dao, Q5, TpHCM 08823451 22/10/1960 13,060,000 22/07/2006 KH02 Tran Ngoc Han 23/5 Nguyen Trai, Q5, TpHCM 0908256478 3/4/1974 280,000 30/07/2006 KH03 Tran Ngoc Linh 45 Nguyen Canh Chan, Q1, TpHCM 0938776266 12/6/1980 3,860,000 05/08/2006

KH04 Tran Minh Long 50/34 Le Dai Hanh, Q10, TpHCM 0917325476 9/3/1965 250,000 02/10/2006 KH05 Le Nhat Minh 34 Truong Dinh, Q3, TpHCM 08246108 10/3/1950 21,000 28/10/2006 KH06 Le Hoai Thuong 227 Nguyen Van Cu, Q5, TpHCM 08631738 31/12/1981 915,000 24/11/2006 KH07 Nguyen Van Tam 32/3 Tran Binh Trong, Q5, TpHCM 0916783565 6/4/1971 12,500 01/12/2006

KH08 Phan Thi Thanh 45/2 An Duong Vuong, Q5, TpHCM 0938435756 10/1/1971 365,000 13/12/2006 KH09 Le Ha Vinh 873 Le Hong Phong, Q5, TpHCM 08654763 3/9/1979 70,000 14/01/2007 KH10 Ha Duy Lap 34/34B Nguyen Trai, Q1, TpHCM 08768904 2/5/1983 67,500 16/01/2007

NHANVIEN

MANV HOTEN DTHOAI NGVL NV01 Nguyen Nhu Nhut 0927345678 13/4/2006 NV02 Le Thi Phi Yen 0987567390 21/4/2006 NV03 Nguyen Van B 0997047382 27/4/2006

NV04 Ngo Thanh Tuan 0913758498 24/6/2006 NV05 Nguyen Thi Truc Thanh 0918590387 20/7/2006

Page 36: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 36

1. Tạo các quan hệ và khai báo các khóa chính, khóa ngoại của quan hệ.

2. Thêm vào thuộc tính GHICHU có kiểu dữ liệu varchar(20) cho quan hệ SANPHAM.

3. Thêm vào thuộc tính LOAIKH có kiểu dữ liệu là tinyint cho quan hệ KHACHHANG.

4. Sửa kiểu dữ liệu của thuộc tính GHICHU trong quan hệ SANPHAM thành varchar(100).

5. Xóa thuộc tính GHICHU trong quan hệ SANPHAM.

6. Làm thế nào để thuộc tính LOAIKH trong quan hệ KHACHHANG có thể lưu các giá trị là: “Vang lai”, “Thuong xuyen”, “Vip”, …

7. Đơn vị tính của sản phẩm chỉ có thể là (“cay”,”hop”,”cai”,”quyen”,”chuc”)

8. Giá bán của sản phẩm từ 500 đồng trở lên.

9. Mỗi lần mua hàng, khách hàng phải mua ít nhất 1 sản phẩm.

10. Ngày khách hàng đăng ký là khách hàng thành viên phải lớn hơn ngày sinh của người đó.

BẢNG THUỘC TÍNH

Quan hệ Thuộc tính Diễn giải Kiểu dữ liệu

KHACHHANG

MAKH Mã khách hàng char(4) HOTEN Họ tên varchar(40) DCHI Địa chỉ varchar(50) SODT Số điện thọai varchar(20) NGSINH Ngày sinh smalldatetime NGDK Ngày đăng ký thành viên smalldatetime DOANHSO Tổng trị giá các hóa đơn khách hàng đã mua money

NHANVIEN

MANV Mã nhân viên char(4) HOTEN Họ tên varchar(40) SODT Số điện thoại varchar(20) NGVL Ngày vào làm smalldatetime

SANPHAM

MASP Mã sản phẩm char(4) TENSP Tên sản phẩm varchar(40) DVT Đơn vị tính varchar(20) NUOCSX Nước sản xuất varchar(40) GIA Giá bán money

HOADON

SOHD Số hóa đơn int NGHD Ngày mua hàng smalldatetime MAKH Mã khách hàng nào mua char(4) MANV Nhân viên bán hàng char(4) TRIGIA Trị giá hóa đơn money

CTHD SOHD Số hóa đơn int MASP Mã sản phẩm char(4) SL Số lượng int

Page 37: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 37

11. Ngày mua hàng (NGHD) của một khách hàng thành viên sẽ lớn hơn hoặc bằng ngày khách hàng đó đăng ký thành viên (NGDK).

12. Ngày bán hàng (NGHD) của một nhân viên phải lớn hơn hoặc bằng ngày nhân viên đó vào làm.

13. Mỗi một hóa đơn phải có ít nhất một chi tiết hóa đơn.

14. Trị giá của một hóa đơn là tổng thành tiền (số lượng*đơn giá) của các chi tiết thuộc hóa đơn đó.

15. Doanh số của một khách hàng là tổng trị giá các hóa đơn mà khách hàng thành viên đó đã mua.

II. Ngôn ngữ thao tác dữ liệu (Data Manipulation Language):

1. Nhập dữ liệu cho các quan hệ trên.

2. Tạo quan hệ SANPHAM1 chứa toàn bộ dữ liệu của quan hệ SANPHAM. Tạo quan hệ KHACHHANG1 chứa toàn bộ dữ liệu của quan hệ KHACHHANG.

3. Cập nhật giá tăng 5% đối với những sản phẩm do “Thai Lan” sản xuất (cho quan hệ SANPHAM1)

4. Cập nhật giá giảm 5% đối với những sản phẩm do “Trung Quoc” sản xuất có giá từ 10.000 trở xuống (cho quan hệ SANPHAM1).

5. Cập nhật giá trị LOAIKH là “Vip” đối với những khách hàng đăng ký thành viên trước ngày 1/1/2007 có doanh số từ 10.000.000 trở lên hoặc khách hàng đăng ký thành viên từ 1/1/2007 trở về sau có doanh số từ 2.000.000 trở lên (cho quan hệ KHACHHANG1).

III. Ngôn ngữ truy vấn dữ liệu có cấu trúc:

1. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” sản xuất.

2. In ra danh sách các sản phẩm (MASP, TENSP) có đơn vị tính là “cay”, ”quyen”.

3. In ra danh sách các sản phẩm (MASP,TENSP) có mã sản phẩm bắt đầu là “B” và kết thúc là “01”.

4. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quốc” sản xuất có giá từ 30.000 đến 40.000.

5. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” hoặc “Thai Lan” sản xuất có giá từ 30.000 đến 40.000.

6. In ra các số hóa đơn, trị giá hóa đơn bán ra trong ngày 1/1/2007 và ngày 2/1/2007.

7. In ra các số hóa đơn, trị giá hóa đơn trong tháng 1/2007, sắp xếp theo ngày (tăng dần) và trị giá của hóa đơn (giảm dần).

8. In ra danh sách các khách hàng (MAKH, HOTEN) đã mua hàng trong ngày 1/1/2007.

Page 38: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 38

9. In ra số hóa đơn, trị giá các hóa đơn do nhân viên có tên “Nguyen Van B” lập trong ngày 28/10/2006.

10. In ra danh sách các sản phẩm (MASP,TENSP) được khách hàng có tên “Nguyen Van A” mua trong tháng 10/2006.

11. Tìm các số hóa đơn đã mua sản phẩm có mã số “BB01” hoặc “BB02”.

12. Tìm các số hóa đơn đã mua sản phẩm có mã số “BB01” hoặc “BB02”, mỗi sản phẩm mua với số lượng từ 10 đến 20.

13. Tìm các số hóa đơn mua cùng lúc 2 sản phẩm có mã số “BB01” và “BB02”, mỗi sản phẩm mua với số lượng từ 10 đến 20.

14. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” sản xuất hoặc các sản phẩm được bán ra trong ngày 1/1/2007.

15. In ra danh sách các sản phẩm (MASP,TENSP) không bán được.

16. In ra danh sách các sản phẩm (MASP,TENSP) không bán được trong năm 2006.

17. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” sản xuất không bán được trong năm 2006.

18. Tìm số hóa đơn đã mua tất cả các sản phẩm do Singapore sản xuất.

19. Tìm số hóa đơn trong năm 2006 đã mua ít nhất tất cả các sản phẩm do Singapore sản xuất.

20. Có bao nhiêu hóa đơn không phải của khách hàng đăng ký thành viên mua?

21. Có bao nhiêu sản phẩm khác nhau được bán ra trong năm 2006.

22. Cho biết trị giá hóa đơn cao nhất, thấp nhất là bao nhiêu ?

23. Trị giá trung bình của tất cả các hóa đơn được bán ra trong năm 2006 là bao nhiêu?

24. Tính doanh thu bán hàng trong năm 2006.

25. Tìm số hóa đơn có trị giá cao nhất trong năm 2006.

26. Tìm họ tên khách hàng đã mua hóa đơn có trị giá cao nhất trong năm 2006.

27. In ra danh sách 3 khách hàng (MAKH, HOTEN) có doanh số cao nhất.

28. In ra danh sách các sản phẩm (MASP, TENSP) có giá bán bằng 1 trong 3 mức giá cao nhất.

29. In ra danh sách các sản phẩm (MASP, TENSP) do “Thai Lan” sản xuất có giá bằng 1 trong 3 mức giá cao nhất (của tất cả các sản phẩm).

30. In ra danh sách các sản phẩm (MASP, TENSP) do “Trung Quoc” sản xuất có giá bằng 1 trong 3 mức giá cao nhất (của sản phẩm do “Trung Quoc” sản xuất).

31. * In ra danh sách 3 khách hàng có doanh số cao nhất (sắp xếp theo kiểu xếp hạng).

32. Tính tổng số sản phẩm do “Trung Quoc” sản xuất.

Page 39: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 39

33. Tính tổng số sản phẩm của từng nước sản xuất.

34. Với từng nước sản xuất, tìm giá bán cao nhất, thấp nhất, trung bình của các sản phẩm.

35. Tính doanh thu bán hàng mỗi ngày.

36. Tính tổng số lượng của từng sản phẩm bán ra trong tháng 10/2006.

37. Tính doanh thu bán hàng của từng tháng trong năm 2006.

38. Tìm hóa đơn có mua ít nhất 4 sản phẩm khác nhau.

39. Tìm hóa đơn có mua 3 sản phẩm do “Viet Nam” sản xuất (3 sản phẩm khác nhau).

40. Tìm khách hàng (MAKH, HOTEN) có số lần mua hàng nhiều nhất.

41. Tháng mấy trong năm 2006, doanh số bán hàng cao nhất ?

42. Tìm sản phẩm (MASP, TENSP) có tổng số lượng bán ra thấp nhất trong năm 2006.

43. *Mỗi nước sản xuất, tìm sản phẩm (MASP,TENSP) có giá bán cao nhất.

44. Tìm nước sản xuất sản xuất ít nhất 3 sản phẩm có giá bán khác nhau.

45. *Trong 10 khách hàng có doanh số cao nhất, tìm khách hàng có số lần mua hàng nhiều nhất.

Bài tập 3: Cho cơ sở dữ liệu quản lý giáo vụ gồm có những quan hệ sau:

HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP)

Tân từ: mỗi học viên phân biệt với nhau bằng mã học viên, lưu trữ họ tên, ngày sinh, giới tính, nơi sinh, thuộc lớp nào.

LOP (MALOP, TENLOP, TRGLOP, SISO, MAGVCN)

Tân từ: mỗi lớp gồm có mã lớp, tên lớp, học viên làm lớp trưởng của lớp, sỉ số lớp và giáo viên chủ nhiệm.

KHOA (MAKHOA, TENKHOA, NGTLAP, TRGKHOA)

Tân từ: mỗi khoa cần lưu trữ mã khoa, tên khoa, ngày thành lập khoa và trưởng khoa (cũng là một giáo viên thuộc khoa).

MONHOC (MAMH, TENMH, TCLT, TCTH, MAKHOA)

Tân từ: mỗi môn học cần lưu trữ tên môn học, số tín chỉ lý thuyết, số tín chỉ thực hành và khoa nào phụ trách.

DIEUKIEN (MAMH, MAMH_TRUOC)

Tân từ: có những môn học học viên phải có kiến thức từ một số môn học trước.

GIAOVIEN (MAGV, HOTEN, HOCVI,HOCHAM,GIOITINH, NGSINH, NGVL,HESO, MUCLUONG, MAKHOA)

Page 40: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 40

Tân từ: mã giáo viên để phân biệt giữa các giáo viên, cần lưu trữ họ tên, học vị, học hàm, giới tính, ngày sinh, ngày vào làm, hệ số, mức lương và thuộc một khoa.

GIANGDAY (MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY)

Tân từ: mỗi học kỳ của năm học sẽ phân công giảng dạy lớp nào học môn gì, giáo viên nào phụ trách.

KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA)

Tân từ: lưu trữ kết quả thi của học viên: học viên nào thi môn học gì, lần thi thứ mấy, ngày thi là ngày nào, điểm thi bao nhiêu và kết quả là đạt hay không đạt.

KHOA

MAKHOA TENKHOA NGTLAP TRGKHOA

KHMT Khoa hoc may tinh 7/6/2005 GV01

HTTT He thong thong tin 7/6/2005 GV02

CNPM Cong nghe phan mem 7/6/2005 GV04

MTT Mang va truyen thong 20/10/2005 GV03

KTMT Ky thuat may tinh 20/12/2005 Null

LOP

MALOP TENLOP TRGLOP SISO MAGVCN K11 Lop 1 khoa 1 K1108 11 GV07 K12 Lop 2 khoa 1 K1205 12 GV09

K13 Lop 3 khoa 1 K1305 12 GV14

MONHOC

MAMH TENMH TCLT TCTH MAKHOA

THDC Tin hoc dai cuong 4 1 KHMT

CTRR Cau truc roi rac 5 0 KHMT

CSDL Co so du lieu 3 1 HTTT

CTDLGT Cau truc du lieu va giai thuat 3 1 KHMT

PTTKTT Phan tich thiet ke thuat toan 3 0 KHMT

DHMT Do hoa may tinh 3 1 KHMT

KTMT Kien truc may tinh 3 0 KTMT

TKCSDL Thiet ke co so du lieu 3 1 HTTT

PTTKHTTT Phan tich thiet ke he thong thong tin 4 1 HTTT

HDH He dieu hanh 4 0 KTMT

NMCNPM Nhap mon cong nghe phan mem 3 0 CNPM

LTCFW Lap trinh C for win 3 1 CNPM

LTHDT Lap trinh huong doi tuong 3 1 CNPM

Page 41: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 41

GIAOVIEN MAGV HOTEN HOCVI HOCHAM GIOITINH NGSINH NGVL HESO MUCLUONG MAKHOA GV01 Ho Thanh Son PTS GS Nam 2/5/1950 11/1/2004 5.00 2,250,000 KHMT GV02 Tran Tam Thanh TS PGS Nam 17/12/1965 20/4/2004 4.50 2,025,000 HTTT GV03 Do Nghiem Phung TS GS Nu 1/8/1950 23/9/2004 4.00 1,800,000 CNPM GV04 Tran Nam Son TS PGS Nam 22/2/1961 12/1/2005 4.50 2,025,000 KTMT GV05 Mai Thanh Danh ThS GV Nam 12/3/1958 12/1/2005 3.00 1,350,000 HTTT GV06 Tran Doan Hung TS GV Nam 11/3/1953 12/1/2005 4.50 2,025,000 KHMT GV07 Nguyen Minh Tien ThS GV Nam 23/11/1971 1/3/2005 4.00 1,800,000 KHMT GV08 Le Thi Tran KS Null Nu 26/3/1974 1/3/2005 1.69 760,500 KHMT GV09 Nguyen To Lan ThS GV Nu 31/12/1966 1/3/2005 4.00 1,800,000 HTTT GV10 Le Tran Anh Loan KS Null Nu 17/7/1972 1/3/2005 1.86 837,000 CNPM GV11 Ho Thanh Tung CN GV Nam 12/1/1980 15/5/2005 2.67 1,201,500 MTT GV12 Tran Van Anh CN Null Nu 29/3/1981 15/5/2005 1.69 760,500 CNPM GV13 Nguyen Linh Dan CN Null Nu 23/5/1980 15/5/2005 1.69 760,500 KTMT GV14 Truong Minh Chau ThS GV Nu 30/11/1976 15/5/2005 3.00 1,350,000 MTT GV15 Le Ha Thanh ThS GV Nam 4/5/1978 15/5/2005 3.00 1,350,000 KHMT

GIANGDAY MALOP MAMH MAGV HOCKY NAM TUNGAY DENNGAY K11 THDC GV07 1 2006 2/1/2006 12/5/2006 K12 THDC GV06 1 2006 2/1/2006 12/5/2006 K13 THDC GV15 1 2006 2/1/2006 12/5/2006 K11 CTRR GV02 1 2006 9/1/2006 17/5/2006 K12 CTRR GV02 1 2006 9/1/2006 17/5/2006 K13 CTRR GV08 1 2006 9/1/2006 17/5/2006 K11 CSDL GV05 2 2006 1/6/2006 15/7/2006 K12 CSDL GV09 2 2006 1/6/2006 15/7/2006 K13 CTDLGT GV15 2 2006 1/6/2006 15/7/2006 K13 CSDL GV05 3 2006 1/8/2006 15/12/2006 K13 DHMT GV07 3 2006 1/8/2006 15/12/2006 K11 CTDLGT GV15 3 2006 1/8/2006 15/12/2006 K12 CTDLGT GV15 3 2006 1/8/2006 15/12/2006 K11 HDH GV04 1 2007 2/1/2007 18/2/2007 K12 HDH GV04 1 2007 2/1/2007 20/3/2007 K11 DHMT GV07 1 2007 18/2/2007 20/3/2007

DIEUKIEN

MAMH MAMH_TRUOC

CSDL CTRR

CSDL CTDLGT

CTDLGT THDC

PTTKTT THDC

PTTKTT CTDLGT

DHMT THDC

LTHDT THDC

PTTKHTTT CSDL

Page 42: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 42

KETQUATHI

MAHV MAMH LT NGTHI DIEM KQUA

K1101 CSDL 1 20/7/2006 10.00 Dat

K1101 CTDLGT 1 28/12/2006 9.00 Dat

K1101 THDC 1 20/5/2006 9.00 Dat

K1101 CTRR 1 13/5/2006 9.50 Dat

K1102 CSDL 1 20/7/2006 4.00 Khong Dat

K1102 CSDL 2 27/7/2006 4.25 Khong Dat

K1102 CSDL 3 10/8/2006 4.50 Khong Dat

K1102 CTDLGT 1 28/12/2006 4.50 Khong Dat

K1102 CTDLGT 2 5/1/2007 4.00 Khong Dat

K1102 CTDLGT 3 15/1/2007 6.00 Dat

K1102 THDC 1 20/5/2006 5.00 Dat

K1102 CTRR 1 13/5/2006 7.00 Dat

K1103 CSDL 1 20/7/2006 3.50 Khong Dat

K1103 CSDL 2 27/7/2006 8.25 Dat

K1103 CTDLGT 1 28/12/2006 7.00 Dat

K1103 THDC 1 20/5/2006 8.00 Dat

K1103 CTRR 1 13/5/2006 6.50 Dat

K1104 CSDL 1 20/7/2006 3.75 Khong Dat

K1104 CTDLGT 1 28/12/2006 4.00 Khong Dat

K1104 THDC 1 20/5/2006 4.00 Khong Dat

K1104 CTRR 1 13/5/2006 4.00 Khong Dat

K1104 CTRR 2 20/5/2006 3.50 Khong Dat

K1104 CTRR 3 30/6/2006 4.00 Khong Dat

K1201 CSDL 1 20/7/2006 6.00 Dat

K1201 CTDLGT 1 28/12/2006 5.00 Dat

K1201 THDC 1 20/5/2006 8.50 Dat

K1201 CTRR 1 13/5/2006 9.00 Dat

K1202 CSDL 1 20/7/2006 8.00 Dat

K1202 CTDLGT 1 28/12/2006 4.00 Khong Dat

K1202 CTDLGT 2 5/1/2007 5.00 Dat

K1202 THDC 1 20/5/2006 4.00 Khong Dat

K1202 THDC 2 27/5/2006 4.00 Khong Dat

K1202 CTRR 1 13/5/2006 3.00 Khong Dat

KETQUATHI

MAHV MAMH LT NGTHI DIEM KQUA

K1202 CTRR 2 20/5/2006 4.00 Khong Dat

K1202 CTRR 3 30/6/2006 6.25 Dat

K1203 CSDL 1 20/7/2006 9.25 Dat

K1203 CTDLGT 1 28/12/2006 9.50 Dat

K1203 THDC 1 20/5/2006 10.00 Dat

K1203 CTRR 1 13/5/2006 10.00 Dat

K1204 CSDL 1 20/7/2006 8.50 Dat

K1204 CTDLGT 1 28/12/2006 6.75 Dat

K1204 THDC 1 20/5/2006 4.00 Khong Dat

K1204 CTRR 1 13/5/2006 6.00 Dat

K1301 CSDL 1 20/12/2006 4.25 Khong Dat

K1301 CTDLGT 1 25/7/2006 8.00 Dat

K1301 THDC 1 20/5/2006 7.75 Dat

K1301 CTRR 1 13/5/2006 8.00 Dat

K1302 CSDL 1 20/12/2006 6.75 Dat

K1302 CTDLGT 1 25/7/2006 5.00 Dat

K1302 THDC 1 20/5/2006 8.00 Dat

K1302 CTRR 1 13/5/2006 8.50 Dat

K1303 CSDL 1 20/12/2006 4.00 Khong Dat

K1303 CTDLGT 1 25/7/2006 4.50 Khong Dat

K1303 CTDLGT 2 7/8/2006 4.00 Khong Dat

K1303 CTDLGT 3 15/8/2006 4.25 Khong Dat

K1303 THDC 1 20/5/2006 4.50 Khong Dat

K1303 CTRR 1 13/5/2006 3.25 Khong Dat

K1303 CTRR 2 20/5/2006 5.00 Dat

K1304 CSDL 1 20/12/2006 7.75 Dat

K1304 CTDLGT 1 25/7/2006 9.75 Dat

K1304 THDC 1 20/5/2006 5.50 Dat

K1304 CTRR 1 13/5/2006 5.00 Dat

K1305 CSDL 1 20/12/2006 9.25 Dat

K1305 CTDLGT 1 25/7/2006 10.00 Dat

K1305 THDC 1 20/5/2006 8.00 Dat

K1305 CTRR 1 13/5/2006 10.00 Dat

Page 43: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 43

HOCVIEN

MAHV HO TEN NGSINH GIOITINH NOISINH MALOP

K1101 Nguyen Van A 27/1/1986 Nam TpHCM K11

K1102 Tran Ngoc Han 14/3/1986 Nu Kien Giang K11

K1103 Ha Duy Lap 18/4/1986 Nam Nghe An K11

K1104 Tran Ngoc Linh 30/3/1986 Nu Tay Ninh K11

K1105 Tran Minh Long 27/2/1986 Nam TpHCM K11

K1106 Le Nhat Minh 24/1/1986 Nam TpHCM K11

K1107 Nguyen Nhu Nhut 27/1/1986 Nam Ha Noi K11

K1108 Nguyen Manh Tam 27/2/1986 Nam Kien Giang K11

K1109 Phan Thi Thanh Tam 27/1/1986 Nu Vinh Long K11

K1110 Le Hoai Thuong 5/2/1986 Nu Can Tho K11

K1111 Le Ha Vinh 25/12/1986 Nam Vinh Long K11

K1201 Nguyen Van B 11/2/1986 Nam TpHCM K12

K1202 Nguyen Thi Kim Duyen 18/1/1986 Nu TpHCM K12

K1203 Tran Thi Kim Duyen 17/9/1986 Nu TpHCM K12

K1204 Truong My Hanh 19/5/1986 Nu Dong Nai K12

K1205 Nguyen Thanh Nam 17/4/1986 Nam TpHCM K12

K1206 Nguyen Thi Truc Thanh 4/3/1986 Nu Kien Giang K12

K1207 Tran Thi Bich Thuy 8/2/1986 Nu Nghe An K12

K1208 Huynh Thi Kim Trieu 8/4/1986 Nu Tay Ninh K12

K1209 Pham Thanh Trieu 23/2/1986 Nam TpHCM K12

K1210 Ngo Thanh Tuan 14/2/1986 Nam TpHCM K12

K1211 Do Thi Xuan 9/3/1986 Nu Ha Noi K12

K1212 Le Thi Phi Yen 12/3/1986 Nu TpHCM K12

K1301 Nguyen Thi Kim Cuc 9/6/1986 Nu Kien Giang K13

K1302 Truong Thi My Hien 18/3/1986 Nu Nghe An K13

K1303 Le Duc Hien 21/3/1986 Nam Tay Ninh K13

K1304 Le Quang Hien 18/4/1986 Nam TpHCM K13

K1305 Le Thi Huong 27/3/1986 Nu TpHCM K13

K1306 Nguyen Thai Huu 30/3/1986 Nam Ha Noi K13

K1307 Tran Minh Man 28/5/1986 Nam TpHCM K13

K1308 Nguyen Hieu Nghia 8/4/1986 Nam Kien Giang K13

K1309 Nguyen Trung Nghia 18/1/1987 Nam Nghe An K13

K1310 Tran Thi Hong Tham 22/4/1986 Nu Tay Ninh K13

K1311 Tran Minh Thuc 4/4/1986 Nam TpHCM K13

K1312 Nguyen Thi Kim Yen 7/9/1986 Nu TpHCM K13

Page 44: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 44

BẢNG THUỘC TÍNH

Quan hệ Thuộc tính Diễn giải Kiểu dữ liệu

KHOA

MAKHOA Mã khoa (khóa chính) varchar(4) TENKHOA Tên khoa varchar(40) NGTLAP Ngày thành lập khoa smalldatetime TRGKHOA Trưởng khoa (mã giáo viên) char(4)

MONHOC

MAMH Mã môn học (khóa chính) varchar(10) TENMH Tên môn học varchar(40) TCLT Số tín chỉ lý thuyết tinyint TCTH Số tín chỉ thực hành tinyint MAKHOA Môn học thuộc khoa nào varchar(4)

DIEUKIEN MAMH Mã môn học (thuộc tính khóa) varchar(10) MAMH_TRUOC Mã môn học phải học trước (thuộc tính khóa) varchar(10)

GIAOVIEN

MAGV Mã giáo viên (khóa chính) char(4) HOTEN Họ tên varchar(40) HOCVI, HOCHAM Học vị, học hàm varchar(10) GIOITINH Giới tính varchar(3) NGSINH, NGVL Ngày sinh, ngày vào làm việc smalldatetime HESO Hệ số lương numeric(4,2) MUCLUONG Mức lương money MAKHOA Thuộc khoa nào varchar(4)

LOP

MALOP Mã lớp (khóa chính) char(3) TENLOP Tên lớp varchar(40) TRGLOP Lớp trưởng (mã học viên) char(5) SISO Sỉ số lớp tinyint MAGVCN Mã giáo viên chủ nhiệm char(4)

HOCVIEN

MAHV Mã học viên (khóa chính) char(5) HO Họ và tên lót varchar(40) TEN Tên varchar(10) NGSINH Ngày sinh smalldatetime GIOITINH Giới tính varchar(3) NOISINH Nơi sinh varchar(40) MALOP Mã lớp char(3)

GIANGDAY

MALOP Mã lớp (thuộc tính khóa) char(3) MAMH Mã môn học (thuộc tính khóa) varchar(10) MAGV Mã giáo viên char(4) HOCKY Học kỳ tinyint NAM Năm học smallint TUNGAY, DENNGAY Ngày bắt đầu và ngày kết thúc môn học smalldatetime

KETQUATHI

MAHV Mã học viên (thuộc tính khóa) char(5) MAMH Mã môn học (thuộc tính khóa) varchar(10) LANTHI Lần thi (thuộc tính khóa) tinyint NGTHI Ngày thi smalldatetime DIEM Điểm thi numeric(4,2) KQUA Kết quả thi varchar(10)

Page 45: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 45

I. Ngôn ngữ định nghĩa dữ liệu (Data Definition Language):

1. Tạo quan hệ và khai báo tất cả các ràng buộc khóa chính, khóa ngoại. Thêm vào 3 thuộc tính GHICHU, DIEMTB, XEPLOAI cho quan hệ HOCVIEN.

2. Mã học viên là một chuỗi 5 ký tự, 3 ký tự đầu là mã lớp, 2 ký tự cuối cùng là số thứ tự học viên trong lớp. VD: “K1101”

3. Thuộc tính GIOITINH chỉ có giá trị là “Nam” hoặc “Nu”.

4. Điểm số của một lần thi có giá trị từ 0 đến 10 và cần lưu đến 2 số lẽ (VD: 6.22).

5. Kết quả thi là “Dat” nếu điểm từ 5 đến 10 và “Khong dat” nếu điểm nhỏ hơn 5.

6. Học viên thi một môn tối đa 3 lần.

7. Học kỳ chỉ có giá trị từ 1 đến 3.

8. Học vị của giáo viên chỉ có thể là “CN”, “KS”, “Ths”, ”TS”, ”PTS”.

9. Lớp trưởng của một lớp phải là học viên của lớp đó.

10. Trưởng khoa phải là giáo viên thuộc khoa và có học vị “TS” hoặc “PTS”.

11. Học viên ít nhất là 18 tuổi.

12. Giảng dạy một môn học ngày bắt đầu (TUNGAY) phải nhỏ hơn ngày kết thúc (DENNGAY).

13. Giáo viên khi vào làm ít nhất là 22 tuổi.

14. Tất cả các môn học đều có số tín chỉ lý thuyết và tín chỉ thực hành chênh lệch nhau không quá 3.

15. Học viên chỉ được thi một môn học nào đó khi lớp của học viên đã học xong môn học này.

16. Mỗi học kỳ của một năm học, một lớp chỉ được học tối đa 3 môn.

17. Sỉ số của một lớp bằng với số lượng học viên thuộc lớp đó.

18. Trong quan hệ DIEUKIEN giá trị của thuộc tính MAMH và MAMH_TRUOC trong cùng một bộ không được giống nhau (“A”,”A”) và cũng không tồn tại hai bộ (“A”,”B”) và (“B”,”A”).

19. Các giáo viên có cùng học vị, học hàm, hệ số lương thì mức lương bằng nhau.

20. Học viên chỉ được thi lại (lần thi >1) khi điểm của lần thi trước đó dưới 5.

21. Ngày thi của lần thi sau phải lớn hơn ngày thi của lần thi trước (cùng học viên, cùng môn học).

22. Học viên chỉ được thi những môn mà lớp của học viên đó đã học xong.

23. Khi phân công giảng dạy một môn học, phải xét đến thứ tự trước sau giữa các môn học (sau khi học xong những môn học phải học trước mới được học những môn liền sau).

Page 46: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 46

24. Giáo viên chỉ được phân công dạy những môn thuộc khoa giáo viên đó phụ trách.

II. Ngôn ngữ thao tác dữ liệu (Data Manipulation Language):

1. Tăng hệ số lương thêm 0.2 cho những giáo viên là trưởng khoa.

2. Cập nhật giá trị điểm trung bình tất cả các môn học (DIEMTB) của mỗi học viên (tất cả các môn học đều có hệ số 1 và nếu học viên thi một môn nhiều lần, chỉ lấy điểm của lần thi sau cùng).

3. Cập nhật giá trị cho cột GHICHU là “Cam thi” đối với trường hợp: học viên có một môn bất kỳ thi lần thứ 3 dưới 5 điểm.

4. Cập nhật giá trị cho cột XEPLOAI trong quan hệ HOCVIEN như sau:

o Nếu DIEMTB 9 thì XEPLOAI =”XS”

o Nếu 8 DIEMTB < 9 thì XEPLOAI = “G”

o Nếu 6.5 DIEMTB < 8 thì XEPLOAI = “K”

o Nếu 5 DIEMTB < 6.5 thì XEPLOAI = “TB”

o Nếu DIEMTB < 5 thì XEPLOAI = ”Y” III. Ngôn ngữ truy vấn dữ liệu:

1. In ra danh sách (mã học viên, họ tên, ngày sinh, mã lớp) lớp trưởng của các lớp.

2. In ra bảng điểm khi thi (mã học viên, họ tên , lần thi, điểm số) môn CTRR của lớp “K12”, sắp xếp theo tên, họ học viên.

3. In ra danh sách những học viên (mã học viên, họ tên) và những môn học mà học viên đó thi lần thứ nhất đã đạt.

4. In ra danh sách học viên (mã học viên, họ tên) của lớp “K11” thi môn CTRR không đạt (ở lần thi 1).

5. * Danh sách học viên (mã học viên, họ tên) của lớp “K” thi môn CTRR không đạt (ở tất cả các lần thi).

6. Tìm tên những môn học mà giáo viên có tên “Tran Tam Thanh” dạy trong học kỳ 1 năm 2006.

7. Tìm những môn học (mã môn học, tên môn học) mà giáo viên chủ nhiệm lớp “K11” dạy trong học kỳ 1 năm 2006.

8. Tìm họ tên lớp trưởng của các lớp mà giáo viên có tên “Nguyen To Lan” dạy môn “Co So Du Lieu”.

9. In ra danh sách những môn học (mã môn học, tên môn học) phải học liền trước môn “Co So Du Lieu”.

Page 47: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 47

10. Môn “Cau Truc Roi Rac” là môn bắt buộc phải học liền trước những môn học (mã môn học, tên môn học) nào.

11. Tìm họ tên giáo viên dạy môn CTRR cho cả hai lớp “K11” và “K12” trong cùng học kỳ 1 năm 2006.

12. Tìm những học viên (mã học viên, họ tên) thi không đạt môn CSDL ở lần thi thứ 1 nhưng chưa thi lại môn này.

13. Tìm giáo viên (mã giáo viên, họ tên) không được phân công giảng dạy bất kỳ môn học nào.

14. Tìm giáo viên (mã giáo viên, họ tên) không được phân công giảng dạy bất kỳ môn học nào thuộc khoa giáo viên đó phụ trách.

15. Tìm họ tên các học viên thuộc lớp “K11” thi một môn bất kỳ quá 3 lần vẫn “Khong dat” hoặc thi lần thứ 2 môn CTRR được 5 điểm.

16. Tìm họ tên giáo viên dạy môn CTRR cho ít nhất hai lớp trong cùng một học kỳ của một năm học.

17. Danh sách học viên và điểm thi môn CSDL (chỉ lấy điểm của lần thi sau cùng).

18. Danh sách học viên và điểm thi môn “Co So Du Lieu” (chỉ lấy điểm cao nhất của các lần thi).

19. Khoa nào (mã khoa, tên khoa) được thành lập sớm nhất.

20. Có bao nhiêu giáo viên có học hàm là “GS” hoặc “PGS”.

21. Thống kê có bao nhiêu giáo viên có học vị là “CN”, “KS”, “Ths”, “TS”, “PTS” trong mỗi khoa.

22. Mỗi môn học thống kê số lượng học viên theo kết quả (đạt và không đạt).

23. Tìm giáo viên (mã giáo viên, họ tên) là giáo viên chủ nhiệm của một lớp, đồng thời dạy cho lớp đó ít nhất một môn học.

24. Tìm họ tên lớp trưởng của lớp có sỉ số cao nhất.

25. * Tìm họ tên những LOPTRG thi không đạt quá 3 môn (mỗi môn đều thi không đạt ở tất cả các lần thi).

26. Tìm học viên (mã học viên, họ tên) có số môn đạt điểm 9,10 nhiều nhất.

27. Trong từng lớp, tìm học viên (mã học viên, họ tên) có số môn đạt điểm 9,10 nhiều nhất.

Page 48: BÀI 1: TỔNG QUAN VỀ CSDL 2 – thông tin. 2 2 ình 2 BÀI 2 ...thuvien.brtvc.edu.vn/Documents/cntt/Co_so_du_lieu.pdfI. Sơ đồ tổng quát một h ệ quản trị CSDL. II

Trang 48

28. Trong từng học kỳ của từng năm, mỗi giáo viên phân công dạy bao nhiêu môn học, bao nhiêu lớp.

29. Trong từng học kỳ của từng năm, tìm giáo viên (mã giáo viên, họ tên) giảng dạy nhiều nhất.

30. Tìm môn học (mã môn học, tên môn học) có nhiều học viên thi không đạt (ở lần thi thứ 1) nhất.

31. Tìm học viên (mã học viên, họ tên) thi môn nào cũng đạt (chỉ xét lần thi thứ 1).

32. * Tìm học viên (mã học viên, họ tên) thi môn nào cũng đạt (chỉ xét lần thi sau cùng).

33. * Tìm học viên (mã học viên, họ tên) đã thi tất cả các môn đều đạt (chỉ xét lần thi thứ 1).

34. * Tìm học viên (mã học viên, họ tên) đã thi tất cả các môn đều đạt (chỉ xét lần thi sau cùng).

35. ** Tìm học viên (mã học viên, họ tên) có điểm thi cao nhất trong từng môn (lấy điểm ở lần thi sau cùng).