Xem mẫu
- Luận văn tốt nghiệp Nguyễn Văn Duy
Luận văn:
“Truy nhập cơ sở dữ liệu trên mạng
trong môi trường mạng Internet và
Intranet”
6
- Luận văn tốt nghiệp Nguyễn Văn Duy
CHƯƠNG MỞ ĐẦU
GIỚI THIỆU CHUNG
1. Sự phát triển của mạng thông tin máy tính và ứng dụng
Trong xu thế toàn cầu hoá hiện nay, máy tính và các hệ thống mạng
thông tin máy tính ngày càng được sử dụng rộng rãi trong hầu hết các lĩnh
vực kinh tế, văn hoá và xã hội. Các ứng dụng phong phú của mạng máy
tính có thể kể đến ở đây là:
Sử dụng chung tài nguyên như máy in Laser, máy in nhanh, ổ đĩa
cứng với dung lượng lớn (hàng chục đến hàng trăm GigaByte)
trong tự động hoá văn phòng; sử dụng chung tài nguyên tính toán
chính là các máy PC có công suất ngày càng lớn trong mạng cục
bộ đối với các tính toán khoa học.
Truy nhập từ xa đối với các hệ thống tính toán có công suất lớn
hoặc các mạng cục bộ với các dịch vụ thông tin giá trị gia tăng
phong phú.
Các hệ thống thông tin tài chính, ngân hàng cho phép thanh toán
và kiểm tra tài khoản trên phạm vi toàn cầu.
Các hệ thống thông tin dịch vụ liên quốc gia như đăng ký và đặt
chỗ khách sạn, đăng ký và thanh toán vé máy bay, vé tầu
hoả,.v.v..
Các hệ thống quản lý như hệ thống thông tin thư viện, hệ thống
phục vụ cho công tác quản lý đào tạo trong các trường đại
học,.v.v..
Các hệ thống thông tin xã hội công cộng.
7
- Luận văn tốt nghiệp Nguyễn Văn Duy
Những yếu tố thúc đẩy sự phát triển nhanh chóng của máy tính và
mạng thông tin máy tính, đó là:
Những tiến bộ đáng kể của công nghiệp vi điện tử, cho phép sản
xuất các linh kiện điện tử (các bộ vi xử lý, bộ nhớ, các vi mạch
điều khiển ghép nối ngoại vi và thông tin số liệu, các vi mạch
thực hiện chuyển mạch gói) có công suất ngày càng lớn, tiêu hao
năng lượng ngày càng ít, giá thành hạ.
Cải tiến và nâng cao hiệu suất tính toán trên cơ sở cải tiến kiến
trúc của toàn bộ hệ thống.
Việc đưa vào sử dụng các hệ thống truyền dẫn tốc độ cao, xác
suất lỗi truyền thấp trên cơ sở sử dụng cáp quang và việc thực
hiện các ghép nối truyền dẫn và chuyển mạch thông minh, công
suất lớn (thành quả của công nghiệp vi điện tử).
Bản thân công nghệ mạng thông tin máy tính cũng có những tiến
triển đáng ghi nhận. Những cố gắng thực hiện mạng máy tính theo mô hình
ISO/OSI - do độ phức tạp, "nặng nề" của các giao thức thực hiện chức năng
của các mức - cũng không phủ nhận được một thực tế là các mạng thông tin
máy tính được thực hiện trên cơ sở bộ giao thức TCP/IP đang tăng trưởng
một cách hết sức nhanh chóng. Do tính mềm dẻo, dễ thích ứng trong các
môi trường mạng khác nhau trong nguyên tắc hoạt động của bộ giao thức
TCP/IP, lại được hỗ trợ rộng rãi trong các hệ điều hành quan trọng và thông
dụng hiện nay như UNIX, Window9.x, Window NT để thực hiện kết nối
mạng và liên kết các mạng, công nghệ Internet/Intranet đã trở thành công
nghệ kết nối mạng tiêu chuẩn và hiệu quả hiện nay.
Từ khi mạng máy tính ra đời nó phục vụ rất nhiều trong mọi lĩnh vực
đời sống kinh tế xã hội như con người có thể khai thác thông tin trên mạng,
lấy dữ liệu và dùng chung dữ liệu trên mạng,... Nhưng từ những nguồn tin
ấy từ đâu để con người có thể truy nhập tới và sử dụng chúng. Cho nên khi
môi trường mạng phát triển về phần cứng và phần mềm hệ điều hành mạng
còn những phần thông tin để chúng ta cung cấp cho người dùng truy nhập
đến thì thế nào? Vì vậy, chúng ta phải tổ chức thiết kế cơ sở dữ liệu trên
8
- Luận văn tốt nghiệp Nguyễn Văn Duy
mạng máy tính để người dùng tin có thể truy nhập đến những thông tin mà
họ cần. Bài luận văn giải quyết một phần nhỏ về vấn đề này.
2. Nội dung của luận văn
Dựa vào nền tảng của sự phát triển công nghệ mạng thông tin máy
tính, một phần ứng dụng để phát triển môi trường mạng trong bài luận văn
tốt nghiệp của tôi là “Truy nhập cơ sở dữ liệu trên mạng trong môi
trường mạng Internet và Intranet”.
Trong bài luận văn gồm bốn chương và một phụ lục có cấu trúc như
sau:
Chương mở đầu: Giới thiệu chung.
Chương I: Khái niệm cơ sở dữ liệu trong môi trường Client/Server.
Chương II: Thiết kế bài toán thực tế.
Chương III: Mạng máy tính và ứng dụng công nghệ mạng đối với bài
toán thực tế.
Chương IV: Kết luận.
Phụ lục: Mã nguồn của chương trình.
Đề tài của luận văn là vấn đề mới đối với sinh viên và do những hạn
chế nhất định về thời gian, chắc rằng luận văn không thể tránh khỏi có
những thiếu sót. Rất mong được sự chỉ bảo của các thầy cô giáo và góp ý
của các bạn để tôi có thể hoàn thiện về mặt kiến thức để tiếp tục nghiên cứu
phát triển sau này.
9
- Luận văn tốt nghiệp Nguyễn Văn Duy
CHƯƠNG I
KHÁI NIỆM CƠ SỞ DỮ LIỆU
TRONG MÔI TRƯỜNG CLIENT/SERVER
Trước khi nêu các khái niệm cơ sở dữ liệu trong môi trường
Client/Server ta nêu khái niệm Client, Server, Client/Server.
Khái niệm về thành phần Client: phần mềm chịu tránh nhiệm thu
nhận yêu cầu của người sử dụng, xử lý sơ bộ và chuyển cho Server dưới
một dạng thích hợp. Nó cũng làm nhiệm vụ nhận kết quả từ Server gửi đến
và hiển thị thông tin cho người sử dụng.
Khái niệm về thành phần Server: nhận các yêu cầu từ Client, xử lý
chúng bằng nhiều cách như đọc tệp, tìm kiếm cơ sở dữ liệu... rồi gửi trả lại
kết quả cho Client.
Khái niệm Client/Server là hai phần mềm có thể được thực hiện trên
cùng một máy hoặc trên hai máy với các hệ điều hành khác nhau. Việc xử
lý thông tin thực hiện trên Server. Client đóng vai trò giao tiếp với người sử
dụng và thực hiện trao đổi dữ liệu với Server nếu cần. Việc kết nối giữa
Client và Server tuân theo các giao thức trao đổi thông tin nhất định.
Trong chương này ta xét hai phần trong cơ sở dữ liệu Client/Server
gồm:
Các cách cấu hình khác nhau cho ứng dụng cơ sở dữ liệu
Client/Server.
Các kiến trúc đa dạng được dùng đối với cơ sở dữ liệu phân tán
trên nhiều máy tính.
1. Cấu hình cơ sở dữ liệu Client/Server
10
- Luận văn tốt nghiệp Nguyễn Văn Duy
Các dạng khác nhau của mô hình ba phần ba về tính toán
Client/Server có thể kết hợp với nhau để tạo nên cấu hình tính toán phân
tán theo độ phức hợp xác định. Phần này tập trung vào mô hình phân tán dữ
liệu trong tính toán Client/Server và các dạng khác nhau của mô hình này.
Mô hình phân tán truy nhập dữ liệu nêu trên là dạng sử dụng chung
nhất của mô hình phân tán Client/Server. Đó là dạng phân tán Client/Server
dùng với phần mềm cơ sở dữ liệu, trong đó cơ sở dữ liệu ứng dụng dùng
nhiều bộ xử lý.
Mô hình phân tán truy nhập dữ liệu có thể được phân rã để rõ cách tổ
chức liên kết các thành phần trong quá trình xử lý dữ liệu. Phần này sẽ giới
thiệu cách thức để cấu hình hoá ba thành phần chung cho tất cả các ứng
dụng cơ sở dữ liệu sau đây:
Các thành phần của quá trình ứng dụng.
Thành phần phần mềm cơ sở dữ liệu.
Cơ sở dữ liệu.
1.1. Cấu hình cơ sở dữ liệu Client/Server
Các mô hình xử lý cơ sở dữ liệu khác nhau tuỳ thuộc vào nơi đặt các
thể hiện của ba phạm trù thành phần trên. Phần này lần lượt xét năm mô
hình kiến trúc; tất cả đều dựa trên cấu hình phân tán truy nhập dữ liệu của
tính toán Client/Server:
Mô hình cơ sở dữ liệu tập trung.
Mô hình cơ sở dữ liệu dùng máy chủ file.
Mô hình xử lý lấy dữ liệu từ cơ sở dữ liệu.
Mô hình cơ sở dữ liệu Client/Server.
Mô hình cơ sở dữ liệu phân tán.
Năm mô hình này có thể dùng hỗn hợp để tạo nên cấu hình ứng dụng
cơ sở dữ liệu đa dạng.
1.1.1. Mô hình cơ sở dữ liệu tập trung
11
- Luận văn tốt nghiệp Nguyễn Văn Duy
Trong mô hình tập trung, các thành phần ứng dụng, phần mềm cơ sở
dữ liệu và bản thân cơ sở dữ liệu đều trên cùng bộ xử lý.
Ứng dụng
Titi
Phần mềm cơ sở dữ liệu
Cơ sở dữ liệu Toto
Hình 1. Mô hình cơ sở dữ liệu tập trung.
Chẳng hạn người dùng máy cá nhân có thể chạy chương trình ứng
dụng với phần mềm ORACLE để truy nhập cơ sở dữ liệu trên đĩa cứng
trong máy. Do các thành phần ứng dụng, phần mềm cơ sở dữ liệu và cơ sở
dữ liệu trên cùng máy, ứng dụng này phù hợp với mô hình tập trung.
Nhiều quá trình xử lý thông tin của các tổ chức lớn vẫn theo mô hình
xử lý tập trung, chẳng hạn bộ xử lý mainframe chạy phần mềm IMS hay
DB2 của IBM có thể cho phép các trạm đầu cuối khai thác với độ phân tán
rộng. Tuy nhiên trong nhiều hệ thống như vậy, cả ba thành phần của ứng
dụng cơ sở dữ liệu khai thác cùng trên mainframe.
1.1.2. Mô hình cơ sở dữ liệu dùng máy chủ file
Mô hình máy chủ file đặt các thành phần ứng dụng và phần mềm cơ
sở dữ liệu trên một hệ thống tính toán, và các file vật lí dùng để chứa cơ sở
dữ liệu đặt trên hệ thống tính toán khác.
Cấu hình như vậy thường được dùng trong môi trường mạng cục bộ,
trong đó một máy giữ file dữ liệu để các máy khác truy nhập. Trong môi
trường máy chủ file, phần mềm mạng sẽ tạo điều kiện để mỗi máy người
dùng sẽ có cảm giác như máy chủ file chỉ dùng cho riêng mình.
12
- Luận văn tốt nghiệp Nguyễn Văn Duy
Mô hình máy chủ file tương tự như mô hình tập trung: file cơ sở dữ
liệu đặt trên máy khác với thành phần ứng dụng và phần mềm cơ sở dữ
liệu; tất nhiên các thành phần ứng dụng và phần mềm cơ sở dữ liệu có thể
được thiết kế như đã thao tác trong môi trường tập trung. Thực tế phần
mềm mạng đã tạo nên môi trường mà những phần mềm ứng dụng và phần
mềm cơ sở dữ liệu luôn cảm thấy như đang làm việc với cơ sở dữ liệu tập
trung.
Cơ sở dữ liệu
Ứng dụng
Server
Mạng truyền thông
Phần mềm cơ sở dữ liệu
Hình 2. Mô hình cơ sở dữ liệu máy chủ file.
Môi trường như vậy có thể phức tạp hơn mô hình tập trung vì phần
mềm mạng có cơ chế xử lý tương tranh, cho phép nhiều người dùng cùng
truy nhập đồng thời một dữ liệu.
1.1.3. Mô hình xử lý trích dữ liệu
Một dạng của cơ sở dữ liệu từ xa có thể dùng phần mềm cơ sở dữ
liệu để rút, trích dữ liệu. Người ta dùng thuật ngữ xử lý trích dữ liệu
(database extract processing).
Cơ sở dữ liệu
Ứng dụng
Máy Server
Mạng truyền thông
Ứng dụng
13 Phần mềm cơ sở dữ liệu
- Luận văn tốt nghiệp Nguyễn Văn Duy
Với mô hình này người ta có các cơ sở dữ liệu trên các máy nối
mạng. Một máy dùng phần mềm cơ sở dữ liệu để truy nhập máy kia và rút
dữ liệu cần thiết. Kết quả chuyển về máy yêu cầu, trên đĩa cứng của máy
này. Người dùng sử dụng bản sao tại chỗ của dữ liệu.
Bằng tiếp cận này, người dùng cần biết nơi cất dữ liệu và cách truy
nhập cơ sở dữ liệu ở xa, cũng như bảo trì cơ sở dữ liệu. Phần mềm ứng
dụng phụ trợ cần đặt trên cả hai hệ thống tính toán để truy nhập dữ liệu và
chuyển dữ liệu giữa hai hệ thống. Tuy nhiên phần mềm cơ sở dữ liệu chạy
trên hai máy không cần báo trước những truy nhập từ xa, do hai máy hoạt
động độc lập.
1.1.4. Mô hình cơ sở dữ liệu Client/Server
Trong mô hình cơ sở dữ liệu Client/Server thực sự mô tả trong hình
vẽ, cơ sở dữ liệu đặt trên một máy tính; các máy khác chạy các thành phần
xử lí ứng dụng. Nhưng phần mềm cơ sở dữ liệu được tách ra trên các máy
Client, cho phép chạy các chương trình ứng dụng và hệ thống Server lưu
trữ cơ sở dữ liệu.
Cơ sở dữ liệu
Ứng dụng
Mạng truyền thông Máy Server
Phần mềm cơ sở dữ liệu
Phần mềm cơ sở dữ liệu
Máy Client
14
Hình 4. Mô hình cơ sở dữ liệu Client/Server.
- Luận văn tốt nghiệp Nguyễn Văn Duy
Các thành phần xử lí ứng dụng của hệ thống Client trong mô hình
này yêu cầu phần mềm cơ sở dữ liệu cục bộ. Thành phần phần mềm cơ sở
dữ liệu cục bộ trong máy Client liên lạc với phần mềm cơ sở dữ liệu phụ
chạy trên máy Server. Phần mềm cơ sở dữ liệu máy Server truy nhập cơ sở
dữ liệu và chuyển kết quả về máy Client.
Thoạt nhìn mô hình cơ sở dữ liệu Client/Server tương tự như mô
hình máy chủ file. Thế nhưng mô hình Client/Server có ưu điểm so với mô
hình kia. Với mô hình máy chủ file, thông tin liên kết với mỗi lần truy nhập
cơ sở dữ liệu vật lí cần đi theo mạng. Thao tác cơ sở dữ liệu yêu cầu nhiều
truy nhập có thể gây tắc nghẽn mạng.
Giả sử người dùng yêu cầu dữ liệu tổng, yêu cầu này đòi hỏi phần tử
dữ liệu từ 100 bản ghi cơ sở dữ liệu. Theo cách tiếp cận máy chủ file, tất cả
100 bản ghi chạy qua mạng. Lí do là phần mềm cơ sở dữ liệu chạy trên
máy người dùng cần truy nhập và kiểm tra từng bản ghi có đáp ứng điều
kiện không. Còn theo tiếp cận cơ sở dữ liệu Client/Server, chỉ một câu hỏi
và kết quả cuối cùng đi trên mạng. Phần mềm cơ sở dữ liệu thao tác trên
máy tính có cơ sở dữ liệu và có khả năng thực hiện yêu cầu rồi cho kết quả.
Người ta phân biệt phần mềm phía trước, tuyến trước và phần mềm ở
phía sau, tuyến sau:
(a) Phần mềm tuyến trước: Mô hình cơ sở dữ liệu Client/Server
thường dùng phần mềm gọi là phần mềm làm trước, phần mềm làm sau.
Phần mềm tuyến trước đặc trưng ở chỗ chạy trên máy cá nhân hay trạm
làm việc tại chỗ và đáp ứng nhu cầu tính toán cho các cá nhân khác. Điển
hình là phần mềm này giữ vai trò Client trong ứng dụng cơ sở dữ liệu
Client/Server và thực hiện chức năng hướng về nhu cầu người dùng. Nhìn
chung phần mềm tuyến trước thuộc về một trong những phạm trù sau:
Phần mềm cơ sở dữ liệu cho người dùng.
Phần mềm lập báo cáo và hỏi đơn giản.
Phần mềm phân tích dữ liệu.
Các công cụ phát triển ứng dụng.
15
- Luận văn tốt nghiệp Nguyễn Văn Duy
Các công cụ quản trị cơ sở dữ liệu.
(b) Phần mềm tuyến sau: Phần mềm này gồm phần mềm cơ sở dữ
liệu Client/Server và phần mềm mạng chạy trên máy tính dùng làm máy
Server cơ sở dữ liệu.
1.1.5. Mô hình cơ sở dữ liệu phân tán
Mô hình máy chủ file và mô hình cơ sở dữ liệu Client/Server đều giả
thiết cơ sở dữ liệu đặt trên một bộ xử lý và chương trình ứng dụng truy
nhập cơ sở dữ liệu được đặt trên bộ xử lý khác. Mô hình phân tán thực sự
giả thiết bản thân cơ sở dữ liệu nằm trên nhiều máy, tức là nhiều hệ thống
xử lí.
Cơ sở dữ liệu
Máy Server
Ứng dụng
Mạng truyền thông
Phần mềm cơ sở dữ liệu
Cơ sở dữ liệu
Máy Server
Phần mềm cơ sở dữ liệu
Phần mềm cơ sở dữ liệu
Hình 5. Mô hình cơ sở dữ liệu phân tán.
Phần tiếp theo sẽ mô tả các cơ chế dùng trong hệ thống cơ sở dữ liệu
phân tán. Rồi sẽ là các mô hình kiến trúc khác nhau để xây dựng môi
trường cơ sở dữ liệu phân tán.
16
- Luận văn tốt nghiệp Nguyễn Văn Duy
1.2. Cơ chế phân tán dữ liệu
Có ba tiếp cận chính về cơ chế phân tán, dùng để quản lý truy nhập
cơ sở dữ liệu; đó là cơ chế tập trung, phân đoạn, và sao chép cơ sở dữ liệu.
1.2.1 Tập trung
Tiếp cận tập trung được dùng với mô hình tập trung vừa trình bày,
trong đó cơ sở dữ liệu không hoàn toàn theo phân bố vật lí. Người ta bảo
quản toàn bộ cơ sở dữ liệu trên một máy tính Server tại trung tâm, và các
thành phần Client chạy trên các máy tính khác để truy nhập máy Server.
Bản thân cơ sở dữ liệu là tập trung dù việc khai thác được tổ chức phân tán.
Với nhiều môi trường làm việc, tiếp cận tập trung là thích hợp. Nó
cho phép tất cả các thao tác cập nhật cơ sở dữ liệu được thực hiện tại chỗ
và không cần nhiều bản sao dữ liệu. Tuy nhiên máy Server trong tiếp cận
này trở nên điểm hay mắc lỗi trong hệ thống. Nếu rủi ro xảy ra tại máy
Server, không ai có thể truy nhập nó.
1.2.2. Phân đoạn
Theo kiểu phân đoạn, một số bản ghi cơ sở dữ liệu được ghi trên một
máy tính, và một số bản ghi khác được ghi trên các máy tính còn lại. Tuy
nhiên theo cách này không phần dữ liệu nào lại ghi ở nhiều chỗ; do vậy cho
phép cơ chế cập nhật trở nên đơn giản hơn.
Người ta dùng nhiều loại phân đoạn dữ liệu, thông thường có thể kể
ra gồm:
Tất cả các bảng đối với bất kỳ cơ sở dữ liệu nào cũng có thể ghi ở
một chỗ; cơ sở dữ liệu khác nhau ghi tại nơi khác nhau. Tất cả các
cơ sở dữ liệu có thể được xử lí bằng cùng phần mềm cơ sở dữ
liệu.
Các bảng khác nhau của cùng một cơ sở dữ liệu có thể được ghi
tại nhiều nơi khác nhau.
Các phần tử dữ liệu tạo nên bảng quan hệ có thể được phân tách,
hoặc theo dòng hoặc theo cột.
Người ta dễ dàng phát hiện ra phần mềm cơ sở dữ liệu tại những nơi
đặt dữ liệu. Bản thân phần mềm cơ sở dữ liệu có thể lưu trữ tất cả thông tin
17
- Luận văn tốt nghiệp Nguyễn Văn Duy
liên quan đến vị trí của dữ liệu, hoặc người ta dùng dịch vụ thư mục toàn
mạng để giúp phần mềm cơ sở dữ liệu định vị những phần khác nhau của
cơ sở dữ liệu.
1.2.3. Bảo sao dữ liệu và trích dữ liệu
Với tiếp cận phân đoạn hay tập trung, không có một bản sao dữ liệu
nào trong cơ sở dữ liệu. Mỗi dữ liệu được ghi chỉ ở một nơi. Hai tiếp cận
phụ dùng để tạo nên nhiều bản sao của toàn bộ hay một phần dữ liệu được
dùng dưới dạng kĩ thuật sau:
Trích dữ liệu. Bản sao cơ sở dữ liệu được gọi là trích (extract)
khi bản sao được dùng với phép đọc. Các giá trị phần tử dữ liệu
trích ra không phục vụ cho mục đích cập nhật.
Bảo sao dữ liệu. Bản sao cơ sở dữ liệu được gọi là sao (replica)
khi giá trị phần tử dữ liệu sao chép dùng được cho mục đích cập
nhật. Khi đó giá trị mới sẽ được cập nhật trong toàn cơ sở dữ liệu,
tức trên cả bản sao khác.
Nhờ kĩ thuật trích và sao dữ liệu, các giá trị dữ liệu của cơ sở dữ liệu
được ghi tại nhiều nơi khác nhau; người ta có thể nâng tính sẵn sàng, giảm
tỉ lệ mất dữ liệu do sai sót và tăng hiệu suất. Tuy nhiên đó lại là nguy cơ
mất bền vững dữ liệu. Có thể sao chép toàn bộ cơ sở dữ liệu hay nếu dùng
kĩ thuật phân đoạn thì người ta có thể sao chép một phần cơ sở dữ liệu.
Để phân biệt khác nhau giữa trích dữ liệu và sao dữ liệu, người ta xét
chi tiết về kĩ thuật này.
1.2.4. Trích dữ liệu
Trích dữ liệu được dùng trong nhiều hoàn cảnh, khi cần phân tán các
bản sao cơ sở dữ liệu trên nhiều nơi. Một trích đoạn dữ liệu có thể là bảo
sao toàn bộ cơ sở dữ liệu, hay chỉ là kết hợp các đoạn riêng.
Các kiểu trích đa dạng trên dữ liệu có thể khác nhau tuỳ theo cơ chế
cho phép chương trình ứng dụng quyết định tính thời sự của thông tin.
Phần trích dữ liệu có thể không kèm thông tin về thời gian của nó, hoặc nó
mang luôn thông tin về thời gian, tổng kiểm tra để phục vụ cho việc đồng
bộ quá trình chung.
1.2.5. Bản sao dữ liệu
18
- Luận văn tốt nghiệp Nguyễn Văn Duy
Bảo sao dữ liệu tương tự như trích dữ liệu, trừ việc bản sao cho phép
cập nhật. Với bản sao, phần mềm cơ sở dữ liệu cần đảm bảo các phần tử dữ
liệu giữ được đồng bộ với các giá trị khác trong cơ sở dữ liệu chính. Vì có
nhiều bản sao giá trị phần tử dữ liệu cho nên phải khẳng định được việc cập
nhật tiến hành đồng thời trên tất cả các bản sao.
Nhiều cơ chế đã hội nhập các bản sao lại. Như vậy một khi bản sao
thay đổi, chỉ một nó được cập nhật. Các giá trị phần tử dữ liệu được cập
nhật trong bản sao này được di về cơ sở dữ liệu chính. Trong trường hợp
khác, phép cập nhật tiến hành với cơ sở dữ liệu chính cũng như với các bản
sao.
Phần mềm cơ sở dữ liệu có thể được thiết kế để lan truyền các thay
đổi đã thực hiện trên bản sao tới các bản sao khác và tới cơ sở dữ liệu một
cách nhanh nhất. Theo một vài lược đồ, bản sao được thiết kế như một bản
sao chính (master replica), còn các bản sao khác được gọi là bản sao phụ
(secondary replica). Phép toán cập nhật cơ sở dữ liệu được coi là hoàn
thành khi mà bản sao chính đã được cập nhật. Thành phần phần mềm cơ sở
dữ liệu ứng với bản sao chính có trách nhiệm truyền tất cả những cập nhật
tới các bản sao phụ sau một khoảng thời gian.
Lược đồ khác dùng hàm hội nhập (convergence funtion) để đồng bộ
hoá bản sao của cơ sở dữ liệu và khẳng định lại tại cơ sở dữ liệu chính.
Hàm hội nhập là hàm phân tán, có các thành phần chạy trên các máy lưu
bản sao. Hàm này có thể chạy thường kì hay đột xuất tuỳ theo yêu cầu hội
nhập trong cơ sở dữ liệu cụ thể.
Phần mềm cơ sở dữ liệu có thể đảm bảo các cơ chế đồng bộ hoá đa
dạng. Người thiết kế cơ sở dữ liệu hay quản trị cơ sở dữ liệu có thể xác
định cơ chế đồng bộ dùng trên cơ sở dữ liệu hay trên vài bản sao. Tất nhiên
dù với hàm đồng bộ hoá nào, không cơ sở dữ liệu phân tán nào đạt được
hoàn toàn đồng bộ tại mọi thời điểm.
1.3. Cập nhật cơ sở dữ liệu có bản sao
Khi tất cả các phần của cơ sở dữ liệu có bản sao thì cơ chế dùng để
hội nhập các bản sao có thể hạn chế theo kiểu cập nhật áp dụng với cơ sở
dữ liệu. Trong môi trường có nhiều bản sao, loại cập nhật đơn giản nhất đối
với hàm hội nhập có các đặc tính sau:
19
- Luận văn tốt nghiệp Nguyễn Văn Duy
Toàn bộ. Cập nhật được gọi là toàn bộ khi nó dùng để bổ sung
phần tử dữ liệu mà không để ý đến bất kỳ cập nhật đã thực hiện
với cập nhật này.
Như cũ. Cập nhật có tính chất như cũ (idempotent) gây cùng một
tác dụng trên cơ sở dữ liệu không lệ thuộc vào nhiều lần áp dụng.
Giao hoán. Một dãy cập nhật là giao hoán nếu kết quả không phụ
thuộc vào thứ tự áp dụng từng phép cập nhật.
Đặc tính cập nhật như cũ và toàn bộ được thể hiện qua một số nhất
định các kiểu phép toán. Chẳng hạn thay thế giá trị phần tử dữ liệu cũ bằng
giá trị mới là toàn bộ và như cũ; còn cập nhật tăng hay giảm giá trị thì
không. Với cập nhật theo kiểu toàn bộ hay như cũ, phần mềm cơ sở dữ liệu
không cần cơ chế đảm bảo thực hiện chỉ một lần phép cập nhật. Chỉ cần
đảm bảo ít nhất thực hiện một lần; đó là vấn đề đơn giản. Một dãy các cập
nhật có thể giao hoán nếu dùng đánh dấu thời gian. Tất cả những cập nhật
có thể gắn với thời điểm cập nhật để người ta sắp xếp lịch thực hiện.
Phép cập nhật toàn bộ, như cũ và giao hoán là các phép dễ quản lý
nhất nhờ thuật toán hội nhập. Nếu phần mềm cơ sở dữ liệu cho phép người
dùng thực hiện cập nhật dữ liệu mà thiếu các tính chất này thì cần sử dụng
cơ chế phức tạp để hội nhập.
1.4. Nhạy cảm về vị trí
Một mục đích của phần mềm cơ sở dữ liệu phân tán là cho phép
người dùng và các chương trình ứng dụng độc lập hoàn toàn về vị trí lưu
trữ dữ liệu. Người dùng có thể yêu cầu dữ liệu rồi chương trình ứng dụng
truy nhập đến dữ liệu mà không để ý đến nơi lưu trữ dữ liệu. Tuy khó đảm
bảo được tính hoàn toàn trong suốt trong hệ thống. Cho đến khi đạt đến độ
trong suốt về các đối tượng, phần mềm cơ sở dữ liệu cần tuân theo các ràng
buộc về cách thức phân đoạn, sao chép và loại hình cập nhật dữ liệu.
1.5. Kết luận về cấu hình cơ sở dữ liệu Client/Server
Mô hình phân tán truy nhập dữ liệu là dạng phân tán Client/Server
đặc biệt sử dụng để hợp nhất các phần mềm cơ sở dữ liệu Client/Server.
Trong mô hình phân tán truy nhập dữ liệu, ba loại thành phần quan trọng
gồm các thành phần xử lí ứng dụng, thành phần phần mềm cơ sở dữ liệu,
và cơ sở dữ liệu. Các thành phần này có thể kết hợp với nhau theo nhiều
20
- Luận văn tốt nghiệp Nguyễn Văn Duy
cách để hình thành mô hình cơ sở dữ liệu tập trung, mô hình cơ sở dữ liệu
máy chủ file, mô hình xử lí trích dữ liệu, mô hình cơ sở dữ liệu
Client/Server và mô hình cơ sở dữ liệu phân tán.
Với tiếp cận tập trung, toàn bộ cơ sở dữ liệu lưu tại một chỗ và chỉ
phân tán với việc truy nhập dữ liệu. Với tiếp cận phân đoạn, các phần của
dữ liệu được lưu tại nhiều nơi để tăng hiệu quả sử dụng. Một đích quan
trọng của phần mềm cơ sở dữ liệu phân tán là đảm bảo chương trình người
dùng độc lập với vị trí của dữ liệu.
Phần tiếp sau đây sẽ xét các kiến trúc khác nhau để phát triển tiện
nghi khi truy nhập cơ sở dữ liệu từ xa và truy nhập cơ sở dữ liệu phân tán
theo phần mềm cơ sở dữ liệu.
2. Kiến trúc phần mềm cơ sở dữ liệu phân tán
Thực hiện hệ thống cơ sở dữ liệu phân tán có thể đơn giản hay phức
tạp. Trong môi trường đồng nhất, các kiểu hệ thống tính toán làm việc trên
cơ sở dữ liệu được điều khiển chặt. Do vậy không mấy vất vả. Một vài lược
đồ phân tán cơ sở dữ liệu được thiết kế trên nền tảng cụ thể, gồm phần
cứng, hệ thống điều hành và phần mềm mạng cân xứng. Chẳng hạn có hệ
thống dùng toàn máy cá nhân dựa trên vi xử lý Intel, với hệ thống điều
hành của Microsoft, hệ điều hành mạng Novell. Do vậy người thiết kế cơ
sở dữ liệu phân tán chuyên tâm vào phần mềm cho môi trường đồng nhất,
các chức năng đơn giản.
Bên cạnh đó, các môi trường không đồng nhất về phần cứng, phần
mềm đòi hỏi người ta có những cố gắng nhiều hơn. Người ta có thể dùng
hệ thống điều hành Apple, IBM, Microsoft, UNIX với vi xử lí Intel,
Motorola... Nhiều giao thức truyền thông đa dạng như TCP/IP, SNA của
IBM, IPX/SPX của NetWere... Chức năng thực hiện của phần mềm cơ sở
dữ liệu phân tán trong môi trường không đồng nhất cần phức tạp hơn
nhiều.
Để tiện tạo nên môi trường cơ sở dữ liệu phân tán không đồng nhất,
người ta dùng ba mô hình kiến trúc phần mềm sau:
Mô hình cổng.
Mô hình giao diện chuẩn.
21
- Luận văn tốt nghiệp Nguyễn Văn Duy
Mô hình giao thức chuẩn.
2.1. Mô hình cổng
Mỗi hệ thống con về phần mềm cơ sở dữ liệu được thiết kế để dùng
giao diện chương trình ứng dụng API cụ thể. Các chương trình ứng dụng
muốn sử dụng dịch vụ của phần mềm cơ sở dữ liệu biết được. Tiện nghi
truy nhập người dùng do nhà cung cấp phần mềm cơ sở dữ liệu giới thiệu
có thể thay thế chương trình ứng dụng trong môi trường mà người ta truy
nhập trực tiếp các tiện nghi phần mềm cơ sở dữ liệu.
Mô hình cổng trong cơ sở dữ liệu phân tán cho phép chương trình
viết theo API của cơ sở dữ liệu đã biết để yêu cầu dịch vụ của phần mềm
cơ sở dữ liệu; phần mềm này trợ giúp cho API khác. Mô hình cổng dựa vào
thành phần cổng để thực hiện giao ước từ một API này đến API khác.
Phần mềm cơ sở dữ liệu
Cơ sở dữ liệu
Giao diện API của cơ sở dữ liệu
Giao diện API của cơ sở dữ liệu
Phương tiện hỏi và lập báo cáo
Hình 6. Mô hình cổng.
Thí dụ:
Người ta viết chương trình ứng dụng để truy nhập cơ sở dữ liệu
ORACLE. Nó truy nhập cổng và cổng này chuyển từ API ORACLE sang
API của cơ sở dữ liệu DB2. Cổng này truy nhập phần mềm cơ sở dữ liệu
DB2 với tư cách Client. Thực tế thì cổng đã đánh lừa cả chương trình ứng
dụng lẫn phần mềm cơ sở dữ liệu. Chương trình ứng dụng nghĩ rằng nó
khai thác cơ sở dữ liệu ORACLE, còn phần mềm cơ sở dữ liệu DB2 tưởng
rằng nó đang phục vụ chương trình ứng dụng DB2.
Cơ sở dữ liệu DB2
Phần mềm cơ sở dữ liệu DB2
Giao diện API của ORACLE
22
Giao diện API của ORACLE
- Luận văn tốt nghiệp Nguyễn Văn Duy
Với kiến trúc truy nhập cơ sở dữ liệu cổng, chương trình ứng dụng
dùng một API. Thành phần phần mềm phân biệt gọi là cổng sẽ chuyển
chương trình từ API này sang API khác để phần mềm cơ sở dữ liệu trên
API khác có thể hiểu chương trình này.
Kiến trúc cổng có thể hỗ trợ bất kì cấu hình cơ sở dữ liệu phân tán
nào. Trong trường hợp đơn giản, chương trình ứng dụng, thành phần cổng,
và phần mềm cơ sở dữ liệu đều được đặt trên cùng một máy tính. Còn với
trường hợp phức tạp, các thành phần đó nằm trên nhiều máy khác nhau.
Trong môi trường phân tán, các thành phần Client truyền thông và
Server truyền thông để truyền dữ liệu trên nhiều máy tính. Với tiếp cận
cổng trong hệ thống phân tán, nhà cung cấp có thể viết phần mềm cổng và
các thành phần Client truyền thông, Server truyền thông. Các thành phần
cổng cần được cắt may cho phù hợp với API của cơ sở dữ liệu cụ thể, và
nhiều người cũng thấy được ưu điểm của chúng và tìm mua. Client truyền
thông và Server truyền thông cần trợ giúp cơ chế truyền thông cụ thể và trợ
giúp cho cả giao thức truyền thông.
Trong mô hình cổng người ta thường để cùng một người thiết kế
thành phần cổng và Client truyền thông, Server truyền thông. Sở dĩ như vậy
là do chưa có chuẩn quản lí các giao diện, dịch vụ và chức năng trong môi
trường này. Nhà cung cấp có thể dùng API của cơ sở dữ liệu hiện có và
ngôn ngữ truy nhập dữ liệu người dùng đang sử dụng. Môi trường cũng có
thể dùng phần mềm cơ sở dữ liệu đã có tuy nó chưa đáp ứng được với cơ
sở dữ liệu phân tán.
Nhà cung cấp có thể thiết kế phần mềm cổng để chương trình viết
theo API của phần mềm cơ sở dữ liệu khác truy nhập được phần mềm cơ
23
- Luận văn tốt nghiệp Nguyễn Văn Duy
sở dữ liệu của họ. Tuy nhiên người ta thường viết phần mềm cho riêng sản
phẩm của họ và chỉ có phần mềm này mới hoàn toàn phù hợp.
Nhiều nhà cung cấp cơ sở dữ liệu phân tán đang dùng mô hình cổng,
do mô hình này đơn giản nhất so với các mô hình khác. Tuy vậy, nếu cài
đặt tuân theo mô hình cổng để truy nhập cơ sở dữ liệu phân tán, người ta có
thể bị gắn sâu vào một tiếp cận của nhà cung cấp.
Cơ sở dữ liệu DB2
Server truyền thông
Phần mềm cơ sở dữ liệu DB2
Client truyền thông
Giao diện API của ORACLE
Cổng ORACLE/DB2
Giao diện API của ORACLE Giao diện API của DB2
Chương trình ứng dụng ORACLE
Server truyền
thông
Giao diện API của DB2
Client truyền thông
Hình 8. Truy nhập cơ sở dữ liệu DB2 qua ORACLE.
2.2. Mô hình giao diện chuẩn
Giống như mô hình cổng, mô hình giao diện chuẩn được thiết kế để
chương trình ứng dụng viết theo API của cơ sở dữ liệu yêu cầu dịch vụ của
phần mềm cơ sở dữ liệu dùng tại API. Phần mềm chạy trên máy Server
được gọi là nguồn dữ liệu. Nguồn này gồm phần mềm cơ sở dữ liệu và
phần mềm máy Server truyền thông. Phần mềm chạy trên máy Client có
nhiều thành phần thiết bị thiết kế cho giao diện với nguồn dữ liệu cụ thể.
24
- Luận văn tốt nghiệp Nguyễn Văn Duy
Phần mềm trên máy Client có thành phần quản trị thiết bị; thành
phần này thực hiện hai giao diện sau:
Giao diện dịch vụ. Đây là API mà các thiết bị sử dụng để lập giao
diện với quản trị thiết bị. Nhà phân phối phần mềm viết thiết bị
cho phù hợp với giao diện dịch vụ để phần mềm cơ sở dữ liệu của
họ giao tiếp được với quản trị thiết bị.
Giao diện chương trình ứng dụng. Đây là API mà chương trình
ứng dụng dùng để yêu cầu dịch vụ cơ sở dữ liệu.
Do sự phụ thuộc vào thiết bị và quản trị thiết bị, mô hình giao diện
đôi khi được gọi là mô hình thiết bị. Mô hình giao diện chuẩn có nhiều
điểm tương tự như mô hình cổng. Khác nhau chính ở chỗ mô hình này phụ
thuộc vào API chuẩn mà tất cả các cơ sở dữ liệu đều dùng. Người ta phát
triển ứng dụng cơ sở dữ liệu muốn tham gia vào môi trường mô hình giao
diện chuẩn cần phải viết chương trình theo API chuẩn hoặc sử dụng phần
mềm chuyển API riêng sang API chuẩn.
2.3. Liên kết cơ sở dữ liệu mở của Microsoft
Để mô hình thiết bị hữu dụng trong môi trường không đồng nhất,
nhiều tổ chức đủ mạnh cần tạo và thông báo về API yêu cầu và chuẩn giao
diện thiết bị. Ngoài ra số lớn người dùng và nhà cung cấp phần mềm cơ sở
dữ liệu cần cam kết tham gia chuẩn này. Trên môi trường máy cá nhân,
Microsoft là tổ chức như vậy.
Hãng này đã xây dựng chuẩn giao diện cơ sở dữ liệu gọi là liên kết
cơ sở dữ liệu mở ODBC (open database connectivity); giao diện này phù
hợp với mô hình giao diện chuẩn. Một số nhà cung cấp phần mềm cơ sở dữ
liệu cho thị trường máy cá nhân đã tạo thiết bị ODBC cho các bộ phần
mềm của họ, và ODBC đã trở thành chuẩn truy nhập cơ sở dữ liệu phân tán
được công nhận cho dịch vụ môi trường máy cá nhân.
Những nhà phát triển ứng dụng lợi dụng tiếp cận ODBC cho cơ sở
dữ liệu phân tán bằng cách phát triển ứng dụng cơ sở dữ liệu mà không
quan tâm đến nguồn dữ liệu chuyên dụng sẽ dùng. Ứng dụng này sẽ làm
việc trên thiết bị của nhà phân phối và trên bất kì nguồn dữ liệu tương thích
nhằm thực hiện kiến trúc ODBC. Những nhà phân phối phần mềm làm như
vậy vì họ chỉ cần cung cấp phần mềm thiết bị phù hợp với những thứ mà họ
đã cam kết cung cấp.
25
nguon tai.lieu . vn