(NB) Giáo trình Cơ sở dữ liệu giúp các học viên tiếp cận vấn đề cốt lõi nhất về mặt lý thuyết: các định nghĩa, khái niệm, hệ quả, định lý, giải thuật,…từ đó có thể áp dụng vào bài toán thực tế thiết kế chuẩn hóa cơ sở dữ liệu nói riêng cũng như thiết kế hệ thống thông tin nói chung
TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU
Một số khái niệm cơ bản
Mục tiêu: Trình bày sơ lược các khái niệm về cơ sở dữ liệu.
1.1 Định nghĩa cơ sở dữ liệu
Cơ sở dữ liệu là một hệ thống lưu trữ dữ liệu trên các thiết bị theo cấu trúc nhất định, nhằm phục vụ nhu cầu sử dụng đa dạng của nhiều người dùng.
1.2 Ưu điểm của cơ sở dữ liệu
- Giảm sự trùng lắp thông tin xuống mức thấp nhất và do đó bảo đảm được tính nhất quán và toànvẹn dữ liệu.
- Đảm bảo dữ liệu có thể truy xuất theo nhiều cách khác nhau.
- Khả năng chiasẻ thông tin cho nhiều người sử dụng.
1.3 Các đặc trưng của phương pháp cơ sở dữ liệu
- Tính chia sẻ dữ liệu: dữ liệu được chia sẻ bởi nhiều người dùng hợp pháp.
- Tính giảm thiểu dư thừa dữ liệu: Dữ liệu dùng chung cho nhiều bộ phận được lưu một nơi theo cấu trúc thống nhất.
- Tính tương thích: Việc loại bỏ dư thừa kéo theo hệ quả là sự tương thích.
- Tính toàn vẹn dữ liệu: Đảm bảo một số ràng buộc toàn vẹn Khi người dùng chèn, xoá, sửa thì ràng buộc phải được kiểm tra chặc chẽ.
- Tính bảo mật dữ liệu: Đảm bảo an toàn dữ liệu và bảo mật thông tin là quan trọng.
Tính đồng bộ dữ liệu là yếu tố quan trọng trong hệ thống cơ sở dữ liệu, nơi nhiều người dùng truy cập đồng thời Để đảm bảo tính toàn vẹn và chính xác của dữ liệu, cần thiết phải có cơ chế bảo vệ nhằm ngăn chặn sự không tương thích giữa các phiên truy cập.
Tính độc lập dữ liệu là khái niệm mô tả sự tách biệt giữa cấu trúc dữ liệu và chương trình ứng dụng sử dụng dữ liệu Điều này cho phép tổ chức và phát triển dữ liệu một cách linh hoạt mà không cần phải thay đổi chương trình ứng dụng, từ đó nâng cao hiệu quả và khả năng mở rộng của hệ thống.
1.4 Các đối tượng sử dụng CSDL Đối tượng sử dụng là người khai thác cơ sở dữ liệu thông qua hệ quản trị CSDL Có thể phân làm ba loại đối tượng: Người quản trị CSDL, người phát triển và lập trình ứng dụng, người dùng cuối cùng.
Người quản trị CSDL: Là người hàng ngày chịu trách nhiệm quản lí và bảo trì CSDL như:
+ Sự chính xác, toàn vẹn và bảo mật của dữ liệu và ứng dụng trong CSDL.
+ Lưu trữ dự phòng và phục hồi CSDL.
+ Giữ liên lạc với người phát triển và lập trình ứng dụng, người dùng cuối.
+ Bảo đảm sự hoạt động hiệu quả của CSDL và hệ quản trị CSDL
Người phát triển và lập trình ứng dụng là những chuyên gia trong lĩnh vực công nghệ thông tin, đảm nhiệm vai trò thiết kế, xây dựng và duy trì các ứng dụng để cung cấp thông tin hữu ích cho người dùng.
Người dùng cuối là những cá nhân không chuyên về công nghệ thông tin, nhưng là chuyên gia trong các lĩnh vực khác với trách nhiệm công việc rõ ràng Họ sử dụng cơ sở dữ liệu thông qua phần mềm ứng dụng do các nhà phát triển tạo ra hoặc qua các công cụ truy vấn của hệ quản trị cơ sở dữ liệu.
1.5 Hệ Quản Trị Cơ Sở Dữ Liệu (Data Base Management System) Để giải quyết tốt những vấn đề mà cách tổ chức CSDL đặt ra như đã nói ở trên, cần thiết phải có những phần mềm chuyên dùng để khai thác chúng Những phần mềm này được gọi là các hệ quản trị CSDL Các hệ quản trị CSDL có nhiệm vụ hỗ trợ cho các nhà phân tích thiết kế CSDL cũng như những người khai thác CSDL Hiện nay trên thị trường phần mềm đã có những hệ quản trị CSDL hỗ trợ được nhiều tiện ích như: MS Access, Visual Foxpro, SQL Server, Oracle, …
Mỗi hệ quản trị CSDLđều được cài đặt dựa trên một mô hình dữ liệu cụ thể.
Dù là dựa trên mô hình dữ liệu nào, một hệ quản trị CSDL cũng phải hội đủ các yếu tố sau:
Ngôn ngữ giao tiếp giữa người sử dụng và cơ sở dữ liệu (CSDL) bao gồm ba loại chính: Ngôn ngữ mô tả dữ liệu, cho phép khai báo cấu trúc và mối liên hệ của dữ liệu cùng các quy tắc quản lý; Ngôn ngữ thao tác dữ liệu, giúp người sử dụng cập nhật thông tin (thêm, sửa, xoá); và Ngôn ngữ truy vấn dữ liệu, cho phép khai thác và truy vấn thông tin cần thiết từ CSDL.
Cơ sở dữ liệu là hệ thống quản lý thông tin cho phép người quản trị thay đổi cấu trúc bảng dữ liệu, thiết lập bảo mật thông tin và cấp quyền truy cập cho người dùng.
Từ điển dữ liệu là công cụ quan trọng để mô tả các ánh xạ liên kết, ghi nhận cấu trúc của cơ sở dữ liệu (CSDL), các chương trình ứng dụng, mật mã và quyền hạn sử dụng.
Cơ chế giải quyết vấn đề tranh chấp dữ liệu trong hệ quản trị CSDL có thể được cài đặt riêng cho từng hệ thống Một số biện pháp phổ biến bao gồm việc cấp quyền ưu tiên cho từng người sử dụng, và đánh dấu yêu cầu truy xuất dữ liệu, trong đó người có yêu cầu trước sẽ được quyền truy xuất dữ liệu trước.
Hệ quản trị cơ sở dữ liệu cần có cơ chế sao lưu và phục hồi dữ liệu để đảm bảo an toàn khi xảy ra sự cố Việc này có thể được thực hiện tự động sau một khoảng thời gian nhất định, tuy nhiên, phương pháp này có thể tốn kém, đặc biệt là đối với các cơ sở dữ liệu lớn.
- Hệ qu ả n tr ị CSDL ph ả i cung c ấ p m ộ t giao di ệ n thân thi ệ n, d ễ s ử d ụ ng
1.6 Các Ứng Dụng Của Cơ Sở Dữ Liệu
Hiện nay, cơ sở dữ liệu (CSDL) đóng vai trò quan trọng trong mọi ứng dụng công nghệ thông tin, từ quản lý hệ thống thông tin tại các cơ quan nhà nước đến lưu trữ và xử lý dữ liệu trong doanh nghiệp CSDL cũng được ứng dụng rộng rãi trong nghiên cứu khoa học, giảng dạy và tổ chức thông tin đa phương tiện, góp phần nâng cao hiệu quả và chất lượng công việc.
Các mô hình dữ liệu
Mục tiêu: Trình bày giới thiệu sơ lược các mô hình dữ liệu.
Mô hình dữ liệu là một sự trừu tượng hóa của môi trường thực, phản ánh cách mà các nhà phân tích thiết kế cơ sở dữ liệu tiếp cận và tổ chức dữ liệu Mỗi loại mô hình dữ liệu có những ưu điểm và hạn chế riêng, nhưng một số mô hình nổi bật vẫn thu hút sự quan tâm nghiên cứu từ cộng đồng.
Sauđây chúng ta sẽ điểm qua lịch sử phát triển của các mô hình dữ liệu.
- Vào những năm sáu mươi, thế hệ đầu tiên của CSDL ra đời dưới dạng mô hình thực thể kết hợp, mô hình mạng và mô hình phân cấp.
Vào những năm 1970, mô hình dữ liệu quan hệ do EF Codd phát minh đã ra đời, đánh dấu thế hệ thứ hai của cơ sở dữ liệu (CSDL) với cấu trúc logic chặt chẽ Mô hình này hiện nay được sử dụng rộng rãi trong quản lý toàn cầu Nghiên cứu về mô hình dữ liệu quan hệ tập trung vào lý thuyết chuẩn hóa các quan hệ, trở thành công cụ quan trọng trong phân tích và thiết kế các hệ CSDL hiện đại Mục tiêu của nghiên cứu là loại bỏ các phần tử không bình thường trong quan hệ khi thực hiện cập nhật, từ đó giảm thiểu các phần tử dư thừa.
Vào thập kỷ 80, các mô hình cơ sở dữ liệu mới đã xuất hiện, bao gồm mô hình cơ sở dữ liệu hướng đối tượng, mô hình cơ sở dữ liệu phân tán và mô hình cơ sở dữ liệu suy diễn, đánh dấu bước tiến quan trọng trong lĩnh vực quản lý dữ liệu.
Trong phần tiếp theo, chúng tôi sẽ giới thiệu mô hình dữ liệu thực thể kết hợp, một trong những mô hình tiêu biểu nhất để thiết kế ứng dụng tin học Các chương tiếp theo của giáo trình sẽ tập trung vào mô hình dữ liệu quan hệ.
Mô hình thực thể kết hợp
Mục tiêu: Trình bày chi tiết mô hình thực thể kết hợp (ERD), có thể phân tích dữ liệu và thiết kế được mô hình thực thể kết hợp.
Hiện nay, mô hình dữ liệu quan hệ là lựa chọn phổ biến trong các hệ quản trị cơ sở dữ liệu (CSDL) và đại diện cho mô hình dữ liệu ở mức vật lý Để xây dựng mô hình này, cần sử dụng mô hình dữ liệu ở mức quan niệm để đặc tả, trong đó mô hình thực thể kết hợp là một dạng điển hình Sau đó, một số quy tắc sẽ được áp dụng để chuyển đổi hệ thống từ mô hình này sang mô hình dữ liệu quan hệ, các quy tắc này sẽ được trình bày trong mục 2.2.
Sauđây là các khái niệm của mô hình thực thể kết hợp.
Thực thể là một sự vật có thực, dễ dàng phân biệt, như sinh viên Nguyễn Văn Thành, lớp Cao Đẳng Tin Học 2A, môn học Cơ Sở Dữ Liệu, hay xe máy mang biển số 52-0549.
Cácđặcđiểm riêngcủa thực thể gọi là các thuộc tính.
Chẳng hạn các thuộc tính của sinh viên Nguyễn Văn Thành là: mã số, sinh viên, giới tính, ngày sinh,hộ khẩu thường trú, lớpđang theohọc,…
3.3 Loại thực thể (entity type)
Một thực thể là một tập hợp các đối tượng có chung thuộc tính, và mỗi loại thực thể cần được đặt tên một cách có ý nghĩa Để biểu diễn một loại thực thể, người ta sử dụng hình chữ nhật.
Ví dụ các sinh viên có mã sinh viên là ““02CĐTH019”, “02CĐTH519”,
“02TCTH465”,… nhóm lại thành một loại thực thể, được đặt tên là Sinhvien chẳng hạn.
Tương tự trong ứng dụng quản lý điểm của sinh viên (sẽ được trình bày ngay sauđây) ta có các loại thực thể như Monhoc, Lop, Khoa.
Khoá của loại thực thể E là một hay một tập các thuộc tính của E có thể dùng để phân biệt hai thực thể bất kỳ của E.
Ví dụ khoá của loại thực thể Sinhvien là MASV, của Lớp là MALOP, của Khoa là MAKHOA, của Monhoc là MAMH,…
Khi biểu diễn hệ thống bằng mô hình thực thể kết hợp, cần đảm bảo rằng tên các loại thực thể phải khác nhau Các thuộc tính khóa trong danh sách thuộc tính của mỗi loại thực thể thường được gạch dưới liền nét Nếu hệ thống có nhiều loại thực thể, để đơn giản hóa mô hình, chỉ cần nêu tên các loại thực thể, trong khi các thuộc tính của chúng được liệt kê riêng.
Bài toán quản lý điểm của sinh viên yêu cầu quản lý thông tin cá nhân như họ tên, ngày sinh, giới tính, nơi sinh và hộ khẩu thường trú Mỗi sinh viên được cấp một mã số duy nhất (MASV) và thuộc về một lớp học với mã số lớp (MALOP) và tên lớp (TENLOP), đồng thời mỗi lớp thuộc về một khoa có tên gọi (TENKHOA) và mã số khoa (MAKHOA) Mỗi môn học có tên gọi (TENMH), mã số (MAMH) và được học trong các đơn vị học trình (DONVIHT) Giảng viên cũng cần quản lý thông tin như họ tên, học vị, chuyên ngành và mã số giảng viên (MAGV), có thể dạy nhiều môn học ở nhiều khoa nhưng chỉ thuộc quản lý của một khoa Mỗi sinh viên có tối đa 3 lần thi cho mỗi môn học, với thông tin về lần thi (LANTHI) và điểm thi (DIEMTHI), và mỗi môn học chỉ có một giảng viên phụ trách trong lớp học đó.
Với bài toán trên thì các loại thực thể cần quản lý như: Sinhviên, Mônhọc, Khoa,Lớp, Giảngviên.
Ví dụ với loại thực thể Sinhviên thì cần quản lý các thuộc tính như:MASV,HOTENSV, NGAYSINH,… và ta có thể biểu diễn như sau:
Mối kết hợp diễn tả sự liênhệ giữa các loại thực thể trong mộtứng dụng tin học.
Ví dụ mối kết hợp giữa hai loại thực thể Sinhviên và Lop, mối kết hợp giữa Sinhviênvới Mônhọc,
Mối kết hợp được hình dung qua một hình elip, với hai nhánh bên cạnh thể hiện các thực thể hoặc mối kết hợp liên quan Tên gọi của mối kết hợp thường sử dụng các từ như: thuộc, gồm, chứa,
Chẳng hạn giữa hai loại thực thể Lớp và Khoa có mối kết hợp “thuộc” như sau:
Bản số của mối kết hợp:
Bản số của nhánh R trong mối kết hợp cho thấy số lượng thực thể ở nhánh đối diện có liên hệ với một thực thể cụ thể của nhánh R.
Mỗi bản số là một cặp số (min,max), chỉ số lượng tối thiểu và số lượng tối đa của thực thể khi tham gia vào mối kết hợpđó.
Mỗi sinh viên chỉ thuộc một lớp, do đó, mối quan hệ giữa bảng Sinh viên và bảng Lớp được biểu diễn bằng (1,1) và (1,n) tương ứng Trong một số trường hợp đặc biệt, các kết hợp này có thể đi kèm với các thuộc tính bổ sung, vì vậy chúng thường được đặt tên một cách ý nghĩa và đầy đủ hơn.
Trong mối quan hệ giữa hai thực thể Monhoc và Sinhvien, mỗi sinh viên sẽ có một kết quả điểm thi duy nhất tương ứng với mỗi lần thi của từng môn học.
Khóa của mối kết hợp là sự kết hợp của các khóa thuộc về các loại thực thể liên quan Ví dụ, thuộc tính MAGV là khóa của thực thể Giangvien, MALOP là khóa của thực thể Lop, và MAMH là khóa của thực thể Monhoc Do đó, mối kết hợp phân công giữa các thực thể Giangvien, Lop và Monhoc có khóa là {MAGV, MAMH, MALOP}, tạo thành mối kết hợp ba ngôi.
Việc thành lập mô hình thực thể kết hợp cho ứng dụng tin học bao gồm các bước như xác định danh sách các loại thực thể, xác định các mối kết hợp giữa các loại thực thể để phác thảo mô hình, và lập bản số của các mối kết hợp Cuối cùng, chúng tôi sẽ xây dựng mô hình thực thể kết hợp cho bài toán quản lý điểm của sinh viên, như đã nêu trong ví dụ 1.1.
BÀI TẬP THỰC HÀNH CỦA HỌC VIÊN
Dựa vào các phân tích sơ bộ, cần xây dựng mô hình thực thể kết hợp cho bài toán quản lý, bao gồm xác định loại thực thể, mối kết hợp giữa các thực thể, bản số, thuộc tính của từng loại thực thể và khoá của loại thực thể Mô hình này sẽ giúp tổ chức thông tin một cách hiệu quả và hỗ trợ trong việc quản lý dữ liệu.
Bài 1.1 QUẢN LÝ ĐẶT BÁO CỦA KHÁCH HÀNG
Tại một nơi phát hành báo cần phải quản lý thông tin đặt báo của khách hàng.
Có nhiều thể loại báo như nhật báo, nguyệt san, tạp chí và tham luận, mỗi loại cần được ghi nhận mã và tên thể loại Mỗi tờ báo cũng cần lưu lại mã báo, tên báo (ví dụ: Kiến thức Ngày Nay, Tuổi Trẻ Ngày, Tuổi Trẻ Tuần, Sài Gòn Giải Phóng), hình thức phát hành (quý, ngày, tuần) và đơn giá kỳ Một thể loại báo có thể bao gồm nhiều tờ khác nhau Khi khách hàng đến đặt báo, cần ghi lại thông tin như mã khách hàng, tên khách hàng và ngày đặt Một khách hàng có thể đặt nhiều tờ báo khác nhau, vì vậy cần lưu ý tờ báo mà khách muốn đặt, số kỳ và thành tiền.
Bài 1.1: b1.Xácđịnh danh sách các loại thực thể
-Thực thể BÁO: có các thuộc tính: mã báo (mabao) là thuộc tính định danh; tên báo (tenbao), hình thức (hinhthuc), đơn giá kỳ (dongiaky).
- Thực thể THỂ LOẠI: có các thuộc tính: mã thể loại (matheloai) là thuộc tính định danh, tên thể loại (tentheloai).
Thực thể KHÁCH HÀNG bao gồm các thuộc tính quan trọng như mã khách hàng (makhachhang) và tên khách hàng (tenkhachhang) Để xây dựng mô hình dữ liệu hiệu quả, cần xác định các mối kết hợp giữa các loại thực thể liên quan.
- KHÁCH HÀNG đặt/mua BÁO: có các thuộc tính riêng phát sinh trong quá trình đặt.mua là: ngày đặt (ngaydat), số kỳ (soky), thành tiền (thanhtien).
Để xây dựng mô hình thực thể mối quan hệ, bước đầu tiên là lập bản số cho các mối kết hợp Bằng cách gắn các quan hệ lên mô hình phác thảo, chúng ta sẽ có được mô hình thực thể mối quan hệ sơ bộ cuối cùng.
- Quan hệ Đặt/mua giữa KHÁCH HÀNG và BÁO là quan hệ (1-n)-(1-n)
- Quan hệ Thuộc giữa BÁO và THỂ LOẠI là quan hệ (1-1)-(1-n).
(Các bài tập còn lại được phân tích và giải quyết tương tự bài 1).
Bài 1 2 QUẢN LÝ VIỆC MƯỢN/TRẢ SÁCH Ở MỘT THƯ VIỆN
MÔ HÌNH DỮ LIỆU QUAN HỆ
Thuộc tính
Thuộc tính là các đặc điểm riêng biệt của một đối tượng trong mô hình thực thể kết hợp Mỗi thuộc tính không chỉ có tên gọi mà còn phải thuộc về một kiểu dữ liệu cụ thể.
Kiểu dữ liệu là các thuộc tính được xác định qua tên gọi và phải thuộc một loại nhất định như số, chuỗi, ngày tháng, logic, hoặc hình ảnh Kiểu dữ liệu có thể chia thành hai loại: vô hướng và có cấu trúc Nếu thuộc tính thuộc kiểu vô hướng, nó được gọi là thuộc tính đơn hoặc thuộc tính nguyên tố; ngược lại, nếu thuộc tính thuộc kiểu có cấu trúc, nó không được xem là thuộc tính nguyên tố.
Sinh viên Nguyễn Văn Thành có các thuộc tính như họ và tên, mã số sinh viên dưới dạng chuỗi; ngày sinh thuộc kiểu ngày tháng; hộ khẩu thường trú cũng là chuỗi; và thuộc tính hình ảnh được định nghĩa dưới dạng hình ảnh.
Miền giá trị (domain of values) là tập hợp các giá trị mà mỗi thuộc tính có thể nhận, thường chỉ bao gồm một phần của kiểu dữ liệu Ví dụ, thuộc tính NỮ có miền giá trị {nam, nữ}, màu da có miền giá trị {da trắng, da vàng, da đen, da đỏ}, và điểm thi là các số trong tập {0; 1; 2;…, 10}.
Lưu ý rằng khi không chú ý đến ngữ nghĩa, tên các thuộc tính thường được viết bằng chữ cái in hoa đầu tiên trong bảng chữ cái Latin.
A,B,C,D,… Những chữ cái in hoa X,Y,Z,W,… thường dùng thay cho một nhóm nhiều thuộc tính Đôi khi còn dùng các ký hiệu chữ cái với các chỉ số
Khi đặt tên cho các thuộc tính A1, A2,…, An trong một hệ thống, cần đảm bảo rằng tên gọi vừa gợi nhớ, vừa ngắn gọn để dễ dàng viết câu lệnh truy vấn Tên thuộc tính không nên quá dài, vì điều này sẽ gây khó khăn trong việc sử dụng, nhưng cũng không nên quá ngắn để tránh mất đi ngữ nghĩa Đặc biệt, cần tránh việc đặt trùng tên cho các thuộc tính có ý nghĩa khác nhau thuộc về các đối tượng khác nhau.
Trong các hệ quản trị cơ sở dữ liệu, giá trị rỗng (NULL) được thêm vào miền giá trị của thuộc tính để biểu thị cho một giá trị không xác định hoặc chưa được xác định tại thời điểm nhập liệu, nhưng có khả năng được xác định sau này.
Lược Đồ Quan Hệ (relation schema)
Lược đồ quan hệ là tập hợp tất cả các thuộc tính cần quản lý của một đối tượng cùng với các mối liên hệ giữa chúng Một lược đồ quan hệ Q với các thuộc tính {A1, A2, , An} được biểu diễn dưới dạng Q(A1, A2, , An), trong đó Q+ = {A1, A2, , An}.
Chẳng hạn lược đồ quan hệ Sinhviên với các thuộc tính như đã được liệt kê trong ví dụ 1.1được viết như sau:
Sinhvien(MASV,HTENSV,NU,NGAYSINH,NOISINH,TINH,MALOP)
Khi thiết lập một lược đồ quan hệ, người thiết kế thường gán cho nó một ý nghĩa cụ thể, được gọi là tân từ của lược đồ quan hệ Ví dụ, tân từ của lược đồ quan hệ Sinhvien là: “Mỗi sinh viên có một mã số sinh viên (MASV) duy nhất, và mỗi MASV sẽ xác định các thuộc tính khác của sinh viên như họ tên (HOTENSV), giới tính (NU), ngày sinh (NGAYSINH), nơi sinh (NOISINH), tỉnh (TINH), và mã lớp (MALOP)”.
Khi phát biểu tân từ cho lược đồ quan hệ, người thiết kế cần mô tả rõ ràng ý nghĩa để tránh hiểu nhầm Từ tân từ này, người ta có thể xác định tập khoá và siêu khoá của lược đồ quan hệ, điều này sẽ được trình bày trong các mục tiếp theo.
Nhiều lược đồ quan hệ cùng nằm trong một hệ thống thông tin được gọi là một lược đồ cơ sở dữ liệu.
Khái niệm lượcđồ quan hệ ứng với khái niệm loại thực thể ở mô hình thực thể kết hợp.
Quan Hệ (relation)
Sự thể hiện của lược đồ quan hệ tại một thời điểm cụ thể được gọi là quan hệ, và trên mỗi lược đồ quan hệ có thể xác định nhiều quan hệ khác nhau Thông thường, các ký hiệu như R, S, Q được sử dụng để chỉ các lược đồ quan hệ, trong khi các quan hệ thường được ký hiệu bằng các chữ cái như r, s, q.
Về trực quan thì quan hệ (hay bảng quan hệ) như là một bảng hai chiều gồm các dòng và các cột.
Một quan hệ có n thuộc tínhđược gọi là quan hệ n ngôi. Để chỉ quan hệ r xácđịnh trên lượcđồ quan hệQ ta có thể viết r(Q).
Bộ (Tuple)
Mỗi bộ là những thông tin về một đối tượng thuộc một quan hệ, bộ cũng còn được gọi là mẫu tin.
Thường người ta dùng các chữ cái thường (như t,…) để biểu diễn bộ trong quan hệ.
Chuyển mô hình thực thể kết hợp sang mô hình dữ liệu quan hệ
Mục tiêu: Áp dụng được các quy tắc chuyển đổi mô hình thực thể kết hợp ERD sang mô hìnhdữ liệu quan hệ (dạng lược đồ).
Chuyển đổi từng loại thực thể thành lược đồ quan hệ, trong đó các thuộc tính của thực thể sẽ trở thành thuộc tính của lược đồ Đồng thời, thuộc tính khóa của loại thực thể cũng sẽ được sử dụng làm thuộc tính khóa trong lược đồ quan hệ.
Chẳng hạn loại thực thể Sinhvien ở ví dụ 1.2 khi áp dụng quy tắc 1 thì sẽ được chuyển thànhlượcđồ quanhệ Sinhvien như sau:
Sinhvien(MASV, HOTENSV, NU, NGAYSINH, TINH,….)
Nếu mối kết hợp có bản số max là n cho cả hai nhánh, nó sẽ được chuyển thành lược đồ quan hệ K’ với các thuộc tính từ mối kết hợp K, cùng với các thuộc tính khoá của hai lược đồ quan hệ A và B tương ứng với các thực thể tham gia Lược đồ quan hệ K’ sẽ bao gồm cả hai khoá của lược đồ quan hệ A và B.
Mối kết hợp Phancong giữa ba thực thể Giangvien, Monhoc và Lop được chuyển đổi thành lược đồ quan hệ Phancong, với tập khoá bao gồm {MAGV, MAMH, MALOP}.
Khi một mối kết hợp giữa nhánh B có bản số n và nhánh A có bản số max là 1, cần loại bỏ mối kết hợp này khỏi mô hình thực thể kết hợp Đồng thời, các thuộc tính của lược đồ tương ứng với nhánh B sẽ được thêm vào lược đồ của nhánh A, trong đó khóa của nhánh B sẽ trở thành khóa ngoại của nhánh A Nếu mối kết hợp có thuộc tính, những thuộc tính này cũng sẽ được bổ sung vào lược đồ quan hệ tương ứng với nhánh A.
Chẳng hạn mối kết hợp thu ộ c giữa hai loại thực thể Sinhvien và Lop nên lược đồ quan hệ Sinhvienđược sửa thành như sau:
Sinhvien(MASV,HOTENSV,NU,NGAYSINH, TINH,MALOP)
Nếu mối kết hợp mà cả hai nhánh đều có bản số max là 1 thì áp dụng quy tắc 3 chomột trong hai nhánh tuỳ chọn.
Sau đây là mô hình dữ liệu quan hệ được chuyển từ mô hình thực thể kết hợpở vídụ 1.2.
Sinhvien(MASV, HOTENSV, NU, NGAYSINH, NOISINH,TINH, MALOP) Lop(MALOP,TENLOP,MAKHOA)
Giangvien(MAGV,HOTENGV,HOCVI,CHUYENNGANH,MAKHOA) Ketqua(MASV, MAMH, LANTHI,DIEMTHI)
Ngôn ngữ đại số quan hệ
Mục tiêu: Trình bày được cơ sở lý thuyết của mô hình dữ liệu quan hệ (các phép toán đại số áp dụng tính toán trên các quan hệ).
Hai lược đồ quan hệ Q1 và Q2 có cùng tập thuộc tính {A1, A2, , An} được gọi là tương thích nếu chúng được định nghĩa trên cùng một lược đồ hoặc trên hai lược đồ có cùng tập thuộc tính Các phép toán như hợp, giao và trừ chỉ được áp dụng cho các quan hệ tương thích này.
3.1 Phép Hợp 2 quan hệ(Union)
Hai quan hệ tương thích r1 và r2 có thể được kết hợp để tạo ra hợp r1 + r2, là một quan hệ mới trên lược đồ quan hệ Q Hợp này bao gồm tất cả các phần tử thuộc r1 hoặc thuộc r2, được định nghĩa là r1 + r2 = {t / t∈ r1 hoặc t∈ r2}.
Khi đó, nội dung của quan hệ r 1 + r 2 là:
Do thứ tự trước/sau của các bộ trong các quan hệ là không quan trọng nên ta có: r 1 + r 2 = r 2 + r 1
Một cách tổng quát có thể lấy hợp của n quan hệ tương thích: cho n quan hệ tương thích r 1 ,r 2 ,…,r n
Hợp của n quan hệ r 1 ,r 2 ,…,r n là một quan hệ r 1 + r 2 + …+ r n gồm các phần tử thuộc r 1 hoặc thuộc r 2 … hoặc thuộc r n
3.2 Phép Giao 2 quan hệ (Intersection)
Giao của hai quan hệ tương thích r 1 và r 2 ký hiệu là r 1 * r 2 là một quan hệ trên
Q gồm các phần tử vừa thuộc r 1 vừa thuộc r 2
Chẳng hạn với vídụ 2.2ở trên thì r 1 * r 2 là:
3.3 Phép Trừ 2 quan hệ (Minus)
Hiệu của hai quan hệ tương thích r 1 cho r 2 ký hiệu là r 1 – r 2 là một quan hệ trên Q gồm các phần tử chỉ thuộc r 1 mà không thuộc r 2 , nghĩa là r 1 - r 2 = {t∈ r 1 và t
∈ r 2 } Chẳng hạn với vídụ 2.2 thì r 1 - r 2 là:
3.4 Tích Decac của 2 quan hệ (Cartesian Product)
Cho hai lược đồ quan hệ Q 1 (A 1 ,A 2 , ,A n ), Q 2 (B 1 ,B 2 , ,B m ) Giả sử r 1 , r 2 là hai quan hệ trên Q 1 , Q 2 tương ứng.
Tích Descartes (decac) của r 1 và r 2 ký hiệu là r 1 x r 2 là quanhệ trên lược đồ quan hệ có tập thuộc tính Q = Q 1 ∪ Q 2
Vậy quanhệ r 1 x r 2 là quanhệ trên lượcđồ: Q = Q 1 ∪ Q 2 {A 1 ,A 2 , ,A n ,B 1 ,B 2 , ,B m } với r 1 x r 2 = {(t 1 ,t 2 ) : t 1 ∈r 1 , t 2 ∈ r 2 }
Ví dụ 2.3 cho r 1 và r 2 là
Thì kết quả r 1 x r 2 như sau:
Cho 2 lược đồ quan Q 1 (A 1 ,A 2 , ,A n ), Q 2 (B 1 ,B 2 , ,B m ), r là quan hệ xác định trên Q 1 ; s là quan hệ xác định trên Q 2 (n>m và s khác rỗng), có m thuộc tính chung (giống nhau về mặt ngữ nghĩa, hoặc các thuộc tính có thể so sánh được) giữa r và s Phép chia 2 quanhệ r và s ký hiệu r ÷ s , là một quanhệ q có n - m thuộc tính đượcđịnh nghĩa như sau: q= r ÷ s={t/ ∀ u ∈ s, (t,u) ∈ r}
Cho lượcđồ quanhệ Q(A 1 ,A 2 , ,A n ), r là quan hệ trên Q và X ⊆ Q+.
Phép chiếu của quan hệ r lên tập thuộc tính X, ký hiệu là r[X] (hoặc r.X), tạo ra một lược đồ quan hệ mới r’ với tập thuộc tính là X Quan hệ r’ được hình thành từ r bằng cách chỉ lấy các thuộc tính có trong X.
Phép chiếu chính là phép rút tríchdữ liệu theo cột Chẳng hạn với r 1 ở ví dụ 2.2 thì khiđó ta có quanhệ concủa r 1 chiếu lên X={A,C} là:
Cho lược đồ quan hệ Q(A 1 ,A 2 , ,A n ), r là một quan hệ trên lược đồ quan hệ
Q X là một tập con của Q+ và E là một mệnh đề logic được phát biểu trên tập X. Phần tử t ∈ r thoả mãnđiều kiện E ký hiệu là t(E) Phép chọn từ quan hệ r theo điều kiện E (ký hiệu là r : E) sẽ tạo thành một quan hệ mới ký hiệu là r(E), trong đó r(E) = {t: t∈ r và t(E)}
Phép chọn chính là phép rút trích dữ liệu theo dòng Chẳng hạn với r 2 ở ví dụ
2.3 vàđiều kiện E là: “F >= 6” thìkết quả r 2 (E) hay r2: “F >= 6” có nội dung là
Cho hai lược đồ quan hệ Q 1 và Q 2 như sau: Q 1 (A 1 ,A 2 , ,A n ), Q 2 (B 1 ,B 2 , ,B m ); r và s lần lượt là hai quanhệ trên Q 1 và Q 2
A i và B j lần lượt là thuộc tính của Q 1 , Q 2 sao cho MGT(A I )= MGT(B J ) θ là một trong các phép so sánh (=, , ≤ ,≥,≠ ) trên MGT(A I ).
Phép kết giữa hai quan hệ r và s theo điều kiện A i θ B j, được ký hiệu là r |>=”, điều kiệnB>=F, tađược kết quả là quan hệ sau:
3.9 Phép Kết Tự Nhiên (natural join)
Nếu θ trong phép kết được sử dụng là phép so sánh bằng (=), thì gọi là phép kết bằng Khi A i ≡ B j, phép kết bằng này được gọi là phép kết tự nhiên, và đây là loại phép kết phổ biến nhất trong thực tế.
Ngôn ngữ với các phép toán trên gọi là ngôn ngữ đại số quan hệ Sau đây là một vídụ về ngôn ngữ đại số quan hệ.
Lược đồ cơ sở dữ liệu (CSDL) được thiết kế để quản lý điểm sinh viên, bao gồm các bảng dữ liệu liên quan đến thông tin sinh viên, môn học và điểm số Để thực hiện các yêu cầu, hãy sử dụng ngôn ngữ đại số quan hệ để truy vấn và xử lý dữ liệu hiệu quả.
1 Lập danh sách các sinh viên lớp có mã lớp là CDTH2A, danh sách cần MASV,HOTENSV
2 Lập danh sách sinh viên nữ và có mã khoa là “CNTT”, danh sách cần MASV, HOTENSV.
3 Lập bảngđiểm thilần 1 của tất cả các môn cho sinh viên lớp CDTH2A, danh sách cần MASV, HOTENSV, TENMH, DIEMTHI.
4 Lập phiếu điểm thi lần 1 các môn cho sinh viên có MASV=”00CDTH189” danh sách cần MAMH,TENMH, DONVIHT, DIEMTHI.
BÀI TẬP THỰC HÀNH CỦA HỌC VIÊN
Bài 2.1 Hãy lập mô hình dữ liệu quan hệ cho các bài toán quản lý 1.1, 1.2, 1.3, 1.4, 1.5 Hãy xác định khoá cho từng lược đồ cho mỗi bài toán trên.
Bài 2.2 Cho lược đồ cơ sở dữ liệu
Sinhvien(MASV,HTENSV,NU,NGAYSINH,NOISINH,TINH,MALOP)
Khoa(MAKHOA,TENKHOA) Monhoc(MAMH,TENMH,DONVIHT)
Giangvien(MAGV,HOTENGV,HOCVI,CHUYENNGANH,MAKHOA)
Ketqua(MASV,MAMH,LANTHI,DIEMTHI)
Dưới đây là các yêu cầu thực hiện bằng ngôn ngữ đại số quan hệ: a Lập danh sách sinh viên có hộ khẩu ở tỉnh "LONG AN" với thông tin MASV, HOTENSV, NGAYSINH, TENLOP b Lập danh sách sinh viên lớp MALOP "CDTH2A" với thông tin MASV, HOTENSV, NGAYSINH, TINH c Lập danh sách giảng viên có học vị THẠC SĨ thuộc khoa "CNTT" với thông tin MAGV, HOTENGV, CHUYENNGANH d Lập bảng điểm thi lần 1 môn "869" cho sinh viên lớp "CĐTH2A" và "CĐTH2B" với thông tin MASV, HOTENSV, DIEMTHI e Lập danh sách giảng viên đã dạy lớp "CĐTH2A" với thông tin MAGV, HOTENGV, TENKHOA, HOCVI, TENMH f Lập danh sách các môn học của lớp "CDTH2A" với thông tin MAMH, TENMH, DONVIHT, HOTENGV g Lập danh sách giảng viên đã dạy sinh viên có MASV cụ thể.
“00CDTH189“, danh sách cần MAGV, HOTENGV, HOCVI, CHUYENNGANH, TENKHOA,TENMH h Lập danh sách các sinh viên có mã khoa “CNTT” có điểm thi lần 1 môn học
“869” lớn hơn hoặc bằng 8, danh sách cần MASV, HOTENSV, DIEMTHI, TENLOP.
Bài 2.1: gợi ý sau đây dựa trên mô hình E-R của bài tập 1.1 Áp dụng các quy tắc chuyển đổi từ E-R sang mô hình dữ liệu quan hệ, ta có:
- Chuyển đổi mỗi loại thực thể thành một lược đồ quan hệ (quy tắc 1) Ta có các lược đồ quan hệ sau:
R 2 : BÁO (mabao, tenbao, dongiaky, hinhthuc)
- Chuyển các quan hệ và bản số quan hệ:
+ Quan hệ Đặ t/mua là quan hệ nhiều-nhiều có thuộc tính riêng, áp dụng quy tắc 2, ta có được lược đồ quan hệ sau:
R 4 : ĐẶT BÁO (makhachhang, mabao, ngaydat, soky, thanhtien)
+ Quan hệ Thu ộ c là quan hệ một – nhiều (một cho nhánh THỂ LOẠI), áp dụng quy tắc 3, ta có lược đồ quan hệ sau:
R 5 : BÁO (mabao, tenbao, dongiaky, hinhthuc, matheloai)
Để xây dựng mô hình dữ liệu quan hệ cơ bản Q, cần loại bỏ các lược đồ có tên trùng lặp, chỉ giữ lại lược đồ đã bổ sung thuộc tính Kết quả sau khi loại bỏ sẽ tạo thành mô hình dữ liệu với các thành phần Q(R1, R3, R4, R5).
Bài 2.2: tham khảo ví dụ 2.6 để thực hiện.
NGÔN NGỮ TRUY VẤN DỮ LIỆU
Mở đầu
-Giới thiệu về lịch sử ngôn ngữ SQL, mục đích, lợi ích của ngôn ngữ SQL.
- Trình bày tóm tắc các kiểu dữ liệu cơ bản, các hàm xử lý dữ liệu cơ bản của SQL.
- Trình bày cú pháp tổng quát của câu lệnh Select – câu lệnh truy vấn dữ liệu chuẩn của SQL.
Vào những năm 1970, SQL (Structured Query Language) được phát triển bởi IBM như một phần của hệ quản trị cơ sở dữ liệu (CSDL) mô hình quan hệ mang tên SYSTEM.
R Sau đó vào các năm 1980 IBM tiếp tục phát triển SQL cho các hệ quản trị cơ sở dữ liệu nổi tiếng là SQL/DS trên nền hệ điều hành VM, DB2 trên nền hệ điều hành MVS,
Hệ quản trị cơ sở dữ liệu được phát triển trên nền tảng hệ điều hành IBM OS/2 và cho hệ thống IBM AS/400 đã có những bước tiến quan trọng Năm 1986, ANSI (Viện tiêu chuẩn quốc gia Hoa Kỳ) và ISO (Tổ chức Tiêu chuẩn Quốc tế) đã công nhận SQL là ngôn ngữ chuẩn để xử lý dữ liệu Ngôn ngữ chuẩn ANSI SQL đã được cập nhật liên tục vào các năm 1989 và sau đó.
SQL được triển khai trên cả hệ thống máy tính lớn và máy tính cá nhân Ngoài sản phẩm của IBM, các hệ quản trị cơ sở dữ liệu nổi bật khác bao gồm ORACLE của Oracle, SQL Server của Microsoft, SQLBase của Sybase và Ingres của Relational Technologies.
Mục đích của chuẩn SQL là
- Xác định cú pháp và ngữ nghĩa của ngôn ngữ SQL định nghĩa và thao tác dữ liệu.
- Định nghĩa các cấu trúc dữ liệu và phép toán cơ bản để thiết kế, truy cập, lưu trữ, kiểm soát và bảo vệ cơ sở dữ liệu SQL.
- Cung cấp công cụ đảm bảo tính tương thích của cấu trúc dữ liệu và các modul ứng dụng giữa các hệ quản trị cơ sở dữ liệu.
- Xác định chuẩn tối thiểu và chuẩn hoàn chỉnh, cho phép các cấp độ sử dụng SQL khác nhau trong các sản phẩm.
Cung cấp một chuẩn ban đầu, mặc dù chưa hoàn chỉnh, cho phép mở rộng các chức năng xử lý những vấn đề quan trọng như toàn vẹn tham chiếu, giao thức chuyển đổi, hàm người dùng, toán tử nối ngoài phép đẳng nối, và hỗ trợ các hệ thống ký tự quốc gia.
Một ngôn ngữ quan hệ chuẩn như SQL sẽ mang lại các lợi ích sau đây:
Giảm thiểu chi phí đào tạo là một lợi ích quan trọng khi sử dụng các hệ quản trị cơ sở dữ liệu có ngôn ngữ chuẩn SQL, vì điều này giúp giảm thiểu chi phí chuyển đổi giữa các hệ thống khác nhau.
Nâng cao hiệu suất công việc với sự am hiểu sâu sắc về SQL, các chuyên gia hệ thống thông tin có khả năng nhanh chóng làm quen với các ứng dụng của hệ quản trị cơ sở dữ liệu, nhờ vào việc họ đã quen thuộc với ngôn ngữ của những chương trình này.
- Tính khả chuyển của các ứng dụng Các ứng dụng có thể dễ dàng sử dụng trên các hệ thống khác nhau, nhưng cùng sử dụng SQL.
- Tăng tuổi thọ của các ứng dụng Một ngôn ngữ chuẩn có xu hướng tồn tại thời gian dài, điều đó làm giảm áp lực viết lại chương trình.
Giảm thiểu sự phụ thuộc vào nhà cung cấp là một lợi ích quan trọng của việc sử dụng SQL, vì đây là ngôn ngữ chung giúp người dùng dễ dàng tiếp cận và sử dụng nhiều sản phẩm từ các nhà cung cấp khác nhau với mức giá cạnh tranh.
Khả năng giao tiếp giữa các hệ thống chéo cho phép các hệ quản trị cơ sở dữ liệu quan hệ và các ứng dụng khác nhau tương tác hiệu quả, từ đó hỗ trợ việc xử lý dữ liệu và thực hiện các chương trình của người dùng một cách dễ dàng.
SQL là ngôn ngữ có cấu trúc
Trong câu lệnh của SQL có một số mệnh đề tuân theo những cú pháp riêng của nó Có 4 loại lệnh trong SQL:
- Các lệnh truy vấn dữ liệu.
- Các lệnh định nghĩa dữ liệu (DDL)
- Các lệnh xử lý cập nhật dữ liệu (DML)
- Các lệnh kiểm soát dữ liệu
SQL có các kiểu dữ liệu sau:
INTEGER : Kiểu số nguyên 2 byte -2 147 483 648→ 2 147 483 647
SMALLINT : Kiểu số nguyên 1 byte - 32 768→ 32 767.
DECIMAL(n,d) : Kiểu số thực độ dàin (kể cả dấu), số chữ số thập phân d
FLOAT(n,d) : Kiểu số thực khoa học độ dàin, số chữ số thập phân d
CHAR(n) : Kiểu chuỗi ký tự độ dài n
DATE : Kiểu ngày tháng (ngày/tháng/năm)
LOGICAL : Kiểu lôgic, nhận giá trịtrue hoặcfalse
VARCHAR(n) : Kiểu chuỗi ký tự độ dài thay đổi, tối đa n ký tự
LONGVARCHAR : Kiểu chuỗi ký tự độ dài thay đổi (chứa dữ liệu nhưghi chú, )
Và các kiểu khác như: Kiểu tiền tệ, Kiểu hình ảnh, Kiểu âm thanh…
SELECT [DISTINCT] [AS ] [, ] | *
[WHERE [AND | OR ]]
[ORDER BY [ASC | DESC] [, ]]
[UNION | INTERSECT | MINUS < câu truy vấn khác>]
Các thành ph ầ n c ơ b ả n c ủ a câu l ệ nh :
- Biểu thức sau SELECT có thể bao gồm:
Danh sách các cột và biểu thức liên quan từ các bảng hoặc khung nhìn được khai báo sau từ khóa FROM Các biểu thức này được ngăn cách bằng dấu phẩy (,) và có thể được đổi tên thông qua tùy chọn AS .
+ * là ký tự đại diện tất cả các thuộc tính của bảng sau FROM
+ Các hàm tính toán : COUNT, SUM, AVG, MIN, MAX
- Biểu thức sau FROM gồm một hoặc danh sách các bảng quan hệ (có thể đặt bí danh).
- INTO : Lưu bảng kết quả vào đĩa.
- Biểu thức sau WHERE bao gồm :
+ Các thuộc tính của các bảng quan hệ sau FROM
+ Các toán tử số học : +, - , * , /
+ Các toán tử so sánh, có thể so sánh với ANY (giá trị nào đó trong 1 tập hợp) hoặc ALL (tất cả giá trị trong 1 tập hợp)
+ Các toán tử Boolean : AND, OR, NOT
+ Các toán tử tập hợp : UNION (hợp), INTERSECT (giao), MINUS (hiệu).
+ Các quan hệ bao hàm : IN (∈), NOT IN (∉), CONTAINS (chứa), DOES NOT CONTAIN (không chứa)
+ Điều kiện tồn tại : EXISTS (tồn tại), NOT EXIST (không tồn tại)
+ Câu vấn tin con kiểu SELECT FROM WHERE
Tìm thông tin từ các cột của bảng – Mệnh đề Select
Mục tiêu: Trình bày cú pháp, chức năng của mệnh đề Select
SELECT [DISTINCT] [AS ] [, ] | *
Xác định nội dung kết quả gồm các cột liệt kê sau SELECT hoặc tất cả các cột
Từ khoá DISTINCT dùng liệt kê những giá trị duy nhất tránh trùng lặp.
Từ khoá AS dùng đặt bí danh
Cho lược đồ cơ sở dữ liệu khách hàng
HOPDONG(SoHD, TenKH, Hang, SoLuong)
CUNGUNG(Ten, DiaChi, Hang, DonGia)
- Trả về các bản ghi gồm tất cả các cột của bảng CUNGUNG.
- Trả về các bản ghi gồm 2 cột Hang, DonGia của bảng CUNGUNG.
SELECT Hang, DonGia FROM CUNGUNG hoặc
SELECT DISTINCT Hang, DonGia FROM CUNGUNG
- Trả về các bản ghi gồm 1 cột Hang với giá trị duy nhất của bảng CUNGUNG. SELECT DISTINCT Hang
- Có thể cho hiển thị giá trịhằng, chẳng hạn
SELECT “Mặt hàng”, Hang, “có đơn giá là”, DonGiaFROM CUNGUNG
Chọn các dòng của bảng – Mệnh đề Where
Mục tiêu: Trình bày cú pháp, chức năng của mệnh đề Where trong câu lệnh truy vấn Select.
SELECT [DISTINCT] [AS ] [, ] | *
Trả về các bản ghi gồm các cột liệt kê sau SELECT hoặc tất cả các cột lấy từ gồm các bộ thoả mãn .
Ghi chú : Sau WHERE có thể dùng các mệnh đề :
- BETWEEN AND : biểu diễn điều kiện
≤ ≤
- NOT BETWEEN AND : biểu diễn điều kiện < hoặc >
- IN (, , ) : biểu diễn điều kiện
bằng một trong các giá trị , ,
- NOT IN (, , ) : biểu diễn điều kiện
khác các giá trị , ,
- [NOT] LIKE : biểu diễn điều kiện
[không] giống
Trong có thể dùng dấu % (dấu phần trăm) đại diện cho chuỗi ký tự bất kỳ
- _ (dấu nối) đại diện cho một ký tự bất kỳ
- IS [NOT] NULL: biểu diễn điều kiện. giá trị là [khác] NULL
- Trả về các bản ghi gồm các cột Ten, DiaChi có giá trị duy nhất từ bảng CUNGUNG của các nhà cung ứng hoặc Đường hoặc Sữa.
WHERE (Hang = ‘Đường’) OR (Hang = ‘Sữa’) hoặc
WHERE Hang IN (‘Đường’, ‘Sữa’ )
- Trả về các bản ghi gồm các Ten, DiaChi của các khách hàng có SoDu không âm từ bảng KHACH
- Trả về các bản ghi gồm các hợp đồng có SoLuong từ 100 đến 200 từ bảng HOPDONG
- Trả về các bản ghi gồm các nhà cung ứng có tên bắt đầu bằng ‘Cty’ từ bảng CUNGUNG
- Trả về các bản ghi gồm các nhà cung ứng có mặt hàng ‘Bia’ từ bảng CUNGUNG
- Chọn những khách hàng chưa có địa chỉ
SELECT * FROM KHACH WHERE DiaChi IS NULL
- Chọn những khách hàng có số dư xác định :
WHERE SoDu IS NOT NULL
Sắp xếp các dòng của bảng – Mệnh đề Order by
Mục tiêu: Trình bày cú pháp, chức năng của mệnh đề Order by trong câu lệnh truy vấn Select
SELECT [DISTINCT] [AS ] [, ] | *
ORDER BY [ASC | DESC] [, ]
Trả về các bản ghi với các cột được chỉ định trong câu lệnh SELECT hoặc tất cả các cột bằng cách sử dụng dấu từ , và sắp xếp các bộ dữ liệu theo các biểu thức đã chỉ định trong câu lệnh ORDER BY.
ASC : tăng dần (ngầm định)
- Cho biết danh sách khách hàng sắp xếp theo TEN tăng dần :
- Cho biết danh sách các nhà cung ứng ‘Sữa’ sắp xếp theo thứ tự DonGia giảm dần:
- Cho biết danh sách các nhà cung ứng sắp xếp theo thứ tự Ten và Hang :
Câu lệnh truy vấn lồng nhau
Mục tiêu:Trình bày cú pháp, chức năng của câu lệnh truy vấn Select lồng nhau.
SELECT [DISTINCT] [AS ] [, ] / *
[WHERE ]
[ORDER BY [ASC / DESC] [, ]]
Cho phép tạo ra các điều kiện chứa quan hệ tập hợp và số liệu tổng hợp.
Trong quan hệ tập hợp, câu truy vấn con đặt trong ngoặc đơn
Sử d ụ ng các toán t ử so sánh : =,
- Liệt kê các khách hàng có số dư lớn nhất:
WHERE Sodu (SELECT MAX(Sodu) FROM KHACH)
- Liệt kê hãng cung ứng gạo có DonGia