PHẦN III: ỨNG DỤNG TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN ORACLE

Một phần của tài liệu TỐI ƯU HOÁ TRUY VẤN PHÂN TÁN ỨNG DỤNG TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN ORACLE (Trang 34)



III.1. Cơ sở dữ liệu phân tán trong Oracle

Trong bài viết này, tác giả giới thiệu hệ quản trị cơ sở dữ liệu Oracle XE (eXpress Edition), Oracle XE là phiên bản miễn phí, dễ cài, dễ sử dụng và sử dụng giao diện bằng trình duyệt web dùng để:

- Quản lý cơ sở dữ liệu;

- Tạo bảng, view và các đối tượng khác;

- Import, export và view dữ liệu dạng bảng;

- Chạy các câu truy vấn và các SQL script;

- Tạo các báo cáo;

- Oracle XE có những tiện ích trong command-line;

- SQL Command Line (SQL * Plus): nhập lệnh SQL hay PL/SQL để chạy;

- SQL*Load: nạp dữ liệu vào trong CSDL.

Các khái niệm cơ bản

Snapshot: là yêu cầu phân tán tham chiếu tới một hay nhiều bảng chính, các view hoặc các snapshot khác. Mỗi sao bảng của các bảng chính được gọi là Snapshot và có được tại bất kỳ thời điểm nào có thể định kỳ được “Refresh” , các snapshot có trạng thái tương ứng với trạng thái mới nhất của bảng chính.

Read-only Snapshot: là một bản sao đầy đủ của một bảng hay một tập các bảng, là sự phản ánh đầy đủ trạng thái mới nhất của bảng.

Snapshot updatable: có thể sửa đổi bản sao của bản chính và được định nghĩa bao hàm bảng sao đầy đủ của bảng chính hoặc tập các hàng trong bản chính.

Sự khác nhau giữa hai Snapshot trên là: Snapshot updatable cho phép các yêu cầu và chỉnh sửa, còn Read-only Snapshot chỉ cho phép các yêu cầu.

Sao bản cơ sở: là sao bản sử dụng các Read-only Snapshot và tuân theo một dạng của vị trí sao bản đầu tiên. Dữ liệu của Read-only Snapshot sẽ được “Refresh” định kỳ.

chép tới một tập các vị trí. Oracle cho phép sao bản:

- Các bảng.

- Các đối tượng chứa các bảng như : view , trigger, package… Các vị trí sao bản

- Các vị trí chủ: phải chứa một bảng sao đầy đủ của tất cả các đối tượng có trong sao bảng nhóm. Mỗi vị trí chủ sẽ chuyển các thay đổi của nó tới vị trí chủ khách cho các nhóm sao bản.

- Các vị trí Snapshot (Snapshot site): Là vị trí chứa một hay một các đối tượng trong sao bản.

Danh mục các bản sao: sao bảng sử dụng một danh mục các sao bản thông tin, cũng như các đối tượng được sao bản, nơi chúng được sao bản và cập nhật như thế nào cần được truyền tới danh mục sao bảng, từ đó các bảng dữ liệu có thể quay lại và tìm được.

Database link:

- Là một con trỏ xác định đường liên lạc một chiều từ một Oracle DB server đến một DB server khác. Link pointer thực sự được định nghĩa như là một cổng trong bảng từ điển dữ liệu. Để truy cập vào link này thì bạn phải connect vào local DB mà link có chứa trong từ điển dữ liệu.

- Mỗi DB trong hệ thống phân tán phải có một tên duy nhất “global DB name” trong network domain.

- Ví dụ user scott truy xuất vào bảng emp trên remote DB với global name là hq.acme.com.

Mô hình Database Link 1 Mô hình database link 2

- DB links có thể là private hoặc public. Nếu là private thì chỉ có user tạo ra nó mới có quyền truy xuất. Public thì tất cả user đều có quyền truy xuất.

- User truy xuất đến remote DB thông qua các kiểu link: Connected use link, Fixed user link, Current user link.

- Connected user link: user phải có account trên remote DB giống với account trên local DB. (adsbygoogle = window.adsbygoogle || []).push({});

o Fixed user link: khi tạo link có quy định sẵn username và password truy xuất;

o Current user link: user connect là 1 global user.

- Cú pháp để tạo database link:

CREATE [PUBLIC] DATABASE LINK dblink

[CONNECT TO user IDENTIFIED BY password] [USING 'connect_string'];

o Public là các user dùng chung database link.

o Dlink tên của database link.

o User là tên user mà chúng ta muốn kết nối đến.

o Password là mật khẩu của user mà chúng ta muốn kết nối đến.

o Connect_string chuỗi mô tả địa chỉ IP của Host và SID trên Server đó.

o Global Database Name trong Database links: Golbal DB name được định nghĩa như sau: DB_NAME.BD_DOMAIN

- Ví dụ: mfg.division3.acme_tools.com trong đó mfg là tên DB và division3.acme_tools.com là network domain.

o Names for Database Links:

Tên của DB link giống với global DB name của remote DB mà nó kết nối. Ví dụ global DB name của DB là sales.us.oracle.com thì DB link cũng được gọi là sales.us.oracle.com.

Nếu GLOBAL_NAMES có giá trị là TRUE thì chắc chắn tên của DB link là global DB name. Ngược lại thì chúng ta có thể đăt tên DB link theo chúng ta muốn.

o Ví dụ: CREATE PUBLIC DATABASE LINK sales.division3.acme.com USING 'sales1';

Types of Database Links:

Private database link: Loại link này bảo mật hơn public và global vì chỉ có user tạo ra nó hoặc subprograms trong cùng lược đồ có thể sử dụng để truy xuất vào remote DB.

o Public database link: tất cả user user đều có thể sử dụng được. và nó do User tạo ra.

o Global database link: được hệ thống tự tạo ra và mọi user có thể sử dụng được.

link mà không cần xác định username và password. Nó sẽ dùng user local để truy xuất vào remote DB. Do đó trên remote DB phải có cấp quyền cho user này. Việc này dẫn đến việc quyền sử dụng của user này có thể nhiều hơn công việc mà nó thực hiện.

Khả năng sử dụng user này tuỳ thuộc vào một vài các yếu tố. Một trong những yếu tố đó là user được cấp quyền bởi Oracle, hoặc external authenticated bởi hệ điều hành hoặc dịch vụ network authentication. Nếu user là externally authenticated thì khả năng đển sử dụng connected user link là tuỳ thuộc vào remote DB có chấp nhận quyền truy xuất từ xa không. Điều này được thiết lập bởi biến REMOTE_OS_AUTHENT.

- Fixed user DB links: user được xác định ngay trên DB link do đó nó có ưu điểm là bảo mật.

Ví dụ: CREATE PUBLIC DATABASE LINK hq CONNECT TO jane IDENTIFIED BY doe USING ‘hq’

- Current User Database Links: user connect như là một global user. User sử dụng current user không phải là global user. Ví dụ nếu Jane là user được cấp quyền đến Accounts Payable DB, cô ta có thể truy xuất đến store procedure đển nhận data từ hq DB. Ptocedure sử dụng current user DB link để connect cô ấy đến hq như là user scott. User scott là global user được cấp quyền thông qua SSL còn Jane thì không.

Có hai vấn đề được đề cập trong phân tán đó là:

- Xử lý phân tán: Quá trình thực hiện các thao tác đối với dữ liệu.

- Dữ liệu phân tán: Dữ liệu được định vị tại các vị trí khác nhau trên mạng máy tính.

Dưới đây sẽ được trình bày các vấn đề liên quan đến phân tán dữ liệu. Mục đích chính là đưa ra các giải pháp phân tán dữ liệu hiệu quả nhất cho từng ứng dụng cụ thể trong thực tế.

Dựa vào các phương pháp thiết kế phân đoạn CSDL người ta tiến hành phân tán dữ liệu theo nhiều cách khác nhau trong đó có một số phương pháp chính thường được sử dụng là: (adsbygoogle = window.adsbygoogle || []).push({});

- Phân tán dữ liệu hoàn toàn.

- Phương pháp phân tán partition.

- Phương pháp phân tán sử dụng replication. Phân tán dữ liệu hoàn toàn

Định nghĩa: là phương pháp thực hiện phân chia bảng dữ liệu của quan hệ tổng thể thành các phần hoàn toàn độc lập nhau, sau đó định vị chúng vào các vị trí thích hợp theo các ứng dụng và các yêu cầu thực tế; Hay Phân tán dữ liệu hoàn toàn là phương pháp phân tán dữ liệu sử dụng kỹ thuật phân đoạn dọc.

Các CSDL từ xa được liên kết với nhau thông qua Databaselink. Mô hình dữ liệu hoàn toàn:

- Mỗi khi vị trí 1 muốn truy cập đến CSDL của vị trí 2 thì thông qua DatabaseLink vị trí 1 sẽ được đáp ứng qua đường truyền trực tiếp hoặc qua đường điện thoại.

- Khối lượng dữ liệu mỗi khi cần truyền là tương đối lớn cho nên muốn áp dụng được phương pháp này thì trước hết là yêu cầu đường truyền phải đủ tốt phục vụ được nhu cầu truyền dữ liệu trong thực tế.

- Không có khái niệm về các vị trí chủ trong mô hình phân tán này, cũng như sự tồn tại của vị trí trung tâm để lưu trữ toàn bộ CSDL là không cần thiết vì khi cần tổng hợp dữ liệu có thể thực hiện tại bất kỳ vị trí nào trong hệ thống mạng của ứng dụng, dữ liệu sẽ hoàn toàn được truyền trực tiếp.

Với các đặc điểm như trên phương pháp phân tán dữ liệu kiểu này tránh được dư thừa dữ liệu cao nhất, dữ liệu được phân tán thực sự tại các vị trí.

- Thực trạng của Trung Tâm: Trung Tâm này chuyên quản lý việc học viên học tại trung tâm. Trung Tâm có 2 chi nhánh : Chi Nhánh 1 và Chi Nhánh 2

- Các Chi nhánh của Trung Tâm nằm ở những nơi khác nhau và Trung Tâm đã trang bị một hệ thống mạng nội bộ hiện đại.

- Nhiệm vụ của hệ thống: Quản lý thông tin về việc đăng ký học của học viên, xem điểm của học viên, học viên chuyển trường…

Giải pháp phân tán dữ liệu cho bài toán:

- Dựa trên thực trạng là các chi nhánh của Trung Tâm quản lý học viên.

- Giải pháp phân tán dữ liệu phù hợp cho bài toán này là dùng phương pháp phân tán dữ liệu hoàn toàn.

Các ưu điểm của phân tán dữ liệu hoàn toàn:

- Tính hiệu quả: dữ liệu được chứa ở nơi nó được sử dụng và được ngăn cách với các dữ liệu người sử dụng đang dùng hay ứng dụng khác.

- Tối ưu hóa cục bộ: Dữ liệu được lưu trữ ở nơi thích hợp làm tối ưu hóa các quá trình truy suất dữ liệu cục bộ.

- An toàn dữ liệu: Dữ liệu không thích hợp với nhu cầu sử dụng tại một trạm làm việc nào đó bị vô hiệu hóa.

- Xây dựng CSDL và các ứng dụng đơn giản.

- Giảm mức độ dư thừa dữ liệu.

Các nhược điểm của phương pháp phân tán dữ liệu hoàn toàn:

- Tốc độ truy cập không nhất quán: Khi muốn truy xuất dữ liệu từ một vị trí không cục bộ, thời gian truy xuất có thể khác nhiều so với truy cập cục bộ.

lưu thì mỗi khi có sự cố không thể truy cập được hoặc bị phá hỏng thì việc xử lý dữ liệu đó không thể chuyển sang vị trí khác mặc dù tại đó có tồn tại một bản copy của dữ liệu cần thiết.

- Phạm vi phân tán hạn chế. Các ứng dụng phù hợp

- Các ứng dụng có CSDL nhỏ và vừa.

- CSDL tự nó đã có sự phân chia thành các phần độc lập.

- Nơi sử dụng các ứng dụng này phải có đường truyền tốt. Phương pháp phân tán patition

Định nghĩa: Phương pháp phân tán partition thực hiện phân chia bảng dữ liệu của quan hệ tổng thể thành các bảng dữ liệu độc lập nhưng có cấu trúc giống hệt nhau, sau đó định vị chúng vào các vị trí thích hợp.

Mô hình phân tán dữ liệu của phương pháp partition: (adsbygoogle = window.adsbygoogle || []).push({});

Mô hình phân tán dữ liệu partition

Như vậy phương pháp partition sử dụng kỹ thuật phân đoạn ngang cơ sở trong quá trình phân tán dữ liệu. Các CSDL từ xa kết nối với nhau thông qua databaselink.

Các khái niệm về vị trí chủ và vị trí ảnh trong phương pháp này được đề cập đến: Thông thường các CSDL được định vị tại các vị trí (trong thực tế thường là các chi nhánh) , trung tâm sẽ tổng hợp CSDL tại các chi nhánh qua Snapshot . Như vậy, các chi nhánh thường đóng vai trò là vị trí chủ và trung tâm là vị trí ảnh. Cũng có dữ liệu chỉ được cập nhật tại vị trí trung tâm, các chi nhánh muốn tra cứu sẽ thông qua Snapshot. Khi đó trung tâm đóng vai trò là vị trí chủ còn chi nhánh đóng vai trò là vị trí ảnh.

Mỗi vị trí có một CSDL độc lập nhưng không giống như ở phương pháp phân tán dữ liệu hoàn toàn. Trong phương pháp này mỗi khi cần tổng hợp báo cáo thông tin về một loại dữ liệu nào đó thì tại vị trí trung tâm, theo định kỳ dữ liệu sẽ được làm tươi toàn bộ, phản ánh đúng tình trạng dữ liệu tại các vị trí. Sau đó mới bắt đầu công việc tổng hợp báo cáo các thông tin theo yêu cầu.

Quá trình làm tươi dữ liệu thường được sử dụng phương pháp làm tươi nhanh (chỉ cập nhật các thay đổi), do đó lượng dữ liệu truyền đi được hạn chế hơn nên có thể truyền trực tiếp qua đường điện thoại.

Để đảm bảo cho các dữ liệu được an toàn, tại trung tâm phải có ít nhất 2 máy chủ trong đó một máy sẽ hoạt động theo chế độ dự phòng.

Các ưu điểm của phương pháp phân tán dữ liệu theo phương pháp partition:

- Tránh insert một hàng sai vị trí.

- Cho phép thực hiện nhanh hơn các thao tác: Lấy dữ liệu, sửa, tạo index,…tại từng partition do đó giảm được thời gian xử lý dữ liệu. Các nhược điểm của phương pháp partition:

- Thực hiện phân chia dữ liệu tương đối phức tạp. Các ứng dụng phù hợp:

- Các dữ liệu bị ràng buộc bởi một số điều kiện khách quan. Phương pháp sử dụng các Replicate

Định nghĩa: Là phương pháp phân tán sử dụng các bảng copy còn gọi là bảng ảnh (Snapshot) của một hay nhiều phần dữ liệu từ bảng chủ định vào vị trí ở xa.

Mô hình phân tán dữ liệu của phương pháp phân tán dữ liệu sử dụng các Replicate:

Mô hình phân tán dữ liệu Replicate

Số lượng các sao bản nhiều hay ít phụ thuộc vào yêu cầu và mục đích của người sử dụng cần tra cứu như thế nào, cho nên tại các vị trí khác nhau có thể có nhiều bản sao dữ liệu trùng lặp, đây cũng là nguyên nhân khiến cho phương pháp này có dữ liệu dư thừa cao nhất. Một đặc điểm nữa cần nhấn mạnh là dữ liệu ảnh được tạo ra từ phương pháp này chỉ phục vụ tra cứu mà không cập nhật được.

Vì yêu cầu và mục đích của người sử dụng tương đối đa dạng cho nên phương pháp phân tán sử dụng các Replicate kết hợp rất nhiều kỹ thuất sao bản CSDL: sao bản theo hàng, sao bản theo côt, và sao bản hỗn hợp(cả hàng và cột).

- Dễ xây dựng CSDL cũng như các chương trình ứng dụng .

- Độ tin cậy: Nếu CSDL tại một trong các chi nhánh bị hỏng thì ta có thể tìm thấy bản copy của chính nó tại CSDL của chi nhánh khác.

- Tốc độ truy xuất dữ liệu nhanh: Tại mỗi chi nhánh đều có đầy đủ CSDL để phục phụ cho các quy trình xuất dữ liệu từ phía người sử dụng. Quá trình này xảy ra ngay tại trạm làm việc, vì vậy tốc độ truy vấn dữ liệu nhanh hơn.

- Có thể sử dụng đường điện thoại để truyền dữ liệu đi xa.

- Mỗi vị trí đều có thể sử dụng toàn bộ dữ liệu của CSDL.

Các nhược điểm của phương pháp phân tán sử dụng các Replication:

- Dung lượng đĩa tăng lên: để mọi nơi đều có một bản sao CSDL đầy đủ thì tại mỗi vị trí cần có một khoảng trống đĩa bằng dung lượng phải có nếu muốn lưu trữ ở máy trung tâm.

- Tốn một dung lượng đĩa lưu trữ gấp nhiều lần kích thước CSDL muốn tạo sao bản lưu.

Các ứng dụng phù hợp:

- Dữ liệu phục vụ nhiều cho mục đích tra cứu hoặc dữ liệu là tương đối tĩnh.

- Các CSDL không quá lớn nhưng phạm vi địa lý ứng dụng rộng.

III.2. Tối ưu hoá truy vấn trong Oracle

Hệ quản trị CSDL Oracle đưa ra hai phương pháp khác nhau để tối ưu hoá truy vấn: dựa trên quy tắc và dựa trên chi phí.

(adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu TỐI ƯU HOÁ TRUY VẤN PHÂN TÁN ỨNG DỤNG TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN ORACLE (Trang 34)