You are on page 1of 25

IE103 – Quản lý Thông tin

Bài tập thực hành môn Quản lý thông tin tuần 3

Bài 6. Tìm hiểu các vấn đề sau trên HQT CSDL SQLServer:
A. Tổ chức dữ liệu
6.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ó.
Trả lời:
Trong SQL SERVER
* dữ liệu chuỗi
Data type Description Max size Storage
char(n) Chuỗi kí tự có độ 8,000 kí tự Độ rộng được xác
rộng cố định định
varchar(n) Chuỗi kí tự có độ 8,000 kí tự 2 bytes + số kí tự
rộng thay đổi được
varchar(max) Chuỗi kí tự có độ 1,073,741,824 kí tự 2 bytes + số kí tự
rộng thay đổi được
text Chuỗi kí tự có độ 2GB of text data 4 bytes + số kí tự
rộng thay đổi được
nchar Chuỗi unicode với độ 4,000 kí tự Độ rộng được xác
rộng cố định định x 2
nvarchar Chuỗi unicode 4,000 kí tự  

với độ rộng biến


thiên
nvarchar(max) Chuỗi unicode 536,870,912 kí tự  

với độ rộng biến


thiên
ntext Chuỗi unicode 2GB of text data  

với độ rộng biến


thiên
binary(n) Chuỗi nhị phân với 8,000 bytes  
độ rộng cố định
varbinary Chuỗi nhị phân với 8,000 bytes  
độ rộng biến thiên
varbinary(max) Chuỗi nhị phân với 2GB  
độ rộng biến thiên

1
IE103 – Quản lý Thông tin

image Chuỗi nhị phân với 2GB  


độ rộng biến thiên
* dữ liệu số
Kiểu dữ liệu Mô tả Lưu trữ
Số nguyên có thể là 0, 1 hoặc
bit
NULL
Cho phép toàn bộ số từ 0 đến
tinyint 1 byte
255
Cho phép toàn bộ số giữa
smallint 2 bytes
-32,768 và 32,767
Cho phép toàn bộ số giữa
int -2,147,483,648 và 4 bytes
2,147,483,647
Cho phép toàn bộ số giữa
-9,223,372,036,854,775,808
bigint 8 bytes

9,223,372,036,854,775,807
Độ chính xác cố định và số
lớn.

Cho phép số từ -10^38 1 đến


10^38 –1.

Tham số p cho biết tổng số


chữ số tối đa có thể được lưu

decimal(p,s) trữ (cả ở bên trái và bên phải 5-17 bytes


của dấu thập phân). p phải là
một giá trị từ 1 đến 38. Mặc
định là 18.

Tham số s cho biết số lượng


chữ số tối đa được lưu ở bên
phải dấu thập phân. s phải là
một giá trị từ 0 đến p. Giá trị
mặc định là 0.

2
IE103 – Quản lý Thông tin

Độ chính xác cố định và số


lớn.

Cho phép số từ -10^38 1 đến


10^38 –1.

Tham số p cho biết tổng số


chữ số tối đa có thể được lưu

numeric(p,s) trữ (cả ở bên trái và bên phải 5-17 bytes


của dấu thập phân). p phải là
một giá trị từ 1 đến 38. Mặc
định là 18.

Tham số s cho biết số lượng


chữ số tối đa được lưu ở bên
phải dấu thập phân. s phải là
một giá trị từ 0 đến p. Giá trị
mặc định là 0.
Dữ liệu tiền tệ từ
smallmoney -214,748.3648 đến 4 bytes
214,748.3647
Dữ liệu tiền tệ từ
-922,337,203,685,477,5808
money 8 bytes
đến
922,337,203,685,477,5807
float(n) 4 hoặc 8 bytes
Dữ liệu số chính xác biến
thiên từ -1.79E 308 đến
1.79E 308.

Tham số n cho biết liệu


trường có lưu trữ 4 hoặc 8
byte hay không. float (24)
lưu trữ trường 4 byte và float
(53) lưu trữ trường 8 byte.

3
IE103 – Quản lý Thông tin

Giá trị mặc định của n là 53.


Dữ liệu số chính xác biến
real thiên từ -3,40E 38 đến 3,40E 4 bytes
38
* kiểu dữ liệu ngày tháng
Kiểu dữ liệu Mô tả Lưu trữ
Từ ngày 1 tháng 1 năm 1753
đến ngày 31 tháng 12 năm
datetime 8 bytes
9999 với độ chính xác 3,33
mili giây.
Từ ngày 1 tháng 1 năm 0001
đến ngày 31 tháng 12 năm
datetime2 6-8 bytes
9999 với độ chính xác 100
nano giây.
Từ ngày 1 tháng 1 năm 1900
smalldatetime đến ngày 6 tháng 6 năm 2079 4 bytes
với độ chính xác là 1 phút.
Chỉ lưu trữ ngày. Từ ngày 1
date tháng 1 năm 0001 đến ngày 3 bytes
31 tháng 12 năm 1999.
Chỉ lưu trữ thời gian với độ
time 3-5 bytes
chính xác 100 nano giây.
Giống như datetime2 với
datetimeoffset 8-10 bytes
việc bổ sung múi giờ.
Lưu trữ một số duy nhất
được cập nhật mỗi lần khi
một hàng được tạo hoặc sửa
đổi. Giá trị timestamp dựa
timestamp
trên đồng hồ nội bộ và không
tương ứng với thời gian thực.
Mỗi bảng có thể chỉ có một
biến timestamp.

6.2 Dung lượng (KB) tối đa của 1 row trong 1 table trong SQL Server.
Trả lời: 8 KB.

4
IE103 – Quản lý Thông tin

6.3 Dung lượng (KB) tối đa của 1 table mà SQL Server cho phép.
Trả lời: giới hạn bởi bộ lưu trữ của máy
6.4 Tìm hiểu ý nghĩa các table hệ thống (System tables) trong CSDL Master như:
Sysusers; Syssserver; Sysxlogin.
Trả lời:
- Master điều khiển các user databases và các hoạt động của SQL Server cũng như
toàn bộ các thông tin như user accounts, biến môi trường và các system error
messages.
-system table lưu trữ các thông tin về system và database objects.
- sysusers ở trong tất cả CSDL: chứa 1 hàng cho mỗi Windows 2000 user,
Windows 2000 group, SQL SERVER user hoặc SQL Server role trong CSDL
- sysservers chỉ ở trong CSDL master: chứa 1 hàng cho mỗi Adaptive Server,
Backup Server hoặc Open server từ xa mà trên đó Adaptive Server có thể thực
hiện procedure calls từ xa.
- syslogins chỉ ở trên CSDL master: chứa 1 hàng cho mỗi tài khoản có thể kết nối
đến SQL Server.
6.5 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 AAA.
Trả lời:
Mỗi database trong SQL Server chứa ít nhất một data file chính (primary), có thể
có thêm một hay nhiều data file phụ (secondary) và một transaction log file
- primary data file: chứa data và những system table (đuôi .mdf)
- secondary data file: file phụ chỉ sử dụng khi database được phân chia để chứa
trên nhiều đĩa (đuôi .ndf)
- transaction log file: file ghi lại những thay đổi diễn ra trong database và chứa đầy
đủ thông tin để có thể roll back hay roll forward khi cần (đuôi .ldf)
B. Các chức năng trên dữ liệu
6.6 Phân biệt Stored Procedure (thủ tục) và Extended Stored Procedure.
Trả lời

5
IE103 – Quản lý Thông tin

Stored procedure Extended stored procedure


Thủ tục lưu trữ Transect-SQL là tập hợp Thủ tục nằm trong DLLs có chức năng
mã T-SQL được lưu trữ trong csdl SQL giống với Stored Procedure bình
Server và được biên dịch khi được sử thường. Nó nhận tham số và trả về kết
dụng. tạo bộ mã này bằng lệnh quả qua SQL Server’s Open Data
CREATE PROCEDURE. Ta có thể sử Services API và thường được viết bằng
dụng hầu hết các lệnh Transact-SQL C/C++. Nó nằm trong CSDL master và
trong 1 Stored Procedure, tuy nhiên một chạy trong không gian tiến trình của
số lệnh (như CREATE PROCEDURE, SQL Server.
CREATE VIEW, SET Mặc dù tương tự với stored procedure,
SHOWPLAN_TEXT, SET nhưng các lệnh gọi extended procedure
SHOWPLAN ALL, v.v) phải là câu hoạt động khác 1 chút với lệnh gọi
lệnh đầu tiên (hoặc duy nhất) trong một system procedure. Extended procedure
lô lệnh và do đó không được phép trong không tự động lưu vào CSDL master và
STORED PROCEDURE. Hầu hết câu chúng không giả định bối cảnh của
lệnh Transect-SQL hoat động giống CSDL hiện tại khi thực thi. Để thực thi
nhau trong 1 stored procedure như nó extended procedure từ CSDL khác với
hoạt động trong một lô lệnh, nhưng có CSDL master ta phải có đầy đủ điều
một vài khả năng khác biệt hoặc thể kiện tham chiếu (vd: EXEC
hiện hành vi khác khi được thực thi master.dbo.xp_cmdshell ‘dir’).
trong 1 stored procedure có ngữ cảnh.
Stored procedure là các Transact-SQL Extended stored procedure là thư viện
code được phân tích cú pháp, biên dịch liên kết động (dinamic link libraries
và lưu trữ trong SQL Server system DLLs) mà SQL Server có thể tự động
table. Ưu điểm của stored procedure là tải và thực thi và cho phép bạn tạo các
SQL SERVER sẽ tạo một kết hoạch quy trình bên ngoài của riêng mình
thực thi cho mỗi stored procedure, điều bằng một ngôn ngữ lập trình khác,
này sẽ tối ưu hóa việc sử dụng lặp lại chẳng hản như C, để sử dụng trong SQL
stored procedure. Kế hoạch thực thi này Server. Extended stored procedure

6
IE103 – Quản lý Thông tin

có thể liên tục được lưu trong bộ đệm giống như stored procedue bình thường
thủ tục cho đếm khi bộ đệm được làm và thực hiện theo cùng một cách và có
trống hoặc có thể định kì xóa khỏi bộ thể sử dụng thêm tham số cũng như trả
đệm tùy vào cách sử dụng của nó và về tập hợp kết quả và trạng thái.
cách sử dụng của stored procedure trên
máy.

6.7 Phân biệt Stored Procedure hệ thống và Stored Procedure do người dùng tạo ra.
Trả lời
Sytem defined stored procedure User-defined stored procedure
-được lưu trữ vật lí trong SQL Server Các thủ tục được tạo bởi người dùng thể
Resource database ẩn và xuất hiện thực hiện các hành động riêng. Nó có thể
trong lượt đồ hệ thống của mỗi csdl do được tạo trong mọi CSDL hệ thồng ngoại
hệ thống xác định và csdl do người trừ Resource database và trong user-
dùng xác định. Thủ tục này bắt đầu với defined database
tiền tố sp_. Do đó ta không sử dụng
tiền tố này khi đặt tên cho thủ tục do
người dùng xác định.
Vd: system procedure: sp_rename,
sp_changeowner, sp_help, sp_helpdb,
sp_helptext, sp_depends

C. An toàn dữ liệu
6.8 Các tính năng nào dùng đảm bảo tính an ninh mà SQl Server hỗ trợ.
Trả lời:
1. Login và user: SQL server chỉ cho phép truy cập vào hệ thống thông qua
những login, chỉ khi có quyền hạn nhất định mới có thể tạo thêm những
login khác. Mỗi cơ sở dữ liệu duy trì 1 danh sách những users, các users
luôn đính với 1 login ở mức độ server. Nếu bạn đăng nhập qua login này,
bạn sẽ có quyền truy cập vào cơ sở dữ liệu theo quyền hạn mà user tương
7
IE103 – Quản lý Thông tin

ứng với nó được cung cấp. bạn có thể xem những người dùng này bằng
cách mở rộng security/users của csdl tương ứng.
2. Server role: là tập nhóm quyền được đại diện bằng một tên để có thể thuận
tiện trong quản lí, role là nhóm quyền ở mức độ server.
3. Database role: là quyền truy cập vào cơ sở dữ liệu thành từng nhóm để có
thể dễ dàng tạo và sửa đổi.
4. Authentication: SQL server xác thực những đăng nhập với 2 cơ chế là sql
server authentication và windows authentication.
6.9 Tìm hiểu cách tạo ra các user, role.
Trả lời:
- Tạo user sql authentication:
CREATE LOGIN <login_name>
WITH PASSWORD = ‘<mat_khau>’
CREATE USER <user_name> FOR LOGIN <login_name>
- Tạo role
CREATE ROLE <role_name> [ AUTHORICATION owner_name]
6.10 Cách phân quyền trên các user, role này như thế nào? Có thể phân quyền
thành những gì?
Trả lời
- Cách phân quyền
Thêm user vào role:
sp_addsrvrolemember ‘<user_name>’, ‘<role_name>’
Thêm role cho db:
EXEC sp_addrolemember ‘<user_name>’, ‘<role_name>’
- Có 3 quyền hạn: phát biểu, đối tượng, mặc định
- Có 3 thao tác chính khi phân quyền: cấp quyền (GRANT), từ chối (DENY),
thu hồi (REVOKE)
GRANT | DENY | REVOKE {các quyền hạn, …} ON {các nhóm đối
tượng ...} TO {các role, user}

8
IE103 – Quản lý Thông tin

6.11 Số user có thể connect cùng 1 thời điểm là bao nhiêu?


Trả lời:
Số người có thể truy cập vào cùng 1 thời điểm phụ thuộc vào phiên bản SQL mà ta
cài đặt, giới hạn của ứng dụng hoặc phần cứng. SQL Server cho phép tối đa
32,767 kết nối người dùng. Bởi vì số kết nối người dùng có thể thay đổi, nên SQL
Server tự động điều chỉnh thông số tối đa khi cần thiết, tùy vào giá trị cho phép.
Vd có 10 users được log in, thì 10 đối tượng kết nối sẽ được cấp phát. Trong nhiều
trường hợp ta không thể thay đổi giá trị này. Giá trị mặc định là 0, nghĩa là số
người dùng kết nối được cho phép là không giới hạn.
6.12 Tạo ra một View, chứng minh các view cũng là con đường tạo an ninh cho CSDL.
Trả lời:

- Về bảo mật: có thể hạn chế người dùng truy cập trực tiếp vào table, thay vào đó họ
có thể truy cập thông tin được cho phép thông qua view.
6.13 Hãy backup CSDL AAA thành 1 file AAA.BAK, sau đó xóa CSDL AAA
và hãy khôi phục AAA nhờ vào AAA.BAK.
Trả lời:
Bước 1:Task-> backup

9
IE103 – Quản lý Thông tin

Bước 2: delete csdl


Bước 3: restored database

10
IE103 – Quản lý Thông tin

6.14 Hãy đọc SQL Server Log trong phần SQL Enterprice  management 
SQL Server Log.
Trả lời:

Bài 7. Tìm hiểu các vấn đề sau trên HQT CSDL Access. Các câu hỏi giống bài 6.
7.1 kiểu dữ liệu
Kiểu dữ liệu Mô tả Kích thước
Đoạn văn bản hoặc văn bản
kết hợp số, bao gồm cả các
số không yêu cầu tính toán
Short Text (ví dụ: số điện thoại, mã Tối đa 255 ký tự
bưu điện...), thường dùng để
lưu trữ tên riêng, địa chỉ,
tên đường, tên phố…
Đoạn text dài hoặc kết hợp
đoạn text và số, phù hợp với
Long Text các mô tả cần số lượng lớn Từ 63 đến 999 ký tự
văn bản (như mô tả sản
phẩm).
Number Dữ liệu dạng số, có thể sử 1, 2, 4 hoặc 8 byte

11
IE103 – Quản lý Thông tin

dụng để tính toán, phù hợp


cho việc lưu trữ dữ liệu như
số lượng của một sản phẩm,
khoảng cách, số học sinh,
số khách hàng...
Giá trị date/time để lưu trữ
Date/Time dữ liệu dạng thời gian tư 8 byte
năm 100 đến 9999.
Giá trị tiền tệ và dữ liệu số
được sử dụng với các phép
tính toán có từ một đến bốn
Currency chữ số thập phân, phù hợp 8 byte
cho việc lưu trữ lượng tiền
của một đơn vị tiền tệ nhất
định.
Một số thứ tự duy nhất
(tăng thêm 1) hoặc số ngẫu
nhiên được chỉ định bởi
AutoNumber 4 byte
Microsoft Access mỗi khi
bản ghi mới được thêm vào
bảng.
Dữ liệu kiểu Yes/No phù
hợp với các câu trả lời hay
Yes/No 1 bit
các trường mà chỉ cần lưu
trữ giá trị có hoặc không

Bài 8.
8.1.
 Chọn 1 file dữ liệu (SV) từ excel, và import vào SQLServer.

12
IE103 – Quản lý Thông tin

13
IE103 – Quản lý Thông tin

14
IE103 – Quản lý Thông tin

15
IE103 – Quản lý Thông tin

16
IE103 – Quản lý Thông tin

 Chọn 1 table trong SQL Server, và export tới file Excel.

17
IE103 – Quản lý Thông tin

18
IE103 – Quản lý Thông tin

19
IE103 – Quản lý Thông tin

20
IE103 – Quản lý Thông tin

8.2.
 Tạo 6 user từ u1 đến u6

21
IE103 – Quản lý Thông tin

 Tạo 3 role từ r1 đến r3

 Tạo nhóm: u1 thuộc r1; u2, u3 thuộc r2; u4, u5, u6 thuộc r3

 Thực hiện:
 r1 thành viên của SysAdmin
 r2 thành viên của db_owner, db_accessadmin

 r3 thành viên của SysAdmin, db_owner, db_accessadmin

Bài 9.
Tập làm các phát biểu grant, deny, revoke trên một CSDL gồm các table T1, T2, T3.
Tạo các user U1, U2, U3.
 U1 có quyền select, delete trên T1, T3

22
IE103 – Quản lý Thông tin

 U2 có quyền update, delete trên T2

 U3 có quyền insert trên T1, T2, T3

 U1 bị từ chối quyền insert trên T1, T2

 U2 bị từ chối quyền delete trên T3

Bài 10.
10.1. Tạo một crystal report từ một bảng trong CSDL QLDT. Tùy ý chọn Bảng,
cột, format, …
Trả lời:

23
IE103 – Quản lý Thông tin

10.2. Tạo một crystal report từ một stored procedure trong bài tập tuần 2. Tùy ý
sắp xếp, format, …
Trả lời:

10.3. Hãy thiết kế một report cho phép liệt kê và quản lý danh sách đề tài hiện tại.
Yêu cầu có các thông tin sau:
DANH SÁCH ĐỀ TÀI
MSDT TEN DE TAI TEN GVHD MS GVHD
DT1 Xứ lý ảnh Nguyễn Văn A 8888
DT2 Xử lý ngôn ngữ Nguyễn Văn B 7777
Tp.HCM, ngày 01/01/2021
Người lập
Họ Tên SV
Trang 1

10.4. Thiết kế một báo cáo liệt kê danh sách hội đồng ứng với mỗi đề tài như sau:
DANH SÁCH HỘI ĐỒNG CHẤM ĐỀ TÀI
MSHD PHÒNG TÊN ĐT MSDT QUYẾT ĐỊNH
HD1 A012 Xứ lý ảnh DT1 QĐABC
Tp.HCM, ngày 01/01/2021
Người lập
Họ Tên SV
Trang 1

24
IE103 – Quản lý Thông tin

Lưu ý: Câu 10.3 và 10.4 có thể phân trang nếu như dữ liệu quá nhiều.
10.5. Tìm hiểu ngoài crystal report, còn có những loại report nào mà Visual hỗ
trợ? Hiện tại, loại report nào phổ biến và hay được dùng nhất? Ngoài ra, nếu
không có Visual có cách nào tạo report không?
Trả lời:
Ngoài crystal report visual còn hỗ trợ report viewing.
Hiện tại report phổ biến và dùng nhiều nhất là report viewing
Ngoài ra, nếu không có visual thì có thể sử dụng sql server reporting services

25

You might also like