Bai giang csdl
Chia sẻ bởi Nguyễn Phi |
Ngày 29/04/2019 |
65
Chia sẻ tài liệu: bai giang csdl thuộc Bài giảng khác
Nội dung tài liệu:
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
CƠ SỞ DỮ LIỆU
Bài giảng học phần
Giảng viên chính: ThS CÁP XUÂN TUẤN
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Nội dung học phần
Giảng viên chính: ThS CÁP XUÂN TUẤN
Chương 1: CÁC KHÁI NIỆM CƠ BẢN VỀ CƠ SỞ DỮ LIỆU
Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU
Chương 3: THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
2. Ngôn ngữ hỏi có cấu trúc SQL
. Tóm tắt chương 2
. Câu hỏi ôn tập chương 2
. Bài tập
Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.1. Khái niệm cơ bản
1.2. Các phép tính trên quan hệ
1.3. Đại số quan hệ
Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.1. Khái niệm cơ bản
Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU
Một cách giải thích rất trực quan cho mô hình dữ liệu quan hệ là các dữ liệu của bài toán quản lí được tổ chức dưới dạng các bảng dữ liệu. Quan sát một bảng dữ liệu ta thấy nó được tổ chức theo hàng và cột, cột biểu thị một thuộc tính thông tin cần quản lý của một đối tượng, thuộc tính này có tên gọi (tiêu đề cột) và các giá trị thuộc tính trong cột đó có cùng một kiểu giá trị. Tập hợp tất cả các giá trị thuộc tính trên một hàng là dữ liệu về một đối tượng đang được quản lí.
Giả sử ta có tập n thuộc tính về một CSDL được kí hiệu là tập R={A1, A2,…An}, mỗi thuộc tính Ai i = 1,…, n có một miền giá trị Dom (Ai).
Quan hệ trên tập thuộc tính R là một tập con của tích Đề các các miền giá trị Dom (Ai).
r ⊆ Dom (A1) x Dom (A2) x… x Dom (An)
Như vậy mỗi phần tử của quan hệ r là một bộ t = (t1, t2, …, tn) với ti ∈ Dom (Ai).
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.1. Khái niệm cơ bản
Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU
Ví dụ 2.1:
R = {A, B} , Dom (A) = {a1, a2}, Dom (B) = {b1, b2, b3 }
Tập r1 = {(a1, b1), (a2, b2)} , r2 = { (a1, b1), (a1, b2), (a1, b3)}
Continue
{A B}
r1
{A B}
r2
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.1. Khái niệm cơ bản
Ví dụ 2.2:
R = {SốBD, Họ, Đệm, Tên, Giới tính}
Dom (SốBD) = {SP1, SP2, SP3,… } tập hợp kí hiệu mã số cho người.
Dom (Họ) = {Nguyễn, Trần, Lê, Đỗ, …} tập hợp họ của người Việt Nam.
Dom (Đệm) = { Văn, Thị,… } tập họ đệm của người Việt Nam
Dom (Tên) là tập hợp các người Việt Nam
Dom (Giới tính) = { Nam, Nữ}
Tập hợp sau là một quan hệ trên tập thuộc tính R:
r = { (SP1, Trần, Văn, A, Nam), (SP2, Lê, Thị, B, Nữ), (SP3, Trần, Văn, A, Nam)}
Continue
{SốBD Họ Đệm Tên Giới tính}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.1. Khái niệm cơ bản
Ví dụ 2.3:
P = {SốBD, Điểm}
Dom (SốBD) = {SP1, SP2, SP3,…} tập hợp mã số cho người thi
Dom (Điểm) tập giá trị thập phân trong đoạn từ 0 đến 10 là điểm thi.
Tập hợp sau là một quan hệ trên tập thuộc tính P:
q = {(SP1, 6), (SP2, 9), (SP3, 8)}
Continue
q {SốBD Điểm}
Trong một quan hệ thường có một thuộc tính hoặc một tập hợp con thuộc tính khoá, khoá đảm bảo rằng không có cặp bộ nào trong quan hệ hoà toàn giống nhau. Chẳng hạn trong ví dụ có thuộc tính SốBD là thuộc tính khoá, nếu không có thuộc tính này thì trong quan hệ được mô tả có hai bộ có giá trị giống hệt nhau tuy rằng đó là thông tin về hai đối tượng khác nhau.
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.1. Khái niệm cơ bản
Nếu trong một CSDL có nhiều hơn một quan hệ, chẳng hạn các quan hệ được mô tả trong ví dụ 2.2 và ví dụ 2.3 là hai quan hệ trong cùng một CSDL quản lí một kì thi, thì các bộ trong quan hệ đó phải liên quan đến nhau, khi đó để xác định sự liên quan dữ liệu mỗi quan hệ phải có một khoá kết nối. Thuộc tính SốBD chính khoá kết nối của quan hệ r và quan hệ q, khoá này cho phép liên kết bằng hai bộ thuộc hai quan hệ nếu giá trị của khoá kết nối là bằng nhau. Mô hình kết nối như sau:
q {SốBD Điểm}
r {SốBD Họ Đệm Tên Giới tính}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.2. Các phép tính trên quan hệ
Có ba phép tính cơ bản trên một quan hệ: Phép thêm bộ, Phép xoá bộ, Phép cập nhật giá trị trong bộ; nhờ ba phép tính này mà một quan hệ được biến đổi. Trong các hệ quản trị CSDL khác nhau các phép tính ở này được biểu diễn khác nhau, biểu diễn của các phép tính ở dưới đây chỉ có tính hình thức. Giả sử ta có quan hệ r trên tập thuộc tính {A1, A2, …, An} khoá của quan hệ là thuôc tính Ak.
.Phép thêm bộ
.Phép xoá bộ
.Phép cập nhật
Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.2. Các phép tính trên quan hệ
.Phép thêm bộ
Phép tính này bổ sung một bộ vào một quan hệ. Ta kí hiệu phép thêm bộ là Insert (r; A1 = a1, A2 = a2, … , An = an) hoặc nếu coi thứ tự thuộc tính là cố định thì ta có thể viết Insert (r; a1, a2, …, an), kết quả là một bộ (a1, a2, …, an) được bổ sung vào quan hệ.
Ví dụ 2.4:
Ta có quan hệ r như sau:
r { SốBD Họ Đệm Tên Giới tính}
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.2. Các phép tính trên quan hệ
.Phép thêm bộ
Sau khi thực hiện phép toán Insert (r; SốBD = SP4, Họ = Nguyễn, Đệm = Văn, Tên = C, Giới tính = Nam) ta có quan hệ r đã được biến đổi thành:
r { SốBD Họ Đệm Tên Giới tính}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.2. Các phép tính trên quan hệ
.Phép xoá bộ
Phép tính này xoá đi một bộ đã có trong quan hệ. Ta kí hiệu phép xoá bộ là Delete (r; A1 = a1, A2 = a2, … An = an) hoặc nếu coi thứ tự thuộc tính là cố định thì ta có thể viết Delete (r; a1, a2, …, an), hoặc nếu có thuộc tính khoá Ak thì có thể viết Delete (r; Ak =ak ) với ak là giá trị khoá của bộ muốn xoá.
Ví dụ 2.5 :
Ta có quan hệ r như sau:
r { SốBD Họ Đệm Tên Giới tính}
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.2. Các phép tính trên quan hệ
.Phép xoá bộ
Sau khi thực hiện phép toán Delete (r; SốBD = SP2, Họ = Lê, Đệm = Thị, Tên = B, Giới tính = Nữ) hoặc Delete (r; SốBD = SP2) ta có quan hệ r đã được biến đổi thành:
r { SốBD Họ Đệm Tên Giới tính}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.2. Các phép tính trên quan hệ
.Phép cập nhật
Phép tính này cho phép thay đổi một giá trị thuộc tính trong một bộ của một quan hệ. Ta kí hiệu phép cập nhật là Update (r; A1 = a1, A2 = a2, … An = an ; Ak1 = ek1, Ak2 = ek2, … Akm = ekm) hoặc chỉ định bộ sẽ được thay đổi theo khóa Update (r; Ak = ak, ; Ak1 = ek1, Ak2 = ek2, … Akm = ekm) trong đó Ak1,…,Akm là thuộc tính tại đó giá trị sẽ được thay đổi bằng các giá trị ek1,…,ekm.
Ví dụ 2.6 :
Ta có quan hệ r như sau:
r { SốBD Họ Đệm Tên Giới tính}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.3. Đại số quan hệ
Hai quan hệ r1 và r2 được gọi là khả hợp nếu chúng có chung tập thuộc tính.
1.3.1. Phép hợp
1.3.2. Phép giao
1.3.3. Phép trừ
1.3.4. Phép chiếu
1.3.5. Phép chọn
1.3.6. Phép lấy tích Đềcác
1.3.7. Phép kết nối
1.3.8. Phép chia
1.3.9. Ngôn ngữ đại số trong hệ quản trị cơ sở dữ liệu FoxPro
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
1.3.11. Tối ưu biểu thức
Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3. Đại số quan hệ
1.3.1. Phép hợp
Cho hai quan hệ r1 và r2 khả hợp, cùng xác định trên tập thuộc tính R, phép hợp của hai qua hệ này sẽ tạo ra một quan hệ thứ ba cùng xác định trên tập thuộc tính R và chứa tất cả các bộ của hai quan hệ r1 và r2 .
r1 r2 = { t |t r1 hoặc t r2 }
Ví dụ 2.7:
r1 {STT Họ Tên Giới tính} r2 {STT Họ Tên Giới tính}
r1 r2 { STT Họ Tên Giới tính}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.3. Đại số quan hệ
1.3.2. Phép giao
Cho hai quan hệ r1 và r2 khả hợp, cùng xác định trên tập thuộc tính R, phép giao của hai qua hệ này sẽ tạo ra một quan hệ thứ ba cùng xác định trên tập thuộc tính R và chứa tất cả các bộ của hai quan hệ r1 và r2 .
r1 ∩ r2 = { t |t r1 và t r2 }
Ví dụ 2.8:
r1 { Họ Tên Giới tính} r2 { Họ Tên Giới tính}
r1 ∩ r2 { Họ Tên Giới tính }
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.3. Đại số quan hệ
1.3.3 Phép trừ
Cho hai quan hệ r1 và r2 khả hợp, cùng xác định trên tập thuộc tính R, phép trừ của hai qua hệ này sẽ tạo ra một quan hệ thứ ba cùng xác định trên tập thuộc tính R và bao gồm các bộ thuộc r1 và không thuộc r2 .
r1 - r2 = { t |t r1 và t r2 }
Ví dụ 2.9
r1 { Họ Tên Giới tính } r2 { Họ Tên Giới tính }
r1 - r2 { Họ Tên Giới tính }
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.3. Đại số quan hệ
1.3.4 Phép chiếu
Cho quan hệ r xác định trên tập thuộc tính R, X là một tập con thuộc tính của tập R. Giả sử t là một bộ thuộc tập quan hệ r, cách viết t(X) là để chỉ một thu gọn bộ trên tập thuộc tính X. Ví dụ: R = ( Họ, Tên, Giới Tính ) , X = {Họ, Tên} , t = (Trần, A, Nam) thì t(X) = (Trần, A).
Ta kí hiệu phép chiếu quan hệ r trên tập con thuộc tính X là ПX(r) phép chiếu cho kết quả là một quan hệ trên tập thuộc tính X bao gồm các thu gọn của tất cả các bộ của quan hệ r.
ПX(r) = { t(X) | t r}
Ví dụ 2.10: R = { Họ, Tên, Giới Tính } , X = { Họ, Tên }
r1 { Họ Tên Giới tính } ПX(r) { Họ Tên }
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.3. Đại số quan hệ
1.3.5 Phép chọn
Cho quan hệ r xác định trên tập thuộc tính R, F là một biểu thức logic xác định trên miền giá trị của thuôc tính thuộc tập R. Phép chọn trên quan hệ r theo biểu thức logic F sinh ra một quan hệ cùng xác định trên tập thuộc tính R chứa tất cả các bộ trong quan hệ r mà các giá trị của nó thoả mãn biểu thức logic F. Ta kí hiệu phép chọn là δF(r).
δF(r) = { t| t r và F(t) là đúng }
R={Họ, Tên, Giới tính}, F là biểu thức : Giới tính = ‘Nam’
Ví dụ 2.11:
r { Họ Tên Giới tính } δF(r) { Họ Tên Giới tính }
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.3. Đại số quan hệ
1.3.6. Phép lấy tích Đềcác
Cho quan hệ r1 xác định trên tập thuộc tính R1 và quan hệ r2 xác định trên tập thuộc tính R2 với t1 r1 và t2 r2 ta viết t1 t2 để chỉ một sự ghép nối tiếp các giá trị của hai bộ t1 và t2, lưu ý rằng ta không quan tâm đến thứ tự các thuộc tính trong tập thuộc tính của một quan hệ nên t1 t2 cho giá trị tương đương với t2 t1.Ví dụ: t1 = (Trần, A, Nam), t2 = (SF001, Hà Nội) ta sẽ có t1 t2 = t2 t1 = (Trần, A, Nam, SF001, Hà Nội).
Phép lấy tích Đềcác các quan hệ r1 và r2 cho ta một quan hệ xác định trên tập thuộc tính R1 R2 các bộ của tích Đềcác được định nghĩa như sau:
r1 x r2 = {tq| t r1 và q r2}
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.6. Phép lấy tích Đềcác
Ví dụ 2.12:
r1 { Họ } r2 { Tên Giới tính }
r1 x r2 { Họ Tên Giới tính }
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.3. Đại số quan hệ
1.3.7. Phép kết nối
Cho quan hệ r1 xác định trên tập thuộc tính R1 và quan hệ r2 xác định trên tập thuộc tính R2. Ta dùng kí hiệu θ để chỉ một trong 6 phép so sánh <, ≤, =, ≥, >, ≠ . Giả sử trong tập thuộc tính R1, có thuộc tính A và trong tập thuộc tính R2, có thuộc tính B và các giá trị của nó có thể so sánh được với nhau (cùng là tập con của một miền giá trị). Một biểu thức lôgic được xây dựng trên phép so sánh AθB được gọi là toán tử kết nối.
Phép kết nối hai quan hệ r1 và r2 trên cơ sở AθB cho ta một quan hệ thứ ba có tập thuộc tính là R1 R2 và các bộ của nó được định nghĩa như sau:
r1 r2 = { tq| t r1, q r2 và t(A) θ q(B) là đúng }
AθB
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.3. Đại số quan hệ
1.3.7. Phép kết nối
r1 là một quan hệ chứa hồ sơ cán bộ, trong quan hệ này có thuộc tính NămLênLương chứa thông tin về năm lên lương gần nhất của cán bộ. Ta muốn nhặt ra cán bộ được tăng lương lần này, mốc tăng lương là năm 2000, đồng thời bổ sung thêm thuộc tính MốcTăngLương và GhiChú, các thuộc tính này nằm trong r2:
Ta có kết quả như sau:
r1 {Họ Tên NămLênLương } r2 {MốcTăngLương Ghichú}
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.3. Đại số quan hệ
1.3.7. Phép kết nối
r1 r2 { Họ Tên NămLênLương MốcTăngLương Ghichú }
NamLenLuong ≤ MocTangluong
Continue
Một phép kết nối hay sử dụng nhất trong thực tế là phép kết nối sử dụng toán tử kết nối bằng “=”. Trong trường hợp hai quan hệ r1 và r2 cùng có một thuộc tính cùng tên, cùng chung miền giá trị thì ta có thể đồng nhất chúng trong kết qủa của phép kết nối bằng trên thuộc tính đó. Phép kết nối đó chúng ta gọi là phép kết nối tự nhiên, và kí hiệu là r1 *r2.
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.7. Phép kết nối
Ví dụ 1.14.
Trong quản lý điểm thi ta có hai quan hệ, quan hệ r1 chứa hồ sơ thí sinh, quan hệ r2 chứa kết quả thi. Để được một kết quả đầy đủ thông tin cho người dự thi ta phải ghép điểm thi vào hồ sơ cho từng người phép kết nối tự nhiên.
r1 { SốBD Họ Tên Giới tính } r2 { SốBD Điểm }
r1 * r2 {SốBD Họ Tên Giới tính Điểm}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.8. Phép chia
Cho quan hệ r1 xác định trên tập thuộc tính R1 quan hệ r2 xác định trên tập thuộc tính R2, R2 R1. Phép chia quan hệ r1 cho quan hệ r2 sinh ra một quan hệ thứ ba được định nghĩa như sau:
r1 ÷ r2 = { t| u r2, ta có tu r1}
Ví dụ 2. 15:
Giả sử ta có quan hệ r1 chứa dữ liệu điểm các học phần của các sinh viên, r2 là quan hệ chứa dữ liệu là các mã số học phần. Phép chia cho biết sinh viên nào đã có điểm tất cả các học phần.
r1 {SBD MãHọcPhần Điểm} r2 {MãHọcPhần}
ПSBD, MãHọcPhần(r1) ÷ r2 {SBD}
SP1
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.3. Đại số quan hệ
1.3.9. Ngôn ngữ đại số trong hệ quản trị cơ sở dữ liệu FoxPro
Trong hệ quản trị cơ sở dữ liệu họ Foxpro quan hệ đựoc thể hiện dưới dạng tập tin *.DBF (Database File). Trong tập tin DBF, thuộc tính được gọi là trường (Field), bộ là các bản ghi (Record), miền giá trị thuộc tính phụ thuộc vào kiểu dữ liệu của trường (Type). Trong các hệ quản trị cơ sở dữ liệu họ Foxpro các phép toán đại số không được cài đặt đầy đủ.
Phép hợp được thể hiện qua câu lệnh Append From. Câu lệnh này cho phép ghép một tệp DBF vào cuối một tệp DBF khác đang mở, dạng mềm dẽo của thao tác này cho phép hai tệp DBF khôn gcần khả hợp, khi đó chỉ những trường trùng tên mới được ghép dữ liệu.
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.9. Ngôn ngữ đại số trong hệ quản trị cơ sở dữ liệu FoxPro
Phép chiếu được thể hiện trong nhiều câu lệnh, chỉ thị bằng mệnh đề Fields.
Trong câu lệnh sao DBF: COPY TO Fields . Kết quả được một DBF mới với tập các trường là tập con của tập các trường của DBF được sao.
Trong câu lệnh xem, cập nhật DBF: BROWSER Fields… cho kết quả là một bảng thể hiện một quan hệ mới với số thuộc tính được chỉ ra trong danh sách sau mệnh đề fields.
Ngoài ra trong tất cả các câu lệnh khác có sử dụng mệnh đề fields đều thể hiện phép chiếu trên tập con các thuộc tính.
Phép chọn được thể hiện trong nhiều câu lệnh, chỉ thị bằng mệnh đề FOR, mệnh đề này được sử dụng trong khá nhiều câu lệnh nhằm mục đích chọn một số bàn ghi thoả mãn những điều kiện nhất định.
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.9. Ngôn ngữ đại số trong hệ quản trị cơ sở dữ liệu FoxPro
Phép kết nối: Có hai dạng kết nối điển hình là kết nối logic và kết nối vật lý.
Kết nối logic thể hiện qua các thao tác đặt quan hệ: SET RELATION … Với kiểu kết nối này không tạo ra DBF mới, nhưng hai bản ghi trên hai DBF thoả mãn điều kiện kết nối sẽ được coi như là một bản ghi.
Kết nối vật lý thể hiện qua câu lệnh JOIN WITH … Thực chất đây là phép lấy tích đềcác của hai DBF, các phép kết nối và kết nối tự nhiên thể hiện qua điều kiện kết nối.
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
Cho 4 quan hệ:
.Quan hệ Co với tập thuộc tính {Sohieu, TenCo, Von, DiaChi}, chứa dữ liệu quản lý các công ty
.Quan hệ Pr với tập thuộc tính {Mahieu, TenPr, Mau, TLuong, DiaChi}, chứa dữ liệu quản lý các mặt hàng.
.Quan hệ Pj với tập thuộc tính {MaPj, TenPj, DiaChi}, chứa dữ liệu các nơi mua hàng
.Quan hệ CPP với tập thuộc tính {Sohieu, Mahieu, MaPj, SoLuong, DonGia}, chứa dữ liệu quản lý các chuyến hàng được cung ứng.
Các truy vấn:
Ví dụ 2.16: Cho biết số hiệu của các công ty có bán mặt hàng P1.
Ví dụ 2.17: Cho biết mã hiệu các mặt hàng đã cung ứng.
Ví dụ 2.18: Cho biết tên các công ty ở Hà Nội có vốn lớn hơn 1 tỷ đồng.
Ví dụ 2.19: Cho biết tên các công ty đã cung cấp mặt hàng P1.
Ví dụ 2.20: Cho biết tên các công ty đã cung cấp các mặt hàng màu đỏ.
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
Quan hệ Co với tập thuộc tính {Sohieu, TenCo, Von, DiaChi}, chứa dữ liệu quản lý các công ty
Sohieu: Số hiệu để quản lý công ty bán hàng
TenCo: Tên công ty bán hàng.
Von: Số vốn đăng ký kinh doanh của công ty (đơn vị triệu đồng)
DiaChi: Địa chỉ công ty (ta chỉ giới hạn đến tỉnh, thành phố)
{Sohieu TenCo Von DiaChi}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
.Quan hệ Pr với tập thuộc tính {Mahieu, TenPr, Mau, TLuong, DiaChi}, chứa dữ liệu quản lý các mặt hàng.
Mahieu: Mã hiệu mặt hàng
TenPr: Tên mặt hàng
Mau: Màu sắc mặt hàng
TLuong: Trọng lượng mặt hàng
DiaChi: Địa chỉ kho nơi chứa hàng
{Mahieu TenPr Mau TLuong DiaChi}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
Quan hệ Pj với tập thuộc tính {MaPj, TenPj, DiaChi}, chứa dữ liệu các nơi mua hàng
MaPj: Mã số của nơi mua hàng
TenPj: Tên của đơn vị mua hàng
DiaChi: Địa chỉ nơi mua hàng (ta chỉ giới hạn đến tỉnh, thành phố)
{MaPj TenPj DiaChi}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
Quan hệ CPP với tập thuộc tính {Sohieu, Mahieu, MaPj, SoLuong, DonGia}, chứa dữ liệu quản lý các chuyến hàng được cung ứng.
Sohieu: Số hiệu công ty cung ứng.
Mahieu: Mã hiệu mặt hàng được cung ứng
MaPj: Mã số của đơn vị mua hàng
SoLuong: Số lượng hàng được cung ứng trong chuyến hàng đó.
DonGia: Đơn giá của mặt hàng được cung ứng trong chuyến hàng đó.
{Sohieu Mahieu MaPj SoLuong DonGia}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
Ví dụ 2.16: Cho biết số hiệu của các công ty có bán mặt hàng P1.
Với yêu cầu này thông tin cần lấy là thuộc tính số hiệu với điều kiện là chỉ chọn số hiệu của công ty có bán mặt hàng với mã hiệu là P1, dữ liệu cần thiết chỉ nằm trong quan hệ CPP
SoHieu(MaHieu=’P1’(CPP))
Ta cũng có thể biểu diễn quá trình xữ lý bằng sơ đồ sau:
SoHieu
MaHieu=’P1’
CPP
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
Các quan hệ được sinh ra theo tuần tự :
MaHieu=’P1’(CPP) {Sohieu MaHieu MaPj SoLuong DonGia}
SoHieu(MaHieu=’P1’(CPP)) { SoHieu }
CPP
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
Ví dụ 2.17: Cho biết mã hiệu các mặt hàng đã cung ứng.
Mã hiệu các mặt hàng đã được bán nằm trong quan hệ CPP
MaHieu(CPP) {MaHieu}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
Ví dụ 2.18: Cho biết tên các công ty ở Hà Nội có vốn lớn hơn 1 tỷ đồng.
Dữ liệu cần tìm nằm trên quan hệ Co.
Tenco((Von1000) and (DiaChi=’Hà Nội’)(Co))
Co
(Von1000) and (DiaChi=’Hà Nội’)(Co) {Sohieu TenCo Von DiaChi}
Tenco((Von1000) and (DiaChi=’Hà Nội’)(Co)) { TenCo }
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
Ví dụ 2.19: Cho biết tên các ông ty đã cung cấp mặt hàng P1.
Ta nhận thấy rằng tên các công ty là dữ liệu chứa trong quan hệ Co, mã hiệu mặt hàng được công ty đó bán nằm trong quan hệ CPP, hai quan hệ này có thể liên kết với nhau bằng phép kết nối tự nhiên thông qua thuộc tính SoHieu (lưu ý là ta thực hiện trên CPP một phép chiếu trên tập hợp thuộc tính {SoHieu, MaHieu} nhằm làm giảm bớt không gian tìm kiếm).
Tenco(Co*MaHieu=’P1’( SoHieu,MaHieu(CPP)))
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
MaHieu=’P1’( SoHieu,MaHieu(CPP)) { Sohieu Mahieu}
Co*MaHieu=’P1’( SoHieu,MaHieu(CPP))
{Sohieu MaHieu TenCo Von DiaChi}
Tenco(Co*MaHieu=’P1’( SoHieu,MaHieu(CPP))) { TenCo }
CPP
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
Ví dụ 2.20: Cho biết tên các công ty đã cung cấp các mặt hàng màu đỏ.
Dữ liệu cần tìm nằm trên 3 quan hệ, tên công ty nằm trên quan hệ Co, màu mặt hàng nằm trên quan hệ Pr, mặt hàng gắn liền với công ty cung cấp nằm trên quan hệ CPP. Mối liên quan dữ liệu được gắn kết bởi các thuộc tính SoHieu và MaHieu (cũng như ví dụ trên để giảm bớt không gian tìm kiếm ta thực hiện vài phép chiếu trước khi kết nối).
TenCo(Mau=’Đỏ’( SoHieu,TenCo(Co)* SoHieu,MaHieu(CPP)*MaHieu,Mau(Pr)))
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
Ví dụ 2.20: Cho biết tên các công ty đã cung cấp các mặt hàng màu đỏ.
Dữ liệu cần tìm nằm trên 3 quan hệ, tên công ty nằm trên quan hệ Co, màu mặt hàng nằm trên quan hệ Pr, mặt hàng gắn liền với công ty cung cấp nằm trên quan hệ CPP. Mối liên quan dữ liệu được gắn kết bởi các thuộc tính SoHieu và MaHieu (cũng như ví dụ trên để giảm bớt không gian tìm kiếm ta thực hiện vài phép chiếu trước khi kết nối).
TenCo(Mau=’Đỏ’( SoHieu,TenCo(Co)* SoHieu,MaHieu(CPP)*MaHieu,Mau(Pr)))
Continue
Giảng viên chính: ThS CÁP XUÂN TUẤN
Co
{SoHieu TenCo}
CPP
{SoHieu Mahieu}
Pr
{Mahieu Mau}
SoHieu,TenCo(Co)* SoHieu,MaHieu(CPP)*MaHieu,Mau(Pr)
{Sohieu TenCo Mahieu Mau}
Mau=’Đỏ’( ...) {Sohieu TenCo Mahieu Mau}
TenCo(Mau=’Đỏ’( ...)) { TenCo }
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.3. Đại số quan hệ
1.3.11. Tối ưu biểu thức
Để làm thoả mãn một yêu cầu tìm kiếm ta có thể xây dựng nhiều biểu thức đại số khác nhau. Chẳng hạn với ví dụ 5 của mục 2.1.2. 10 ta có biểu thức sau đây cho kết quả như nhau:
(1) Tenco(mau= ‘đỏ’ (SoHieu, TenCo(Co)*SoHieu, MaHieu(CPP)*MaHieu, mau(Pr))))
(2) Tenco(mau = ‘đỏ’ (Co* CPP * Pr))
Mặc dù kết quả cuối cùng là như nhau song biểu thức (1) cần sử dụng không gian bộ nhớ nhỏ hơn so với biểu thức (2) và thực nghiệm đã cho thấy là nó cần thời gian xử lý ngắn hơn, nhất là đối với quan hệ có nhiều dữ liệu. Lý do là ở biểu thức (1) trước khi kết nối đã lược bớt dữ liệu trong những thuộc tính không tham gia vào tính toán bằng phép chiếu, còn ở biểu thức (2) các dữ liệu thừa cũng được mang đi cho các phép xử lý tiếp theo. ở đây ta có thể nói biểu thức (1) là tối ưu hơn biểu thức (2).
Quy tắc cơ bản nhất để có biểu thức tối ưu là loại bỏ càng sớm càng tốt những dữ liệu không tham gia vào quá trình xử lý tiếp theo, tức là thực hiện các phép chọn và chiếu sớm nhất có thể.
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2. Ngôn ngữ hỏi có cấu trúc SQL
Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU
Ngôn ngữ SQL là ngôn ngữ hỏi có cấu trúc, bản thân SQL là viết tắt của Structured Query Language.
2.1 Các cấu trúc định nghĩa dữ liệu
2.1.1. Định nghĩa khung quan hệ
2.1.2. Thêm một thuộc tính vào một quan hệ đã có
2.2. Các cấu trúc thao tác dữ liệu
2.2.1. Câu hỏi tìm kiếm thông tin
2.2.2. Các thao tác cập nhật.
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2. Ngôn ngữ hỏi có cấu trúc SQL
Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU
2.1 Các cấu trúc định nghĩa dữ liệu
2.1.1. Định nghĩa khung quan hệ
Câu định nghĩa khung quan hệ có cấu trúc: Creat Table ( (Độ rộng dữ liệu), ...).
Ví dụ 2.2.1:
Ta định nghĩa khung của quan hệ Co. Quan hệ Co có 4 thuộc tính, 3 thuộc tính SoHieu, TenCo, Diachi có kiểu giá trị thuộc tính là văn bản, thuộc tính Von có kiểu giá trị là số, ta có câu lệnh sau (kiểu giá trị lấy kí hiệu trong hệ FOXPRO):
Creat Table Co (TenCo C(15), SoHieu C(3), Von N (10,0), DiaChi C(25))
Ta lưu ý rằng câu lệnh này chỉ tạo ra một khung quan hệ (hay là một quan hệ rỗng) và chưa hề có dữ liệu.
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2. Ngôn ngữ hỏi có cấu trúc SQL
Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU
2.1 Các cấu trúc định nghĩa dữ liệu
2.1.2. Thêm một thuộc tính vào một quan hệ đã có
Ta có thể thêm một thuộc tính vào một quan hệ đã có bằng cấu trúc: Alter Table Add (Độ rộng dữ liệu).
Ví dụ 2.22:
Ta bổ sung một thông tin cần quản lý về các công ty là năm công ty bắt đầu hoạt động, quan hệ Co lúc này cần bổ sung một thuộc tính.
Thông tin được ghi dưới dạng số nguyên gồm 4 con số.
Alter Table Co Add NamHoatDong N(4,0)
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2.2. Các cấu trúc thao tác dữ liệu
2.2.1. Câu hỏi tìm kiếm thông tin
Cấu trúc chung của SQL cho một số câu tìm kiếm là Select From Where , có thể giải nghĩa như sau: Chọn Từ Thoả mãn <điều kiện gì>.
Chúng ta sẽ làm rõ cách sử dụng cấu trúc này thông qua các ví dụ cụ thể. Cú pháp SQL trình bày trong phần này có tính chất tổng quát, không phụ thuộc một hệ cụ thể nào, tuy nhiên hình thức có phần thiên về cú pháp của FOXPRO. Các ví dụ sử dụng các quan hệ quản lý bán hàng đã được trình bày ở trên.
a. Tìm kiếm không điều kiện
b. Tìm kiếm với các điều kiện đơn giản
c. Tìm kiếm với các hàm
d. Tìm kiếm có sắp xếp
e. Tìm kiếm theo nhóm
f. Tìm kiếm có liên kết
g. Tìm kiếm với các câu hỏi phức hợp
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2.2. Các cấu trúc thao tác dữ liệu
2.2.1. Câu hỏi tìm kiếm thông tin
a. Tìm kiếm không điều kiện
Ví dụ 2.23:
Cho biết danh sách các nhà cung cấp.
Với yêu cầu này dữ liệu cần thiết nằm trong quan hệ Co.
Select * From Co
Kí hiệu * để chỉ rằng ta cần lấy tất cả các thuộc tính của đối tượng tìm kiếm.
Ví dụ 2.24:
Cho biết danh sách thông tin của các chuyến hàng bao gồm mã số dự án, mã hiệu mặt hàng và giá trị của chuyến hàng đó.
Với yêu cầu này dữ liệu cần thiết nằm trong quan hệ CPP.
Select MaPj, MaHieu, SoLuong*DonGia From CPP
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2.2. Các cấu trúc thao tác dữ liệu
2.2.1. Câu hỏi tìm kiếm thông tin
a. Tìm kiếm không điều kiện
Ví dụ 2.25:
Cho biết mã số của các mặt hàng đã được cung cấp.
Dữ liệu cần thiết nằm trong quan hệ CPP, lưu ý rằng một mặt hàng có thể được cung cấp trong nhiều chuyến hàng khác nhau. Ta có hai cách làm sau:
Select MaHieu From CPP
Select Distinct MaHieu From CPP
Trong trường hợp thứ 2 ta thấy sử dụng từ khoá Distinct, từ khoá này được sử dụng nhằm chỉ thị việc lược bớt các giá trị giống nhau trong kết quả, chỉ giữ lại một giá trị đại diện, từ khoá này chỉ có tác dụng cho thuộc tính đứng ngay trước nó.
Nhận xét:
+ Sau từ khoá Select là danh sách các thuộc tính được lựa chọn, cho phép sử dụng cả các biểu thức để chỉ định thuộc tính.
+ Kết quả của sự thực hiện Select.. From.. Where.. là một quan hệ với tập thuộc tính được chỉ định sau từ khoá Select.
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2.2. Các cấu trúc thao tác dữ liệu
2.2.1. Câu hỏi tìm kiếm thông tin
b. Tìm kiếm với các điều kiện đơn giản
Ví dụ 2. 26:
Cho biết số hiệu các nhà cung cấp mặt hàng P2.
Dữ liệu cần thiết bao gồm số hiệu nhà cung cấp gắn liền vói mã hiệu của mặt hàng được cung cấp nằm trong quan hệ CPP.
Select SoHieu From CPP Where MaHieu = `P2`
Ví dụ 2.27:
Cho biết mã hiệu của các mặt hàng đã được bán có giá trị nằm trong khoảng từ 1000000 đồng đến 2000000 đồng.
Dữ liệu phục vụ cho việc tìm kiếm bao gồm mã hiệu mặt hàng và giá bán của nó nằm trong quan hệ CPP. Ta có hai cách làm sau đây cùng cho kết quả tương đương:
Select MaHieu From CPP Where (Dongia 1000000) and (Dongia 2000000)
Select MaHieu From CPP Where Dongia Between 1000000 and 2000000
Trong trường hợp thứ hai ta thấy xuất hiện toán tử có cấu trúc Between and để kiểm tra một giá trị nằm trong một đoạn giá trị nào đó.
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2.2. Các cấu trúc thao tác dữ liệu
2.2.1. Câu hỏi tìm kiếm thông tin
b. Tìm kiếm với các điều kiện đơn giản
Ví dụ 2.28:
Cho biết số hiệu các nhà cung cấp đã cung cấp ít nhất một trong các mặt hàng P1, P2, P3.
Select MaHieu From CPP Where (MaHieu = ‘P1’) or (MaHieu = ‘P2’) or (MaHieu = ‘P3’)
Select SoHieu From CPP Where MaHieu In (‘P1’, ‘P2’, ‘P3’)
Trong trường hợp thứ hai ta thấy xuất hiện toán tử có cấu trúc[Not] In để kiểm tra một giá trị thuộc (không thuộc) trong một tập hợp giá trị nào đó (Tập hợp giá trị có thể là một câu vấn tin Select .. From.. Where..).
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2.2. Các cấu trúc thao tác dữ liệu
2.2.1. Câu hỏi tìm kiếm thông tin
c. Tìm kiếm với các hàm
Câu tìm kiếm SQL cho phép sử dụng các hàm SQL trong thư viện hàm của hệ quản trị CSDL để tìm kiếm thông tin. Các hàm thường dùng là:
• Hàm đếm số lượng các bộ thoả mãn điều kiện: Count ([Distinct]Biểu thức). Hàm này thường kết hợp với mệnh đề Where... để biểu thị điều kiện. Từ khoá distinct đượcdùng để lược bớt những giá trị giống nhau.
• Hàm tính giá trị lớn nhất, nhỏ nhất của tập giá trị được tính theo biểu thức trên tập giá trị của các bộ của quan hệ: Max (Biểu thức), Min (biểu thức).
• Hàm tính tổng của tập giá trị được tính theo biểu thức trên các giá trị của các bộ của quan hệ: Sum (biểu thức kiểu số).
• Hàm tính trung bình của tập giá trị được tính theo biểu thức trên các giá trị thuộc tính kiểu số: Avg (biểu thức kiểu số).
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2.2. Các cấu trúc thao tác dữ liệu
2.2.1. Câu hỏi tìm kiếm thông tin
c. Tìm kiếm với các hàm
Ví dụ 2.29:
Cho biết số lượng hàng có mã hiệu P1 đã được bán
Select MaHieu, Sum(SoLuong) From CPP Where Mahieu = ‘P1’
Ví dụ 2.30:
Cho biết số chuyến hàng cung cấp mặt hàng P1
Select MaHieu, Count(MaHieu) From CPP Where MaHieu = ‘P1’
Ví dụ 2.31:
Cho biết đơn giá trung bình của mặt hàng P1
Select MaHieu, Avg (DonGia) From CPP Where MaHieu = ‘P1’
Ví dụ 2.32:
Cho biết tổng giá trị của mặt hàng P1 đã được cung cấp:
Select MaHieu, Sum(DonGiá*Soluong) From CPP Where MaHieu= ‘P1’
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2.2. Các cấu trúc thao tác dữ liệu
2.2.1. Câu hỏi tìm kiếm thông tin
d. Tìm kiếm có sắp xếp
Câu tìm kiếm SQL cho phép sắp xếp kết quả tìm kiếm bằng cách sử dụng mệnh đề Order By Asc/Desc. Biểu thức sẽ xác định tiêu chuẩn để sắp xếp. Từ khoá Asc chỉ sự sắp xếp theo chiều tăng dần của giá trị biểu thức, xếp theo chiều tăng là mặc định nên từ khoá này thực ra không cần thiết (xem ví dụ 2). Từ khoá Desc chỉ sự sắp xếp theo chiều giảm dần của giá trị biểu thức.
Ví dụ 2.33:
Hãy cho biết số hiệu của các công ty có bán mặt hàng P1 và sắp xếp kết quả theo chiều giảm dần của số lượng chuyến hàng.
Select SoHieu, MaHieu From CPP Where MaHieu = ‘P1’ Order By Soluong Desc
Ví dụ 2. 34:
Hãy cho biết số hiệu của các công ty có bán mặt hàng P1 và sắp xếp kết quả theo chiều tăng dần của giá trị chuyến hàng.
Select SoHieu From CPP Where MaHieu = ‘P1’ Order By DonGia*Soluong
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2.2. Các cấu trúc thao tác dữ liệu
2.2.1. Câu hỏi tìm kiếm thông tin
e. Tìm kiếm theo nhóm
Câu tìm kiếm SQL sử dụng mệnh đề Group By để tìm kiếm theo nhóm giá trị của các thuộc tính và mệnh đề Having để chỉ sự tìm kiếm có điều kiện trong các nhóm được xác định bởi Group By. Kết quả tìm kiếm là danh sách các bộ được liệt kê tuần tự theo nhóm có cùng giá trị, hết nhóm này đến nhóm khác.
Ví dụ 2.35:
Cho biết số lượng hàng mà mỗi công ty đã cung cấp cho khách hàng.
Select SoHieu, Sum(Soluong) From CPP Grou
KHOA CÔNG NGHỆ THÔNG TIN
CƠ SỞ DỮ LIỆU
Bài giảng học phần
Giảng viên chính: ThS CÁP XUÂN TUẤN
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Nội dung học phần
Giảng viên chính: ThS CÁP XUÂN TUẤN
Chương 1: CÁC KHÁI NIỆM CƠ BẢN VỀ CƠ SỞ DỮ LIỆU
Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU
Chương 3: THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
2. Ngôn ngữ hỏi có cấu trúc SQL
. Tóm tắt chương 2
. Câu hỏi ôn tập chương 2
. Bài tập
Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.1. Khái niệm cơ bản
1.2. Các phép tính trên quan hệ
1.3. Đại số quan hệ
Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.1. Khái niệm cơ bản
Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU
Một cách giải thích rất trực quan cho mô hình dữ liệu quan hệ là các dữ liệu của bài toán quản lí được tổ chức dưới dạng các bảng dữ liệu. Quan sát một bảng dữ liệu ta thấy nó được tổ chức theo hàng và cột, cột biểu thị một thuộc tính thông tin cần quản lý của một đối tượng, thuộc tính này có tên gọi (tiêu đề cột) và các giá trị thuộc tính trong cột đó có cùng một kiểu giá trị. Tập hợp tất cả các giá trị thuộc tính trên một hàng là dữ liệu về một đối tượng đang được quản lí.
Giả sử ta có tập n thuộc tính về một CSDL được kí hiệu là tập R={A1, A2,…An}, mỗi thuộc tính Ai i = 1,…, n có một miền giá trị Dom (Ai).
Quan hệ trên tập thuộc tính R là một tập con của tích Đề các các miền giá trị Dom (Ai).
r ⊆ Dom (A1) x Dom (A2) x… x Dom (An)
Như vậy mỗi phần tử của quan hệ r là một bộ t = (t1, t2, …, tn) với ti ∈ Dom (Ai).
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.1. Khái niệm cơ bản
Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU
Ví dụ 2.1:
R = {A, B} , Dom (A) = {a1, a2}, Dom (B) = {b1, b2, b3 }
Tập r1 = {(a1, b1), (a2, b2)} , r2 = { (a1, b1), (a1, b2), (a1, b3)}
Continue
{A B}
r1
{A B}
r2
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.1. Khái niệm cơ bản
Ví dụ 2.2:
R = {SốBD, Họ, Đệm, Tên, Giới tính}
Dom (SốBD) = {SP1, SP2, SP3,… } tập hợp kí hiệu mã số cho người.
Dom (Họ) = {Nguyễn, Trần, Lê, Đỗ, …} tập hợp họ của người Việt Nam.
Dom (Đệm) = { Văn, Thị,… } tập họ đệm của người Việt Nam
Dom (Tên) là tập hợp các người Việt Nam
Dom (Giới tính) = { Nam, Nữ}
Tập hợp sau là một quan hệ trên tập thuộc tính R:
r = { (SP1, Trần, Văn, A, Nam), (SP2, Lê, Thị, B, Nữ), (SP3, Trần, Văn, A, Nam)}
Continue
{SốBD Họ Đệm Tên Giới tính}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.1. Khái niệm cơ bản
Ví dụ 2.3:
P = {SốBD, Điểm}
Dom (SốBD) = {SP1, SP2, SP3,…} tập hợp mã số cho người thi
Dom (Điểm) tập giá trị thập phân trong đoạn từ 0 đến 10 là điểm thi.
Tập hợp sau là một quan hệ trên tập thuộc tính P:
q = {(SP1, 6), (SP2, 9), (SP3, 8)}
Continue
q {SốBD Điểm}
Trong một quan hệ thường có một thuộc tính hoặc một tập hợp con thuộc tính khoá, khoá đảm bảo rằng không có cặp bộ nào trong quan hệ hoà toàn giống nhau. Chẳng hạn trong ví dụ có thuộc tính SốBD là thuộc tính khoá, nếu không có thuộc tính này thì trong quan hệ được mô tả có hai bộ có giá trị giống hệt nhau tuy rằng đó là thông tin về hai đối tượng khác nhau.
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.1. Khái niệm cơ bản
Nếu trong một CSDL có nhiều hơn một quan hệ, chẳng hạn các quan hệ được mô tả trong ví dụ 2.2 và ví dụ 2.3 là hai quan hệ trong cùng một CSDL quản lí một kì thi, thì các bộ trong quan hệ đó phải liên quan đến nhau, khi đó để xác định sự liên quan dữ liệu mỗi quan hệ phải có một khoá kết nối. Thuộc tính SốBD chính khoá kết nối của quan hệ r và quan hệ q, khoá này cho phép liên kết bằng hai bộ thuộc hai quan hệ nếu giá trị của khoá kết nối là bằng nhau. Mô hình kết nối như sau:
q {SốBD Điểm}
r {SốBD Họ Đệm Tên Giới tính}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.2. Các phép tính trên quan hệ
Có ba phép tính cơ bản trên một quan hệ: Phép thêm bộ, Phép xoá bộ, Phép cập nhật giá trị trong bộ; nhờ ba phép tính này mà một quan hệ được biến đổi. Trong các hệ quản trị CSDL khác nhau các phép tính ở này được biểu diễn khác nhau, biểu diễn của các phép tính ở dưới đây chỉ có tính hình thức. Giả sử ta có quan hệ r trên tập thuộc tính {A1, A2, …, An} khoá của quan hệ là thuôc tính Ak.
.Phép thêm bộ
.Phép xoá bộ
.Phép cập nhật
Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.2. Các phép tính trên quan hệ
.Phép thêm bộ
Phép tính này bổ sung một bộ vào một quan hệ. Ta kí hiệu phép thêm bộ là Insert (r; A1 = a1, A2 = a2, … , An = an) hoặc nếu coi thứ tự thuộc tính là cố định thì ta có thể viết Insert (r; a1, a2, …, an), kết quả là một bộ (a1, a2, …, an) được bổ sung vào quan hệ.
Ví dụ 2.4:
Ta có quan hệ r như sau:
r { SốBD Họ Đệm Tên Giới tính}
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.2. Các phép tính trên quan hệ
.Phép thêm bộ
Sau khi thực hiện phép toán Insert (r; SốBD = SP4, Họ = Nguyễn, Đệm = Văn, Tên = C, Giới tính = Nam) ta có quan hệ r đã được biến đổi thành:
r { SốBD Họ Đệm Tên Giới tính}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.2. Các phép tính trên quan hệ
.Phép xoá bộ
Phép tính này xoá đi một bộ đã có trong quan hệ. Ta kí hiệu phép xoá bộ là Delete (r; A1 = a1, A2 = a2, … An = an) hoặc nếu coi thứ tự thuộc tính là cố định thì ta có thể viết Delete (r; a1, a2, …, an), hoặc nếu có thuộc tính khoá Ak thì có thể viết Delete (r; Ak =ak ) với ak là giá trị khoá của bộ muốn xoá.
Ví dụ 2.5 :
Ta có quan hệ r như sau:
r { SốBD Họ Đệm Tên Giới tính}
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.2. Các phép tính trên quan hệ
.Phép xoá bộ
Sau khi thực hiện phép toán Delete (r; SốBD = SP2, Họ = Lê, Đệm = Thị, Tên = B, Giới tính = Nữ) hoặc Delete (r; SốBD = SP2) ta có quan hệ r đã được biến đổi thành:
r { SốBD Họ Đệm Tên Giới tính}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.2. Các phép tính trên quan hệ
.Phép cập nhật
Phép tính này cho phép thay đổi một giá trị thuộc tính trong một bộ của một quan hệ. Ta kí hiệu phép cập nhật là Update (r; A1 = a1, A2 = a2, … An = an ; Ak1 = ek1, Ak2 = ek2, … Akm = ekm) hoặc chỉ định bộ sẽ được thay đổi theo khóa Update (r; Ak = ak, ; Ak1 = ek1, Ak2 = ek2, … Akm = ekm) trong đó Ak1,…,Akm là thuộc tính tại đó giá trị sẽ được thay đổi bằng các giá trị ek1,…,ekm.
Ví dụ 2.6 :
Ta có quan hệ r như sau:
r { SốBD Họ Đệm Tên Giới tính}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.3. Đại số quan hệ
Hai quan hệ r1 và r2 được gọi là khả hợp nếu chúng có chung tập thuộc tính.
1.3.1. Phép hợp
1.3.2. Phép giao
1.3.3. Phép trừ
1.3.4. Phép chiếu
1.3.5. Phép chọn
1.3.6. Phép lấy tích Đềcác
1.3.7. Phép kết nối
1.3.8. Phép chia
1.3.9. Ngôn ngữ đại số trong hệ quản trị cơ sở dữ liệu FoxPro
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
1.3.11. Tối ưu biểu thức
Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3. Đại số quan hệ
1.3.1. Phép hợp
Cho hai quan hệ r1 và r2 khả hợp, cùng xác định trên tập thuộc tính R, phép hợp của hai qua hệ này sẽ tạo ra một quan hệ thứ ba cùng xác định trên tập thuộc tính R và chứa tất cả các bộ của hai quan hệ r1 và r2 .
r1 r2 = { t |t r1 hoặc t r2 }
Ví dụ 2.7:
r1 {STT Họ Tên Giới tính} r2 {STT Họ Tên Giới tính}
r1 r2 { STT Họ Tên Giới tính}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.3. Đại số quan hệ
1.3.2. Phép giao
Cho hai quan hệ r1 và r2 khả hợp, cùng xác định trên tập thuộc tính R, phép giao của hai qua hệ này sẽ tạo ra một quan hệ thứ ba cùng xác định trên tập thuộc tính R và chứa tất cả các bộ của hai quan hệ r1 và r2 .
r1 ∩ r2 = { t |t r1 và t r2 }
Ví dụ 2.8:
r1 { Họ Tên Giới tính} r2 { Họ Tên Giới tính}
r1 ∩ r2 { Họ Tên Giới tính }
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.3. Đại số quan hệ
1.3.3 Phép trừ
Cho hai quan hệ r1 và r2 khả hợp, cùng xác định trên tập thuộc tính R, phép trừ của hai qua hệ này sẽ tạo ra một quan hệ thứ ba cùng xác định trên tập thuộc tính R và bao gồm các bộ thuộc r1 và không thuộc r2 .
r1 - r2 = { t |t r1 và t r2 }
Ví dụ 2.9
r1 { Họ Tên Giới tính } r2 { Họ Tên Giới tính }
r1 - r2 { Họ Tên Giới tính }
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.3. Đại số quan hệ
1.3.4 Phép chiếu
Cho quan hệ r xác định trên tập thuộc tính R, X là một tập con thuộc tính của tập R. Giả sử t là một bộ thuộc tập quan hệ r, cách viết t(X) là để chỉ một thu gọn bộ trên tập thuộc tính X. Ví dụ: R = ( Họ, Tên, Giới Tính ) , X = {Họ, Tên} , t = (Trần, A, Nam) thì t(X) = (Trần, A).
Ta kí hiệu phép chiếu quan hệ r trên tập con thuộc tính X là ПX(r) phép chiếu cho kết quả là một quan hệ trên tập thuộc tính X bao gồm các thu gọn của tất cả các bộ của quan hệ r.
ПX(r) = { t(X) | t r}
Ví dụ 2.10: R = { Họ, Tên, Giới Tính } , X = { Họ, Tên }
r1 { Họ Tên Giới tính } ПX(r) { Họ Tên }
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.3. Đại số quan hệ
1.3.5 Phép chọn
Cho quan hệ r xác định trên tập thuộc tính R, F là một biểu thức logic xác định trên miền giá trị của thuôc tính thuộc tập R. Phép chọn trên quan hệ r theo biểu thức logic F sinh ra một quan hệ cùng xác định trên tập thuộc tính R chứa tất cả các bộ trong quan hệ r mà các giá trị của nó thoả mãn biểu thức logic F. Ta kí hiệu phép chọn là δF(r).
δF(r) = { t| t r và F(t) là đúng }
R={Họ, Tên, Giới tính}, F là biểu thức : Giới tính = ‘Nam’
Ví dụ 2.11:
r { Họ Tên Giới tính } δF(r) { Họ Tên Giới tính }
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.3. Đại số quan hệ
1.3.6. Phép lấy tích Đềcác
Cho quan hệ r1 xác định trên tập thuộc tính R1 và quan hệ r2 xác định trên tập thuộc tính R2 với t1 r1 và t2 r2 ta viết t1 t2 để chỉ một sự ghép nối tiếp các giá trị của hai bộ t1 và t2, lưu ý rằng ta không quan tâm đến thứ tự các thuộc tính trong tập thuộc tính của một quan hệ nên t1 t2 cho giá trị tương đương với t2 t1.Ví dụ: t1 = (Trần, A, Nam), t2 = (SF001, Hà Nội) ta sẽ có t1 t2 = t2 t1 = (Trần, A, Nam, SF001, Hà Nội).
Phép lấy tích Đềcác các quan hệ r1 và r2 cho ta một quan hệ xác định trên tập thuộc tính R1 R2 các bộ của tích Đềcác được định nghĩa như sau:
r1 x r2 = {tq| t r1 và q r2}
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.6. Phép lấy tích Đềcác
Ví dụ 2.12:
r1 { Họ } r2 { Tên Giới tính }
r1 x r2 { Họ Tên Giới tính }
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.3. Đại số quan hệ
1.3.7. Phép kết nối
Cho quan hệ r1 xác định trên tập thuộc tính R1 và quan hệ r2 xác định trên tập thuộc tính R2. Ta dùng kí hiệu θ để chỉ một trong 6 phép so sánh <, ≤, =, ≥, >, ≠ . Giả sử trong tập thuộc tính R1, có thuộc tính A và trong tập thuộc tính R2, có thuộc tính B và các giá trị của nó có thể so sánh được với nhau (cùng là tập con của một miền giá trị). Một biểu thức lôgic được xây dựng trên phép so sánh AθB được gọi là toán tử kết nối.
Phép kết nối hai quan hệ r1 và r2 trên cơ sở AθB cho ta một quan hệ thứ ba có tập thuộc tính là R1 R2 và các bộ của nó được định nghĩa như sau:
r1 r2 = { tq| t r1, q r2 và t(A) θ q(B) là đúng }
AθB
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.3. Đại số quan hệ
1.3.7. Phép kết nối
r1 là một quan hệ chứa hồ sơ cán bộ, trong quan hệ này có thuộc tính NămLênLương chứa thông tin về năm lên lương gần nhất của cán bộ. Ta muốn nhặt ra cán bộ được tăng lương lần này, mốc tăng lương là năm 2000, đồng thời bổ sung thêm thuộc tính MốcTăngLương và GhiChú, các thuộc tính này nằm trong r2:
Ta có kết quả như sau:
r1 {Họ Tên NămLênLương } r2 {MốcTăngLương Ghichú}
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.3. Đại số quan hệ
1.3.7. Phép kết nối
r1 r2 { Họ Tên NămLênLương MốcTăngLương Ghichú }
NamLenLuong ≤ MocTangluong
Continue
Một phép kết nối hay sử dụng nhất trong thực tế là phép kết nối sử dụng toán tử kết nối bằng “=”. Trong trường hợp hai quan hệ r1 và r2 cùng có một thuộc tính cùng tên, cùng chung miền giá trị thì ta có thể đồng nhất chúng trong kết qủa của phép kết nối bằng trên thuộc tính đó. Phép kết nối đó chúng ta gọi là phép kết nối tự nhiên, và kí hiệu là r1 *r2.
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.7. Phép kết nối
Ví dụ 1.14.
Trong quản lý điểm thi ta có hai quan hệ, quan hệ r1 chứa hồ sơ thí sinh, quan hệ r2 chứa kết quả thi. Để được một kết quả đầy đủ thông tin cho người dự thi ta phải ghép điểm thi vào hồ sơ cho từng người phép kết nối tự nhiên.
r1 { SốBD Họ Tên Giới tính } r2 { SốBD Điểm }
r1 * r2 {SốBD Họ Tên Giới tính Điểm}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.8. Phép chia
Cho quan hệ r1 xác định trên tập thuộc tính R1 quan hệ r2 xác định trên tập thuộc tính R2, R2 R1. Phép chia quan hệ r1 cho quan hệ r2 sinh ra một quan hệ thứ ba được định nghĩa như sau:
r1 ÷ r2 = { t| u r2, ta có tu r1}
Ví dụ 2. 15:
Giả sử ta có quan hệ r1 chứa dữ liệu điểm các học phần của các sinh viên, r2 là quan hệ chứa dữ liệu là các mã số học phần. Phép chia cho biết sinh viên nào đã có điểm tất cả các học phần.
r1 {SBD MãHọcPhần Điểm} r2 {MãHọcPhần}
ПSBD, MãHọcPhần(r1) ÷ r2 {SBD}
SP1
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.3. Đại số quan hệ
1.3.9. Ngôn ngữ đại số trong hệ quản trị cơ sở dữ liệu FoxPro
Trong hệ quản trị cơ sở dữ liệu họ Foxpro quan hệ đựoc thể hiện dưới dạng tập tin *.DBF (Database File). Trong tập tin DBF, thuộc tính được gọi là trường (Field), bộ là các bản ghi (Record), miền giá trị thuộc tính phụ thuộc vào kiểu dữ liệu của trường (Type). Trong các hệ quản trị cơ sở dữ liệu họ Foxpro các phép toán đại số không được cài đặt đầy đủ.
Phép hợp được thể hiện qua câu lệnh Append From
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.9. Ngôn ngữ đại số trong hệ quản trị cơ sở dữ liệu FoxPro
Phép chiếu được thể hiện trong nhiều câu lệnh, chỉ thị bằng mệnh đề Fields
Trong câu lệnh sao DBF: COPY TO
Trong câu lệnh xem, cập nhật DBF: BROWSER Fields
Ngoài ra trong tất cả các câu lệnh khác có sử dụng mệnh đề fields đều thể hiện phép chiếu trên tập con các thuộc tính.
Phép chọn được thể hiện trong nhiều câu lệnh, chỉ thị bằng mệnh đề FOR
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.9. Ngôn ngữ đại số trong hệ quản trị cơ sở dữ liệu FoxPro
Phép kết nối: Có hai dạng kết nối điển hình là kết nối logic và kết nối vật lý.
Kết nối logic thể hiện qua các thao tác đặt quan hệ: SET RELATION … Với kiểu kết nối này không tạo ra DBF mới, nhưng hai bản ghi trên hai DBF thoả mãn điều kiện kết nối sẽ được coi như là một bản ghi.
Kết nối vật lý thể hiện qua câu lệnh JOIN WITH … Thực chất đây là phép lấy tích đềcác của hai DBF, các phép kết nối và kết nối tự nhiên thể hiện qua điều kiện kết nối.
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
Cho 4 quan hệ:
.Quan hệ Co với tập thuộc tính {Sohieu, TenCo, Von, DiaChi}, chứa dữ liệu quản lý các công ty
.Quan hệ Pr với tập thuộc tính {Mahieu, TenPr, Mau, TLuong, DiaChi}, chứa dữ liệu quản lý các mặt hàng.
.Quan hệ Pj với tập thuộc tính {MaPj, TenPj, DiaChi}, chứa dữ liệu các nơi mua hàng
.Quan hệ CPP với tập thuộc tính {Sohieu, Mahieu, MaPj, SoLuong, DonGia}, chứa dữ liệu quản lý các chuyến hàng được cung ứng.
Các truy vấn:
Ví dụ 2.16: Cho biết số hiệu của các công ty có bán mặt hàng P1.
Ví dụ 2.17: Cho biết mã hiệu các mặt hàng đã cung ứng.
Ví dụ 2.18: Cho biết tên các công ty ở Hà Nội có vốn lớn hơn 1 tỷ đồng.
Ví dụ 2.19: Cho biết tên các công ty đã cung cấp mặt hàng P1.
Ví dụ 2.20: Cho biết tên các công ty đã cung cấp các mặt hàng màu đỏ.
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
Quan hệ Co với tập thuộc tính {Sohieu, TenCo, Von, DiaChi}, chứa dữ liệu quản lý các công ty
Sohieu: Số hiệu để quản lý công ty bán hàng
TenCo: Tên công ty bán hàng.
Von: Số vốn đăng ký kinh doanh của công ty (đơn vị triệu đồng)
DiaChi: Địa chỉ công ty (ta chỉ giới hạn đến tỉnh, thành phố)
{Sohieu TenCo Von DiaChi}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
.Quan hệ Pr với tập thuộc tính {Mahieu, TenPr, Mau, TLuong, DiaChi}, chứa dữ liệu quản lý các mặt hàng.
Mahieu: Mã hiệu mặt hàng
TenPr: Tên mặt hàng
Mau: Màu sắc mặt hàng
TLuong: Trọng lượng mặt hàng
DiaChi: Địa chỉ kho nơi chứa hàng
{Mahieu TenPr Mau TLuong DiaChi}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
Quan hệ Pj với tập thuộc tính {MaPj, TenPj, DiaChi}, chứa dữ liệu các nơi mua hàng
MaPj: Mã số của nơi mua hàng
TenPj: Tên của đơn vị mua hàng
DiaChi: Địa chỉ nơi mua hàng (ta chỉ giới hạn đến tỉnh, thành phố)
{MaPj TenPj DiaChi}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
Quan hệ CPP với tập thuộc tính {Sohieu, Mahieu, MaPj, SoLuong, DonGia}, chứa dữ liệu quản lý các chuyến hàng được cung ứng.
Sohieu: Số hiệu công ty cung ứng.
Mahieu: Mã hiệu mặt hàng được cung ứng
MaPj: Mã số của đơn vị mua hàng
SoLuong: Số lượng hàng được cung ứng trong chuyến hàng đó.
DonGia: Đơn giá của mặt hàng được cung ứng trong chuyến hàng đó.
{Sohieu Mahieu MaPj SoLuong DonGia}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
Ví dụ 2.16: Cho biết số hiệu của các công ty có bán mặt hàng P1.
Với yêu cầu này thông tin cần lấy là thuộc tính số hiệu với điều kiện là chỉ chọn số hiệu của công ty có bán mặt hàng với mã hiệu là P1, dữ liệu cần thiết chỉ nằm trong quan hệ CPP
SoHieu(MaHieu=’P1’(CPP))
Ta cũng có thể biểu diễn quá trình xữ lý bằng sơ đồ sau:
SoHieu
MaHieu=’P1’
CPP
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
Các quan hệ được sinh ra theo tuần tự :
MaHieu=’P1’(CPP) {Sohieu MaHieu MaPj SoLuong DonGia}
SoHieu(MaHieu=’P1’(CPP)) { SoHieu }
CPP
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
Ví dụ 2.17: Cho biết mã hiệu các mặt hàng đã cung ứng.
Mã hiệu các mặt hàng đã được bán nằm trong quan hệ CPP
MaHieu(CPP) {MaHieu}
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
Ví dụ 2.18: Cho biết tên các công ty ở Hà Nội có vốn lớn hơn 1 tỷ đồng.
Dữ liệu cần tìm nằm trên quan hệ Co.
Tenco((Von1000) and (DiaChi=’Hà Nội’)(Co))
Co
(Von1000) and (DiaChi=’Hà Nội’)(Co) {Sohieu TenCo Von DiaChi}
Tenco((Von1000) and (DiaChi=’Hà Nội’)(Co)) { TenCo }
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
Ví dụ 2.19: Cho biết tên các ông ty đã cung cấp mặt hàng P1.
Ta nhận thấy rằng tên các công ty là dữ liệu chứa trong quan hệ Co, mã hiệu mặt hàng được công ty đó bán nằm trong quan hệ CPP, hai quan hệ này có thể liên kết với nhau bằng phép kết nối tự nhiên thông qua thuộc tính SoHieu (lưu ý là ta thực hiện trên CPP một phép chiếu trên tập hợp thuộc tính {SoHieu, MaHieu} nhằm làm giảm bớt không gian tìm kiếm).
Tenco(Co*MaHieu=’P1’( SoHieu,MaHieu(CPP)))
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
MaHieu=’P1’( SoHieu,MaHieu(CPP)) { Sohieu Mahieu}
Co*MaHieu=’P1’( SoHieu,MaHieu(CPP))
{Sohieu MaHieu TenCo Von DiaChi}
Tenco(Co*MaHieu=’P1’( SoHieu,MaHieu(CPP))) { TenCo }
CPP
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
Ví dụ 2.20: Cho biết tên các công ty đã cung cấp các mặt hàng màu đỏ.
Dữ liệu cần tìm nằm trên 3 quan hệ, tên công ty nằm trên quan hệ Co, màu mặt hàng nằm trên quan hệ Pr, mặt hàng gắn liền với công ty cung cấp nằm trên quan hệ CPP. Mối liên quan dữ liệu được gắn kết bởi các thuộc tính SoHieu và MaHieu (cũng như ví dụ trên để giảm bớt không gian tìm kiếm ta thực hiện vài phép chiếu trước khi kết nối).
TenCo(Mau=’Đỏ’( SoHieu,TenCo(Co)* SoHieu,MaHieu(CPP)*MaHieu,Mau(Pr)))
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1.3.10. Một số ví dụ tìm kiếm bằng các phép toán đại số quan hệ
Ví dụ 2.20: Cho biết tên các công ty đã cung cấp các mặt hàng màu đỏ.
Dữ liệu cần tìm nằm trên 3 quan hệ, tên công ty nằm trên quan hệ Co, màu mặt hàng nằm trên quan hệ Pr, mặt hàng gắn liền với công ty cung cấp nằm trên quan hệ CPP. Mối liên quan dữ liệu được gắn kết bởi các thuộc tính SoHieu và MaHieu (cũng như ví dụ trên để giảm bớt không gian tìm kiếm ta thực hiện vài phép chiếu trước khi kết nối).
TenCo(Mau=’Đỏ’( SoHieu,TenCo(Co)* SoHieu,MaHieu(CPP)*MaHieu,Mau(Pr)))
Continue
Giảng viên chính: ThS CÁP XUÂN TUẤN
Co
{SoHieu TenCo}
CPP
{SoHieu Mahieu}
Pr
{Mahieu Mau}
SoHieu,TenCo(Co)* SoHieu,MaHieu(CPP)*MaHieu,Mau(Pr)
{Sohieu TenCo Mahieu Mau}
Mau=’Đỏ’( ...) {Sohieu TenCo Mahieu Mau}
TenCo(Mau=’Đỏ’( ...)) { TenCo }
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
1. Cơ sở dữ liệu quan hệ
1.3. Đại số quan hệ
1.3.11. Tối ưu biểu thức
Để làm thoả mãn một yêu cầu tìm kiếm ta có thể xây dựng nhiều biểu thức đại số khác nhau. Chẳng hạn với ví dụ 5 của mục 2.1.2. 10 ta có biểu thức sau đây cho kết quả như nhau:
(1) Tenco(mau= ‘đỏ’ (SoHieu, TenCo(Co)*SoHieu, MaHieu(CPP)*MaHieu, mau(Pr))))
(2) Tenco(mau = ‘đỏ’ (Co* CPP * Pr))
Mặc dù kết quả cuối cùng là như nhau song biểu thức (1) cần sử dụng không gian bộ nhớ nhỏ hơn so với biểu thức (2) và thực nghiệm đã cho thấy là nó cần thời gian xử lý ngắn hơn, nhất là đối với quan hệ có nhiều dữ liệu. Lý do là ở biểu thức (1) trước khi kết nối đã lược bớt dữ liệu trong những thuộc tính không tham gia vào tính toán bằng phép chiếu, còn ở biểu thức (2) các dữ liệu thừa cũng được mang đi cho các phép xử lý tiếp theo. ở đây ta có thể nói biểu thức (1) là tối ưu hơn biểu thức (2).
Quy tắc cơ bản nhất để có biểu thức tối ưu là loại bỏ càng sớm càng tốt những dữ liệu không tham gia vào quá trình xử lý tiếp theo, tức là thực hiện các phép chọn và chiếu sớm nhất có thể.
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2. Ngôn ngữ hỏi có cấu trúc SQL
Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU
Ngôn ngữ SQL là ngôn ngữ hỏi có cấu trúc, bản thân SQL là viết tắt của Structured Query Language.
2.1 Các cấu trúc định nghĩa dữ liệu
2.1.1. Định nghĩa khung quan hệ
2.1.2. Thêm một thuộc tính vào một quan hệ đã có
2.2. Các cấu trúc thao tác dữ liệu
2.2.1. Câu hỏi tìm kiếm thông tin
2.2.2. Các thao tác cập nhật.
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2. Ngôn ngữ hỏi có cấu trúc SQL
Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU
2.1 Các cấu trúc định nghĩa dữ liệu
2.1.1. Định nghĩa khung quan hệ
Câu định nghĩa khung quan hệ có cấu trúc: Creat Table
Ví dụ 2.2.1:
Ta định nghĩa khung của quan hệ Co. Quan hệ Co có 4 thuộc tính, 3 thuộc tính SoHieu, TenCo, Diachi có kiểu giá trị thuộc tính là văn bản, thuộc tính Von có kiểu giá trị là số, ta có câu lệnh sau (kiểu giá trị lấy kí hiệu trong hệ FOXPRO):
Creat Table Co (TenCo C(15), SoHieu C(3), Von N (10,0), DiaChi C(25))
Ta lưu ý rằng câu lệnh này chỉ tạo ra một khung quan hệ (hay là một quan hệ rỗng) và chưa hề có dữ liệu.
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2. Ngôn ngữ hỏi có cấu trúc SQL
Chương 2: NGÔN NGỮ THAO TÁC DỮ LIỆU
2.1 Các cấu trúc định nghĩa dữ liệu
2.1.2. Thêm một thuộc tính vào một quan hệ đã có
Ta có thể thêm một thuộc tính vào một quan hệ đã có bằng cấu trúc: Alter Table
Ví dụ 2.22:
Ta bổ sung một thông tin cần quản lý về các công ty là năm công ty bắt đầu hoạt động, quan hệ Co lúc này cần bổ sung một thuộc tính.
Thông tin được ghi dưới dạng số nguyên gồm 4 con số.
Alter Table Co Add NamHoatDong N(4,0)
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2.2. Các cấu trúc thao tác dữ liệu
2.2.1. Câu hỏi tìm kiếm thông tin
Cấu trúc chung của SQL cho một số câu tìm kiếm là Select
Chúng ta sẽ làm rõ cách sử dụng cấu trúc này thông qua các ví dụ cụ thể. Cú pháp SQL trình bày trong phần này có tính chất tổng quát, không phụ thuộc một hệ cụ thể nào, tuy nhiên hình thức có phần thiên về cú pháp của FOXPRO. Các ví dụ sử dụng các quan hệ quản lý bán hàng đã được trình bày ở trên.
a. Tìm kiếm không điều kiện
b. Tìm kiếm với các điều kiện đơn giản
c. Tìm kiếm với các hàm
d. Tìm kiếm có sắp xếp
e. Tìm kiếm theo nhóm
f. Tìm kiếm có liên kết
g. Tìm kiếm với các câu hỏi phức hợp
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2.2. Các cấu trúc thao tác dữ liệu
2.2.1. Câu hỏi tìm kiếm thông tin
a. Tìm kiếm không điều kiện
Ví dụ 2.23:
Cho biết danh sách các nhà cung cấp.
Với yêu cầu này dữ liệu cần thiết nằm trong quan hệ Co.
Select * From Co
Kí hiệu * để chỉ rằng ta cần lấy tất cả các thuộc tính của đối tượng tìm kiếm.
Ví dụ 2.24:
Cho biết danh sách thông tin của các chuyến hàng bao gồm mã số dự án, mã hiệu mặt hàng và giá trị của chuyến hàng đó.
Với yêu cầu này dữ liệu cần thiết nằm trong quan hệ CPP.
Select MaPj, MaHieu, SoLuong*DonGia From CPP
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2.2. Các cấu trúc thao tác dữ liệu
2.2.1. Câu hỏi tìm kiếm thông tin
a. Tìm kiếm không điều kiện
Ví dụ 2.25:
Cho biết mã số của các mặt hàng đã được cung cấp.
Dữ liệu cần thiết nằm trong quan hệ CPP, lưu ý rằng một mặt hàng có thể được cung cấp trong nhiều chuyến hàng khác nhau. Ta có hai cách làm sau:
Select MaHieu From CPP
Select Distinct MaHieu From CPP
Trong trường hợp thứ 2 ta thấy sử dụng từ khoá Distinct, từ khoá này được sử dụng nhằm chỉ thị việc lược bớt các giá trị giống nhau trong kết quả, chỉ giữ lại một giá trị đại diện, từ khoá này chỉ có tác dụng cho thuộc tính đứng ngay trước nó.
Nhận xét:
+ Sau từ khoá Select là danh sách các thuộc tính được lựa chọn, cho phép sử dụng cả các biểu thức để chỉ định thuộc tính.
+ Kết quả của sự thực hiện Select.. From.. Where.. là một quan hệ với tập thuộc tính được chỉ định sau từ khoá Select.
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2.2. Các cấu trúc thao tác dữ liệu
2.2.1. Câu hỏi tìm kiếm thông tin
b. Tìm kiếm với các điều kiện đơn giản
Ví dụ 2. 26:
Cho biết số hiệu các nhà cung cấp mặt hàng P2.
Dữ liệu cần thiết bao gồm số hiệu nhà cung cấp gắn liền vói mã hiệu của mặt hàng được cung cấp nằm trong quan hệ CPP.
Select SoHieu From CPP Where MaHieu = `P2`
Ví dụ 2.27:
Cho biết mã hiệu của các mặt hàng đã được bán có giá trị nằm trong khoảng từ 1000000 đồng đến 2000000 đồng.
Dữ liệu phục vụ cho việc tìm kiếm bao gồm mã hiệu mặt hàng và giá bán của nó nằm trong quan hệ CPP. Ta có hai cách làm sau đây cùng cho kết quả tương đương:
Select MaHieu From CPP Where (Dongia 1000000) and (Dongia 2000000)
Select MaHieu From CPP Where Dongia Between 1000000 and 2000000
Trong trường hợp thứ hai ta thấy xuất hiện toán tử có cấu trúc
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2.2. Các cấu trúc thao tác dữ liệu
2.2.1. Câu hỏi tìm kiếm thông tin
b. Tìm kiếm với các điều kiện đơn giản
Ví dụ 2.28:
Cho biết số hiệu các nhà cung cấp đã cung cấp ít nhất một trong các mặt hàng P1, P2, P3.
Select MaHieu From CPP Where (MaHieu = ‘P1’) or (MaHieu = ‘P2’) or (MaHieu = ‘P3’)
Select SoHieu From CPP Where MaHieu In (‘P1’, ‘P2’, ‘P3’)
Trong trường hợp thứ hai ta thấy xuất hiện toán tử có cấu trúc
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2.2. Các cấu trúc thao tác dữ liệu
2.2.1. Câu hỏi tìm kiếm thông tin
c. Tìm kiếm với các hàm
Câu tìm kiếm SQL cho phép sử dụng các hàm SQL trong thư viện hàm của hệ quản trị CSDL để tìm kiếm thông tin. Các hàm thường dùng là:
• Hàm đếm số lượng các bộ thoả mãn điều kiện: Count ([Distinct]Biểu thức). Hàm này thường kết hợp với mệnh đề Where... để biểu thị điều kiện. Từ khoá distinct đượcdùng để lược bớt những giá trị giống nhau.
• Hàm tính giá trị lớn nhất, nhỏ nhất của tập giá trị được tính theo biểu thức trên tập giá trị của các bộ của quan hệ: Max (Biểu thức), Min (biểu thức).
• Hàm tính tổng của tập giá trị được tính theo biểu thức trên các giá trị của các bộ của quan hệ: Sum (biểu thức kiểu số).
• Hàm tính trung bình của tập giá trị được tính theo biểu thức trên các giá trị thuộc tính kiểu số: Avg (biểu thức kiểu số).
Continue
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2.2. Các cấu trúc thao tác dữ liệu
2.2.1. Câu hỏi tìm kiếm thông tin
c. Tìm kiếm với các hàm
Ví dụ 2.29:
Cho biết số lượng hàng có mã hiệu P1 đã được bán
Select MaHieu, Sum(SoLuong) From CPP Where Mahieu = ‘P1’
Ví dụ 2.30:
Cho biết số chuyến hàng cung cấp mặt hàng P1
Select MaHieu, Count(MaHieu) From CPP Where MaHieu = ‘P1’
Ví dụ 2.31:
Cho biết đơn giá trung bình của mặt hàng P1
Select MaHieu, Avg (DonGia) From CPP Where MaHieu = ‘P1’
Ví dụ 2.32:
Cho biết tổng giá trị của mặt hàng P1 đã được cung cấp:
Select MaHieu, Sum(DonGiá*Soluong) From CPP Where MaHieu= ‘P1’
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2.2. Các cấu trúc thao tác dữ liệu
2.2.1. Câu hỏi tìm kiếm thông tin
d. Tìm kiếm có sắp xếp
Câu tìm kiếm SQL cho phép sắp xếp kết quả tìm kiếm bằng cách sử dụng mệnh đề Order By
Ví dụ 2.33:
Hãy cho biết số hiệu của các công ty có bán mặt hàng P1 và sắp xếp kết quả theo chiều giảm dần của số lượng chuyến hàng.
Select SoHieu, MaHieu From CPP Where MaHieu = ‘P1’ Order By Soluong Desc
Ví dụ 2. 34:
Hãy cho biết số hiệu của các công ty có bán mặt hàng P1 và sắp xếp kết quả theo chiều tăng dần của giá trị chuyến hàng.
Select SoHieu From CPP Where MaHieu = ‘P1’ Order By DonGia*Soluong
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên chính: ThS CÁP XUÂN TUẤN
2.2. Các cấu trúc thao tác dữ liệu
2.2.1. Câu hỏi tìm kiếm thông tin
e. Tìm kiếm theo nhóm
Câu tìm kiếm SQL sử dụng mệnh đề Group By
Ví dụ 2.35:
Cho biết số lượng hàng mà mỗi công ty đã cung cấp cho khách hàng.
Select SoHieu, Sum(Soluong) From CPP Grou
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Nguyễn Phi
Dung lượng: |
Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)