Giáo trình SQL Server 2008

Trình bày được các khái niệm cơ bản SQL Server 2008

 Mô tả được các thành phần và kiến trúc SQL Server 2008.

 Thực hành được cách tạo cơ sở dữ liệu, tạo bảng, tạo kết nối giữa các bảng

 Thực hành được sao lưu và phục hồi cơ sở dữ liệu.

pdf161 trang | Chuyên mục: SQL Server | Chia sẻ: dkS00TYs | Lượt xem: 2671 | Lượt tải: 5download
Tóm tắt nội dung Giáo trình SQL Server 2008, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
X 
ON REBUILD | REORGANIZE | DISABLE 
VÍ Dụ: chỉnh sửa Index dung Rebuild hoặc Disable 
 - Free Download 
 Trang 140 
H 7.22 Chỉnh sửa Index 
 Lược đồ XML (XML Schema) 
XML Schema mô tả cấu trúc của tài liệu dạng XML; sử dụng cú pháp của XML 
 Định nghĩa các thành phần, thuộc tính có trong tài liệu. 
 Định nghĩa kiểu dữ liệu của các thành phần bên trong. 
 Xác định và sắp xếp các thuộc tính con. 
 Xác định thành phần nào rỗng hoặc có thể thêm dữ liệu vào đó. 
Cú pháp: 
Tạo Schema: 
 CREATE XML SCHEMA COLLECTION 
 AS Expression 
 - Free Download 
 Trang 141 
Chỉnh sửa Schema: 
 ALTER XML SCHEMA COLLECTION 
Xóa Schema: 
 DROP XML SCHEMA COLLECTION 
Ví dụ: Tạo 1 schema tên ContactSchemaCollection, sau đó tạo bảng Contacts và them dữ liệu 
vào bảng theo cấu trúc Schema vửa tạo 
H 7.23 Tạo Schema ContactSchemaCollection 
 - Free Download 
 Trang 142 
 Tạo bảng Contacts gồm 1 cột Contact 
 Sau khi đã tạo bảng, chúng ta có thể thêm dữ liệu 
Do ta đã định nghĩa trước các thành phần của XML trong Schema, nên khi ta thêm dữ liệu 
không phù hợp, SQL Server sẽ kiểm tra với Schema và báo lỗi 
Để tìm hiểu rõ hơn về XML Schema cũng như các cách sử dụng khác của Schema, các bạn có 
thể tham khảo tại:  
 - Free Download 
 Trang 143 
Chương 8 .NET Integration & SQL Server 
Common Language Runtime (CLR) cung cấp các phương thức quản lý mã nguồn như 
tích hợp các ngôn ngữ, bảo mật bằng mã truy cập, quản lý vòng đời các đối tượng, gỡ 
lỗi… Đối với người dùng SQL Server và các nhà phát triển ứng dụng, tích hợp CLR (CLR 
Integration) trong .Net nghĩa là ta có thể viết và lưu trữ Store Procedure, triggers, 
user-defined types, user-defined function bằng cách sử dụng bất kỳ .Net Framework. 
Lưu ý rằng, CLR Integration không dùng trong Visual Studio 2003 (Framework 1.0) . 
Những lợi ích chính của CLR Integration: 
 Mô hình lập trình tốt hơn: các nhà phát triển có thể tận dụng sức mạnh của thư 
viện .Net Framework, trong đó cung cấp một tập hợp rộng rãi các class để sử dụng 
nhanh chóng và hiệu quả nhằm giải quyết các vấn đề lập trình. 
 Cải thiện tính an toàn và bảo mật: quản lý các mã trong môi trường CLR đượ tổ 
chức trong cơ sở dữ liệu. SQL Server cung cấp một sự thay thế an toàn và bảo mật 
hơn các phiên bản trước. 
 Khả năng xác định kiểu dữ liệu: User-defined type và user-defined aggregates 
là 2 đối tượng quản lý dữ liệu mới, mở rộng khả năng lưu trữ và truy vấn SQL 
Server. 
Kết thúc chương này các bạn có thể : 
 Trình bày được các khái niệm về .NET Integration với SQL Server 20008 
 Trình bày và xây dựng được CLR Store Procedure 
 Trình bày và xây dựng được CLR User-Defined Function 
 Trình bày và xây dựng CLR User-Defined Type 
8.1 Giới thiệu về .NET Integration & SQL Server 2008 
 - Free Download 
 Trang 144 
CLR Store Procedure được sử dụng như các phương thức dạng public static. Các 
phương thức static có thể khai báo dạng void hay trả về một giá trị kiểu interger. 
Nếu khai báo dạng void, giá trị trả về là 0. 
Giá trị trả về của Store Procedure có thể là tham số, bảng kết quả hoặc một thông 
báo. 
Màn hình làm việc với CLR Store Procedure trong Visual Studio 2008 
H 8.1 Giao diện viết Store Procedure 
8.2 Xây dựng CLR Store Procedure 
 - Free Download 
 Trang 145 
Để tìm hiểu rõ hơn về cách tạo một CLR Store Procedure Integration, chúng ta sẽ 
tạo môt store procedure tên GetProducts trong CSDL Northwind theo các bước sau : 
Bước 1: mở VS 2008 chọn File -> New Project. 
Chọn Database -> SQL Server Project 
 Đặt tên Project: SampleCLRStoreProcedure 
H 8.2 Tạo Project mới 
 - Free Download 
 Trang 146 
Sau khi tạo Project, ta chọn Database cần làm việc; trong ví dụ này ta chọn 
Northwind, VS 2008 mở cửa sổ chính của project. 
H 8.3 Cửa sổ chính Project 
 - Free Download 
 Trang 147 
Bước 2: Thêm vào project 1 class dùng để tạo store procedure 
 Right click tên Project -> Add -> Store Procedure 
H 8.3 Thêm Store Procedure 
 - Free Download 
 Trang 148 
Bươc 4: Đặt tên Store Procedure là GetProducts 
H 8.4 Tạo store GetProducts 
Bước 5: Chúng ta tạo store GetProducts có 1 tham số truyền vào kiểu int để nhận 
giá trị CategoryID do người dùng nhập vào 
 - Free Download 
 Trang 149 
H 8.5 Viết code Store GetProducts 
Chú ý: kiểu dữ liệu dùng cho @CategoryID là SqlInt32 
Bước 6: Deploy Store GetProducts 
 Right click Project -> Deploy 
 - Free Download 
 Trang 150 
H 8.6 Deploy store 
Nếu kết nối được với Server, Visual Studio sẽ thông báo Deploy Succeeded. Nếu 
thất bại sẽ xuất thông báo trong mục Output: Deploy Failed. 
Bước 7 : Để thực thi store procedure vừa tạo chúng ta sẽ thực hiện trong SQL 
Server 2008. 
Chúng ta mở SQL Server Management Studio -> chọn New Query 
 - Free Download 
 Trang 151 
H 8.7 Thực thi Store 
User-Defined Function có thể nhận tham số, thực hiện tính toán, các thao tác khác và 
trả về một giá trị nào đó. 
Tương tự T-SQL Function, CLR User-Defined Function có 2 loại Function: 
 Scalar function trả về một giá trị đơn. 
 Table Valued function: trả về một tập hợp các dòng dữ liệu. 
8.3 Xây dựng CLR User-Defined Function 
 - Free Download 
 Trang 152 
Ví dụ: Chúng ta sẽ tạo một User-defined Function dùng kiển tra Email có hợp lệ hay 
không để hiểu rõ hơn về cách tạo và sử dụng Function. 
Bước 1: Add ->User-Defined Function 
H 8.8 Thêm mới Function 
Bước 2 : Viết code cho hàm kiểm tra Email tên ValidateEmail 
 - Free Download 
 Trang 153 
H 8.9 Nội dung hàm ValidateEmail 
Bước 3 :Nhấn phải chuột | Deploy thì VS.Net sẽ cài đặt hàm này vào SQL Server tự 
động . 
Lưu ý : Khi deploy thì VS.Net sẽ tạo một tập tin *.dll trong thư mục Bin\Debug để 
chúng ta có thể cài đặt trên cơ cở dữ liệu khác bằng cách sử dụng các lệnh T-SQL . 
 - Free Download 
 Trang 154 
H 8.10 Deploy hàm vừa tạo 
Bước 4 : Đăng ký thư viện .dll để sử dụng trong SQL Server 2008 ( đăng ký bằng 
tay sử dụng lệnh T-SQL ). Nếu chúng ta đã chọn Deploy ở bước 3 thì có thể sang 
bước 5. 
H 8.11 Đăng ký dll 
Bước 5 : Trong trường hợp ta không sử dụng tên hàm có sẳn trong .Net , ta có thể tạo 
hàm mới tên RegEx trong SQL Server 2008 dựa trên hàm đã tạo trong .Net. 
 Sau khi tạo hàm, chúng ta có thể gọi hàm này trong lệnh SELECT 
 - Free Download 
 Trang 155 
H 8.12 Tạo và gọi hàm RegEx 
SQL Server 2008 cho phép ta tạo những đối tượng cơ sở dữ liệu trong .NET Framework 
CLR. Chúng ta có thể dùng User-Defined Tpyes (UDTs) để tạo ra các kiểu dữ liệu mới 
để lưu trữ các đối tượng của CLR trong SQL Server. UDTs có thể chứa nhiều thành 
phần và có nhiều thuộc tính khác với những kiểu dữ liệu sẵn có trong SQL Server. 
Để xây dựng UDTs, ta thực hiện tương tự như CLR User-defined Function: 
 Viết code và biên dịch thư viện tạo UDTs trong .NET. 
 Đăng ký thư viện vừa tạo trong SQL Server (CREATE ASSEMBLY) 
 Tạo UDTs trong SQL Server 
 Tạo bảng, tham số sử dụng UDTs. 
8.4 Xây dựng CLR User-Defined Types 
 - Free Download 
 Trang 156 
Ví dụ : Tạo một User-defined Types dùng để kiểm tra Mật khẩu nhập vào trong CSDL 
Bước 1: Thêm class dạng User-defined Type vào project ( tên project là ThuVien) 
H 8.13 Thêm class User-defined Type 
Bước 2 : Viết code cho User-defined vừa thêm vào 
using System; 
using System.Data; 
using System.Data.SqlClient; 
using System.Data.SqlTypes; 
using Microsoft.SqlServer.Server; 
using System.Text.RegularExpressions; 
 - Free Download 
 Trang 157 
using System.IO; 
[Serializable] 
[SqlUserDefinedType(Format.UserDefined, 
 IsByteOrdered=true, MaxByteSize=8000)] 
public struct MatKhau : INullable, IBinarySerialize 
{ 
 private bool m_Null; 
 public string m_ChuoiMK; 
 public override string ToString() 
 { 
 return m_ChuoiMK; 
 } 
 public bool IsNull 
 { 
 get 
 { 
 return m_Null; 
 } 
 } 
 public static MatKhau Null 
 { 
 get 
 { 
 MatKhau matKhau = new MatKhau(); 
 matKhau.m_Null = true; 
 return matKhau; 
 } 
 } 
 public static MatKhau Parse(SqlString chuoi) 
 { 
 if (chuoi.IsNull) 
 { 
 return Null; 
 } 
 - Free Download 
 Trang 158 
 MatKhau matKhau = new MatKhau(); 
 bool hopLe = Regex.IsMatch(chuoi.ToString(), "[a-zA-Z]{4,}[0-9]"); 
 if (hopLe == true) 
 { 
 matKhau.m_ChuoiMK = chuoi.ToString(); 
 return matKhau; 
 } 
 throw new SqlTypeException("Mat khau khong hop le."); 
 } 
 public void Write(BinaryWriter writer) 
 { 
 writer.Write(m_ChuoiMK); 
 } 
 public void Read(BinaryReader reader) 
 { 
 m_ChuoiMK = reader.ReadString(); 
 } 
} 
Bước 3 : Build và Deploy User-defined Type tương tự như phần CLR User-defined 
Function. 
Bước 4: Đăng ký .dll vào SQL Server 
 - Free Download 
 Trang 159 
H 8.14 Đăng ký dll 
Bước 5 : Tạo bản Users và thêm 3 dòng dữ liệu, trong đó có dòng dữ liệu đầu tiên 
không đúng với kiểu MAT_KHAU mà ta đã định nghĩa là phải bao gồm cả chữ lẫn số. 
 Trong ví dụ này , chúng ta tạo ra một kiểu dữ liệu tên MAT_KHAU có dạng 4 ký tự 
đầu là chữ cái sau đó là các số nguyên từ 0-9 
 - Free Download 
 Trang 160 
H 8.15 Thông báo lỗi sau khi nhập dữ liệu 
Theo như thông báo lỗi ở trên thì chỉ có 2 dòng dữ liệu 2 và 3 được thêm vào bảng 
Users, dòng đầu tiên không đúng với kiểu dữ liệu. 
H 8.16 Liệt kê dữ liệu vừa thêm 
 - Free Download 
 Trang 161 
 Dữ liệu trong cột MyPassword đã dược chuyển sang dạng Binary trong câu lệnh 
 public void Write(BinaryWriter writer) 
 { 
 writer.Write(m_ChuoiMK); 
 } 
 Để có thể thấy được mật khẩu ta có thể sử dụng hàm Cast trong câu lệnh Select 
 Select UserName,Cast(MyPassword as varchar) as MyPassword from Users 
 Kết quả 
Trên đây là 2 ví dụ đơn giản về User-defined Function và User-defined Type, để tìm 
hiểu chi tiết hơn về CLR Integration trong SQL Server 2008. Chúng ta sử dụng kỹ 
thuật này để viết các hàm phức tạp bằng cách sử dụng các ngôn ngữ .Net ( C#, 
VB.Net,.. ) thay vì phải viết bằng các lệnh T-SQL . 
Các bạn có thể tham khảo theo Book Online 2008 và MSDN của Microsoft. 
 - Free Download 

File đính kèm:

  • pdfGiáo trình SQL Server 2008.pdf
Tài liệu liên quan