Nhiều ứng dụng hiện tại của công nghệ máy tính đang được phân tán như một hệ quả tất yếu nhằm đáp ứng tốt hơn với việc phân bố ngày càng rộng rãi của các nguồn dữ liệu cần thiết cho các
Trang 1KHOA CÔNG NGHỆ
––––––––––
Đăng Quỳnh Nga
QUẢN LÝ CƠ SỞ DỮ LIỆU TRÊN MẠNG INTERNET BẰNG MÔ HÌNH CƠ SỞ DỮ LIỆU PHÂN TÁN
Chuyên ngành: Công nghệ thông tin
LUẬN VĂN THẠC SĨ
Hà Nội - 2004
Trang 2KHOA CÔNG NGHỆ
––––––––––
Đăng Quỳnh Nga
QUẢN LÝ CƠ SỞ DỮ LIỆU TRÊN MẠNG INTERNET BẰNG MÔ HÌNH CƠ SỞ DỮ LIỆU PHÂN TÁN
Chuyên ngành: Công nghệ thông tin
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS Phạm Văn Ất
Trang 3Mở đầu 3
Chương 1 Tìm hiểu về các hệ cơ sở dữ liệu phân tán 6
1.1 Xử lý dữ liệu phân tán 8
1.2 Hệ cơ sở dữ liệu phân tán là gì? .11
1.3 Triển vọng của các hệ cơ sở dữ liệu phân tán .16
1.3.1 Quản lý dữ liệu phân tán và nhân bản một cách vô hình 16
1.3.2 Độ tin cậy qua các giao dịch phân tán 25
1.3.3 Cải thiện hiệu năng 26
1.3.4 Tính dễ mở rộng 29
1.4 Các yếu tố phức tạp .29
1.5 Một số vấn đề còn tồn tại trong hệ CSDL phân tán .31
1.5.1 Thiết kế CSDL phân tán 31
1.5.2 Xử lý vấn tin phân tán 31
1.5.3 Quản lý thư mục phân tán 32
1.5.4 Điều khiển đồng thời phân tán 32
1.5.5 Quản lý khóa gài phân tán 32
1.5.6 Độ tin cậy của các hệ quản trị CSDL phân tán 33
1.5.7 Hỗ trợ hệ điều hành 33
1.5.8 CSDL đa chủng loại 33
1.5.9 Mối liên hệ giữa các vấn đề 34
Chương 2 Các công nghệ hỗ trợ việc xây dựng phần mềm quản lý cơ sở dữ liệu phân tán 37
2.1 Server .37
2.2 Hệ điều hành .37
2.3 Web Server .38
2.4 Giới thiệu về IIS - Internet Information Server 39
2.4.1 IIS là gì? 39
2.4.2 IIS có thể làm được gì? 39
2.4.3 IIS hoạt động như thế nào ? 39
2.4.4 Cài đặt IIS .39
2.5 Đăng ký Website miễn phí trên Internet .42
2.6 Hệ CSDL quan hệ .45
Trang 42.6.1 SQL Server 45
2.6.2 MySQL .48
Chương 3 Các ngôn ngữ lập trình dùng trong bài toán quản lý trên mạng Internet 49
3.1 Ngôn ngữ định dạng HTML .49
3.1.1 Trang HTML mẫu 49
3.1.2 Các định dạng 50
3.1.3 Đưa hình ảnh vào trang WEB 52
3.1.4 Liên kết và URL 53
3.1.5 Tạo danh sách 53
3.1.6 Bảng 55
3.1.7 Chia trang Web thành các frame 59
3.1.8 Các ô điều khiển để nhập dữ liệu 60
3.1.9 Các nút lệnh 62
3.1.10 Bài trí Form 64
3.2 Ngôn ngữ kịch bản .64
3.2.1 Ngôn ngữ kịch bản VB Script 65
3.2.2 Ngôn ngữ kịch bản JAVA Script 76
3.3 Xây dựng trang web động với ASP .77
3.3.1 Mở đầu 77
3.3.2 Ngôn ngữ ASP 78
3.3.3 Các đối tượng trong ASP 85
3.3.4 Kết nối cơ sở dữ liệu 104
3.4 Vấn đề tiếng Việt trong website 122
Chương 4 Phần mềm thực nghiệm: Quản lý đào tạo từ xa 123
4.1 Phân tích thiết kế 123
4.2 Website 124
4.3 Một số mã nguồn 128
4.3.1 Đăng ký học từ xa 128
4.3.2 Nhập điểm theo lớp, môn 132
Kết luận 137
Trang 5MỞ ĐẦU
Cơ sở dữ liệu nói chung và cơ sở dữ liệu phân tán nói riêng luôn luôn là một lĩnh vực gây được nhiều sự chú ý do tính thực tiễn của nó, và gần đây, do sự phát triển nhanh chóng của công nghệ truyền thông và sự bành trướng mạnh mẽ của mạng Internet, cùng với xu thế toàn cầu hóa trong mọi lãnh vực, đặc biệt là về thương mại, CSDL phân tán đã trở thành một lĩnh vực thu hút nhiều sự quan tâm của các nhà nghiên cứu lý thuyết lẫn các nhà sản xuất phần mềm
Nhiều ứng dụng hiện tại của công nghệ máy tính đang được phân tán như một
hệ quả tất yếu nhằm đáp ứng tốt hơn với việc phân bố ngày càng rộng rãi của các nguồn dữ liệu cần thiết cho các chủ thể khác nhau như xí nghiệp, trường học, viện nghiên cứu Tuy vậy ở Việt Nam chưa có nhiều nghiên cứu về vấn đề xử lý CSDL phân tán để từ đó có thể đưa ra một tài liệu hướng dẫn đầy đủ từ lý thuyết đến thực
tế Xuất pháp từ nhu cầu trên, tôi chọn hướng nghiên cứu về Cơ sở dữ liệu phân tán, trên cơ sở đó xây dựng các bài toán quản lý trên mạng Internet phục vụ nhu cầu rất cần thiết ở Việt Nam hiện nay góp phần phát triển kinh tế, khoa học và công nghệ Nội dung chính của đề tài là
- Tìm hiểu về mô hình cơ sở dữ liệu phân tán
- Giới thiệu các công nghệ, các ngôn ngữ phục vụ cho việc xây dựng một hệ quản lý cơ sở dữ liệu phân tán
- Xây dựng phần mềm thực nghiệm "Quản lý hệ đào tạo từ xa"
Luận văn gồm phần mở đầu, bốn chương và phần kết luận Trong đó:
Chương 1 Tìm hiểu về các hệ cơ sở dữ liệu phân tán - giới thiệu việc xử lý dữ liệu phân tán và bàn về các hệ cơ sở dữ liệu phân tán
Chương 2 Các công nghệ hỗ trợ việc xây dựng phần mềm quản lý CSDL phân tán - giới thiệu về cấu trúc Client/Server và các hệ quản trị cơ sở dữ liệu đang được dùng thông dụng hiện nay
Trang 6Chương 3 Các ngôn ngữ lập trình dùng trong bài toán quản lý trên mạng Internet - Giới thiệu các ngôn ngữ lập trình hiện nay đang được sử dụng để xây dựng phần mềm quản lý CSDL phân tán:
- HTML: Xây dựng các trang web tĩnh
- VB Script, Java Script: là ngôn ngữ kịch bản để xử lý dữ liệu, xử lý các sự kiện trên các mẫu biểu ngay tại User trước khi dữ liệu được gửi về Server
- ASP: Xây dựng trang Web động và kết nối CSDL
Chương 4 Phần mềm thực nghiệm: Quản lý hệ đào tạo từ xa - giới thiệu cách xây dựng một trang web cụ thể
Phần kết luận tổng hợp những kết quả nghiên cứu của luận văn, chỉ ra một số hạn chế chưa hoàn thiện Đồng thời đề xuất một số hướng nghiên cứu cụ thể tiếp theo của tác giả luận văn
Trang 7BẢNG CHÚ GIẢI MỘT SỐ CỤM TỪ VIẾT TẮT
DDBS Distributed Database Systems – Cơ sở dữ liệu phân tán
Hệ quản trị CSDL phân tán
BẢNG CHÚ GIẢI MỘT SỐ THUẬT NGỮ TIẾNG VIỆT
Trang 8CHƯƠNG 1 TÌM HIỂU VỀ CÁC HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN
Công nghệ về các hệ cơ sở dữ liệu phân tán (distributed database systems, DDBS) là sự hợp nhất của hai hướng tiếp cận đối với quá trình xử lý dữ liệu: công nghệ CSDL và công nghệ mạng máy tính Các hệ CSDL chuyển mình từ mô hình
xử lý dữ liệu, trong đó mỗi ứng dụng định nghĩa và duy trì dữ liệu của riêng chúng (Hình l.l), sang mô hình định nghĩa và quản lý dữ liệu tập trung (Hình 1.2) Hướng
đi này đã dẫn đến tính độc lập dữ liệu (data independence), nghĩa là các ứng dụng được
"miễn nhiễm" với những thay đổi về tổ chức logic hoặc vật lý của dữ liệu và ngược lại
Hình 1.1 Mô hình xử lý dữ liệu
Một trong những động lực chủ yếu thúc đẩy việc sử dụng hệ CSDL là nhu cầu tích hợp các dữ liệu của một xí nghiệp và cho phép truy xuất tập trung, nhờ vậy có thể điều khiển được các truy xuất đến dữ liệu Còn công nghệ mạng máy tính đi ngược lại với mọi nỗ lực tập trung hóa Nhìn thoáng qua, chúng ta rất khó hình dung ra làm cách nào tổng hợp hai hướng tiếp cận trái ngược nhau để cho ra một công nghệ mạnh mẽ và nhiều hứa hẹn hơn so với từng công nghệ riêng lẻ Mấu chốt của vấn đề là cần phải hiểu rằng, mục tiêu quan trọng nhất của công nghệ CSDL là
sự tích hợp (integratior), không phải sự tập trung hóa (centralization) Cũng cần
phải hiểu rằng giữa hai thuật ngữ, có được điều này không dẫn đến điều kia Và vẫn
có thể có tích hợp mà không cần tập trung hóa Đây chính là mục tiêu của công nghệ cơ sở dữ liệu phân tán
Trang 9Chúng ta sẽ bắt đầu bằng cách nghiên cứu về các hệ thống phân tán nói chung, qua đó nêu bật được vai trò của công nghệ CSDL trong quá trình xử lý dữ liệu phân tán rồi chuyển sang các đề tài có liên quan trực tiếp đến các hệ cơ sở dữ liệu
Trang 10Hình 1.2 Quản lý dữ liệu tập trung
1.1 Xử lý dữ liệu phân tán
Thuật ngữ xử lý phân tán [7] (distributed processing) hoặc tính toán phân tán
(distributed computing) trong vài năm trở lại đây có lẽ là một thuật ngữ bị lạm dụng nhiều nhất trong ngành khoa học máy tính Nó đã được dùng để đề cập đến các hệ
thống rải rác như các hệ đa bộ xử lý (multiprocessor system), công việc xử lý dữ
liệu phân tán và mạng máy tính Sự lạm dụng này vẫn tiếp tục trong một phạm vi
mà đôi khi thuật ngữ xử lý phân tán được xem như một khái niệm trong khi đang
tìm kiếm một định nghĩa và một tên thích hợp Một số thuật ngữ khác cũng được
xem như đồng nghĩa với thuật ngữ này, chẳng hạn như chức năng phân tán
(distributed function), mạng phân tán (distributed network), …
Rõ ràng, trong một chừng mực nào đó, việc xử lý phân tán đã thể hiện trong
một số hệ thống máy tính, kể cả trong các máy tính đơn bộ xử lý (single-processor
computer)
Ngay từ các máy tính thế hệ thứ hai, đơn vị xử lý trung tâm CPU
(Central Proccessing Unit) và các chức năng xuất nhập (Input/output function) đã
được tách riêng nhưng vẫn đan quyện vào nhau Sự tách biệt và đan quyện này có thể được xem như một dạng xử lý phân tán Tuy nhiên cũng cần nhận ra rằng điều
mà chúng ta xem là xử lý phân tán ở đây không phải là hình thức phân bổ chức năng trên một hệ thống đơn bộ xử lý
Một thuật ngữ đã gây nhiều nhầm lẫn sẽ rất khó định nghĩa chính xác Có một
số cố gắng nhằm định nghĩa việc xử lý phân tán một cách cụ thể và hầu như mỗi nhà nghiên cứu đều đưa ra một định nghĩa riêng Trong luận văn này, chúng tôi định nghĩa xử lý phân tán theo một cách mà được nhiều tác giả dùng hơn cả để có thể
dẫn đến một định nghĩa về hệ CSDL phân tán Định nghĩa của chúng tôi cho một hệ
Trang 11chủng loại) được liên kết bởi một mạng máy tính và hiệp đồng thực hiện các tác vụ
mà chúng được phân công Các bộ phận xử lý muốn nói đến trong định nghĩa này là các thiết bị tính toán có thể chạy được một chương trình trên chính nó
Câu hỏi cơ bản đƣợc đặt ra là: Những gì được phân tán? Một trong những
cái có thể được phân tán là thiết bị xử lý Thực tế, định nghĩa về hệ thống tính toán
phân tán được trình bày ở trên đã ngầm giả sử rằng các bộ phận xử lý được phân
tán Một kiểu phân tán nữa là chức năng Nhiều chức năng của hệ thống máy tính
có thể được chuyển giao cho các thành phần phần cứng và phần mềm Kiểu thứ ba
là theo dữ liệu Dữ liệu được dùng bởi một số ứng dụng có thể được phân tán cho một số vị trí xử lý Cuối cùng là quyền điều khiển (control) cũng có thể phân tán
Quyền điều khiển việc thực hiện một số tác vụ có thể được phân tán thay vì được thực hiện bởi một hệ thống máy tính Từ góc độ của hệ CSDL phân tán, những kiểu phân tán này đều cần thiết và quan trọng
Các hệ thống xử lý phân tán có thể được phân loại dựa vào một số chuẩn Bochmann đã liệt kê một số chuẩn này như sau: mức độ kết nối, cấu trúc tương giao, sự liên đới giữa các thành phần, và sự đồng bộ hóa giữa các thành phần
[Bochmann, 1983] Mức độ kết nối (degree of coupling) muốn nói đến một đơn vị
đo lường nhằm xác định xem các thành phần xử lý được nối kết chặt chẽ với nhau đến mức độ nào Nó có thể được xem là tỷ lệ giữa số lượng dữ liệu được trao đổi so với số lượng xử lý cục bộ được thực hiện trong một tác vụ Nếu quá trình truyền dữ liệu (truyền thông) được thực hiện trên một mạng máy tính thì chúng ta nói có một
kết yếu (weak coupling) giữa các phần tử xử lý Tuy nhiên nếu các thành phần được
dùng chung chúng ta gọi là kết chặt (strong coupling) Các thành phần dùng chung
có thể là bộ nhớ chính hoặc các thiết bị nhớ thứ cấp Còn về cấu trúc tương giao
(interconnection structure), người ta đề cập đến những trường hợp tương giao điểm giữa các bộ phận xử lý, trái với những trường hợp sử dụng một kênh tương giao chung Các bộ phận xử lý có thể phụ thuộc nhiều vào những bộ phận xử lý khác khi thực thi một tác vụ, hoặc sự phụ thuộc qua lại này (sự liên đới) có thể chỉ
điểm-là việc truyền thông báo khi bắt đầu thực thi và ghi nhận kết quả lúc kết thúc Việc
đồng bộ hoá (synchronization) giữa các bộ phận xử lý có thể được duy trì bằng
phương thức đồng bộ (synchronous) hoặc không đồng bộ (asynchronous) Chú ý
rằng một số trong các chuẩn này không hoàn toàn độc lập với nhau Chẳng hạn nếu
Trang 12việc đồng bộ hóa giữa các bộ phận xử lý thuộc kiểu đồng bộ, chúng ta hy vọng rằng các bộ phận xử lý sẽ hầu như liên đới mật thiết và có thể hoạt động theo kiểu kết chặt
Một câu hỏi hợp lý khác đƣợc đặt ra là: Tại sao chúng ta lại thực hiện phân tán? Nhiều câu trả lời kinh điển cho câu hỏi này đã chỉ ra rằng việc xử lý
phân tán là nhằm thích ứng tốt hơn với việc phân bố ngày càng rộng rãi của các công ty, xí nghiệp, đồng thời một hệ thống như thế phải có độ tin cậy cao hơn và có khả năng đáp ứng tốt hơn Quan trọng hơn, nhiều ứng dụng hiện tại của công nghệ máy tính được phân tán như một hệ quả tất yếu Thương mại điện tử trên Internet, các ứng dụng đa phương tiện nhờ việc cung cấp tin tức theo yêu cầu, các kỹ thuật chẩn đoán hình ảnh trong y khoa hoặc các hệ thống điều khiển sản xuất đều là những minh họa cho ứng dụng phân tán
Tuy nhiên từ góc độ tổng thể hơn, chúng ta có thể khẳng định rằng lý do cơ
bản của việc xử lý phân tán là do nó có thể giải quyết tốt hơn các bài toán lớn và
phức tạp mà chúng ta gặp phải hiện nay bằng cách sử dụng qui tắc cổ điển "chia để trị" đã được biết từ lâu Nếu việc hỗ trợ bằng phần mềm cần cho vấn đề xử lý phân
tán phát triển được, thì có thể giải các bài toán này một cách đơn giản là chia nhỏ chúng ra và gán chúng cho các nhóm phần mềm được chạy trên các máy tính khác nhau, tạo ra một hệ thống chạy trên nhiều bộ phận xử lý nhưng có thể hoạt động hiệu quả nhằm thực thi một tác vụ chung nào đó
Từ quan điểm kinh tế, cách tiếp cận này có hai ưu điểm cơ bản Trước tiên việc tính toán phân tán cung cấp một phương pháp kinh tế nhằm tận dụng được sức mạnh tính toán bằng cách sử dụng nhiều bộ phận xử lý một cách tối ưu Nó đòi hỏi phân tích nghiên cứu về các hệ thống phân tán, và cả những hệ thống xử lý song song Bằng việc giải quyết bài toán theo từng nhóm hoạt động khá độc lập, chúng ta
có thể kiểm soát được chi phí phát triển phần mềm Thực sự chúng ta đều biết rằng chi phí phần mềm đã tăng ngược lại với chi phí của phần cứng
Các hệ CSDL phân tán cũng có thể được xem xét trong khuôn khổ của bộ khung này và được xử lý như những công cụ có thể làm cho việc xử lý phân tán dễ dàng và hiệu quả hơn Chúng ta có thể phác họa tính chất tương đồng giữa những gì
mà các hệ CSDL phân tán có thể hỗ trợ cho việc xử lý dữ liệu với những gì mà công
Trang 13tán đa mục đích, dễ áp dụng và có hiệu quả sẽ giúp rất nhiều cho việc phát triển các phần mềm phân tán
1.2 Hệ cơ sở dữ liệu phân tán là gì? [7, 14]
Chúng ta có thể định nghĩa một CSDL phân tán là một tập hợp nhiều CSDL
có liên đới logic và được phân bố trên một mạng máy tính Thế thì hệ quản trị cơ
sở dữ liệu phân tán (distributed database management system, viết tắt là distributed
DBMS) được định nghĩa là một hệ thống phần mềm cho phép quản lý các hệ CSDL
phân tán và làm cho việc phân tán trở nên "vô hình" đối với người sử dụng Hai
thuật ngữ quan trọng trong các định nghĩa này là "liên đới logic" và "phân bố trên
một mạng máy tính" Chúng loại bỏ một số trường hợp đôi khi được thừa nhận là
biểu thị cho một hệ CSDL phân tán
Trước tiên một hệ cơ sở dữ liệu phân tán (distributed database system, viết tắt
là DDBS) không phải là tập hợp các tập tin được lưu trữ riêng lẻ tại mỗi nút của
một mạng máy tính Để tạo ra một hệ CSDL phân tán, các tập tin không chỉ có liên
đới logic mà chúng còn phải có cấu trúc và được truy xuất qua một giao diện chung Chúng ta cần nhấn mạnh rằng gần đây đang có nhiều nỗ lực cung cấp các
đặc thù chức năng của DBMS trên các dữ liệu bán cấu trúc (semi-structured data), được lưu trong các tập tin trên Internet (chẳng hạn như các trang web) Với hiện thực đó, đòi hỏi ở trên dường như khắt khe một cách không cần thiết
Hình 1.3 Hệ đa bộ xử lý có bộ nhớ chung
Đôi khi chúng ta giả thiết rằng việc phân bố vật lý của các dữ liệu không phải
là vấn đề quyết định Đưa ra quan điểm này có thể tạo thoải mái khi gán cho hai
Đơn vị xử lý Đơn vị xử lý Đơn vị xử lý
Hệ thống xuất nhập
Bộ nhớ
Trang 14CSDL (có liên hệ) hiện hữu trên cùng một hệ thống máy tính là một CSDL phân tán Tuy nhiên việc phân bố vật lý của các dữ liệu vẫn hết sức quan trọng Nó làm nảy sinh những vấn đề không hề gặp phải khi dữ liệu được lưu trên cùng một máy tính Chú ý rằng phân bố vật lý không nhất thiết là các hệ thống máy tính phải tách biệt nhau về mặt địa lý thực sự chúng có thể ở trong cùng một phòng Nó chỉ khẳng định một điều là việc giao tiếp giữa chúng được thực hiện trên một mạng thay vì qua bộ nhớ chung, với mạng được xem là tài nguyên dùng chung duy nhất
Điều này lại dẫn đến một vấn đề khác Định nghĩa trên cũng loại bỏ các hệ thống đa bộ xử lý ra khỏi nhóm các hệ CSDL phân tán Một hệ đa bộ xử lý nói chung được xem như một hệ thống có hai hoặc nhiều bộ xử lý cùng dùng chung một
dạng bộ nhớ nào đó, hoặc là bộ nhớ chính và khi đó được gọi là có bộ nhớ chung
(shared memory) (Hình 1.3), hoặc dùng chung bộ nhớ thứ cấp và khi đó được gọi là
có đĩa chung (shared disk)
Hình 1.4 Hệ đa bộ xử lý có đĩa chung
Trong ngữ cảnh này, chúng ta cần đưa ra một phân biệt nữa, đó là phân biệt
giữa kiến trúc sở hữu tập thể (sharedeverything) và kiến trúc sở hữu cá nhân
(shared-nothing) Mô hình thứ nhất cho phép mỗi bộ xử lý truy xuất được mọi tài
Trang 15lý giao tiếp với nhau mà không cần phải trao đổi các thông báo Kiến trúc sở hữu cá nhân (Hình l.5) là kiến trúc mà trong đó mỗi bộ xử lý có riêng bộ nhớ chính, bộ nhớ
thứ cấp và các thiết ngoại vi, trao đổi với các bộ xử lý khác qua các kênh truyền tốc
độ cao Theo nghĩa này các hệ thống đa bộ xử lý sở hữu cá nhân rất giống với môi trường phân tán sẽ được phân tích ở phần sau Tuy nhiên có nhiều khác biệt giữa các tương tác trong kiến trúc đa bộ xử lý và các tương tác kém rất thường gặp trong môi trường tính toán phân tán Sự khác biệt cơ bản là thể thức hoạt động Thiết kế một hệ thống đa bộ xử lý khá đối xứng bao gồm một số bộ xử lý và các thành phần
bộ nhớ đồng nhất, được điều khiển bởi một hoặc nhiều bản sao của cùng một hệ điều hành, chịu trách nhiệm kiểm soát chặt chẽ việc phân công tác vụ cho mỗi bộ
xử lý Trong môi trường tính toán phân tán, điều này không đúng do tính đa chủng của các hệ điều hành cũng nhờ phần cứng
Hình 1.5 Hệ đa bộ xử lý sở hữu cá nhân
Ngoài ra một hệ CSDL phân tán không phải là hệ thống mà trong đó, dù có sự hiện diện của một mạng máy tính, CSDL lại chỉ nằm tại một nút của mạng (Hình 1.6) Trong trường hợp này, vấn đề quản trị CSDL không khác với việc quản trị CSDL trong môi trường tập trung CSDL này được quản lý tập trung tại một hệ
Trang 16thống máy tính (Trạm 2 trong Hình 1.6) và tất cả mọi yêu cầu đều được chuyển đến
vị trí đó Điều cần xem xét duy nhất là sự chậm trễ khi truyền dữ liệu Hiển nhiên là
sự tồn tại của một mạng máy tính hoặc một tập các tập tin không đủ để tạo ra một
hệ CSDL phân tán Điều mà chúng ta quan tâm là một môi trường trong đó dữ liệu được phân tán trên một số vị trí
Hình 1.6 CSDL trung tâm trên một mạng
Trang 17Hình 1.7 Môi trường của hệ CSDL phân tán
Trang 181.3 Triển vọng của các hệ cơ sở dữ liệu phân tán [7, 14]
Nhiều ưu điểm của CSDL phân tán đã được nói đến trong nhiều tài liệu chuyên ngành từ lý do xã hội của việc phi tập trung [Doliviera, 1977] đến hiệu quả kinh tế của nó Tất cả những lý do này đề có thể được phân làm bốn nhóm cơ bản, được xem là triển vọng đầy hứa hẹn của công nghệ CSDL phân tán
1.3.1 Quản lý dữ liệu phân tán và nhân bản một cách vô hình
Đặc tính vô hình muốn nói đến sự tách biệt về ngữ nghĩa ở cấp độ cao của một
hệ thống với các vấn đề cài đặt ở cấp độ thấp Nói cách khác, một hệ thống vô hình
sẽ "che khuất" các chi tiết cài đặt, không cho người dùng "nhìn thấy" Ưu điểm của một DBMS vô hình hoàn toàn là mức độ hỗ trợ cao mà nó cung cấp cho việc phát triển các ứng dụng phức tạp Rõ ràng là chúng ta mong muốn làm cho tất cả các DBMS (tập trung và phân tán) đều vô hình hoàn toàn
Chúng ta hãy bắt đầu bằng một thí dụ Một công ty điện toán có các văn phòng
ở Boston, Edmonton, Paris và San Francisco Họ có một số dự án (project) được thực hiện tại mỗi nơi này và muốn duy trì một CSDL về nhân viên (employee), dự
án và các dữ liệu có liên quan khác Giả sử rằng CSDL này thuộc loại quan hệ, và
có thể lưu những thông tin này vào hai quan hệ: EMP(ENO, ENAME, TITLE)1
và PROJ(PNO, PNAME, BUDGET) Chúng ta cũng có một quan hệ lưu thông tin về lương: PAY(TITLE, SAL) và quan hệ ASG cho biết những nhân viên nào đã được phân công cho dự án nào, trong thời gian nào và với nhiệm vụ gì: ASG(ENO, PNO, DUR, RESP) Nếu tất cả mọi dữ liệu được lưu trong một hệ tập trung, và khi muốn tìm tên và lương của các nhân viên đã làm việc cho một dự án trên 12 tháng, chúng
ta sẽ mô tả điều này qua câu vấn tin SQL sau đây:
SELECT ENAME, SAL
FROM EMP, ASG, PAY
WHERE ASG DUR > 12
AND EMP ENO = ASG ENO
AND PAY TITLE = EMP TITLE
1
Các thuộc tính được viết tắt là ENO (employee number, mã số nhân viên), ENAME(employee name, tên
Trang 19Tuy nhiên do tính chất phân tán của công việc kinh doanh của công ty, trong tình huống này, người ta mong muốn đặt mỗi dữ liệu sao cho dữ liệu về các nhân viên của văn phòng ở Edmonton được lưu ở Edmonton, của Boston được lưu ở Boston, Mong muốn tương tự cũng có đối với thông tin về dự án và lương Vì vậy điều chúng ta mong muốn là có một quá trình phân hoạch2
mỗi quan hệ này và
lưu mỗi phân hoạch tại một vị trí khác nhau Quá trình này được gọi là quá trình
phân mảnh (fragmentation)
Hơn nữa, người ta cũng mong muốn sao chép một phần dữ liệu này tại những
vị trí khác nhau, vì các lý do hiệu quả hoạt động (hiệu năng) và độ tin cậy (độ khả tín) Kết quả của yêu cầu này là một CSDL phân tán, được phân mảnh và nhân bản
(Hình 1.8) Truy xuất vô hình hoàn toàn có nghĩa là người sử dụng vẫn có thể đưa
ra các câu vấn tin nhờ đã viết ở trên mà không phải quan tâm đến việc phân mảnh, định vị hoặc nhân bản dữ liệu, và để cho hệ thống lo giải quyết các vấn đề này
tập tách biệt Khi đó mỗi tập con này được gọi là một phân hoạch Thí dụ, một quan hệ tương đơng R
Paris
San Francisco
Edmonton
Nhân viên ở Paris Nhân viên ở Boston
Dự án ở Edmonton
Dự án ở Paris
Trang 20 Sự độc lập dữ liệu
Độc lập dữ liệu là một dạng vô hình cơ bản cần có trong một hệ DBMS Đây cũng là loại duy nhất có vai trò quan trọng trong ngữ cảnh các DBMS tập trung Sự độc lập dữ liệu liên quan đến khả năng "miễn nhiễm" của các ứng dụng đối với những thay đổi trong định nghĩa và tổ chức của dữ liệu, và ngược lại
Định nghĩa dữ liệu có thể xuất hiện ở hai mức Một mức là đặc tả cấu trúc logic của dữ liệu, còn mức kia định nghĩa cấu trúc vật lý của dữ liệu Mức logic
thường được xem là định nghĩa lược đồ (schema definition), còn mức vật lý được gọi là mô tả dữ liệu vật lý (physical data description) Do vậy chúng ta có thể nói đến hai loại độc lập dữ liệu: độc lập dữ liệu logic và độc lập dữ liệu vật lý Độc lập
dữ liệu logic (logical data independence) muốn nói đến tính "miễn nhiễm" của
các ứng dụng đối với những thay đổi trong cấu trúc logic của CSDL Tổng quát, nếu một ứng dụng hoạt tác trên một tập con thuộc tính của một quan hệ, nó sẽ không bị ảnh hưởng khi thêm các thuộc tính mới vào quan hệ Chẳng hạn như quan hệ EMP
ở trên Nếu một ứng dụng chỉ xử lý trường address (địa chỉ) của quan hệ này (có thể
là một chương trình gửi thư đơn giản) thì về sau nếu thêm một trường mới vào,
chẳng hạn trường skill, thì nó sẽ không có ảnh hưởng gì đến ứng dụng này
Độc lập dữ liệu vật lý lo che dấu các chi tiết về cấu trúc lưu trữ Ứng dụng, khi được viết, sẽ không quan tâm đến chi tiết tổ chức dữ liệu vật lý Dữ liệu có thể được
tổ chức trên nhiều loại đĩa khác nhau, và các phần có thể được tổ chức theo những phương thức khác nhau (thí dụ như truy xuất tuần tự theo chỉ mục hoặc ngẫu nhiên), thậm chí có thể được phân bố trên các hệ thống lưu trữ khác nhau (đĩa, băng từ) Ứng dụng không bị "lôi kéo" vào những vấn đề này bởi vì về khái niệm, không hề
có sự khác biệt gì trong các thao tác được thực hiện trên dữ liệu Do vậy không cần phải hiệu chỉnh lại ứng dụng khi có các thay đổi về cách tổ chức dữ liệu Tuy nhiên hiểu biết về những thay đổi sẽ giúp ích cho việc đánh giá hiệu năng hệ thống
Vô hình kết mạng
Trong các hệ CSDL tập trung, tài nguyên có sẵn duy nhất cần được "bọc" lại
là dữ liệu (đó là hệ thống lưu trữ) Tuy nhiên, trong môi trường quản trị CSDL phân tán, có một tài nguyên nữa cũng cần phải quản lý bằng một cách gần như thế, đó là
Trang 21của mạng nếu được Khi đó sẽ không có sự khác biệt nào giữa các ứng dụng CSDL chạy trên một CSDL tập trung và các ứng dụng chạy trên các CSDL phân tán Kiểu
vô hình này thường được xem là vô hình kết mạng (network transparency) hoặc vô
hình phân bố (distribution transparency)
Người ta có thể xem xét đặc tính vô hình kết mạng từ quan điểm các dịch vụ được cung cấp hoặc từ quan điểm dữ liệu Đối với các dịch vụ, người ta mong muốn
có một phương tiện thống nhất để truy xuất chúng Từ quan điểm của hệ quản trị CSDL, vô hình phân bố đòi hỏi rằng người dùng không phải đặc tả vị trí lưu trữ dữ liệu Cũng có quan điểm phân chia tính vô hình phân bố thành hai loại: vô hình vị
trí và vô hình đặt tên Vô hình vị trí (location transparency) liên quan đến sự kiện là
lệnh được dùng để thực hiện một tác vụ phải độc lập với cả vị trí dữ liệu lẫn hệ
thống thực hiện lệnh Vô hình đặt tên (naming transparency) đòi hỏi phải cung cấp
một tên duy nhất cho mỗi đối tượng CSDL Khi không có tính vô hình đặt tên, người sử dụng bị buộc phải gắn tên vị trí (hoặc một định danh) làm thành phần của tên đối tượng
Vô hình nhân bản
Vì những lý do về hiệu năng (performance), độ tin cậy (reliability) và tính sẵn
sàng (availability), người ta thường mong muốn rằng có thể phân bố dữ liệu theo lối
nhân dữ liệu thành nhiều bản (nhân bản) trên các máy của mạng Việc nhân bản như thế giúp tăng hiệu năng bởi vì những yêu cầu sử dụng có xung đột và nằm rải rác có thể được đáp ứng một cách dễ dàng Thí dụ, dữ liệu thường được một người sử dụng truy xuất có thể được đặt tại máy của người đó và trên máy của những người
sử dụng khác có cùng nhu cầu truy xuất, nhờ thế làm tăng khu vực tham chiếu
Ngoài ra nếu một máy phải ngừng hoạt động, một bản sao (replica) khác của dữ
liệu vẫn có sẵn trên một máy khác của mạng Dĩ nhiên đây là sự mô tả còn quá đơn giản về tình huống này Thực tế, việc quyết định xem có nhân bản hay không, và cần phải có bao nhiêu bản của một đối tượng, đều phụ thuộc nhiều vào các ứng dụng Chú ý rằng việc nhân bản sẽ gây khó khăn khi cập nhật CSDL Vì thế nếu các ứng dụng có yêu cầu cập nhật thường xuyên thì việc tạo ra nhiều bản sao của dữ liệu không phải là một giải pháp tốt
Giả sử rằng dữ liệu được nhân bản, vấn đề có liên quan đến sự vô hình cần được xem xét đó là người sử dụng có biết được sự tồn tại của các bản sao hay chính
Trang 22hệ thống phải lo quản lý các bản sao còn người sử dụng hành xử giống như chỉ có một bản duy nhất (chú ý rằng chúng ta không đề cập đến vị trí đặt các bản sao mà chỉ là sự tồn tại của chúng) Từ quan điểm người sử dụng, câu trả lời hoàn toàn rõ ràng Người ta không muốn phải xử lý các bản sao và phải xác định rõ một hành động có thể hoặc/và phải được thực hiện trên nhiều bản sao Tuy nhiên từ quan điểm hệ thống, câu trả lời không phải giản đơn Khi ủy thác cho người sử dụng trách nhiệm xác định xem hành động nào cần phải thực hiện trên nhiều bản sao, quản lý giao dịch sẽ đơn giản hơn cho các hệ DBMS phân tán Nhưng ngược lại nó làm mất đi độ linh hoạt của hệ thống Không phải chính hệ thống quyết định xem có phải nhân bản hay không và cần phải tạo ra bao nhiêu bản sao mà do các ứng dụng quyết định Thay đổi những quyết định này vì nhiều vấn đề khác nhau đều ảnh hưởng đến ứng dụng và vì thế giảm đi tính độc lập dữ liệu Do đó, người ta mong rằng tính vô hình nhân bản sẽ được cung cấp như một đặc điểm chuẩn của DBMS Cần nhớ ràng đặc tính vô hình nhân bản chỉ đề cập đến sự tồn tại của các bản sao chứ không phải vị trí thực sự của chúng Cũng cần chú ý rằng việc phân bố các bản sao trên mạng theo phương thức vô hình nằm trong phạm vi của vấn đề vô hình kết mạng
Vô hình phân mảnh
Dạng vô hình cuối cùng cần phải thảo luận trong ngữ cảnh của các hệ CSDL
phân tán là vô hình phân mảnh (fragmentation transparency) Người ta có nhu cầu tách mỗi quan hệ thành các thành dữ liệu (fragment) nhỏ hơn và xử lý mỗi mảnh
này như một đối tượng CSDL độc lập (nghĩa là như một quan hệ) Thông thường nó được thực hiện vì những lý do về hiệu năng, tính sẵn sàng và độ tin cậy Hơn nữa việc phân mảnh có thể làm giảm đi các tác dụng không mong muốn của việc nhân bản Mỗi bản sao khi đó không phải là một quan hệ đầy đủ mà chỉ là một tập con của nó; như thế cần ít chỗ để lưu trữ và ít công sức quản lý các mục dữ liệu
Có hai kiểu chọn lựa phân mảnh tổng quát Một là phân mảnh ngang
(horizontal fragmentation), trong đó một quan hệ được phân hoạch thành một tập
các quan hệ con (subrelation), mỗi quan hệ này chứa một tập con các bộ (các hàng) của quan hệ ban đầu Chọn lựa thứ hai là phân mảnh dọc (vertical fragmentation)
trong đó mỗi quan hệ con được định nghĩa trên một tập con các thuộc tính (các cột)
Trang 23Khi các đối tượng CSDL bị phân mảnh, chúng ta phải có cách xử lý các vấn tin của người sử dụng, tuy được đặt ra trên toàn bộ quan hệ nhưng bây giờ phải được thực hiện trên các quan hệ con Nói cách khác, vấn đề là tìm ra một chiến lược
xử lý vấn tin dựa trên các mảnh chứ không phải trên quan hệ, dù rằng câu vấn tin
được đặt ra trên quan hệ Thông thường nó đòi hỏi phải dịch câu vấn tin toàn cục (global query) thành nhiều câu vấn tin theo mảnh (fragment query)
Ai sẽ cung cấp các đặc tính vô hình
Trong những phần trước chúng ta đã thảo luận một số dạng vô hình khác nhau trong môi trường tính toán phân tán Rõ ràng là để tạo dễ dàng cho những người sử dụng không chuyên truy nhập các dịch vụ của DBMS, người ta muốn đạt được tính
vô hình hoàn toàn, bao gồm tất cả các kiểu đã trình bày ở trên Tuy nhiên, mức độ
vô hình cần phải được cân nhắc giữa tính dễ sử dụng với tính phức tạp và chi phí cao khi cung cấp các mức độ vô hình
Vấn đề chưa được thảo luận là ai sẽ là người chịu trách nhiệm cung cấp những dịch vụ vô hình này? Chúng ta có thể định rõ ba tầng có thể cung cấp các dịch vụ vô hình Thường thì chúng được xử lý như những phương tiện độc lập, mặc dù sẽ đúng hơn khi xem như chúng bổ trợ lẫn thau
Chúng ta có thể trao trách nhiệm cung cấp tính vô hình khi truy xuất đến các
tài nguyên cho tầng truy xuất (access layer) Những đặc tính vô hình có thể được cài
hẳn vào trong ngôn ngữ của người dùng, chúng sẽ dịch các dịch vụ được yêu cầu thành các thao tác cần thiết Nói cách khác, trình biên dịch hoặc trình thông dịch sẽ nhận trách nhiệm này và không có dịch vụ vô hình nào được cung cấp cho người xây dựng trình biên dịch hay trình thông dịch
Tầng thứ hai có thể có cung cấp dịch vụ vô hình là ở cấp độ hệ điều hành Các
hệ điều hành hiện đại có hỗ trợ một mức độ vô hình cho người sử dụng hệ thống
Chẳn hạn các trình điều khiển thiết bị (device driver) trong hệ điều hành sẽ lo xử lý
các chi tiết khi tiếp nhận thêm các thiết bị ngoại vi Người sử dụng, hoặc thậm chí
cả lập trình viên ứng dụng, thường không phải viết các trình điều khiển thiết bị để tương tác với từng thiết bị; công việc này hoàn toàn vô hình đối với người sử dụng3
Trang 24Cung cấp đặc tính vô hình khi truy xuất các tài nguyên ở cấp độ hệ điều hành
có thể được mở rộng ra cho môi trường phân tán, trong đó việc quản lý tài nguyên mạng là trách nhiệm của hệ điều hành phân tán Đây chính là nơi cung cấp đặc tính
vô hình kết mạng rất tốt nếu nó có thể đảm nhận được Điều không may là không phải tất cả mọi hệ điều hành phân tán hiện có trên thị trường đều có thể cung cấp một mức vô hình hợp lý cho việc quản trị mạng
Tầng thứ ba có thể hỗ trợ đặc tính vô hình là hệ quản trị CSDL Tính vô hình
và việc hỗ trợ các chức năng CSDL cho các nhà thiết kế DBMS từ hệ điều hành là hết sức hạn chế và thông thường chỉ là một số thao tác cơ bản cần để thực hiện một
số nhiệm vụ nào đó Nhiệm vụ của DBMS là phải thực hiện các quá trình phiên dịch cần thiết từ hệ điều hành sang giao diện cấp cao của người sử dụng Kiểu hoạt động này là phương pháp thông dụng nhất hiện nay Tuy nhiên cũng có nhiều vấn
đề đi kèm với việc trao cho DBMS nhiệm vụ cung cấp đặc tính vô hình hoàn toàn
Vì thế, điều quan trọng cần nhận ra rằng, mức độ vô hình hợp lý phụ thuộc vào nhiều thành phần khác nhau trong môi trường quản trị CSDL Vô hình kết mạng có thể dễ dàng được xử lý bởi hệ điều hành phân tán, xem đó là một trong những nhiệm vụ cung cấp tính vô hình nhân bản và phân mảnh (đặc biệt là các khía cạnh có liên quan đến việc quản lý và khôi phục giao dịch) DBMS phải có nhiệm
vụ cung cấp một mức độ độc lập dữ liệu cao cùng với các đặc tính vô hình nhân bản
và phân mảnh Cuối cùng giao diện người sử dụng có thể hỗ trợ đặc tính vô hình ở mức độ cao hơn nữa, không chỉ ở phương pháp truy xuất thống nhất đến các tài nguyên dữ liệu qua một ngôn ngữ mà còn qua các kết cấu của ngôn ngữ cho phép người sử dụng xử lý các đối tượng trong môi trường của họ mà không phải quan tâm đến các chi tiết trong mô tả CSDL Một điều cần đặc biệt chú ý là giao diện với DBMS phân tán không nhất thiết là một ngôn ngữ lập trình nhưng có thể là một giao diện đồ họa (GUI), giao diện của ngôn ngữ tự nhiên và ngay cả bằng tiếng nói
Một hình ảnh phân cấp các đặc tính vô hình được trình bày trong Hình 1.9 Không phải lúc nào chúng ta cũng có thể phân định rõ ràng các mức vô hình nhưng hình ảnh này có thể được xem như một hướng dẫn quan trọng, dù rằng nó không
Trang 25quát này, người sử dụng có thể truy xuất đến dữ liệu dưới dạng trừu tượng hóa cao (thí dụ nhờ ngôn ngữ thế hệ thứ tư, giao diện người và ứng dụng đồ họa GUI, truy xuất bằng ngôn ngữ tự nhiên, …)
Trang 26Hình 1.9 Các tầng vô hình
Còn các hệ thống hiện tại?
Phần lớn các DBMS phân tán thương mại hiện đã bắt đầu cung cấp một số mức độ vô hình Điển hình chúng cung cấp được tính vô hình phân bổ, hỗ trợ việc phân mảnh ngang và một dạng vô hình nhân bản Mức độ này chỉ mới gần đây thôi Phần lớn các hệ DBMS phân tán trên thị trường đã không cung cấp một mức vô hình đầy đủ Một số như R* [Williams ét al 1982] đòi hỏi người sử dụng phải cho biết tên vị trí kèm với tên của mỗi đối tượng dữ liệu cần truy xuất Hơn nữa chúng còn yêu cầu người dùng phải mô tả tên đầy đủ khi truy xuất đến đối tượng này Rõ
ràng người ta có thể đặt các bí danh (alias) cho những tên dài nếu hệ điều hành cung
cấp một tiện ích như thế Tuy nhiên bí danh do người dùng định nghĩa không phải là giải pháp thực sự cho vấn đề được như những cố gắng tránh phải định vị rõ chúng trong các hệ quản trị CSDL phân tán Chính hệ thống, chứ không phải người sử dụng, phải chịu trách nhiệm gán tên duy nhất cho các đối tượng và dịch tên được người sử dụng biết thành tên nội tại duy nhất cho đối tượng
Bên cạnh các điểm về ngữ nghĩa, cũng còn có một vấn đề mô thức đi kèm với việc gắn tên vị trí vào tên đối tượng Cách tiếp cận này gây ra nhiều khó khăn khi cần di chuyển các đối tượng giữa các máy nhằm tối ưu hóa hiệu năng hoặc vì những mục đích khác Mỗi di chuyển như thế đòi hỏi người sử dụng phải thay đổi tên truy xuất cho mỗi đối tượng bị ảnh hưởng mà rõ ràng là điều không ai mong đợi
Những hệ thống khác cũng không hỗ trợ gì cho việc quản lý dữ liệu nhân bản CSDL logic Chúng đòi hỏi người sử dụng phải "đăng nhập" (logon) cụ thể vào một CSDL tại một thời điểm đã cho (các phiên bản của Oracle trước V7)
Trang 27việc quản lý dữ liệu phân tán hết sức khó khăn và khẳng định rằng "những ứng dụng được viết có hỗ trợ truy xuất vô hình đến các CSDL phân tán về mặt địa lý đều khó quản lý, khó module hóa và có hiếu năng xử lý thông báo thấp" [Gray,
1989] Ông đã đề xuất một cơ chế gọi thủ tục ở xa (remote procedure call) giữa bên
có yêu cầu (người sử dụng) và bên đại lý (DBMS), qua đó người sử dụng hướng các câu vấn tin của họ đến một DBMS cụ thể Thực sự là việc quản lý dữ liệu phân tán
sẽ khó khăn hơn nếu cung cấp cả đặc tính vô hình truy xuất cho người sử dụng, và
kiến trúc khách/ đại lý (Client/Server architecture) với lối giao tiếp (truyền thông)
dựa trên lời gọi thủ tục ở xa giữa khách (máy trạm) và đại lý (Server) là một cách tiếp cận đúng đắn Thực tế là một số hệ DBMS phân tán đã được tổ chức theo phương thức này Tuy nhiên mục tiêu truy xuất vô hình hoàn toàn đến dữ liệu phân tán và nhân bản là một mục tiêu quan trọng và chính là công việc của các nhà sản xuất phần mềm hệ thống
1.3.2 Độ tin cậy qua các giao dịch phân tán
Các hệ quản trị CSDL phân tán được dự định dùng để cải thiện độ tin cậy
(reliability) bởi vì chúng có các thành phần được nhân bản và vì thế loại bỏ được các tình huống có sự cố tại các điểm riêng lẻ Sự cố tại một trạm riêng lẻ, hoặc sự cố đường liên lạc làm mất liên lạc với một hoặc nhiều trạm, sẽ không đủ làm ngừng trệ toàn bộ hệ thống Trong trường hợp một CSDL phân tán, điều này có nghĩa là một
số dữ liệu sẽ không thể truy xuất được, nhưng nếu biết sắp đặt, người sử dụng vẫn
có thể được phép truy xuất các phần khác của CSDL phân tán "Biết sắp đặt" ở đây
có nghĩa là vẫn có hỗ trợ cho các giao dịch phân tán và các giao thức ứng dụng
Một giao dịch (transaction) là một đơn vị tính toán cơ bản, nhất quản và tin cậy được, bao gồm một loạt các thao tác CSDL được thực hiện như một hành động
nguyên tử (atomic action) Nó biến đổi CSDL từ một trạng thái nhất quán này sang
một trạng thái nhất quán khác ngay cả khi có một số lượng giao dịch được thực hiện
đồng thời (đôi khi được gọi là vô hình đồng thời, concunency transparency) và ngay
cả khi có sự cố xảy ra (cũng được gọi là tính nguyên tử khi có sự cố (failure
atomicity) Vì thế một DBMS có hỗ trợ đầy đủ cho giao dịch sẽ bảo đảm rằng việc thực hiện đồng thời các giao dịch của người dùng sẽ không vi phạm tính nhất quán của CDSL khi có sự cố hệ thống, với điều kiện là mỗi giao dịch đều hợp lệ, nghĩa là tuân thủ các quy tắc toàn vẹn được đặc tả trên CSDL
Trang 28Nếu có hỗ trợ đầy đủ cho các giao dịch phân tán, các ứng dụng có thể có được một hình ảnh cục bộ duy nhất về CSDL và nhờ hệ quản trị CSDL phân tán để bảo đảm rằng các yêu cầu sẽ được thực hiện chính xác, bất kể điều gì xảy ra đối với hệ thống "Chính xác" ở đây có nghĩa là các ứng dụng không cần phải biết về việc điều phối các truy xuất đến các CSDL cục bộ, cũng không phải thắc mắc về khả năng xảy ra sự cố của đường liên lạc hay sự cố các trạm trong khi thực hiện giao dịch của chúng Điều này minh họa cho sự liên quan giữa giao dịch phân tán và tính vô hình bởi vì cả hai đều có những vấn đề liên quan với việc đặt tên phân tán và quản lý thư
mục, cùng với một số hỗ trợ giao dịch đòi hỏi phải cài đặt các nghi thức điều khiển đồng thời phân tán và nghi thức khả tín phân tán - đặc biệt là các nghi thức ủy thác
hai pha (two-phase commit, 2PC) và khôi phục phân tán - là những nghi thức phức
tạp hơn nhiều so với trường hợp hệ thống tập trung
Hỗ trợ nhiều bản sao (nhân bản) đòi hỏi phải cài đặt các nghi thức điều khiển
bản sao (replica control protocol) nhằm bảo đảm các ngữ nghĩa được đặc tả khi truy
xuất chúng
Các hệ thống thương mại cung cấp nhiều mức độ hỗ trợ giao dịch phân tán Một số (thí dụ như Oracle V7 và V8) có hỗ trợ các giao dịch phân tán trong khi các phiên bản cũ đòi hỏi tại mỗi thời điểm người dùng mở một CSDL, vì thế loại bỏ nhu cầu đối với các giao dịch phân tán, và một số khác (chẳng hạn như Sybase) cài
đặt các nguyên thủy (primitive) cần cho nghi thức 2PC, nhưng đòi hỏi các ứng dụng
phải lo điều phối giữa các hành dộng ủy thác Nói cách khác, DBMS phân tán không cưỡng chế tính nguyên tử cho các giao dịch phân tán nhưng có cung cấp các nguyên thủy để nhờ đó ứng dụng có thể bảo đảm được tính nguyên tử
1.3.3 Cải thiện hiệu năng
Hiệu năng của DBMS phân tán được cải thiện dựa vào hai điểm:
1) Một DBMS phân tán có khả năng phân mảnh CSDL khái niệm, cho phép
lưu dữ liệu ở gần nơi sử dụng (cũng được gọi là cục bộ hóa dữ liệu (data localization) Ở đây có hai ưu điểm nổi bật:
+ Vì mỗi trạm chỉ xử lý một phần CSDL, tranh chấp về CPU và dịch vụ xuất nhập không nghiêm trọng như trong các CSDL tập trung, và
Trang 29+ Cục bộ hóa dữ liệu làm giảm thiểu các chậm trễ do truy xuất ở xa rất thường gặp trong các mạng diện rộng (WAN), thí dụ như trong các hệ thống dùng vệ tinh việc truyền tải thông báo mất khoảng 1 giây
Phần lớn các DBMS phân tán được cấu trúc để tận dụng tối đa ưu điểm của
việc cục bộ hóa dữ liệu Ích lợi đầy đủ của việc giảm thiểu tranh chấp và chi
phí truyền chỉ có thể có được bằng cách phân mảnh và phân tán dữ liệu hợp lý 2) Tính chất song hành của các hệ phân tán có thể được tận dụng để thực hiện song hành liên vấn tin và nội ván tin Song hành liên vấn tin là khả năng thực hiện cùng lúc nhiều câu vấn tin còn Song hành nội vấn tin sẽ đạt được bằng cách tách một câu vấn tin thành một số câu vấn tin con, mỗi câu sẽ được thực hiện tại một vị trí và truy xuất các phần khác nhau của CSDL phân tán
Điểm thứ nhất liên quan đến chi phí tính toán phân tán nếu dữ liệu nằm tại các
vị trí ở xa và người ta phải truy xuất nó bằng kỹ thuật xử lý từ xa Trong một số tình huống, người ta cho rằng phân phối chức năng quản lý cho nơi có chứa dữ liệu
sẽ tốt hơn là di chuyển một số lượng lớn dữ liệu Chính điều này đã trở thành một
đề tài tranh luận Một số người cho rằng với việc sử dụng rộng rãi các mạng có tốc
độ cao và mạnh, việc phân tán dữ liệu và các chức năng quản lý dữ liệu không còn ý nghĩa nữa và sẽ đơn giản hơn khi lưu dữ liệu tại vị trí trung tâm và truy xuất nó (tải
dữ liệu về) qua một mạng tốc độ cao Lập luận này, mặc dù nghe có lý, đã bỏ qua vấn đề của CSDL phân tán Trước tiên, trong phần lớn các ứng dụng ngày nay, dữ liệu đều phân tán; điều cần tranh luận là làm cách nào xử lý nó và xử lý ở đâu Thứ hai, và là điều quan trọng hơn, đó là lập luận này không phân biệt giữa dải thông (khả năng của các đường truyền máy tính) và độ trễ (thời gian cần để truyền dữ liệu) Độ trễ vốn dĩ tồn tại ngay trong bản thân các môi trường phân tán và có những giới hạn vật lý về tốc độ truyền dữ liệu trên các mạng máy tính như đã chỉ ra ở trên, các đường nối qua vệ tinh mất khoảng nửa giây để truyền dữ liệu giữa hai trạm mặt đất Điều này là do khoảng cách từ trái đất đến vệ tinh và không có gì để chúng ta
có thể cải thiện được nó Đối với một số ứng dụng, đây là một thời gian trễ không thể chấp nhận được
Lập luận về vấn đề song hành cũng quan trọng Nếu người dùng truy xuất đến CSDL phân tán chỉ bằng cách vấn tin (nghĩa là truy xuất chỉ đọc) thì việc cung cấp khả năng thực hiện song hành liên vấn tin và nội vấn tin cho rằng CSDL được
Trang 30nhân bản càng nhiều càng tốt Tuy nhiên vì phần lớn các truy xuất không phải chỉ đọc, các thao tác vừa đọc vừa cập nhật đòi hỏi phải cài đặt các nghi thức điều khiển đồng thời và ủy thác hợp lý
Ngoài vấn đề tối ưu hóa hệ thống nhằm giải quyết được tình huống này, một
số hệ thống thương mại hiện tại còn có phương pháp tiếp cận đáng chú ý nhằm giải quyết xung đột giữa hiệu năng chỉ đọc và hiệu năng cập nhật Họ đa phân hóa CSDL bằng cách duy trì hai bản sao Một bản chỉ dành để vấn tin (được gọi là CSDL vấn tin) và một dành cho các chương trình cập nhật (được gọi là CSDL sản
xuất) Theo định kỳ, CSDL sản xuất (production database) được sao chép vào
CSDL vấn tin Điều này không loại bỏ được sự cần thiết phải cài đặt các nghi thức điều khiển đồng thời và nghi thức khả tín cho các CSDL sản xuất bởi vì chúng ta cần phải đồng bộ hóa các thao tác ghi vào cùng một mục dữ liệu, tuy nhiên nó đã cải thiện được hiệu năng vấn tin vì chúng có thể được thực hiện mà không tốn chi phí thao tác giao dịch
Ngoài những điều này, chúng ta còn cần phi tính đến chi phí quản lý giao dịch Một số cài đặt chỉ cho phép vấn tin CSDL (nghĩa là truy xuất chỉ đọc) trong giờ làm việc (giờ hành chánh) còn việc cập nhật được xử lý theo lô Sau giờ làm việc, CSDL được khóa lại (không cho vấn tin) khi các cập nhật theo lô đang được thực hiện theo lối tuần tự Đây là sự phân chia thời gian giữa các hoạt động đọc và cập nhật
Nhìn chung, các đặc trưng hiệu năng của các hệ CSDL phân tán chưa được hiểu rõ lắm Chúng ta hiện chưa có đủ số lượng các ứng dụng CSDL phân tán thực sự; cung cấp một cơ sở hợp lý cho các đánh giá có tính thực tế Ngoài ra các mô hình hiệu năng của các hệ CSDL phân tán chưa được phát triển đầy đủ Cộng đồng CSDL đã phát triển một số chuẩn mốc để kiểm tra hiệu năng của các ứng dụng xử
lý giao dịch, nhưng chưa rõ là có thể dùng được chúng để đo hiệu năng quản lý giao dịch phân tán hay không Hiệu năng của các sản phẩm DBMS thương mại, ngay cả với những chuẩn mốc này, nói chung không được công bố Nonstop SQL là một sản phẩm mà các số liệu hiệu năng và cài đặt thử nghiệm được dùng để có được chúng
đã được công bố [Tandem, 1988]
Trang 311.3.4 Tính dễ mở rộng
Trong một môi trường phân tán, chúng ta dễ dàng mở rộng kích thước CSDL Các sửa đổi lớn đối với hệ thống hiếm khi cần thiết; sự mở rộng thường là đưa thêm khả năng lưu trữ và xử lý vào hệ thống mạng Rõ ràng là không thể có sự gia tăng tuyến tính về "sức mạnh" bởi vì nó còn phụ thuộc vào chi phí phân tán Tuy nhiên chúng ta vẫn có thể có được những cải thiện rất "có ý nghĩa"
Một khía cạnh của việc mở rộng hệ thống dễ dàng là tính kinh tế Chi phí sẽ thấp hơn khi đặt một hệ thống nhiều máy tính nhỏ có sức mạnh tương đương với một máy lớn duy nhất Trong những năm 60 và đầu thập niên 70 người ta tin rằng
có thể mua một máy tính mạnh gấp bốn lần với chi phí gấp đôi Nó được gọi là luật
Grosh (Groshs law): Với việc xuất hiện các máy tính mini và đặc biệt là máy vi
tính, luật này hiện nay không còn đúng nữa
Điều này không có nghĩa là máy mainframe đã đến lúc bị diệt vong Có nhiều ứng dụng sẽ thích hợp hơn khi được thực hiện trên máy mainframe Thực sự trong những năm gần đây, chúng ta đã thấy sự hồi sinh của máy maiframe Vấn đề là đối với nhiều ứng dụng, sử dụng một hệ thống máy tính phân tán với một sức mạnh vừa
đủ sẽ kinh tế hơn
1.4 Các yếu tố phức tạp [7, 14]
Các vấn đề gặp phải trong các hệ CSDL sẽ phức tạp hơn trong các môi trường phân tán, dù rằng các nguyên tắc cơ bản đều như nhau Hơn nữa, tính chất phức tạp này còn làm nảy sinh nhiều vấn đề mới, do ảnh hưởng bởi ba yếu tố chính
Trước tiên là trong môi trường phân tán, dữ liệu có thể được nhân bản Một CSDL phân tán có thể được thiết kế để toàn bộ CSDL hoặc các phần của nó được lưu tại các vị trí khác nhau trong một mạng máy tính Vấn đề không phải ở chỗ là mọi vị trí trong mạng đều chứa CSDL; điều quan trọng là CSDL nằm tại nhiều vị trí Nhân bản các mục dữ liệu chủ yếu là để tăng độ tin cậy và hiệu quả hoạt động Như thế các hệ CSDL phân tán phải chịu trách nhiệm chọn ra một bản sao của dữ liệu được yêu cầu khi có truy xuất, và bảo đảm rộng tác dụng cập nhật được phản ánh trên tất cả các bản sao của mục dữ liệu đó
Điểm thứ hai là nếu một số vị trí gặp sự cố (thí dụ do rối loạn hoạt động của phần cứng hoặc phần mềm) hoặc nếu một số đường truyền bị hỏng (làm hệ thống mất liên lạc với một số vị trí) trong lúc một thao tác cập nhật đang được tiến hành
Trang 32thì hệ thống phải bảo đảm rằng các tác dụng đó sẽ có ở trên dữ liệu ở những vị trí bị mất liên lạc sau khi hệ thống đã khôi phục lại hoạt động
Điểm thứ ba là bởi vì mỗi vị trí không thể có được thông tin tức thời về các hoạt động đang diễn ra tại những vị trí khác, việc đồng bộ hóa các giao dịch trên nhiều vị trí sẽ khó khăn hơn so với hệ thống tập trung
Những khó khăn này đã chỉ ra một số vấn đề cần giải quyết trong các hệ quản trị CSDL phân tán và được thảo luận ở bên dưới
Có lẽ thành phần chi phí quan trọng nhất là chi phí về nhân lực Khi các thiết
bị máy tính được xây dựng ở nhiều vị trí khác nhau, chúng đòi hỏi phải có con người điều hành và quản lý Kết quả là phải tăng thêm nhân sự cho các hoạt động
xử lý dữ liệu Vì thế chúng ta cần phải phân tích cẩn thận giữa việc tăng lợi nhuận
do thông tin được sử dụng hiệu quả và kịp thời với chi phí về nhân sự
Phân tán quyền điều khiển
Điểm này đã được nêu ra trước đây như một ưu điểm của các hệ CSDL phân tán Việc điều khiển phân tán có thể trở thành một gánh nặng nếu không có những chiến lược phù hợp để giải quyết chúng
Tính an ninh (bảo mật)
Một trong những lợi ích chính của các CSDL tập trung là chúng bảo đảm kiểm
Trang 33CSDL phân tán, môi trường mạng kèm theo sẽ có các yêu cầu an ninh của riêng chúng Chúng ta đã từng thấy nhiều vấn đề nghiêm trọng khi phải bảo đảm an ninh trên các mạng máy tính Vì thế về bản chất, vấn đề an ninh trong các hệ CSDL phân tán rõ ràng là phức tạp hơn so với các hệ tập trung
1.5 Một số vấn đề còn tồn tại trong hệ CSDL phân tán
1.5.1 Thiết kế CSDL phân tán
Câu hỏi đang được tập trung giải quyết là làm thế nào để CSDL và các ứng
dụng chạy trên nó có thể được đặt ở nhiều vị trí Có hai chọn lựa chủ yếu là phân
hoạch (partitioned) và nhân bản (replicated) Trong lược đồ phân hoạch (không
nhân bản), CSDL được chia thành một số phân hoạch tách biệt, mỗi phân hoạch
được đặt tại một vị trí khác nhau Còn thiết kế nhân bản có thể thuộc loại nhân bản
hoàn toàn (fully replicated) trong đó toàn bộ CSDL được lưu tại mỗi vị trí, hoặc nhân bản một phần (partially replicated) trong đó mỗi phân hoạch được lưu tại
nhiều vị trí nhưng không phải tất cả mọi vị trí Hai vấn đề thiết kế chính là phân
mảnh (fragmentation), nghĩa là tách CSDL thành nhiều phân hoạch, được gọi là các mảnh (fragment), và phân bố (distribution), là việc phân bố (phân tán) các mảnh sao
cho tối tân
Nghiên cứu về lãnh vực này phần lớn là vấn đề qui hoạch toán học nhằm hạ tối đa chi phí lưu trữ dữ liệu, xử lý các giao dịch và truyền thông Bài toán tổng quát thu thuộc loại NP-hard Vì vậy các giải pháp được đề xuất đều dựa trên các thuật giải heuristic
1.5.2 Xử lý vấn tin phân tán
Xử lý vấn tin đề cập đến việc thiết kế các thuật toán nhằm phân tích và biến đổi các câu vấn tin thành một chuỗi các thao tác dữ liệu Vấn đề là làm thế nào chọn được một chiến lược thực hiện mỗi câu vấn tin trên mạng với chi phí hiệu quả nhất: Các yếu tố cần được xem xét là sự phân tán dữ liệu, chi phí truyền và vấn đề không
có đủ thông tin cục bộ cần thiết Mục tiêu là nhằm tối ưu hóa các vị trí được thực hiện song song nhằm tăng hiệu năng hoạt động theo các ràng buộc đã nêu Bài toán này về bản chất thuộc loại NP-hard, và cách tiếp cận thông thường vẫn là sử dụng các heuristic
Trang 341.5.3 Quản lý thư mục phân tán
Một thư mục chứa thông tin (như các mô tả và vị trí) của các mục dữ liệu trong CSDL Các vấn đề liên quan đến việc quản lý thư mục có bản chất tương tự như vấn đề chọn nơi đặt CSDL Một thư mục có thể mang đặc tính toàn cục đối với toàn bộ hệ thống CSDL phân tán hoặc có tính chất cục bộ đối với mỗi vị trí; nó có thể được tập trung tại một vị trí hoặc được phân tán trên nhiều vị trí; có thể chỉ có một bản duy nhất hoặc có thể có nhiều bản sao
1.5.4 Điều khiển đồng thời phân tán
Điểu khiển đồng thời (concurrency control) bao gồm việc đồng bộ hóa các
truy xuất đến CSDL phân tán sao cho tính toàn vẹn của CSDL vẫn được duy trì Không nghi ngờ gì nữa, đây là một trong những vấn đề được nghiên cứu rộng rãi nhất trong lãnh vực CSDL phân tán Điều khiển đồng thời trong ngữ cảnh phân tán
có khác chút ít so với ngữ cảnh tập trung Người ta không chỉ quan tâm đến tính toàn vẹn của từng CSDL mà còn phải giải quyết tính nhất quán của nhiều bản sao của CSDL Điều kiện đòi hỏi là tất cả các giá trị của nhiều bản sao của mỗi mục dữ
liệu đều phải "hội tụ về một giá trị” được gọi là nhất quán tương quan (mutual
consistency)
Có rất nhiều giải pháp, ở đây ta chỉ bàn về giải pháp bi quan (pessimistic), là
các giải pháp đồng bộ hóa việc thực thi các yêu cầu của người sử dụng trước khi
việc thực thi bắt đầu, và các giải pháp lạc quan (optimistic), thực thi các yêu cầu rồi
kiểm tra xem việc này có bảo đảm được tính nhất quán của CSDL hay không Hai
nguyên thủy cơ bản có thể được dùng trong cả hai cách tiếp cận này là khóa chốt (locking), chúng dựa trên sự độc quyền tương hỗ (mutual exclusion) của các truy xuất, và nhãn thời gian (time-stamp), trong đó các giao dịch được thực hiện theo
một thứ tự nào đó Có nhiều biến thể của những lược đồ này cũng như các thuật toán hỗn hợp, mục đích là cố gắng tổ hợp hai cơ chế cơ bản nêu trên
1.5.5 Quản lý khóa gài phân tán
Vấn đề khóa gài (deadlock) trong các hệ phân tán, về bản chất thì tương tự
Trang 35trường hợp này là dữ liệu) có thể gây ra khóa gài nếu dùng cơ chế đồng bộ hóa dựa trên khóa chốt Các giải pháp như ngăn cản, tránh, phát hiện/khôi phục cũng áp dụng cho các hệ CSDL phân tán
1.5.6 Độ tin cậy của các hệ quản trị CSDL phân tán
Chúng ta đã khẳng định trước đây rằng ưu điểm của các hệ phân tán là cải thiện độ tin cậy và tính sẵn sàng Tuy nhiên điều này không phải là một đặc điểm tự nhiên mà có Điều quan trọng là các cơ chế được cung cấp phải bảo đảm được tính nhất quán của dữ liệu cũng như khả năng phát hiện sự cố và khôi phục lại được Kết quả là khi có xảy ra sự cố và nhiều vị trí không thể hiệp đồng được với nhau, CSDL tại những vị trí còn hoạt dộng vẫn phải nhất quán và ở tình trạng cập nhật Hơn nữa khi hệ thống máy tính và mạng khôi phục lại, hệ CSDL phân tán phải có khả năng khôi phục và đa CSDL ở những vị trí bị mất liên lạc trở lại trạng thái cập nhật Điều này đặc biệt khó trong những trường hợp mạng bị tách rời thành nhiều nhóm
1.5.7 Hỗ trợ hệ điều hành
Cài đặt hiện nay cho các hệ CSDL phân tán trên nền của một hệ điều hành
truyền thống thường gây ra vấn đề ùn tắc (bottleneck) do quá tải Những hỗ trợ của
hệ điều hành cho các thao tác CSDL không đáp ứng được các yêu cầu của các hệ quản trị CSDL Các vấn đề chính có liên quan đến hệ điều hành trong các hệ thống đơn bộ xử
lý là vấn đề quản lý bộ nhớ, hệ thống tập tin và các phương pháp truy xuất, vấn đề khôi
phục khi có sự cố và quản lý các tiến trình (process) Trong các hệ phân tán còn có thêm
việc xử lý nhiều tầng của phần mềm mạng Các nghiên cứu trong lãnh vực này là tìm kiếm các giải pháp, vừa hỗ trợ đầy đủ và đơn giản cho cho các thao tác CSDL phân tán, vừa hỗ trợ hệ điều hành tổng quát cho các ứng dụng khác
1.5.8 CSDL đa chủng loại
Khi không có được sự thuần nhất của các CSDL tại các vị trí, hoặc theo phương pháp cấu trúc dữ liệu (mô hình dữ liệu) hoặc theo cơ chế truy xuất dữ liệu (ngôn ngữ dữ liệu), chúng ta cần phải cung cấp cơ chế dịch qua lại giữa các hệ thống Cơ chế dịch này thường có một dạng chuẩn tắc tạo dễ dàng cho việc phiên
Trang 36dịch dữ liệu, đồng thời cũng có các khuôn mẫu chương trình để phiên dịch các chỉ thị thao tác dữ liệu
Rõ ràng là vấn đề về tính đa chủng loại sẽ nảy sinh nếu chúng ta xây dựng một
hệ CSDL phân tán từ nhiều hệ thống tập trung, tự vận hành Về khía cạnh này, vấn
đề còn tổng quát hơn nữa Thực sự là những hệ thống như thế, thường được gọi là
các phức hệ CSDL (multidatabase system), cần được xem như một bổ sung cho các
hệ quản trị CSDL phân tán đã được định nghĩa trong chương này Vì thế tất cả những vấn đề đã được thảo luận trong những phần trước đều có những đặc tả bổ sung cho các phức hệ CSDL
1.5.9 Mối liên hệ giữa các vấn đề
Ở điểm này chúng ta cần khẳng định là những vấn đề đã nêu không phải độc lập với nhau Lý do khiến chúng ta phải nghiên cứu chúng một cách riêng rẽ là bản thân chúng đã đủ phức tạp và chúng ta không thể trình bày toàn bộ cùng một lúc, và chúng ta có thể nhận ra tác dụng qua lại giữa chúng bằng cách sử dụng các tham số
và ràng buộc Sự thực, mỗi vấn đề đều bị ảnh hưởng bởi các giải pháp của các vấn
đề khác, và đến lượt nó lại ảnh hưởng đến tập các giải pháp khả thi Trong phần này chúng ta sẽ thảo luận về mối liên hệ của chúng
Mối liên hệ giữa các thành phần được trình bày trong Hình 1.10 Thiết kế các CSDL phân tán có ảnh hưởng đến nhiều vấn đề khác Nó ảnh hưởng đến việc quản
lý thư mục bởi vì định nghĩa của các mảnh và vị trí chứa chúng xác định nội dung thư mục cũng như các chiến lược có thể được dùng để quản lý chúng Những thông tin tương tự (nghĩa là cấu trúc mảnh và vị trí của chúng) được bộ xử lý vấn tin dùng
để xác định chiến lược ước lượng vấn tin Ngược lại các khuôn mẫu truy xuất và sử dụng được bộ xử lý vấn tin xác định lại được dùng làm nguyên liệu cho các thuật toán phân tán và phân mảnh dữ liệu Tương tự, vị trí đặt thư mục và nội dung của
nó ảnh hưởng đến việc xử lý câu vấn tin
Nhân bản các mảnh để phân tán chúng có ảnh hưởng đến các chiến lược điều khiển đồng thời không thích hợp với các CSDL có nhân bản Tương tự, các khuôn mẫu sử dụng và truy xuất CSDL sẽ ảnh hưởng đến các thuật toán điều khiển đồng
Trang 37thời Nếu môi trường phải cập nhật thường xuyên, các dự phòng cần thiết sẽ khác với môi trường chỉ có yêu cầu vấn tin
Có mối liên hệ mật thiết giữa bài toán điều khiển đồng thời, bài toán quản lý khóa gài và những vấn đề liên quan đến độ tin cậy Đây là điều mong muốn bởi vì
chúng thường được gọi chung là vấn đề quản lý giao dịch (transaction
management) Thuật toán điều khiển đồng thời sẽ xác định xem có cần phải có riêng một công cụ quản lý khóa gài hay không Nếu dùng một thuật toán dựa trên khóa chốt, khóa gài sẽ xảy ra, trong khi đó nếu dùng thuật toán dựa trên nhãn thời gian thì không có
Hình 1.10 Mối liên hệ giữa các đề tài đang được nghiên cứu
Cơ chế về độ tin cậy (khả tín) được cài đặt bên trên thuật toán điều khiển đồng thời Vì thế mối liên hệ giữa chúng rất dễ hiểu Cũng cần phải nêu rõ là cơ chế khả tín đang được xem xét có ảnh hưởng đối với việc chọn lựa thuật toán điều khiển đồng thời Các kỹ thuật cung cấp độ khả tín cũng cần dùng đến thông tin về vị trí dữ liệu bởi vì sự tồn tại các bản sao dữ liệu đóng vai trò "điểm gác" cho độ tin cậy Hai trong số nhưng vấn đề mà chúng ta đã thảo luận trong những phần trước -
hệ điều hành và các CSDL đa chủng - không được minh họa trong Hình 1.10 Hiển nhiên là không phải do chúng không "dính líu" đến các vấn đề khác mà thực ra thì ngược lại mới đúng Loại hệ điều hành được dùng và những đặc trưng được nó hỗ trợ ảnh hưởng rất lớn đến các chiến lược giải quyết những vấn đề khác Tương tự, bản chất của tất cả những vấn đề này thay đổi đáng kể trong môi trường đa chủng
Quản lý thư mục
Thiết kế CSDL phân tán
Điều khiển đồng thờiQuản lý khoá gài
Độ tin cậy
Xử lý vấn tin
Trang 38loại Những vấn đề giống như thế phải được giải quyết bằng các phương pháp khác nhau khi kiến trúc máy, hệ điều hành và các phần mềm quản trị CSDL khác nhau giữa các vị trí
Trang 39CHƯƠNG 2
CÁC CÔNG NGHỆ HỖ TRỢ VIỆC XÂY DỰNG PHẦN MỀM QUẢN LÝ CSDL PHÂN TÁN
Trong chương 1, chúng ta đã tìm hiểu mô hình CSDL phân tán, tại sao ta phải
xử lý phân tán Để đưa những lý thuyết đó vào áp dụng trong thực tế thì cần phải có một số công nghệ, ngôn ngữ Trong chương này tôi xin giới thiệu khái quát một số công nghệ, ngôn ngữ đang được sử dụng để thiết kế nên một phần mềm quản lý CSDL phân tán trên mạng Internet
Trước hết, để có thể quản lý CSDL trên Internet (thực ra có thể hiểu đơn giản đây là một website động) có thể hoạt động được là nó phải làm việc trên mô hình Client/Server Tức là mỗi Client hay Server đều đảm đương một chức năng
riêng để hoàn thành công việc chung đó là cho ra một trang Web động Chúng ta đã quá quen thuộc với chương trình Winword để soạn thảo văn bản, nó có thể hoạt động độc lập trên bất kỳ máy tính nào, không cần quan tâm đến Client hay Server là cái gì Ứng dụng Web thì khác hẳn, phải có một mô hình Server (có thể chỉ cần một máy tính làm Server thôi), nhằm để tập trung hoá việc xử lý dữ liệu Còn các Client còn được hiểu là máy tính của người sử dụng phải được nối mạng với Server Giả sử các máy này truy cập vào một website chẳng hạn, thì có nghĩa là họ đã truy cập vào Server, sau đó lấy dữ liệu từ Server về thể hiện trên máy tính của mình Cùng một lúc có rất nhiều người (Client) truy cập vào cùng một website và cùng được xử lý trên Server
2.1 Server [5]
Hầu hết các ứng dụng Web đều hoạt động tập trung trên Server Một ứng dụng đặc trưng gọi là Web Server sẽ đảm trách việc giao tiếp với các trình duyệt Một CSDL trên Server sẽ lưu trữ tất cả những thông tin đáp ứng yêu cầu cho công việc
của ứng dụng Web Và tiếp theo chúng ta phải có một ngôn ngữ "liên lạc" giữa Web Server và CSDL trên Server Ngôn ngữ này cũng thực hiện các công việc xử
lý thông tin đến và đi từ Web Server
Web Server, ngôn ngữ lập trình, CSDL phải hoạt động tốt trên một HĐH nào đó
2.2 Hệ điều hành
Có rất nhiều chủng loại HĐH Windows 98/XP và Linux có lẽ rất phổ biến với tất cả mọi người
Trang 402.3 Web Server [5]
Hình 2.1 Web Server và Client
Chức năng của Web Server có vẻ không mấy phức tạp Nó chỉ ở tại một chỗ, chạy trên nền HĐH, lắng nghe các yêu cầu ai đó trên Web gửi đến, sau đó trả lời những yêu cầu này, và cấp phát những trang web thích ứng Web Server còn phải cung cấp tính ổn định cho môi trường Web cho nên đòi hỏi này phải được đáp ứng một cách rất nghiêm túc
Có rất nhiều loại Web Server khác nhau, nhưng chủ yếu trên thị trường thường
sử dụng là Apache và IIS (Internet Information Server của hãng Microsoft)
Apache là một kiểu mẫu Web Server rất phổ biến Giống như Linux, PHP, MySQL nó là một dự án nguồn mở Apche được hỗ trợ rất tốt trên môi trường Unix, nhưng chỉ khá tốt trong Windows Vì nó là nguồn mở nên bất kỳ ai có khả năng đều
có thể viết chương trình mở rộng tính năng của Apache
Nếu ta chọn HĐH Windows thì nên sử dụng IIS Dưới đây, tôi xin trình bày chi tiết về IIS