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

Hệ thống quản lý siêu thị với CSDL phân tán

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

Hệ thống quản lý siêu thị với CSDL phân tán
MỤ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
HVTH: Lê Nhựt Trường – CH1101150
Hệ thống quản lý siêu thị với CSDL phân tán
LỜ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


HVTH: Lê Nhựt Trường – CH1101150 Trang 2
Hệ thống quản lý “Siêu thị” với CSDL phân tán
Chươ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 trong
nhiề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ưu
trữ 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àng
khô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ình
phâ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 trong
mô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ống
khô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.
HVTH: Lê Nhựt Trường – CH1101150 Trang 3
Hệ thống quản lý “Siêu thị” với CSDL phân tán
Chươ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ệu
vớ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ăng
tươ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 qua
mộ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 đời

mang tên hệ thống phân tán (Distributed Systems). Thay vì chỉ sử dụng một máy tính
vớ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 qua
mộ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ên
dụng phục vụ cho việc giao tiếp giữa chúng (Distributed System Software). Hệ thống
phâ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
HVTH: Lê Nhựt Trường – CH1101150 Trang 4
Hệ thống quản lý “Siêu thị” với CSDL phân tán
sẽ 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áy
chủ đượ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 cung
cấp tính phân tán trong suốt (Distributing Transparency) cho hệ thống mạng của chúng
ta.
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ỗi
má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 nhau
mộ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án
hà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ời
gian 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
HVTH: Lê Nhựt Trường – CH1101150 Trang 5
Hệ thống quản lý “Siêu thị” với CSDL phân tán
Hì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)
Hình 2.3. Kiến trúc ring (vòng)
Nó cũng chia làm nhiều dạng riêng biệt: hệ thống chức năng phân tán (Functional
Distribution), hệ thống điều khiển tập trung (Centrally Controlled), hệ thống tích hợp
và không tích hợp (Integrated / Non-Integrated Systems).
HVTH: Lê Nhựt Trường – CH1101150 Trang 6
Hệ thống quản lý “Siêu thị” với CSDL phân tán
2.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ển
thô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ủ trung
tâ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 ngay
trong 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ên
dụ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
HVTH: Lê Nhựt Trường – CH1101150 Trang 7
Hệ thống quản lý “Siêu thị” với CSDL phân tán
chú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úc
phâ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 trung
gian. 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àng
gầ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.
HVTH: Lê Nhựt Trường – CH1101150 Trang 8
Hệ thống quản lý “Siêu thị” với CSDL phân tán
Hì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úng
khá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.
HVTH: Lê Nhựt Trường – CH1101150 Trang 9
Hệ thống quản lý “Siêu thị” với CSDL phân tán
Hì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ến
trú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ứa

mộ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ạt
khi 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ức
nă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
HVTH: Lê Nhựt Trường – CH1101150 Trang 10
Hệ thống quản lý “Siêu thị” với CSDL phân tán
mề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ác
nhau.
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ột
network. Để 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 được
quả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ở
HVTH: Lê Nhựt Trường – CH1101150 Trang 11
Hệ thống quản lý “Siêu thị” với CSDL phân tán
Quyế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 (Closed
Distributed 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ó được
xuấ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ày
khô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ông
qua 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ăng
tươ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ác
dạ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ác
system 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 cho
cá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ẽ được
thao 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ống
khá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.
HVTH: Lê Nhựt Trường – CH1101150 Trang 12
Hệ thống quản lý “Siêu thị” với CSDL phân tán
2.4.3. Xử lý cạnh tranh
Là khả năng xử lý đa tác vụ tại cùng một thời điểm. Một hệ thống phân tán chứa
đựng nhiều máy tính, mỗi một máy tính được trang bị một hoặc nhiều bộ vi xử lý. Do
đó vấn đề xử lý các luồng dữ liệu từ các máy thành viên trong mạng đổ dồn về mà

không xảy ra tình trạng xung đột là vấn đề rất khó. Cơ chế xử lý đa tác vụ nhằm tăng
hiệu suất của toàn hệ thống.
Ví 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ỗi
ngườ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ạnh
tranh 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 được
thự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ười
dù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 hay
nhiề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ình
trạ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ần
truy 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ượng
request đế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ẫn
phầ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
HVTH: Lê Nhựt Trường – CH1101150 Trang 13
Hệ thống quản lý “Siêu thị” với CSDL phân tán
suấ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ần
mề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ày
phá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ông
giữ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 2

cá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ần
cứ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ống
phầ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ại
trạ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ững
tiế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ỗi
dự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ất
giữ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 8
dạng:
HVTH: Lê Nhựt Trường – CH1101150 Trang 14
Hệ thống quản lý “Siêu thị” với CSDL phân tán
- 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 (Identical
Operations).
- Vị trí trong suốt (Location Transparency): cho phép các đối tượng kết nối truy
xuấ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ến
trình khác.
- Tái tạo trong suốt (Replication Transparency): cho phép nhiều đối tượng thông
tin đượ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, cho
phé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 sinh
lỗ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ủa
ngườ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ải
v.v…
HVTH: Lê Nhựt Trường – CH1101150 Trang 15
Hệ thống quản lý “Siêu thị” với CSDL phân tán
- 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ài
nguyê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ài
nguyê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ính
tươ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ày
nay 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ần
mề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 di
sả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ài
nguyê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,
HVTH: Lê Nhựt Trường – CH1101150 Trang 16
Hệ thống quản lý “Siêu thị” với CSDL phân tán
ngườ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ưới
tầ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ốn
nhiề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 động
dự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ình
cho 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 đảm
bả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ên
khô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ập
thê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ộc
quyề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
HVTH: Lê Nhựt Trường – CH1101150 Trang 17
Hệ thống quản lý “Siêu thị” với CSDL phân tán
quố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 trong
mạ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ợp
vớ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ân
bằ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ên
quá 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ằng
cá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ài
nguyê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ới
nhiề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ài
nguyê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.
HVTH: Lê Nhựt Trường – CH1101150 Trang 18
Hệ thống quản lý “Siêu thị” với CSDL phân tán

2.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 do
chú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ôi
trườ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ồn
tà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 hacker
khai 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ập
trung lại có mức độ bảo mật cao hơn hẳn hệ thống phân tán.
HVTH: Lê Nhựt Trường – CH1101150 Trang 19
Hệ thống quản lý “Siêu thị” với CSDL phân tán
Chươ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ết
quả 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ập
cá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.
3.1.2. Các quy tắc phân mảnh đúng đắn
Chúng ta sẽ tuân thủ ba quy tắc trong khi phân mảnh mà chúng bảo đảm rằng
CSDL sẽ không có thay đổi nào về ngữ nghĩa khi phân mảnh.
Tính đầy đủ (completeness).
Nếu một thể hiện quan hệ R được phân rã thành các mảnh R1, R2,…,Rn, hì mỗi
mục dữ liệu có thể gặp trong R cũng có thể gặp một trong nhiều mảnh Ri. Đặc tính này
giống như tính chất phân rã nối không mất thông tin trong chuẩn hoá, cũng quan trọng
trong phân mảnh bởi vì nó bảo đảm rằng dữ liệu trong quan hệ R được ánh xạ vào các
mảnh và không bị mất. Chú ý rằng trong trường hợp phân mảnh ngang "mục dữ liệu"
muốn nói đến là một bộ, còn trong trường hợp phân mảnh dọc, nó muốn nói đến một
thuộc tính.
HVTH: Lê Nhựt Trường – CH1101150 Trang 20
Hệ thống quản lý “Siêu thị” với CSDL phân tán
Tí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ần
phả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 định
nghĩ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ên
các trường không phải là khoá chính của một quan hệ.
3.2. Phân mảnh ngang

Phân mảnh ngang chia một quan hệ r theo các bộ, vì vậy mỗi mảnh là một tập con
các bộ t của quan hệ r.
Phân mảnh nguyên thuỷ (primary horizontal fragmentation) của một quan hệ
được thực hiện dựa trên các vị từ được định nghĩa trên quan hệ đó.
Ngược lại phân mảnh ngang dẫn xuất (derived horizontal fragmentation ) là phân
mảnh một quan hệ dựa vào các vị từ được định trên một quan hệ khác.
Như vậy trong phân mảnh ngang tập các vị từ đóng vai trò quan trọng.
HVTH: Lê Nhựt Trường – CH1101150 Trang 21
Hệ thống quản lý “Siêu thị” với CSDL phân tán
3.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ác
quan hệ chủ nhân của một lược đồ của CSDL. Vì thế cho biết quan hệ R, các mảnh
ngang 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ơn
Mả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 đặc
tí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 ứng
dụ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ĩa
theo 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 đủ theo
yê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ên
tậ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ức
nhiê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 truy
xuất khác nhau bởi ít nhất một ứng dụng ".
Thuật toán COM_MIN
HVTH: Lê Nhựt Trường – CH1101150 Trang 22
Hệ thống quản lý “Siêu thị” với CSDL phân tán
Input : 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; {f
i
là mảnh hội sơ cấp theo p
i
}
End; {Chúng ta đã chuyển các vị từ có phân mảnh R vào Pr’}
Repeat
For each p∈ Pr if p phân hoạch một mảnh f
k
của Pr’
theo quy tắc 1 then
Begin
Pr’: = Pr’∪ p;

Pr: = Pr – p;
F: = F ∪ p;
End;
Until Pr’ đầy đủ {Không còn p nào phân mảnh f
k
của Pr’}
For each p

∈ Pr’, if ∃p’ mà p<=>p’ then
Begin
Pr’:= Pr’-p;
F:= F - f;
End;
HVTH: Lê Nhựt Trường – CH1101150 Trang 23
Hệ thống quản lý “Siêu thị” với CSDL phân tán
End. {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ách
là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 được
thự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’={p
1

, p
2
}, trong đó
P
1
: att= value_1
P2: att=value_2
Và miền biến thiên của att là {value_1, value_2}, rõ ràng I chứa hai phép kéo
theo với khẳng định:
I
1
: (att=value_1) ⇒ ¬ (att=value_2)
I
2
: ¬(att=value_1)⇒(att=value_2)
Bốn vị từ hội sơ cấp sau đây được định nghĩa theo Pr’:
M
1
: (att=value_1) ∧ (att=value_2)
M2: (att=value_1)∧¬(att=value_2)
M3: ¬(att=value_1)∧(att=value_2)
M4: ¬(att=value_1)∧ ¬ (att=value_2)
Trong trường hợp này các vị từ hội sơ cấp m
1
, m
4
mâu thuẫn với các phép kéo
theo I và vì thế bị loại ra khỏi M.
Thuật toán PHORIZONTAL
HVTH: Lê Nhựt Trường – CH1101150 Trang 24

Hệ thống quản lý “Siêu thị” với CSDL phân tán
Input: R: quan hệ; Pr: tập các vị từ đơn giản;
Output: M: tập các vị từ hội sơ cấp;
Begin
Pr’:= COM_MIN(R, Pr);
Xác định tập M các vị từ hội sơ cấp;
Xác định tập I các phép kéo theo giữa các p
i
∈Pr’;
For each m
i
∈ M do
Begin
IF m
i
mâu thuẫn với I then
M:= M-m
i
End;
End. {PHORIZONTAL}
3.2.2. Phân mảnh ngang dẫn xuất
Phân mảnh ngang dẫn xuất được định nghĩa trên một quan hệ thành viên của
đường nối dựa phép toán chọn trên quan hệ chủ nhân của đường nối đó. Như thế nếu
cho trước một đường nối L, trong đó owner (L)=S và member(L)=R, và các mảnh
ngang dẫn xuất của R được định nghĩa là:
R= R|>< Si , 1 < i < w
Trong đó w là số lượng các mảnh được định nghĩa trên R, và Si=σ Fi(S) với Fi là
Công thức định nghĩa mảnh ngang nguyên thuỷ Si
+ Vấn đề phức tạp cần chú ý: Trong lược đồ CSDL, chúng ta hay gặp nhiều
đường nối đến một quan hệ R. Như thế có thể có nhiều cách phân mảnh cho quan hệ R.

Quyết định chọn cách phân mảnh nào cần dựa trên hai tiêu chuẩn sau:
1. Phân mảnh có đặc tính nối tốt hơn
2. Phân mảnh được sử dụng trong nhiều ứng dụng hơn.
3.3. Phân mãnh dọc
HVTH: Lê Nhựt Trường – CH1101150 Trang 25

×