Tải bản đầy đủ (.doc) (40 trang)

Tìm hiểu cơ sở dữ liệu phân tán trên oracle và công cụ oracle jdeveloper

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (567.56 KB, 40 trang )

Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
MỤC LỤC
Phần I. Đặt vấn đề 3
Phần II. Thực hiện đề tài 4
1. Tổng quan về cơ sở dữ liệu phân tán 4
1.1. Cơ sở dữ liệu phân tán 4
1.2. Hệ quản trị cơ sở dữ liệu phân tán 4
1.3. Một số đặc trưng của hệ phân tán 4
1.3.1. Chia xẻ tài nguyên 4
1.3.2. Tính mở 5
1.3.3. Khả năng song song 6
1.3.4. Khả năng chịu lỗi 6
1.3.5. Tính trong suốt 6
1.4. Sử dụng CSDL PT, những thuận lợi và khó khăn 7
1.4.1. Mục đích sử dụng 7
1.4.2. Thuận lợi 8
1.4.3. Hạn chế 8
1.5. Một số khái niệm và kỹ thuật trong CSDLPT 8
1.5.1. Quan điểm của người thiết kế về ứng dựng CSDL 8
1.5.2. Lược đồ đa cục bộ (Multiple local schema) 8
1.5.3. Lược đồ toàn thể (Global schema) 9
1.5.4. Lược đồ giới hạn toàn cục (Restricted global schema) 10
1.6. Vấn đề phân tán dữ liệu giữa các CSDL khác nhau 10
1.6.1. Sự phân mảnh dữ liệu(Fragmentation) 11
1.6.1.1. Phân mảnh theo chiều ngang (Horizontal
Fragmentation) 11
1.6.1.2. Phân mảnh theo chiều dọc (Vertical Fragmentation) 12
1.6.1.3. Phân mảnh kết hợp (Mixed Fragmentation) 13
1.6.2. Sự phân mảnh và vấn đề cập nhật dữ liệu 15
1.6.3. Sự nhân bản (Replication) 15
2. Cơ sở dữ liệu phân tán trong Oracle XE (eXpress Edition) 18


2.1. Các khái niệm cơ bản 18
2.1.1. Snapshot 18
2.1.2. Sao bản cơ sở 19
2.1.3. Các nhóm sao bản 19
2.1.4. Các vị trí sao bản 19
2.1.5. Danh mục các bản sao 19
2.1.6. Database link 20
2.2. Mô hình phân tán dữ liệu trong Oracle 24
2.2.1. Phân tán dữ liệu hoàn toàn 24
2.2.2. Phương pháp phân tán patition 26
2.2.3. Phương pháp sử dụng các Replicate 28
3. Tìm hiểu công cụ JDeveloper 30
Seminar cơ sở dữ liệu nâng cao 1
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
3.1. Giới thiệu 30
3.2. Kiến trúc 30
3.3. Vòng đời JDeveloper 35
3.4. JavaServer Faces (JSF) 37
Phần III. Kết luận 39
Phần IV. Tài liệu tham khảo 40
Seminar cơ sở dữ liệu nâng cao 2
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
Phần I. ĐẶT VẤN ĐỀ
Vào những năm 1970, các máy tính đã có đủ khả năng xây dựng hệ
thống thông tin và hệ cơ sở dữ liệu. Các hệ thống cơ sở dữ liệu (Database
systems) đã không ngừng phát triển và đã có những thành công lớn trong
suốt hơn ba thập kỷ qua. Ngày càng có nhiều dữ liệu được thu thập và lưu
trữ dưới dạng cơ sở dữ liệu lớn. Một mặt đã hình thành và phát triển các mô
hình lý thuyết hệ cơ sở dữ liệu, mặt khác những nguồn phát triển hệ thống
ứng dụng cũng ngày càng lớn mạnh. Hệ thống thông tin hình thành trên cơ

sở kết nối các máy tính lại với nhau.
Những năm gần đây, hệ cơ sở dữ liệu phân tán được phát triển mạnh
trong thực tế dựa trên sự phát triển của cơ sở dữ liệu (CSDL) và mạng máy
tính. Vì yêu cầu chung của các tổ chức kinh tế xã hội là vấn đề làm sao nắm
bắt thông tin nhanh nhất để tổ chức công việc hiệu quả nhất trong khi các trụ
sở của những tổ chức này lại ở những vị trí địa lý khác nhau cho nên xây
dựng một hệ thống thông tin làm việc trên cơ sở dữ liệu phân tán là phù hợp
với xu hướng hiện nay. CSDL phân tán ra đời dựa trên nền tảng chính của
CSDL tập trung nhưng với đặc điểm riêng nổi bật là thiết kế theo phương
pháp phân mảnh dữ liệu và sử dụng các bản sao (replication), dữ liệu phân
tán sẽ được cập nhật và lưu tại các nút (site), mỗi nút tương ứng với một
database server và chỉ thực hiện một số chức năng nhất định. Việc ứng dụng
CSDL phân tán có thể khắc phục được các nhược điểm vốn có của CSDL tập
trung. Ngoài ra, việc kết nối giữa các CSDL từ xa được thực hiện qua kết nối
database link sẽ đáp ứng được một số tiêu chuẩn cơ bản như cải thiện năng
suất thực hiện công việc, đảm bảo an toàn dữ liệu, giảm giá thành truyền
thông, bảo mật cao, dễ dàng thay đổi, phát triển, …
Trong đề tài này tác giả đi sâu tìm hiểu về cách tổ chức cơ sở dữ liệu
phân tán trong hệ quản trị cơ sở dữ liệu Oracle và Oracle JDeveloper là môi
trường phát triển (IDE) để xây dựng các ứng dụng dùng chuẩn Java, XML,
Web và SQL.
Seminar cơ sở dữ liệu nâng cao 3
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
Phần II. THỰC HIỆN ĐỀ TÀI
1. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN
1.1. Cơ sở dữ liệu phân tán (CSDLPT)
CSDLPT là tập hợp các dữ liệu được phân phối trên các máy tính khác
nhau trên một mạng máy tính (được gọi là các nút hay là site) nhưng vẫn
đảm bảo tính nhất quán trên toàn bộ CSDL và khai thác giống như trên CSDL
tập trung.

1.2. Hệ quản trị cơ sở dữ liệu phân tán
Để quản lý CSDLPT, người ta dùng hệ quản trị CSDLPT (DDBMS –
Distribute Database Management System). Hệ quản trị CSDLPT là một phần
mềm hệ thống cho phép quản lý một CSDLPT và tạo nên sự phân tán rõ ràng
cho người dùng.
DDBMS cũng chính là hệ quản trị CSDL tập trung nhưng được bổ sung
một số thành phần để hỗ trợ cho việc liên lạc và phối hợp hoạt động giữa các
DDBMS được cài đặt tại những nơi khác nhau trên mạng máy tính.
1.3. Một số đặc trưng của hệ phân tán
1.3.1. Chia xẻ tài nguyên
Thuật ngữ tài nguyên dùng để chỉ tất cả mọi thứ có thể chia xẻ bởi hệ
phân tán bao gồm máy in, phần cứng, máy in… tới các đối tượng như file,
các cửa sổ cơ sở dữ liệu và các đối tượng khác.
Việc chia xẻ tài nguyên trên hệ thống phân tán (HTPT) – nơi mà các tài
nguyên bị lệ thuộc về mặt vật lý với một máy tính nào đó, Được thực hiện
thông qua truyền thông. Để chia xẻ tài nguyên một cách hiệu quả mỗi tài
nguyên cần phải được quản lý bởi một chương trình có giao diện truyền
thông, các tài nguyên có thể được truy nhập, cập nhật một cách tin cậy và
nhất quán. Quản lý tài nguyên ở đây là lập kế hoạch dự phòng , đặt tên cho
các lớp tài nguyên, cho phép tài nguyên được truy nhập từ nơi khác, ánh xạ
tên tài nguyên vào địa chỉ truyền thông.
 Mô hình mạng thường hay được sử lý là mô hình Client-Server.
Seminar cơ sở dữ liệu nâng cao 4
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
 Mô hình Client-Server:
Là mô hình trong đó có sự xử lý hợp tác đối với các yêu cầu của client
nêu ra với máy server. Máy server tiến hành xử lý và trả về kết quả cho client.
Việc xử lý client-server thực tế là một dạng riêng của xử lý phân tán với
tài nguyên được trãi qua hai hay nhiều hệ thống tính toán rời rạc.
Mô hình client – server nổi lên như một mức cao hơn của việc xử lý

dùng chung thiết bị có trong mạng cục bộ. Trong môi trường xử lý dùng
chung thiết bị, các máy tính cá nhân gắn vời thiết bị hệ thống để cho phép
các máy cá nhân này dùng chung file trên ổ cứng và các máy in là những ví
dụ tiêu biểu. Theo thuật ngữ LAN các thiết bị dùng chung như vậy được gọi là
các server. Trong xử lý thiết bị dùng chung trên LAN các yêu cầu của máy PC
thường bị giới hạn về các dịch vụ liên quan tới file dùng chung hay file xử lý
in. Nhược điểm hiển nhiên của cách tiếp cận như vậy ở chỗ mọi xử lý điều
nằm trên những PC riêng lẻ và chỉ một chức năng nào đó mới là phân tán. Do
đó toàn bộ file phải được gởi cho một PC đã ban ra những yêu cầu đọc file
đó. Nếu file được cập nhật thì toàn bộ file đó bị khoá bởi PC đã yêu cầu cập
nhật file đó.
1.3.2. Tính mở
Tính mở của hệ thống máy tính là tính dễ dàng mở rộng phần cứng
(thêm những thiết bị ngoại vi, bộ nhớ, các giao diện truyền thông…) và phần
mềm (các mô hình hệ điều hành, các giao thức truyền thông…) của nó.
Một hệ thống phân tán có tính mở là hệ thống được tạo ra bởi nhiều
hệ thống phần cứng và phần mềm của nhiều nhà sản xuất khác nhau với
điều kiện là những thành phần đó phải chung một chuẩn nhất định.
Tính mở của HTPT được xem theo mức độ bổ sung vào các dịch vụ
dùng chung tài nguyên mà không phá hỏng hay nhân đôi những dịch vụ đang
tồn tại. Tính mở được hoàn thiện bằng cách xác định hay phân rõ những giao
diện chính của một hệ và làm cho nó tương thích với những nhà phát triển
phần mềm.
Seminar cơ sở dữ liệu nâng cao 5
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
Tính mở của HTPT dựa trên việc cung cấp cơ chế truyền thông giữa
các tiến trình và công khai các giao diện để truy nhập các tài nguyên dùng
chung.
1.3.3. Khả năng song song
Hệ thống hoạt động trên một mạng truyền thông có nhiều máy tính ,

mỗi máy tính có một hay nhiều CPU. Trong một thời điểm nếu có nhiều tiến
trình cùng tồn tại, ta nói chúng được thực hiện đồng thời. Việc thực hiện các
tiến trình theo cơ chế phân chia thời gian hay song song.
Khả năng thực hiện theo cơ chế song song trong hệ thống phân tán
được phân chia theo hai tình huống sau:
 Nhiều người sử dụng đồng thời đưa ra những câu lệnh
hay tương tác với các chương trình ứng dụng.
 Nhiều tiến trình Server chạy đồng thời, mỗi tiến trình đáp
ứng các yêu cầu từ client.
Khả năng mở rộng là HTPT có khả năng hoạt động tốt và hiệu quả ở
nhiều mức khác nhau. Một HTPT nhỏ nhất có thể hoạt động chỉ cần 2 trạm
làm việc và một file Server. Hệ thống lớn thì có thể lên đến hàng nghìn máy
và có nhiều file server và printer server.
Khả năng mở rộng của HTPT đặc trưng bởi tính không thay đổi phần
mềm hệ thống và phần mềm ứng dụng khi hệ được mở rộng.
1.3.4. Khả năng chịu lỗi
Việc thiết kế khả năng chịu lỗi của các hệ thống máy tính dựa trên hai
giải pháp sau:
 Dùng khả năng thay thế để đảm bảo sự hoạt động liên tục
và hiệu quả.
 Dùng những chương trình phục hồi dữ liệu, thông tin khi
xảy ra sự cố.
1.3.5. Tính trong suốt
Seminar cơ sở dữ liệu nâng cao 6
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
Tính trong suốt của hệ thống phân tán được hiểu như một sự che
khuất đi những thành phần riêng biệt của thống đối với người sử dụng và
những người lập trình ứng dụng . Người sử dụng có quyền truy nhập đến dữ
liệu nằm tại bất kì vị trí nào. Các thao tác để lấy hoặc cập nhật dữ liệu tại bất
kì vị trí nào.Các thao tác để lấy hoặc cập nhật dữ liệu tại một điểm dữ liệu ở

xa được tự động thực hiện bởi hệ thống tại điểm đưa ra yêu cầu. Người sử
dụng không cần biết đến sự phân tán của tất cả dữ liệu trên mạng dường
như máy tính cục bộ của người sử dụng.
1.4. Sử dụng CSDL PT, những thuận lợi và khó khăn
1.4.1. Mục đích sử dụng
Được dùng trong các cơ quan và tổ chức thương mại nhằm giảm bớt
phần lớn và các chi phí sản xuất .
Dùng để tạo ứng dựng toàn cục dựa trên các CSDL đã có từ trước.
Tuy nhiên, trong trường hợp này, nhu cầu xây dựng lại cấu trúc cũ ít cần thiết
hơn là xây dựng một CSDL tập trung mới.
Khi một tổ chức nào đó có nhu cầu phát triển thêm chi nhánh của mình
thì việc áp dụng CSDLPT là thuận lợi nhất vì nó tác động không nhiều lên các
đơn vị đã có trước, dễ mở rộng và ít tốn kém chi phí.
Làm giảm bớt chi phí truyền thông.
Làm tăng mức độ thi hành các dịch vụ vì có thể thực hiện các tác vụ
đồng thời.
Tín tin cậy và khả năng sẵn dùng.
Tuy nhiên, sự phát triển của CSDLPT gần đây là do hai yếu tố cơ bản
sau:
Sự phát triển của các máy tính nhỏ, cung cấp giá thành ít hơn trước
đây đã tạo được sự thuận lợi về phần cứng đáp ứng đáp ứng cho sự phát
triển hệ thống phân tán.
Seminar cơ sở dữ liệu nâng cao 7
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
Kỹ thuật phân tán dựa trên hai kỹ thuật khác là: kỹ thuật mạng và kỹ
thuật CSDL. Đây là kỹ thuật phức tạp vì nó dựa trên đường truyền mạng và
các CSDL cục bộ đặt ở từng vị trí khác nhau.
1.4.2. Thuận lợi
Dữ liệu được đặt nơi có nhu cầu nhiều nhất.
Truy xuất dữ liệu nhanh.

Xử lý dữ liệu nhanh.
Dễ dàng mở rộng.
Cải tiến sự truyền thông.
Giảm chi phí hoạt động.
Độ an toàn dữ liệu cao.
Độc lập về mặt xử lý.
1.4.3. Hạn chế
Phức tạp trong việc quản lý và điều khiển. Nếu mức trong suốt của
database thấp thì yêu cầu người sử dụng phải biết vị trí của dữ liệu được
phân mảnh.
Thiếu sự chuẩn hóa, CSDLPT phụ thuộc vào hiệu quả của sự truyền
thông.
1.5. Một số khái niệm và kỹ thuật trong CSDLPT
1.5.1. Quan điểm của người thiết kế về ứng dựng CSDL
Một ứng dụng truy xuất trực tiếp CSDL bằng các câu lệnh SQL được
xây dựng bởi một vài lược đồ. Lược đồ đó mô tả cấu trúc của CSDL được
ứng dụng nhìn thấy. Chúng ta có ba loại lược đồ:
1.5.2. Lược đồ đa cục bộ (Multiple local schema)
CSDLPT xem chương trình ứng dụng như một tập hợp các CSDL riêng
lẻ. Chương trình ứng dụng phải đặt một thiết kế nối đến các site mà chứa dữ
liệu được truy xuất. Sau khi kết nối được thiết lập, chương trình có thể truy
xuất CSDL bằng câu lệnh SQL được tạo nên từ lược đồ của site. Nếu các dữ
liệu bị chuyển từ site này đến site khác thì chương trình phải thay đổi theo.
Seminar cơ sở dữ liệu nâng cao 8
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
Một câu lệnh SQL đơn tham khảo đến các bảng đặt tại các site khác
nhau. Nếu ứng dụng muốn kết các bảng đó lại với nhau, nó phải đọc các
dòng từ mỗi bảng vào bộ đệm ở tại site ứng dụng (với các câu lệnh SELECT
riêng lẻ) và kiểm tra rõ điều kiện kết trên mỗi cặp của các dòng.
Dữ liệu đặt tại các site khác nhau thì được lưu trữ dưới những dạng

khác nhau. Các kiểu trong từng lược đồ riêng lẻ có thể khác nhau. Trong
trường hợp này, ứng dụng phải cung cấp thủ tục chuyển đổi có thể dùng tại
thời điểm thực thi để hợp nhất dữ liệu với nhau.
Ứng dụng phải quản lý sự nhân bản. Nếu một mục dữ liệu nhân bản
được truy vấn, ứng dụng phải quyết định nhân bản phải được truy xuất và
nếu mục đó được cập nhật, nó phải đảm bảo rằng việc cập nhật xảy ra cho
tất cả các nhân bản.
1.5.3. Lược đồ toàn thể (Global schema)
Trong cách tiếp cận này, người thiết kế ứng dụng xem một lược đồ đơn
là hợp nhất của tất cả các lược đồ cục bộ. Vì thế, chúng ta xem nó như lược
đồ toàn thể và xem hệ thống như một hệ thống tích hợp CSDLPT.
Sự tích hợp được thực hiện ở tầng giữa (middleware), tầng mà hợp
nhất các lược đồ riêng lẻ vào một lược đồ toàn thể bao gồm dữ liệu từ những
nơi khác nhau. Lược đồ toàn thể có thể bao gồm các bảng mà không xuất
hiện trong bất cứ lược đồ cục bộ nào, nhưng có thể tính toán từ các bảng
trong lược đồ cục bộ dùng câu lệnh SQL tương ứng. Lược đồ toàn thể là tổng
quát của các lược đồ cục bộ.
Sự kết nối các site riêng lẻ được thực hiện tự động bởi tầng
middleware khi các thành phần trong lược đồ toàn thể được truy xuất. Do đó,
vị trí của các bảng được ẩn đi bởi chương trình ứng dụng (được gọi là
location transparency). Nếu dữ liệu được chuyển từ nơi này đến nơi khác,
lược đồ toàn thể vẫn giống như trước và chương trình ứng dụng không cần
phải thay đổi. Sự ánh xạ từ lược đồ toàn thể sang lược đồ cục bộ không cần
Seminar cơ sở dữ liệu nâng cao 9
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
phải thay đổi trong tầng middleware, nhưng việc làm này sẽ dễ dàng hơn việc
thay đổi một số lượng lớn các chương trình ứng dụng.
Đối với lược đồ cục bộ, dữ liệu liên quan đến những nơi khác nhau có
thể lưu trữ dưới các dạng và các kiểu khác nhau, nhưng điều này không phù
hợp đối với lược đồ toàn thể. Tầng middleware cung cấp một thủ tục chuyển

đổi để hợp nhất hệ thống dưới những trường hợp này.
Một vấn đề liên quan là thống nhất ngữ nghĩa (semantic integration) nó
bao gồm ít nhất sự chuyển đổi giá trị và sự chuyển đổi trên.
Chương trình ứng dụng thi hành các câu lệnh SQL ngược lại đối với
lược đồ toàn thể.
Người thiết kế ứng dựng phải chọn nhân bản mục dữ liệu nào đó và chỉ
định nơi mà nhân bản được đặt. Tuy nhiên, sự nhân bản được che dấu bởi
chương trình ứng dụng. Chương trình truy xuất một mục dữ liệu vật lý và tầng
middleware tự động quản lý sự nhân bản, cung cấp một nhân bản thích hợp
nhằm thỏa mãn việc truy vấn và cập nhật tất cả các nhân bản khi thích hợp.
Điều này gọi là replication transparency.
1.5.4. Lược đồ giới hạn toàn cục (Restricted global schema)
Người thiết kế ứng dụng nhìn thấy một lược đồ toàn thể đơn giản,
nhưng một lược đồ là hợp nhất của nhiều lược đồ của CSDL riêng lẻ. Vì vậy,
restricted global schema bao gồm tất cả các bảng của CSDL riêng lẻ.
Restricted global schema được hỗ trợ bởi nhà cung cấp của một vài hệ
thống đồng nhất.
Ứng dụng sử dụng một quy ước đặt tên để tham khảo tới bảng trong
mỗi CSDL. Vì vậy, vị trí của bảng có thể dấu đi trong ứng dụng. Một kết nối
tới một nơi được làm một cách tự động khi một bảng tại nơi đó được truy
xuất.
1.6. Vấn đề phân tán dữ liệu giữa các CSDL khác nhau
Trong nhiều trường hợp các nhà thiết kế ứng dụng không biết dữ liệu
phải phân tán ở đâu. Ví dụ, vì lý do bảo mật dữ liệu phải được lưu trữ tại
Seminar cơ sở dữ liệu nâng cao 10
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
một nơi đặt biệt nào đó, cũng có trường hợp người thiết kế có thể tham gia
vào việc quyết định nơi dữ liệu được lưu trữ hoặc sao lưu. Trong phần này
chúng ta sẽ phát họa một vài vấn đề liên quan đến việc phân tán dữ liệu.
1.6.1. Sự phân mảnh dữ liệu(Fragmentation)

Cách đơn giản nhất để phân mảnh dữ liệu là lưu trữ các bảng độc lập
tại những nơi khác nhau. Tuy nhiên, một bảng không được xem là một đơn vị
phân tán tốt nhất vì hiếm khi nào một giao tác chỉ truy xuất đến một tập các
dòng của bảng, một view của bảng hay duy nhất một bảng. Nếu các giao tác
khác nhau truy xuất đến các phần khác nhau của bảng và cả ở những nơi
khác nhau, việc thực thi này có thể được cải thiện bằng cách lưu các phần
của bảng tại nơi nào giao tác tương ứng sẽ truy xuất. Theo hướng tiếp cận
này các phần của bảng trên được gọi là mảnh phân tán.
Việc phân tán các mảnh dữ liệu của bảng mang lại nhiều thuận lợi. Ví
dụ, thời gian để xử lý một truy vấn trên toàn bộ bảng có thể giảm bớt khi dùng
kỹ thuật phân tán, lúc này câu truy vấn sẽ được thực thi trên từng mảng dữ
liệu đặt những nơi khác nhau.
Xem một ví dụ cụ thể sau: dùng một câu truy vấn để lấy tên và điểm
trung bình của sinh viên tại một trường đại học. Nếu bảng Student và
Transcript đều lưu trữ tại trung tâm, tất cả quá trình xử lý sẽ diễn ra tại đây,
thay vào đó nếu các bảng trên được phân mảnh ra và lưu trữ tại mỗi khoa
riêng, thì DBMS tại mỗi khoa có thể cùng xử lý và cho kết quả nhưng trong
thời gian ít hơn.
Hơn nữa kỹ thuật phân tán phải có khả năng cải thiện được thời gian
và thực hiện được việc truy xuất dữ liệu từ xa. Có hai cách phân tán dữ liệu
chính sau: phân mảnh dữ liệu theo chiều ngang và phân mảnh dữ liệu theo
chiều dọc.
1.6.1.1. Phân mảnh theo chiều ngang (Horizontal
Fragmentation)
Seminar cơ sở dữ liệu nâng cao 11
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
Lúc này một bảng T được phân ra thành các mảnh T
1
, T
2

,. . . . .,T
r
.
Trong đó, mỗi mảnh phải chứa một tập các dòng của T và mỗi dòng phải
thuộc một mảnh nào đó. Ví dụ: một cửa hàng thực phẩm mua bán qua
Internet có bảng quan hệ sau:
INVENTORY (Stocknum, Amount, Price, Location)
đế mô tả kho hàng và vị trí kho hàng. Bảng quan hệ này khi được phân chia
theo chiều ngang dựa trên vị trí kho hàng, mảnh dữ liệu chứa các mục hàng
hoá thỏa mãn điều kiện
Location=’Chicago’
Tên là CH_INVENTORY tại nhà kho ở Chicago với quan hệ
INVENTORY_CH (Stocknum, Amount, Price, Location)
(Lúc này thuộc tính Location trở thành thừa và nên bỏ đi). Vì mỗi mục
hàng trong mỗi mảnh đã được phân tán trên nhiều nơi, việc phân mảnh này
phải đảm bảo khi cần thì bảng có thể được tái dựng lại bằng cách hợp các
mảnh lại với nhau.
Một cách tổng quát mỗi mảnh phải thoả mãn điều kiện
T
i
= δ
Ci
(T)
Trong đó C
i
là điều kiện chọn và mỗi mục hàng hoá trong T phải thoả mãn
điều kiện C
i
với từng giá trị cụ thể của i.
1.6.1.2. Phân mảnh theo chiều dọc (Vertical

Fragmentation)
Bảng T được chia thành các mảnh T
1
,T
2
, . . . . .,T
r
. Trong đó mỗi mảnh
chứa một tập các cột của T. Mỗi cột phải thuộc một mảnh nào đó và mỗi
mảnh phải chứa các cột của khoá candidate.
Giả sử cửa hàng mua bán thực phẩm qua Internet có quan hệ sau
EMPLOREE (Ssnum, Name, Salary, Title, Location)
để mô tả nhân viên tại tất cả nhà kho. Quan hệ được phân mảnh như
sau
EMP1 (Ssnum, Name, Salary)
Seminar cơ sở dữ liệu nâng cao 12
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
EMP2 (Ssnum, Name,Title, Location)
trong đó EMP1 được lưu tại trung tâm (nơi lưu danh sách nhân viên) và
EMP2 lưu ở nơi khác.Vì mỗi cột phải thuộc ít nhất một mảnh và mỗi mảnh
phải chứa cùng khoá candidate.Việc phân mảnh theo cách này phải thoả khi
ta thực hiện phép kết các mảnh lại với nhau, cấu trúc bảng ban đầu được tái
dựng.Vì khoá canditate được chứa trong mỗi mảnh, việc phân chia mảnh
theo chiều ngang bao gồm cả kỹ thuật sao chép. Các cột phải được sao chép
tốt. Trong trường hợp của ta, cột Name được chứa trong cả hai mảnh vì nó
được các ứng dụng cục bộ dùng đến.
1.6.1.3. Phân mảnh kết hợp (Mixed Fragmentation)
Việc kết hợp giữa phân mảnh theo chiều ngang và chiều dọc cũng là
một cách, nhưng phải đảm bảo rằng bảng có thể được tái dựng từ các mảnh
cuả nó. Cửa hàng mua bán thực phẩm qua Internet sau khi đã phân mảnh

quan hệ EMPLOYEE thành EMP1 và EMP2, bảng EMP2 lại được phân mảnh
theo chiều ngang dựa trên trường Location.Các mảng dữ liệu có trường
Location thoả điều kiện thuộc nhà kho Chicago, Buffalo được phân vào hai
mảnh
EMP2_CH (SSnum,Name, Title, Location)
EMP2_BU (Ssnum, Name, Title, Location)
(một lần nữa ta thấy, thuộc tính Location thừa , nên bỏ đi). EMP1 được lưu tại
trung tâm, còn EMP2_CH và EMP2_BU lưu ở nơi thích hợp.
 Bắt nguồn từ phân mảnh theo chiều ngang (Derived Horizontal
Fragmentation)
Trong nhiều trường hợp buộc phải phân tán một quan hệ theo chiều
ngang, nhưng thông tin dùng để quyết định các dòng phải chứa trong mảnh
nào lại không nằm trong bảng quan hệ đó. Giả sử cửa hàng mua bán thực
phẩm qua mạng trên có hơn một nhà kho trong mỗi thành phố và mỗi nhà
kho có một mã số riêng. CSDL cho cửa hàng có hai bảng sau:
INVENTORY (Stocknum, Amount, Price, WarehouseNum)
Seminar cơ sở dữ liệu nâng cao 13
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
WAREHOUSE (WarehouseNum, Capacity, Street-Address,
Location)
Cửa hàng có một CSDL trong mỗi thành phố và muốn phân mảnh quan
hệ INVENTORY theo chiều ngang để một mảnh dữ liệu trong thành phố chỉ
chứa các thông tin về tất cả các mục hàng hoá trong các nhà kho của thành
phố mình. Ở đây ta gặp rắc rối với thuộc tính Location, thuộc tính mô tả vị trí
của nhà kho trong thành phố, nó không phải là trường của INVENTORY, và
vì thế không thể biết rõ các danh mục hàng hoá thuộc thành phố nào.
Để giải quyết vấn đề trên, ta cần biết vị trí của nhà kho thông qua mã
số của nó.Thông tin này được lưu trong bảng WAREHOUSE. Do đó trước khi
tiến hành phân tán dữ liệu ta cần kết hợp thông tin trong cả hai bảng. Ta
dùng phép kết bằng, từ mã nhà kho được lưu trong cả hai bảng có giá trị

giống nhau. Các dòng trong quan hệ INVENTORY được mô tả ở Chicago
sẽ thuộc mảng dữ liệu INVENTORY_CH, các dòng này kết với các dòng của
quan hệ WAREHOUSE sao cho thoả điều kiện Location =’Chicago’. Do đó ta
có quan hệ mới sau :
INVENTORY_CH = л
A
(INVENTORY ∞ (δ
Location = ‘Chicago’
(WAREHOUSE)))
trong đó A là tập các thuộc tính của INVENTORY. Phép kết chỉ được sử
dụng để xác định vị trí của nhà kho cho các dòng sẽ được chứa trong
INVENTORY_CH. Vì ta không muốn sử dụng bất kỳ thuộc tính nào trong
WAREHOUSE, nên kết quả của phép kết trên chỉ trả về kết quả là A. Từ phép
toán :
δ
Location = ‘Chicago’
WAREHOUSE
cho kết quả là một mảnh dữ liệu của WAREHOUSE, mảng dữ liệu của
INVENTORY được lấy từ mảng dữ liệu của WAREHOUSE trên.Ta gọi kiểu
phân tán dữ liệu này là derived fragmention. Quan hệ INVENTORY_CH là kết
quả của phép kết một nửa của INVENTORY với một mảnh dữ liệu của
WAREHOUSE.
Seminar cơ sở dữ liệu nâng cao 14
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
Phân mảnh theo chiều ngang được ứng dụng khi chỉ truy xuất đến một
tập các dòng của quan hệ tại một nơi nào đó và phân mảnh theo chiều dọc
được ứng dụng khi chỉ truy xuất đến một tập các thuộc tính của quan hệ tại
một nơi nào đó.
Kiến trúc trên cơ sở lược đồ toàn cục có thể che giấu được sự phân
mảnh. Điều này có nghĩa là quan hệ được nhìn thấy như dạng nguyên thuỷ

của nó trong lược đồ toàn cục và tầng trung gian có nhiệm vụ chuyển tất cả
các truy xuất đến các mảnh dữ liệu được lưu trữ ở các CSDL khác nhau một
cách thích hợp.(Quan hệ nhìn thấy với bản chất không phân mảnh). Trái lại
trong hệ thống multidatabase không cung cấp chức năng che dấu sự phân
mảnh, mỗi chương trình ứng dụng phải biết các mảnh dữ liệu và dùng câu
truy vấn thích hợp cho mảnh dữ liệu đó.
1.6.2. Sự phân mảnh và vấn đề cập nhật dữ liệu
Khi một quan hệ được phân mảnh, thao tác cập nhật đôi khi yêu cầu
chuyển các dòng từ một mảnh này đến một mảnh khác hay nói cách khác đó
là từ một CSDL này đến CSDL khác. Giả sử một nhân viên chuyển nơi làm
việc từ Chicago đến Buffalo. Trong quan hệ chưa phân mảnh
EMPLOYEE (Ssnum, Name, Salary, Title, Location)
giá trị của thuộc tính Location sẽ được thay đổi. Nếu EMPLOYEE được phân
thành hai EMP2_CH và EMP2_BU, nói đơn giản việc cập nhật thuộc tính
Location cho nhân viên đòi hỏi chuyển dòng thích hợp từ CSDL Chicago
sang CSDL Buffalo.
Vấn đề được giải quyết tốt bằng kỹ thuật sao chép.
1.6.3. Sự nhân bản (Replication)
Replication là một trong những kỹ thuật thường dùng nhất trong
CSDLPT. Việc sao chép dữ liệu ở nhiều nơi cung cấp thêm nhiều chức năng
bởi vì dữ liệu còn có thể được truy xuất nếu một nơi nào đó bị hư hỏng. Nó
có khả năng cải tiến được việc thực thi: Việc truy xuất dữ liệu được thực hiện
có hiệu quả hơn vì dữ liệu được lấy tại nơi cục bộ hoặc từ một bản sao ở gần
Seminar cơ sở dữ liệu nâng cao 15
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
đó. Tuy nhiên, việc cập nhật dữ liệu thường bị chậm bởi vì ta phải cập nhật
dữ liệu ở tất cả các bản sao. Do đó việc thực thi replication này thường được
áp dụng cho những ứng dụng mà việc update xảy ra ít hơn querry. Trong
phần này, chúng ta thảo luận về việc đưa ra sự thực thi này nó có liên quan
đến việc thi hành câu lệnh SQL riêng lẻ.

Ví dụ:
Để theo dõi các khách hàng, các nhà doanh nghiệp đưa ra một bảng
sau:
Customer (CustNum, Address, Location)
Trong đó Location chỉ định kho hàng nào cung cấp. Bảng này được truy
vấn tại nơi trung tâm (headquarter) bởi một ứng dụng được gởi tới hàng
tháng đến tất cả khách hàng và đến từng kho hàng để truy vấn bảng bao gồm
những thông tin được cấp phát theo. Bảng này được cập nhật tại trung tâm
khi một khách hàng mới đăng ký vào công ty hoặc thông tin cá nhân của từng
khách hàng bị thay đổi (điều này xảy ra không thường xuyên).
Về khía cạnh trực quan, nó dường như thích hợp với dạng phân mảnh
ngang vì location là một phân mảnh riêng được lưu trữ tại tất cả các kho hàng
tương ứng và tại trung tâm. Do đó bảng này đã được nhân bản (replicate) và
được đặt ở nơi trung tâm. Chúng ta tiến hành phân tích để ước tính việc lựa
chọn thiết kế, so sánh với hai phương án mà dữ liệu sẽ không được nhân
bản. Có 3 cách lựa chọn sau đây:
 Lưu trữ toàn bộ các bảng tại trung tâm, không lưu tại các kho hàng.
 Lưu toàn bộ các phân mảnh ở kho hàng mà không lưu ở trung tâm.
 Nhân bản các phân mảnh ở cả hai nơi.
Một cách để so sánh các sự lựa chọn này là đánh giá lượng thông tin
được chuyển giao giữa các nơi trong mỗi trường hợp khi một ứng dụng cụ
thể được thi hành. Để làm điều này, chúng ta giả sử kích thước bảng và số
lần thi hành của mỗi ứng dụng như sau:
 Bảng Customer có khoảng 100.000 dòng
Seminar cơ sở dữ liệu nâng cao 16
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
 Ứng dụng mail tại trung tâm gởi một mail mỗi tháng cho từng khách
hàng
 Có khoảng 500 lượt phân phát mỗi ngày (ở tất cả các kho hàng) được
thi hành và mỗi lần đọc một dòng

 Công ty có khoảng 100 khách hàng mới mỗi ngày (và sự thay đổi thông
tin cá nhân của từng khách hàng là không đáng kể)
Bây giờ chúng ta tiến hành ước tính 3 sự lựa chọn này
 Nếu chúng ta lưu bảng tại nơi trung tâm, thông tin sẽ được chuyển từ
đây đến từng kho hàng tương ứng bất cứ lúc nào - khoảng 500 dòng mỗi
ngày.
 Nếu chúng ta lưu những phân mảnh tại các kho hàng, thông tin phải
được chuyển như sau:
• Từ kho hàng đến trung tâm khi ứng dụng mail được thi hành
(khoảng 100.000 dòng /tháng hoặc 3.300 dòng /ngày)
• Từ trung tâm đến kho hàng khi 1 khách hàng mới đăng ký vào
(khoảng 100 dòng/ngày)
Tóm lại, khoảng 3.400 dòng/ngày được chuyển đi.
 Nếu chúng ta nhân bản các phân mảnh ở cả hai nơi trung tâm tới kho
hàng tương ứng khi 1 khách hàng mới đăng ký vào khoảng 100 dòng / ngày.
Theo cách này, replication là sự lựa chọn tốt nhất. Tuy nhiên, những
cách khác có thể là quan trọng như là cho biết thời gian thực hiện giao dịch.
 Nếu chúng ta lưu bảng đặt tại nơi trung tâm, cần tốn thời gian cho việc
điều khiển sự phân phối bởi vì dữ liệu đòi hỏi truy xuất từ xa. Điều này không
được xem là quan trọng.
 Nếu chúng ta lưu các phân mảnh ở các kho hàng và những mail tháng
đươc tạo bởi một ứng dụng, 100.000 dòng phải được gửi từ kho hàng tới
trung tâm có thể clog đường truyền của hệ thống và làm chậm những ứng
dụng khác. Điều này nên tránh bằng cách cho chạy những ứng dụng mail vào
cuối tuần khi mà các ứng dụng khác được thi hành.
Seminar cơ sở dữ liệu nâng cao 17
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
 Nếu chúng ta nhân bản các phân mảnh, cần tốn thời gian cho một
khách hàng mới đăng ký bởi vì nó đòi hỏi 1 khoảng thời gian để cập nhật các
bảng ở cả hai nơi trung tâm và kho hàng tương ứng. Điều này được xem là

quan trọng vì khách hàng là online khi update xảy ra và phải tốn thời gian để
cập nhật những bản ở xa làm cho thời gian đăng ký kéo dài không thể chấp
nhận điều này. Tuy nhiên, đối với ứng dụng này, việc tương tác với khách
hàng được xem là hoàn tất khi CSDL ở các trung tâm đều được cập nhật.
Việc cập nhật ở kho hàng có thể được tiến hành sau bởi vì thông tin tại đây
không cần lắm cho tới khi một vài sự phân phối giao dịch được thực hiện.
Từ đây, chúng ta xem việc nhân bản các phân mảnh dường như vẫn là
sự lựa chọn tốt nhất.
2. CƠ SỞ DỮ LIỆU PHÂN TÁN TRONG ORACLE XE (EXPRESS
EDITION)
Hệ quản trị cơ sở dữ liệu 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.
2.1. Các khái niệm cơ bản
2.1.1. Snapshot
Định nghĩa: Snapshot là một 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
Seminar cơ sở dữ liệu nâng cao 18
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
bảng chính được gọi là các Snapshot vì thông có được tại bất kỳ thời điểm
nào có thể định kỳ được “Refresh” , nghĩa là làm cho 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. Nó 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.
Như vậy 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.
2.1.2. Sao bản cơ sở
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ỳ.
2.1.3. Các nhóm sao bản
Kết hợp một đặc tính ứng dụng chung và được sao 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…
2.1.4. 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.
2.1.5. Danh mục các bản sao
Seminar cơ sở dữ liệu nâng cao 19
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
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.
2.1.6. 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.
Hình 3.1.6 Mô hình Database Link
Seminar cơ sở dữ liệu nâng cao 20
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
Hình 3.1.7:Mô hình database link 2
Hình 3.1.8: Mô hinh database link 3
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.
Seminar cơ sở dữ liệu nâng cao 21
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
- Fixed user link: khi tạo link có quy định sẵn username và
password truy xuất.
- 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'];
- Public là các user dùng chung database link.
- Dlink tên của database link.
- User là tên user mà chúng ta muốn kết nối đến.
- Password là mật khẩu của user mà chúng ta muốn kết nối đến.
- Connect_string chuỗi mô tả địa chỉ IP của Host và SID trên Server
đó.
- SID là định danh của database.
- 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.
- 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.
 Ví dụ:
CREATE PUBLIC DATABASE LINK sales.division3.acme.com USING
'sales1';
 Types of Database Links:
Seminar cơ sở dữ liệu nâng cao 22
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
 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.
- Public database link: tất cả user user đều có thể sử dụng được. và nó
do User tạo ra.

- Global database link: được hệ thống tự tạo ra và mọi user có thể sử
dụng được.
 Users of Database Links:
Connected user: Local user truy xuất DB 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
Seminar cơ sở dữ liệu nâng cao 23
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
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.
2.2. Mô hình phân tán dữ liệu trong Oracle
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à:
+ 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.
2.2.1. 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ế.
Ta cũng có thể định nghĩa: 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:
Seminar cơ sở dữ liệu nâng cao 24
Tìm hiểu cơ sở dữ liệu phân tán trên Oracle và công cụ Oracle Jdeveloper
Hình 3.2.1: Mô hình phân tán 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.
Tuy nhiên 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í.
Ví dụ: Hệ thống quản lý học viên
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.
Seminar cơ sở dữ liệu nâng cao 25

×