You are on page 1of 22

CNTT Công nghệ thông tin Information technology

CPU Đơn vị xử lý trung tâm Central processing unit


CSDL CSDL Database
DBE Máy CSDL Database engine
DBMS Hệ quản trị CSDL Database management system
DCL Ngôn ngữ điều khiển dữ liệu Data controlling language
DDL Ngôn ngữ định nghĩa dữ liệu Data definition language
DML Ngôn ngữ thao tác dữ liệu Data manipulation language
DQC Trình khách chất lượng dữ liệu Data Quality Client
DQS Trình chủ chất lượng dữ liệu Data Quality Server
DTA Trình phân tích câu lệnh Data Tuning Advisor
ID Định danh Identifier
KB Cơ sở tri thức Knowledge base
RAM Bộ nhớ truy xuất ngẫu nhiên Random access memory
SQL Ngôn ngữ truy vấn có cấu trúc Structured query language
SQLOS Hệ điều hành SQL SQL Operating system
SSCM Công cụ cấu hình SQL Server SQL Server configuration management
SSDT Công cụ dữ liệu SQL Server SQL Server Data Tools
SSMS Công cụ quản trị SQL Server SQL Server management studio

CHƯƠNG 1: TỔNG QUAN VỀ HỆ QUẢN TRỊ CSDL


1.1. Một số khái niệm
1.1.1. CSDL
Dữ liệu là những sự kiện có thể ghi lại được, không có ý nghĩa.
Thông tin là dữ liệu đã đc xử lý trong một ngữ cảnh cụ thể để trở nên có ý nghĩa.
CSDL (CSDL) là tập hợp các dữ liệu có mối liên hệ với nhau về mặt ý nghĩa (luận lý), được lưu trữ trên các thiết bị thứ cấp để thỏa mãn
nhu cầu khai thác thông tin của nhiều người sử dụng hoặc nhiều chương trình ứng dụng.
Phần mềm quản trị CSDL: phần mềm hệ thống, có nhiệm vụ hỗ trợ ng dùng quản trị CSDL (ko bao gồm CSDL)
Hệ CSDL: phần mềm quản trị CSDL cùng với CSDL (nó quản trị).
1.1.2. Góc nhìn dữ liệu
Tính hiệu quả của hệ thống đòi hỏi phải thiết kế các cấu trúc dữ liệu phức tạp để biểu diễn dữ liệu trong CSDL. Các nhà
phát triển che dấu sự phức tạp này thông qua các mức trừu tượng (trừu tượng hóa) nhằm đơn giản hóa sự trao đổi của người sử
dụng với hệ thống:
- Mức vật lý: Mô tả cách thức lưu trữ dữ liệu trong thiết bị thứ cấp.
- Mức ngữ nghĩa (luận lý): Mô tả cách tổ chức dữ liệu (lưu trữ) trong CSDL và các mối liên hệ giữa các dữ liệu với nhau.
- Mức khung nhìn: Mô tả chỉ một phần của CSDL theo góc nhìn hay nhu cầu của người sử dụng. (chỉ cần thấy danh sách
món).

1.1.3. Mô hình dữ liệu: Mô hình kiến trúc ba mức của hệ CSDL bao gồm:
Mô hình mức ngoài: mô tả dữ liệu: mức luận lý & mức khung nhìn. Cung cấp khả năng cấu trúc linh hoạt và các ràng
buộc dữ liệu được xác định tường minh.
Mô hình mức khái niệm: mô tả dữ liệu: mức luận lý / mức khung nhìn. → xác định cấu trúc luận lý tổng thể CSDL (Chi
tiết cấu trúc dữ liệu, các ràng buộc).
Mô hình mức trong: mô tả dữ liệu ở mức thấp nhất (Cấu trúc lưu trữ, Cách thức truy cập). Hai mô hình dữ liệu vật lý
được biết rộng rãi nhất: mô hình hợp nhất (unifying model) và mô hình khung bộ nhớ (frame-memory model).

Độc lập dữ liệu logic: Thay đổi lược đồ khái niệm mà không cần phải thay đổi lược đồ mức ngoài hoặc những chương trình ứng dụng.
Độc lập dữ liệu vật lý: Thay đổi lược đồ mức trong mà không cần thay đổi lược đồ khái niệm.
Mô hình: Sự trừu tượng đơn giản về đặc điểm và mối liên hệ của cácsự kiện trong thế giới thực.
Mô hình dữ liệu: Tập hợp các khái niệm dùng để biểu diễn các cấu trúc của dữ liệu.
Mô hình dữ liệu thể hiện: sử dụng những ký pháp tương ứng với mô hình dữ liệu mà một hệ quản trị CSDL sử dụng.
Mô hình dữ liệu khái niệm: Mô tả các dữ liệu bằng cách cung cấp những khái niệm gần gũi với đa số người sử dụng, mô hình này chỉ ra
cái gì được đưa vào để quản lý.
Mô hình dữ liệu vật lý: Cung cấp những khái niệm để biểu diễn chi tiết cách thức dữ liệu được lưu trữ trong máy tính.

1.1.4. Ngôn ngữ dữ liệu


Ngôn ngữ định nghĩa dữ liệu (data definition language) để định nghĩa cấu trúc của các thành phần trong CSDL.
Ngôn ngữ thao tác dữ liệu (data manipulation language) để thực hiện các thao tác như thu thập, chèn, sửa, và xóa dữ liệu.
Ngôn ngữ điều khiển dữ liệu (data controlling language) để thực hiện các khai báo bảo mật thông tin và cấp quyền hạn khai thác CSDL
cho người dùng khác trong hệ thống.
Ngôn ngữ truy vấn dữ liệu: SQL Server sử dụng ngôn ngữ T-SQL (Transact-SQL) để truy vấn dữ liệu. T-SQL là cung cấp các tính năng
lập trình giúp thao tác với CSDL như là một ngôn ngữ lập trình thực thụ.
1.2. Kiến trúc hệ CSDL:
Kiến trúc hệ CSDL bị ảnh hưởng nhiều bởi hệ thống máy tính cài đặt chúng. Ba loại kiến trúc phổ biến là kiến trúc khách – chủ, song
song và phân tán.
- Kiến trúc hệ CSDL trung tâm.
- Kiến trúc khách chủ (client – server) cho phép thực hiện một số công việc trên một hệ thống các máy chủ (server), một số công việc trên
các máy trạm (client).
- Kiến trúc song song cho phép thực hiện cùng lúc nhiều truy vấn dữ liệu, qua đó làm tăng tốc độ các hoạt động của hệ CSDL, phản hồi
các giao dịch nhanh hơn.
- Kiến trúc phân tán để quản lý dữ liệu phân tán, trên phương diện địa lý hay quản trị, trải rộng trên nhiều hệ CSDL. Mạng truyền thông.

1.4. Các chức năng của hệ quản trị CSDL


Hệ quản trị CSDL là một gói phần mềm có chức năng xác định, thao tác, truy xuất, quản lý toàn bộ dữ liệu trong CSDL. Các chức năng
chính của hệ quản trị CSDL:
- Định nghĩa dữ liệu: Cung cấp khả năng định nghĩa dữ liệu, các cấu trúc lưu trữ và tổ chức dữ liệu cũng như mối liên hệ giữa các thành
phần dữ liệu.
- Truy xuất và thao tác dữ liệu: Cho phép thực hiện các thao tác truy xuất, bổ sung và cập nhật dữ liệu.
- Điều khiển truy cập: Cấp phát và kiểm soát các thao tác của người sử dụng dữ liệu, đảm bảo an toàn cho dữ liệu.
- Đảm bảo toàn vẹn dữ liệu: Cung cấp các công cụ để đảm bảo tính hợp lệ và chính xác của dữ liệu trước thao tác cập nhật cũng như các
lỗi của hệ thống.
1.5. Cấu trúc tổng thể của hệ quản trị CSDL:
- CSDL lưu trữ: CSDL được lưu trữ tại thiết bị nhớ thứ cấp (ổ đĩa cứng) hoặc cấp 3 (Đĩa CDs, thiết bị nhớ di động, ...)
- Siêu dữ liệu (meta data): Dữ liệu về dữ liệu, mô tả các thành phần dữ liệu của CSDL.
- Bộ quản lý lưu trữ: Quản lý việc lưu trữ trực tiếp trên ổ đĩa.
- Bộ xử lý truy vấn: Thực hiện điều khiển, không chỉ các câu hỏi, mà cả các yêu cầu thay đổi dữ liệu hay siêu dữ liệu nhằm tìm ra cách tốt
nhất thực hiện một thao tác.
- Bộ quản lý giao dịch: Đảm bảo tính nguyên tố, tính nhất quá, tính biệt lập và tính duy trì xuyên suốt trong quá trình thao tác đối với dữ
liệu.
- Thao tác của người dùng: Hệ quản trị CSDL đáp ứng các thao tác sau đây từ phía người dùng:
o Truy vấn dữ liệu: hỏi đáp về dữ liệu lưu trữ, được tạo ra theo giao diện truy vấn hoặc qua giao diện chương trình ứng dụng.
o Cập nhật dữ liệu: thao tác thay đổi dữ liệu như thêm, sửa, xoá dữ liệu lưu trữ, được tạo ra theo hai cách như trên.
o Thay đổi lược đồ: thao tác thay đổi cấu trúc logic của dữ liệu, được tạo ra bởi nhân viên thiết kế (trong quá trình phát triển ứng dụng)
hoặc nhân viên quản trị (trong quá trình khai thác ứng dụng).

Hình 1.1. Cấu trúc tổng thể của Hệ quản trị CSDL
1.6. Các xu hướng mới về hệ quản trị CSDL
CSDL kết nối SQL/NoSQL. Xu hướng mới nhất. Cho phép người dùng truy cập CSDL NoSQL theo cách tương tự như CSDL quan hệ.
CSDL trên đám mây/nền tảng như là dịch vụ. sự cân bằng giữa công khai và riêng tư. Tiến tới đám mây không có nghĩa là thay đổi các ưu
tiên của tổ chức mà là tìm kiếm các sản phẩm và dịch vụ giúp nhóm các tổ chức đạt được mục tiêu.
Tự động hóa trong việc quản trị. các rủi ro thường không dự kiến trước, việc khắc phục cần sự can thiệp của con người.
Tăng cường tập trung vào bảo mật.
Dữ liệu lớn. Dữ liệu lớn không nhất thiết có nghĩa là nhiều dữ liệu. Những gì nó thực sự đề cập đến là khả năng xử lý bất kỳ loại dữ liệu
nào: những gì thường được gọi là dữ liệu bán cấu trúc và phi cấu trúc cũng như dữ liệu có cấu trúc.
1.7. Các nhóm người dùng CSDL:
- Nhóm quản trị cơ sở dữ liệu: Phân quyền truy cập cơ sở dữ liệu; Giám sát quá trình vận hành cơ sở dữ liệu; Sao lưu,
khôi phục cơ sở dữ liệu; Phân bổ tài nguyên phần cứng, phần mềm; Xử lý sự cố.
- Nhóm thiết kế cơ sở dữ liệu: Lựa chọn cấu trúc biểu diễn và lưu trữ dữ liệu; Đặc tả yêu cầu dữ liệu của người sử dụng;
Xây dựng khung nhìn dữ liệu phù hợp.
- Nhóm người dùng cuối: Truy xuất dữ liệu theo yêu cầu; Cập nhật dữ liệu theo hai hình thức: Trực tuyến/ Theo phiên.
- Nhóm nhân viên phát triển: Đặc tả yêu cầu của người sử dụng; Xây dựng hệ thống hướng cơ sở dữ liệu.
- Nhóm nhân viên bảo trì: Đảm bảo hệ thống hoạt động liên tục.
CHƯƠNG 2: TỔNG QUAN VỀ HỆ QUẢN TRỊ MS SQL SERVER
2.1. Lịch sử phát triển Hệ quản trị Microsoft SQL Server

2.2. Cài đặt SQL Server


2.2.1. Lập kế hoạch cài đặt: yêu cầu về phần cứng, phần mềm và bảo mật.
2.2.2. Lựa chọn phiên bản cài đặt
Tính năng Doanh nghiệp Tiêu chuẩn Rút gọn Phát triển
Enterprise Standard Express Developer

Số lượng core tối đa Không giới hạn 24 core 4 core Không giới hạn

Kích thước vùng đệm tối đa Tối đa 128 GB 1410 MB Tối đa

Bộ nhớ cache phân đoạn cột tối đa Tối đa 32 GB 352 MB Tối đa

Bộ nhớ tối đa cho mỗi CSDL Tối đa 32 GB 352 MB Tối đa

Kích thước CSDL tối đa 524 PB 524 PB 10 GB 524 PB


Quyền sử dụng x x x

Không giới hạn ảo hóa x

Các công cụ lập trình và phát triển x x x x

OLTP nâng cao x x x x

Khả năng quản lý x x x x

Tính sẵn sàng cao x x

Tính khả dụng x x

Bảo mật nâng cao x x x x

Báo cáo tuân thủ với tuân thủ SQL Server x x x x

Mã hóa dữ liệu trong suốt x x

Tích hợp dữ liệu nâng cao x x

Marts dữ liệu và kho dữ liệu x x x x

Bộ nhớ cột x x x x

Xử lý truy vấn thích ứng x x

PolyBase x x x x

Dịch vụ dữ liệu chính, Dịch vụ chất lượng x x

Báo cáo và phân tích cơ bản x x x x

Tích hợp dữ liệu cơ bản x x x

Thông tin cơ bản của tổ chức x x x

Báo cáo trên thiết bị di động và KPI x x

Thông tin chuyên sâu tổ chức x x

Quyền truy cập Power BI Report Server x

Tích hợp Machine Learning cơ bản x x x x

Tích hợp Machine Learning nâng cao x x

Machine Learning cho Spark và Linux x

CSDL dàn trải x

2.2.3. Xác định điều kiện phần cứng và phần mềm


2.2.4. Tổ chức các ổ đĩa lưu trữ
2.2.5. Các lựa chọn cài đặt
- Cài đặt Dịch vụ báo cáo
- Cài đặt Các công cụ quản trị
- Cài đặt Các công cụ dữ liệu
- Nâng cấp từ các phiên bản trước của SQL Server
2.3. Kiến trúc SQL Server
2.3.1. Kiến trúc chung
Microsoft SQL Server là một kiến trúc khách – chủ (client – server). Một tiến trình của SQL Server bắt đầu với việc ứng dụng khách gửi
một yêu cầu, sau đó máy chủ SQL thực hiện các bước xử lý và phản hồi kết quả đạt được.
2.3.2. Cấu trúc vật lý của CSDL người dùng:
2.3.3.1 Kiến trúc tập tin dữ liệu (Data file .mdf .ndf)
Kiến trúc tập tin dữ liệu (data file) của SQL Server gồm các thành phần sau đây:
- Nhóm tập tin (File Group): Các tập tin CSDL có thể nhóm lại với nhau thành các nhóm tập tin. Có hai loại File Group trong SQL
Server:
o Primary chứa các tập tin dữ liệu chính và bất kỳ tập tin nào không được gán cụ thể cho File Group khác. Tất cả các trang cho bảng hệ
thống được cấp phát trong Primary.
o User-defined là các nhóm tập tin do người dùng định nghĩa, nó được chỉ định bằng cách sử dụng từ khóa file group trong lệnh tạo
CSDL hoặc xóa CSDL.
- Tập tin dữ liệu (Datafile): Trong SQL Server có 3 loại tập tin dữ liệu là
Primary data file (.mdf) (tập tin dữ liệu chính): Mỗi CSDL có một primary data file, là điểm bắt đầu của CSDL và chỉ dẫn đến các file
khác trong CSDL. Ghi nhận lại tất cả những tập tin khác trong CSDL, và lưu trữ dữ liệu.
Secondary (.ndf) (tập tin dữ liệu phụ): Mỗi CSDL có thể không có hoặc có nhiều secondary data files, dùng để lưu các đối tượng của
CSDL.
Log (.ldf) (tập tin nhật ký): Mỗi CSDL có ít nhất một log file dùng chứa những thông tin cần thiết cho việc phục hồi tất cả những thao tác
trong CSDL.
- Khối dữ liệu (Extent) là một đơn vị lưu trữ, trong đó không gian được phân bổ cho mỗi bảng, chỉ mục. Mỗi Extent gồm 8 trang liền kề
hoặc 64KB. Có 16 Extent trên mỗi MB.
- Trang dữ liệu (Page): là 1 cấu trúc, đơn vị cơ bản/ cơ sở trong lưu trữ dữ liệu của SQL Server. Kích thước của một trang là 8KB.
(1MB có 128 pages). Không gian đĩa được cấp phát cho tập tin dữ liệu (.mdf hoặc ndf) được phân chia thành các Page và được đánh số
liên tục từ 0 đến n.
2.3.3.2. Kiến trúc tập tin nhật ký (log file .ldf)
Các nhật ký giao dịch (transaction log) trên SQL Server: chuỗi các bản ghi nhật ký (record log). Mỗi bản ghi nhật ký được xác định bởi
Log Sequence Number (LSN), trong đó có ID của giao dịch chứa nó.
Nhật ký ghi lại những sửa đổi dữ liệu hoặc các hoạt động được thực hiện. Nó được sử dụng để khôi phục hình ảnh trước khi hoặc xác định
hình ảnh sau khi dữ liệu bị chỉnh sửa. Hình ảnh trước là bản sao của dữ liệu trước khi thao tác được thực hiện, hình ảnh sau là bản sao của
dữ liệu sau khi thao tác đã được thực hiện.
2.3.3. Cơ Sở Dữ Liệu hệ thống
Hệ quản trị SQL Server có 4 CSDL hệ thống:
CSDL master Điều khiển các thao tác, thông tin mức hệ thống của SQL Server; lưu trữ toàn bộ các thông tin cấp hệ thống, thông tin khởi
tạo và cấu hình hệ thống, thông tin tài khoản người dùng, biến môi trường, thông điệp lỗi hệ thống và các thủ tục hệ thống, ghi nhận sự
tồn tại của tất cả các CSDL, vị trí của các tập tin dữ liệu.
CSDL model là CSDL mẫu cho tất cả CSDL tạo mới trong hệ thống, có thể tùy biến cho phù hợp.
CSDL msdb lưu giữ các bảng hệ thống, đồng thời được SQL Server Agent sử dụng trong việc lập biểu, cảnh báo và ghi nhận các thao tác.
CSDL tempdb được dùng như là vùng chứa tạm thời đối với các bảng và các thủ tục tạm. Làm việc trong Tempdb rất nhanh vì các hoạt
động không ghi nhận lại. Khi client kết thúc kết nối với Server thì toàn bộ các bảng và thủ tục trong Tempdb sẽ bị xóa.
2.3.3. Cấu trúc logic của CSDL người dùng:

2.4. Các công cụ quản trị SQL Server


2.4.1. Management Studio
2.4.2. Configuration manager: quản lý các dịch vụ của sql, thiết lập thông tin cho phép kết nối CSDL
2.4.3. Server Profiler: một giao diện đồ họa người dùng, theo dõi all thông tin truy vấn trên CSDL.cho biết ai, máy nào đang truy vấn câu
lệnh gì thao tác gì, ntn.
2.6. Các danh mục trong SQL Server
DB Engine phân biệt các bảng cơ sở hệ thống của CSDL master với các bảng của một CSDL do người dùng định nghĩa (user-defined
database).
Bảng hệ thống của CSDL master thuộc về danh mục hệ thống (system catalog): hoạt động trên phạm vi toàn bộ hệ thống. Gồm các bảng
mô tả cấu trúc của các đối tượng như CSDL, bảng, khung nhìn và chỉ mục. Việc thay đổi hay xóa các bảng cơ sở hệ thống nói trên có thể
làm cho CSDL bị mất chức năng, bị xáo trộn hoặc không sử dụng được, thậm chí có thể làm cho toàn bộ hệ thống dừng hoạt động.
Bảng hệ thống của CSDL người dùng định nghĩa tạo thành danh mục CSDL: chỉ có ý nghĩa trên mỗi CSDL người dùng định nghĩa
(database catalog).

Bảng 2.3. Một số danh mục hệ thống


TÊN bảng hệ thống NỘI DUNG

Sys.altfiles Thông tin về mỗi tập tin trong CSDL: gồm ID tập tin, ID csdl, các tên tập tập tin vật ký và logic, vị trí, kích
cỡ.

Sys.configures Thông tin về mỗi lựa chọn máy chủ được thiết lập
trước khi QSL server đc bắt đầu, Chứa các dòng thông tin cấu hình quản lý csdl đó.

Sys.databases Thông tin về mỗi CSDL: số lượng csdl, ID csdl, tạo ngày nào, ai sở hữu, độ tương thích CSDL.

Sys.devices Thông tin về mỗi thiết bị sao lưu (thường xuyên) gồm các tên tập tin vật lý và logic, kích cỡ tập tin. Vd ổ
đĩa pc, ổ dĩa mt mạng,.

Sys.logins Thông tin về mỗi tài khoản đăng nhập: ID bảo mật, ID đăng nhập, mã hóa mật khẩu (null).

Sys.comments Thông tin về mỗi khung nhìn, luật, mặc định, bẩy lỗi, ràng buộc (check, default & các thủ tục)

Sys.indexes Thông tin về mỗi chỉ mục: gồm id chỉ mục, loại, các yếu tố ban đầu, và tên chỉ mục

Sys.objects Thông tin về mỗi đối tượng trong CSDL:tên đối tượng, id đối tg, id ng dùng của chủ sở hữu và ngày tạo.

Sys.users Thông tin về mỗi người dùng. ( ng dùngWindows) nhóm Windows, SQL Server và vai trò SQL Server
trong CSDL gồm ID, tên, nhóm ID và ngày tạo. login vào hệ thống → user vào database

Các bảng cơ sở hệ thống có cấu trúc giống các bảng cơ sở. Các câu lệnh T-SQL để truy xuất thông tin trong bảng cơ sở
cũng dùng để truy xuất thông tin trong bảng cơ sở hệ thống với tài khoản sử dụng thuộc nhóm System Administrator. SELECT *
FROM tên bảng hệ thống
Ví dụ 2.3. Sử dụng T-SQL truy cập danh mục hệ thống

Ví dụ 2.4. Sử dụng T-SQL truy cập danh mục CSDL

CHƯƠNG 3: QUẢN TRỊ VẬN HÀNH CSDL


3.1. Tạo và cấu hình CSDL
CSDL do người dùng tạo và quản lý để lưu trữ các đối tượng của họ như Bảng, Khung nhìn, Hàm, Thủ tục lưu trữ, Trình kích hoạt, Chỉ
mục, … được gọi là CSDL do người dùng định nghĩa (user-defined database).
Điều kiện tạo được CSDL: Người tạo CSDL phải thuộc nhóm sysadmin hoặc có vai trò dbcreator fixed server và trở thành chủ của CSDL
được tạo ra. SQLSERVER cho phép tạo tối đa 32767 CSDL.
Một số thông tin quan trọng liên quan tới CSDL bao gồm:
- Tên CSDL (Database name): được đặt tên quy tắc định danh, bao gồm ký tự, ký số, dấu gạch dưới _ và phải bắt đầu bởi ký tự.
- Chủ sở hữu (Owner): Mặc định người tạo CSDL là chủ sở hữu của CSDL đó. Tuy nhiên, người tạo CSDL có thể thiết lập tài khoản
người dùng khác là chủ sở hữu của CSDL.
- Các tập tin dữ liệu (Database files): Mặc định có 1 tập tin dữ liệu chính và 1 tập tin nhật ký. Mỗi tập tin lưu trữ có các thông tin sau đây:
o Tên lưu trữ (Logical name)
o Tên tập tin trên ổ cứng (File Name).
o Nhóm tập tin (Filegroup)
o Kích thước khởi đầu (Initial size), mặc định 8 MB cho cả hai loại tập tin. o Sự tăng kích thước tự động (Autogrowth): mỗi khi tập tin
lưu trữ gần đầy, hệ thống tự động cấp thêm bộ nhớ, mặc định mỗi lần cấp thêm 64 MB.
o Kích thước tối đa (Max size) giới hạn khả năng lưu trữ của các tập tin; mặc định không giới hạn kích thước của các tập tin (Unlimited).
o Vị trí lưu trữ trên ổ đĩa cứng của tập tin (Path), mặc định các tập tin lưu trữ tại thư mục cài đặt máy chủ CSDL (DB Engine).
- Ngôn ngữ của CSDL (Collation), mặc định là DEFAULT.
- Cơ chế phục hồi (Recovery mode), mặc định là FULL (đầy đủ).
- Mức độ tương thích (Compatibility level), mặc định phiên bản SQL Server càiđặt mới nhất.
- Cho phép truy cập không cần đăng nhập (Containment type), mặc định là NONE (mỗi truy cập đều phải đăng nhập).
3.1.1. Tạo CSDL: 2 cách.
2.7.1.1. Tạo CSDL với SSMS: giao diện quản trị
Mở chương trình SSMS, đăng nhập bằng tài khoản thuộc nhóm sysadmin hoặc dbcreator fixed server và thực hiện các bước:
Bước 1: Bắt đầu – Mở rộng server group, chọn tên máy chủ muốn tạo CSDL
Bước 2: Khởi tạo – Nhấn chuột phải tại nút Databases, chọn New Database
Bước 3: Cấu hình – Khai báo các thông tin cần thiết. Nhấn nút OK để hoàn tất việc tạo CSDL
2.7.1.2. Tạo CSDL với câu lệnh T-SQL
Mở chương trình SSMS, đăng nhập bằng tài khoản thuộc nhóm sysadmin hoặc dbcreator fixed server, mở trình soạn thảo truy vấn
(NewQuery) và xây dựng câu lệnh tạo CSDL với T-SQL:
Bước 1: Bắt đầu – Mở rộng server group, chọn tên máy chủ muốn tạo CSDL Bước 2: Mở trình soạn thảo truy vấn
Bước 3: Xây dựng câu lệnh tạo CSDL
Bước 4: Chọn nội dung câu lệnh đã xây dựng, nhấn nút Execute trên giao diện hoặc F5 trên bàn phím để thực hiện.

3.1.2. Thay đổi cấu hình CSDL: 2 cách


3.1.2.1. Thay đổi cấu hình CSDL với SSMS
Mở chương trình SSMS, đăng nhập bằng tài khoản thuộc nhóm sysadmin hoặc dbcreator fixed server và thực hiện các bước:
Bước 1: Bắt đầu – Mở rộng server group, chọn tên máy chủ có CSDL muốn sửa cấu hình.
Bước 2: Mở rộng server group, nhấn dấu + tại nút Databases.
Bước 3: Chọn CSDL muốn thay đổi cấu hình, nhấn chuột phải và chọn chức năng Properties để xem và thay đổi cấu hình.
Bước 4: Thực hiện thay đổi cấu hình của CSDL đã chọn.
3.1.2.2. Thay đổi cấu hình CSDL với T-SQL: Đăng nhập …

Ví dụ 3.3: Chỉnh sửa kích cỡ tập tin nhật ký của MyDB31 thành 10MB.
Ví dụ 3.4: Bổ sung thêm một tập tin dữ liệu MyDB312_dat.

Ví dụ 3.5: Chỉnh sửa tỷ lệ gia tăng của tập tin MyDB31_dat của MyDB31 thành 15%.

Ví dụ 3.6: Chỉnh sửa kích cở của tập tin MyDB31_dat của MyDB31 thành 20MB.

3.1.3. Xóa CSDL


3.1.3.1. Xóa CSDL với SSMS
Bước 3: Chọn CSDL muốn xóa, nhấn chuột phải và chọn chức năng Delete.
Bước 4: Thực hiện xóa CSDL đã chọn với hai tùy chọn:
- Delete backup and restore history information for databases: Xóa các bản sao lưu và thông tin lịch sử phục hồi dữ liệu
(mặc định).
- Close existing connections: Đóng tất cả các kết nối hiện có tới CSDL trước khi thực hiện xóa. Nếu tính năng này không
được chọn, việc xóa sẽ không thành công khi vẫn còn kết nối tới CSDL.
3.1.3.2. Xóa CSDL với T-SQL
Ví dụ 3.7: Xóa CSDL MyDB31

Ví dụ 3.8: Xóa hai CSDL MyDB31, MyDB32 trong cùng một câu lệnh

Ví dụ 3.9: Xóa CSDL MyDB31 sau khi ngắt tất cả kết nối tới CSDL này
3.2. Giao dịch dữ liệu
3.2.1. Khái niệm giao dịch
Giao dịch (transaction) là một tập hợp có thứ tự các thao tác trên CSDL cấu thành một đơn vị công việc logic không thể chia cắt.
Ví dụ 3.10: Ngân hàng thực hiện chuyển tiền từ tài khoản A sang tài khoản B, giao dịch này bao gồm hai thao tác:
- Trừ tiền trong tài khoản A
- Cộng tiền trong tài khoản B
Hai thao tác này hoặc cả hai thành công hoặc không có thao tác nào thành công. Nếu một công việc vì lý do nào đó không thực hiện
thành công thì trạng thái ban đầu (trước khi chuyển tiền) phải được khôi phục để bảo toàn dữ liệu.
3.2.2. Tính chất của giao dịch
Các CSDL sử dụng nhật ký giao dịch (transaction log) để ghi lại các thay đổi trên dữ liệu do các thao tác trong giao dịch gây ra.
Dựa các các nhật ký giao dịch này, dữ liệu có thể được phục hồi trong trường hợp: lỗi phát sinh khiến cho giao dịch không thể thành công/
ít nhất một thao tác trong giao dịch không thực hiện thành công.
Trên cơ sở đó, một giao dịch phải đáp ứng tính nguyên tử, tính nhất quán, tính độc lập và tính bền vững.
3.3. Sao lưu, phục hồi dữ liệu
Sao lưu dữ liệu quan trọng nhất với DBA (Database administrator- nhà quản trị csdl).
Mục tiêu: Dự phòng các biến cố có thể xảy ra; Phục hồi dữ liệu nhanh và chính xác
Các biến cố: Chủ quan & khách quan; Hệ thống & hành vi; Bên trong & bên ngoài.
SQL Server ưu tiên thực hiện giao dịch, xong tiếp tục sao lưu. Dữ liệu sao lưu đã bị thay đổi. Sau khi sao lưu dữ liệu, SQL Server thực
hiện sao lưu transaction logs
Sau đó, SQL Server sẽ khôi phục tiếp transaction log. Các dữ liệu sẽ được roll forward để đảm bảo không bị thay đổi trong quá trình sao
lưu. Đến dữ liệu thứ ba (456), SQL Server phát hiện có sự thay đổi (từ log backup), roll back được thực hiện.
3.3.1. Phương pháp sao lưu dữ liệu
3.3.1.1. Sao lưu đầy đủ
Sao lưu đầy đủ (Full database backup) là phương pháp sao chép vào tập tin lưu trữ toàn bộ CSDL, bao gồm tất cả nhóm
tập tin, tập tin dữ liệu, dữ liệu người dùng, các đối tượng dữ liệu như là bảng hệ thống, chỉ mục, bảng người dùng định nghĩa, ...
Phương pháp sao lưu đầy đủ nhất, tốn kém nhất về thời gian thực hiện và phương tiện lưu trữ.
Sao lưu đầy đủ chỉ thực hiện được khi ngừng toàn bộ hoạt động của hệ thống, nghĩa là không có bất cứ giao dịch nào truy
cập CSDL.
Với bản sao lưu đầy đủ, CSDL có thể được phục hồi về thời điểm thực hiện sao lưu gần nhất.
Phương pháp sao lưu này phù hợp với CSDL có đặc điểm sau đây:
- CSDL ít quan trọng, những thay đổi của CSDL có thể tái tạo thủ công hơn là sử dụng các nhật ký giao dịch
- CSDL ít thay đổi, CSDL chỉ đọc
- CSDL có kích thước vừa và nhỏ
Ví dụ 3.14: Lịch trình sao lưu dữ liệu
Thời điểm Hành động

24:00 (Thứ 3) Sao lưu đầy đủ (1)

24:00 (Thứ 4) Sao lưu đầy đủ (2)

24:00 (Thứ 5) Sao lưu khác biệt (3)

24:00 (Thứ 6) Sao lưu khác biệt (4)

- Sao lưu đầy đủ (1) được tạo lúc 24:00 thứ 3, bao gồm tất cả “mọi thứ” trong CSDL tại thời điểm 24:00 thứ 3.
- Sao lưu đầy đủ (2) được tạo lúc 24:00 thứ 4, bao gồm tất cả “mọi thứ” trong CSDL tại thời điểm 24:00 thứ 4.
3.3.1.2. Sao lưu khác biệt
Sao lưu khác biệt (Differential database backup) là phương pháp sao chép vào tập tin lưu trữ chỉ những dữ liệu bị thay
đổi kể từ lần sao lưu đầy đủ gần nhất.
Phương pháp này nhanh hơn và ít tốn không gian lưu trữ hơn rất nhiều so với phương pháp sao lưu đầy đủ.
Khó thực hiện hơn và việc phục hồi dữ liệu sử dụng các bản sao lưu khác biệt đòi hỏi nhiều thời gian hơn.
Với sao lưu khác biệt, CSDL có thể được phục hồi về thời điểm thực hiện sao lưu gần nhất.
Phương pháp sao lưu này phù hợp với CSDL có đặc điểm sau đây:
- CSDL ít quan trọng, những thay đổi của CSDL có thể tái tạo thủ công hơn là sử dụng các nhật ký giao dịch.
- Tài nguyên để thực hiện sao lưu dữ liệu bị hạn chế như thiếu vùng lưu trữ hoặc thời gian thực hiện sao lưu.
Ví dụ 3.15: Lịch trình sao lưu dữ liệu
Thời điểm Hành động
24:00 (Thứ 3) Sao lưu đầy đủ (1)

06:00 (Thứ 4) Sao lưu khác biệt (2)

12:00 (Thứ 4) Sao lưu khác biệt (3)

18:00 (Thứ 4) Sao lưu khác biệt (4)

24:00 (Thứ 4) Sao lưu đầy đủ (5)

06:00 (Thứ 5) Sao lưu khác biệt (6)

12:00 (Thứ 5) Sao lưu khác biệt (7)

- Sao lưu khác biệt (2) bao gồm tất cả mọi thay đổi dữ liệu từ lần sao lưu đầy đủ (1)
- Sao lưu khác biệt (3) gồm tất cả mọi thay đổi dữ liệu từ sao lưu đầy đủ (1) đến 12:00 thứ 4.
- Sao lưu khác biệt (7) gồm tất cả mọi thay đổi dữ liệu từ sao lưu đầy đủ (5) đến 12:00 thứ 5.
3.3.1.3. Sao lưu nhật ký giao dịch
Sao lưu nhật ký giao dịch (Transaction log backup) là phương pháp sao chép vào tập tin lưu trữ các bản ghi nhật ký
trong tập tin nhật ký giao dịch kể từ lần sao lưu đầy đủ/khác biệt/nhật ký gần nhất. Sao chép một cách có thứ tự tất cả các thao tác
chứa trong LDF kể từ lần transaction log backup gần nhất. Chỉ sao lưu những thao tác, ko lưu dữ liệu (data) của database.
Phương pháp này không sao chép lại bản thân dữ liệu mà chỉ sao chép các thao tác ảnh hưởng đến dữ liệu (thêm mới, sửa,
xóa).
Do đó, việc tạo các bản sao lưu nhật ký giao dịch thường diễn ra trong thời gian ngắn và ít tốn không gian lưu trữ so với
phương pháp sao lưu khác biệt.
Tuy nhiên, các bản sao lưu nhật ký không thể tồn tại độc lập mà phải kết hợp với một bản sao lưu đầy đủ và các bản sao
lưu khác biệt (nếu có).
Với sao lưu nhật ký giao dịch, CSDL có thể được phục hồi về một thời điểm bất kỳ trong quá khứ mà vẫn đảm bảo tính
nhất quán.
Phương pháp sao lưu này phù hợp với CSDL có đặc điểm sau đây:
- Tài nguyên để thực hiện sao lưu dữ liệu bị hạn chế như thiếu vùng lưu trữ hoặc thời gian thực hiện sao lưu.
- Không chấp nhận việc mất dữ liệu khi gặp sự cố và không thể khôi phục được.
- Mong muốn trả về CSDL tại thời điểm xảy ra sự cố.
- CSDL thay đổi thường xuyên
3.3.1.4. File or file group backups
Sao chép một datafile đơn hoặc một file group
Ví dụ 3.16: Lịch trình sao lưu dữ liệu
Thời điểm Hành động

24:00 (Thứ 3) Sao lưu đầy đủ (1)

01:00 (Thứ 4) Sao lưu nhật ký (2)

02:00 (Thứ 4) Sao lưu nhật ký (3)

03:00 (Thứ 4) Sao lưu nhật ký (4)

04:00 (Thứ 4) Sao lưu nhật ký (5)

05:00 (Thứ 4) Sao lưu nhật ký (6)

06:00 (Thứ 4) Sao lưu khác biệt (7)

07:00 (Thứ 4) Sao lưu nhật ký (8)

08:00 (Thứ 4) Sao lưu nhật ký (9)

09:00 (Thứ 4) Sao lưu nhật ký (10)


- Sao lưu nhật ký (2) gồm tất cả mọi nhật ký giao dịch từ lần sao lưu gần nhất đến 01:00 thứ 4.
- Sao lưu nhật ký (3) gồm tất cả mọi nhật ký giao dịch từ lần sao lưu gần nhất đến 02:00 thứ 4.
- Sao lưu khác biệt (7) gồm tất cả mọi thay đổi dữ liệu từ lần sao lưu đầy đủ (1)
- Sao lưu nhật ký (8) gồm tất cả mọi nhật ký giao dịch từ lần sao lưu gần nhất (7) đến 07:00 thứ 4.
- Sao lưu nhật ký (9) gồm tất cả mọi nhật ký giao dịch từ 07:00 thứ 4 (lần sao lưu (8) đến 08:00 thứ 4.
3.3.2. Chiến lược sao lưu
Chiến lược sao lưu là cách lựa chọn phương pháp sao lưu, tần suất sao lưu dữ liệu của hệ thống. Hoạch định chiến lược
sao lưu tối ưu phụ thuộc vào quy mô của hệ thống, mức độ quan trọng của dữ liệu và tính chất nghiệp vụ của hệ thống.
3.3.3. Phương pháp phục hồi dữ liệu
Phục hồi dữ liệu (data recovery) là quá trình đưa CSDL về trạng thái nhất quán, trong đó các giao dịch đã được hoàn tất (commit)
sẽ được ghi lên đĩa (redo) và các giao dịch chưa hoàn tất sẽ bị hủy bỏ (undo). Việc khôi phục sẽ đưa CSDL về trạng thái ngay trước
khi thực hiện việc sao lưu. Giao dịch nào không hoàn thành trong khi sao lưu bị hủy bỏ để đảm bảo tính nhất quán.
Điều gì xảy ra nếu trong quá trình thực hiện sao lưu phát sinh giao dịch làm thay đổi dữ liệu? Dùng log backup để giải quyết
Mục đích của phục hồi dữ liệu là duy trì tính nhất quán của CSDL, hạn chế tối đa khối lượng công việc cần phải thực hiện khi sự
cố xảy ra.
Việc phục hồi dữ liệu đòi hỏi phải có bản sao lưu dữ liệu phù hợp đã được thực hiện trước đó. Khôi phục dữ liệu là quá trình sao
chép dữ liệu từ bản sao lưu có sẵn ngược trở lại CSDL.
Khác với sao lưu, việc khôi phục chỉ được thực hiện khi CSDL tạm ngưng hoạt động, tức là không thể có bất kỳ kết nối nào tới
CSDL.
Phục hồi chỉ cho toàn bộ CSDL. (ko có 1 phần)
Thông thường, việc phục hồi với các bản sao lưu đầy đủ, khác biệt và nhật ký giao dịch sẽ đưa CSDL về trạng thái gần
nhất có thể tại một thời điểm X bất kỳ trong quá khứ. Trình tự sử dụng các bản sao lưu như sau:
- Đầu tiên, bản sao lưu đầy đủ gần với thời điểm X nhất,
- Tiếp theo là bản sao lưu khác biệt gần với thời điểm X nhất,
- Cuối cùng là các bản sao lưu nhật ký giao dịch từ thời điểm thực hiện sao lưu khác biệt nói trên đến thời điểm X theo
đúng trình tự thời gian.
Quy trình phục hồi:
Full recovery mode: Tất cả giao dịch đều được ghi trong log file; dữ liệu được phục hồi ngược trở lại tới một thời điểm trong quá khứ.
Bulk-logged recovery mode: Một số giao dịch (Insert, update, delete) được ghi đầy đủ trong logfile, một số khác thì chỉ ghi ngắn gọn.
Simple recovery mode: Logfile được truncate thường xuyên và không cần sao lưu; dữ liệu được phục hồi ngược trở lại tới một thời điểm
sao lưu gần nhất.
Chính sách phục hồi:
Full database restore: Phục hồi toàn bộ CSDL bằng cách sử dụng Full hoặc differential backup gần nhất (nếu có) và tất cả các
transaction log backup theo trình tự kể từ lần sao lưu toàn bộ hay sao lưu khác biệt gần nhất
File or file group restore with full recovery: Phục hồi toàn bộ tập tin hoặc nhóm tập tin bằng cách sử dụng File or Filegroup backup gần
đây nhất (nếu có) và tất cả các log backup theo trình tự kể từ lần sao lưu toàn bộ hay sao lưu khác biệt gần nhất
Recovery to a point in time: Phục hồi toàn bộ CSDL được chỉ định trước tại một thời điểm bằng cách sử dụng fully logged transactions
trong log backup cùng với database, file hoặc file group backups
Recovery to a named transaction: Phục hồi toàn bộ CSDL được chỉ định bởi named mark bằng cách sử dụng fully logged transactions
trong log backup cùng với database, file hoặc file group backups.

Phương tiện lưu trữ:

3.3.4. Sao lưu, phục hồi dữ liệu trong SQL Server


3.3.4.1. Sao lưu dữ liệu với SSMS
- Ghi đè phương tiện lưu trữ (Overwrite media): lựa chọn chính sách xử lý khi phương tiện lưu trữ được chọn ở bước 4
đã tồn tại.
o Ghi vào tập phương tiện lưu trữ sẵn có (Backup to the existing media set) ▪ Ghi tiếp theo vào cuối phương tiện
lưu trữ hiện có (Append to the existing backup set)
▪ Ghi đè lên tất cả các tập phương tiện lưu trữ hiện có (Overwrite all the existing backup sets)
o Ghi vào tập phương tiện lưu trữ mới, và xóa tất cả các tập phương tiện lưu trữ đang có.
3.3.4.2. Phục hồi dữ liệu với SSMS
sysadmin hoặc dbcreator fixed server và thực hiện các bước sau đây trên giao diện quản trị: Chọn nút Databases, nhấn
chuột phải và chọn chức năng Restore Database. 3.3.4.3. Sao lưu dữ liệu với T-SQL

3.3.4.4. Phục hồi dữ liệu với T-SQL


3.4. Tự động hóa các tác vụ quản trị
3.4.1. Khái niệm
Tự động hóa các tác vụ quản trị là tận dụng các quy trình và công cụ để làm cho công tác quản trị CSDL trở nên đơn giản
và an toàn hơn.
Tự động hóa có thể được áp dụng để cung cấp, nâng cấp, vá lỗi, chuyển đổi dự phòng, khôi phục, mở rộng quy mô và một
số thủ tục CSDL khác.
Tự động hóa các thao tác đơn điệu này là giải pháp tốt để đảm bảo chúng được thực hiện một cách chính xác và đúng tiến
độ.
Cho dù CSDL được thiết kế hoàn hảo đến đâu, hệ thống sẽ sớm ngừng hoạt động nếu không được bảo trì thích hợp. Nhờ
đó, đội ngũ quản trị viên CSDL có thể tập trung vào các nhiệm vụ quan trọng hơn: điều chỉnh hiệu suất, thiết kế truy vấn, mô hình
hóa dữ liệu hoặc cung cấp lời khuyên về kiến trúc cho các nhà phát triển ứng dụng.
3.4.2. Các khả năng tự động hóa
Mục đích áp dụng cho hệ quản trị CSDL; các nhiệm vụ vận hành cơ sở hạ tầng liên quan. Các khả năng tự động hóa CSDL
phổ biến nhất:
Xử lý dữ liệu: tác vụ xử lý dữ liệu: thu thập, sao chép, dọn dẹp và di chuyển dữ liệu một cách tự động → dữ liệu trở nên
có ý nghĩa hơn, an toàn, đáng tin cậy và sẵn sàng sử dụng ngay khi cần thiết.
Khôi phục và bảo vệ sau thảm họa: Việc mất các tài sản thông tin ảnh hưởng khả năng hoạt động một tổ chức. Đưa ra chiến lược
giảm thiểu rủi ro như:
∙ Dựphòng CSDL
∙ Phân phối trên các khu vực máy chủ khác nhau về địa lý
∙ Tự động kích hoạt hệ thống phòng thủ chống lại sự thỏa hiệp và các cuộc tấn công mạng.
Sao lưu và phục hồi: tự động sao lưu và khôi phục trong các trường hợp cụ thể nhằm giảm nguy cơ mất dữ liệu, đặc biệt trong
trường hợp có sự xâm nhập mạng làm ảnh hưởng đến tính toàn vẹn của CSDL nhạy cảm và quan trọng.
Cải tiến bảo mật: Triển khai các quy trình quản lý truy cập và xác thực mạnh mẽ.
Tuân thủ quy định: Không tuân thủ có thể dẫn đến: Tiền phạt; Rắc rối pháp lý; Mất niềm tin vào một thị trường người dùng ngày
càng nhận thức rõ về quyền riêng tư.
Kiểm toán và báo cáo: giám sát và theo dõi cách CSDL và thông tin chứa bên trong thay đổi. CSDL kiểm toán có thể giúp tổ
chức hiểu cách thức hoạt động, hệ thống và tài sản dữ liệu tuân thủ các chính sách của tổ chức và quy định.
3.4.3. Tự động hóa các tác vụ quản trị trong SQL Server
Công cụ: SQL Server Agent/ T-SQL: giúp thực hiện tự động các công việc lặp đi lặp lại nhiều lần trong một thời gian
nhất định trong quá trình quản lý CSDL. Công việc đc thực hiện nhất quán.
Các thành phần cần thiết để tự động hóa các tác vụ quản trị:
- Tác nhân điều hành (Operator): Bí danh cho cá nhân hoặc nhóm có thể nhận được thông báo khi công việc đã hoàn
thành or cảnh báo phát sinh trong quá trình thực hiện. Operator kích hoạt khả năng thông báo và giám sát. Mục đích: tự động thực
hiện một số hoạt động, nhằm chủ động trong quá trình vận hành hệ thống Các thành phần: Lịch trình (thời gian); Thông báo (địa
chỉ, nội dung).
- Công việc (Job): Một hay một nhóm nhiệm vụ mà SQL Server Agent sẽ thực thi. Mục đích: Tự động hóa một số công việc
(nhiều bước) với nhiều lịch trình, nhằm chủ động trong quá trình vận hành hệ thống (thành công, thất bại). Các thành phần:
Bước thực hiện; Lịch trình (thời gian); Cảnh báo; Thông báo (địa chỉ, nội dung).
- Lịch trình (Schedule): xác định khi nào Job sẽ thực thi; Có thể một hay nhiều Job chạy trên cùng một Schedule và một hoặc
nhiều Schedule có thể áp dụng cho cùng một Job.
- Cảnh báo (Alert): Tự động hóa việc gửi cảnh báo, nhằm chủ động trong quá trình vận hành hệ thống. Các thành phần: Nội
dung, phả
3.4.3.1. Khởi động SQL Server Agent
Dịch vụ SQL Server Agent chỉ áp dụng trong các bản cài đặt Enterprise, Developer hoặc Standard. Mặc định SQL Server
Agent ở chế độ không khả dụng (Agent XPs disabled).
3.5. Giám sát hiệu suất
Giám sát hiệu suất: thu thập và phân tích liên tục các chỉ số sử dụng, hiệu suất và sự kiện cho hệ quản trị CSDL. Đây là
bước đầu tiên trong việc tối ưu hóa hiệu suất cho các ứng dụng phụ thuộc vào nền tảng dữ liệu hiện có.
Giám sát hiệu suất cao mang lại cái nhìn tổng thể về toàn bộ dữ liệu; cung cấp các phân tích sâu cần thiết → phát hiện
nguyên nhân của các vấn đề hiệu suất khó khăn nhất. Một giải pháp giám sát toàn diện gồm: tùy chọn mở rộng để cảnh báo chủ
động và tự động khắc phục các sự cố hiệu suất quen thuộc.
3.5.1. Ba mục tiêu chính của giám sát hoạt động hệ quản trị CSDL:
- Xác định những gì đang xảy ra bên trong hệ quản trị CSDL.
- Xác định mức độ hệ quản trị CSDL sử dụng hiệu quả tài nguyên máy chủ.
- Xây dựng hồ sơ hoạt động của hệ quản trị CSDL.
Việc giám sát hệ quản trị CSDL mang lại các lợi ích thiết thực sau đây:
- Giảm các sự cố liên quan tới hiệu suất hoạt động: tối ưu hóa nền tảng dữ liệu tổng thể và hỗ trợ các hoạt động kinh doanh khác thay vì
liên tục chữa cháy vì các sự cố do hiệu suất.
- Chi phí cơ sở hạ tầng thấp hơn: đảm bảo các ứng dụng đạt được hiệu suất tốt nhất có thể trong ranh giới dịch vụ và phần cứng.
- Quản lý rủi ro.
3.5.2. Các nội dung giám sát
Giám sát hiệu suất rất quan trọng vì nó giúp quản trị viên xác định các vấn đề CSDL trước khi chúng trở thành vấn đề. Để giữ cho ứng
dụng có thể truy cập và hoạt động.
Nội dung giám sát gồm: Tài nguyên hệ thống; Bản thân SQL Server; Cơ sở dữ liệu; Các ứng dụng cơ sở dữ liệu; Mạng.

3.5.2.1. Các cách tiếp cận chung


Hai cách tiếp cận chính để giám sát CSDL: chủ động và phản ứng.
Cách tiếp cận chủ động: xác định các vấn đề trước khi chúng trở thành vấn đề, ít rủi ro hơn và mang lại trải nghiệm người dùng cuối tốt.
Nhà quản trị phải đang theo dõi các chỉ số phù
hợp và cảnh báo cho những người có liên quan khi có điều gì đó không ổn hoặc bất thường.
Cách tiếp cận phản ứng: giảm thiểu tác động của những vấn đề đó khi chúng đã xảy ra.
Giám sát phản ứng: khắc phục sự cố hiệu suất, báo cáo sự cố lớn hoặc điều tra vi phạm bảo mật.

3.5.2.2. Các chỉ số chính


Cung cấp thông tin chi tiết về tình trạng tổng thể của môi trường CSDL:
- Truy vấn (Queries): Để đảm bảo hiệu suất tổng thể ở mức cao, theo dõi hiệu suất của chính các truy vấn. Giám sát sẽ cảnh báo về các
vấn đề truy vấn bao gồm kết hợp không hiệu quả giữa các bảng, chỉ mục không đủ hoặc thừa và quá nhiều chữ.
- Dung lượng (Capacity): do phần cứng như tốc độ CPU chậm hoặc CPU không đủ, đĩa chậm, đĩa bị định cấu hình sai, đầy đĩa và thiếu bộ
nhớ.
- Xung đột người dùng (Conflicts among users): Nhiều người dùng cùng truy
cập CSDL có thể gây ra các hoạt động và truy vấn xung đột. Hiệu suất CSDL giảm do bị khóa trang / hàng, khóa giao dịch hoặc các hoạt
động hàng loạt gây ra tranh chấp tài nguyên phần cứng.
- Cấu hình (Configuration issues): Đĩa không có cấu hình phù hợp gây ra các vấn đề về hiệu suất. Việc giám sát sẽ phát hiện ra các vấn đề:
bộ đệm không đủ kích thước hoặc thiếu bộ đệm truy vấn.

3.5.2.3. Các phương pháp chính


Giám sát tính khả dụng và tiêu thụ tài nguyên, đo lường và so sánh thông lượng, giám sát các truy vấn tốn kém, theo dõi các thay đổi
CSDL, theo dõi nhật ký và kết hợp dữ liệu lịch sử.
3.5.3. Các công cụ và kỹ thuật giám sát hiệu suất trong SQL Server
Phần lớn thời gian của người quản trị là giám sát hiệu suất, mục đích là thu thập các
số liệu dùng chuẩn đoán và theo dõi việc sử dụng tài nguyên của hệ thống, để có những
quyết định can thiệp xử lý phù hợp kịp thời, nhằm đảm bảo cho hệ thống làm việc nhanh
chóng, liên tục và ổn định. SQL Server cung cấp rất nhiều công cụ giám sát các hoạt động
hiện tại và ghi lại chi tiết các hoạt động trong khoảng thời gian trước đó.
3.5.3.1. Activity Monitor
Activity Monitor là công cụ tích hợp trong SSM.
3.5.3.2. Log File Viewer
Log File Viewer trong SSMS là công cụ cho phép truy cập thông tin về lỗi và sự
kiện được ghi lại trong tập tin nhật ký. Các tập tin này có thể được xem từ phiên bản cục
bộ hoặc từ xa của SQL Server khi phiên bản đích ngoại tuyến hoặc không thể khởi động.

3.5.3.3. SQL Server Locking & Killing locks

3.5.3.4. Sử dụng thủ tục hệ thống:

3.5.3.5. Sử dụng câu lệnh DBCC


CHƯƠNG 4: QUẢN TRỊ THÀNH PHẦN CƠ SỞ DỮ LIỆU

4.1. Các thành phần lưu trữ


4.1.1. Bảng dữ liệu
Bảng dữ liệu (Data table) = bảng lưu trữ (Stored table) là đối tượng được sử dụng để tổ chức và lưu trữ dữ liệu, biểu diễn quan hệ và các
bộ dữ liệu. Bảng được xác định bởi tên định danh duy nhất trong mỗi CSDL. Cấu trúc của bảng bao gồm: Thuộc tính, Miền giá trị, Ràng
buộc toàn vẹn.
Các thao tác liên quan tới cấu trúc của bảng dữ liệu: Tạo mới (CREATE), sửa chữa (ALTER) và xóa (DROP) lệnh chỉ thành công khi
bảng bị xóa không được tham chiếu tới bởi bất kỳ ràng buộc tham chiếu nào.
. Các thao tác thực hiện thông qua giao diện quản trị SSMS hoặc ngôn ngữ truy vấn T-SQL.
Các thao tác liên quan tới dữ liệu trong bảng: INSERT, UPDATE, DELETE, SELECT.

4.1.2. Khung nhìn


Khung nhìn (view): một bảng ảo dựa trên tập kết quả của một câu lệnh truy vấn dữ liệu. Khung nhìn chứa các hàng và cột, giống như một
bảng lưu trữ. Tạo các khung nhìn (view) khác nhau theo nhu cầu của từng nhóm người dùng hay ứng dụng sử dụng dữ liệu (danh sách
ngày sinh nhân viên giống thiên vị á)
Khung nhìn hệ thống: (system view)
Khung nhìn người dùng (user view):

Bảng:

Khung nhìn:

Cú pháp tạo khung nhìn:

Khung nhìn có khả năng cập nhật: thêm xóa sửa, thay đổi trên bảng bảng cơ sở làm thay đổi khung nhìn đó. Thậm chí, sự thay đổi khung
nhìn (trong vài trường hợp) dẫn tới sự thay đổi tương tự trên bảng cơ sở.
Ví dụ: Giả sử EmployeeOnDep1 là khung nhìn với bảng cơ sở là Employee
Xóa khung nhìn bằng lệnh DROP VIEW EmployeeOnDep1 →Xóa định nghĩa tạo khung nhìn; không ảnh hưởng tới bảng cơ sở.
Xóa bảng Employee bằng lệnh DROP TABLE Employee →Xóa lược đồ và thể hiện của bảng Employee; Khung nhìn EmployeeOnDep1
trở nên không sử dụng được.

Thay đổi khung nhìn:

Xóa khung nhìn: Drop View tênview


Chú ý:
- Các quyền đã cấp cho khung nhìn bị xóa khi khung nhìn bị xóa.
- Xóa định nghĩa khung nhìn, không ảnh hưởng đến bảng cơ sở hay dữ liệu trong bảng cơ sở; ngược lại, xóa bảng cơ sở làm cho khung
nhìn trở nên không thể sử dụng được.
Dấu hiệu nhận biết khung nhìn cập nhật
Các cột xuất hiện trong mệnh đề SELECT phải là các cột trong bảng cơ sở; các112
biểu thức tính toán, các hàm kết hợp không được chấp nhận Không sử dụng từ khóa DISTINCT trong mệnh đề SELECT; Các thuộc tính
trong mệnh đề SELECT đủ để khi một bộ được thêm vào khung nhìn, một bộ tương ứng sẽ được thêm vào bảng cơ sở; Sử dụng một bảng
cơ sở với một thể hiện duy nhất trong mệnh đề FROM; Không sử dụng câu truy vấn lồng liên quan tới bảng cơ sở trong mệnh đề
WHERE.
Thêm khung nhìn:
4.1.3. Chỉ mục
Chỉ mục (Index): một cấu trúc dữ liệu dùng để tăng tốc độ truy cập dữ liệu trong bảng dựa trên giá trị của một (số) thuộc tính cho trước.
Chỉ mục được thể hiện bởi cây nhị phân tìm kiếm với các cặp giá trị (key, positions), trong đó positions là những vị trí trong bảng dữ liệu
có giá trị tương ứng với khóa key.
Chỉ mục là một con trỏ chỉ tới từng vị trí xuất hiện trong bảng/cột được đánh chỉ mục. Với con trỏ này, bộ truy vấn thay vì duyệt từng
hàng dữ liệu trong bảng để tìm, thì nó sẽ di chuyển ngay lập tức tới vị trí chứa giá trị đó.
→ Giúp tăng tốc các truy vấn SELECT chứa các mệnh đề WHERE hoặc ORDER BY.
→ Chỉ mục sẽ làm chậm đi quá trình xử lý dữ liệu nhập với các lệnh INSERT, UPDATE hay DELETE. Do dữ liệu trong bảng cơ sở thay
đổi làm khởi động lại câu lệnh tạo chỉ mục trên bảng cơ sở đó.
Tạo mới hay xóa bỏ chỉ mục không ảnh hưởng tới dữ liệu trong bảng cơ sở.
Chỉ mục trên thuộc tính khóa của bảng cơ sở rất hữu dụng, do truy vấn trên thuộc tính khóa. Chỉ mục trên khóa xác định duy nhất một vị
trí chứa giá trị cần tìm, tăng tốc độ xử lý câu truy vấn.
Ngoại lệ tạo chỉ mục: chỉ mục được tạo trên thuộc tính gần như là khóa, giúp xác định nhanh một vài vị trí cho mỗi giá trị của thuộc tính.
Chỉ mục đc tạo trên huộc tính phân loại nhằm chỉ ra vị trí ứng với giá trị đại diện của mỗi nhóm.
Chú ý khi sử dụng chỉ mục:
Chỉ mục được tạo trên một thuộc tính của quan hệ nhằm tăng tốc độ truy xuất dữ liệu liên quan đến thuộc tính đó.
Mỗi khi giá trị tại thuộc tính đó bị thay đổi (thêm, mới, chỉnh sửa, xóa), toàn bộ chỉ mục sẽ được xác định lại.
Do đó, hạn chế sử dụng chỉ mục, chỉ sử dụng chỉ mục khi thật sự cần thiết.
Chỉ mục được định nghĩa bởi câu lệnh sau đây: CREATE INDEX index_name ON table_name (<list columns>);

4.2. Các thành phần xử lý


4.2.1. Thủ tục lưu trữ SP:
Thủ tục lưu trữ (Stored procedure) là đối tượng trong CSDL, gồm tập các câu lệnh T-SQL thực hiện 1 nhiệm vụ cụ thể, được đặt tên, lưu
trữ cùng nhau trong CSDL - dưới dạng đã biên dịch.
SP cung cấp một phương pháp hữu ích cho việc thực thi lặp lại cùng một nhiệm vụ: Giúp tái sử dụng code; Sử dụng lời gọi SP mỗi khi
thực thi. Dễ dàng sửa đổi: câu lệnh ALTER PROCEDURE, phân quyền phù hợp. Bảo mật: hạn chế người dùng truy cập trực tiếp vào
bảng lưu trữ. Lưu lượng đường truyền thấp: Máy chủ chỉ chuyển tên thủ tục thay vì toàn bộ các câu lệnh. Tăng hiệu suất: thủ tục đc tạo và
lưu trữ trong vùng đệm để thực hiện nhanh chóng cho lần tiếp theo.

Thủ tục lưu trữ bao gồm hai loại thủ tục hệ thống (system procedure) và thủ tục người dùng định nghĩa (user-defined procedure).

Bốn thành phần của một thủ tục lưu trữ là tên gọi, các tham số, các câu lệnh thực thi và giá trị trả về (nếu có).
- Tên gọi: định danh, duy nhất trong mỗi CSDL.
- Tham số: đại lượng dùng để lưu giữ giá trị trao đổi giữa thủ tục và môi trường thực thi.
o Phân loại
Tham số đầu vào (lưu giữ giá trị truyền vào từ môi trường thực thi): Tham số bắt buộc (bắt buộc phải truyền giá trị cho tham só); Tham số
tùy chọn (đã được gắn giá trị mặc định: nếu không có giá trị được truyền trong lời gọi thủ tục, tham số nhận gtri mặc định)
Tham số đầu ra: (lưu giữ giá trị trả về môi trường thực thi.Khai báo bằng từ khóa OUTPUT: trả gtri bất kỳ/ hàm RETURN để trả về giá trị
số nguyên)
o Các câu lệnh thực thi: mọi câu lệnh SQL, bao gồm câu lệnh khai báo biến.
o Truyền giá trị cho tham số đầu vào: Truyền theo vị trí (thứ tự các giá trị truyền = thứ tự tham số được liệt kê trong câu lệnh định nghĩa
thủ tục); Truyền theo tên: (các cặp <tên tham số> = <giá trị> được liệt kê trong lời gọi thủ tục
Kiểm tra tính hợp lệ và tạo thông báo lỗi
🞇 Xử lý lỗi với lệnh TRY ... CATCH
🞇 Phát sinh lỗi với lệnh RAISERROR

Xem nội dung SP lưu trữ trong CSDL: sp_helptext [tên thủ tục]
Chỉnh sửa nội dung SP: alter procedure ...
Xóa SP: drop procedure ...
4.2.2. Hàm
Hàm (Function) là một đối tượng trong CSDL, gồm một nhóm các câu lệnh SQL được đặt tên là lưu trữ cùng nhau trong CSDL. hàm hệ
thống (system function) và hàm người dùng định nghĩa (user-defined function).
4.2.3. Trình kích hoạt/ Bẫy lỗi Trigger
Trigger là một loại thủ tục lưu trữ đặc biệt ở trạng thái sẵn sàng, được kích hoạt bởi một sự kiện xảy ra trong máy chủ CSDL. Mục đích:
tự động thực hiện việc kiểm soát / kiểm tra sự thay đổi của dữ liệu
Có ba loại trình kích hoạt tương ứng với ba loại sự kiện: bao gồm đăng nhập (Login trigger):phản hồi sự kiện đăng nhập , thay đổi cấu
trúc (DDL trigger): câu lệnh CREATE, ALTER và DROP và thay đổi dữ liệu (DML trigger): INSERT, UPDATE hoặc DELETE trên
bảng lưu trữ hoặc khung nhìn.
Các thành phần của trigger: Tên trigger; Bảng (khung nhìn) liên kết với trigger; Thời điểm kích hoạt (FOR / AFTER / INSTEAD OF);
Hành động kích hoạt (INSERT / UPDATE / DELETE); Các thao tác được thực hiện sau khi kích hoạt.
Câu lệnh tạo trigger:

chú ý: Trigger ghi dòng dữ liệu mới (thêm mới, thay đổi) vào bảng Inserted trong bộ nhớ cache.
Trigger ghi dòng dữ liệu cũ (bị xóa, thay đổi) vào bảng Deleted trong bộ nhớ cache.
Điều kiện áp dụng: Cài đặt ràng buộc toàn vẹn; Kiểm soát sự thay đổi dữ liệu trong bảng; Kiểm tra dữ liệu nhập phù hợp với mối quan hệ
giữa các bảng; Định nghĩa thông báo lỗi; So sánh trạng thái trước và sau khi hiệu chỉnh.
CHƯƠNG 5: QUẢN TRỊ NGƯỜI DÙNG SQL SERVER.
1. Quyền đăng nhập hệ thống
Mô hình truy cập: / bảo mật

Cơ chế bảo mật:


🞇 Quyền (Permission): Quy định các hành động người dùng có thể thực hiện trên CSDL hoặc các đối tượng CSDL cụ thể
🞇 Vai trò (Role): Tập quyền được gán cho người dùng
Người dùng hoặc nhóm người dùng được gán các quyền và vai trò nhất định để truy cập tới CSDL.

Cơ chế xác thực:


SQLServer hỗ trợ hai cơ chế xác thực
🞇Windows Authentication mode: Xác thực sử dụng tài khoản đăng nhập hệ điều hành Windows
🞇SQLServer and Windows Authentication mode: Tài khoản đăng nhập Windows; Tài khoản SQLServer.
Chuyển đổi cơ chế xác thực
🞇 SSMS cho phép chuyển đổi qua lại giữa các chế độ xác thực
🞇 SQLServer service cần được restart để sự chuyển đổi này có hiệu lực
2. Quyền truy xuất dữ liệu
Quyền cấp máy chủ: quản lý các quyền trên máy chủ.
máy chủ cố định (fixed server role)/máy chủ của riêng mình (user-defined server role).

Quyền cấp cơ sở dữ liệu: quản lý quyền trong CSDL. Vai trò CSDL cố định (fixed database roles) db_owner/vai trò CSDL do
người dùng xác định (user-defined database roles) msdb

3. Tạo và quản lý việc đăng nhập:


Tài khoản đăng nhập:
Người dùng kết nối SQLServer thông qua tài khoản đăng nhập (Login ID).
Login ID được xem là cơ chế bảo mật cấp hệ thống (system security), bao gồm
🞇 Tên tài khoản
🞇 Mật khẩu
Quy tắc đặt mật khẩu:
🞇 Không được để trống hoặc dùng các từ ngữ thông thường, dễ nhớ
🞇 Không sử dụng tên máy, tên người sử dụng
🞇 Có nhiều hơn 8 ký tự
🞇 Phải chứa ít nhất 3 trong số các ký tự sau
Chữ cái viết hoa
Chữ cái viết thường
Chữ số
Ký tự đặc biệt
- Tạo tài khoản đăng nhập bằng T-SQL. / SSMS

- Tạo Windows login bằng thủ tục hệ thống → Áp dụng đối với thành viên của sysadmin hoặc securityadmin server
roles.

- Tạo SQL Server login bằng thủ tục hệ thống: → Áp dụng đối với thành viên của sysadmin hoặc securityadmin server roles.

- Gán server roles cho login bằng T-SQL: Thành viên của nhóm có thể thêm login vào nhóm; thành viên nhóm sysadmin thêm
login vào tất cả các nhóm.

Tài khoản người dùng


Mỗi Login ID phải được kết nối với một tài khoản người dùng CSDL (DB user)
DB user là cơ chế bảo mật cấp cơ sở dữ liệu (database security), bao gồm;
🞇 Tên người dùng
🞇 Login ID
Mỗi CSDL có danh sách người dùng được xác thực để truy cập CSDL đó
Khi tạo DB User
🞇 User chỉ có quyền chọn ngữ cảnh CSDL, không có quyền thực thi các thao tác
Trên CSDL
Trên các đối tượng của CSDL đó
🞇 User cần được cấp quyền đối tượng và quyền CSDL
- Tạo tài khoản người dùng bằng T-SQL:

- Gán và thu hồi quyền của người dùng

- Gán quyền truy cập CSDL hiện hành cho Windows hoặc SQL Server login →Áp dụng thuộc nhóm
sysadmin, db_accessadmin, db_owner.

- Thay đổi vai trò của tài khoản người dùng trong CSDL hiện hành → Áp dụng thuộc nhóm sysadmin, db_owner,
db_security;

Tra cứu thông tin tài khoản

You might also like