You are on page 1of 43

BÁO CÁO HỌC PHẦN

HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN


ĐỀ TÀI: “HỆ THỐNG QUẢN LÝ ĐĂNG KÝ
TÍN CHỈ MÔN HỌC”

Sinh viên thực hiện: Nguyễn Sỹ Huy


Trần Trung Hiếu
Giảng viên hƣớng dẫn: TS. Nguyễn Hà Huy Cƣờng
Lớp: 18IT2

Đà Nẵng, tháng 4 năm 2022


BÁO CÁO HỌC PHẦN
HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN
ĐỀ TÀI: “HỆ THỐNG QUẢN LÝ ĐĂNG KÝ
TÍN CHỈ MÔN HỌC”

Sinh viên thực hiện: Nguyễn Sỹ Huy


Trần Trung Hiếu
Giảng viên hƣớng dẫn: TS. Nguyễn Hà Huy Cƣờng
Lớp: 18IT2

Đà Nẵng, tháng 4 năm 2022


LỜI MỞ ĐẦU

Ứng dụng tốt công nghệ thông tin trong quản lý đào tạo là chìa khóa
thành công trong việc quản lý của các nhà trường, là tiền đề nâng cao chất lượng
và hiệu quả đào tạo. Cùng với mục đích này, đề tài đã tập trung tìm hiểu và xây
dựng mô hình cơ sở dữ liệu phân tán phù hợp với yêu cầu của hệ thống quản lý
đào tạo thay cho hệ thống cơ sở dữ liệu tập trung nhiều bất cập trong hiện tại,
góp phần nâng cao hiệu quả trong việc quản lý sinh viên của các trường Đại học.
Công nghệ cơ sở dữ liệu (DataBase - DB) đã trải qua một quá trình hình
thành và phát triển khá lâu dài. Ban đầu, các hệ cơ sở dữ liệu thường gắn liền
với ứng dụng, nghĩa là mỗi ứng dụng định nghĩa và duy trì dữ liệu của riêng
chúng. Phát triển hơn, dữ liệu được quản lý một cách tập trung, nhiều ứng
dụng khác nhau có thể truy xuất dữ liệu trực tiếp từ cơ sở dữ liệu tập trung đó.
Tuy nhiên, cơ sở dữ liệu tập trung cũng tồn tại nhiều khuyết điểm, có thể
kể đến đó là khi trung tâm lưu trữ và xử lý dữ liệu có sự cố thì toàn hệ thống sẽ
ngừng hoạt động, hay tình trạng tắc nghẽn khi có quá nhiều yêu cầu truy xuất
dữ liệu. Cơ sở dữ liệu phân tán ra đời đã phần nào khắc phục được những hạn
chế của cơ sở dữ liệu tập trung, là kết quả của sự hợp nhất hai hướng tiếp cận
đối với quá trình xử lý dữ liệu
Trong giới hạn của một báo cáo tiểu luận kết thúc môn học, nội dung của
bản báo cáo “Dùng ngôn ngữ C# viết chương trình cho hệ đa server với CSDL
gắn bó cho phép quản lý đào tạo từ xa trong điều kiện có sự cố”.
Trong quá trình thực hiện tiểu luận này, chúng em xin chân thành biết ơn
sự giúp đỡ của TS. Nguyễn Hà Huy Cường.
Chúng em xin chân thành cảm ơn
MỤC LỤC
LỜI MỞ ĐẦU
MỤC LỤC
DANH MỤC BẢNG BIỂU
DANH MỤC HÌNH ẢNH
DANH MỤC CỤM TỪ VIẾT TẮT
CHƢƠNG 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN .................... 1
1.1. Hệ phân tán ............................................................................................... 1
1.2. Nguyên tắc xây dựng hệ phân tán ............................................................. 1
1.3. Hệ cơ sở dữ liệu phân tán (Distributed database system) ........................ 2
1.4. Giao dịch và quản lý giao dịch ................................................................. 3
1.4.1. Các khái niệm ..................................................................................... 3
1.4.2. Tình huống kết thúc giao dịch. ........................................................... 4
1.4.3. Đặc trưng hoá các giao dịch................................................................ 5
1.4.4. Các tính chất của giao dịch. ................................................................ 5
1.5. Điều khiển đồng thời phân tán .................................................................. 8
1.6. Độ khả tín của hệ quản trị CSDL phân tán ............................................... 9
1.6.1. Hệ thống, trạng thái và sự cố: ............................................................. 9
1.6.2. Độ khả tín và độ khả dụng ................................................................ 11
1.6.3. Sự cố trong hệ quản trị CSDL phân tán ............................................ 11
1.6.4. Nghi thức khả tín cục bộ ................................................................... 14
1.6.5. Các nghi thức khả tín phân tán. ........................................................ 15
1.7. Giải thuật đảm bảo gắn bó dữ liệu .......................................................... 16
CHƢƠNG 2 THIẾT KẾ CƠ SỞ DỮ LIỆU PHÂN TÁN .............................. 18
2.1 Các chiến lược thiết kế ............................................................................. 18
2.1.1. Thiết kế từ trên xuống ....................................................................... 18
2.1.2. Thiết kế từ dưới lên ........................................................................... 18
2.2. Các vấn đề thiết kế cơ sở dữ liệu phân tán............................................... 19
2.2.1. Vấn đề phân rã trên cơ sở dữ liệu tập trung ...................................... 19
2.2.2. Sự cần thiết phân mảnh dữ liệu phân tán .......................................... 19
2.2.3. Những tồn tại trong phân mảnh dữ liệu ............................................ 19
2.3. Kỹ thuật thiết kế cơ sở dữ liệu phân tán .................................................. 20
2.3.1. Bài toán phân mảnh dữ liệu phân tán ................................................ 20
2.3.2. Bài toán định vị phân tán .................................................................. 20
2.4. Các quy tắc phân mảnh đúng đắn ............................................................ 21
2.5. Thảo luận về thiết kế cơ sở dữ liệu phân tán ........................................... 21
2.6. Thiết kế cơ sở dữ liệu phân tán bằng các kỹ thuật phân mảnh ngang ..... 21
2.7. Phân tích bài toán cho đề tài xây dựng đồng bộ quản lý học liệu ........... 22
2.7.1. Lựa chọn phương pháp phân tán ....................................................... 22
2.7.2. Bài toán ............................................................................................. 23
2.7.3. Phân tích thực thể .............................................................................. 23
2.7.3. Phân tích yêu cầu hệ thống................................................................ 25
2.7.4. Biểu đồ quan hệ ................................. Error! Bookmark not defined.
CHƢƠNG 3 XÂY DỰNG ĐỒNG BỘ DỮ LIỆU CHO BÀI TOÁN “HỆ
THỐNG QUẢN LÝ ĐĂNG KÝ TÍN CHỈ MÔN HỌC” ............................... 29
3.1. Qui trình quản lý đào tạo ........................................................................ 29
3.2. Mô hình cơ sở dữ liệu phân tán trong quản lý đào tạo ........................... 29
3.3. Chọn lựa phương pháp phân tán ............................................................. 30
3.4. Giải pháp đồng bộ cơ sở dữ liệu phân tán .............................................. 31
3.4.1. Thành phần chính trong Replication................................................. 31
3.4.2. Các loại Replication .......................................................................... 31
3.5. Các vấn đề trong đồng bộ dữ liệu ........................................................... 32
KẾT LUẬN ........................................................................................................ 34
TÀI LIỆU THAM KHẢO ................................................................................ 35
DANH MỤC BẢNG BIỂU
Bảng 1.1 Nguyên tắc xây dựng hệ phân tán......................................................... 1
Bảng 1.2 Cơ chế duy trì sự gắn bó trong môi trường phân tán............................ 3
Bảng 1.3 Đặc tính toàn vẹn .................................................................................. 3
Bảng 4.1. Kết quả các lần thử nghiệm ............................................................... 32
DANH MỤC HÌNH ẢNH
Hình 1.1Các thực thể của hệ tin học phân tán....................................................... 1
Hình 1.2 Môi trường của hệ cơ sở dữ liệu phân tán ............................................. 3
Hình 1.3 Ba giai đoạn của một giao dịch .............................................................. 4
Hình 1.4 Mô hình chi tiết của bộ phận theo dõi phân tán ..................................... 7
Hình 1.5 Sơ đồ hệ thống...................................................................................... 10
Hình 1.6 Nguồn gốc của các sự cố hệ thống ....................................................... 11
Hình 1.7 Giao diện giữa LRM và BM ................................................................ 14
Hình 1.8 Thực thi các thao tác cập nhật .............................................................. 15
Hình 1.9 Cấu trúc giao tiếp 2 PC tuyến tính ....................................................... 17
DANH MỤC CỤM TỪ VIẾT TẮT
STT Cụm từ Viết tắt
1 Cơ sở dữ liệu CDSL
2 Distributed database system DDBS
3 Structured Query Language SQL
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán

CHƢƠNG 1 TỔNG QUAN VỀ HỆ CƠ SỞ DỮ LIỆU


PHÂN TÁN
1.1. Hệ phân tán
Hệ phân tán gồm một nhóm các máy tính được kết nối với nhau thông qua
mạng máy tính, cùng với một tập phần mềm hệ thống được thiết kế nhằm điều
khiển liên kết các tài nguyên, các chức năng và dữ liệu trên mạng.

Hình 0.1Các thực thể của hệ tin học phân tán


Phần mềm phân tán cung cấp công cụ thích hợp cho phép các máy tính
phối hợp các hoạt động với nhau, cùng chia sẻ tài nguyên phần cứng.
Ngoài hệ thống phần cứng, phần mềm, dữ liệu thì hệ phân tán còn có hệ
thống truyền thông được mô tả như ở trên. Song điều cơ bản để phân biệt hệ tin
học phân tán với mạng máy tính và hệ điều hành mạng chính là nguyên tắc xây
dựng hệ.
1.2. Nguyên tắc xây dựng hệ phân tán
Bảng 0.1 Nguyên tắc xây dựng hệ phân tán

STT Tên gọi Thuyết minh


Thực tế phát triển mạng máy tính đặt ra một vấn
Chia sẻ tài đề lớn là cần phải dùng chung tài nguyên. Một
1
nguyên tiến trình trên một trạm nào đó có thể cung cấp
tài nguyên dùng chung ở một trạm khác.
Khi các hệ thống đã được mắc nối với nhau, các
2 Liên lạc thực thể trong hệ có thể trao đổi thông tin với
nhau.
1
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán

Một trạm trong hệ bị sự cố không làm cho toàn


hệ ảnh hưởng, mà ngược lại, công việc đó được
phân cho các trạm khác đảm nhận. Ngoài ra, trạm
3 Tin cậy
bị sự cố có thể tự động phục hồi lại trạng thái ban
đầu trước khi có sự cố hay trạng thái ban đầu của
nó.
Đây là khái niệm mới về phân tán tải. Một tính
toán lớn nào đó, nếu chỉ sử dụng một trạm thì
4 Tăng tốc thời gian cho kết quả lâu. Tính toán này được
chia nhỏ và thực hiện song song trên các trạm.
Điều này cũng cần thiết đối với các trạm quá tải.
Một trong những tư tưởng lớn của các hệ phân tán là phân tán hoá các quá trình
xử lý thông tin và thực hiện các công việc đó trên các trạm xa nhau. Đó là cơ sở
để xây dựng các hệ ứng dụng lớn như thương mại điện tử, giáo dục điện tử,
chính phủ điện tử.
1.3. Hệ cơ sở dữ liệu phân tán (Distributed database system)
Một cơ sở dữ liệu phân tán là tập hợp nhiều cơ sở dữ liệu có liên đới logic và
được phân bố trên một mạng máy tính. Từ đó ta định nghĩa: Hệ quản trị cơ sở
dữ liệu phân tán (DDMS) là một hệ thống phần mềm cho phép quản lý các cơ sở
dữ liệu 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.
Môi trường của hệ cở dữ liệu phân tán được mô tả qua hình 1.2

2
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán

Hình 0.2 Môi trường của hệ cơ sở dữ liệu phân tán


1.4. Giao dịch và quản lý giao dịch
1.4.1. Các khái niệm
Các đối tượng khác nhau của hệ không phải là các đối tượng độc lập
nhau, chúng quan hệ bởi một tập các quan hệ gọi là một tập các ràng buộc toàn
vẹn.
Trạng thái thoả mãn một tập các ràng buộc toàn vẹn gọi là trạng thái gắn bó.
Một CSDL ở trong một trạng thái nhất quán (gắn bó) nếu nó tuân theo tất cả các
ràng buộc toàn vẹn (nhất quán) được định nghĩa trên nó.Sự thay đổi trạng thái
xảy ra khi ta thực hiện các thao tác chèn, sửa hoặc xoá (gọi chung là cập nhật).
Chúng ta cần đảm bảo rằng CSDL không bao giờ chuyển sang trạng thái không
nhất quán. CSDL có thể tạm thời không nhất quán trong khi thực hiện giao
dịch. điều quan trọng là CSDL phải trở về trạng thái nhất quán khi giao dich
chấm dứt.
Một cơ chế cho phép duy trì sự gắn bó trong môi trường phân tán có sự cố phải
là:
Bảng 0.2 Cơ chế duy trì sự gắn bó trong môi trường phân tán

STT Phải thực hiện


1 Giao dịch T bắt buộc phải được thực hiện một cách trọn vẹn
2 Nếu có sự cố diễn ra thì bắt buộc nó phải quay trở lại điểm xuất phát
Muốn thực hiện những điều vừa nêu trong bảng trên, người ta dòi hỏi giao dịch
phải có các đặc tính toàn vẹn như sau:
Bảng 0.3 Đặc tính toàn vẹn

STT Đặc tính

3
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán
Nếu một tiến trình bị sự cố trước khi kết thúc T nhưng lại sau các thao
1
tác thay đổi cần thiết của T, trạng thái của hệ là gắn bó.
Nếu một tiến trình bị sự cố trước khi diễn ra các thay đổi của T, trạng
2
thái của hệ là gắn bó.
Nếu một tiến trình bị sự cố giữa các thay đổi của T, trạng thái của hệ
3
là không gắn bó.

Hình 0.3 Ba giai đoạn của một giao dịch


Độ tin cậy hay khả tín (reliability) muốn nói đến khả năng tự thích ứng
(resiliency) của một hệ thống đối với các loại sự cố và khả năng khôi phục lại từ
những sự cố này. Một hệ thống tự thích ứng sẽ dung nạp được các sự cố hệ
thống và có thể tiếp tục cung cấp các dịch vụ ngay cả khi xảy ra sự cố. Một
DBMS hồi phục được là DBMS có thể chuyển sang trạng thái nhất quán ( bằng
cách quay trở lại trạng thái nhất quán trước đó hoặc chuyển sang trạng thái nhất
quán mới) sau khi gặp sự cố.
Quản lý giao dịch (transaction management) lo giải quyết các bài toán duy trì
dược CSDL ở trong trình trạng nhất quán ngay cả khi có nhiều truy xuất đồng
thời và khi có sự cố.
Một giao dịch là một đơi vị tính toán nhất quán và đáng tin cậy. Vì thế về mặt
trực quan, một giao dịch nhận một CSDL, thực hiện một hành động trên CSDL
và sinh ra một “bản” CSDL mới gây ra một dich chuyển trạng thái. Điều này
tương tự như điều mà câu vấn tin thực hiện, ngoại trừ trường hợp nếu CSDL
nhất quán trước khi thực hiện giao dịch.
1.4.2. Tình huống kết thúc giao dịch.

4
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán
Một giao dịch luôn luôn kết thúc ngay cả khi có xảy ra sự cố. Nếu giao dịch
có thể hoàn tất thành công tác vụ của nó, chúng ta nói giao dịch đó uỷ thác
(commit). ngược lại nếu một giao dịch phải ngừng lại khi chưa hoàn tất công
việc, chúng ta nói nó bị huỷ bỏ (abort). Ngoài ra DBMS có thể huỷ bỏ một giao
dịch, chẳng hạn do bị khoá cài (deadlock). Khi một giao dịch bị huỷ bỏ, quá
trình thực thi sẽ ngùng và tất cả mọi hành động đã được thực hiện đều phải được
hồi lại (undo), đưa CSDL trở về trạng thái trước khi thực hiện giao dịch. Quá
trình này gọi là cuộn ngược (rollback).
Vai trò quan trọng của uỷ thác biểu hiện ở hai mặt. Thứ nhất lệnh uỷ thác thông
tin cho DBMS biết rằng tác vụ của giao dịch đó bây giờ cần đượcphản ánh vào
trong CSDL, qua đó làm cho các giao dịch đang truy xuất các mục dữ liệu đó có
thể thấy được chúng. Thứ hai, điểm mà giao dịch uỷ thác là một điểm “không
đường về”. Kết quả của một giao dịch đã uỷ thác bây giờ được lưu cố định vào
CSDL và không thể hồi lại được.
1.4.3. Đặc trưng hoá các giao dịch.
Các giao dịch đều đọc và ghi một số dữ liệu. Điều này được dùng làm cơ sở
nhận biết một giao dịch. Các mục dữ liệu được giao dịch đọc cấu tạo nên tập đọc
RS (Read set) của nó. Tương tự, các mục dữ liệu được giao dịch ghi được gọi là
tập ghi WS (Write set). Chú ý rằng tập đọc và tập ghi của một giao dịch không
nhất thiết phải tách biệt. Cuối cùng hợp của tập đọc và tập ghi của một giao dịch
tạo ra tập cơ sở BS (Base set), nghĩa là BS  RS  WS .
1.4.4. Các tính chất của giao dịch.
Các khía cạnh nhất quán và khả tín của giao dịch là do bốn tính chất sau:
a. Tính nguyên tử (atomicity)
Tính nguyên tử liên quan đến sự kiện là một giao dịch được xử lý như một đơn
vị hoạt tác. Chính vì thế mà các hành động của giao dịch, hoặc tất cả đều hoàn
tất hoặc không một hành động nào hoàn tất. Điều này cũng được gọi là tính chất
“được ăn cả, ngã về không” (all-or-nothing). Tính nguyên tử đòi hỏi rằng nếu
việc thực thi giao dịch bị cắt ngang bởi một loại sự cố nào đó thì DBMS sẽ chịu
trách nhiệm xác định công việc cần thực hiện đối với giao dịch để khôi phục lại
5
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán
sau sự cố bằng cách hoặc nó sẽ được kết thúc bằng cách hoàn tất các hành động
còn lại, hoặc có thể được kết thúc bằng cách hồi lại tất cả các hành động đã được
thực hiện
b. Tính nhất quán (consistency)
Tinh chất này chỉ đơn giản là tính đúng đắn của nó. Nói cách khác, một giao
dịch là một chương trình đúng đắn, ánh xạ CSDL từ trạng thái nhất quán này
sang trạng thái nhất quán khác. Việc đảm bảo tính nhất quán là mục tiêu của các
cơ chế điều khiển đồng thời.
c. Tính biệt lập (isolation)
Biệt lập là tính chất của các giao dịch, đòi hỏi mỗi giao dịch phải luôn nhìn thấy
CSDL nhất quán. Nói cách khác, một giao dịch đang thực thi không thể làm lộ
ra các kết quả của nó cho những giao dịch khác đang cùng hoạt động trước khi
nó uỷ thác.
Có một số lý do cần phải nhấn mạnh đến tính biệt lập, một là phải duy trì tính
nhất quán qua lại giữa các giao dịch. Nếu hai giao dịch đồng thời truy xuất đến
một dữ liệu đang được một trong chúng cập nhật thì không thể bảo đảm rằng
giao dịch thứ hai sẽ đọc giá trị đúng.
d. Tính bền vững (dulability)
Muốn nói đến tính chất của giao dịch, bảo đảm rằng một khi giao dịch uỷ thác,
kết quả của nó được duy trì cố định và không bị xoá ra khỏi CSDL. Vì thế
DBMS bảo đảm rằng kết quả của giao dịch sẽ vẫn tồn tại dù có xảy ra sự cố hệ
thống. Tính bền vững đưa ra vấn đề để khôi phục CSDL (database recovery),
nghĩa là cách khôi phục CSDL về trạng thái gắn bó mà ở đó mọi hành động đã
uỷ thác đều được phản ánh.
Với việc giới thiệu về những khái niệm giao dịch ở trên, chúng ta cần xem lại
mô hình kiến trúc mà cụ thể là mở rộng vai trò của bộ phận theo dõi hoạt động
phân tán (distributed execution monitor). Bộ phận này bao gồm hai đơn vị: Bộ
quản lý giao dịch (transection manager_TM) và bộ xếp lịch (scheduler_SC). Bộ
TM chịu trách nhiệm điều phối việc thực hiện các thao tác CSDL của các ứng

6
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán
dụng. Ngược lại bộ SC chịu trách nhiệm cài đặt một thuật toán điều khiển đồng
thời cụ thể nhằm đồng bộ hoá việc truy xuất đến CSDL.
Phần thứ ba tham gia vào việc quản lý các giao dịch phân tán là bộ quản lý khôi
phục cục bộ (local recovery manager) có mặt tại mỗi vị trí. Chức năng của
chúng là cài đặt các thủ tục khôi phục khôi phục tại chỗ nhằm đưa CSDL về
trạng thái gắn bó sau khi xảy ra sự cố.
Mỗi giao dịch đều xuất phát từ một vị trí và chúng ta gọi là vị trí khởi nguồn
(originating site). Việc thực hiện các thao tác CSDL của một giao dịch được
điều phối bởi TM tại vị trí khởi nguồn của giao dịch..
Bộ quản lý giao dịch cài đặt một giao diện cho các ứng dụng, bao gồm năm
lệnh: begin_transection, read, write, commit, abort. Xử lý mỗi lệnh này trong
một hệ thống DBMS phân tán có nhân bản sẽ được từu tượng ở mức độ nhất
định. Để cho đơn giản, chúng ta tạm bỏ qua việc xếp lịch cho các giao dịch đồng
thờicũng như những chi tiết truy xuất dữ liệu vật lý của bộ xử lý dữ liệu . Những
giả thiết này cho phép chúng ta tập trung vào giao diện của TM.

Hình 0.4 Mô hình chi tiết của bộ phận theo dõi phân tán

 Begin_transection: Đây là một chỉ điểm (indicator) cho TM rằng


một giao dịch mới đang bắt đầu. TM sẽ ghi nhận điều này, chẳng hạn ghi
lại tên giao dịch, ứng dụng gốc, vân vân.

7
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán
 Read: Nếu mục dữ liệu x được lưu cục bộ, giá trị của nó được đọc
và chuyển cho giao dịch. Bằng không, TM sẽ chọn một bản sao của x và
yêu cầu chuyển bản sao đó cho giao dịch.
 Write: TM điều phối việc cập nhật giá trị x tại mỗi vị trí có chứa
nó.
 Commit: TM điều phối việc cập nhật vật lý của toàn thể CSDL có
chứa bản sao của mỗi mục dữ liệu mà một lệnh write trước đó đã đưa ra.
 Abort: TM kiểm tra lại rằng không có tác động nào của giao dịch
được phản ánh trong CSDL.
Khi cung cấp các dịch vụ này, TM có thể giao tiếp với SC và bộ xử lý dữ liệu tại
cùng vị trí hoặc khác vị trí.
1.5. Điều khiển đồng thời phân tán
Điều khiển đồng thời giải quyết các tính chất biệt lập và nhất quán của giao
dịch. Cơ chế điều khiển đồng thời phân tán của một hệ quản trị CSDL phân tán
bảo đảm rằng tính chất nhất quán của CSDL. Nếu các giao dịch đã nhất quán nội
tại (nghĩa là không vi phạm bất kỳ ràng buộc nhất quán nào), thế thì để có thể
đạt được mục tiêu này, cách đơn giản nhất là thực hiện lần lượt từng giao dịch
một. Rõ ràng điều này làm giảm lưu lượng hệ thống. Mức độ đồng thời (nghĩa là
số lượng các giao dịch hoạt động cùng một lúc) có lẽ là một tham số quan trọng
nhất trong các hệ phân tán. Do vậy cơ chế điều khiển đồng thời cố gắng tìm ra
một phương án thích hợp, vừa duy trì được tính nhất quán của CSDL, vừa duy
trì được mức độ đồng thời cao.
Chúng ta có thể chỉ ra rằng chức năng cơ bản của bộ điều khiển đồng thời là
tạo ra một lịch biểu khả tuần tự để thực hiện các giao dịch đang chờ đợi.
Có một số cách phân loại các phương pháp điều khiển đồng thời. Một chế độ
hiển nhiên là phân tán CSDL. Một số thuật toán đã được đề xuất đòi hỏi có một
CSDL nhân bản hoàn toàn, còn một số khác có thể hoạt tác trên các CSDL phân
hoạch hoặc nhân bản một phần. Có hai lớp thuật toán điều khiển đồng thời là lớp
dựa trên các truy xuất độc quyền đến dữ liệu dùng chung (Khoá chốt) và lớp

8
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán
thuật toán cố gắn sắp xếp thứ tự thực hiện giao dịch theo một tập quy tắc (nghi
thức). Các lớp thuật toán này dựa trên hai quan điểm khác nhau:
Quan điểm bi quan: Cho rằng có nhiều giao dịch sẽ trương tranh với nhau
Quan điểm lạc quan: cho rằng không có quá nhiều giao dịch trương tranh với
nhau
Vì vậy chúng ta sẽ xếp các cơ chế điều khiển đồng thời thành hai nhóm lớn:
Các phương pháp điều khiển đồng thời lạc quan và Các phương pháp điều khiển
đồng thời bi quan . Các thuật toán bi quan đồng bộ hoá việc thực hiện đồng thời
của các giao dịch trước khi thực hiện chúng , trong khi đó các thuật toán lạc
quan để việc đồng bộ hoá các giao dịch cho đến khi chúng kết thúc.
Các thuật toán điều khiển đồng thời phân tán: Điều khiển đồng thời bằng
khoá chốt, Điều khiển đồng thời bằng thời dấu, Điều khiển đồng thời lạc quan
1.6. Độ khả tín của hệ quản trị CSDL phân tán
Một hệ CSDL phân tán khả tín là hệ thống có thể tiếp tục xử lý các yêu cầu
của người sử dụng gây cả khi hệ thống nền không khả tín. Nói khác khác ngây
cả khi các thành phần của môi trường tính toán phân tán ngừng hoạt động, hệ
quản trị CSDLphân tán khả tín phải có khả năng tiếp tục thực hiện các yêu cầu
của người sử dụng mà vẫn không vi phạm tính nhất quán của CSDL.
1.6.1. Hệ thống, trạng thái và sự cố:
Trong ngữ cảnh của độ khả tín, thuật ngữ hệ thống (system) muốn nói đến
một cơ chế được cấu tạo bởi một tập các thành phần và tương tác với môi trường
bằng cách đáp ứng với các kích thích từ môi trường nhờ một mẫu hành vi nhận
ra được
Có nhiều cách để mô hình hoá sự trương tác giữa phần cứng và phần mềm trong
một hệ thống máy tính. Một phương pháp là xử lý mã lệnh như là bản thiết kế
của một hệ thống từu trượng, các thành phần của nó là các đối tượng phần cứng
và phần mềm mà chúng được thao tác trong quá trình thực hiện chương trình.
Một cách khác là đặc tả trường minh mỗi thành phần phần cứng và phần mềm,
và để bản thiết kế trình bày cách tương tác của các thành phần này với nhau.

9
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán

Hình 0.5 Sơ đồ hệ thống


Trạng thái ngoại giới của hệ thống có thể được định nghĩa là sự đáp ứng mà
hệ thống đưa ra đối với kích thích bên ngoài, vì vậy có thể nói rằng hệ thống
thay đổi các trạng thái ngoại giới theo các kích thích được lập từ môi trường.
Chúng ta có thể định nghĩa tương tự về trạng thái nội tại của một hệ thống . cũng
có thể định nghĩa trạng thái nội tại là hợp của các trạng thái ngoại giới của các
thành phần tạo ra hệ thống. Và hệ thống cũng thay đổi trạng thái nội tại của nó
để đáp lại kích thích từ môi trường.
Hành vi của hệ thống khi đáp ứng với tất cả các kích thích khả hữu từ môi
trường cần được trình bày trong một đặc tả chính thức về hành vi của nó. Đặc tả
chỉ rõ hành vi hợp lệ của mỗi trạng thái hệ thống.
Mọi sự lệch lạc của hệ thống khác với hành vi được nói đến trong đặc tả đều
được xem là sự cố. Trong một trạng thái bất khả tín, hệ thống có thể chuyển
sang một trạng thái nội tại không tuân theo đặc tả. Các dịch chuyển ra khỏi
trạng thái này cuối cùng sẽ gây ra sự cố hệ thống, những trạng thái nội tại như
thế gọi là trạng thái sinh lỗi, phần trạng thái không đúng được gọi là một lỗi
trong hệ thống. Một lỗi trong trạng thái nội tại của các thành phần hoặc trong
thiết kế của hệ thống được gọi là sai sót trong hệ thống. Vì vậy sai sót sẽ sinh ra
lỗi và dẫn đến sự cố hệ thống.

10
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán

Hình 0.6 Nguồn gốc của các sự cố hệ thống

1.6.2. Độ khả tín và độ khả dụng


- Độ khả tín (reliability) muốn nói đến xác suất mà hệ thống đang xét không
trải qua bất kỳ sự cố trong một khoảng thời gian đã cho. Điển hình nó được sử
dụng để mô tả các hệ thống không sửa chữa được (như các máy tính dùng trong
không gian), hoặc trong các hoạt động quan trọng đến nỗi mọi thời gian dừng lại
để sử chữa đều không được chấp nhận.
- Độ khả dụng (availability) Nói đến xác suất hệ thống còn hoạt động theo đặc
tả của nó tại một thời điểm t đã cho. Một số sự cố có thể xảy ra trước thời điểm
t, nhưng nếu chúng đã được sửa chữa thì hệ thống vẫn khả dụng tại thời điểm t.
rõ ràng là độ khả dụng đề cập đến các hệ thống có thể sửa chữa được.
1.6.3. Sự cố trong hệ quản trị CSDL phân tán
a. Nguyên do của sự cố
Các sự cố mềm chiếm hơn 90% các sự cố của phần cứng. Có ba nghiên cứu số
liệu thống kê đã chỉ ra phần trăm các loại sự cố như sau:

11
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán

b. Các loại sự cố (Có 4 loại sự cố)


 Sự cố giao dịch : Giao dịch có thể bị sự cố vì một số lý do. Sự cố có thể
do một lỗi trong giao dịch, gây ra bởi dữ liệu nhập không đúng hoặc do phát
hiện ra một khoá cài tiềm tàng hoặc hiện hữu. Hơn nữa một số thuật toán điều
khiển đồng thời không cho phép một giao dịch tiến hành hoặc thậm chí là chờ
đợi nếu dữ liệu mà giao dịch muốn truy xuất đang được một giao dịch khác truy
xuất. Điều này cũng có thể được xem là một sự cố. Cách tiếp cận thông thường
cho sự cố giao dịch là huỹ bỏ giao dịch, sau đó dặt lại CSDL về trạng thái của
nó trước khi khởi động giao dịch này.
 Sự cố vị trí (Hệ thống): Sự cố này có thể từ sự cố phần cứng (bộ xử lý,
bộ nhớ chính, nguồn điện , vân vân)hoặc từ sự cố phần mềm (có bọ trong hệ
điều hành hoặc hệ quản trị CSDL). Điểm quan trọng là một sự cố hệ thống luôn
làm mất nội dung của bộ nhớ chính. Vì thế dẫn đến việc đánh mất mọi phần của
CSDL đang có trong vùng nhớ đệm. Tuy nhiên CSDL lưu trong bộ nhớ thứ cấp

12
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán
được xem là an toàn và chính xác. Nói theo thuật ngữ CSDL phân tán, sự cố hệ
thống thường được gọi sự cố vị trí vì chúng làm cho vị trí đó ngưng hoạt động
và những vị trí khác trong hệ thống phân tán không thể tiếp cận được nó.
 Sự cố vật liệu (đĩa): Sự cố này liên quan đến sự cố của các thiết bị lưư
trữ thứ cấp dùng để lưu trữ CSDL. Những sự cố này có thể do lỗi của hệ điều
hành cũng như những sai sót phần cứng, chẳng hạng như vỡ đầu đọc hoặc hư hại
bộ điều khiển. Điểm quan trọng theo quan điểm độ khả tín của DBMS đó là tất
cả hoặc một phần CSDL trên thiết bị đó được xem như bị huỷ hoại hoặc không
thể truy xuất được. Ghép đôi đĩa và duy trì các bản lưu của CSDL là những kỹ
thuật thông thường để giải quyết loại vấn đề này.
 Sự cố đƣờng liên lạc ( truyền thông)
Ba sự cố trên đều có trong hệ tập trung lẫn phân tán, còn sự cố truyền thông chỉ
có trong các hệ phân tán. Sự cố này là do lỗi trong các thông báo, các thông báo
vô trật tự, thông báo bị thất lạc (hoặc không phân phối thông báo) và sự cố
đường liên lạc.
Hai lỗi đầu tiên thuộc trách nhiệm của mạng máy tính, còn các thông báo bị
thất lạc hoặc không phân phối được thường là hậu quả các sự cố đường truyền
hoặc sự cố vị trí đến. Nếu đường truyền bị hư, ngoài vấn đề làm mất các thông
báo tuyền qua, nó cũng có thể phân cắt mạng thành hai hoặc nhiều nhóm tách
rời. Tình huống này được gọi là phân hoạch mạng, lúc đó các vị trí trong mỗi
phân hoạch có thể vẫn tiếp tục hoạt động. Khi đó việc thực hiện các giao dịch
cần truy xuất đến nhiều phân hoạch trở thành một vấn đề quan trọng. Duy trì
tính nhất quán tương hỗ của CSDL là một vấn đề có ý nghĩa quan trọng, đặc biệt
nếu CSDL được nhân bản trong nhiều phân hoạch.
Nếu các thông báo không phân phối được, ta giả thiết rằng mạng sẽ không
làm gì, nó sẽ phân phối cho các nơi khi dịch vụ được tái lập lại và sẽ không
thông tin cho tiến trình gửi biết rằng thông báo không thể phân phối đi được.
Nói vắn tắt, thông báo chỉ đơn giản là bị thất lạc. Chúng ta đưa ra giả thiết này

13
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán
bởi vì nó biểu diễn sự mong chờ ít nhất từ mạng và trao trách nhiệm giải quyết
những sự cố này cho DBMS phân tán.
Một kết quả từ giả thiết này là trách nhiệm phát hiện ra rằng một thông báo
không phân phối được sẽ để lại cho chương trình ứng dụng (trong trường hợp
này là các DBMS phân tán).Việc phát hiện này tạo ra hướng giải quyết là dùng
bộ đếm thời gian và cơ chế quá hạn để theo dõi xem đã qua bao nhiêu lâu kể từ
khi vị trí gửi không nhận được hồi đáp của vị trí đến. Thời gian quá hạn nhất
thiết phải được đặt lớn hơn khoảng thời gian trể truyền tải tối đa của một thông
báo trên mạng.
1.6.4. Nghi thức khả tín cục bộ
a. Các vấn đề kiến trúc
CSDL ổn định được lưư trên thiết bị ổn định, thiết bị ổn định thường được
cài đặt bằng phương tiện các đĩa từ ghép đôi với khả năng lưu các bản dữ liệu
giống nhau luôn cần phải gửi nhất quán tương hỗ.
Bộ quản lý đệm BM gửi một số dữ liệu mới được truy xuất trong vùng đệm,
điều này làm tăng hiệu quả truy xuất, phần CSDL đang hiện diện trong vùng
đệm gọi là CSDL khả hủy. LRM (bộ quản lý khôi phục cục bộ)thực hiện các
thao tác thay cho giao dịch chỉ trên CSDL khả hủy mà về sau sẽ được ghi lại vào
CSDL ổn định.

Hình 0.7 Giao diện giữa LRM và BM


Khi LRM muốn đọc một trang dữ liệu dùm cho một giao dịch, chính xác là
cho một thao tác của giao dịch. Nó đưa ra lệnh fetch, nộp vào trang mà nó muốn
đọc. BM kiểm tra xem trang đó cá trong vùng đệm hay không và nếu có trong

14
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán
đó thì trao cho giao dịch đang yêu cầu; nếu không, nó sẽ đến CSDL ổn định và
đọc trang đó vào chỗ còn trống trong vùng đệm, nếu không còn chỗ trống, nó
chọn một trong những trang đệm và ghi trở lại vào bộ nhớ ổn định và đọc trang
đang yêu cầu vào chỗ đó. LRM ghi lại trang đệm nhờ lênh Flush.
b. Các thông tin khôi phục
Ta giả thiết rằng chỉ xảy ra các sự cố hệ thống, khi xảy ra sự cố hệ thống,
CSDL khả hủy sẽ bị mất. Vì thế DBMS phải duy trì một số thông tin về trạng
thái của nó vào lúc xảy ra sự cố, nhờ đó có khả năng đưa CSDL trở về trạng thái
hiện hữu của nó khi có sự cố. Chúng ta gọi đây là thông tin khôi phục.
- Thông tin khôi phục về cập nhật tại chỗ: Cập nhật tại chỗ sẽ làm mất giá trị
trước đó của mục dữ liệu bị ảnh hưởng. Ta cần gửi đủ các thông tin cần thiết về
những thay đổi trạng thái CSDL, tạo dể dàng cho việc khôi phục CSDL trở lại
trạng thái gắn bó sau một sự cố, thông tin này được duy trì trong nhật ký CSDL .
Vì vậy mỗi giao dịch cập nhật không chỉ thay đổi CSDL mà còn được ghi nhận
trong nhật ký CSDL.

Hình 0.8 Thực thi các thao tác cập nhật


1.6.5. Các nghi thức khả tín phân tán.
Giống như các nghi thức khả tín cục bộ, các phiên bản phân tán nhằm duy trì
tính chất nguyên tử và tính chất bền vững của các giao dịch phân tán thực hiện
trên một số CSDL. Các nghi thức này tập trung giải quyết các vấn đề thực hiện
phân tán các lệnh begin_transection, read, write, commit, recover. Chúng ta
giả thiết rằng tại vị trí nguồn của giao dịch có một tiến trình thực hiện các thao
tác của nó. Tiến trình này được gọi là điều phối viên, điều phối viên trao đổi với
các thành viên tại những vị trí có tham gia vào việc thực hiện các thao tác của
giao dịch

15
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán
- Các thành phần của nghi thức khả tín phân tán:
Kỹ thuật khả tín bao gồm ba nghi thức: uỷ thác, kết thúc và khôi phục. Các
nghi thức ủy thác và khôi phục đặc tả cách thức thực hiện các lệnh ủy thác và
khôi phục. Còn nghi thức kết thúc là như nhau đối với đối với các hệ phân tán.
Giả sử rằng trong khi thực hiện một giao dịch phân tán, một trong các vị trí có
tham gia vào việc thực hiện này có sự cố; chúng ta muốn các vị trí còn lại kết
thúc giao dịch bằng cách nào đó. Kỹ thuật nhằm giải quyết tình huống này được
gọi là nghi thức kết thúc.
1.7. Giải thuật đảm bảo gắn bó dữ liệu
Có nhiều loại giải thuật đảm bảo gắn bó dữ liệu. Ở đây ta đưa ra giải thuật hai
pha tuyến tính (Linear two phase commit - 2PC). Trong đó các thành viên có thể
trao đổi với nhau. Chúng ta giả thiết rằng thứ tự giữa các vị trí có tham gia vào
việc thực hiện một giao dịch là 1, 2,…,N với điều phối viên là vị trí đầu tiên giải
thuật này hoạt động như sau:
Điều phối viên gửi thông báo prepare đến thành viên 2. Nếu thành viên 2
chưa sẵn sàng ủy thác giao dịch, nó gửi thông báo biểu quyết hủy bỏ Vote-abort
(VA) đến thành viên 3 và giao dịch bị hủy tại thời điểm này (hủy bỏ đơn phương
của 2). Ngược lại nếu thành viên 2 đồng ý ủy thác, nó gửi thông báo vote-
commit (VC) cho thành viên 3 rồi chuyển sang trạng thái READY. Quá trình
này tiếp tục cho đến khi một biểu quyết uỷ thác đến được thành viên N. Đến đây
kết thúc pha đầu tiên. Nếu N quyết định ủy thác nó gửi trở lại cho thành viên N-
1 thông báo global-commit (GC); bằng không, nó gửi một thông báo hủy bỏ
toàn cục global-abort (GA). Theo đó các thành viên chuyển sang trạng thái thích
hợp (COMMIT hoặc ABORT) và làm lan truyền thông báo trở về điều phối viên

16
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán

Hình 0.9 Cấu trúc giao tiếp 2 PC tuyến tính

17
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán

CHƢƠNG 2 THIẾT KẾ CƠ SỞ DỮ LIỆU PHÂN TÁN


2.1 Các chiến lƣợc thiết kế
2.1.1. Thiết kế từ trên xuống
Thiết kế khung nhìn có nhiệm vụ định nghĩa các giao diện cho người dùng
cuối. Thiết kế khái niệm là quá trình xem xét tổng thể mô hình hệ thống, xác
định loại thực thể và mối liên hệ giữa chúng. Quá trình này chia thành hai nhóm
hoạt động có liên quan, phân tích thực thể và phân tích chức năng.
Lược đồ khái niệm toàn cục và thông tin thu được trong thiết kế khung nhìn
là đầu vào cho thiết kế phân tán. Mục tiêu thiết kế lược đồ khái niệm cục bộ
bằng cách phân tán các thực thể cho các vị trí trong hệ thống phân tán.
Bước thiết kế phân tán là chia các quan hệ thành nhiều quan hệ con, gọi là các
mảnh (fragment) và các mảnh sẽ được phân tán. Hoạt động thiết kế phân tán sẽ
gồm hai bước: phân mảnh (fragmentation) và định vị (location) dữ liệu cho các
trạm (site) sau phân mảnh.
Bước thiết kế vật lý ánh xạ lược đồ khái niệm cục bộ sang các thiết bị lưu trữ
vật lý hiện có tại các vị trí tương ứng. Đầu vào cho quá trình này là lược đồ khái
niệm cục bộ và thông tin truy xuất các mảnh. Bước theo dõi và bảo trì cung cấp
phản hồi về yêu cầu hệ thống.
2.1.2. Thiết kế từ dưới lên
Thiết kế từ trên xuống hoàn toàn thích hợp khi thiết kế CSDL từ đầu. Tuy
nhiên, trong thực tế thường có sẵn một số CSDL phân tán ở nhiều nơi và nhiệm
vụ thiết kế CSDL phân tán là phải tích hợp chúng thành một CSDL phân tán.
Khi đó, cách tiếp cận từ dưới lên sẽ thích hợp hơn. Bước đầu tiên trong thiết kế
từ dưới lên là xác định các lược đồ khái niệm cục bộ. Quá trình thực hiện này
bao gồm việc tích hợp các lược đồ khái niệm cục bộ thành lược đồ khái niệm
toàn cục.

18
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán
2.2. Các vấn đề thiết kế cơ sở dữ liệu phân tán
2.2.1. Vấn đề phân rã trên cơ sở dữ liệu tập trung

 Phép phân rã dọc: Tách theo nhóm thuộc tính dựa vào khóa/siêu khóa và các
ràng buộc dữ liệu (phụ thuộc hàm). Phép toán đại số quan hệ áp dụng là phép
chiếu trên lược đồ quan hệ R.
 Phép phân rã ngang: Tách theo các bộ (đối tượng) trên một quan hệ dựa vào
một hội vị từ sơ cấp. Phép toán đại số quan hệ áp dụng là phép chọn trên quan
hệ r(R).
2.2.2. Sự cần thiết phân mảnh dữ liệu phân tán
Hệ phân tán trước đây, dữ liệu được cấp phát dựa trên toàn bộ tập tin cho các
nút trên một mạng máy tính. Vì thế, bài toán phân mảnh dữ liệu được xem như
không cần thiết. Tuy nhiên, như vấn đề đặt ra ở tính cấp thiết của việc nghiên
cứu trong luận án, chúng ta phải xem xét đến vần đề phân mảnh, để có được các
đơn vị phân tán thích hợp, khi một quan hệ không còn là một đơn vị dữ liệu đáp
ứng được nhiều yêu cầu khác nhau trong thực tiễn.
Hầu hết, khung nhìn (view) của các chương trình ứ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ệ,
chỉ là các tập con của quan hệ. Kết quả áp dụng này, xem tập con mỗi quan hệ là
một đơn vị phân tán, và là điều thích hợp nhất cho sự cần thiết như trên.
Ngoài ra, nếu nhiều ứng dụng có các khung nhìn được định nghĩa trên một quan
hệ cho trước, được phân tán tại những vị trí khác nhau, ta có hai cách lựa chọn
cho đơn vị phân tán toàn bộ quan hệ: hoặc quan hệ không được lặp lại, được lưu
giữ ở một vị trí duy nhất. Hoặc nó được lặp lại tất cả, hoặc một số các vị trí có
truy cập ứng dụng. Lựa chọn đầu, tạo ra một khối lượng lớn các truy cập dữ liệu
từ xa không cần thiết. Trong khi đó, với lựa chọn thứ hai, cách thức lặp lại mối
quan hệ sẽ tạo ra những nhân bản không cần thiết, dễ xảy ra dư thừa dữ liệu hay
không đảm bảo nhất quán dữ liệu khi cập nhật dữ liệu.
2.2.3. hững t n tại trong phân mảnh dữ liệu

 Khi một ứng dụng có xung đột trong yêu cầu, có thể dẫn đến việc phân mảnh
một quan hệ thành các mảnh khác biệt nhau.
 Vấn đề tồn tại về việc kiểm soát dữ liệu ngữ nghĩa, kiểm tra tính toàn vẹn dữ
19
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán
liệu trong bài toán phân mảnh cũng được xem xét cẩn thận, vì dễ dẫn đến kết
quả phân mảnh có thể bị sai sót tại nhiều vị trí không hợp lệ.
2.3. Kỹ thuật thiết kế cơ sở dữ liệu phân tán
Kỹ thuật thiết kế CSDL phân tán bao gồm bài toán phân mảnh dữ liệu và
định vị (cấp phát) các mảnh dữ liệu cho các trạm (site) tương ứng của một hệ
CSDL phân tán.
2.3.1. Bài toán phân mảnh dữ liệu phân tán
Bài toán phân mảnh thường quan tâm đến hai kỹ thuật phân mảnh ngang và
phân mảnh dọc. Phân mảnh ngang tiến hành phân chia một quan hệ r(R) theo
các bộ. Mỗi mảnh là một quan hệ con chứa các bộ t của quan hệ r(R). Phân
mảnh dọc tiến hành phân chia theo tập thuộc tính trên lược đồ quan hệ R, thành
các lược đồ quan hệ con (R1, R2,…, Rm). Các thuộc tính trong mỗi lược đồ quan
hệ con thường được truy vấn cùng nhau. Ngoài ra còn có loại phân mảnh hỗn
hợp kết hợp cả hai kỹ thuật trên.
Một số đặc tính cần thỏa mãn trong kỹ thuật phân mảnh bao gồm:

 Tính độc lập dữ liệu


 Tính rút gọn (loại bỏ dư thừa dữ liệu)
 Đặc tính truy xuất hiệu suất cao
 Đặc tính hồi phục và điều khiển tương tranh
 Đặc tính về quan điểm biệt lập và an toàn
2.3.2. Bài toán định vị phân tán
Tính tối ưu định vị có thể được định nghĩa ứng với hai số đo:

 Chi phí nhỏ nhất: Hàm chi phí bao gồm chi phí lưu trữ và chi phí truy vấn
mảnh Fi tại trạm Sj, chi phí cập nhật Fi tại tất cả các trạm lưu trữ nó và chi phí
trao đổi thông tin. Mục tiêu của bài toán định vị là xác định một lược đồ định vị
để cực tiểu hóa hàm chi phí này.
 Hiệu năng: Chiến lược định vị được thiết kế nhằm duy trì hiệu năng lưu lượng
.
 Trong thời gian ngắn nhất mà vẫn duy trì được chi phí xử lý thấp nhất, thời
gian đáp ứng thấp và tăng tối đa lưu lượng.

20
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán
2.4. Các quy tắc phân mảnh đúng đắn

 Tính đầy đủ: Nếu một thể hiện quan hệ r(R) được phân thành các mảnh
(R1, R2,…,Rn), thì mỗi mục dữ liệu có thể gặp trong R cũng có thể gặp trong một
hoặc nhiều mảnh Ri.
 Tính tái thiết được: Nếu một quan hệ r(R) được phân thành các mảnh (R 1,
R2,…,Rn), thì cần phải định nghĩa một toán tử quan hệ  sao cho:
 R=R1  R2  ,... Rn , RiFr và 1  i = n.
 Tính tách biệt: Nếu quan hệ r(R) được phân mảnh ngang thành các mảnh
(R‟1, R‟2,…,R‟n) và mục dữ liệu di nằm trong mảnh R‟j thì nó sẽ không nằm
trong mảnh R‟k nào khác (với k ≠ j).
2.5. Thảo luận về thiết kế cơ sở dữ liệu phân tán
Về tính trong suốt nhân bản (replication transparency), một đặc tính cần thiết khi
tính toán hiệu năng cao, về độ tin cậy và tính sẵn sàng của CSDL phân tán. Đặc
tính này làm tăng khả năng tham chiếu, khả năng lưu giữ các nhân bản khác của
dữ liệu trên hệ thống khi xảy ra các vấn đề tương tranh, xung đột hay tắc nghẽn
dữ liệu
Tính trong suốt phân mảnh (fragmentation transparency) trên các hệ CSDL phân
tán, thể hiện các mảnh sẽ được xử lý như một đối tượng CSDL độc lập sau phân
mảnh. Đặc tính này có thể sẽ làm giảm đi các phát sinh lỗi không mong muốn
của việc nhân bản dữ liệu.
2.6. Thiết kế cơ sở dữ liệu phân tán bằng các kỹ thuật phân mảnh ngang

 Phân mảnh ngang nguyên thủy là phân mảnh được thực hiện dựa trên các vị từ
được định nghĩa trên chính quan hệ đó.
 Phân mảnh ngang dẫn xuất là phân mảnh được thực hiện dựa trên các vị từ
được định nghĩa trên một quan hệ khác.
Yêu cầu thông tin về phân mảnh ngang
 Thông tin về CSDL: Trước tiên là lược đồ toàn cục, quan tâm đến các quan hệ
sẽ kết nối lại với nhau theo cách nào.
 Thông tin về ứng dụng: Quá trình phân mảnh, cần đầy đủ thông tin định tính
và định lượng. Thông tin định tính hướng dẫn cho hoạt động phân mảnh dữ liệu.
Thông tin định lượng sử dụng trong mô hình định vị dữ liệu.
 Thông tin định tính cơ bản gồm các vị từ dùng trong câu truy vấn, đó là vị từ
đơn (simple predicate) và vị từ hội sơ cấp (minterm predicate)
21
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán
hân mảnh ngang ngu ên thủ
Phân mảnh ngang nguyên thủy được định nghĩa bằng một phép toán chọn trên
các quan hệ chủ của một lược đồ CSDL. Quan hệ r(R) sẽ được phân mảnh
ngang thành các Ri được định nghĩa: Ri = Fi(R), 1 ≤ i ≤ z , trong đó Fi là công
thức chọn được sử dụng để có được mảnh Ri. Nếu Fi có dạng chuẩn hội, luôn
khẳng định rằng Fi là một vị từ hội sơ cấp.
Một đặc tính quan trọng của các vị từ đơn là tính đầy đủ và tính cực tiểu. Tập
các vị từ đơ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 .

hân mảnh ngang dẫn xuất


Phân mảnh ngang dẫn xuất dựa trên các quan hệ thành viên của một đường liên
kết theo phép toán chọn trên quan hệ chủ. Phân mảnh ngang dẫn xuất tiến hành
phân chia các quan hệ thành viên thành các phân mảnh của quan hệ chủ, dựa
trên các thuộc tính của quan hệ thành viên. Liên kết giữa quan hệ chủ và quan hệ
thành viên được định nghĩa như một kết nối bằng (equi-join). Kết nối bằng có
thể được cài đặt nửa kết nối (semi-join).

2.7. Phân tích bài toán cho đề tài xây dựng đồng bộ quản lý học liệu
2.7.1. Lựa chọn phương pháp phân tán
CSDL quản lý học liệu sẽ được lựa chọn phương pháp phân tán partition, nghĩa
là việc thực hiện phân chia bảng dữ liệu của quan hệ tổng thể thành các bảng dữ
liệu độc lập nhưng có cấu trúc giống hệt nhau, sau đó định vị chúng vào các vị
trí thích hợp.
Phương pháp partition sử dụng kỹ thuật phân mảnh ngang cơ sở trong quá trình
phân tán dữ liệu. Các CSDL từ xa kết nối và đồng bộ với nhau thông qua Data
Replication, di chuyển và điều hoà những thay đổi dữ liệu xảy ra sau khi 1
snapshot khởi động (initial snapshot) được tạo. Mỗi merge publication có một
merge agent, liên kết và cập nhật được với cả hai Publisher và Subscriber

22
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán
2.7.2 Bài toán
Qua khảo sát thực tế ta thấy công việc quản lý học liệu ở nhiều trường học
còn khá thủ công. Do vậy mục đích của của đề tài này là giảm tới mức tối thiểu
các công việc thủ công để đảm bảo tính chính xác, tin cậy của công việc. Tuy
nhiên để là tốt việc đó cần tìm hiểu kỹ những vấn đề cụ thể mà bài toán đặt ra và
cách giải quyết các vấn đề đó.
Đối tượng cần quản lý là thông tin về tất cả các tài liệu và một số các
thông tin khác của các bộ phận phòng ban.

2.7.3 hân tích thực thể


Sau khi phân tích các thông tin chúng ta tổ chức xây dựng các thực thể và
chuẩn hóa chúng được các thực thể như sau:

Khoa :
FieldName Type Constraint
MAKHOA nChar(10) Primary Key
TENKHOA nVarchar(50) Unique, not NULL

Lớp :
FieldName Type Constraint
MALOP nChar(10) Primary Key
TENLOP nVarchar(50) Unique, not NULL
KHOAHOC nchar(9) not NULL
MAKHOA nChar(10) FK, not NULL

Table Sinhvien:
FieldName Type Constraint
MASV nChar(10) Primary key
HO nVarchar(50) not NULL
TEN nVarchar(10) not NULL
MALOP nChar(10) Foreign Key, not NULL
PHAI Bit Default : false (false: Nam; true:
Nữ)
23
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán

NGAYSINH DateTime
DIACHI nVarchar(100)
DANGHIHOC Bit Default : false
PASSWORD nVarchar(40) Default: „‟

Cấu trúc của Table Monhoc:


FieldName Type Constraint
MAMH nChar(10) Primary key
TENMH nVarchar(50) Unique Key, not NULL
SOTIET_LT Int not NULL
SOTIET_TH Int not NULL

Cấu trúc của Table LOPTINCHI:


FieldName Type Constraint
MALTC Int Primary Key (tự động)
NIENKHOA nChar(9) not NULL
HOCKY Int not NULL, 1 <=hocky<=4
MAMH nChar(10) Foreign Key, not NULL
NHOM Int not NULL , >=1
MAGV nChar(10) Foreign Key, not NULL
MAKHOA nChar(10) Foreign Key, not NULL
SOSVTOITHIEU SmallInt not NULL, >0
HUYLOP bit Default : false
Unique key : NIENKHOA+ HOCKY + MAMH + NHOM

Cấu trúc của Table DANGKY:


FieldName Type Constraint
MALTC int Foreign Key, not NULL
MASV nChar(10) Foreign Key, not NULL
DIEM_CC int Điểm từ 0 đến 10
DIEM_GK float Điểm từ 0 đến 10, làm tròn đến
0.5
24
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán

DIEM_CK float Điểm từ 0 đến 10, làm tròn đến


0.5
HUYDANGKY bit Default : false
Primary key : MALTC+ MASV

Cấu trúc của Table HocPhi


FieldName Type Constraint
MASV nChar(10) Foreign Key, not NULL
NIENKHOA nchar(9) not NULL
HOCKY Int not NULL, 1 <=hocky<=4
HOCPHI Int not NULL, >0
Primary key : MASV + NIENKHOA + HOCKY

Cấu trúc của Table CT_DongHocPhi


FieldName Type Constraint
MASV nChar(10)
NIENKHOA nchar(9)
HOCKY Int
NGAYDONG Date Default : GetDate()
SOTIENDONG Int not NULL, >0
Primary key : MASV + NIENKHOA + HOCKY+ NGAYDONG

2.7.3. hân tích êu cầu hệ thống

a. Nhập liệu: gồm các công việc sau


- Nhập danh mục lớp: Form có các chức năng sau Thêm, Xóa, Ghi, Phục hồi,
Thoát; Lớp thuộc khoa nào thì khoa đó nhập. Trên từng khoa ta chỉ thấy được
danh sách lớp thuộc khoa đó.
- Nhập danh sách sinh viên: dưới dạng SubForm. Yêu cầu: giống như lớp
- Nhập môn học: trên form Nhập môn học có các nút lệnh : Thêm, Xóa, Ghi,
Phục hồi, Thoát
- Mở Lớp tín chỉ: có các chức năng Thêm, Xóa, Ghi, Phục hồi thông tin của lớp
tín chỉ
- Đăng ký lớp tín chỉ: user nhập vào mã sinh viên của mình, chương trình tự
động in ra các thông tin của sinh viên (họ, tên, mã lớp). Kế tiếp, user nhập vào
25
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán
Niên khóa, Học kỳ, chương trình sẽ tự động lọc ra các lớp tín chỉ đã mở trong
niên khóa, học kỳ đó để sinh viên đăng ký (chưa hủy). Dữ liệu in ra gồm :
MAMH, TENMH, nhóm, Hoten GV giảng, , số sv đã đăng ký;
- Nhập điểm: Điểm thuộc khoa nào thì khoa đó nhập hoặc PGV nhập. User
nhập vào Niên khóa, Học kỳ, môn học, nhóm; click nút lệnh Bắt đầu thì chương
trình tự động lọc ra các sinh viên có đăng ký trên lớp tín chỉ đó theo dạng sau,
sau đó user chỉ nhập điểm vào. Các
Mã SV Họ tên SV Điểm Điểm giữa Điểm cuối Điểm hết môn
chuyên cần kỳ kỳ
(read only) (read only) (tự động tính,
read only)

Điểm hết môn = Điểm CC * 0.1 + ĐCK * 0.6


Sau khi nhập điểm thi xong, click nút lệnh „Ghi điểm‟ thì mới ghi hết điểm về
CSDL.
- Đóng học phí: login thuộc nhóm PkeToan mới được quyền vào module này.
(Form này trình bày theo dạng SubForm). Khi user chọn 1 dòng trên lưới, thì sẽ
tự động lọc ra chi tiết đóng học phí của niên khóa, học kỳ đó.
User nhập vào mã SV, chương trình tự động load lên họ tên, mã lớp và 1 bảng
chứa tòan bộ thông tin đóng học phí của sinh viên ( theo thứ tự Niên khóa, học
kỳ):

Niên khóa Học kỳ Học phí Số tiền đã đóng Số tiền cần đóng
(tự động tính, (tự động tính, read
read only) only)
Trên form này, User thêm vào thông tin niên khóa, học kỳ, học phí cả học kỳ,
sau đó click nút Ghi để ghi dữ liệu vào DB; chi tiết đóng học phí sẽ có dạng sau:
Ngày đóng Số tiền đóng

b. Phân quyền: Chương trình có các nhóm : PGV (phòng giáo vụ), KHOA, SV,
PKT (phòng kế toán)
- Nếu login thuộc nhóm PGV thì login đó có thể chọn bất kỳ khoa nào để toàn
quyền làm việc bằng cách chọn tên khoa, và tìm dữ liệu trên phân mảnh tương
ứng. Login nhóm này được tạo tài khoản cho nhóm PGV, Khoa.

26
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán
- Nếu login thuộc nhóm Khoa thì ta chỉ cho phép toàn quyền làm việc trên khoa
đã đăng nhập và tìm dữ liệu trên phân mảnh tương ứng để in. Login này được
tạo tài khoản cho nhóm Khoa.
- Nhóm SV chỉ được đăng ký lớp tín chỉ. Tất cả sinh viên đều dùng chung 1
login đăng nhập.
- Nếu login thuộc nhóm PKT thì chỉ được quyền cập nhật dữ liệu đóng học phí
của sinh viên, chỉ được tạo tài khoản mới thuộc cùng nhóm.
Chương trình cho phép ta tạo các login, password và cho login này làm việc với
quyền hạn tương ứng. Căn cứ vào quyền này khi user login vào hệ thống, ta sẽ
biết người đó được quyền làm việc với mảnh phân tán nào hay trên tất cả các
phân mảnh.
c. In ấn : gồm các chức năng sau:
- Danh sách lớp tín chỉ: user nhập vào Niên khóa, học kỳ, chương trình in ra các
lớp tín chỉ đã mở (chưa hủy) trong Niên khóa, học kỳ thuộc khoa mà user đang
chọn. Mẫu in: ( in theo thứ tự tên môn học, nhóm)
KHOA XXXXXXXXXXXX
Niên khóa: ####-#### Học kỳ: #

STT Tên môn học Nhóm Họ tên GV giảng Số SV tối Số SV đã


thiểu đăng ký

Số lượng lớp đã mở: ###


- Danh sách sinh viên đăng ký lớp tín chỉ: user nhập vào Niên khóa, học kỳ,
môn học, nhóm, chương trình in ra danh sách theo thứ tự tăng dần tên+họ với
mẫu sau:
DANH SÁCH SINH VIÊN ĐĂNG KÝ LỚP TÍN CHỈ
KHOA XXXXXXXXXXXX
Niên khóa: ####-#### Học kỳ: #
Môn học: XXXXXXXXXXX – Nhóm: #

STT Mã SV Họ Tên Phái Mã lớp

Số sinh viên đã đăng ký: ###


- Bảng điểm môn học của 1 lớp tín chỉ: user nhập vào Niên khóa, học kỳ, môn
học, nhóm, chương trình in ra bảng điểm theo thứ tự tăng dần tên+họ với mẫu
sau:

27
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán
BẢNG ĐIỂM HẾT MÔN
KHOA XXXXXXXXXXXX
Niên khóa: ####-#### Học kỳ: #
Môn học: XXXXXXXXXXX – Nhóm: #

STT Mã Họ Tên Điểm Điểm Điểm Điểm hết


SV chuyên giữa cuối môn
cần kỳ kỳ

Số sinh viên: ###


- Phiếu Điểm: để in phiếu điểm cho một sinh viên dựa vào mã sinh viên do ta
nhập hay chọn từ trong một danh sách.
Phiếu điểm gồm có các cột: STT, TÊN MÔN HỌC, ĐIỂM.
- Thứ tự in điểm là theo tên môn học
- Điểm là điểm Max của các lần thi (nếu có).
- In danh sách đóng học phí của lớp: User nhập vào mã lớp, niên khóa, học kỳ,
chương trình sẽ in ra thông tin đóng học phí của sinh viên của niên khóa, học kỳ
đó với mẫu sau: (Sinh viên nào chưa đóng cũng in ra)
DANH SÁCH SINH VIÊN ĐÓNG HỌC PHÍ
MÃ LỚP: XXXXXXXXXXXX
KHOA: XXXXXXXXXXXXX

STT Họ và tên Học phí Số tiền đã đóng

Tổng số sinh viên: ###


Tổng số tiền đã đóng: #,###,##0 ( tiền chữ)
- Bảng điểm tổng kết: Bảng điểm tổng kết của 1 lớp dựa vào mã lớp nhập vào.
Điểm thi là điểm lớn nhất của các lần thi

28
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán

CHƢƠNG 3 XÂY DỰNG ĐỒNG BỘ DỮ LIỆU CHO BÀI


TOÁN “ HỆ THỐNG QUẢN LÝ TÍN CHỈ MÔN HỌC”
3.1. Qui trình quản lý đào tạo
Hiện nay, việc quản lý sinh viên theo học chế tín chỉ trong một số trường Đại
học Cao đẳng được thực hiện như sau:

 Phòng Đào Tạo tiếp nhận sinh viên nhập học, xếp lớp, mở lớp học phần.
 Mỗi sinh viên sẽ nhận được một tài khoản và tự đăng nhập vào hệ thống để
đăng ký học phần.
 Phòng Tài Vụ căn cứ vào số tín chỉ sinh viên đăng ký trong mỗi học kỳ để thu
học phí sinh viên.
 Kết quả học tập của sinh viên được Phòng Đào Tạo trực tiếp quản lý: nhập
điểm, tổng hợp, phân loại và xét học vụ mỗi hoc kỳ.
 Phòng Công Tác sinh viên căn cứ vào kết quả học tập và kết quả tham gia các
hoạt động để xét điểm rèn luyện, xét học bổng.
 Khoa trực tiếp quản lý sinh viên về chuyên cần, thông tin đề tài thực tập, nơi
thực tập, đề tài tốt nghiệp, phân giáo viên hướng dẫn.
 Ngoài ra, sinh viên cũng có thể đăng nhập vào hệ thống để xem thời khóa
biểu, lịch thi, bảng điểm kết quả học tập và cũng có thể đặt những câu hỏi nếu
có bất cứ vấn đề gì liên quan đến học tập.
3.2. Mô hình cơ sở dữ liệu phân tán trong quản lý
Hệ thống cơ sở dữ liệu quản lý đào tạo nên được tổ chức phân tán tới các bộ
phận (Khoa và các Phòng ban) trong Nhà trường, mỗi bộ phận sẽ có một cơ sở
dữ liệu chứa dữ liệu thuộc phạm vi của bộ phận và vận hành độc lập. Ngoài ra,
cần phải có một cơ sở dữ liệu dành riêng cho sinh viên xem điểm và đăng ký
học phần qua internet. Cơ sở dữ liệu tại Phòng Đào Tạo chứa toàn bộ cơ sở dữ
liệu tại các bộ phận. Để đảm bảo tính chính xác của dữ liệu, cơ sở dữ liệu tại
Phòng Đào Tạo và cơ sở dữ liệu tại các bộ phận trong Nhà trường phải có cơ
chế đồng bộ trực tuyến hai chiều thông qua một hệ thống mạng.
Ngoài server này, đề tài đề xuất một server dành riêng cho Khoa Khoa học máy
tính và một server dành riêng cho sinh viên. Mô hình này được minh họa bằng
hình vẽ bên dưới.
29
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán

Mô hình hệ thống quản lý đào tạo


3.3. Chọn lựa phƣơng pháp phân tán
Đề tài sẽ được lựa chọn phương pháp phân tán nhân bản một phần (nhân bản
kết hợp phân mảnh). Toàn bộ dữ liệu được lưu trữ tại cơ sở dữ liệu Phòng Đào
Tạo, việc phân tán dữ liệu đến các bộ phận được thực hiện bằng cách phân chia
bảng dữ liệu của các quan hệ tổng thể thành các bảng dữ liệu độc lập phù hợp
với chức năng và nhiệm vụ của từng bộ phận sau đó định vị chúng vào các vị trí
thích hợp. Mọi thay đổi dữ liệu tại các phòng ban sẽ được đồng bộ về Phòng
Đào Tạo và mọi thay đổi dữ liệu tại Phòng Đào Tạo cũng sẽ được đồng bộ về
các bộ phận liên quan.
Vấn đề ở đây là tại sao lại sử dụng nhân bản kết hợp phân mảnh mà không
sử dụng các phân mảnh tách biệt tại các phòng ban, khi đó Phòng Đào Tạo cần
thông tin bộ phận nào thì liên kết tới cơ sở dữ liệu của phòng ban đó để lấy dữ
liệu, bởi vấn đề nhân bản sẽ dẫn tới tình trạng dư thừa dữ liệu nên có thể lãng
phí không gian lưu trữ và nguy cơ gây nên nhiều vấn đề khi cập nhật dữ liệu?
Câu trả lời cho vấn đề này là việc truy xuất dữ liệu và cập nhật thông tin tại
Phòng ĐàoTạo được thực hiện rất thường xuyên, trong khi việc truy xuất dữ
liệu từ hai hay nhiều mảnh rồi nối hoặc hợp chúng lại với chi phí rất cao nên

30
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán
hiệu suất hoạt động bị giảm mạnh là điều có cơ sở. Ngày nay, việc tốn không
gian lưu trữ không còn là vấn đề được đặt lên hàng đầu mà là tốc độ xử lý, còn
các nguy cơ xung đột xảy ra khi cập nhật dữ liệu có thể giải quyết được trong hệ
thống quản lý đào tạo (sẽ được trình bày ở phần 3.5).
3.4. Giải pháp đồng bộ cơ sở dữ liệu phân tán
Hiện nay có rất nhiều giải pháp đồng bộ cơ sở dữ liệu phân tán khác nhau
như: Streams trong Oracle, Replication trong SQL Server, IBM Websphere
MQ…, mỗi loại điều có những ưu và nhược riêng. Trong phạm vi bài báo này
sẽ giới thiệu kỹ thuật đồng bộ Replication trong SQL Server.
Hình ảnh thêm vào

3.4.1. Thành phần chính trong Replication


 Publisher: Là server tạo dữ liệu để nhân bản tới server khác. Nó xác định dữ
liệu nào nhân bản, dữ liệu nào thay đổi và lưu thông tin về các nhân bản tại
server đó.
 Subscriber: Là server nhận nhân bản và các hành động cập nhật dữ liệu từ
Publisher. Một Subscriber có thể là một Publisher của các Subscriber khác.
 Distributor: Là server chứa cơ sở dữ liệu phân tán, là nơi lưu và chuyển dữ
liệu nhân bản từ Publisher tới Subscriber.
 Publication: Là tập hợp các mẩu dữ liệu, mỗi mẩu là một nhóm các dữ liệu
được nhân bản. Một mẩu có thể bao gồm một bảng hay chỉ một vài hàng hay vài
cột.
3.4.2. Các loại Replication
 Snapshot Replication: Đây là loại nhân bản đơn giản nhất, nó sao chép toàn bộ
dữ liệu cần nhân bản từ Publisher tới Subscriber. Khi có thay đổi, nhân bản
Snapshot gởi tất cả dữ liệu tới cho Subscriber thay vì chỉ gởi những thay đổi.
Loại nhân bản này được đánh giá cao trong các ứng dụng chỉ đọc như tìm kiếm
hay các hệ thống yêu cầu dữ liệu mới nhất và dung lượng không lớn.
 Transactional Replication: Loại Replication này cho phép nhân bản hai đối
tượng khác nhau: table và stored procedure. Người dùng có thể chọn tất cả hay
một phần của bảng, một vài hay toàn bộ stored procedure để nhân bản. Loại
nhân bản này sử dụng transaction log để giữ những thay đổi trên dữ liệu (insert,

31
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán
update, delete) và lưu những thay đổi này lên cơ sở dữ liệu phân tán (tại
Distrubutor), những thay đổi này sẽ được chuyển đến các Subscriber theo một
trật tự nhất định.
 Merge Replication: Nhân bản này có tính độc lập cao nhất, Publisher và
Subscriber có thể làm việc độc lập và sẽ kết nối với nhau theo những khoảng
thời gian để hội tụ kết quả lại, cả hai Publisher và Subsciber đều có thể cập nhật
dữ liệu. Nếu xung đột xảy ra giữa các server thì những cung đột này sẽ được giải
quyết một cách tự động, khi đó bộ giải quyết đụng độ sẽ chon server có độ ưu
tiên cao hơn.
Merge Replication được thực hiện bởi hai tác nhân là snapshot agent và
merge agent. snapshot agent chuẩn bị những snapshot file chứa lược đồ và
những dữ liệu cần phân bố, lưu những file này vào snapshot folder trên
Distributor. Merger agent thực hiện những công việc khởi tạo snapshot đến
Subscriber, kết hợp những thay đổi dữ liệu xảy ra tại Publisher rồi gởi đến
Subscriber sau khi đã giải quyết tranh chấp.
Đối với mô hình cơ sở dữ liệu phân tán quản lý đào tạo đã trình này phần
trên, ta nhận thấy loại nhân bản Merge Replication là phù hợp với hệ thống nhất
vì loại nhân bản này cho phép cập nhật dữ liệu tại các server và tính độc lập của
các server rất cao. Publisher trong hệ thống quản lý đào tạo chính là server của
Phòng Đào Tạo và các Subscriber chính là các server tại các bộ phận (server
Khoa CNTT, server Khoa Khoa học máy tínhvà server sinh viên).
3.5. Các vấn đề trong đồng bộ dữ liệu
Một trong những vấn đề đáng quan tâm của việc đồng bộ dữ liệu là xung
đột, vấn đề này xảy ra khi hai hay nhiều server cùng một lúc cập nhật trên cùng
một dòng dữ liệu. Replication trong SQL Server giải quyết xung đột bằng cách
gán quyền ưu tiên cho từng server và nếu có xung đột xảy ra thì chọn hành động
cập nhật của server có quyền ưu tiên cao hơn. Tuy nhiên trong hệ thống phân tán
gồm nhiều server đều có khả năng cập nhật dữ liệu, quyền ưu tiên không phải
lúc nào cũng dành cho riêng một server.

32
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán
Trong hệ thống cơ sở dữ liệu phân tán quản lý đào tạo các server đều có
quyền cập nhật dữ liệu (thêm, xóa, sửa): server Phòng Khoa cập nhật lớp học
phần, điểm, học phí…; server các khoa cập nhật thông tin lịch trình giảng dạy
của giáo viên, các đề tài sinh viên thực hiện…; server sinh viên cập nhật thông
tin đăng ký học phần. Nhận thấy các quyền này hoàn toàn tách biệt nhau, không
có sự chồng chéo nên việc giải quyết xung đột thực hiện khá dễ dàng. Xem xét
cách trường hợp:
 Trường thêm mới (insert) và xóa (delete): Mỗi bộ phận có quyền thêm và xóa
những dòng dữ liệu thuộc phạm vi quyền hạn của bộ phận. Nhận thấy hai trường
hợp cập nhật này hoàn toàn tách biệt giữa các bộ phận nên không có xung đột.
 Trường hợp sửa (update): Trong một số quan hệ, Khoa có thể sửa thông tin
trên những dòng dữ liệu mà Phòng Đào Tạo thêm mới chẳng hạn như cập nhật
đề tài của sinh viên, phân công giáo viên hướng dẫn…. Chẳng may, cùng một
lúc Phòng Đào Tạo và Khoa đều sửa thông tin trên một dòng dữ liệu thì sẽ xảy
ra xung đột. Tuy nhiên vì quyền hạn mỗi phòng ban khác nhau nên các thuộc
tính được sửa trên quan hệ của hai phòng ban này cũng khác nhau, sử dụng tính
chất column-level tracking trong quá trình tạo Replication của SQL Server có
thể giải quyết được vấn đề này.

33
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán

KẾT LUẬN

Đánh giá kết quả


Sự chính xác của việc đồng bộ là 100%, hoàn toàn không có vấn đề xung đột
xảy ra. Đề tài đã tìm hiểu và đề xuất mô hình cơ sở dữ liệu phân tán trong quản
lý đào đạo nhằm khắc phục những hạn chế của cơ sở dữ liệu tập trung truyền
thống, nâng cao hiệu quả quản lý sinh viên tại các Trường Đại học Cao đẳng.
Trong tương lai, đề tài sẽ nhắm tới việc đưa mô hình vào áp dụng thực tế tại
Trường ĐH Công nghệ Thông tin và Truyền thông Việt - Hàn (ĐHĐN), giải
quyết triệt để các trường hợp bị lỗi hay sự cố phát sinh trong quá trình đồng bộ
dữ liệu.
Thời gian đồng bộ (độ trễ) ở mức độ chấp nhận được.
Hạn chế đề tài
Đề tài chưa kiểm nghiệm được trường hợp lỗi trong quá trình đồng bộ dữ liệu
chẳng hạn dữ liệu được đồng bộ về Subscriber không giống với dữ liệu tại
Publisher, hay những sự cố của server trong quá trình đồng bộ như mất điện đột
xuất, đây chính là hướng phát triển của đề tài sau này.

34
Báo cáo học phần: Hệ cơ sở dữ liệu phân tán

TÀI LIỆU THAM KHẢO


[1] M.TAMER, PATRICK VALDURIEZ, Trần Đức Quang (dịch), “Nguyên lý các hệ cơ sở dữ
liệu phân tán”. Tập 1+ Tập 2. Nhà xuất bản Thống kê, 1999
[2] Phạm Hoàng Nhung, “Kiến trúc nhân bản (Replication)”. Thư viện học liệu mở VN 2010.
[3] Bùi Văn Dũng, “Xây dựng mô hình cơ sở dữ liệu phân tán cho hệ thống thông tin đất đai cấp
tỉnh và giải pháp đồng bộ hóa cơ sở dữ liệu trên Oracle”. Hội thảo ứng dụng GIS toàn quốc
2011.
[4] How to: Specify Synchronization Schedules (SQL Server Management
Studio) http://msdn.microsoft.com/en-us/library/ms151702%28v=sql.90%29.aspx

35

You might also like