ThuVienIT.oRg - Các Tài liệu SQL Server-15-2-2012 pot

7 386 0
ThuVienIT.oRg - Các Tài liệu SQL Server-15-2-2012 pot

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

Thông tin tài liệu

Các Tài liệu SQL Server Bắt đầu in từ : Cổng Thư Viện IT Số Việt Nam Mục lục: Câu Lạc Bộ Webmaster & Lập Trình Viên Tên diễn đàn: Cơ Sở Dữ Liệu Forum Discription: Bao gồm Access , MySQL URL: http://thuvienit.com/forum_posts.asp?TID=5035 Ngày In: 15/02/2012 lúc 15:27 Chủ đề : Các Tài liệu SQL Server được đăng bởi: VanTrung87hvt Đề tài: Các Tài liệu SQL Server Ngày đăng bài: 16/01/2009 lúc 12:45 SQL Server 2005 Books Online" miễn phí Ngày 20/07/2006, Microsoft đã chính thức ra mắt ấn bản cập nhật cho bộ sách tự học nổi tiếng của hãng là "SQL Server Books Online". Ấn bản này được cập nhật và bổ sung cho người tự tìm hiểu sản phẩm CSDL Microsoft SQL Server 2005. Một số thông tin về cuốn ebook này: • File Name: SqlServer2K5_BOL_Jul2006.msi Version: 9.00.2510 Date Published: 7/20/2006 Language: English Download Size: 123.1 MB • http://www.microsoft.com/downloads/details.aspx?FamilyId=BE6A2C5D-00DF-4220-B133- 29C1E0B6585F&displaylang=en - Download tại đây Các cuốn sách khác: http://www.esnips.com/nsdoc/6fa78f50-ee57-466c-a113-43b5d8966afb - Tài liệu SQL Server 2000 - Tiếng Việt http://rapidshare.com/files/83754635/Microsoft_SQL_Server_2005_Administrator_s_Companion.pdf - SQL Server 2005 Administrator's Companion Còn sau đây là các tài liệu dạy SQL bằng clip video: http://dichvucongdong.com/sharevicode/Uploads/Videos/bamba633130067348281250Lesson_1_- _What_is_a_database.wmv - SQL Server 2005 Beginer (Phần 1) http://dichvucongdong.com/sharevicode/Uploads/Videos/bamba633130274227500000Lesson_3_- _More_about_Column_Data_Types_and_Other_Properties.wmv - SQL Server 2005 Beginer (Phần 2) http://dichvucongdong.com/sharevicode/Uploads/Videos/bamba633137009444062500Lesson_2_- _Understanding_Database_Tables_and_Records.wmv - Understanding Database Tables and Records http://dichvucongdong.com/sharevicode/Uploads/Videos/bamba633137016741406250Lesson_4_- _Designing_Relational_Database_Tables.wmv - Designing Relational Database Tables Chúc các bạn học tập tốt! ====================================== Link hữu ích cho lập trình viên và nhân viên văn phòng ====================================== http://c.thuvienit.com/csharp-to-vb.aspx - Convert C# to VB.NET http://c.thuvienit.com/vb-to-csharp.aspx - Convert VB.NET to C# http://c.thuvienit.com/Font-Converter.aspx - Convert Fonts ====================================== Trả lời: được đăng bởi: vanthanhtt8 Ngày đăng bài: 19/02/2009 lúc 10:29 Bài viết SQL: GIAO TÁC (Transaction).<?: prefix = o ns = "urn:schemas- microsoft-com:office:office" /> • Khái niệm. • Tính chất của giao tác. • Các lệnh trong giao tác. • Khóa (Lock). • Các mức độ của tính cô lập. 1. Khái niệm. • Giao tác là một đõn vị làm việc trong đó tất cả các phát biểu phải đýợc xử lý thành công hoặc không có phát biểu nào đýợc xử lý. • Các giao tác có thể là giao tác ngầm hoặc giao tác khai báo rỏ ràng. • Giao tác khai báo rỏ ràng bằng cách dùng các lệnh : BEGIN TRAN : khai báo điểm bắt đầu của giao tác. COMMIT TRAN : chấp nhận giao tác thành công. ROLLBACK TRAN : trở lại trạng thái bắt đầu của giao tác (giao tác thất bại). • Giao tác ngầm : hệ QTCSDL tự động tạo giao tác và tự động chấp nhận nếu giao tác thành công hoặc quay lui nếu giao tác thất bại. 2. Tính chất của giao tác. Bốn tính chất của giao tác, gọi là ACID (Atomicity, Consistency, Isolation, and Durability) 1. Atomicity (nguyên tử): Mọi phát biểu trong giao tác phải đýợc thực hiện hoặc không có phát biểu nào đýợc thực hiện. 2. Consistency (nhất quán): Khi kết thúc, một giao tác luôn luôn đặt dữ liệu ở trạng thái nhất quán, nghĩa là các luật và tính toán vẹn dữ liệu phải đýợc bảo toàn. 3. Isolation (cô lập): Một giao tác không bị ảnh hýởng hoặc xung đột bởi bất kỳ một giao tác nào khác. 4. Durability (bền vững): Một giao tác bảo đảm hoàn tất mọi công việc bất chấp các trục trặc hệ thống. 3. Các lệnh trong giao tác. • Một giao tác bắt đầu bằng lệnh BEGIN TRAN và kết thúc thành công bởi lệnh COMMIT TRAN hoặc quay trở lại trạng thái bắt đầu giao tác bởi lệnh ROLLBACK TRAN. • SQL Server dùng biến @@TRANCOUNT để đếm và quản lý các giao tác. • Các giao tác có thể lồng với nhau. 1. Lệnh BEGIN TRANSACTION. Chức năng : bắt đầu một giao tác, SQL Server tăng giá trị biến @@TRANCOUNT lên 1. Cú pháp : BEGIN TRAN[SACTION] tên_giao_tác |@tên_biến_giao_tác Thí dụ : BEGIN TRAN T1 UPDATE table1 BEGIN TRAN M2 UPDATE table2 SELECT * from table1 COMMIT TRAN M2 UPDATE table3 COMMIT TRAN T1 2. Lệnh COMMIT TRANSACTION. Chức năng : kết thúc thành công một giao tác. Nếu biến @@TRANCOUNT có giá trị 1 thì SQL Server khôi phục lại trạng thái đầu của dữ liệu và gán giá trị @@TRANCOUNT bằng 0. Ngýợc lại SQL Server giảm giá trị biến @@TRANCOUNT xuống 1. Cú pháp : COMMIT TRAN[SACTION] tên_giao_tác | @tên_biến_giao_tác Thí dụ 1 : BEGIN TRANSACTION USE pubs GO UPDATE titles SET advance = advance * 1.25 WHERE ytd_sales > 8000 GO COMMIT GO Thí dụ 2 : dùng các giao tác lồng nhau CREATE TABLE Test (ColA INT PRIMARY KEY, ColB CHAR(3)) GO BEGIN TRANSACTION T1 biến @@TRANCOUNT = 1. GO INSERT INTO Test VALUES (1, 'aaa') GO BEGIN TRANSACTION T2 biến @@TRANCOUNT = 2. GO INSERT INTO Test VALUES (2, 'bbb') GO BEGIN TRANSACTION T3 biến @@TRANCOUNT = 3. GO INSERT INTO Test VALUES (3, 'ccc') GO COMMIT TRANSACTION T3 biến @@TRANCOUNT = 2. GO COMMIT TRANSACTION T2 biến @@TRANCOUNT = 1. GO COMMIT TRANSACTION T1 biến @@TRANCOUNT = 0. GO 3. Lệnh ROLLBACK TRANSACTION. Chức năng : quay ngýợc lại trạng thái bắt đầu của giao tác hoặc điểm lýu trong giao tác. Cú pháp : ROLLBACK TRAN[SACTION] tên_giao_tác | @tên_biến_giao_tác |tên_điểm_lýu | @ tên_biến_điểm_lýu. 4. Lệnh SAVE TRANSACTION. Chức năng : tạo điểm lýu (save point) trong giao tác để có thể quay ngýợc lại trạng thái của dữ liệu tại điểm lýu trong giao tác. Cú pháp : SAVE TRAN[SACTION] tên_điểm_lýu | @tên_biến_điểm_lýu Thí dụ : BEGIN TRANSACTION royaltychange UPDATE titleauthor SET royaltyper=65 FROM titleauthor, titles WHERE royaltyper = 75 AND titleauthor.title_id = titles.title_id AND title = 'The Gourmet Microwave' UPDATE titleauthor SET royaltyper=35 FROM titleauthor, titles WHERE royaltyper = 25 AND titleauthor.title_id = titles.title_id AND title = 'The Gourmet Microwave‘ SAVE TRANSACTION percentchanged UPDATE titles SET price = price * 1.1 WHERE title = 'The Gourmet Microwave' SELECT (price*royalty*ytd_sales)*royaltyper FROM titles, titleauthor WHERE title = 'The Gourmet Microwave' AND titles.title_id = titleauthor.title_id ROLLBACK TRANSACTION percentchanged COMMIT TRANSACTION 5. Biến @@TRANCOUNT. Chức năng : cho số (số nguyên) các giao tác đang hoạt động. Cú pháp : @@TRANCOUNT Ghi chú : Lệnh BEGIN TRAN : tăng giá trị biến @@TRANCOUNT lên 1. Lệnh ROLLBACK TRAN : gán giá trị biến @@TRANCOUNT về 0. Lệnh ROLLBACK TRAN tên_điểm_lýu không thay đổi biến @@TRANCOUNT. Lệnh COMMIT TRAN giảm giá trị biến @@TRANCOUNT xuống 1. Thí dụ : BEGIN TRANSACTION UPDATE authors SET au_lname = upper(au_lname) WHERE au_lname = 'White' IF @@ROWCOUNT = 2 COMMIT TRAN IF @@TRANCOUNT > 0 BEGIN PRINT 'A transaction needs to be rolled back' ROLLBACK TRAN END 4. Khóa (Lock). Khóa là cõ chế mà HQTCSDL dùng để kiểm soát và hạn chế việc nhiều ngýời dùng cùng một lúc cập nhật vào dữ liệu. Khóa có thể tác dụng lên nhiều đối týợng khác nhau trong CSDL nhý dòng, khóa, trang, chỉ mục, bảng, hay toàn bộ CSDL với nhiều mức độ khác nhau. Thí dụ : một bảng nhỏ có thể đýợc khóa toàn bộ bảng, trong khi một bảng lớn có thể chỉ khóa một số dòng. Một số kiểu khóa Có một số kiểu khóa nhý : shared, exclusive, update, Khóa dùng chung (Shared locks) : dùng cho các thao tác chỉ đọc dữ liệu (lệnh SELECT). Không có giao tác nào khác có thể hiệu chỉnh dữ liệu trong thời gian khóa có tác dụng. Khóa dùng chung sẽ kết thúc ngay khi dữ liệu đýợc đọc xong. Khóa độc quyền (Exclusive locks) : không cho phép giao tác khác có thể đọc hoặc cập nhật dữ liệu bị khóa. Khóa cập nhật (Update locks) : dùng để cập nhật dữ liệu và cho phép các giao tác khác có thể đọc dữ liệu. Khóa chết (dead lock) Khóa chết (deadlock) là tình huống có hai hay nhiều tác vụ khóa lẩn nhau. Thí dụ : giao tác A đã mở độc quyền (exclusive) bảng T1 và đang chờ mở độc quyền bảng T2, cùng lúc đó giao tác B cũng đã mở độc quyền bảng T2 và đang chờ mở độc quyền bảng T1. Kết quả là hai giao tác trên chờ vô tận. SQL Server có thuật toán để phát hiện các khóa chết và rollback các giao tác. Xem mục các mục “Undestanding and Avoiding blocking” và ‘Minimizing deadlocks” trong Book Online Thí dụ : một cách hạn chế khóa chết. 5. Mức độ của tính cô lập (Isolation level) • Hệ QLCSDL dùng cõ chế khoá để đảm bảo mọi giao tác hoàn toàn độc lập với các giao tác khác mặc dù các giao tác có thể đýợc thực hiện bất cứ lúc nào. • Tính tuần tự (serialization) là một tính chất quan trọng để đảm bảo tính cô lặp của các giao tác. Tuy nhiên nhiều giao tác có thể đýợc thực hiện không hoàn toàn độc lập với nhau. • Mức độ chấp nhận các xung đột của giao tác đýợc gọi là mức độ của tính cô lặp. Mức độ cô lặp thấp cho phép tăng khả năng thực hiện đồng thời các giao tác nhýng phải trả giá cho tính đúng đắn của dữ liệu. Ngýợc lại, mức độ của tính cô lặp cao bảo đảm tính đúng đắn của dữ liệu nhýng ngăn cản các xử lý dữ liệu đồng thời. Các mức độ của tính cô lập (từ thấp đến cao). READ UNCOMMITTED : là mức độ cô lặp thấp nhất, dữ liệu không đýợc khóa và có thể thay đổi trýớc khi kết thúc giao tác. READ COMMITTED : là mức độ cô lặp mặc định của SQL Server, dữ liệu đýợc khóa dùng chung (shared lock), nhýng có thể thay đổi trýớc khi kết thúc giao tác. REPEATABLE READ : cõ chế khóa xảy ra trên toàn bộ dữ liệu đýợc dùng trong truy vấn, ngăn cản ngýời sử dụng khác cập nhật dữ liệu nhýng cho phép ngýời sử dụng khác thêm các record mới vào dữ liệu (phantom rows) và các lần đọc sau sẽ có các dữ liệu đó. SERIALIZABLE : là mức độ cô lặp cao nhất, cõ chế khóa trên tập dữ liệu, ngăn cản ngýời sử dụng khác cập nhật hay thêm dòng vào dữ liệu cho tới khi giao tác kết thúc. Cài đặt mức độ tính cô lập. SET TRANSACTION ISOLATION LEVEL { READ COMMITTED | READ UNCOMMITTED | REPEATABLE READ | SERIALIZABLE } Thí dụ : SET TRANSACTION ISOLATION LEVEL REPEATABLE READ GO BEGIN TRANSACTION SELECT * FROM publishers SELECT * FROM authors COMMIT TRANSACTION Các hành vi do các mức độ cô lập gây ra. . http://www.microsoft.com/downloads/details.aspx?FamilyId=BE6A2C5D-00DF-4220-B13 3- 29C1E0B6585F&displaylang=en - Download tại đây Các cuốn sách khác: http://www.esnips.com/nsdoc/6fa78f50-ee5 7-4 66c-a11 3-4 3b5d8966afb. phòng ====================================== http://c .thuvienit. com/csharp-to-vb.aspx - Convert C# to VB.NET http://c .thuvienit. com/vb-to-csharp.aspx - Convert VB.NET to C# http://c .thuvienit. com/Font-Converter.aspx

Ngày đăng: 19/03/2014, 07:20

Từ khóa liên quan

Mục lục

  • •             Khái niệm.

  • •             Tính chất của giao tác.

  • •             Các lệnh trong giao tác.

  • •             Khóa (Lock).

  • •             Các mức độ của tính cô lập.

  • •                Giao tác là một đõn vị làm việc trong đó tất cả các phát biểu phải đýợc xử lý thành công hoặc không có phát biểu nào đýợc xử lý.

  •  

  • •                 Các giao tác có thể là giao tác ngầm hoặc giao tác khai báo rỏ ràng.

  •  

  • •                 Giao tác khai báo rỏ ràng bằng cách dùng các lệnh :

  •             BEGIN TRAN            : khai báo điểm bắt đầu của giao tác.

  •             COMMIT TRAN       : chấp nhận giao tác thành công.

  •             ROLLBACK TRAN : trở lại trạng thái bắt đầu của giao tác                                                    (giao tác thất bại).

  •  

  • •                 Giao tác ngầm : hệ QTCSDL tự động tạo giao tác và tự động chấp nhận nếu giao tác thành công hoặc quay lui nếu giao tác thất bại.

  •          Bốn tính chất của giao tác, gọi là ACID 

  •          (Atomicity, Consistency, Isolation, and Durability)

  • 1. Atomicity (nguyên tử):

  •          Mọi phát biểu trong giao tác phải đýợc thực hiện hoặc không có phát biểu nào đýợc thực hiện.

  • 2. Consistency (nhất quán):

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

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

Tài liệu liên quan