1. Trang chủ
  2. » Luận Văn - Báo Cáo

Kỹ thuật lập chỉ mục cho cơ sở dữ liệu song thời gian dựa trên cấu trúc đa phiên bản

183 34 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

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

Nội dung

Đại Học Quốc Gia Thành Phố Hồ Chí Minh Trường Đại Học Bách Khoa LÊ QUANG LỘC KỸ THUẬT LẬP CHỈ MỤC CHO CƠ SỞ DỮ LIỆU SONG THỜI GIAN DỰA TRÊN CẤU TRÚC ĐA PHIÊN BẢN (INDEXING FOR BITEMPORAL DATABASES BASED ON MULTIVERSION STRUCTURE) Chuyên ngành: Khoa học Máy tính LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH, tháng 06 năm 2008 ĐẠI HỌC QUỐC GIA TP HCM CỘNG HOÀ Xà HỘI CHỦ NGHIà VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc Lập - Tự Do - Hạnh Phúc -oOo Tp HCM, ngày 30 tháng năm 2008 NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Lê Quang Lộc Giới tính: Nam ;/ Nữ … Ngày, tháng, năm sinh: 05/08/1982 Nơi sinh: Bà Rịa-Vũng Tàu Chuyên ngành: Khoa học Máy tính Khoá: 2006 1- TÊN ĐỀ TÀI : KỸ THUẬT LẬP CHỈ MỤC CHO CƠ SỞ DỮ LIỆU SONG THỜI GIAN DỰA TRÊN CẤU TRÚC ĐA PHIÊN BẢN 2- NHIỆM VỤ LUẬN VĂN : Xây dựng cấu trúc mục dựa cấu trúc đa phiên sẵn có để lập mục cho liệu song thời gian; hỗ trợ câu truy vấn tầm, đồng thời tích hợp mục vào hệ quản trị CSDL Oracle, có tính chất suốt với người dùng cuối 3- NGÀY GIAO NHIỆM VỤ : 7/2007 4- NGÀY HOÀN THÀNH NHIỆM VỤ : 30/6/2008 5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN : PGS TS Dương Tuấn Anh Nội dung đề cương Luận văn thạc sĩ Hội Đồng Chuyên Ngành thông qua CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM BỘ MÔN (Họ tên chữ ký) QUẢN LÝ CHUYÊN NGÀNH (Họ tên chữ ký) PGS TS Dương Tuấn Anh TS Đinh Đức Anh Vũ CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH Cán hướng dẫn khoa học : PGS TS Dương Tuấn Anh Cán chấm nhận xét 1: TS Đặng Trần Khánh Cán chấm nhận xét 2: TS Nguyễn Quang Tấn Luận văn thạc sĩ bảo vệ HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày 27 tháng 08 năm 2008 Luận văn cao học: Kỹ thuật lập mục cho CSDL song thời gian dựa cấu trúc đa phiên i LỜI CAM ĐOAN Tôi cam đoan rằng, ngoại trừ kết tham khảo từ cơng trình khác ghi rõ luận văn, cơng việc trình bày luận văn tơi thực chưa có phần nội dung luận văn nộp để lấy cấp trường trường khác Ngày 30 tháng 06 năm 2008 Lê Quang Lộc Luận văn cao học: Kỹ thuật lập mục cho CSDL song thời gian dựa cấu trúc đa phiên ii LỜI CẢM ƠN Tôi xin gởi lời cảm ơn chân thành sâu sắc đến PGS TS Dương Tuấn Anh, người Thầy tận tình hướng dẫn tơi suốt q trình thực luận văn cao học tạo điều kiện để tơi hồn thành luận văn Tơi xin cảm ơn gia đình động viên tạo điều kiện tốt để tơi tiếp tục theo đuổi việc học tập nghiên cứu Tôi trân trọng dành tặng thành luận văn cho Cha Mẹ Nhờ công lao dưỡng dục Người mà chúng có thành ngày hơm Con xin hứa tiếp tục cố gắng phấn đấu để vươn cao Tơi gởi lịng tri ân đến tất bạn bè, người động viên, thăm hỏi có giúp đỡ thiết thực giúp tơi hồn tất luận văn Luận văn cao học: Kỹ thuật lập mục cho CSDL song thời gian dựa cấu trúc đa phiên iii TÓM TẮT LUẬN VĂN Cơ sở liệu (CSDL) song thời gian quan tâm từ năm 80 Tính chất thời gian giao tác địi hỏi liệu bị xóa luận lí, điều làm CSDL song thời gian tăng lên không ngừng, chí theo cấp số nhân Xây dựng kỹ thuật lập mục cho liệu song thời gian trở thành nhu cầu Rất nhiều cấu trúc liệu giải thuật lập mục tương ứng giới thiệu Thời gian gần đây, nghiên cứu lĩnh vực chủ yếu tập trung giải vấn đề liên quan đến liệu thời gian vấn đề thời điểm tại, phương pháp dùng cấu trúc đa phiên để giải vấn đề cho thời gian giao tác thực nghiệm chứng minh triển vọng Song, việc kết hợp phương pháp để giải vấn đề cho liệu thời gian hợp lệ phương pháp cho liệu thời gian giao tác liệu song thời gian gặp nhiều khó khăn Đề tài đề nghị cấu trúc liệu xây dựng dựa cấu trúc đa phiên bản, cấu trúc đa phiên mở rộng (hay gọi B+ song thời gian, bitemporal B+-Tree), giải thuật cập nhật liệu tìm kiếm liệu dựa theo cấu trúc B+ Cấu trúc đặc biệt hiệu với câu truy vấn tầm kết hợp khóa thời gian giao tác Đề tài giới thiệu số cải tiến cấu trúc B+ song thời gian Cuối đề tài giới thiệu phương pháp tích hợp kỹ thuật lập mục vào hệ quản trị sở liệu Oracle, kỹ thuật mẻ nghiên cứu CSDL Luận văn cao học: Kỹ thuật lập mục cho CSDL song thời gian dựa cấu trúc đa phiên iv ABSTRACT By supporting the valid and transaction time dimensions, bitemporal databases can be applied to many banking, security and personel applications Logically deleting recordsin bitemporal databases makes space of the databases increase rapidly and consideraly Temporal access methods have been studied and there have been several remarkable results.Recently, while much attention of researchers has focused on nowrelative problem, multiversion B-Tree has become the best approach for transaction time databases In this thesis, we propose an extension of multiversion access method, bitemporal B-Tree (BBT), together with insertion, deletion and query operations based on B-Tree to support for bitemporal databases This approach has the best performance with the query classes related to transaction time and key Some improvements are also provided to reduce the space requirement and speed up the query response time Besides, data cartridge has been applied to integrate BBT into Oracle DBMS transparently The BBT has been experimented on synthetic data and the experimental results show that the new multiversion access method is efficient Luận văn cao học: Kỹ thuật lập mục cho CSDL song thời gian dựa cấu trúc đa phiên v MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii TÓM TẮT LUẬN VĂN iii ABSTRACT iv MỤC LỤC v DANH MỤC HÌNH viii DANH MỤC BẢNG xii Chương 1.1 1.2 1.3 1.4 Lý thực đề tài Mục tiêu giới hạn đề tài Tóm lược kết đạt Cấu trúc luận văn Chương 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.3 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.3.8 2.4 CƠ SỞ LÝ THUYẾT Hệ quản trị CSDL hướng thời gian Các khái niệm Các yêu cầu phương pháp truy đạt liệu CSDL hướng thời gian Các thao tác để truy cập liệu hướng thời gian 13 Phân biệt phương pháp lập mục CSDL hướng thời gian 14 Lập mục CSDL hướng thời gian 15 Phân loại câu truy vấn 15 Các loại chi phí phương pháp truy đạt liệu 17 Sự phân trang mục (Index Pagination) gom cụm liệu (data clustering) 18 Chặn độ phức tạp I/O 19 Cấu trúc liệu đa phiên 19 Các thông số cấu trúc đa phiên bản: 20 Các thao tác liệu cấu trúc đa phiên bản: 20 Các khái niệm đặc trưng cấu trúc đa phiên 21 Giải thuật chi tiết hai thao tác cập nhật liệu 23 Ví dụ thao tác cập nhật liệu: 27 Giải thuật chi tiết hai thao tác truy vấn liệu 35 Các tính chất cấu trúc đa phiên bản: 39 Các vấn đề cần giải cấu trúc đa phiên 39 Kết luận 42 Chương 3.1 GIỚI THIỆU ĐỀ TÀI NHỮNG CƠNG TRÌNH LIÊN QUAN 43 Các hướng tiếp cận gom cụm liệu 44 3.1.1 Gom cụm liệu dựa giá trị thời gian 44 3.1.2 Gom cụm liệu dựa giá trị khóa 45 3.1.3 Gom cụm liệu dựa giá trị thời gian khóa 45 3.2 Các phương pháp lập mục cho CSDL thời gian giao tác 45 3.2.1 Các phương pháp gom cụm liệu dựa liệu khóa 46 3.2.2 Các phương pháp gom cụm liệu dựa liệu thời gian 46 3.2.3 Các phương pháp gom cụm liệu dựa khóa-thời gian 48 Luận văn cao học: Kỹ thuật lập mục cho CSDL song thời gian dựa cấu trúc đa phiên 3.3 3.4 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.6 thương mại 3.7 Các phương pháp lập mục cho CSDL thời gian hợp lệ 55 Các phương pháp lập mục cho CSDL song thời gian 56 Các phương pháp giải vấn đề liên quan đến thời điểm 59 Phương pháp giá trị lớn (MAX) 59 Phương pháp dùng biến 59 Phương pháp giá trị điểm (POINT) 60 Phương pháp dùng cấu trúc kép 60 Phương pháp dùng cấu trúc đa phiên 60 Các phương pháp tích hợp mục vào hệ quản trị CSDL 60 Kết luận 61 Chương 4.1 4.2 4.3 vi CẤU TRÚC DỮ LIỆU CÂY B SONG THỜI GIAN 63 Đặt vấn đề 63 Hướng giải 63 Các cải tiến BBT 64 4.3.1 Cải tiến thao tác chia nút theo phiên BBT 64 4.3.2 Cải tiến việc mở rộng thuộc tính khóa bên trái 66 4.4 4.5 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6 Giới thiệu chung BBT 68 Các thao tác liệu mà cấu trúc BBT hỗ trợ: 69 Thêm liệu: 69 Xoá liệu: 69 Truy vấn tầm “range/range/range”: 69 Truy vấn tầm “range/*/range”: 70 Truy vấn tầm “point/*/range”: 70 Các giải thuật thao tác liệu cấu trúc BBT: 70 4.6.1 Giải thuật chi tiết hai thao tác insert 70 4.6.2 Giải thuật chi tiết hai thao tác version_split 71 4.6.3 Giải thuật chi tiết hai thao tác logical_remove 73 4.6.4 Giải thuật chi tiết hai thao tác key_split 73 4.6.5 Giải thuật chi tiết hai thao tác check_weak_underflow 75 4.6.6 Giải thuật chi tiết hai thao tác merge 76 4.6.7 Giải thuật chi tiết hai thao tác _update_parent 76 4.6.8 Giải thuật chi tiết hai thao tác _apply_update 77 4.6.9 Giải thuật chi tiết hai thao tác search 78 4.6.10 Ví dụ thao tác cập nhật liệu cấu trúc mục BBT: 80 4.6.11 Ví dụ ngoại lệ nút gốc cấu trúc mục BBT : 83 4.6.12 Ví dụ truy vấn r_r_r_query 85 4.7 Kết luận 87 Chương 5.1 HIỆN THỰC 88 Hiện thực cấu trúc mục BBT 89 5.1.1 Giới thiệu thư viện GiST 89 5.1.2 Xây dựng BBT thư viện GiST 92 5.2 5.2.1 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7 5.3 Xây dựng tích hợp BBT vào hệ quản trị CSDL Oracle 94 Qui trình xây dựng tích hợp mục BBT vào hệ quản trị CSDL Oracle 94 Xây dựng kiểu liệu INT_BBT 95 Xây dựng số hàm xử lí toán tử 96 Xây dựng lớp bbtree_im để thực hàm ODCIIndex interface 97 Xây dựng toán tử 98 Tạo kiểu mục dùng thực lớp bbtree_im 98 Tạo liệu để kiểm tra 98 Kết luận 99 Chương ĐO HIỆU NĂNG 100 Luận văn cao học: Kỹ thuật lập mục cho CSDL song thời gian dựa cấu trúc đa phiên 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.1.6 6.1.7 6.2 BBT vii Đo hiệu BBT 101 Qui tắc xây dựng tập liệu 101 Đo hiệu không gian lưu trữ 102 Đo hiệu cập nhật liệu 102 Đo hiệu thay đổi giá trị lớn giá trị khóa 103 Đo hiệu với giá trị khác V 104 Đo hiệu thay đổi tỉ lệ thời gian hợp lệ 106 Kết luận: 107 So sánh truy vấn liệu Oracle trước sau tích hợp mục 107 6.2.1 Qui tắc xây dựng tập liệu 107 6.2.2 Kết đạt 108 Chương 7.1 7.2 7.3 KẾT LUẬN 109 Tổng kết 109 Những đóng góp đề tài 110 Hướng phát triển 111 TÀI LIỆU THAM KHẢO 113 Phụ Lục A THƯ VIỆN GIST A.1 A.1 A.2 Giới thiệu A.1 Các lớp A.2 Phụ Lục B PHƯƠNG PHÁP TÍCH HỢP MỘT CHỈ MỤC MỚI VÀO HỆ QUẢN TRỊ CSDL ORACLE B.1 B.1 B.2 B.3 B.4 B.5 B.6 B.7 Các khái niệm B.1 Định nghĩa kiểu đối tượng B.8 Hiện thực hộp liệu ngôn ngữ PL/SQL .B.10 Hiện thực hộp liệu ngôn ngữ C, C++, Java B.15 Sử dụng mục mở rộng B.21 Xây dựng mục theo miền ứng dụng B.24 Định nghĩa toán tử .B.27 Phụ Lục C CÁC HÀM CƠ BẢN CỦA ODCIINDEX INTERFACE CƠ BẢN ĐỂ PHÁT TRIỂN HỘP DỮ LIỆU CHO HỆ QUẢN TRỊ CSDL ORACLE C.1 C.1 C.2 C.3 C.4 C.5 C.6 C.7 C.8 C.9 C.10 ODCIGetInterfaces C.1 ODCIIndexAlter C.2 ODCIIndexClose C.4 ODCIIndexCreate C.4 ODCIIndexDelete C.6 ODCIIndexDrop C.7 ODCIIndexFetch C.8 ODCIIndexInsert C.9 ODCIIndexStart .C.11 ODCIIndexUpdate C.13 Phụ Lục D THUẬT NGỮ VIỆT-ANH ĐỐI CHIẾU D.1 U Luận văn cao học: Kỹ thuật lập mục cho CSDL song thời gian dựa cấu trúc đa phiên C.3 o ODCIConst.Success thành công o ODCIConst.Error lỗi o ODCIConst.Warning trường hợp cịn lại • Các ý sử dụng o Hàm nên thực phương thức tĩnh (static) o Một câu lệnh ALTER INDEX gọi cho mục theo miền nhiều cách ALTER INDEX index_name PARAMETERS (parms); Hay ALTER INDEX index_name REBUILD PARAMETERS (parms); Câu lệnh thứ xếp lại mục theo miền ứng dụng dựa thơng số truyền vào Trong câu lệnh thứ hai xây dựng lại o Chiều dài tối đa chuỗi thông số đầu vào 1000 kí tự Giá trị OUT đối số parms ghi vào chuỗi thơng số kết để ghi vào danh mục hệ thống o Câu lệnh ALTER INDEX dùng để đặt lại tên mục theo miền ứng dụng cách: ALTER INDEX index_name RENAME TO new_index_name Trong cách này, tên mục theo miền ứng dụng truyền vào thông qua đối số parms o Nếu mệnh đề PARALLEL bị bỏ qua, mục theo miền ứng dụng hay phần vùng cục mục theo miền ứng dụng xây dựng lại cách o Nếu mệnh đề PARALLEL khai báo, mức độ song song truyền vào cho ODCIIndexAlter thuộc tính IndexParaDegree ODCIIndexInfo, Parallel bit thuộc tính IndexInfoFlags bật lên Mức độ song song định yếu tố sau: o Nếu PARALLEL DEGREE deg định, deg truyền vào o Nếu có PARALLEL định, giá trị mặc định truyền vào o Nếu hàm ODCIIndexAlter trả ODCIConst.Success, mục xem hợp lệ sử dụng Nếu hàm ODCIIndexAlter trả ODCIConst.Warning, mục xem hợp lệ sử dụng câu cảnh báo trả cho người dùng Nếu ODCIIndexAlter trả lỗi (hay ngoại lệ), mục theo miền ứng dụng đánh dấu FAILED o Khi hàm ODCIIndexAlter thực thi, mục theo miền ứng dụng đánh dấu LOADING Luận văn cao học: Kỹ thuật lập mục cho CSDL song thời gian dựa cấu trúc đa phiên C.4 o Mỗi câu SQL thực thi ODCIIndexAlter coi câu lệnh độc lập Các thay đổi thực ODCIIndexCreate không bảo đảm nguyên tố o Tùy chọn thay AlterIndexUpdBlockRefs áp dụng bảng index-organized Khi người dùng cuối thực thi ALTER INDEX UPDATE BLOCK REFERENCES, ODCIIndexAlter gọi với AlterIndexUpdBlockRefs bit bật lên nhà phát triển ống hội cập nhật vị trí khối hàng mà chứa luận lí rowids C.3 ODCIIndexClose Được gọi kết thúc xử lí tốn tử • Cú pháp ODCIIndexClose( self IN , env ODCIEnv) RETURN NUMBER Argument Meaning self(IN) Là giá trị ngữ cảnh trả phép thực thi hàm ODCIIndexFetch trước Env Cấu trúc điều khiển môi trường truyền vào hàm lúc gọi Bảng C.4 Các đối số hàm ODCIIndexClose • Returns o ODCIConst.Success thành công o ODCIConst.Error lỗi o ODCIConst.Warning trường hợp cịn lại • Các ý sử dụng Hàm thường thực để giải phóng nhớ hay tài nguyên khởi tạo trước C.4 ODCIIndexCreate Được gọi mục theo miền ứng dụng tạo câu lệnh CREATE INDEX INDEXTYPE IS PARAMETERS mục theo miền ứng dụng tạo mục khơng phân vùng mục theo miền ứng dụng phân vùng cục • Cú pháp ODCIIndexCreate( ia ODCIIndexInfo, parms VARCHAR2, env ODCIEnv) RETURN NUMBER Luận văn cao học: Kỹ thuật lập mục cho CSDL song thời gian dựa cấu trúc đa phiên Argument Meaning Ia Chứa thông tin the indexed column Parms C.5 Là chuỗi PARAMETERS truyền vào không thông dịch Oracle Chiều dài tối đa chuỗi 1000 kí tự Env Cấu trúc điều khiển môi trường truyền vào hàm lúc gọi Bảng C.5 Các đối số hàm ODCIIndexCreate • Returns o ODCIConst.Success thành cơng o ODCIConst.Error lỗi o ODCIConst.Warning o ODCIConst.ErrContinue phương thức gọi cấp độ phân vùng việc tạo phân vùng cục bộ, lỗi xảy ra, tiếp tục thực thi tiếp o ODCIConst.Fatal xảy hàm CREATE INDEX khơng tạo đối tương mà thực thi hành động roll back • Các ý sử dụng o Hàm nên thực phương thức tĩnh (static) o Hàm ODCIIndexCreate nên tạo đối tượng (ví dụ bảng) để lưu trữ liệu mục, tạo liệu mục, lưu trữ liệu mục bảng liệu mục o Thủ tục ODCIIndexCreate nên quản lý việc tạo mục hai trường hợp bảng trống hay bảng có liệu Nếu bảng có cột mục, thủ tục ODCIIndexCreate duyệt toàn bảng tạo liệu mục o Mỗi câu SQL thực thi ODCIIndexCreate câu lệnh độc lập Các thay đổi thực ODCIIndexCreate không bảo đảm nguyên tố o Đối với mục theo miền ứng dụng không phân vùng, mức độ song song truyền cho ODCIIndexCreate thuộc tính IndexParaDegree ODCIIndexInfo, Parallel bit IndexInfoFlags bật lên Mức độ song song định yếu tố: ƒ Nếu PARALLEL DEGREE deg định, deg truyền vào ƒ Nếu có PARALLEL định, giá trị mặc định truyền vào ƒ Nếu mệnh đề PARALLEL bị bỏ qua, thao tác thực thi cách Luận văn cao học: Kỹ thuật lập mục cho CSDL song thời gian dựa cấu trúc đa phiên C.6 o Nếu hàm ODCIIndexCreate trả ODCIConst.Success, mục xem hợp lệ sử dụng Nếu hàm ODCIIndexAlter trả ODCIConst.Warning, mục xem hợp lệ sử dụng câu cảnh báo trả cho người dùng Nếu ODCIIndexCreate trả lỗi (hay ngoại lệ), mục theo miền ứng dụng đánh dấu FAILED o Khi hàm ODCIIndexCreate thực thi, mục theo miền ứng dụng đánh dấu LOADING o Các thao tác phép mục theo miền ứng dụng bị đánh dấu FAILED DROP INDEX, TRUNCATE TABLE hay ALTER INDEX REBUILD o Nếu mục theo miền ứng dụng tạo cột liệu đối tượng có thuộc tính REF, khơng bỏ tham chiếu REFs xây dựng mục bạn Nếu liệu bảng khác bị thay đổi, bạn không thông báo mục theo miền ứng dụng bạn khơng cịn Khi tạo ta mục theo miền ứng dụng không phân vùng, phương thức ODCIIndexCreate gọi lần, giá trị trả hợp lệ ODCIConstSuccess, ODCIConstWarning hay ODCIConstError Tên IndexPartition TablePartition NULL callProperty NULL o Khi tạo mục theo miền ứng dụng phân vùng, phương thức ODCIIndexCreate gọi n+2 lần, n số phần vùng cục Lần gọi cuối quản lý đối tượng mục có cấp cao nhất, n lần gọi trung gian quản lý đối tượng mục cấp độ vùng Ở lần gọi đầu, bảng để giữ siêu liệu cấp độ mục tạo Ở lần gọi trung gian, bảng độc lập lưu trữ liệu cấp độ vùng tạo sử dụng, lần gọi cuối, mục tạo bảng siêu liệu mục o Đối với mục phân vùng cục bộ, lần gọi lần gọi cuối trả ODCIConstSuccess, ODCIConstWarning hay ODCIConstError N lần gọi trung gian trả ODCIConstSuccess, ODCIConstWarning, ODCIConstError hay ODCIConstErrContiue Nếu phép gọi cấp độ vùng trả ODCIConstError, vùng tương ứng bị đánh dấu FAILED, mục bị đánh dấu FAILED, kết thúc hành động tạo Nếu phép gọi trả ODCIConstErrContinue, vùng tương ứng bị đánh dấu FAILED, phương thức gọi cho lần o Phương thức gọi thực thi ALTER TABLE ADD PARTITION Trong trường hợp này, ODCIIndexCreate gọi lần, Tên IndexPartition TablePartition điền vào, callProperty bị gán NULL C.5 ODCIIndexDelete Được gọi hàng bị xóa khỏi bảng có mục theo miền ứng dụng định nghĩa hay nhiều cột Luận văn cao học: Kỹ thuật lập mục cho CSDL song thời gian dựa cấu trúc đa phiên C.7 • Cú pháp ODCIIndexDelete( ia ODCIIndexInfo, rid VARCHAR2, oldval , env ODCIEnv) RETURN NUMBER Argument Meaning Ia Chứa thông tin cột mục Rid Các ký tự định danh hàng hàng bị xóa Oldval Giá trị cột mục hàng bị xóa Kiểu liệu giống với kiểu liệu cột mục Env Cấu trúc điều khiển môi trường truyền vào hàm lúc gọi Bảng C.6 Các đối số hàm ODCIIndexDelete • Returns o ODCIConst.Success thành cơng o ODCIConst.Error lỗi • Các ý sử dụng o Hàm nên thực phương thức tĩnh (static) o Hàm nên xóa liệu mục tương ứng với hàng bị xóa khỏi bảng hay tập tin mục o Nếu ODCIIndexDelete gọi cấp độ vùng, tên vùng mục điền vào đối số ODCIIndexInfo C.6 ODCIIndexDrop Phương thức ODCIIndexDrop gọi mục theo miền ứng dụng bị xóa tường minh câu lệnh DROP INDEX, hay không tường minh thông qua câu lệnh DROP TABLE, hay câu lệnh DROP USER • Cú pháp ODCIIndexDrop( ia ODCIIndexInfo, env ODCIEnv) RETURN NUMBER Argument Meaning Ia Chứa thông tin cột mục Env Cấu trúc điều khiển môi trường truyền vào hàm lúc gọi Bảng C.7 Các đối số hàm ODCIIndexDrop Luận văn cao học: Kỹ thuật lập mục cho CSDL song thời gian dựa cấu trúc đa phiên C.8 • Returns o ODCIConst.Success thành cơng o ODCIConst.Error lỗi o ODCIConst.Warning xóa mục phân vùng cục o ODCIConst.ErrContinue, n+1 phép gọi trả • Các ý sử dụng o Hàm nên thực phương thức tĩnh (static) o Phương thức nên xóa bảng chứa liệu mục theo miền ứng dụng o Phương thức gọi để xóa mục khơng phân vùng, xóa mục phân vùng cục bộ, áp dụng cho vùng mục riêng lẻ dùng câu lệnh ALTER TABLE DROP PARTITION Để xóa mục khơng phân vùng, ODCIIndexDrop gọi lần, với giá trị IndexPartition, TablePartition callProperty gán NULL Để xóa mục phân vùng, hàm gọi N+2 lần, N số phân vùng Để xóa vùng mục riêng lẻ dùng câu lệnh ALTER TABLE DROP PARTITION, hàm gọi lần với giá trị IndexPartition the TablePartition điền vào callProperty gán NULL o Có thể mục theo miền ứng dụng bị đánh dấu FAILED (do kết thúc bất thường số hàm DDL), hàm ODCIIndexDrop nên có khr xóa riêng phần mục theo miền ứng dụng tạo Khi hàm ODCIIndexDrop thực thi, mục theo miền ứng dụng đánh dấu LOADING o Lưu ý hàm ODCIIndexDrop trả giá trị ODCIConst.Error hay exception, câu lệnh DROP INDEX thất bại mục bị đánh dấu FAILED Trong trường hợp đó, khơng có cách để lấy rid mục theo miền cách sử dung tùy chọn FORCE Nếu hàm ODCIIndexDrop trả ODCIConst.Warning trường hợp câu lệnh DROP INDEX tường minh, phép tốn thành cơng câu cảnh báo trả cho người dùng o Mỗi câu SQL thực thi ODCIIndexCreate câu lệnh độc lập Các thay đổi thực ODCIIndexCreate không bảo đảm nguyên tố C.7 ODCIIndexFetch Phương thức gọi lặp lặp lại để rút trích hàng thỏa mãn vị từ tốn tử • Cú pháp ODCIIndexFetch( self IN [OUT] , Luận văn cao học: Kỹ thuật lập mục cho CSDL song thời gian dựa cấu trúc đa phiên C.9 nrows IN NUMBER, rids OUT ODCIRidList, env ODCIEnv) RETURN NUMBER Argument self(IN) self(OUT) Meaning Giá trị ngữ cảnh trả lần gọi trước (là ODCIIndexFetch Hay ODCIIndexStart lần fetch gọi cho thực thể toán tử Giá trị ngữ cảnh truyền cho lần gọi Chú ý thông số không định nghĩa OUT giá trị không bị thay đổi lần gọi Nrows Là số lượng hàng kết lớn trả choOracle lần gọi Rids Là dãy định danh hàng cho hàng kết trả lần gọi Env Cấu trúc điều khiển môi trường truyền vào hàm lúc gọi Bảng C.8 Các đối số hàm ODCIIndexFetch • Returns o ODCIConst.Success thành cơng o ODCIConst.Error lỗi • Các ý sử dụng o ODCIIndexFetch trả hàm thỏa mãn vị từ tốn tử Đó là, trả định danh hàng tất hàng mà toán tử trả giá trị rơi vào tầm giá trị tính trước o Mỗi lần gọi tới ODCIIndexFetch trả tối đa nrows hàng Giá trị thông số nrows truyền vào định Oracle dựa số nhân tố bên Tuy nhiên, hàm ODCIIndexFetch trả nhỏ nrows hàng Các định danh trở thông số dãy rids Một NULL ROWID (một phần tử dãy rids) tất hàng thỏa mãn trả Giả sử có 3000 hàng thỏa mãn vị từ toán tử, giá trị nrows = 2000 Lần gọi ODCIIndexFetch trả 2000 hàng Lần gọi thứ hai trả danh sách 1000 hàng lại theo sau phần tử NULL Giá trị NULL danh sách tất hàm thỏa mãn trả o Nếu giá trị ngữ cảnh bị thay đổi lần gọi này, giá trị truyền cho lần gọi C.8 ODCIIndexInsert Được gọi hàng hay tập hàng đươc thêm vào bảng mà mục theo miền ứng dụng định nghĩa hay nhiều cột Luận văn cao học: Kỹ thuật lập mục cho CSDL song thời gian dựa cấu trúc đa phiên Argument Meaning ODCIIndexInsert( Thêm hàng C.10 ia ODCIIndexInfo, rid VARCHAR2, newval , env ODCIEnv) RETURN NUMBER ODCIIndexInsert( Thêm tập hàng ia ODCIIndexInfo, ridlist ODCIRidList, newvallist , env ODCIEnv) RETURN NUMBER Bảng C.9 Các loại hàm ODCIIndexInsert Argument Meaning Ia Chứa thông tin mục cột mục Rid Định danh hàng hàng bảng newval Giá trị cột mục hàng thêm vào Ridlist Một dãy (kích thước tối đa 32767) chứa danh sách định danh hàng cho hàng thêm vào bảng newvallist Một dãy (kích thước tối đa 32767) chứa danh sách giá trị thêm vào cột mục bảng; Những phần tử có giá trị tương ứng 1-1 với phần tử ridlist Env Cấu trúc điều khiển môi trường truyền vào hàm lúc gọi Bảng C.10 Các đối số hàm ODCIIndexInsert • Returns o ODCIConst.Success thành cơng o ODCIConst.Error lỗi • Các ý sử dụng o Hàm nên thực phương thức tĩnh (static) o Phương thức nên chèn thêm liệu mục tương ứng với hàng hay tập hàng truyền vào vào bảng hay tập tin chứa liệu mục Giá trị NULL ridlist dánh dấu kết thúc dãy Luận văn cao học: Kỹ thuật lập mục cho CSDL song thời gian dựa cấu trúc đa phiên C.11 o Nếu kiểu liệu định nghĩa với WITH ARRAY DML, bó hàng chèn vào bảng Trong trường hợp này, ODCIIndexInsert gọi cú pháp thứ hai Ngược lại, cú pháp hàng dùng o Nếu ODCIIndexInsert gọi mức phân vùng, tên phân vùng mục điền vào đối số ODCIIndexInfo C.9 ODCIIndexStart Được gọi để bắt đầu ước lượng toán tử cột mục • Cú pháp ODCIIndexStart( sctx IN OUT , ia ODCIIndexInfo, pi ODCIPredInfo, qi ODCIQueryInfo, strt , stop , , env ODCIEnv) RETURN NUMBER Argument sctx(IN) sctx(OUT) Meaning Giá trị ngữ cảnh duyệt trả lần truy vấn có liên quan trước đó; ngược lại, NULL Ngữ cảnh truyền cho lần gọi truy vấn tiếp theo; lần gọi truy vấn ODCIIndexFetch Ia Chứa thông tin mục cột mục Pi Chứa thông tin giá trị vị từ tốn tử Qi Chứa thơng tin truy vấn Strt Giá trị bắt đầu tầm giá trị trả toán tử Kiểu liệu giống với kiểu liệu trả toán tử Stop Giá trị kết thúc tầm giá trị trả toán tử Kiểu liệu giống với kiểu liệu trả tốn tử valargs Các thơng số giá trị toán tử Số lượng kiểu liệu thông số giống với giá trị đối số toán tử Env Cấu trúc điều khiển môi trường truyền vào hàm lúc gọi Bảng C.11 Các đối số hàm ODCIIndexStart • Returns o ODCIConst.Success thành công o ODCIConst.Error lỗi o ODCIConst.Warning Luận văn cao học: Kỹ thuật lập mục cho CSDL song thời gian dựa cấu trúc đa phiên C.12 o ODCIConst.ErrContinue phương thức gọi cấp độ phân vùng cho việc tạo mục phân vùng cục bộ, lỗi xảy hàm tiếp tục thực hiên phân vùng • o ODCIConst.Fatal xảy hàm CREATE INDEX không tạo đối tương mà thực thi hành động roll back Các ý sử dụng o Hàm nên thực phương thức tĩnh (static) o ODCIIndexStart gọi để bắt đầu ước lượng toán tử cột mục Đặc biệt, điều kiện sau cần thỏa mãn: ƒ Đối số toán tử cột mà có tốn tử theo miền ứng dụng định nghĩa ƒ Kiểu mục mục theo miền ứng dụng (được thông số ODCIIndexInfo) hỗ trợ cho toán tử hành ƒ Tất đối số khác toán tử số truyền vào thông qua thông số o Phương thức ODCIIndexStart nên khởi tạo phép duyệt mục cần thiết (dùng cá thơng tin liên quan đến tốn tử đối số pi) chuẩn bị cho lần gọi ODCIIndexFetch o Các thông số strt, stop với giá trị bndflg thông số ODCIPredInfo tầm giá trị mà toán tử trả o Vùng giá trị mà toán tử trả sau: ƒ Nếu vị từ ước lượng có dạng op LIKE val, cờ ODCIIndexPrefixMatch bật lên Trong trường hợp này, khóa start chứa giá trị giá trị khóa stop khơng liên quan ƒ Nếu vị từ ước lượng có dạng op = val, cờ ODCIIndexExactMatch bật lên Trong trường hợp này, khóa start chứa giá trị giá trị khóa stop không liên quan ƒ Nếu vị từ ước lượng có dạng op > val, khóa start chứa giá trị giá trị khóa stop gán NULL Nếu vị từ ước lượng có dạng op >= , cờ ODCIIndexIncludeStart bật lên ƒ Nếu vị từ ước lượng có dạng op < val, khóa stop chứa giá trị giá trị khóa start gán NULL Nếu vị từ ước lượng có dạng op

Ngày đăng: 08/03/2021, 23:44

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN