Luận văn thạc sĩ: Xử lý truy vấn và quản lý giao tác CSDL

Luận văn thạc sĩ về xử lý truy vấn, quản lý giao tác trong CSDL. Nghiên cứu chuyên sâu cho ngành công nghệ thông tin (mã số 1 01 10).

Người đăng

Ẩn danh

Thể loại

Luận văn thạc sĩ

2005

83
1
0

Phí lưu trữ

30 Point

Mục lục chi tiết

MỞ ĐẦU

1. CHƢƠNG 1: XỬ LÝ VÀ TỐI ƢU TRUY VẤN

1.1. Chuyển các truy vấn SQL thành đại số quan hệ

1.2. Các thuật toán cơ bản thực hiện phép toán truy vấn

1.2.1. Sắp xếp ngoài

1.2.2. Thực thi phép chọn (SELECT)

1.2.3. Thực thi phép nối (JOIN)

1.2.4. Thực thi phép chiếu và các phép toán tập hợp

1.2.5. Thực thi các phép toán kết hợp

1.2.6. Thực thi phép nối ngoài - Outer Join

1.2.7. Các phép toán kết hợp sử dụng đƣờng ống

1.3. Sử dụng các luật dự đoán trong tối ƣu truy vấn

1.3.1. Các ký hiệu với cây truy vấn và đồ thị truy vấn

1.3.2. Tối ƣu kinh nghiệm của các cây truy vấn. Chuyển cây truy vấn thành phƣơng án thực thi truy vấn

1.4. Sử dụng ƣớc lƣợng chọn lọc và ƣớc lƣợng chi phí trong tối ƣu truy vấn

1.4.1. Các thành phần chi phí cho việc thực thi truy vấn

1.4.2. Thông tin danh mục sử dụng trong các hàm giá

1.4.3. Ví dụ của các hàm giá đối với phép SELECT

1.4.4. Ví dụ của các hàm giá đối với phép JOIN

1.4.5. Các truy vấn có quan hệ và thứ tự nối phức tạp

1.4.6. Ví dụ minh hoạ cho việc tối ƣu truy vấn dựa trên giá

1.5. Tối ƣu truy vấn ngữ nghĩa

2. CHƢƠNG 2: XỬ LÝ GIAO TÁC

2.1. Giới thiệu về xử lý giao tác

2.1.1. Hệ thống đơn ngƣời dùng - hệ thống đa ngƣời dùng

2.1.2. Các giao tác, thao tác đọc - ghi và các vùng đệm DBMS

2.1.3. Tại sao điều khiển đồng thời là cần thiết

2.1.4. Tại sao khôi phục là cần thiết

2.2. Các khái niệm hệ thống và giao tác

2.2.1. Các trạng thái giao tác và các phép toán bổ xung

2.2.2. File log hệ thống

2.2.3. Điểm xác nhận của một giao tác

2.3. Các đặc tính mong muốn của giao tác

2.4. Lịch biểu và sự khôi phục

2.4.1. Lịch biểu của các giao tác

2.4.2. Miêu tả đặc tính các lịch biểu dựa trên việc khôi phục

2.5. Xếp thứ tự của lịch biểu

2.5.1. Các lịch biểu theo thứ tự, không theo thứ tự và lịch biểu có thứ tự xung đột

2.5.2. Kiểm tra thứ tự xung đột của một lịch biểu

2.5.3. Sử dụng tính thứ tự

2.5.4. Tƣơng đƣơng khung nhìn và trật tự khung nhìn

2.5.5. Các kiểu tƣơng đƣơng khác của các lịch biểu

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan Luận văn thạc sĩ về xử lý truy vấn hiệu quả

Luận văn thạc sĩ về xử lý truy vấnquản lý giao tác đóng vai trò quan trọng trong việc xây dựng các hệ quản trị cơ sở dữ liệu (CSDL) hiệu quả. Khi dữ liệu ngày càng lớn và phức tạp, việc tối ưu hóa quá trình truy vấn và đảm bảo tính toàn vẹn dữ liệu trở nên cấp thiết. Luận văn này đi sâu vào lý thuyết và thực tiễn của hai chức năng quan trọng này trong hệ quản trị CSDL (DBMS). Theo nghiên cứu của Đào Thị Thu Vân, luận văn này tập trung vào việc tìm hiểu các vấn đề liên quan đến xử lý truy vấnquản lý giao tác. Luận văn bao gồm hai chương chính, chương 1 tập trung vào xử lý và tối ưu truy vấn, chương 2 trình bày về quản lý giao tác. Việc nghiên cứu về xử lý truy vấnquản lý giao tác là rất quan trọng để hiểu rõ cách thức DBMS hoạt động và xây dựng các hệ thống hiệu quả, tin cậy.

1.1. Giới thiệu chung về xử lý truy vấn trong CSDL

Truy vấn trong cơ sở dữ liệu là một biểu thức đại số quan hệ, thực hiện một loạt các thao tác để trích xuất thông tin cần thiết. Nghiên cứu về xử lý truy vấn tập trung vào các thuật toán thực hiện các phép toán đại số quan hệ, cũng như tìm cách thực hiện biểu thức đại số quan hệ theo một trật tự tối ưu để đạt được câu trả lời nhanh nhất. Tối ưu hóa truy vấn SQL là một quá trình phức tạp, bao gồm việc chuyển đổi truy vấn SQL thành đại số quan hệ, ước lượng chi phí thực thi, và chọn phương án thực thi tối ưu nhất. Các kỹ thuật đánh chỉ mục (Indexing) như cây B+Hash Index đóng vai trò quan trọng trong việc tăng tốc độ xử lý truy vấn.

1.2. Tổng quan về quản lý giao tác và tính ACID

Quản lý giao tác là rất cần thiết để đảm bảo tính nhất quán dữ liệu, đặc biệt khi các giao tác xảy ra đồng thời và cạnh tranh nhau một số khoản mục dữ liệu trong cơ sở dữ liệu. Tính nhất quán có thể không còn được bảo toàn nếu không có cơ chế điều khiển đồng thời. Hệ thống cần điều khiển sự tương tác giữa các giao tác đồng thời để duy trì tính ACID (Atomicity, Consistency, Isolation, Durability). Các khái niệm quan trọng trong quản lý giao tác bao gồm Commit (Cam kết), Rollback (Hoàn tác), và Isolation levels (Mức độ cô lập). Các giao thức như Two-phase commit (2PC)Multi-version concurrency control (MVCC) được sử dụng để đảm bảo tính toàn vẹn dữ liệu.

II. Thách thức trong tối ưu hóa truy vấn trong Big Data

Việc tối ưu hóa truy vấn trong môi trường Big Data đặt ra nhiều thách thức. Kích thước dữ liệu khổng lồ, tốc độ xử lý cao, và sự phức tạp của các truy vấn đòi hỏi các kỹ thuật tối ưu hóa tiên tiến. Các hệ thống NoSQL như MongoDB, Cassandra cung cấp các phương pháp xử lý truy vấn khác với các hệ thống CSDL quan hệ truyền thống. Bài toán định giá truy vấn và chọn phương án thực thi tối ưu trở nên khó khăn hơn do không gian tìm kiếm lớn. Các kỹ thuật như tối ưu hóa truy vấn ngữ nghĩaước lượng chi phí đóng vai trò quan trọng trong việc giải quyết các thách thức này.

2.1. Vấn đề hiệu năng trong xử lý truy vấn trên NoSQL

Các hệ thống NoSQL thường được sử dụng để xử lý dữ liệu phi cấu trúc hoặc bán cấu trúc, đòi hỏi các phương pháp xử lý truy vấn khác với SQL. Việc đảm bảo hiệu năng trong xử lý truy vấn trên NoSQL là một thách thức, đặc biệt với các truy vấn phức tạp. Các ngôn ngữ truy vấn NoSQL Query Languages như MongoDB Query Language cung cấp các cơ chế để tối ưu hóa truy vấn, nhưng việc sử dụng hiệu quả các cơ chế này đòi hỏi kiến thức sâu rộng về cơ sở dữ liệu và các thuật toán liên quan.

2.2. Quản lý giao tác ACID trong môi trường phân tán

Giao dịch phân tán (Distributed Transactions) là một vấn đề phức tạp trong môi trường Big DataNoSQL. Việc đảm bảo tính ACID trong môi trường phân tán đòi hỏi các giao thức phức tạp như Two-phase commit (2PC) hoặc các giao thức dựa trên Paxos hoặc Raft. Các hệ thống NoSQL thường chấp nhận đánh đổi tính ACID để đạt được hiệu năng cao hơn, ví dụ bằng cách cung cấp các mức độ cô lập yếu hơn hoặc chỉ hỗ trợ tính nhất quán eventually consistent. Nghiên cứu về giao dịch ACID trong NoSQL là một lĩnh vực đang được quan tâm.

2.3. Ảnh hưởng của đánh chỉ mục đến hiệu suất truy vấn

Đánh chỉ mục (Indexing) là một kỹ thuật quan trọng để tăng tốc độ xử lý truy vấn, nhưng việc lựa chọn chỉ mục phù hợp có thể là một thách thức trong môi trường Big Data. Các kiểu chỉ mục khác nhau như cây B+, Hash Index có ưu nhược điểm riêng, và việc lựa chọn kiểu chỉ mục phụ thuộc vào đặc điểm của dữ liệu và loại truy vấn thường được thực hiện. Việc tạo quá nhiều chỉ mục có thể làm giảm hiệu năng ghi dữ liệu, do đó cần có sự cân bằng giữa hiệu năng truy vấn và hiệu năng ghi.

III. Phương pháp xử lý và tối ưu truy vấn Hướng dẫn từng bước

Luận văn trình bày các phương pháp chính để xử lýtối ưu hóa truy vấn, bao gồm chuyển đổi truy vấn SQL thành đại số quan hệ, sử dụng các thuật toán cơ bản để thực hiện các phép toán truy vấn, và áp dụng các luật dự đoán để tối ưu hóa cây truy vấn. Việc ước lượng chi phí và lựa chọn phương án thực thi tối ưu đóng vai trò quan trọng trong quá trình tối ưu hóa. Các Stored Procedures (Thủ tục lưu trữ)Triggers (Bộ kích hoạt) có thể được sử dụng để tối ưu hóa hiệu năng truy vấn và tự động hóa các tác vụ.

3.1. Chuyển đổi truy vấn SQL sang đại số quan hệ

Quá trình xử lý truy vấn bắt đầu bằng việc chuyển đổi truy vấn SQL thành biểu thức đại số quan hệ. Biểu thức này được biểu diễn dưới dạng cây truy vấn, trong đó các nút lá đại diện cho các quan hệ và các nút trong đại diện cho các phép toán đại số quan hệ. Chuyển đổi truy vấn SQL sang đại số quan hệ cho phép DBMS hiểu rõ cấu trúc và mục đích của truy vấn, từ đó có thể áp dụng các kỹ thuật tối ưu hóa hiệu quả.

3.2. Các thuật toán cơ bản để thực hiện phép toán truy vấn

DBMS cung cấp một loạt các thuật toán để thực hiện các phép toán đại số quan hệ, bao gồm phép chọn, phép chiếu, phép nối, phép hợp, phép giao, và phép trừ. Mỗi phép toán có thể được thực hiện bằng nhiều thuật toán khác nhau, với chi phí và hiệu năng khác nhau. Việc lựa chọn thuật toán phù hợp phụ thuộc vào đặc điểm của dữ liệu và các chỉ mục có sẵn.

3.3. Tối ưu hóa truy vấn bằng luật đại số quan hệ

Áp dụng các luật đại số quan hệ để chuyển đổi cây truy vấn ban đầu thành cây truy vấn tối ưu hơn. Các luật này bao gồm luật giao hoán, luật kết hợp, luật phân phối, và luật hấp thụ. Mục tiêu là giảm thiểu số lượng phép toán cần thực hiện, giảm kích thước của các kết quả trung gian, và tận dụng các chỉ mục có sẵn.

IV. Quản lý giao tác Cách đảm bảo tính ACID và đồng thời

Quản lý giao tác là quá trình đảm bảo tính ACID và điều khiển đồng thời trong CSDL. Các kỹ thuật như khóa, Two-phase commit (2PC), và Multi-version concurrency control (MVCC) được sử dụng để đảm bảo tính nhất quán dữ liệu và ngăn chặn các xung đột giữa các giao tác. Các Isolation levels (Mức độ cô lập) xác định mức độ cô lập giữa các giao tác, và việc lựa chọn mức độ cô lập phù hợp phụ thuộc vào yêu cầu của ứng dụng.

4.1. Cơ chế kiểm soát đồng thời trong quản lý giao tác

Kiểm soát đồng thời là quá trình ngăn chặn các xung đột giữa các giao tác đồng thời. Các cơ chế kiểm soát đồng thời phổ biến bao gồm khóa (locking), tem thời gian (timestamping), và Multi-version concurrency control (MVCC). Mỗi cơ chế có ưu nhược điểm riêng, và việc lựa chọn cơ chế phù hợp phụ thuộc vào đặc điểm của ứng dụng và yêu cầu về hiệu năng.

4.2. Các Isolation levels Mức độ cô lập và ảnh hưởng đến tính nhất quán

Các Isolation levels (Mức độ cô lập) xác định mức độ cô lập giữa các giao tác, và ảnh hưởng đến tính nhất quán dữ liệu. Các mức độ cô lập phổ biến bao gồm Read Uncommitted, Read Committed, Repeatable Read, và Serializable. Mức độ cô lập cao hơn đảm bảo tính nhất quán tốt hơn, nhưng có thể làm giảm hiệu năng. Việc lựa chọn mức độ cô lập phù hợp đòi hỏi sự cân bằng giữa tính nhất quán và hiệu năng.

4.3. Giao thức Two phase commit 2PC trong giao dịch phân tán

Two-phase commit (2PC) là một giao thức được sử dụng để đảm bảo tính nhất quán của các giao dịch trong môi trường phân tán. Trong giao thức 2PC, một giao dịch được chia thành hai giai đoạn: giai đoạn chuẩn bị và giai đoạn cam kết. Giai đoạn chuẩn bị yêu cầu tất cả các thành phần tham gia giao dịch phải sẵn sàng cam kết. Giai đoạn cam kết chỉ được thực hiện nếu tất cả các thành phần đều sẵn sàng cam kết, nếu không giao dịch sẽ bị hủy.

V. Kết quả nghiên cứu Ứng dụng thực tiễn và đánh giá hiệu quả

Luận văn trình bày các kết quả nghiên cứu, bao gồm ứng dụng thực tiễn của các kỹ thuật xử lý truy vấnquản lý giao tác trong các hệ thống CSDL thực tế. Đánh giá hiệu quả của các kỹ thuật này thông qua các thử nghiệm và so sánh với các phương pháp truyền thống. Các kết quả cho thấy việc áp dụng các kỹ thuật tối ưu hóa có thể cải thiện đáng kể hiệu năng truy vấn và đảm bảo tính toàn vẹn dữ liệu.

5.1. Cải thiện hiệu năng truy vấn bằng tối ưu hóa ngữ nghĩa

Tối ưu hóa truy vấn ngữ nghĩa (Semantic Query Optimization) là một kỹ thuật sử dụng kiến thức về ngữ nghĩa của dữ liệu và các ràng buộc để chuyển đổi truy vấn thành một truy vấn tương đương nhưng hiệu quả hơn. Ví dụ, nếu biết rằng một thuộc tính luôn có giá trị dương, có thể loại bỏ các điều kiện kiểm tra giá trị âm trong truy vấn.

5.2. Giảm thiểu chi phí giao dịch trong môi trường phân tán

Các kỹ thuật tối ưu hóa giao dịch trong môi trường phân tán tập trung vào việc giảm thiểu số lượng thông điệp trao đổi giữa các thành phần tham gia giao dịch, và giảm thiểu thời gian khóa tài nguyên. Các kỹ thuật này bao gồm sử dụng các giao thức cam kết tối ưu hơn (ví dụ, giao thức dựa trên Paxos hoặc Raft), và sử dụng các cơ chế kiểm soát đồng thời không khóa.

VI. Kết luận Hướng nghiên cứu tương lai về truy vấn và giao tác

Luận văn kết luận về tầm quan trọng của xử lý truy vấnquản lý giao tác trong các hệ thống CSDL hiện đại. Đề xuất các hướng nghiên cứu tương lai, bao gồm phát triển các kỹ thuật tối ưu hóa mới cho môi trường Big Data, cải thiện hiệu năng quản lý giao tác trong các hệ thống phân tán, và nghiên cứu các phương pháp đánh chỉ mục hiệu quả hơn cho các loại dữ liệu mới. Các Query Languages (Ngôn ngữ truy vấn) mới cũng là một lĩnh vực cần được quan tâm, đặc biệt cho các hệ thống NoSQL.

6.1. Các hướng nghiên cứu về tối ưu hóa truy vấn trong Big Data

Các hướng nghiên cứu về tối ưu hóa truy vấn trong Big Data bao gồm phát triển các thuật toán tối ưu hóa song song và phân tán, sử dụng các kỹ thuật học máy để ước lượng chi phí truy vấn, và phát triển các mô hình dữ liệu mới phù hợp với đặc điểm của dữ liệu Big Data.

6.2. Cải tiến hiệu năng quản lý giao tác trong hệ thống phân tán

Các hướng nghiên cứu về cải tiến hiệu năng quản lý giao tác trong hệ thống phân tán bao gồm phát triển các giao thức cam kết không khóa, sử dụng các cơ chế sao chép dữ liệu để tăng khả năng sẵn sàng, và phát triển các cơ chế phục hồi lỗi hiệu quả hơn.

24/09/2025

Trích đoạn nội dung tài liệu

MỞ ĐẦU Khi dữ liệu đƣợc lƣu trữ trên máy tính thì việc sử dụng nó nhƣ thế nào để có hiệu quả là một thách thức đối với ngƣời sử dụng. Để khai thác một cơ sở dữ liệu tốt cần phải có một hệ quản trị cơ sở dữ liệu tốt. Việc xử lý các truy vấn, quản lý giao tác là hai chức năng quan trọng của một hệ quản trị cơ sở dữ liệu. Tìm hiểu về lý thuyết và thực tiễn của hai chức năng này có ý nghĩa trong việc xây dựng các hệ quản trị cơ sở dữ liệu.

Thông qua việc nghiên cứu một số tài liệu khoa học có liên quan, trong luận văn này chúng tôi đã đi sâu tìm hiểu các vấn đề với đề tài “xử lý truy vấn và quản lý các giao tác”. Luận văn bao gồm hai chƣơng: Chƣơng 1: Xử lý và tối ƣu truy vấn Một truy vấn trên cơ sở dữ liệu là một biểu thức đại số quan hệ, thực hiện một loạt các thao tác trên cơ sở dữ liệu quan hệ để lấy ra các thông tin cần thiết cho việc quản lý. Nghiên cứu về xử lý và tối ƣu truy vấn là nghiên cứu các thuật toán thực hiện các phép toán đại số quan hệ cũng nhƣ tìm cách thực hiện biểu thức đại số quan hệ theo một trật tự nào đó để có câu trả lời nhanh nhất. Chƣơng 2: Quản lý giao tác Quản lý giao tác là rất cần thiết, đặc biệt khi các giao tác xẩy ra đồng thời và có cạnh tranh nhau một số khoản mục dữ liệu trong cơ sở dữ liệu, tính nhất quán có thể không còn đƣợc bảo toàn nữa.

Do vậy hệ thống cần điều khiển sự tƣơng tác giữa các giao tác đồng thời. Do kinh nghiệm làm việc với cơ sở dữ liệu còn ít, chắc chắn trong luận văn còn nhiều thiếu sót. Chúng tôi chân thành mong đƣợc các thầy, các cô, và bạn bè đóng góp ý kiến. 3 TIEU LUAN MOI download : skknchat@gmail.com CHƢƠNG 1 XỬ LÝ VÀ TỐI ƯU TRUY VẤN Trong chƣơng này trình bầy các kỹ thuật mà hệ quản trị cơ sở dữ liệu (DBMS) sử dụng để xử lý, tối ƣu hoá và thực thi các truy vấn bậc cao.

Một truy vấn đƣợc trình bầy trong một ngôn ngữ bậc cao, nhƣ SQL, đầu tiên phải đƣợc kiểm tra, phân tích và xác nhận tính hợp lệ. Bộ quét sẽ xác định các dấu hiệu ngôn ngữ, nhƣ các từ khóa SQL, tên các thuộc tính và tên các quan hệ trong nội dung câu truy vấn, trong khi đó bộ phân tích sẽ kiểm tra cú pháp của truy vấn để xác định xem nó có đƣợc trình bầy phù hợp với các luật cú pháp của ngôn ngữ truy vấn hay không. Một truy vấn cũng phải đƣợc xác nhận tính hợp lệ bằng cách kiểm tra tất cả các tên quan hệ và thuộc tính là hợp lệ, và các tên có ý nghĩa trong lƣu đồ cơ sở dữ liệu cụ thể đƣợc truy vấn. Sau đó một biểu diễn bên trong của truy vấn đƣợc tạo ra, thƣờng là nhƣ một cấu trúc dữ liệu cây gọi là một cây truy vấn.

Cũng có thể biểu diễn truy vấn bằng cách sử dụng một cấu trúc dữ liệu đồ thị gọi là đồ thị truy vấn. Sau đó DBMS sẽ phải đƣa ra một chiến lƣợc thực hiện để lấy ra kết quả của truy vấn từ các file cơ sở dữ liệu. Một truy vấn thƣờng có nhiều chiến lƣợc thực hiện, và quá trình chọn một chiến lƣợc phù hợp để xử lý một truy vấn gọi là tối ƣu truy vấn.1 thể hiện các bƣớc khác nhau của việc xử lý một truy vấn bậc cao. Bộ tối ƣu truy vấn có nhiệm vụ tạo ra một phƣơng án thực hiện và bộ tạo mã tạo ra chƣơng trình để thực hiện phƣơng án đó.

Bộ xử lý cơ sở dữ liệu thời gian chạy có nhiệm vụ chạy chƣơng trình truy vấn trong kiểu thông dịch hoặc biên dịch để tạo ra kết quả của truy vấn. Nếu có một lỗi chạy chƣơng trình đƣợc tạo ra thì bộ xử lý cơ sở dữ liệu thời gian chạy sẽ sinh ra một thông báo lỗi. Thuật ngữ tối ƣu đƣợc sử dụng ở đây là không chính xác vì trong một vài trƣờng hợp, phƣơng án thực hiện đƣợc lựa chọn không phải là chiến lƣợc tốt nhất, nó chỉ là một chiến lƣợc hiệu quả và hợp lý cho việc thực hiện truy vấn. Việc tìm ra một chiến lƣợc tốt nhất thƣờng phải mất nhiều thời gian, ngoại trừ những truy vấn đơn giản, và có thể yêu cầu thông tin về việc các file 4 TIEU LUAN MOI download : skknchat@gmail.com đƣợc cài đặt nhƣ thế nào và ngay cả nội dung của các file, những thông tin đó có thể không có trong từ điển hệ quản trị cơ sở dữ liệu.

Vì vậy, lập kế hoạch của một chiến lƣợc thực hiện là chính xác hơn tối ƣu truy vấn. Truy vấn viết trong ngôn ngữ bậc cao Scanning, parsing, validating Dạng biểu diễn bên trong Query Optimiser Phương án thực hiện Query Code Generator Chương trình thực hiện truy vấn Runtime Database Processor Kết quả của truy vấn Hình 1.1 Các bước điển hình khi xử lý một truy vấn bậc cao 1.1 Chuyển các truy vấn SQL thành đại số quan hệ Một truy vấn SQL đầu tiên chuyển đổi thành một biểu thức đại số quan hệ mở rộng tƣơng đƣơng, đƣợc biểu diễn nhƣ là cấu trúc dữ liệu cây truy vấn, và sau đó đƣợc tối ƣu. Thông thƣờng các truy vấn SQL đƣợc phân tích thành các khối truy vấn, tạo nên các đơn vị cơ sở mà có thể chuyển đổi thành những 5 TIEU LUAN MOI download : skknchat@gmail.com phép toán đại số và đƣợc tối ƣu. Một khối truy vấn chứa một biểu thức SELECT – FROM – WHERE đơn và có thể có các mệnh đề Group by và Having nếu chúng là một phần của biểu thức.

Vì vậy các truy vấn đƣợc lồng bên trong một truy vấn đƣợc xác định nhƣ các khối truy vấn riêng rẽ. [6] Xét các quan hệ sau: EMPLOYEE, DEPARTMENT, WORKS-ON và PROJECT. EMPLOYEE FNAME LNAME SSN ADDESS SEX SALAR DNO BDATE Y DEPARTMENT DNAME DNUMBER MGRSSN MGRSTARTDATE PROJECT PNAME PNUMBER PLOCATION DNUM WORKS-ON ESSN PNO HOURS Bảng 1.1 Các quan hệ Trong đó: Quan hệ EMPLOYEE chứa thuộc tính của các nhân viên: FNAME: tên của các nhân viên LNAME: họ và tên đệm của nhân viên SSN: mã nhân viên BDATE: ngày sinh của mỗi nhân viên ADDESS: địa chỉ của nhân viên SEX: giới tính của nhân viên SALARY: mức lƣơng của từng nhân viên 6 TIEU LUAN MOI download : skknchat@gmail.com DNO: mã số phòng ban mà nhân viên đó làm việc Quan hệ DEPARTMENT chứa thông tin về các phòng ban: DNAME: tên của mỗi phòng ban DNUMBER: mã số của mỗi phòng ban MGRSSN: mã số của ngƣời quản lý từng phòng MGRSTARTDATE: ngày bắt đầu làm quản lý của ngƣời quản lý phòng ban Quan hệ PROJECT chứa thông tin về các dự án: PNAME: tên của dự án PNUMBER: mã số dự án PLOCATION: nơi thực hiện dự án DNUM: mã số của phòng thực hiện dự án Quan hệ WORKS-ON chứa thông tin về thời gian làm việc của mỗi nhân viên: ESSN: mã số của nhân viên PNO: mã số dự án mà nhân viên đó tham gia HOURS: số giờ mà nhân viên đó thực hiện Xét truy vấn SQL sau trên quan hệ EMPLOYEE trong bảng 1.1 SELECT LNAME, FNAME FROM EMPLOYEE WHERE SALARY > (SELECT MAX(SALARY) FROM EMPLOYEE WHERE DNO=5); Truy vấn này chứa một truy vấn con lồng bên trong và vì vậy có thể đƣợc tách thành 2 khối: Khối trong là: SELECT MAX (SALARY) FROM EMPLOYEE WHERE DNO=5 7 TIEU LUAN MOI download : skknchat@gmail.com Và khối ngoài là: SELECT LNAME, FNAME FROM EMPLOYEE WHERE SALARY > c Với c biểu diễn kết quả do khối trong trả lại. Khối trong có thể đƣợc chuyển thành biểu thức quan hệ mở rộng nhƣ sau: FMAX SALARY(DNO=5(EMPLOYEE)) Và khối ngoài đƣợc chuyển sang biểu thức quan hệ nhƣ sau: LNAME, FNAME(SALARY>C (EMPLOYEE)) Sau đó bộ tối ƣu truy vấn sẽ chọn một phƣơng án thực hiện cho từng khối.

Chú ý rằng trong ví dụ ở trên khối trong chỉ cần thực hiện một lần để đƣa ra lƣơng lớn nhất, sau đó khối ngoài sử dụng lƣơng lớn nhất này nhƣ là hằng số c. Truy vấn đó gọi là truy vấn lồng nhau không liên kết. Việc tối ƣu các truy vấn lồng nhau liên kết sẽ khó khăn hơn nhiều.2 Các thuật toán cơ bản thực hiện phép toán truy vấn Một hệ quản trị cơ sở dữ liệu (RDBMS) phải có các thuật toán để thực hiện các kiểu phép toán quan hệ khác nhau có thể xuất hiện trong một chiến lƣợc thực hiện truy vấn. Các phép toán bao gồm phép toán đại số quan hệ cơ bản và mở rộng, hoặc là tổ hợp các phép toán này.

Với mỗi phép toán (hoặc một tổ hợp phép toán) nhƣ thế, thƣờng phải có sẵn một hoặc nhiều thuật toán để thực hiện nó.1 Sắp xếp ngoài Sắp xếp là một trong các thuật toán cơ bản đƣợc sử dụng trong xử lý truy vấn. Ví dụ, khi một truy vấn SQL chỉ ra một mệnh đề Order by, kết quả truy vấn phải đƣợc sắp xếp. Sắp xếp cũng là một bộ phận then chốt trong các thuật toán đƣợc sử dụng cho phép nối (Join) hoặc các phép toán khác nhƣ phép hợp (Union), phép giao (Intersection) và trong các thuật toán loại bỏ bản 8 TIEU LUAN MOI download : skknchat@gmail.com ghi trùng nhau đối với phép chiếu (Project) khi một truy vấn SQL chỉ ra tuỳ chọn Distinct trong mệnh đề Select. Sắp xếp ngoài đề cập đến các thuật toán sắp xếp phù hợp với các file lớn đƣợc lƣu trữ trên đĩa mà không xếp vào bộ nhớ chính, ví dụ hầu hết các file cơ sở dữ liệu.

Thuật toán sắp xếp ngoài thƣờng sử dụng chiến lƣợc sắp xếp trộn, nó bắt đầu bằng việc sắp xếp các file con nhỏ, gọi là các run, của file chính và sau đó trộn các run đã đƣợc sắp xếp tạo nên các file con lớn hơn và các file con đó lại đƣợc trộn với nhau. Giống nhƣ các thuật toán khác, thuật toán sắp xếp trộn đòi hỏi một không gian phòng đợi (buffer space) trong bộ nhớ chính, ở đó việc sắp xếp và trộn các run đƣợc thực hiện. Thuật toán cơ bản đƣợc đƣa ra ở hình 1.2 gồm hai giai đoạn: (1) giai đoạn sắp xếp, (2) giai đoạn trộn. Trong giai đoạn sắp xếp, các run của file có thể đặt vừa vào bộ đệm có sẵn sẽ đƣợc đọc vào trong bộ nhớ chính và đƣợc sắp xếp bằng cách dùng một thuật toán sắp xếp trong rồi đƣợc ghi trở lại vào đĩa nhƣ các file con đƣợc sắp xếp tạm thời.

Kích cỡ của run và số lƣợng run ban đầu (n R) đƣợc chỉ ra bởi các khối file (b) và không gian phòng đợi có sẵn (nB).

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ