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

Chuẩn bị kỳ thi số 731 lấy chứng chỉ DBA (Quản trị cơ sở dữ liệu) DB2 9, Phần 3: Truy cập cơ sở dữ liệu pdf

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 (307.4 KB, 66 trang )

Chuẩn bị kỳ thi số 731 lấy chứng chỉ DBA (Quản trị cơ sở dữ liệu) DB2 9,
Phần 3: Truy cập cơ sở dữ liệu
George Baklarz, Giám đốc DB2, IBM
Tóm tắt: Hướng dẫn này dẫn dắt bạn qua các bước khác nhau cần có để quản lý
một số đối tượng trong DB2®. Nó gồm thông tin tổng quát về chỉ mục, ràng buộc,
tính toàn vẹn tham chiếu, và khung nhìn. Đây là bài thứ ba trong loạt bảy bài
hướng dẫn mà bạn có thể sử dụng nhằm giúp chuẩn bị lấy chứng chỉ Quản trị Cơ
sở dữ liệu DB2 9 dùng cho Linux®, UNIX® và Windows™ (Bài thi số 731).
Trước khi bạn bắt đầu
Về loạt bài này
Nếu bạn đang chuẩn bị dự thi bài số 731 lấy chứng chỉ DB2 DBA, bạn đã đến
đúng chỗ. Loạt bảy bài hướng dẫn chuẩn bị thi lấy chứng chỉ DB2 này gồm các
khái niệm chính mà bạn cần biết để làm bài kiểm tra. Hãy làm bài tập ở nhà của
bạn tại đây và hãy làm dịu bớt căng thẳng trong ngày kiểm tra đó.
Về tài liệu hướng dẫn này
Hướng dẫn này sẽ đưa bạn qua các bước khác nhau cần có để quản lý một số đối
tượng trong DB2. Các chủ đề sau đây gồm:
 Tạo các tác vụ DB2 bằng cách sử dụng công cụ GUI.
 Tạo và quản lý các chỉ mục.
 Tạo các ràng buộc trên bảng (ví dụ, RI, thông tin, tính duy nhất).
 Tạo các khung nhìn trên các bảng.
 Kiểm tra nội dung của các bảng danh mục hệ thống.
 Áp đặt tính duy nhất của dữ liệu.
Đây là bài thứ ba trong loạt bảy bài hướng dẫn nhằm giúp bạn chuẩn bị thi lấy
Chứng chỉ Quản trị Cơ sở dữ liệu DB2 9 dùng cho Linux, UNIX® và Windows™
(Bài thi số 731). Tư liệu trong hướng dẫn này trước tiên trình bày các mục tiêu
trong Phần 3 của bài thi, có tiêu đề “Truy cập Cơ sở dữ liệu.” Bạn có thể xem các
mục tiêu này tại địa chỉ trang web: http://www-
03.ibm.com/certify/tests/obj731.shtml.
Việc cài đặt DB2 không nêu trong hướng dẫn này. Nếu bạn chưa cài đặt, chúng tôi
hết sức khuyên bạn tải về và cài đặt một bản IBM DB2 9. Việc cài đặt DB2 sẽ


giúp bạn hiểu nhiều khái niệm được trắc nghiệm trên bài thi lấy Chứng chỉ Quản
trị Cơ sở dữ liệu DB2 9.


Các điều kiện tiên quyết
Do bạn đang đọc hướng dẫn này, rõ ràng là bạn muốn được học tập về các khía
cạnh của việc quản trị DB2, hoặc có thể nâng cấp kỹ năng hiện tại của bạn để phản
ánh các khía cạnh mới tìm thấy trong phát hành mới nhất của sản phẩm. Bạn cũng
có thể quan tâm đến việc lấy chứng chỉ về quản trị DB2 và cần điểm lại những gì
chúng tôi trình bày trong bài thi!
Dù lý do của bạn là gì đi nữa, vẫn có một vài điều bạn phải làm để nhận được
nhiều nhất từ bài này và các hướng dẫn khác:
1. Hãy lấy một bản DB2 9. Không có cái gì để thực hành, bạn sẽ không thể
thử các ví dụ hoặc khám phá các đặc điểm khác nhau của sản phẩm.
2. Lấy các hướng dẫn chuẩn bị bài thi Cơ sở về DB2 9. Các bài hướng dẫn
này cho bạn một nền tảng cơ sở về DB2 và sẽ làm nó sáng tỏ hơn một số
thuật ngữ được sử dụng trong hướng dẫn này. Có lẽ không phải là một ý
tưởng tồi nếu bạn đã qua được bài kiểm tra đó trước khi thử bài này!
3. Thực hành và thử các thứ của chính bạn. Trong khi hướng dẫn này cố gắng
trình bày nhiều chủ đề mà bạn cần để nhận được chứng chỉ, không có gì
đánh đổi được kinh nghiệm.
4. Đọc tài liệu Quản trị DB2 (DB2 Administration). Chúng có thể cho bạn
nhiều thứ bên trong về cách DB2 làm việc. Cũng có các nguồn thông tin
khác về DB2 mà có thể tìm thấy ở phần cuối của hướng dẫn này (xem Tài
nguyên).

Tạo các tác vụ DB2 bằng cách sử dụng các công cụ GUI
Trung tâm tác vụ DB2 (DB2 Task Center)
Một trong những công cụ DB2 được sử dụng để điều khiển cơ sở dữ liệu là Trung
tâm Tác vụ. Trung tâm Tác vụ được sử dụng để chạy các tác vụ, hoặc tức khắc

hoặc theo lịch, và thông báo cho con người về tình trạng của tác vụ đã hoàn tất.
Trung tâm Tác vụ gồm tất cả các chức năng thấy trong Trung tâm Kịch bản lệnh
(Script Center) trong các phiên bản trước của DB2, cộng với các đặc điểm bổ sung
mới. Một tác vụ là một kịch bản lệnh, cùng với các điều kiện thành công, lịch
biểu, và các thông báo kết hợp với nhau. Bạn có thể tạo một tác vụ trong Trung
tâm Tác vụ, tạo một kịch bản lệnh trong công cụ khác và lưu nó vào Trung tâm
Tác vụ, nhập một kịch bản lệnh hiện hành, hoặc lưu các tuỳ chọn từ một hội thoại
hoặc thủ thuật DB2 như thủ thuật Load. Một kịch bản lệnh có thể chứa các lệnh
DB2, SQL, hoặc lệnh hệ điều hành.


Tạo các cơ sở dữ liệu công cụ
Để sử dụng Trung tâm Tác vụ, cần có danh mục công cụ. Danh mục công cụ chứa
các thông tin về các tác vụ quản trị mà bạn lập cấu hình với các công cụ như vậy
như Trung tâm Tác vụ và Trung tâm Điều khiển.
Danh mục công cụ có thể đã được tạo ra cho bạn khi bạn đã cài đặt DB2, nhưng
trong trường hợp nó chưa sẵn có, bạn có thể tạo ra nó bằng cách sử dụng một lệnh
DB2 hoặc trình đơn công cụ (tools menu).
Để tạo ra cơ sở dữ liệu công cụ từ dòng lệnh, mở một cửa sổ lệnh DB2 và chạy
lệnh sau đây:
db2 create tools catalog cc create new database toolsdb

Để tạo ra cơ sở dữ liệu bằng cách sử dụng các thiết đặt công cụ, chọn Tools >
Tools Settings > Scheduler Settings từ trong Trung tâm Điều khiển:


Bắt đầu Trung tâm Tác vụ
Bắt đầu Trung tâm Tác vụ với lệnh db2tc từ cửa sổ dòng lệnh, hoặc nhấn vào
Trung tâm Tác vụ từ bất kỳ công cụ DB2 nào:
Ngoài ra, Trung tâm Tác vụ còn có thể khởi động từ trình đơn DB2 trong một môi

trường Windows:
Một khi Trung tâm Tác vụ được khởi động, bạn có thể quản lý, tạo, và chạy các
kịch bản lệnh.


Chức năng của Trung tâm Tác vụ
Đối với mỗi tác vụ, bạn có thể làm các việc sau:
 Lập lịch biểu tác vụ.
 Quy định điều kiện thành công và thất bại.
 Quy định các hành động mà sẽ được thực hiện khi tác vụ này thực hiện
thành công hoặc khi nó thất bại.
 Quy định rõ địa chỉ email (gồm cả các địa chỉ nhắn tin) mà sẽ được thông
báo đến, khi tác vụ này thực hiện thành công hoặc khi nó thất bại.
Bạn có thể chỉ rõ cách mã hoá có điều kiện (conditional coding) bằng cách tạo các
hành động tác vụ. Mỗi hành động tác vụ gồm có một tác vụ và hành động sẽ được
thực hiện về tác vụ đó. Ví dụ, tác vụ 1 có thể có các hành động tác vụ sau đây:
 Nếu tác vụ 1 thành công, thao tác tác vụ A cho phép lập lịch biểu tác vụ 2.
 Nếu tác vụ 1 thất bại, thao tác tác vụ B cho chạy tác vụ 3.
Bạn cũng có thể tạo ra một nhóm tác vụ mà kết hợp một số tác vụ trong một đơn vị
logic của công việc. Khi nhóm tác vụ đáp ứng các điều kiện thành công hoặc thất
bại mà bạn đã xác định, bất kỳ tác vụ kế tiếp cũng được chạy. Ví dụ bạn có thể kết
hợp ba kịch bản lệnh sao lưu thành một nhóm tác vụ và sau đó quy định một việc
sắp xếp lại như một tác vụ kế tiếp mà sẽ được thực hiện nếu tất cả các kịch bản
lệnh sao lưu thực hiện thành công.


Tạo một tác vụ
Trung tâm Tác vụ có thể đòi hỏi tám bước để tạo ra một tác vụ:
1. Mô tả và đặt tên tác vụ.
2. Chọn một kịch bản lệnh.

3. Xác định các tiêu chí thành công hoặc thất bại (các thuộc tính chạy).
4. Nhóm các tác vụ.
5. Lịch biểu tác vụ chạy.
6. Thiết lập một mức thông báo.
7. Chọn các thao tác tác vụ sau khi hoàn thành.
8. Đặt bảo mật.
Các bước này được mô tả trong bảng điều khiển sau đây. Khi Trung tâm Tác vụ
được khởi động, nó hiển thị tất cả các tác vụ mà hiện tại được xác định trong hệ
thống:
Để tạo một tác vụ mới, nhấn chuột trái vào vùng liệt kê tác vụ, hoặc chọn Task >
New từ trình đơn tại đỉnh của bàn điều khiển.
Việc này mở ra một cửa sổ cho phép bạn xác định tác vụ mà bạn muốn tạo.
Trung tâm Tác vụ được cập nhật với bất kỳ tác vụ mới nào mà bạn tạo ra. Lưu ý
rằng các tuỳ chọn làm mới lại sẽ được thiết đặt ở một quãng thời gian hợp lý nếu
bạn muốn xem bất kỳ thay đổi về các tác vụ mà đã có sẵn trong danh sách.


Mô tả và đặt tên tác vụ
Bảng mô tả tác vụ cho phép bạn xác định các đặc tính của chính tác vụ:
Trường Name (tên) gồm tên của tác vụ mà bạn đang tạo ra. Tên này có thể chứa
bất kỳ ký tự nào, vậy tên mô tả có thể được sử dụng.
Kiểu trường báo cho DB2 biết kiểu của hành động mà tác vụ này đang thực hiện.
Có bốn tuỳ chọn:
 Kịch bản lệnh DB2: Tập lệnh này chạy các lệnh DB2, chúng có thể chứa
SQL.
 Kịch bản lệnh hệ điều hành: Lệnh hệ điều hành được gộp trong kiểu kịch
bản lệnh này.
 Kịch bản lệnh shell MVS: Kịch bản lệnh shell MVS thực hiện trong một
môi trường chủ MVS hoặc z/OS. Kiểu tác vụ này cũng có thể gồm các lệnh
JCL (Job Control Language - Ngôn ngữ Điều khiển Công việc).

 Nhóm tác vụ: Nhóm tác vụ nhận một vài tác vụ và đặt chúng vào một
nhóm được thực hiện cùng nhau.
Trường Description (mô tả) có thể chứa mô tả độ dài của tác vụ được tạo.
Trường Task Category (loại tác vụ) được sử dụng để phân loại kiểu của tác vụ
đang được tạo ra. Đây là một trường tuỳ chọn, nhưng có thể rất hữu ích khi bạn cố
gắng tìm một lệnh trước đó, hoặc nhóm các lệnh cùng nhau dựa theo mục đích của
chúng. Nhấn vào nút chấm lửng lược (ellipsis) ở phần cuối của trường để xem
một danh sách các loại tác vụ được xác định:
Một tác vụ có thể có nhiều loại liên kết với nó. Các loại tác vụ sẵn có có thể được
sử dụng để phân loại tác vụ bằng cách chọn loại tác vụ và sau đó nhấn nút >. Các
loại tác vụ bổ sung có thể được tạo ra bằng cách gõ nhập một mục mới dưới New
task category và nhấn >. Các loại này có thể được sử dụng để sắp xếp các tác vụ
sẵn có trong chính cửa sổ tác vụ vào sau này.
Trường Run System (chạy hệ thống) cho biết hệ thống sẽ chạy các lệnh. Đây có
thể là một hệ thống cục bộ (như trường hợp trong các hình mẫu) hoặc bất kỳ hệ
thống ở xa nào mà đã được lên danh mục.
Tuỳ chọn DB2 Instance and Partition (cá thể và phân vùng DB2) cho phép bạn
chọn ra thể hiện và vùng mà trên đó lệnh sẽ chạy. Tuỳ chọn phân vùng chỉ có ý
nghĩa đối với các hệ thống có DPF (DB2 Partitioning Feature - đặc tính phân vùng
DB2) đã được cài đặt. Trong trường hợp như vậy, tác vụ có thể chạy trên các phân
vùng riêng trong cơ sở dữ liệu, chứ không phải là qua toàn bộ chúng.
Tất cả các trường, trừ trường mô tả và phân loại, cần được đưa dữ liệu vào để tác
vụ được tạo ra.


Chọn một kịch bản lệnh
Bảng kịch bản lệnh chứa lệnh DB2 thực hoặc lệnh hệ điều hành mà bạn muốn
chạy đối với cơ sở dữ liệu. Cửa sổ chính cho phép bạn gõ nhập lệnh hoặc sử dụng
các thao tác cắt và dán để sắp đặt thông tin vào bảng này.
Nếu bạn đã tạo ra hoặc lưu một kịch bản lệnh trong một tệp bên ngoài, nhấn nút

Import để nạp nó vào.
Nếu một kịch bản lệnh cần truy cập dữ liệu hoặc xuất thông tin ra đĩa, quy định rõ
thư mục mặc định để DB2 biết vị trí để đặt hoặc tìm thông tin.
Cuối cùng, dấu kết thúc lệnh DB2 (DB2 statement terminator) tham chiếu đến ký
tự mà sẽ được sử dụng để phân tách nhiều lệnh DB2. Theo mặc định, đây là dấu
chấm phẩy (;), nhưng bạn có lẽ cần thay đổi cái này nếu bạn đang tạo ra các hàm
DB2, bộ khởi động (trigger), hoặc bất kỳ lệnh SQL PL nào. Các đối tượng DB2
này sử dụng dấu chấm phẩy như là dấu tách lệnh của chúng, do đó một dấu tách
DB2 khác sẽ được sử dụng (ký hiệu đô la ($) hoặc ký hiệu a móc (@) là hai ký
hiệu được sử dụng phổ biến).


Các thuộc tính chạy
Bảng Run Properties (các thuộc tính chạy) được sử dụng để xác định các tiêu chí
thành công hay thất bại của tác vụ. Bạn có thể báo cho kịch bản lệnh dừng lại khi
có bất kỳ mã trả lại khác không (dừng thực hiện tại mã trả lại đầu tiên báo thất bại)
hoặc xác định một tập các điều kiện mã trả lại.
Nếu một tác vụ có thể trả lại nhiều mã trả lại mà được coi là thành công, bạn cần
xác định một bộ mã thành công. Để hiển thị một danh sách các bộ mã, nhấn vào
trường Success code set.
Trong trường hợp không có bộ mã thành công nào được hiển thị, hoặc nếu không
có mã nào của chúng phù hợp với các yêu cầu của bạn, hãy tạo ra mã của riêng
bạn bằng cách nhấn New.
Bạn có thể tạo ra bộ mã thành công của chính bạn, chúng có thể chứa nhiều giá trị
mã trả lại. Sau đó bạn có thể sử dụng bộ mã thành công này cho tác vụ hiện tại của
bạn, và sử dụng lại nó cho các tác vụ bổ sung mà bạn tạo ra sau đó. Ví dụ đặc biệt
này tạo ra một bộ mã thành công cho mã trả lại 0 (zero return code), như minh họa
trên đây. Bạn có thể chỉ cần sử dụng hộp đánh dấu chọn mã trả lại mặc định trên
bảng thứ nhất để đạt được cùng một mục đích.



Nhóm các tác vụ
Sử dụng chức năng nhóm để chạy hoặc lập lịch biểu với nhau một số lớn các tác
vụ. Thay cho việc tạo một tác vụ lệnh, xác định một nhóm tác vụ. Ngay sau khi
kiểu tác vụ này được xác định, phiếu Group được kích hoạt và cửa sổ sau đây mở
ra.
Trên phiếu này, bạn có thể thêm tất cả các tác vụ mà bạn muốn chạy như là một bộ
phận của nhóm này. Trong ví dụ này, hai tác vụ đã được thêm vào nhóm. Sau khi
bạn đã xác định tất cả các tác vụ, lập lịch biểu nhóm và thiết đặt bất kỳ điều kiện
thành công hoặc thất bại nào như bạn sẽ thực làm bằng một tác vụ riêng.


Lập lịch biểu các tác vụ
Một khi xác định kịch bản lệnh của bạn và chạy các đặc tính của tác vụ, hãy xác
định lịch biểu về thời gian nó sẽ chạy. Bạn không phải tạo ra một lịch biểu cho tác
vụ của mình, nhưng để chạy nó bạn cần phải lập lịch biểu riêng cho nó hoặc như
một bộ phận của một nhóm.
Phiếu lịch biểu (schedule tab) gồm ngày và thời gian lúc mà lệnh được coi là sẽ
chạy.
Bạn có thể quy định rằng lệnh này chạy một lần, hoặc nhiều lần dựa trên một lịch
biểu hoặc trên một danh sách của các lịch biểu đã lưu. Nếu bạn muốn chạy nhiều
tác vụ vào cùng một ngày hoặc chạy đồng thời, có lẽ đơn giản hơn là tạo ra một
bản ghi lịch biểu và sử dụng lịch này cho mỗi tác vụ, chứ không phải lần nào cũng
tạo lại nó.


Thiết đặt thông báo
Phiếu thông báo được sử dụng để báo cho DB2 biết nơi gửi mã hoàn thành khi tác
vụ kết thúc. Việc này không gửi đi kết quả thật của tác vụ, mà chỉ là mã trả lại.
Nhiều thông báo có thể được gửi đi đối với một tác vụ riêng. Các thông báo này có

thể dựa trên:
 Tác vụ thành công: Khi tác vụ thực hiện thành công, một thông báo có thể
được gửi đi.
 Tác vụ thất bại: Khi tác vụ không thực hiện thành công, một thông báo có
thể được gửi đi.
 Bất kỳ điều kiện nào: Dù kết quả gì đi nữa thì một thông báo cũng được
gửi đi.
Ngoài mức độ thông báo, bạn cũng có thể quy định cách mà thông báo được gửi
đi. Trung tâm tác vụ có thể thông báo các liên hệ hoặc sắp đặt thông tin trong Sổ
ghi chép (Journal) (xem Sổ ghi chép). Danh sách liên hệ gồm một tập những người
sử dụng mà bạn có thể gửi đến một trang hoặc các thông báo qua thư điện tử
(email notifications).
Lưu ý rằng nếu bạn muốn gửi các thông báo cho người sử dụng, bạn phải thiết lập
một một máy chủ SMTP trên máy của bạn. Không có khả năng này thì không thể
gửi thông báo.
Thông báo tự nó có thể được tuỳ biến để chứa bất kỳ văn bản nào mà bạn muốn.
Một số biến kiểu ký hiệu (symbolic variables) có sẵn trong văn bản, được sử dụng
để trả lại thông tin về tác vụ:
 &Categories: Các loại liên kết với tác vụ.
 &Completionstatus: Trạng thái hoàn thành của tác vụ. Giá trị này phụ
thuộc vào bộ mã thành công liên kết với tác vụ.
 &Description: Mô tả của tác vụ.
 &Duration: Khoảng thời gian chạy hệ thống để hoàn tất tác vụ từ lúc bắt
đầu đến khi kết thúc.
 &End: Ngày và thời gian tác vụ hoàn tất.
 &Howinvoked: Phương thức sử dụng để gọi ra tác vụ.
 &Name: Tên tác vụ.
 &Owner: Tên của chủ nhân tác vụ.
 &Returncode: Mã trả lại cuối cùng của tác vụ.
 &Runpartitions: Phân vùng mà tác vụ chạy trên đó.

 &Runsystem: Tên của hệ thống mà tác vụ chạy trên đó.
 &Schedulersystem: Tên của hệ thống mà tác vụ được lập lịch biểu trên đó.
 &Start: Ngày và thời gian tác vụ bắt đầu chạy.
 &Type: Kiểu tác vụ (nghĩa là, nó là một kịch bản lệnh DB2, một kịch bản
lệnh hệ điều hành, một kịch bản lệnh shell MVS, một kịch bản lệnh JCL,
hay là một nhóm).
 &Userid: Mã nhận dạng người sử dụng cho tác vụ đó.


Thiết đặt các thao tác tác vụ
Phiếu các hành động tác vụ (task actions tab) xác định cái mà xảy ra với tác vụ sau
khi nó đã thực hiện xong.
Có ba hành động tác vụ khả dĩ có thể xảy ra đối với một tác vụ, tuỳ thuộc vào việc
nó có hay không:
 Thực hiện thành công.
 Thất bại tại bất kỳ bước nào.
 Tạo ra bất kỳ kết quả nào (thành công hay thất bại).
Khi bất kỳ điều kiện nào trong số các điều kiện này được đáp ứng, tác vụ có thể
thực hiện một số hành động. Nó có thể:
 Chạy tác vụ khác.
 Lập lịch biểu một tác vụ nữa.
 Vô hiệu hoá lịch biểu của một tác vụ.
 Xóa chính nó.
Phần các hành động tác vụ cho phép bạn xâu chuỗi nhiều tác vụ, mỗi tác vụ phụ
thuộc vào sự thực hiện thành công của tác vụ trước đó. Ví dụ, bạn có thể chắc
chắn rằng một bảng đã được tạo ra thành công trước khi bạn xác định các chỉ mục
trên nó.


Thiết đặt bảo mật

Phiếu bảo mật (security tab) cho phép bạn cấp các đặc quyền đọc, viết, và thực
hiện (chạy) cho những người dùng khác đối với tác vụ được tạo ra. Điều này có
thể hữu ích khi bạn có một số người dùng khác nhau tạo ra và bảo trì các tác vụ.
Trong trường hợp như vậy, hẳn là dễ dàng hơn khi tạo ra một nhóm người dùng
được phép quản lý các tác vụ này, chứ không phải là cấp từng người quyền truy
cập đến tác vụ.


Danh sách tác vụ
Một khi bạn đã tạo ra tác vụ, nó sẽ được hiển thị trong chính trình đơn tác vụ.
Các mục trong trình đơn tác vụ được hiển thị theo phạm trù tổng quát. Đây cũng là
trường phân loại (category field) mà bạn đã điền dữ liệu khi tạo ra tác vụ. Bằng
cách sử dụng các phân loại, bạn làm cho nó dễ dàng hơn khi tìm và quản lý các tác
vụ này.
Một tác vụ sẽ bị loại bỏ khỏi danh sách này nếu nó bị người sử dụng xóa vật lý,
hoặc nếu một trong các hành động được giao là xóa chính nó sau khi thực hiện
xong. Nếu màn hình tự động được làm mới, tác vụ cuối cùng sẽ biến mất khi nó đã
chạy xong. Để xác định trạng thái của một tác vụ sau khi nó đã hoàn tất, sử dụng
Sổ ghi chép, cái mà chúng ta sẽ thảo luận trong mục tiếp theo.


Sổ ghi chép (Journal)
Sổ ghi chép ghi lại một số sự kiện bên trong nhân cơ sở dữ liệu (database engine).
Những sự kiện này gồm:
 Lịch sử tác vụ: Hiển thị kết quả của tác vụ đã chạy.
 Lịch sử cơ sở dữ liệu: Hiển thị bất kỳ hoạt động bảo trì nào đối với một cơ
sở dữ liệu.
 Thông báo: Danh sách các thông báo lỗi đã được cơ sở dữ liệu tạo ra.
 Nhật ký thông báo: Gồm các thông báo đã được tạo ra bởi Trung tâm Sức
khoẻ (Health Center) hoặc các cảnh báo trong hệ thống.

Sổ ghi chép có thể được khởi động từ Trung tâm Điều khiển hoặc từ trình đơn
công cụ.
Sổ ghi chép cũng có thể được khởi động từ trong nhóm chương trình DB2. Màn
hình ban đầu được hiển thị như dưới đây.
Tất cả các mục trong danh sách là các tác vụ (hoặc nhóm các tác vụ) đã thực hiện.
Để lấy nhiều chi tiết hơn trên một tác vụ cụ thể, nhấn đúp lên tác vụ đó. Ví dụ,
nhấn tác vụ cuối cùng trong danh sách được minh họa trong hình trên đây cho thấy
báo cáo của tác vụ đó.
Trang kết quả cho bạn biết tác vụ thành công hay không và cũng chứa bất kỳ
thông báo nào được tạo ra bởi tác vụ đó. Có ba phiếu phụ cung cấp thêm thông tin
về tác vụ được thực hiện. Phiếu thứ hai cung cấp các thông tin về kịch bản lệnh
được thực hiện:
Phiếu thứ ba trong báo cáo tác vụ hiển thị kết quả vật lý do tác vụ tạo ra. Kết quả
chạy SQL thể hiện trong hình dưới đây. Lưu ý rằng SQL phải chạy lệnh connect
(kết nối) với đúng cơ sở dữ liệu để nó chạy thành công. Không có kết nối thì tác
vụ sẽ không biết hoạt động trên cơ sở dữ liệu nào.
Cuối cùng, phiếu cuối cùng cho biết các thao tác tiếp theo được thực hiện khi tác
vụ hoàn tất. Trong trường hợp này, tác vụ tự xóa chính nó khi đã chạy thành công.


Tóm tắt
Trung tâm Tác vụ cho phép bạn xác định tác vụ mà có thể chạy nhiều lệnh khác
nhau, bao gồm:
 Các lệnh DB2.
 Các lệnh Hệ điều hành.
 Các lệnh MVS shell hoặc JCL.
 Các nhóm của các kiểu lệnh nói trên.
Các tác vụ có thể được lập lịch biểu để làm việc vào những lúc đặc biệt, và có thể
thông báo cho những người dùng khác về thành công hay thất bại của họ. Ngoài
ra, một tác vụ cũng có thể làm cho tác vụ khác được lên lịch biểu, đột xuất, hoặc

xóa bỏ.

Tạo và quản lý các chỉ mục
Giới thiệu
Chỉ mục là một thành phần quan trọng trong bất kỳ cơ sở dữ liệu nào. Mặc dù mô
hình quan hệ không đòi hỏi các chỉ mục để chạy các truy vấn hoặc tính toán các
kết quả, nhưng người dùng đầu cuối của bạn sẽ vui hơn nếu bạn tạo ra một số chỉ
mục trên các bảng thường hay sử dụng!
Chỉ mục là các đối tượng vật ký liên kết với các bảng đơn. Bất kỳ bảng đã được
lưu trữ hay bảng mô tả tạm thời đều có thể có nhiều chỉ mục xác định trên nó. Bạn
không thể xác định một chỉ mục trên một khung nhìn.
Chỉ mục được sử dụng vì hai lý do chủ yếu:
 Để đảm bảo tính duy nhất của các giá trị dữ liệu.
 Để cải thiện hiệu năng truy vấn SQL.
Chỉ mục có thể dùng để truy cập dữ liệu theo một trật tự được sắp xếp một cách
nhanh chóng và tránh cho tác vụ phải tiêu tốn thời gian sắp xếp dữ liệu trong lưu
trữ tạm thời. Chỉ mục cũng có thể được tạo ra trên các cột tính toán để bộ tối ưu
hoá có thể lưu lại thời gian tính toán bằng cách sử dụng chỉ mục thay cho việc tính
toán. Chỉ mục được bảo trì tự động bởi DB2 khi dữ liệu được chèn vào, cập nhật,
và xóa.


Chỉ mục được tạo ra như thế nào
Với tư cách là một DBA, bạn phải có kiến thức về cách tạo chỉ mục. Mặc dù chỉ
mục chỉ là một thành phần tuỳ chọn (nhưng lại rất quan trọng!) của bất kỳ cơ sở
dữ liệu nào, chúng đôi khi thay bạn tạo ra một cách tự động. Nếu bạn không lập kế
hoạch trước cho chỉ mục, bạn không thể có đủ tài nguyên để tạo hoặc bảo trì
chúng.
Chỉ mục có thể được tạo ra thông qua việc sử dụng lệnh CREATE INDEX (tạo chỉ
mục). Tuy nhiên, chỉ mục cũng được tạo tự động nếu bạn tạo một bảng gồm một

cột với một thuộc tính UNIQUE (duy nhất), nếu có ràng buộc tham chiếu đến
bảng, hoặc nếu một bảng được xác định theo các thuộc tính kích thước (đa chiều -
multidimensional). Tất cả các điều kiện này đòi hỏi chỉ mục để áp đặt tính duy
nhất trong bảng, và để đảm bảo hiệu năng khả dĩ. Hãy tưởng tượng rằng nếu cơ sở
dữ liệu phải rà quét toàn bộ bảng mỗi khi nó cần kiểm tra xem một giá trị có phải
là duy nhất hay không!
Ngoài các lệnh SQL tạo chỉ mục, nhiều thủ thuật khác có sẵn trong Trung tâm
Điều khiển DB2 giúp xác định chỉ mục nào sẽ phù hợp nhất trong một hoàn cảnh
cho trước.


Các vấn đề với chỉ mục
Câu hỏi đầu tiên bạn sẽ đặt ra khi tạo ra một chỉ mục là, “Cái nào sẽ cho tôi hiệu
năng tốt nhất?”. Bạn sẽ tạo ra một chỉ mục trên mỗi cột trong một bảng để đảm
bảo hiệu năng tốt? Hoặc bạn sẽ chỉ tạo một chỉ mục mà cho người sử dụng trực
tiếp truy cập đến dữ liệu?
Các chỉ mục chiếm không gian trên hệ thống của bạn. Chúng có thể thường trú
trong cùng một không gian bảng với bảng bạn đang lập chỉ mục hoặc một không
gian bảng chỉ mục riêng biệt. Do có các giới hạn vật lý về kích thước của không
gian bảng, bạn không thể có đủ không gian để tạo ra tất cả các thứ bạn cần.
Việc cập nhật chỉ mục phải mất thời gian. Bất cứ khi nào bạn chèn, cập nhật, hoặc
xóa các bản ghi, DB2 phải thay đổi tất cả các chỉ mục ứng với tác động của hành
động của bạn. Như vậy, việc tạo ra 15 chỉ mục trên bảng ưa thích của bạn, sẽ tạo
ra 15 cập nhật chỉ mục mỗi khi bạn thay đổi dữ liệu. Trong trường hợp này, thay
vì đảm bảo hiệu năng tốt hơn, các chỉ mục của bạn sẽ làm thời gian trả lời lâu hơn.
Cuối cùng, chỉ mục có lẽ không thích hợp với các cột mà có ít giá trị (phần tử số
thấp). Một phương thức lập chỉ mục thay thế (multidimensional clustering – cụm
đa chiều, hay MDC) có thể phù hợp hơn.



Chỉ mục đặt ở đâu?
Trước khi bạn quyết định tạo ra một số chỉ mục, bạn phải nhanh chóng ôn lại các
khái niệm về không gian bảng.
Các bảng và chỉ mục là được đặt vào không gian bảng. Một không gian bảng được
sử dụng như một lớp (layer) nằm giữa cơ sở dữ liệu và các thùng chứa đối tượng
dữ liệu bảng thực tế.
Thùng chứa là một dụng cụ lưu trữ vật lý. Nó có thể được xác định bởi một tên thư
mục, một tên thiết bị, hoặc một tên tệp. Một thùng chứa được gán cho một không
gian bảng và một không gian bảng có thể chắp nối nhiều thùng chứa. Khả năng để
có nhiều thùng chứa gán cho một không gian bảng tránh các hạn chế của hệ điều
hành về lượng dữ liệu mà một thùng chứa có thể có. Quan hệ giữa toàn bộ các đối
tượng này được minh họa trong biểu đồ dưới đây.
Mặc dù một bảng là đối tượng cơ sở được đặt vào một không gian bảng, bạn phải
nhận thức được các đối tượng bổ sung trong hệ thống DB2 và cách chúng được
ánh xạ đến một không gian bảng.


Lưu trữ bảng và chỉ mục
Vậy tại sao lại quan tâm đến lệnh CREATE TABLE (tạo bảng) khi điều bạn thật
sự muốn thực hiện là tạo một số chỉ mục? Khó khăn với việc thay thế chỉ mục là ở
chỗ nó phụ thuộc vào cách mà bảng được xác định.
Nếu một bảng được tạo ra không có bất kỳ liên quan nào đến vị trí, nó sẽ tạo trong
không gian hệ thống mặc định, cùng với bất kỳ chỉ mục được tạo cho nó. Điều này
có nghĩa là không gian bảng USERSPACE1 sẽ nhanh chóng lấp đầy các bảng và
chỉ mục của bạn, do cả hai được lưu trữ tại cùng một nơi.
Ngay cả khi bạn sắp đặt một cách chu toàn các bảng của bạn trong các không gian
bảng riêng biệt, bạn vẫn có thể có vấn đề, do các chỉ mục sẽ được tạo ra ở cùng
một nơi. Bạn cần quy định vị trí của các chỉ mục của bạn!



Tạo bảng
Khi bạn tạo một bảng, bạn có thể sử dụng một tuỳ chọn để quy định rõ không gian
bảng hoặc các không gian bảng trong đó bảng và chỉ mục sẽ được đặt:
CREATE TABLE TEST (
column 1 definition, column 2 definition,
) IN <tablespace name> INDEX IN <index space name>

Lệnh này cho bạn tuỳ chọn xác định vị trí bảng được tạo ra, cùng với chỉ mục.
Nếu bạn không quy định rõ một không gian bảng chỉ mục riêng biệt, các chỉ mục
được tạo ra ở cùng một không gian bảng với bảng. Bạn không có tuỳ chọn nào tạo
ra các chỉ mục trong một không gian bảng khác sau khi bảng đã được tạo. Bài học
của chuyện này là: trước tiên hãy đặt kế hoạch, khi tạo ra các chỉ mục của bạn!
Nếu bạn dự định phân vùng các bảng của bạn (phân vùng phạm vi), bạn có thêm
sự linh hoạt trong việc đặt mỗi chỉ mục của bảng đó sang không gian bảng của
chính nó. Tuỳ chọn này chỉ dùng cho các bảng đã được phân vùng.


Tạo các chỉ mục
Bây giờ bạn đã biết nơi các chỉ mục của bạn đang được tạo ra, đã đến lúc kiểm tra
lại lệnh CREATE INDEX. Đây là cú pháp lệnh cơ bản:
CREATE <UNIQUE> INDEX <index name> ON <table
name>
(
column 1 <ASC | DESC> ,
column 2 <ASC | DESC>
)

Thuộc tính UNIQUE báo cho DB2 biết rằng chỉ mục đó phải áp đặt tính duy nhất
cho tất cả các giá trị được chèn. Nếu tìm thấy một giá trị trùng lặp trong khi có
lệnh UPDATE (cập nhật) hay INSERT (chèn), một lỗi sẽ được trả lại cho ứng

dụng.
Các cột được liệt kê trong các dấu ngoặc được sử dụng để tạo ra chỉ mục. Các từ
khoá tuỳ chọn ASC (tăng dần) và DESC (giảm dần) báo cho DB2 biết cách xếp
thứ tự các giá trị này trong chỉ mục của chính nó. Các tuỳ chọn này rất hữu ích khi
bạn chạy lệnh SQL có sắp xếp các kết quả, giống như:
SELECT * FROM EMPLOYEE
ORDER BY EMPNO DESC

Nếu chỉ mục đã được tạo ra trước đó theo thứ tự giảm dần, DB2 có thể sử dụng chỉ
mục để trả lại các giá trị theo chuỗi sắp xếp, chứ không thực hiện riêng bước sắp
xếp. Điều này có thể tiết kiệm đáng kể thời gian trên tập kết quả (answer set) lớn.
Nếu tập kết quả được sắp xếp trong cả thứ tự tăng dần và giảm dần, có thể có lợi
hơn khi thêm đoạn ALLOW REVERSE SCANS (cho phép rà soát ngược) vào
cuối lệnh CREATE INDEX. Việc này báo cho DB2 biết dùng con trỏ phụ
(additional pointers) trong chỉ mục để kết chuỗi ngược và xuôi có hiệu quả trên
các bản ghi. Đoạn ALLOW REVERSE SCANS bây giờ là mặc định đối với bất kỳ
chỉ mục nào được tạo trong DB2 9, nhưng các bản phát hành trước đây sẽ cần phải
gộp vào tùy chọn này để cho phép truy cập tăng dần và giảm dần trên cùng một
chỉ mục.


Gộp vào các cột bổ sung trong một chỉ mục
DB2 có khả năng thêm các cột bổ sung vào chỉ mục mà bạn đang tạo ra. Lệnh
CREATE INDEX cho phép người sử dụng quy định các cột mà không phải là bộ
phận của chỉ mục thật, nhưng được giữ lại trong bản ghi chỉ mục vì lý do hiệu
năng.
CREATE UNIQUE INDEX IX ON EMPLOYEE (EMPNO)
INCLUDE (LASTNAME,FIRSTNME)

Chỉ mục phải là UNIQUE (duy nhất) đối với các cột được gộp vào chỉ mục. Khi

chỉ mục được tạo ra, các cột bổ sung được thêm vào các giá trị chỉ mục. Chỉ mục
không sử dụng các giá trị này để sắp xếp hoặc quyết định tính duy nhất, nhưng có
thể sử dụng chúng khi làm thoả mãn một truy vấn SQL. Ví dụ, lệnh SELECT
(chọn) sau đây sẽ không cần đọc các hàng dữ liệu thật:
SELECT LASTNAME, FIRSTNME FROM EMPLOYEE
WHERE EMPNO < '000300'

Việc kiểm tra Visual Explain đối với lệnh này sẽ xác nhận việc sử dụng chỉ mục
để nhận tập các kết quả.
Có nhiều hoàn cảnh đặt dữ liệu trong chỉ mục sẽ trợ giúp hiệu năng. Tuy nhiên
phải chú ý không được sử dụng quá nhiều cột; nếu bạn làm điều này thì kích thước
của chỉ mục có thể bắt đầu đạt tới kích thước vật lý của chính dữ liệu đó.


Chỉ mục xếp nhóm
Một chỉ mục xếp nhóm là một chỉ mục được DB2 sử dụng để thử và chèn các bản
ghi lên cùng một trang như các bản ghi khác với các giá trị khoá chỉ mục tương tự.
Nếu không có không gian trên trang đó, sẽ dự định đưa bản ghi vào các trang xung
quanh.
Lợi ích của việc có một chỉ mục nhóm là ở chỗ các lệnh SELECT tìm kiếm một
giá trị riêng (hoặc dãy các giá trị) trên một khoá có thể nhanh chóng tìm ra tập các
trả lời mà không cần rà soát toàn bộ bảng. Các giá trị khoá tương tự sẽ được đặt
trên cùng một trang dữ liệu sao cho chỉ cần đọc một phần trong toàn bộ bảng.
Ngoài ra, nhu cầu tổ chức lại bảng cũng có thể giảm bằng cách sử dụng một chỉ
mục cụm.

×