Tính trong suốt trong một hệ cơ sở dữ liệu phân tán
Chỉ với một nỗ lực tối thiểu, ta có thể phát triển các ứng dụng làm cho một hệ cơ sở dữ liệu phân tán Oracle trở nên trong suốt đối với người dùng tham gia vào hệ thống đó. Mục tiêu của sự trong suốt là làm cho một hệ cơ sở dữ liệu phân tán xuất hiện như thể nó là một cơ sở dữ liệu duy nhất. Do đó, hệ thống sẽ không phải là gánh nặng cho các nhà phát triển ứng dụng và người dùng với những sự phức tạp làm cho việc phát triển ứng dụng trên cơ sở dữ liệu phân tán trở nên đầy thách thức và giảm năng suất của người sử dụng.
Phần sau giải thích thêm về tính trong suốt trong một hệ cơ sở dữ liệu phân tán.
Trong suốt về vị trí: Một hệ cơ sở dữ liệu phân tán Oracle có những tính năng
cho phép các nhà phát triển ứng dụng và các quản trị viên che dấu vị trí vật lý của các đối tượng cơ sở dữ liệu khỏi các ứng dụng và người dùng. Sự trong suốt về vị trí tồn tại khi một người dùng có thể tham chiếu đến một đối tượng cơ sở dữ liệu như thể là một bảng, bất kể các nút mạng mà ứng dụng kết nối đến. Trong suốt về vị trí có một số lợi ích, bao gồm:
- Truy cập cơ sở dữ liệu từ xa một cách đơn giản, bởi vì người dùng không cần bận tâm đến vị trí vật lý của các đối tượng cơ sở dữ liệu.
- Quản trị viên có thể di chuyển các đối tượng cơ sở dữ liệu mà không tác động đến những người dùng cuối hoặc các ứng dụng cơ sở dữ liệu hiện hành.
Cơ chế đồng bộ hoá dữ liệu phân tán trong hệ quản trị cơ sở dữ liệu Oracle
Cơ sở dữ liệu nâng cao Trang 31
Thông thường các quản trị viên và các nhà phát triển ứng dụng thường dùng synonym để thiết lập sự trong suốt về vị trí cho các bảng và hỗ trợ các đối tượng trong một lược đồ ứng dụng. Ví dụ, các lệnh sau tạo các synonym trong một cơ sở dữ liệu cho các bảng vào một nơi khác – cơ sở dữ liệu từ xa.
CREATE PUBLIC SYNONYM emp
FOR scott.emp@sales.us.americas.acme_auto.com; CREATE PUBLIC SYNONYM dept
FOR scott.dept@sales.us.americas.acme_auto.com; Bây giờ, thay vì truy cập vào các bảng từ xa với truy vấn như vầy: SELECT ename, dname
FROM scott.emp@sales.us.americas.acme_auto.com e, scott.dept@sales.us.americas.acme_auto.com d
WHERE e.deptno = d.deptno;
Một ứng dụng có thể thực hiện một truy vấn đơn giản hơn nhiều mà không cần phải biết vị trí của các bảng từ xa.
SELECT ename, dname FROM emp e, dept d
WHERE e.deptno = d.deptno;
Ngoài synonym, các nhà phát triển ứng dụng cũng có thể sử dụng view và stored procedure để thiết lập sự trong suốt về vị trí cho các ứng dụng làm việc trong một hệ cơ sở dữ liệu phân tán.
Trong suốt về SQL và COMMIT: Kiến trúc của cơ sở dữ liệu phân tán Oracle
cũng cung cấp sự trong suốt trong truy vấn, cập nhật và giao dịch. Ví dụ, các câu lệnh chuẩn như là SELECT, INSERT, UPDATE và DELETE làm việc giống như trong môi trường cơ sở dữ liệu không phân tán. Ngoài ra, các ứng dụng kiểm soát giao dịch dùng các câu lệnh SQL chuẩn như COMMIT, SAVEPOINT, ROLLBACK. Không có yêu cầu nào cho việc lập trình phức tạp hoặc các thao tác đặc biệt khác để hỗ trợ cho việc kiểm soát giao dịch phân tán.
- Các câu lệnh trong một giao dịch đơn có thể tham chiếu đến nhiều vị trí hoặc bảng từ xa.
- Cơ sở dữ liệu bảo đảm rằng tất cả các nút tham gia trong một giao dịch phân tán đều hoạt động giống nhau: tất cả cùng chấp thuận hoặc cùng huỷ bỏ giao dịch đó.
Cơ chế đồng bộ hoá dữ liệu phân tán trong hệ quản trị cơ sở dữ liệu Oracle
Cơ sở dữ liệu nâng cao Trang 32
- Nếu một mạng hay một hệ thống xảy ra sự cố trong thời điểm chấp thuận của một giao dịch phân tán, giao dịch này sẽ được giải quyết một cách tự động và trong suốt trên toàn hệ thống. Cụ thể, khi các mạng hoặc hệ thống được phục hồi, tất cả các nút mạng sẽ chấp thuận hoặc huỷ bỏ giao dịch đó.
Bên trong cơ sở dữ liệu, mỗi giao dịch được chấp thuận có một liên kết đến số thay đổi hệ thống (system change number - SCN) để xác định duy nhất các thay đổi được thực hiện bởi các lệnh trong giao dịch đó. Trong một cơ sở dữ liệu phân tán, các SCN của các nút truyền thông được phối hợp khi:
- Một kết nối được thiết lập bằng cách sử dụng đường dẫn được mô tả bởi một hoặc nhiều database link.
- Một lệnh SQL phân tán được thực hiện. - Một giao dịch phân tán được chấp thuận.
Các lời gọi thủ tục từ xa
Các nhà phát triển ứng dụng có thể lập trình các package và procedure PL/SQL để hỗ trợ các ứng dụng làm việc với một cơ sở dữ liệu phân tán. Các ứng dụng có thể thực hiện các lời gọi thủ tục cục bộ để thực hiện các công việc tại cơ sở dữ liệu cục bộ và các lời gọi thủ tục từ xa (Remote Procedure Calls - RPCs) để thực hiện các công việc tại cơ sở dữ liệu từ xa. Khi một chương trình gọi một thủ tục từ xa, máy chủ cục bộ sẽ chuyển tất cả các tham số thủ tục đến máy chủ từ xa thông qua lời gọi. Ví dụ, chương trình PL/SQL sau gọi một thủ tục del_emp ở cơ sở dữ liệu từ xa SALES và chuyển cho nó tham số 1257:
BEGIN
emp_mgmt.del_emp@sales.us.americas.acme_auto.com(1257); END;
Để các RPC thực hiện thành công, các thủ tục được gọi phải tồn tại ở các vị trí từ xa và người dùng được kết nối phải có đặc quyền thích hợp để thực hiện thủ tục này. Khi phát triển các package và procedure cho các hệ cơ sở dữ liệu phân tán, các nhà phát triển ứng dụng phải lập trình với sự hiểu biết những gì các thủ tục nên làm ở vị trí từ xa và cách nào để trả về kết quả cho ứng dụng.
Tối ưu hoá truy vấn phân tán
Tối ưu hoá truy vấn phân tán là một tính năng của cơ sở dữ liệu Oracle nhằm làm giảm lượng dữ liệu cần di chuyển giữa các vị trí khi một giao dịch truy xuất dữ liệu từ các bảng được tham chiếu từ xa trong một câu lệnh SQL phân tán.
Cơ chế đồng bộ hoá dữ liệu phân tán trong hệ quản trị cơ sở dữ liệu Oracle
Cơ sở dữ liệu nâng cao Trang 33
Tối ưu hoá truy vấn phân tán sử dụng tối ưu dựa trên chi phí để tìm hoặc tạo ra các biểu thức SQL mà chỉ trích xuất các dữ liệu cần thiết từ các bảng từ xa, xử lý dữ liệu đó ở vị trí từ xa hoặc đôi khi ở vị trị cục bộ và gửi kết quả đến vị trí cục bộ cho các xử lý sau cùng. Hoạt động này làm giảm số lượng dữ liệu cần truyền cần thiết khi so sánh với thời gian cần để chuyển tất cả các bảng dữ liệu đến vị trí cục bộ để xử lý.
Sử dụng các gợi ý của bộ tối ưu dựa trên chi phí như DRIVING_SITE,
NO_MERGE, và INDEX, ta có thể kiểm soát cơ sở dữ liệu Oracle xử lý dữ liệu ở đâu và truy cập dữ liệu như thế nào.
Cơ chế đồng bộ hoá dữ liệu phân tán trong hệ quản trị cơ sở dữ liệu Oracle
Cơ sở dữ liệu nâng cao Trang 34
CHƯƠNG 2