






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 Server Log.
1.12 Số users có thể connect cùng 1 thời điểm.