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

Chuẩn bị cho kỳ thi cơ bản về DB2 9, Phần 3: Truy cập đến dữ liệu DB2 docx

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 (302.24 KB, 54 trang )

Chuẩn bị cho kỳ thi cơ bản về DB2 9, Phần 3: Truy cập đến dữ liệu DB2
George Baklarz, Giám đốc DB2, IBM
Tóm tắt: Bài viết này giới thiệu với bạn các đối tượng (objects) cấu thành lên dữ
liệu DB2, và các nhân tố khác ảnh hưởng đến cách dữ liệu được tạo ra. Sau khi
giới thiệu ngắn gọn về các đối tượng trong DB2, chúng ta sẽ xem xét đến các công
cụ khác nhau để tạo ra (create), truy cập (access), và vận dụng (manipulate) các
đối tượng DB2. Đây là bài viết thứ ba trong một loạt các bài viết giúp bạn chuẩn
bị làm việc với kỳ thi 730 về DB2® 9 trên nền Linux®, UNIX®, và Windows™.
Trước khi bạn bắt đầu
Giới thiệu về loạt bài viết này
Bạn đang suy nghĩ về việc tìm kiếm chứng chỉ cơ bản về DB2 (Bài thi 730)? Nếu
thế, bạn đã tìm đến đúng chỗ rồi đấy. Loạt bảy bài viết về việc chuẩn bị thi lấy
chứng chỉ DB2 bao gồm toàn bộ kiến thức cơ bản những chủ đề mà bạn cần
phải hiểu trước khi bạn đọc câu hỏi đầu tiên của bài thi. Thậm chí nếu bạn không
có kế hoạch lấy chứng chỉ ngay lúc này, thì những bài viết này cũng nơi rất tốt để
bắt đầu học xem có gì mới trong DB2 9.
Giới thiệu về bài viết
Bài viết này là bài thứ ba trong loạt bảy bài viết giúp bạn chuẩn bị cho kỳ thi 730
lấy chứng chỉ DB2 9. Tài liệu trong bài học này bao trùm tất cả các mục tiêu trong
phần ba của bài kiểm tra, nó có tiêu đề là "Accessing DB2 Data" (Truy xuất dữ
liệu DB2).
Việc cài đặt DB2 không được đề cập trong bài viết này, nếu bạn chưa có DB2, bạn
hãy tải và cài đặt phiên bản IBM DB2 9, Express Community Edition. Việc cài đặt
DB2 sẽ giúp bạn hiểu được rất nhiều khái niệm sẽ được kiểm tra trong kỳ thi lấy
chứng chỉ cơ bản DB2 9.
Sau khi bạn đã cài đặt DB2, bạn muốn lấy dữ liệu và chạy nó càng nhanh càng tốt.
Bài học này giới thiệu với bạn các đối tượng làm nên cơ sở dữ liệu DB2 và những
nhân tố ảnh hưởng đến cách mà cơ sở dữ liệu được tạo ra. Sau khi giới thiệu ngắn
gọn về DB2, chúng ta sẽ xem xét các công cụ khác để tạo ra, truy cập và vận dụng
các đối tượng này.



Mục tiêu
Sau khi hoàn thành bài học này, bạn sẽ có thể:
 Tự mình tạo ra cơ sở dữ liệu DB2
 Lên danh mục để người khác có thể sử dụng
 Kiểm tra và truy vấn các đối tượng trong cơ sở dữ liệu vừa tạo


Những điều kiện tiên quyết
Tiến trình cài đặt DB2 không được trình bày trong bài viết này. Nếu bạn chưa có
DB2, hãy tải và cài đặt một bản sao của DB2 Express - C. Việc cài đặt DB2 sẽ
giúp bạn hiểu được nhiều khái niệm sẽ được kiểm tra trong kỳ thi lấy chứng chỉ
DB2 9 Family Fundamentals Certification. Các hướng dẫn cài đặt sẽ được tài liệu
hóa trong cuốn sách Quick Beginnings, mà bạn có thể tìm thấy tại trang Web Hỗ
trợ kỹ thuật DB2 dưới tên Technical Information.


Các yêu cầu về hệ thống
Bạn không cần phải có bản sao của DB2 để hoàn thành bài học này. Tuy nhiên,
bạn sẽ gặt hái được nhiều kiến thức hơn nếu bạn tải phiên bản miễn phí của IBM
DB2 9 để thực hành theo hướng dẫn trong bài học.

Cái gì tạo lên một cơ sở dữ liệu DB2?
Các tính năng về hiệu suất, đặc trưng vật lý, logic của một cơ sở dữ liệu
Một cơ sở dữ liệu DB2 trên thực tế được tạo lên từ một tập hợp các đối tượng. Đối
với người dùng thì một cơ sở dữ liệu là một tập các bảng có quan hệ với nhau theo
một cách nào đó.
Đối với người quản trị cơ sở dữ liệu (DBA đó chính là bạn), nó chỉ phức tạp hơn
đôi chút. Cơ sở dữ liệu thực chất chứa các đối tượng vật lý và logic sau:
 Bảng, khung nhìn, danh mục, giản đồ

 Các khóa, thủ tục bẫy (triggers), các thủ tục lưu trữ (stored procedures), các
gói
 Vùng bộ đệm lưu trữ (Buffer pools), các tệp nhật ký (log files), các không
gian bảng (table spaces)
Một vài đối tượng này, như các bảng hoặc các khung nhìn, giúp xác định cách dữ
liệu được tổ chức như thế nào. Cuối cùng, một vài đối tượng, như vùng bộ đệm
lưu trữ và các đối tượng liên quan đến bộ nhớ khác, chỉ bàn đến việc việc thực thi
cơ sở dữ liệu được quản lý như thế nào.
Thay vì dừng lại ở việc kết hợp các tham số và các đối tượng, quản trị viên nên tập
trung vào sự thực thi vật lý của cơ sở dữ liệu. Làm thế nào để bạn có thể tạo ra một
cơ sở dữ liệu và phân định lưu trữ trên đĩa yêu cầu? Để trả lời câu hỏi này một
cách đích đáng, bạn cần hiểu biết về các đối tượng cơ bản trong một cơ sở dữ liệu
và cách mà chúng được ánh xạ tới vị trí lưu trữ vật lý trên đĩa.
Mô hình lưu trữ DB2
DB2 có cả mô hình lưu trữ vật lý và logic để xử lý dữ liệu. Dữ liệu thực mà người
dùng đề cập đến được tìm thấy trong các bảng. Trong khi các bảng này được tạo
lên từ các cột và các dòng, người sử dụng không cần biết về biểu diễn vật lý của
dữ liệu. Thực tế này đôi khi được ám chỉ như thể sự độc lập vật lý của dữ liệu.
Các bảng được đặt trong không gian bảng. Một không gian bảng được dùng như là
một lớp nằm giữa cơ sở dữ liệu và công ten nơ đối tượng (container objects) chứa
các bảng dữ liệu thật sự. Một không gian bảng có thể chứa nhiều hơn một bảng.
Một công ten nơ (bộ chứa) là một thiết bị lưu trữ vật lý, nó có thể được xác định
bởi tên thư mục, tên thiết bị, hoặc một tên tệp. Một công ten nơ được gán cho một
không gian bảng. Một không gian bảng có thể mở rộng qua nhiều các bộ chứa,
điều đó có nghĩa là bạn có thể gặp phải các hạn chế về hệ điều hành, cái mà có thể
giới hạn số lượng dữ liệu mà một bộ chứa có thể có. Mối quan hệ giữa các đối
tượng này được thể hiện trong hình dưới đây.
Mặc dù, bảng là một đối tượng cơ bản trong không gian bảng, một quản trị viên
phải hiểu biết về các đối tượng khác trong hệ thống DB2 và cách chúng ánh xạ tới
một không gian bảng.



Các bảng, các chỉ số, các trường dài, và không gian bảng
Các bảng, các chỉ số và các trường dài (đôi khi còn được gọi là đối tượng lớn kiểu
nhị phân) là các đối tượng được tạo ra trong cơ sở dữ liệu DB2. Những đối tượng
này được ánh xạ tới một không gian bảng mà tự nó đã được ánh xạ tới ổ đĩa lưu
trữ vật lý.
Một bảng là một tập các bản ghi dữ liệu không được sắp xếp. Nó chứa các cột và
các hàng mà thường được biết đến như là các bản ghi. Các bảng có thể là các bảng
vĩnh cửu (permanent (base) tables), bảng tạm được khai báo (temporary (declared)
tables), hoặc bảng tạm được chuyển hóa (temporary (derived) tables). Đối với
người quản trị, không gian được phân phối cho mỗi đối tượng bảng này, nhưng
trong các không gian bảng khác nhau.
Một chỉ mục là một đối tượng vật lý liên quan đến một bảng đơn. Các chỉ mực
được sử dụng để ép buộc sự duy nhất trong một bảng (nghĩa là chắc chắn việc
không có giá trị trùng nhau) và nâng cao hiệu suất khi tìm kiếm thông tin. Bạn
không cần đánh chỉ mục để chạy các câu lệnh SQL (Structured Query Language),
tuy nhiên người sử dụng sẽ đánh giá cao tầm nhìn xa của bạn trong việc tạo ra cho
họ các tiến trình xử lý truy vấn tốc độ cao.
Một trường dài (hoặc BLOB) là một dạng dữ liệu trong một bảng. Loại dữ liệu này
đặc biệt thường được tạo lên từ những dữ liệu không cấu trúc, như ảnh, tài liệu,
tệp nhạc và thường chứa một lượng đáng kể thông tin. Việc lưu trữ loại dữ liệu
này trong bảng thường dẫn đến tình trạng quá tải khi xử lý các lệnh xóa (deleting),
thêm (inserting), và thao tác (manipulating) trên các đối tượng này. Thay vì việc
chứa chúng trực tiếp trên các dòng của bảng, một con trỏ (pointer) trỏ đến một
không gian bảng lớn (Large table space). Các quản trị viên cần hiểu rõ về những
loại dữ liệu này để tạo ra được các không gian bảng thích hợp có thể chứa được
chúng.
Một loại dữ liệu đặc biệt khác nữa là dữ liệu XML (eXtensible Markup Language
- ngôn ngữ đánh dấu mở rộng). XML là loại dữ liệu được chứa trong một hàng

(row), hoặc trong một không gian bảng tách rời (separate table space) tương tự
như với các đối tượng BLOB. Đây là dạng dữ liệu duy nhất có thể kéo dài trong
nhiều trang trong một bảng, các dữ liệu khác chỉ được nằm gọn trong một trang
như là một hàng. Một quản trị viên cần biết cách làm việc với người thiết kế ứng
dụng để xác định xem đối tượng XML được chứa trong bảng sẽ được chứa trong
một trang dữ liệu bình thường hãy được đặt trong một không gian lưu trữ riêng
(separate table space). Nếu hiệu quả tìm kiếm là nhân tố quyết định, người quản trị
viên nên sử dụng một trang có kích thước lớn và lưu các cột XML trong cùng
không gian bảng như những dữ liệu bình thường khác.
Sau khi đã được trang bị những kiến thức về các đối tượng khác nhau trong DB2,
bây giờ bạn đã sẵn sàng để xác định loại không gian nào là bạn cần để phần định
dữ liệu.


Các không gian bảng DMS và SMS
Các không gian bảng là một lớp logic nằm giữa cơ sở dữ liệu và các bảng được
chứa trong cơ sở dữ liệu đó. Các không gian bảng được tạo ra trong cơ sở dữ liệu,
còn các bảng được tạo ra trong các không gian bảng. DB2 hỗ trợ ba loại không
gian bảng:
 Không gian bảng quản lý hệ thống (SMS): Ở đây, người quản lý tệp hệ
thống của hệ điều hành sẽ phân phối và quản lý không gian lưu trữ. Trước
phiên bản DB2 9, việc tạo ra một cơ sở dữ liệu hoặc bảng không có tham số
sẽ có kết quả trong tất cả các không gian bảng được tạo ra như là các đối
tượng SMS.
 Không gian quản lý cơ sở dữ liệu (Database-Managed Space - DMS): Ở
đây, người quản lý cơ sở dữ liệu điều khiển không gian lưu trữ. Không gian
bảng về bản chất là một cài đặt file hệ thống có mục đích đặc biệt được
thiết kế cho sự gặp mặt tốt nhất của những cái mà người quản lý cơ sở dữ
liệu cần.
 Tự động lưu trữ với DMS (Automatic Storage With DMS): Automated

storage không phải là một loại dữ liệu tách biệt của không gian bảng, nó là
một cách khác để xử lý việc lưu trữ DMS. Các nơi chứa DMS yêu cầu duy
trì nhiều hơn (xem ở phần dưới) và lưu trữ tự động được giới thiệu trong
DB2 V8.2.2 như là một cách đơn giản để quản lý không gian.
Không gian bảng SMS yêu cầu duy trì ít hơn. Tuy nhiên, không gian bảng SMS
đưa ra một số lựa chọn sự tối ưu và có thể không hoạt động tốt bằng các không
gian bảng DMS.
Vậy, bạn nên lựa chọn loại thiết kế không gian bảng nào?


So sánh DMS với SMS và lưu trữ tự động
Mặc dù bảng dưới đây chưa hẳn đã đầy đủ, nó chỉ chứa một vài thứ bạn có thể
xem xét khi quyết định chọn giữa DMS, Automatic, và không gian bảng SMS.
Tính năng SMS DMS
Lưu trữ tự
động
Striping? Yes Yes Yes
Ki
ểu mặc định
Phiên bản 8 No Phiên bản 9
Việc quản lý
các đối tượng
Hệ điều hành DB2 DB2
Việc phân
phối không
gian
Co giãn theo
nhu cầu
Kích thước đã được phân phối có thể
được mở rộng hay thu hẹp nhưng

yêu cầu có sự can thiệp của người
quản trị hệ thống dữ liệu.
Kích thước
đã được phân
phối có thể
tăng tự động
Giảm nhẹ việc
quản trị
Tốt nhất, ít
yêu cầu hoặc
không yêu
cầu sự điều
Tốt, thỉnh thoảng yêu cầu sự điều
chỉnh (Ví dụ: EXTENTSIZE
PREFETCHSIZE)
Tốt nhất, ít
yêu cầu hoặc
không yêu
cầu sự điều
chỉnh chỉnh
Hiệu suất Rất tốt
Tốt nhất, có thể đặt tới từ 5 đến 10%
với bộ chứa thô
Tốt nhất, tuy
nhiên không
sử dụng các
bộ chứa thô
Kích thước tối
đa của các
Không gian

bảng
64GB (4K
Page)
2TB (4K Page)
2TB (4K
Page)
Ngoài đơn giản hóa việc quản lý bằng cách sử dụng không gian bảng SMS, sự
khác nhau đáng kể giữa hai mô hình lưu trữ là kích thước tối đa (maximum size)
của một không gian bảng. Với việc sử dụng SMS, người quản trị cơ sở dữ liệu bị
hạn chế việc đặt kích thước tối đa cho một không gian bảng là 64GB. Số lượng
này có thể tăng lên bằng cách thay đổi kích thước của trang (page size) thành 32K
(512GB), với chi phí thấp nhất có thể sử dụng cho không gian một trang (page).
Việc chuyển sang mô hình DMS sẽ làm tăng không gian bảng lên tới 2TB với kích
thước một trang là 4K. Dung lượng lưu trữ sẵn dùng (available) có thể tăng lên tới
16TB với kích thước một trang là 32K. Trong khi có một vài cách khác để tăng
kích thước của bảng trong giới hạn 64GB, cách tiếp cận đơn giản nhất có lẽ là
dùng các không gian bảng DMS ngay từ đầu.


So sánh DMS với lưu trữ tự động
Phiên bản DB2 8.2.2 giới thiệu khái niệm về lưu trữ tự động (AUTOMATIC
STORAGE). Lưu trữ tự động cho phép quản trị viên cơ sở dữ liệu thiết lập cơ sở
dữ liệu với đường dẫn lưu trữ được sử dụng cho tất cả các nơi chứa không gian
bảng. Thay vì quản trị viên mã hóa rõ ràng vị trí và kích thước các các bảng, hệ
thống sẽ tự động phân phối chúng. Trong DB2 9, một cơ sở dữ liệu sẽ được tạo ra
với nơi lưu trữ tự động trừ khi quản trị viên ghi đè lên những thiết lập này.
Những cơ sở dữ liệu được kích hoạt khả năng tự động lưu trữ có một tập một hoặc
nhiều đường dẫn đến nơi lưu liên quan đến chúng. Một không gian bảng có thể
được định nghĩa như là "được quản lý bởi bộ lưu trữ tự động" và các bộ chứa của
nó được gán và phân phối bởi DB2 dựa trên những đường dẫn này. Một cơ sở dữ

liệu chỉ có thể được kích hoạt tính năng tự động lưu trữ khi nó lần đầu tiên được
tạo ra. Bạn không thể kích hoạt chức năng này cho cơ sở dữ liệu ngay từ đầu
không được định nghĩa để sử dụng nó. Tương tự, bạn không thể vô hiệu hóa tính
năng lưu trữ tự động của cơ sở dữ liệu mà ban đầu đã được thiết kế là có sử dụng
tính năng này.
Bảng sau tổng kết lại một số sự khác biệt giữa lưu trữ không tự động và lưu trữ tự
động
Tính
năng
Lưu trữ không tự động Lưu trữ tự động
Việc tạo
ra công
ten nơ
Các công ten nơ phải được cung
cấp một cách rõ ràng khi không
gian bảng được tạo ra.
Các công ten nơ không thể được
cung cấp khi không gian bảng đã
được tạo ra rồi, chúng sẽ gán và
phân phối (assigned and allocated)
một cách tự động bởi DB2.
Việc lấy
lại kích
thước
công ten
nơ ban
đầu
Việc lấy lại kích thước của các
không gian bảng mặc định là off
(AUTORESIZE NO).

Việc lấy lại kích thước của các
không gian bảng mặc định là on
(AUTORESIZE YES).
Kích
thước ban
đầu
Kích thước ban đầu của không
gian bảng không thể xác định bởi
mệnh đề INITIALSIZE.
Kích thước ban đầu của không gian
bảng có thể xác định bởi mệnh đề
INITIALSIZE.
Việc sửa
đổi công
ten nơ
Các hoạt động của công ten nơ có
thể thực hiện bằng cách sử dụng
lệnh ALTER TABLESPACE
(ADD, DROP, BEGIN NEW
STRIPE SET, vân vân).
Các hoạt động của công ten nơ
không thể thực hiện bởi vì DB2 bị
điều khiển bởi trình quản lý không
gian.
Sự thoải
mái trong
việc quản
trị
Một hoạt động khôi phục lại có
thể được sử dụng để định nghĩa

lại các bộ chứa có liên quan đến
không gian bảng.
Một hoạt động khôi phục lại không
thể được dùng để định nghĩa lại các
bộ chứa liên quan đến không gian
bảng vì DB2 bị điều khiển bởi trình
quản lý không gian.
Lý do chính về việc giới thiệu các mô hình lưu trữ tự động là đơn giản hóa việc
quản lý DMS các bảng trong khi vẫn giữ được các đặc điểm về hiệu suất. Có
những tình huống nơi mà người quản trị phải định nghĩa tất cả các đặc điểm của
các bảng đang được sử dụng, nhưng nhiều ứng dụng sẽ giúp ích từ việc giảm sự
quản lý được yêu cầu bởi lưu trữ tự động.


Tóm tắt về mô hình lưu trữ DB2
Chúng ta đã lướt qua khá nhiều kiến thức cơ bản trong phần này, giờ đã đến lúc
chứng ta tóm tắt lại những gì đã học được về cơ sở dữ liệu DB2.
 Một cơ sở dữ liệu (database) là một tập các đối tượng, bao gồm các bảng,
chỉ mục, các khung nhìn, và đối tượng dài (long objects).
 Những đối tượng này được lưu trong các không gian bảng, cái được tạo nên
bởi các các bộ chứa.
 Các không gian bảng hoặc được quản lý bởi hệ điều hành (SMS) hoặc bởi
DB2 (DMS, lưu trữ tự động).
 Bạn sẽ quyết định xem nên dùng loại không gian bảng nào dựa trên các yếu
tố về lưu trữ và hiệu suất xử lý.
Giờ đây bạn đã là một chuyên gia về các loại các không gian bảng khác nhau, đã
đến lúc bạn tạo ra một cơ sở dữ liệu đầu tiên. Phần tiếp theo sẽ hướng dẫn bạn
cách để tạo nó.
Việc tạo ra cơ sở dữ liệu đầu tiên
Những bước đầu tiên

Giống như một phần của tiến trình cài đặt DB2, bảng First Steps được hiển thị cho
phép người dùng tạo ra một số các cơ sở dữ liệu mẫu để làm việc:
Lựa chọn Database Creation sẽ hiển thị thêm một thực đơn để cho phép bạn tạo ra
một cơ sở dữ liệu mẫu (SAMPLE database).
Hầu hết người sử dụng đều muốn tạo ra một cơ sở dữ liệu mẫu và sử dụng nó để
khám phá ra các đặc tính của DB2. Cửa sổ này có thể được gọi ra bằng cách chọn
First Steps từ thư mục Setup Tools trong nhóm chương trình của DB2 (trong các
môi trường Windows). Ngoài ra, việc đưa ra lệnh db2sampl từ cửa sổ DOS cũng
sẽ sinh ra một cơ sở dữ liệu mẫu.
Khi nút SAMPLE được chọn, một cửa sổ hiện ra cho phép xác định nơi cơ sở dữ
liệu mẫu được tạo ra.
Trong khi tạo ra cơ sở dữ liệu mẫu, bạn được khuyến cáo nên chọn tùy chọn XML
and SQL objects and data. Tùy chọn này sẽ sinh ra cơ sở dữ liệu trong định dạng
UTF-8 (Unicode) cho phép bạn vận dụng các đối tượng XML. Nếu bạn không
chọn tùy chọn XML, bạn sẽ không thể thêm các đối tượng dạng XML vào cơ sở
dữ liệu mẫu.
Để có thêm thông tin về công cụ trong bước thứ nhất, xem lại bài viết đầu tiên
trong loạt bài viết này.
Chúng ta hãy chuyển qua phần tạo cơ sở dữ liệu DB2 mà không dùng GUI.


Cơ sở dữ liệu thực đầu tiên của tôi
Việc tạo ra một cơ sở dữ liệu DB2 từ một dòng lệnh tương đối đơn giản. Để tạo ra
một cơ sở dữ liệu, bạn phải gọi trình Command Line của DB2 (CLP). Việc này có
thể hoàn thành hoặc là bằng việc lựa chọn Command Line Processor từ Command
Line Tools trong nhóm các chương trình DB2 (xem trong hình dưới), hoặc là chạy
lệnh db2cmd db2 trong cửa sổ lệnh của hệ điều hành. (Để có thêm thông tin về
trình xử lý dòng lệnh (Command Line Processor), xem bài viết đầu tiên trong loạt
bài viết này.)
Cú pháp tạo ra cơ sở dữ liệu DB2 như sau:

CREATE DATABASE MY1STDB

Nó là cái gì thế? Bạn tự hỏi. Đúng là thành phần duy nhất được yêu cầu như là
một phần của lệnh tạo cơ sở dữ liệu này chính là tên của cơ sở dữ liệu đó. Các
nguyên tắc đặt tên là:
 Tên cơ sở dữ liệu có thể chứa các ký tự như: a-z, A-Z, 0-9, @, #, và $.
 Ký tự đầu tiên trong tên phải là chữ cái, @, #, hoặc $ và không được phép
là chữ số hoặc các cụm từ như SYS, DBM, hoặc IBM.
 Một tên hoặc bí danh của cơ sở dữ liệu là một chuỗi ký tự chứa từ một đến
8 chữ cái, chữ số, hoặc các ký tự trên bàn phím theo các qui tắc mô tả ở
trên.
Tất nhiên, có nhiều tùy chọn hơn sẵn sàng cho bạn dùng, bạn không phải chỉ đưa
và một cái tên. Hãy kiểm tra xem điều gì thực sự xảy ra khi thực hiện lệnh này.


DB2 đã tạo ra cái gì?
Khi bạn đưa ra lệnh CREATE DATABASE, DB2 tạo ra một số tệp. Những tệp
này bao gồm có các tệp nhật ký (log file), thông tin cấu hình (configuration
information), tệp ghi lịch sử (history files), và các không gian bảng (3). Những
không gian bảng gồm có:
 SYSCATSPACE: Đây là nơi hệ thống DB2 system catalog được lưu giữ và
nó theo dõi tất cả các siêu dữ liệu (metadata) có liên quan đến các đối tượng
DB2.
 TEMPSPACE1: Vùng làm việc tạm thời nơi DB2 đặt các kết quả trung
gian.
 USERSPACE1: Nơi mà mặc định, các đối tượng của người dùng nằm ở đó
(các bảng, chỉ mục).
Tất cả các tệp này được đặt trong một thư mục DB2 tìm được trong ổ đĩa mặc định
của bạn. Ổ đĩa mặc định thường là ổ đĩa mà bạn cài đặt DB2 trên đó.
Với các ứng dụng đơn giản, những cấu hình mặc định này là đủ những thứ bạn

cần. Tuy nhiên, bạn có thể muốn thay đổi công ten nơ tệp cơ sở dữ liệu hoặc thay
đổi cách DB2 quản lý các đối tượng này. Chúng ta sẽ tiếp tục tìm hiểu chi tiết
thêm về lệnh CREATE DATABASE.
Một chú ý đặc biệt với những ai muốn chuyển lên từ phiên bản DB2 8: Những
phiên bản trước DB2 9, một lệnh CREATE DATABASE sẽ tạo ra các không gian
bảng SMS cho tất cả các đối tượng được liệt kê ở trên. Trong DB2 9, tất cả các
không gian bảng sẽ được định nghĩa như là các không gian bảng lưu trữ tự động.


Lệnh CREATE DATABASE
Cú pháp đầy đủ của lệnh CREATE DATABASE trong DB2 có thể được tìm thấy
trong phần tham khảo về các lệnh DB2 (DB2 Command Reference). Sơ đồ dưới
minh họa các tùy chọn chính mà một quản trị viên cần quan tâm.
Lệnh Create Database
>>-CREATE +-DATABASE-+-database-name-+ + >
'-DB ' '-| Database options |-'

Các tùy chọn cơ sở dữ liệu

Các tùy chọn (Database options):

| + + >
'-AUTOMATIC STORAGE NO|YES '
> + + >
| , |
| V | |
'-ON +-path +-+ + +-'
'-drive-' '-DBPATH ON +-path +-'
'-drive-'
> + + >

'-ALIAS database-alias-'
> + + >
'-USING CODESET codeset TERRITORY territory-'
> + + >
| SYSTEM |
'-COLLATE USING +-COMPATIBILITY +-'
+-IDENTITY +
+-IDENTITY_16BIT-+
+-UCA400_NO +
+-UCA400_LSK +
+-UCA400_LTH +
'-NLSCHAR '

> + + >
'-CATALOG TABLESPACE | tblspace-defn |-'
> + + >
'-USER TABLESPACE | tblspace-defn |-'
> + + >
'-TEMPORARY TABLESPACE | tblspace-defn |-'

Định nghĩa các không gian bảng

tblspace-defn:

| MANAGED BY >

,
V |
> +-SYSTEM USING ( 'container-string'-+ ) + >
| , |

| V | |
+-DATABASE USING ( +-FILE + 'container-string' number-of-pages-
+ )-+
| '-DEVICE-' |
'-AUTOMATIC STORAGE '

> + + >
'-EXTENTSIZE number-of-pages-'
> + + >
'-PREFETCHSIZE number-of-pages-'
> + + + +->
'-AUTORESIZE +-NO +-' '-INITIALSIZE integer +-K|M|G-+-'
'-YES-'
> + + >
'-INCREASESIZE integer +-PERCENT-+-'
'-+-K|M|G-'
> + + |
'-MAXSIZE +-NONE +-'
'-integer +-K|M|G-'

Trong những phần tiếp theo, bạn sẽ học về các tùy chọn khác nhau và cách sử
dụng chúng.


Vị trí của cơ sở dữ liệu
Một trong số những tham số của lệnh CREATE DATABASE là tùy chọn ON
path/drive. Tùy chọn này nói cho cho DB2 biết nơi bạn có muốn tạo ra cơ sở dữ
liệu. Nếu đường dẫn không chỉ chỉ ra, cơ sở dữ liệu sẽ được tạo lên đường dẫn
mặc định chỉ ra trong thiết lập Database Manager (tham số DFTDBPATH).
Ví dụ, lệnh CREATE DATABASE sau sẽ đặt cơ sở dữ liệu trong thư mục TEST

trong ổ D, D là một ổ trên hệ điều hành Windows
CREATE DATABASE MYDB ON D:\TEST

Việc chọn Automatic storage (mặc định) cho phép quản trị viên thiết đặt cơ sở dữ
liệu với đường dẫn tới nơi lưu trữ có thể được sử dụng cho tất cả các nơi chứa
không gian bảng được tạo ra. Thay vì quản trị viên chỉ ra vị trí và kích thước các
bảng một cách rõ ràng, hệ thống sẽ tự động phân phối chúng. Ví dụ, lệnh tạo ra cơ
sở dữ liệu sau thiết lập lưu trữ tự động cho tất cả các không gian bảng trong cơ sở
dữ liệu.
CREATE DATABASE TEST
AUTOMATIC STORAGE ON
/db2/storagepath001,
/db2/storagepath002,
/db2/storagepath003
AUTORESIZE YES
INITIALSIZE 300 M
INCREASESIZE 75 M
MAXSIZE NONE

Sau tùy chọn AUTOMATED STORAGE ON, ba đường dẫn đến tệp dữ liệu được
chỉ ra. Ba đường dẫn này là nơi mà các bộ chứa của không gian bảng được lưu.
Còn lại là các tùy chọn như:
 AUTORESIZE YES
Trong trường hợp một không gian bảng vượt quá không gian nhớ (space)
quy định, hệ thống sẽ tự động tăng kích thước của công ten nơ các bộ chứa.
 INITIALSIZE 300 M
Mọi không gian bảng được định nghĩa không chỉ ra kích thước ban đầu sẽ
được gán mặc định là 300 MB, mỗi bộ chứa có kích thước là 100 MB (ở
đây có ba đường dẫn lưu trữ).
 INCREASESIZE (TĂNG) 75 M (hoặc %)

Khi không gian bảng bị vượt quá không gian qui định, tổng không gian
(total space) cho không gian bảng sẽ tăng lên 75M. Phần trăm cũng có thể
được sử dụng trong trường hợp không gian bảng tăng kích thước lên theo
phần trăm so với kích thước hiện tại.
 MAXSIZE NONE
Kích thước tối đa của không gian bảng sẽ không bị hạn chế. Nếu người
quản trị cơ sở dữ liệu muốn giới hạn không gian lưu trữ, họ có thể chỉ ra giá
trị tối đa (maximum value).
Khi một không gian bảng được định nghĩa sử dụng AUTOMATIC STORAGE,
không cần cung cấp thêm một tham số nào khác:
CREATE TABLESPACE TEST MANAGED BY AUTOMATIC STORAGE;

Mọi tham số liên quan đến một không gian bảng có thể được cung cấp trong lệnh
này. Tuy nhiên, việc sử dụng automatic storage có thể làm cho việc duy trì các
thường trình của không gian bảng trở lên cực kỳ đơn giản. Các không gian bảng
liên quan đến các bảng sản phẩm lớn có thể yêu cầu sự can thiệp nhiều hơn của
các quản trị.
Khi tạo ra một không gian bảng trong một cơ sở dữ liệu mà không kích hoạt tính
năng automatic storage. Mệnh đề MANAGED BY SYSTEM hoặc MANAGED
BY DATABASE phải được chỉ ra. Việc sử dụng những mệnh đề này dẫn đến việc
tạo ra một hệ thống được quản lý không gian (system managed space - SMS) hoặc
cơ sở dữ liệu được quản lý không gian (database managed space - DMS). Danh
sách các bộ chứa phải được cung cấp rõ ràng trong cả hai trường hợp.
Nếu một cơ sở dữ liệu được kích hoạt là automatic storage, lựa chọn khác có thể
tồn tại. Mệnh đề MANAGED BY AUTOMATIC STORAGE có thể phải được chỉ
ra, hoặc mệnh đề MANAGED BY phải bị bỏ đi hoàn toàn (nó ngầm định chỉ ra
automatic storage). Không một định nghĩa container được cung cấp trong trường
hợp này bởi vì DB2 gán các bộ chứa tự động.



Trang mã và thứ tự sắp xếp
Một trang mã ký tự được kết hợp với tất cả các loại dữ liệu kiểu ký tự trong DB2
(CHAR, VARCHAR, CLOB, DBCLOB). Một trang mã có thể được xem như một
bảng tham chiếu được sử dụng để chuyển đổi (convert) dữ liệu dạng ký tự
(alphanumeric) thành dữ liệu nhị phân (binary data) được chứa trong cơ sở dữ liệu.
Một cơ sở dữ liệu DB2 có thể chỉ sử dụng một trang mã đơn. Trang mã được thiết
lập trong quá trình lệnh CREATE DATABASE sử dụng tùy chọn CODESET và
TERRITORY. Trang mã có thể sử dụng một byte đơn để biểu diễn một ký tự chữ
cái abc (một byte đơn có thể biểu diễn 256 phần tử đơn độc) hoặc bội byte
(multiple bytes).
Các ngôn ngữ như tiếng Anh chứa khá ít các ký tự đơn độc, do đó, một trang mã
single-byte là đủ để chứa dữ liệu. Các ngôn ngữ như tiếng Nhật yêu cầu nhiều hơn
256 phần tử (elements) để biểu diễn tất các ký tự độc nhất, do đó, một trang mã
multibyte (thường là một trang mã double-byte) được yêu cầu.
Theo mặc định thì thứ tự sắp xếp của một cơ sở dữ liệu được định nghĩa theo
codeset được sử dụng trong lệnh CREATE DATABASE. Nếu bạn chỉ định tùy
chọn COLLATE USING SYSTEM, các giá trị dữ liệu được so sánh dựa vào
TERRITORY (vùng) được chỉ ra cho cơ sở dữ liệu. Nếu tùy chọn COLLATE
USING IDENTITY được dùng, tất cả các giá trị được so sánh sử dụng biểu diễn
nhị phân của nó theo kiểu so từng byte một (byte-by-byte).
Hướng dẫn quản trị DB2 liệt kê một số trang mã khác nhau có thể dùng được khi
tạo cơ sở dữ liệu. Trong hầu hết các thể hiện, một quản trị viên để giá trị mặc định
là trang mã giống như hệ điều hành mà cơ sở dữ liệu đó đang chạy.
Một chú ý đặc biệt cho những ứng dụng có yêu cầu sử dụng dữ liệu dạng XML.
DB2 hiện tại chỉ hỗ trợ cột XML trong một cơ sở dữ liệu mà đã được định nghĩa
dạng Unicode (UTF-8). Nếu cơ sở dữ liệu không được tạo ra với sự hỗ trợ
Unicode, bạn sẽ không thể tạo ra dữ liệu XML.


Các định nghĩa không gian bảng

Mỗi một trong ba không gian bảng (SYSCATSPACE, TEMPSPACE1,
USERSPACE1) được tạo ra một cách tự động trong thư mục mặc định (ON) trừ
khi bạn chỉ ra vị trí của nó. Với mỗi không gian bảng, quản trị viên có thể chỉ ra
các đặc tính của tệp hệ thống mà không gian bảng đó sử dụng.
Ba không gian bảng được định nghĩa theo cú pháp dưới:
> + + >
'-CATALOG TABLESPACE | tblspace-defn |-'

> + + >
'-USER TABLESPACE | tblspace-defn |-'

> + + >
'-TEMPORARY TABLESPACE | tblspace-defn |-'

×