Chuẩn bị cho kỳ thi cơ bản về DB2 9, Phần 5: Làm việc với các đối tượng của DB2 doc - Pdf 20

Chuẩn bị cho kỳ thi cơ bản về DB2 9, Phần 5: Làm việc
với các đối tượng của DB2
Hana Curtis, Chuyên gia, IBM Canada
Tóm tắt: Bài viết này thảo luận về những kiểu dữ liệu, bảng, khung nhìn (view),
và chỉ mục được định nghĩa bởi DB2 9. Nó giải thích những đặc tính của những
đối tượng trên, và làm cách nào để tạo ra và xử lí chúng sử dụng Ngôn ngữ truy
vấn cấu trúc(SQL), và chúng có thể được sử dụng trong ứng dụng như thế nào. Bài
viết này là bài thứ năm trong một loạt bảy bài viết mà bạn có thể sử dụng để chuẩn
bị cho kỳ thi 730, lấy chứng chỉ DB2 9 cơ bản.
Trước khi bạn bắt đầu
Về loạt bài này
Bạn đã nghĩ tới việc có một chứng chỉ cơ bản của DB2 (Bài thi số 730)? Nếu bạn
nghĩ như thế thì bạn đã đến đúng chỗ. Đây là loạt bảy bài hướng dẫn chuẩn bị cho
kỳ thi chứng chỉ DB2 bao hàm tất cả những kiến thức cơ bản những chủ đề bạn
cần hiểu trước khi bạn đọc những câu hỏi sát hạch đầu tiên. Ngay cả khi bạn
không có kế hoạch giành được chứng chỉ đi chăng nữa, những bài viết này cũng là
nơi tuyệt vời để có được kiến thức để biết DB2 9 là gì. Về bài viết này
Những kiến thức trong bài viết này chủ yếu về những đối tượng trong mục 5 của
bài thi, có tựa đề là "Làm việc với đối tượng DB2". Bạn có thể thấy những mục
đích này tại: http://www-03.ibm.com/certify/tests/obj730.shtml.
Những chủ đề trong bài viết này gồm có:
 Giới thiệu về những kiểu dữ liệu có sẵn trong DB2, và việc sử dụng khi
định nghĩa một bảng. (Xử lí khác nhau đối với các loại dữ liệu khác nhau,
xem bài viết thứ tư trong loạt bài viết này).
 Giới thiệu về những kiểu dữ liệu nâng cao.
 Bảng, khung nhìn, và chỉ mục.
 Giải thích về các kiểu ràng buộc dữ liệu và cách sử dụng chúng.


 Integer (Số nguyên): SMALLINT, INTEGER, và BIGINT được sử dụng để
chứa số nguyên. Ví dụ, đếm số thiết bị trong bản kiểm kê có thể được định
nghĩa như là INTEGER. SMALLINT có thể chứa được những số nguyên
trong phạm vi từ -32,768 đến 32,767, với kích thước 2 bytes. INTEGER có
thể chứa được những số nguyên từ -2,147,483,648 đến 2,147,483,647, với
kích thước 4 bytes. BIGINT có thể chứa được những số nguyên từ -
9,223,372,036,854,775,808 đến 9,223,372,036,854,775,807, với kích thước
8 bytes.
 Decimal (Số thực): DECIMAL được sử dụng để chứa những số dưới dạng
số thập phân. Để định nghĩa kiểu dữ liệu này, chỉ rõ một độ chính xác (p),
xác định tổng các chữ số và một phạm vi (s), xác định số các chữ số thập
phân. Một cột định nghĩa bởi DECIMAL(10,2) có thể giữ giá trị tiền tệ lên
tới 99999999.99 đô la. Số lượng yêu cầu chứa trong cơ sở dữ liệu phụ
thuộc vào sự chính xác và được tính bởi công thức p/2 +1. Do vậy,
DECIMAL(10,2) đòi hỏi 10/2 + 1 hoặc là 6 bytes.
 Dấu phẩy động: REAL và DOUBLE được sử dụng để chứa những số xấp
xỉ. Ví dụ, những phép đo chính xác rất lớn hoặc rất nhỏ có thể được định
nghĩa như là REAL. REAL có thể được định nghĩa với độ dài từ 1 đến 24
số và cần 4 bytes để chứa. DOUBLE có thể được định nghĩa với độ dài từ
25 đến 53 số và cần 8 bytes để chứa. FLOAT có thể được sử dụng như một
kiểu tương tự cho kiểu REAL hoặc DOUBLE. Kiểu dữ liệu chuỗi ký tự (String)

DB2 cung cấp rất nhiều kiểu dữ liệu cho việc lưu trữ dữ liệu hoặc xâu ký tự, giống
như hình vẽ trên. Chọn một kiểu dữ liệu dựa vào kích cỡ của xâu ký tự bạn sẽ
chứa đựng và dữ liệu gì sẽ được chứa trong xâu ký tự.
Những kiểu dữ liệu dưới đây được sử dụng để chứa xâu các ký tự đơn (gồm từng
ký tự):

 DATE
 TIME
 TIMESTAMP
Những giá trị của những liệu dữ liệu này được lưu trữ trong cơ sở dữ liệu bằng
định dạng nội tại; Tuy nhiên, những ứng dụng có thể xử lí chúng như là những
chuỗi ký tự. Khi một trong số những kiểu dữ liệu này được lấy ra, nó được coi như
là một chuỗi ký tự. Chứa đựng giá trị trong dấu ngoặc kép khi cập nhật những liệu
dữ liệu này.
DB2 cung cấp những hàm có sẵn để xử lí những giá trị thời gian. Ví dụ, bạn có thể
xác định ngày của một tuần sử dụng DAYOFWEEK hoặc hàm DAYNAME. Việc
sử dụng hàm DAYS để tính toán khoảng cách giữa hai ngày. DB2 cũng cung cấp
những bản đăng ký đặc biệt để tạo ra ngày, giờ hiện tại hoặc dấu thời gian
(timestamp) dựa vào đồng hồ chỉ thời gian của ngày. Ví dụ, CURRENT DATE trả
về một chuỗi đại diện cho ngày hiện tại của hệ thống.
Định dạng của giá trị thời gian và ngày phụ thuộc vào mã từng quốc gia của cơ sở
dữ liệu, được đặc tả khi tạo ra cơ sở dữ liệu. Ở đây có nhiều định dạng có sẵn:
ISO, USA, EUR, và JIS. Ví dụ, nếu cơ sở dữ liệu của bạn sử dụng định dạng USA,
định dạng của ngày sẽ là mm/dd/yyyy. Bạn có thể thay đổi định dạng bằng việc sử
dụng DATETIME tùy chọn của câu lệnh BIND lệnh khi tạo ứng dụng.
Ở đây có một định dạng đơn cho kiểu dữ liệu TIMESTAMP. Định dạng này là
một chuỗi có dạng yyyy-mm-dd-hh.mm.ss.nnnnnn. Kiểu dữ liệu XML
DB2 cung cấp kiểu dữ liệu XML để lưu trữ những tài liệu XML phổ biến.
Những giá trị trong những cột XML được lưu trữ trong một sự miêu tả nội tại khác
với những định dạng xâu ký tự. Để lưu trữ dữ liệu XML vào cột dữ liệu kiểu
XML, dùng hàm chuyển đổi dữ liệu XMLPARSE. Tất cả giá trị kiểu XML có thể
được chuyển đổi vào trong một chuỗi giá trị đã được phát ra đang miêu tả tài liệu
XML sử dụng hàm XMLSERIALIZE. DB2 cung cấp nhiều hàm sẵn có khác để xử

của những kiểu dữ liệu sẵn có. Sau đó, sử dụng cấu trúc này khi tạo bảng.
Ví dụ, bạn có thể tạo ra kiểu cấu trúc có tên là ADDRESS chứa dữ liệu về
số đường phố, tên đường phố, thành phố, Sau đó bạn có thể sử dụng kiểu
dữ liệu này khi định nghĩa những bảng khác, như là nhân viên hoặc nhà
cung cấp, bởi vì cả hai kiểu dữ liệu này đều cần. Những kiểu dữ liệu cấu
trúc cũng có thể chứa các kiểu cấu trúc con. Kiểu này cho phép bạn lưu trữ
những đối tượng mà phụ thuộc theo cấu trúc phân cấp trong cơ sở dữ liệu.
 Kiểu dữ liệu tham chiếu người dùng định nghĩa: Khi sử dụng kiểu dữ liệu
có cấu trúc, bạn có thể định nghĩa tham chiếu đến những hàng trong bảng
khác sử dụng kiểu tham chiếu. Những kiểu tham chiếu này dường như
tương tự với ép kiểu cho tham chiếu; Tuy nhiên, chúng không ép buộc mối
quan hệ giữa các bảng. Tham chiếu trong bảng cho phép bạn định rõ những
truy vấn bằng nhiều cách khác nhau.
Những kiểu dữ liệu tham chiếu và có cấu trúc do người dùng định nghĩa là đề tài
đầu tiên; thông tin hiện tại ở đây chỉ xem như một lời giới thiệu những kiểu dữ
liệu này. Mở rộng DB2
Những phần mở rộng của DB2 hỗ trợ những kiểu dữ liệu mới, phức tạp. Chúng
được đóng gói riêng lẻ từ mã máy chủ DB2 và được cài trên máy chủ và trong mỗi
cơ sở dữ liệu sử dụng kiểu dữ liệu này.
Có nhiều phần mở rộng DB2 sẵn có của IBM và những nhà cung cấp phần mềm
độc lập. Bốn chức năng mở rộng đầu tiên cung cấp bởi IBM hỗ trợ việc lưu trữ âm
thanh, video, hình ảnh và dữ liệu văn bản. Ví dụ, sử dụng chức năng mở rộng hỗ
trợ hình ảnh của DB2 lưu trữ một ảnh của quyển sách và chức năng mở rộng hỗ
trợ văn bản để lưu trữ văn bản của một quyển sách. Hiện tại, có rất nhiều chức
năng mở rộng sẵn có khác. Chức năng mở rộng hỗ trợ không gian DB2 có thể sử
dụng để lưu trữ và phân tích dữ liệu không gian và chức năng mở rộng XML cho
việc quản lý dữ liệu XML.

Một cơ sở dữ liệu có tập hợp các bảng, được gọi là bảng liệt kê hệ thống, lưu giữ
thông tin về tất cả những đối tượng trong cơ sở dữ liệu. DB2 cung cấp những
khung nhìn (views) cho bảng liệt kê hệ thống. Cửa sổ quan sát SYSCAT.TABLES
chứa một hàng cho mỗi bảng được định nghĩa trong cơ sở dữ liệu.
SYSCAT.COLUMNS chứa một hàng cho mỗi cột của mỗi bảng trong cơ sở dữ
liệu. Nhìn vào những khung nhìn sử dụng SELECT câu lệnh này, giống bất kì
bảng nào khác trong cơ sở dữ liệu; tuy nhiên, bạn không thể sửa đổi dữ liệu bằng
việc sử dụng những câu lệnh INSERT, UPDATE, hoặc DELETE. Những bảng
được cập nhật tự động như là kết quả của những câu lệnh định nghĩa dữ liệu
(DDL), giống như CREATE, và những thực thi khác, giống như RUNSTATS.
Tạo bảng
Sử dụng câu lệnh SQL CREATE TABLE để định nghĩa một bảng trong cơ sở dữ
liệu. Câu lệnh dưới tạo ra một bảng đơn giản tên là BOOKS chứa ba cột:
CREATE TABLE BOOKS ( BOOKID INTEGER,
BOOKNAME VARCHAR(100),
ISBN CHAR(10) ) Bạn có thể sử dụng câu lệnh SQL CREATE TABLE để tạo một bảng giống như
những bảng hoặc khung nhìn khác trong cơ sở dữ liệu:
CREATE TABLE MYBOOKS LIKE BOOKS

Câu lệnh này tạo ra một bảng có cùng số cột như bảng hoặc khung nhìn gốc.
Những cột của bảng mới có cùng tên, kiểu dữ liệu, và những thuộc tính có hiệu lực
như những cột trong bảng gốc. Bạn có thể xác định rõ những mệnh đề cho phép
sao chép những đặc tính, gồm các cột mặc định và các thuộc tính xác định.
Có rất nhiều tùy chọn sẵn có cho câu lệnh CREATE TABLE (chúng được miêu tả
trong những phần sau như là khái niệm mới). Chi tiết của câu lệnh SQL CREATE
TABLE có thể được tìm thấy trong tài liệu tham khảo SQL (xem tại Tài nguyên).
Khi bạn đã tạo xong một bảng, có rất nhiều cách để đưa dữ liệu vào bảng. Câu

 Một khóa chính
 Một hoặc nhiều ràng buộc duy nhất hay ràng buộc tham chiếu
 Một hoặc nhiều ràng buộc kiểm tra
Câu lệnh sau thêm một cột tên là BOOKTYPE tới bảng BOOK:
ALTER TABLE BOOKS ADD BOOKTYPE CHAR(1)

Bạn có thể thay đổi các đặc tính của cột trong bảng:
 Những thuộc tính xác định của cột
 Độ dài của cột kiểu xâu ký tự
 Kiểu dữ liệu của cột
 Khả năng mang giá trị rộng của cột
 Ràng buộc của cột
Ở đây có một số giới hạn của việc thay đổi cột:
 Khi thay đổi độ dài của cột kiểu string, bạn có thể chỉ tăng độ dài của nó.
 Khi thay đổi kiểu dữ liệu của cột, kiểu mới phải phù hợp với những dữ liệu
đang tồn tại. Ví dụ, bạn có thể chuyển đổi cột kiểu CHAR thành cột kiểu
VARCHAR, nhưng không thể chuyển chúng thành GRAPHIC hoặc kiểu số
được. Những cột kiểu số có thể chuyển đổi thành bất kỳ loại kiểu số nào
miễn là kiểu dữ liệu mới đủ lớn để chứa giá trị. Ví dụ, chuyển đổi cột kiểu
INTEGER thành BIGINT, nhưng, một kiểu DECIMAL(10,2) không thể
chuyển thành kiểu SMALLINT.
 Những xâu có độ dài cố định có thể chuyển thành xâu có độ dài thay đổi và
những xâu có độ dài thay đổi có thể chuyển thành những xâu có độ dài cố
định. Ví dụ, CHAR(100) có thể chuyển thành VARCHAR(150). Những
hạn chế tương tự cũng được áp dụng cho xâu graphic.
Câu lệnh sau thay đổi kiểu dữ liệu (DATATYPE) của cột BOOKNAME từ
VARCHAR(100) thành VARCHAR(200) và thay đổi giá trị null của cột ISBN
thành giá trị khác null:
ALTER TABLE BOOKS ALTER BOOKNAME SET DATA TYPE
VARCHAR(200) ALTER ISBN SET NOT NULL

Trong bảng BOOKS, BOOKID là một số duy nhất được gán cho mỗi quyển sách.
Tốt hơn cho ứng dụng phát ra mã nhận dạng, bạn có thể định rõ rằng DB2 phát ra
BOOKID sử dụng mệnh đề GENERATED ALWAYS AS IDENTITY:
CREATE TABLE BOOKS ( BOOKID INTEGER NOT NULL GENERATED
ALWAYS AS IDENTITY
(START WITH 1, INCREMENT BY 1),
BOOKNAME VARCHAR(100) WITH DEFAULT 'TBD',
ISBN CHAR(10) )

GENERATED ALWAYS AS IDENTITY tạo ra BOOKID cho mỗi bản ghi. Giá
trị được phát ra đầu tiên là 1 và tiếp theo được tăng thêm mỗi lần một đơn vị.
Cũng sử dụng tùy chọn GENERATED ALWAYS của DB2 để tính toán giá trị của
cột một cách tự động. Ví dụ bên dưới định nghĩa một bảng tên là AUTHORS, với
các cột FICTIONBOOKS và NONFICTIONBOOKS chứa số lượng sách viễn
tưởng và không viễn tưởng riêng biệt. Cột TOTALBOOKS được tính toán bằng
việc cộng cột FICTIONBOOKS và NONFICTIONBOOKS:
CREATE TABLE AUTHORS (AUTHORID INTEGER NOT NULL
PRIMARY KEY,
LNAME VARCHAR(100),
FNAME VARCHAR(100),
FICTIONBOOKS INTEGER,
NONFICTIONBOOKS INTEGER,
TOTALBOOKS INTEGER GENERATED ALWAYS
AS (FICTIONBOOKS + NONFICTIONBOOKS)
)
Các ràng buộc
DB2 cung cấp nhiều cách để điều khiển cách dữ liệu được chứa trong cột. Những

DB2 để bạn định nghĩa một khóa chính duy nhất trên một bảng; tuy nhiên, bạn có
thể định nghĩa nhiều ràng buộc duy nhất.
Bất kỳ khi nào bạn định nghĩa một Khóa chính hoặc duy nhất ràng buộc trên một
cột, DB2 tạo ra một chỉ số duy nhất để áp đặt sự duy nhất trên cột. DB2 không để
bạn tạo nhiều hơn một chỉ số duy nhất trên những cột giống nhau. Do đó, bạn
không thể định nghĩa một khóa chính và một ràng buộc duy nhất trên những cột
giống nhau. Ví dụ, cả hai câu lệnh dưới đây là sai vì Khóa chính đã tồn tại:
ALTER TABLE BOOKS ADD CONSTRAINT UNIQUE (BOOKID)

CREATE UNIQUE INDEX IBOOKS ON BOOKS (BOOKID)
Ràng buộc toàn vẹn dữ liệu
Ràng buộc toàn vẹn dữ liệu được sử dụng để định nghĩa những mối quan hệ giữa
các bảng và đảm bảo rằng những mối quan hệ này vẫn còn được duy trì. Giả sử
bạn có một bảng AUTHORS lưu thông tin về tác giả và bảng BOOKS khác liệt kê
danh sách những quyển sách mà tác giả viết. Có một mối quan hệ giữa bảng
AUTHORS và bảng BOOKS mỗi cuốn sách có một tác giả và tác giả đó phải
tồn tại trong bảng AUTHORS. Mỗi tác giả có một id duy nhất được chứa trong cột
AUTHORID. AUTHORID được sử dụng trong bảng BOOKS để xác định tác giả
cho mỗi cuốn sách. Để định nghĩa mối quan hệ này, định nghĩa cột AUTHORID
của bảng AUTHORS như là khóa chính và sau đó định nghĩa khóa ngoại lai
(Foreign key) trên bảng BOOKS để thiết lập mối quan hệ với cột AUTHORID
trong bảng AUTHORS:
CREATE TABLE AUTHORS (AUTHORID INTEGER NOT NULL PRIMARY
KEY,
LNAME VARCHAR(100),
FNAME VARCHAR(100))
CREATE TABLE BOOKS (BOOKID INTEGER NOT NULL PRIMARY KEY,

o Nếu SET NULL được đặc tả, thì khi hàng trong bảng cha bị xóa, giá
trị của khóa ngoại lai trên bảng phụ thuộc được thiết lập là null (nếu
nó có thể null).
 Khi cập nhật giá trị trong bảng cha, có hai nguyên tắc có thể được đặc tả:
RESTRICT và NO ACTION. RESTRICT không cho phép giá trị khóa
được cập nhật nếu có những hàng phụ thuộc trong bảng phụ thuộc. NO
ACTION làm cho thao tác cập nhật dữ liệu trên khóa cha bị loại bỏ, tại cuối
của sự cập nhật, nếu có những hàng phụ thuộc trong bảng phụ thuộc mà
không có khóa cha trong bảng cha. Ràng buộc kiểm tra bảng
Ràng buộc kiểm tra bảng được sử dụng để kiểm tra dữ liệu cột không xâm phạm
những nguyên tắc được định nghĩa cho cột và để giới hạn giá trị trong những cột
nhất định trong bảng. DB2 đảm bảo rằng ràng buộc này không bị xâm phạm trong
khi chèn và cập nhật.
Giả sử rằng bạn thêm thêm một cột tới bảng BOOKS cho kiểu sách, và những giá
trị bạn muốn cho phép là F (fiction) và N (nonfiction). Bạn có thể thêm một
BOOKTYPE với ràng buộc kiểm tra như dưới đây:
ALTER TABLE BOOKS ADD BOOKTYPE CHAR(1) CHECK
(BOOKTYPE IN ('F','N'))

Bạn có thể định nghĩa ràng buộc kiểm tra khi bạn tạo bảng hoặc thêm chúng sau
đó sử dụng câu lệnh SQLALTER TABLE. Bạn có thể chỉnh sửa ràng buộc kiểm
tra bằng việc xóa và sau đó tạo mới chúng sử dụng câu lệnh SQL ALTER
TABLE.

Các khung nhìn
Các khung nhìn cho phép những người sử dụng khác nhau hay những ứng dụng
quan sát dữ liệu giống như vậy trong những cách khác nhau. Đây không chỉ làm


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status