1. Trang chủ
  2. » Giáo án - Bài giảng

cơ sở dữ liệu nguyễn trung trực cơ sở dữ liệu nguyễn trung trực sinhvienzone com

0 87 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

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

Nội dung

Chương Tổng quan sở liệu Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT https://fb.com/sinhvienzonevn Nội dung Các khái niệm CSDL quan hệ ™ Các ràng buộc tồn vẹn ™ Chuẩn hóa liệu ™ Các phép tốn đại số quan hệ ™ Ngơn ngữ SQL ™ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT https://fb.com/sinhvienzonevn Các khái niệm CSDL quan hệ ™ Cơ sở liệu database f Cơ sở liệu tập hợp có tổ chức liệu có liên quan luận lý với f Dữ liệu (data): biểu diễn đối tượng kiện ghi nhận lưu trữ phương tiện máy tính f y y Dữ liệu có cấu trúc: số, ngày, chuỗi ký tự, … Dữ liệu cấu trúc: hình ảnh, âm thanh, đoạn phim, … f Có tổ chức (organized): người sử dụng dễ dàng lưu trữ, thao tác truy xuất liệu Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT https://fb.com/sinhvienzonevn Các khái niệm CSDL quan hệ ™ Cơ sở liệu f Có liên quan luận lý (logically related): liệu mơ tả lãnh vực mà nhóm người sử dụng quan tâm dùng để trả lời câu hỏi liên quan đến lãnh vực ™ Thông tin f information f Thông tin liệu xử lý để làm tăng hiểu biết người sử dụng f Dữ liệu ngữ cảnh f Dữ liệu tổng hợp / xử lý Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT https://fb.com/sinhvienzonevn Các khái niệm CSDL quan hệ ™ Cơ sở liệu quan hệ f relational database f CSDL quan hệ CSDL mà liệu lưu trữ bảng ™ Miền f domain f Miền tập giá trị Thông thường, miền tập kiểu liệu ký hiệu bắt đầu chữ D (ví dụ D1, D2, …) Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT https://fb.com/sinhvienzonevn Thuộc tính ™ Thuộc tính f attribute f Thuộc tính đặc tính riêng đối tượng liệu f Một đối tượng liệu có nhiều thuộc tính f Thơng thường, thuộc tính ký hiệu bắt đầu chữ A (ví dụ A1, A2, ) f Đối với đối tượng liệu, thuộc tính đặt tên phân biệt, gọi tên thuộc tính (attribute name) Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT https://fb.com/sinhvienzonevn Thuộc tính ™ Thuộc tính f Mỗi thuộc tính nhận giá trị từ miền, miền gọi miền trị thuộc tính Miền trị thuộc tính A ký hiệu dom(A) f Mỗi miền trị thuộc tính có chứa giá trị đặc biệt gọi giá trị rỗng (null value) dùng để đặc trưng cho giá trị xác định giá trị chưa thể xác định thời điểm xét xác định thời điểm sau Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT https://fb.com/sinhvienzonevn Thuộc tính Nhà cung cấp có thuộc tính: - Mã nhà cung cấp có tên Snum - Tên nhà cung cấp có tên Name - Thành phố có tên City Miền trị thuộc tính city ký hiệu dom(City) Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT https://fb.com/sinhvienzonevn Quan hệ ™ Lược đồ quan hệ f relation schema f Lược đồ quan hệ R tập hữu hạn thuộc tính {A1, A2, , An} ký hiệu R (A1, A2, , An) với R tên lược đồ quan hệ f Trong lược đồ quan hệ R, tên thuộc tính A1, A2, , An ™ Vị từ lược đồ quan hệ f predicate f Vị từ lược đồ quan hệ R, ký hiệu || R ||, phát biểu cho biết ngữ nghĩa lược đồ quan hệ R Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT https://fb.com/sinhvienzonevn Quan hệ ™ Bậc lược đồ quan hệ f degree, arity f Bậc lược đồ quan hệ số lượng thuộc tính lược đồ quan hệ Lược đồ quan hệ: Supplier (Snum, Name, City) Vị từ: “Mỗi nhà cung cấp có mã nhà cung cấp Snum phân biệt, tên nhà cung cấp Name, thuộc thành phố City” Bậc: Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 10 https://fb.com/sinhvienzonevn Quan hệ ™ Quan hệ f relation f Gọi D1, D2, , Dn miền tương ứng với thuộc tính A1, A2, , An D = D1 ∪ D2 ∪ … ∪ Dn f Quan hệ r lược đồ quan hệ R, ký hiệu r(R), tập hữu hạn ánh xạ {t1, t2, , tp} từ R vào D, với điều kiện ánh xạ t ∈ r t(Ai) ∈ Di, ≤ i ≤ n f Quan hệ r thể quan hệ (relation instance) lược đồ quan hệ R thời điểm Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 11 https://fb.com/sinhvienzonevn Quan hệ ™ Quan hệ f Mỗi ánh xạ gọi (tuple) quan hệ Một quan hệ bậc n gọi bộ−n (n−tuple) f Một quan hệ bao gồm nhiều giá trị, giá trị gọi thành phần (component) y Thành phần A u ký hiệu u[A] u.A, thành phần X = {A1, A2, , Ak} u ký hiệu u[X] f Bậc quan hệ lược đồ quan hệ bậc lược đồ quan hệ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 12 https://fb.com/sinhvienzonevn Quan hệ Lược đồ quan hệ: Supplier (Snum, Name, City) Khóa: Snum Thuộc tính khơng khóa: Name, City Siêu khóa: {Snum, Name}, … Quan hệ: Supplier Snum Name City S1 Nguyễn Trung Tiến SF S2 Trần Thị Yến LA S3 Nguyễn Văn An SF Bộ: u = (‘S1’, ‘Nguyễn Trung Tiến’, ‘SF’) Thành phần: u[Snum, Name] = (‘S1’, ‘Nguyễn Trung Tiến’) Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 13 https://fb.com/sinhvienzonevn Quan hệ ™ Khóa f key f Khóa lược đồ quan hệ R có tập thuộc tính U = {A1, A2, , Am} tập K = {Aj1, Aj2, Ajn}, với j1, j2, jn số nguyên phân biệt nằm khoảng từ đến m, phải thỏa mãn đồng thời hai điều kiện sau đây: (1) ∀r(R), ∀t1, t2 ∈ r, t1 ≠ t2 t1[K] ≠ t2[K] (2) Không tồn K’ ⊂ K cho K’ thỏa mãn điều kiện (1) Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 14 https://fb.com/sinhvienzonevn Quan hệ ™ Khóa f Một khóa có thuộc tính gọi khóa đơn (simple key) f Một khóa có nhiều thuộc tính gọi khóa phức hợp (composite key) f Khóa thường sử dụng làm mục (index) bảng liệu để làm tăng tốc độ xử lý câu truy vấn f Một tập thuộc tính K ⊆ U thỏa mãn điều kiện (1) gọi siêu khóa (superkey) R Một siêu khóa hiển nhiên R U Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 15 https://fb.com/sinhvienzonevn Quan hệ ™ Khóa f Một lược đồ quan hệ R phải có khóa có nhiều khóa f Các thuộc tính thuộc khóa gọi thuộc tính khóa (prime attribute), thuộc tính lại lược đồ quan hệ gọi thuộc tính khơng khóa (nonprime attribute) f Trong lược đồ quan hệ, thuộc tính khóa gạch Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 16 https://fb.com/sinhvienzonevn Quan hệ ™ Khóa f Tất khóa lược đồ quan hệ gọi khóa dự tuyển (candidate key) f Một khóa dự tuyển chọn làm khóa tiêu biểu, khóa gọi khóa (primary key) f Một lược đồ quan hệ có khóa có nhiều khóa dự tuyển f Trong lược đồ quan hệ, nhiều thuộc tính gọi khóa ngoại (foreign key) chúng khóa lược đồ quan hệ khác Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 17 https://fb.com/sinhvienzonevn Quan hệ ™ Lược đồ sở liệu database schema f Lược đồ sở liệu tập hợp lược đồ quan hệ f Trong lược đồ sở liệu, tên lược đồ quan hệ f Lược đồ sở liệu: Emp (Empnum, Name, Sal, Tax, Mgrnum, Deptnum) Dept (Deptnum, Name, Area, Mgrnum) Supplier (Snum, Name, City) Supply (Snum, Pnum, Deptnum, Quan) Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 18 https://fb.com/sinhvienzonevn Ràng buộc toàn vẹn ™ Ràng buộc toàn vẹn f integrity constraint f Ràng buộc toàn vẹn qui tắc mà tất liệu CSDL phải thỏa mãn qui tắc ™ Ràng buộc miền trị f domain constraint f Các giá trị cho phép thuộc tính ™ Tồn vẹn thực thể f entity integrity f Thuộc tính khóa khơng có giá trị rỗng (null value) Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 19 https://fb.com/sinhvienzonevn Ràng buộc toàn vẹn ™ Qui tắc hoạt động f action assertion f Các qui tắc nghiệp vụ (business rule) ™ Ràng buộc toàn vẹn tham chiếu f referential integrity constraint f Ràng buộc toàn vẹn tham chiếu qui tắc mà tất giá trị khóa ngoại (nếu khác null) quan hệ bên phía nhiều phải có giá trị khóa quan hệ bên phía Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 20 https://fb.com/sinhvienzonevn Ràng buộc toàn vẹn ™ Ràng buộc toàn vẹn tham chiếu f Qui y y y tắc xóa hàng liệu Hạn chế (restrict): khơng cho phép xóa hàng bên phía cha (parent) tồn hàng liên quan bên phía phụ thuộc (dependent) Tầng (cascade): tự động xóa hàng bên phía phụ thuộc tương ứng với hàng bên phía cha Gán null (set-to-null): gán null cho khóa ngoại hàng bên phía phụ thuộc tương ứng với hàng bên phía cha Khơng áp dụng cho thực thể yếu Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 21 https://fb.com/sinhvienzonevn Chuẩn hóa liệu ™ Chuẩn hóa liệu f data normalization f Chuẩn hóa liệu trình thuận nghịch bước để thay tập hợp quan hệ cho trước thành quan hệ có cấu trúc đơn giản chuẩn f Chuẩn hóa liệu nhằm để cải tiến thiết kế CSDL luận lý thỏa mãn ràng buộc tồn vẹn tránh liệu bị lặp lại khơng cần thiết Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 22 https://fb.com/sinhvienzonevn Chuẩn hóa liệu ™ Mục đích chuẩn hóa liệu f Loại bỏ bất thường (anomaly) quan hệ để có quan hệ có cấu trúc tốt hơn, nhỏ f Quan hệ có cấu trúc tốt (well-structured relation) y y Có dư thừa liệu tối thiểu Cho phép người sử dụng thêm vào, cập nhật xóa bỏ liệu mà không gây mâu thuẫn liệu Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 23 https://fb.com/sinhvienzonevn Chuẩn hóa liệu ™ Các vấn đề sau tồn lược đồ quan hệ: f Bất thường lặp lại (repetition anomaly) f Bất thường cập nhật (update anomaly) f Bất thường thêm vào (insertion anomaly) f Bất thường xóa bỏ (deletion anomaly) ™ Qui tắc: Một quan hệ không chứa thông tin nhiều kiểu thực thể Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 24 https://fb.com/sinhvienzonevn Chuẩn hóa liệu ™ Bất thường lặp lại f repetition anomaly f Thơng tin bị lặp lại khơng cần thiết Điều làm lãng phí vùng nhớ lưu trữ f Ví dụ: xét lược đồ quan hệ Supply (Snum, Pnum, Sname, Deptnum, Quan) y Tên nhà cung cấp Sname bị lặp lại với mặt hàng Pnum nhà cung cấp có mã Snum Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 25 https://fb.com/sinhvienzonevn Chuẩn hóa liệu Supply Snum Sname Pnum Deptnum Quan S1 Nguyễn Trung Tiến P1 D1 10 S1 Nguyễn Trung Tiến P2 D1 20 S2 Trần Thị Yến P1 D1 15 S2 Trần Thị Yến P2 D2 30 S3 Nguyễn Văn An P3 D1 25 Hình 2.1 Bất thường lặp lại Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 26 https://fb.com/sinhvienzonevn Chuẩn hóa liệu ™ Bất thường cập nhật f update anomaly f Đây hệ lặp lại liệu, thực việc cập nhật gặp nhiều rắc rối: tốn thời gian cập nhật, mâu thuẫn liệu f Ví dụ: thay đổi tên nhà cung cấp (sửa Sname) quan hệ Supply cần phải cập nhật nhiều nhà cung cấp Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 27 https://fb.com/sinhvienzonevn Chuẩn hóa liệu Supply Snum Sname Pnum Deptnum Quan S1 Nguyễn Trung Thành P1 D1 10 S1 Nguyễn Trung Thành P2 D1 20 S2 Trần Thị Yến P1 D1 15 S2 Trần Thị Yến P2 D2 30 S3 Nguyễn Văn An P3 D1 25 Hình 2.2 Bất thường cập nhật Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 28 https://fb.com/sinhvienzonevn Chuẩn hóa liệu ™ Bất thường thêm vào f insertion anomaly f Trong số trường hợp thêm thông tin vào CSDL f Ví dụ: có thơng tin nhà cung cấp mà chưa cung cấp mặt hàng thơng tin khơng thể thêm vào quan hệ Supply, thêm vào quan hệ Pnum phải có giá trị null, Pnum thuộc tính khóa nên khơng thể có giá trị null (ràng buộc tồn vẹn khóa) Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 29 https://fb.com/sinhvienzonevn Chuẩn hóa liệu Supply Snum Sname Pnum Deptnum Quan S1 Nguyễn Trung Tiến P1 D1 10 S1 Nguyễn Trung Tiến P2 D1 20 S2 Trần Thị Yến P1 D1 15 S2 Trần Thị Yến P2 D2 30 S3 Nguyễn Văn An P3 D1 25 S4 Nguyễn Ngọc Thanh Trúc null null null Hình 2.3 Bất thường thêm vào Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 30 https://fb.com/sinhvienzonevn Chuẩn hóa liệu ™ Bất thường xóa bỏ f deletion anomaly f Việc xóa bỏ làm thơng tin CSDL f Ví dụ: nhà cung cấp có mã ‘S3’ khơng cung cấp mặt hàng có mã ‘P3’, việc xóa bỏ quan hệ Supply làm thơng tin nhà cung cấp có mã ‘S3’, nhà cung cấp xuất lần quan hệ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 31 https://fb.com/sinhvienzonevn Chuẩn hóa liệu Supply Snum Sname Pnum Deptnum Quan S1 Nguyễn Trung Tiến P1 D1 10 S1 Nguyễn Trung Tiến P2 D1 20 S2 Trần Thị Yến P1 D1 15 S2 Trần Thị Yến P2 D2 30 S3 Nguyễn Văn An P3 D1 25 Hình 2.4 Bất thường xóa bỏ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 32 https://fb.com/sinhvienzonevn Phụ thuộc hàm ™ Phụ thuộc hàm f FD – Functional Dependency f Cho r quan hệ, X Y hai tập thuộc tính r f Chúng ta nói “X xác định hàm Y” “Y phụ thuộc hàm vào X”, ký hiệu X → Y gọi phụ thuộc hàm nếu: ∀u, v ∈ r: u[X] = v[X] ⇒ u[Y] = v[Y] tức là, với giá trị X r tương ứng với giá trỉ Y f Khóa quan hệ xác định hàm thuộc tính khơng khóa quan hệ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 33 https://fb.com/sinhvienzonevn Phụ thuộc hàm ™ Định thuộc f determinant phụ thuộc hàm X → Y, X gọi định thuộc f Trong ™ Phụ thuộc hàm riêng phần f partial functional dependency f X → A gọi phụ thuộc hàm riêng phần tồn Y ⊂ X Y → A ™ Phụ thuộc hàm đầy đủ f full functional dependency f X → A gọi phụ thuộc hàm đầy đủ không tồn Y ⊂ X Y → A Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 34 https://fb.com/sinhvienzonevn Phụ thuộc hàm ™ Phụ thuộc bắc cầu f transitive dependency f X → A gọi phụ thuộc bắc cầu tồn Y X → Y, Y → A, Y −/→ X A ∉ XY Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 35 https://fb.com/sinhvienzonevn Hệ luật suy diễn Armstrong ™ Hệ luật suy diễn Armstrong f Armstrong’s axioms f Gồm luật suy diễn (inference axiom): F1 Phản xạ (reflexivity): Y ⊆ X ⇒ X → Y F2 Gia tăng (augmentation): X → Y ⇒ XZ → YZ F3 Bắc cầu (transitivity): X → Y Y → Z ⇒ X → Z ™ Các luật suy diễn khác F4 Hợp (additivity): X → Y X → Z ⇒ X → YZ F5 Chiếu (projectivity): X → YZ ⇒ X → Y F6 Bắc cầu giả (pseudotransitivity): X → Y YZ → W ⇒ XZ → W Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 36 https://fb.com/sinhvienzonevn Dạng chuẩn ™ Định nghĩa Lược đồ quan hệ R dạng chuẩn (1NF First Normal Form) thuộc tính R chứa giá trị nguyên tố (atomic value), giá trị không danh sách giá trị giá trị phức hợp (composite value) ™ Các thuộc tính lược đồ quan hệ R f Khơng thuộc tính đa trị (multivalued attribute) f Khơng thuộc tính phức hợp (composite attribute) Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 37 https://fb.com/sinhvienzonevn Dạng chuẩn Các quan hệ dạng chuẩn có bất thường đề cập ™ Để loại bỏ số bất thường này, quan hệ dạng chuẩn cần phải phân rã thành quan hệ dạng chuẩn cao ™ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 38 https://fb.com/sinhvienzonevn Dạng chuẩn R Mãsv Họtên Mãlớp Tênlớp Điểmthi S1 Tiến L1 MT01 M1 S1 Tiến L1 MT01 M2 S1 Tiến L1 MT01 M3 S2 Trúc L1 MT01 M1 S2 Trúc L1 MT01 M2 S3 Hiền L2 MT02 M1 Hình 2.5 Lược đồ quan hệ R không dạng chuẩn thuộc tính Điểmthi thuộc tính phức hợp Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 39 https://fb.com/sinhvienzonevn Dạng chuẩn R Mãsv Họtên Mãlớp Tênlớp Mônhọc Điểm S1 Tiến L1 MT01 M1 S1 Tiến L1 MT01 M2 S1 Tiến L1 MT01 M3 S2 Trúc L1 MT01 M1 S2 Trúc L1 MT01 M2 S3 Hiền L2 MT02 M1 Hình 2.6 Lược đồ quan hệ R 1NF thuộc tính R khơng thuộc tính đa trị, khơng thuộc tính phức hợp Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 40 https://fb.com/sinhvienzonevn Dạng chuẩn ™ Các bất thường quan hệ 1NF f Thêm y Không thể thêm thông tin sinh viên có mã S4, tên Thành, thuộc lớp có mã L1 sinh viên chưa đăng ký học môn học f Cập y nhật Sửa tên sinh viên có tên Tiến với tên Thành phải sửa tất hàng sinh viên f Xóa y vào bỏ Xóa thơng tin sinh viên S3 đăng ký môn học M1 làm thông tin sinh viên f Nguyên y nhân Tồn thuộc tính khơng khóa phụ thuộc hàm riêng phần vào khóa Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 41 https://fb.com/sinhvienzonevn Dạng chuẩn ™ Định nghĩa Lược đồ quan hệ R dạng chuẩn (2NF Second Normal Form) tập phụ thuộc hàm F R dạng chuẩn thuộc tính khơng khóa phụ thuộc hàm đầy đủ vào khóa R Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 42 https://fb.com/sinhvienzonevn Dạng chuẩn R Mãsv Họtên Mãlớp Tênlớp Mônhọc Điểm S1 Tiến L1 MT01 M1 S1 Tiến L1 MT01 M2 S1 Tiến L1 MT01 M3 S2 Trúc L1 MT01 M1 S2 Trúc L1 MT01 M2 S3 Hiền L2 MT02 M1 Các phụ thuộc hàm: Mãsv → {Họtên, Mãlớp} Mãlớp → Tênlớp {Mãsv, Mơnhọc} → Điểm Khóa R: {Mãsv, Mơnhọc} Hình 2.7 Lược đồ quan hệ R khơng 2NF thuộc tính khơng khóa Họtên phụ thuộc hàm riêng phần vào khóa {Mãsv, Mơnhọc} Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 43 https://fb.com/sinhvienzonevn Dạng chuẩn R2 R1 Mãsv Họtên Mãlớp Tênlớp Mãsv Mônhọc Điểm S1 Tiến L1 MT01 S1 M1 S2 Trúc L1 MT01 S1 M2 S3 Hiền L2 MT02 S1 M3 S2 M1 S2 M2 S3 M1 Khóa R1: Mãsv Khóa R2: {Mãsv, Mơnhọc} Hình 2.8 Lược đồ quan hệ R1 R2 2NF thuộc tính khơng khóa phụ thuộc hàm đầy đủ vào khóa Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 44 https://fb.com/sinhvienzonevn Dạng chuẩn ™ Các bất thường quan hệ 2NF f Thêm y Không thể thêm thơng tin lớp L3 có tên MT03 chưa có sinh viên học lớp f Cập y nhật Sửa tên lớp có mã L1 với tên MT_1 phải sửa tất hàng lớp f Xóa y vào bỏ Xóa thơng tin sinh viên có mã S3 làm thông tin lớp L2 f Nguyên y nhân Tồn thuộc tính khơng khóa phụ thuộc bắc cầu vào khóa Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 45 https://fb.com/sinhvienzonevn Dạng chuẩn ™ Định nghĩa Lược đồ quan hệ R dạng chuẩn (3NFThird Normal Form) tập phụ thuộc hàm F R dạng chuẩn thuộc tính khơng khóa khơng phụ thuộc bắc cầu vào khóa R ™ Định nghĩa Lược đồ quan hệ R dạng chuẩn tập phụ thuộc hàm F R dạng chuẩn phụ thuộc hàm X → A với A ∉ X X siêu khóa R A thuộc tính khóa Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 46 https://fb.com/sinhvienzonevn Dạng chuẩn R1 Mãsv Họtên Mãlớp Tênlớp S1 Tiến L1 MT01 S2 Trúc L1 MT01 S3 Hiền L2 MT02 Mãsv → Mãlớp Mãlớp −/→ Mãsv Mãlớp → Tênlớp Tênlớp ∉ {Mãsv, Mãlớp} Hình 2.9 Lược đồ quan hệ R1 khơng 3NF thuộc tính khơng khóa Tênlớp phụ thuộc bắc cầu vào khóa Mãsv Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 47 https://fb.com/sinhvienzonevn Dạng chuẩn R11 R12 Mãlớp Tênlớp Mãsv Họtên Mãlớp L1 MT01 S1 Tiến L1 L2 MT02 S2 Trúc L1 S3 Hiền L2 Khóa R11: Mãlớp Khóa R12: Mãsv Hình 2.10 Lược đồ quan hệ R11 R12 3NF thuộc tính khơng khóa khơng phụ thuộc bắc cầu vào khóa Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 48 https://fb.com/sinhvienzonevn Dạng chuẩn R Sinhviên Mônhọc Giảngviên Tiến CSDL G1 Tiến CNPM G2 Trúc CSDL G1 Các phụ thuộc hàm: Khóa R: {Sinhviên, Mơnhọc} Giảngviên → Mơnhọc {Sinhviên, Giảngviên} {Sinhviên, Mơnhọc} → Giảngviên Hình 2.11 Lược đồ quan hệ R 3NF không BCNF định thuộc Giảngviên khơng siêu khóa R Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 49 https://fb.com/sinhvienzonevn Dạng chuẩn ™ Các bất thường quan hệ 3NF f Thêm y Không thể thêm thông tin giảng viên G3 dạy mơn học KTLT chưa có sinh viên học môn học f Cập y nhật Sửa tên môn học giảng viên G1 với môn học KTLT phải sửa tất hàng giảng viên f Xóa y vào bỏ Xóa thơng tin sinh viên Tiến học môn học CNPM làm thông tin giảng viên G2 f Nguyên y nhân Tồn định thuộc khơng siêu khóa quan hệ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 50 https://fb.com/sinhvienzonevn Dạng chuẩn Boyce-Codd ™ Định nghĩa Lược đồ quan hệ R dạng chuẩn Boyce−Codd (BCNF - Boyce Codd Normal Form) tập phụ thuộc hàm F R dạng chuẩn phụ thuộc hàm X → A với A ∉ X X siêu khóa R ™ Nếu lược đồ quan hệ R dạng chuẩn Boyce-Codd R dạng chuẩn Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 51 https://fb.com/sinhvienzonevn Dạng chuẩn Boyce-Codd R1 R2 Giảngviên Mônhọc Sinhviên Giảngviên G1 CSDL Tiến G1 G2 CNPM Tiến G2 Trúc G1 Khóa R1: Giảngviên Khóa R2: {Sinhviên, Giảngviên} Hình 2.12 Lược đồ quan hệ R1 R2 BCNF định thuộc siêu khóa Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 52 https://fb.com/sinhvienzonevn Phân r㠙 Phân rã f decomposition rã ρ R(U) tập {R1(U1), R2(U2), …, Rk(Uk)} cho: (1) U = U1 ∪ U2 ∪ … ∪ Uk (2) ∀r(R), ri(Ri): ri = ∏Ui(r) với i = 1,2,…,k f Phân ™ Phân rã bảo tồn thơng tin f lossless decomposition f Phân rã ρ R phân rã bảo tồn thơng tin nếu: ∀r(R): r = r1 >< r2 >< … >< rk Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 53 https://fb.com/sinhvienzonevn Phân r㠙 Phân rã bảo toàn phụ thuộc hàm f dependency-preserving decomposition f Phân rã ρ R phân rã bảo toàn phụ thuộc hàm nếu: F + = (F1 ∪ F2 ∪ … ∪ Fk)+ với F tập phụ thuộc hàm R Fi tập phụ thuộc hàm Ri (i = 1,…,k) Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 54 https://fb.com/sinhvienzonevn Các phép toán đại số quan hệ ™ Năm phép toán f Phép chọn f Phép chiếu f Phép hợp f Phép hiệu f Phép tích Descartes Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 55 https://fb.com/sinhvienzonevn Các phép toán đại số quan hệ ™ Các phép toán khác f Phép giao f Phép kết−θ f Phép kết tự nhiên f Phép kết f Phép nửa kết−θ f Phép nửa kết tự nhiên f Phép chia Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 56 https://fb.com/sinhvienzonevn Phép chọn ™ Cho r(R) điều kiện F (là biểu thức luận lý có giá trị true false) bao gồm: f Các tốn hạng tên thuộc tính lược đồ quan hệ R f Các phép toán so sánh: =, ≠, , ≥ f Các phép tốn luận lý: not (¬), and (∧), or (∨) Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 57 https://fb.com/sinhvienzonevn Phép chọn ™ Phép chọn (selection) r theo điều kiện F, ký hiệu σF(r), cho kết quan hệ gồm r thỏa mãn điều kiện F true σF(r) = {u⏐u ∈ r F(u) = true} với F(u) điều kiện có cách thay tên thuộc tính điều kiện F giá trị tương ứng u Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 58 https://fb.com/sinhvienzonevn Phép chọn σA ≤ R R A B C A B C 3 6 7 Hình 2.13 Ví dụ phép chọn Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 59 https://fb.com/sinhvienzonevn Phép chiếu Cho lược đồ quan hệ R (A1, A2, Am) tập thuộc tính X = {Aj1, Aj2,…, Ajn} với j1, j2, jn số nguyên phân biệt nằm khoảng từ đến m ™ Phép chiếu (projection) r(R) tập thuộc tính X, ký hiệu ΠX(r), cho kết quan hệ gồm u(u1, u2,…, un) cho tồn v(v1, v2,…, vm) r để ui = vji với i = 1, 2, …, n ΠX(r) = {u⏐∃v ∈ r: u = v[X]} ™ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 60 https://fb.com/sinhvienzonevn Phép chiếu πAB R R A B C A B 8 Hình 2.14 Ví dụ phép chiếu Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 61 https://fb.com/sinhvienzonevn Phép hợp Cho hai quan hệ r s lược đồ quan hệ R ™ Phép hợp (union) hai quan hệ r s, ký hiệu r ∪ s, quan hệ gồm r hay s r ∪ s = {u⏐u ∈ r hay u ∈ s} ™ Phép hợp có tính giao hốn r∪s=s∪r ™ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 62 https://fb.com/sinhvienzonevn Phép hợp R∪S R A B C A B C 3 6 7 8 5 S A B C 3 Hình 2.15 Ví dụ phép hợp Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 63 https://fb.com/sinhvienzonevn Phép hiệu Cho hai quan hệ r s lược đồ quan hệ R ™ Phép hiệu (difference) quan hệ r cho s, ký hiệu r – s, quan hệ gồm r khơng có s r − s = {u⏐u ∈ r u ∉ s} ™ Phép hiệu tính giao hốn r−s≠s−r ™ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 64 https://fb.com/sinhvienzonevn Phép hiệu R−S R A B C A B C 6 7 8 A B C 3 S Hình 2.16 Ví dụ phép hiệu Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 65 https://fb.com/sinhvienzonevn Phép tích Descartes Cho quan hệ r lược đồ quan hệ R (A1, A2,…, Am) s lược đồ quan hệ S (B1, B2,…, Bn) ™ Phép tích Descartes (Cartesian product) hai quan hệ r s, ký hiệu r × s, quan hệ lược đồ T(A1, A2,…, Am, B1, B2,…, Bn) gồm u cho m thành phần r n thành phần cuối s r × s = {(u1, …, um, um+1, …, um+n)⏐ (u1, …, um) ∈ r (um+1, …, um+n) ∈ s} ™ Phép tích Descartes có tính giao hốn r×s=s×r ™ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 66 https://fb.com/sinhvienzonevn Phép tích Descartes R×T R A B C R.A B C T.A D 3 5 3 7 5 7 7 T A D 5 7 Hình 2.17 Ví dụ phép tích Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 67 https://fb.com/sinhvienzonevn Phép giao Cho hai quan hệ r s lược đồ quan hệ R ™ Phép giao (intersection) hai quan hệ r s, ký hiệu r ∩ s, quan hệ gồm có hai r s r ∩ s = {u⏐u ∈ r u ∈ s} ™ Phép giao hai quan hệ r s tính từ phép hiệu: r ∩ s = r – (r – s) = s − (s − r) ™ Phép giao có tính giao hốn r∩s=s∩r ™ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 68 https://fb.com/sinhvienzonevn Phép giao R∩S R A B C A B C 3 A B C 3 S Hình 2.18 Ví dụ phép giao Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 69 https://fb.com/sinhvienzonevn Phép kết - θ Cho r(R), s(S) T = R ∪ S (các thuộc tính R xem khác với thuộc tính S), θ phép so sánh (=, ≠, , ≥), A ∈ R B ∈ S hai thuộc tính so sánh với phép θ ™ Phép kết−θ (θ-join) r s hai thuộc tính A B, ký hiệu r >< A θ B s, cho kết quan hệ lược đồ quan hệ T gồm t sau: q(T) = {t ⏐ ∃tr ∈ r, ∃ts ∈ s: t[R] = tr, t[S] = ts, t[A] θ t[B]} ™ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 70 https://fb.com/sinhvienzonevn Phép kết - θ Phép kết−θ hai quan hệ r s tính từ phép tích phép chọn: r >< A θ B s = σA θ B (r × s) ™ Phép kết−θ có tính giao hốn r >< A θ B s = s >< A θ B r ™ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 71 https://fb.com/sinhvienzonevn Phép kết - θ R ZY R.A > T.A T R A B C R.A B C T.A D 5 6 7 5 8 T A D Hình 2.19 Ví dụ phép kết - θ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 72 https://fb.com/sinhvienzonevn Phép kết tự nhiên Cho r(R), s(S) T = R ∪ S (R S có thuộc tính chung) ™ Phép kết tự nhiên (natural join) r s, ký hiệu r >< s, cho kết quan hệ q(T) gồm t cho tồn tr ∈ r ts ∈ s với tr = t[R] ts = t[S] r >< s = {t ⏐ ∃tr ∈ r, ∃ts ∈ s: t[R] = tr , t[S] = ts} ™ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 73 https://fb.com/sinhvienzonevn Phép kết tự nhiên Phép kết tự nhiên khơng đòi hỏi hai tập thuộc tính R S giao khác rỗng Nếu R ∩ S = ∅ r >< s phép tích Descartes r s ™ Phép kết tự nhiên hai quan hệ r s tính từ phép tích, phép chọn phép chiếu: r >< s = ΠT σF (r × s) với F biểu thức R.A1 = S.A1 and R.A2 = S.A2 and … and R.Am = S.Am R ∩ S = {A1, A2, …, Am} ™ Phép kết tự nhiên có tính giao hốn r >< s = s >< r ™ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 74 https://fb.com/sinhvienzonevn Phép kết tự nhiên R ZY T R A B C A B C D 3 5 7 T A D Hình 2.20 Ví dụ phép kết Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 75 https://fb.com/sinhvienzonevn Phép kết Cho quan hệ r lược đồ quan hệ R, quan hệ s lược đồ quan hệ S, R S có thuộc tính chung Gọi T = R ∪ S ™ Phép kết (outer join) r s, ký hiệu r >< s tạo từ r không kết với s tạo từ s không kết với r; thuộc tính bị thiếu tạo thêm lấy giá trị rỗng (null) ™ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 76 https://fb.com/sinhvienzonevn Phép kết R ZYO T R A B C A B C D 3 5 7 null 8 null null null T A D Hình 2.21 Ví dụ phép kết Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 77 https://fb.com/sinhvienzonevn Phép kết ™ Phép kết trái (left outer join) r s, ký hiệu r L>< s tạo từ r không kết với s ™ Phép kết phải (right outer join) r s, ký hiệu r >< s tạo từ s không kết với r Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 78 https://fb.com/sinhvienzonevn Phép kết R LZYO T R A B C A B C D 3 5 7 null 8 null T A D Hình 2.22 Ví dụ phép kết trái Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 79 https://fb.com/sinhvienzonevn Phép kết R ZYOR T R A B C A B C D 3 5 7 null null T A D Hình 2.23 Ví dụ phép kết ngồi phải Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 80 https://fb.com/sinhvienzonevn Phép nửa kết - θ Cho r(R), s(S), θ phép so sánh (=, ≠, , ≥), A ∈ R B ∈ S hai thuộc tính so sánh với phép θ ™ Phép nửa kết−θ (θ-semijoin) r s hai thuộc tính A B, ký hiệu r >< A θ B s, cho kết quan hệ lược đồ quan hệ R sau: r >< A θ B s = {u ⏐ u ∈ r, ∃v ∈ s: u[A] θ v[B]} ™ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 81 https://fb.com/sinhvienzonevn Phép nửa kết - θ Phép nửa kết−θ hai quan hệ r s tính từ phép kết−θ phép chiếu: r >< A θ B s = ∏R (r >< A θ B s) ™ Phép nửa kết−θ khơng có tính giao hốn r >< A θ B s ≠ s >< A θ B r ™ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 82 https://fb.com/sinhvienzonevn Phép nửa kết - θ R Z< R.A > T.A T R A B C A B C 6 8 T A D Hình 2.24 Ví dụ phép nửa kết - θ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 83 https://fb.com/sinhvienzonevn Phép nửa kết tự nhiên Cho r(R), s(S) X = R ∩ S ≠ ∅ ™ Phép nửa kết tự nhiên (natural semijoin) r s, ký hiệu r >< s, cho kết quan hệ lược đồ quan hệ R sau: r >< s = {u ⏐ u ∈ r, ∃v ∈ s: u[X] = v[X]} ™ Phép nửa kết tự nhiên hai quan hệ r s tính từ phép kết tự nhiên phép chiếu: r >< s = ∏R (r >< s) ™ Phép nửa kết tự nhiên khơng có tính giao hốn r >< s ≠ s >< r ™ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 84 https://fb.com/sinhvienzonevn Phép nửa kết tự nhiên R R Z< T A B C A B C 3 7 T A D Hình 2.25 Ví dụ phép kết tự nhiên Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 85 https://fb.com/sinhvienzonevn Phép chia Cho quan hệ r lược đồ quan hệ R (A1, A2, …, Ak, Ak+1, …, Am) quan hệ s lược đồ quan hệ S (A1, A2, …, Ak) ™ Phép chia (division / quotient) quan hệ r cho s với s ≠ ∅, ký hiệu r ÷ s, cho kết quan hệ lược đồ quan hệ T (Ak+1, …, Am) gồm (uk+1, …, um) cho tất (u1, , uk) thuộc s (u1, …, uk, uk+1, …, um) thuộc r ™ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 86 https://fb.com/sinhvienzonevn Phép chia Phép chia quan hệ r cho s tính từ phép chiếu, phép tích, phép hiệu: r ÷ s = ∏ Ak+1,…,Am (r) − ∏ Ak+1,…,Am ((∏ Ak+1,…,Am (r) × s) – r) ™ Phép chia khơng có tính giao hốn r÷s≠s÷r ™ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 87 https://fb.com/sinhvienzonevn Phép chia P P÷Q Q A B A B 6 2 6 Hình 2.26 Ví dụ phép chia Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 88 https://fb.com/sinhvienzonevn Giới thiệu SQL Ngôn ngữ truy vấn có cấu trúc (SQL Structured Query Language) ngơn ngữ chuẩn dùng để tạo lập truy vấn sở liệu quan hệ ™ SQL ngôn ngữ chuẩn cho hệ quản trị CSDL quan hệ (RDBMS Relational DBMS) ™ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 89 https://fb.com/sinhvienzonevn Các đặc điểm ngôn ngữ SQL Ngôn ngữ SQL ngôn ngữ tựa tiếng Anh (English-like language), sử dụng từ select, insert, delete tập lệnh ™ Ngôn ngữ SQL ngôn ngữ phi thủ tục (nonprocedural language) ™ f Chỉ thơng tin cần thiết (what) f Không cần phải cách thực (how) để có thơng tin ™ SQL xử lý tập hợp mẩu tin (bảng) lần mẩu tin đơn lẻ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 90 https://fb.com/sinhvienzonevn Các đặc điểm ngơn ngữ SQL Nhiều loại người sử dụng SQL: người quản trị CSDL (DBA), người lập trình ứng dụng, người quản lý, người sử dụng cuối (end user) ™ SQL cung cấp nhiều lệnh cho nhiều công việc khác nhau: ™ f Truy vấn liệu f Thêm vào, cập nhật xóa bỏ hàng bảng f Tạo lập, thay đổi xóa bỏ đối tượng CSDL f Điều khiển truy xuất sở liệu đối tượng CSDL f Bảo đảm tính quán CSDL Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 91 https://fb.com/sinhvienzonevn Môi trường SQL ™ Danh mục f catalog f Tập ™ lược đồ dùng để mô tả CSDL Lược đồ f schema f Cấu trúc dùng để chứa mô tả đối tượng người sử dụng tạo (bảng sở, khung nhìn, ràng buộc) ™ Ngơn ngữ định nghĩa liệu f DDL - Data Definition Language f Các lệnh dùng để định nghĩa CSDL: tạo lập (create), thay đổi (alter) hủy bỏ (drop) đối tượng liệu, thiết lập ràng buộc Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 92 https://fb.com/sinhvienzonevn Môi trường SQL ™ Ngôn ngữ thao tác liệu f DML - Data Manipulation Language f Các lệnh dùng để bảo trì truy vấn CSDL: thêm (insert), sửa (update), xóa (delete) liệu bảng, truy vấn (select) ™ Ngôn ngữ điều khiển liệu f DCL - Data Control Language f Các lệnh dùng để điều khiển CSDL: quản trị quyền (grant, revoke) ghi nhận (committing) liệu Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 93 https://fb.com/sinhvienzonevn Định nghĩa bảng ™ Các bước tạo bảng f Bước Xác định kiểu liệu cột f Bước Xác định cột khơng thể có giá trị rỗng (null value) f Bước Xác định cột phải có giá trị (các khóa dự tuyển) f Bước Xác định khóa – khóa ngoại f Bước Xác định giá trị f Bước Xác định ràng buộc cột (mô tả miền trị) f Bước Tạo bảng mục bảng Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 94 https://fb.com/sinhvienzonevn Định nghĩa bảng Cú pháp lệnh CREATE TABLE CREATE TABLE [] AS SELECT statement; Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 95 https://fb.com/sinhvienzonevn Thay đổi định nghĩa bảng ™ Lệnh ALTER TABLE dùng để thay đổi định nghĩa bảng Cú pháp lệnh ALTER TABLE ALTER TABLE [ADD ⏐ MODIFY ⏐ DROP options] ( []) [ENABLE clause⏐ DISABLE clause]; Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 96 https://fb.com/sinhvienzonevn Thay đổi định nghĩa bảng ™ Các tùy chọn lệnh ALTER TABLE f ADD: Thêm cột và/hoặc ràng buộc vào bảng f MODIFY: Thay đổi định nghĩa cột f DROP: Hủy bỏ ràng buộc bảng Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 97 https://fb.com/sinhvienzonevn Thay đổi định nghĩa bảng ™ Hạn chế lệnh ALTER TABLE f Không thể thay đổi cột chứa giá trị NULL thành NOT NULL f Không thể thêm cột với ràng buộc NOT NULL Phải cho cột chứa giá trị rỗng, điền đầy đủ vào cột sau thay đổi cột thành NOT NULL f Khơng thể giảm kích thước thay đổi kiểu liệu cột, trừ cột khơng có chứa liệu f Khơng thể sử dụng tùy chọn MODIFY để định nghĩa ràng buộc cột ngoại trừ NULL/NOT NULL Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 98 https://fb.com/sinhvienzonevn Thay đổi định nghĩa bảng Thêm cột và/hoặc ràng buộc vào bảng: ALTER TABLE ADD ( []); Thêm cột Type vào bảng Customer_T ALTER TABLE Customer_T ADD (Type VARCHAR(2)); Thêm ràng buộc cột Standard_Price bảng Product_T ALTER TABLE Product_T ADD (CHECK(Standard_Price > 0)); Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 99 https://fb.com/sinhvienzonevn Thay đổi định nghĩa bảng Thay đổi định nghĩa cột: ALTER TABLE MODIFY ( [NULL]); Thay đổi chiều dài cột Customer_Name bảng Customer_T ALTER TABLE Customer_T MODIFY (Customer_Name VARCHAR2(30)); Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 100 https://fb.com/sinhvienzonevn Thay đổi định nghĩa bảng Hủy bỏ ràng buộc bảng: ALTER TABLE DROP [CONSTRAINT ⏐ PRIMARY KEY ⏐ UNIQUE ()] [CASCADE]; Hủy bỏ ràng buộc khóa bảng Order_line_T ALTER TABLE Order_Line_T DROP CONSTRAINT Order_Line_PK; Tùy chọn CASCADE hủy bỏ tất ràng buộc khóa ngoại tham chiếu đến bảng Customer_T ALTER TABLE Customer_T DROP CONSTRAINT Customer_PK CASCADE; Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 101 https://fb.com/sinhvienzonevn Thay đổi định nghĩa bảng Cho phép ràng buộc có hiệu lực / khơng có hiệu lực: ALTER TABLE [ENABLE ⏐ DISABLE] [CONSTRAINT ⏐ PRIMARY KEY ⏐ UNIQUE ()] [CASCADE]; Làm hiệu lực ràng buộc Customer_PK bảng Customer_T ALTER TABLE Customer_T DISABLE CONSTRAINT Customer_PK CASCADE; Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 102 https://fb.com/sinhvienzonevn Hủy bỏ bảng ™ Lệnh DROP TABLE dùng để hủy bỏ bảng lược đồ Cú pháp lệnh DROP TABLE: DROP TABLE [CASCADE CONSTRAINTS]; Hủy bỏ bảng Order_Line_T DROP TABLE Order_Line_T; Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 103 https://fb.com/sinhvienzonevn Lệnh INSERT ™ Thêm liệu vào bảng Cú pháp lệnh INSERT - Thêm hàng: INSERT INTO [()] VALUES (); Cú pháp lệnh INSERT - Thêm nhiều hàng: INSERT INTO [()] SELECT statement; Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 104 https://fb.com/sinhvienzonevn Lệnh INSERT INSERT INTO Customer_T VALUES (001, ‘Contemporary Casuals’, ‘1355 S Himes Blvd.’, ‘Gainesville’, ‘FL’, 32601); INSERT INTO Product_T (Product_ID, Product_Description, Product_Finish, Standard_Price, Product_On_Hand) VALUES (1, ‘End Table’, ‘Cherry’, 175, 8); INSERT INTO CA_Customer_T SELECT * FROM Customer_T WHERE State = ‘CA’; Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 105 https://fb.com/sinhvienzonevn Lệnh DELETE ™ Xóa bỏ hàng bảng Cú pháp lệnh DELETE: DELETE [FROM] [WHERE ]; Xóa số hàng bảng Customer_T DELETE FROM Customer_T WHERE State = ‘HI’; Xóa tất hàng bảng Customer_T DELETE FROM Customer_T ; Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 106 https://fb.com/sinhvienzonevn Lệnh UPDATE ™ Cập nhật liệu hàng bảng Cú pháp lệnh UPDATE: UPDATE [] SET = {, } [, = {, } …] [WHERE ]; Cập nhật số hàng bảng Product_T UPDATE Product_T SET Unit_Price = 775 WHERE Product_ID = 7; Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 107 https://fb.com/sinhvienzonevn Lệnh SELECT Dùng để truy vấn liệu bảng nhiều bảng ™ Lệnh SELECT thực phép toán đại số quan hệ ™ Phép tích f Phép kết f Phép chọn f Phép chiếu f Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 108 https://fb.com/sinhvienzonevn Lệnh SELECT Cú pháp lệnh SELECT: SELECT [DISTINCT] [INTO ] FROM [WHERE ] [GROUP BY [HAVING ]] [ORDER BY ]; Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 109 https://fb.com/sinhvienzonevn Lệnh SELECT ™ Các mệnh đề lệnh SELECT f SELECT: liệt kê cột (các biểu thức) kết f FROM: bảng khung nhìn chứa liệu cần thiết cho truy vấn f WHERE: điều kiện xử lý hàng để tạo kết f GROUP BY: gom nhóm hàng f HAVING: điều kiện xử lý nhóm f ORDER BY: thứ tự kết Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 110 https://fb.com/sinhvienzonevn Lệnh SELECT Hình 2.27 Thứ tự xử lý mệnh đề lệnh SELECT Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 111 https://fb.com/sinhvienzonevn Lệnh SELECT ™ Mệnh đề SELECT f SELECT [DISTINCT] f Thực phép chiếu đại số quan hệ f list of expressions danh sách biểu thức dùng để tạo kết quả, biểu thức phân cách dấu phẩy f Biểu thức hằng, biến (hoặc cột), kết hợp hằng, biến với phép toán (hàm) f Mỗi biểu thức có bí danh (alias) đứng phía sau, gọi bí danh cột (column alias) Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 112 https://fb.com/sinhvienzonevn Lệnh SELECT ™ Mệnh đề SELECT f Nếu list of expressions dấu * tất cột đưa vào kết f Cột có dạng: table_name.column_name f Từ khóa DISTINCT dùng để bảo đảm hàng kết truy vấn khác y y Nếu có nhiều cột chọn DISTINCT ảnh hưởng đến tồn cột Từ khóa DISTINCT phải đặt sau từ khóa SELECT Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 113 https://fb.com/sinhvienzonevn Lệnh SELECT ™ Mệnh đề INTO f INTO f Được sử dụng Oracle PL/SQL, dùng để gán giá trị biểu thức cho biến theo thứ tự tương ứng f List of variables danh sách biến phân cách dấu phẩy Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 114 https://fb.com/sinhvienzonevn Lệnh SELECT ™ Mệnh đề FROM f FROM f Thực phép tích đại số quan hệ, dùng để bảng chứa liệu cần lấy f List of tables danh sách bảng phân cách dấu phẩy f Mỗi bảng có bí danh bảng đứng phía sau tên bảng phân cách ký tự trống; đó, sử dụng bí danh bảng không sử dụng tên bảng Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 115 https://fb.com/sinhvienzonevn Lệnh SELECT SELECT * FROM Order_T; SELECT Order_ID, Order_Date, Customer_ID FROM Order_T; SELECT DISTINCT Order_Date “Date of Order” FROM Order_T; SELECT Order_ID AS Identifier, Order_Date Date FROM Order_T; Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 116 https://fb.com/sinhvienzonevn Lệnh SELECT ™ Mệnh đề WHERE f WHERE f Thực phép chọn, phép kết đại số quan hệ f Row conditions điều kiện xét hàng, hàng thỏa mãn điều kiện đưa vào kết truy vấn f Để lệnh SELECT có ngữ nghĩa, mệnh đề FROM có n bảng mệnh đề WHERE phải có n-1 điều kiện kết Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 117 https://fb.com/sinhvienzonevn Lệnh SELECT Các phép toán so sánh = Bằng < Nhỏ Lớn >= Lớn Không != Không BETWEEN … AND … Giữa hai giá trị IN (list) Một giá trị danh sách LIKE string Giống khuôn mẫu IS NULL Là giá trị rỗng Các phép toán phủ định NOT BETWEEN … AND … NOT IN (list) NOT LIKE string IS NOT NULL Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 118 https://fb.com/sinhvienzonevn Lệnh SELECT NOT True False Null False True Null AND True False Null True True False Null False False False False Null Null False Null OR True False Null True True True True False True False Null Null True Null Null Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 119 https://fb.com/sinhvienzonevn Lệnh SELECT SELECT Product_ID, Standard_Price FROM Product_T WHERE Standard_Price < 275; SELECT Cust.Customer_Name AS Name, Customer_Address FROM Customer_T Cust WHERE Customer_Name = ‘Home Furnishings’; SELECT Product_ID, Standard_Price FROM Product_ WHERE Standard_Price BETWEEN 100 AND 200; SELECT Customer_Name, City, State FROM Customer_T WHERE State IN (‘FL’, ‘TX’, ‘CA’, ‘HI’); Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 120 https://fb.com/sinhvienzonevn Lệnh SELECT SELECT Product_Description, Product_Finish, Standard_Price FROM Product_T WHERE (Product_Description LIKE ‘%Desk’ OR Product_Description LIKE ‘_A%’) AND Standard_Price > 300; SELECT Product_ID, Product_Finish, Standard_Price FROM Product_T WHERE Product_Description IS NULL; SELECT COUNT(*) FROM Order_Line_T WHERE Order_ID = 1004; Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 121 https://fb.com/sinhvienzonevn Lệnh SELECT ™ Mệnh đề GROUP BY f GROUP BY f Dùng để phân chia hàng bảng thành nhóm nhỏ f Các hàm nhóm sử dụng để trả thơng tin chung cho nhóm f Mỗi nhóm xuất hàng kết truy vấn f Trong trường hợp lệnh SELECT có hai mệnh đề WHERE GROUP BY hàng chọn điều kiện mệnh đề WHERE, sau phân chia hàng chọn thành nhóm Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 122 https://fb.com/sinhvienzonevn Lệnh SELECT ™ Mệnh đề GROUP BY f Các cột mệnh đề GROUP BY khơng bắt buộc phải có mệnh đề SELECT Để cho kết truy vấn có ngữ nghĩa cột mệnh đề GROUP BY nên có mệnh đề SELECT f Khi có mệnh đề GROUP BY, tất cột có mệnh đề SELECT phải có mệnh đề GROUP BY, ngoại trừ chúng hàm nhóm f Nếu lệnh SELECT khơng có mệnh đề GROUP BY tồn bảng xem nhóm Nếu mệnh đề SELECT có chứa hàm nhóm khơng thể lấy chi tiết hàng nhóm Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 123 https://fb.com/sinhvienzonevn Lệnh SELECT SELECT State, COUNT(State) FROM Customer_T GROUP BY State; SELECT State, COUNT(State) FROM Customer_T WHERE State IN (‘FL’, ‘TX’, ‘CA’, ‘HI’) GROUP BY State; Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 124 https://fb.com/sinhvienzonevn Lệnh SELECT ™ Mệnh đề HAVING f HAVING f Dùng để xác định nhóm đưa vào kết truy vấn f Group conditions điều kiện xét cho nhóm f Mệnh đề HAVING đứng trước mệnh đề GROUP BY, mệnh đề GROUP BY nên đứng trước dễ hiểu f Tất cột có mệnh đề HAVING phải có mệnh đề GROUP BY, ngoại trừ chúng hàm nhóm Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 125 https://fb.com/sinhvienzonevn Lệnh SELECT ™ Mệnh đề HAVING f Các nhóm tạo hàm nhóm tính tốn trước thực mệnh đề HAVING để chọn nhóm f Mệnh đề WHERE khơng dùng để chọn nhóm f Nếu lệnh SELECT có mệnh đề WHERE, GROUP BY HAVING thứ tự thực mệnh đề WHERE (để chọn hàng), GROUP BY (để phân chia nhóm) sau HAVING (để chọn nhóm) Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 126 https://fb.com/sinhvienzonevn Lệnh SELECT SELECT State, COUNT(State) FROM Customer_T GROUP BY State HAVING COUNT(State) > 1; SELECT State, COUNT(State) FROM Customer_T WHERE State IN (‘FL’, ‘TX’, ‘CA’, ‘HI’) GROUP BY State HAVING COUNT(State) > 1; Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 127 https://fb.com/sinhvienzonevn Lệnh SELECT ™ Mệnh đề ORDER BY f ORDER BY f Thông thường, thứ tự hàng trả kết truy vấn không xác định Mệnh đề ORDER BY dùng để thứ tự hàng f Mệnh đề ORDER BY luôn mệnh đề cuối lệnh SELECT f Thứ tự ngầm định tăng dần (ASC − ASCending), từ khóa DESC (descending) đứng sau tên cột dùng để định thứ tự giảm dần f Các cột mệnh đề ORDER BY khơng bắt buộc phải có mệnh đề SELECT Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 128 https://fb.com/sinhvienzonevn Lệnh SELECT SELECT State, COUNT(State) FROM Customer_T WHERE State IN (‘FL’, ‘TX’, ‘CA’, ‘HI’) GROUP BY State HAVING COUNT(State) > ORDER BY State DESC; Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 129 https://fb.com/sinhvienzonevn Hàm kết hợp ™ Hàm kết hợp (aggregate function) gọi hàm nhóm (group function) Hàm Giá trị trả AVG ([DISTINCT ⏐ ALL] n) Giá trị trung bình n, bỏ qua giá trị rỗng COUNT ([DISTINCT ⏐ ALL] expr *) Số hàng mà expr có giá trị khác rỗng * làm cho COUNT đếm tất hàng chọn, bao gồm hàng trùng hàng có giá trị rỗng MAX ([DISTINCT ⏐ ALL] expr) Giá trị lớn expr MIN ([DISTINCT ⏐ ALL] expr) Giá trị nhỏ expr SUM ([DISTINCT ⏐ ALL] n) Tổng giá trị n, bỏ qua giá trị rỗng STDDEV ([DISTINCT ⏐ ALL] n) Độ lệch chuẩn (STanDard DEViation) n, bỏ qua giá trị rỗng VARIANCE ([DISTINCT ⏐ ALL] n) Phương sai n, bỏ qua giá trị rỗng Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 130 https://fb.com/sinhvienzonevn Hàm kết hợp ™ Sử dụng hàm kết hợp f Kết hợp đơn (scalar aggregate): truy vấn trả giá trị hàm kết hợp f Kết hợp vectơ (vector aggregate): truy vấn trả nhiều giá trị hàm kết hợp (dùng GROUP BY) SELECT MAX(Standard_Price), MIN(Standard_Price) FROM Product_T; SELECT State, COUNT(State) FROM Customer_T GROUP BY State; Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 131 https://fb.com/sinhvienzonevn Thứ tự thực ưu tiên phép tốn ™ Các phép tốn có độ ưu tiên thực từ trái qua phải: f Biểu thức dấu ngoặc f Các phép toán số học *, / f Các phép toán số học +, − f Các phép toán so sánh phép toán SQL: =, !=, =, BETWEEN … AND, IN, LIKE, IS NULL f NOT f AND f OR Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 132 https://fb.com/sinhvienzonevn Các phép tốn tập hợp ™ Hai lệnh SELECT kết nối với phép toán tập hợp bao gồm phép hợp (union), phép giao (intersection) phép hiệu (minus) SELECT statement_1 UNION [ALL]⏐INTERSECT⏐MINUS SELECT statement_2; Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 133 https://fb.com/sinhvienzonevn Các phép toán tập hợp UNION thực phép hợp kết hai truy vấn ™ INTERSECT thực phép giao kết hai truy vấn ™ MINUS thực phép hiệu kết hai truy vấn ™ Từ khóa ALL cho phép hàng kết trùng ™ Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 134 https://fb.com/sinhvienzonevn Các phép toán tập hợp SELECT State FROM Customer_T WHERE State NOT IN (‘FL’, ‘TX’, ‘CA’, ‘HI’); SELECT State FROM Customer_T MINUS SELECT State FROM Customer_T WHERE State IN (‘FL’, ‘TX’, ‘CA’, ‘HI’); Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 135 https://fb.com/sinhvienzonevn Xử lý giá trị rỗng Hàm NVL (Null VaLue) dùng để đổi giá trị rỗng thành giá trị khác rỗng ™ Hàm NVL có hai tham số: biểu thức giá trị khác rỗng ™ Nếu giá trị cột biểu thức null giá trị biểu thức null ™ SELECT Product_ID, NVL(Standard_Price, 0) FROM Product_T WHERE Standard_Price IS NULL; Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 136 https://fb.com/sinhvienzonevn Truy vấn ™ Truy vấn f subquery f Là truy vấn (lệnh SELECT) nằm truy vấn khác f Truy vấn (outer query) f Truy vấn (inner query) f Truy vấn (main query) ™ Xuất f Trong điều kiện mệnh đề WHERE f Như bảng mệnh đề FROM f Trong điều kiện mệnh đề HAVING Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 137 https://fb.com/sinhvienzonevn Truy vấn ™ Các loại truy vấn f Truy y y y vấn lồng (nested subquery) Không phụ thuộc vào liệu truy vấn Được thực lần trước thực truy vấn Kết truy vấn dùng để thực truy vấn f Truy vấn subquery) y y y tương quan (correlated Sử dụng liệu truy vấn Đối với hàng truy vấn ngoài, liệu hàng dùng để thực truy vấn con, kết truy vấn dùng để thực truy vấn ngồi Có thể sử dụng phép tốn EXISTS Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 138 https://fb.com/sinhvienzonevn Truy vấn SELECT Customer_Name The IN operator will test to see if the Customer_ID value of a row is included in FROM Customer_T the list returned from the subquery WHERE Customer_ID IN (SELECT DISTINCT Customer_ID FROM Order_T); Subquery is embedded in parentheses In this case it returns a list that will be used in the WHERE clause of the outer query Hình 2.28 Ví dụ truy vấn lồng Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 139 https://fb.com/sinhvienzonevn No reference to data in outer query, so subquery executes once only These are the only customers that have IDs in the Order_T table Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 140 https://fb.com/sinhvienzonevn Truy vấn SELECT DISTINCT Order_ID FROM Order_Line_T The EXISTS operator will return a TRUE value if the subquery resulted WHERE EXISTS in a non-empty set, otherwise it (SELECT * returns a FALSE FROM Product_T WHERE Product_ID = Order_Line_T.Product_ID AND Product_Finish = ‘Natural ash’); The subquery is testing for a value that comes from the outer query Hình 2.29 Ví dụ truy vấn tương quan Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 141 https://fb.com/sinhvienzonevn Subquery refers to outerquery data, so executes once for each row of outer query Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 142 https://fb.com/sinhvienzonevn Truy vấn Subquery forms the derived table used in the FROM clause of the outer query One column of the subquery is an aggregate function that has an alias name That alias can then be referred to in the outer query SELECT Product_Description, Standard_Price, Avg_Price FROM (SELECT AVG(Standard_Price) Avg_Price FROM Product_T), Product_T WHERE Standard_Price > Avg_Price; The WHERE clause normally cannot include aggregate functions, but because the aggregate is performed in the subquery its result can be used in the outer query’s WHERE clause Hình 2.30 Ví dụ truy vấn xuất mệnh đề FROM Chương Tổng quan sở liệu SinhVienZone.com 2006 Nguyễn Trung Trực - Khoa CNTT 143 https://fb.com/sinhvienzonevn ... tin liệu xử lý để làm tăng hiểu biết người sử dụng f Dữ liệu ngữ cảnh f Dữ liệu tổng hợp / xử lý Chương Tổng quan sở liệu SinhVienZone. com 2006 Nguyễn Trung Trực - Khoa CNTT https://fb .com/ sinhvienzonevn... quan sở liệu SinhVienZone. com 2006 Nguyễn Trung Trực - Khoa CNTT 25 https://fb .com/ sinhvienzonevn Chuẩn hóa liệu Supply Snum Sname Pnum Deptnum Quan S1 Nguyễn Trung Tiến P1 D1 10 S1 Nguyễn Trung. .. quan sở liệu SinhVienZone. com 2006 Nguyễn Trung Trực - Khoa CNTT 27 https://fb .com/ sinhvienzonevn Chuẩn hóa liệu Supply Snum Sname Pnum Deptnum Quan S1 Nguyễn Trung Thành P1 D1 10 S1 Nguyễn Trung

Ngày đăng: 30/01/2020, 20:55

TỪ KHÓA LIÊN QUAN

w