[MSSQL-SMO]-Bộ thư viện lập trình Database SMO (SQL Server Management Objects)


Chào các bạn,

Cách đây khoản chừng chục năm, chưa có môi trường .NET thì chắc hẳn ai đã từng làm việc trên môi trường lập trình Windows 32 thì cũng ít nhiều biết đến bộ thư viện COM/DCOM : DMO của Microsoft cung cấp. Bộ thư viện này cung cấp các hàm, thủ tục và các đối tượng giúp lập trình viên truy cập vào Database Engine dễ dàng hơn. Tuy nhiên việc sử dụng COM/DCOM vất vả và không ổn định.

Các bạn tham khảo tài liệu SMO : https://msdn.microsoft.com/en-us/library/hh248032.aspx

Sau khi có bộ Microsoft Framework, Microsoft đã phát triển lại bộ DMO thành SMO để lập trình viên có thể dễ dàng tích hợp vào các .NET Project hơn.

2015-05-18_233149

1.Vậy bộ thư viện SMO (SQL Server Management Objects) là gì, giúp ích gì cho lập trình viên hệ thống và DBA ?

Khi làm việc với Database Engine và với tư cách là một DBA bạn hình dung các khái niệm trong Database Engine là các đối tượng. Ví dụ : ta có các đối tượng như sau:

-Server
-Database
-Table
-Column
-Store Procedure
-Function
-Transaction
-V.v.v.v

Các đối tượng này được Microsoft mô tả lại trong bộ thư viện SMO để dễ dàng cho lập trình viên truy xuất và xử lý.

Tôi có một câu hỏi đơn giản, tôi muốn lấy thông tin của tất cả các table trong một Database bằng Code lập trình C# hoặc VB.NET ?

Thường thì chúng ta sẽ dùng SQLClient mở connection, tạo Command và dùng câu lệnh “Select * from sysobjects where type=’U'” chẳn hạn vậy…… dùng Dataset, datatable hứng giá trị trả về…. tuy nhiên giá trị trả về cũng chỉ là dữ liệu dạng phẳn, chúng ta không tận dụng được điểm mạnh của OOP.

Trong khi đó bộ SMO cung cấp cho chúng ta tất cả các đối tượng, thuộc tính và các đối tượng liên quan.

2015-05-18_234730

2015-05-18_234537

2015-05-19_000028

Hơn nữa SMO giúp bạn thọc sâu vào Database Engine và điều khiển các Object hệ thống. Những chức năng đó bạn cũng có thể làm trên .NET SQLClient thuần túy được nhưng rất mất thời gian và rủi ro Bugs cao.

2. Đối tượng sử dụng bộ thư viện này

– Những lập trình viên chuyên về phát triển công cụ quản trị dữ liệu và có kiến thức vững vàng về Database Engine

-Những quản trị viên hệ thống, DBA có kiến thức lập trình tốt và phát triển công cụ phục vụ cho nhu cầu quản trị,

Kết luận: SMO là bộ thư viện do Microsoft cung cấp giúp lập trình viên truy xuất và quản trị Database Engine một cách chuẩn mực và nhiều tiện ích

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s