Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 35 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
35
Dung lượng
1,06 MB
Nội dung
Quản trị liệu phân tán (từ trang 17) 2(2-1-0-4) Học phần học trước: IT3080 Học phần song hành: IT4610 Mục tiêu: Nhằm cung cấp cho sinh viên kiến thức tính tương tranh, quán, toàn vẹn, tin cậy , riêng tư an ninh hệ thống sở liệu phân tán Giới thiệu ứng dụng sở liệu phân tán Thông qua đó, định hướng cho sinh viên phát triển ứng dụng dựa việc xây dựng, khai thác sở liệu phân tán Nội dung: Tổng quan sở liệu phân tán quản trị sở liệu phân tán Những vấn đề giải pháp ( tương tranh, xử lý câu hỏi , nhân bản, chịu lỗi, an toàn – an ninh) Các ứng dụng sở liệu phân tán Các hệ quản trị sở liệu phân tán tiêu biểu: SQL Server, Oracle 11 IT4660 Quản trị sở liệu phân tán 2(2-0-1-4) IT3090 IT4660 Quản trị CSDL phân tán Tên học phần: QUẢN TRỊ CSDL PHÂN TÁN Mã số: IT4660 Khối lượng: 2(2-0-1-4) • Lý thuyết: 30 • Thực hành-Thí nghiệm: 15 Đối tượng tham dự: Sinh viên chuyên ngành Truyền thông Mạng máy tính từ học kỳ Điều kiện học phần: • Học phần tiên quyết: • Học phần học trước: IT3080 • Học phần song hành: IT4610 Mục tiêu học phần: Nhằm cung cấp cho sinh viên kiến thức tính tương tranh, quán, toàn vẹn, tin cậy , riêng tư an ninh hệ thống sở liệu phân tán Nội dung vắn tắt học phần: Tổng quan sở liệu phân tán quản trị sở liệu phân tán Các hệ quản trị sở liệu phân tán tiêu biểu: SQL Server, Oracle Nhiệm vụ sinh viên: • Dự lớp: đầy đủ theo quy chế • Bài tập: hoàn thành tập học phần Đánh giá kết quả: KT/BT(0.3)-T(TN/TL:0.7) • Điểm trình: trọng số 0.3 - Bài tập làm đầy đủ - Hoàn thành tốt thí nghiệm theo yêu cầu giáo viên • Thi cuối kỳ (trắc nghiệm / tự luận): trọng số 0.7 10 Tài liệu học tập M Tamer Ozsu , Patrick Valduriez, Principles of Distributed Database Systems, Prentice Hall, 2nd edition M T Ozsu and P Valduriez, Principles of Distributed Databases, Prentice-Hall, (2nd edition), Elmasri , Navathe, Fundamentals of database systems , Addison-Wesley Longman, (3rd edition) 11 Nội dung chi tiết học phần: QUẢN TRỊ CSDL PHÂN TÁN Người soạn: Th.S Hồ Sĩ Bàng TS Hà Quốc Trung Cơ sở liệu không đồng (Heterogeneous Database) :theo vị trí, phương pháp cấu trúc liệu, chế truy xuất liệu cần có chế chuyển dịch hệ thống: hệ đa sở liệu TRIỂN VỌNG CỦA HỆ CSDL PHÂN TÁN Tự trị Tính song song nâng cao hiệu truy cập Các vấn đề tương tranh (dvu, CPU, vào ) xảy tập trung, độ trễ Độ tin cậy tính sẵn sàng Kinh tế tổ chức hệ máy tính thay cho máy tính lớn Khả mở rộng hệ thống phân chia tài nguyên Bài tập Bài tập :Với CSDL PT CÔNG_TY mô tả ví dụ trước cách phân chia thực thi truy vấn sau ( nêu điều kiện để cách phân chia bạn làm việc tốt) a Liệt kê tên nhân viên, tên phụ thuộc nhân viên cho nhân viên làmviệc cho đơn vị số b Liệt kê tên nhân viên tất nhân viên làm việc cho đơn vị số không làm việc cho số dự án điều hành đơn vị số BÀI TẬP (CSDL ko CSDL phân tán) Consider a DBMS that uses multigranularity locks for concurrency control Using this DBMS, we see two levels of database elements: the relation level and the tuple level Suppose that we have a relation R containing some tuples, and a sequence of actions as follows: (1) Transaction T1 insert a tuple t1 into R (2) Transaction T2 reads a tuple t2 in R (3) Transaction T3 scans relation R (4) Transaction T4 writes tuple t2 in R (5) Transaction T5 deletes tuple t2 from R (6) Transaction T6 deletes relation R We make the following assumptions about timing: i Action (1) is issued to the scheduler at time 0, and the other actions then arrive in the order shown above at an interval of t ii Each transaction requests the necessary lock right before its action is issued, and releases the lock right after its action completes iii Whenever a new lock request arrives or a lock is released, the system examines the waiting queue for that lock and grants the lock to as many compatible requests as it can The locks are granted to the transactions in a firstcomefirstserve manner iv Each action completes 10t after it obtains the lock on relation R (a) For each transaction, list the weakest type of lock (S, X, IS, IX) that the transaction should hold on relation R before its action can be executed? (b) Draw the lock table structure for all the locked data elements in the database, after action(1) completes and before action (2) completes Suppose all actions have arrived at the scheduler and requested their locks at this point (c) Fill out the time table for the lock and unlock actions on relation R in the output schedule from the scheduler You may use li and ui to represent the actions that transaction i obtains and releases the lock on relation R, respectively Question Consider the following single transaction running in isolation: T = r(A) r(B) w(A) w(B) r(C) w(C) w(D) Say that the system crashes and when it restarts we have an opportunity to examine the log A number of scenarios are given below In each scenario, the logging method and log are given For each scenario, determine which writes to data elements must be reflected in the database on disk, and which writes must not be reflected on disk If no data elements fit a category, simply write “empty” in the box a) UNDO logging: log = must: empty must not: C,D b) UNDO logging: log = must: A,B,C,D must not: empty c) REDO logging: log = must: empty must not: A,B,C,D d) REDO logging: log = must: empty must not: empty e) UNDO/REDO logging with nonquiescent (fuzzy) checkpointing: log = must: empty must not: C,D f) UNDO/REDO logging with nonquiescent (fuzzy) checkpointing: log = must: A must not: empty Question Consider the following schedule involving three transactions T1, T2 and T3: a) Draw the precedence graph for this schedule b) Is this schedule conflict serializable? Why or why not? If it is conflict serializable, give the equivalent serial schedule (just write the order of the transactions) No because Precedence Graph has cycle c) Write down all instances where one transaction “reads from” another transaction (If T2 reads from T1, write T1◊ T2.) T1◊ T3 (A) T3◊ T2 (C) === Overview of Application Programming Languages (APIs) Oracle Database developers have a choice of languages for developing applications—C, C++, Java, COBOL, PL/SQL, and Visual Basic The entire functionality of the database is available in all the languages All language-specific standards are supported Developers can choose the languages in which they are most proficient or one that is most suitable for a specific task For example an application might use Java on the server side to create dynamicWeb pages, PL/SQL to implement stored procedures in the database, and C++ to implement computationally intensive logic in the middle tier The Oracle Call Interface (OCI) is a C data access API for Oracle Database It supports the entire Oracle Database feature set Many data access APIs, such as OCCI, ODBC, Oracle JDBC Type2 drivers, and so on, are built on top of OCI OCI provides powerful functionality to build high performance, secure, scalable, and fault-tolerant applications OCI is also used within the server for the data access needs of database kernel components, along with distributed database access OCI lets an application developer use C function calls to access the Oracle data server and control all phases of business logic execution OCI is exposed as a library of standard database access and retrieval functions in the form of a dynamic runtime library that can be linked in by the application The Oracle C++ Call Interface (OCCI) is a C++ API that lets you use the object-oriented features, native classes, and methods of the C++ programing language to access the Oracle database The OCCI interface is modeled on the JDBC interface OCCI is built on top of OCI and provides the power and performance of OCI using an object-oriented paradigm Open database connectivity (ODBC), is a database access API that lets you connect to a database and then prepare and run SQL statements against the database In conjunction with an ODBC driver, an application can access any data source including data stored in spreadsheets, like Excel Oracle offers a variety of data access methods from COM-based programming languages, such as Visual Basic and Active Server Pages These include Oracle Objects for OLE (OO40) and the Oracle Provider for OLE DB Oracle also provides NET data access support through the Oracle Data Provider for NET Oracle also support OLE DB NET and ODBC NET Oracle also provides the Pro* series of precompilers, which allow you to embed SQL and PL/SQL in your C, C++, or COBOL applications view of Transactions A transaction is a logical unit of work that comprises one or more SQL statements run by a single user According to the ANSI/ISO SQL standard, with which Oracle is compatible, a transaction begins with the user’s first executable SQL statement A transaction ends when it is explicitly committed or rolled back by that user Transactions let users guarantee consistent changes to data, as long as the SQL statements within a transaction are grouped logically A transaction should consist of all of the necessary parts for one logical unit of work—no more and no less Data in all referenced tables are in a consistent state before the transaction begins and after it ends Transactions should consist of only the SQL statements that make one consistent change to the data Consider a banking database When a bank customer transfers money from a savings account to a checking account, the transaction can consist of three separate operations: decrease the savings account, increase the checking account, and record the transaction in the transaction journal The transfer of funds (the transaction) includes increasing one account (one SQL statement), decreasing another account (one SQL statement), and recording the transaction in the journal (one SQL statement) All actions should either fail or succeed together; the credit should not be committed without the debit Other nonrelated actions, such as a new deposit to one account, should not be included in the transfer of funds transaction Such statements should be in other transactions Oracle must guarantee that all three SQL statements are performed to maintain the accounts in proper balance When something prevents one of the statements in the transaction from running (such as a hardware failure), then the other statements of the transaction must be undone This is called rolling back If an error occurs in making any of the updates, then no updates are made See Also: Chapter 25, "Overview of Application Development Languages" Note: Oracle is broadly compatible with the SQL-99 Core specification See Also: Oracle Database SQL Reference for information about Oracle’s compliance with ANSI/ISO standards TRƯỜNG HỢP NGHIÊN CỨU: GIỚI THIỆU ORACLE Oracle ? - ORACLE phần mềm cung cấp công ty ORACLE , bao gồm xây dựng ứng dụng sản phẩm cho user cuối (end_user product) - Oracle cung cấp hệ quản trị CSDL mềm dẻo bao gồm CSDL Oracle , môi trường cho việc thiết kế sở liệu (Designer 2000) công cụ phát triển (Developer 2000) - Hệ quản trị CSDL có tính an toàn , bảo mật cao,tính quán toàn vẹn liệu ,cho phép user truy nhập tới CSDL phân tán khối thống Vì đánh giá ưu việt Kiến trúc oracle Ðể thiết kế quản lý CSDL ORACLE tốt cần phải hiểu kiến trúc ORACLE -Sơ đồ kiến trúc ORACLE sau: Một CSDL ORACLE bao gồm file điều khiển (Control files),các file liệu (data files) file làm lại (Redo log files) - File liệu (data files) :chứa đựng tất liệu CSDL có cấu trúc logic table, index,và chúng lưu giữ vật lý file CSDL - File làm lại (redo log files ) dùng cho xử lý làm lại Nó ghi lại tất thay đổi tạo cho CSDL chứa thông tin cho việc khôi phục - Các file điều khiển (control files ) : ghi lại cấu trúc vật lý CSDL Ngoài có - File tham số (parameter ) :chứa tham số cho việc thiết lạp môi trường làm việc , xác định đặc tính thể ,thường định danh Init.Ora * Mỗi ORACLE bắt đầu SGA định vị tiến trình bắt đầu Sự kết hợp vùng nhớ đệm tiến trình gọi thể (Instance) ORACLE - Các tiến trình tương ứng với công việc khác phục vụ cho tất người dùng CSDL Vd: Tiến trình DBWR dùng để ghi lại đĩa liệu từ vùng nhớ đệm CSDL (Database buffer cache) -Các tiến trình phục vụ (server processes) : user chạy ứng dụng tương ứng hỏi đáp liệu tiến trình người dùng đưa ORACLE đưa tiến trình phục vụ để trao đổi yêu cầu với tiến trình người sử dụng User processes < -> Server processes Các tiến trình phục vụ sau thi hành yêu cầu người sử dụng đưa trở lại kết cho user - Các thông báo SQL thi hành server process ,các tiến trình phục vụ đọc khối liệu từ đĩa vào vùng nhớ liệu dùng chung SGA (vùng Shared pool).Sau đưa kết từ thông báo SQL Các tiến trình phục vụ có ba giai đoạn: + Giai đoạn phân tích:kiểm tra cú pháp,kiểm tra quyền truy nhập,đường dẫn tìm kiếm có hiệu xác định phân tích Cây phân tích cất giữ vùng Shared SQL Area (Thuộc phần Shared pool SGA) vùng chứa thông tin cho việc thi hành thông báo SQL +Giai đoạn thi hành thông báo: gắn phân tích tới vùng đệm liệu *Từ ta kết luận hai kiểu tiến trình (Background process server processes):chúng tiến trình chúng khác phạm vi tiến trình mình.Các tiến trình Server processes phục vụ trao đổi yêu cầu từ user,còn background processes thi hành công việc instance *Giới thiệu SGA(System global area :Vùng nhớ hệ thống): tập hợp vùng nhớ đệm dùng chung, tiến trình khác có vùng đệm riêng SGA định vị ORACLE cho instance Các vùng đệm SGA: Shared spool: (như nói phần server processes) ra:kích cỡ shared pool xác định biến Shared -pool-size Database buffer cache (vùng nhớ đệm sở liệu) : Trứơc dl truy nhập tiến trình phục vụ đặt liệu vào vùng đệm Database buffer cache,vùng đệm cát giữ liệu đọc từ đĩa tiến trình phục vụ Số block vùng xác định biến DB_Block_buffer (kích thước block xác định biến DB_block_size) Redo log buffer (Vùng làm lại) : Vùng chứa thông tin thay đổi tới CSDL ORACLE ghi lại thay đổi tới CSDL vùng tới Redo log file.Kích cỡ vùng xác định biến Log-buffer *Các tiến trình (Backgound processes) - DBWR: khối liệu sửa đổi vùng Database buffer cache viết trở lại đĩa tiến trình DBWR Tiến trình quản lý vùng Database buffer.Cho nên tiến trình user luôn tìm vùng đệm rỗi -Logwriter ( LGWR): ghi lại tất thay đổi tới CSDL vùng Redo log buffer tới đĩa tiến trình có tên LGWR,một tiến trình khác ARCH(Achiver) bắt đầu để lưu giữ thông tin làm lại thiết bị cất giữ định trước (tape,disk)dùng cho việc khôi phục bị thất bại LGWR viết Redo log buffer vào Redo log files khi: + user đưa thị commit + vùng redo log buffer vượt 1/3 kích cỡ cho phép vùng + DBWR cần để xoá khối đệm cho điểm kiểm tra thời gian xuất - Process Monitor (PMON): thi hành tiến trình khôi phục tiến trình user bị thất bại - System monitor (SMON): tự động thi hành việc khôi phục instance +tái tạo lại kiểu không gian bảng (table space) - Recover process(RECO):giải thất bại liên quan tới tiến trình phân bố - Checkpoint (CKPT): thay LGWR viết thông tin liệu từ vùng log buffer tới header file dl file điều khiển - LCKn (Lock process): Xử lý tình trạng bế tắc instance hệ tiến trình song song Quản lý việc cất giữ liệu oracle - Oracle định vị không gian cho liệu CSDL theo :đon vị nhỏ block tiếp đến extent,segment,tablespace * KHỐI DỮ LIỆU(data block) -Khối liệu Oracle khối nhỏ công việc I/O gồm nhiều khối file vật lý định vị từ file CSDL -Các khối CSDL gọi khối logic.Nó tương ứngvới nhiều khối vật lý đĩa - Kích cỡ khối CSDL ORACLE phải xác định trước tạo CSDL số tất các file CSDL Khi CSDL tao kích cỡ thay đổi trừ việc tạo lại CSDL Kích cỡ thường 2-:-4 KB xác định biến DB_block_size - Thành phần khối (Overhead(3)/Free Space/Row data) +Header: chứa thông tin chung khối địa khối, kiểu segment +Table directory:bao gồm thông tin bảng cluster sử dụng với segment hợp lại +Row data:cất giữ liệu table index +Row directory:bao gồm thông tin hàng thực khối +Free space:bao gồm tập byte khối mà có sẵn cho việc update, insert, delete Header Table directory Row directory Freespace Row data OVERHEAD (84-107 B) Việc điều khiển free space cho việc update, insert, delete CSDL cách thay đổi giá trị biến: PCTfree,PCTused,Initrsns,Matrans +biến PCTfree: xác định tỷ lệ % khối để sử dụng việc update hàng tồn khối Vd:PCT free=20 tức 20% khối dùng cho việc update tỷ lệ khối rỗi >% PCTfree việc chèn cho phép +Pctused: cho phép khối xem xét lại cho việc chèn hàng mới,các hàng chèn tỷ lệ % khối sử dụng nhỏ giá trị Pctused,giá trị ngầm định = 40 Vd: Pctused =40 sau không gian sử dụng [...]... phép tạo lập CSDL phân tán, điều khiển mọi truy cập đối với CSDL-PT đảm bảo trong suốt đối với người sử dụng – Chương trình quản trị DL địa phương – Chương trình quản trị DL phân tán – Chương trình quản trị truyền thông DL – Chương trình quản trị tự điển DL Các chức năng đặc thù của Hệ QTCSDL-PT – Chương trình quản trị tự điển DL – Đánh giá câu hỏi phân tán – Quản trị giao dịch phân tán – Các chức năng... VẤN ĐỀ CẦN GIẢI QUYẾT KHI TIẾP CẬN CSDL PHÂN TÁN Thi t kế CSDL phân tán (Distributed Database Design): Hai pp đặt dữ liệu: Phân vùng (rời nhau) và nhân bản( toàn bộ hay phân vùng) -> Tối ưu hóa chi phí, cấu trúc, lưu trữ CSDL , giao dịch Xử lý câu hỏi phân tán ( Distributed Query Processing): Phân tích các thuật toán truy vấn và chuyển thành dãy các thao tác dữ liệu -> Cần xem xét phân tán dữ liệu, ... nhau) Hỗ trợ của hệ điều hành (Operating System Support) Cơ sở dữ liệu không đồng nhất (Heterogeneous Database) :theo vị trí, phương pháp cấu trúc dữ liệu, cơ chế truy xuất dữ liệu cần có cơ chế chuyển dịch giữa các hệ thống: hệ đa cơ sở dữ liệu TRIỂN VỌNG CỦA HỆ CSDL PHÂN TÁN Tự trị Tính song song nâng cao hiệu quả truy cập Các vấn đề tương tranh (dvu, CPU, vào ra ) ít xảy ra hơn tập trung,... segment:tập các extent mà chúng cất giữ các giữ liệu khôi phục cho việc khôi phục lại +Boostrap segment:là 1 extent chứa các định nghĩa về từ điển cho các bảng từ điển và được nạp vào khi CSDL được mở *TABLESPACE -Dữ liệu trong một cơ sở dữ liệu của Oracle dược cất giữ logic trên các tablespace và được cất giữ vật lý trong các file cơ sở dữ liệu Một cơ sở dữ liệu của Oracle có thể bao gồm một hoặc nhiều... nên đặt dữ liệu EMP này ở đâu? Big Corp Dữ liệu mẫu Hầu như, dữ liệu nhân viên được quản lý tại văn phòng nơi mà nhân viên làm Ví dụ: Luơng, phụ cấp, tiền thuê Định kỳ, Big Corp cần hợp nhất truy xuất đến dữ liệu nhân viên – Ví dụ: Tính tông số lương cần trả cho bảng cân đối lương – Ví dụ: Thưởng thêm hàng năm phụ thuộc lợi ích mạng toàn cục Tập trung Phân tán Những vấn đề đòi hỏi: - Sự phân tán hỗ... nhiều) chứa đựng tất cả dữ liệu của 1 kiểu dữ liệu riêng -Các kiểu segment: (5) +phân đoạn dữ liệu (data segment):tập tất cả cá extent chúng cất giữ tất cả dữ liệu cho một bảng hoặc 1 cluster +Index segment: chứa tất cả các dữ liệu chỉ số cho việc tìm kiếm được tối ưu, nhanh chóng +Temporary Segment:tập các segment cất giữ các giữ liệu thuộc vào các bảng tạm thời được tạo trong suốt sự thi hành 1 sắp xếp... song song Quản trị thư mục phân tán (Distributed Directory Management): Thư mục chứa các thong tin mô tả vị trí, dữ liệu Có thể là toàn cục hay cục bộ, tập trung ở 1 hay nhiều nơi, có/ko có bản sao Điều khiển tương tranh phân tán (Distributed Concurrency Control): Đồng bộ việc truy cập nhưng đảm bảo tính toàn vẹn và nhất quán Các giá trị trong mỗi mục dữ liệu phải quy về cùng một giá trị gọi là... truy xuất dữ liệu tại nhiều trạm Chú ý: có thể dữ liệu được phân tán (vật lý) trên nhiều máy Tuy nhiên, nếu việc truy xuất dữ liệu chỉ tại duy nhất một máy tích hợp dữ liệu của các máy trên Trường hợp này, không thuộc loại hệ thống có CSDL phân tán được xem xét Cơ sở dữ liệu phân tán( Các CSDL MFG.ACME.COM, HQ.ACME.COM và SALES ACME.COM) Các ứng dụng CSDL bao gồm ba phần : Xử lý ứng dụng, Phần mềm CSDL... kiểu nhân bản dữ liệu : - Nhânbản toàn phần : thường làm chậm việc cập nhật dữ liệu - Nhân bản một phần : chỉ một phân đoạn của csdl được nhân bản Lược đồ nhân bản : là mô tả của việc nhân bản các phân đoạn D ĐỊNH VỊ DỮ LIỆU - Định vị dữ liệu : là việc đăng ký một bản sao của một phân đoạn của csdl cho một site cụ thể - Sự lựa chọn site và cấp độ của nhân bản phụ thuộc vào mục tiêu thực thi và sẵn sàng... thong tin chung Các đối tượng phân tán bao gồm 3 (Logic xl pt : các phân tử hay các chức năng phân tán, có thể ủy quyền; Pt dữ liệu: ; Đk pt: các gdich trên các nút ) CSDL phân tán lien quan đến 2 khía cạnh: Tính pt và Mối quan hệ logic Mô hình tham chiếu CSDL pt : (lược đồ toàn cục /Lược đồ phân mảnh/Lược đồ cấp phát/Lược đồ ánh xạ cục bộ/Hệ QTCSDL ở các site cục bộ) B HỆ QUẢN TRỊ CSDL - PT ĐỊNH NGHĨA: ... thống sở liệu phân tán Nội dung vắn tắt học phần: Tổng quan sở liệu phân tán quản trị sở liệu phân tán Các hệ quản trị sở liệu phân tán tiêu biểu: SQL Server, Oracle Nhiệm vụ sinh viên: • Dự lớp:... xuất liệu nhiều trạm Chú ý: liệu phân tán (vật lý) nhiều máy Tuy nhiên, việc truy xuất liệu máy tích hợp liệu máy Trường hợp này, không thuộc loại hệ thống có CSDL phân tán xem xét Cơ sở liệu phân. .. trình quản trị DL địa phương – Chương trình quản trị DL phân tán – Chương trình quản trị truyền thông DL – Chương trình quản trị tự điển DL Các chức đặc thù Hệ QTCSDL-PT – Chương trình quản trị