intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Giáo trình Cơ sở dữ liệu (Tập 1): Phần 2 - TS. Nguyễn Thị Thu Thuỷ (Chủ biên)

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:58

30
lượt xem
11
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Giáo trình "Cơ sở dữ liệu (Tập 1)" trình bày các kỹ thuật tổ chức dữ liệu ở dạng mô hình liên kết thực thể, hay mô hình quan hệ, chuẩn hóa mô hình cơ sở dữ liệu quan hệ, cũng như sử dụng các phép toán đại số quan hệ hoặc SQL để truy vấn thông tin từ cơ sở dữ liệu. Giáo trình kết cấu gồm 3 chương và chia thành 2 phần, phần 2 trình bày những nội dung về: ngôn ngữ khai thác cơ sở dữ liệu quan hệ;... Mời các bạn cùng tham khảo!

Chủ đề:
Lưu

Nội dung Text: Giáo trình Cơ sở dữ liệu (Tập 1): Phần 2 - TS. Nguyễn Thị Thu Thuỷ (Chủ biên)

  1. Chương 3 NGÔN NGỮ KHAI THẤC CSDL QUAN HỆ Chương này trình bày khái quát những kiến thức cơ bản về các ngôn ngữ cho phép định nghĩa các đối tượng của một cơ sở dữ liệu và biểu diễn các yêu cầu trên cơ sở dữ liệu đó mà một hệ quàn trị cơ sở dữ liệu có thể hỗ trợ. Cụ thể, chúng ta sẽ đi tìm hiểu hai ngôn ngữ khai thác cơ sở dữ liệu quan hệ đó là đại số quan hệ và ngôn ngữ truy vấn có cấu trúc SQL. 3.1. Các phép toán quan hệ Ngôn ngữ đại số quan hệ là cơ sở quan trọng của một ngôn ngữ bậc cao được sử dụng để thao tác ữên các quan hệ. Với dữ liệu được lưu trữ là những quan hệ nào đó, có thể sử dụng các phép toán của đại số quan hệ để tạo ra các quan hệ mới, quan hệ mới này là thông tin được hiển thị ra theo yêu cầu của người dùng. Đại số quan hệ là loại ngôn ngữ thủ tục, bao gồm tập hợp các phép toán được áp dụng trên các thể hiện cùa quan hệ. Kết quả trả về của một câu truy vấn là một thể hiện của quan hệ. Chuỗi các phép toán đại sổ quan hệ hình thành nên biểu thức đại số quan hệ (câu truy vấn) mà kết quả của nó cũng trà về một thể hiện của quan hệ. Đối với ngôn ngữ này, mỗi câu hỏi được biểu diễn thông qua việc áp dụng một tập hợp các phép toán đặc biệt đối với các quan hệ. Các phép toán của đại số quan hệ thường được chia thành ba nhóm. Nhóm thứ nhất gồm các phép toán tập hợp (phép hợp, phép giao, phép trừ và phép tích Đề-các). Nhóm thứ hai gồm các phép toán đặc biệt trên quan hệ (phép chọn, phép chiếu, phép chia, phép kết nối và phép đặt lại tên). Nhóm thứ ba gồm các phép toán quan hệ bổ sung (các hàm kết tập và các phép gộp nhóm). 125
  2. 3.1.1. Các phép toán tập hợp Một quan hệ là một tập hợp các n-bộ được tạo ra với n là số ngôi hay bậc cố định của một quan hệ. Trong lý thuyết tập hợp, nhóm các phép toán tập hợp bao gồm phép hợp, phép giao, phép trừ, và phép tích Đề-các của hai tập hợp là những phép toán hai ngôi. Khi sử dụng các phép toán này trong các cơ sở dữ liệu quan hệ cần phải có các điều kiện đảm bảo ràng quan hệ kết quả cùa các phép toán cũng phải là một quan hệ hợp lệ. Điều kiện này gọi là điều kiện khả hợp. Định nghĩa 3.1: Cho hai lược đồ quan hệ R(A1, A2,..., An) và S(B1, B2, ..., Bm) là khả hợp nếu chúng cùng bậc (có nghĩa là n=m) và có cùng miền giá trị DOM(Aj) = DOM(Bj), 1< i < n. Định nghĩa 3.2: Cho r và s là hai quan hệ. Khi đó, r và s được gọi là khả hợp nếu chúng được xác định ưên cùng tập thuộc tính và các thuộc tính cùng tên có cùng miền giá trị. Ví dụ 3.1: Cho 2 quan hệ NHANVIEN và THANNHAN với các thể hiện: NHAN.VIEN TENNV NGSINH GT Tung 12/08/1955 Nam Hang 07/19/1968 Nu Nhu 06/20/1951 Nu Hung 09/15/1962 Nam THAN NHAN TENTN NG SINH GTTN Trinh 04/05/1986 Nu Khang 10/25/1983 Nam Phuong 05/03/1958 Nu Minh 02/28/1942 Nam Chau 12/30/1988 Nu 126
  3. Khi đó ta có: - Bậc của hai quan hệ: n=3; - Miền giá tri của các thuộc tính: o DOM(TENNV) = DOM(TENTN) o DOM(NGSINH) = DOM(NG_SINH) o DOM(GT) = DOM(GTTN) Vì vậy hai quan hệ đã cho là khả hợp. • Phép hợp Cho 2 quan hệ r và s khả hợp. Khi đó, phép hợp cùa r và s là một quan hệ gồm tập tất cả các bộ thuộc r hoặc thuộc s, hoặc cả hai (các bộ trùng lặp sẽ bị bỏ) và được ký hiệu là r u s. Biểu diễn hình thức của phép này có dạng: r u s = { 11 ter V tes} Ví dụ 3.2: Cho 2 quan hệ NHACC và KHACHHANG với các thể hiện: NHACC lliỉỉẨ >55? Lan Hà Nội Hà Bắc Ninh Oanh Thanh Hóa Tùng Nam Định Mận Bắc Giang Lê Hải Dương KỐACHHANG Tùng Nam Định Lâm Hải Phòng Lan Hà Nội Đào Phú Thọ 127
  4. Khi đó, phép hợp của 2 quan hệ NHACC và KHACHHANG được biểu diễn và có kết quả như sau: NHACC u KHACHHANG 'UõdỊỈ-' Lan Hà Nội Hà Bắc Ninh Oanh Thanh Hóa Tùng Nam Định Mận Bắc Giang Lê Hải Dương Lâm Hài Phòng Đào Phú Thọ • Phép giao Cho 2 quan hệ r và s khả hợp. Khi đó, phép giao của r và s là một quan hệ gồm tập tất cả các bộ thuộc cà hai quan hệ r và s và được ký hiệu làrn s. Biểu diễn hình thức của phép này có dạng: rn s = { 11 ter A tes) Ví dụ 3.3: Cho 2 quan hệ NHACC và KHACHHANG với các thể hiện như ví dụ 3.2. Khi đó, phép giao của 2 quan hệ NHACC và KHACHHANG được biểu diễn và có kết quả như sau: NHACC n KHACHHANG "Ten Diaẹhi Lan Hà Nội Tùng Nam Định • Phép trừ Cho 2 quan hệ r và s khả hợp. Khi đó, phép trừ của r và s là một quan hệ gồm tập tất cả các bộ thuộc r nhưng không thuộc s và được ký hiệu là r - s. 128
  5. Biểu diễn hình thức của phép này có dạng: r - s = {11 ter A tỂs} Ví dụ 3.4: Cho 2 quan hệ NHACC và KHACHHANG với các thể hiện như ví dụ 3.2. Khi đó, phép trừ của 2 quan hệ NHACC và KHACHHANG được biểu diễn và có kết quà như sau: NHACC -KHACHHANG‘ iHKii Hà Bắc Ninh Oanh Thanh Hóa Mận Bắc Giang Lê Hải Dương KHACHHANG - NHACC SIB Lâm Hải Phòng Đào Phú Thọ Một số các tính chất trong quan hệ tập họp: - Tính chất giao hoán: rus=sur rns=snr - Tỉnh chất kết hợp: r u (s u t) = (r u s) u t r n (s n t) = (r n s) n t • Phép tích Đề - các Được dùng để kết hợp các bộ của các quan hệ lại với nhau. Cho lược đồ quan hệ R, s tương ứng xác định frên tập thuộc tính 129
  6. {A],A2,...,An} và {Bl,Bĩ, —, Bm) và r và s là hai quan hệ thuộc hai lược đồ R và s tương ứng. Khi đó phép tích Đề - các cùa 2 quan hệ r và s là một quan hệ gồm tập tất cả các (m+n) - bộ có n thành phần đầu tiên là một bộ thuộc r và m thành phần sau là một bộ thuộc s và được ký hiệu là rx s. Biểu diễn hình thức của phép này có dạng: r X s = {t I t=(ai,..an,b1,..bni) A (ab..an) e r A (b15..bm) e s} Kết quà trả về là một quan hệ q. Mỗi bộ của q là tổ hơp giữa 1 bộ trong r và 1 bộ trong s: - Nếu r có u bộ và s có V bộ thì q sẽ có U X V bộ - Nếu r có n thuộc tính và s có m thuộc tính thì q sẽ có n + m thuộc tính (r+ n s+* 0 ) Ví dụ 3.5: Cho 2 quan hệ NHACC và HANGHOA với các thể hiện như sau. NHACC > '■ MaNÇC ; Ten 100 Lan 101 Hà 102 Oanh 103 Tùng HANGIĨOA MaHH TV01 Ti vi LCD MG01 Máy giặt TL01 Tủ lạnh Khi đó, tích Đề-các của 2 quan hệ NHACC và HANGHOA được biểu diễn và có kết quả như dưới đây: 130
  7. NHACC X HANGHOA MaNCC Ten MaHH TenHH 100 Lan TV01 Ti vi LCD 100 Lan MG01 Máy giặt 100 Lan TL01 Tủ lạnh 101 Hà TV01 Ti vi LCD 101 Hà MG01 Máy giặt 101 Hà TL01 Tủ lạnh 102 Oanh TV01 Ti vi LCD 102 Oanh MG01 Máy giặt 102 Oanh TL01 Tủ lạnh 103 Tùng TV01 Ti vi LCD 103 Tùng MG01 Máy giặt 103 Tùng TL01 Tủ lạnh • Phép chia Cho lược đồ quan hệ R, s tương ứng xác định trên tập thuộc tính {Ab A2,..., Am, Am+b...An) và {Ab A2, Am}, r và s là hai quan hệ thuộc hai lược đồ R và s tương ứng. Khi đó phép chia 2 quan hệ r và s là một quan hệ gồm tập tất cả các (n-m) - bộ sao cho mỗi bộ này khi được ghép với một bộ bất kỳ ưong quan hệ s thì sẽ cho một bộ trong quan hệ r và được ký hiệu là r -ỉ- s. Biểu diễn hình thức của phép này có dạng: r -5- s={t I t=(am+b..an): V (a^.a™) e s, (aba2,....,am,am+b...an) e r} Ví dụ 3.6: Cho 2 quan hệ CUNGCAP và HANGHOA với các thể hiện như sau. 131
  8. CUNGCAP MaNCÇ MaHH ¿ MaHH 100 TVOI TV01 101 TVOI MG01 101 MGOl TL01 102 TV01 100 TL01 103 MG01 102 MG01 100 MG01 102 TL01 103 TV01 Khi đó, tích phép chia của quan hệ CUNGCAP cho quan hệ HANGHOA được biểu diễn và có kết quà như dưới đây: CUÑGCAP + HÀNGHOA MaNCC 100 102 3.1.2. Các phép toán đặc biệt trên quan hệ Các phép toán đặc biệt trên quan hệ bao gồm các phép toán liên quan chặt chẽ đến các thao tác cơ bàn làm thay đổi quan hệ (như các thao tác thêm, sửa, xóa các bộ giá trị trong một quan hệ). Các phép toán này là một cách tiếp cận khác trong việc biểu diễn câu truy vấn của ngôn ngữ đại số quan hệ. • Phép chọn Phép chọn được dùng để lọc ra một tập con các bộ của quan hệ đã cho thỏa mãn một điều kiện xác định. Điều kiện đó được gọi là điều kiện chọn hay biểu thức chọn. 132
  9. Biểu thức chọn F được biểu diễn bởi một biểu thức logic bao gồm các toán hạng, mỗi toán hạng là một phép so sánh đơn giản giữa hai biến là hai thuộc tính hoặc giữa một biến là một thuộc tính và một biến là giá trị hằng. Biểu thức chọn F cho giá trị là đúng hoặc sai (TRUE hoặc FALSE) đối với mỗi bộ đã kiểm ứa. Như vậy, điều kiện chọn F là một biểu thức logic gồm các mệnh đề có dạng: - - Các phép so sánh trong điều kiện chọn F là , , = Các mệnh đề được nối lại nhờ các phép logic A (và), V (hoặc), -I (phủ định). Cho r là một quan hệ và F là một biểu thức logic trên các thuộc tính của r. Phép chọn trên quan hệ r các bộ thỏa mãn điều kiện chọn F, kỉ hiệu là ơf(r) là tập tất cả các bộ của r thỏa mãn F. Biểu diễn hình thức của phép này có dạng: ơF(r) = {11 ter A F(t) = TRUE} Ví dụ 3.7: Cho quan hệ HANGHOA với các thể hiện như sau. HANGHOA MailH XpTenHH,. .Trongluong TV01 Ti vi LCD Đen 2.5 MG01 Máy giặt Xám 7 TL01 Tủ lạnh Xanh 10 TV02 Ti vi LCD Xám 3.5 MG02 Máy giặt Trắng 8 Khi đó, yêu cầu 1: Đưa ra thông tin về các mặt hàng có màu xám được biểu diễn và có kết quả như dưới đây: 133
  10. ƠMausac= “Xám” (HANGHOA) MaHH Mausac Trongluoog MG01 Máy giặt Xám 7 TV02 Ti vỉ LCD Xám 3.5 Yêu cầu 2: Đưa ra thông tin về các mặt hàng có màu xám hoặc trọng lượng nhỏ hơn 5 kg được biểu diễn và có kết quả như dưới đây: ■ 1 -Z. ' ' ^(Mausac^Xám^^^rongluong^ỉCHANGHOA) TeriHH Mausac Trohgluong MG01 Máy giặt Xám 7 TL01 Tủ lạnh Xanh 10 TV02 Ti vi LCD Xám 3.5 MG02 Máy giặt Trắng 8 Chú ý: - Kết quả trả về của phép chọn là một quan hệ có cùng danh sách thuộc tính với r và có số bộ luôn ít hơn hoặc bằng số bộ của r. - Phép chọn có tính chất giao hoán: ơ F1 (ơ F2 (r)) = ơ F2 (ơ F1 (r)) = ơ F1 A F2 (r). • Phép chiếu Phép chiểu một quan hệ trên một tập các thuộc tỉnh của quan hệ đó thực chất là phép toán dùng để xây dựng một quan hệ mới bằng cách loại bỏ đi một sổ thuộc tính và chỉ giữ lại những thuộc tỉnh còn lại của quan hệ đó. Cho r là một quan hệ n ngôi xác định trên tập thuộc tính U={Ai,A2, và một tập con thuộc tínhXcU. Phép chỉếu của quan hệ r trên tập thuộc tính X được ký hiệu là Iĩx(R, là một quan hệ gồm tập tất cả các bộ của r xác định trên tập thuộc tỉnh X). Biểu diễn hình thức của phép này có dạng: nx(r)={t[X] I ter} 134
  11. Ví dụ 3.8: Cho quan hệ HANGHOA với các thể hiện như sau: HANGHOA MaHH . .Maùsac • ;,;'í Trongluong, TV01 Ti vi LCD Đen 2.5 MG01 Máy giặt Xám 7 TL01 Tủ lạnh Xanh 10 TV02 Ti vi LCD Xám 3.5 MG02 Máy giặt Trắng 8 Khi đó, yêu cầu đưa ra thông tin về mã hàng, tên hàng của các mặt hàng sẽ được biểu diễn và có kết quả như sau: nMarai,TenHH (HẤNGHốẨ)^ TV01 Ti vi LCD MG01 Máy giặt TL01 Tủ lạnh TV02 Ti vi LCD MG02 Máy giặt Yêu cầu 2: Đưa ra thông tin về mã hàng, màu sắc của những hàng hóa có trọng lượng lớn hơn 7 kg được biểu diễn và có kết quà như dưới đây: n^aHH, Mausac(ƠTrongluong>7 (BÌẰNGHỮẤ)^ * ỊỊSS TL01 Xanh MG02 Trắng Phép chiếu tổng quát là sự mở rộng phép chiếu bằng cách cho phép sử dụng các phép toán sổ học trong danh sách thuộc tỉnh, và được kí hiệu.là nFI F2'Fn (E) trong đó: - E là biểu thức đại sổ quan hệ; 135
  12. - Fl, F2,...,Fn là các biểu thức số học liên quan đến hằng số hoặc các thuộc tính trong E. Ví dụ 3.9: Cho quan hệ THETINDUNG (Mathe, trigiathe, SotienSD) Yêu cầu: Hãy cho biết số tiền còn lại trong mỗi thẻ? Khi đó ta có câu truy vấn: n Mathe, trigiathe - SotienSD (THETINDƯNG) Chú ý: - Kết quả trả về của phép chiếu là một quan hệ có danh sách thuộc tính thuộc tập X và có số bộ luôn ít hơn hoặc bằng số bộ của r. - Phép chiếu không có tính chất giao hoán: nx,Y(r) n * x(nY(r)). • Phép kết nối Phép kết nối được dùng để tổ hợp hai bộ có liên quan từ hai quan hệ thành một bộ mới trong một quan hệ mới. Khái niệm “ghép bộ”: giả sử cho hai bộ u =(ai, a2,..., a„) và V =(bi, b2, bm), phép ghép bộ u với bộ V được kí hiệu là (u,v) được định nghĩa như sau: (u,v)= (ab a2,..., an,bb b2,bm). Phép kết nổi hai quan hệ thực chất là phép ghép các cặp bộ của hai quan hệ thỏa mãn một điều kiện nào đó trên chúng. Điều kiện đó được gọi là điều kiện kết nối hay biểu thức kết nổi. Cho quan hệ r xác định trên tập thuộc tính (Aị, A2, .... A„), s là quan hệ xác định trên tập thuộc tỉnh (Bj, B2, ..., Bn), và 6 là một trong các phép so sảnh * ,=,, Kết quả của phép kết nổi 0 quan hệ r với quan hệ s theo điều kiện Ai ỡ Bj và được kí hiệu r [>
  13. Tất nhiên ở đây cần giả thiết rằng các phép so sánh của các cặp thuộc tính của hai quan hệ là có nghĩa, tức là mỗi giá trị thuộc Dom(Ai) có thể so sánh được với mỗi giá trị thuộc Dom(Bj) qua phép so sánh 0. Ta có thể sử dụng kí hiệu r [>
  14. NHACC lI KBACHHANG TenNCOTenKH ■ „ ' . , ;■ MaNCC TenNCC DiachiNCC PịạchiKH 100 Lan Hà Nội Tùng Nam Định 100 Lan Hà Nội Đào Phú Thọ 101 Hà Bắc Ninh Tùng Nam Định 101 Hà Bắc Ninh Lan Hà Nội 101 Hà Bắc Ninh Đào Phú Thọ 102 Oanh Thanh Hóa Tùng Nam Định 102 Oanh Thanh Hóa Lan Hà Nội 102 Oanh Thanh Hóa Đào Phú Thọ 103 Tùng Nam Định Lan Hà Nội 103 Tùng Nam Định Đào Phú Thọ Truy vấn 2: Đưa ra thông tin về các nhà cung cấp đã cung ứng các mặt hàng NHACC * CUNGCAP liii MạỉỊB 100 Lan Hà Nội TV01 101 Hà Bắc Ninh MG01 102 Oanh Thanh Hóa TV01 100 Lan Hà Nội TL01 102 Oanh Thanh Hóa MG01 • Phép đặt lại tên Để có được quan hệ kết quả, chúng ta có thể phải áp dụng nhiều phép toán quan hệ liên kết trên nhiều quan hệ khác nhau dẫn đến biểu thức đại số quan hệ được viết rất dài. Trong những trường hợp như vậy, ta có thể viết một biểu thức đại số quan hệ mà các phép toán có thể xếp lồng với nhau. Cách viết biểu thức này có thể đon giản hon bằng cách sử 138
  15. dụng những quan hệ kết quà trung gian tương ứng với mỗi phép toán tại một thòi điểm và tạo ra các quan hệ là các kết quả trung gian đó. Những quan hệ trung gian như vậy ẹần phải được đặt tên. Ví dụ 3.11: Đưa ra thông tin về Mã nhà cung cấp, tên nhà cung cấp đã cung ứng mặt hàng MG01. Khi đó ta có thể viết theo các cách như sau: Không dùng quan hệ trung gian: ri-MaNCC, TenNCc(^MaHH=“MG01” (NHACC * CUNGCAP)) Dùng quan hệ trung gian: TG
  16. 3.1.3. Các phép toán quan hệ bổ sung Trong ngôn ngữ đại số quan hệ nếu chỉ sử dụng các phép toán cơ bản ở trên thì có nhiều truy vấn cơ sở dữ liệu sẽ không thực hiện được. Vì vậy, ưong các hệ quản trị cơ sở dữ liệu thì hầu hết các ngôn ngữ thao tác dữ liệu đã có những phép toán quan hệ bổ sung để thực hiện được những truy vấn như vậy. Các phép toán quan hệ bổ sung thường dùng là các hàm kết tập và các phép gộp nhóm. Các phép toán này làm tăng cường sức mạnh khai thác cơ sở dữ liệu của đại số quan hệ. - Các hàm kết tập: Kiểu truy vấn đầu tiên không thể biểu diễn được trong đại số quan hệ là các truy vấn mô tà bằng các hàm toán học có tính chất kết hợp trên một tập hợp các giá trị của cơ sờ dữ liệu. Ví dụ như các yêu cầu được truy vấn là “cho biết tổng doanh thu đã bán?” hay “thống kê tổng số lượng hàng hóa đã được bán?” hoặc “cho biết giá cả trung bình của các mặt hàng được bán?”,... Mỗi hàm kết tập nhận vào tập hợp các giá trị và trả về một giá trị đơn. Các hàm hay áp dụng để thu thập các giá trị số đó là: o Hàm tính tổng (SUM) o Hàm tính trung bình cộng (AVERAGE) o Hàm tính giá trị lớn nhất (MAX) o Hàm tính giá trị nhỏ nhất (MIN) o Hàm đếm các bộ giá trị (COUNT) Ví dụ 3.13: Cho quan hệ CUNGCAP với các thể hiện: címgW OK mổ® SqIuódjj 100 TVOI 10 101 MGOl 20 102 TV01 15 100 TL01 30 102 MG01 25 140
  17. Với truy vấn đưa ra tổng số hàng hóa đã được bán, ta có truy vấn: SUM(Soluong) -> kết quả là 100. Chú ý: Kết quả trà về của việc áp dụng một hàm kết tập đó là một quan hệ. Các bộ trùng lặp trong mỗi nhóm không bị loại bỏ khỏi nhóm khi thực hiện một hàm kết tập. - Các phép gộp nhóm'. Một kiểu truy vấn hay dùng khác cũng không thực hiện được trong đại số quan hệ với các phép toán cơ bản ở trên là yêu cầu nhóm các bộ trong một quan hệ theo một giá trị của một số các thuộc tính của chúng và sau đó áp dụng các hàm nhóm một cách độc lập cho từng nhóm. Ví dụ, nhóm các bộ của quan hệ CUNGCAP theo MaNCC như vậy mỗi nhóm bao gồm các mặt hàng đã được cung cấp bởi mỗi nhà cung cấp. Sau đó chúng ta có thể đưa ra thông tin: Đối với mỗi nhà cung cấp đã cung ứng bao nhiêu loại mặt hàng với tổng sổ lượng các mặt hàng đã cung ứng. Ta có thể định nghĩa một phép gộp nhóm như sau: 3 (r) Trong đó: o 3 là kí hiệu của phép toán gộp nhóm o là danh sách các thuộc tính của quan hệ r; o là danh sách các cặp hàm (). Ví dụ 3.14: Cho quan hệ CUNGCAP với các thể hiện như trong ví dụ 3.12. Yêu cầu truy vấn: Thống kê số mặt hàng cùng với số lượng các hàng hóa đã được cung ứng. Ta có truy vấn: 3c0UNT(MaHH), suM(Soiuong) (CUNGCAP) 141
  18. Quan hệ kết quả là: COUNT(MaHH) SUM(Soluong) 03 100 J Yêu càu truy vấn: Với mỗi nhà cung cấp hãy thống kê số mặt hàng cùng với số lượng các hàng hóa đã được cung ứng Ta có truy vấn: MaNCC3 couNT(MaHH), suM(Soiuong) (CUNGCAP) Quan hệ kết quả là: MaNCC COUNT(MaHH) SUM(Soluong) 100 02 40 101 01 20 102 02 40 3.2. Ngôn ngữ SQL SQL (Structured Query Language) là một ngôn ngữ máy tính dùng để tạo, chỉnh sửa, và truy vấn dữ liệu từ một hệ quàn trị cơ sở dữ liệu quan hệ. Ngôn ngữ SQL xuất phát từ bài báo “Mô hình quan hệ cho dữ liệu dùng trong ngân hàng dữ liệu dùng chung có khối lượng lớn” của tiến sĩ Edgar F. Codd, 1970, và mô hình này sau đó đã được chấp nhận rộng rãi là mô hình tiêu chuẩn dùng cho hệ thống quàn lý cơ sở dữ liệu quan hệ. Giữa những năm 1970, một nhóm các nhà phát triển thuộc trung tâm nghiên cứu của IBM dựa trên mô hình của tiến sT Edgar F. Codd đã phát triển một hệ thống quàn lý và truy vấn cơ sở dữ liệu được đặt t'ên là Structured English Query Language, viết tắt là “SEQUEL”. Sau này, tên viết tắt SEQUEL được rút gọn thành SQL. Mặc dù SQL bị ảnh hưởng bởi công trình của tiến sĩ Codd nhưng nó không do tiến sĩ Codd thiết kế mà được thiết kế bởi Donald D. Chamberlin và Raymond F. Boyce tại IBM. 142
  19. Năm 1986, SQL được thừa nhận là tiêu chuẩn của ANSI (American National Standards Institute) và được ISO (International Organization for Standardization) thừa nhận một năm sau đó, năm 1987. Tiêu chuẩn SQL đã trải qua một số phiên bản: SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003, SQL:2008, SQL:2011. 3.2.1. Tổng quan về ngôn ngữ SQL Bất kỳ một ngôn ngữ xây dựng và khai thác cơ sở dữ liệu quan hệ nào phải cho phép người dùng thực hiện các công việc sau: - Tạo một cơ sở dữ liệu và cấu trúc các quan hệ. - Thực hiện các thao tác quản lý dữ liệu cơ bản, như thêm mới, hiệu chỉnh và xóa dữ liệu thuộc một quan hệ nào đó. - Thực hiện các truy vấn đơn giản và phức tạp. SQL giúp cho người dùng thực hiện các nhiệm vụ trên một cách dễ dàng, với các cấu trúc và cú pháp lệnh đơn giản dễ học. SQL cũng là một ngôn ngữ có tính dịch chuyển cao, do ngôn ngữ tuân theo những chuẩn đã được xác định nên người dùng có thể sử dụng cùng một cấu trúc và cú pháp lệnh khi họ chuyển từ một hệ quản trị cơ sở dữ liệu này sang một hệ quản trị cơ sở dữ liệu khác. SQL là một “ngôn ngữ hướng chuyển đổi” (transform - oriented language), ngôn ngữ được thiết kế để sử dụng các quan hệ trong việc chuyển đổi các đầu vào thành các đầu ra yêu cầu. Theo chuẩn ISO, ngôn ngữ SQL có hai thành phần chính: - Thành phần ngôn ngữ định nghĩa dữ liệu (Data Definition Language - DDL) dùng để định nghĩa các cấu trúc cơ sở dữ liệu và quản lý các truy cập đến dữ liệu. Chi tiết về thành phần DDL sẽ được trình bày ở phần 3.2.3. - Thành phần ngôn ngữ quản trị dữ liệu (Data Manipulation Language - DML) dùng để truy vấn và cập nhật dữ liệu. Chi tiết về thành phần DML sẽ được trình bày ở phần 3.2.4 và 3.2.5. 143
  20. Cho đến phiên bản SQL: 1999, ngôn ngữ SQL chi bao gồm các lệnh định nghĩa và quàn trị dữ liệu mà không bao gồm các câu lệnh điều khiển luồng công việc như IF ... THEN ... ELSE, GO TO, hay While. Những câu lệnh này được càỉ đặt bằng các ngôn ngữ lập trình hay ngôn ngữ quản lý công việc, hoặc được người dùng quyết định thông qua các tương tác trực tiếp. Do sự thiếu hụt này, SQL có thể được sử dụng theo 2 cách. Cách thứ nhất là dùng SQL cùng với các chỉ thị được thêm vào tại thiết bị đầu cuối hoặc cách thứ hai là nhúng SQL vào một ngôn ngữ lập trình nào đó (cách này được sử dụng rộng rãi trong việc xây dựng các hệ thống thông tin trong doanh nghiệp). Ngôn ngữ SQL là một ngôn ngữ dễ học: - SQL là ngôn ngữ không hướng thủ tục: người dùng sẽ chỉ rõ đâu là thông tin họ cần, mà không cần chì ra làm cách nào để có được thông tin đó. Nói cách khác, SQL không yêu cầu người dùng chi rõ phương thức truy cập dữ liệu một cách tường minh. Do chi cần xác định yêu cầu thông tin nên ngôn ngữ SQL trở nên đơn giản với người học. - Giống hàu hết các ngôn ngữ hiện đại khác, SQL là ngôn ngữ không có định dạng, có nghĩa là các phần khác nhau của một chi thị không cần phải đặt tại một vị trí cụ thể frên màn hình. - Cấu trúc các câu lệnh bao gồm những từ tiếng Anh đơn giản như CREATE TABLE, INSERT, UPDATE, SELECT .v.v... - SQL có thể sừ dụng bởi nhiều đối tượng người dùng, như người quản trị cơ sở dữ liệu (DBA), người quàn lý, người phát triển ứng dụng, và rất nhiều kiểu người dùng khác. Trong ngôn ngữ SQL không sử dụng các khái niệm quan hệ, thuộc tính và các thể hiện như đã định nghĩa ưong phần đại số quan hệ mà thay vào đó SQL sử dụng các khái niệm bàng, cột và hàng. Một bảng tương đương với một quan hệ, một cột tương đương với một thuộc tính và một hàng tương đương với một thể hiện. Cũng nên chú ý răng, SQL không tuyệt đối tuân theo định nghĩa của mô hình quan hệ được miêu tả ở 144
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
17=>2