Professional Documents
Culture Documents
BÀI GIẢNG
Năm 2020
1
2
MỤC LỤC
3
4.2. Cấu trúc tìm kiếm theo Full-text Search .................................................... 49
4.2.1 Thành phần của FTS............................................................................. 50
4.2.2 Cơ chế hoạt động của FTS ................................................................... 51
4.3 Cấu hình Full-text Catalog (FTC) .............................................................. 52
4.3.1 Cách tạo FullTextCatalog và tạo FullTextIndex .................................. 53
4.3.2 Xóa FullText Catalog và FullTextIndex .............................................. 56
4.4 Sử dụng hàm trong câu truy vấn ................................................................. 57
4.4.1 Hàm CONTAINS ................................................................................. 57
4.4.2 Hàm FREETEXT ................................................................................. 61
4.4.3 Hàm CONTAINSTABLE .................................................................... 62
4.4.4 Hàm FREETEXTTABLE .................................................................... 63
CHƯƠNG 5. DỊCH VỤ REPORT TRONG SQL SERVER ............................... 66
5.1 Giới thiệu Report Service ........................................................................... 66
5.2 Các thành phần của Report Service ............................................................ 67
5.2.1 Chức năng chính ................................................................................... 67
5.2.2. Thành phần chính ................................................................................ 69
5.3 Tạo Report trong SQL Server ..................................................................... 70
5.3.1 Tạo Report bằng MS ............................................................................ 70
5.3.2 Thêm mới Report ................................................................................. 80
5.3.3 Khai báo biểu thức ............................................................................... 82
5.3.4 Định dạng số ......................................................................................... 83
5.3.5 Sử dụng hàm ......................................................................................... 84
5.3.6 Tham số trong Report ........................................................................... 87
5.3.7 Xuất dữ liệu ra tập tin ........................................................................... 90
5.3.8 Chạy chương trình ở chế độ Debug ..................................................... 91
5.3.9 Triển khai Report.................................................................................. 92
5.4 Cấu hình Report server ............................................................................... 94
CHƯƠNG 6. CHỨC NĂNG QUẢN TRỊ SQL SERVER .................................. 99
6.1 Backup và Restore cơ sở dữ liệu ................................................................ 99
6.1.1 Backup cơ sở dữ liệu .......................................................................... 100
6.1.2 Restore cơ sở dữ liệu .......................................................................... 104
4
6.2 Attach và Detach cơ sở dữ liệu ................................................................. 108
6.2.1 Attach cơ sở dữ liệu............................................................................ 108
6.2.2 Detach cơ sở dữ liệu ........................................................................... 110
6.3 Copy cơ sở dữ liệu .................................................................................... 111
6.4 Import và Export cơ sở dữ liệu ................................................................. 112
6.5 Chức năng tự động .................................................................................... 118
6.6 Cấu hình IP và Port ................................................................................... 123
5
CHƯƠNG 1. CÀI ĐẶT CẤU HÌNH VÀ LÀM VIỆC VỚI
MANAGEMENT STUDIO
1.1. Cấu hình SQL Server để kết nối từ xa qua Internet
Hệ quản trị cơ sở dữ liệu Microsoft SQL Server của Microsoft được đánh giá
là một trong những hệ quản trị cơ sở dữ liệu tốt và mạnh nhất hiện nay. Nếu chúng
ta là một nhà phát triển ứng dụng cũng như phát triển website trên môi trường
Windows thì không thể không biết đến SQL Server.
Khi phát triển các ứng dụng dạng Desktop thì chúng ta thường không quan
tâm và thậm chí có thể không cần biết đến tính năng hỗ trợ kết nối từ xa của SQL
Server. Nhưng khi phát triển các ứng dụng Web, hoặc các ứng dụng desktop đòi
hỏi dữ liệu tập trung tức thì để phục vụ cho việc ra báo cáo mà chương trình thì lại
cách xa nhau về mặt địa lý, thì chúng ta sẽ cần đến tính năng kết nối từ xa của SQL
Server. Tính năng này có trên tất cả các phiên bản SQL Server.
Trong tài liệu này, chúng tôi thực hiện hướng dẫn cài đặt và cấu hình trên
phiên bản SQL Server 2014, các phiên bản khác việc thực hiện hoàn toàn tương
tự.
Sau khi hoàn thành hướng dẫn này:
Chúng ta có thể cài đặt SQL Server
Chúng ta có kết nối vào SQL Server cài trên máy tính của mình từ bất kỳ máy
tính nào có nối mạng Internet từ bất cứ đâu.
Các bước thực hiện:
1/ Cài đặt SQL Server
2/ Cấu hình SQL Server để mở kết nối từ xa.
3/ Tạo user để thực hiện kết nối từ xa
4/ Cấu hình Firewall trên Server cho phép nhận kết nối đến qua cổng kết nối
của SQL Server
5/ Cấu hình Router cho phép kết nối đến thông qua cổng của kết nối SQL
Server
6
1.1.1. Cài đặt SQL Server
Microsoft SQL Server hiện đang nhiều loại phiên bản khác nhau như:
Enterprise, Standard, Developer, Workgroup, Express. Tùy vào mục đích và nhu
cầu của người sử dụng mà lựa chọn ấn bản thích hợp. Trong khuôn khổ bài viết
này, chúng tôi khuyến khích và sẽ hướng dẫn cài đặt Microsoft SQL Server 2014
Express, một phiên bản miễn phí của Microsoft và không giới hạn số người sử
dụng.Yêu cầu về phần cứng và hệ điều hành sử dụng
– Bộ xử lý: Trên nền tảng 32-bit, SQL Server 2014 yêu cầu bộ xử lý Pentium
III hoặc tốc độ nhanh hơn tốc độ 1.0 Ghz hoặc cao hơn. Trên nền tảng 64-bit, SQL
Server 2014 yêu cầu Intel Xeon, AMD Opteron hoặc Athlon 64 với tốc độ tối thiểu
là 2,0 Ghz.
– Bộ nhớ vật lý (RAM): Tối thiểu 512 MB RAM cho Express Edition, nhưng
tối thiểu cho tất cả các phiên bản khác là 1 GB RAM (tối thiểu là 2 GB nếu Dịch
vụ Chất lượng Chất lượng sẽ được cài đặt). Khuyến nghị số lượng RAM cho
Express Edition là 1 GB RAM, nhưng số lượng RAM đề nghị cho tất cả các phiên
bản khác là 4 GB RAM.
Bộ cài đặt:
1. Để cài đặt SQL Server 2014 Express, máy tính phải có bộ Windows
Installer 3.1 trở lên, download về tại địa chỉ:
http://go.microsoft.com/fwlink/?LinkId=46459
2. Microsoft.NET Framework 3.5
Hệ điều hành 32bit: https://www.microsoft.com/en-
us/download/confirmation.aspx?id=21.
Hệ điều hành 64bit: http://go.microsoft.com/fwlink/?LinkId=55734
3. Chúng ta phải có file cài đặt SQL Server 2014 Express, chúng ta có thể
download miễn phí từ Website của Microsoft tại địa chỉ:
https://www.microsoft.com/en-us/download/details.aspx?id=42299
7
Hình 1.1. Download SQL Server 2014 Express
Khi nhấn vào Download sẽ có nhiều file lựa chọn. Trong tài liệu này, chúng
tôi sẽ hướng cài đặt gói đầy đủ nhất (bao gồm Microsoft SQL Server, SQL
Management Studio và một vài công cụ nâng cao khác).
• SQLEXPRADV_x86_ENU.exe
• SQLEXPRADV_x64_ENU.exe
Chúng ta sẽ tải một trong hai file trên tùy thuộc vào hệ điều hành của máy
tính là 32 bit hay 64 bit.
Hình 1.2. Tùy chọn file download tùy theo hệ điều hành
Sau khi download về, hãy lưu vào một thư mục nào đó để bắt đầu tiến hành
cài đặt.
Sau khi tải về máy tính cá nhân xong, chúng ta tiến hành chạy file cài đặt.
Lựa chọn đường dẫn lưu trữ file cài giải nén sau đó chọn Ok.
8
Hình 1.3. Chọn đường dẫn lưu file sau khi giải nén
Thực hiện giải nén
9
Chấp nhận điều khoản sử dụng và cài đặt từ phía nhà cung cấp.
10
Hình 1.7. Thiết lập cài đặt
Chờ đợi
11
Khi cài đặt và khởi tạo môi trường quản lý dữ liệu với Microsoft SQL Server
của chúng ta là tận dụng hết tất cả các tính năng của Microsoft SQL Server 2014
Express nên chúng ta chọn cài đặt hết tất cả các tính năng.
12
Hình 1.10. Hộp thoại Feature Rules
Ví dụ như hình bên trên, báo lỗi bị thiếu Microsoft.NET Framework 3.5 Service
Pack 1, chúng ta vào địa chỉ này https://www.microsoft.com/en-
us/download/details.aspx?displaylang=en&id=22 để tải về và chạy file cài đặt.
13
Hình 1.12. Hộp thoại Instance Configuration
Tiếp tục chọn Next.
14
Tại bước này chúng ta có 2 lựa chọn. Nếu chọn Mixed Mode, điều đó có
nghĩa là chúng ta sẽ login vào Microsoft SQL Server có sử dụng Password. Ở đây,
chúng tôi chọn Windowns authentication mode như hình dưới và chọn Next.
15
Hình 1.15. Hộp thoại Reporting Services Configuration
Đến bước này, chúng ta chỉ cần chờ đợi để hoàn tất bước cài đặt cuối cùng.
16
Sau khi cài đặt hoàn tất, chúng ta cần phải khởi động lại máy tính.
Đến đây chúng ta đã cài đặt xong SQL Server 2014 Express và các công cụ
để quản lý database của nó. Từ đây chúng ta có thể bắt đầu sử dụng các tính năng
quản lý của hệ quản trị cơ sở dữ liệu này rồi. Cách thức sử dụng các tính năng phổ
biến cũng như một vài tính năng hay của nó mình sẽ đề cập đến trong các bài sau.
1.1.2. Cấu hình SQL Server để mở kết nối từ xa
Mục đích là kích hoạt tính năng cho phép kết nối từ xa của SQL Server và
thiết lập cổng nghe (Listenning Port) cho SQL Server.
Để thực hiện chúng ta vào Start → All Programs → Microsoft SQL Server
2014 → Configuration Tools → SQL Server Configuration Manager.
Ở menu bên trái, chọn vào mục SQL Server 2014 Services → Bên phải tìm
mục SQL Server (MSSQLSERVER) (chú ý đây là dịch vụ cơ bản của SQL Server,
tên của nó tùy thuộc vào Instant của SQL mà chúng ta đã cài đặt vào máy, trên
máy tính của tôi là MSSQLSERVER, có thể Instant trên máy tính của bạn sẽ khác).
Click phải vào và chọn Properties (xem hình)
17
Hình 1.18. SQL Server Properties- Tab Log On
Quay lại màn hình SQL Server Configuration Manager → ở menu bên trái
tiếp tục click vào mục SQL Server 2014 Network Configuration để mở ra menu
con Protocols for MSSQLSERRVER (tên trên máy tính của bạn có thể khác), chọn
vào mục này → bên phải tìm mục có tên là TCP/IP, click phải vào nó và chọn
Properties (xem hình)
18
Hình 1.19. SQL Server Configuration Manager
Trong cửa sổ mở ra, ở Tab Protocols, mục Enabled chọn vào Yes
19
Tiếp tục click qua Tab IP Address → Sẽ xuất hiện list các IP (IP1, IP2,…)
đây là danh sách các IP hình thành khi máy tính có kết nối vào các mạng LAN
khác nhau
20
1.1.3. Tạo một user để thực hiện kết nối từ xa
21
Hình 1.23. New Login – Select page
1.1.4. Cấu hình Firewall trên Server cho phép nhận kết nối đến qua cổng
kết nối của SQL Server
Mục đích của việc này là để mở cổng Firewall của Windows cho phép nhận
kết nối từ bên ngoài qua cổng share của SQL, mặc định là cổng 1433
Trên Windows Vista, Windows 7 trở lên:
Vào Start → Control Panel → Windows Firewall → Ở menu bên trái chọn
Advanced settings
Menu bên trái, click vào mục Inbound Rules
Tiếp tục ở Menu bên phải, click vào mục New Rule
Trong cửa sổ mới hiện ra, đánh dấu vào mục Port như hình → Nhấn Next
22
Hình 1.24. Rule Type
Tiếp theo nhấn chọn vào mục TCP và Specific local Ports, gõ vào 1433 (số
cổng share của SQL Server đã config trong bước 2) → Nhấn Next
23
Trên màn hình tiếp theo, đánh dấu chọn vào mục Allow the connection →
Next
24
Hình 1.27. Profile
Trong màn hình tiếp theo, gõ tên kết nối và Description tùy ý → Nhấn Finish
25
Hình 1.28. Name
Log Off hoặc Restart lại máy
1.1.5. Cấu hình Router cho phép kết nối đến thông qua cổng của kết nối
SQL Server
Mục đích của việc này:
- Mở cổng của Router trên mạng của chúng ta để cho phép nhận kết nối từ
bên ngoài mạng (từ Internet) qua cổng kết nối của SQL Server (Port 1433).
- Chuyển hướng (Forward) kết nối về đến đúng máy mà chúng ta lựa chọn
làm Server khi Router nhận được yêu cầu qua cổng 1433
Tùy loại Router mà chúng ta đang sử dụng, việc cấu hình có thể khác nhau
đôi chút. Ở đây chúng tôi đang thực hiện config trên một loại Router của Dlink.
Các loại Router khác chúng ta có thể tự tìm hiểu thêm. Cách thiết lập trên các loại
Router cơ bản là giống nhau, chỉ khác nhau về cách bố trí trên menu thôi.
26
Sau đây là các bước đơn giản để kiểm tra việc này và cấu hình để mở cổng
kết nối SQL Server:
Bước 1: Khởi động dịch vụ MS SQL Server nếu chúng ta đang để ở chế độ
“manual” thay vì “automatic”.
Bước 2: Chạy chương trình CMD.exe
27
Hình 1.30. Thực hiện lệnh netstat – an – P TCP
Quan sát trong các thông tin nhận được sau khi thực hiện lệnh trên, nếu không
thấy xuất hiện cổng 1433 (cổng mặc định của MS SQL Server) thì đây là nguyên
nhân. Chúng ta bắt đầu tiến hành các bước tiếp theo để thực hiện cấu hình cần thiết
để mở cổng 1433.
Bước 4: Chạy chương trình quản lý cấu hình của MS SQL Server
Chọn Start → Microsoft SQL Server 2014 → Configuration Tools → SQL
Server Configuration Management.
Bước 5: Kiểm tra thông tin trong phần “SQL Server Network Configuration”
28
Hình 1.31. Kiểm tra thông tin trong phần “SQL Server Network
Configuration”
Thông tin này cho thấy TCP/IP đang bị vô hiệu hóa.
Bước 6: Chọn giao thức TCP/IP để thay đổi cấu hình
29
Hình 1.33. Thay đổi cấu hình TCP/IP
và thêm thông tin về cổng trong tab “IP Address” (chúng ta có thể đổi sang cổng
khác 1433)
30
Bước 7. Tiếp theo là khởi động lại dịch vụ MS SQL Server và quay lại các
bước 1, 2, 3 ở trên để kiểm tra lại kết quả cấu hình.
1.2. Làm việc với SQL Server Management Studio
Phiên bản đầu tiên của Microsoft SQL Server được ra đời lần đầu tiên vào
năm 1989 cho các hệ điều hành chạy 16 bít với SQL Server phiên bản 1.0 và tiếp
tục phát triển cho đến ngày nay. Kể từ version 6.5, SQL Server của Microsoft mới
được thị trường chấp nhận rộng rãi. Sau đó Microsoft đã cải tiến và viết lại một
engine mới cho SQL Server 7.0. Cho đến phiên bản 8.0 thì những cải tiến chủ yếu
là mở rộng các tính năng về web.
31
Hình 1.36. Cửa sổ Connect to Server
Như ở phần trước chúng ta có đề cập, khi cài đặt ở phần chọn quyền login,
chúng ta chọn Mixed Mode tức là cho phép login bằng cả 2 quyền: Windows và
SQL Server. Nếu chúng ta chọn server type như hình, nhập tên server của mình
(thường nó sẽ tự động có) sau đó chọn quyền login (nếu chọn quyền SQL Server
chúng ta sẽ nhập Username và Password), click Connect.
32
Hình 1.38. Windows Authentication
33
1.2.2. Thao tác trên Object Explorer
Đây là nơi lưu trữ database của SQL cũng như của user. Với database của
SQL (System Database), mặc định sẽ có các database sau:
master
model
msdb
Tempdb
Hoặc có thêm các tùy chọn cài đặt:
ReportServer
ReportServerTempDB
AdventureWorks
AdventureWorksDW
Các database này như là những templates mẫu được Microsoft xây dựng sẵn
để làm cơ sở tham khảo cho người dùng. Chúng ta có thể mở từng mục của một
database mẫu bất kì để tiến hành xem cấu trúc chuẩn mà Microsoft đã xây dựng
hoặc khi gặp thắc mắc về các vấn đề trong quá trình tương tác với database chúng
ta có thể vào xem các dạng tương tự của nó để giải quyết vấn đề của mình.
1.2.4. Backup & Restore
- Backup
Click chuột phải trên Database cần backup → Tasks → Backup
Thực hiện theo hướng dẫn wizard
- Restore
34
Click chuột phải trên Database → chọn Restore → chọn tập tin đã backup
cần restore
Thực hiện theo hướng dẫn wizard
- Detach & Attach
Detach: gỡ DB (Tập tin .mdf và .ldf) ra khỏi Management Studio
Attach: đưa tập tin .mdf và .ldf vào Management Studio
35
CHƯƠNG 2. HÀM TRONG SQL SERVER (FUNCTION)
2.1. Giới thiệu
Function (Hàm) là một đối tượng trong cơ sở dữ liệu bao gồm một tập nhiều
câu lệnh được nhóm lại với nhau và được tạo ra với mục đích sử dụng lại. Trong
SQL Server, hàm được lưu trữ và người sử dụng có thể truyền các tham số vào
cũng như trả về các giá trị.
Hàm trong SQL Server bao gồm 2 loại: Hàm có sẵn; Hàm do người dùng
định nghĩa (user-defined).
- Hàm có sẵn: Là các hàm do hệ thống SQL Server cung cấp như: hàm quản
trị hệ thống, hàm ngày tháng, hàm toán học…
- Hàm do người dùng định nghĩa: Là các hàm được định nghĩa bởi người
dùng. Hàm do người dùng định nghĩa là tập các phát biểu T_SQL kết hợp tạo nên
hàm, chúng ta có thể gọi thực thi các hàm này như là một đơn vị độc lập.
36
Select @@DATEFIRST
- Hàm @@ERROR: Hàm này có giá trị trả về 0 thì không có lỗi, ngược lại có giá
trị khác 0 thì lỗi xảy ra. Hàm này chỉ có hiệu lực trên kết nối hiện tại.
- Hàm @@IDENTITY: Hàm này trả về giá trị Identity của bảng có chứa cột
Identity và thường được sử dụng trong các phát biểu Select hoặc Insert.
- Hàm @@MAX_CONNECTIONS: Hàm này trả về giá trị số cho biết có bao
nhiêu User cho phép kết nối vào cơ sở dữ liệu.
37
RETURN @ret
END
Sử dụng hàm fn_DemSoNhanVien
Select dbo.fn_DemSoNhanVien (‘Phong Dao tao’)
38
thân hàm
RETURN value
END
- Cú pháp sửa đổi cấu trúc hàm Table-valued Function:
ALTER FUNCTION tên_hàm ([@<Tên tham số vào> <Kiểu dữ liệu> [ = default
] [ ,...n ] ] )
RETURNS TABLE AS
RETURN
câu_lệnh_select
39
CHƯƠNG 3. KỸ THUẬT SYNONYM TRONG SQL SERVER
3.1. Truy cập dữ liệu từ xa
Cấu hình truy cập từ xa trong SQL Server nhằm mục đích kiểm soát việc
thực hiện quá trình lưu trữ từ các máy chủ cục bộ hoặc từ xa mà SQL Server đang
chạy.
Giá trị mặc định của tùy chọn truy cập từ xa là 1, cho phép chạy các bước
cục bộ từ các máy chủ từ xa. Để ngăn chặn quá trình này chúng ta chỉ cần đặt tùy
chọn thành 0.
Tuy nhiên hạn chế của thiết lập này là tùy chọn truy cập từ xa chỉ áp dụng
cho các máy chủ được thêm bằng cách sử dụng sp_addserver.
Vì vậy bài viết này chúng tôi sẽ mô tả cách định cấu hình truy cập từ xa trong
SQL Server bằng cách:
- Định cấu hình Truy cập từ xa bằng SQL Server Management Studio
- Cấu hình truy cập từ xa máy chủ SQL với Transaction-SQL
Cách 1: Định cấu hình truy cập từ xa bằng SQL Server Management Studio
Đầu tiên chúng ta phải đăng nhập vào SQL Server với chế độ xác thực
Windows hoặc chế độ xác thực SQL Server.
Trong Object Explorer, bấm chuột phải vào máy chủ và
chọn Properties (Thuộc tính).
40
Hình 3.1. Properties of Object Explorer
Nhấp vào Connections.
41
Trong Remote server connections, chúng ta có thể chọn hoặc xóa
hộp Allow remote connections to this server.
Cách 2: Cấu hình truy cập từ xa máy chủ SQL với Transaction-SQL
Kết nối với Công cụ cơ sở dữ liệu SQL Server bằng tài khoản SQL SA hoặc
quyền quản trị viên Windows.
Từ thanh công cụ nhấp vào New Query
Hình 3.3. Cấu hình truy cập từ xa máy chủ SQL với Transaction-SQL
Copy và dán phần sau vào ô truy vấn và nhấp vào Execute. Ví dụ này cho
chúng ta thấy cách sử dụng sp-configure để đặt giá trị của tùy chọn truy cập từ xa
thành 0.
USE ‘ServerName’ ;
GO
EXEC sp_configure ‘remote access’, 0 ;
GO
RECONFIGURE ;
GO
42
3.2. Kỹ thuật Synonym
3.2.1. Synonym là gì?
Kỹ thuật Synonym là bí danh được đặt cho đối tượng cơ sở dữ liệu bao gồm
khai báo tên Server, cơ sở dữ liệu và tên chủ nhân. Ứng dụng trình khách có thể sử
dụng bí danh này khi tham chiếu đến đối tượng CSDL.
43
Giả sử rằng chúng ta cần khai báo Synonym với tên SynonymQLBH trong
tệp CSDL QLBH như hình sau:
44
Chẳng hạn, trong hình trên chúng ta khai báo Synonym cho đối tượng Table
có tên HANG, sau đó chúng ta khai báo đọc dữ liệu trong đối tượng Table này
thông qua Synonym có tên SynonymQLBH như ví dụ sau.
Ví dụ: Khai báo Synonym cho đối tượng Table
Select *
From SynonymQLBH
Khi thực thi phát biểu trong ví dụ trên, chúng ta có thể thấy danh sách mẩu
tin có giá trị trả về là dữ liệu của bảng HANG trong CSDL QLBH
45
3.2.2.2. Tạo Synonym bằng phát biểu SQL
Chúng ta có thể tạo Synonym bằng phát biểu CREATE SYNONYM thay vì
dùng Enterprise Management bằng cách sử dụng cú pháp sau:
CREATE SYNONYM [schema_name_1.] synonym_name FOR <object>
<object>::=
{
[server_name, [database_name],
[schema_name_2]. | database_name.
[schema_name_2]. | schema_name_2.] object_name
}
Trong đó, tham số synonym_name là tên Synonym, server_name ứng với tên
Server, database_name là tên CSDL và object_name là tên đối tượng CSDL cần
truy cập.
Ví dụ: Khai báo Synonym bằng phát biểu CREATE
CREATE SYNONYM SQLBH
FOR HANG
Sau khi tạo thành công chúng ta có thể tìm thấy Synonym có tên SYNONYM
SQLBH trong danh sách Synonym như hình sau:
46
Chúng ta có thể gọi Synonym bằng cách khai báo như sau:
SELECT * FROM SQLBH
Khi thực thi phát biểu trên, chúng ta có thể tìm thấy danh sách kết quả mẩu tin trả
về như sau:
47
CHƯƠNG 4. DỊCH VỤ FULL-TEXT SEARCH TRONG SQL
SERVER
4.1 Giới thiệu Full-text Search (FTS)
Full-Text Search cho phép tạo chỉ mục một cách uyển chuyển và nhanh chóng
dễ truy vấn với từ khóa trên chuỗi dữ liệu trong cơ sở dữ liệu SQL Server. Trái với
phép toán Like mà chúng ta thường dùng trong mệnh đề Where, nó chỉ làm việc
trên kiểu dữ liệu ký tự, trong khi đó truy vấn Full-Text Search thực hiện theo hình
thức tìm kiếm trên từ hay cụm từ dựa trên quy luật liên quan đến ngôn ngữ.
Sau đây chúng ta sẽ tìm hiểu kiến trúc tìm kiếm theo chức năng Full-Text
Search, các cấu hình cơ sở dữ liệu cho Full-Text Search, các hàm sử dụng khi dùng
câu truy vấn tìm kiếm Full-Text.
Nếu tìm từ khóa trong bảng dữ liệu, chúng ta thường sử dụng phép toán Like
với ký tự % để chỉ định không phân biệt chuỗi sau và trước ký tự đang tìm.
Chú ý: Có thể tìm thấy cách cấu hình cơ sở dữ liệu rồi khai báo và cài đặt dịch vụ
tìm kiếm trong tập tin Full-Text Search.sql.
Chẳng hạn, khai báo để tìm kiếm tên nhà cung cấp trong bảng Nhà cung cấp
với phép toán like như sau:
Ví dụ: Khai báo phép toán Like
Select * from nhacungcap
Where tenNCC like ‘%MA%’
Go
Khi thực thi phát biểu SELECT trong ví dụ trên, có thể tìm thấy kết quả như
hình sau:
Hình 4.1. Danh sách nhà cung cấp với tên có chuỗi Ma
Trong trường hợp muốn tìm kiếm trên nhiều cột thì có thể sử dụng toán tử
AND hay OR. Chẳng hạn, khai báo tìm kiếm trên một cột dữ liệu với hai điều kiện
Like như ví dụ sau:
48
Ví dụ: Khai báo phép toán tìm kiếm trên một cột dữ liệu với hai điều kiện
SELECT *FROM Nhacungcap
Where tenNCC LIKE ‘%YAMA’
OR tenNCC LIKE ‘%Delle’
Go
Khi thực thi phát biểu SELECT trong ví dụ trên, có thể tìm thấy danh sách
nhà cung cấp trình bày như hình sau:
49
(MSFTESQL). Dịch vụ MSFTESQL có hai vai trò chính là hỗ trợ chỉ mục theo
tên (Named Indexing Support) và truy vấn dữ liệu (Query Support).
Trong đó, vai trò thứ nhất là cài đặt cơ sở dữ liệu Full-Text và khai báo chỉ
mục cho cơ sở dữ liệu. Vai trò thứ hai là xử lý câu truy vấn và quan tâm đến tiêu
chí tìm kiếm có phù hợp với dữ liệu đã khai báo trong cột đã chỉ định chỉ mục.
4.2.1 Thành phần của FTS
Hai thành phần chính sử dụng trong FTS là: The Microsoft Full –Text Engine
for SQL (MSFTESQL) và The Microsoft Full –Text Engine Filer Daemon for SQL
(MSFTEFD).
4.2.1.1 MSFTESQL
Đây là thành phần được xây dựng dựa trên kỹ thuật Microsoft Search
(MSSearch) được tích hợp rất hoàn thiện trong Microsoft SQL Server Database
Engine.
Dịch vụ MSFTESQL được cài đặt mặc định nhưng nó chỉ vận hành khi sử
dụng FTS.
MSFTESQL chạy như một dịch vụ trong hệ điều hành dưới tên tham chiếu
là MSFTESQL, chúng ta có thể tìm thấy dịch vụ này trong cơ sở dữ liệu Services.
4.2.1.2 MSFTEFD
MSFTEFD bao gồm ba chức năng sau:
• Bộ lọc dữ liệu.
• Bộ kiểm soát nghi thức truy vấn (Protocol handler).
• Bộ ngắt từ (Word breaker).
Sau đây là cơ chế hoạt động của FTS được minh họa như sau:
50
Hình 4.4. Cơ chế hoạt động của FTS
51
4.3 Cấu hình Full-text Catalog (FTC)
Sau khi chúng ta đã tìm hiểu sơ lược cách vận hành của dịch vụ Full-Text
Search, để bắt đầu áp dụng cho kỹ thuật này trong cơ sở dữ liệu, cần chỉ định tùy
chọn “Use full-text indexing” cho phép cơ sở dữ liệu sử dụng dịch vụ FTS khi tạo
cơ sở dữ liệu như hình sau:
52
Trong đó, Action ứng với hai giá trị enable hay disable. Chẳng hạn khai báo
để cho phép sử dụng dịch vụ FTS cho CSDL có tên “QuanLySinhVien” như ví dụ
sau:
Ví dụ: Khai báo thủ tục nội tại sp_fullText_Database
Use QuanLySinhVien;
Go
Exec Sp_fullText_database ‘Enable’;
Go
Trong trường hợp loại bỏ dịch vụ này khỏi CSDL hiện hành thì khai báo như
ví dụ sau:
Ví dụ: Khai báo thủ tục nội tại sp_fullText_Database
Use QuanLySinhVien;
Go
Go
53
Hình 4.7. Chọn tùy chọn Sensitive và Insensitive
Ngoài cách sử dụng MS như trên, có thể tạo CSDL fulltextsearch bẳng cách
sử dụng phát biểu CREATE FULLTEXT CATALOG với cú pháp như sau:
CREATE FULLTEXT CATALOG catalog_name
[ ON FILEGROUP filegroup ]
[ INPATH ‘rootpath ’]
[ WITH <catalog_option>]
[ AS DEFAULT ]
[ AUTHORIZATION owner_name]
Chẳng hạn, tạo CSDL FTS có tên QuanLySinhVien thì khai báo như sau:
CREATE FULLTEXT CATALOG QuanLySinhVien
AS DEFAULT
GO
Chú ý:
Khi tạo mới CSDL cho dịch vụ FTS có thể tìm thấy ngăn general. Tuy nhiên,
sau khi tạo thành công, nếu kích hoạt trở lại có thể tìm thấy ba ngăn general, table/
views, population schedule.
54
Trong đó ngăn General trình bày thông tin của CSDL.
Nếu muốn sử dụng hàm của FTS trong khi tìm kiếm cần khai báo FTI (full
text indexing) cho các cột dữ liệu trong bảng. Để làm điều này có thể dùng 2 cách,
cách thứ nhất là chọn vào ngăn table /views và chọn tên table cho phép tìm kiếm
bằng hàm của FTS.
Sau khi chọn table hay view vào danh sách bên phải, tiếp tục chỉ định cột dữ
liệu. Ví dụ, chọn bảng dữ liệu là SinhVien rồi tiếp tục chọn cột diachi và lop
[LANGUAGE languare_term][…n])]
[ ON fullText_catalog_Name]
55
Chẳng hạn, có thể tạo FTI cho cột makhoa của bảng khoa, bằng cách sử dụng
phát biểu CREATE FULLTEXT INDEX như ví dụ:
Ví dụ: khai báo FTI cho bảng khoa
CREATE FULLTEXT INDEX ON khoa
( makhoa ) KEY INDEX pk_makhoa
ON QuanLySinhVienFullTextSearch
GO
Ví dụ: thêm cột 'NgaySinh' chỉ mục
EXEC SinhVien ' NgaySinh ', 'COLUMN1', 'thêm'
EXEC SinhVien ' NgaySinh ', 'COLUMN2', 'thêm'
Ví dụ: start full reindexing
EXEC sp_fulltext_catalog 'YourCatalogName', 'start_full'
Ví dụ: theo dõi toàn văn và Populating
exec sp_fulltext_table YourTableName, 'start_change_tracking'
exec sp_fulltext_table YourTableName, 'start_background_updateindex'
4.3.2 Xóa FullText Catalog và FullTextIndex
• Xóa FullTextCatolog
Loại bỏ một danh mục đầy đủ văn bản từ cơ sở dữ liệu. Chúng ta phải xóa tất
cả các chỉ mục toàn văn kết hợp với danh mục trước khi xóa catalog.
DROP FULLTEXT CATALOG catalog_name DROP toàn văn Catalog
catalog_name
Các đối số:
catalog_name: Là tên của catalog để được gỡ bỏ. Nếu catalog_name không tồn tại,
Microsoft SQL Server trả về một lỗi và không thực hiện các hoạt động thả. Các
filegroup của danh mục toàn văn không phải được đánh dấu OFFLINE hoặc chỉ
đọc cho lệnh thành công.
Người dùng phải có sự cho phép xóa trên danh mục văn bản đầy đủ hoặc là
một thành viên của database.
• Xóa FullTextIndex
Cấu trúc: DROP FULLTEXT INDEX ON table_name
56
Table_name: Là tên của bảng hoặc xem được lập chỉ mục có chứa các chỉ mục
toàn văn phải được loại bỏ.
Người lập không cần phải xóa tất cả các cột từ chỉ mục toàn văn trước khi sử
dụng lệnh DROP INDEX toàn văn.
Người sử dụng phải có sự cho phép ALTER trên bảng hoặc xem lập chỉ mục,
hoặc là một thành viên có vai trò máy chủ quản trị hệ thống cố định, hoặc database
Ví dụ
xóa FullTextIndex trên bảng SinhVien
USE QuanLySinhVien;
GO
DROP FULLTEXTINDEX ON SinhVien;
GO
4.4 Sử dụng hàm trong câu truy vấn
4.4.1 Hàm CONTAINS
Hàm CONTAINS Trả về một bảng số không, một, hoặc nhiều hơn cho những
hàng cột có chứa các loại ký tự dựa trên dữ liệu cho chính xác hoặc mờ (ít chính
xác) phù hợp với những từ đơn và cụm từ, gần gũi với các từ trong một khoảng
cách nhất định với nhau, hoặc phù hợp với trọng. CONTAINSTABLE chỉ có thể
được tham chiếu trong mệnh đề FROM của câu lệnh SELECT như thể nó là một
tên bảng thông thường.
Truy vấn sử dụng CONTAINSTABLE định dạng chứa toàn văn các truy vấn
có trả lại giá trị liên quan xếp hạng (RANK) và khóa toàn văn (KEY) cho mỗi
hàng. Chức năng CONTAINSTABLE sử dụng điều kiện tìm kiếm tương tự như
có chứa vị.
Hàm contains dùng để tìm kiếm mẩu tin trong bảng với cột có kiểu dữ liệu là
chuỗi chứa chính xác hay gần khớp với từ hay nhóm từ do người dùng truyền vào
có cú pháp như sau:
Contains
(
{column_name |(column_list)|*}
’<contains_search_condition> ‘
57
[,language language_term]
)
Trong đó:
58
ISABOUT
({{<simple_term>
|< prefix_term >
|<generation_term>
}
[WEIGHT( weight_ value)]
}
[,…n]
)
<and>::=
{and | &}
<and not>::=
{and not | & !}
<or>::=
{or||}
Chẳng hạn, có thể liệt kê danh sách sảm phẩm trong bảng properties với cột
ProductNameInVietNamese có chuỗi là “túi xách”
Ví dụ: khai báo sử dụng hàm contains
Select *from products where
Contains (productNameInVietNamese, ‘ “túi xách” ’);
Go
Khi thực thi phát biểu câu lệnh SELECT trong ví dụ trên, có thể tìm thấy
danh sách sản phẩm trình bày như hình sau:
59
(ten, ‘ “túi sách dùng cho * ” ’), go
Khi thực thi phát biểu SELECT trong ví dụ trên, có thể tìm thấy danh sách
sản phẩm như hình sau:
Chúng ta tìm hiểu một số tùy chọn NEAR | ~ và phép toán { AND | &} |
{AND NOT |&!}|{OR||} sử dụng trong mệnh đề where.
4.4.1.1 Tùy chọn NEAR
Tùy chọn này chỉ ra từ hay nhóm từ gần phía bên trái, ví dụ khai báo “wordA
NEAR wordB NEAR wordC ”. từ hay nhóm từ wordA có thể đứng gần với từ hay
nhóm từ wordB, mà từ hay nhóm từ WordB sẽ đứng gần từ hay nhóm từ wordC.
Ví dụ: Khai báo sử dụng tùy chọn NEAR
Select * from SinhVien where
Contains (HoTen, ‘ “Phan” near “Hiệp” ’);
Kết quả:
60
4.4.1.2 Phép toán
Ta có thể sử dụng phép toán AND hoặc OR trong hàm CONTAINS
Ví dụ: khai báo phép toán OR
Select * From SinhVien where
Contains (HoTen, ‘ “Phan” or “Thu”’);
Kết quả:
61
Đây là kiểu tìm kiếm theo kiểu fuzzy (tìm kiếm mờ), ví dụ khi tìm kiếm với
từ khóa “Phan” tất cả dữ liệu có dạng “han,Tha,…” sẽ được tìm thấy.
Khi truyền vào một tập các từ như “Phan Thị Hiệp”, tất cả dữ liệu có từ
“Phan” hoặc “Thị”,… sẽ được tìm thấy
Full-Text có ưu điểm không phân biệt tiếng Việt có dấu hay không dấu
Ví dụ: Tìm kiếm sinh viên có tên ‘Trang’ trong cột HoTen của bảng
SinhVien
Select * from SinhVien where
Freetext (Hoten, ‘ “Trang” ’);
Kết quả:
62
✓ Table: Là tên của một bảng mà đã được lập chỉ mục toàn văn có thể, khi truy
vấn, chỉ có một văn bản đầy đủ bảng chỉ mục cơ sở có thể có liên quan.
✓ column_name: Là tên của một hoặc nhiều cột được lập chỉ mục toàn văn để tìm
kiếm
✓ LANGUAGE language_term Là ngôn ngữ có nguồn tài nguyên sẽ được sử dụng
để vi phạm từ, xuất phát. Tham số này là tùy chọn và có thể được quy định như
một số nguyên, chuỗi.
4.4.4 Hàm FREETEXTTABLE
Hàm này họat động giống như vị từ FREETEXT nhưng có cấu trúc khác
nhau.
Cú pháp:
SELECT * FROM FREETEXTTABLE (<bảng cần tìm>,<cột cần tìm >,<chuỗi
>)
Kết quả trả ra gồm 1 bảng có 2 cột KEY và RANK.
Trongđó
✓ KEY là cột khóa chính của bảng cần tìm
✓ RANK là cột chứa độ phù hợp giữa dòng dữ liệu có khóa là KEYđó so với
yêu cầu tìm kiếm.
Cột RANK có giá trị từ 0 → 1000. Giá trị RANK càng cao thì dòng đó càng
phù hợp với điều kiện tìm kiếm.
Ví dụ:
Select * from FREETEXTTABLE (SinhVien, HoTen, ‘ “Trang” ’)
Kết quả trả về như sau:
KEY RANK
SV02 12
SV03 14
63
USE pubs
-- Create and populate a table.
IF EXISTS (SELECT TABLE_NAME FROM
INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'FulltextTest')
DROP TABLE FulltextTest
GO
CREATE TABLE FulltextTest
( article_id int IDENTITY(100,1)
CONSTRAINT PK_title_id PRIMARY KEY,
article_title nvarchar(200)
)
GO
INSERT FulltextTest (article_title) VALUES (N'Steven Buchanan has always
enjoyed ice skating.')
INSERT FulltextTest (article_title) VALUES (N'Elvis Stoiko: The best male
figure skater')
INSERT FulltextTest (article_title) VALUES (N'Steven Buchanan On Ice:
Skating Reaches Tops in Public Opinion Poll')
INSERT FulltextTest (article_title) VALUES (N'Last night, Steven Buchanan
skated on the ice!! Skating fans cheer!')
INSERT FulltextTest (article_title) VALUES (N'Ice-skating brings out the best
in Steven. Buchanan exults in first victory...')
GO
-- Enable full-text searching in the database.
EXEC sp_fulltext_database 'enable'
GO
-- Create a new full-text catalog.
EXEC sp_fulltext_catalog 'StevenBCatalog',
'create'
GO
-- Register the new table and column within it for full-text querying,
-- then activate the table.
EXEC sp_fulltext_table 'FulltextTest',
'create',
'StevenBCatalog',
'PK_title_id'
EXEC sp_fulltext_column 'FulltextTest',
'article_title',
'add'
64
EXEC sp_fulltext_table 'FulltextTest',
'activate'
GO
-- Start full population of the full-text catalog. Note that it is
-- asynchronous, so delay must be built in if populating a
-- large index.
EXEC sp_fulltext_catalog 'StevenBCatalog',
'start_full'
WHILE (SELECT fulltextcatalogproperty('StevenBCatalog',
'populatestatus')) <> 0
BEGIN
WAITFOR DELAY '00:00:02' -- Check
every 2 seconds to see if full-text index population is complete.
CONTINUE
END
GO
-- Execute a full-text query against the new table.
SELECT article_title
FROM FulltextTest
WHERE CONTAINS(article_title, ' "Steven Buchanan" AND "ice skating" ')
Here is the result set:
article_title
------------------------------------------------------------------------
Steven Buchanan has always enjoyed ice skating.
Last night, Steven Buchanan skated on the ice!! Skating fans cheer!
Steven Buchanan On Ice: Skating Reaches Tops in Public Opinion Poll
Ice-skating brings out the best in Steven. Buchanan exults in first victory...
(4 row(s) affected)
65
CHƯƠNG 5. DỊCH VỤ REPORT TRONG SQL SERVER
5.1 Giới thiệu Report Service
SQL Server Reporting Service (SSRS) cho phép xây dựng các loại báo cáo
dưới dạng bảng tham chiếu chéo và dạng biểu đồ từ các thao tác phân tích dữ liệu
một cách thuận tiện và chính xác. Các báo cáo trực quan về dữ liệu là một công cụ
rất hữu ích cho các nhà quản lý trong việc ra quyết định và điều hành doanh nghiệp.
SSRS sử dụng ngôn ngữ định nghĩa báo cáo (RDL – Report Definition
Language) và ngôn ngữ đánh dấu mở rộng XML. Công cụ soạn thảo báo cáo được
tích hợp trên công cụ BIDS (công cụ xây dựng mô hình khai phá dữ liệu Business
Intelligence Development Studio) dựa trên bộ Visual studio. Người dùng có thể
soạn thảo các báo cáo một cách dễ dàng trên nền tảng đồ họa, sau khi báo cáo được
tạo có thể trích xuất ra nhiều định dạng khác nhau như: Excel, PDF, CSV, XML,
TIFF hay dưới dạng văn bản web.
SQL Server Reporting Services là một ứng dụng hệ thống, giúp tạo các báo
cáo dựa trên nền tảng Server của Microsoft. Nó là một trong các dịch vụ của
Microsoft, bao gồm SQL Server Analysis Services (SSAS) và SQL Server
integration Services (SSIS). Trong khi SSAS cho phép người dùng xây dựng các
cơ sở dữ liệu đặc biệt để phân tích nhanh lượng dữ liệu lớn và SSIS cho phép người
dùng tích hợp dữ liệu từ nhiều nguồn bên ngoài Microsoft SQL Server, SSRS lại
cho phép người dùng tạo ra các báo cáo từ cơ sở dữ liệu Microsoft SQL Server
một cách dễ dàng và nhanh chóng.
SSRS dựa trên nền tảng server, cho phép mở rộng khả năng mở rộng để
truyền dẫn và trình bày thông tin. Phạm vi của nó mở rộng từ các báo cáo truyền
thống sang nền tảng Web. SSRS cũng có thể được cấu hình để gửi báo cáo tới hộp
thư người dùng, chia sẻ file,… SSRS có khả năng tạo báo cáo ở các định dạng
khác nhau, ví dụ như ngôn ngữ đánh dấu Siêu văn bản (HTML) và các định dạng
ứng dụng cho máy tính để bàn (Microsoft Excel và CSV). Do đó, nó cho phép
người dùng thao tác với dữ liệu của họ với bất kỳ định dạng nào được yêu cầu.
Ngoài ra, SharePoint có thể được dùng như là giao diện người dùng cho SSRS, cho
phép báo cáo có thể hiển thị trực tiếp qua các Cổng thông tin điện tử của doanh
nghiệp.
SSRS là một trong các thành phần của nền tảng Microsoft Business
Intelligence (BI). Kết hợp các thành phần này cung cấp một nền tảng tuỵệt vời cho
66
việc phân tích dữ liệu doanh nghiệp. Với 3 giai đoạn của quá trình tạo Report,
chúng ta sẽ tìm hiểu chi tiết về chúng qua từng ví dụ trình bày trong phần kế tiếp.
5.2 Các thành phần của Report Service
5.2.1 Chức năng chính
Trước khi tìm hiểu các thành phần của Report, chúng ta tìm hiểu một số chức
năng chính sử dụng khi làm việc với Report Service: Report Definition, Published
Report, Rendered Report, Parameterized Report, Linked Report, Report Snapshot,
Report Model và Report Server Folder Namspace.
1. Report Definition
Report Definition là bản thiết kế chi tiết tạo ra bởi tiện ích Report Designer
hay Report Builder. Chúng chứa các thông tin về câu truy vấn, hình dạng và các
phần tử khác của Report khi nó thực thi. Đặc tả của Report sẽ được lưu trữ theo
định dạng XML và lưu dưới tập tin có tên mở rộng là .rdl (Report Definition
Language).
2. Published Report
Sau khi Report đã được tạo ra, chúng sẽ triển khai trên Report Server bằng
cách sử dụng tiện ích Report Designer, Report Builder hay tải trực tiếp thống qua
Report Manager hay MS.
3. Rendered Report
Sau khi triển khai Report trên Report Server, nếu Report được triệu gọi thì
dữ liệu sẽ được truy vấn và trình bày theo định dạng đã thiết kế, quá trình này được
gọi là render.
4. Parameterized Report
Cũng giống như khái niệm tham số trong phát biểu SQL hay thủ tục nội tại,
Report cũng có thể chấp nhận tham số truyền từ bên ngoài, bằng cách này chúng
ta có thể yêu cầu Report trình bày dữ liệu theo tiêu chí ràng buộc nào đó.
5. Linked Report
Với những Report đã tồn tại, ta có thể liên kết đến chúng và thay đổi thuộc
tính, kết nối cơ sở dữ liệu, định dạng ngay cả tham số.
6. Report Snapshot
Đây là tên gọi mang tính tham khảo, khi chúng ta thiết kế Report thì dữ liệu
mang tính minh họa sẽ hiển thị trên Report, những thông tin này sẽ biến mất khi
67
dữ liệu được truy vấn từ cơ sở dữ liệu.
7. Report Model
Chức năng này dùng để tạo Report dạng đặc biệt bằng cách sử dụng tiện ích
Report Builder. Một khi Report được tạo ra bằng cách này, người sử dụng có thể
tạo Report dựa vào loại Report này mà không cần quan tâm đến câu truy vấn, kết
nối cơ sở dữ liệu, cơ sở dữ liệu.
8. Report Server Folder Namspace
Report Server Folder Namspace cho phép ta nhận dạng Report, thư mục, mô
hình, kết nối cơ sở dữ liệu, bảo mật và một số thông tin khác. Ví dụ, cấu trúc của
Report Server trình bày như hình 5.1.
9.
Hình 5.1. Report Server
Chú ý: Để đăng ký Report Server như hình trên, ta cần nhấn vào nút Connect
rồi chọn tùy chọn như hình 5.2.
Chúng ta sẽ tìm hiểu chi tiết các chức năng vừa giới thiệu ở trên trong phần
kế tiếp.
68
10.
Hình 5.2. Đăng ký Report Server
5.2.2. Thành phần chính
Công cụ của Report Service bao gồm các thành phần chính như: Report
Server, Report Manager, Report Designer, Report Builder, Model Designer,
Report Services Configuration Tool và Report Server Command Prompt Utilities.
Ngoài ra, Report Service còn các Interface như: Windows Management
Instrumentation (WMI), Simple Object Access Protocol (SOAP) và URL.
1. Report Server
Report Server là thành phần chính của Report Service, chúng là tập các chức
năng chính cho phép xử lý và kết xuất Report theo yêu cầu của người sử dụng.
2. Report Manager
Report Manager là công cụ cho phép quản lý và triệu gọi Report trên trình
duyệt thông qua nghi thức HTTP. Report Manager cũng cho phép chúng ta trình
bày dữ liệu trên Report rồi phân trang và điều hướng.
3. Report Designer
Report Designer là công cụ cho phép chúng ta thiết kế Report trong Visual
Studio 2005 bằng chức năng Report Wizard thông qua dịch vụ Business Intelligent
Development Studio với các hình dạng như bảng, ma trận hay tùy ý.
4. Report Builder
Report Builder là công cụ đặc biệt cho phép người sử dụng đầu cuối có thể
69
thiết kế nhanh Report mà không cần biết nhiều về cấu trúc dữ liệu.
5. Model Designer
Model Designer là công cụ dùng để tạo Report Model trong Report Builder;
Report Model kết nối với Data Source View trong Analysis Server hay cơ sở dữ
liệu SQL Server 2005 để trích lọc dữ liệu dạng siêu dữ liệu.
6. Report Services Configuration Tool
Công cụ này dùng để cấu hình ứng dụng Website cho Report Manager,
Report Server, tạo cơ sở dữ liệu cho Report Server, quản lý khóa mã hóa và khởi
tạo Report Server.
7. Report Server Command Prompt Utilities
SQL Server cung cấp 3 tiện ích command-line, tiện ích rsconfig dùng để cấu
hình cơ sở dữ liệu Report Server, rskeymgmt dùng để tạo khóa mã hóa, rs dùng để
thực thi kịch bản Visual Basic .NET trong Report Server.
5.3 Tạo Report trong SQL Server
5.3.1 Tạo Report bằng MS
5.3.1.1 Tạo Report bằng Report Wizard
Với các thành phần và chức năng vừa trình bày ở trên, chúng ta sẽ tìm hiểu
cách làm việc với Report Service qua từng bước.
Chú ý: Chúng ta có hai cách tạo Report, cách thứ nhất là sử dụng MS và cách
thứ hai là dùng Report Builder. Tuy nhiên, trong phần này, chúng ta tập trung tìm
hiểu cách tạo Report bằng Report Wizard và ReportDesigner trong MS. Chúng ta
có thể tìm hiểu cách tạo Report bằng Report Builder trong phần quản lý Report
bằng Report Manager Virtual Directory.
Để sử dụng được SSRS để xây dựng các báo cáo thì chúng ta phải cấu hình
các dịch vụ Report Server bằng công cụ Reporting Services Configuration
Manager. Công cụ này có trong bộ Configuration Tools khi chúng ta cài đặt SQL
Server. Giao diện sau khi chọn Reporting Services Configuration Manager như
sau:
70
Hình 5.3. Reporting Services Configuration Connection
Chọn Connect để kết nối, giao diện sau xuất hiện:
71
Hình 5.5. Report Server Database Configuration Wizard
Chọn Next để tạo cơ sở dữ liệu làm báo cáo. Chọn Next để chuyển sang giao
diện sau:
72
được kết quả như hình sau:
73
Hình 5.8. Business Intelligent Development Studio
Chọn vào Reporting Services và chọn Report Server Project, đặt tên thư mục
là Test và nhấn OK, cửa sổ kế tiếp xuất hiện như hình 5.9.
74
cơ sở dữ liệu phù hợp từ danh sách, ví dụ tại đây là Microsoft SQL Server. Nhấn
Edit để điền các chi tiết về giao thức kết nối. Tại cửa sổ Connection Properties, ta
điền tên server, thông tin nhận dạng, và CSDL. Sau đó nhấn Test Connection để
kiểm tra và OK khi hoàn tất.
75
Hình 5.11. Truy vấn dữ liệu
Chọn nút Next, chúng ta có thể định nghĩa phát biểu SQL dạng SELECT để
truy vấn dữ liệu theo các tiêu chí.
Chú ý: cũng có thể sử dụng chức năng Query Builder để chọn bảng dữ liệu
cùng với cột dữ liệu cần lấy ra như hình 5.12.
76
Trên màn hình Select the Report Type, chọn Tabular. Lưu ý rằng định dạng
theo kiểu Tabular sẽ trông giống như một bảng tính thông thường (hoặc bảng cơ
sở dữ liệu), với các cột ở đầu trang, và số dòng phụ thuộc vào lượng dữ liệu của
dataset. Sau đó nhấn Next.
Tiếp đến bước Design the Table, thêm SoHD vào trong mục Group, thêm các
trường còn lại vào mục Details, nhấn Next.
Giữ nguyên lựa chọn Stepped tại bước Choose the Table Layout và Next.
Tiếp theo, chọn kiểu cho bảng báo cáo và tiếp tục Next. Cuối cùng là đặt tên (ví
dụ Report1) và Finish:
77
Hình 5.14. Thẻ Preview
Ngoài ra, Report Server Project cũng được tạo ra, ta có thể tìm thấy trong cửa
sổ Solution Explorer như hình 5.15.
78
Để thiết kế Report, chúng ta có thể sử dụng các thành phần trên cửa sổ công
cụ (Toolbox) như hình 5.16.
79
Hình 5.18. Xóa, dổi tên hay thêm cột dữ liệu
Hình 5.19. Tạo báo cáo bằng chức năng Report Wizard
Sau đó, ta có thể tự thiết kế các TextBox tương ứng với các Field trong bảng
dữ liệu.
5.3.2 Thêm mới Report
Để thêm Report vào dự án, chúng ta có thể chọn vào ngăn Report trong cửa
sổ Solution Explorer như hình 5.20.
80
Hình 5.20. Thêtn mới Report vào Project
Chẳng hạn, chúng ta tạo mới Report để trình bày danh sách mẩu tin trong
bảng CTHD như sau:
SELECT SoHD, MaH, (SoLuong*DonGia) AS [Thanh Tien]
FROM CTHD
Trong bước chọn nhóm dữ liệu, ta có thể chọn cột SoHD cho phần Group và
các cột còn lại vào phần Details như hình 5.21.
81
Hình 5.22. Giao diện Report2
5.3.3 Khai báo biểu thức
Để thêm cột vào Report, chúng ta click chuột phải vào cột tùy ý rồi chọn
Insert Column → Right, ta có thể khai báo cột được thêm vào là ThanhTien với
biểu thức là: =Fields!SoLuong.Value*Fields!DonGia.Value
82
Hình 5.24. Khai báo biểu thức cho cột dữ liệu
5.3.4 Định dạng số
Nếu chúng ta muốn định dạng số thì khai báo chuỗi định dạng trong thuộc
tính Format của điều khiển TextBox tương ứng như hình 5.25.
83
Chuyển sang ngăn Preview, ta có thể tìm thấy định dạng số của các cột trên
Report trình bày tương tự như hình 5.26.
84
Hình 5.27. Sử dụng hàm của Report
Sau khi khai báo hàm Sum và Avg cho các cột dữ liệu, chúng ta chuyển sang
mục Preview, kết quả trình bày như hình 5.28.
85
Hình 5.28. Khai báo hàm Sum và Avg cho mỗi sản phẩm
Bằng cách thực hiện tương tự như trên, ta có thể click chuột phải trên header
của từng hàng, cửa sổ xuất hiện như hình 5.29.
86
Trong phần Footer, ta có thể thêm điều khiển TextBox và khai báo hàm Sum và Avg
cho các cột dữ liệu tương ứng.
Chẳng hạn, trong Report1.rdl, chúng ta khai báo Sum cho các cột SoLuong,
ThanhTien và Avg cho cột DonGia.
Sau đó, chuyển sang mục Preview, kết quả của phần tính tổng trong Footer sẽ trình
bày tương tự như hình 5.30.
87
Report Viewer yêu cầu chúng ta nhập tham số vào TextBox tương ứng như hình 5.31.
88
báo như hình 5.33.
89
blank value (“”)”.
Đối với trường hợp tham số thêm vào phát biểu SQL hay thủ tục nội tại sau khi thiết
kế Report, ta có thể khai báo chúng bằng cách Parameters → Click chuột phải rồi chọn
Add Parameters rồi tiếp tục khai báo các thuộc tính khác tương tự.
5.3.7 Xuất dữ liệu ra tập tin
Khi chọn vào mục Preview hay chạy chương trình ở chế độ Debug, chúng ta có thể
xuất dữ liệu nhìn thấy trên màn hình ra tệp tin với các định dạng như PDF, Excel, CSV,
XML, TIFF.
Chẳng hạn, ta chọn vào mục Preview khi đang thiết kế Report3.rdl và nhập H03 vào
phần tham số, nhấn nút View Report, kết quả trình bày như hình 5.35.
Tiếp tục nhấn biểu tượng , danh sách các loại định dạng tập tin xuất hiện như
hình sau:
90
Hình 5.36. Danh sách dạng tập tin cho phép xuất
Ví dụ, ta chọn vào Excel rồi đặt tên là Report3.xls và lưu ngoài ổ đĩa C:\. Sau đó,
chuyển sang cửa sổ Windows Explorer, chọn tập tin này và kích hoạt, dữ liệu trong tập tin
Excel sẽ trình bày tương tự như hình 5.37.
91
Report1.rdl Report1.rdl
92
Hình 5.40. Triển khai Report
Lưu ý: Chúng ta cũng có thể tìm thấy tham số của phát biểu SQL hay thủ tục nội tại
bằng cách kích hoạt cửa sổ thuộc tính rồi chọn vào mục Parameters như hình 5.42.
Chú ý: Để người sử dụng có thể truy cập chúng bằng trình duyệt, sau khi thiết kế
xong Report, chúng ta cần Deploy chúng trên Report Server.
93
Hình 5.42. Cửa sổ tuỳ chỉnh các thuộc tính của tham số
Tuy nhiên, ta có thể Deploy các Report trong Business Intelligent Development
Studio sau khi cấu hình Report Service.
5.4 Cấu hình Report server
Sau khi thiết kế Report, để người sử dụng có thể sử dụng Report này thông qua trình
duyệt, chúng ta cần tạo và cấu hình ứng dụng Web tương ứng trong IIS (Internet
Information Service).
Chú ý: Ứng dụng Web mà ta cấu hình trong IIS là Report Server, nơi cung cấp các
dịch vụ cho phép người sử dụng truy cập Report và tương tác Report thông qua Web
Service.
Để làm điều này, trước tiên chúng ta mở SQL Server 2014 Reporting Services
Configuration Manager, cửa sổ xuất hiện như hình sau:
94
Hình 5.43. Cấu hình Report Service
Chú ý: chúng ta có thể tìm tên Server bằng cách chọn vào nút Find và chọn Instance
cùa SQL Server 2014 từ ComboBox.
Giả sử, chúng ta chọn tên máy là DESKTOP-IC5A2DA và Instance của SQL Server
2014 trên máy này là SQLEXPRESS như trong hình trên rồi nhấn nút Connect. Sau khi kết
nối thành công, ta có thể tìm thấy cửa sổ kế tiếp xuất hiện như hình 5.44.
95
phía bên trái trong hình 5.44.
Bước kế tiếp, ta chọn Web Service URL, cửa sổ xuất hiện như hình 5.45.
96
Hình 5.47. Ứng dụng Reportserver trong IIS
Mặc định đặc quyền của ứng dụng này chỉ cho phép người dùng trong hệ điều hành
sử dụng thay vì Anonymous; để kiểm tra điều này, ta có thể chọn vào ngăn Directory
Security → Edit, cửa sổ xuất hiện như hình 5.48.
97
Hình 5.48. Thay dổi đặc quyền truy cập của người sử dụng
98
CHƯƠNG 6. CHỨC NĂNG QUẢN TRỊ SQL SERVER
6.1 Backup và Restore cơ sở dữ liệu
Sao lưu và phục hồi (Backup và Restore) dữ liệu trong SQL SERVER là một trong
những thao tác quan trọng mà người quản trị cơ sở dữ liệu (Database Administrator) phải
thực hiện. Có rất nhiều lý do mà người Quản trị CSDL phải đảm bảo để dữ liệu của hệ
thống được chính xác, không bị sai lệch và cần phải giảm tối đa số lần phải phục hồi dữ
liệu, luôn theo dõi, kiểm tra thường xuyên để phát hiện các trục trặc trước khi nó xảy ra.
Phải dự phòng các biến cố có thể xảy ra và bảo đảm rằng có thể nhanh chóng phục hồi dữ
liệu trong thời gian sớm nhất có thể được.
Các dạng biến cố hay tai họa có thể xảy ra là:
• Ðĩa chứa file dữ liệu hoặc file Transaction Log hay file hệ thống bị mất
• Server bị hư hỏng
• Những thảm họa tự nhiên như bão lụt, động đất, hỏa hoạn
• Toàn bộ server bị đánh cắp hoặc phá hủy
• Các thiết bị dùng để backup – restore bị đánh cắp hay hư hỏng
• Những lỗi do vô ý của người sử dụng như lỡ tay xoá dữ liệu chẳng hạn
• Những hành vi mang tính phá hoại của nhân viên như cố ý đưa vào những thông
tin sai lạc.
• Bị hack (nếu server có kết nối với internet).
Nếu như thao tác sao lưu (Backup database) được thực hiện để lưu dữ liệu và được
thực hiện thường xuyên thì thao tác phục hồi dữ liệu (Restore database) chỉ được thực hiện
khi nào máy chủ bị sự cố như hư ổ cứng hoặc dữ liệu bị mất do người dùng vô tình hoặc
cố ý xoá,…
Ngoài ra thao tác phục hổi dữ liệu cũng được thực hiện để sao chép database từ máy
chủ này sang máy chủ khác.
99
Hình 6.1. Backup và Restore cớ sở dữ liệu
6.1.1 Backup cơ sở dữ liệu
Backup cơ sở dữ liệu là chức năng cho phép ta tạo các bản sao cơ sở dữ liệu dự phòng
dạng tập tin đĩa hay băng từ, ... để có thể phục hồi nếu cơ sở dữ liệu gặp sự cô' hay hư hỏng.
Chúng ta cần chuẩn bị phương án backup cơ sở dữ liệu theo thời gian trong ngày và
tuần dựa vào mức độ thay đổi dung lượng do nhân viên nhập liệu.
Chẳng hạn, chúng ta sẽ backup cơ sở dữ liệu hằng ngày trong tuần vào lúc 12 và 18
giờ theo hình thức trực tiếp thực hiện hay theo lịch trình cho trước.
Khi backup cơ sở dữ liệu, ta có thể chỉ định loại backup là đĩa cứng (Disk) hay thiết
bị backup (Tape backup).
Ngoài ra, ta có thể backup phần dữ liệu phát sinh (Differential) sau lần backup trước
đó hay backup toàn phần (Full).
SQL Server cung cấp các loại backup như sau:
• Full Backup: Backup toàn bộ dữ liệu tại thời điểm thực hiện (thường dùng nhất).
• Differential Backup: Backup các dữ liệu mới được cập nhật kể từ lần full backup
trước đó.
• File/Filegroup Backup: backup những file và filegroup.
• Transaction Log Backup: Backup các log record hiện có trong log file. Nghĩa là
sao lưu các hành động (các thao tác xảy ra đối với database) chứ không sao lưu
dữ liệu. Đồng thời nó cũng cắt bỏ (truncate) log file, loại bỏ các log record vừa
100
được backup ra khỏi log file. Vì thế khi thấy log file tăng quá lớn, có thể là chúng
ta chưa từng backup transaction log bao giờ.
• Partial Backup: sao lưu một phần
• Copy Only Backup: Chỉ sao chép các bản sao lưu có thể được thực hiện trên các
tập tin cơ sở dữ liệu và các bản ghi giao dịch để tạo ra một bản sao lưu mà không
ảnh hưởng tới chuỗi của các sao lưu cần thiết để khôi phục lại một cơ sở dữ liệu.
Full Backup là cách khôi phục cơ sở dữ liệu đơn giản nhất cung cấp cho người sử
dụng một giải pháp hoàn hảo. Full Backup sẽ tạo một thư mục có chứa toàn bộ dữ liệu,
gồm có Transaction Logs. Khi thực hiện xem một thư mục trên SQL Server Management
Studio Object Explorer, ta có thể thấy một số đối tượng quen thuộc như Tables, Views,
Stored Procedures hay Security.
❖ Cú pháp: Full Backup
Backup database <tên database> TO <tên logic backup>
Ví dụ:
BACKUP DATABASE AdventureWorks
TO DISK = ‘D:\Backup\AdventureWorks.bak’
❖ Cú pháp: Differential Backup
Backup database <tên database>
TO <tên logic backup> WITH DIFFERENTIAL
Ví dụ:
BACKUP DATABASE AdventureWorks
TO DISK = ‘D:\Backup\AdventureWorks.bak’
WITH DIFFERENTIAL
❖ File/Filegroup Backup
--Backup of the "SWUserData1" User-Defined Filegroup
BACKUP DATABASE SmallWorks
FILEGROUP = ‘SWUserData1'
TO DISK = ‘D:\Backup\SmallWorksUserData1FG.BAK’
--Differential Filegroup Backup of the "SWUserData1" User-Defined Filegroup
BACKUP DATABASE SmallWorks
FILEGROUP = 'SWUserData1'
TO DISK = ‘D:\Backup\SmallWorksUserData1FGDIFF.BAK'
WITH DIFFERENTIAL
101
❖ Cú pháp: Transaction Log Backup
BACKUP LOG <tên database> TO < tên logic backup >
Ví dụ:
BACKUP LOG AdventureWorks
TO DISK = ‘C:\Backup\AdventureWorks.bak’
❖ Cú pháp: Copy Only Backup
Backup database <tên database> TO <tên logic backup>
WITH COPY_ONLY
Ví dụ:
BACKUP DATABASE SmallWorks
TO DISK = 'C:\SQLData\SmallWorksCopyOnly.BAK'
WITH COPY_ONLY
Để backup nhiều cơ sở dữ liệu, chúng ta sử dụng backup device bằng cú pháp sau:
Sp_addumpdevice 'device_type', 'logical_name', 'physical_name' Trong đó:
device_type: có thể là (disk, pipe, tape)
Hoặc chúng ta có thể backup device bằng cách dùng MS như sau: Chọn tên cơ sở dữ
liệu → Right-Click → Tasks → Back up, cửa sổ xuất hiện tương tự như hình 6.2.
102
Ví dụ, nếu chúng ta backup cơ sở dữ liệu QLBH thì chọn vào nút Add, rồi chọn thư
mục để lưu tập tin .bak như hình 6.3.
103
Sau bước này, hãy click nút Ok ở góc bên phải để hoàn tất quá trình sql backup. Khi
backup hoàn tất, trên màn hình sẽ hiện thông báo như hình sau.
WITH FORMAT;
Việc thực hiện backup bằng câu lệnh có ưu điểm là nhanh và dễ dàng hơn. Tuy nhiên,
chúng ta không thể backup tất cả đầy đủ thư mục mà chỉ được backup một cách đơn lẻ từng
bước. Việc backup vào băng, ta nên sử dụng “To TAPE” thay thế cho “To Disk”, câu lệnh
sẽ giúp cho chúng ta backup vào đĩa và thư mục đích. Cuối cùng, hãy “With Format” để
tạo một thư mục mới. Nếu không có câu lệnh cuối này nếu đã có backup cũ tồn tại thì việc
backup mới không được thực hiện.
6.1.2 Restore cơ sở dữ liệu
Khi cơ sở dữ liệu bị nguy hiểm, quá trình phục hồi nên theo các bước sau:
- Backup nhật ký các giao tác: Backup log QLBH to QLBHLog
104
with no_truncate (sử dụng khi backup một CSDL đang trong tình trạng không hoạt
động)
- Phục hồi CSDL từ bảng backup gần nhất
- Phục hồi nhật ký các giao tác
Hoặc chúng ta cũng có thể thực hiện khôi phục dữ liệu trên SQL Server thông qua
các bước sau:
Bước 1: Đầu tiên, mở Microsoft SQL Server Management Studio chọn connect.
Bước 2: Bấm chọn cơ sở dữ liệu cần restore rồi chọn Right-click chọn Tasks chọn Restore
chọn Database.
105
Hình 6.7. Tìm nơi đã lưu file sao lưu khi tạo trước đây
Bước 4: Click OK và màn hình dưới đây sẽ hiện ra.
Hình 6.8. Chọn CSDL cần khôi phục và tập tin sao lưu đã tạo trước đó
Bước 5: Chọn Files ở góc bên trái màn hình, hộp thoại dưới đây sẽ hiện ra.
106
Hình 6.9. Thông tin các file cho quá trình khôi phục CSDL
Bước 6: Chọn Options ở góc trái và click OK để bắt đầu khôi phục CSDL QLBH như
trong hình dưới đây.
107
Hoặc chúng ta có thể sử dụng câu lệnh để restore cơ sở dữ liệu. Cú pháp như sau:
Restore database <Your database name> from disk = '<Backup file location + file name>'
Ví dụ:
Lệnh sau đây được dùng để khôi phục lại CSDL có tên TestDB đã có tập tin sao lưu
tên là TestDB_Full.bak nằm tại địa chỉ D:\ nếu chúng ta chọn viết đè lên CSDL hiện tại.
Restore database TestDB from disk = 'D:\TestDB_Full.bak' with replace
Nếu tạo CSDL mới bằng lệnh khôi phục này và không có đường dẫn, file ghi lại lịch
sử trên máy chủ nói trên, hãy dùng lệnh dưới đây. Đảm bảo là có tồn tại đường dẫn D:\Data.
RESTORE DATABASE TestDB FROM DISK = 'D:\ TestDB_Full.bak' WITH MOVE
'TestDB' TO 'D:\Data\TestDB.mdf', MOVE 'TestDB_Log' TO 'D:\Data\TestDB_Log.ldf'
Muốn phục hồi các giao tác, ta thực hiện theo cú pháp sau:
Restore Log <tên database> From <thiết bị backup>
6.2 Attach và Detach cơ sở dữ liệu
6.2.1 Attach cơ sở dữ liệu
SQL Server hỗ trợ người dùng nhiều cách để attach một CSDL, trong đó, cú pháp để
attach CSDL như sau:
sp_attach_db 'tên_database',
'đường_dẫn_và_tên_tập_tin_mdf',
'đường_dẫn_và_tên_tập_tin_ldf’
Lưu ý: chép tập tin .mdf và .ldf vào thư mục MSSQL\Data trước khi thực hiện attach.
Để thực hiện attach CSDL bằng giao diện, chúng ta khởi động Microsoft SQL Server
Management Studio, và connect vào server.
Trong cây bên trái, click chuột phải lên mục Database → Chọn Attach.
108
Hình 6.11. Cửa sổ Attach Database
Trong cửa sổ tiếp theo, nhấn Add. Cửa sổ hiển thị như hình sau:
109
Trở lại cửa sổ Attach, lúc này thông tin của database đã được thể hiện. Ở đây chúng
ta có thể gõ lại tên database tại ô "Attach As". Xong nhấn OK.
6.2.2 Detach cơ sở dữ liệu
Detach là quá trình gỡ bỏ CSDL ra khỏi Instance của SQL Server. Cú pháp như sau:
Sp_detach_db ‘tên_database’
Hoặc chúng ta có thể tiến hành detach bằng cách khởi động Microsoft SQL Server
Management Studio, connect vào server.
Trong cây bên trái, trong mục Database, chuột phải vào database cần Detach → Tasks
→ Detach…
Trong cửa sổ tiếp theo, Check vào ô Drop Connections (để ngắt toàn bộ kết nối đến
database này) → Nhấn OK.
110
Hình 6.14. Chọn Drop Connections
111
Hình 6.16. Tìm đường dẫn để copy file
Chúng ta có thể copy File này sang máy khác.
6.4 Import và Export cơ sở dữ liệu
Chúng ta có thể chọn vào tùy chọn ứng với đặc quyền truy cập theo hệ điều hành hay
SQL Server.
Chọn nút Next, tiếp tục chọn tùy chọn chép dữ liệu và đối tượng cơ sở dữ liệu hay sử
dụng câu truy vấn để trích lọc dữ liệu như hình 6.17.
112
Hình 6.17. Chọn phương thức Import dữ liệu
113
Hình 6.18. Chọn bảng để Import
Mặc định là bảng dữ liệu tương ứng với Sheet sẽ tạo ra, nhưng chúng ta có thể chọn
Table tương ứng để nhận dữ liệu rồi chọn nút Next.
114
Hình 6.19. Thực thi ngay tức thì chức năng Import
Tiếp tục chọn nút Next hay Finish, nếu import thành công, ta sẽ nhận kết quả trình
bày như hình 6.20.
115
Sau đó, chúng ta có thể tìm thấy bảng NHANVIEN sẽ được tạo ra trong cơ sở dữ liệu
QLBH tương tự như hình 6.21.
116
Hình 6.23. Chọn cơ sở dữ liệu đích
Tiếp tục chọn nút Next, tương tự như trường hợp import thì cửa sổ kế tiếp sẽ xuất
hiện như hình 6.24.
Nhấn nút Next, chọn vào các Table hay View để xuất dữ liệu ra tập tin Excel như
hình 6.25.
117
Hình 6.25. Chọn bảng xuất dữ liệu
Nhân nút Next rồi tiếp tục chọn nút Finish, ta có thể tìm thây tập tin QLBH.xls trong
ổ đĩa C:\ như hình 6.26.
118
- Bước 1: Vào Start → Run → gõ cmd → gõ Services.msc, kiểm tra service SQL
Server Agent đã được chạy với account admin của mạng chưa? Nếu chưa thì tiến
hành thiết lập account admin của mạng cho service này.
- Bước 2: Thiết lập quyền chạy service SQL Server Agent
- Click chuột phải vào service SQL Server Agent
- Chọn tab Log On, Chọn option Log on as this account. Nhập tên đăng nhập và mật
khẩu admin mạng của máy tính cài đặt SQL.
- Click OK khi thực hiện nhập xong, tiến hành restart lại service.
Lưu ý: Trong trường hợp người quản trị máy chủ thay đổi mật khẩu của account
quản trị máy tính đó thì phải tiến hành nhập lại mật khẩu cho service SQL Server
Agent
❖ Backup tự động cơ sở dữ liệu SQL Server
Để thực hiện chức năng tự động, chúng ta cần khởi động dịch vụ SQL Server Agent,
sau đó khai báo Job cùng với hành động cụ thể được cài đặt theo lịch trình định sẵn.
Chẳng hạn, để backup cơ sở dữ liệu theo lịch trình đã định sẵn, ta có thể thực hiện
các bước như sau:
Để tạo job, ta chọn vào mục Jobs và Click chuột phải → New Job, cửa sổ xuất hiện
như hình 6.27.
119
Hình 6.28. Khai báo phát biểu BACKUP DATABASE
Sau đó ở hàng menu bên trái, click chuột vào dòng “Steps”, rồi bấm vào nút “New…”:
120
Chú ý: Ở phần “Command” là nơi nhập các câu lệnh để thực hiện công việc nào đó
mà chúng ta muốn làm. Cụ thể trong ví dụ này là việc backup dữ liệu một cách tự động:
Ở cửa sổ mới này, ở ô “Step name” ta nhập “Backup”, để nguyên các ô còn lại, và ở
phần soạn thảo “Command” hãy nhập đoạn code sau:
BACKUP DATABASE CongTyDB
TO DISK = 'D:\Backup\CongTyDB.bak' WITH INIT
Chúng ta cần đổi tên database và đường dẫn tương ứng với môi trường của chúng ta.
Ở cuối câu lệnh là mệnh đề “WITH INIT” để đảm bảo hàng ngày chạy nó sẽ ghi đè lên file
hiện tại. Nếu không có mệnh đề này, các bản backup sẽ được ghi nối tiếp nhau trong cùng
một file và file backup sẽ tăng kích thước lên nhanh chóng.
Sau khi nhập xong, click OK và trở lại màn hình ban đầu.
Chú ý: Ở mục "Steps" ta có thể thêm mới hoặc chỉnh sửa các step:
121
Hình 6.31. Chỉnh sửa câu lệnh Script
Giờ ở hàng menu bên trái, ta chọn “Schedules” và click vào “New…” để tạo một lịch
làm việc cho Job:
122
Trong ô “Name” ta nhập vào “Backup – Daily”; ở ô “Occurs” ta chọn “Daily” và
“Occurs once at:” chọn “1:00:00 AM”; các phần khác giữ nguyên. Như vậy backup job sẽ
chạy hàng ngày vào lúc 1h sáng. Lý do của việc chọn giờ như vậy là vì thường ban đêm
database có ít hoạt động và do đó không ảnh hưởng nhiều đến user. Hoặc chúng ta cũng có
thể chọn giờ thích hợp cho mình.
Sau đó click “OK” để trở về màn hình trước và click “OK” lần nữa để quay trở lại
Management Studio. Việc setup như vậy là đã xong, chúng ta đã tạo được một job có tên
“Backup – Daily” để backup database và sẽ được chạy hàng ngày vào lúc 1h sáng.
6.6 Cấu hình IP và Port
Khi phát triển các ứng dụng Web, hoặc các ứng dụng desktop đòi hỏi dữ liệu tập trung
tức thì để phục vụ cho việc ra báo cáo mà chương trình thì lại cách xa nhau về mặt địa lý,
thì ta sẽ cần đến tính năng kết nối từ xa của SQL Server. Tính năng này có trên tất cả các
phiên bản SQL Server.
Để cho phép truyền dữ liệu theo nghi thức truyền thông là Named Pipes hay TCP/IP
từ máy trình khách vào Instance của SQL Server, chúng ta có thể chỉ định chúng trong cửa
sổ như hình 6.33.
123
server=(local); database=databaseName;
Integrated Security=True;
Tuy nhiên, nếu ta thay đổi port thì chuỗi kết nối phải được thay đổi. Ví dụ, ta khai
báo chuỗi kết nối cơ sở dữ liệu với port là 1455 bằng đặc quyền hệ điều hành như sau:
server=(local); database=databaseName; Integrated Security=True; Port = 1455
Chú ý: Mục đích của việc thay đổi port là nhằm giới hạn sự truy cập trái phép trừ khi
ứng dụng chỉ định đúng số port cùng với các thuộc tính khác hợp lệ.
Để thay đổi port, ta kích hoạt cửa sổ thuộc tính TCP/IP như hình 6.34.
124
Hình 6.35. Cấu hình TCP/IP cho phần Client Protocols
Tương tự như vậy, nếu Port của Server cấu hình khác với giá trị mặc định, chúng ta
cũng cần khai báo port trong cửa sổ TCP/IP như hình 6.36.
Hình 6.36. Cấu hình port cho ứng dụng trình khách
Chứ ý: Nếu cần kiểm chứng sự khác biệt về port thông qua cách khai báo chuỗi kết
nối thì phải sử dụng đối tượng ADO.NET để kết nối SQL Server.
125