1. Trang chủ
  2. » Giáo án - Bài giảng

Sql server 2000 test1

207 19 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 207
Dung lượng 3,04 MB

Nội dung

Chương TỔNG QUAN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER 2000 NỘI DUNG SQL  SERVER  2000 ◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊ ♦♦♦♦♦♦♦♦♦♦   o Tổng quan SQL Server 2000  o Thiết kế và thực thi cơ sở dữ liệu  o T‐SQL Programing  o Giao dịch và Khoá  o Bảo mật và Quản lý người dùng   o T‐SQL và SQL nâng cao  o Ràng buộc dữ liệu và Chỉ số  o Khung nhìn và Con trỏ  o Thủ tục  o Trigger  o Sao lưu và Phục hồi   o Chuyển  đổi  giữa  các  loại  cơ  sở      dữ liệu   o Kiến trúc nhân bản  Chương TỔNG QUAN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER 2000 ******************************************************************* MỤC LỤC CHƯƠNG TỔNG QUAN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER 2000 12 1.1 Giới thiệu SQL Server 2000 12 1.1.1 1.1.2 1.1.3 1.2 Các đặc trưng SQL Server 2000: 12 Các phiên bản-edition SQL Server 13 Các Version SQL Server 14 Các thành phần quan trọng SQL Server 2000 14 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3 Relational Database Engine 14 Replication - Cơ chế tạo 14 Data Transformation Service (DTS) - Dịch vụ chuyển dịch liệu 15 Analysis Service - Dịch vụ phân tích liệu 15 English Query – Truy vấn liệu sử dụng tiếng Anh 16 Meta Data Service 16 SQL Server Books Online – Sách dạy SQL Server trực tuyến 16 SQL Server Tools 16 1.3.1 1.3.2 1.3.3 1.4 Enterprise Manager 16 Query Analyzer 17 SQL Profiler 17 Kiến trúc SQL Server 17 1.4.1 1.4.2 Hệ thống sở liệu Client/Server 18 Hệ thống sở liệu Desktop 18 1.5 SQL Server Database 18 1.6 Database Objects-Các đối tượng sở liệu 19 1.7 Câu hỏi trắc nghiệm 20 CHƯƠNG THIẾT KẾ VÀ THỰC THI CƠ SỞ DỮ LIỆU 22 2.1 Cấu trúc SQL Server 22 2.2 Cấu trúc vật lý sở liệu SQL Server 22 2.3 Nguyên tắc hoạt động transaction log SQL Server 23 2.4 Cấu trúc logic SQL Server Database 25 2.5 Các kiểu liệu SQL Server (data types) 25 2.5.1 Integers 25 2.5.1.1 Bigint 25 2.5.1.2 Int 25 Chương TỔNG QUAN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER 2000 2.5.1.3 Smallint 25 2.5.1.4 Tinyint 26 2.5.1.5 Bit 26 2.5.2 Decimal and Numeric 26 2.5.2.1 Decimal 26 2.5.2.2 Numeric 26 2.5.3 Money and Smallmoney 26 2.5.3.1 Money 26 2.5.3.2 Smallmoney 26 2.5.4 Approximate Numerics 26 2.5.4.1 Float 26 2.5.4.2 Real 26 2.5.5 Datetime and Smalldatetime 26 2.5.5.1 Datetime 26 2.5.5.2 Smalldatetime 26 2.5.6 Character Strings 27 2.5.6.1 Char 27 2.5.6.2 Varchar 27 2.5.6.3 Text 27 2.5.7 Unicode Character Strings 27 2.5.7.1 Nchar 27 2.5.7.2 Nvarchar 27 2.5.7.3 Ntext 27 2.5.8 Binary Strings 27 2.5.8.1 Binary 27 2.5.8.2 Varbinary 27 2.5.8.3 Image 27 2.5.9 Các kiểu liệu khác 28 2.5.9.1 Cursor 28 2.5.9.2 Sql_variant 28 2.5.9.3 Table 28 2.5.9.4 Uniqueidentifier 28 2.6 Câu hỏi trắc nghiệm 29 CHƯƠNG THIẾT KẾ VÀ THỰC THI CƠ SỞ DỮ LIỆU- PHầN THựC HÀNH 30 3.1 Tạo sở liệu sử dụng Enterprise Manager 30 3.2 Sửa sở liệu 33 3.3 Xoá sở liệu 33 3.4 Nghiên cứu sở liệu Flight_Information 33 Cấu trúc bảng 33 Dữ liệu bảng 37 3.4.1 3.4.2 3.5 4.1 Bài tập 41 CHƯƠNG T-SQL PROGRAMING 43 Giới thiệu SQL Batch Processing 43 Chương TỔNG QUAN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER 2000 4.1.1 4.1.2 4.1.3 4.1.4 4.2 Câu lệnh điều khiển 44 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.3 Begin End 44 If Else 44 Vòng lặp While 45 Từ khoá GOTO 46 Từ khoá Return 46 Câu lệnh CASE 46 Biến(Variables) 46 4.3.1 4.3.2 4.4 Grobal variables 47 Local variables 48 Hàm (Functions) 48 4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 4.5 Cách thực Thi nhóm lệnh (Batches) 43 Lệnh GO 43 Ví dụ Batch: 43 Chú thích (comment) batch: 44 Hàm Conversion 48 Hàm Data Parts 49 Hàm ngày tháng hàm toán học 49 Hàm hệ thống (System Function) 50 Hàm nhóm 50 Câu hỏi trắc nghiệm 51 CHƯƠNG TRANSACTIONS VÀ LOCKS 53 5.1 Giới thiệu Transactions-Giao dịch 53 5.2 Các tính chất Transaction 53 5.2.1 5.3 Các mức cô lập Transaction 54 5.3.1 5.3.2 5.4 Giới thiệu Dirty Read (Đọc liệu bẩn) 54 Các mức cô lập 56 Locks 57 5.4.1 5.4.2 5.5 Phân loại transaction 53 Khái niệm 57 Phân loại 57 Câu hỏi trắc nghiệm 59 CHƯƠNG BẢO MẬT VÀ QUẢN LÝ NGƯỜI DÙNG (USER AND SERCURITY) 60 6.1 Giới thiệu SQL Server Sercurity 60 6.2 Quản lý đăng nhập (Login) 60 6.2.1 6.2.2 6.2.3 Xác thực đăng nhập 60 Kiểm tra quyền (Permission) 61 Tạo Login 61 Chương TỔNG QUAN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER 2000 6.3 Quản lý người dùng 62 6.3.1 6.3.2 6.4 SQL Server Users 62 Quản lý Usename Login name 63 Quản lý Role 63 6.4.1 6.4.2 6.4.3 Database Roles 63 Server Roles 64 Thêm thành viên cho Role 64 6.5 Đối tượng quyền đối tượng (Database Objects and Object Permission) 65 Đối tượng 65 Quyền 66 Cho phép huỷ bỏ quyền đối tượng 66 6.5.1 6.5.2 6.5.3 6.6 Câu hỏi trắc nghiệm 67 CHƯƠNG T-SQL PROGRAMMING, TRANSACTIONS, MANAGING SERCURITY - PHầN THựC HÀNH 69 7.1 Hướng dẫn trực tiếp 69 7.1.1 Transactions 69 7.1.1.1 Implicit Transactions 69 7.1.1.2 Explicit Transactions 70 7.1.1.3 Autocommit Transaction 72 7.1.2 Biến địa phương (local) biến toàn cục(Global) 72 7.1.3 SQL Server Sercurity 73 7.1.3.1 Tạo logins sử dụng Enterprise Manager 73 7.2 Bài tập 74 CHƯƠNG T-SQL VÀ SQL NÂNG CAO 75 8.1 8.1.1 8.1.2 Giới thiệu sơ lược T- SQL (Transact -SQL) 75 Data Definition Language (DDL) 75 Data Control Language (DCL): 76 8.2 Data Manipulation Language (DML): 76 8.3 Các câu lệnh truy vấn liệu 77 8.3.1 Thực Join để kết nối bảng 77 8.3.1.1 INNER JOIN: 77 8.3.1.2 LEFT OUTER JOIN 78 8.3.1.3 RIGHT OUTER JOIN 79 8.3.1.4 FULL OUTER JOIN 79 8.3.1.5 CROSS JOIN 80 8.3.2 Mệnh đề Top n: 80 8.3.3 Mệnh đề INTO 80 8.3.4 Từ khoá UNION(Hợp) 81 8.3.5 Từ khoá CUBE ROLL UP 81 8.3.5.1 CUBE 81 Chương TỔNG QUAN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER 2000 8.3.5.2 ROLLUP 82 Mệnh đề COMPUTE COMPUTE BY 83 8.3.6 8.4 Câu hỏi trắc nghiệm 86 CHƯƠNG T-SQL VÀ SQL NÂNG CAO 87 PHầN THựC HÀNH 87 10 CHƯƠNG 10 RÀNG BUỘC DỮ LIỆU VÀ CHỈ SỐ 89 10.1 Ràng buộc liệu 89 10.1.1 10.1.2 10.1.3 10.1.4 10.1.5 10.2 Thực ràng buộc T-SQL 90 10.2.1 10.2.2 10.2.3 10.2.4 10.2.5 10.2.6 10.2.7 10.2.8 10.3 Giới thiệu 89 Ràng buộc thực thể 89 Ràng buộc miền liệu 89 Ràng buộc tham chiếu 90 Ràng buộc NSD tự định nghĩa 90 PRIMARY KEY Constraint 90 UNIQUE Constraint 91 IDENTITY Property 91 DEFAULT Definition 91 FOREIGN Key Constraint 91 CHECK Constraint 92 NOT NULL Constraint 92 Rules 92 Indexes 93 10.3.1 Giới thiệu 93 10.3.2 Lời khuyên sử dụng indexes 93 10.3.3 Tạo Indexes 94 10.3.4 Các kiểu Indexes 94 10.3.4.1 Clustered index 94 Chương TỔNG QUAN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER 2000 10.3.4.2 Non-clustered index 95 10.3.5 Tính chất Indexes 95 10.3.6 Hiển thị Indexes 95 10.3.7 Cách sử dụng Indexes 96 10.3.8 Xóa Indexes 96 10.3.9 Full-text Searches 96 10.3.10 Full-text Catalogs 96 10.3.11 Sử dụng Full-text Indexes 97 10.4 Câu hỏi trắc nghiệm 98 11 CHƯƠNG 11 DATA INTEGRITY AND INDEXES .100 11.1 Phần thực hành 100 11.2 Hướng dẫn trực tiếp 100 11.2.1 11.2.2 11.2.3 11.2.4 11.2.5 11.2.6 11.2.7 11.2.8 11.3 Tạo ràng buộc PRIMARY KEY 100 Tạo ràng buộc Unique 101 Sử dụng thuộc tính IDENTITY 101 Tạo ràng buộc Default 102 Tạo ràng buộc FOREIGN KEY 103 Tạo ràng buộc Check Constraint 105 Tạo ràng buộc Not Null 106 Tạo Rules 107 Indexes 108 11.3.1 11.3.2 11.3.3 Tạo indexes 108 Xem sửa Indexes 110 Sử dụng Indexes 111 11.4 Bài tập 113 12 CHƯƠNG 12 KHUNG NHÌN & CON TRỎ 114 12.1 (Views & Cursors) 114 12.2 View 114 12.2.1 Giới thiệu 114 12.2.2 Tạo View 114 12.2.3 Lợi ích View người sử dụng 116 12.2.4 Một số hướng dẫn tạo View 116 12.2.5 Sửa liệu thông qua Views 116 12.2.6 Indexed Views 116 12.2.7 Distributed Partitioned Views- Khung nhìn phân tán 119 12.2.8 Sử dụng View để cập nhật liệu 122 12.2.9 Sửa cấu trúc Views 122 12.2.10 Xoá Views 123 12.3 Con trỏ_Cursors 123 12.3.1 12.3.2 12.3.3 Giới thiệu 123 Tạo trỏ 123 Các bước sử dụng Cursor 124 Chương TỔNG QUAN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER 2000 12.3.4 12.3.5 Truy cập liệu cursor 124 Ví dụ 124 12.4 Câu hỏi trắc nghiệm 126 13 CHƯƠNG 13 KHUNG NHÌN VÀ CON TRỎ 128 13.1 Phần thực hành 128 13.2 Tạo View 128 13.2.1 13.2.2 Sử dụng Create View Wizard 128 Tạo View T-SQL 129 13.3 Sửa View 129 13.4 Con trỏ 130 13.4.1 13.4.2 13.4.3 13.4.4 13.4.5 13.4.6 13.4.7 13.4.8 13.4.9 Khai báo trỏ (Cursor) 130 Mở trỏ 131 Truy vấn liệu 131 Truy vấn dòng 131 Truy vấn dòng 131 Truy vấn dòng cuối 132 Truy vấn đến dịng có vị trí xác định 132 Truy vấn đến dòng liên quan 132 Đóng xố vùng nhớ (Deallocating) trỏ 133 13.5 Bài tập 134 14 CHƯƠNG 14 THỦ TỤC- STORED PROCEDURES(SPS) 135 14.1 Định nghĩa 135 14.2 Lợi ích quản lý liệu SPs 135 14.3 Các kiểu SPs 136 14.3.1 System stored procedures 136 14.3.2 User-defined Stored Procedures 138 14.3.2.1 Cú pháp 138 14.3.2.2 Các dẫn 138 14.3.2.3 Thực User-defined Stored Procedures 138 14.3.2.4 Sử dụng biến Stored Procedures 139 14.3.2.5 Biên dịch lại - Re-compiling Stored Procedures 140 14.3.2.6 Sửa cấu trúc Stored Procedures 140 14.4 Thông báo lỗi 140 14.4.1 14.4.2 Return Codes 141 Câu lệnh RAISERROR 141 14.5 Câu hỏi trắc nghiệm 143 15 CHƯƠNG 15 STORED PROCEDURE 144 15.1 Phần thực hành 144 Chương TỔNG QUAN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER 2000 15.2 Tạo SP EM 144 15.3 Thực thi SP 145 15.4 Bài tập 145 16 CHƯƠNG 16 TRIGGER 146 16.1 Định nghĩa 146 16.2 Đặc điểm Trigger 147 16.3 Tạo Trigger 148 16.3.1 16.3.2 16.4 Tạo Trigger 148 Hướng dẫn tạo Trigger 148 Các kiểu Trigger 149 16.4.1 INSERT trigger 149 16.4.2 UPDATE trigger 150 16.4.2.1 Column Level 150 16.4.2.2 Table Level 151 16.4.3 DELETE trigger 152 16.5 Các câu lệnh sử dụng Triggers 153 16.6 Triggers dây chuyền - Cascading Triggers 153 16.7 Triggers lồng - Nested Triggers 154 16.8 INSTEAD OF Triggers 154 16.9 Câu hỏi trắc nghiệm 156 17 CHƯƠNG 17 TRIGGER – PHầN THựC HÀNH 157 17.1 Tạo INSERT trigger 157 17.2 Tạo DELETE Trigger 157 17.3 Tạo UPDATE Trigger 158 17.3.1 17.3.2 Tạo Table Level UPDATE Trigger 158 Tạo Column Level Update Trigger 159 17.4 Tạo Trigger có lựa chọn Encryption 159 17.5 Hiển thị danh sách trigger Database 160 17.6 Sử dụng Triggers để tạo ràng buộc tham chiếu (Enforce Referential Intergrity) 161 17.7 Cascade Delete sử dụng Nested trigger 161 17.8 Tạo INSTEAD OF Trigger 162 17.9 Bài tập 164 Chương TỔNG QUAN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER 2000 18 CHƯƠNG 18 SAO LƯU & PHỤC HỒI (BACKUP & RESTORE) 165 18.1 Giới thiệu 165 18.2 Sao lưu sở liệu 165 18.3 Phục hồi sở liệu 166 18.4 Các loại Backup Restore 169 18.4.1 18.4.2 18.5 Full Database backup 170 18.5.1 18.5.2 18.6 Các loại lưu-Backups 169 Các mơ hình khơi phục- Recovery Models 169 Cách tạo Full database backup EM 171 Khôi phục Full database backup EM 172 Transaction log backup 174 18.6.1 18.6.2 18.6.3 18.6.4 18.6.5 Giới thiệu 174 Cắt (truncate) transaction log 175 Điều kiện transaction log backups 176 Cách tạo transaction log backup EM 176 Khôi phục transaction log backup EM 176 18.7 Differential backup 177 18.8 File Filegroup backup 179 18.9 Bài tập 179 19 CHƯƠNG 19 CHUYỂN ĐỔI GIỮA CÁC LOẠI CƠ SỞ DỮ LIỆU (DTSDATA TRANSFORMATION SERVICE) 181 19.1 Import sở liệu 181 19.1.1 Import sở liệu từ SQL Server 2000 181 19.1.1.1 Copy table(s) and view(s) from the source database 183 19.1.1.2 Use a query to specify the data to transfer 186 19.1.1.3 Copy objects and data between SQL Server databases 186 19.1.1.4 Chú ý 187 19.1.2 Import từ sở liệu Access 187 19.1.3 Import từ tập tin Excel 188 19.1.4 Import từ tập tin dạng Text 188 19.2 Export sở liệu 190 19.3 Xây dựng lịch trình Import Export sở liệu 190 19.4 Những điều cần giải sau Import hay Export 190 19.5 Bài tập 191 20 CHƯƠNG 20 KIẾN TRÚC NHÂN BẢN (REPLICATION) 192 20.1 Mục tiêu nhân 192 20.1.1 Nhất quán liệu (Data consistency) 192 10 TÀI LIỆU THAM KHẢO Ngoài giá trị liệu phải giống với giá trị đạt thực công việc site.Sự khác nhất quán giao dịch quán giao dịch ngầm liệu có quán lúc hay không 20.1.1.2 Hội tụ liệu Với hội tụ liệu, tất site quy giá trị liệu không thiết giá trị liệu bị gây tác vụ làm site User tự thao tác site theo cách khác Khi nút (node) đồng bộ, tất site hội tụ giá trị Nếu đụng độ gây sửa đổi liệu site khác sửa đổi giải cách tự động (chọn site có độ ưu tiên cao hay site đưa sửa đổi đến trước ) 20.1.2 Độc lập site (site autonomy) Độc lập site xét đến ảnh hưởng thao tác site đến site khác Thường độc lập site tăng tính qn liệu giảm Nhân kết hợp (Merge replication) có mức độc lập site cao nhất, tạo hội tụ lại không đảm bảo tính quán liệu 2PC (two phase commit) có tính qn liệu cao lại khơng có tính độc lập site Những giải pháp khác thường hai tính 20.2 Kiến trúc nhân 20.2.1 Các thành phần nhân bản: - Publisher: Là server tạo liệu để nhân đến server khác Nó xác định liệu nhân bản, liệu thay đổi trì thơng tin cơng bố site - Subscriber: Là server lưu giữ nhân nhận tác vụ cập nhật SQL Server 2000 cho phép Subsriber cập nhật liệu trình cập nhập Subscriber khơng giống Publisher Một Subscriber Publisher Subscriber khác - Distributor: Là server mà chứa CSDL phân tán (distribution database) lưu trữ metadata, history data transaction SQL Server sử dụng CSDL phân tán để lưu chuyển (store_and_forward) liệu nhân từ Publisher đến Subscriber Có loại Distributor : Local Distributor remote Distributor - Publication: Đơn giản tập hợp mẩu liệu (article) Một mẩu nhóm liệu nhân Một mẩu bao gồm table vài hàng (horizontal fragment) hay cột (vertical fragment) Một Publication thường gồm nhiều mẩu 193 TÀI LIỆU THAM KHẢO Pulisher Subcriber - Lưu trữ sở liệu nguồn - Nhận thay đổi liệu - Làm cho liệu có khả nhân - Lưu trữ liệu nhân Distributor - Nhận lưu thay đổi - Chuyển thay đổi tới subscibers 20.2.2 Chiều di chuyển liệu Có kiểu di chuyển liệu: 20.2.2.1 Push subscription - Publisher đẩy (push) thay đổi đến Subscriber mà khơng quan tâm Subscriber có cập nhật hay không - Push subscription sử dụng ứng dụng mà yêu cầu gửi thay đổi đến Subscriber thay đổi xảy Publisher - Push Subscription giúp việc quản lý Subcsriber đơn giản tập trung hơn, đồng thời giúp bảo mật tốt qúa trình khởi động (initialization process) quản lý chỗ Nhưng thế, Distributor phải đảm nhận nhiều q trình phân bố subscription đến Subscriber lúc Điều dễ dẫn đến tượng thắt cổ chai (bottleneck) - Mơ hình khơng thích hợp số lượng Subscriber trở nên lớn - Push subscription gây phí xử lý cao Publisher Để tránh tượng này, thay đổi đẩy đến Subscriber theo lịch định kì 20.2.2.2 Pull subscription - Subsciber kéo (pull) thay đổi Publisher theo khoảng thời gian định kì - Tốt cho user độc lập thay đổi chúng cho phép user xác định thay đổi liệu đồng 194 TÀI LIỆU THAM KHẢO - Ngược với push subscription ,pull subscription bảo mật thấp cho phép số lượng Subsriber cao - Một publication sử dụng hai push pull subscription 20.3 Tác nhân (Agent) Việc thiết kế nhân tạo hay nhiều agent Snapshot agent: - Chuẩn bị lược đồ, data file, stored procedure - Lưu snapshot lên Distributor ghi lại thông tin trạng thái đồng vào CSDL phân bố (distribution database) - Mỗi publication có snapshot agent riêng chạy Distributor liên kết với Publisher Log Reader agent: - Di chuyển transaction cần nhân từ transaction log Publisher đến CSDL phân bố - Mỗi publication dùng nhân transaction có log reader agent, chạy Distributor liên kết (connect) đến Publisher Distribution Agent: - Di chuyển transaction tác vụ chép giữ CSDL phân bố đến Subscriber - TH: Nhân transaction hay snapshot mà đồng ( immediate synchronization): push subscription tạo, publication có distribution agent riêng, chạy Distributor liên kết với Subscriber - TH: Nhân transaction snapshot không đồng : Publisher Subscriber dùng chung distribution agent , chạy Distributor liên kết với Subscriber - TH: pull subscription đến snapshot publication hay transactional publication: có distribution agent, chạy Subscriber - Nhân kết hợp (merge replication) khơng có distribution agent Merge agent: Di chuyển điều hòa thay đổi liệu xảy sau snapshot khởi động (initial snapshot) tạo Mỗi merge publication có merge agent, liên kết cập nhật với hai Publisher Subscriber 195 TÀI LIỆU THAM KHẢO 20.4 Các loại nhân Trong thực tế khó có loại nhân phù hợp yêu cầu Công việc kinh doanh thường địi hỏi nhiều ứng dụng khác SQL Server đưa nhiều cách thức nhân để đáp ứng yêu cầu SQL Server đưa loại nhân để sử dụng thiết kế ứng dụng: - Nhân snapshot - Nhân transaction - Nhân kết hợp Data Convergency Site Autonomy Latent Transactional Consistency Immediate Transactional Consistency Transactional Consistency Mỗi loại cung cấp khả thuộc tính khác nhằm đặt đến mục tiêu tính độc lập site quán liệu 20.5 Nhân snapshot(Snapshot replication) 20.5.1 Giới thiệu Nhân snapshot loại nhân đơn giản nhất, nhân snapshot chép tồn liệu cần nhân (cịn gọi trình làm tươi liệu) từ Publisher đến Subscriber Nó đảm bảo quán tiềm ẩn (Latent Transactional Consistency) Publisher Subscriber Nhân snapshot đánh giá cao ứng dụng đọc tìm kiếm hay hệ thống khơng u cầu liệu dung lượng liệu không lớn Nhân Snapshot gửi tất liệu đến cho Subscriber thay gửi thay đổi Nếu mẫu liệu lớn phải cần đến hệ thống mạng đủ mạnh để truyền liệu Khi sử dụng nhân snapshot cần phải tính đến tỉ lệ kích cỡ tồn liệu thay đổi 196 TÀI LIỆU THAM KHẢO Hình 20.1 Nhân snapshot(Snapshot replication) 20.5.2 Tác nhân (agent) Cập nhật snapshot thực snapshot agent distribution agent Snapshot agent chuẩn bị snapshot file (snapshot file file chép lược đồ liệu table phân bố) chứa lược đồ liệu table phân bố, lưu file vào snapshot folder Distributor ghi lại công việc đồng CSDL phân bố (distribution database) Distribution agent gửi snapshot job (tác vụ chép liệu) giữ bảng liệu phân bố đến Subsciber CSDL phân bố ( distribution database) sử dụng nhân bản, không chứa user table 20.5.2.1 Snapshot agent Snapshot agent thực theo bước sau: - Thiết lập share-lock lên tất table (article) publication Share-lock ngăn khơng cho user khác cập nhật lên table - Sao chép lược đồ liệu article ( sch file) index, ràng buộc ( idx file) lên Distributor Các file lưu vào thư mục thư mục làm việc Distributor - Nếu tất Subsciber MS SQL Server liệu lưu thành bcp file Nếu Subscriber không đồng ( 197 TÀI LIỆU THAM KHẢO Subsciber chứa nhiều loại CSDL khác , ví dụ: Access, Oracle…) liệu lưu thành txt file - 20.5.2.2 Cuối agent gỡ bỏ share-lock table phân bố hoàn tất việc viết vào log history file ( log history file ghi lại trình làm việc agent) Distribution agent Tác nhân áp dụng lược đồ liệu vào CSDL Subscriber Nếu Subscriber SQL Server, distribution agent chuyển đổi kiểu liệu trước liệu áp dụng vào Subsciber Ví dụ: Publisher sử dụng SQL Server, Subscriber sử dụng Oracle Trước liệu áp dụng lên Subscriber, chuyển đổi kiểu từ SQL Server sang Oracle Snapshot áp dụng subscription tạo hay theo khoảng thời gian định 20.6 Nhân giao dịch (transactional replication) 20.6.1 Giới thiệu Sử dụng nhân giao dịch để nhân hai kiểu đối tượng khác nhau: table stored procedure Bạn chọn tất hay phần table nhân article publication Tương tự, bạn chọn hay nhiều stored procedure nhân article hay khác publication Nhân giao dịch sử dụng transaction log để giữ thay đổi làm liệu article SQL Server giám sát lệnh insert, update, delete hay sửa đổi liệu lưu thay đổi lên CSDL phân bố (distribution database) Những thay đổi gửi đến Subscriber tuân theo trật tự định Với nhân giao dịch, yếu tố liệu có publication Những thay đổi làm Publisher tiếp tục chảy đến hay nhiều Subsciber hay theo khoảng thời gian định trước 20.6.2 Tác nhân (agent) Nhân giao dịch thực Snapshot agent, Log Reader agent Distribution agent Log Reader agent giám sát transaction log CSDL thiết lập để nhân chép transaction cần nhân từ transaction log vào CSDL phân bố (distribution database) Distribution agent di chuyển transaction tác vụ khởi tạo snapshot giữ table CSDL phân bố 198 TÀI LIỆU THAM KHẢO 20.6.2.1 Snapshot agent Trước Subscriber nhận thay đổi từ Publisher, phải chứa table có lược đồ liệu với table Publisher Q trình copy tồn publication từ Publisher qua Subsciber gọi initial snapshot Việc nhân liệu thay đổi xảy sau nhân giao dịch chắn Subscriber có snapshot (bản lược đồ liệu) Khi snapshot phân bố áp dụng lên Subsciber Subsciber chờ để khởi tạo snapshot bị ảnh hưởng Những Subsciber khác ứng với publication mà nhận insert, delete, update hay thay đổi liệu khơng bị ảnh hưởng Những hàm mà Snapshot agent thực thi để khởi tạo snapshot nhân giao dịch tương tự hàm sử dụng nhân Snapshot 20.6.2.2 Log Reader agent Log reader agent chạy tiếp tục hay theo khoảng thời gian xác định mà bạn thiết lập vào lúc publication tạo Khi thực thi, Log reader agent đọc transaction log publication xác định lệnh (insert, delete, update) hay sửa đổi làm liệu đánh dấu nhân Kế tiếp agent chép transaction vào CSDL phân bố Distributor CSDL phân bố (distribution database) trở thành hàng lưu đẩy (store-and-forward queue) thay đổi liệu đến Subscriber Chỉ có commit transaction gửi đến CSDL phân bố Có tương ứng 1-1 transaction Publisher transaction nhân CSDL phân bố Một transaction bao gồm nhiều lệnh Sau tồn transaction viết vào CSDL phân bố cách thành cơng, commit Sau transaction đẩy đến Subscriber Cuối cùng, agent đánh dấu hàng (row) công bố đến Subscriber transaction log để sẵn sàng loại bỏ Điều đảm bảo hàng (row) chờ để nhân khơng bị loại bỏ Vì thế, transaction log Publisher đổ xuống mà khơng cản trở việc nhân transaction bị đánh dấu bị loại bỏ Log read agent thực thi Distributor 20.6.2.3 Distribution agent Những transaction lưu CSDL phân bố distribution agent “đẩy” chúng đến tất Subscriber (hoặc distribution agent Subscriber “kéo” thay đổi về) CSDL phân bố sử dụng nhân không chứa user table Trong trường hợp bạn không nên tạo object khác vào CSDL phân bố Những tác vụ làm thay đổi liệu Publisher chảy đến Subscriber Subscriber thay đổi liệu theo cách chúng thay đổi Publisher Điều đảm bảo Subscriber nhận transaction theo trật tự chúng làm Publisher Những hàm mà distribution agent sử dụng để di chuyển lệnh đến Subscriber tương tự hàm sử dụng nhân snapshot 199 TÀI LIỆU THAM KHẢO 20.6.3 Thu dọn nhân transaction Tương tự cho nhân snapshot Khi CSDL phân tán(distribution database) tạo, SQL Server tự động thêm vào tác vụ Distributor: - Agent checkup - Transaction cleanup - History cleanup Những tác vụ giúp cho việc nhân hiệu môi trường long_running Tác vụ cleanup giữ lại transaction publication giai đoạn xác định sau tất Subscriber nhận chúng Trong suốt giai đoạn transaction giữ CSDL phân bố Thiết lập giai đoạn giữ lại kết hợp với lịch backup sử dụng khơi phục CSDL đích cách tự động xảy cố 20.7 Các dạng nhân giao dịch Có hai dạng: 20.7.1 Cập Subscriber) nhật Subscriber lập tức(Immediate_Updating Trong trường hợp đơn giản nhất, hai nhân snapshot giao dịch làm việc dựa mơ hình nhân chiều ( liệu nhân từ Publisher đến Subscriber) Tuy nhiên MS SQL Server cung cấp thêm mơ hình cho phép Subscriber sửa đổi liệu nhân bản, tùy chọn Immediate_Updating Subscriber cung cấp quán giao dịch ngầm (latent transactional consistency) Subscriber (những sửa đổi xảy Subscriber thực tác vụ cập nhật Publisher) mà không yêu cầu cập nhật làm Publisher site Tùy chọn thiết lập vào lúc publication tạo cho phép Subscriber cập nhật liệu cục thay đổi phản ánh đến Publisher cách sử dụng two-phase commit protocol (2PC) 2PC quản lý Microsoft Distributed Transaction Coordinator (MS DTC) Nếu cập nhật thực 2PC Publisher phổ biến thay đổi đến tất Subscriber khác theo lịch làm việc distribution agent (hay theo lần làm tươi snapshot kế tiếp) Bởi Subscriber gốc cập nhật thay đổi liệu rồi, nên user tiếp tục làm việc với liệu đảm bảo thay đổi cập nhật Publisher Mơ hình đảm bảo tính tồn vẹn giao dịch Với mơ hình này, tính độc lập site giảm, cao tất Subscriber cập nhật Tuỳ chọn Immediate-updating Subscribers hỗ trợ sử dụng công cụ : 200 TÀI LIỆU THAM KHẢO - Triggers - Stored procedues - Microsoft Distributed Transaction Coordinator (MS DTC) - Phát tranh chấp - Phát Loopback Triggers: Triggers Subcriber theo dõi transaction báo cho publication cách sử dụng stored procedure gọi từ xa (remote stored procedure call) 2- phase commit protocol (2PC) mà điều khiển MS DTC Trigger thực cơng việc: - Trích giá trị từ bảng insert hay delete - Gọi lệnh BEGIN DISTRIBUTED TRAN{SACTION} - Thực thi remote procedure để gọi stored procedure thích hợp Publisher, thông qua giá trị từ bảng insert hay delete - Điều khiển cập nhật giá trị timestamp & indentity Subcriber - Nếu gọi stored procedure từ xa thành cơng, commit transaction phản ánh xác thay đổi hai Publisher Subcriber Sau đó, Publisher bảo đảm thay đổi phổ biến đến tất Subcriber khác Ngược lại không Subscriber hủy bỏ (rollback) giao dịch trả lỗi cho user Stored procedures: Stored procedure Publisher thực thi giao dịch giao dịch khơng tranh chấp với thay đổi làm Publisher Nếu tranh chấp phát hiện, giao dịch bị hủy bỏ (roll back) hai site Mỗi article có ba hàm insert, delete, update Mỗi hàm Publisher thực công việc sau: - Insert procedure : Cố gắng insert hàng (row) Sau kiểm tra giá trị @@ROWCOUNT/@@ERROR trả tín hiệu thành cơng hay cố cho lời gọi trigger Subscriber - Delete procedure : Cố gắng xóa hàng Sau kiểm tra giá trị @@ROWCOUNT/@@ERROR trả tín hiệu thành cơng hay cố cho lời gọi trigger Subscriber - Update procedure : cố gắng cập nhật hàng có giá trị khoá timestamp với hàng bảng delete Kiểm tra@@ROWCOUNT / @@ERROR Nếu thành công, trả giá trị timestamp 201 TÀI LIỆU THAM KHẢO SQL Server tổ chức bảng (table) : delete insert để lưu liệu thay đổi làm bảng (table) mà chưa commit Thực tế lệnh update bao gồm hàng bảng insert hàng bảng delete Chú ý: Một giao dịch mà ảnh hưởng lên nhiều hàng giao dịch commit tất hàng cập nhật lên site MS DTC (Microsoft Distributed Transaction Coordinator): MS DTC quản lý tác vụ 2-phase commit Subcriber Publisher lệnh gọi từ xa ( BEGIN DISTRIBUTED TRANSACTION Transact-SQL ) Phát tranh chấp: Những stored procedure Publisher sử dụng cột timestamp để phát hàng có thay đổi hay khơng sau nhân đến Subcriber Khi Subcriber yêu cầu giao dịch cập nhật (immdediate-update transaction), gửi giá trị timestamp đến Publisher với tất cột khác hàng Khi stored procedure Publisher so sánh giá trị với giá trị timestamp hàng Nếu giá trị giống hàng khơng sửa đổi sau nhân đến Subcriber giao dịch chấp nhận Timestamp giá trị tự động tăng sở liệu Phát loopback : Nếu transaction thực thi thành công lên Subcriber Publisher, không cần thiết phổ biến thay đổi trở cho Subcriber gốc (Subscriber đưa thay đổi đến Publisher ) SQL Server có chế gọi phát loopback (loopback detection ) để xử lý tình Những thông tin sử dụng để phát loopback đựoc lưu thành transaction sở transaction Những bảng mà định cư sở liệu khác immediate updating Subcriber hay bảng mà định cư sở liệu khác phía bên immediate-updating Subcriber khơng nên update transaction 20.7.2 Nhân thực thi Stored procedure SQL server cho phép bạn nhân liệu bảng mà hỗ trợ bạn nhân stored procedure hai cách Nếu bạn có hay nhiều stored procedure article snapshot publication, SQL server chép toàn store procedure từ Publisher đến Subcriber Nếu bạn gồm hay nhiều stored procedure article nhân giao dịch, SQL Server nhân thực thi stored procedure liệu thay đổi gây thực thi stored procedure Cách làm đặc biệt hữu ích nhân mà kết stored procedure ảnh hưởng số lượng lớn liệu Nhân thay đổi thực thi lệnh đơn làm tăng hiệu ứng dụng bạn 202 TÀI LIỆU THAM KHẢO Có loại: - Procedure execution - Serializable Procedure execution Procedure execution: Nhân procedure execution đến tất Subcriber Điều xảy bất chấp lệnh đơn stored procedure có thành cơng hay khơng Bởi thay đổi liệu làm stored procedure xảy nhiều giao dịch, nên liệu Subcriber bảo đảm quán với liệu Publisher Serializable Procedure execution: Chỉ thực nhân procedure execution procedure thực thi môt chuỗi giao dịch Cách đảm bảo liệu Subscriber quán với liệu Publisher 20.8 Nhân kết hợp (Merge replication) 20.8.1 Giới thiệu Nhân kết hợp có tính độc lập site (site autonomy) cao Publisher Subscriber làm việc hồn tồn độc lập kết nối với theo khoảng thời gian để hội tụ kết lại Nếu đụng độ gây site sửa đổi phần tử liệu đụng độ giải cách tự động Khi đụng độ xảy ra, giải đụng độ chọn site có độ ưu tiên cao hay site sửa đổi liệu trước Các xung đột phát giải theo cấp độ hàng hay cột bảng liệu Nhân kết hợp nhận biết thay đổi CSDL nguồn đồng giá trị Publisher Subscriber Cả hai Publisher Subscriber cập nhật liệu Trong nhân kết hợp, Publisher server tạo publication Mặc dù Publisher tạo publication khơng tự động “thắng” tranh chấp với Subscriber "Người thắng cuộc" xác định tiêu chuẩn bạn thiết lập thay đổi liệu CSDL đích phổ biến đến CSDL nguồn 20.8.2 Tác nhân (agent) Nhân kết hợp thực snapshot agent merge agent Snapshot agent chuẩn bị snapshot file chứa lược đồ liệu table phân bố, lưu file vào snapshot folder Distributor ghi lại công việc đồng publication Merge agent thực công việc khởi tạo snapshot tổ chức bảng (table) publication đến Subscriber Nó kết hợp liệu thay đổi xảy Publisher sau initial snapshot tạo giải tranh chấp theo luật mà bạn đặt hay sử dụng giải tranh chấp (conflict resolver) 203 TÀI LIỆU THAM KHẢO Snapshot agent: Tương tự Snapshot agent nhân transaction Merge agent: Khi hàng cập nhật mẩu (article) trigger tạo cột generation cho hàng gán Khi merge agent thực thi thu thập tất hàng có generation thành hay nhiều nhóm gán cho generation giá trị lớn tất generation trước Merge agent site theo dõi generation cao mà gửi đến site khác generation cao mà site khác gửi đến Những generation lưu hàng (row) khác site generation site phản ánh thứ tự thay đổi xử lý site Vào lúc đồng bộ, merge agent gửi tất liệu thay đổi đến site khác Tại CSDL nguồn, giá trị đến kết hợp với giá trị tồn Merge agent ước lượng hai giá trị liệu đến có tranh chấp hai giá trị cũ giải cách tự động dựa theo độ ưu tiên hay user thay đổi liệu trước hay kết hợp hai cách (dùng với nhóm site có độ ưu tiên tương đương nhau) Bạn thực thi chiến lược giải tranh chấp thông qua COM hay giải stored procedure (stored procedure resolver) Những liệu thay đổi nhân đến site khác đồng xảy việc đồng vài phút, vài ngày hay chí vài tuần Nhân kết hợp có tính độc lập site cao Tất site dều thực update, delete, insert liệu phân bố site độc lập với thay đổi làm site khác Tuy nhiên nhân kết hợp không đảm bảo tính tồn vẹn giao dịch Thay đẩy mạnh hội tụ liệu Tất thay đổi làm tất site hội tụ giá trị, giá trị khơng đảm bảo giống tất thay đổi áp dụng lên site Vì kiểu khơng thích hợp cho ứng dụng yêu cầu toàn vẹn giao dịch Merger agent cơng cụ SQL Server Agent quản lý trực tiếp cách sử dụng SQL Server Enterprise Manager Snapshot agent thực thi Distribution Merge agent thực thi Distribution dùng push subsciption hay thực thi Subsciber dùng pull subsciption 20.8.3 Giải tranh chấp nhân kết hợp MA phát tranh chấp thông qua cột hệ thống gọi lineage bảng MSmerge-contents, đại diện cho trình thay đổi hàng Agent cập nhật cột lineage MS merge-contents cách tự động user cập nhật hàng Mỗi cột chứa mục (entry) cho site mà cập nhật lên hàng Mỗi entry kết hợp số (id) site version cuối hàng tạo site Khi MA kết hợp thay đổi, đụng phải hàng thay đổi, xem xét cột lineage hàng site để xác định có tranh chấp hay không ? Khi tranh chấp xảy ra, 204 TÀI LIỆU THAM KHẢO agent khởi động hồ giải tự động “Người thắng” tranh chấp dựa theo độ ưu tiên giải pháp chọn người đến trước hay phương pháp truyền thống sử dụng giải tranh chấp COM hay store procedure Tranh chấp liệu table nhận biết cấp độ cột cấp độ hàng Chọn lựa (option) mặc định cột (column-tracked articles) Chọn lựa cho phép thay đổi làm cột riêng biệt nhau, thay đổi cột bị đánh dấu tranh chấp Tuy nhiên vài ứng dụng, luật ứng dụng bạn đối xử đồng thời thay đổi đến toàn hàng tranh chấp Trong trường hợp này, cấp độ hàng chọn lựa 20.9 Giải tranh chấp Khi tranh chấp xảy ra, giải tranh chấp (conflict resolver) xác định tranh chấp giải Resolver áp dụng tập luật qui định lên liệu tranh chấp chọn tác vụ thích hợp Conflict resolver tạo bảng conflict-usertablename để lưu thông tin tranh chấp Bảng giữ Publisher cho ứng dụng sử dụng centralized conflict logging Subcriber ứng dụng sử dụng decentralized conflict logging Bảng có cấu trúc với bảng gốc, conflict reslover chép phiên (version) gần hàng vào bảng Version “thắng cuộc” hàng định cư user table thật Những cột bảng hệ thống sysmergearticles giữ thông tin bảng có liên quan đến bảng tranh chấp, tên bảng Xố bỏ tranh chấp lần theo bảng MSmerge-delete-conflicts Với vài tranh chấp bạn phổ biến thay đổi từ site đến site khác Ví dụ hai site insert hàng có khố dẫn đến xảy tranh chấp Nếu lệnh insert thành công, ràng buộc vi phạm khơng biết trình đồng site xảy Lúc MS SQL Server tự động xoá hai hàng có khóa Những thơng tin lỗi lưu bảng tranh chấp Những vấn đề khác vi phạm ràng buộc yêu cầu vài tác vụ user để khôi phục hội tụ Vi phạm tính tồn vẹn hay gặp insert hàng với khoá ngoại site khác xố hàng với khố tương ứng SQL Server tự xố hàng vi phạm ràng buộc SQL Server nhận cần thiết cho ứng dụng để có lược đồ giải tranh chấp mà xảy suốt trình kết hợp Khi xây dựng ứng dụng, bạn có thay đổi theo chế giải tranh chấp: - Giải tranh chấp dựa độ ưu tiên mặc định bạn tạo ứng dụng - Giải theo store procedure mà bạn xây dựng theo luật hay theo liệu xác định bạn - Bộ giải COM 205 TÀI LIỆU THAM KHẢO SQL server cho phép bạn xây dựng giải tranh chấp (conflict resolver) Tuy nhiên, sử dụng giải tranh chấp COM phức tạp thực thi custom store procedure resolver Bạn bên sử dụng store procedure conflict resolver 20.10 Bài tập Câu Trình bày mục tiêu nhân kiến trúc nhân Câu Trình bày vè loại nhân Câu Trình bày nhân giao dịch nhân kết hợp 206 TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO Design Team: H.O Mumbai, Implementing RDBMS Concepts with SQL Server 2000, 2002 Tiện ích Book Online SQL Server 2000 Elmasri & Navathe: Fundamentals of Database Systems, International Edition Design Team: H.O Mumbai, Database Design with MS Access 2000, 2002 Date, C.J., and Darwen, H.: A Guide to the SQL Standard, 3rd ed., AddisonWesley Thông tin tác giả: Họ tên: ThS Phạm Thị Hoàng Nhung Năm sinh: 1979 Ảnh: Cơ quan công tác: Bộ môn KHMT&CNPM Địa liên hệ: Phòng 203 – nhà C1- Đại học Thủy lợi Cuốn SQL Serve 2000: Phạm vi: - Ngành học: Công nghệ thông tun - Trường: Đại học Thủy lợi - Đối tượng sử dụng: Hệ đại học - Từ khóa: Cơ sở liệu, ngôn ngữ SQL, truy vấn liệu, kiểu liệu, định nghĩa liệu, SQL Server, thủ tục, trigger, mục, khung nhìn, trỏ, chuyển đổi liệu (DTS) - Kiến thức trước: Ngôn ngữ lập trình, Cấu trúc liệu giải thuật, Nhập mơn sở liệu, Ngôn ngữ SQL Số lần xuất bản: Nhà xuất bản: Xuất lần Đại học Thủy lợi 207 ... Chương TỔNG QUAN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER 2000 Chương TỔNG QUAN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER 2000 1.1 Giới thiệu SQL Server 2000 SQL Server 2000 bao gồm số đặc trưng tạo nên Hệ... trình bày trước đặc điểm SQL Server 2000 Multiple-Instance nên nói đến (SQL) Server ta nói đến Instance SQL Server 2000, thơng thường Default Instance Một Instance SQL Server 2000 có System Databases... Server 2000 12 1.1.1 1.1.2 1.1.3 1.2 Các đặc trưng SQL Server 2000: 12 Các phiên bản-edition SQL Server 13 Các Version SQL Server 14 Các thành phần quan trọng SQL

Ngày đăng: 21/03/2021, 18:38

w