giao trinh CSDL nang cao

53 192 0
giao trinh CSDL nang cao

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

NỘI DUNG Chương CÁC MƠ HÌNH DỮ LIỆU THƠNG DỤNG CƠ SỞ DỮ LIỆU NÂNG CAO ADVANCED DATABASE SYSTEMS Chương CƠ SỞ DỮ LIỆU PHÂN TÁN Chương CÁC MỨC TRONG SUỐT TRONG DDB Chương THIẾT KẾ CSDL PHÂN TÁN Chương TỐI ƯU HÓA TRUY VẤN TRONG DDB PGS.TS Nguyễn Mậu Hân Khoa CNTT-ĐHKH HUẾ NỘI DUNG THỰC HÀNH: TÌM HIỂU VỀ: DB2, SQL SERVER, ORACLE ĐỊA CHỈ LIÊN HỆ TÀI LIỆU THAM KHẢO [1] Andrew S Tanenbaum and Maarten Van Steen, Distributed Systems Principles and Paradigms, 2002 Pentice-Hall [2] M.TAMER OZSU and PATRICK VALDURIEZ, Principles of Distributed Database Systems, Prentice Hall, 2004 [3] Weiyi Meng and Clement T.Yu, Principles of Database Query Processing for Advanced Applications, Morgan Kaufman Inc., 2003 [4] William Buchanan, Distributed Systems and Networks, Mc Graw-Hill Book International 2002 [5] Stefano Ceri and Giuseppe Pelagatti, Distributed Databases Principles and Systems, Mc Graw-Hill Book International [6] Jeffrey D.Ullman (biên dịch: Trần Đức Quang), Nguyên lý hệ CSDL sở tri thức, tập 1&2 NXB Thống kê, 1998 [7] Nguyễn Mậu Hân, Giáo trình Cơ sở liệu phân tán, 20083 PGS.TS NGUYỄN MẬU HÂN BỘ MÔN CÔNG NGHỆ PHẦN MỀM KHOA CÔNG NGHỆ THÔNG TIN TRƢỜNG ĐẠI HỌC KHOA HỌC - ĐẠI HỌC HUẾ 77, NGUYEN HUỆ – HUẾ ĐIỆN THOẠI: CQ: 054 382 6767 DĐ: 090 559 1515 EMAIL: nmhan2009@gmail.com 1.1 Mơ hình thực thể mối quan hệ (ER) Chƣơng1: CÁC MƠ HÌNH DỮ LIỆU THƠNG DỤNG PGS.TS NGUYỄN MẬU HÂN KHOA CNTT-ĐHKH HUE  Được đề xuất P.Chen (1976)  mơ hình khái niệm dựa vào việc nhận thức giới thực thông qua tập đối tượng gọi thực thể & mối quan hệ đối tượng  Các thành phần  Tập thực thể: (tên tập thực thể, thuộc tính)  Các mối quan hệ: • đơn nguyên: chiều • nhị nguyên: chiều (1-1, 1-n, n-n, isa) • đa ngun: có số chiều >2 1.2 Mơ hình liệu quan hệ (Relation Model) 1.3 Mơ hình liệu HĐT (Object-Oriented Model) Giới thiệu chung  Được đề xuất E.F.Codd (1970)  Các thành phần bản:  Quan hệ (relation)  Lược đồ quan hệ (Relational Schema)  Khóa  Phụ thuộc hàm  Phát triển vào cuối năm 1980 Các khái niệm CSDL hướng đối tượng hình thành cách tự nhiên  hình thành đồng thời khái niệm người lập trình hướng đối tượng  Chuyển đổi mơ hình ER sang mơ hình quan hệ  Đại số quan hệ 1.3 Mơ hình hƣớng đối tƣợng 1.3 Mơ hình hƣớng đối tƣợng Lớp, đối tƣợng định danh đối tƣợng Lớp hiểu tập thực thể, hay đối tượng có đặc tính hành vi giống Các đặc tính mơ tả thuộc tính bên lớp đối tượng Các hành vi  phương thức (methods) thực đối tượng lớp Mỗi đối tượng lớp xác định thông qua tên đối tượng Người ta sử dụng thuộc tính định danh OID (Object Identifier) để xác định tên cho đối tượng lớp Thuộc tính phƣơng thức Việc khai báo thuộc tính thể cấu trúc lớp khai báo Mỗi thuộc tính thuộc tính đơn trị thuộc tính đa trị (sử dụng từ khố “set” để khai bào) Một thuộc tính thuộc tính phức hợp: thuộc tính xác định từ tập thuộc tính khác (sử dụng từ khố “tuple” để khai báo) 1.3 Mơ hình hƣớng đối tƣợng 10 1.3 MƠ HÌNH HƢỚNG ĐỐI TƢỢNG Thuộc tính phƣơng thức Việc khai báo phương thức đối tượng lớp nhằm phản ánh hành vi thực đối tượng thuộc lớp Mẫu đặc tả cho lớp xác định sau: Class properties {khai báo thuộc tính} Operations {khai báo phương thức} end Ví dụ Id_SV SV HT NS Hoctai (1,n) LOP Siso ST TDNN NN 11 (1,1) Id_Lop Ten CB  Mơ hình hướng đối tượng: class SV properties Id_SV :string; HT : string; NS : Date; ST : set(string); TDNN: set( tuple( NN : string; CB : char(1))); Hoctai: LOP; { mang giá trị OID class LOP} operations ……… end SV; 12 1.3 MƠ HÌNH HƢỚNG ĐỐI TƢỢNG 1.3 MƠ HÌNH HƢỚNG ĐỐI TƢỢNG Ví dụ Ví dụ LOP class LOP properties Id_Lop : string; Ten: string; Siso: integer; Hoctai: set(SV); { tập OID SV Hoctai LOP} operations ………… end LOP; OID Lop001 Lop002 Id_Lop Ten A TinK25A B TinK25B Siso 70 80 Hoctai {SV1, SV2} {SV2, SV4} SV OID SV1 SV2 SV3 SV4 HT X Y Z T NS ST 1/1/85 {BB, BD, CN} 11/3/84 {BĐ} TDNN (NN, CB) {(Anh, C), (Nga, B)} Hoctai Lop001 Lop001 Lop002 Lop002 13 14 1.3 MƠ HÌNH HƢỚNG ĐỐI TƢỢNG Phân cấp lớp kế thừa Các lớp mơ hình hướng đối tượng tổ chức theo phân cấp lớp Ta nói lớp C2 lớp lớp C1, có nghĩa CHƢƠNG CSDL TRONG MƠI TRƢỜNG PHÂN TÁN tập đặc tính (các thuộc tính & phương thức) lớp C1 tập tập đặc tính lớp C2, đồng thời tập đối tượng lớp C2 lại tập tập đối tượng lớp C1 Nguyễn Mậu Hân Khoa CNTT-ĐHKH HUẾ 15 2.1 GIỚI THIỆU VỀ CSDL PHÂN TÁN 16 2.1 GIỚI THIỆU VỀ CSDL PHÂN TÁN Tại phải phân tán? Phân tán gì? • Nhu cầu dùng chung liệu hợp • Phần cứng-Mạng máy tính • Phần mềm • Các tổ chức kinh tế có nhiều trụ sở phân tán  Hệ quản trị CSDL nhiều vị trí địa lý khác  Csdl phân tán • Giảm chi phí truyền thơng cơng việc  Các ứng dụng • Quản lý luồng liệu sử dụng chung liệu, chương trình tổ chức 17 18 2.2 ĐỊNH NGHĨA CƠ SỞ DỮ LIỆU PHÂN TÁN 2.2 ĐỊNH NGHĨA CƠ SỞ DỮ LIỆU PHÂN TÁN Định nghĩa: CSDL phân tán tập hợp liệu, mà mặt logic tập hợp thuộc hệ thống, mặt vật lý liệu phân tán vị trí khác mạng máy tính Có hai điểm quan trọng nêu định nghĩa: a Phân tán: b Tương quan logic:  Dữ liệu không cư trú vị trí mà phân bố rộng khắp nhiều máy tính đặt nhiều vị trí khác  Dữ liệu hệ phân tán có số thuộc tính ràng buộc chúng với  Điều giúp phân biệt sở liệu phân tán với tập hợp sở liệu tập trung  Các file liệu lưu trữ nhiều vị trí khác nhau, điều thường thấy ứng dụng mà hệ thống phân quyền truy nhập liệu môi trường mạng  Đây điểm phân biệt sở liệu phân tán 19 với sở liệu tập trung 2.2 ĐỊNH NGHĨA CƠ SỞ DỮ LIỆU PHÂN TÁN 20 2.2 ĐỊNH NGHĨA CƠ SỞ DỮ LIỆU PHÂN TÁN 21 This illustration shows a homogeneous distributed database The figure shows three databases, HQ.ACME.COM, SALES.ACME.COM and MFG.ACME.COM Each database is connected to a number of client systems at Headquarters and the Sales and Manufacturing divisions, respectively 22 2.2 ĐỊNH NGHĨA CƠ SỞ DỮ LIỆU PHÂN TÁN An Oracle Database Distributed Database System Kết nối CSDL (Database Links) database link kết nối vật lý hai server CSDL cho phép NSD truy cập liệu CSDL logic There are two databases located on separate servers: HQ and SALES The figure shows examples of direct and indirect client connections Queries are made to the HQ database directly, and queries are made indirectly to the SALES database, through the HQ database, which then acts as a client Communication between the servers occurs over the network using Oracle Net 23 This illustration depicts a database link between user Scott and a remote database The link passes through the local database, and, because the link to the remote database is stored on the local database, a unidirectional link links the remote database to the user Database Link 24 2.2 ĐỊNH NGHĨA CƠ SỞ DỮ LIỆU PHÂN TÁN Database Links Chú ý • Database links sử dụng hai dạng: private public • Nếu private có User tạo liên kết có quyền truy cập liệu • Nếu public, User hệ thống truy cập liệu Ứng dụng địa phƣơng (local application) • Các ứng dụng mà không yêu cầu liệu từ site khác Ứng dụng tồn cục (global application) • Các ứng dụng mà có yêu cầu liệu từ site khác Assignment: to learn more database link See also: http://www.stanford.edu/dept/itss/docs/oracle/ 25 2.3 VÍ DỤ 26 2.3 VÍ DỤ Ví dụ 1:  Một ngân hàng có ba chi nhánh đặt vị trí khác  Tại chi nhánh (site) có máy tính điều khiển số máy giao dịch đầu cuối (teller terminal) sở liệu chi nhánh  Tại site đặt phần sở liệu phân tán  Các máy tính nối với mạng truyền thông  Các nút mạng phân tán có hai chức năng:  Xử lý thơng tin vị trí mà quản lý  Tham gia vào việc xử lý yêu cầu thông tin cần truy cập qua nhiều địa điểm Chẳng hạn, việc lên danh sách tất nhân viên ngân hàng Yêu cầu đòi hỏi tất máy tính chi nhánh cơng ty phải hoạt động để cung cấp thơng tin 27 2.3 VÍ DỤ Database Database T T T T T Server Server Terminal T T T T T Network T T T T T Server Database CSDL phân tán mạng phân tán địa lý 28 2.3 VÍ DỤ Ví dụ 2: Branch1 Xet ngân hàng ví dụ Nhưng: • Các máy tính với CSDL chúng chi nhánh chuyển đến tòa nhà • Các máy tính kết nối với mạng cục T T T T Database Database Computer Computer Branch2 T T T T Telephone lines Telephone lines với băng thông rộng Local Network • Các máy giao dịch đầu cuối kết nối với máy tính tương ứng chúng qua đường dây điện thoại • Mỗi máy tính CSDL tạo nên site mạng cục Computer Branch3 T T T T Telephone lines 29 Database CSDL phân tán mạng cục 30 2.3 VÍ DỤ 2.3 VÍ DỤ Ví dụ 3: Xét hệ thống ngân hàng Nhưng: Branch1 T T T • Dữ liệu chi nhánh phân tán back-end computers, máy tính thực chức quản trị CSDL Database Database Database Back end Computer Back end Computer Back end Computer • Các chương trình ứng dụng thực Branch2 T T T Local Network máy tính khác (front-end computer), máy tính đóng vai trò giao diện u cầu back-end Application Front-end Computer computers thực lệnh NSD Branch3 T T T Hệ thống đa xử lý (multiprocessor system) 31 Các ứng dụng 2.4 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU PHÂN TÁN (DDBMS) Program n DataBase Management System Operation System DataBase Kiến trúc tổng quát hệ quản trị CSDL tập trung 33 2.4 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU PHÂN TÁN Giao diện người dùng Tầng giao diện Quản lý khung nhìn Phép tính quan hệ Kiểm sốt tồn vẹn ngữ nghĩa Tầng điều khiển Kiểm định cấp quyền Phép tính quan hệ Phân rã tối ưu hóa truy vấn Tầng biên dịch Quản lý hoạch định truy xuất Các kết Communication SubSystems Các tầng chức Hệ QTCSDL quan hệ a Hệ quản trị sở liệu tập trung Program 32 Đại số quan hệ Điều khiển thực thi hoạch định truy xuất Tầng thực thi Thực thi phép toán đại số Truy xuất/Cập nhật Quản lý vùng đệm Tầng truy xuất liệu Các phương pháp truy xuất Truy xuất/Cập nhật Điều khiển đồng thời Tầng trì quán Ghi nhật ký 34 DataBase 2.4 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU PHÂN TÁN b Hệ quản trị sở liệu phân tán (DDBMSs) DDBMS có chức hỗ trợ việc tạo bảo trì sở liệu phân tán DDBMS có thành phần tương tự hệ quản trị sở liệu tập trung; thành phần hỗ trợ việc chuyển tải liệu đến trạm ngược lại Các thành phần DDBMS: Quản trị liệu (Database management): DB Truyền thông liệu (Data Communication): DC Từ điển liệu (Data Dictionary): DD dùng để mô tả thông tin phân tán liệu mạng Cơ sở liệu phân tán (Distributed Database): DDB 35 T T T Local database DB DC DDB DD Site Site DD Local database DB T DDB DC T T Các thành phần DDBMS thương mại 36 Application Program Client DBMS Communication Software SQL Query Result Relation Operation System Operation System User Interface User Interface Application Program 2.4 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU PHÂN TÁN Client DBMS DDBMS (Homogeneous DDBMS) Communication Software Result Relation  DBMS địa phương giống SQL Query Communication Software DDBMS không (Heterogeneous DDBMS) Sematic Data Controler  DBMS địa phương khác Query Optimizer Transaction Manager  DDBMS có chức chuyển đổi mơ hình Recovery Manager Kiến trúc tham chiếu DDBMS theo mơ hình Client/Server liệu Runtime Support Processor Operation System DataBase 37 38 39 40 2.4 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU PHÂN TÁN 2.4 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU PHÂN TÁN So sánh csdl phân tán csdl tập trung Nhận xét: CSDL phân tán không đơn giản thực phân tán CSDL tập trung, chúng cho phép thiết kế đặc trưng khác với CSDL tập trung truyền thống Các đặc điểm tiêu biểu CSDL truyền thống: • điều khiển tập trung • độc lập liệu • giảm dư thừa • biệt lập bảo mật liệu 41 Ƣu nhƣợc điểm hệ phân tán Ưu điểm • Đáp ứng nhanh hầu hết ứng dụng sử dụng liệu trạm • Tăng cường đơn thể ứng dụng CSDL mà không làm cản trở người sử dụng • Kiểm sốt liệu địa phương theo hướng hồn thiện tích hợp quản trị liệu từ xa • Tăng cường khả hệ thống liên quan đến dư thừa liệu 42 2.4 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU PHÂN TÁN 2.4 CÁC HÌNH THỨC TỔ CHỨC HỆ THỐNG PHÂN TÁN Ƣu nhƣợc điểm hệ phân tán Nhược điểm  peer-to-peer • Phần mềm đắt phức tạp • Phải xử lý thay đổi thông báo địa điểm  File server • Khó kiểm sốt tính tồn vẹn liệu với nhiều liệu phân bố khắp nơi • Đáp ứng chậm nhu cầu trạm trường hợp  Client/Server phần mềm ứng dụng không phân bố phù hợp với việc sử dụng chung 43 2.4 CÁC HÌNH THỨC TỔ CHỨC HỆ THỐNG PHÂN TÁN 44 2.4 CÁC HÌNH THỨC TỔ CHỨC HỆ THỐNG PHÂN TÁN peer-to-peer (mơ hình nhóm làm việc):  Các máy tính cá nhân máy trạm sử dụng hệ thống độc lập trợ giúp ứng dụng địa phương peer-to-peer (mơ hình nhóm làm việc):  Mỗi thành viên mạng có vai trò ngang nhau, tự quản lý tài ngun chia sẻ tài ngun cho máy tính khác mạng  Mỗi máy tính mạng vừa đóng vai trò máy chủ (Server), vừa đóng vai trò máy khách (Client) Đây mơ hình mạng đơn giản, phù hợp với hệ thống mạng nhỏ khơng có u cầu cao bảo mật 45 46 2.4 CÁC HÌNH THỨC TỔ CHỨC HỆ THỐNG PHÂN TÁN 2.4 CÁC HÌNH THỨC TỔ CHỨC HỆ THỐNG PHÂN TÁN File server (máy dịch vụ file):  File server Một số máy dịch vụ file gán trực tiếp vào mạng LAN  File server thiết bị quản lý hoạt động file phục vụ máy tính cá nhân kết nối mạng LAN  Mỗi máy cá nhân phân chia dung lượng cố định ổ cứng File server, chương trình máy tính cá nhân tham chiếu đến file phần đĩa tương ứng đặc tả đường dẫn  Những hạn chế File server •Dữ liệu di chuyển mạng q nhiều •Việc kiểm sốt liệu phi tập trung •Các máy trạm phải đủ mạnh Client/server (mơ hình khách/chủ) 47 Một số máy dịch vụ file gán trực tiếp vào mạng LAN  server có chức điều khiển, lưu trữ CSDL, xử lý truy vấn quản lý việc khai thác tài nguyên mạng máy tính khác  Thuật ngữ client sử dụng để người khai thác tài nguyên mạng 48 2.5 CÁC LOẠI TRUY XUẤT CSDL PHÂN TÁN 2.5 CÁC LOẠI TRUY XUẤT CSDL PHÂN TÁN 2.5.1 Truy xuất từ xa thông qua tác vụ bản: Ứng dụng phát yêu cầu truy xuất CSDL vị trí u cầu hệ quản trị CSDL phân tán gởi đến vị trí chứa liệu Thực xong gửi kết 2.5.2 Truy xuất từ xa thơng qua chƣơng trình phụ trợ Một ứng dụng yêu cầu thực chương trình phụ trợ vị trí từ xa Chương trình phụ trợ truy xuất CSDL từ xa trả lại kết cho ứng dụng yêu cầu Các tác vụ truy xuất CSDL Trình ứng dụng Trình ứng dụng Cơ sở liệu DBMS1 Yêu cầu thực chƣơng trình phụ trợ Cơ sở liệu DBMS1 Site Site Site Site Cơ sở liệu DBMS2 Kết gửi Kết toàn cục DBMS2 Các tác vụ truy xuất CSDL kết Chƣơng trình phụ trợ 49 2.6 KIẾN TRÚC CƠ BẢN CỦA CSDL PHÂN TÁN Cơ sở liệu 50 2.6 KIẾN TRÚC CƠ BẢN CỦA CSDL PHÂN TÁN Sơ đồ tổng thể (Global Schema) Sơ đồ định vị (Allocation Schema) Sơ đồ ánh xạ địa phƣơng (Local mapping Schema 1) Hệ quản trị CSDL vị trí (DBMS 1) CSDL địa phƣơng (Local Database 1) a Sơ đồ tổng thể (Global Schema): Các sơ đồ độc lập vị trí Sơ đồ phân mảnh (Fragmentation Schema)  Xác định tất liệu lưu trữ sở liệu phân tán liệu không phân tán trạm hệ thống  Sơ đồ tổng thể định nghĩa theo cách CSDL tập trung Sơ đồ ánh xạ địa phƣơng n (Local mapping Schema n) Hệ quản trị CSDL vị trí n (DBMS n)  Trong mơ hình quan hệ, sơ đồ tổng thể bao gồm định nghĩa tập quan hệ tổng thể (Global relation) CSDL địa phƣơng n (Local Database n) Kiến trúc tham khảo dùng cho CSDL phân tán 51 2.6 KIẾN TRÚC CƠ BẢN CỦA CSDL PHÂN TÁN 52 2.6 KIẾN TRÚC CƠ BẢN CỦA CSDL PHÂN TÁN b Sơ đồ phân đoạn (fragment schema): c Sơ đồ định vị (allocation schema):  Mỗi quan hệ tổng thể chia thành vài phần khơng  Các đoạn phần logic quan hệ tổng thể định vị vật lý hay nhiều trạm giao gọi phân đoạn (fragment)  Có nhiều cách khác để thực việc phân chia  Sơ đồ phân đoạn mô tả ánh xạ quan hệ tổng thể đoạn định nghĩa sơ đồ phân đoạn (fragmentation Schema),  Các đoạn mô tả tên quan hệ tổng thể với mục đoạn Chẳng hạn, Ri hiểu đoạn thứ i quan hệ R 53  Sơ đồ định vị xác định đoạn liệu định vị trạm mạng  Các đoạn liên kết với quan hệ tổng thể R định vị trạm j cấu thành ảnh vật lý quan hệ tổng thể R trạm j  Do ta ánh xạ một-một ảnh vật lý cặp (quan hệ tổng thể, trạm)  Các ảnh vật lý tên quan 54 hệ tổng thể mục trạm 2.6 KIẾN TRÚC CƠ BẢN CỦA CSDL PHÂN TÁN 2.6 KIẾN TRÚC CƠ BẢN CỦA CSDL PHÂN TÁN • Ký hiệu Ri để đoạn thứ i quan hệ tổng thể R • Ký hiệu Rj để ảnh vật lý quan hệ tổng thể R trạm j • Tương tự vậy, đoạn i thuộc quan hệ R trạm j ký hiệu Rij d Sơ đồ ánh xạ địa phương (Local mapping schema): • Thực ánh xạ ảnh vật lý lên đối tượng thực hệ quản trị CSDL địa phương • Tất đoạn quan hệ tổng thể trạm tạo ảnh vật lý 55 2.6 KIẾN TRÚC CƠ BẢN CỦA CSDL PHÂN TÁN R11 R R1 R2 R21 R12 R22 R1 (Trạm ) R2 (Trạm ) R3 R23 R4 R33 R3 (Trạm ) R43 Quan hệ tổng thể Các đoạn Hình ảnh vật lý Các đoạn hình ảnh vật lý quan hệ tổng thể 56 2.6 KIẾN TRÚC CƠ BẢN CỦA CSDL PHÂN TÁN Ba yếu tố suy từ kiểu kiến trúc là: a Tách rời khái niệm phân đoạn liệu với khái niệm định vị liệu b Biết liệu dư thừa c Độc lập với DBMS địa phương Ba yếu tố tương ứng với ba mức suốt tương ứng 57 2.6 KIẾN TRÚC CƠ BẢN CỦA CSDL PHÂN TÁN a Tách rời khái niệm phân đoạn liệu với khái niệm định vị liệu • Phân đoạn liệu, công việc mà người lập trình ứng dụng làm việc với quan hệ tổng thể, phân chia quan hệ tổng thể thành đoạn • Thơng qua tính suốt phân đoạn (fragmentation transparency) người lập trình nhìn thấy liệu bị phân chia • Định vị liệu lại liên quan đến công việc người sử dụng người lập trình ứng dụng đoạn liệu định vị trạm • Thơng qua tính suốt vị trí (location transparency) người lập trình biết vị trí đoạn liệu trạm 58 2.7 CÁC ĐẶC ĐIỂM CHÍNH CỦA HỆ PHÂN TÁN b Biết liệu dư thừa: • Người lập trình ứng dụng biết dư thừa liệu trạm • Trên hình vẽ trên, thấy hai ảnh vật lý R R3 có trùng lặp liệu Do đoạn liệu trùng tránh xây dựng khối ảnh vật lý 2.7.1 Chia sẻ tài nguyên • Được thực qua mạng truyền thơng • Mỗi tài ngun cần phải quản lý chương trình có giao diện truyền thơng • Các tài ngun truy nhập, cập nhật cách tin cậy quán Quản lý tài nguyên: bao gồm • Lập kế hoạch dự phòng • Đặt tên cho lớp tài ngun • Cho phép tài nguyên truy nhập từ nơi đến nơi khác • Ánh xạ tên tài nguyên vào địa truyền thông c Độc lập với DBMS địa phương Tính chất gọi suốt ánh xạ địa phương (local mapping transparency), cho phép khảo sát vấn đề quản lý CSDL phân tán mà không cần phải hiểu rõ mô hình liệu DBMS địa phương sử dụng 59 60 10 4.2 XỬ LÝ TRUY VẤN TRONG MƠI TRƢỜNG TẬP TRUNG Ví dụ minh họa: Xét tiếp câu truy vấn q13 q13: SELECT E.TENNV FROM E, TGIAN2 WHERE E.MANV = TGIAN2.MANV Quan hệ định nghĩa biến TGIAN2 chạy thuộc tính MANV Giả sử chứa hai bộ: Phép cho TGIAN2 tạo hai câu truy vấn đơn quan hệ: q131: SELECT E.TENNV FROM E WHERE E.MANV = “E1” 4.2 XỬ LÝ TRUY VẤN TRONG MƠI TRƢỜNG TẬP TRUNG Nhận xét: •Thuật tốn tối ưu hố INGRES (còn gọi INGRES - QOA) xử lý đệ qui khơng câu truy vấn đa quan hệ •Thuật tốn áp dụng cho phép chọn phép chiếu sử dụng kỹ thuật tách •Kết câu truy vấn đơn quan hệ lưu cấu trúc liệu có khả tối ưu hố câu truy vấn sau (như nối) OVQP sử dụng •Các câu truy vấn bất khả giản lại sau phép tách xử lý phép q132: SELECT E.TENNV FROM E WHERE E.MANV = “E2” Sau chúng OVQP quản lý sử dụng •Câu truy vấn bất khả giản, kí hiệu MRQ‟ Quan hệ nhỏ với lực lượng biết từ kết câu truy vấn trước 229 4.2 XỬ LÝ TRUY VẤN TRONG MÔI TRƢỜNG TẬP TRUNG Thuật toán INGRES- QOA Input: MRQ: câu truy vấn đa quan hệ (có n quan hệ) Output: Câu truy vấn tối ưu Begin Output:=; if n=1 then Output :=run(MRQ) {thực câu truy vấn quan hệ} else {Tách MRQ thành m tr.vấn quan hệ tr.vấn đa quan hệ} ORQ1, , ORQm, MRQ‟ :=MRQ for i:=1 to m Output‟ :=run(ORQi) {thực ORQi } Output :=output  output‟ {trộn tất kết lại} endfor R :=CHOOSE_ VARIABLE(MRQ‟) {R chọn cho phép bộ} for t  R MRQ”:=thay giá trị cho t MRQ‟ Output‟ :=INGRES-QOA(MRQ”) {gọi đệ qui} Output :=output  output‟ {trộn tất kết lại} endfor endif 231 End {INGRES-QOA} chọn để thay 230 4.3 Xử lý truy vấn môi trƣờng phân tán Câu truy vấn phân tán Phân rã truy vấn Lƣợc đồ tổng thể Truy vấn đại số quan hệ phân tán Trạm điều khiển Cục hóa liệu Lƣợc đồ phân mảnh Truy vấn mảnh Tối ƣu hố tồn cục Các thống kê mảnh Truy vấn mảnh đƣợc tối ƣu với phép tốn truyền thơng Các trạm địa phương Tối ƣu hoá cục Lƣợc đồ địa phƣơng Các truy vấn cục tối ƣu Sơ đồ phân lớp chung cho xử lý truy vấn phân tán 232 ĐẠI SỐ MỆNH ĐỀ 4.3 Xử lý truy vấn môi trƣờng phân tán 4.3.1 Phân rã truy vấn Giai đoạn chia làm bốn bước: chuẩn hố, phân tích, loại bỏ dư thừa viết lại 4.3.1.1 Chuẩn hoá Mục đích: chuyển đổi truy vấn thành dạng chuẩn để thuận lợi cho xử lý Với SQL, có hai dạng chuẩn cho vị từ mệnh đề WHERE là: Dạng chuẩn hội hội () phép toán tuyển (): (p11 p12  p1n)   (pm1 pm2  pmn) Dạng chuẩn tuyển tuyển () phép toán hội (): (p11  p12   p1n)   (pm1  pm2  pmn), pij biểu thức nguyên tố (vị từ đơn giản) 233 Bảng tƣơng đƣơng logic thƣờng dùng Đặt T= đúng, F = sai p∧F ⇔ F p∨T ⇔ T p∨F ⇔ p p∧T ⇔ p p∧p ⇔p p∨p ⇔ p ¬(¬p) ⇔p p∧¬p ⇔ F p∨¬p ⇔ T 10.p∧q ⇔ q∧p Domination laws-Luật nuốt Identity laws-Luật đồng Idempotent laws-Luật lũy đẵng Double negation law-Luật phủ định kép Cancellation laws-Luật xóa bỏ Commutative laws-Luật giao hốn 234 39 ĐẠI SỐ MỆNH ĐỀ 4.3 Xử lý truy vấn môi trƣờng phân tán Bảng tƣơng đƣơng logic thƣờng dùng (tt) 11 p∨q ⇔ q∨p 12 (p∧q)∧r ⇔ p∧(q∧r) Associative laws-Luật kết hợp 13 (p∨q)∨r ⇔ p∨(q∨r) 14 p∧(q∨r) ⇔ (p∧q)∨(p∧r) Distributive laws-Luật phân phối 15 p∨(q∧r) ⇔ (p∨q)∧(p∨r) 16 ¬(p∨q) ⇔ ¬p∧¬q De Morgan‟s laws-Luật De Morgan 17 ¬(p∧q) ⇔ ¬p∨¬q 18 (p q) ⇔ (¬p∨q) Implication law-Luật kéo theo 19 p ∨ ( p ∧ q ) = p 20 p ∧ ( p ∨ q ) = p 235 4.3 Xử lý truy vấn mơi trƣờng phân tán Ví dụ minh họa: xét CSDL công ty phần mềm cho Từ quan hệ: E= NHANVIEN (MANV, TENNV, CHUCVU) G= HOSO (MANV, MADA, NHIEMVU, THOIGIAN) Xét truy vấn:“Tìm tên nhân viên làm dự án có mã số J1 với thời gian 12 24 tháng” Truy vấn biểu diễn SQL: SELECT E TENNV FROM E, G WHERE E.MANV= G.MANV AND G.MADA=”J1” AND THOIGIAN=12 OR THOIGIAN=24 Điều kiện dạng chuẩn hội là: E.MANV=G.MANV  G.MADA=”J1”  (THOIGIAN=12  THOIGIAN=24) Điều kiện dạng chuẩn tuyển là: (E.MANV=G.MANV  G.MADA=”J1” THOIGIAN=12)  236 (E.MANV=G.MANV  G.MADA=”J1” THOIGIAN=24) 4.3 Xử lý truy vấn môi trƣờng phân tán 4.3.1.2 Phân tích Mục đích: Phát thành phần không (sai kiểu sai ngữ nghĩa) loại bỏ chúng sớm Truy vấn sai kiểu: thuộc tính tên quan hệ khơng định nghĩa lược đồ tổng thể, phép toán áp dụng cho thuộc tính sai kiểu Ví dụ: truy vấn sai kiểu SELECT E# FROM E WHERE E.TENNV > 200 hai lý do: • Thuộc tính E# khơng khai báo lược đồ • Phép tốn “>200” khơng thích hợp với kiểu chuỗi thuộc tính E.TENNV Truy vấn sai ngữ nghĩa: thành phần không tham gia vào việc tạo kết Để xác định truy vấn có sai ngữ nghĩa hay không, ta dựa việc biểu diễn truy vấn đồ thị gọi đồ thị truy vấn Đồ thị xác định truy vấn liên quan đến phép chọn, chiếu nối Nếu đồ thị truy vấn mà khơng liên thơng truy vấn sai ngữ nghĩa 237 4.3 Xử lý truy vấn mơi trƣờng phân tán Đồ thị truy vấn: • Có nút dùng để biểu diễn cho quan hệ kết • Các nút khác biểu diễn cho tốn hạng câu truy vấn (các quan hệ) • Cạnh nối hai nút mà nút kết biểu diễn phép nối • Cạnh có nút đích nút kết biểu diễn phép chiếu • Một nút khơng phải nút kết gán nhãn phép chọn phép tự nối (seft-join: nối quan hệ với nó) Đồ thị kết nối: • Là đồ thị đồ thị truy vấn (join graph), 239 có phép nối 238 4.3 Xử lý truy vấn mơi trƣờng phân tán Ví dụ: Từ quan hệ E=NHANVIEN (MANV, TENNV, CHUCVU) G = HOSO (MANV, MADA, NHIEMVU, THOIGIAN) J=DUAN (MADA, TENDA, NGANSACH) Hãy xác định “Tên nhiệm vụ lập trình viên làm dự án CSDL có thời gian lớn năm.” Truy vấn SQL tương ứng là: SELECT FROM WHERE E.TENNV, G.NHIEMVU E, G, J E.MANV=G.MANV AND G.MADA.= J.MADA AND TENDA=”CSDL” AND THOIGIAN 36 AND NHIEMVU=”LTRINH” 240 40 4.3 Xử lý truy vấn môi trƣờng phân tán 4.3 Xử lý truy vấn môi trƣờng phân tán Đồ thị truy vấn đồ thị kết nối tương ứng Xét câu truy vấn SQL tương ứng: thiếu AND G.MADA=J.MADA SELECT E.TENNV, NHIEMVU FROM E, G, J WHERE E.MANV=G.MANV AND TENDA=”CSDL” AND THOIGIAN  36 AND CHUCVU=”Lập trình” Truy vấn sai ngữ nghĩa đồ thị truy vấn khơng liên thơng THOIGIAN  36 G E.MANV=G.MANV CHUCVU= “Lập trình” G.MADA=J.MADA G.NHIEMVU E J TENDA=”CSDL” E.TENNV Kết (a) Đồ thị truy vấn THOIGIAN  36 G E.MANV=G.MANV G G.MANV=G.MANV CHUCVU= “Lập trình” E G.NHIEMVU G.MANV=J.MANV J TENDA=”CSDL” E.TENNV E J (b) Đồ thị kết nối tƣơng ứng Kết 241 4.3 Xử lý truy vấn môi trƣờng phân tán 242 4.3 Xử lý truy vấn môi trƣờng phân tán SELECT E.CHUCVU FROM E WHERE (NOT(E.CHUCVU=”Lập trình”) AND (E.CHUCVU=”Lập trình” OR E.CHUCVU=”Kỹ sư điện”) AND NOT(E.CHUCVU=”Kỹ sư điện”) OR E.TENNV=”Dũng” 4.3.1.3 Loại bỏ dƣ thừa • Điều kiện truy vấn có chứa vị từ dư thừa • Một đánh giá sơ sài điều kiện dư thừa dẫn đến lặp lại số cơng việc • Sự dư thừa vị từ dư thừa cơng việc loại bỏ cách làm đơn giản hố điều kiện thơng qua luật luỹ đẳng sau: p  p p p  true  true p  p p p   p  false p  true  p p   p  true p  false  p p1  (p1  p2)  p1 p  false  false 10.p1  (p1  p2)  p1 Ví dụ: Đơn giản hoá câu truy vấn sau: Đồ thị truy vấn 243 4.3 Xử lý truy vấn môi trƣờng phân tán Đặt p1:, p2:, p3: Các vị từ sau mệnh đề WHERE mô tả lại: p: ( p1  (p1  p2)   p2)  p3  (( p1  p1   p2)  ( p1  p2   p2))  p3 (áp dụng luật 7)  ((false   p2)  ( p1  false) ) p3 (áp dụng luật 5)  (false  false )  p3 (áp dụng luật 4)  p3 Vậy câu truy vấn biến đổi thành: SELECT E.CHUCVU FROM E 244 WHERE E.TENNV=”Dũng” 4.3 Xử lý truy vấn môi trƣờng phân tán 4.3.1.4 Viết lại Bước chia làm hai bước sau: • Biến đổi trực tiếp truy vấn phép tính sang đại số quan hệ • Cấu trúc lại truy vấn đại số quan hệ để cải thiện hiệu thực • Cây đại số quan hệ mà nút biểu diễn quan hệ CSDL, nút không quan hệ trung gian sinh phép toán đại số quan hệ 245 Cách chuyển truy vấn phép tính quan hệ thành đại số quan hệ: • Các nút khác tạo cho biến khác (tương ứng quan hệ) Trong SQL nút quan hệ mệnh đề FROM • Nút gốc tạo phép chiếu lên thuộc tính kết Trong SQL nút gốc xác định qua mệnh đề SELECT • Điều kiện (mệnh đề WHERE SQL) biến đổi thành dãy phép toán đại số thích hợp (phép chọn, nối, phép hợp, v.v ) từ đến gốc, thực theo thứ tự xuất vị từ 246 phép toán 41 4.3 Xử lý truy vấn môi trƣờng phân tán 4.3 Xử lý truy vấn mơi trƣờng phân tán Ví dụ: Truy vấn “Tìm tên nhân viên khơng phải “Dũng”, làm việc cho dự án CSDL với thời gian hai năm” Biểu diễn truy vấn SQL là: SELECT E.TENNV FROM J, G, E WHERE G.MANV=E.MANV SELECT E.TENNV FROM J, G, E WHERE G.MANV=E.MANV AND G.MADA= J.MADA AND E.TENNV “Dũng” AND J.TENDA= “CSDL” AND (THOIGIAN=12 OR AND G.MADA= J.MADA THOIGIAN=24) AND E.TENNV “Dũng” AND J.TENDA= “CSDL” AND (THOIGIAN=12 OR THOIGIAN=24) 247 248 4.3 Xử lý truy vấn môi trƣờng phân tán 4.3 Xử lý truy vấn môi trƣờng phân tán 06 luật biến đổi phép toán đại số quan hệ: Mục đích: dùng để biến đổi đại số quan hệ thành tương đương (trong có tối ưu) Giả sử R, S, T quan hệ, R định nghĩa toàn thuộc tính A={A1, , An}, S định nghĩa tồn thuộc tính B={B1, , Bn} 1.Tính giao hốn phép tốn hai ngơi: Phép tích Decartes phép nối hai quan hệ có tính giao hốn i R  S  S  R ii R S  S R Tính luỹ đẳng phép tốn ngơi • Dãy phép chiếu khác quan hệ tổ hợp thành phép chiếu ngược lại: A’(A’’(R))   A’(R) A’, A’’ R A’  A’’ • Dãy phép chọn khác  p ( A ) quan i i hệ, với pi vị từ gán vào thuộc tính Ai , tổ hợp thành phép chọn Tính kết hợp phép tốn hai ngơi: Phép tích Decartes phép nối hai quan hệ có tính kết hợp i (RS)  T  R  (ST) ii (R S) T  R (S T)  p ( A ) ( p ( A ) ( R))   p ( A ) p ( A ) ( R) 1 2 1 2 249 250 4.3 Xử lý truy vấn môi trƣờng phân tán 4.3 Xử lý truy vấn môi trƣờng phân tán Phép chiếu giao hoán với phép toán hai ngơi • Phép chiếu tích Decartes: Nếu C=A‟B‟ với A‟ A, B‟ B, A, B tập thuộc tính quan hệ R, S ta có: Phép chọn giao hoán với phép chiếu  A1 , ,An ( p ( Ap ) ( R))   A1 , ,An ( p ( Ap ) ( A1 , ,An , Ap ( R))) Nếu Ap thành viên {A1, , An}, biểu thức trở thành  C ( R  S )   A' ( R)   B ' ( S )  A1 , ,An ( p ( Ap ) ( R))   p ( Ap ) ( A1 , ,An , Ap ( R)) Phép chọn giao hoán với phép tốn hai ngơi • Phép chọn với phép nhân:  p ( Ap ) ( R  S )   p ( Ap ) ( R)  S • Phép chọn với phép nối:  p( A ) (R i ( Ai ,Bk ) S )   p ( Ai ) ( R) ( Ai , Bk ) S  p( A ) ( R  T )   p( A ) ( R)   p( A ) (T ) i Phép chiếu phép nối: C (R p(Ai , B j ) S )   A' ( R ) p(Ai , B j )  B' (S ) • Phép chiếu phép hợp:  C ( R  S )   A' ( R)   B ' ( S ) • Phép chọn với phép hợp: Nếu R T thuộc tính i • i 251 Chú ý: Việc sử dụng sáu luật có khả sinh nhiều đại số quan hệ tương đương Vấn đề xác định cho tối ưu 252 42 4.3 Xử lý truy vấn môi trƣờng phân tán 4.3 Xử lý truy vấn môi trƣờng phân tán Chú ý: Trong giai đoạn tối ưu, so sánh thực dựa chi phí dự đốn chúng Tuy nhiên, số lượng lớn cách tiếp cận khơng hiệu Chúng ta dùng luật để cấu trúc lại cây, nhằm loại bỏ đại số quan hệ “tồi” Các luật sử dụng theo bốn cách sau: • Phân rã phép tốn ngơi, đơn giản hóa biểu thức truy vấn • Nhóm phép tốn ngơi quan hệ để giảm số lần thực • Giao hốn phép tốn ngơi với phép tốn hai ngơi để ưu tiên cho số phép toán (chẳng hạn phép chọn, chiếu, ) • Sắp thứ tự phép tốn hai thực truy vấn Cấu trúc lại truy vấn ví dụ trên, cho kết tốt ban đầu nhiên xa tối ƣu MADA  MADA,TENNV MADA MANV J.TENDA=“CSDL"  MADA,MANV  MANV,TENNV  TENNV”DUNG” G E THOIGIAN=12 ˅ THOIGIAN=24 253 4.3 Xử lý truy vấn môi trƣờng phân tán  E.TENNV J 254 4.3 Xử lý truy vấn môi trƣờng phân tán 4.3.2 Cục hóa liệu - Định vị liệu phân tán Vai trò tầng Cục hóa liệu: • Dịch câu truy vấn đại số quan hệ tổng thể sang câu truy vấn đại số mảnh vật lý • Sử dụng thơng tin lưu trữ lược đồ phân mảnh để cục hóa liệu • Chương trình đại số quan hệ xây dựng lại quan hệ tổng thể từ phân mảnh gọi chương trình định vị • Truy vấn có từ chương trình định vị gọi truy vấn ban đầu 4.3.2.1 Rút gọn theo phân mảnh ngang nguyên thuỷ Xét quan hệ E(MANV,TENNV,CHUCVU) ba phân mảnh ngang E1, E2 E3 : E1=MANV  ”E3”(E) E2=”E3”< MANV  ”E6”(E) E3=MANV > ”E6”(E)  Chương trình định vị cho quan hệ E: E = E1  E2  E3  Dạng ban đầu truy vấn xác định E có cách thay E1  E2  E3  Việc rút gọn truy vấn quan hệ phân mảnh ngang bao gồm việc xác định câu truy vấn, sau cấu trúc lại Điều sinh số quan hệ rỗng, loại bỏ chúng  Phân mảnh ngang đựơc khai thác để làm đơn giản phép chọn phép nối 255 4.3 Xử lý truy vấn môi trƣờng phân tán 256 4.3 Xử lý truy vấn môi trƣờng phân tán E1=MANV  ”E3”(E) E2=”E3”< MANV  ”E6”(E) E3=MANV > ”E6”(E) a Rút gọn với phép chọn: cho quan hệ R phân mảnh ngang thành R1, R2, , Rn với R j   p (R ) j Luật 1:  p j ( R j )   xR : (pi(x)  pj(x)) Trong đó, pi, pj vị từ chọn, x liệu, p(x) vị từ p theo x Ví dụ: Hãy rút gọn truy vấn SELECT * FROM E WHERE MANV=”E5” Với E tách thành ba mảnh ngang E1, E2 E3 : E1=MANV  ”E3”(E) , E2=”E3”< MANV  ”E6”(E) E3=MANV > ”E6”(E) 257 MANV=”E5” MANV=”E5”  E2 E1 E2 E3 (a) Truy vấn ban đầu (b) Truy vấn rút gọn Rút gọn cách sử dụng tính chất giao hốn phép chọn với phép hợp, thấy vị từ chọn đối lập với vị từ E1 E3 nên sinh 258 quan hệ rỗng 43 4.3 Xử lý truy vấn môi trƣờng phân tán 4.3 Xử lý truy vấn môi trƣờng phân tán b.Rút gọn với phép nối • Ri, Rj xác định theo vị từ pi, pj thuộc thể đơn giản chúng phân mảnh theo thuộc tính nối • tính Việc rút gọn thực dựa tính phân phối Nhận xét: phép nối phép hợp loại bỏ phép nối vơ ích • • Với tính chất, (R1R2) Rj = xRi, yRj :  (pi(x)pj(y)) Trong Luật 2: Ri Các phép nối quan hệ phân mảnh ngang có R3 = (R1 R3)  (R2 Việc xác định phép nối vô ích thực cách xem xét vị từ mảnh R3), Ri phân mảnh Chúng ta xác định phép • Truy vấn rút gọn tốt đơn giản nối vơ ích mảnh điều kiện nối mâu thuẫn truy vấn ban đầu Sau đó, dùng luật để loại bỏ phép nối • Một thuận lợi truy vấn rút gọn phép nối thực song song vơ ích 259 4.3 Xử lý truy vấn môi trƣờng phân tán 4.3 Xử lý truy vấn mơi trƣờng phân tán Ví dụ: Giả sử quan hệ E phân mảnh thành mảnh E1=MANV  ”E3”(E) E2=”E3”< MANV  ”E6”(E) 260 E3=MANV > ”E6”(E) E1=MANV  ”E3”(E) E2=”E3”< MANV  ”E6”(E) G1=MANV”E3”(G) G2=MANV>”E3”(G) E Quan hệ G phân làm hai mảnh: G1=MANV”E3”(G) G2=MANV>”E3”(G) Nhận xét: G = (E1E2E3) (G1G2) = (E1 G1)(E1 G2)(E2 = (E1 G1)  G1)(E2 (E2 G2)(E3 từ E2 E3 E, G WHERE E.MANV=G.MANV G2 )    Xét truy vấn * G2 ) (E3 MANV • Vị từ định nghĩa G2 hợp định nghĩa vị FROM G1)(E3 G2) • E1 G1 định nghĩa vị từ SELECT E3=MANV > ”E6”(E) E1 E2 E3 G1 MANV E1 G2 E3 G2 G2 Hình 4.8: Sự rút gọn phân mảnh ngang với phép nối 261 4.3.2.2 Rút gọn phân mảnh dọc • Chức việc phân mảnh dọc tách quan hệ dựa vào thuộc tính phép chiếu • Vì phép tốn xây dựng lại phân mảnh dọc nối, nên chương trình định vị quan hệ phân mảnh dọc nối mảnh vùng thuộc tính chung Ví dụ: Quan hệ E phân mảnh dọc thành E1, E2, với thuộc tính khố MANV lặp lại sau: E1 =  MANV,TENNV(E) E2 = MANV,CHUCVU(E) Chương trình định vị là: E = E1 MANV E2 • Các truy vấn phân mảnh dọc rút gọn cách xác định quan hệ trung gian vô ích loại bỏ chứa chúng • Các phép chiếu phân mảnh dọc khơng có thuộc tính chung với thuộc tính chiếu (ngoại trừ khóa 263 quan hệ) vơ ích, quan hệ khác rỗng E2 MANV (b) Truy vấn rút gọn (a) Truy vấn ban đầu 4.3 Xử lý truy vấn môi trƣờng phân tán G1 MANV 262 4.3 Xử lý truy vấn môi trƣờng phân tán Luật 3: D,K(Ri) vơ ích DA‟= Trong đó, quan hệ R xác định A={A1, ,An}; R = A‟(R), A‟A , K khoá quan hệ, KA, D tập thuộc tính chiếu, D  A Ví dụ: Với quan hệ E phân mảnh dọc sau: E1 =  MANV,TENNV(E) E2 = MANV,CHUCVU(E)  TENNV  TENNV Xét truy vấn SQL: MANV SELECT FROM TENNV E E1 E2 (a) Truy vấn ban đầu E1 (b) Truy vấn rút gọn Hình 4.9: Rút gọn việc phân mảnh dọc Nhận xét: phép chiếu E2 vơ ích TENNV khơng có E2, nên phép chiếu cần gán vào E1 264 44 4.3 Xử lý truy vấn môi trƣờng phân tán 4.3 Xử lý truy vấn môi trƣờng phân tán 4.3.2.3 Rút gọn theo phân mảnh gián tiếp • Sự phân mảnh ngang dẫn xuất cách tách hai quan hệ để việc xử lý nối phép chọn phép nối • Nếu quan hệ R phụ thuộc vào phân mảnh ngang dẫn xuất nhờ quan hệ S, mảnh R S, mà có giá trị thuộc tính nối, định vị trạm Ngồi ra, S phân mảnh tùy thuộc vào vị từ chọn • Khi R đặt tuỳ theo S, phân mảnh ngang dẫn xuất nên sử dụng mối quan hệ nhiều từ SR (i.e với S phù hợp với n R, với R phù hợp với S) • Truy vấn phân mảnh ngang dẫn xuất rút gọn được, vị từ phân mảnh mâu thuẫn phép nối đưa quan hệ rỗng • Chương trình định vị quan hệ phân mảnh ngang 265 dẫn xuất hợp mảnh G1 = G G2 = G MANV E1 MANV E2 Xử lý truy vấn môi trƣờng phân E1= 4.3 E2= CHUCVU”Lập CHUCVU=”Lập trình”(E) trình”(E) Ví dụ: Cho mối quan hệ nhiều từ quan hệ E=NHANVIEN(MANV, TENNV, CHUCVU) đến quan hệ G=DUAN (MANV, MADA, NHIEMVU, THOIGIAN) Trong đó, quan hệ G phân mảnh ngang dẫn xuất: G1 = G G2 = G MANV E2 MANV E1 Và E phân mảnh ngang: E1= CHUCVU=”Lập trình”(E) E2= CHUCVU”Lập trình”(E) Chương trình định vị cho quan hệ phân mảnh ngang dẫn xuất hợp mảnh G=G 1G2 Để rút gọn truy vấn phân mảnh ngang dẫn xuất này, phép nối đưa quan hệ rỗng vị từ phân mảnh mâu thuẫn Ví dụ vị từ G1 E2 mâu thuẫn nhau, nên G1 E2 = 266 Chú ý: (G1 G2 ) CHUCVU=”ks khí”(E2) = (G1 CHUCVU=”ks khí”(E2)) (G2 CHUCVU=”ks khí”(E2)) tán  Ví dụ: Xét truy vấn SELECT * FROM E, G WHERE G.MANV=E.MANV AND CHUCVU=”KS khí”  CHUCVU=”KS khí” G1 MANV G1  G2 (a) Truy vấn ban đầu  CHUCVU=”KS khí”  CHUCVU=”KS khí” G2 E2 G2 E2 MANV  CHUCVU=”KS khí”  E2 MANV MANV MANV E1 G1 E2 (c) Truy vấn sau đẩy phép hợp lên  CHUCVU=”KS khí”  G2 E2 (b) Truy vấn sau đẩy phép chọn xuống 267 4.3 Xử lý truy vấn môi trƣờng phân tán E = (E1  E2) MANV Nhận xét: • Truy vấn ban đầu mảnh E1, E2, G1 G2 tương ứng hình 4.10a • Bằng cách đẩy phép chọn xuống mảnh E1 E2, truy vấn rút gọn hình 4.10b • Phân phối phép nối với phép hợp, thu hình 4.10c 268 • Cây bên trái đưa quan hệ rỗng, nên rút gọn có hình 4.10d 4.3 Xử lý truy vấn môi trƣờng phân tán 4.3.2.4 Rút gọn theo phân mảnh hỗn hợp • Sự phân mảnh hỗn hợp kết hợp phân dọc phân mảnh ngang • Mục đích phân mảnh hỗn hợp hỗ trợ truy vấn liên quan đến phép chiếu, phép chọn phép nối • Chương trình định vị cho quan hệ phân mảnh hỗn hợp phép hợp phép nối mảnh Ví dụ: Xét quan hệ E phân mảnh hỗn hợp sau: E1=MANV  ”E4”(MANV,TENNV(E)), E2=MANV > ”E4”( MANV,TENNV(E)) E3= MANV,CHUCVU(E) Chương trình định vị là: (d) Truy vấn rút gọn Hình 4.10: Rút gọn phân mảnh gián tiếp Các truy vấn mảnh hỗn hợp rút gọn cách kết hợp luật sử dụng phân mảnh ngang nguyên thủy, phân mảnh dọc, phân mảnh ngang gián tiếp, tương ứng sau: 1.Loại bỏ quan hệ rỗng sinh mâu thuẫn phép chọn phân mảnh ngang 2.Loại bỏ quan hệ vơ ích sinh phép chiếu phân mảnh dọc 3.Phân phối phép nối với phép hợp để tách loại bỏ phép nối vơ ích E3 269 270 45 Ví dụ: E1=MANV  ”E4”(MANV,TENNV(E)), E3= MANV,CHUCVU(E) SELECT FROM WHERE E2=MANV > ”E4”( MANV,TENNV(E)) TENNV E MANV=”E5” Mục đích tối ưu hoá truy vấn CSDL phân tán Chức tối ưu hoá truy vấn phân tán Các phương pháp xử lý truy vấn Ý tưởng thuật toán Ingres tập trung phân tán Ví dụ Sơ đồ phân lớp chung cho xử lý truy vấn phân tán Cách chuyển truy vấn phép tính quan hệ thành đại số quan hệ Sử dụng luật biến đổi phép toán đại số quan hệ để biến đổi đại số quan hệ thành tương đương Định vị liệu phân tán-Tối ưu hoá cục Xác định tổng chi phi thời gian trả lời câu truy vấn  TENNV  TENNV MANV=”E5” MANV=”E5”  E2 E1 E2 E3 (a) Truy vấn ban đầu Câu hỏi cuối chƣơng (b) Truy vấn rút gọn Hình 4.11: Rút gọn phân mảnh hỗn hợp 271 272 NỘI DUNG TỔNG QUAN VỀ QUẢN TRỊ GIAO TÁC SỰ HỖ TRỢ NGUYÊN TỬ CỦA CÁC GIAO TÁC PHTÁN CHƢƠNG QUẢN TRỊ CÁC GIAO TÁC PHÂN TÁN SỰ PHỤC HỒI TRONG HỆ THỐNG TẬP TRUNG CÁC SỰ CỐ TRUYỀN THÔNG TRONG HỆ PHÂN TÁN KHÔI PHỤC CÁC GIAO TÁC PHÂN TÁN PGS.TS Nguyễn Mậu Hân GIAO THỨC UỶ THÁC HAI PHA Khoa CNTT-ĐHKH HUẾ 274 273 CHƢƠNG 5: QUẢN TRỊ CÁC GIAO TÁC PHÂN TÁN MỤC ĐÍCH 5.1 TỔNG QUAN VỀ QUẢN TRỊ CÁC GIAO TÁC Giao tác phân tán (Distributed transaction)? Nhằm quản trị số vấn đề q trình truyền thơng hệ phân tán như: • Độ tin cậy (reliabity) • Điều khiển tương tranh (concurrency control) • Hiệu sử dụng tài nguyên hệ thống Và Hiểu việc quản trị giao tác phân tán điều cần thiết để hiểu liên quan điều khiển tương tranh, chế phục hồi cấu trúc hệ thống phân tán 275 Giao tác lần thực chương trình Chương trình là:  câu truy vấn  chương trình ngơn ngữ chủ với lời gọi gắn vào ngơn ngữ truy vấn Ví dụ: (T1): Begin read(a); a:=a+100; read(a); a:=a+2; write(a); end 276 46 5.1 TỔNG QUAN VỀ QUẢN TRỊ CÁC GIAO TÁC 5.1 TỔNG QUAN VỀ QUẢN TRỊ CÁC GIAO TÁC Hai giao tác sở:  Đọc liệu từ CSDL : read(x)  Ghi liệu vào CSDL: write(x) Chú ý: Khi đọc/ghi liệu vào CSDL giao tác sử dụng không gian làm việc riêng (private workspace) để thực thao tác tính tốn Các thao tác tính tốn khơng ảnh hưởng đến CSDL 277 5.1 TỔNG QUAN VỀ QUẢN TRỊ CÁC GIAO TÁC Ví dụ: xét giao tác T1 T2: (T2):Begin (T1):Begin read(a); read(a); a:=a+100; a:=a+100; write(a); read(a); read(a); a:=a+2; a:=a+2; write(a) write(a) end end Nhận xét: - Ở giao tác T1 giá trị biến a tăng lên lệnh a:=a+100 thực khơng gian riêng mà không ảnh hưởng đến CSDL - Ở giao tác T2 giá trị biến a tăng thêm 102 278 5.1 TỔNG QUAN VỀ QUẢN TRỊ CÁC GIAO TÁC Tính nguyên tử (Atomicity) 5.1.1 Các tính chất giao tác -Tính nguyên tử (Atomicity) -Tính bền vững (Durability) -Tính (Serializability) -Tính biệt lập (Isolation) 279 5.1 TỔNG QUAN VỀ QUẢN TRỊ CÁC GIAO TÁC Tính nguyên tử giao tác thực trọn vẹn lệnh giao tác mà không giao tác chen vào Khi thực thi giao tác hành động giao tác thực khơng hành động thực Tính ngun tử đòi hỏi việc thực thi giao tác bị cắt ngang loại cố DDBMS chịu trách nhiệm xác định công việc giao tác để khơi phục lại sau cố Có chiều hướng thực hiện:  kết thúc cách hồn tất hành động lại,  kết thúc cách hồi lại tất hành 280 động thực 5.1 TỔNG QUAN VỀ QUẢN TRỊ CÁC GIAO TÁC Một số khái niệm: •Khơi phục giao tác (transaction recovery): trì tính ngun tử có cố mà giao tác tự huỷ bỏ •Khắc phục cố (crash recovery): trì tính ngun tử có cố hệ thống •Uỷ thác (commitment): Sự hồn thành giao tác 02 lý làm cho giao tác khơng hồn thành: giao tác tự huỷ bỏ (transaction aborts) hệ thống bị cố (system crashes) Tại giao tác tự hủy? Do yêu cầu thân giao tác người sử dụng Do ép buộc hệ thống:  tải hệ thống  bị kẹt khoá gài (deadlock) 281 282 47 5.1 TỔNG QUAN VỀ QUẢN TRỊ CÁC GIAO TÁC 5.1 TỔNG QUAN VỀ QUẢN TRỊ CÁC GIAO TÁC Tính bền vững (Durability) Mục đích: Để bảo đảm giao tác uỷ thác, kết trì khơng bị xố khỏi CSDL Tính (Serializability): Mục đích: quản trị vấn đề thực đồng thời hai nhiều giao tác DDBMS có trách nhiệm bảo đảm kết giao tác ghi vào CSDL Yêu cầu: Nếu có nhiều giao tác thực đồng thời, kết phải như trường hợp thực thứ tự Tính bền vững sử dụng điều kiện để khôi phục liệu (database recovery), nghĩa cách khôi phục CSDL trạng thái quán mà hành động uỷ thác phản ánh 283 5.1 TỔNG QUAN VỀ QUẢN TRỊ CÁC GIAO TÁC 5.1 TỔNG QUAN VỀ QUẢN TRỊ CÁC GIAO TÁC Tính biệt lập (Isolation) Mục đích: Tính chất để ngăn ngừa hủy bỏ dây chuyền (cascading abort - Còn gọi hiệu ứng domino) Chú ý: Một giao tác thực thi đưa kết cho giao tác khác hoạt động trước uỷ thác Nếu giao tác cho phép giao tác khác sử dụng kết chưa hồn tất trước uỷ thác, sau định huỷ bỏ, giao tác đọc giá trị chưa hồn tất phải huỷ bỏ khơng xâu mắt xích dễ dàng tăng nhanh gây phí tổn đáng kể cho DDBMS 285 5.1 TỔNG QUAN VỀ QUẢN TRỊ CÁC GIAO TÁC Ví dụ: Xét giao tác đồng thời T T2 truy xuất đến mục liệu x, Giả sử giá trị x trước bắt đầu thực 50 T1: Read(x) x:= x + Write(x) Commit T2: Read(x) x:= x + Write(x) Commit Điều xảy nếu: a Hai giao tác thực b Hai giao tác thực đồng thời 286 5.1 TỔNG QUAN VỀ QUẢN TRỊ CÁC GIAO TÁC a giao tác thực tuần tự: dãy thực thi cho hành động giao tác là: T1: T1: T1: T1: T2: T2: T2: T2: Nếu hệ thống có tính điều khiển đồng thời, người lập trình ghi lại giao tác thực 284 b Các giao tác thực thi đồng thời dãy hành động thực sau xảy ra: T1: T1: T2: T1: T2: T2: T1: T2: Read(x) x:= x + Write(x) Commit Read(x) x:= x + Write(x) Commit Nhận xét: • Giá trị ban đầu x 50 • Giá trị x sau T1 uỷ thác 51 • Giá trị x sau T2 uỷ thác 52 Read(x) x:=x + Read(x) Write(x) x:=x + Write(x) Commit Commit Nhận xét: • Giá trị ban đầu x 50 • Giá trị x sau T1 uỷ thác 51 • Giá trị x sau T2 uỷ thác 51 287 288 48 5.1 TỔNG QUAN VỀ QUẢN TRỊ CÁC GIAO TÁC 5.1 TỔNG QUAN VỀ QUẢN TRỊ CÁC GIAO TÁC Thí dụ (về quan trọng tính biệt lập) Xét 02 giao tác thực hệ thống kế toán ngân hàng sau: Giao tác T1 chuyển $1000 vào tài khoản có $0 Giao tác T2 đọc toán $1000 ghi T1 trước T1 hoàn tất ghi nợ $1000 vào tài khoản T2 hoàn tất, tiền mặt $1000 chuyển cho người dùng yêu cầu thực T2 T1 bị huỷ bỏ lý thao tác bất hợp lệ Việc hủy bỏ T1 yêu cầu phải hủy bỏ T2, thao tác thực T2 dựa vào thao tác thực T1 Tuy nhiên, việc hủy bỏ T2 khơng thể hậu T2 giới thực khơng thể hồn lại hệ thống 5.1.2 Quản lý khoá giao tác Mục liệu (data item): là đơn vị liệu cần truy xuất có điều khiển Bản chất kích thước mục liệu lựa chọn tuỳ theo mục tiêu toán Trong điều khiển đồng thời phân tán, CSDL phải phân nhỏ thành mục liệu Phương pháp thông dụng để điều khiển việc truy xuất mục sử dụng khoá chốt (lock) 289 290 5.1 TỔNG QUAN VỀ QUẢN TRỊ CÁC GIAO TÁC 5.1 TỔNG QUAN VỀ QUẢN TRỊ CÁC GIAO TÁC Khố chốt • Khố chốt đặc quyền truy xuất mục liệu mà mà quản lý khoá chốt (lock manager) uỷ quyền cho giao tác thu hồi lại Ví dụ: (minh họa cách sử dụng khóa chốt) Tại thời điểm, hai đại lý bán vé VN Airlines bán cho khách hàng vé HCMC-HUẾ Hai thao tác mô tả qua giao tác T T2 có chung chương trình P Các giao tác truy xuất đến mục liệu x (chẳng hạn, x số vé bán chuyến bay) Giả sử, giá trị x trước bắt đầu thực giao tác 50 (đã bán 50 vé) • Bộ quản lý khố chốt thành phần DDBMS, chịu trách nhiệm theo dõi xem mục liệu chịu đọc/ghi nhiều giao tác Ví dụ cho thấy vai trò quan trọng khố chốt 291 5.1 TỔNG QUAN VỀ QUẢN TRỊ CÁC GIAO TÁC • Điều xảy giao tác T1 T2 thực đồng thời với mã lệnh P xen kẻ sau: •Đã bán thêm vé nhƣng CSDL ghi vé •Làm để giải ? T1: T2: T1: T2: T1: T2: T1: T2: T2: Read(x) x:=x+1 Write(x) Commit 292 5.2 SỰ HỖ TRỢ NGUYÊN TỬ CỦA CÁC GIAO TÁC PHÂN TÁN 5.2.1 Các cố CSDL tập trung Phân loại lỗi: a Các cố không làm thông tin: • Các thơng tin cất giữ nhớ sẵn sàng cho phục hồi • Chẳng hạn như, việc hủy giao tác điều kiện lỗi bị phát hiện, lỗi tràn số lỗi chia cho zero b Các cố có thơng tin tạm thời: • Nội dung nhớ bị mất; nhiên • Các thông tin ghi lại đĩa không bị ảnh hưởng lỗi c Các cố có thơng tin lưu trữ: • Được gọi lỗi mơi trường • Nội dung đĩa lưu trữ bị Read(x) Read(x) x:=x+1 x:=x+1 Write(x) Write(x) Commit Commit •Sử dụng khố chốt •Nghĩa là, trước T1 đọc x phải khoá x lại (lock x), ngăn không cho giao tác khác truy xuất x T1 hoàn thành P: Lock(x); Read(x); x:=x + 1; Write(x); Unlock(x); T1: Read(x) x:=x+1 Write(x) Commit 293 294 49 5.2 SỰ HỖ TRỢ NGUYÊN TỬ CỦA CÁC GIAO TÁC PHÂN TÁN 5.2 SỰ HỖ TRỢ NGUYÊN TỬ CỦA CÁC GIAO TÁC PHÂN TÁN Nhận xét: Sự cố có thơng tin lưu trữ xảy Cách giải quyết:  tạo thông tin vài đĩa độc lập với phương thức xử lý lỗi Sử dụng lưu trữ ổn định: nhớ trung gian để phục hồi liệu 5.2.2 Nhật ký (logs): d Các cố làm liệu lưu trữ ổn định: Sự cần thiết việc hủy hành động giao tác thất bại trước ủy thác xảy ra; Ít xảy  Backup ổ đĩa Backup server Các hoạt động hủy làm lại phải thay đổi giá trị, tức là: Một nhật ký lưu trữ thông tin việc hủy làm lại tất hành động thực giao tác Hủy hành động giao tác có nghĩa xây dựng lại CSDL trước thực Làm lại hành động giao tác nghĩa thực lại hành động UNDO(UNDO(UNDO(…(hành động)…))) = UNDO(hành động) 295 5.2 SỰ HỖ TRỢ NGUYÊN TỬ CỦA CÁC GIAO TÁC PHÂN TÁN 5.2.2 Nhật ký (logs): REDO(REDO(REDO(…(hành động)…))) = REDO(hành động) 296 5.2 SỰ HỖ TRỢ NGUYÊN TỬ CỦA CÁC GIAO TÁC PHÂN TÁN 5.2.3 Các quy trình phục hồi: Một ghi nhật ký bao gồm thông tin yêu cầu cho việc hủy việc làm lại hành động: If có cố có thơng tin tạm thời xảy then Begin •Kiểu hoạt động giao tác (chèn, xóa, sửa đổi, ) • Đọc file nhật ký • Xác định tất giao tác chưa hoàn tất cần phải hoàn lại {bằng cách tìm giao tác có begin_transaction khơng có commit abort} •Giá trị ghi cũ (dùng để hồn lại thao tác) • Xác định tất giao tác cần thực lại •Giá trị ghi (dùng để thực lại thao tác) • Hoàn lại thực lại giao tác •Định danh giao tác •Định danh ghi •Thông tin phụ dùng cho thủ tục phục hồi End 297 298 Xem thêm mục 5.2.3 Khôi phục giao tác phân tán, trang 115-118 Giáo trình 5.2 SỰ HỖ TRỢ NGUYÊN TỬ CỦA CÁC GIAO TÁC PHÂN TÁN 5.2 SỰ HỖ TRỢ NGUYÊN TỬ CỦA CÁC GIAO TÁC PHÂN TÁN 5.2.4 Giao thức ủy thác pha (2-Phase Commitment Protocol) 5.2.4 Giao thức ủy thác pha (2-Phase Commitment Protocol) Giới thiệu ủy thác phân tán: Ý nghĩa: xác định định cho tất thành viên việc ủy thác hủy bỏ tất giao tác cục Giả sử có giao tác T khởi hoạt vị trí sinh nhiều giao tác vị trí khác Pha – Pha biểu (Voting phase)  Thành phần giao tác T thực vị trí gốc gọi điều phối viên (coordinator) Điều phối viên yêu cầu tất thành viên chuẩn bị ủy thác (prepare for commitment);  Các giao tác thực vị trí khác gọi thành viên (participants) Mỗi thành viên trả lời READY tình trạng sẵn sàng thực giao tác cục  Điều phối viên chịu trách nhiệm cuối định ủy thác hủy bỏ Trước gửi chuẩn bị thông tin ủy thác, điều phối viên lưu lại an toàn việc ghi nhật ký (log record) dạng mới, gọi ghi nhật ký “prepare”  Nếu thành viên ủy thác cục giao tác tất thành viên khác phải hủy bỏ giao tác cục 299 300 50 Điều phối viên: Ghi “prepare” vào nhật ký Gửi thơng điệp PREPARE kích hoạt thời gian hạn Chờ thông điệp PREPARE Thành viên if thành viên sẵn sàng ủy thác then begin Ghi giao tác cục vào nhật ký Ghi mẫu tin “ready” vào nhật ký Gửi thông điệp trả lời READY đến điều phối viên ACKĐiều phối viên Acknowledgment: Tin báo nhận: Tin báo nhận thông báo xác minh nhận hàng gửi Khi liệu truyền hai hệ thống người nhận chứng thực nhận liệu Thành viên end else begin Chờ thông điệp trả lời (READY ABORT) từ tất thành viên thời gian hạn If thời gian hạn hết có vài thông điệp trả lời ABORT then Begin Ghi mẫu tin “global_abort” vào nhật ký Gửi thông điệp ABORT đến tất thành viên End Else Begin Ghi mẫu tin “global_commit” vào nhật ký; Gửi thông điệp COMMIT đến tất thành viên End Chờ thông điệp Ghi mẫu tin “abort” “commit” vào nhật ký Gửi thông điệp ACK đến điều phối viên Thi hành lệnh Ghi mẫu tin “abort” vào nhật ký Gửi thông điệp trả lời ABORT đến điều phối viên end Pha –Pha định (Decision phase) Điều phối viên: Ghi vào nhật ký định Các thành viên ghi lệnh commit abort vào nhật ký, thành viên gửi thông điệp xác nhận (ACK) đến điều phối viên, Thực hành động cần thiết cho việc ủy thác hủy bỏ giao tác Điều phối viên: điều phối viên chờ thu thơng điệp ACK báo hồn thành ủy thác từ tất thành viên Ghi vào nhật ký dạng mới, mẫu tin “complete” Thuật tốn mơ tả giao thức ủy thác pha Chờ thông điệp ACK từ tất thành viên Ghi mẫu tin “complete” vào nhật ký 302 5.2 SỰ HỖ TRỢ NGUYÊN TỬ CỦA CÁC GIAO TÁC PHÂN TÁN Khai báo tất thành viên định, cách gửi cho họ thông điệp Thành viên : Điều phối viên 301 Cách xử lý giao tác có cố Sự cố vị trí (site failures) a Một thành viên gặp cố trước ghi mẫu tin “ready” vào nhật ký  Thời gian hạn điều phối viên hết  Điều phối viên định hủy bỏ giao tác  Tất thành viên trực thuộc hủy bỏ giao tác cục  thành viên bị cố phục hồi, quy trình bắt đầu lại (restart) mà không cần phải tập hợp thông tin từ vị trí khác 303 304 5.2 SỰ HỖ TRỢ NGUYÊN TỬ CỦA CÁC GIAO TÁC PHÂN TÁN 5.2 SỰ HỖ TRỢ NGUYÊN TỬ CỦA CÁC GIAO TÁC PHÂN TÁN Sự cố vị trí (site failures) b Một thành viên gặp cố sau ghi mẫu tin “ready” vào nhật ký  Những vị trí khác (khơng cố) kết thúc giao tác (commit abort)  Vị trí có cố phục hồi cách:  Truy cập thông tin phục hồi từ xa  Điều phối viên tất thành viên trực thuộc khác thực phần (1a), thành viên bị cố thực bắt đầu lại mô tả 305 Sự cố vị trí (site failures) c Điều phối viên gặp cố sau ghi mẫu tin “prepare” trước ghi mẫu tin “global_commit” “global_abort” vào nhật ký  Các thành viên trả lời READY phải chờ phục hồi điều phối viên  Quy trình bắt đầu lại điều phối viên thừa nhận giao thức ủy thác từ lúc khởi đầu  Giải thích tính đồng thành viên từ việc ghi mẫu tin “prepare” vào nhật ký, gửi lại thông điệp PREPARE cho họ  Mỗi thành viên thừa nhận thông điệp PREPARE lặp lại thông điệp trước 306 51 5.2 SỰ HỖ TRỢ NGUYÊN TỬ CỦA CÁC GIAO TÁC PHÂN TÁN 5.2 SỰ HỖ TRỢ NGUYÊN TỬ CỦA CÁC GIAO TÁC PHÂN TÁN Sự cố vị trí (site failures) d Điều phối viên gặp cố sau ghi mẫu tin “global_commit” “global_abort” trước ghi mẫu tin “complete” vào nhật ký Cách xử lý giao tác có cố Sự cố vị trí (site failures) e Điều phối viên gặp cố sau ghi mẫu tin “complete” vào nhật ký  Điều phối viên phải gửi lại cho tất thành viên định  Tất thành viên không nhận lệnh phải chờ điều phối viên phục hồi  Như phần trước, thành viên không nên bị ảnh hưởng việc nhận thông điệp thứ hai Trong trường hợp này, giao tác kết thúc khơng có hành động cần thiết để thực lại 307 308 5.2 SỰ HỖ TRỢ NGUYÊN TỬ CỦA CÁC GIAO TÁC PHÂN TÁN 5.2 SỰ HỖ TRỢ NGUYÊN TỬ CỦA CÁC GIAO TÁC PHÂN TÁN Thông điệp bị a Một thông điệp trả lời (READY ABORT) từ thành viên bị  Thời gian hạn điều phối viên hết  Giao tác bị hủy bỏ Thông điệp bị c Một thông điệp lệnh (COMMIT ABORT) bị từ điều phối viên Thành viên không nhận lệnh COMMIT ABORT từ điều phối viên thành viên khơng chắn định b Một thông điệp PREPARE bị  Trong trường hợp này, thành viên đợi  Giải trường hợp a Giải vấn đề cách mở đầu thời gian hạn log thành viên; Nếu khơng có lệnh nhận sau khoảng thời gian hạn trả lời, thành viên yêu cầu nhắc lại lệnh gửi đến điều phối viên 309 310 5.2 SỰ HỖ TRỢ NGUYÊN TỬ CỦA CÁC GIAO TÁC PHÂN TÁN 5.2 SỰ HỖ TRỢ NGUYÊN TỬ CỦA CÁC GIAO TÁC PHÂN TÁN Thông điệp bị d Một thông điệp ACK bị Câu hỏi cuối chương: Các tính chất giao tác phân tán minh họa thực tế Sự hỗ trợ nguyên tử giao tác phân tán Các cố truyền thơng xảy giao tác phân tán Nguyên tắc hoạt động giao thức ủy thác pha Điều phối viên không rõ thành viên nhận thông điệp lệnh hay chưa Giải vấn đề cách xem thời gian hạn log điều phối viên; Nếu khơng có thơng điệp ACK nhận sau khoảng thời gian hạn từ lúc phát lệnh điều phối viên gửi lại lệnh Phương án tốt để xử lý trường hợp gửi lại thơng điệp ACK vị trí thành viên bị mất, mắc dù giao tác hoàn thành thời gian chờ không hoạt động lâu 311 312 52 CHƢƠNG 5: QUẢN TRỊ CÁC GIAO TÁC PHÂN TÁN HẾT CHƢƠNG Nhớ làm tiểu luận 313 53 ... Ví dụ: r s MAMH DIEMTHI MAMH TENMH 9001 CSDL CSDL CO SO DU LIEU MASV MAMH DIEMTHI MAMH TENMH 9001 CSDL FOX FOXPRO 9001 CSDL CSDL CO SO DU LIEU 9002 CTDL CSDL CO SO DU LIEU 9002 CTDL FOX FOXPRO... sử dụng để lưu trữ CSDL, nhật ký giao tác (transaction log) dự phòng (backup)  Trước tạo CSDL, người quản trị phải tạo device để lưư trữ CSDL  Một device chứa nhiều CSDL CSDL tổ chức nhiều... cứng dùng để tổ chức CSDL nhật ký giao tác  Dump device: sử dụng để lưu trữ dự phòng CSDLvà nhật ký giao tác Dump device tổ chức đĩa cứng 121 II SQL SERVER Quản lý CSDL  CSDL đối tượng SQL Server

Ngày đăng: 09/09/2019, 21:55

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan