Các CSDL thuộc mô hìnhphân cấp và mô hình cơ sở dữ liệu quan hệ không giải quyết được các bài toán trongmôi trường mới không tập trung mà phân tán, song song với các dữ liệu và hệ thốngk
Trang 1MỤC LỤC
LỜI CẢM ƠN 2
Chương 1 ĐẶT VẤN ĐỀ 3
Chương 2 HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN 4
2.1 Giới thtiệu 4
2.2 Khái niệm 4
2.3 Quá trình phát triển các kiến trúc của hệ thống phân tán 5
2.4 Các đặc tính của hệ thống phân tán 11
2.5 Ưu và khuyết điểm của hệ thống phân tán 17
3.2 Phân mảnh ngang 21
Chương 4 ỨNG DỤNG XÂY DỰNG HỆ THỐNG 30
QUẢN LÝ SIÊU THỊ 30
4.1 Đặt vấn đề: 30
4.2 Phân tích hệ thống 31
Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 47
5.2 Hướng phát triển 47
Trang 2LỜI CẢM ƠN
Lời đầu tiên tôi xin chân thành cám ơn thầy PGS.TS Đỗ Phúc đã giảng dạy cho em những kiến thức quan trọng của môn Cơ sở dữ liệu nâng cao và đã hướng dẫn em hoàn thành được đồ án môn học này
Tôi chân thành cảm ơn các thầy cô các anh chị và các bạn học viên trong lớp đã tạo cho tôi những điều kiện thuận lợi để học tập và nghiên cứu tại trường đại học Công Nghệ Thông Tin.
Cuối cùng, tôi muốn gửi lời cảm ơn vô hạn tới gia đình, bạn bè luôn bên cạnh và động viên cũng như tạo những điều kiện tốt nhất cho tôi trong suốt quá trình học tập và nghiên cứu tại trường Đại học Công Nghệ Thông Tin.
Học viên
Lê Nhựt Trường
Trang 3Chương 1 ĐẶT VẤN ĐỀ
Ngày nay, chúng ta đang sống trong thế kỷ bùng nổ về khoa học công nghệ màđặc biệt là sự phát triển vượt bậc về công nghệ tông tin Công nghệ thông tin và việcứng dụng công nghệ thông tin trong nhiều lĩnh vực của đời sống, kinh tế xã hội trongnhiều năm qua cũng đồng nghĩa với lượng dữ liệu đã được các cơ quan thu thập và lưutrữ ngày một tích luỹ nhiều lên Bên cạnh đó, các thiết bị thu thập dữ liệu tự động tươngđối phát triển đã tạo ra những kho dữ liệu khổng lồ, như các dữ liệu ngân hàng, hàngkhông, giáo dục… Cùng 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, dữ liệu bài toán là rất lớn và không tập trung được Các CSDL thuộc mô hìnhphân cấp và mô hình cơ sở dữ liệu quan hệ không giải quyết được các bài toán trongmôi trường mới không tập trung mà phân tán, song song với các dữ liệu và hệ thốngkhông thuần nhất, thế hệ tiếp theo của hệ quản trị CSDL ra đời vào những năm 80 trong
đó có CSDL phân tán để đáp ứng những nhu cầu mới
Trang 4Chương 2 HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN 2.1 Giới thtiệu
Quá trình sử dụng máy tính của con người xuất phát từ nhu cầu tính toán dữ liệuvới số lượng lớn và độ phức tạp cao, theo đó là thời gian xử lý phải nhanh chóng vàhiệu quả tốt Theo thời gian, chức năng cơ bản này của các máy vi tính trở nên quá phổthông, các nhà khoa học máy tính lại nhắm đến một thế hệ điện toán mới có khả năngtương tác và trao đổi thông tin với mọi hệ thống máy tính khác trên thế giới thông quamột môi trường network cụ thể Giải pháp ban đầu được gọi là hệ thống tập trung(Centralized Systems), tức một máy tính duy nhất với 1 hoặc nhiều CPU đảm nhận việc
xử lý tất cả các request đến từ các máy client Tuy nhiên, thực tế đã chứng minh môhình này không hiệu quả vì nhiều nguyên nhân, trong đó quan trọng nhất là độ phân rãcủa hệ thống và chi phí bảo trì cao, tính tin cậy thấp Từ đó, giải pháp thứ hai ra đờimang tên hệ thống phân tán (Distributed Systems) Thay vì chỉ sử dụng một máy tínhvới cấu hình mạnh, hệ thống lần này được triển khai với nhiều máy tính được đặt rải rác
ở khắp nơi trong các vùng hoặc quốc gia nào đó và chúng giao tiếp với nhau thông quamột mạng phổ biến (Common Network) Tính bền vững, phân tán và đôi khi khôngđồng nhất này mang lại hiệu quả ngoài mong đợi cho các ứng dụng công nghệ thông tin
và trở thành mô hình tương tác dữ liệu phổ biến nhất hiện nay trên thế giới Ta hãy bắtđầu với khái niệm hệ thống phân tán
2.2 Khái niệm
Hệ thống phân tán là một tập hợp các máy tính tự trị (Autonomous Computers)liên kết với nhau thông qua một network và được cài đặt chung một phần mềm chuyêndụng phục vụ cho việc giao tiếp giữa chúng (Distributed System Software) Hệ thốngphân tán là mô hình mang tính đối lập hoàn toàn với hệ thống tập trung thời kì đầu xử
lý request chỉ bằng một máy tính Nó cho phép các máy tính trong mạng phối hợp hoạtđộng và chia sẻ tài nguyên hệ thống với nhau Một hệ thống phân tán được xây dựng tốt
Trang 5sẽ cung cấp một môi trường tương tác mang tính đơn thể và đa tích hợp với người dùng
dù thực sự ứng dụng mà người dùng sử dụng đang tham chiếu cùng lúc đến nhiều máychủ được đặt ở khắp nơi trên thế giới Nói một cách tổng quát, các phần mềm này cungcấp tính phân tán trong suốt (Distributing Transparency) cho hệ thống mạng của chúngta
2.3 Quá trình phát triển các kiến trúc của hệ thống phân tán
Cuối những năm 70 đầu những năm 80, khái niệm hệ thống phân tán lúc bấy giờđược hiểu là xử lý phân tán (Distributed Processing), nghĩa là một kĩ thuật xử lý cóchức năng nhận một request, sau đó chia nhỏ nó thành các tác vụ con (Subtasks) và xử
lý chúng thông qua nhiều máy tính Mỗi một vùng có số lượng máy tính khác nhau, mỗimáy sẽ kết nối với một máy chủ trung tâm thông qua đường dây điện thoại Cách nhaumột khoảng thời gian nhất định, các máy con này sẽ gửi thông tin (ví dụ thông tin bánhàng của các chi nhánh rải rác trên thế giới) về máy chủ trung tâm Trong khoảng thờigian này, hệ thống phân tán có mối liên hệ mật thiết với các kiến trúc hình sao (Star),thứ bậc (Hierarchical) và kiến trúc vòng (Ring)
Hình 2.1 Kiến trúc hình sao
Trang 6Hình 2.2 Kiến trúc thứ bậc (hay còn gọi là cấu trúc cây phân cấp)
Trang 72.3.1 Một hệ thống có chức năng phân tán
Nghĩa là nó có khả năng xử lý hoàn tất một giao dịch với các hàm thành phầnđược phân tán tại các máy con Nó cài đặt các thiết bị đầu cuối hoặc trình điều khiểnthông minh ở các máy con để xử lý việc biên tập và định dạng các thông điệp, thu thập
dữ liệu, bảo mật và cuối cùng là đóng gói tất cả thành một khối để gửi về máy chủ trungtâm
2.3.2 Hệ thống điều khiển tập trung
Là một tập hợp các máy tính ngoại vi, mỗi máy đều có khả năng hoàn tất xử lýnhững tác vụ cụ thể và có vai trò tương đương với một máy con thuộc quyền quản lýcủa máy chủ trung tâm trong hệ thống Máy chủ này đóng vai trò đầu não, mọi hoạtđộng của các máy con đều do nó trực tiếp điều hành và nó cũng là cầu nối trao đổi dữliệu giữa các máy con đó
2.3.3 Hệ thống tích hợp
Tập hợp các hệ thống riêng biệt có thiết kế dữ liệu chuẩn được tích hợp ngaytrong các tầng khác nhau của những hệ thống đó
2.3.4 Hệ thống phi tích hợp
Đơn thuần là các hệ thống độc lập kết nối với nhau qua mạng
Nửa cuối những năm 80, khái niệm và kiến trúc của hệ thống phân tán bắt đầu cónhững thay đổi đáng kể Ý tưởng hệ thống phân tán lúc này là các hệ thống máy chủnằm rải rác không phân biệt khoảng cách địa lý hợp tác với nhau trong việc truyền tải
dữ liệu và có tính độc lập nền tảng, không cần quan tâm đến các phần mềm chuyêndụng phù hợp với hệ điều hành đang chạy trên các máy chủ đó Dữ liệu truyền đi giữa
Trang 8chúng sẽ được quy định theo một chuẩn chung nhất Lúc bấy giờ xuất hiện bốn cấu trúcphân tán mới:
- Các máy tính cá nhân cùng kết nối đến ứng dụng chạy trên máy chủ mainframe,sau đó tiến hành trao đổi dữ liệu qua lại với nhau
Hình 2.4 Mô hình kết nối các máy PC với máy chủ
- Các máy tính cá nhân kết nối với máy chủ Mainframe thông qua một máy trunggian Cấp độ xử lý dữ liệu của chúng được tổ chức theo kiến trúc cây phân cấp, cànggần về gốc, các máy tính thuộc nhánh tương ứng sẽ phải có năng lực xử lý cao hơn,đảm nhận các tác vụ quan trọng và số lượng dữ liệu thao tác lớn hơn Những máy PCđộc lập sẽ truyền dữ liệu và cấu hình data dự phòng đến các máy trung gian, sau đómáy trung gian sẽ truyền dữ liệu về máy chủ Mainframe, nơi các tác vụ cấp cao nhất sẽđược thực thi
Trang 9Hình 2.5 Mô hình kết nối máy chủ thông qua máy trung gian
- Hệ thống mang tính kết nối ngang hàng Tính phụ thuộc và quan hệ của chúngkhác nhau Không tồn tại điểm xử lý trung tâm (Central Point) trong kiến trúc này
Hình 2.6 Mô hình hệ thống mang tính kết nối ngang hàng
- Kiến trúc cuối cùng khá giống kiến trúc thứ hai, điểm khác biệt ở đây là các máy
PC thay vì tách biệt nay kết nối với nhau
Trang 10Hình 2.7 Mô hình hệ thống phân tán
Mô hình hệ thống phân tán bước sang một trang khác vào cuối năm 1980 Kiếntrúc của hệ thống tại thời kì này được tổ chức như sau: các site bản thân chúng chứamột hoặc nhiều phần mềm chuyên dụng cho phép người dùng truy xuất tài nguyên hệthống của site đó
Hình 2.8 Truy xuất tài nguyên qua hệ thống
Sau này, hệ thống phân tán có bước tiến vượt bật về cấu trúc Nó trở nên linh hoạtkhi cho phép sử dụng chỉ một phần mềm chuyên dụng duy nhất và phân tán các chứcnăng của phần mềm đó cho các máy trong mạng triệu gọi Đây là kiến trúc của các hệthống phân tán ngày nay, nó chứa các máy tính tự trị liên kết với nhau qua mạng, phần
Trang 11mềm sử dụng trong mạng được chia ra làm nhiều thành phần và bố trí tại các site khácnhau.
Hình 2.9 Hệ thống phân tán ngày nay
2.4 Các đặc tính của hệ thống phân tán
Một hệ thống phân tán chứa đựng 6 đặc tính chính sau: chia sẻ tài nguyên (Resource Sharing), mang tính mở (Openness), linh động trong lưu trữ và xử lý (Scalability), duy trì hoạt động của hệ thống khi xảy ra lỗi (Fault Tolerance), xử lý cạnh tranh (Concurrency Control) và tính trong suốt (Transparency) Những đặc tính này
không phải được tạo dựng qua loa mà là kết quả của một quá trình nghiên cứu và thiết
kế tinh tế, lâu dài
2.4.1 Chia sẻ tài nguyên
Tài nguyên cung cấp bởi một máy tính thành viên trong hệ thống phân tán có thểđược chia sẻ với các máy client và các máy tính thành viên khác thông qua mộtnetwork Để tiến trình chia sẻ diễn ra tốt đẹp và hiệu quả, mỗi một tài nguyên phải đượcquản lý bởi một phần mềm có giao diện cho phép các máy client tùy biến các tài
nguyên đó gọi là Hệ quản lý tài nguyên hệ thống Cơ chế hoạt động của phần mềm này
dựa trên các tập giao thức và phương thức được xây dựng sẵn
2.4.2 Tính mở
Trang 12Quyết định khuynh hướng mở rộng của hệ thống Đặc tính này được tính toán rất
kĩ lưỡng phòng khi xảy ra trường hợp hệ thống vấp phải sự tồn tại của một dịch vụ chia
sẻ tài nguyên khác với chức năng tương tự thì nó vẫn có thể hợp tác với dịch vụ đó mà
hệ thống không rơi vào tình trạng tê liệt (Disruption) hay mâu thuẫn trùng lặp(Duplication) Trái ngược với tính mở là một hệ thống phân tán có tính đóng (ClosedDistributed System) với danh sách các đặc tính cố định, không thể thêm mới Mục đích
là để chống sự phân mảnh, tái tổ chức trong việc chia sẻ những tài nguyên hệ thống vốn
đã được xác lập địa chỉ cấp phát Tính mở có thể được hiểu rõ hơn qua hai khía cạnh:
mở rộng phần cứng – phương pháp thêm một phần cứng từ một hệ thống khác vào hệ thống phân tán và mở rộng phần mềm – phương pháp thêm một phần mềm hoặc module lập trình từ một hệ thống khác vào hệ thống phân tán.
Một hệ thống được xem là có đặc tính mở khi giao diện phần mềm của nó đượcxuất bản, sẵn sàng cung cấp cho cộng đồng các nhà phát triển phần mềm Tiến trình nàykhông bắt buộc phải trải qua giai đoạn chuẩn hóa giao diện Ví dụ: chúng ta có UNIX,một hệ thống mở khá nổi tiếng Tài nguyên trên các hệ thống này được truy xuất thôngqua các lời triệu gọi của hệ thống (System Calls) - tức tập các thủ tục có khả năngtương tác với chương trình và ngôn ngữ khác Hệ thống UNIX có thể giải quyết cácdạng dự liệu mới (phần mềm hoặc phần cứng) bằng cách thêm chúng vào danh sách cácsystem call có hoặc không kèm thông số Những system call này được định nghĩa bởi
một module của UNIX gọi là nhân (KERNEL) Thiết kế của kernel quy định phạm vi
và cấp độ hỗ trợ của UNIX đối với các loại tài nguyên khác nhau được cung cấp chocác ứng dụng Các tài nguyên không thể truy xuất qua các lời gọi của hệ thống sẽ đượcthao tác thông qua truyền thống liên tiến trình Nghĩa là tài nguyên của các hệ thốngkhác nhau về phần cứng và phần mềm vẫn có thể được trao đổi và sử dụng miễn là cớchế truyền thông giữa chúng minh bạch và đúng chuẩn chung
Trang 13Ví dụ: máy chủ mainframe phải xử lý những yêu cầu từ phía các người dùng, mỗingười dùng lại gửi đi nhiều yêu cầu tại một thời điểm Nếu không có cơ chế xử lý cạnhtranh này thì hiệu suất của hệ thống sẽ giảm đi đáng kể do mỗi yêu cầu sẽ phải đượcthực thi theo thứ tự (First Come First Served).
Phần mềm có cài đặc chức năng này phải đảm bảo rằng các yêu cầu của ngườidùng nhằm truy xuất đến cùng một tài nguyên hệ thống tại cùng mộ thời điểm phảiđược xử lý một cách toàn vẹn, tránh xung đột lẫn nhau có thể dẫn đến treo hệ thống haynhiều hệ lụy khác Các luồng truy cập tài nguyên sẽ được đồng bộ hóa tránh gây ra tìnhtrạng thất lạc thông tin cập nhật dữ liệu (Lost Update), sai lệch dữ liệu (Dirty Read) –một người dùng cập nhật dữ liệu đang được xem bởi người dùng khác tại một thờiđiểm, không thể đọc lại dữ liệu (Unrepeatable Read) – do dữ liệu thay đổi giữa hai lầntruy cập kề nhau
2.4.4 Tính linh động trong lưu trữ và xử lý
Phần mềm cấp ứng dụng hay cấp hệ thống sẽ giữ nguyên trạng thái của chúng khi
có sự thay đổi về kích thước của hệ thống Đặc tính này rất quan trọng vì số lượngrequest đến từ các máy con hoặc client thường có khuynh hướng tăng nhanh thay vìgiảm đi Để giải quyết vấn đề này, giải pháp thường thấy là nâng cấp phần mềm lẫnphần cứng Tuy nhiên điều này không đúng đối với mô hình hệ thống phân tán vì chúngđược thiết kế để có thể tiếp tục xử lý công việc một cách linh hoạt, ngay cả khi công
Trang 14suất hoạt động đạt tới giới hạn mà không cần bất cứ thay đổi gì về phần cứng lẫn phầnmềm.
2.4.5 Duy trì hoạt động của hệ thống khi xảy ra lỗi
Hệ thống phân tán cung cấp một cơ chế xử lý lỗi có thứ bậc khi những lỗi nàyphát sinh mà không cần phải tắt hoặc tạm ngưng quá trình vận hành của hệ thống Kĩthuật xử lý lỗi càng tốt, tính sẵn sàng (Availability) của hệ thống càng cao, lưu thônggiữa các máy trong hệ thống thông thoáng Để đạt được đặc tính này, có thể thực hiện 2cách Thứ nhất là dự phòng phần cứng nhằm ngăn chặn tình trạng sập hệ thống do phầncứng của máy bị hư hỏng Tuy chi phí khá tốn kém nhưng bù lại hoạt động hệ thốngphần nào được bảo đảm vì luôn có phần cứng thay thế khi lỗi phát sinh
Ví dụ: Một ứng dụng có thể sử dụng 2 máy tính kết nối với nhau, 1 đóng vai tròback-up PC phòng trường hợp máy còn lại mắc lỗi không thể xử lý các yêu cầu gửi đến
từ các máy con và các máy client
Cách thứ hai là thiết kế phần mềm chuyên dụng có chức năng tự khôi phục lạitrạng thái của hệ thống tại thời điểm gần nhất trước đó và ghi nhận lại lỗi phát sinh.Một số trường hợp sẽ không cần thiết phải khôi phục lại toàn bộ hệ thống vì có nhữngtiến trình chưa hoàn tất công việc của nó Giải pháp chỉ khôi phục những vùng bị lỗidựa trên các tập tin log và back-up của server được xem là lựa chọn hiệu quả nhất
2.4.6 Tính trong suốt
Che giấu những thành phần không cần thiết nhằm tạo sự tương tác thuận tiện nhấtgiữa người dùng và người phát triển ứng dụng Đặc tính trong suốt được chia làm 8dạng:
Trang 15- Truy cập trong suốt (Access Transparency): cho phép các đối tượng kết nối cục
bộ hoặc từ xa truy cập tài nguyên bằng cách sử dụng các thao tác đồng nhất (IdenticalOperations)
- Vị trí trong suốt (Location Transparency): cho phép các đối tượng kết nối truyxuất thông tin mà không cần biết chính xác địa chỉ của hệ thống
Hai dạng này còn được biết đến qua tên gọi hệ thống mạng trong suốt (Network
Ransparency) tương tự cách cung cấp tính nặc danh cho tài nguyên trong mô hình hệthống tập trung
- Xử lý lỗi trong suốt (Concurrency Transparency): cho phép một vài tiến trình sửdụng vùng nhớ chia sẻ để xử lý lỗi mà không ảnh hưởng đến hoạt động của các tiếntrình khác
- Tái tạo trong suốt (Replication Transparency): cho phép nhiều đối tượng thôngtin được dùng để gia tăng độ tin cậy và hiệu năng của hệ thống
- Tình trạng lỗi trong suốt (Failure Transparency): che giấu các đoạn mã lỗi, chophép người dùng và các ứng dụng hoàn thành các tác vụ của họ mặc dù đã có phát sinhlỗi về phần mềm hoặc phần cứng
- Di trú trong suốt (Migration Transparency): cho phép các đối tượng thông tin cóthể di chuyển đến nơi khác trong hệ thống mà không ảnh hưởng đến các tiến trình củangười dùng và ứng dụng
- Thực thi trong suốt (Performance transparency): cho phép hệ thống phân tán cóthể tự động ngầm tái xác lập các thông số cấu hình để cải thiện hiệu năng, cân bằng tảiv.v…
Trang 16- Giãn nở trong suốt (Scaling Transparency): cho phép hệ thống và ứng dụng mởrộng phạm vi hoạt động mà không cần thay đổi cấu trúc của hệ thống hay thuật toán củaứng dụng.
Ví dụ: Đối với một email dạng abc@.ou.edu.vn, người dùng không cần quan tâmđến địa chỉ vật lý của máy mà họ phải kết nối để gửi thư đến địa chỉ trên hoặc cách thưđược gửi đi như thế nào Địa chỉ và cách thức truy cập của email là ví dụ điển hình cho
mô hình mạng trong suốt (Network Transparency)
Các đặc tính của hệ thống phân tán liên hệ với nhau rất chặt chẽ Chia sẻ tàinguyên đòi hỏi hệ thống phải có tính mở Vì tài nguyên được trao đổi và truy xuất từcác máy trong mạng với phần cứng và phần mềm khác nhau nên nếu không có tính mở,các máy client sẽ không thể sử dụng nguồn tài nguyên đó được vì công nghệ xử lý tàinguyên khác với công nghệ thiết kế của hệ thống Một vấn đề khác là phần cứng vàphần mềm của một đại lý nào đó không tương thích với toàn hệ thống đặc biệt là khi có
sự tồn tại của hệ thống di sản (Legacy Systems) Hệ thống di sản là hệ thống máy tính
đã và đang được dùng trong công ty mặc dù những kỹ thuật máy tính mới đã có vàđược lắp đặt bởi vì thường có một nhu cầu dùng những hệ thống cũ để đảm bảo tínhtương thích (vì những hệ thống mới đôi khi không tương thích với những hệ thống cũ).Thông thường thuật ngữ “hệ thống di sản” chỉ hệ thống máy tính lớn đã có nhưng ngàynay thuật ngữ nầy được dùng trong lĩnh vực rộng hơn
Ví dụ, mạng di sản (cáp đồng trục Ethernet), ngân hàng dữ liệu di sản (ngân hàng
dữ liệu chứa những thông tin có tính lịch sử) và các phần mềm di sản Những phầnmềm di sản vẫn được dùng vì nó là phương tiện duy nhất để truy cập những CSDL disản
Có tính mở sẽ khắc phục được chuyện này, hệ thống sẽ tận dụng triệt để những tàinguyên có thể khai thác được qua các đại lý đó và tránh những xung đột do phần cứng
và phần mềm gây ra một cách linh hoạt nhất Sau cùng là nếu không có tính trong suốt,
Trang 17người dùng sẽ đối mặt với những thuật toán xử lý vô cùng phức tạp vốn nằm bên dướitầng tương tác của hệ thống Hậu quả là hệ thống sẽ trở nên quá khó để sử dụng và tốnnhiều thời gian cho việc triển khai training đối với người sử dụng, điều này có thể giảm
đi rất nhiều hoặc thậm chí làm sụp đổ hiệu quả của mô hình hệ thống phân tán
2.5 Ưu và khuyết điểm của hệ thống phân tán
Trước hết hãy nói về những ưu điểm mà hệ thống phân tán mang lại
2.5.1 Khả năng chia sẻ (Shareability)
Là chức năng cho phép các máy trong hệ thống sử dụng tài nguyên của nhau.Chức năng này được kích hoạt trong mạng các máy tính liên kết với nhau và hoạt độngdựa trên một phương thức truyền thông phổ biến Internet là một minh chứng điển hìnhcho hệ thống phân tán, mỗi một máy tính muốn truy xuất tài nguyên từ mạng phải đảmbảo điều kiện là đã kết nối và hoạt động trên nên phương thức TCP/IP
2.5.2 Khả năng mở rộng (Expandability)
Là khả năng cho phép hệ thống phân tán kết nạp thêm các đại lý mới Tuy nhiênkhông phải lúc nào tài nguyên của các hệ thống mới cũng được tận dụng trọn vẹn vì cóthể phát sinh lỗi trùng lặp Đôi lúc tình trạng cấp phát thừa tài nguyên vẫn xảy ra do đógiải pháp tối ưu nhất là cấp quyền tự trị cho các máy tính, ra nguyên tắc chỉ thu thậpthêm tài nguyên chia sẻ khi điều đó là thật sự cần thiết
2.5.3 Quyền tự trị cục bộ
Một hệ thống phân bố có toàn quyền quản lý tài nguyên của nó Nói cách khác nótrao quyền tự trị cục bộ cho hệ thống để quản lý tài nguyên Mỗi một hệ thống con cóthể áp đặt các thủ tục, cấu hình và quyền truy cập khác nhau đối với tài nguyên thuộcquyền chủ quản của chúng Điều này làm cho hệ thống phân tán trở thành một mô hình
đa thực thể với mỗi chủ thể là một đối tượng quản lý độc lập Ví dụ: một công ty đa
Trang 18quốc gia có thể nhiều chi nhánh nằm rải rác khắp nơi trên thế giới Mỗi hệ thống trongmạng của công ty tại một quốc gia nào đó có cách thức quản lý và hoạt động phù hợpvới đặc tính của quốc gia đó.
2.5.4 Cải thiện hiệu năng của hệ thống
Khi càng có nhiều client kết nối tới yêu cầu truy xuất tài nguyên, thời gian đápứng của hệ thống sẽ giảm dần theo tỉ lệ nghịch Một trong những giải pháp duy trì tính
ổn định của thời gian đáp ứng là nâng cấp máy chủ (Upgrading The Host Machine).Thế nhưng kĩ thuật thường được áp dụng là tạo ra các bản sao của tài nguyên đó, cânbằng tải, sau đó cấp phát quyền truy cập cho người dùng đến các bản sao này Mô hình
hệ thống phân tán khá hữu dụng khi tài nguyên nằm rải rác ở các máy con trong mạng,yêu cầu cấp phát sẽ được gửi đến các máy khác nhau thay vì chỉ một máy duy nhất nênquá trình xử lý mang đập đặc tính phân tán và hiệu năng cũng tăng lên Tương tự, sốlượng máy tính trong hệ thống cũng góp phần gia tăng hiệu suất của toàn mạng thườngđược gọi là sức mạnh xử lý bởi vì sự kết hợp nhiều máy tính mang lại lợi thế mà không
hệ thống tập trung nào có được Các máy cấu hình yếu vẫn có thể được nâng cấp bằngcách thay các bộ xử lý đa nhân v.v…
2.5.5 Tăng độ tin cậy và tính sẵn sàng
Hệ thống phân tán vẫn tiếp tục duy trì hoạt động cho dù có phát sinh lỗi Tàinguyên vẫn được cấp phát dù một số có thể không truy cập được do được quản lý bớinhiều máy tính khác nhau đảm bảo nhu cầu sử dụng của người dùng Nếu các tàinguyên đã được sao chép thành nhiều bản sao thì thiệt hại sẽ không nhiều vì yêu cầu sẽđược lái đến địa chỉ khác nơi chứa một bản sao của tài nguyên đó Điều này đảm bảo hệthống luôn ở trạng thái sẵn sàng đáp ứng
Trang 192.5.6 Giảm chi phí
Chi phí triển khai, bảo trì sẽ thấp hơn và hiệu quả hơn nhiều so với hệ thống tập
trung Nguyên nhân là chi phí này được trải đều cho các hệ thống con trong mạng dochúng được cấu hình và bảo trì hoàn toàn độc lập với nhau
Ngoài ra hệ thống phân tán còn có các nhược điểm sau:
Độ tin cậy
Do các máy tính thuộc hệ thống phân tán giao tiếp với nhau thông qua một môitrường mạng thống nhất, do đó nếu vấn đề trục trặc về hạ tầng mạng sẽ dẫn đến việc hệthống bị tê liệt đặc biệt là các vần đề về phần cứng như card mạng, router, bridge v.v…Chi phí để phục hồi sau thiệt hại có thể sẽ rất lớn
Phức tạp
Phần mềm sử dụng trong hệ thống phân tán không dễ phát triển Nó phải có khảnăng xử lý những lỗi phát sinh trong quá trình vận hành, đủ mạnh để thao tác với nguồntài nguyên luân chuyển trong môi trường lớn không đồng nhất
Bảo mật
Hệ thống phân tán cho phép các máy con hợp tác và chia sẻ dữ liệu dễ dàng hơn.Điều này có thể dẫn đến rắc rối to nêu không có một cơ chế bảo mật an toàn đúng mức.Những tài nguyên riêng tư sẽ bị phát tán khắp nơi, là lỗ hổng tuyệt vời cho các hackerkhai thác và miếng lợi hấp dẫn đối với những kết nối bất hợp lệ Sự thật là hệ thống tậptrung lại có mức độ bảo mật cao hơn hẳn hệ thống phân tán
Trang 20Chương 3: THIẾT KẾ CƠ SỞ DỮ LIỆU PHÂN TÁN
3.1 Các vấn đề thiết kế
3.1.1 Lý do phân mảnh:
Khung nhìn của các ứng dụng thường chỉ là một tập con của quan hệ Vì thế đơn
vị truy xuất không phải là toàn bộ quan hệ nhưng chỉ là các tập con của quan hệ Kếtquả là xem tập con của quan hệ là đơn vị phân tán sẽ là điều thích hợp duy nhất
Việc phân rã một quan hệ thành nhiều mảnh, mỗi mảnh được xử lý như một đơn
vị, sẽ cho phép thực hiện nhiều giao dịch đồng thời Ngoài ra việc phân mảnh các quan
hệ sẽ cho phép thực hiện song song một câu vấn tin bằng cách chia nó ra thành một tậpcác câu vấn tin con hoạt tác trên các mảnh Vì thế việc phân mảnh sẽ làm tăng mức độhoạt động đồng thời và như thế làm tăng lưu lượng hoạt động của hệ thống
Trang 21Tính tái thiết được (reconstruction).
Nếu một thể hiện quan hệ R được phân rã thành các mảnh R1, R2,…,Rn, thì cầnphải định nghĩa một toán tử quan hệ sao cho R= Ri, Ri Fr Toán tử thay đổi tuỳ∇ ∇ ∈theo từng loại phân mảnh, tuy nhiên điều quan trọng là phải xác định được nó Khảnăng tái thiết một quan hệ từ các mảnh của nó bảo đảm rằng các ràng buộc được địnhnghĩa trên dữ liệu dưới dạng các phụ thuộc sẽ được bảo toàn
Tính tách biệt (disjointness).
Nếu quan hệ R được phân rã ngang thành các mảnh R1, R2,…,Rn, và mục dữ liệu
di nằm trong mảnh Rj, thì nó sẽ không nằm trong mảnh Rk khác ( k≠ j )
Tiêu chuẩn này đảm bảo các mảnh ngang sẽ tách biệt (rời nhau) Nếu quan hệđược phân rã dọc, các thuộc tính khoá chính phải được lặp lại trong mỗi mảnh
Vì thế trong trường hợp phân mảnh dọc, tính tách biệt chỉ được định nghĩa trêncác trường không phải là khoá chính của một quan hệ
Trang 223.2.1 Phân mảnh ngang nguyên thuỷ
Phân mảnh ngang nguyên thuỷ được định nghĩa bằng một phép toán chọn trên cácquan hệ chủ nhân của một lược đồ của CSDL Vì thế cho biết quan hệ R, các mảnhngang của R là các Ri:
Ri = σ Fi;(R), 1 ≤ i ≤ z
Trong đó Fi là công thức chọn được sử dụng để có được mảnh Ri Chú ý rằng nếu
Fi có dạng chuẩn hội, nó là một vị từ hội sơ cấp (mj)
Bây giờ chúng ta có thể định nghĩa một mảnh ngang chặt chẽ và rõ ràng hơnMảnh ngang Ri của quan hệ R có chứa tất cả các bộ R thỏa vị từ hội sơ cấp mi Một đặctính quan trọng của các vị từ đơn giản là tính đầy đủ và tính cực tiểu
Tập các vị từ đơn giản Pr được gọi là đầy đủ nếu và chỉ nếu xác suất mỗi ứngdụng truy xuất đến một bộ bất kỳ thuộc về một mảnh hội sơ cấp nào đó được định nghĩatheo Pr đều bằng nhau
Khái niệm đầy đủ gắn chặt với mục tiêu của bài toán Số vị từ phải đầy đủ theoyêu cầu của bài toán chúng ta mới thực hiện được những vấn đề đặt ra của bài toán.Khái niệm cực tiểu liên quan đến vấn đề tối ưu của bộ nhớ, tối ưu của các thao tác trêntập các câu vấn tin Vậy khi cho trước một tập vị từ Pr để xét tính cực tiểu chúng ta cóthể kiểm tra bằng cách vứt bỏ những vị từ thừa để có tập vị từ Pr’ là cực tiểu và tứcnhiên Pr’ cũng là tập đầy đủ với Pr Thuật toán COM_MIN: Cho phép tìm tập các vị từđầy đủ và cực tiểu Pr' từ Pr Chúng ta tạm quy ước:
Quy tắc 1: Quy tắc cơ bản về tính đầy đủ và cực tiểu , nó khẳng định rằng một
quan hệ hoặc một mảnh được phân hoạch " thành ít nhất hai phần và chúng được truyxuất khác nhau bởi ít nhất một ứng dụng "
Thuật toán COM_MIN
Trang 23Input : R: quan hệ; Pr: tậpcác vị từ đơn giản;
Output: Pr’: tập các vị từ cực tiểu và đầy đủ;
Declare
F: tập các mảnh hội sơ cấp;
Begin
Pr’=φ; F = φ;For each vị từ p∈ Pr if p phân hoạch R theo Quy tắc 1 then
Begin
Pr’: = Pr’∪ p;
Pr: = Pr – p;
F: = F ∪ p; {fi là mảnh hội sơ cấp theo pi }
End; {Chúng ta đã chuyển các vị từ có phân mảnh R vào Pr’}
Until Pr’ đầy đủ {Không còn p nào phân mảnh fk của Pr’}
For each p∈ Pr’, if ∃p’ mà p<=>p’ then
Begin
Pr’:= Pr’-p;
F:= F - f;
End;
Trang 24End {COM_MIN}
Thuật toán bắt dầu bằng cách tìm một vị từ có liên đới và phân hoạch quan hệ đã
cho Vòng lặp Repeat-until thêm các vị từ có phân hoạch các mảnh vào tập này, bảo
đảm tính đầy đủ của Pr’ Đoạn cuối kiểm tra tính cực tiểu của Pr’ Vì thế cuối cùng ta
có tập Pr’ là cực tiểu và đầy đủ
Bước hai của việc thiết kế phân mảnh nguyên thủy là suy dẫn ra tập các vị từ hội
sơ cấp có thể được định nghĩa trên các vị từ trong tập Pr’ Các vị từ hội sơ cấp này xácđịnh các mảnh “ứng cử viên” cho bước cấp phát Việc xác định các vị từ hội sơ cấp làtầm thường; khó khăn chính là tập các vị từ hội sơ cấp có thể rất lớn (thực sự chúng tỷ
lệ hàm mũ theo số lượng các vị từ đơn giản) trong bước kế tiếp chúng ta sẽ tìm cáchlàm giảm số lượng vị từ hội sơ cấp cần được định nghĩa trong phân mảnh
Bước ba của quá trình thiết kế là loại bỏ một số mảnh vô nghĩa Điều này đượcthực hiện bằng cách xác định những vị từ mâu thuẫn với tập các phép kéo theo(implication) I Chẳng hạn nếu Pr’={p1, p2}, trong đó