NGÔ HUY THẮNGBẢNG CÂU VẤN TIN TRÊN CÁC QUAN HỆ VÀ XỬ LÝ CÂU VẤN TIN TRÊN BẢNG LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Nguyên, năm 2012 Số hóa bởi Trung tâm Học liệu – Đại học Thái N
Trang 1NGÔ HUY THẮNG
BẢNG CÂU VẤN TIN TRÊN CÁC QUAN HỆ
VÀ XỬ LÝ CÂU VẤN TIN TRÊN BẢNG
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên, năm 2012
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 2LỜI CẢM ƠN
Những kiến thức căn bản trong luận văn này là kết quả của quá trình tự nghiên cứu trong quá trình công tác và hai năm học Thạc sỹ (2010 - 2012) tại Trường Đại học Công nghệ thông tin và Truyền thông Thái Nguyên Dưới sự giảng dạy, đào tạo và dìu dắt trực tiếp của các thầy cô trong trường và Viện Công nghệ thông tin Việt Nam
Tôi xin bày tỏ lời cảm ơn chân thành tới các thầy cô trong Khoa Công nghệ thông tin, Phòng Đào tạo, Phòng Công tác học sinh sinh viên, Phòng Đào tạo sau đại học Trường Đại học Công nghệ thông tin và Truyền thông Thái Nguyên, đã tạo điều kiện thuận lợi cho tôi trong thời gian học tập tại trường
Tôi xin bày tỏ lòng biết ơn chân thành, lời cảm ơn sâu sắc nhất đối với
thầy giáo PGS.TS Lê Huy Thập đã trực tiếp hướng dẫn, định hướng cho tôi
giải quyết các vấn đề trong luận văn
Tôi cũng xin cảm ơn đến các anh chị đồng nghiệp ở Sở Thông tin và Truyền thông tỉnh Bắc Kạn, người thân, bạn bè và các bạn đồng môn lớp cao học CH 9A, đã ủng hộ và giúp đỡ tôi trong quá trình làm luận văn tốt nghiệp
Thái Nguyên, ngày 15 tháng 8 năm 2012
Học viên
Ngô Huy Thắng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 3LỜI CAM ĐOAN
Với mục đích nghiên cứu, tìm hiểu để nâng cao kiến thức và trình độ chuyên môn để áp dụng trong các bài toán cụ thể trong tương lai nên tôi đã làm luận văn này một cách nghiêm túc và hoàn toàn trung thực Nội dung luận văn do tự tôi tìm hiểu và hoàn thành
Trong luận văn, tôi có sử dụng tài liệu tham khảo của một số tác giả trong và ngoài nước để hoàn thành luận văn được nêu ở phần tài liệu tham khảo
Tôi xin cam đoan và chịu trách nhiệm về nội dung, sự trung thực trong luận văn tốt nghiệp Thạc sỹ của mình
Thái Nguyên, Ngày 15 tháng 8 năm 2012
Trang 41.1.1 Những vấn đề mà CSDL cần phải giải quyết ……… ……… 12
1.1.2 Ðịnh nghĩa Hệ thống cơ sở dữ liệu (Database Systems) … 13
1.1.3 Cơ sở dữ liệu quan hệ và lược đồ cơ sở dữ liệu quan hệ …. 14 1.2.Các loại câu vấn tin SQL ……… 17 1.3.Phương pháp chuyển câu vấn tin SQL sang câu vấn tin đại số quan hệ AQL 19
1.3.1 Ngôn ngữ truy vấn đại số quan hệ (AQL) ……….…… 20 1.3.2 Các phép biến đổi tương đương trong đại số quan hệ …… … 22
1.3.3 Thuật toánchuyển câu vấn tin SQL sang câu vấn tin đại số quan hệ AQL 25
1.4.Kết luận chương 1 ……….……… 32 CHƯƠNG II: PHƯƠNG PHÁP TÁCH GỘP CÁC HÀNG – CỘT 33 2.1 Phương pháp chuyển câu vấn tin đại số quan hệ sang bảng …… 34
2.1.1 Mục tiêu của xử lý vấn tin ……….………… 35
2.1.2 Mô tả đặc trưng của xử lý vấn tin ………… ……… 35 2.2 Định nghĩa và cách thể hiện câu truy vấn bằng bảng … … 37
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 52.2.1 Cách thể hiện bảng vấn tin đại số quan hệ ………… ……… 38
2.2.2 Độ phức tạp của phép toán đại số quan hệ ……… …… 40
2.3 Phương pháp tách gộp hàng trong bảng vấn tin ……… …… 40
2.3.1.Kỹ thuật Gộp các hàng – cột ……… ………… 41
2.3.2 Kỹ thuật Tách các hàng – cột ……….……… 44
2.3 Kết luận chương 2 ……… 51
CHƯƠNG III: ỨNG DỤNG GIẢI BÀI TOÁN CỤ THỂ ……….…… 52
3.1 Cách tính tải trên hàng và các phân hoạch của bảng vấn tin …… 52
3.1.1 Phân hoạch bảng vấn tin……….……… 53
3.1.2 Cách tính tải trên hàng ……….……….… 53
3.2 Phương pháp tìm Cell có chi phí truyền thông lớn …….………… 56
3.3 Thuật toán tạo ra bảng vấn tin tiền xử lý ……….… ……… 58
3.4 Ví dụ minh họa ……….……….……… 61
3.4.1 Cây tối ưu cho truy vấn dạng ống có cân bằng tải ………… 61
3.4.2 Thuật toán chia công việc ……… 61
3.4.3 Mở rộng thuật toán nhát cắt cục bộ cho bài toán POM …… 62
3.5.Kết luận chương 3 ……… 68
KẾT LUẬN ……… ……… 69
HƯỚNG PHÁT TRIỂN ……… 70
TÀI LIỆU THAM KHẢO ……… 71
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 7BẢNG CÁC CHỮ VIẾT TẮT
SQL Structured Query Language – Ngôn ngữ truy vấn dữ liệu
CSDL Cơ sở dữ liệu
HQTCSDL Databasemanagement system - Hệ quản trị Cơ Sở Dữ Liệu
AQL Algebraic Query Language (Ngôn ngữ vấn tin đại số)
POT Pipeline Operator Tree – Cây toán tử dạng ống
POM Pipeline Operator Matrix – Ma trận toán tử dạng ống
Trang 8DANH MỤC HÌNH VẼ
Hình 1.1 Mô hình xử lí thông tin ……… 11
Hình 1.2 Mô hình hệ thống cơ sở dữ liệu ……… 13
Hình 1.3 Cây đại số quan hệ ví dụ ……… 31
Hình 2.1 Gộp hai đỉnh i và j thành đỉnh m ……… 43
Hình 2.2 Tách hai đỉnh i và j ……… 46
Hình 2.3 Cắt các cạnh của cây toán tử ……… 50
Hình 2.4 Gộp các đỉnh của cây toán tử ……… 50
Hình 3.1 Cây toán tử tổng quát ……… 59
Hình 3.2 Cây toán tử đã được tiền xử lí ………. 60
Hình 3.3 Thuật toán nhát cắt cục bộ ……… 64
Hình 3.4 Cây toán tử gốc ……… ……… 65
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 9DANH MỤC BẢNG BIỂU
Bảng 1.1 Bảng quan hệ NHANVIEN ……….….……… 15
Bảng 1.2 Bảng quan hệ DONVI ……….……… 16
Bảng 1.3 Bảng quan hệ DONVI_DIADIEM ……….………… 16
Bảng 1.4 Bảng quan hệ DUAN ……… ……… 16
Bảng 1.5 Bảng quan hệ NHANVIEN_DUAN …… ……… 17
Bảng 2.1 Bảng vấn tin dạng đại số quan hệ ……… 39
Bảng 2.2 Toán tử Collapse (i,j) gốc ……… 42
Bảng 2.3 Toán tử Collapse (i,j) sau khi gộp i,j ……… 42
Bảng 2.4 POM dữ liệu ………. 43
Bảng 2.5 POM sau khi gộp ……… 44
Bảng 2.6 Toán tử cut(i,j) gốc ……… 45
Bảng 2.7.Toán tử cut(i,j) sau khi gộp i,j ……… 45
Bảng 2.8 Dữ liệu POM ……… 46
Bảng 2.9 POM 1 ……… 47
Bảng 2.9a POM 1,1 ………. 47
Bảng 2.9b POM 1,2 ……… ……… 47
Bảng 2.10 POM 4 ………. 47
Bảng 2.11 Ma trận Ip truy vấn ……… 48
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 10Bảng 2.12 Ma trận Ip truy vấn mảnh F1 ……… 48
Bảng 2.13 Ma trận Ip truy vấn mảnh F2 ………. 48
Bảng 2.14 Ma trận Ip truy vấn mảnh F3 ……… 49
Bảng 2.15 Ma trận Ip truy vấn lớp mảnh F1 ……… 49
Bảng 2.16 Ma trận Ip truy vấn lớp mảnh F2 ……… 49
Bảng 2.17 Ma trận Ip truy vấn lớp mảnh F3 ……… 49
Bảng 3.1 Bảng truy vấn Ip với các phép toán đại số quan hệ …… 54
Bảng 3.2 Các t i và cell ij của Ip ……… 55
Bảng 3.3 Ma trận Ip tương ứng với cây toán tử gốc ……… 58
Bảng 3.4 Gộp các cạnh có trọng số lớn đã qua tiền xử lí ………… 60
Bảng 3.5 Ip truy vấn tương ứng với cây toán tử gốc ………… ……… 65
Bảng 3.6 Phân hoạch F1 ………… ……… 66
Bảng 3.7 Phân hoạch F2 ………… ……… 66
Bảng 3.8 Phân hoạch F3 ………… ……… 67
Bảng 3.9 Phân hoạch F4 ………… ……… 67
Bảng 3.10 Phân hoạch F5 ………… ……….……… 67
Bảng 3.11 Phân hoạch F6 ………… ……… 68
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 11MỞ ĐẦU
Để thể hiện câu vấn tin SQL bằng bảng trước hết chúng ta chuyển nó sang câu vấn tin đại số quan hệ, sau đó thể hiện câu vấn tin này bằng một bảng gọi là bảng truy vấn Các tiêu đề hàng và cột sẽ là tên các quan hệ cơ sở, các quan hệ trung gian hoặc kết qủa thực hiện câu vấn tin Các Cell sẽ là các toán tử để thực hiện các phép toán đại số quan hệ nhằm sinh ra các quan hệ trung gian Cùng với tiêu đề hàng và cột ta sẽ gán một trọng số nào đó - là chi phí xử lý phép toán trên quan hệ đó; các Cell cũng được gán trọng số là chi phí chuyển số liệu từ toán tử nằm trên hàng đến toán tử nằm trên cột Minh họa xử lý câu vấn tin bằng bảng truy vấn sẽ được thực hiện cho việc tìm cây toán tử tiền xử lý Tức là phân chia các toán tử cho các bộ xử lý để thời gian trả lời truy vấn nhỏ nhất
Nội dung của luận văn gồm 3 chương:
Chương I: Tổng quan về cơ sở dữ liệu quan hệ Trong chương này
cung cấp các kiến thức lý thuyết cơ bản những khái niệm về CSDL quan hệ, các loại câu vấn tin và phương pháp chuyển đổi câu vấn tin SQL sang câu vấn tin đại số quan hệ
Chương II: Phương pháp tách – gộp hàng, cột trong bảng vấn tin
Với những nội dung chính như: Phương pháp chuyển câu vấn tin đại số quan
hệ sang bảng và phương pháp tách gộp hàng, cột trong bảng vấn tin
Chương III: Ứng dụng giải một số bài toán thực tế Dựa vào những
cơ sở lý thuyết đã nghiên cứu, một số bài toán đã được ứng dụng giải quyết như: Cách tính tải trên hàng và các phân hoạch của bảng vấn tin, phương pháp tìm ô có chi phí truyền thông lớn và thuật toán tạo ra bảng vấn tin tiền xử lý
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 12CHƯƠNG I:
TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU QUAN HỆ 1.1.Khái quát về cơ sở dữ liệu
Ðịnh nghĩa Dữ liệu: Dữ liệu là các sự kiện, văn bản, đồ họa, hình ảnh,
âm thanh và các đoạn phim video có ý nghĩa trong môi trường người dùng
Ðịnh nghĩa thông tin: Thông tin là dữ liệu được xử lý theo các cách để
làm tăng hiểu biết của người đang sử dụng dữ liệu này
Thông thường đối với việc thiết kế xây dựng một hệ thống tin quản lý, chúng ta cần xử lý một hệ thống các file dữ liệu Mỗi file này có cấu trúc bản ghi khác nhau nhưng về nội dung có quan hệ với nhau tạo thành một cơ sở dữ
liệu (Database _ viết tắt CSDL)
Cơ Sở Dữ Liệu là tập hợp thông tin (dữ liệu) có tổ chức nhằm thỏa mãn
một hay nhiều mục đích quản lý thông tin của con người Hệ các chương trình
nhằm quản lý khai thác dữ liệu này là Hệ quản trị Cơ Sở Dữ Liệu (viết tắt HQTCSDL, Database management system) (ví dụ Access, SQL server,
Oracle ) Hệ thống thông tin gồm bộ phận xử lý thông tin, kênh thông tin vào ra.(Xem hình 1.1)
Hình 1.1 Mô hình xử lý thông tin
Ưu điểm của cơ sở dữ liệu: Giảm sự trùng lắp thông tin xuống mức thấp
nhất và do đó bảo đảm được tính nhất quán và toàn vẹn dữ liệu Đảm bảo dữ liệu có thể truy xuất theo nhiều cách khác nhau Khả năng chia sẻ thông tin cho nhiều người sử dụng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 131.1.1.Những vấn đề mà CSDL cần phải giải quyết
Tính chủ quyền của dữ liệu: Tính chủ quyền của dữ liệu được thể hiện ở
phương diện an toàn dữ liệu, khả năng biểu diễn các mối liên hệ ngữ nghĩa của dữ liệu và tính chính xác của dữ liệu Điều này có nghĩa là người khai thác CSDL phải có nhiệm vụ cập nhật các thông tin mới nhất của CSDL
Tính bảo mật và quyền khai thác thông tin của người sử dụng: Do có
nhiều người được phép khai thác dữ liệu một cách đồng thời, nên cần thiết phải
có một cơ chế bảo mật và phân quyền hạn khai thác CSDL Các hệ điều hành nhiều người sử dụng hay hệ điều hành mạng cục bộ đều có cung cấp cơ chế này
Tranh chấp dữ liệu: Nhiều người được phép truy nhập cùng một lúc vào
tài nguyên dữ liệu của CSDL với những mục đích khác nhau, do đó cần thiết phải có một cơ chế ưu tiên khi truy nhập dữ liệu Cơ chế ưu tiên có thể được
thực hiện bằng việc cấp quyền ưu tiên cho từng người khai thác
Đảm bảo an toàn dữ liệu khi có sự cố: Việc quản lý dữ liệu tập trung có
thể làm tăng khả năng mất mát hoặc sai lệch thông tin khi có sự cố như mất điện đột xuất, hay một phần đĩa lưu trữ CSDL bị hư hỏng,… một số hệ điều hành mạng có cung cấp dịch vụ sao lưu ảnh đĩa cứng, tự động kiểm tra và khắc phục lỗi khi có sự cố Tuy nhiên, bên cạnh dịch vụ của hệ điều hành, để đảm bảo CSDL luôn ổn định, một CSDL nhất thiết phải có một cơ chế khôi
phục dữ liệu khi có các sự cố bất ngờ xảy ra
Các đối tượng sử dụng CSDL: Những người sử dụng CSDL không
chuyên về lĩnh vực tin học và CSDL Các chuyên viên CSDL biết khai thác CSDL, những người này có thể xây dựng các ứng dụng khác nhau, phục vụ cho các mục đích khác nhau trên CSDL
Những người quản trị CSDL, đó là những người hiểu biết về tin học, về các hệ quản trị CSDL và hệ thống máy tính Họ là người tổ chức CSDL, do
đó họ phải nắm rõ các vấn đề kỹ thuật về CSDL để có thể phục hồi CSDL khi
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 14có sự cố Họ là những người cấp quyền hạn khai thác CSDL, do vậy họ có thể giải quyết được các vấn đề tranh chấp dữ liệu nếu có
1.1.2 Ðịnh nghĩa Hệ thống cơ sở dữ liệu (Database Systems)
Hệ thống cơ sở dữ liệu là hệ thống thông tin, cho phép người ta dùng chung các dữ liệu có trong hệ thống
Để giải quyết tốt những vấn đề mà cách tổ chức CSDL đặt ra như đã nói
ở trên, cần thiết phải có những phần mềm chuyên dùng để khai thác chúng Những phần mềm này được gọi là các hệ quản trị CSDL Các hệ quản trị CSDL có nhiệm vụ hỗ trợ cho các nhà phân tích thiết kế CSDL cũng như những người khai thác CSDL Hiện nay trên thị trường phần mềm đã có những hệ quản trị CSDL hỗ trợ được nhiều tiện ích như: MS Access, Visual
Foxpro, SQL Server, Oracle,…(Xem hình 1.2)
Hình 1.2 Mô hình hệ thống cơ sở dữ liệu Mỗi hệ quản trị CSDL đều được cài đặt dựa trên một mô hình dữ liệu cụ thể Dù là dựa trên mô hình dữ liệu nào, một hệ quản trị CSDL cũng phải hội
đủ các yếu tố sau:
Ngôn ngữ hỏi
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 15Ngôn ngữ mô tả dữ liệu: Cho phép khai báo cấu trúc của CSDL, khai báo
các mối liên hệ của dữ liệu và các quy tắc quản lý áp đặt lên các dữ liệu đó
Ngôn ngữ thao tác dữ liệu: Cho phép người sử dụng có thể cập nhật dữ liệu (thêm/sửa/xoá)
Ngôn ngữ truy vấn dữ liệu: Cho phép người khai thác sử dụng để truy
vấn các thông tin cần thiết trong CSDL
Ngôn ngữ quản lý dữ liệu: Cho phép những người quản trị hệ thống thay
đổi cấu trúc của các bảng dữ liệu, khai báo bảo mật thông tin và cấp quyền hạn khai thác CSDL cho người sử dụng.,…
Từ điển dữ liệu: Dùng để mô tả các ánh xạ liên kết, ghi nhận các thành
phần cấu trúc của CSDL, các chương trình ứng dụng, mật mã, quyền hạn sử dụng,…
Cơ chế giải quyết vấn đề tranh chấp dữ liệu: Mỗi hệ quản trị CSDL
cũng có thể cài đặt một cơ chế riêng để giải quyết các vấn đề này Một số cơ chế thường dùng sau đây:
- Cấp quyền ưu tiên cho từng người sử dụng;
- Đánh dấu yêu cầu truy xuất dữ liệu, phân chia thời gian, người nào có yêu cầu trước thì có quyền truy xuất dữ liệu trước,…
Hệ quản trị CSDL cũng phải có cơ chế sao lưu (Backup) và phục hồi (Recovery) dữ liệu khi có sự cố xảy ra Điều này có thể thực hiện sau một thời
gian nhất định hệ quản trị CSDL sẽ tự động tạo ra một bản sao CSDL, cách này hơi tốn kém, nhất là đối với CSDL lớn
Hệ quản trị CSDL phải cung cấp một giao diện thân thiện, dễ sử dụng
1.1.3.Cơ sở dữ liệu quan hệ và lược đồ cơ sở dữ liệu quan hệ
Một cơ sở dữ liệu quan hệ thường gồm nhiều quan hệ với các bộ giá trị trong các quan hệ được liên kết với nhau theo nhiều cách Một lược đồ cơ sở
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 16dữ liệu quan hệ S là một tập hợp các lược đồ quan hệ S = {R1, R2,…, Rn} và một tập các ràng buộc toàn vẹn
Một trạng thái cơ sở dữ liệu quan hệ (hoặc một cơ sở dữ liệu quan hệ) R
của S là một tập hợp các trạng thái quan hệ:
R = {r1, r2, …, rn}
sao cho mỗi ri là một trạng thái của Ri và sao cho các trạng thái quan hệ rithoả mãn các ràng buộc toàn vẹn chỉ ra trong tập các ràng buộc toàn vẹn
Ví dụ: Trình bày một lược đồ cơ sở dữ liệu CONGTY như sau:
NHANVIEN(MaNV, TenNV, NgaySinh, DiaChi, GioiTinh, Luong, MaDV) DONVI(MaDV, TenDV, Ngay_Bat_Dau)
DONVI_DIADIEM(MaDV, Dia_Diem_DV)
DUAN(MaDA, TenDA, Dia_Diem_DA, MaDV)
NHANVIEN_DUAN(MaNV, MaDA, ThoiGian_LV)
Và cơ sở dữ liệu CONGTY bao gồm các bảng:
MaNV TenNV NgaySinh DiaChi GioiTinh Luong MaDV
NV0001 Lê Duy 19/09/1980 Bắc Kạn Nam 5.000 DV02
Trang 17MaDV TenDV Ngay_Bat_Dau
Bảng 1.3 Bảng quan hệ DONVI_DIADIEM
DA001 Đào tạo Thái Nguyên DV02 DA002 Quản lý Bắc Kạn DV03 DA003 Xây dựng HT Bắc Kạn DV03 DA004 Lập trình PHP Thái Nguyên DV02 DA005 Thiết kế Web Hà Nội DV01 DA006 Lập trình Java Hà Nội DV01 DA007 Lập trình ASP Thái Nguyên DV02
DA 008 Lập trình NET Thái Nguyên DV02
Bảng 1.4 Bảng quan hệ DUAN
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 18MaNV MaDA ThoiGian_LV
NV0001 DA001 100 NV0002 DA002 80 NV0003 DA003 110 NV0004 DA008 200 NV005 DA007 90 NV006 DA005 150 NV007 DA006 230
Bảng 1.5 Bảng quan hệ NHANVIEN_DUAN
Trong một lược đồ cơ sở dữ liệu quan hệ, các thuộc tính biểu diễn cùng
một khái niệm thế giới thực có thể (hoặc không) có cùng tên như nhau trong
các quan hệ khác nhau Ngược lại, các thuộc tính biểu diễn các khái niệm khác nhau có thể có tên như nhau trong các quan hệ khác nhau
1.2 Các loại câu vấn tin SQL
Câu lệnh tạo cơ sở dữ liệu
Cú pháp của câu lệnh CREATE DATABASE
Create Database Ten_CSDL
Sau câu lệnh này, một CSDL có tên là Ten_CSDL được tạo ra
Câu lệnh tạo bảng dữ liệu
Câu lệnh tạo quan hệ có cú pháp như sau
CREATE TABLE Ten_Quanhe
( ten_cot ten_thuoc_tinh_cot cac_rang_buoc [, ] )
Ràng buộc PRIMARY KEY được sử dụng để định nghĩa khoá chính của bảng FOREIGN KEY là khóa ngoại, nó là khóa chính của bảng được quan hệ FOREIGN KEY có thể tham chiếu vào PRIMARY KEY hay cột có ràng buộc duy nhất
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 19Sửa bảng (ALTER TABLE)
Cú pháp của câu lệnh ALTER TABLE như sau:
ALTER TABLE Ten_Bang
ADD đinh_nghia_cot | ALTER COLUMN ten_cot kieu_du_lieu [NULL
|NOT NULL] DROP COLUMN ten_cot | ADD CONSTRAINT ten_rang_buoc đinh_nghia_rang_buoc DROP CONSTRAINT ten_rang_buoc
Xóa bảng (DROP TABLE)
Khi một bảng không còn cần thiết, ta có thể xoá nó ra khỏi cơ sở dữ liệu bằng câu lệnh DROP TABLE Câu lệnh này cũng đồng thời xoá tất cả những
ràng buộc, chỉ mục, trigger liên quan đến bảng đó Câu lệnh có cú pháp như sau:
DROP TABLE Ten_Bang
Sau câu lệnh này, bảng có tên là Ten_Bang sẽ bị xóa khỏi CSDL
Thêm bản ghi mới (INSERT)
Để bổ sung một dòng dữ liệu mới vào bảng, ta sử dụng câu lệnh
INSERT với cú pháp như sau:
INSERT TABLE Ten_Bang[(danh_sach_cot)]VALUES (danh_sach_gia_tri)
Thêm một tập các dòng dữ liệu vào bảng
Cú pháp câu lệnh INSERT có dạng như sau:
INSERT INTO Ten_Bang (danh_sach_cot)] câu_lệnh_SELECT
Cập nhật bản ghi (UPDATE)
Câu lệnh UPDATE trong SQL được sử dụng để cập nhật dữ liệu trong
các bảng Câu lệnh này có cú pháp như sau:
Trang 20[Where dieu_kien]
Xoá bản ghi (DELETE)
Để xoá dữ liệu trong một bảng, ta sử dụng câu lệnh DELETE Cú pháp của câu lệnh này như sau:
DELETE FROM Ten_Bang
[FROM danh_sach_bang]
[WHERE dieu_kien]
Sau lệnh này, dữ liệu sẽ bị xóa trong bảng Ten_Bang theo danh sách và
điều kiện xóa trong mệnh đề FROM và WHERE
Truy vấn cơ sở dữ liệu (SELECT)
Cú pháp chung của câu lệnh SELECT có dạng:
SELECT [ALL | DISTINCT][TOP n] danh_sach_chon
[COMPUTE danh_sach_ham_gop [BY danh_sach_cot]]
Câu lệnh SELECT được sử dụng để tác động lên các bảng dữ liệu và kết quả của câu lệnh cũng được hiển thị dưới dạng bảng, tức là một tập hợp các dòng và các
cột (ngoại trừ trường hợp sử dụng câu lệnh SELECT với mệnh đề COMPUTE)
1.3 Phương pháp chuyển câu vấn tin SQL sang câu vấn tin đại số quan hệ AQL
Từ câu vấn tin SQL, chúng ta chuyển sang câu vấn tin đại số quan hệ bằng cách sử dụng các phép toán đại số quan hệ AQL như: phép chiếu, phép
chọn và phép kết nối
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 21Nhiệm vụ chính của xử lý vấn tin là biến đổi câu vấn tin cấp cao (ở dạng phép tính quan hệ) thành câu vấn tin cấp thấp hơn (dạng đại số quan hệ) Câu
vấn tin phải đạt được cả tính đúng lẫn tính hiệu quả
Một biến đổi được xem là đúng đắn, nếu câu vấn tin cấp thấp có cùng ngữ nghĩa với câu vấn tin gốc – tức là cả hai cùng cho ra một kết quả Có nhiều cách để biến đổi tương đương một câu vấn tin dạng phép tính quan hệ thành đại số quan hệ Do có nhiều cách biến đổi như vậy, nên có nhiều chiến lược thực thi câu vấn tin cùng sử dụng tài nguyên Cần phải chọn một chiến lược hạ thấp nhất việc sử dụng tài nguyên
Ví dụ: Cho một quan hệ CONGTY bao gồm
NhanVien(MaNV, TenNV, Ghi_Chu)
DuAn(MaDA,TenDA, Ngan_Sach, Vi_Tri)
NhanVien_DuAn(MaNV, MaDA , Chuc_Vu , Thoi_Gian)
Câu vấn tin “ Cho biết tên các nhân viên đang là người quản lý dự án”
Câu truy vấn SQL:
SELECT TenNV
FROM NhanVien, NhanVien_DuAn
WHERE NhanVien.MaNV = NhanVien_DuAn.MaNV
AND NhanVien_DuAn.Chuc_Vu = “Quản lý dự án”
Câu truy vấn AQL tương ứng với SQL trên là:
πTenNV(σChuc_Vu=”Quản lý dự án” ∧ NhanVien.MaNV=NhanVien_DuAn.MaNV (NhanVien × NhanVien_DuAn)) hoặc
πTenNV(NhanVien ⋈MaNV(σChuc_Vu=”Quản lý dự án”(NhanVien_DuAn)))
1.3.1 Ngôn ngữ truy vấn đại số quan hệ (AQL)
Gọi r là quan hệ trên tập thuộc tính R={ A1,….,An} Ta luôn giả thiết
rằng quan hệ r là tập hữu hạn các bộ Đối với các phép hợp (ký hiệu ) phép
giao (ký hiệu ), phép trừ (ký hiệu -) hai quan hệ tham gia phải khả hợp
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 22AQL (Algebraic Query Language) là ngôn ngữ truy vấn đại số quan
hệ Để truy vấn dữ liệu, thay vì sử dụng câu truy vấn SQL thông thường, câu truy vấn AQL sử dụng các phép toán đại số quan hệ để truy vấn dữ liệu thông qua các phép toán trên các mảnh con như: Phép chọn, phép chiếu, phép kết nối trên cây toán tử và các phép hợp, phép giao, phép trừ,
phép Tích Đềcác,… trên bảng Ip (Isomorphous) truy vấn Cụ thể chúng ta
tham khảo một số phép toán đại số quan hệ như dưới đây:
Giả sử r là quan hệ n ngôi trên tập thuộc tính R = {Al, ,An} và giả sử t
là một bộ của r, AR Ký hiệu t[A] là giá trị của bộ t tại thuộc tính A Như vậy nếu X = {Bl, ,Bm} thì t[X]=(t[Bl],t[B2],; ,t[Bm])
Gọi X là một tập con của tập thuộc tính R = {Al, ,An} Phép chiếu π
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 23trên tập X của quan hệ r được định nghĩa như sau:
πx(r)={t[x] | t r}
Phép chọn (Selection)
Phép chọn dùng để tạo một tập con các bộ trong quan hệ r thoả mãn biểu thức F nào đó Các phép toán trong biểu thức F là <, =, >, <=, >= và ≠ cùng với các phép toán logic là (và), (hoặc), ¬ (phủ định) định nghĩa phép chọn
σ như sau:
σ F(r) = {t r | F(t) = T.} (trong đó T = TRUE (đúng))
1.3.2 Các phép biến đổi tương đương trong đại số quan hệ
Xét r,s và T là những quan hệ, E là mệnh đề logic, với quan hệ r được định nghĩa trên các thuộc tính {A1 , A2,…, An} và quan hệ s được định nghĩa trên các thuộc tính {B1 ,B2 ,…, Bn } và X là tập thuộc tính
- Tính giao hoán của phép toán hai ngôi
Tích Đềcác của hai quan hệ r và s có tính giao hoán: r × s = s × r
Nối của hai quan hệ có tính giao hoán: r ⋈ s = s ⋈ r
Quy tắc này áp dụng được cho phép hợp nhưng không áp dụng cho phép tập hợp hay nối nửa
- Tính kết hợp của các phép toán hai ngôi
Tích Đềcác và nối là phép toán có tính kết hợp
(r × s) × T ⟺ r × (s × T)
(r ⋈ s) ⋈ T ⟺ r ⋈ (s ⋈ T)
- Tính lũy đẳng của các phép toán đơn ngôi
Nhiều phép chiếu liên tiếp trên cùng một quan hệ có thể được nhóm lại, ngược lại một phép chiếu trên nhiều thuộc tính có thể được tách ra thành nhiều phép chiếu liên tiếp nhau Nếu r được định nghĩa trên tập thuộc tính A
và A’ ⊆ A, A” ⊆ A’ thì: (r.(A’)).A” =r.A”
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 24Nhiều phép chọn liên tiếp theo thứ tự p1, p2,… pk trên cùng một quan hệ
r, trong đó pi là một vị từ được áp dụng cho thuộc tính Ai có thể được nhóm lại như sau: r.p1A1(r.p2A2) ⟺ r.p1A1∧p2A2
Ngược lại, một phép chọn qua một hội các vị từ có thể được tách ra thành nhiều phép chọn liên tiếp nhau
- Giao hoán chọn với chiếu
Phép chọn và phép chiếu trên cùng một quan hệ có thể được giao hoán như sau: Chiếu xong chọn bằng chọn xong chiếu (r.X)(E) = (r(E).X) với E là mệnh đề logic có các thuộc tính ra khỏi tập thuộc tính X thì phép chọn đầu ở
vế trái của hệ thức không có tác dụng
- Giao hoán phép chọn với phép toán hai ngôi
Phép chọn và Tích Đềcác có thể giao hoán bằng các quy tắc sau:
(r × s)(E) ⟺ r(E) × s(E) nếu E thỏa mãn trong r và s
Chọn và nối cũng có thể giao hoán
(r ⋈ s)(E) ⟺ r(E) ⋈ s(E)
Chọn và hợp có thể giao hoán nếu r và T có lược đồ giống nhau
(r + T)(E) ⟺ r(E) + T(E)
Chọn và hiệu cũng có phép toán tương tự
(r - T)(E) ⟺ r(E) – T(E)
- Giao hoán phép chiếu với phép toán hai ngôi
Phép chiếu và Tích Đềcác có thể được giao hoán nếu C= A’ ∪ B’ trong đó A’ ⊆ A, B’ ⊆B và A,B là các tập thuộc tính tương ứng với các quan hệ r, s ta có: (r × s).C ⟺ r.C × s.C
Chiếu và nối có thể giao hoán
(r ⋈ s).C ⟺ r.C ⋈ s.C
Chiếu và hợp có thể giao hoán
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 25(r + s).C = r.C + s.C
Chiếu và hiệu cũng có thể giao hoán tương tự
(r - s) C = r.C – s.C
Tối ưu bằng biến đổi biểu thức đại số quan hệ: Biến đổi thứ tự thực hiện
các phép toán của biểu thức đại số quan hệ sao cho các phép toán một ngôi được thực hiện trước các phép toán hai ngôi, do các phép toán chiếu, chọn thì
có chi phí nhỏ hơn so với các phép kết nối, tích đề các
Một số phép biến đổi tương đương khác:
Tách điều kiện trong phép chọn
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 26Phép chọn và phép kết nối
σθ1 (E1 ⋈θ E2) = (σθ (E1 )) ⋈θ E2, nếu các thuộc tính 2 thuộc E1
σθ1∧ θ2 (E1 ⋈θ E2) = (σθ1(E)) ⋈θ (σθ2(E2)), nếu các thuộc tính trong 1chỉ thuộc E1 và các thuộc tính trong 2 chỉ thuộc E2
1.3.3 Thuật toán chuyển câu vấn tin SQL sang câu vấn tin đại số quan hệ AQL
Câu vấn tin dạng SQL có cấu trúc SELECT FROM WHERE
Vì tất cả các câu mệnh đề đều có thể chuyển về dạng chuẩn AND (tương đương với chuẩn hội, nên chúng ta có các mệnh đề chuẩn AND)
Câu vấn tin dạng AQL là chuyển đổi các phép toán trong SQL sang phép toán của đại số quan hệ Một câu vấn tin SQL có nhiều câu vấn tin AQL
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 27tương ứng Việc lựa chọn câu vấn tin AQL nào để thực hiện là dựa vào khả năng tối ưu hóa của câu vấn tin AQL
Cây toán tử được dùng để thể hiện câu AQL và được tạo ra như sau: Trước hết tạo ra các nút lá là các quan hệ trong câu vấn tin SQL, các nút
lá nằm sau mệnh đề FROM
Nút gốc được tạo ra như phép chiếu chứa các thuộc tính kết quả, các thuộc tính này nằm sau mệnh đề SELECT
Lượng tử hoá (vị từ sau WHERE) được chuyển thành các phép tính đại
số quan hệ thích hợp (phép chọn, phép nối ,…) đi từ các nút lá đến gốc
Chuỗi này có thể được cho trực tiếp qua thứ tự xuất hiện của các vị trí và các toán tử
Thuật toán tìm câu SQL trong chương trình nguồn
Thuật toán này tìm kiếm và vét cạn tất cả các câu vấn tin dạng SQL
trong chương trình nguồn và đưa vào hàng đợi chờ xử lý tiếp
TimKiem_SQL
Vào: Chương trình nguồn
Ra: Các câu truy vấn SQL
While NOT EOF
Thuật toán chuyển SQL sang AQL
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 28Sau thuật toán tìm kiếm SQL thì các SQL đã được lưu trữ trong hàng đợi QueueSQL Nhiệm vụ của thuật toán là lấy các câu SQL trong QueueSQL chuyển đổi các kí hiệu và phép toán trong quan hệ sang đại số quan hệ sau đó
lưu vào hàng đợi QueueAQL
Thuật toán SQL_AQL
Vào: QueueSQL // dữ liệu vào là những câu vấn tin SQL
Ra: QueueAQL các kí hiệu câu truy vấn AQL
While QueueSQL // khi vẫn còn câu vấn tin SQL
Pop QueueSQL Save Into Tam.txt // lưu câu vấn tin SQL vào một biến Tam.txt
Do while NOT EOF() // cho đến khi hết câu vấn tin SQL
Push (các thuộc tính sau SELECT) Into QueueAQL // tìm các thuộc //tính sau lệnh SELECT đưa vào QueueAQL
Repeat // lặp lại cho đến khi tìm hết các thuộc tính
Find <Phép chọn> // tìm phép chọn
If <Nếu phép chọn sẽ có dạng <Tên Quan hệ>.<Tên trường><Phép
toán quan hệ> <Value>
Push <Tên trường><Phép toán đại số quan hệ> <Value> Into QueueAQL End if
If <Nếu phép chọn sẽ có dạng <Tên Quan hệ><Tên trường><Phép
toán quan hệ><Biểu thức mệnh đề quan hệ>>
// Trong biểu thức mệnh đề thay “AND” bởi “” còn “OR” bởi “” để được
<Biểu thức mệnh đề đại số quan hệ >
Push <Tên trường><Phép toán đại số quan hệ><Biểu thức mệnh đề đại số quan
hệ> Into QueueAQL
End if
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 29Until <Không còn phép chọn>
Repeat
Find <Phép nối> //Phép nối sau Where là các dòng lệnh hoặc phần câu lệnh có dạng <Tên Quan hệ 1>.<Tên Khóa><Phép toán quan hệ><Tên Quan hệ 2>.<Tên Khóa 2>
Replace <Tên Quan hệ 1>.<Tên Khóa1> <Phép toán quan hệ > < Tên Quan hệ 2>.<Tên Khóa 2> By <Tên Quan hệ 1> ⋈<Tên Khóa1><Phép toán đại số quan hệ>.<Tên Khóa2> <Tên Quan hệ 2> // nối các quan hệ thông qua thuộc tính khóa
If <<Tên Quan hệ 1> AND <Tên Quan hệ 2> không có ở bước trước> Push <Kết quả> Into QueueAQL
Else
If <Tên Quan hệ 1> có ở bước trước>
Pop & ⋈<Phép toán đại số quan hệ>.<Tên Khóa2 > <Tên Quan hệ 2> // nối giữa các quan hệ thông qua Khóa
Push <Kết quả> Into QueueAQL // đưa kết quả vào biến
Push <Kí hiệu hết lệnh AQL >
End While
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 30Chú ý rằng tập các phép toán quan hệ gồm {=, < , <= , > , >= , NOT, AND, OR} tương ứng với phép toán đại số quan hệ {=, < , , > , , , , }
Thuật toán tạo câu vấn tin đại số quan hệ AQL
For i = 1 To Count Str = Str & “)”
End for Push <Kết quả> Into QueueVT_AQL End While
Thuật toán Vẽ Cây Toán Tử
Vào: QueueVT_AQL
Ra: Cây toán tử
Output (“Cần vẽ cây toán tử thứ k = “)
Input k
While (1) For i = 1To k -1
If QueueVT_AQL ≠ ∅
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 31Pop Else Exit While End if
FROM NhanVien , DuAn , NhanVien_DuAn
WHERE NhanVien.MaNV = NhanVien_DuAn.MaNV
AND NhanVien_DuAn.MaDA = DuAn.MaDA
AND TenNV <> “Lê Huy Dũng”
AND TenDA = “Lập trình Web”
AND (ThoiGian_LV=12 OR ThoiGian_LV=24)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 32Kết quả của câu truy vấn chúng ta được một danh sách bao gồm tất
cả các nhân viên trừ nhân viên có tên là Lê Huy Dũng đã làm cho dự án
“Lập trình Web” trong 12 tháng hoặc 24 tháng
Áp dụng các thuật toán trên chúng ta được câu vấn tin SQL sang câu vấn tin AQL chúng ta được câu vấn tin AQL như sau:
πTenNV (σThoiGian_LV=12∨ThoiGian_LV=24 (σTenNV≠”Lê Huy Dũng” DuAn⋈MaDA (NhanVien_DuAn⋈M a N VNhanVien)))
Từ câu vấn tin AQL, chúng ta xây dựng cây toán tử đại số quan hệ được thể hiện như hình 1.4 dưới đây:
Hình 1.3 Cây đại số quan hệ ví dụ
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 331.4 Kết luận chương 1
Trong chương này, chúng ta đã khái quát được về CSDL, hệ quản trị CSDL, cách xử lý thông tin và kênh thông tin vào ra Những vấn đề mà CSDL cần phải giải quyết bao gồm:
Cách sử dụng câu vấn tin SQL để tạo, sửa, xóa dữ liệu trong quan hệ Phương pháp chuyển câu vấn tin SQL bất kỳ sang câu vấn tin AQL, sử dụng các câu truy vấn được viết bằng ngôn ngữ bậc cao, qua quá trình xử lý vấn tin các truy vấn đó có thể biểu diễn bằng biểu thức đại số quan hệ mà người dùng có thể hiểu
Sử dụng ngôn ngữ truy vấn đại số quan hệ để truy vấn dữ liệu bằng các phép toán hợp, giao, trừ, chiếu chọn,…
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 34CHƯƠNG II PHƯƠNG PHÁP TÁCH GỘP CÁC HÀNG – CỘT
TRONG BẢNG VẤN TIN
Tối ưu hoá là chọn ra một lời giải tốt nhất trong không gian của tất cả các phương án khả thi Phương pháp tối ưu hoá trực tiếp là chọn trong không gian lời giải, tiên đoán chi phí cho mỗi chiến lược và chọn ra lời giải có chi phí thấp nhất Không gian lời giải có thể rất lớn ngay cả với rất ít quan hệ tham gia và không gian lời giải càng phức tạp khi số quan hệ hoặc số mảnh càng tăng Tuy nhiên chi phí cao cho vấn đề tối ưu hoá là rất cần thiết, đặc biệt là khi chỉ cần trả chi phí cho một lần tối ưu hoá cho những câu truy vấn
mà nó sẽ được thực hiện nhiều lần sau khi tối ưu hoá Phương pháp tìm kiếm vét cạn thường được sử dụng, tức là tất cả các lời giải đều được xem xét
Vì phương pháp tìm kiếm vét cạn thường có chi phí cao nên người ta cũng dùng phương pháp ngẫu nhiên hoá bằng phương pháp “cải tiến tương tác” hoặc “chọn lặp khuyến khích”, sau đó tìm một lời giải cận tối ưu Phương pháp ngẫu nhiên hoá, giảm được chi phí tối ưu hoá quá cao, tuy nhiên kết quả
nhận được chỉ là lời giải “cận” tối ưu
Cách hay dùng nhất thuật giải heuristic (mang tính kinh nghiệm, tự tìm tòi là phương pháp giải quyết vấn đề bằng cách sử dụng các quy tắc thô thiển rút ra từ kinh nghiệm Các phương pháp này rất ít khi được đưa vào sách vở, nhưng đó là một bộ phận kiến thức mà các chuyên gia d ng để giải quyết vấn đề) nhằm thu hẹp không gian tìm kiếm Một heuristic quan trọng trong các hệ
phân tán là thay các phép nối bằng tổ hợp của các nối nửa, nhằm giảm tối đa
dữ liệu tham gia vào phép tính, tức là hạ thấp chi phí truyền dữ liệu và xử lý trên CPU
Tất cả các phương pháp trên được trình bày trên cơ sở của một câu vấn
tin (hoặc câu toán tử thể hiện câu toán tin đó) việc làm đó khá phức tạp và
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 35khó xử lý bằng máy tính Vì vậy chúng tôi giới thiệu một phương pháp mới nhằm để thể hiện câu vấn tin bằng bảng mà không làm thay đổi về nội dung
và kết quả của câu vấn tin Việc làm này sẽ giúp cho máy tính có thể xử lý
câu vấn tin dựa vào các thuật toán đã biết trên mảng (ma trận)
2.1 Phương pháp chuyển câu vấn tin đại số quan hệ sang bảng
Nhiệm vụ chính của xử lý vấn tin quan hệ là biến đổi câu vấn tin cấp cao
(nghĩa là ở dạng phép tính quan hệ) thành câu vấn tin cấp thấp (tức là ở dạng đại số quan hệ) Câu vấn tin phải đạt được cả tính đúng đắn lẫn tính hiệu quả
Một biến đổi được xem là đúng đắn, nếu câu vấn tin cấp thấp có cùng ngữ nghĩa với câu vấn tin gốc – tức là cả hai cùng cho ra một kết quả Có nhiều cách để biến đổi một câu vấn tin cấp cao thành các câu vấn tin cấp thấp – nghĩa là có rất nhiều câu vấn tin cấp thấp mang tính đúng đắn và hiệu quả Các câu vấn tin cấp thấp đó cùng sử dụng tài nguyên như nhau Từ đó, đặt ra nhiệm vụ: Cần phải chọn một câu vấn tin cấp thấp nào để hạ thấp nhất việc sử dụng tài nguyên nói riêng và tổng chi phí nói chung
Câu vấn tin đại số quan hệ được thể hiện bằng một bảng gọi là bảng truy vấn Các tiêu đề hàng và cột sẽ là tên các quan hệ cơ sở, các quan hệ trung gian hoặc kết quả thực hiện câu vấn tin Các Cell sẽ là các toán tử để thực hiện các phép toán đại số quan hệ nhằm sinh ra các quan hệ trung gian Cùng với tiêu đề hàng, cột ta sẽ gắn một trọng số để chỉ chi phí xử lý phép toán trên quan hệ đó; các Cell (i, j) cũng được gán trọng số để chỉ chi phí chuyển số liệu từ toán tử i đến toán tử j Minh họa xử lý câu vấn tin bằng bảng truy vấn
sẽ được thực hiện cho việc lập lịch truy vấn trên cây toán tử đường ống, tức là phân chia các toán tử cho các bộ xử lý để thời gian trả lời truy vấn nhỏ nhất Khi đã có bảng thể hiện câu vấn tin, chúng ta dễ dàng dùng các thuật toán xử lý mảng để xử lý câu vấn tin
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 362.1.1 Mục tiêu của xử lý vấn tin
Mục tiêu của xử lý vấn tin trong môi trường phân tán là biến đổi câu vấn
tin cấp cao trên CSDL phân tán (mà người sử dụng vẫn tưởng là CSDL tập trung) thành một chiến lược thực thể hiệu quả được diễn tả bằng một ngôn
ngữ cấp thấp trên các CSDL cục bộ Giả sử ngôn ngữ cấp cao là phép tính quan hệ, ngôn ngữ cấp thấp là một dạng mở rộng của đại số quan hệ đi kèm với các thao tác truyền dữ liệu
Chỉ số đánh giá trên dùng tài nguyên là tổng chỉ phí phải trả khi xử lý vấn tin Tổng chi phí là tổng thời gian cần để xử lý các phép toán vấn tin tại các vị trí khác nhau và truyền dữ liệu giữa các vị trí
Trong cơ sở dữ liệu phân tán, tổng chi phí là CPU, chi phí xuất nhập và chi phí truyền dữ liệu Chi phí CPU là chi phí khi thực hiện các thao tác trên dữ liệu trong bộ nhớ chính Chi phí xuất nhập là chi phí cho các thao tác xuất nhập đĩa Chi phí truyền dữ liệu là chi phí cần thiết đê trao đổi dữ liệu giữa các vị trí tham gia vào quá trình thực hiện vấn tin bao gồm chi phí phải trả khi phải xử lý
thông báo (định dạng, giải định dạng) và khi truyền dữ liệu trên mạng
2.1.2 Mô tả đặc trưng của xử lý vấn tin
Ngôn ngữ
- Loại ngôn ngữ thứ nhất phải có ở giai đoạn phân rã vấn tin được thực hiện bằng phép tính quan hệ
- Ngôn ngữ thứ hai là ngôn ngữ thành phẩm, là một dạng nội tại của đại
số quan hệ được tăng cường thêm việc truyền tin Các phép toán của loại ngôn ngữ này được cài đặt trực tiếp trong hệ thống Việc xử lý vấn tin được ánh xạ từ ngôn ngữ thứ nhất sang ngôn ngữ thứ hai
Các kiểu tối ưu hóa
Tối ưu hoá là chọn ra một lời giải tốt nhất trong không gian của tất cả các lời giải khả thi Phương pháp tối ưu hoá trực tiếp là chọn trong không gian
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn