THÔNG TIN VÀO CSDL TRONG MÔ HÌNH CLIENT/SERVER.Giáo viên hướng d n:ẫ PGS.TS... Hệ thống AphatyeucauB,ycnhanlaiketquaHệ thống BLặp lại Nhanyeucaus,nh Nếu hợp thức thì Bắt đầu
Trang 1THÔNG TIN VÀO CSDL TRONG MÔ HÌNH CLIENT/SERVER.
Giáo viên hướng d n:ẫ PGS.TS LÊ V N S NĂ Ơ
H c viên th c hi n:ọ ự ệ NGUY N CÔNG KHAỄ
L p: ớ Khoa h c máy tính – Khóa 10ọ
Niên khóa: 2008 - 2014
Trang 2Chương I Yêu cầu và đăng ký từ xa trong hệ phân tán
à N ng,Đ ẵ 07 - 2014
GIỚI THIỆU
Đối với những người hoạt động tin học chuyên nghiệp, đặc biệt là lập trình cáchệ thống đa dạng, phức tạp như hệ điều hành các máy tính và mạng máy tính, hànhtrang không thể thiếu được đối với họ là những tri thức mang tính chất nguyên lý vềquá trình thiết kế, khai thác vận hành và ứng dụng hệ thống tin học phân tán Có thểnói rằng hệ tin học phân tán là một trong những lĩnh vực tri thức vừa mang tính chất
cơ sở, vừa mang tính chất tiên tiến của chuyên ngành công nghệ thông tin mà việc nắmbắt và vận dụng tốt các nguyên lý của nó sẽ mang lại cho các hệ thống thực tiễn nhữnghứa hẹn rất lớn về hiệu năng khai thác thiết bị trong các ứng dụng tin học
Xuất phát từ đây, thông qua hệ thống các ví dụ, trước hết là hệ thương mại điệntử bán hàng là một thực tế ứng dụng đặc trưng với đầy đủ tính chất của một hệ tin họcphân tán Qua ví dụ này, người ta chỉ ra những vấn đề và tập hợp các phương pháp giảiquyết kèm theo
Điều quan trọng là để đảm bảo các chức năng yêu cầu từ xa và đăng ký từ xa trênhệ thương mại điện tử bán hàng, hệ phân tán cần phải có các cơ chế kỹ thuật đủ mạnhnhằm đồng bộ hoá hoạt động các tiến trình và sự trao đổi thông tin với nhau sao cho hệthống tránh được các trường hợp có thể dẫn đến bế tắc
Vì vậy trong nội dung của tiểu luận này em trình bày hai vấn đề sau:
Trang 3Chương I YÊU CẦU VÀ ĐĂNG KÝ TỪ XA TRONG HỆ PHÂN TÁN
I Yêu cầu từ xa
I.1 Khái quát vấn đê
Giả sử có một khách hàng đang có mặt tại bộ phận của thành phố A muốn đượccung cấp thông tin về giá cả của một mặt hàng do bộ phận này quản lý tại thành phố Bở xa và thể hiện một yêu cầu nào đó qua một truy vấn Đầu kia sau khi tiếp nhận, việctruy tìm trong Cơ sở dữ liệu được tiến hành Nếu có thông tin cần tìm thì thông tin đósẽ được chuyển lại cho người yêu cầu Để đáp ứng được yêu cầu này, hệ thống phải cókhả năng thực hiện hàng loạt các thao tác xác định
1 Trước hết, hệ phải có khả năng nhận biết thông tin cần thiết cho việc trả lờiđang nằm tại vị trí nào Đó chính là vấn đề trỏ thông tin Nội dung chủ yếu của việc trỏthông tin là biến đổi tên của thành phố B thành tên của hệ thống cục bộ quản lý thôngtin của thành phố này để hệ thống viễn thông có thể nhận dạng được Tên của hệ thốngcục bộ phải là tên duy nhất và không được phép thay đổi một cách tuỳ tiện
Một trong những biện pháp đơn giản là tên của thành phố được sử dụng để địnhdanh cho hệ thống cục bộ, nhưng việc đó cũng có những bất cập là trường hợp tên bịtrùng Ví dụ như hệ thống MILAN cần tìm hệ có tên là SONTAY hay ORLEANS Hệnày có thể trỏ đến Việt Nam hoặc Trung Quốc đối với trường hợp tên SONTAY vàđến MỸ hoặc Pháp cho trường hợp ORLEANS
2 Sau khi đã trỏ đúng vào địa chỉ chứa thông tin, hệ phải có khả năng tiếp nhậnvà ghi lại các yêu cầu chỉ dẫn
3 Biên dịch các yêu cầu này thành dạng lệnh có thể thực hiện được để có thểtruy tìm thông tin
4 Thực hiện các công việc mang tính chất cục bộ của hệ thống cục bộ như kiểmtra quyền truy cập thông tin, thống kê số lượng người truy cập, lập hoá đơn dịch vụ vàbáo thanh toán dịch vụ…
5 Nếu tìm được thông tin theo yêu cầu thì gửi nó cho hệ thống yêu cầu
Theo kiểu tương tác này ta có mô hình Client/Server, trong đó hệ thống (haytrạm) gửi yêu cầu thông tin gọi là khách (Client), còn hệ thống tiếp nhận và giải quyếtyêu cầu gọi là chủ (Server) Sự tác động để yêu cầu được chỉ dẫn gọi là giao dịch
I.2 Giải thuật tổng quát
Trang 4Hệ thống Aphatyeucau(B,yc)nhanlai(ketqua)
Hệ thống BLặp lại Nhanyeucau(s,nh) Nếu (hợp thức) thì
Bắt đầu tracuucsdl thongke phatketqua(s,kq) Kết thúc
Nếu không guitbao(s,thong bao)Cho đến khi đúng
Chương I Yêu cầu và đăng ký từ xa trong hệ phân tán
Có thể cài đặt trong A và B để triển khai theo mô hình Client/Server:
Ta sử dụng hàm nguyên thuỷ phatyeucau(B,yc) để gửi cho hệ thống B yêu cầutruy cập để tìm thông tin Hàm nhanlai(ketqua) sẽ được sử dụng để trả lời cho A biếttrạng thái của B
Tương tự như A, tại B người ta cài đặt thủ tục bao gồm các hàm nguyên thuỷnhanyeucau(s,nh) – nhận yêu cầu trong nh, tracuucsdl – tra cứu thông tin theo yêu cầutrong CSDL, thongke - sử dụng riêng cho trạm nhận và phatketqua(s,kq),guitb(s,thongbao) được sử dụng để trả lời cho B
Trường hợp tra cứu vừa nêu là đơn giản bởi vì phép toán diễn ra độc lập Có rấtnhiều trường hợp phức tạp hơn, trong đó một phép tra cứu lại phụ thuộc vào các phépxử lý khác trước đó Bây giờ, ta hãy xem xét trường hợp: một người từ thành phố Ayêu cầu tập hợp thông tin chỉ dẫn liên quan đến hàng loạt phép tra cứu vào cơ sỡ dữliệu của bộ phận ở B mà kết quả của phép sau có được phụ thuộc vào kết quả của phéptrước đó Đây là giao dịch không thể tiến hành bằng một lệnh hoặc là một hàm màphải được tiến hành bằng thủ tục truy vấn Thủ tục này có khả năng liên kết tự độngcác tra cứu sơ đẳng như hàm tracuucsdl lại với nhau Chương trình truy vấn đầy đủ cóthể được cài đặt tại máy Client hoặc tại máy Server Hai giải pháp này khác nhau ởbản chất và khối lượng thông tin trao đổi giữa các trạm với nhau
Một trong những vấn đề cần phải quan tâm là độ tin cậy của thông tin Thông tinlà đúng tại thời điểm mà Server đọc nó, nhưng có thể sai khi Client nhận được, điềunày liên quan đến việc làm tươi thông tin trong CSDL Nói một cách tổng quát là cần
Trang 5phải có những giải pháp hữu hiệu cho việc truy cập đồng thời vào dữ liệu dùng chung.Trong thực tế, những trường hợp nêu trên hoàn toàn có thể diễn ra Ví dụ như cómột khách hàng tại A đề nghị mua hàng hoá H tại B và C Anh ta có thể nhận được lờichấp nhận vớì một lượng cụ thể nhưng không có hoặc không đủ tại B và C Trong khitruy cập để báo cho khách thì số lượng này cũng vừa được cập nhật Nói tóm lại,khách nhận được thông tin mà trên thực tế không còn tồn tại nữa.
II Đăng ký từ xa
II.1 Khái quát vấn đê
Giả sử có tình huống một khách từ A muốn hợp đồng mua hàng hoá H tại B vàđăng ký phương tiện để chuyên chở đến C theo yêu cầu càng sớm càng tốt và thựchiện trong một khoảng thời gian xác định
Trước hết, cũng như ứng dụng vừa nêu ta cần phải giải quyết vấn đề tìm têntrong hệ quản trị Cơ sở dữ liệu tại B như thế nào và có thể đề nghị nó thực hiện côngviệc đặc biệt nêu trên hay không Ta cũng cần phải lưu ý là việc hợp đồng mua bánhàng hoá và việc hợp đồng phương tiện chuyên chở phải khớp với nhau trong cùngkhoảng thời gian Hiện tượng đó cho phép ta liên tưởng đến sự gắn bó dữ liệu trongkhi ta nghiên cứu hệ điều hành cho các hệ tập trung
Trong CSDL của hệ cục bộ thành phố A chứa các thông tin về hàng hoá, cònphương tiện vận tải lại chứa trong CSDL của hệ cục bộ thành phố B Việc đăng kýđược tiến hành xuất phát từ khách hàng ở thành phố A ngay trên hệ cục bộ của bộphận tại thành phố này
C
Chứa bảng phương tiện vận chuyển
Trang 6Ok:=False
Chừng nào (t<=Ngay_cuoi_cung) và (Not Ok) thực hiện
Bắt dầu
Dang_ky_hang_hoa(AB,t) {Đăng ký sơ bộ}
Nếu (thanh_cong) thì
Chương I Yêu cầu và đăng ký từ xa trong hệ phân tán
II.2 Giải thuật tổng quát
Để đáp ứng yêu cầu đăng ký từ xa vừa nêu trên, ta có thể cài đặt tại hệ cục bộ ở
A một đoạn chương trình như sau:
Đoạn chương trình trên cho thấy rằng sau khi nhận được thông tin về trạng tháihàng hoá tại A và phương tiện vận tải tại C chương trình sẽ lần lượt thực hiện các lệnhsau:
1.Đăng ký sơ bộ mua hàng tại A trong ngày t
2.Nếu việc đăng ký đó thành công thì đăng ký tiếp phương tiện vận tải tại C.3.Lặp lại cho đến khi hết thời hạn cho phép
Khi thực hiện chương trình tại A sẽ kích hoạt việc thực hiện chương trình ở B.Tương tự như vậy, khi ta thực hiện chương trình đăng ký từ B sẽ là nguyên nhân củaviệc thực hiện chương trình tại C
Sau khi xem xét kỹ đoạn chương trình nêu trên, người ta nhận thấy rằng phươngpháp được thể hiện bằng đoạn chương trình trên sẽ có tác dụng chỉ với một cặp <đăngký hàng hoá , đăng ký phương tiện> duy nhất Việc đăng ký như vậy là đơn trị và khósử dụng cho công việc thực tế
Nếu ta vận hành nhiều chương trình cùng một lúc thì hậu quả diễn ra khá nghiêmtrọng Do việc đăng ký hàng hoá chỉ mới diễn ra sơ bộ, cho nên có thể bị đăng ký bởingười sử dụng khác Trong trường hợp đó danh sách hàng hoá mà ta cứ tưởng là chínhthức trở thành hàng hoá ảo
Trang 7de_nghi(B,DS(hh,t),danhsach(pt,t)) {B cung cấp hàng hoá và các phương
tiện cho phép}
Hay nói cách khác áp dụng nguyên lý loại trừ tương hỗ mà trước đây đã nghiêncứu trong lĩnh vực hệ điều hành các máy tính tập trung Tất cả truy cập vào dữ liệu từtrạm A cần phải đảm bảo được bao bởi then_cai(A) và mo_then_cai(A) và tương tựnhư vậy tại C bằng then_cai(C) và mo_then_cai(C) Do đó, việc gọi thủ tụcdang_ky_hang_hoa(AB,hh1,t) sẽ đồng bộ dữ liệu ngay cả trên trạm cục bộ A và
Trang 8Chương I Yêu cầu và đăng ký từ xa trong hệ phân tán
đương nhiên trạm này cũng được đóng khung
Việc tổ chức đăng ký từ xa như trên cũng đặt ra cho chúng ta nhiều vấn đề cầnphải giải quyết Sau đây ta xem xét các hệ quả đó
1 Các yêu cầu hợp đồng mua bán và chuyên chở kiểu như trên diễn ra đồng thờitheo chiều A -B và B -A có thể dẫn đến bế tắc
Thực tế cho thấy các dãy :
được thực hiện lần lượt trên A và B
2 Tình hình trên có thể được hoàn thiện nếu loại trừ tổng quát cho việc truy cậpvào dữ liệu của một trạm là không cần thiết Ta chỉ cần then cài và mở then cóchọn lọc trên các dữ liệu liên quan đến hàng hoá hay phương tiện vận chuyển.Như vậy, ta phải đưa tham số mới trong các hàm nguyên thuỷ Then_cai vàMo_then_cai nhằm xác định chính xác dữ liệu nào cần phải khống chế khi truy cập.Chính vì vậy, giải pháp nêu trên cần phải bổ sung thêm :
Như vậy loại trừ tương hỗ được áp dụng đối với từng dữ liệu riêng biệt và thựcsự tránh được bế tắc
3 Bây giờ ta giả sử rằng HKDTX cho phép hợp đồng ở cả hai thành phố A và B
Ta có thể gặp bế tắc trên dữ liệu liên quan đến hàng hoá Một trong những biện pháp
then_cai(B), then_cai(A), then_cai(A), then_cai(B)
Tại A
[Chương trình tại đây được bao bởi]
then_cai(hh,B) và mo_then_cai(hh,B)
Trang 9phòng chống hiện tượng nêu trên là đặt toàn bộ chương trình đăng ký hợp đồng vàđoạn găng trải đến tận tất cả các trạm có liên quan Nhưng biện pháp này tỏ ra khônghiểu quả nhiều và rất tốn kém Người ta cũng đã nghiên cứu một vài giải pháp chophép thực hiện song song các chương trình đăng ký mua bán hàng hoá.
Điểm chung nhất của các giải pháp này là:
1 Phát hiện xung đột trong hệ
2 Loại bỏ ra khỏi quá trình thực hiện các chương trình phát sinh xung đột
3 Cho phép tái lập lại việc thực hiện các chương trình bị loại bỏ do xung đột
4 Đề phòng trường hợp một yêu cầu nào đó phải chờ vô thời hạn mà không được đáp ứng
Trang 10Chương II Cập nhật thông tin vào CSDL trong mô hình Client/Server
Chương II THUẬT TOÁN VỀ QUÁ TRÌNH CẬP NHẬT THÔNG TIN VÀO
I Cơ sở dữ liệu phân tán trong mô hình client/server
I.1 Cơ sở dữ liệu phân tán
Hệ thống cơ sở dữ liệu phân tán gồm các trạm, mỗi trạm bảo trì một hệ thống cơ
sở dữ liệu cục bộ Mỗi trạm có thể xử lý các giao tác cục bộ, truy nhập các dữ liệu trên trạm ấy Hơn nữa, trạm có thể khai thác các giao tác tổng thể, truy nhập dữ liệu trên
vài trạm Việc khai thác các giao tác tổng thể đòi hỏi cơ chế truyền thông giữa cáctrạm Các trạm trong hệ thống có thể được nối về mặt vật lý theo nhiều cách khácnhau
hình II.1
I.2 Cơ sở dữ liệu trong mô hình Client/Server
- Cơ sở dữ liệu phân tán trong mô hình Client/Server một hệ htống bao gồm các
server và các client
- Database Server là hệ quản trị cơ sở dữ liệu phân tán, lưu trữ dữ liệu và xử lý yêu cầutừ client Client là những chương trình ứng dụng yêu cầu truy xuất thông tin từ server.Mỗi máy tính trong mạng lưới có thể chứa 1 hay nhiều cơ sở dữ liệu Mỗi node tronghệ thống phân tán có thể là client, sever hoặc cả 2 tùy vào trạng thái của nó
Hình II.1 Một số kiến trúc mạng
Trang 11Một client có thể kết nối trực tiếp hoặc gián tiếp đến một Database Sever Kết nốitrực tiếp có nghĩa là client kết nối lên một server và truy xuất thông tin lưu trực tiếptrên server đó Kết nối gián tiếp có nghĩa là client kết nối lên server này nhưng truyxuất dữ liệu từ 1 đối tượng nằm trên server khác.
II Giao tác
II.1 Khái niệm vê giao tác
Giao tác là một đơn vị nguyên tử của sự truy xuất CSDL bao gồm một tập cácthao tác đọc, ghi cùng với các bước tính toán trên CSDL, giao tác hoặc là thực hiệnđầy đủ tất cả thao tác của nó hoặc không thực hiện gì cả
Giao tác luôn chuyển CSDL từ trạng thái tương thích này đến trạng thái tươngthích khác
II.2 Các tính chất của giao tác
Tính nguyên tử: có nghĩa là mọi hành động của giao tác được thực hiện hoặckhông có hành động nào được thực hiện Tính nguyên tử của giao tác yêu cầu nếu quátrình thực hiện của giao tác bị ngắt quãng bởi một sự cố nào của hệ thống thì hệ quảntrị CSDL sẽ phải chịu trách nhiệm xác định cần phải làm gì với giao tác vào thời điểmkhắc phục được sự cố Do vậy có thể có hai dòng hành động hoặc là giao tác kết thúcbằng việc hủy bỏ mọi hành động đã thực hiện hoặc kết thúc bằng việc hoàn tất nhữnghoạt động còn lại
Tính bền vững: có nghĩa là một khi giao tác hoàn tất thì các kết quả của nó đượclưu giữ bền vững trong CSDL và không thể bị xóa Hệ quản trị CSDL phải đảm bảocác kết quả của giao tác sẽ qua khỏi những sự cố của hệ thống xảy ra sau đó Các hoạtđộng cung cấp tính bền vững của giao tác được gọi là phục hồi CSDL
Tính tuần tự: nếu nhiều giao tác được thực hiện đồng thời thì kết quả phải giốngnhư khi chúng được thực hiện tuần tự, theo một thứ tự nào đó
Tính tách biệt: Một giao tác chưa hoàn thành không thể đưa kết quả của nó chocác giao tác khác trước khi nó hoàn tất Đặc tính này để tránh vấn đề hủy bỏ dâychuyền Điều này có nghĩa là cần phải hủy bỏ đi tất cả các giao tác mà kết quả bộ phậncủa nó đã được một giao tác trước hủy bỏ Lưu ý rằng, nếu có một giao tác đa hoàn tất,
ta cũng phải hủy bỏ các giao tác hoàn tất này, điều này mâu thuẫn với tính bền vữngcủa giao tác Tuy nhiên, đây là một đặc tính quan trọng để thực hiện các giao tác hiệuquả
III Giới thiệu vấn đê
Bây giờ ta hãy nghiên cứu một ví dụ cụ thể về việc quản lý các tài khoản tại ngânhàng sẽ được lưu trữ trong một bản ghi của CSDL Các trường của bản ghi này baogồm họ và tên, địa chỉ, điện thoại và một khóa duy nhất (mã số) cho người đó Mã số