Tải bản đầy đủ (.pdf) (44 trang)

Quản trị và khai thác cơ sở dữ liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (516.28 KB, 44 trang )

Sách điện tử, luận văn tốt nghiệp CNTT http:/www.diachiweb.com

Phần V. Quản trị và Khai thác CSDL
5.1. Các công cụ quản trị CSDL .
Giới thiệu về Microsoft SQL Server Roles:
ý nghĩa: Thiết lập các vai trò đặc biệt các quyền mặc nhiên mà không đợc
gán cho các User Account. Nếu bạn có quyền đó thì phải thêm (Add) các
User Account đó vào Roles .

Roles có hai dạng:
1) Fixed Server Roles:
+ SysAdmin
+ Server Admin
+ Setup Admin
+ Security Admin
+ ProccessAdmin
+ Dbcreator
+ DiskAdmin
2) Fixed database roles
+ Public
+ DB_Owner
+ DB_AccessAdmin
+ DB_ dataReader
+ DB_dataWriter
+ DB_ddlAdmin
+ DB_SecurityAdmin
+ DB_BackupAdmin
+ DB_Denydatareader

49
Sách điện tử, luận văn tốt nghiệp CNTT http:/www.diachiweb.com


+ DB_DenydataWriter
Nếu bạn muốn huỷ bỏ ROLES thì bạn phải xoá toàn bộ các User trong
database ROLES.
Tại sao phải dùng database Roles?
+ Là vì nó giúp bạn mở rộng database, tạo hiệu suất truy nhập.. .
+ Các user có cùng chung các đặc trng nên ngời quản lý phải tạo ra các
nhóm, hay các ROLES để quản lý dễ dàng hơn.
Làm thế nào để tạo một User Roles?
1) Chọn ROLESặ Nhấn nút phải chuột-> chọn New Roles

Từ đây: nhập tên database roles
Add các user cần tạo ra ặ thực hiện song nhấn OK
Nếu là các ứng dụng thì bạn chọn Application Roles

-Tạo kiểu dữ liệu do ngời dùng định nghĩa - user defined data types.
Kiểu dữ liệu do ngời dùng định nghĩa nhằm mở rộng cho ngời sử dụng
dễ dàng tạo ra riêng cho mình các loại dữ liệu tơng ứng với nhu cầu đặt ra

50
Sách điện tử, luận văn tốt nghiệp CNTT http:/www.diachiweb.com
Làm thế nào để tạo user defined data types ?
2) Chọn user defined data types
3) Nhấn nút phải chuột
4) Chọn New user defined data types
Nhập tên loại dữ liệu cần tạo : (Name)
Kiểu dữ liệu: Data type
Chiều dài: Length
Giá trị NULL: Allow nulls



DTS (data transformation services)
Là các dịch vụ của Microsoft SQL Server cung ấp cho ngời dùng
chuyển đổi dữ liệu nh trong phần Import and export data

51
Sách điện tử, luận văn tốt nghiệp CNTT http:/www.diachiweb.com

Ngoài ra ta cũng có thể sử dụng một số lệnh của Transact SQL để thực hiện
trên SQL Server Analyzer Ví dụ nh lệnh :
BCp database_name..Tablename
{IN| OUT} dataFile [/F firstrow][/L lastrow][/b batchsize][/C ][/U login_ID]
[/P Password] [/S Servername].
5.2. Các nhiệm vụ và quyền hạn trong việc quản trị và sở hữu CSDL
(Management).
1) SQL server Agent- Các tác nhân quản lý server:
+ Cảnh báo: Alert


+Operator:
Ngời điều hành công việc trong các ngày trong tuần
+Jobs:
Các công việc đợc định ra trong các ngày trong tuần. Ai làm việc ?

52
Sách điện tử, luận văn tốt nghiệp CNTT http:/www.diachiweb.com

2) Current Ativity 10/23/00
Nhật ký làm việc hằng ngày của SQL server. Nếu bạn là Admin thì bạn
có thể nhìn thấy tất cả các thông tin mà SQL Server đã và đang làm việc.
3) SQL Server Log:

Ghi lại toàn bộ công việc mà SQL server đã thực hiện nhằm giúp ngời
quản trị mạng hiểu biết thêm về thông tin đợc xử lý trên máy cũng nh theo
dõi các vấn đề có liên quan. Ví dụ nh ai đã truy nhập vào database
LUUTRU vào lúc 10:22:40 AM ngày 20 tháng 10 năm 2000 và đã xoá đi
một số dữ liệu quan trọng.

Security:
1) Login: Tạo logon_id để login vào mạng SQL server.

+ Name: Nhập login_name
+ Password: nhập mật khẩu vào (hai lần nhập)
+ Chọn database cho user cần truy nhập.
(Ngôn ngữ ngầm định là English.)

53
Sách điện tử, luận văn tốt nghiệp CNTT http:/www.diachiweb.com
Tiếp theo bạn phải chọn các quyền truy xuất cho user đó khi truy xuất
vào database.


Database access:
Chọn quyền truy xuất vào các database


+ Link Servser. Chỉ định các mối liên kết với các server khác.
Remote server: Tên máy Server truy nhập từ xa.

54
Sách điện tử, luận văn tốt nghiệp CNTT http:/www.diachiweb.com



4) Support Servic:
Cung cấp các dịch vụ, tạo hiệu suất truy nhập cao, đa dạng.
- Distributed Transaction Coordinator
- SQl Mail
SQL Server ProFile
Tạo các Trace nhằm theo dõi chính xác lúc có các tác nhân tác động vào
CSDL.




55
Sách điện tử, luận văn tốt nghiệp CNTT http:/www.diachiweb.com

Làm thế nào để tạo ra TRACE?
1) Vào menu File Chọn New TRACE
2) Nhập tên TRACE cần tạo
3) Nhập tên Server
4) Capture to file: Tên file lu trữ lại các thông tin mà trace nắm bắt đợc
5) Capture to table: Tên table lu trữ lại các thông tin mà trace nắm bắt
đợc .
6) Chọn kiểu của Trace : (Share type, Private type) trong phạm vi có chia
sẻ hay chỉ tại máy đơn
5.3. Tính toàn vẹn và tính an toàn CSDL
- Toàn vẹn mức bảng, mức trờng, mức quan hệ, mức ràng buộc logic
An toàn dữ liệu hay tính toàn vẹn dữ liệu là điểm mấu chốt trong công
cuộc bảo vệ thông tin dữ liệu.
+ ở dạng bảng: Các bảng thờng đợc bảo mật bởi các quyền đợc
Adminstrator gán cho kết hợp với việc đợc sử dụng những câu lệnh nào cho

từng loại bảng trong CSDL.

56
Sách điện tử, luận văn tốt nghiệp CNTT http:/www.diachiweb.com
+ Field: Trờng dữ liệu là các cột dữ liệu hay các thuộc tính của bảng,
tập hợp các cột của bảng tạo thành 1 bản ghi hay còn gọi là hàng dữ liệu
đợc bảo vệ bởi quyền đợc gán cho bảng và cũng nh các mối liên kết
trong bảng ở mức quan hệ, kết nối giữa các khoá với nhau của các bảng khác
nhau (khoá trong và khoá ngoài).
- An toàn về sự kết nối truy nhập đến CSDL (authentication) và quyền
thao tác (permission) trên các đối tợng của CSDL
Nếu muốn gán quyền bạn chọn Permission.


Click vào đây
Trong nhóm 1: user/DB roles/Pulic
Gồm các login_ID và các nhóm làm
việc .
Nhóm 2: Tập các lẹnh trong Transact
SQL
Nếu bạn check vào ô nào của
user/nhóm nào thì user/nhóm đó đợc
quyền sử dụng lệnh đó.
Sau khi đã check song quyền
Tiếp tục nhấn nút OK (có thể Apply)




57

Sách điện tử, luận văn tốt nghiệp CNTT http:/www.diachiweb.com
Nếu bạn muốn thay đổi bất cứ một điều gì trong table nào đó thì bạn hãy
làm nh sau:
1) Chọn table cần modify
2) Click nút phải chuột
3) Chọn Design database
Ngoài ra bạn còn có rất nhiều chức năng ở đây khi nhấn nút phải chuột
(Open table, Full text index table, All task , copy, delete , rename, property..
. )



- Sao lu CSDL - Backup dữ liệu:
Nếu bạn muốn tạo bản dữ liệu nhân bản thì sử dụng chức năng backup:
- Backup gồm hai bớc: Tạo thiết bị backup và chọn CSDL cần backup.



58
Sách điện tử, luận văn tốt nghiệp CNTT http:/www.diachiweb.com

5.4. Các hình thức khai thác CSDL:
- Câu lệnh Microsoft SQL Server.
Lệnh Microsoft SQL Server (Trong Transact SQL ) là tập hợp các câu hỏi
(truy vấn) thông minh nhằm đáp ứng nhanh, chính xác và đáp ứng cho
nhiều ngời dùng tin. Ngôn ngữ SQL ngời ta thờng gọi là ngôn ngữ
Thông minh.
i) Các câu lệnh chính thờng hay dùng trong Microsoft SQL Server
cũng nh trong DMO (các ứng dụng khai thác CSDL của SQL ).
1. Câu lệnh SELECT: Lấy dữ liệu từ bảng (table) trong cơ sở dữ liệu.

Cú pháp:
SELECT [ALL | DISTINCT] select_list
[INTO [new_table_name]]
[FROM {table_name | view_name}[(optimizer_hints)]
[[, {table_name2 | view_name2}[(optimizer_hints)]
[..., {table_name16 | view_name16}[(optimizer_hints)]]]
[WHERE clause]
[GROUP BY clause]
[HAVING clause]
[ORDER BY clause]
[COMPUTE clause]
[FOR BROWSE]
Trong đó:
ALL: Lấy tất cả các giá trị theo khoá. ALL là tham số ngầm định của
truy vấn lựa chọn.
DISTINCT: Chỉ lấy các giá trị duy nhất. Giá trị NULL cũng đợc lấy
vào kết quả nhng chỉ có một giá trị NULL đợc lựa chọn mà thôi.

59
Sách điện tử, luận văn tốt nghiệp CNTT http:/www.diachiweb.com
select_list: Xác định các cột đợc lựa chọn lấy dữ liệu. Select_list có
thể là :
- Dấu sao (*): Tất cả các cột theo thứ tự đợc tạo bằng câu lệnh
CREATE TABLE của các bảng trong mệnh đề FROM của truy vấn
lựa chọn.
- Danh sách tên của các cột theo thứ tự mong muốn, dùng dấu
phẩy (,) để tách tên của các cột nếu select_list có nhiều hơn một cột.
- Tên cột ngầm định là tiêu đề cột. Có thể thay đổi tiêu đề cột
theo cú pháp:
Tiêu_đề_cột = Tên_cột

hoặc
Tên_cột Tiêu_đề_cột
Nếu có dấu cách (space) trong tên của tiêu đề cột thì phải dùng
dấu ngoặc kép (' ' hoặc " ") đối với tiêu đề cột. Ví dụ:
SELECT 'Tên tác giả' = au_lname
FROM authors
- Một biểu thức (tên cột, hằng số, hàm hoặc là sự kết hợp của
tên các cột, các hằng số, các hàm bằng các toán tử hoặc các truy vấn
con).
- Có thể dùng từ khoá IDENTITYCOL thay cho tên của cột có
thuộc tính IDENTITY (giá trị của cột là NOT NULL).
- Biến cục bộ hoặc biến toàn cục.
- Gán biến cục bộ theo cú pháp:
@variable = Biểu thức
Chú ý: Nếu select_list gồm việc gán biến thì không thể thực hiện lấy
dữ liệu.
INTO Tên_bảng_mới: Tạo ra một bảng mới với các cột đợc chỉ ra
trong select_list và các giá trị thoả mãn mệnh đề WHERE. Để chọn dữ liệu

60
Sách điện tử, luận văn tốt nghiệp CNTT http:/www.diachiweb.com
và đa vào một bảng cố định, lựa chọn select into/bulkcopy phải đợc hoạt
động (bằng cách thực hiện thủ tục lu trữ của hệ thống sp_dboption). Khi
một cơ sở dữ liệu đợc tạo mới, lựa chọn select into/bulkcopy ngầm định là
không hoạt động. Tên bảng mới phải tuân theo các qui tắc giống tên bảng
gốc, gồm:
- Nếu select into/bulkcopy đang hoạt động trong cơ sở dữ liệu mà
bảng sẽ đợc tạo ra, bảng cố định phải đợc tạo ra trớc đó. Tên bảng phải
duy nhất trong cơ sở dữ liệu và phải tuân theo các qui tắc nhận dạng.
- Nếu select into/bulkcopy không hoạt động trong cơ sở dữ liệu mà

bảng sẽ đợc tạo ra thì không thể tạo ra đợc bảng cố định bằng lệnh
SELECT INTO; chỉ có thể tạo ra các bảng tạm thời cục bộ hoặc toàn cục. Để
tạo bảng tạm thời, tên của bảng tạm thời phải đợc bắt đầu bằng dấu #
(#Tên_bảng) đối với bảng tạm thời cục bộ và hai dấu ## (##Tên_bảng) đối
với bảng tạm thời toàn cục khi tạo bảng bằng CREATE TABLE.
- Hoạt động của SELECT INTO gồm hai bớc. Bớc đầu tiên là tạo
bảng, ngời sử dụng phải có quyền tạo bảng trong cơ sở dữ liệu đích. Bớc
thứ hai là thêm các dòng giá trị vào bảng mới. Nếu bớc thứ hai không thực
hiện đợc vì bất kỳ lý do gì (lỗi phần cứng, vợt quá dung lợng đĩa của cơ
sở dữ liệu, ...) thì bảng mới vẫn tồn tại nhng không có giá trị.
- Có thể dùng SELECT INTO để tạo ra một bảng có cấu trúc giống
nhau (khác tên bảng) bằng cách đa điều kiện sai trong mệnh đề WHERE.
- Không thể dùng SELECT INTO cùng với mệnh đề COMPUTE hoặc
trong một giao dịch do ngời dùng định nghĩa.
- Nếu chọn cột có giá trị NOT NULL vào bảng mới thì cột mới sẽ có
thuộc tính IDENTITY (có giá trị NOT NULL) trừ khi một trong số các điều
kiện sau đợc thoả mãn:
. Câu lệnh SELECT bao gồm mệnh đề liên kết (join), mệnh đề
GROUP BY hoặc các hàm tổng hợp.

61
Sách điện tử, luận văn tốt nghiệp CNTT http:/www.diachiweb.com
. Nhiều câu lệnh SELECT đợc kết hợp với nhau bằng toán tử
UNION.
. Cột có giá trị NOT NULL đợc liệt kê nhiều hơn trong
select_list.
. Cột có giá trị NOT NULL là một phần của biểu thức.
FROM: Chỉ ra các bảng đợc sử dụng trong lệnh SELECT. Nếu
select_list chỉ là hằng số, biến và các biểu thức số mà không có tên cột thì
không cần mệnh đề FROM. Số lợng bảng tối đa trong mệnh đề FROM là

16 bảng, kể cả các truy vấn con.
- Tên_bảng = [[Tên_cơ sở_dữ_liệu.]Chủ_cơ_sở_dữ_liêu.]{Tên_bảng}
Nếu có nhiều bảng trong mệnh đề FROM thì dùng dấu phẩy (,) để phân tách
các bảng. Nếu các bảng tồn tại trong cơ sở dữ liệu khác thì phải đa ra tên
bảng đầy đủ (Tên_cơ_sở_dữ_liệu.Chủ_cơ_sở_dữ_liệu.Tên_bảng).
Mỗi tên bảng có thể có bí danh để sử dụng cho thuận lợi hoặc để phân
biệt các vai trò khác nhau của các bảng khi liên kết hoặc thực hiện các truy
vấn con. Để dùng bí danh, trớc hết phải chỉ ra tên bảng, sau đó là một
khoảng trằng (space) và cuối cùng là tên bí danh, ví dụ:
SELECT au_lname, au_fname, title
FROM titles t, authors a, titleauthor ta
WHERE ta.title_id = t.title_id
AND ta.au_id = a.au_id
ORDER BY title, au_lname, au_fname
Thứ tự của các bảng sau từ khoá FROM không ảnh hởng đến kết quả của
câu lệnh.
WHERE: Xác định các điều kiện để lựa chọn dữ liệu trong câu lệnh.
Số lợng các điều kiện là không hạn chế (trong câu lệnh của ngôn ngữ hỏi
đáp có cấu trúc SQL).
WHERE search_conditions

62
Sách điện tử, luận văn tốt nghiệp CNTT http:/www.diachiweb.com
GROUP BY: Xác định các nhóm trong bảng, nếu trong select_list có
các hàm tổng hợp thì xác định giá trị tổng quát cho mỗi nhóm. Các dữ liệu
kiểu văn bản (text) và ảnh (image) không đợc dùng trong mệnh đề GROUP
BY.
GROUP BY [ALL] aggregate_free_expression
[, aggregate_free_expression]...
HAVING: Xác định các kiểu hạn chế khác nhau đối với các hàm tổng

hợp trong select_list.
HAVING search_conditions
search_conditions hạn chế các dòng giá trị kết quả của truy vấn mà không
ảnh hởng đến việc tính toán của các hàm tổng hợp. Khi dùng mệnh đề
WHERE, search_conditions hạn chế các dòng giá trị đợc tính toán trong
các hàm tổng hợp nhng không hạn chế các dòng giá trị kết quả của truy
vấn. Các dữ liệu kiểu văn bản (text) và ảnh (image) không đợc dùng trong
mệnh đề HAVING. Số lợng điều kiện không hạn chế trong
search_conditions. Mệnh đề HAVING có thể đợc dùng độc lập với mệnh đề
GROUP BY. Nếu mệnh đề HAVING đợc dùng với mệnh đề GROUP BY
ALL thì HAVING sẽ phủ nhận ý nghĩa của từ khoá ALL.
ORDER BY: Sắp xếp kết quả theo cột, có thể sắp xếp tối đa là 16 cột.
ORDER BY {{table_name. | view_name.}column_name
| select_list_number | expression} [ASC | DESC]
[...{{table_name16. |
view_name16.}column_name
| select_list_number | expression} [ASC | DESC]]
Các giá trị Null đợc xếp trớc các giá trị khác, các cột có giá trị văn
bản (text) hoặc ảnh (image) không đợc dùng trong mệnh đề ORDER BY.
COMPUTE: Đợc dùng với các hàm tổng hợp theo dòng (SUM, AVG,
MIN, MAX, và COUNT).

63
Sách điện tử, luận văn tốt nghiệp CNTT http:/www.diachiweb.com
COMPUTE row_aggregate(column_name)
[, row_aggregate(column_name)...]
[BY column_name [, column_name]...]
FOR BROWSE: Cho phép cập nhật bằng cách sử dụng th viện cơ sở
dữ liệu (DB_Library) khi xem dữ liệu trong các chơng trình ứng dụng của
máy khách.

2. Câu lệnh INSERT: Thêm một dòng giá trị mới vào bảng dữ liệuđang tồn
tại trong CSDL.
Cú pháp:
INSERT [INTO]
{table_name | view_name} [(column_list)]
{DEFAULT VALUES | values_list | select_statement}
where
Trong đó:
INTO: Là từ khoá lựa chọn.
table_name | view_name: Tên của bảng đợc dùng trong câu lệnh
INSERT. Nếu bảng không tồn tại trong cơ sở dữ liệu hiện thời thì phải chỉ ra
đầy đủ tên bảng (database_name.owner.object_name).
column_list: Danh sánh các cột đợc thêm dữ liệu. Có thể liệt kê các
cột theo bất kỳ thứ tự nào nhng dữ liệu đợc thêm vào bảng phải có cùng
thứ tự với thứ tự của cột. Nếu column_list không đợc chỉ ra thì tất cả các cột
(theo thứ tự đợc tạo ra bằng lệnh CREATE TABLE) của bảng sẽ đợc thêm
dữ liệu.
DEFAULT VALUES: Thêm giá trị ngầm định cho tất cả các cột. Đối
với các cột có giá trị NOT NULL, giá trị phù hợp tiếp theo sẽ đợc thêm vào.
Đối với các cột đợc nhận giá trị NULL thì giá trị ngầm định đợc thêm vào
là NULL.

64
Sách điện tử, luận văn tốt nghiệp CNTT http:/www.diachiweb.com
values_list: Để liệt kê các giá trị cho mỗi cột theo thứ tự trong column_list
hoặc trong bảng.
VALUES (DEFAULT | constant_expression
[, DEFAULT | constant_expression]...)
select_statement: Là câu lệnh SELECT dùng để nhận dữ liệu mà sẽ
đợc thêm vào bảng từ một bảng đang tồn tại.

Ví dụ:
A. Thêm giá trị cho tất cả các cột
INSERT titles
VALUES('BU2222', 'Faster!', 'business', '1389',
NULL, NULL, NULL, NULL, 'ok', '06/17/87')
B. Thêm giá trị cho các cột đợc liệt kê trong column_list:
INSERT titles(title_id, title, type, pub_id, notes, pubdate)
VALUES ('BU1237', 'Get Going!', 'business', '1389',
'great', '06/18/86')
C. Thêm giá trị cho tất cả các cột từ một bảng khác:
INSERT INTO newauthors
SELECT *
FROM authors
WHERE city = 'San Francisco'
D. Thêm các giá trị ngầm định:
INSERT publishers DEFAULT VALUES
Vì giá trị của cột pub_id trong bảng publishers là NOT NULL
nên xuất hiện thông báo lỗi:
Msg 233, Level 16, State 2
The column pub_id in table publishers may not be null.
E. Thêm giá trị cho các cột sử dụng từ khoá DEFAULT
INSERT employee

65

×