Xây dựng mô hình xử lý song song câu truy vấn trên cơ sở dữ liệu phân tán

110 92 2
Xây dựng mô hình xử lý song song câu truy vấn trên cơ sở dữ liệu phân tán

Đ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

84.3266 Đại Học Quốc Gia TP Hồ Chí Minh TRƯỜNG ĐẠI HỌC BÁCH KHOA # " NGUYỄN THỊ THUÝ THANH XÂY DỰNG MƠ HÌNH XỬ LÝ SONG SONG CÂU TRUY VẤN TRÊN CƠ SỞ DỮ LIỆU PHÂN TÁN CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN MÃ SỐ NGÀNH: 01.02.10 LUẬN VĂN THẠC SĨ TP Hồ Chí Minh, tháng 11 năm 2004 Lời cảm ơn Tơi xin cám ơn tồn thể Thầy Cô công tác khoa Công Nghệ Thông Tin, trường Đại học Bách Khoa TpHCM, cung cấp kiến thức q trình học trường để tơi thực luận văn Xin chân thành cảm ơn thầy hướng dẫn luận văn tôi, Thầy Trần Văn Lăng, người trực tiếp hướng dẫn, giúp tơi tìm hướng giải q trình thực luận văn Tơi xin cám ơn Thầy bạn làm việc Phân Viện Công Nghệ Thông Tin TpHCM, tạo điều kiện hổ trợ máy tính q trình thử nghiệm chương trình Xin cảm ơn người bạn gia đình giúp đỡ động viên tinh thần trình thực để đề tài hồn thành NGUYỄN THỊ THÚY THANH Trang Abstract The trend in database applications is that databases are becoming more and larger and user queries are becoming more and more complex This trend is driven by new application areas such as decision support, multi-media applications, scientific data visualization, and information retrieval It has become increasingly difficult for conventional single processor computer systems to meet the CPU and I/O demands of relational DBMS searching terabyte databases or processing complex queries Therefore, the way to meet the high CPU and I/O demands of these database applications is to build a parallel database system based on a large number of processors to process parallel query Performance of database systems can be improved by applying parallel processing techniques Several commercial parallel database systems are available but these are expensive In the parallel processing area, there is a trend to use networks of workstations as a virtual parallel machine There is some available of public domain software (such as PVM and MPI) to configure a parallel virtual machine over network of workstation This thesis proposes the use of network of workstation to process parallel query Three databases are applied in this thesis are GigaBASE, mSQL, PostgreSQL NGUYỄN THỊ THÚY THANH Trang LỜI NÓI ĐẦU Xử lý song song truy vấn công việc cần thiết thao tác hệ thống ứng dụng sở liệu lớn Ngày có số hệ quản trị CSDL thương mại hổ trợ việc song song truy vấn Tuy nhiên, hệ CSDL thương mại đắt Luận văn nghiên cứu áp dụng hai phương pháp song song truy vấn ba hệ CSDL, phương pháp phân tích cắt câu truy vấn phương pháp phân chia liệu, để thực việc song song hoá câu truy vấn Các CSDL chọn để thực GigaBASE, mSQL PostgreSQL, hệ quản trị CSDL chưa hổ trợ xử lý song song truy vấn nghiên cứu Cũng CSDL phổ biến dùng nhiều ứng dụng lớn Đối với phương pháp thứ nhất, luận văn bước đầu xây dựng chương trình cắt câu truy vấn cách phân tích câu truy vấn ban đầu thành truy vấn, mà nút tương ứng với phép toán đại số quan hệ Vì thế, nút chuyển đổi thành câu truy vấn Các truy vấn độc lập liệu thực thi song song nhiều máy CSDL phân bố máy Các truy vấn độc lập liệu thực thi đồng thời tùy theo vị trí đặt liệu trả kết trung gian cho máy Và máy thực thi truy vấn lại Phương pháp áp dụng cho hai CSDL mSQL PostgreSQL, môi trường PVM Đối với phương pháp thứ hai, phương pháp phân chia liệu, luận văn thực việc phân chia liệu thực thi cho máy phương pháp chia khoảng Sau truy vấn nhận vào từ người sử dụng, hệ thống tiến hành phân chia liệu cho máy hệ thống theo số máy có hệ thống Sau đó, máy thực thi truy vấn phần liệu tương ứng máy (CSDL đặt nhiều máy) Các máy thực thi xong gởi kết cho máy, máy tổng hợp kết in cho người dùng Phương pháp thực cho sở liệu GigaBASE, môi trường PVM Các nội dung kết nêu trình bày luận văn gồm chương Trong đó, chương giới thiệu tổng quan đề tài luận văn, cơng trình nghiên cứu có liên quan thuật ngữ sử dụng luận văn Chương thứ NGUYỄN THỊ THÚY THANH Trang hai, trình bày khái niệm song song hố liệu Chương trình bày tương đối chi tiết hình thức song song hố truy vấn câu truy vấn Bên cạnh đó, đề cập đến vấn đề liên quan đến song song hoá kiến trúc đa xử lý thường dùng để giải tốn song song Một số ví dụ song song hóa sở liệu tương ứng với kiến trúc trình bày chương Đặc biệt, có nêu lên phương pháp song song hóa câu truy vấn Trong chương 3, dành để trình bày việc phân tích hệ thống truy vấn song song Chương phân tích số đặc điểm ba CSDL khác nhau, qua đưa cách thực thích hợp cho CSDL Trong phần khía cạnh lập trình song song phân tích khảo sát khái niệm speedup, tính tốn thời gian thực thi, chi phí thực thi song song Chương dùng để trình bày mơ hình thực từ giải thuật phân tích thiết kế Chương trình bày kết thực nghiệm hệ thống thực đưa nhận xét, so sánh đánh giá kết đạt luận văn Chương thứ năm chương cuối luận văn, trình bày kết đạt được, số đánh giá kết Đặc biệt, chương đưa số định hướng tương lai cần phát triển thành luận án cao Trong phần phụ lục, phân chia theo thứ tự A, B, C, D Trong Phụ lục A giới thiệu mơi trường lập trình song song PVM CPPvm Trong phần giới thiệu cách tổng quát lập trình song song khái niệm phần mềm hệ thống hổ trợ lập trình song song Các khái niệm kiến trúc tổng qt mơi trường lập trình PVM CPPvm giới thiệu Phụ lục B giới thiệu hệ sở liệu GigaBASE đặc điểm hỗ trợ̣ song song hoá hệ quản trị sở liệu Phụ lục C giới thiệu sở liệu mSQL số đặc điểm hàm giao tiếp người dùng sở liệu Phụ lục D giới thiệu sở liệu PostgreSQL đặc điểm Nguyễn Thị Thuý Thanh NGUYỄN THỊ THÚY THANH Trang Luận văn Thạc sĩ MỤC LỤC Lời cảm ơn MỤC LỤC i DANH MỤC HÌNH iv Chương - GIỚI THIỆU 1.1 Tổng quan: 1.2 Các cơng trình liên quan 1.3 Một số khái niệm thuật ngữ 10 Chương - CÁC HÌNH THỨC SONG SONG HĨA CÂU TRUY VẤN 12 2.1 Các hình thức song song hoá 12 2.1.1 Song song bên tác vụ 12 2.1.2 Song song tác vụ khác 12 2.1.3 Song song hoá bên câu truy vấn 12 2.1.4 Song song truy vấn khác 13 2.2 Các kiến trúc đa xử lý 14 2.2.1 Kiến trúc dùng chung nhớ 14 2.2.2 Kiến trúc dùng chung đĩa 15 2.2.3 Kiến trúc khơng dùng chung 16 2.3 Các phương pháp song song truy vấn 18 2.3.1 Phương pháp song song bên tác vụ 18 2.3.2 Song song hoá tác vụ quan hệ 19 2.3.3 Phương pháp song song câu truy vấn theo Inter-operator 22 2.3.4 Một số ràng buộc hệ thống song song [12] 28 2.3.5 Thiết lập ràng buộc nút truy vấn 28 2.3.6 Câu truy vấn cho xử lý 29 Chương - PHÂN TÍCH HỆ THỐNG TRUY VẤN SONG SONG 32 3.1 Phân tích cắt câu truy vấn: 32 3.1.1 Chuyển câu truy vấn thành tác vụ quan hệ 32 NGUYỄN THỊ THÚY THANH i Luận văn Thạc sĩ 3.1.2 Chuyển nút truy vấn thành truy vấn 34 3.2 Phân tích việc truy vấn số hệ quản trị sở liệu 36 3.3 Phân tích chi phí theo phương pháp cắt liệu 37 3.4 Phân tích chi phí cho phương pháp cắt truy vấn 48 Chương - HIỆN THỰC HỆ THỐNG 55 4.1 Cấu trúc liệu 55 4.1.1 Cây toán tử 55 4.1.2 Nhóm thuộc tính chiếu/chọn 56 4.1.3 Nhóm điều kiện chọn 56 4.1.4 Nhóm điều kiện kết 56 4.1.5 Câu truy vấn thông tin kèm theo 57 4.2 Hiện thực hệ thống 57 4.2.1 Trên hệ quản trị sở liệu GigaBASE 58 4.2.2 Trên hệ quản trị sở liệu mSQL PostgreSQL: 61 4.3 Một số kết 62 Chương - Kết luận hướng phát triển 71 5.1 Các kết thu được: 71 5.2 Những hạn chế: 71 5.3 Hướng phát triển đề tài 72 5.4 Lời kết: 73 TÀI LIỆU THAM KHẢO 75 Phụ lục A - MƠI TRƯỜNG LẬP TRÌNH SONG SONG PVM VÀ CPPVM 78 A.1 Tổng quan lập trình song song PVM 78 A.1.1 Tính tốn mạng không đồng (Heterogeneous Network) 79 A.1.2 Tổng quan PVM 80 A.2 Hệ thống PVM 81 A.3 CPPvm – Lập trình C++ PVM 88 A.3.1 Các khái niệm CPPvm 88 A.4 Sử dụng PVM 90 A.4.1 Cài đặt PVM UNIX 90 NGUYỄN THỊ THÚY THANH ii Luận văn Thạc sĩ A.4.2 Chạy PVM 91 Phụ lục B - HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU gigaBASE 94 B.1 Giới thiệu 94 B.2 Một số đặc điểm CSDL GigaBASE [4] 94 Phụ lục C - HỆ QUẢN TRỊ CỞ SỞ DỮ LIỆU mSQL (mini SQL): 96 C.1 Giới thiệu lịch sử: 96 C.2 Các đặc điểm/ tính Mini SQL: 96 C.3 Công cụ CSDL (Database engine): 97 C.3.1 mSQL Terminal Monitor: 97 C.3.2 Quản trị CSDL mSQL: 98 C.3.3 mSQL Schema Viewer: 98 C.3.4 mSQL Database Dumper: 99 C.3.5 Giao diện lập trình ứng dụng cho ngơn ngữ C (API): 99 C.4 C Programming API mSQL 99 C.4.1 Giới thiệu: 99 C.4.2 Các hàm liên quan đến truy vấn: 99 Phụ lục D - HỆ QUẢN TRỊ CỞ SỞ DỮ LIỆU postgreSQL 104 D.1 Giới thiệu lịch sử 104 D.2 Vài nét kiến trúc 105 D.3 Tạo CSDL 105 NGUYỄN THỊ THÚY THANH iii Luận văn Thạc sĩ DANH MỤC HÌNH Hình 2.1-1 Mơ hình song song hóa bên câu truy vấn 13 Hình 2.1-2 Mơ hình song song hóa câu truy vấn 14 Hình 2.2-1 Kiến trúc đa xử lý dùng chung nhớ 15 Hình 2.2-2 Kiến trúc đa xử lý dùng chung đĩa 16 Hình 2.2-3 Kiến trúc đa xử lý khơng dùng chung 17 Hình 2.3-1 Ví dụ giải thuật Hash-Join .20 Hình 2.3-2 Chuyển phép toán sang phép toán song song 21 Hình 2.3-3 Quá trình xử lý song song câu truy vấn 25 Hình 2.3-4 Ví dụ truy vấn .26 Hình 2.3-5 Tối ưu truy vấn .26 Hình 2.3-6 Cây tác vụ vật lý 27 Hình A.2-1 Mơ hình tính tốn PVM 84 Hình A.2-2 Tổng quan kiến trúc hệ thống PVM 84 Hình A.3-1 Cấu trúc message class dùng cho truyền thông điệp tườngminh đối tượng phân tán mailbox 89 NGUYỄN THỊ THÚY THANH iv Luận văn Thạc sĩ Chương - GIỚI THIỆU Chương giới thiệu tổng quan đề tài, trình bày số cơng trình liên quan đến nội dung luận văn Một số thuật ngữ dùng luận văn giới thiệu 1.1 Tổng quan: Việc tìm kiếm liệu xử lý câu truy vấn phức tạp ngày trở nên khó khăn nhiều thời gian để thực thi hệ thống máy đơn Đặc biệt với hệ sở liệu (CSDL) lớn, phân tán máy server khác nhau, việc thực câu truy vấn cho hiệu vấn đề thời cần đặt Bên cạnh đó, ứng dụng CSDL có khuynh hướng ngày nhiều, liệu lớn Cùng với phát triển không ngừng quan hệ, câu truy vấn người dùng ngày phức tạp Ví dụ số ứng dụng hệ hỗ trợ định, ứng dụng multimedia, ứng dụng tìm kiếm thơng tin Những độ khó khăn hệ thống máy tính đơn tăng lên gặp yêu cầu truy cập CPU, ngoại vi hay xử lý câu truy vấn phức tạp sở liệu lớn hàng terabyte Tối ưu hóa việc tìm kiếm truy cập sở liệu hệ thống liệu lớn nghiên cứu vài thập niên gần Các cơng trình [1][2][4][5][6] nghiên cứu đưa giải pháp cho việc tối ưu hóa truy cập liệu cách áp dụng giải thuật song song Đây kỹ thuật phân chia công việc thành công việc nhỏ để thực thi đồng thời thực thi song song nhiều máy tính khác Vấn đề thực thi song song ngày hỗ trợ mạnh việc tính tốn cơng việc phức tạp có việc truy cập sở liệu lớn Trước công việc thực thi song song thường thực dựa siêu máy tính (super-computer), thường máy mạnh có nhiều xử lý để hỗ trợ việc xử lý song song Tuy nhiên giá thành loại siêu máy tính đắt nên việc ứng dụng kỹ thuật xử lý song song vào việc truy vấn liệu quan tâm không nhiều NGUYỄN THỊ THÚY THANH Trang Luận văn Thạc sĩ Đặt hai biến môi trường để sử dụng cho hệ thống PVM PVM_ROOT PVM_ARCH: • PVM_ROOT: Là biến mơi trường chứa thơng tin đường dẫn mà pvm3 cài đặt Vì hệ thống PVM sử dụng cho nhiều user khác nên user có thơng tin riêng Ví dụ với user giá trị set sau: /home/thanh/pvm3 • PVM_ARCH: Thơng tin kiến trúc máy Thơng tin lấy cách chạy script pvmgetarch thư mục PVM_ROOT/lib (e.g LINUX SUN4SOL2) Biên dịch PVM: >cd $PVM_ROOT >make >make install A.4.2 Chạy PVM a Khởi tạo PVM Phải khởi tạo hai chương trình pvmd pvm tay (tương ứng với file pvmd3 pvm $PVM_ROOT/lib/$PVM_ARCH.) Trong thư mục $PVM_ROOT/lib có hai file script pvmd pvm, chạy PVM cách chạy hai file script Lệnh chung để chạy PVM từ console (để dấu ngoặc vuông optional): pvm [-ddebugmask] [-nhostname] [hostfile] b pvmd log file Có thể dùng logfile để xem lỗi xảy Pvmd ghi log lên file /tmp/pvml.uid (hoặc file /tmp/pvml.uid.hostname trường hợp PVM built SHAREDTMP option) với uid mã số người dùng máy, xem lệnh: (grep `whoami` /etc/passwd || ypmatch `whoami` passwd) \ NGUYỄN THỊ THÚY THANH Trang 91 Luận văn Thạc sĩ | awk -F: '{print $3;exit}' c Pvmd Socket Address File Địa socket chứa file /tmp/pvmd.uid (hoặc file /tmp/pvmd.uid.hostname), khởi tạo file phải chưa có hệ thống, có file thư mục /tmp khơng có quyền ghi PVM không khởi tạo báo lỗi Trường hợp phải xóa file thiết lập quyền ghi (chmod +w /tmp –coi lại tập lệnh cho chắc) cho thư mục /tmp d Một số lỗi thường gặp chạy PVM Nếu khơng chạy PVM báo lỗi Kiểm tra pvmd log file để xem lỗi Có thể có số thơng báo lỗi bên xuất hiện: - “Can’t start pvmd” : Có nghĩa pvmd khơng tìm thấy chưa thực thi Lỗi khơng bind socket lý hostname IP address khai báo khơng Có thể dùng lệnh pvmd –name để thay đổi (xem help lệnh để biết chi tiết) - “Can't contact local daemon”, pvmd chạy lúc trước bị lỗi khơng xóa file socket address, xóa file tay - “Version mismatch” khơng tương thích, xem phần version để điều chỉnh lại Khi chương trình pvmd master chạy, đọc host file gởi lệnh đến máy host file để yêu cầu chạy Một số lỗi xảy ra: - “No such host”: kiểm tra lại khai báo tên host host file cho với cấu hình máy - “Can't start pvmd”: Có nghĩa pvmd master không khởi tạo pvmd slave máy khác Điều nguyên nhân cài đặt không đúng, vấn đề mạng permission Thứ kiểm tra đường dẫn cài đặt pvmd máy tính slave(có thể chạy thử máy này), kiểm tra khai báo tên chưa kiểm tra permission Dùng lệnh: NGUYỄN THỊ THÚY THANH Trang 92 Luận văn Thạc sĩ rsh slave-host-name $PVM_ROOT/lib/pvmd –s để kiểm tra vấn đề Phần cố gắng trình bày cách tổng qt mơi trường lập trình song song PVM sử dụng luận văn Việc cài đặt, cấu hình để sử dụng hệ thống PVM hàm thư viện lập trình PVM tham khảo chi tiết [19][20] NGUYỄN THỊ THÚY THANH Trang 93 Luận văn Thạc sĩ Phụ lục B - HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU gigaBASE B.1 Giới thiệu Hệ quản trị sở liệu chọn để thực cơng việc song song hố câu truy vấn theo phương pháp phân chia liệu đề tài hệ quản trị sở liệu GigaBASE Đây hệ quản trị sở liệu quan hệ hướng đối tượng, có cung cấp thư viện hàm hỗ trợ người lập trình ngôn ngữ C giúp để truy cập xử lý liệu GigaBASE sở liệu hướng ứng dụng (application-oriented) Các bảng liệu xây dựng dựa vào thông tin lớp ứng dụng GigaBASE cung cấp giao diện thuận tiện linh hoạt cho việc lấy thông tin từ sở liệu Ngơn ngữ truy vấn tựa SQL GigaBASE dùng để truy cập liệu theo ứng dụng sở liệu GigaBASE có khả xử lý CSDL cách hiệu với hàng triệu đối tượng lên đến hàng terabyte liệu mà không bị giới hạn dung lượng nhớ Do việc sử dụng page pool với giải thuật thay trang LRU sử dụng B-tree để giảm thiểu việc truy cập đĩa nên tạo hiệu truy cập cao Báo cáo trình bày thiết kế mơ hình giải thuật cho chương trình thực thi tác vụ song song câu truy vấn hệ quản trị sở liệu GigaBASE Việc song song hoá câu truy vấn phụ thuộc nhiều vào việc tổ chức sở liệu Do đó, công việc cần thiết kết hợp với giải thuật song song thiết kế để tổ chức liệu cho việc truy vấn liệu song song đạt hiệu B.2 Một số đặc điểm CSDL GigaBASE [4] Đặc điểm sở liệu GigaBASE (khơng có câu truy vấn lồng nhau, khơng có phép kết bảng, thao tác truy vấn chủ yếu thực thi bảng, kết truy vấn đối tượng liệu) Việc thể quan hệ bảng database thực nhờ vào cách thiết kế ban đầu, thực bên database Với GigaBASE, khác ngơn ngữ truy vấn GigaBASE SQL chuẩn là: [18] − Không kết nhiều bảng câu truy vấn lồng Truy vấn trả tập đối tượng từ bảng NGUYỄN THỊ THÚY THANH Trang 94 Luận văn Thạc sĩ − Các kiểu C chuẩn dùng cho cột bảng − Khơng có giá trị NULL, có tham khảo null − Các cấu trúc mảng dùng thành phần records − Các phương thức người dùng định nghĩa cho records bảng (các đối tượng) cho thành phần record − Các hàm người dùng với chuổi đơn hay kiểu số định nghĩa ứng dụng − Các tham khảo đối tượng hỗ trợ tự động tham khảo ngược − Ngơn ngữ truy vấn tích hợp với class C++ Ngồi ra, GigaBASE cịn hỗ trợ câu trúc liệu hiệu cho người lập trình liệu có cấu trúc người lập trình định nghĩa, tương ứng với cấu trúc bảng liệu lưu trữ CSDL, hỗ trợ kiểu liệu array, rectangle hàm chuyển đổi GigaBASE cung cấp hàm cho người lập trình để xử lý việc truy cập liệu, xử lý truy vấn liệu Các hàm thư viện kiểu liệu khai báo thư việc cli.h [18] GigaBASE cung cấp số chức để tối ưu hóa câu truy vấn Cách thứ dùng chế index, cách thứ hai dùng chế tham khảo ngược (inverse references) thứ ba song song hóa truy vấn Trong cách dùng chế index để lưu trữ tìm kiếm liệu, GigaBASE dùng giải thuật B-tree để xác định việc lưu trữ tìm kiếm liệu GigaBASE đưa số phương thức giải thuật đơn giản để xác định index Các quy luật cụ thể tham khảo thêm tài liệu kèm GigaBASE Việc phân chia công việc scan liệu bảng GigaBASE thực cách tạo N threads để xử lý record thứ N bảng (record thứ N hiểu sau: thread xử lý record 0, N, 2*N…, thread xử lý record 1, 1+N, 1+2*N…) Mỗi thread xử lý record phân chia thực thao tác tìm kiếm Mỗi thread xử lý xong trả kết Sau tất thread xử lý xong, kết kết lại thành phần chung NGUYỄN THỊ THÚY THANH Trang 95 Luận văn Thạc sĩ Phụ lục C - HỆ QUẢN TRỊ CỞ SỞ DỮ LIỆU mSQL (mini SQL): C.1 Giới thiệu lịch sử: MiniSQL, mSQL, công cụ CSDL hạng nhẹ, thiết kế để đáp ứng yêu cầu truy suất nhanh để lưu trữ liệu với nhớ thấp Mặc dù hỗ trợ tập SQL (không view, không sub_query …), thứ hỗ trợ phù hợp với định nghĩa ANSI SQL Gói mSQL bao gồm cơng cụ CSDL (database engine), chương trình terminal “monitor”, chương trình quản trị CSDL, lược đồ viewer ngôn ngữ giao tiếp C API API công cụ CSDL thiết kế để làm việc môi trường client/server qua mạng TCP/IP mSQL phát triển chương trình phụ trợ cho môi trường quản lý mạng Minerva (Minerva Network Management Environment) Ban đầu, Minerva dùng Postgres CSDL tạo truy vấn PostQUEL để truy cập Trong trình kiểm tra ban đầu Minerva, hạn chế đặt Minerva tạo truy vấn SQL, máy với CSDL cài đặt, Ingres hay Oracle, sử dụng CSDL thương mại chúng tốt phải hỗ trợ Postgres Để xem xét/ giúp đở mong muốn này, mSQL viết ban đầu trình chuyển SQL sang PostQUEL để máy (site) khơng dùng CSDL thương mại dùng Postgres C.2 Các đặc điểm/ tính Mini SQL: mSQL đưa tập đáng kể chức cung cấp ANSI SQL Nó cho phép chương trình người dùng lưu trữ, tính tốn lấy liệu cấu trúc bảng Nó khơng hỗ trợ khả quan hệ kết nối bảng, view hay truy vấn lồng Mặc dù khơng hỗ trợ tất tác vụ quan hệ, cung cấp khả kết nhiều bảng NGUYỄN THỊ THÚY THANH Trang 96 Luận văn Thạc sĩ C.3 Công cụ CSDL (Database engine): mSQL daemon, msqld, ứng dụng độc lập lắng nghe kết nối biết TCP socket Nó quà trình đơn giản chấp nhận nhiều kết nối xuất truy vấn nhận Nó dùng nhơ ánh xạ I/O kỹ thuật cache để truy cập nhanh liệu lưu CSDL Nó dùng stack dựa chế chắn tác vụ INSERT thực thi tốc độ bất chấp kích thước bảng insert Server truy cập thơng qua TCP socket UNIX domain socket với hệ thống file(/dev/msqld) Tính sẵn sàng TCP socket cho phép phần mềm client truy cập liệu lưu trữ máy qua mạng (over network) Sự sử dụng TCP socket nên giới hạn phần mềm client máy từ xa giao tiếp với server qua TCP socket UNIX socket kết qủa giảm đáng kể hiệu suất C.3.1 mSQL Terminal Monitor: Cũng ứng dụng CSDL khác, mSQL cung cấp chương trình cho phép người dùng tương tác câu truy vấn đến database engine Trong trường hợp mSQL, chương trình đơn giản gọi ‘msql’ Nó địi hỏi thơng số hàng lệnh tên CSDL truy cập Khi bắt đầu, phải khởi tạo chương trình trước trao đổi liệu Monitor chấp nhận hai cờ lệnh sau: -h : Host Connect đến mSQL Host -q : Xử lý truy vấn thoát trả exit code Monitor mơ hình sau chương trình Ingres gốc (và theo sau Postgres ) Các câu lệnh phân biệt từ truy vấn prefix tạo với khe hở/ giật lùi (backlashes) Để nhận trợ giúp Help, lệnh \h Thoát \q EOF (^D) Gởi truy vấn đến engine, truy vấn đánh sau lệnh \g Nếu muốn sửa câu truy vấn cuối cùng, \e, chỉnh sửa truy vấn Sau đó, chuyển câu truy vấn đến server cách dùng lệnh \g “Go” NGUYỄN THỊ THÚY THANH Trang 97 Luận văn Thạc sĩ mSQL có buffer truy vấn để chứa câu truy vấn trước câu truy vấn vừa chỉnh sửa Nếu lệnh \g đươc đánh khơng có tham số (khơng có câu truy vấn mới), câu truy vấn cuối trước gởi lại cho server Nội dung buffer hiển thị lệnh \p “Print” Để thuận tiện việc truy cập đến server CSDL chạy nhiều Host từ xa, mSQL terminal monitor hỗ trợ sử dụng biến môi trường để đến máy chạy server (tốt để xác định “-h some.host.name” lần thực thi mSQL) Chú ý chức cung cấp mSQL terminal monitor khơng phải thư viện mSQL API khơng thể dùng với chương trình khác Để dùng chức này, khởi tạo biến môi trường MSQL_HOST đến tên địa máy mong muốn C.3.2 Quản trị CSDL mSQL: Các CSDL mSQL quản trị dùng lệnh msqladmin Vài tác vụ quản trị tạo CSDL mới, shutdown server thực qua msqladmin Như tất chương trình mSQL, msqladmin chấp nhận cờ hàng lệnh ‘-h Host’ để xác định máy mong muốn Các lệnh thực qua msqladmin là: create Database: tạo CSDL có tên Database drop Database: Xố CSDL có tên Database shutdown: shutdown server reload: server nạp lại thông tin điều khiển version: Hiển thị thông tin phiên khác từ server Nên ý rằng, server chấp nhận lệnh create, drop, shutdown, reload chúng gởi user root( định nghĩa cài đặt) gởi từ máy chạy server… C.3.3 mSQL Schema Viewer: mSQL cung cấp lệnh relshow để hiển thị cấu trúc cua CSDL Nếu thực thi khơng có tham số, relshow liệt kê CSDL mở Nếu thực thi với tên CSDL, relshow liệt kê bảng định nghĩa CSDL Nếu NGUYỄN THỊ THÚY THANH Trang 98 Luận văn Thạc sĩ thực thi với hai tham số tên CSDL tên bảng, relshow hiển thị cấu trúc bảng bao gồm: tên trường, kiểu kích thước Relshow có cờ hàng lệnh ‘-h Host’ để xác định máy từ xa database server C.3.4 mSQL Database Dumper: Một chương trình cung cấp xuất nội dung cấu trúc bảng toàn CSDL dạng ASCII Chương trình, msqldump, xuất terminal monitor đọc mSQL script file Dùng công cụ cần back up CSDL hay chuyển liệu đến CSDL Tuỳ chọn ‘-h Host’ dùng chế nhân nội dung CSDL mSQL cho nhiều máy C.3.5 Giao diện lập trình ứng dụng cho ngơn ngữ C (API): API cho phép chương trình C giao tiếp với công cụ CSDL Các hàm API truy cập cách thêm/include tập tin msql.h vào chương trình liên kết đến thư viện mSQL (dùng –lmsql tham số cho trình biên dịch C) Thư viện file header cài đặt mặc định vào thư mục /usr/local/Minerva/lib /usr/local/Minerva/include C.4 C Programming API mSQL C.4.1 Giới thiệu: API cho phép chương trình C giao tiếp với công cụ CSDL Các hàm API truy cập cách thêm/include tập tin msql.h vào chương trình liên kết đến thư viện mSQL (dùng –lmsql tham số cho trình biên dịch C) Thư viện file header cài đặt mặc định vào thư mục /usr/local/Minerva/lib /usr/local/Minerva/include Phần sau trình bày số hàm giao tiếp thường dùng: C.4.2 Các hàm liên quan đến truy vấn: msqlConnect() int msqlConnect ( host ) char * host ; NGUYỄN THỊ THÚY THANH Trang 99 Luận văn Thạc sĩ Hàm dùng cho chương trình kết nối đến mSQL Tham số host tên địa IP host chạy mSQL server Nếu tham số NULL, chương trình kết nối đến server chạy localhost Khi kết nối đuợc kết nối đến server, hàm trả số id kiểu integer Số id handle điều khiển hàm khác mSQL API gọi chương trình Có thể gọi hàm nhiều lần với thông sồs host khác để kết nối đến nhiều CSDL đồng thời msqlSelectDB() int msqlSelectDB ( sock , dbName ) int sock ; char * dbName ; Trước gởi câu truy vấn, CSDL phải chọn, hàm msqlSelectDB() thực việc chọn CSDL msqlSelectDB() đựoc gọi với tham số sock giá trị trả hàm msqlConnect() dbName tên CSDL cần thao tác Nếu hàm trả giá trị 1, trình chọn CSDL khơng thàh cơng lỗi trả chuỗi msqlErrMsg msqlSelectDB() gọi nhiều lần chương trình msqlQuery() int msqlQuery ( sock , query ) int sock ; char * query ; Truy vấn gởi đến mSQL qua cầu nối dùng msqlQuery() Nếu hàm trả giá trị -1 nghĩa trình truy vấn không thành công Ngược lại, kết truy vấn lưu đệm chờ ứng dụng lấy Nếu ứng dụng gởi câu sql khác trước lấy kết dùng hàm msqlStoreResult(), kết sau ghi đè lên kết trước msqlStoreResult() m_result * msqlStoreResult ( ) NGUYỄN THỊ THÚY THANH Trang 100 Luận văn Thạc sĩ Hàm dưựoc gọi để lưu trử kết truy vấn trước thực thi câu truy vấn khác Hàm trả handle kết quả, handle đến cấu trúc m_result đuợc dùng làm tham số truyền đến hàm API khác msqlFreeResult() void msqlFreeResult ( result ) m_result * result ; Khi chương trình khơng cịn dùng kết truy vấn, liệu nên giải phóng dùng hàm msqlFreeResult() Handle kết trả hàm msqlStoreResult() dược gởi tới hàm msqlFreeResult() để xác định vùng liệu giải phóng msqlFetchRow() m_row msqlFetchRow ( result ) m_result * result ; Từng hàng kết trả từ câu select truy cập thông qua hàm msqlFetchRow() Dữ liệu trả biến kiểu m_row, chứa trỏ char đến thuộc tính hàng Khi chay đến hết hàng cuối, trỏ trả NULL msqlDataSeek() void msqlDataSeek ( result , pos ) m_result * result ; int pos ; Hàm trả trỏ đến hàng kết truy vấn Nếu hàm gọi với tham số pos = 0, sau gọi hàm msqlFetchRow() trả liệu hàng Khi trỏ đến cuối bảng, giá trị trả hàm msqlFetchRow() NULL msqlNumRows() int msqlNumRows ( result ) m_result * result ; NGUYỄN THỊ THÚY THANH Trang 101 Luận văn Thạc sĩ Trả số hàng truy vấn msqlFetchField() m_field * msqlFetchField ( result ) m_result * result ; Hàm msqlFetchField ( ) trả thơng tin thuộc tính liệu Dữ liệu trả cấu trúc m_field chứa thông tin bảng sau: typedef struct { char * name ; /* name of field */ char * table ; /* name of table */ int type ; /* data type of field */ int length , /* length in bytes of field */ int flags ; /* attribute flags */ } m_field; Các giá trị kiểu liệu msql định nghĩa file msql.h như: INT_TYPE, CHAR_TYPE and REAL_TYPE Các cờ thuộc tính truy cập dùng hàm: IS_PRI_KEY ( flags ) /* Field is the primary key */ IS_NOT_NULL ( flags ) /* Field may not contain a NULL value */ msqlFieldSeek() void msqlFieldSeek ( result , pos ) NGUYỄN THỊ THÚY THANH Trang 102 Luận văn Thạc sĩ m_result * result ; int pos ; Dùng hàm msqlFieldSeek() để di chuyển vị trí thuộc tính kết truy vấn msqlNumFields() int msqlNumFields ( result ) m_result * result ; Hàm trả số thuộc tính kết truy vấn msqlClose() int msqlClose ( sock ) int sock ; Đóng kết nối CSDL mSQL NGUYỄN THỊ THÚY THANH Trang 103 Luận văn Thạc sĩ Phụ lục D - HỆ QUẢN TRỊ CỞ SỞ DỮ LIỆU postgreSQL D.1 Giới thiệu lịch sử PostgreSQL hệ quản trị CSDL đối tượng quan hệ (ORDBMS) dựa postgres, phiên 4.2, phát triển khoa khoa Khoa Học Máy Tính trường Đại học California Barkeley PostgerSQL sản phẩm open-source Nó hỗ trợ SQL92, SQL99 với nhiều chức đại: Các truy vấn phức tạp Khoá ngoại Các trigger Các giao tác PostgreSQL mở rộng người dùng, ví dụ: Thêm kiểu liệu Các hàm Các tác vụ Các hàm tích hợp Các phương thức số Các ngôn ngữ thủ tục Và phiên tự do, không kinh doanh, postgreSQL dùng, điều chỉnh, phân phối miễn phí đến tất đối tượng nên mang tính cá nhân, thương mại hay khoa học PostgreSQL hệ quản trị CSDL đối tượng quan hệ dẫn xuất từ gói postgres trường Đại học California, Berkeley Sau thập niên phát triển, PostgreSQL ngày CSDL source mở phổ biến giới NGUYỄN THỊ THÚY THANH Trang 104 Luận văn Thạc sĩ D.2 Vài nét kiến trúc Trong CSDL chuyên môn, PostgreSQL dùng mơ hình client/server Một phiên làm việc postgreSQL bao gồm trình sau: − Một trình server điều khiển file CSDL, chấp nhận kết nối đến CSDL từ ứng dụng client, thực thi hành động CSDL theo hành vi client Chương trình CSDL server gọi postmaster − Ứng dụng client người dùng muốn thực thi tác vụ CSDL Các ứng dụng client nhiều loại khác nhau: client ứng dụng đồ hoạ, web server truy cập CSDL để lên trang web, hay công cụ bảo trì CSDL đặt biệt,… Như vài ứng dụng client/server, client server đặt host khác Chúng giao tiếp với qua kết nối TCP/IP PostgreSQL server điều khiển nhiều kết nối đồng thời từ client D.3 Tạo CSDL Bước kiểm tra để biết truy cập CSDL server không thử tạo CSDL Một postgreSQL server điều khiển nhiều CSDL Thơng thường, CSDL dùng cho dự án người dùng Để tạo CSDL, ví dụ CSDL có tên mydb, bạn dùng lệnh sau: $ createdb mydb Hoặc $ /usr/local/pgsql/bin/createdb mydb Đường dẫn trường hợp sau khác tuỳ theo cài đặt postgres CSDL với tên khác PostgreSQL cho phép tạo không giới hạn số CSDL máy Tên CSDL phải ký tự alphabetic đầu chiều dài tối đa 63 ký tự Dùng lệnh dropdb để xố CSDL, ví dụ xố CSDL có tên mydb, dùng lệnh: $ dropdb mydb NGUYỄN THỊ THÚY THANH Trang 105 ... lập hay phụ thuộc liệu nút cách tính mức song song câu truy vấn truy vấn Mức song song truy vấn để đánh dấu câu truy vấn thực thi song song Các câu truy vấn có mức thực thi song song Các nút có... CÁC HÌNH THỨC SONG SONG HĨA CÂU TRUY VẤN Song song hố câu truy vấn, mặt lý thuyết có hai hình thức chủ yếu Chương trình bày điểm lý thuyết hình thức song song, kiến trúc thường dùng xử lý song song... thế, mức câu truy vấn tăng dần đến nút gốc 2.3.6 Câu truy vấn cho xử lý Đối với câu truy vấn cắt thành câu truy vấn nhỏ, câu truy vấn sau truy cập liệu từ quan hệ tạm vừa tạo từ truy vấn trước

Ngày đăng: 09/02/2021, 17:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan