Bài tập môn Quản thông tin _ Chương 4 Chương 5
Bài 1. Tìm hiểu các vấn đề sau trên hệ QTCSDL SQLServer:
1.1 Các kiểu dữ liệu (data type) dùng cho các trường (field) cách sử dụng nó.
Nhóm kiểu dữ liệu chuỗi (String Data Types)
Kiểu dữ liệu Đặc điểm Kích thước tối
đa
Cách sử dụng
char(n) Chuỗi tự với độ dài cố
8,000 tự Độ dài chuỗi cố định, dụ:
SKU, hàng.
varchar(n) Chuỗi tự với độ dài
không cố định, tối đa n
tự
8,000 tự Độ dài chuỗi thay đổi, dụ: tên
sản phẩm, tả.
varchar(max) Chuỗi tự với độ dài
không cố định, tối đa 2^31-
1 tự (~2GB).
1,073,741,824
tự
Lưu dữ liệu văn bản dài như tài
liệu hoặc nội dung bài viết.
text Chuỗi văn bản với độ dài
không cố định
2GB dữ liệu
văn bản Lưu chuỗi văn bản ASCII dài
(không hỗ trợ Unicode). Đã bị
thay thế bởi varchar.
nchar Chuỗi tự Unicode với độ
dài cố định.
4,000 tự Lưu văn bản đa ngôn ngữ (cố
định độ dài)
nvarchar Chuỗi tự Unicode với độ
dài không cố định.
4,000 tự Lưu văn bản đa ngôn ngữ (thay
đổi độ dài), dụ: tên tiếng Việt
dấu.
nvarchar(max) Chuỗi tự Unicode với độ
dài không cố định.
536,870,912
tự.
Lưu dữ liệu đa ngôn ngữ dài như
tài liệu PDF hoặc XML chứa
nhiều nội dung.
ntext Chuỗi văn bản Unicode với
độ dài không cố định
2GB dữ liệu
văn bản
Lưu chuỗi văn bản ASCII dài
(không hỗ trợ Unicode). Đã bị
thay thế bởi nvarchar.
binary(n) Chuỗi nhị phân độ dài cố
định n.
8,000 bytes Khi cần lưu chuỗi nhị phân độ
dài cố định, dụ: hóa dữ
liệu.
varbinary Chuỗi nhị phân độ dài
không cố định
8,000 bytes Lưu trữ file hoặc dữ liệu hình
ảnh.
varbinary(max
)
Chuỗi nhị phân độ dài
không cố định
2GB Lưu trữ dữ liệu lớn, dụ: file
PDF, video.
image Chuỗi nhị phân độ dài
không cố định
2GB
Nhóm kiểu dữ liệu số (Numeric Data Types)
Kiểu dữ liệu Đặc điểm Kích thước tối
đa
Cách sử dụng
tinyint Số nguyên không dấu (0 đến
255).
1 byte Lưu giá trị nhỏ, dụ: trạng thái
(0 hoặc 1).
smallint Số nguyên (-32,768 đến
32,767)
2 bytes Dùng khi cần số nguyên nhỏ,
dụ: số lượng đơn hàng nhỏ.
int Số nguyên (-2^31 đến 2^31-
1).
4 bytes Lưu số nguyên thông thường,
dụ: nhân viên, tuổi.
bigint Số nguyên lớn (-2^63 đến
2^63-1).
8 bytes Lưu số nguyên lớn, dụ: dữ liệu
tài chính, số lượng lớn.
decimal (p,s) Số thực chính xác với độ
chính xác p tỷ lệ s.
5-17 bytes (tuỳ
p)
Lưu dữ liệu tài chính, dụ: giá
sản phẩm, tiền lương.
Numeric Tương tự như . 5-17 bytes (tuỳDECIMAL
p)
Thay thế DECIMAL trong một số
hệ thống cũ.
Float (n) Số thực, giá trị từ -1,79E +
308 đến 1,79E + 308.
Tham số n chỉ ra trường nên
chứa 4 hay 8 byte. float(24)
chứa trường 4 byte
float(53) chứa trường 8
byte. Giá trị mặc định của n
53.
4 bytes (n=24),
8 bytes (n=53)
Lưu số thực độ chính xác thấp,
dụ: dữ liệu khoa học.
Real Số thực, giá trị từ -3.40E +
38 đến 3.40E + 38
4 bytes Khi không yêu cầu độ chính xác
cao, dụ: nhiệt độ, độ cao.
Smallmoney Dữ liệu tiền tệ, giá trị từ -
214,748.3648 đến
214,748.3647
4 bytes Sử dụng cho các giá trị tiền tệ
không quá lớn.
Money Dữ liệu tiền tệ, giá trị từ -
922,337,203,685,477.5808
đến
922,337,203,685,477.5807
8 bytes Sử dụng cho các giá trị tiền tệ rất
lớn.
bit 0, 1 hoặc NULL Dùng cho các giá trị logic như
trạng thái bật/tắt.
1.2 Dung lượng (KB) tối đa của 1 row trong 1 table SQL Server. Dung lượng (KB) tối
đa của 1 table SQL Server cho phép.
- Dung lượng tối đa của trong 1 table SQL Server cho phép: 7.86 KB ( 8060 bytes).1 row
* Lưu ý: Nếu một cột chứa dữ liệu kiểu VARCHAR, NVARCHAR, VARBINARY,
TEXT, NTEXT`, dữ liệu này thể được lưu ngoài row. Khi đó, row chỉ chứa một con trỏ đến
dữ liệu lưu trữ bên ngoài, thể chứa dữ liệu lớn hơn 8 KB.
- Dung lượng tối đa của SQL Server cho phép: SQL Server không giới hạn kích1 table
thước tối đa của một table một cách trực tiếp. Thay vào đó, kích thước tối đa của table phụ thuộc
vào:
+ Kích thước đĩa lưu trữ (disk capacity).
+ Giới hạn kích thước sở dữ liệu trong từng phiên bản SQL Server (ví dụ: phiên bản
Express giới hạn database 10GB).
1.3 Tìm hiểu ý nghĩa các table hệ thống (System tables) trong CSDL Master như: Sysusers;
Syssserver; Sysxlogin.
- sysusers: Chứa thông tin về các users trong CSDL, mỗi row chứa thông tin 1 người dùng hoặc
một nhóm người dùng trong CSDL hiện tại. Được sử dụng để xem thông tin user quyền của
user trong CSDL.
- sysservers: SQL Server cho phép kết nối với các máy chủ khác truy vấn trên nhiều nguồn dữ
liệu, bảng này lưu thông tin về các máy chủ được liên kết (Linked servers) trong hệ thống.
- sysxlogins: Lưu thông tin về các login vào hệ thống SQL Server. Được dùng để kiểm soát tài
khoản đăng nhập cũng như các thông tin bảo mật khác.
1.4 Khi người dùng tạo 1 CSDL, SQL Server yêu cầu tạo ra tổi thiểu bao nhiêu file? Ý
nghĩa mỗi file? Chú ý câu lệnh: CREATE DATABASE ABC.
Khi tạo 1 CSDL, SQL Server yêu cầu tạo ra tối thiểu 2 file:
Primary Data File Transaction Log File
Filename
extension
.mdf (Master data file) .ldf (log data file)
Chức năng - Chứa metadata (dữ liệu hệ thống)
dữ liệu chính của sở dữ liệu.
- Chứa thông tin cấu trúc các file
- Lưu trữ nhật giao dịch để đảm
bảo tính toàn vẹn dữ liệu).
- Ghi lại tất cả các thay đổi thực hiện
khác trong CSDL. trên CSDC (Insert, Update, Delete).
Ý nghĩa Lưu trữ dữ liệu chính, các bảng
chỉ mục, thông tin cấu trúc của CSDL
Lưu trữ các thay đổi của dữ liệu để
thực hiện rollback khi cần thiết.
1.5 Các tính năng nào dùng đảm bảo tính an ninh SQl Server hỗ trợ.
Xác thực (Authentication)
o Windows Authentication: Tích hợp với Windows, an toàn hơn.
o SQL Server Authentication: Sử dụng tài khoản mật khẩu riêng.
o Mixed Mode Authentication: Cho phép cả Windows Authentication SQL
Server Authentication.
Phân quyền (Authorization)
o Role-based Security: Quản quyền truy cập dựa trên vai trò, gồm: Server
Roles Database Roles.
o Quyền cụ thể như SELECT, INSERT, UPDATE, DELETE.
hóa dữ liệu (Encryption)
o Transparent Data Encryption (TDE): hóa toàn bộ sở dữ liệu trên đĩa
(at rest) ngăn chặn việc sao chép, đọc dữ liệu từ file .mdf .ldf
o Always Encrypted: hóa dữ liệu cả phía máy chủ ứng dụng.
o Column-Level Encryption: hóa cột cụ thể.
Row-Level Security (RLS)
o Kiểm soát các hàng dữ liệu người dùng được phép truy cập theo điều kiện cụ
thể.
o Sử dụng để lọc dữ liệu khi người dùng truy vấn.security predicates
Dynamic Data Masking (DDM)
o Giúp ẩn các cột dữ liệu nhạy cảm chỉ hiển thị đối với người dùng được
phân quyền.
Audit Logging:
o SQL Server Audit: Theo dõi ghi lại các hoạt động trên sở dữ liệu để
đảm bảo tuân thủ phát hiện hành vi bất thường.
o Change Data Capture Change Tracking: Theo dõi các thay đổi trong dữ
liệu để hỗ trợ bảo mật đồng bộ hóa dữ liệu.
Tường lửa IP Whitelisting
o thể cấu hình tường lửa để chỉ cho phép kết nối từ các địa chỉ IP cụ thể.
o Hạn chế truy cập trái phép vào SQL Server.
Toàn vẹn dữ liệu
o Dùng các ràng buộc (PRIMARY KEY, FOREIGN KEY, CHECK) trigger.
o Sao lưu khôi phục
Backup Recovery (Sao lưu khôi phục).
o SQL Server hỗ trợ các phương thức sao lưu: Full, Differential Transaction
Log Backup để khôi phục dữ liệu khi xảy ra sự cố.
1.6 Hãy tạo ra Views, chứng minh các views cũng con đường tạo an ninh cho CSDL.
Tạo View từ bảng với các cột thông tin cần thiết loại bỏ thông tin nhạy cảm (Ngày sinh,
Mức lương, Hệ số,...)
Thu hồi quyền truy vấn trên bảng chính phân quyền truy vấn trên view.
Như vậy, user1 chỉ thể lấy thông tin Giảng viên từ view không thể xem các dữ liệu ẩn
đi từ bảng chính.
1.7 Hãy backup CSDL ABC thành 1 file ABC.BAK.
1.8 Xóa CSDL ABC trong SQL. Hãy khôi phục ABC nhờ vào ABC.BAK.
Xóa CSDL:
Khôi phục CSDL nhờ file abc.bak
1.9 Chọn 1 file dữ liệu (SV) từ excel, import vào SQLServer
1.10 Chọn 1 table trong SQL Server, export tới file Excel.
1.11 Hãy đọc SQL Server Log trong phần SQL Enterprice management SQL Server
Log.
1.12 Số users thể connect cùng 1 thời điểm.

Preview text:

Bài tập môn Quản lý thông tin _ Chương 4 – Chương 5
Bài 1. Tìm hiểu các vấn đề sau trên hệ QTCSDL SQLServer:
1.1 Các kiểu dữ liệu (data type) dùng cho các trường (field) và cách sử dụng nó.
Nhóm kiểu dữ liệu chuỗi (String Data Types) Kiểu dữ liệu Đặc điểm Kích thước tối Cách sử dụng đa char(n)
Chuỗi ký tự với độ dài cố 8,000 ký tự
Độ dài chuỗi cố định, ví dụ: mã định SKU, mã hàng. varchar(n)
Chuỗi ký tự với độ dài 8,000 ký tự
Độ dài chuỗi thay đổi, ví dụ: tên
không cố định, tối đa n ký sản phẩm, mô tả. tự varchar(max)
Chuỗi ký tự với độ dài 1,073,741,824
Lưu dữ liệu văn bản dài như tài
không cố định, tối đa 2^31- ký tự
liệu hoặc nội dung bài viết. 1 ký tự (~2GB). text
Chuỗi văn bản với độ dài 2GB dữ liệu không cố định văn bản
Lưu chuỗi văn bản ASCII dài
(không hỗ trợ Unicode). Đã bị thay thế bởi varchar. nchar
Chuỗi ký tự Unicode với độ 4,000 ký tự
Lưu văn bản đa ngôn ngữ (cố dài cố định. định độ dài) nvarchar
Chuỗi ký tự Unicode với độ 4,000 ký tự
Lưu văn bản đa ngôn ngữ (thay dài không cố định.
đổi độ dài), ví dụ: tên tiếng Việt có dấu. nvarchar(max)
Chuỗi ký tự Unicode với độ 536,870,912
Lưu dữ liệu đa ngôn ngữ dài như dài không cố định. ký tự.
tài liệu PDF hoặc XML chứa nhiều nội dung. ntext
Chuỗi văn bản Unicode với 2GB dữ liệu
Lưu chuỗi văn bản ASCII dài độ dài không cố định văn bản
(không hỗ trợ Unicode). Đã bị thay thế bởi nvarchar. binary(n)
Chuỗi nhị phân độ dài cố 8,000 bytes
Khi cần lưu chuỗi nhị phân có độ định n.
dài cố định, ví dụ: mã hóa dữ liệu. varbinary Chuỗi nhị phân độ dài 8,000 bytes
Lưu trữ file hoặc dữ liệu hình không cố định ảnh. varbinary(max Chuỗi nhị phân độ dài 2GB
Lưu trữ dữ liệu lớn, ví dụ: file ) không cố định PDF, video. image Chuỗi nhị phân độ dài 2GB không cố định
Nhóm kiểu dữ liệu số (Numeric Data Types) Kiểu dữ liệu Đặc điểm Kích thước tối Cách sử dụng đa tinyint
Số nguyên không dấu (0 đến 1 byte
Lưu giá trị nhỏ, ví dụ: trạng thái 255). (0 hoặc 1). smallint Số nguyên (-32,768 đến 2 bytes
Dùng khi cần số nguyên nhỏ, ví 32,767)
dụ: số lượng đơn hàng nhỏ. int
Số nguyên (-2^31 đến 2^31- 4 bytes
Lưu số nguyên thông thường, ví 1). dụ: mã nhân viên, tuổi. bigint
Số nguyên lớn (-2^63 đến 8 bytes
Lưu số nguyên lớn, ví dụ: dữ liệu 2^63-1).
tài chính, số lượng lớn. decimal (p,s)
Số thực chính xác với độ 5-17 bytes (tuỳ
Lưu dữ liệu tài chính, ví dụ: giá chính xác p và tỷ lệ s. p) sản phẩm, tiền lương. Numeric Tương tự như DECIMAL.
5-17 bytes (tuỳ Thay thế DECIMAL trong một số p) hệ thống cũ. Float (n)
Số thực, giá trị từ -1,79E +
4 bytes (n=24), Lưu số thực có độ chính xác thấp, 308 đến 1,79E + 308. 8 bytes (n=53)
ví dụ: dữ liệu khoa học.
Tham số n chỉ ra trường nên chứa 4 hay 8 byte. float(24) chứa trường 4 byte và float(53) chứa trường 8
byte. Giá trị mặc định của n là 53. Real
Số thực, giá trị từ -3.40E + 4 bytes
Khi không yêu cầu độ chính xác 38 đến 3.40E + 38
cao, ví dụ: nhiệt độ, độ cao. Smallmoney
Dữ liệu tiền tệ, giá trị từ - 4 bytes
Sử dụng cho các giá trị tiền tệ 214,748.3648 đến không quá lớn. 214,748.3647 Money
Dữ liệu tiền tệ, giá trị từ - 8 bytes
Sử dụng cho các giá trị tiền tệ rất 922,337,203,685,477.5808 lớn. đến 922,337,203,685,477.5807 bit 0, 1 hoặc NULL
Dùng cho các giá trị logic như trạng thái bật/tắt.
1.2 Dung lượng (KB) tối đa của 1 row trong 1 table mà SQL Server. Dung lượng (KB) tối
đa của 1 table mà SQL Server cho phép.
- Dung lượng tối đa của
trong 1 table mà SQL Server cho phép: 7.86 KB ( 8060 bytes). 1 row
* Lưu ý: Nếu một cột chứa dữ liệu kiểu VARCHAR, NVARCHAR, VARBINARY,
TEXT, NTEXT`, dữ liệu này có thể được lưu ngoài row. Khi đó, row chỉ chứa một con trỏ đến
dữ liệu lưu trữ bên ngoài, và có thể chứa dữ liệu lớn hơn 8 KB.
- Dung lượng tối đa của 1 table mà SQL Server cho phép: SQL Server không giới hạn kích
thước tối đa của một table một cách trực tiếp. Thay vào đó, kích thước tối đa của table phụ thuộc vào:
+ Kích thước đĩa lưu trữ (disk capacity).
+ Giới hạn kích thước cơ sở dữ liệu trong từng phiên bản SQL Server (ví dụ: phiên bản
Express giới hạn database ở 10GB).
1.3 Tìm hiểu ý nghĩa các table hệ thống (System tables) trong CSDL Master như: Sysusers; Syssserver; Sysxlogin.
- sysusers: Chứa thông tin về các users trong CSDL, mỗi row chứa thông tin 1 người dùng hoặc
một nhóm người dùng trong CSDL hiện tại. Được sử dụng để xem thông tin user và quyền của user trong CSDL.
- sysservers: SQL Server cho phép kết nối với các máy chủ khác và truy vấn trên nhiều nguồn dữ
liệu, bảng này lưu thông tin về các máy chủ được liên kết (Linked servers) trong hệ thống.
- sysxlogins: Lưu thông tin về các login vào hệ thống SQL Server. Được dùng để kiểm soát tài
khoản đăng nhập cũng như các thông tin bảo mật khác.
1.4 Khi người dùng tạo 1 CSDL, SQL Server yêu cầu tạo ra tổi thiểu bao nhiêu file? Ý
nghĩa mỗi file? Chú ý câu lệnh: CREATE DATABASE ABC.
Khi tạo 1 CSDL, SQL Server yêu cầu tạo ra tối thiểu 2 file: Primary Data File Transaction Log File Filename .mdf (Master data file) .ldf (log data file) extension Chức năng
- Chứa metadata (dữ liệu hệ thống) và - Lưu trữ nhật ký giao dịch để đảm
dữ liệu chính của cơ sở dữ liệu.
bảo tính toàn vẹn dữ liệu).
- Chứa thông tin cấu trúc và các file - Ghi lại tất cả các thay đổi thực hiện khác trong CSDL.
trên CSDC (Insert, Update, Delete). Ý nghĩa
Lưu trữ dữ liệu chính, các bảng và Lưu trữ các thay đổi của dữ liệu để
chỉ mục, thông tin cấu trúc của CSDL thực hiện rollback khi cần thiết.
1.5 Các tính năng nào dùng đảm bảo tính an ninh mà SQl Server hỗ trợ.  Xác thực (Authentication) o
Windows Authentication: Tích hợp với Windows, an toàn hơn. o
SQL Server Authentication: Sử dụng tài khoản và mật khẩu riêng. o
Mixed Mode Authentication: Cho phép cả Windows Authentication và SQL Server Authentication.  Phân quyền (Authorization) o
Role-based Security: Quản lý quyền truy cập dựa trên vai trò, gồm: Server Roles và Database Roles. o
Quyền cụ thể như SELECT, INSERT, UPDATE, DELETE. 
Mã hóa dữ liệu (Encryption) o
Transparent Data Encryption (TDE): Mã hóa toàn bộ cơ sở dữ liệu trên ổ đĩa
(at rest) và ngăn chặn việc sao chép, đọc dữ liệu từ file .mdf và .ldf o
Always Encrypted: Mã hóa dữ liệu cả phía máy chủ và ứng dụng. o
Column-Level Encryption: Mã hóa cột cụ thể.  Row-Level Security (RLS) o
Kiểm soát các hàng dữ liệu người dùng được phép truy cập theo điều kiện cụ thể. o
Sử dụng security predicates để lọc dữ liệu khi người dùng truy vấn.  Dynamic Data Masking (DDM) o
Giúp ẩn các cột dữ liệu nhạy cảm và chỉ hiển thị đối với người dùng được phân quyền.  Audit và Logging: o
SQL Server Audit: Theo dõi và ghi lại các hoạt động trên cơ sở dữ liệu để
đảm bảo tuân thủ và phát hiện hành vi bất thường. o
Change Data Capture và Change Tracking: Theo dõi các thay đổi trong dữ
liệu để hỗ trợ bảo mật và đồng bộ hóa dữ liệu. 
Tường lửa và IP Whitelisting o
Có thể cấu hình tường lửa để chỉ cho phép kết nối từ các địa chỉ IP cụ thể. o
Hạn chế truy cập trái phép vào SQL Server.  Toàn vẹn dữ liệu o
Dùng các ràng buộc (PRIMARY KEY, FOREIGN KEY, CHECK) và trigger. o Sao lưu và khôi phục 
Backup và Recovery (Sao lưu và khôi phục). o
SQL Server hỗ trợ các phương thức sao lưu: Full, Differential và Transaction
Log Backup để khôi phục dữ liệu khi xảy ra sự cố.
1.6 Hãy tạo ra Views, chứng minh các views cũng là con đường tạo an ninh cho CSDL.
Tạo View từ bảng với các cột thông tin cần thiết và loại bỏ thông tin nhạy cảm (Ngày sinh, Mức lương, Hệ số,...)
Thu hồi quyền truy vấn trên bảng chính và phân quyền truy vấn trên view.
Như vậy, user1 chỉ có thể lấy thông tin Giảng viên từ view và không thể xem các dữ liệu ẩn đi từ bảng chính.
1.7 Hãy backup CSDL ABC thành 1 file ABC.BAK.
1.8 Xóa CSDL ABC trong SQL. Hãy khôi phục ABC nhờ vào ABC.BAK. Xóa CSDL:
Khôi phục CSDL nhờ file abc.bak
1.9 Chọn 1 file dữ liệu (SV) từ excel, và import vào SQLServer
1.10 Chọn 1 table trong SQL Server, và export tới file Excel.
1.11 Hãy đọc SQL Server Log trong phần SQL Enterprice management
  SQL ServerLog.
1.12 Số users có thể connect cùng 1 thời điểm.