tài liệu thực hành môn cơ sở dữ liệu nâng cao

13 608 1
tài liệu thực hành môn cơ sở dữ liệu nâng 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

TÀI LIỆU THỰC HÀNH MÔN CƠ SỞ DỮ LIỆU NÂNG CAO Mục lục Index Tài liệu tham khảo Công cụ Nội dung Cú pháp tạo index Cú pháp chỉnh sửa index .2 Áp đặt tính cột khơng khóa Tạo composite index Thiết lập mục tăng dần – giảm dần Xem mục thiết lập .4 Vô hiệu hóa index Xóa index .5 Thay đổi index tồn với DROP_EXISTING Transaction Autocommit Transaction Implicit Transaction Explicit Transaction Sao lưu phục hồi liệu Các loại backup Thực lưu sở liệu Phục hồi liệu 11 November 11, 2011 [TÀI LIỆU HƯỚNG DẪN THỰC HÀNH MÔN CƠ CỞ DỮ LIỆU NÂNG CAO] Index Tài liệu tham khảo  SQL Server 2005 T – SQL Recipes, Apress 2008 (Chapter 5) Công cụ  MS SQL Server 2005 Enterprise  AdventureWorks Database Nội dung Cú pháp tạo index Để tạo index MS SQL Server 2005 ta sử dụng câu lệnh sau: Tham số:  [UNIQUE]: Đảm bảo tính cột khơng khóa  [CLUSTERED | NONCLUSTERED]: Kiểu index (Chi tiết tham khảo Indexes Overview – Trang 155 SQL Server 2005 T – SQL Recipes)  Index_name: Tên index  table_or_view_name: Tên bảng view cần tạo index  [ASC | DESC]: Chỉ định thứ tự xếp cột đánh index, ASC – thứ tự tăng dần, DESC – thứ tự giảm dần Cú pháp chỉnh sửa index Để chỉnh sửa index tồn ta dùng câu lệnh: Ví dụ Xem xét sở liệu AdventureWorks với bảng Department: http://msdn.microsoft.com/enus/library/ms124543%28v=sql.100%29.aspx FIT – VMU | Index November 11, 2011 [TÀI LIỆU HƯỚNG DẪN THỰC HÀNH MÔN CƠ CỞ DỮ LIỆU NÂNG CAO] Tạo bảng TerminationReason: Khi khóa tạo cột sử dụng câu lệnh CREATE TABLE ALTER TABLE index tạo Ví dụ Clustered Index tạo cột TerminationReasonID lệnh sau thực thi: Để tạo NonClustered Index cột DepartmentID ta sử dụng câu lệnh: Áp đặt tính cột khơng khóa Để áp đặt tính cột khơng khóa ta sử dụng từ khóa UNIQUE Ví dụ sau tạo index cột TerminationReason bảng HumanResource.TerminationReason: Để kiểm tra kết quả, thêm hai ghi sau: FIT – VMU | Index November 11, 2011 [TÀI LIỆU HƯỚNG DẪN THỰC HÀNH MÔN CƠ CỞ DỮ LIỆU NÂNG CAO] Sau thực thêm ghi với cột TerminationReason có giá trị ‘Bad Engineering Skills’: Thông báo lỗi xuất hiện: Như vậy, unique index tạo đảm bảo khơng có hai hàng bất kz có giá trị trùng cột TerminationReason Tạo composite index Composite index loại index thiết lập nhiều cột Ta sử dụng composite index nhiều cột thường xuyên xuất điều kiện tìm kiếm truy vấn Giả sử TerminationReason DepartmentID thường xuyên xuất mệnh đề WHERE câu lệnh SELECT Như ta tạo NONCLUSTERED INDEX để tăng tốc độ thực truy vấn đó: Thiết lập mục tăng dần – giảm dần Mặc định tạo mục tăng dần Để thiết lập mục tăng dần hay giảm dần ta thêm lựa chọn sau cú pháp tạo mục: Ví dụ, sử dụng câu lệnh sau để thêm cột ViolationSeverityLevel kiểu smallint: Sau sử dụng câu lệnh sau tạo mục giảm dần cột ViolationSeverityLevel: Xem mục thiết lập Để xem thông tin mục thiết lập bảng, ta sử dụng thủ tục sp_helpindex với tham số tên bảng cần xem mục Ví dụ muốn xem thông tin mục thiết lập bảng Employee ta sử dụng cú pháp sau: FIT – VMU | Index November 11, 2011 [TÀI LIỆU HƯỚNG DẪN THỰC HÀNH MÔN CƠ CỞ DỮ LIỆU NÂNG CAO] Kết sau: Vơ hiệu hóa index Để vơ hiệu hóa index ta sử dụng cú pháp: Ví dụ muốn vơ hiệu hóa index UNI_TerminationReason bảng TerminationReason ta sử dụng câu lệnh sau: Xóa index Từ khóa DISABLE cho phép vơ hiệu hóa index index sở liệu Để xóa hẳn index khỏi sở liệu ta sử dụng câu lệnh DROP INDEX với cú pháp sau: Ví dụ muốn xóa index UNI_TerminationReason khỏi sở liệu ta sử dụng câu lệnh sau: Thay đổi index tồn với DROP_EXISTING Lựa chọn DROP_EXISTING cho phép xóa tạo lại index câu lệnh Lựa chọn hữu ích muốn thay đổi cột thiết lập mục Câu lệnh ALTER INDEX sử dụng để thay đổi, dịch lại, tổ chức lại hay vơ hiệu hóa mục khơng sử dụng để thêm, xóa cột thiết lập mục Hơn nữa, sử dụng DROP_EXISTING để thay đổi clustered index không làm nonclustered index có tự động dịch lại Ví dụ sau tạo nonclustered index NCI_TerminationReason_DepartmentID: FIT – VMU | Index November 11, 2011 [TÀI LIỆU HƯỚNG DẪN THỰC HÀNH MƠN CƠ CỞ DỮ LIỆU NÂNG CAO] Sau muốn thêm cột ViolationSeverityLevel vào NCI_TerminationReason_DepartmentID ta sử dụng câu lệnh sau: Transaction Trong phần ta tìm hiểu ba kiểu transaction: autocommit, explicit implicit Autocommit Transaction Autocommit transaction kiểu mặc định SQL Server 2005 cho phép câu lệnh SQL đặt transation riêng tự động commit câu lệnh kết thúc Giả sử ta có hai câu lệnh INSERT, câu lệnh thứ bị lỗi, câu lệnh thứ hai thực thành công thay đổi câu lệnh thứ hai tạo lưu lại Ví dụ: Xét bảng NonClusteredTable(ID, Name) có unique clustered với tên index_id2 liệu có bảng sau: Như thực hai câu lệnh sau lúc ta thấy câu lệnh thứ bị lỗi ràng buộc unique index_id2 câu lệnh thứ hai thực thành công: INSERT INTO NonClusteredTable VALUES('1','So mot') UPDATE NonClusteredTable SET Name='SO MOT' WHERE ID='1' Kết quả: FIT – VMU | Transaction November 11, 2011 [TÀI LIỆU HƯỚNG DẪN THỰC HÀNH MÔN CƠ CỞ DỮ LIỆU NÂNG CAO] Implicit Transaction Đây kiểu transaction ẩn, thiết lập thông qua câu lệnh: Khi Implicit_Transactions thiết lập ON câu lệnh sau tự động bắt đầu transaction:  SELECT, INSERT, UPDATE, DELETE  ALTER TABLE  TRUNCATE TABLE  OPEN, FETCH  GRANT, REVOKE Và để kết thúc transaction cuối transaction phải có câu lệnh COMMIT ROLLBACK, không thay đổi transaction tạo không lưu lại ngắt kết nối Ví dụ: Xét lại bảng NonClusteredTable(ID, Name) với liệu có bảng sau: Trước hết ta thiết đặt chế độ Implicit Transaction ON: SET IMPLICIT_TRANSACTIONS ON Sau thực hai câu lệnh cập nhật: UPDATE NonClusteredTable SET Name='SO HAI' WHERE ID='2' UPDATE NonClusteredTable SET Name='SO BA' WHERE ID='3' Sau ta ngắt kết nối kết nối trở lại thấy thay đổi hai câu lệnh tạo không lưu lại Sử dụng lệnh COMMIT ROLLBACK để hoàn tất transaction: {COMMIT | ROLLBACK} TRANSACTION Transaction_Name Explicit Transaction Đây kiểu transaction người dùng tự định nghĩa thông qua câu lệnh: BEGIN TRANSACTION, ROLLBACK TRANSACTION, COMMIT TRANSACTION, BEGIN DISTRIBUTED TRANSACTION, SAVE TRANSACTION, @@TRANCOUNT Ví dụ sau sử dụng Explicit Transaction để hoàn tất hủy bỏ thay đổi transaction tạo tùy thuộc vào lỗi trả khối lệnh: FIT – VMU | Transaction November 11, 2011 [TÀI LIỆU HƯỚNG DẪN THỰC HÀNH MÔN CƠ CỞ DỮ LIỆU NÂNG CAO] Kết sau: FIT – VMU | Transaction November 11, 2011 [TÀI LIỆU HƯỚNG DẪN THỰC HÀNH MÔN CƠ CỞ DỮ LIỆU NÂNG CAO] Sao lưu phục hồi liệu Các loại backup Microsoft SQL Server 2005 có lựa chọn để backup liệu: full, transaction log differential backup Full backup cho phép tạo lưu toàn sở liệu Khi thực full backup không cần phải offline sở liệu lại tốn thời gian tài nguyên hệ thống đặc biệt kích thước sở liệu lớn Differential backup lựa chọn khác cho phép giảm thời gian không gian lưu trữ tiến hành backup Differential backup lưu thay đổi liệu từ lần full backup gần Do lựa chọn thường sử dụng kèm với full backup Trong trình hoạt động, thay đổi SQL Server lưu transaction log Transaction log backup cho phép lưu transaction file log vào thiết bị lưu trữ, SQL Server xóa transaction khỏi file log Ví dụ kế hoạch lưu liệu: Một DBA thực full backup vào buii tối thứ different backup vào buổi tối từ thứ đến thứ transaction log backup lần Giả sử cố xảy vào 9h:05 ngày thứ 4, DBA tiến hành khôi phục liệu sau: Dùng full backup để khôi phục liệu tối ngày thứ Sau dùng differential backup để đưa sở liệu trạng thái tối thứ Cuối sử dụng transaction log backup để đưa sở liệu thời điểm 9h sáng thứ Thực lưu sở liệu Để thực lưu sở liệu ta thực theo bước sau:  Bật MS SQL Server  Click chuột phải vào sở liệu cần lưu  Chọn phần Task  Chọn Backup FIT – VMU | Sao lưu phục hồi liệu November 11, 2011  [TÀI LIỆU HƯỚNG DẪN THỰC HÀNH MÔN CƠ CỞ DỮ LIỆU NÂNG CAO] Chọn chế độ backup: Full, Differential Transaction log FIT – VMU | Sao lưu phục hồi liệu 10 November 11, 2011 [TÀI LIỆU HƯỚNG DẪN THỰC HÀNH MÔN CƠ CỞ DỮ LIỆU NÂNG CAO]  Chọn đường dẫn đặt tên file backup  Click vào OK để hoàn tất trình backup Phục hồi liệu Để thực khôi phục lại sở liệu ta thực theo bước sau:  Bật MS SQL Server  Click chuột phải vào sở liệu cần phục hồi  Chọn phần Task  Chọn Restore  Chọn Database FIT – VMU | Sao lưu phục hồi liệu 11 November 11, 2011 [TÀI LIỆU HƯỚNG DẪN THỰC HÀNH MÔN CƠ CỞ DỮ LIỆU NÂNG CAO]  Chọn From Device  Chọn đường dẫn tới file chứa lưu FIT – VMU | Sao lưu phục hồi liệu 12 November 11, 2011  [TÀI LIỆU HƯỚNG DẪN THỰC HÀNH MÔN CƠ CỞ DỮ LIỆU NÂNG CAO] Click vào OK để hoàn tất trình khơi phục liệu FIT – VMU | Sao lưu phục hồi liệu 13 ... 2011 [TÀI LIỆU HƯỚNG DẪN THỰC HÀNH MÔN CƠ CỞ DỮ LIỆU NÂNG CAO] Kết sau: FIT – VMU | Transaction November 11, 2011 [TÀI LIỆU HƯỚNG DẪN THỰC HÀNH MÔN CƠ CỞ DỮ LIỆU NÂNG CAO] Sao lưu phục hồi liệu. .. HÀNH MÔN CƠ CỞ DỮ LIỆU NÂNG CAO] Chọn chế độ backup: Full, Differential Transaction log FIT – VMU | Sao lưu phục hồi liệu 10 November 11, 2011 [TÀI LIỆU HƯỚNG DẪN THỰC HÀNH MÔN CƠ CỞ DỮ LIỆU NÂNG... phải vào sở liệu cần phục hồi  Chọn phần Task  Chọn Restore  Chọn Database FIT – VMU | Sao lưu phục hồi liệu 11 November 11, 2011 [TÀI LIỆU HƯỚNG DẪN THỰC HÀNH MÔN CƠ CỞ DỮ LIỆU NÂNG CAO] 

Ngày đăng: 30/03/2014, 21:35

Từ khóa liên quan

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

Tài liệu liên quan