296
N H P M Ô N DB2 Express-C Một cuốn sách của cộng đồng dành cho cộng đồng RAUL CHONG, IAN HAKES, RAV AHUIA Lời nói đầu DR.ARVIND KRISHNA KHÔNG CHỈ .... DỮ LIỆU

N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

N H Ậ P M Ô N

DB2 Express-CMột cuốn sách của cộng đồng dành cho cộng đồng

R A U L C H O N G , I A N H A K E S , R A V A H U I A

L ờ i n ó i đ ầ u D R . A R V I N D K R I S H N A

K H Ô N G C H Ỉ L À ... . D Ữ L I Ệ U

Page 2: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

2 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Xuất bản lần thứ ba (tháng 6 năm 2009)

Tài liệu này sử dụng cho IBM DB2 Express-C phiên bản 9.7 với hệ điều hành Linux, UNIX và Windows

Bản quyền thuộc công ty IBM

Page 3: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Mục Lục■ ■

Về cuốn sách này........................................................................................................................ 9Thông cáo và Nhãn hiệu hàng hóa........................................................................................ 9Ai nên đọc cuốn sách này?...................................................................................................10Cấu trúc của quyển sách này như thế nào?........................................................................10Một cuốn sách giành cho cộng đồng....................................................................................11Tác giả và những người đóng góp...................................................................................... 12Lời cảm ơn............................................................................................................................. 12Lời cảm ơn của bản tiếng Việt..............................................................................................13Lời nói đầu............................................................................................................................. 16

PHÂN I - TỒNG QUAN VÀ CÀI ĐẬT.....................................................................................17Chương 1 - DB2 Express-C là g ì? .......................................................................................18

1.1 Tự do phát triển, triển khai và phân phối... không có giới hạn!................................. 191.2 Trợ giúp người dùng và hỗ trợ kĩ thuật.........................................................................191.3 Các máy chủ DB2........................................................................................................... 201.4 Máy khách DB2 và các trình điều khiển (drivers)........................................................ 201.5 Tự do phát triển ứng dụng............................................................................................. 221.6 Phiên bản và ấn bản DB2.............................................................................................. 231.7 Chuyển sang ấn bản DB2 khác..................................................................................... 231.8 Bảo trì và cập nhật cho DB2 Express-C....................................................................... 241.9 Phần mềm miễn phí liên quan và các thành phần DB2..............................................24

1.9.1 IBM Data Studio..................................................................................................... 241.9.2 DB2 Text Search.................................................................................................... 251.9.3 WebSphere Application Server-Á n bản cộng đồng (Community Edition)...... 25

1.10 Tóm tắt........................................................................................................................... 25Chương 2 - Các sản phẩm và tính năng liên quan.......................................................... 26

2.1 Các tính năng kèm theo với DB2 Express bản trả phí (FTL)..................................... 292.1.1 Các gói sửa lỗ i....................................................................................................... 292.1.2 Tính sẵn sàng cao và khôi phục sau sự cố (High Availability Disaster Recovery- HADR)................................... ..................... ........ .......................... ............................... 292.1.3 Nhân bản dữ liệu.................................................................................................... 30

2.2 Các tính năng không có trong bản DB2 Express-C......................................................312.2.1 Phân vùng cơ sờ dữ liệu........................................................................................322.2.2 Connection Concentrator - Bộ tập trung kết nối...................................................322.2.3 Geodetic Extender- Bộ mở rộng không gian địa lý ........................................... 322.2.4 Label-based Access Control (LBAC) - Kiểm soát truy cập dựa trên nhãn....... 322.2.5 Bộ quản lý tải công việc (Workload Manager - WLM).......................................332.2.6 Nén sâu................................................................................................................... 342.2.7 Tương thích với SQ L.............................................................................................35

2.3 Những sản phẩm có trả phí liên quan đến DB2...........................................................362.3.1 DB2 Connect...........................................................................................................362.3.2 InfoSphere Federation Server............................................................................... 372.3.3 InfoSphere Replication Server.............................................................................. 382.3.4 Optim Development Studio (ODS)........................................................................382.3.5 Optim Database Administrator (ODA)...................................................................39

Page 4: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

4 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

2.4 Các cung cấp DB2 trên Cloud của Amazon............................................................... 392.5 Tóm tắt............................................................................................................................39

Chương 3 - Cài đặt DB2........................................................................................................... 403.1 Các điều kiện cần trước khi cài đặ t............................................................................. 403.2 Quyền cài đặt hệ điều hành..........................................................................................403.3 Cài đặt theo thủ thuật (hướng dẫn từng bước).......................................................... 413.4 Kiểm tra lại cài đặ t.........................................................................................................483.5 Cài đặt hàng loạt (Silent Install)................................................................................... 493.6 Tóm tắt............................................................................................................................503.7 Bài tập nhanh.................................................................................................................... 51

Chương 4 - Môi trường của DB2........................................................................................... 554.1 Cấu hình DB2................................................................................................................64

4.1.1 Các biến môi trường..............................................................................................654.1.2 Tệp cấu hình quản trị cơ sở dữ liệu (dbm cfg)...................................................... 654.1.3 Tệp cấu hình cơ sở dữ liệu (db cfg)...................................................................... 684.1.4 Đăng ký lý lịch DB2................................................................................................ 69

4.2 Máy chủ quản trị DB2 (deprecated1) ........................................................................... 704.3 Tóm tắt...............................................................................................................................714.4 Bài tập.............................................................................................................................71

Chương 5 - Các công cụ của DB2......................................................................................... 765.1 IBM Data studio.............................................................................................................785.2 Control Center (deprecated).........................................................................................79

5.2.1 Khởi động Control Center......................................................................................825.3 Nhập lệnh trực tiếp (deprecated)................................................................................. 83

5.3.1 Chạy trình Nhập lệnh trực tiếp.............................................................................. 845.3.2 Thêm một kết nối cơ sở dữ liệu............................................................................ 84

5.4 Thủ thuật trợ giúp SQL (deprecated)..........................................................................855.5 Nút “Show SQL” (deprecated)......................................................................................875.6 Trung tâm tác vụ (deprecated).....................................................................................88

5.6.1 Cơ sở dữ liệu Tools Catalog (deprecated).......................................................... 895.7 Nhật ký - Journal (deprecated).....................................................................................90

5.7.1 Khởi chạy Journal.................................................................................................. 915.8 Health Monitor (deprecated).........................................................................................92

5.8.1 Health Center..........................................................................................................925.9 Quản lí bộ nhớ tự động...............................................................................................945.10 Kịch bản...........'........................................................................................................... 94

5.10.1 Các kịch bản SQ L................................................................................................ 955.10.2 Kịch bản hệ điều hành (Shell)............................................................................. 96

5.11 Xét tới hệ điều hành Windows Vista..........................................................................97

1 Deprecated: những tính năng phiên bản hiện nay còn hỗ trợ, nhưng có thể không được hỗ trợ nữa ở các phiên bản sau. Các tính năng này sẽ được kết hợp trong IBM Data studio

Page 5: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Mục lục 5

5.12 Kết luận...........................................................................................................................975.13 Bài tập.............................................................................................................................98

PHẢN II - HỌC DB2: QUẢN TRỊ c ơ s ở DỮ LIỆU..............................................................103Chương 6 - Kiến trúc DB2......................................................................................................104

6.1 Mô hình xử lý DB2.........................................................................................................1046.2 Mô hình bộ nhớ D B2.....................................................................................................1066.3 Mô hình lưu trữ DB2......................................................................................................107

6.3.1 Các trang và phần mở rộng................................................................................... 1086.3.2 Vùng đệm (Buffer pool).......................................................................................... 1086.3.3 Không gian bảng-T a b le spaces.......................................................................... 110

6.4 Tóm tắt............................................................................................................................1166.5 Bài tập.............................................................................................................................116

Chương 7 - Kết nối máy khách DB2.................................................................................... 1207.1 Các thư mục DB2..........................................................................................................120

7.1.1 Thư mục cơ sở dữ liệu hệ thống...........................................................................1207.1.2 Thư mục cơ sở dữ liệu cục bộ ............................................................................... 1217.1.3 Thư mục nút.............................................................................................................1217.1.4 Thư mục DCS..........................................................................................................121

7.2 Công cụ trợ giúp cấu hình (deprecated).......................................................................1217.2.1 Các cài đặt cần thiết trên máy chủ........................................................................ 1227.2.2 Các cài đặt cần thiết trên máy khách.................................................................... 1257.2.3 Tạo lý lịch cho máy khách và máy chủ .................................................................129

7.3 Tóm tắt............................................................................................................................1327.4 Bài tập.............................................................................................................................132

Chương 8 - Làm việc với các đối tượng CO’ sở dữ liệu................................................... 1358.1 Lược đồ (schemas)........................................................................................................1358.2 Tên công cộng hoặc bí danh (public synonyms or public aliases)............................1368.3 Bảng (tables).................................................................................................................. 137

8.3.1 Kiểu dữ liệu ............................................................................................................. 1378.3.2 Cột khoá chính (Identity columns)..........................................................................1428.3.4 Các bảng danh sách hệ thống...............................................................................1438.3.5 Khai báo các bảng tổng quát tạm thời (DGTTs)................................................... 1448.3.6 Tạo bảng tạm tổng quát (CGTTs)........................................................................ 146

8.4 Khung nhìn......................................................................................................................1478.5 Chỉ mục...........................................................................................................................147

8.5.1 Trợ giúp thiết kế (Design Advisor)........................................................................ 1478.6 Toàn vẹn tham chiếu.....................................................................................................1498.7 Tiến hóa của lược đồ (Schema Evolution)..................................................................1508.8 Tóm tắt............................................................................................................................1528.9 Bài tập.............................................................................................................................152

Chương 9 - Các tiện ích di chuyển dữ liệu ........................................................................ 1569.1 Tiện ích EXPORT..................... .......................... ......................................................... 1579.2 Tiện ích IMPORT...........................................................................................................1589.3 Tiện ích LOAD............................................................................................................... 159

Page 6: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

6 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

9.4 Công cụ db2move...........................................................................................................1619.5 Công cụ db2look.............................................................................................................1619. 6 Tóm tắt....................................................................................................................... 1649.7 Bài tập............................................................................................................................. 164

Chương 10 - Bảo mật Cơ sờ dữ liệu................................................................................... 16810.1 Chứng thực...................................................................................................................16910.2 Quyền hạn ....................................................................................................................170

10.2.1 Đặc quyền............................................................................................................. 17010.2.2 Quyền hạn (authorities).........................................................................................17110.2.3 Vai trò ......... ......... ................................................................................................ 176

10.3 Xem xét việc nhóm các đặc quyền.............................................................................17710.4 Nhóm PUBLIC....... .............. .......................................................................................17710.5 Lệnh GRANT và REVOKE.........................................................................................17710.6 Việc kiểm tra quyền và đặc quyền..............................................................................17810.7 Tính năng bảo mật mở rộng trên Windows...............................................................18010.8 Tóm tắt.......................................................................................................................... 18010.9 Bài tập........................................................................................................................... 180

Chương 11 - Sao lưu và Khôi phục..................................................................................... 18511.1 Nhật kí cơ sở dữ liệu...................................................................................................18511.2 Các kiểu nhật k í........................................................................................................... 18611.3 Các kiểu ghi nhật k í .....................................................................................................187

11.3.1 Ghi tuần tự quay vòng.......................................................................................... 18711.3.2 Ghi nhật kí lưu trữ .................................................................................................188

11.4 Ghi nhật kí cơ sở dữ liệu từ Trung tâm điều khiển................................................... 18911.5 Các tham số của nhật k í..............................................................................................19111.6 Sao lưu cơ sở dữ liệu..................................................................................................19211.7 Khôi phục cơ sờ dữ liệ u ............................................................................................. 194

11.7.1 Các kiểu khôi phục dữ liệu...................................................................................19411.7.2 Phục hồi cơ sở dữ liệu......................................................................................... 195

11.8 Thao tác khác với câu lệnh BACKUP và RESTORE...............................................19511.9 Tóm tắt.......................................................................................................................... 19611.10 Bài tập.........................................................................................................................196

Chương 12 - Nhiệm vụ bảo t r ì ............................................................................................. 19912.1 REORG, RUNSTATS, REBIND.................................................................................199

12.1.1 Lệnh REORG........................................................................................................ 20012.1.2 Lệnh RUNSTATS................................................................................................. 20012.1.3 BIND/REBIND..................................................................................................... 20112.1.4 Các công việc bảo trì từ Control Center (Trung tâm Điều khiển).................... 202

12.2 Các lựa chọn bảo t r ì ................................................................................................... 20312.3 Tổng kết....................................................................................................................... 20512.4 Bài tập...........................................................................................................................205

Chương 13 - Truy cập đồng thời và khóa.......................................................................... 20813.1 Giao dịch (Transactions).............................................................................................20813.2 Truy xuất đồng thời (Concurrency)............................................................................ 209

Page 7: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Mục lục 7

13.3 Một số vấn đề nếu không có sự kiểm soát truy cập đồng thời............................... 21013.3.1 Mất dữ liệu cập nhật (lost update)..................................................................... 21013.3.2 Đọc dữ liệu không hoàn tất ( Uncommited read)...............................................21113.3.3 Đọc dữ liệu không thể lặp lại (Non-repeatable read)......................................... 21213.3.4 Đọc dữ liệu thừa (Phantom read).......................................................................213

13.4 Các mức cô lập........................................................................................................... 21413.4.1 Đọc không cam kết...............................................................................................21513.4.2 Ổn định con trỏ ..................................................................................................... 21513.4.3 Đọc ổn đ ịnh.......................................................................................................... 21713.4.4 Đọc lặp lại..............................................................................................................21713.4.5 So sánh các mức độ cô lập dữ liệu.................................................................... 21813.4.6 Đặt mức cô lập..................................................................................................... 218

13.5 Khóa leo thang...........................................................................................................22013.6 Kiểm soát khóa..........................................................................................................22113.7 Chờ khóa................................................................................................................... 22213.8 Vấn đề khóa chết và phát hiện..................................................................................22213.9 Truy cập đồng thời và thực tiễn khóa tốt nhất..........................................................22413.10 Tóm tắt.......................................................................................................................22513.11 Bài tậ p .......................................................................................................................225

PHÀN III - HỌC DB2: PHÁT TRIÉN ỨNG DỤNG................................................................231Chương 14 - Giới thiệu việc phát triển ứng dụng với DB2........................................... 233

14.1 Phát triển ứng dụng DB2: Bức tranh lớn.................................................................23314.2 Phát triển ứng dụng phía máy chủ .......................................................................... 235

14.2.1 Các thủ tục lưu..................................................................................................... 23514.2.2 Các hàm người dùng định nghĩa......................................................................... 23614.2.3 Các bẫy sự k iện...................................................................................................236

14.3 Phát triển ứng dụng phía máy khách....................................................................... 23714.3.1 SQL nhúng ...... ................ ............................................................................ 23714.3.2 SQL tĩnh và SQL động.........................................................................................23814.3.3 CLI và ODBC............".......................................................................................... 24014.3.4 JDBC, SQLJ và pureQuery................................................................................. 24414.3.5 OLE D B .................................................................................................................24514.3-6ADO.NET..............................................................................................................24614.3.7 PHP....................................................................................................................... 24814.3.8 Ruby on Rails....................................................................................................... 24814.3.9 Perl........................................................................................................................ 24914.3.10 Python.................................................................................................................249

14.4 XML và DB2 pureXML................................................................................................25014.5 Dịch vụ Web...............................................................................................................25014.6 Các API quản lý .........................................................................................................25214.7 Các phát triển khác................................................................................................... 252

14.7.1 Làm việc với Microsoft Access và Microsoft Excel...........................................25214.8 Các công cụ phát triển..............................................................................................25414.9 Các chương trình mẫu..............................................................................................254

Page 8: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

8 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

14.10 Tóm tắt................................................................................................................... 255Chương 15 - DB2 pureXML................................................................................................... 256

15.1 Sử dụng XML với cơ sở dữ liệu................................................................................ 25715.2 Cơ sở dữ liệu XM L..................................................................................................... 257

15.2.1 Cơ sở dữ liệu có hỗ trợ XML............................................................................... 25715.2.2 Cơ sở dữ liệu thuần XML.....................................................................................258

15.3 XML trong DB2 ... .......................................................................................................25915.3.1 Ưu điểm của công nghệ pureXML......................................................................26015.3.2 Cơ bản về X P a t h T . . . . ......................................................................................26215.3.3 Cơ bản về XQuery............................................................................................... 26515.3.4 Chèn các tài liệu XM L..........................................................................................26715.3.5 Truy vấn dữ liệu XML...........................................................................................27015.3.6 Kết nối với SQƯXML............................................................................................27715.3.7. Kết nối với XQuery............................................................................................... 27815.3.8 Các thao tác cập nhật và xóa.............................................................................. 27815.3.9 Đánh chỉ mục XML................................................................................................281

15.4 Làm việc với lược đồ XML..........................................................................................28215.4.1 Đăng kí lược đồ XM L...........................................................................................28215.4.2 Kiểm tra tính hợp lệ theo lược đồ XML.............................................................. 28515.4.3 Các hỗ trợ XML khác...........................................................................................286

15.5 Tóm tắt..........................................................................................................................28715.6 Bài tập........................................................................................................................... 287

Phụ lục A - Khắc phục sự c ố ............................................................................................... 289A.1 Tìm thêm thông tin về các mã lỗ i................................................................................ 290A.2 SQLCODE và SQLSTATE...........................................................................................290A.3 Nhật ký thông báo quản trị DB2................................................................................... 291A.4 db2diag.log.....................................................................................................................291A.5 Theo vet CLI.................................................................................................................. 292A.6 Khiếm khuyết và sửa lỗi trong DB2............................................................................. 292

Phụ lục B - Tham khảo và Tài nguyên............................................................................... 293B.1 Tham khảo..................................................................................................................... 293B.2 Các trang W eb:.............................................................................................................293B.3 Sách ....................................................................................................................... 295B.4 Email liên hệ.................................................................................................................. 296

Page 9: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

về cuốn sách nàyThông cáo và Nhãn hiệu hàng hóa

© Copyright IBM Corporation 2007, 2009

All right Reserved.

IBM Canada 8200 Warden Avenue

Markham, ON

L6G 1C7

Canada

Không được phép sao chép hay mô phỏng tài liệu này hoặc một phần của tài liệu này dưới bất cứ hlnh thức hay

thông qua bất cứ phương tiện nào hoặc theo cách phiên dịch ra một ngôn ngữ khác mà không có sự đồng ý

trước của tất cả các chủ sở hữu tác quyền nêu trên.

IBM không có bảo đảm hoặc tuyên bố nào liên quan đến nội dung này và cụ thể là chối bỏ bất cứ sự đảm bảo

mang tính hàm ý/suy diễn nào về giá trị thương mại hay tính phù hợp đối với bất cứ mục đích cụ thể nào. IBM

không chịu trách nhiệm về bất cứ sai sót nào có khả nảng tồn tại trong tài liệu này, bao gồm nhưng không giới

hạn trong phạm vị các sai sót trong quá trình dịch thuật. Các thông tin được bao hàm trong tài liệu này là đối

tượng chịu sự thay đổi mà không cần thông báũ. IBM bảo lưu quyền thực hiện bất cứ sự thay đồi nào như thế mà không có nghĩa vụ thông báo cho bất cứ cá nhân nào về các trường hợp điều chỉnh hay thay đổi như thế. IBM

không đưa ra bất cứ cam kết nào đối với việc cập nhật các thông tin được bao hàm trong tài liệu này.

Các thông tin trong tài liệu này có liên quan đến các sản phẩm không phải của IBM, do các nhà cung cấp các sản phẩm ấy cung cấp. IBM chưa thử nghiệm các sản phẩm ấy và không thể xác nhận tính chính xác về tình trạng hoạt động, Khả năng tương thích hoặc các Khẳng định có liên quan các sản phẳm không phải của IBM. Đối với

các vấn đề thắc mắc có liên quan đến hiệu quả của các sản phẩm không phải của IBM, xin liên hệ với các nhà

cung cấp các sản phẩm này.

IBM, biểu tượng IBM, và ibm.com là nhãn hiệu hàng hóa đã đãng ký của tập đoàn IBM trên toàn thế giới. Tên sản

phẩm và dịch vụ khác có thể là nhăn hiệu hàng hóa đã đăng ký của IBM hoặc các công ty khác. Danh sách các

nhãn hiệu đă đăng ký của IBM được đăng tải tại mục “Copyright and trademark information” của trang

www.ibm.com/legal/copytrade.shtml.

Java và tất cả các nhăn hiệu Java là nhăn hiệu hàng hóa đăng ký của công ty Sun Microsystem, Inc. tại Mỹ, các

nước Khác, hoặc cả hai.

Microsoft và Windows là nhãn hiệu hàng hóa của tập đoàn Microsoft tại Mỹ, các nước khác, hoặc cả hai.

Linux là nhãn hiệu đăng ký của Linus Torvalds tại Mỹ, các nước khác, hoặc cả hai.

UNIX là nhãn hiệu đăng ký của The Open Group tại Mỹ, các nước khác, hoặc cả hai.

Những tên của công ty, sản phẩm hay dịch vụ khác có thể là nhãn hiệu đă đăng ký của các công ty khác.

Các mục tham khảo trong sản phẩm xuất bản này có liên quan đến các sản phẩm hay dịch vụ của IBM không

mang hàm ý rằng IBM có ý định phát triển các sản phẩm ở mọi quốc gia mà IBM có cơ sở hoạt động.

Page 10: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

10 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Ai nên đọc cuốn sách này?Quyển sách này giành cho bất kỳ ai đang làm việc hoặc muốn làm việc với cơ sở dữ liệu, như quản trị hệ cơ sở dữ liệu (DBAs), người phát triển ứng dụng, nhà tư vấn, kiến trúc phần mềm, giám đốc sản phẩm, giáo viên và sinh viên.

Cấu trúc của quyển sách này như thế nào?Phần I, Tổng quan và Cài đặt, giải thích ấn bản DB2 Express-C là gì, giới thiệu họ sản phẩm DB2 và các chức năng, giúp đỡ cài đặt và tạo mới cơ sở dữ liệu, và khám phá các công cụ sẵn có của DB2.

Phần II, Học DB2: Quản trị cơ sở dữ liệu, được thiết kế để bạn làm quen với môi trường, kiến trúc, kết nối từ xa, các đối tượng dữ liệu, chuyển dữ liệu (nhập và xuất dữ liệu), an toàn, sao lưu và khôi phục, truy cập đồng thời và khóa của DB2, và các công việc bảo trì thông thường.

Phần III, Học DB2: Phát triển ứng dụng, giới thiệu việc phát triển ứng dụng trên DB2, bao gồm phát triển ứng dụng trên máy chủ, trên máy khách. Cũng thảo luận về SQƯXML, XQuery, và pureXML.

Phụ lục có các thông tin cần thiết về sửa lỗi.

Bài tập đi kèm với phần lớn các chương; và cũng cung cấp các tệp đầu vào cần thiết để thực hành, nó được nén trong tệp expressc_book_quicklabs.zip đi kèm theo sách này.

Tài liệu cùa cuốn sách cũng được Sừ dụng làm bài giảng cùa chương trình "DB2 với Đại học” (DB2 on Campus), và rất sát với băng video các trình bày có thể thấy ở trang web www.channelDB2.com/oncampus. Bạn có thể xem thêm thông tin về chương trình này ở trang DB2 Express-C, địa chỉ www.ibm.com/db2/express/students.html.

Chú ý:Để biết thêm thông tin về chương trình “DB2 on Campus”, xem video ở địa chỉ http://www-channeldb2-com/video/video/show?id=807741 :Video:3902-

Cuốn sách này là lần xuất bản thứ 3, chúng tôi đã có nhiều thay đổi và bổ xung. Với những người đã đọc cuốn xuất bản lần 2 về DB2 9.5, chúng tôi đã đánh dấu để các bạn có thể thấy các thay đổi đã được cập nhật ờ phiên bản DB2 9.7. Các phần có thay đổi các bạn có thể dễ dàng nhận thấy bằng biểu tượng.

V9.7

Page 11: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

về cuốn sách này 11

Một cuốn sách giành cho cộng đồngCuốn sách này do Đội ngũ phát triển DB2 Express-C làm ra và cung cấp miễn phí cho cộng đồng DB2 Express-C. Trong khi viết, bản trước của cuốn sách này đã được tải hơn45.000 lần và được những người tình nguyện trên khắp thế giới dịch sang 9 thứ tiếng. Một nỗ lực thật sự từ cộng đồng!. Nếu bạn muốn đóng góp ý kiến, đóng góp những nội dung mới để nâng cao nội dung hiện tại hoặc dịch cuốn sách này sang ngôn ngữ khác, làm ơn gửi kế hoạch thực hiện về địa chỉ [email protected] với tiêu đề “DB2 Express-C book changes.”

Thành công của cuốn sách này đã tiếp thêm sức mạnh cho việc phát triển thêm hơn 25 cuốn sách cung cấp trực tuyến về các sản phẩm của IBM, và cả về công nghệ ngoài IBM nữa. Cuốn sách này là một phần của Tủ sách Giành cho cộng đồng (Community Book Series), được đưa ra vào tháng 10 năm 2009.

Để có thêm thông tin về cuốn sách này hay về Tủ sách Giành cho cộng đồng, hãy thăm trang web IBM® DB2 Express-C tại địa chỉ www.ibm.com/db2/express.

Page 12: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

12 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Tác giả và những người đóng gópNhững người sau đây đã cung cấp nội dung và có các đóng góp có ý nghĩa cho cuốn sách này.

Raul F. Chong - Chủ biên

Raul là Giám đốc chương trình “DB2 on Campus” tại phòng thí nghiệm IBM ở Toronto.

lan Hakes - Đồng tác giả và biên tập

lan trước đây làm người hỗ trợ cộng đồng DB2 Express-C và bây giờ là chuyên gia tại phòng thí nghiệm IBM ở Toronto.

Rav s. Ahuja - Đồng tác giả và Xuất bản

Rav là giám đốc cấp cao của sản phẩm DB2 ở phòng thí nghiệm IBM ở Toronto.

Lời cảm ơnChúng tôi chân thành cảm ơn các cá nhân sau đây với sự trợ giúp của họ và việc phát triển các tài liệu tham khảo trong sách này

■ Ted VVasserman, Clara Liu và Paul Yip ở phòng thí nghiệm IBM Toronto, người đã phát triển ứng dụng trong khuôn khổ cuốn sách này

■ Don Chamberlin và Cindy Saracco với các bài báo của họ về XQuery đăng trên developerVVorks, và Matthía Nicola với bài trình bày về pureXML.

■ Kevin Czap và Grant Hutchingson với các tài liệu kỹ thuật về phát triển DB2

■ Katherine Boyachok và Natasha Tolub với thiết kế bìa

■ Susan Visser biên tập và giúp đỡ xuất bản cuốn sách này

Page 13: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

về cuốn sách này 13

Lời cảm ơn của bản tiếng ViệtSau khi có bản dịch sang tiếng Việt của cuốn sách “Nhập môn DB2 Express-C” lần thứ 2, nó đã được cộng đồng nhiệt tình đón nhận, đặc biệt là các bạn sinh viên. Với lần xuất bản thứ 3 này (năm 2009) cuốn sách đã được bổ xung nhiều thông tin và các tính năng mới của phiên bản DB2 Express-C 9.7. Trước nhu cầu cho sinh viên có tài liệu học tập, nghiên cứu và sử dụng bản DB2 9.7 mới và tân tiến nhất hiện nay, chúng tôi đã quyết định kêu gọi các bạn sinh viên tình nguyện tham gia dịch cuốn sách này.

Một lần nữa, các bạn sinh viên lại tham gia rất nhiệt tình, mong muốn có được cuốn sách bổ ích cho cộng đồng, đa số các bạn đang là sinh viên, nhưng có bạn nay đã ra trường, đi làm, có bạn đã thành giáo viên... Tôi thật sự cám ơn tất cả các bạn.

Chúng ta tự hào rằng đây đúng là một quyển sách do cộng đồng và vì cộng đồng. Vì trình độ và thời gian hạn chế, dù có thể còn nhiều khiếm khuyết, nhưng rất mong các bạn đón nhận nó nhiệt tình và đóng góp ý kiến cho bản dịch được hoàn thiện hơn. Hy vọng rằng các bạn sinh viên sẽ tiếp tục chuyển đến cộng đồng những ấn phẩm mới, với chất lượng chắc chắn sẽ tốt hơn.

Nguyễn Khiêm

Chương trình Hỗ trợ giáo dục Đại học

IBM Việt Nam

Page 14: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

14 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Danh sách sinh viên tham gia dịch và hiệu đính:

STT Tên Từ mục Đếnmục

Trường

1 Cao Hồng Nga 15.3.5 15.3.5.1 Đại học Cần Thơ2 Đặng Hữu Anh Phụ lục A B.4 Đại học Bách Khoa Hà Nội3 Đào Mai Ly Chương 1 1.4 Đại học FPT4 Đậu Quốc Toản 1.5 1.10 Đại học Công Nghệ, ĐH QG

Hẩ Nọi5 Đỗ Đức Cường Chương 2 2.1.3 Đại học FPT6 Đỗ Hà Lộc 2.2 2.2.4 Đại học Công nghệ Thông tin7 Đỗ Thị Dịu Hương 2.2.5 2.2.7 Đại học Nông Nghiệp Hà Nội8 Đỗ Thị Huyền Trang 2.3 2.59 Hồ Văn Hơn Chương 4 4.0 Đai hoc Khoa hoc Tư Nhiên,

Tp. Hồ Chí MinhHiệu đính Ch1 Đai hoc Khoa hoc Tư Nhiên,

Tp. Hồ Chí Minh10 Hoàng Hà Mỹ Tú. Chương 3 3.3 Đại học An Giang.11 Huỳnh Hồng Tỵ 4.1 4.1.4 Đại học Bách Khoa Đà Nắng12 Huỳnh Phước Hải Hiệu đính Ch3-Ch4 Đại học An Giang13 Huỳnh Tuấn Anh 4.2 4.4 Đại học Bách Khoa Đà Nắng14 Huỳnh Tùng Chương 5 5.2.1 Đại học Công nghệ Thông tin15 Kiều Huỳnh Thu Thủy 5.3 5.6.1.2 RMIT

Lên trang RMIT16 Lê Hoàng Hà 5.7 5.9 Đại học Công nghệ Thông tin17 Lê Nhật Tùng 5.13 5.13 Đại học Nông Lâm Tp.Hồ Chí

Minh18 Lê Thành Huy Hiệu đính Ch6 TT. Công nghệ Phần mềm

Đại học Cần ThơHiệu đính Ch10 (2) TT. Công nghệ Phần mềm

Đại học Cần Thơ19 Lê Trung Quang Chương 6 6.3.2.1 Đại học Hùng Vương Tp. Hồ

Chí Minh20 Nguyễn Đình Quảng Chương 7 7.2.2 Học viện Công nghệ Bưu

chính Viễn thông Hà Nội7.2.3 7.4 Học viện Công nghệ Bưu

chính Viễn thông Hà NộiHiệu đính Ch7 Học viện Công nghệ Bưu

chính Viễn thông Hà Nội21 Nguyễn Kim Dung 6.3.3 6.5 Đại học Công nghệ Thông tin22 Nguyễn Nhật Khánh Chương 8 8.3.1.4 Đại học Cần Thơ23 Nguyễn Phạm Quang Thành 8.3.2 8.3.6 Đai hoc Khoa hoc Tư nhiên

Tp. Hồ Chí Minh24 Nguyễn Phi Thanh 8.4 8.7 Đại học An Giang25 Nguyễn Phương Nam Hiệu đính Ch8 Dự án Tabmis, 32 Cát Linh,

Hà Nội

Page 15: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

2627282930313233343536

3738

3940

414243

44

4546

47

4849505152535455

về cuốn sách này 15

NguyễnNguyễnNguyễnNguyễn

Quốc Tuấn Thị Dung Thị Hằng Nga Thị Hòa

8.8 Chương 9

NguyễnNguyễnNguyễnNguyễnNguyễnNguyễnNguyễn

9.4 Chương 10

8.99.39.7

10.2 .2.1

ĐạĐạĐạĐạ

học FPThọc Thái Nguyên học Thái Nguyên học Bách khoa Hà Nội

Thị Kim Quy Thị Liệu

10.2.2.2 Hiệu đính Ch9-Ch10

10.6 ĐạĐạ

học Công nghệ Thông tin học Khoa Học Huế

Thị Ngọc Lan Thị Như Quỳnh Tiến Long Trọng Hiếu Trung Hiếu

Nguyễn Văn Nam Nguyễn Xuân Vĩnh Hưng

Phạm Hữu Thanh BìnhPhan Nguyên Cương

Phan Thế Quyết Phùng Đình Vũ Tạ Đắc Hoàng Thiên Ân

Trần Anh Huy

Trần Đức Hiếu Trần Hoài Thu

Trần Ngọc Hoà

Trần Thị Hương Giang Trần văn Trúc Trần Xuân Chiến Trương Thị Hiếu Vũ Đửr. Tuyến Vũ Thị Thanh Mai

10.7 Chương 11

11.6 Chương12

Hiệu đính Ch11

12.2 Chương 13

13.4

10.9 11.5

11.10 12.1.4.1

12.413.3.4

13.4.613.5 13.9

13.105.10 3.4

Chương 14 Hiệu đính Ch13

14.3.2 Chương 15

13.115.123.7

14.3.1

14.3.315.3

Đại học Thái NguyênĐại học Đà LạtĐại học Công nghệ Thông tinĐại học Bách Khoa Hà NộiĐại học Khoa hoc Tự nhiên,Tp. Hồ Chí MinhĐại học Khoa Học HuếĐại học Nông iâm Tp. Hồ ChíMinhĐại học Duy Tân - Đà Nang Đại học Công Nghệ, ĐH QG Hẩ NộiĐại học Slí phạm Huế Đại học Bách khoa Hà Nội Đai học Mở Tp.Hồ Chí Minh Đại học Mở Tp. Hồ Chí Minh Cao đẳng Bách Khoa Đà NắngĐại học Mở Tp. Hồ Chí Minh Đại học Bách Khoa Hà Nội

Hiệu đính Ch12 - Phụ lục A,B

Đại học Bách Khoa Hà Nội

Hiệu đính Ch14 Hiệu đính Ch15

14.3.4

14.415.3.115.3.3

15.3.5.2

14.3.10

14.1015.3.2.315.3.415.3.7

15.3.815.4.2

15.4.115.7

Hiệu đính Ch2 Hiệu đính Chõ

Đại học Bách Khoa Hà Nội Đại học Bách Khoa Hà Nội Đại học Hùng Vương Tp. Hồ Chí Minh Đại học FPT Đại học FPTĐại học Công nghệ Thông tin Đại học Sư phạm Huế Đại học FPTĐại học Công nghệ Thông tin

Page 16: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

16 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Lời nói đầuSáng tạo là sự đột phá của các tiến bộ công nghệ. Tại IBM, sáng tạo đã trờ thành cội nguồn của sự phát triển cơ sở dữ liệu. Là người đi tiên phong trong kỹ thuật quản trị dữ liệu trong những năm 60 và 70, chúng tôi tiếp tục đưa ra những sáng tạo công nghệ về quản trị thông tin, biểu hiện bằng hàng nghìn đăng ký phát minh về quản trị dữ liệu của những nhà công nghệ của IBM. Kết quả là, một số các tổ chức lớn nhất hành tinh ngày nay đã tin tưởng vào các sản phẩm của IBM như DB2 để vận hành các giải pháp có nhu cầu cao nhất, quản trị những dữ liệu tối quan trọng của họ.

Tuy nhiên DB2 không chỉ dành cho các doanh nghiệp lớn. Với việc đưa ra bản DB2 Express-C, công nghệ nối tiếng DB2 đã sẵn sàng cho các doanh nghiệp vừa và nhỏ - và không bắt buộc phải mất chi phí! Mặc dù còn có các sản phẩm miễn phí hay các phần mềm nguồn mở khác, DB2 Express-C trao cho bạn sức mạnh duy nhất vượt trên tất cả các lựa chọn cùng loại.

Có rất nhiều sáng tạo công nghệ hiện diện trong DB2 Express-C. Một số trong chúng nhằm vào khả năng tiên tiến mới, một số khác lại hướng tới giảm thiểu gánh nặng quản trị, một số khác nữa lại cải thiện hiệu năng, giảm chi phí hạ tầng. Chúng tôi sẽ không trình bày chúng ở đây, hy vọng các bạn sẽ bị cuốn hút khi đọc quyển sách này - chúng tôi chỉ xin mô tả một vấn đề hóc búa nhất.

DB2 Express-C được xây dựng trên nền công nghệ “Viper”, nó là cơ sở dữ liệu lai đầu tiên quản lý cả dữ liệu quan hệ và dữ liệu XML dưới dạng bẩm sinh. Điều này làm cho DB2 trở nên rất lý tướng cho các xu hướng mới cúa ứng dụng SOA và Web 2.0 trong đó các luồng dữ liệu XML là rất nhiều. Không giống với hệ quản trị cơ sở dữ liệu của các hãng thương mại khác, DB2 Express-C không giới hạn dung lượng dữ liệu lưu trữ trong cơ sở dữ liệu hay số lượng cơ sở dữ liệu bạn có thể tạo ra trong hệ thống. Và tất nhiên, nếu bạn cần trợ giúp hỗ trự từ IBM, bạn chỉ cần nhấn chuột vào nút Help.

Cuốn sách này dùng để giúp những người mới bắt đầu sử dụng DB2 Express-C, nó sẽ giúp bạn hiểu các khái niệm của DB2 và cho phép bạn phát triển kỹ năng quản trị cũng như phát triển ứng dụng DB2. Kỹ năng và sự hiểu biết nhận được từ cuốn sách này có liên quan rất nhiều đến các bản DB2 tiên tiến hơn trên Linus, UNIX và Windows.

Mặc dù DB2 Express-C không phải là sản phẩm mã nguồn mờ, IBM chúng tôi vẫn rất tin tưởng vào sự hỗ trợ và cổ vũ từ cộng đồng. Tôi vui mừng được thấy cuốn sách này do các thành viên của cộng đồng DB2 Express-C phát triển và phát hành miễn phí cho cộng đồng. Tôi mong các bạn cập nhật, làm giàu thêm kiến thức của cuốn sách với hiểu biết, kinh nghiệm của các bạn, và giúp dịch cuốn sách này sang các ngôn ngữ khác, như vậy những người khác sẽ có lợi từ sự hiểu biết của bạn.

Arvind KrishnaPhó chủ tịch, Cơ sở dữ liệuBan Quản trị thông tin, Nhóm phần mềm IBM

Page 17: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

PHÀN I - TỔNG QUAN VÀ CÀI ĐẶT■

Page 18: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

1Chương 1 - DB2 Express-C là gì?Phần mềm máy chủ dữ liệu DB2 Express-C là một sản phẩm thuộc dòng IBM DB2 - bao gồm những phần mềm máy chủ dữ liệu quản lý cả dữ liệu quan hệ và dữ liệu XML. DB2 Express-C là một phiên bản miễn phí, không giới hạn và dễ sử dụng của DB2. Chữ ‘C’ trong DB2 Express-C là viết tắt của từ Cộng đồng(Community). Một cộng đồng những người sử dụng DB2 Express-C kết hợp lại để giúp đỡ nhau, cả trực tuyến và không trực tuyến. Cộng đồng DB2 Express-C bao gồm nhiều cá nhân và các công ty thiết kế, phát triển, triển khai hay sử dụng các giải pháp cơ cở dữ liệu. Các thành viên của cộng đồng bao gồm:

■ Những nhà phát triển ứng dụng cần đến một phần mềm cơ sở dữ liệu chuẩn và mở để xây dựng các ứng dụng độc lập, dạng khách-chủ, trên nền web hay chương trình ứng dụng kinh doanh.

■ ISVs - các nhà cung cấp phần mềm độc lập, những nhà cung cấp phần cứng, cơ sở hạ tầng hay những giải pháp khác, muốn đóng gói một máy chủ dữ liệu đầy đủ tính năng như một phần trong những giải pháp của họ.

■ Những nhà cố vấn, quản trị cơ sở dữ liệu và các kiến trúc sư công nghệ thông tin cần một máy chủ dữ liệu mạnh để luyện tập, phát triển kĩ năng, làm mô hình và đánh giá.

■ Những công ty mới thành lập, hay những công ty vừa và nhỏ cần đến một máy chủ dữ liệu tin cậy cho các ứng dụng và hoạt động của công ty.

■ Những người yêu thích cơ sở dữ liệu và hứng thú với những công nghệ mới muốn có một máy chủ dữ liệu dễ sử dụng để xây dựng Web 2.0 và các ứng dụng thế hệ mới.

■ Sinh viên, giáo viên và những người dùng vì mục đích học tập, nghiên cứu muốn có một máy chủ dữ liệu linh hoạt để giảng dạy, học tập hay nghiên cứu.

DB2 Express-C có cùng các tính năng cơ bản và cùng nền tảng như các phiên bản thương mại của DB2 trên Linux, Unix và Windows. DB2 Express-C có thể chạy trên cả hệ thống 32-bit hoặc 64 bít với hệ điều hành Linux hoặc Windows. Nó cũng có thể chạy được trên Solaris (x64) và có phiên bản thử nghiệm trên Mac OS X (x64). Nó có thể chạy trên những hệ thống với bất kì bộ vi xử lý và bộ nhớ nào, và không yêu cầu một bộ nhớ chuyên dụng hay cài đặt nào khác trên hệ thống. DB2 Express-C còn bao gồm pureXML.

Page 19: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 1 - DB2 Express-C là gì? 19

PureXML là một công nghệ duy nhất chỉ có của DB2, nó lưu trữ và xử lý trực tiếp các vănbản XML.

1.1 Tự do phát triển, triển khai và phân phối... không có giới hạn!Đó chính là ý tưởng chính của DB2 Express-C:

■ Tự do phát triển: Nếu bạn là một nhà phát triển ứng dụng và cần một cơ sở dữ liệu cho ứng dụng của bạn, bạn có thể dùng DB2 Express-C.

■ Tự do triển khai: Nếu bạn đang làm trong khâu sản xuất, và cần một hệ thống quản lý dữ liệu để lưu lại những thông tin quan trọng, bạn có thể dùng DB2 Express-C.

■ Tự do phân phối: Nếu bạn đang phát triển một ứng dụng hay một công cụ cần đến một máy chủ dữ liệu đóng gói, bạn có thể dùng DB2 Express-C. Mặc dù DB2 Express-C được nhúng trong sản phẩm của bạn, và đuực phân phối mỗi khi bạn bán sản phẩm của mình, nó vẫn miễn phí. Bạn cần phải đăng kí với IBM để tái phân phối DB2 Express-C; tất nhiên việc đăng kí này là miễn phí.

■ Không giới hạn: Trong khi nhũng hệ cơ sờ dữ liệu khác có giới hạn về kích thước, số lượng cơ sở dữ liệu và số nguời dùng, với DB2 Express-C không có các giới hạn về kích thước dữ liệu. Cơ sở dữ liệu của bạn có thể tiếp tục phát triển mà không vi phạm điều khoản sử dụng. Cũng không có điều khoản nào giới hạn số kết nối hay số người sử dụng trên mỗi máy chủ.

Chú ỹ:

Để hiểu thêm về DB2 Express-C và vai trò của nó trong thế giới thông tin theo yêu cầu vàWeb 2.0, xin mời xem thêm video :

http://www.channeldb2.com/video/video/show?id=807741 :Video:3922

1.2 Trợ giúp người dùng và hỗ trợ kĩ thuậtNếu bạn có thắc mắc kỹ thuật về DB2 Express-C, bạn có thể đưa câu hỏi lên diễn đàn DB2 Express-C. Diễn đàn miễn phí này được quản lý bởi những chuyên gia DB2 từ IBM, mặc dù chính cộng đồng mới là những người giải đáp chính trên cơ sở tự nguyện.

IBM cũng cho người dùng lựa chọn mua bản quyền giá rẻ phiên bản phần mềm máy chủ dữ liệu DB2 Express theo năm (còn gọi là bản quyền thời hạn cố định - FTL). Bản này gao gồm sự hỗ trợ kĩ thuật 24x7 và được cập nhật phần mềm. Thêm vào đó, với chi phí hàng năm ($2.995 cho một máy chủ tại Mỹ - giá có thể thay đổi tại các quốc gia khác), bạn cũng có thể có thêm những chức năng như: tính sẵn sàng cao và tính năng phục hồi khi gặp sự cố - HADR (clustering for High Availability and Disaster Recovery), di trú dữ liệu truy vấn (để tái tạo lại dữ liệu với những máy chủ DB2 khác), và Sao chép nén (để tạo ra những bản sao chép dự trữ được nén lại của cơ sờ dữ liệu). Thông tin thêm về lựa chọn mua bản quyền có thể tìm thấy tại www.ibm.com/db2/express/support-htmI

Page 20: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

20 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

1.3 Các máy chủ DB2Tất cả các phiên bản máy chủ DB2 đều có chung thành phần lõi, chúng được đóng gói để cho người dùng có thể chọn những chức năng cần thiết với mửc giá phù hợp. Hình 1.1 minh họa các phiên bản DB2 khác nhau.

DB2 Enterprise Edition

Hình 1.1 - Máy chủ DB2

Như ta thấy trên hình 1.1, DB2 Express-C cũng giống như DB2 Express nhưng thiếu đi một vài thành phần. DB2 Express-C được miễn phí. Hỗ trợ kĩ thuật được thực hiện thông qua một diễn đàn trực tuyến miễn phí, hoặc bạn có thể nhận được sự hỗ trọ kĩ thuật chính thức 24x7 từ phía IBM nếu bạn trả phí hfng năm (Fixed Term License - bản quyền thời hạn cố định)

Hình 1.1 cũng giải thích tại sao có thể đễ dàng nâng cấp từ bản DB2 Express-C nếu trong tương lai bạn muốn nâng cấp lên bất kì phiên bản nào khác của máy chủ DB2, vì tất cả máy chủ DB2 có chung thành phần lõi. Điều này cũng có nghĩa là bất kì ứng dụng nào được phát triển trên một phiên bản có thể hoạt động trên các phiên bản khác mà không cần phải chỉnh sửa. Và bất kì kĩ năng nào bạn học được từ một phiên bản có thể áp dụng cho các phiên bản khác.

1.4 Máy khách DB2 và các trình điều khiển (drivers)Một máy khách DB2 bao gồm những chức năng cần thiết để kết nối đến một máy chủ DB2; tuy nhiên, không phải lúc nào cũng cần thiết phải cài đặt một máy khách DB2. Ví du, một ứng dụng JDBC kiểu 4 chỉ yêu cầu một trình điều khiển JDBC để có thể kết nói đến một máy chủ DB2. Máy khách DB2 và trình điều khiển (driver) gồm nhiều loại:

■ IBM Data Server Client (Máy khách dữ liệu) đầy đủ nhất, bao gồm công cụ giao điện đồ họa, các trình điều khiển.

Page 21: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 1 - DB2 Express-C là gì? 21

V9.7

■ IBM Data Server Runtime Client (Máy khách dữ liệu thời gian thực): một máy khách gọn nhẹ với những tính năng cơ bản, bao gồm cả trình điều khiển.

■ DB2 Runtime Client Merge Modules for Windows (Máy khách thời gian thực DB2 kết hợp với môdun cho Windows): chủ yếu được dùng để nhúng một máy khách DB2 thời gian thực thành một phần của cài đặt cho một ứng dụng Windows.

■ IBM Data Server Driver for JDBC and SQLJ (trình điều khiển máy chủ dữ liệu IBM cho JDBC và SQLJ): cho phép các ứng dụng Java kết nối tới máy chù DB2 mà không cần phải cài đặt cả một máy khách đầy đủ.

■ IBM Data Server Driver for ODBC and CLI (trình điều khiển máy chủ dữ liệu IBM cho ODBC và CLI): cho phép ODBC và ứng dụng CLI kết nối tới một máy chủ DB2 mà không cần đến máy khách.

■ IBM Data Server Driver Package (Bộ trình điều khiển máy chủ dữ liệu IBM): Bao gồm một trình điều khiển dùng cho Windows hỗ trợ môi trường .Net cùng với ODBC, CLI và mã nguồn mở. Trình điều khiển này trước đây có tên là IBM Data Server Driver for ODBC, CLI and .Net (Trình điều khiển máy chủ dữ liệu IBM cho

ODBC, CLI và -Net)

Hình 1.2 cho ta thấy các máy khách và trình điều khiển DB2 hiện có.

Hình 1.2 - Máy khách DB2 và trình điều khiển.

ở bên trái Hình 1.2, ta có thể thấy tất cả các máy khách và trình điều khiển. Mặc dù tất cả máy khách DB2 đã bao gồm trình điều cần thiết, bắt đầu từ phần mềm máy chủ dữ liệu DB2 phiên bản 9 chúng tôi cũng cung cấp những trình điều khiển độc lập khác. Máy khách

Page 22: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

22 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

DB2 và trình điều khiển có thể sử dụng để kết nối tới một máy chủ DB2 trên Linux, UNIX hay Windows. Để kết nối tới một DB2 cho z/os® hay DB2 cho máy chủ Í5/OS®, bạn cần thông qua máy chủ DB2 Connect™ ( ở giữa hình 1.2). Chúng ta sẽ thảo luận phần mềm DB2 Connect (DB2 connect) trong Chương 2.

Chú ý:Mặc dù cuốn sách này tập trung vào máy chủ dữ liệu DB2, các máy khách dữ liệu IBM cũng có thể kết nối tới những máy chủ dữ liệu khác trong họ IBM như Informix. Vì thế tên “máy khách dữ liệu IBM” (IBM Data Server Client) thì tổng quát hơn, còn tên “máy khách DB2” (DB2 Client) thì cụ thể hơn.

1.5 Tự do phát triển ứng dụngDB2 đưa ra môi trường phát triển ứng dụng dựa trên các chuẩn và trong suốt đối với dòng sản phầm DB2. Sử dụng chuẩn SQL trong dòng sản phẩm DB2 sẽ cung cấp một tập các giao diện lập trình ứng dụng chung cho việc truy cập cơ sở dữ liệu.

Thêm vào đó, mỗi sản phẩm DB2 cung cấp các bộ tiền dịch SQL và các giao diện lập trình ứng dụng (APIs) cho phép các nhà phát triển nhúng các câu lệnh SQL động và tĩnh vào trong các chương trình ứng dụng khả chuyển. DB2 có một bộ cung cấp quản lý -NET riêng và tích hợp với công cụ Microsoft® Visual Studio.

Các ngôn ngữ và các chuẩn có thể sử dụng với DB2 bao gồm:

■ SQL, XQuery, XPath

■ C/C++ (CLI, ODBC and embedded SQL)

■ Java (JDBC and SQLJ)

- COBOL

■ PHP

■ Perl

■ Python

■ Ruby on Rails

■ .NET languages

■ OLE-DB

■ ADO

■ MS Office: Excel, Access, Word

Web services

Page 23: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 1 - DB2 Express-C là gì? 23

1.6 Phiên bản và ấn bản DB2Nếu bạn mới làm quen với DB2, bạn có thể bị mơ hồ một chút về sự khác biệt giữa một phiên bản DB2 (DB2 version) và một ấn bản DB2 (DB2 edition).

Vài năm một lần, IBM công bố một phiên bản DB2 mới. Một phiên bản mới bao gồm các tính năng mới và các cải tiến đáng kể của sản phẩm. Hiện tại, DB2 phiên bản 9 được hỗ trợ chính thức bởi IBM. Một phiên bản cũng có thể có một vài lần phát hành, các phiên bản được cập nhật vài chức năng mới nhưng không đáng kể để đảm bảo đó là một phiên bản mới. Ví dụ, 9.5 và 9.7 là các lần phát hành cho phiên bản DB2 9. Trong vài năm qua, IBM đưa ra một bản phát hành mới cho DB2 mỗi năm một đến hai lần, tuy nhiên các phiên bản mới được đưa ra cách nhau trên 3 năm. Bản phát hành mới nhất thời điểm hiện tại là 9.7, phiên bản này trở thành phiên bản chính thức (GA) vào tháng 6 năm 2009. Mỗi bản phát hành có thể có vài mức độ chỉnh sửa, thường chứa các bản vá lỗi hoặc tương ứng với các mức độ gói vá lỗi và hiếm khi đưa ra chức năng mới. Tại thời điểm này, phiên bản, phát hành và chỉnh sửa (Version - Release - Modification / V - R - M) của DB2 Express-C là9.7.0 tương ứng với một mức độ mã là 9.7 với gói vá lỗi là 0, điều này có nghĩa là nó ở mức độ GA.

Mặt khác, các ấn bản là các lựa chọn hoặc các gói tính năng trong mỗi phiên bản. Như đã đề cập, một ấn bản là một gói các tính năng khác nhau với giá thành và bản quyền xác định. DB2 phiên bản 9.7 (được biết đến với tên là DB2 9.7) có nhiều ấn bản; ví dụ: DB2 Express-C 9.7, DB2 Express 9.7, DB2 Workgroup 9.7, và DB2 Enterprise 9.7 (xem Hình 1.1).

1.7 Chuyển sang ấn bản DB2 khácKhi cơ sở dữ liệu của bạn cần được mở rộng, có thể bạn cần nâng cấp tới một ấn bản DB2 mà nó hỗ trợ cấu hình phần cứng lớn hơn. Nếu tình huống này xảy ra, thật dễ dàng để nâng cấp lên một ấn bản DB2 khác:

■ Nếu bạn nâng cấp lên một ấn bản DB2 khác trên cùng một hệ thống máy tính, hãy gỡ bỏ DB2 Express-C, và sau đó cài đặt lại ấn bản DB2 mới. Khi bạn gỡ bỏ DB2 Express-C, cơ sở dữ liệu của bạn sẽ không bị xóa (Nhưng tốt nhất là nên sao lưu lại cơ sở dữ liệu).

■ Nếu bạn nâng cấp DB2 và ấn bản mới sẽ được cài đặt trên một máy tính khác lớn hơn, sử dụng cùng một hệ điều hành giống nhau, thì cài đặt ấn bản DB2 mới trên máy tính mới và sao lưu cơ sở dữ liệu ở máy tính cũ, sau đó chép tệp ảnh sao lưu sang máy mới rồi phục hồi tệp sao lưu này với cơ sở dữ liệu của máy tính mới. Bạn cũng nên lưu thiết lập cấu hình (dbm cfg) trên máy cũ, và áp dụng cấu hình này vào máy mới. Các lệnh sao lưu và phục hồi được nói chi tiết trong Chương 11, Sao lưu và phục hồi. Dbm cfg được nói chi tiết trong Chương 5, Môi trường DB2.

■ Trong các trường hợp khác, ứng dụng khách không cần thay đổi.

Page 24: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

24 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

1.8 Bảo trì và cập nhật cho DB2 Express-CBản cài đặt của DB2 Express-C được làm mới theo định kỳ. Những cập nhật này thường đi kèm với sự xuất hiện của các bản phát hành hoặc các phiên bản mới hoặc khi có một số lượng đáng kể lỗi của sản phẩm. Trong quá khứ, những cập nhật cho DB2 Express-C thường thực hiện 1 năm một lần. Tuy nhiên, chú ý rằng DB2 Express-C là một bản miễn phí không đi kèm với các bản phát hành bảo chính thức hay các bản sửa lỗi định kỳ nào cả (đó là những bản phát hành vài lần một năm). Một khi bản cập nhật mới hoặc bản phát hành của DB2 Express-C xuất hiện thì những bản phát hành trước đó của DB2 Express-C không được giữ lại nữa.

Như thảo luận trước đó, nếu bạn cần truy cập tới những miếng vá lỗi bảo mật và những cập nhật phần mềm định kỳ hay các gói sửa lỗi, IBM cung cấp cơ chế mua bản quyền hằng năm (FTL). Một khi bạn mua bẩn quyền, bản cài đặt DB2 Express-C của bạn được cập nhật với khóa bản quyền cho FTL, cho phép bạn được hỗ trợ kỹ thuật DB2 và truy cập tới những bản cập nhật và gói vá lỗi trong suốt thời gian đăng ký còn có hiệu lực. Mua bản quyền cũng cho phép bạn nâng cấp phiên bản miễn phí, hoặc nếu bạn muốn sử dụng một phiên bản hay bản phát hành đặc biệt, và chỉ sử dụng những gói vá lỗi và bản vá bảo mật miễn là bản phát hành đó được hỗ trợ và đăng ký hàng năm của bạn được duy trì.

1.9 Phần mềm miễn phí liên quan và các thành phần DB2Tất cả các phần mềm được tải về miễn phí tại trang tải về của DB2 Express-C (www.ibm.com/db2/express/download.htmn. Bên cạnh phần mềm DB2 Express-C, còn có những phần gói phần mềm hữu ích có thể được tải về và sử dụng miễn phí:

■ Visual Studio Add-ins

■ DB2 Spatial Extender

Có những công cụ bổ sung dựa trên DB2 Express-C được tải về tại trang web IBM Alphaworks (www.alphaworks.ibm.com/datamgmt) mà bạn cảm thấy hữu ích:

■ Starter Toolkit for DB2 on Rails (www.alphaworks.ibm.com/tech/db2onrails/)

■ Web 2.0 Starter Toolkit for DB2 (www.alphaworks.ibm.com/tech/web2db2)

Nếu bạn đang tìm một máy chủ ứng dụng web tầm cỡ nhỏ miễn phí thì IBM cung cấp:

■ WebSphere® Application Server - Community Edition (WAS CE)

1.9.1 IBM Data studio

IBM Data studio là một công cụ dựa trên Eclipse cho phép bạn quản lý cơ sở dữ liệu và giúp bạn phát triển XQuery, SQL scripts, những hàm người dùng định nghĩa, và những thủ tục lưu trữ (stored procerdures). Một bộ sửa lỗi đã được tích hợp vào công cụ này. Thêm vào đó, IBM Data Studio cho phép bạn làm việc với các sơ đồ mô hình hóa dữ liệu vật lý (PDM) để hiểu về các quan hệ thực thể giữa các bảng. Nó cũng có thể giúp bạn phát triển và xuất bản dữ liệu như một dịch vụ Web sử dụng cách tiếp cận kéo thả chứ không cần lập trình. IBM Data Studio thay thế các công cụ DB2 như Control Center và Command

Page 25: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 1 - DB2 Express-C là gì? 25

Editor đã lỗi thời (chúng đi kèm với DB2 nhưng không được phát triển tiếp nữa). IBM Data Studio được thảo luận chi tiết trong Chương 5, các công cụ DB2.

1.9.2 DB2 Text Search

Tìm kiếm văn bản DB2 (DB2 Text Search) là một thành phần tích hợp tùy chọn của DB2.Nó được trang bị công nghệ IBM OmniFind™, và nó cho phép bạn tìm kiếm mạnh mẽ, nhanh chóng và chi tiết trong các tài liệu văn bản, bao gồm tất cả các tài liệu XML được lưu trữ trong DB2. Thành phần này sử dụng xử lý ngôn ngữ để tìm ra các dạng khác nhau của phần tìm kiếm trong văn bản. Ví dụ, nếu bạn tìm kiếm từ “study”, DB2 Text Search cũng tìm các dạng khác nhau của từ này như là “studies” hay “studied".

Để cài đặt thành phần DB2 Text Search, chọn custom installation của DB2 Express-C và chọn tính năng DB2 Text Search mà trong danh mục Server hỗ trợ.

Chú ý:

Chức năng tương tự cũng có trong mở rộng của DB2 được gọi là NET Search Extender (NSE). NSE đã bị lỗi thời so với DB2 Text Search.

1.9.3 WebSphere Application Server - Án bản cộng đồng (Community Edition)

IBM WebSphere Application Server - Community Edition (WASCE) là một máy chủ ứng dụng Java EE 5 tầm cỡ nhỏ được sử dụng miễn phí. Được xây dựng trên công nghệ Apache Geronimo, nó sử dụng những thay đổi mới nhất từ cộng đồng mã nguồn mở để phân phối thành bàn tích hợp, có khà năng truy cập và nèn tảng linh hoạt cho việc phát triển và triển khai các ứng dụng Java. Tùy chọn hỗ trợ kỹ thuật cho WASCE có giá trị thông qua các bản trả tiền hàng năm.

1.10 Tóm tắtẮn bản DB2 Express-C là ấn bản miễn phí tốt nhất. Nó phân phối miễn phí để phát triển, triển khai và phân phối mà không có sự giới hạn về kích thước cơ sở dữ liệu, trong khi đó vẫn có cùng chức năng lõi và công nghệ pureXML như các ấn bản khác của DB2. DB2 Express-C hỗ trợ một mảng rộng lớn bao gồm các khách hàng, các nhà phân phối, các ngôn ngữ phát triển và nó cung cấp cách nâng cấp dễ dàng sang các ấn bản DB2 khác.

Page 26: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

2Chương 2 - Các sản phẩm và tính năng liên quanChương này miêu tả các tính năng DB2 được kèm theo với bản trả phí của một phiên bản DB2 Express bản quyền theo từng năm (bản quyền thời hạn xác định hay FTL - Fixed Term License). Nó cũng miêu tả những đặc tính kèm theo các phiên bản DB2 khác, trong một vài trường hợp, dành cho phiên bản miễn phí.

Những sự khác biệt giữa phiên bản miễn phí (không được bảo đảm) DB2 Express-C và chọn lựa trả phí hàng năm cho DB2 Express được nêu ra trong bảng 2.1 bên dưới.

Tính năng Miễn phí (Không đươc bảo đảm)

Trả phí* (FTL)

Những khả năng của nhân DB2 Có Có

Các công cụ quản lý miễn phí Có CóCác công cụ phát triền miễn phí Có CóCác khả năng độc lập Có CóTính năng pureXML Có CóHỗ trợ từ cộng đồng không mất phí***

Có Có

Hỗ trợ chính thức của IBM 24x7

Không Có

Các bản sửa lỗi Không CóTính sẵn sàng cao (HADR) Không CóNhân bản dữ liệu SQL Không CóNén sao lưu Không CóSử dụng tối đa bộ xử lý 2 nhân 4 nhân (tối đa 2 đế)Sử dụng tối đa bộ nhớ 2GB 4GBKhả năng cập nhật Tạo lại hoàn toàn lúc phát

hành mới, thường một lần mỗi năm

Các bản vá bảo mật và gói sửa lỗi vài lần mỗi năm

Truy xuất để cài đặt những tệp ảnh cho những phiên bản/bản phát hành trước

Không, chỉ có sẵn tệp ảnh cho sự phát hành hiện thời và bản kiểm nghiệm

Có, thông qua IBM Passport Advantage

Giá trên mỗi máy chủ theo năm**

0 US $2,995

Page 27: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 2 - Các sản phẩm và tính năng liên quan 27

Bảng 2.1: Sự so sánh DB2 Express-C MIỄN PHÍ với Trả phí (FTL)

* Các tính năng đi kèm với Bản trả phí chỉ có sẵn khi Bản trả phí có hiệu lực.** Giá bản trả phí cho Mỹ và các nước thay đổi không cần báo trước. Giá ờ các nước khác nhau có thể khác

nhau.

*** Trợ giúp dựa vào cộng đồng không mất phí thông qua diễn đàn trực tuyến.

Bảng 2.3 liệt kê những tính năng của sản phẩm và khi nào chúng được kèm theo với các phiên bản khác nhau của DB2 9.7. Các tính năng mà bạn có thể mua riêng lẻ được được liệt kê bằng tên cho phiên bản DB2 tương ứng và được đánh dấu với nền xám nhạt.

Chức năng Bản DB2 Express trả phí

(FTL)

Bản DB2 Express

Ban DB2 Workgroup

Server Edition (WSE)

Bản DB2 Enterprise

Server Edition (ESE)

Sự nhân bản SQL đồng nhất (replication)

Có Có Co CÓ

Liên hệ thống đồng nhất (Federation)

Có Có Co CÓ

Net Search

Extender, DB2

Text Search

Có Có Co CÓ

Bộ mở rộng không gian (Spatial Extender)

Có Có Co CÓ

Nén sao lưu Có Có Co CÓCông nghệ pureXML

Có Có Co CÓ

sẵn sàng cao và phục hồi sau sự cố

Có Tính sẵn sàng cao

Co CÓ

Tivoli® System Automation

Có Co CÓ

Dịch vụ sao chép cao cấp

Không Co CÓ

Tái cấu trúc trực tuyến

Không Co CÓ

MQT Không Không Khong CÓMDC Không Không Khong CÓTruy vấn song Không Không Khong CÓ

Page 28: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

28 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

songKết nối tập trung

Không Không Không Có

Phân hoạch bảng

Không Không Không Có

Bộ quản lý Không Không Không CóNén: mức hàng, chỉ mục, XML, bảng tạm

Không Không Không Tính năng tối ưu hóa lưu trữ

Quản lý truy xuất theo nhãn (LBAC)

Không Không Không Tính năng quản lý truy xuất tiên tiến

Bộ mở rộng địa trắc (Geodetic)

Không Không Không Tính năng quản lý dữ liệu địa trắc (Geodetic)

Kiềm tra truy vấn

Không Không Không Tính năng tối ưu hóa hiệu

Quản lý khối lượng công việc DB2

Không Không Không nàng

Sự giám định hiệu năng

Không Không Không

Nhân bản Q đồng nhất

Không Không Không Tính năng sao chép đồng nhất cho ESE

Phân hoạch cơ sở dữ liệu

Không Không Không Không

Bảng 2.2 - Các bản DB2 Phiên bản 9.7: tính năng và chức năng hỗ trợ

Các tính năng sẵn có với các bản DB2 khác là:

Các tính năng bản DB2 Express trả phí:

■ Tính sẵn sàng cao

Các tính năng kèm theo với phiên bản DB2 Workgroup không mất phí:

■ High Availability and Disaster Recovery (HADR ), Tivoli System Automation, Online Re-org, Advanced Copy Services

■ DB2 có sẵn trên các nền tảng UNIX mở rộng: AIX®, Solaris, và HP-UX

Các tính năng kèm theo bản DB2 Enterprise Edition không mất phí:

■ Phân hoạch bảng (vùng)

■ Materialized Query Tables (MQT)

■ Multi-dimensional Clustering (MDC)

Page 29: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 2 - Các sản phẩm và tính năng liên quan 29

■ Truy vấn song song

■ Kết nối tập trung

■ Bộ điều khiển (Governor)

Các tính năng của bản DB2 Enterprise Edition:

■ Tính năng tối ưu hóa lưu trữ (gồm cả nén)

■ Quản lý truy xuất cao cấp (mịn và bảo mật cao cấp)

■ Tối ưu hóa hiệu năng (Quản lý khối lượng công việc, Giám định hiệu năng, Truy vấn song song)

■ Quản lý dữ liệu đo đạc (phân tích vị trí địa lý)

Các sản phẩm miễn phí liên quan đến DB2:

■ DB2 Connect

■ InfoSphere Warehouse Editions

■ InfoSphere Balanced Warehouse

■ WebSphere Federation Server

■ WebSphere Replication Server

2.1 Các tính năng kèm theo với DB2 Express bản trả phí (FTL)Phần này chỉ ra các gói sửa lỗi cho DB2, HADR và nhân bản SQL.

2.1.1 Các gói sửa lỗi

Một gói sửa lỗi DB2 là một bộ mã sửa lỗi ứng dụng lên sản phẩm DB2 đã được cài đặt, theo thứ tự để sửa các vấn đề khác nhau được báo cáo sau khi sản phẩm được phát hành. Với một bản cài đặt có bản quyền, bản sửa lỗi miễn phí để tải về và cài đặt. Chúng thường có sẵn hằng quý hoặc theo bảo hành.

Để tải bản sửa lỗi mới nhất, xem trang hỗ trợ kỹ thuật DB2 tại http://www.ibm.com/software/data/db2/support/db2 9/

2.1.2 Tính sẵn sàng cao và khôi phục sau sự cố (High Availability Disaster Recovery■ HADR)

High Availability Disaster Recovery (HADR) là một tính năng đáng tin cậy cung cấp một giải pháp sẵn sàng cao và khôi phục sau sự cố cho những hỏng hóc cục bộ cũng như toàn bộ. Một môi trường HADR thường có hai máy chủ dữ liệu, chính và phụ (có thể ờ vị trí địa lý khác nhau). Máy chủ chính là nơi cơ sở dữ liệu nguồn được lưu trữ và được truy xuất bởi ứng dụng khách. Như các giao dịch được xử lý trên cơ sở dữ liệu chính, cơ sở dữ liệu lưu các bản ghi được tự động chuyển tới máy chủ thứ hai thông qua mạng. Máy chủ thứ hai có một bản sao của cơ sở dữ liệu chính, thường được tạo bằng việc sao lưu cơ sở dữ liệu sơ cấp và lưu trữ nó trên hệ thống thứ thứ cấp. Khi bản ghi cơ sở dữ liệu chính được

Page 30: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

30 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

V9.7

ghi, chúng cũng được sao chép và đật vào cơ sở dữ liệu thứ hai. Thông qua sự sao chép liên tục các bản ghi, cơ sở dữ liệu thứ hai giữ sự sao chép được đồng bộ với cơ sở dữ liệu chính và có thể thay thế nếu cơ sở dữ liệu chính bị hỏng.

Một giải pháp HADR hỗ trợ DB2 đầy đủ đưa đến cho bạn:

■ Khả năng chuyển đổi máy chủ nhanh, với sự không đổi đổi với khách hàng và các ứng dụng khách

■ Giao dịch hoàn toàn không chia nhỏ (atomicity) để chống mất dữ liệu

■ Khà năng nâng cáp các hệ thống hoặc ứng dụng không tháy sự ngắt dịch vụ

■ Dự phòng hệ thống ở xa, cung cấp khả năng phục hồi hoàn toàn từ trung tâm dữ liệu bị tai nạn ảnh hưởng

■ Dễ dàng quản lý với các công cụ đồ họa của DB2

- Tất cả điều này với ảnh hường không đáng kể tới hiệu năng chung của hệ thống

Chú ý:

Đẻ xem một trình diễn HADR làm việc như nào, vui lòng ghé thăm:

http://www.ibm.com/software/data/db2/express/demo.html

Bắt đầu từ DB2 9.7 sẽ có khả năng cho phép máy khách đọc trên máy chủ ở chế độ chờ. Khả năng “đọc ở chế độ chờ” sẽ sẵn sàng với DB2 9.7 Bản vá 1.

2.1.3 Nhân bản dữ liệu

Tính năng này cho phép nhân bản dữ liệu giữa một máy chủ nguồn nơi dữ liệu thay đổi được giữ lại (capture), và một máy chủ đích nơi dữ liệu thay đổi được cập nhật (apply). Hình 2.1 cung cấp một tổng quan cách làm việc của nhân bản.

Page 31: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 2 - Các sản phẩm và tính năng liên quan 31

Source server Target server

$01 trcp table

DB2

•Ìtrol tab

rab

processLOG

^Captureprogram

Co ..... .... ' i l Ị r

Subscription set

SQL

A pplyprogram

7Hình 2.1 -Nhân bản SQL

Trong Hình 2.1 có hai máy chủ, một máy chủ nguồn và một máy chủ đích. Trên máy chủ nguồn, một chương trình Capture bắt lấy những thay đổi tới cơ sở dữ liệu. Trên máy chủ đích, một chương trình Apply ghi lại những thay đổi tới bản sao cơ sở dữ liệu. Nhân bản hữu dụng cho những mục đích yêu cầu sao chép dữ liệu, bao gồm khả năng thay thế, cấp dữ liệu cho kho dữ liệu và data marts2, và kiểm tra lịch sử thay đổi dữ liệu. Việc sử dụng tính năng nhân bản SQL bạn có thể nhân bản dữ liệu giữa DB2 Express và các máy chủ dữ liệu IBM khác, bao gồm những máy chủ trên các hệ thống Linux, UNIX, z/OS, và Í5/OS.

2.2 Các tính năng không có trong bản DB2 Express-C

Phần này mô tả một số tính năng có sẵn ở các phiên bản khác của DB2 nhưng không có ở phiên bản Express-C và phiên bản DB2 Express có bản quyền dài hạn tính theo năm.

2 Data marts là kho lưu trữ dữ liệu được thiết kế để tập trung vào các chức năng kinh doanh đặc trưng của đơn vị cụ thể trong tổ chức. Data marts thường là tập con dữ liệu của mốt data warehouse.

Page 32: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

32 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

2.2.1 Phân vùng cơ sờ dữ liệu

Tính năng phân vùng cơ sở dữ liệu (DPF) cung cấp sự truy vấn phân tán có khả năng xử lý trên một nhóm các máy chủ cơ sở dữ liệu. Tính năng này chỉ có ở những phiên bản InfoSphere Warehouse và cho phép dữ liệu được dàn trải trên nhiều phân vùng cơ sờ dữ liệu hay những điểm nút nằm trên các máy chủ khác nhau. DPF dựa trên kiến trúc không chia gì cả (shared-nothing), mỗi phân vùng cơ sở dữ liệu lưu trữ một tập con của toàn thể dữ liệu trên các ổ đĩa độc lập của nó.

Mỗi máy tính khi tham gia vào một cụm cơ sở dữ liệu sẽ mang lại thêm sức mạnh xử lý dữ liệu dựa trên những tài nguyẻn vốn có cúa nó như bộ vi xứ lý, bộ nhớ, ổ đĩa. Điều này cho phép phân mảnh những tác vụ lớn và những câu truy vấn phức tạp thành những tác vụ nhỏ hơn và phân tán ở khắp các nút điểm cơ sở dữ liệu khác nhau để có thể tiến hành xử lý song song. Nếu cơ sở dữ liệu chỉ nằm trên một máy chủ đơn lẻ thì sự kết hợp trên sẽ có tính đồng thời cao hơn và thời gian phản hồi nhanh hơn. DPF đặc biệt hữu dụng trong những môi trường kho dữ liệu (data warehouse) lớn và những yêu cầu công việc của Business Intelligent (BI) liên quan tới hàng trăm gigabytes thậm chí hàng trăm terabytes dữ liệu.

2.2.2 Connection Concentrator - Bộ tập trung kết nối

Bộ tập trung kết nối là tính năng cho phép hỗ trợ một số lượng lớn người dùng cùng kết nối đồng thời. Trước đây, mỗi kết nối tới cơ sờ dữ liệu đều yêu cầu một tác nhân cơ sở dữ liệu. Bộ tập trung kết nối này đưa ra một khái niệm mới về "tác nhân vật lý", cho phép một tác nhân xử lý nhiều kết nối. Chương 6, Kiến trúc DD2 sẽ mô tả chi tiết hơn về loại tác nhân này.

2.2.3 Geodetic Extender - Bộ mờ rộng không gian địa lý

Bộ mở rộng không gian địa lý DB2 là một tính năng có trả phí trên phiên bản DB2 Enterprise Server. Phần mở rộng này làm cho sự phát triển của những ứng dụng Business Intelligence hay ứng dụng cho chính phủ điện tử mà yêu cầu sự phân tích về vùng địa lý trở nên dễ dàng hơn. Bộ mở rộng không gian địa lý DB2 có thể xây dựng một quả địa cầu ảo với bất cứ kích cỡ nào. Hầu hết những thông tin về vị trí, địa điểm được thu thập sử dụng từ những hệ thống trên toàn thế giới như GPS và được thể hiện trên những tọa độ kinh tuyến/vĩ tuyến (geocode). Những dữ liệu kiểu như địa chỉ có thể được chuyển thành geocode bằng bộ mở rộng này và những ứng dụng kinh doanh sẽ hoạt động tốt hơn nếu chúng được lưu trữ dưới dạng không hệ qui chiếu này, tức là bỏ qua những phép chiếu bản đồ (từ trái đất lên một mặt phẳng): ở lớp trình bày vốn dùng để hiển thị và in bản đồ.

2.2.4 Label-based Access Control (LBAC) - Kiểm soát truy cập dựa trên nhãn

Kiểm soát truy cập dựa trên nhãn cung cấp sự bảo mật ở chi tiết hơn tại mỗi mức độ dòng hay cột. Nó sử dụng một nhãn có sự kết hợp những phiên sử dụng của người dùng và những dòng hay cột dữ liệu được cấp quyền truy cập tới dữ liệu ở bảng của bạn. Hình 2.2 minh họa cơ chế làm việc của LBAC.

Page 33: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 2 - Các sản phẩm và tính năng liên quan 33

V9.7

SELECT * FROM EMP WHERE

SALARY >= 50000

I Nc LBAC SEC=254 SEC=100 SEC=50 ID SALARY

255 60000100 5000050 7000050 4500060 30000250 56000102 82000100 5400075 33000253 4600090 83000200 78000

Hình 2.2 - Ví dụ về cơ chế làm việc của LBAC

ở hình trên, bảng EMP có một cột là SALARY và một cột ID chứa nhãn cho mỗi dòng được đưa vào. Những cột khác ở hình trên được sử dụng chỉ với mục đích minh họa. Nếu câu truy vấn ở trong hình được thực thi, thì dựa trên nhãn mà người dùng có thì anh ta sẽ thấy những dòng khác nhau. Cột với tựa là 'NO LBAC' biểu diễn những dòng sẽ được chọn nếu LBAC không được cài đặt. Và như bạn thấy là tất cả những dòng có giá trị lương lớn hơn hay bằng 50.000 đều được chọn.

Giả sử người dùng thực thi một câu truy vấn có nhãn security là 100. Bạn có thể thấy những dòng được chọn trong tình huống này ở cột 3 tính từ bên trái (cột có tên là 'SEC = 100'). ờ tình huống này, DB2 sẽ tìm những dòng mà lương lớn hơn hay bằng 50.000, sau đó nó kiểm tra nhãn security ở mỗi dòng. Ví dụ như dòng đầu tiên có giá trị cột lương là 60000 và giá trị ID nhãn là 255. Khi người dùng này có một ID nhãn là 100 vốn nhỏ hơn 255, anh ta sẽ không thể thấy dòng này, và do đó kết quả trả về từ câu truy vấn sẽ không có dòng đó.

Cơ chế bảo mật kiếm soát truy cập dựa trên nhãn phải được cài đặt bởi người quản trị về bảo mật có quyền SECADM.

2.2.5 Bộ quản lý tải công việc (Workload Manager - WLM)

Bộ quản lý tải công việc quản lý tải của cơ sở dữ liệu dựa trên người sử dụng và các ứng dụng ưu tiên kết hợp với tài nguyên sẵn có và giới hạn tải của công việc. Nó cho phép bạn điều chỉnh khối lượng công việc và truy vấn cơ sở dữ liệu để truy vấn cái quan trọng và ưu tiên truy vấn cao hơn để có thể thực thi nhanh chóng, và ngăn chặn sự độc quyền truy vấn

Page 34: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

34 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

V9.7

tài nguyên hệ thống (truy vấn xấu - “rogue"), đảm bảo rằng hệ thống của bạn chạy hiệu quả. WLM được mở rộng hơn trong DB2 9.7 và cung cấp khả năng mạnh mẽ hơn Query Patroller và công cụ DB2 Governor sẵn có với phiên bản trước của DB2.

2.2.6 Nén sâu

DB2 hỗ trợ một vài kiểu nén:

■ NULL và giá trị nén mặc định.

■ Kiểu nén này áp dụng cho các cột thường có giá trị NULL hoặc hệ thống mặc định giá trị là 0, không có bộ nhớ đĩa được sử dụng.

■ Bó nhiều chiều (Multidimentional Clustering)

■ Bó các bảng nhiều chiều mà ở đó các trang dữ liệu vật lý được bó lại theo nhiều chiều. Nó sử dụng các chỉ mục theo các khối nghĩa là nó nén chỉ mục bởi trong trường hợp này chỉ mục trỏ đến một khối chứ không trỏ đến một bản ghi.

■ Sao lưu cơ sở dữ liệu nén

■ Áp dụng với cho các hình ảnh sao lưu. Các chỉ mục và các không gian bảng LOB cũng được nén.

■ Nén hàng dữ liệu

■ Nén theo hàng làm việc bằng cách thay thế các chuỗi lặp lại trong một hàng dữ liệu với một ký hiệu nhỏ hơn. Các ánh xạ của các ký hiệu nhỏ hơn và các chuỗi được giữ trong một từ điển. Nén theo hàng có thể cải thiện hiệu xuất trên khối vào/ra, như vậy nhiều hàng được trao đổi qua lại giữa đĩa và bộ nhớ hơn vì các hàng nhở hơn. Bạn cũng có thể có lợi từ việc tiết kiệm dung lượng đĩa mà thông thường đó là khoản chi phí lớn nhất trong ngân sách IT của các công ty. Đối với khối lượng công việc của CPU, nó phải làm thêm một chút như nén hàng khi lưu, giải nén trước khi xử lý. Cũng lưu ý rằng các dữ liệu nhật ký (log data) của các dữ liệu nén cũng được nén.

Khi truy cập vào các cột XML và LOB thông thường DB2 sẽ không sử dụng bộ nhớ, mà thực hiện trực tiếp vào ra với đĩa. Nó được thực hiện như vậy bởi vì XML và LOB thường có kích thước lớn, nếu mang chúng đến bộ nhớ sẽ cần tạo ra nhiều trang để bộ nhớ. Tuy nhiên với DB2 9.5, XML lưu trong bảng (inline) cho các tài liệu nhỏ (nhỏ hơn 32k) là được phép. Nghĩa là tài liệu XML nhỏ có thề được lưu trữ cùng với các hàng của bảng cơ sở, và nó không nằm trong đối tượng lưu trữ nội tại riêng biệt được gọi là XDA. Lợi thế của phương pháp này có hai mặt thứ nhắt là các tài liệu XML có thể được truy cập thông qua bộ nhớ và thứ hai là các tài liệu XML có thể có lợi từ các việc nén hàng dữ liệu.

Với phiên bản mới DB2 9.7 nó có một số cải tiến hơn để nén:

■ Bên trong đối tượng XDA (nơi XML lưu trữ) cũng có thể nén.

■ Chỉ mục và bảng tạm thời (hệ thống và sử dụng) có thể được nén

■ LOBs có thể nằm trong bảng (inline) tương tự như XML

Page 35: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 2 - Các sản phẩm và tính năng liên quan 35

2.2.7 Tương thích với SQL

Trong khi nhiều nhà cung cấp theo các tiêu chuẩn SQL 92 và SQƯPSM, không phải tất cả các tính năng tiêu chuẩn đều được hỗ trự, và lại hỗ trợ các tính năng khác không nằm trong tiêu chuẩn này. Với tính năng tương thích DB2 9.7 SQL, hiện nay DB2 hỗ trợ hầu hết các cú pháp PLVSQL cái mà được hỗ trợ bởi các nhà cung cấp RDBMS khác và thêm vào đó là SQL PL của DB2. Hình 2.3 tóm tắt cách hỗ trợ này làm việc như thế nào.

Hình 2.3 - PL/SQL hổ trợ trong DB2

Từ hình trên bạn sẽ thấy rằng trình biên dịch PƯSQL đã được phát triển và xây dựng trong cơ chế (engine) của DB2.

SQL cũng có các tính năng tương thích hỗ trợ cho công cụ gọi là CLPPIus. CLPPIus là một công cụ dòng lệnh cho phép bạn thực thi câu lệnh SQL và các câu lệnh khác. Nó tương tự như bộ xử lý dòng lệnh DB2 (CLP). Hình 2.4 minh họa công cụ CLPPIus

jnj xj|c:\>clpplusCLP Plus: Release 1.0Copyright <c> 2008, IBM CORPORATION. All rights reserved.SQL> connect srielauGlocalhost:50000/stntconc Enter Password:Connected to DB2/NT SQL09070 <localhost:50000/stmtconc> AS srielau

_1

SQL> select sysdate from dual; 12008-08-02 19:38:34.0SQL>

z i

Page 36: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

36 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Hình 2.4- CLPPIus

Hỗ trợ hầu hết các kiểu dữ liệu PƯSQL và cũng hỗ trợ các kiểu kết hợp như BINARYJNTEGER, RAW... Các kiểu dữ liệu khác của Oracle như VARCHAR2 đều được hỗ trự mà không cần tính năng tương thích SQL, nhưng bạn cần phải kích hoạt chúng bằng cách đăng kí biến DB2_COMPATIBILITY_VERTOR. Có rất nhiều giải thích về kiểu dữ liệu Oracle và biến đăng kí trong cuốn sách này.

Tính tương thích của SQL mô tả ở trên là sẵn có trong các ấn bản DB2 9.7 Workgroup và ấn bản Enterprise. Dự kiến sẽ có được trong ấn bản DB2 Express DB2 (bao gồm tùy chọn đăng ki hàng năm hoặc là FTL) trong tương lai gần.

Trong khi hỗ trợ PƯSQL và tính năng CLPPIus là không có sẵn trong DB2 Express 9.7, các tính năng khác sẽ làm cho việc chuyển đổi dễ dàng hơn các ứng dụng Oracle sang DB2. Nó bao gồm các kiểu dữ liệu mới, các hàm vô hướng mới, hỗ trợ mô đun và ngữ nghĩa cam kết hiện tại (currently committed semantics) cho mức cô lập con trỏ (CS). Những tính năng này được thảo luận sau trong cuốn sách này.

2.3 Những sản phẩm có trả phí liên quan đến DB2Trong phần này cung cấp một cách ngắn gọn về sản phẩm trả phí và những lựa chọn để có thể được sử dụng với DB2.

2.3.1 DB2 Connect

DB2 Connect là phần mềm có phí cho phép một máy khách DB2 chạy trên hệ điều hành Linux, UNIX hoặc Windows kết nối tới một DB2 của z/OS hoặc Í5/OS trên máy chủ như hình 2.5. DB2 Connect không cần thiết khi việc kết nối theo hướng ngược lại; khi bạn kết nối từ DB2 của z/OS hoặc của ¡5/OS tới máy chủ DB2 trên hệ điều hành Linux, UNIX, Windows. DB2 Connect có hai ấn bản chính phụ thuộc vào nhu cầu kết nối của bạn: một phiên bản cho cá nhân (DB2 Connect Personal), và một phiên bản dành cho doanh nghiệp (DB2 Connect Enterprise).

Page 37: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 2 - Các sản phẩm và tính năng liên quan 37

DB2 forzjOS

(System z)

DB2 Connect

(Linux, UNIX. Windows)

DB2 client

DB2 for is/OS

(System i,AS/400)

Hình 2.5 - DB2 Connect

2.3.2 infoSphere Federation Server

Trước đây được biết đến là WebSphere Information Integrator (đối với hỗ trọ tập hợp dữ liệu), WebSphere Federation Server cho phép tập hợp các cơ sở dữ liệu, nghĩa là bạn có thể chạy truy vấn cơ sở dữ liệu để làm việc với các đối tượng từ các hệ thống cơ sở dữ liệu quan hệ khác nhau. Ví dụ, nếu mua WebSphere Federation Server, bạn có thể truy vấn giống như Liệt kê 2.1 dưới đây.SELECT *FROM Oracle.Tablel A

DB2.Table2 B SQLServer.Table3 c

WHEREA.coll < 100

and B.col5 = 1000 and C.col2 = 'Test'

Liệt kê 2.1 - Truy vấn

Page 38: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

38 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Hình 2.6 minh họa WebSphere Federation Server được sử dụng.

DB2 Server+

InfoSphere Federation Server

Query processor- Parser- Semantic processor- Optimizer

Execution engine- Sort engine- Residual predicate

Catalog- Data manager- Locking- Logging- Buffer manager

Client access

Transaction Coordinator

Query gatewayInterface to sources

(CT H à

OracleSybase

Hình 2.6 - WebSphere Federation Server

Đối với hệ quản trị cơ sở dữ liệu quan hệ nó là một phần của họ cơ sở dữ liệu của IBM, hỗ trợ tính năng tập hợp dữ liệu được xày dựng trong DB2 Express- c. Điều này có nghĩa là sản phẩm WebSphere Federation Server không được yêu cầu khi, ví dụ như, bạn muốn chạy một truy vấn giữa hai cơ sở dữ liệu DB2 khác nhau, hoặc giữa một cơ sở dữ liệu DB2 và cơ sở dữ liệu quan hệ Informix (Informix là một thành phần của họ IBM).

2.3.3 InfoSphere Replication Server

Trước đây được biết đến với tên gọi WebSphere Information Integrator (để hỗ trợ nhân bản), InfoSphere Replication Server cho phép đối với các nhân bản SQL của cơ sở dữ liệu khi không có máy chủ dữ liệu IBM can thiệp vào. Nó cũng bao gồm tính năng Q- Replication đối với nhân bản dữ liệu có sử dụng hàng thông điệp (message queues).

2.3.4 Optim Development studio (ODS)

Trước đây được biết đến với tên gọi Data studio Developer, ODS là một công cụ dựa trên Eclipse để có thể dễ dàng tích hợp với Data Studio, và chia sẻ dữ liệu giống như Eclipse. ODS có thể giúp bạn tạo những cơ sở dữ liệu phát triển bằng cách chép và dán từ hệ quản trị cơ sở dữ liệu đã có sẵn trên Oracle hoặc DB2.

Page 39: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 2 - Các sản phẩm và tính năng liên quan 39

2.3.5 Optim Database Adm inistrator (ODA)

Trước đây được biết đến với tên Data Studio Administrator, ODA là một công cụ dựa trên Eclipse để có thể dễ dàng tích hợp với Data Studio, và chia sẻ dữ liệu giống như Eclipse. ODA cung cấp khả năng quản lý thay đổi và khả năng tự động thay đổi giản đồ dễ dàng hơn.

2.4 Các cung cấp DB2 trên Cloud của AmazonĐiều đáng chú ý được nói đến là IBM đã hợp tác với dịch vụ Web của Amazon (Amazon Web Services - AWS) để chạy DB2 trên cloud của Amazon (Elastic Compute Cloud - EC2). AWS cung cấp một bộ các dịch vụ tích hợp để hình thành nền tảng điện toán trong đám mây, và xuất hiện dưới hình thức trả phí theo mức dùng (pay-as-you-go). AWS cho phép bạn thuê năng lực tính toán (những máy chủ và lưu trữ ảo), và bạn chỉ trả cho những tính năng mà bạn sử dụng. Ví dụ, giả sử bạn cần một máy chủ ảo EC2 cho các hoạt động cơ sở dữ liệu bình thường, và trong thời gian cao điểm hoặc cho nhu cầu mùa vụ bạn cần thêm máy chủ cơ sở dữ liệu trong vài giờ. Trong trường hợp này bạn sẽ chỉ trả tiền máy chủ cơ sở dữ liệu cho AWS trong vài giờ mà bạn chạy nó.

IBM cung cấp ba lựa chọn để triển khai DB2 trên nền Cloud của Amazon:

■ DB2 Express-C AM Is để đánh giá và phát triển.

■ Trả tiền là dùng ngay AMIs sẵn sàng với DB2 Express và DB2 Workgroup

■ Khả năng tạo AMIs của riêng bạn bằng cách sử dụng giấy phép sử dụng DB2

Để biết thêm thông tin và làm thế nào để bắt đầu với DB2 trên Amazon EC2, xin mời truy cập website: www.ibm.com/db2/cloud

2.5 Tóm tắtDB2 Express-C được cung cấp miễn phí, dễ sử dụng, và là nền tảng vững chắc cho việc phát triển những ứng dụng cơ sở dữ liệu, triển khai vào sản xuất, và thậm chí nhúng và phân phối ứng dụng với các giải pháp của bên thứ ba. Đó là ý tưởng hay nếu bạn thấy thoải mái với sự hỗ trợ dựa vào cộng đồng và không có nhu cầu cho các bản sửa lỗi gần nhất hoặc các tính năng tiên tiến. Tuy nhiên, nếu bạn cần có hỗ trợ kỹ thuật chính thức từ IBM, cập nhật phần mềm thường xuyên, hoặc sử dụng nguồn lực bổ sung, và tính năng hỗ trợ bó (cluster) máy chủ, IBM cung cấp một giấy phép sử dụng DB2 Express với khoản chi phí thấp hàng năm. Nếu bạn cần thêm nhiều tính năng tiên tiến cho những tác vụ quan trọng và các ứng dụng cơ sở dữ liệu lớn, IBM cung cấp các ấn bản DB2 mở rộng và các sản phẩm có liên quan. Điều này cho phép bạn bắt đầu nhỏ từ DB2 Express-C, và dễ dàng mở rộng lên quy mô cao như doanh nghiệp yêu cầu.

Page 40: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

3Chương 3 - Cài đặt DB2Việc cài đặt DB2 hoàn toàn không phức tạp, và trong quá trình cài đặt, đơn giản là lựa chọn các tùy chọn mặc định sẽ có một máy chủ DB2 bật lên và hoạt động trong thời gian ngắn.

3.1 Các điều kiện cần trước khi cài đặtDB2 Express-C có thể sử dụng trên các hệ điều hành như: Linux, Sun Solaris (x64), và Microsoft Windows® 2003, XP và Vista. Nó cũng có giá trị như là bản thử nghiệm trên MAC OS X. Kiến trúc bộ xử lý yêu cầu là 32 bít, 64 bit và PorwerPC (Linux). Nếu bạn cần chạy DB2 trên một nền khác (như UNIX), bạn nên mua một trong những ấn bản máy chủ dữ liệu khác đã được giới thiệu ở phần trước trong quyển sách này. Các yêu cầu về hệ điều hành cho tất cả các ấn bản DB2 cũng được mô tả trong tài liệu này: http://www.ibm.com/software/data/db2/udb/svsregs.html

Về giới hạn tài nguyên phần cứng, DB2 Express-C có thể được cài đặt trên hệ thống với bất kỳ số lượng nhân CPU và bộ nhớ nào, tuy nhiên, nó sẽ được tối ưu hóa đối với hệ thống lên tới 2 CPU vật lý và 2GB của bộ nhớ đối với các phiên bản miễn phí, đối với các phiên bản trả phí của DB2 Express yêu cầu hệ thống lên tới 4 CPU và 4GB RAM. Hệ thống có thể là hệ thống vật lý, hoặc hệ thống ảo được tạo ra bởi sự phân chia hoặc do việc chạy các phần mềm máy ảo. Dĩ nhiên bạn có thể chạy nó trên các hệ thống nhỏ hơn nếu bạn muốn, ví dụ như hệ thống 1 CPU với 1GB RAM.

Để có những thông tin mới nhất các yêu cầu của DB2 Express-C về phần cứng, xem trên trên trang DB2 Express-C tại http://www.ibm.com/software/data/db2/exDress/about.html

3.2 Quyền cài đặt hệ điều hành.Để cài đặt DB2 Express-C trên Linux hoặc Windows bạn phải là người sử dụng hệ điều hành có đủ quyền.

Với Linux, bạn phải là root (superuser) để cài đặt DB2 Express-C. Bạn cũng có thể cài đặt DB2 Express-C khi không phải là người dùng root, tuy nhiên, bạn sẽ bị hạn chế khi làm việc với sản phẩm. Ví dụ, khi cài đặt bên dưới quyền root, bạn không thể tạo ra nhiều hơn các thể hiện mặc định đã được tạo ra trong lúc cài đặt.

Với Windows, tài khoản người sử dụng phải thuộc về nhóm Administrator trên máy nơi mà bạn sẽ thực hiện cài đặt. Một lựa chọn khác, trên Windows 2008, Windows Vista, hoặc

Page 41: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 3 - Cài đặt DB2 41

cao hơn, người dùng không phải là quản trị cũng có thể thực hiện cài đặt, nhưng sẽ được nhắc nhỡ xác định sự ủy quyền quản trị bởi DB2 Setup Wizard.

ID người dùng cài đặt phải nằm trong nhóm Domain Administrator trên miền nếu sự cài đặt yêu cầu một tài khoản miền được tạo hoặc được xác minh.

Bạn cũng có thể sử dụng tài khoản Local System sẵn có (built-in) để tiến hành cài đặt, dù nó không được đề nghị. Tài khoản Local System không yêu cầu mật khẩu, nhưng nó không thể truy cập tài nguyên trên mạng.

Tài khoản người dùng cũng phải có quyền “Truy cập máy tính này qua mạng ’.

Chú ý:Xem Video trình diễn về việc cài đặt DB2 Express-C tại liên kết này. Mặc dù sự trình diễn này giải thích DB2 9.5, nó không khác quá trình cài đặt DB2 9.7, một điều khác đó là màu sắc của giao diện cài đặt:http://www.channeldb2.com/video/video/show?id=807741 :Video:4442.

3.3 Cài đặt theo thủ thuật (hướng dẫn từng bước)Mặc dù có nhiều cách cài đặt DB2 Express-C, cách dễ nhất đó là sử dụng cách cài đặt theo hướng dẫn từng bước dựa trên giao diện đồ họa DB2. Sau khi tải về và giải nén DB2 Express-C, bạn có thể tiến hành cài đặt như sau:

■ Windows: thực thi tệp setup. exe trong thư mục EXP/image/

■ Linux: thực thi lệnh db2setup trong thư mục exp/disk1/

DB2 Express-C dễ dàng cài đặt theo các hước dẫn cài đặt DB2 từng bước. Thông thường, thiết lập mặc định là đầy đủ, tất cả các việc bạn cần làm là chấp nhận điều khoản sử dụng. Nhấn vào nút Next cho đến khi nút “Finish” hoạt động, và sau đó nhấn vào nút Finish. Sau vài phút, quá trình cài đặt kết thúc, DB2 sẽ được khời động và thực thi!

Hình 3.1 thể hiện cửa sổ cài đặt DB2 (DB2 Setup Launchpad). Nhấn vào Install a Product và sau đó chọn Install New đề cài đặt một bản sao chép mới của DB2 Express-C lên hệ thống. Nếu bạn đã có cài đặt DB2 Express-C phiên bản trước hoặc ấn bản DB2 khác, bạn có thể thấy nút với tên là "Work with Existing". Trong DB2, bạn được cho phép cài đặt sản phẩm nhiều lần, và các cài đặt đó có thể là các phiên bản hoặc các cấp phát hành khác.

Page 42: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

42 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

V DB2 S etup Launchpad

DB2 Setup Launchpad

Welcome

Release Information

Installation Requirements

Upgrade Information

► Install a Product

E x it

Install a Product

Click Install New to launch the OB2 Setup wizard for the desired pnduct and to install the product to a new location. If you want to update, upgrade, or add features to an existing product d ick Work with Existing You can also launch other product installations by clicking Install for the corresponding product

DB2 Express-C Version 9.7

DB2 Express-C contains a full-function DB2 data seiver, which provides an entry-level product for the Small and Medium Business (SMB) market It comes with simplified packaging, and is easy to transparently install from w itiin an application. It is available on Linux and Windows platforms, is ftlly compatible with, scalable to. and has all the autonomic manageability features of Its higher priced family of offerings

DB2 Express-C comes with pureXML(TM) data storage capabilities and delivers flexible access to XML data using XQuery, XPath and SQL. It is optimized for powering Web Services. Web 2.0, and SOA based solutions. If you require IBM support and maintenance subscription for this no-charge data server, you can purchase DB2 Express-C with renewable 12 Months Subscnpfion. For more information. seehttpV/wv/w.ibm com/db2/express

Install New

Database Management and Application Development Tools

A suite of GUI tools for managing DB2 for Linux, UNIX, and Windows data and Jata-centric applications is available to Install, individually these tools provide powerful capabilities that target spedfic data management roles and tasks; more importantly, the components interoperate seamlessly, enabling cross- role collaboration, produdivity. and effectiveness.

Hình 3.1 - Bắt đầu cài đặt DB2 (DB2 Setup Laundpad)

Sau khi chấp nhận điều khoản sử dụng, thông thường bạn nên chọn kiểu cài đặt “Typical" (mặc định) như hình 3.2. Nếu bạn muốn bao gồm thành phần DB2 Text Search, chọn Custom".

Page 43: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 3 - Cài đặt DB2 43

S e le c t th e in s ta lla tio n ty p e

(• Typical: Approximately 700 - 900 MB

C Compact: Approximately 600 - 800 MB

Custom: Approximately 600 - 1300 MB

Information about the installation type

The typical setup indudes basic database server finction, database administration tools, and most product features and functionality.

To add features for application development and other optional functionality later in the setup process, dick Custom.

Hình 3.2 - Các kiểu cài đặt

Trong bước tiếp theo, như hình 3.3, bạn có thể chọn cài đặt sản phẩm, tạo một tệp phản hồi, hoặc cả hai. Tệp phản hồi được thảo luận trong phần 3.4, Silent Install. Lựa chọn mặc định (“Install IBM DB2 Express Edition on this computer and save my settings in a response file") là mặc định.

View Features...

InstaliShield

< Back j j j j Z J j l Cancel | Help

Page 44: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

44 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

1$ DB2 Setup DB2 Express-C - DB2COPY1 - | n | x | |

S e le c t th e in s ta lla t io n , re s p o n s e file c re a t io n , o r b o th

The DB2 Setup Wizard can instal DB2 Express-C on this computer, create a response file that you can use to install this product on a computer later, or both.

Install DB2 Express-C on this computer

f~ Save my retaliation settings n a response file

No software wfl be installed on this computer.

(• Install DB2 Express-C on this computer and save my settings in a response file

Response file name |C:Pocuments and SettingsVidministratorV^y DocumentsV3ROD_EXPC. _ 1

TnctolKhifalH _________________________________■ ■ ■

<Back Next > 1 Cancel Hdp

Hình 3.3 - Lựa chọn cài đặt

Lựa chọn giá trị mặc định trong vài màn hình tiếp theo cho đến khi bạn gặp màn hình giống như trong hình 3.4, bạn cần gõ vào ID người dùng, ID này sẽ được sử dụng để càiđặt và thực thi các thể hiện và các dịch vụ khác.

Nếu bạn sử dụng một ID người dùng đang tồn tại, người dùng này phải là một phần củanhóm Local Adminstrator trong Windows.

Nếu ID của người dùng bạn nhập vào không tồn tại, nó sẽ được tạo ra như là một Local Administrator. Bạn có thể để trống trường Domain nếu người dùng bạn nhập vào không thuộc miền nào cả.

Tên ID người dùng mặc định trong Windows là db2admin. Trong Linux, ID người dùng mặc định được tạo là d b 2 in s t l .

Page 45: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 3 - Cài đặt DB2 45

DB2 Setup - DB2 Express-C - DB2C0PY1

S e t u s e r in fo rm a tio n fo r th e DB2 A d m in is tra tio n S e rv e r

The DB2 Administration Server (DAS) runs on your computer to provide support required by the DB2 toots. Specify the required user information for the DAS.

It is highly recommended that you use a local user or domain user account Instead of the LocalSysten account. Further details are available by diddng Help.

(• local usw or Qomain Itser account

User Information

Domain 1 None - use local user account d

User name |db2admm

Password 1Confirm password 1

c LocalSystem account

(7 Use the same account for the remaining DB2 services

Installshteld

<Back Next > Cancel Help V :|

Hình 3.4 - Xác định thông tin người dùng cho máy chủ DB2 Administration

Cuối cùng, trong hình 3.5, cài đặt theo hướng dẫn từng bước sẽ hiển thị một danh sách tổng kết những gì sẽ được cài đặt và những giá trị cấu hình khác được cung cấp ở các bước trước. Khi bạn nhấn vào nút “Finish”, quá trình cài đặt bắt đầu, và các tệp chương trình sẽ được đặt vào hệ thống của bạn.

Page 46: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

46 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

ịữ DB2 Setup - DB2 Express-C - DB2COPY1

S t a r t co p y in g files a n d c r e a te res p o n s e file

The DB2 Setup wizard has enough information to create the response file and start copying the program files. I f you want to review or change any settings, didc Bade. I f you are satisfied with the settings, type the response file name and dick Fimsh to begin copying fies.

Current settings:

Product to install: DB2 Express-C - DB2COPY1Installation type: Typical

DB2 copy name: DB2COPY1Set as default DB2 copy: YesSet as default IBM database client interface copy: Yes

Selected features:DB2 Update Service Base application development tools Base client support Configuration Assistant Control Center

Hình 3.5 - Tổng kết những phần sẽ được cài đặt

Khi quá trình cài đặt hoàn thành, một cửa sổ giống như hình 3.6 xuất hiện, cho bạn biết kết quả của quá trình cài đặt từng bước, như bất kỳ các bước tiếp theo được yêu cầu để hoàn thành quá trình cài đặt.

Page 47: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 3 - Cài đặt DB2 47

5 B S S S e tu p is c o m p le te

DB2 Setup wizard has finished copying files to your computer and has completed all the required system configuration tasks. Shut down all software programs running on the system now. The programs can then be restarted and D82 will be ready for use. The install log is located m CPoaenents and Settings\Admmistrator\My Documents \PB2LOGPB2-0<PC-Thu May 28 00_07_26 2009.log. Consult the log file to ensure that all tasks completed successfully.

If you have not already done so, it is recommended that you complete the post-nstall steps after installation.

Required steps:

You have enabled DB2 extended Windows security.You must add DB2 users that need to run DB2 local applications or tools to either the DB2 administrators group or DB2 users group.

You can connect to the DB2 instance "DB2“ using the Dort number "50000” . Record it for future reference. Zj

CSdc Finish to exit the DB2 Setup wizard.

Finish

$ DB2 Setup - DB2 Express-C - DB2COPY1

Hình 3.6 - Quá trình cài đặt hoàn thành

Sau khi bạn nhấn vào nút “Finish” trong cửa sổ kết quả cài đặt ờ hình 3.6, ứng dụng DB2 First Steps (bước đầu tiên) được bắt đầu, như hình 3.7.

ứng dụng nhỏ thể hiện một vài tùy chọn khác để bắt đầu với DB2, như là tạo ra cở sở dữ liệu mẫu mặc định (tên là SAMPLE) hoặc để tạo ra một cơ sở dữ liệu mới cho riêng bạn. Nếu bạn không muốn khám phá DB2 thông qua First Steps lúc này, bạn có thề đóng cửa sổ, và gọi nó sau này.

Để bắt đầu DB2 First Steps trên Windows bằng tay, chọn Start -> Program -> IBM DB2 -> DB2COPY1 (mặc định) -> Set-up Tools -> First Steps hoặc chạy lệnh d b 2 f s từ dấu nhắc lệnh.

Trên Linux, thực thi lệnh d b 2 fs từ cửa sổ màn hình đầu cuối (terminal).

Page 48: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

48 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

■ ÜB2 First Steps;iÌẾ ^ X J

DB2 Database for Linux, UNIX, and Windows, Version 9.7— K —

U M . 1

First Steps for DB2 Database for Linux, UNIX, and Windows

Welcome to First Steps for D02for Linux, UNIX, and Windows. First Steps directs you to the tasks that you should perform after you install the DB2 product.

Check for news about Product Updates_______________I Start Check for Product Updates I

Select the option which best describes your situation to be directed to information most relevant to you:

• You are new to DB2. and you want to learn more about the product0 Create the SAMPLE database

I Create SAMPLE database I

0 Create your own database

I Create new database I

o Access produd information

0 New to DB2 data server products

• You are upgrading from a previous version of DB2, and you want to learn about the enhancements in the new release and how you can take advantage of them.

0 Access product information

0 Upgrading from a previous version

Hình 3.7 - First Steps

3.4 Kiểm tra lại cài đặtSau khi cài đặt DB2, bạn có thể thực hiện ba câu lệnh từ Command Windows DB2 (trên Windows) hoặc từ terminal (trên Linux) để xác nhận là quá trình cài đặt của bạn đã thực hiện đầy đủ:

■ db2level: đây là câu lệnh để hiển thị thông tin về sản phẩm DB2 đã được càiđặt, cấp độ đóng gói, và các chi tiết khác.

■ db2licm: đây là câu lệnh để liệt kê tất cả các thông tin bản quyền đặc trưng chosản phẩm DB2 của bạn đã được cài đặt.

■ db2val: đây là một câu lệnh mới có giá trị trong DB2 9.7. Nó xác nhận tính hợp lệcho sự cài đặt bằng cách xác nhận chức năng chính của bản sao DB2. Nó đảm bảo cho các thể hiện của bạn là chắc chắn, và tạo ra cơ sờ dữ liệu và kết nối cơ sở dữ liệu.

Page 49: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 3 - Cài đặt DB2 49

Hình 3.8 bên dưới cung cấp những ví dụ về kết quả sử dụng 3 lệnh trên.

CÃ DB2 CLP - DB2C0PY1

C :NProgram FilesM BMNSQLLI B\BI K>db2le ve 1DB21085I Instance "DB2” uses "32" kit* and DB2 code release "SQL09070" with level identifier "08010107".Informational tokens are "DB2 v9.7.0.441", "s090521", "NT3297", and Fix Pack ” 0 " .

Product is installed at "C:\PROGRfl~l\IBM\SQLLIB" with DB2 Copy Name "DB2COPV1"

C:\Program FilesNIBMNSQLLIBNBIK>dh21icm_-1 Product name: cxpress-C”License type: "Unwarranted"Expiry date: "Permanent"Product identifier: ”db2expc"Uersion information: "9.7"Max number of CPUs: "2"Max amount of memory <GB>: "2"

C :NProgram FilesNIBMNSQLLIBNBIh>db2val

DBI1379I The db2val command is running. This can take several minutes.DBI1333I Installation file validation for the DB2 copy DB2C0PV1

was successful.DBI1339I The instance validation for the instance DB2 was

successf ul.DBI1343I The db2val command completed successfully. For details, see

the log file C:\D0CUME~l\ADMINI~l\MVD0CU~l\DB2L0G\db2val-Fri May 29 04_14 0 2 0 0 9 . l o g .C : NProgram FilesM BMNSQLLI BNBI N>

Idl U .

Hình 3.8 - các câu lệnh db2level, db2licm, db2val để kiểm tra lại cài đặt.

ở hình trên, kết quả xuất ra màn hình từ lệnh db2level cho biết bạn đang chạy DB2 9.7 (DB2 v9.7.0.441) tại Fix Pack 0, có nghĩa là mã DB2 là bản gốc (GA) không có thêm vào bản vá nào. Lệnh db 2 licm - 1 cho biết bạn đã cài đặt phiên bản DB2 Express-C, là phiên bản không cần chứng nhận bản quyền, nó được cho phép sử dụng trên 2 core CPU, và trên 2Gb RAM. Kết quả xuất ra từ lệnh db2val thì đã thề hiện rõ ràng.

Chú ý:

Nếu bạn muốn kiểm tra tính chắc chắn của cơ sở dữ liệu tại bất kỳ lúc nào, sử dụng tiện ích INSPECT

3.5 Cài đặt hàng loạt (Silent Install)Trong nhiều trường hợp bạn Cần phải cài đặt máy khách DB2 trên nhiều máy tính khác nhau; hoặc máy chủ DB2 là một phần trong ứng dụng bạn xây dựng và bạn muốn quá trình cài đặt DB2 là một phần của quá trình cài đặt chung toàn bộ ứng dụng đó. Khi đó, cài đặt hàng loạt là phương pháp phù hợp cho bạn.

Page 50: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

50 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

DB2 hỗ trợ cài đặt hàng loạt bằng tệp biên bản (response file) chứa các thông tin cần thiết cho quá trình cài đặt. Dưới đây là một trích đoạn của một tệp biên bản mẫu.

PROD=UDB_EXPRESS_EDITIONLIC_AGREEMENT=ACCEPTFILE=C:NProgram Files\IBM\SQLLIB\INSTALL_TYPE=TYPICALLANG=ENJLNSTAMCE=DB2

DB2.NAME=DB2DEFAULT_INSTANCE=DB2DB2.SVCENAME=db2c_DB2DB2.DB2COMM=TCPIP

Liệt kê 3.1 - tệp biên bản mẫu

Có một vài phương pháp tạo ra tệp biên bản:

■ Cài đặt DB2 Express-C một lần trên máy tính, sử dụng phương pháp cài đặt theo hướng dẫn từng bước. Một trong các tùy chọn đầu tiên khi bạn cài đặt theo phương pháp này (như hình 3.3) cho phép bạn lựa chọn đánh dấu lưu lại các thông số bạn nhập vào trong quá trình cài đặt vào một tệp biên bản. Khi kết thúc quá trình cài đặt, tệp biên bản sẽ được lưu vào thư mục và tên tệp do bạn đặt. Vì tệp này là tệp văn bản nên sau đó bạn có thể sửa lại nó tùy ý.

■ Chỉnh sửa tệp biên bản mẫu được cung cấp bời tệp ảnh DB2 Express-C. Tệp mẫu này (có phần mở rộng là .rsp) được đặt trong thư mục d b 2 /p la tfo rm /s a m p le s /

■ Trong Windows, bạn có thề sử dụng lệnh sau để tạo tệp biên bản:

db2rspgn -d <output directory>

Cuối cùng, để cài đặt DB2 hàng loạt sử dụng tệp biên bản, trong Windows sử dụng lệnh:

setup -u <response filename>Trên Linux sử dụng lệnh:

db23etup —r -«response filename»

3.6 Tóm tắtChương này đã giới thiệu các chi tiết của quá trình cài đặt DB2-Express-C. Phiên bản DB2 này có giá trị trên Linux, Solaris và Windows, và có thể chạy trên kiến trúc PC 32-bit, 64-bit và PowerPC. Sau khi thảo luận về yêu cầu quyền người dùng cần thiết để cài đặt DB2 trên một hệ thống, chúng ta tiến đến thực hiện việc cài đặt sử dụng DB2 Installation Wizard GUI. Thảo luận về việc kích hoạt báo cáo quá trình cài đặt theo sau, bao gồm chạy DB2

Page 51: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 3 - Cài đặt DB2 51

First Step và kiểm tra lại cài đặt. Và cuối cùng, chúng ta biết được bằng cách nào tạo và thực thi cài đặt hàng loạt DB2 bằng cách sử dụng tệp biên bản.

3.7 Bài tập nhanhTrong bài tập này, bạn sẽ cài đặt DB2 Express-C và tạo ra cơ sở dữ liệu mẫu

Muc tiêu

Trước khi bạn có thể khám phá tất cả các tính năng và các công cụ với DB2 Express-C, đầu tiên bạn phải cài đặt nó vào hệ thống. Trong bài tập này, bạn sẽ thực hiện cài đặt cơ bản DB2 Express-C trên Windows. Tương tự, cài đặt theo hướng dẫn cũng có giá trị trên Linux, vì vậy các bước thực hiện đều rất giống nhau.

Thủ tue

1. Lấy về ảnh của DB2 Express-C: tải về ảnh DB2 Express-C thích hợp từ trang web DB2 Express-C (www.ibm.com/db2/express). Giải nén tệp vào thư mục bất kỳ.

2. Định vị các tệp: Chỉ đến thư mục (hoặc ổ đĩa) chứa tệp cài đặt DB2 đã được giải nén.

3. Chạy DB2 Setup Launchpad: khởi chạy DB2 Setup Launchpad bằng cách nhấp đôi tệp setup. exe. Trên Linux, chạy lệnh db2setup ở quyền root. Từ Laundpad, nhấn vào tùy chọn Install Product ở phía bên trái cửa sổ.

4. Chạy cài đặt DB2 theo hướng dẫn từng bước: Cài đặt DB2 từng bước tiến hành kiểm tra tất cả các yêu cầu hệ thống được tìm thấy nếu có bất kỳ một cài đặt DB2 đang tồn tại. Nhấn vào Install Newỡể bắt đầu từng bước, sau đó nhấn Next.

5. Xem lại các điều khoản ràng buộc: Đọc và chấp nhận các điều khoản trong giấy phép sử dụng (chọn “I A c c e p t và nhấn vào nút Next.

6. Lựa chọn kiểu cài đặt: trong bài tập này, lựa chọn tùy chọn Typical (đây là mặc định). Tùy chọn Compact thực thi các cài đặt cơ bản, trong khi tùy chọn Custom cho phép bạn tùy chỉnh các tính năng mà bạn muốn cài đặt. Nhấn nút Nextỡề tiếp tục.

7. Chọn cài đặt, tạo tệp biên bản, hoặc cả hai: Với mặc định vì vậy DB2 được cài đặt, và cũng tạo ra tệp biên bản. Nhấn nút Nextỡể tiếp tục.

8. Chọn thư mục cài đặt: Màn hình cho phép bạn tùy chỉnh ổ đĩa và thư mục nơi mà mã DB2 được cài đặt vào hệ thống của bạn. Đảm bảo dung lượng đủ để cài đặt DB2. Sử dụng thiếp lập ổ đĩa và thư mục mặc định cho ví dụ này (xem bên dưới):

Drive: C:

Directory: C:\Program Files\IBM\SQLLIB

Nhấn vào nút Nextỡể tiếp tục

Page 52: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

52 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

9. Nhập vào thông tin người dùng: Một khi DB2 Express-C đã được cài đặt, những tiến trình DB2 sẽ được chạy dưới tư cách là dịch vụ hệ thống. Những dịch vụ này yêu cầu phải được đăng nhập bằng tài khoản hệ thống để có thể thực hiện. Trong môi trường Windows bạn sử dụng tài khoản mặc định được đề nghị là db2admin. Nếu tài khoản này chưa tồn tại, DB2 sẽ tạo ra cho bạn. Bạn cũng có thể sử dụng tài khoản sẵn có trong hệ thống, nhưng tài khoản này phải là tài khoản có quyền quản trị. Chúng tôi đề nghị sử dụng mặc định. Đảm bảo việc xác định mật khẩu cho tài khoản. Trên Linux sử dụng ID người dùng mặc định db2instl cho thể hiện riêng, db2fencl cho người dùng “fenced”, và dasusrl cho người dùng quản trị máy chủ DB2. Nhấn Nextâề tiếp tục.

10. Cấu hình thể hiện DB2: Một thể hiện DB2 có thể được xem như là kho chứa cơ sở dữ liệu. Một thể hiện phải tồn tại trước khi bất kỳ một cơ sở dữ liệu nào được tạo ra ở trong nó. Trong quá trình cài đặt trên Windows, một thể hiện được gọi là DB2 được tự động tạo ra. Trong môi trường Linux, thể hiện mặc định là d b 2 in s t l . Chúng ta sẽ giải thích chi tiết các thể hiện này ở các chương sau của quyển sách này.

Mặc định, thể hiện DB2 được cấu hình để lắng nghe kết nối TCP/IP trên cổng 50000. Cả hai giao thức và cồng có thể được thay đổi bằng cách nhấn vào nút Configure. Chúng ta sử dụng thiết lập mặc định trong ví dụ này. Nhấn vào nút Next để tiếp tục.

11. Bắt đầu cài đặt: Xem lại tổng kết quá trình cài đặt được lựa chọn ở các tùy chỉnh trước. Nhấn nút Finish để bắt đầu sao chép các tệp đến nơi cài đặt. DB2 cũng sẽ thực thi một vài tiến tình khởi tạo cấu hình.

12. First Steps: Sau khi quá trình cài đặt được hoàn thành, một tiện ích khởi chạy khác, được gọi là First Steps, được hiển thị. First Steps cũng có thể được bắt đầu sau với lệnh d b 2 f s.

13. Cơ sở dữ liệu SAMPLE là một cơ sờ dữ liệu mà bạn có thể sử dụng với mục đích kiểm tra. Nó có thể được tạo từ First Steps bằng cách nhấn vào nút Create SAMPLE Database, nhấn vào nút đó, và một cửa sổ được thể hiện bên dưới. Lựa chọn tùy chọn thứ hai (XML and SQL object and data). Cơ sở dữ liệu SAMPLE cũng có thể được tạo ra bằng cách sử dụng lệnh db2sampl -xml -sql.

Page 53: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 3 - Cài đặt DB2 53

^]nj x]

The SAMPLE database can be created with SQL and XML database objects and in the location of your choice.

Type of database objects

If you choose to create XML database objects, read the information about native XML cata store.

Select the type of database objects you want to create:

C SQL objects and data only

(* KML arid SQL objects and datal

Selecting this option creates the required Unicode database with code set UTF-8.A This option prevents future use of the Database Partitioning Feature available with

DB2 Enterprise Server Edition.

Database location

Select the drive where you want to create the SAMPLE database. The database requires approximately 50 MB of hard disk space.

Default drive: fc i 57620 MB available

OK I Cancel

14. Sau vài phút, bạn có thể xác nhận cơ sở dữ liệu đã được tạo. Mở công cụ DB2 Control Center lựa chọn: Start -> Programs -> IBM DB2 -> DB2COPY1 (Default) -> General Administration Tools -> Control Center. Bạn cũng có thể bắt đầu Control Center bằng lệnh db2cc. Lần đầu tiên bạn bắt đầu Control Center, một cửa sổ pop-up sẽ hỏi bạn lựa chọn hiển thị Control Center mà bạn muốn. Chúng tôi đề nghị chọn mặc định (Advanced), và nhấn OK. Bên trái cửa sổ, thư mục tất cả các cơ sở dữ liệu. Nếu bạn không tìm thấy cơ sở dữ liệu SAMPLE trong thư mục đó, để chắc chắn bạn làm tươi lại hiển thi bằng cách chọn View -> Refresh.

15. Khởi động lại máy: đây là bước không bắt buộc. Mặc dù bước này không đáng kể trong tài liệu hướng dẫn cài đặt DB2 chính thức, chúng tôi đề nghị nén khởi động lại hệ thống (nếu có thể, ít nhất trên Windows) để đảm bảo rằng tất cả các tiến trình khởi động thành công và để giải phóng tài nguyên của hệ thống đã bị chiếm dụng trong quá trình cài đặt.

16. Kiểm tra lại quá trình cài đặt DB2 bằng cách sử dụng các lệnh: d b 2 le v e l, db21icm, và db2val. Từ Windows Start Menu, mở DB2 Command Windows

J j First Steps - Create SAMPLE Database

Page 54: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

54 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

theo sau: start -> Programs -> IBM DB2 -> DB2COPY1 (Default) -> Command Line Tools -> Command Window. Từ Command Window (hoặc shell trong Linux) gõ db2level và kiểm tra kết quả xuất ra màn hình. Thực hiện tương tự cho lệnh db2licm - 1. Tiếp theo, sử dụng lệnh db2val. Nếu db2val hoàn thành thành công, cài đặt của bạn đã thực hiện đầy đủ!. Nếu có lỗi, xem lại tệp nhật ký xác định thông điệp lỗi chi tiết. Kết quả xuất ra màn hình phải tương tự như được thể hiện ở hình 3.8 ở phần trên.

Page 55: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

4Chương 4 - Môi trường của DB2Môi trường của DB2 bao gồm các đối tượng cơ sở dữ liệu khác nhau và các tệp cấu hình tương ứng. Hình 4.1 cung cấp một cái nhìn tổng quát về các lệnh khác nhau và các công cụ để làm việc với DB2, và nó cũng đánh dấu môi trường của DB2 ở vùng bên phải. Đó là khu vực trọng tâm của chương này. Vùng bên trái của hình vẽ thể hiện các lệnh DB2 khác nhau: SQL, SQL/XML và các câu XQuery được sử dụng để tương tác với máy chủ dữ liệu DB2. ở phần giữa của hình vẽ thể hiện tên của một vài công cụ được sử dụng tương tác với máy chủ dữ liệu DB2.

DB2 Environment

Instance 'myinst*

Database Manager C onfiguration Fil# (dbm

; D a tabase M YD B1 "DãtãSãsẽ Configuration F lit Idb cfg>

IBM Data Studio Qptim Development Studio

DB2 Commands & SQL/XML. XQuery Statements DB2 Tools

SQL/XML. X query Statementscreate bufferpool create tablespace create table alter bufferpool alter tablespace alter table select insert update celete

DB2 System Commandsdb2setdb2 startdb2stopcb2ilistdb2icrrdb2idrop

DB2 CLP Commands'update dbm cfg catalog db list node directory create database list applications list tablespaces

Command Line ToolsCommand Editor Command Line Processor command window

General Adm inistration ToolsControl Center JournalLicense Center Replication Center Task Center

InformationInformation Center Check for DB2 Updates

Monitoring ToolsEvent Analyzer Health Center Indoubt Transaction ManagerMemo'ry Visualizer Activity Monitor

Setup ToolsConfiguration Assistant Configure DB2 Net Data Provider First StepsDefault DB2 Selection Wizard

Development Tools

<sql statement xquery < >

Hình 4.1 - Hình vẽ tổng quát DB2: Môi trường của DB2

Chú ý:

Xem video trình diễn về môi trường DB2 tại các liên kết sau:

http://www.channeldb2.com/video/video/show?id=807741:Video:4029

Page 56: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

56 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

http://www.channeldb2.com/video/video/show?id=807741:Video:4042

Để mô tả môi trường của DB2, chúng ta sẽ từng bước mô tả từng thành phần.

Hình 4.2 biểu diễn sự thể hiện lại của máy chủ dữ liệu DB2 sau khi cài đặt DB2 Express-C9.7.

DB2 Server (Linux/Windows)

Hình 4.2 - Thể hiện lại máy chủ DB2 sau khi cài đặt DB2 Express-C 9.7

Như là một phần cài đặt trong Windows, một thể hiện mặc định được gọi là DB2 (dbinstl trên Linux) được tạo ra. Đièu này được thẻ hiện lại bởl khung màu xanh bên trái hình 4.3. Một thể hiện đơn giản là một môi trường độc lập nơi mà ứng dụng có thể chạy, và cơ sở dữ liệu có thề được tạo. Bạn có thể tạo ra nhiều thể hiện trên máy chủ dữ liệu, và sử dụng chúng với những mục đích khác nhau. Ví dụ, một thể hiện có thể được sử dụng để giữ các cơ sờ dữ liệu cho các sản phẩm sử dụng, một thể hiện khác có thể được sử dụng để kiểm tra môi trường cơ sở dữ liệu, và một thể hiện khác dành cho việc phát triển môi trường.Tất cả các thể hiện này đều độc lập; vì vậy điều hành thực thi trên một thề hiện sẽ không ảnh hưởng đến các thể hiện khác.

Page 57: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 4 - Môi trường của DB2 57

DB2 Server (Linux/Windows)

Hình 4.3 - Thể hiện DB2 mặc định được tạo

Để tạo một thể hiện DB2 mới, sử dụng lệnh db2icrt <tên thể hiện>, phần <tên thể hiện> được thay bằng một tên bao gồm 8 ký tự. Ví dụ, để tạo thể hiện myinst, chúng ta sử dụng lệnh: db2icrt myinst.Hình 4.4 biểu diễn một thể hiện mới được gọi là myinst trong một khung màu xanh riêng biệt ở vùng bên phải.

DB2 Server (Linux/Windows)

Instance DB2

I Port I

Instance mylnst

1 Parc]

Hình 4.4 - Máy chủ DB2 với hai thể hiện

Chú ý là mỗi thể hiện có một cổng duy nhất. Điều này giúp cho việc phân biệt giữa các thể hiện khi bạn muốn kết nối đến một CO' sở dữ liệu đến một thể hiện được đưa ra từ máy khách từ xa sử dụng TCP/IP. Nếu bạn sử dụng DB2 Command Windows, bạn có thể thực

Page 58: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

58 Nhập môn Hệ quản trị cơ sờ dữ liệu DB2

hiện bất kỳ thể hiện để kích hoạt nó bằng cách sử dụng lệnh điều hành hệ thống trên Windows:

set db2instance=myinstChú ý là không nên đặt bất kỳ khoản trắng trước và sau dấu bằng (=). Trong ví dụ này, bây giờ nếu bạn tạo ra một cơ sở dữ liệu từ Command Window, nó sẽ được tạo trong thể hiện myinst.

Để liệt kê tất cả các thể hiện trong hệ thống, thực hiện lệnh:

db2ilistTrong Linux, một thể hiện phải trùng khớp với người dùng hệ điều hành Linux, vì vậy để chuyển đổi giữa các thể hiện bạn có thể thực hiện chuyển đổi giữa các người dùng. Người dùng này được biết như là một thể hiện riêng. Bạn có thể đăng xuất và đăng nhập với thể hiện của người dùng của thể hiện khác, hoặc sử dụng lệnh su.Bảng 4.1 liệt kê một vài lệnh hữu ích của cấp độ thể hiện (Instance).

Lệnh MÔ tả

db2start Khởi động một thể hiện hiện tại

db2stop Dừng một thể hiện hiện tại

db2icrt Tạo một thể hiện mó'i

db2idrop Xóa một thể hiện

db2ilist Liệt kê các thể hiện bạn có trong hệ thống

db2 get instance Liệt kê các thể hiện đang hoạt động

Bảng 4.1 - Các lệnh DB2 hữu ích tại cấp độ thể hiện

Các lệnh ở trên có thể được thay thế bằng cách thực thi thông qua Control Center. Ví dụ, trong Control Center, nếu bạn mở rộng thư mục Instances và nhấn chuột phải lên thể hiện bạn muốn, bạn có thể chọn start, bằng với việc sử dụng lệnh db2start từ Db2 Command Window, hoặc stop, bằng với việc sử dụng lệnh db2stop như hình 4.5.

Page 59: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 4 - Môi trường của DB2 59

% Control C e n te r - DB2COPY1

Control Center Selected Edit V ie w Tools Help

'T§ S) Ss D 3 % d? 0 1 ^ ©

.aa l x|

0 3 Object View

Q Contiol Center

ạ (23 All Systems

ậ g i RAULCHONG

B CD Instances

Ể-SÉ (¿Ü torasdbüofol

da -CD All Databases

RAULCHONG -DB2

Name

n Databases

Open N ew Control Center

Change...

Remove

Start

Start Admin...

Quiesce...

Unquiesce

Attach...

Configure Parameters.

Setup communications...

V iew memory usage

Applications

Multisite Update ►

Net Search Extender ►

Open Satellite Administration Center

A ctiv ity Monitor

About

■ z S r* M t ? DT Default... * View

@ H S !E X

ING

J 2i

Hình 4.5 - Các lệnh Instance từ Control Center

Để tạo cơ sờ dữ liệu trên một thể hiện đang hoạt động, sử dụng lệnh này từ DB2 Command Windows:

db2 create database mỵdblĐể liệt kể tất cả các Cơ SỞ dữ liệu được tạo, thực hiện lệnh:

db2 list db directoryBên trong bất kỳ thể hiện nào, bạn có thể tạo ra nhiều cơ sở dữ liệu. Một cơ sở dữ liệu là một tập hợp các đối tượng như bảng (tables), khung nhìn (views), chỉ mục (indexes),... Cơ sở dữ liệu là các đơn vị độc lập, vì vậy, không thể chia sẻ các đối tượng với các cơ sở dữ liệu khác. Hình 4 .6 biểu diễn việc một cơ sở dữ liệu MYDB1 được tạo bên trong thể hiện (instance) DB2.

Page 60: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

60 Nhập môn Hệ quản trị cơ sờ dữ liệu DB2

DB2 Server (Linux/Windows)

instance DB2

Database MYDB1

Instance mylnst

Hình 4.6 - Cơ sở dữ liệu MYDB1 được tạo trong thể hiện DB2

Bảng 4.2 Biểu diễn vài lệnh bạn có thể sử dụng tại cấp độ cơ sở dữ liệu (database).

Lệnh/Lệnh SQL MÔ tả

db2 create database Tạo một cơ sớ dữ liệu mới

db2 drop database Xóa một cơ sở dữ liệu

db2 connect to <database_name> Kết nối đến một cơ sở dữ liệu

db2 create table/create view/create indexCác câu lệnh SQL để tạo từng đối tượng table, views, và indexes

Bảng 4.2 - Các lệnh và câu lệnh SQL tại cấp độ CO’ sờ dữ liệu

Nếu chúng ta muốn tạo một cơ sở dữ liệu khác có cùng tên (MYDB1) nhưng trong thể hiện myinst, các lệnh sau từ DB2 Command Windows sẽ được sử dụng:

db2 list db directory set db2instance^myinst db2 create database myđbl set db2instance=db2

Page 61: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 4 - Môi trường của DB2 61

Hình 4.7 thể hiện một cơ sở dữ liệu MYDB1 mới được tạo trong thể hiện myinst.

DB2 Server (Linux/Windows)

Instance DB2 Instance mylnst

Database MYDB1 Database MYDB1

K:'t. i

Hình 4.7 - Cơ sở dữ liệu MYDB1 được tạo trong thể hiện myinstKhi một cơ sở dữ liệu được tạo, có một vài đối tượng được tạo ra mặc định: không gian bảng (table spaces), các bảng (tables), một vùng nhớ đệm (buffer pool) và các tệp nhật ký. Việc tạo các đối tượng ở các thời điềm khác nhau, đó là tại sao lệnh c re a te database yêu cầu một vài phút để xử lý. Hình 4.8 thể hiện 3 không gian bảng được tạo mặc định ở bên trái của hình. Không gian bảng sẽ được thảo luận chi tiết hơn ờ Chương 6, kiến trúc DB2, nhưng bây giờ, tìm hiểu không gian bảng như là các tầng logic giữa các bảng logic và tài nguyên vật lý, như là các đĩa và bộ nhớ.

Page 62: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

62 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

DB2 Server (Linux/Windows)

Instance mylnst

Database MYDB1

Instance DB2

Database MYDB1SYSCATSPACE

TEMPSPACE1

USERSPACE1

ỉ Ẽãđ I

Hình 4.8 - Không gian bảng được tạo mặc định khi một cơ sở dữ liệu được tạo

Không gian bảng SYSCATSPACE chứa các bảng System Catalog. System Catalog được gọi là tự điển dữ liệu trong hệ quản trị cơ sở dữ liệu. Nó về cơ bản thì chứa các thông tin hệ thống mà không thể chỉnh sửa hoặc xóa bỏ, nói cách khác cơ sở dữ liệu sẽ không làm việc chính xác. Không gian bảng TEMPSPACE1 được sử dụng bởi DB2 khi nó cần thiết thêm vào không gian đến các hoạt động khác như là sắp xếp. Không gian USERSPACE1 thì thông thường được sử dụng để lưu trữ các bảng cơ sở dữ liệu người dùng nếu không có không gian bảng xác định khi tạo ra một bảng.

Bạn cũng có thể tạo riêng cho bạn các không gian bảng sử dụng câu lệnh CREATE TABLESPACE. Hình 4.9 thể hiện không gian bảng MYTBLS1 được tạo bên trong cơ sở dữ liệu MYDBl trên thể hiện DB2. Khi bạn tạo một không gian bảng, bạn xác định các đĩa và bộ nhớ (buffer pool) để sử dụng. Vì vậy, nếu bạn có một bảng “nóng”, đó là, một bảng được sử dụng rất thường xuyên, bạn có thể cấp phát nhanh nhất các đĩa và bộ nhớ bằng cách gán vào một không gian bảng với các mô tả này.

Hình 4.9, chúng tôi chỉ ra các đối tượng khác được tạo mặc định: một buffer pool được gọi IBMDEFAULTBP, và các tệp nhật ký.

Một buffer pool căn bản là một bộ nhớ cache được sử dụng bởi cơ sở dữ liệu, không chỉ là thông tin được lưu trữ trong các đĩa cho cơ sở dữ liệu, nhưng trong khi bạn đang làm việc trên cơ sở dữ liệu, các tệp nhật ký lưu trữ tất cả hoạt động thực thi trên dữ liệu. Hiểu các tệp nhật ký như là các tệp tạm được tự động lưu khi các hoạt động được thực thi. Các nhật ký được thảo luận chi tiết hơn ở Chương 11, Sao lưu và Phục hồi.

Page 63: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 4 - Môi trường của DB2 63

DB2 Server (Linux/Windows)

instance DB2

Database MYDB1SYSCATSPACE

TEMPSPACE1

USERSPACE1mytblsl

IBMDEFAULTBP

LOGS

I P o rt 1

Instance mylnst

Database MYDB1

Hình 4.9 - Buffer pool và nhật ký được tạo mặc định

ở phần trước chúng ta đã thảo luận các môi trường độc lập, và vì vậy, một cơ sở dữ liệu với cùng một tên có thể được tạo trong một vài thể hiện. Giống như các thể hiện, cơ sở dữ liệu cũng là các đơn vị độc lập, vì vậy, các đối tượng trong cơ sở dữ liệu không có quan hệ đến các đối tượng trong cơ sở dữ liệu khác. Hình 4.10 thể hiện một không gian bảng mytblsl bên trong cả hai cơ sở dữ liệu MYDB1 và cơ sở dữ liệu SAMPLE, bên trong thể hiện DB2. Điều này hợp lý bởi vì cơ sở dữ liệu là các đơn vị độc lập. Chú ý là hình 4.10 không thể hiện các đối tượng mặc định khác của hai cơ sờ dữ liệu SAMPLE do chỗ vẽ trong hình bị hạn chế.

DB2 Server (Linux/Windows)

Instance DB2

Database MYDB1SYSCATSPACE

TEMPSPACE1

USERSPACE1mytblsl

IBMDEFAULTBP

LOGS

Database SAMPLE[m ytblsl 1

ỉ Port ỉ

Instance mylnst

Database MYDB1

I £aä j

Page 64: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

64 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Hình 4.10 - Các không gian bảng cùng tên trong các CO’ sờ dữ liệu khác nhau

Khi bạn đã tạo ra một không gian bảng, bạn có thể tạo các đối tượng bên trong không gian bảng như là các tables, views và indexes. Điều này được minh họa trong hình 4.11.

DB2 Server (Linux/Windows)

Instance DB2

Database MYDB1SYSCATSPACE

TEMPSPACE1

USERSPACE1m ytblsl

tab le l viewl indexl

IBMDEFAULTBP

LOGS

Database SAMPLEI m ytblsl

-LpstlL

Instance mylnst

Database MYDB1

Hình 4.11 - Các Tables, views, indexes được tạo bên trong không gian bảng

4.1 Cấu hình DB2Các tham số DB2 có thể được cấu hình bằng cách sử dụng công cụ Configuration Advisor Tool (công cụ trợ giúp cấu hình). Để có thể vào được công cụ trợ giúp cấu hình từ Control Center (trung tâm điều khiển), nhấp chuột phải lên một cơ sở dữ liệu bất kì và chọn Configuration Advisor. Dựa vào những thông tin mà bạn cung cấp về tài nguyên và khối lượng công việc của bạn, công cụ hỗ trự cấu hình sẽ cung cấp một danh sách các tham số DB2 nên được thay đổi với các giá trị phù hợp cho từng tham số. Nếu bạn muốn hiểu rõ hơn về cấu hình trên DB2, hãy đọc tiếp những phần sau; về mặc khác, bạn cần sử dụng công cụ Configuration Advisor và như vậy sẽ giúp bạn thành thạo hơn khi làm việc với DB2!

Một máy chủ DB2 có thể được cấu hình ở 4 cấp độ riêng biệt:

■ Các biến môi trường

■ Tệp cấu hình quản trị cơ sở dữ liệu (dbm cfg)

■ Tệp cấu hình cơ sở dữ liệu (db cfg)

■ Đăng ký lý lịch DB2 (profile)

Điều này được mô tả ở hình 4.12. Trong hình này, hãy chú ý tới bên trong của mỗi hình chữ nhật. Như là, các biến môi trường được thiết lập ở hệ điều hành của máy chủ, trong

Page 65: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 4 - Môi trường của DB2 65

khi đó các tham số tệp cấu hình quản trị cơ sở dữ liệu được thiết lập ở cơ sở dữ liệu, và đăng ký lý lịch DB2 (DB2 profile) được thiết lập hoặc ở hệ điều hành hoặc ở lớp thể hiện (instance).

DB2 Ex press -C Server

EiMioimtetit v<n ¡.lhles

Instance 'myinsfDatabase Monayei

Confiijiii.ition File 1(11)111 cf(jl

Database MYDB1Database

Configuration File (db cf(j)

DB2PiofileRe<jistiy

Hình 4.12 - Cấu hình DB2

4.1.1 Các biến môi trường

Các biến môi trường là các biến được thiết lập ở mức hệ điều hành. Một biến môi trường chính là DB2INSTANCE. Biến này chỉ ra thể hiện đang hoạt động mà bạn đang làm việc trên nó. Và còn để cho các lệnh DB2 của bạn áp dụng trên đó. Ví dụ, để thiết lập thể hiện cho myinst trong Windows, bạn cần thực thi lệnh hệ điều hành sau:

set db2instance=myinst4.1.2 Tệp cấu hình quản trị cơ sở dữ liệu (dbm cfg)

Tệp cấu hình quản trị cơ sờ dữ liệu (dbm cfg) bao gồm các tham số có ảnh hưởng đến thể hiện và tất cả các cơ sở dữ liệu chứa bên trong. Tệp cấu hình quản trị cở sở dữ liệu có thể đưọ’c xem hay sửa đổi bằng cách sử dụng dòng lệnh, hoặc thông qua DB2 Control Center (trung tâm điều khiển DB2).

Để làm việc với dbm cfg từ Control Center, bạn chọn đối tượng thể hiện từ thư mục thể hiện của trung tâm điều khiển, nhấp chuột phải để hiện ra trình đơn và sau đó chọn Configure Parameters. Minh họa trong hình 4.13.

Page 66: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

66 Nhâp mon Hê quàn trj ca sà dû1 lieu DB2

■ C o n tro l C e n te rC o n tro l C e n te r S e le c te d E d it V ie w T o o ls H e lp

E5r i O bject V iew

12 Control Center 0 D A ll S ys tem s

E ! : j£ | T E D W A S B CD Instances

CD A ll Databases B □ S A M P LE C h a n g e

R e m o v e

O p e n N e w C o n tro l C e n te r

StartS to p

S ta r t A d m in .

Q u ie s c e ...

U n q u ie s c e

A tta c h ...

C o n f ig u re P a ra m e te rs .

S e tu p co m m u n ic a tio n s .

V ie w m e m o ry u s a g e

A p p lic a t io n s

Hinh 4.13 - Câu hinh dbm cfg tù> Control Center (trung tàm dieu khièn).

Sau khi chon Configure Parameters, mot màn hinh së hien thi ra nhip trong hinh 4.14 vâi danh sâch câc tham so dbm cfg.

Page 67: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 4 - Môi trường của DB2 67

TEDWAS • DB2

Select the value field of a parameter to change its value

Keyword Value Pending Value Pending Value Effective £ Dynamic Description

" d

J

V ApplicationsAGENTPRI

FENCED_POOL

INITFENCED_JVM

KEEPFENCED

MAXCOORDAG... MAXAGENTS

MAXCAGENTS

NUM INITAGENTS

NUMJNiTFENCED

NUM POOLAGE...

Let system deter...

MAX_COORDAG..

No

MAXAGENTS

MAX_COORDAG

The larger of max..

Priority of agents

Maximum fenced..

Initialize fenced pr

Keep fenced proc...Maximum number..Maximum number...

Maximum number...

Maximum number...

Initial number of a. .

Initial number off...

Aqent pool size ZẢ83 of 83 items displayed l Al %T> 3 ? Default View View

Hint

Maximum number of client connections allowed per database partition. The concentrator feature is not activated urless this value is greater than max_coordagents.Range [-1; 1 -64000] Counter

OK Cancel Show ( Help

Hình 4.14 - Danh sách các tham số dbm cfg

Phần lớn là các tham số động, nghĩa là các thay đổi sẽ có hiệu lực ngay lập tức; tuy nhiên, cũng có các tham số khi thay đổi có thể yêu cầu khởi động lại thể hiện mới có hiệu lực. Từ Command Line (dòng lệnh), có thể thực hiện khởi động lại bằng cách sử dụng 2 lệnh db2stop và db2 start.Trước khi một thể hiện ngừng, thì tất cả các trình ứng dụng phải được ngắt kết nối. Nếu bạn muốn dừng thể hiện ngay lập tức bạn có thể sử dụng lệnh db2stop force.Một thể hiện cũng có thể được dừng thông qua Control Center (trung tâm điều khiển) bằng cách nhấp chuột lên đối tượng thể hiện và chọn Stop hoặc Start.

Bảng 4.3 cung cấp một số câu lệnh hữu dụng để quản lý dbm cfg từ Command Line.

Lệnh MÔ tả

db2 get dbm cfg Lấy thông tin về dbm cfg

db2 update dbm cfgusing <parameter_name> <value> Cập nhập giá trị cho một tham số của dbm cfg

Bảng 4.3 - Các lệnh để thao tác với dbm cfg

Page 68: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

68 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

4.1.3 Tệp cấu hình cơ sở dữ liệu (db cfg)

Tệp cấu hình cơ sở dữ liệu (db cfg) bao gồm các tham số tác động đến từng cơ sở dữ liệu riêng biệt. Tệp cấu hình cơ sở dữ liệu có thể được xem hoặc thay đổi bởi các dòng lệnh, hoặc thông qua DB2 Control Center (trung tâm điều khiển của DB2).

Để làm việc với db cfg từ Control Center, bạn chọn đối tượng cơ sở dữ liệu từ thư mục cơ sở dữ liệu của Control Center, nhấp chuột phải để hiện ra trình đơn và chọn Configure Parameters. Minh họa trong hình 4.15.

% C ontro l C en ter Stop

Restart

Connect...

Disconnect

Quiesce

Unquiesce

Authorities..

Manage Utilities...

Control Center Selected E

s s B ỉs G

I C3 Object View

12 Control Center B □ All Systems

Q TEDWASÉ Cũ Instances

B Q r DB2B Ù Databases

s 0Ũ Tab Ũ Vie-

Configure Automatic Maintenance...

Design A dv iso r..

Configuration Advisor...

Configure Parameters

Configure Database Logging .

High Availability Disaster Recovery

Hình 4.15 - Cấu hình cho db cfg từ Control Center (trung tâm điều khiển)

Sau khi chọn Configure Parameters, màn hình hiện ra như trong hình 4.16 với danh sách các tham số của db cfg.

Page 69: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 4 - Môi trường của DB2 69

■ Database Configuration - SAMPLE

Select the value field of a parameier to change its value

$ I Pending Value $ I Pending </alue E ffe c t in g j Dynamic $ j Description

xj

1- a ỊỊ wo d

■ i' Applied (ions

I AVG_APPLS 1 Yes Average number o

pL C H K ĨIM E I I i c o n Interval for checki

LOCKTIMEOUT None Lock timeout

MAXAPPLS AIJTOMAT1C(40) Yes M axim um number

MAXFILOP 64 Yes Maximum D 5 file...

MAXLOCKS 22 Yes Maximum locks p

^ E n v iro nm en t

CODEPAGE Database Code P...

CODESET IBM. 1252 Database Code Set

COPY_PROTECT No Copy protection e...

COUNTRY 1 Database Cuurury

D ATAEASE_L£V.. .0 *3 0 0 Database release...

DFT DEGREE 1 Yes Default decree

112 o f 112 items displayed 111 ^ <3?

This defines the frequency at which the database manager checks for deadlccks among all the applications connected to a database Range [1QGO - EOCD3| M illiseconds

dView

Cancel I I SliJVj Lommand I Help I

Hình 4.16 - Cấu hình cơ sở dữ liệu db cfg

Bảng 4.4 cung cấp một số câu lệnh hữu dụng để quản lý db cfg từ Command Line.

Lệnh MÔ tả

get db cfg for <database_name>Lấy thông tin về db cfg của cơ sở dữ liệu mong

update db cfg for <database_name> using <parameter_name> <value>

Cập nhập giá trị cho một tham số của db cfg

Bảng 4.4 - Các lệnh để thao tác với db cfg

4.1.4 Đăng kỷ lý lịch DB2

Các biến đăng ký lý lịch DB2 gồm các tham số có thể được đặc tả nền tảng hoặc có thể được thiết lập toàn cục (tác động đến tất cả các thể hiện), hoặc ở cấp độ thể hiện (tác động ở từng thể hiện riêng biệt).

Bảng 4.5 cung cấp một số lệnh hữu dụng để thao tác với các biến đăng ký lý lịch DB2.

Lệnh MÔ tả

đb2set -allLiệt kê tất cả các biến đăng ký lý lịch DB2 hiện đang được thiết lập

db2set -lr Liệt kê tất cả các biến đăng ký lý lịch DB2

Page 70: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

70 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

đb2set <parameter>=<value> Gán một giá trị cho một tham số

Bảng 4.5 - Các lệnh để thao tác với đăng ký lý lịch DB2.

Bảng 4.6 Một số biến đăng ký lý lịch hay dùng nhất

Biến đăng ký Mô tả

DB2COMMChỉ định những quản trị giao tiếp được khởi động cùng với quản trị cơ sở dữ liệu.

D B2_EXT SECURITYTrong Windows, ngăn chặn sự truy cập trái phép tới DB2 bằng cách khóa tệp hệ thống DB2

DB2_COPY_NAME

Lưu trữ tên của bản sao hiện đang dùng của DB2.

Đề chuyển sang một bản sao DB2 đã cài khác, thực thi lệnh installpath\bin\db2envar.bat. Biến này không thể được sử dụng cho mục đích này.

Bảng 4.6 - Các biến đăng ký lý lịch DB2 thường dùng.

Ví dụ, để cho phép giao tiếp sử dụng giao thứcTCPIP, thiết lập biến đăng ký DB2COMM thành TCPIP như sau:

db2set db2comm=tcpip

4.2 Máy chủ quản trị DB2 (deprecated)

Máy chủ quản trị DB2 (The DB2 Administration Server-DAS) là một tiến trình ngầm chạy tại máy chủ DB2, nó cho phép các máy khách từ xa có thể quản trị máy chủ DB2. DAS là cần thiết khi sử dụng bộ công cụ đồ họa DB2, hoặc cục bộ hoặc từ xa. ở mỗi máy tính chỉ có duy nhất một DAS như trong hình 4.16.

Page 71: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 4 - Môi trường của DB2 71

Hình 4.16 -M áy chủ quản trị DB2 (DAS)The DB2 Administration Server (DAS)

4.3 Tóm tắt

Trong chương này, chúng ta đã tìm hiểu về môi trường của DB2, bao gồm khái niệm và việc tạo thành của các thể hiện và cơ sở dữ liệu, cùng với các lệnh thường gặp của chúng. Từ đó, chúng ta xem xét các mặt chính của thể hiện, gồm các không gian bảng: ba kiểu không gian bảng có giá trị, và các bảng, các cách nhìn, và các chỉ mục có thể được tạo bên trong không gian bảng; bộ đệm (bufferpools); và các bản ghi.

Sau cùng, chúng ta đã thảo luận về cấu trúc cấu hình cho DB2, và làm thế nào thay đổi nó ở bốn cấp độ khác nhau, bốn cấp độ đó là: các biến môi trường; tệp cấu hình quản trị cơ sở dữ liệu; tệp cấu hình cơ sở dữ liệu; và đăng ký lý lịch DB2.

4.4 Bài tập

Các bài tập trong phần này sẽ giúp bạn hiểu hơn về các khái niệm đã được thảo luận trong chương này, và sẽ giới thiệu cho bạn một số công cụ của DB2.

Phần 1: Tạo 1 CO’ sở dữ liệu mới bằng cách dùng Create Database Wizard

Trong phần này, bạn sẽ tạo 1 cơ sở dữ liệu sử dụng Create Database Wizard ở Control Center (trung tâm điều khiển).

Thủ tuc

1. Từ khung hiển thị các đối tượng tại trung tâm điều khiển ở bên trái, nhấp chuột phải lên thư mục All Databases và chọn Create Database -> With Automatic Maintenance sẽ hiện lên Create Database Wizard.

Page 72: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

72 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

2. Chỉ ra tên cơ sở dữ liệu và vị trí trong trang Name của wizard. Sử dụng các giá trị cho dưới đây:

Lưu ý: Trên Windows, mặc định bạn chỉ có thể tạo một cơ sở dữ liệu trên một ổ đĩa, không chỉ trên đường dẫn. Nếu bạn muốn tạo trên đường dẫn, thì phải thiết lập biến đăng ký DB2_CREATE_DB_ON_PATH

3. Trong trang storage, không nên thay đổi bất cứ gì, và nhấn Next.

4. Trong trang Maintenance, để nguyên sự lựa chọn mặc định {Yes, I can specify an offline ...), và nhấn Next.

5. Xác định rõ cửa sổ thời gian bảo trì ở chế độ ngoại tuyến (offline) trong trang Timing của wizard, cấu hình cho cửa sổ khởi động lúc 1 giờ sáng mọi ngày thứ hai tới thứ năm trong một khoảng 6 giờ. Nhấn nút Next.

6. Cấu hình thông báo trên trang Mail Server của trình wizard. DB2 có thể gửi tin nhắn tới ai đó một cách tự động, hoặc gửi một thư điện tử nếu một vấn đề hay điều kiện không tốt được phát hiện. Nếu bạn muốn cấu hình cho điều này, bạn cần chỉ ra một máy chủ SMTP có giá trị cho DB2 trong việc gửi thư. Trong bài tập này chúng ta không có một máy chủ SMTP nào, vì vậy hãy để trống trang này và nhấn Next.

Xem lại các tùy chọn mà bạn đã chọn trên trang Summary của trình wizard. Nhấn nút Finish để bắt đầu quá trình tạo cơ sỏ dữ liệu. Việc tạo cơ sở dữ liệu thường mất một vài phút, trong khoảng thời gian này một chỉ số tiến độ được hiển thị.

Phần 2: Làm việc với các thực thể. cơ sở dữ liệu và cấu hình

Trong phần này, bạn sẽ tạo một thể hiện mới, một cơ sở dữ liệu trên thể hiện đó, và thay đổi các tham số cấu hình trên máy chủ trong Windows. Bạn có thể thực hiện từ trung tâm điều khiển (Control Center) hoặc từ cửa sổ lệnh DB2 (DB2 Command Window). Chúng tôi sẽ hướng dẫn cho bạn bằng cách sử dụng cửa sổ lệnh DB2.

Database Name:Default Drive (Windows): Default Path: (Linux):Alias:Comment:

EXPRESSC:/home/db2instlNếu đề trống mặc định là EXPRESS Đây là tùy chọn, có thể bò trống

Nhấn nút Nextơể chuyển sang trang tiếp của wizard.

Thù tuc

1. Mở cửa sổ lệnh DB2 bằng cách chọn start -> Programs -> IBM DB2 ->DB2COPY1 (Default) -> Command Line Tools -> Command Window. Ngoài ra, CÓ

Page 73: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 4 - Môi trường của DB2 73

một cách ngắn hơn để khởi động cửa sổ lệnh DB2 là chọn start -> Run, và gõ db2cmd.

2. Từ cửa Sổ lệnh DB2, tạo một thể hiện mới với tên n e w in s t

db2icrt newinst

3. Chuyển sang thực thể n e w in s t và kiểm tra nó thực sự là thể hiện hiện tại của bạn. Sau đó khởi động nó.

set db2 instance=newinst (Không có các khoảng trống trước hoặc sau dấu “=”!) db2 get instance (Điều này kiểm tra là thể hiện newinst thể hiện hiện tại)db2start

4. Tạo một cơ sở dữ liệu có tên newdb với các giá trị mặc định trong thể hiệnnewinst. Điều này sẽ tốn vài phút như việc tạo DB2 bên trong các đối tượngtrong cơ sở dữ liệu và cung cấp một số cấu hình khởi tạo.đb2 create database newdb

5. Kết nối và ngắt kết nối từ cơ sờ dữ liệu mới newdb sau đó hủy nó.

db2 connect to newdb đb2 terminate db2 drop db newdb

6. Dừng thể hiện hiện tại newinst

đb2stop

7. Liệt kê tất cả các thể hiện trong máy chủ của bạn

db2ilist

8. Chuyển đổi sang thể hiện DB2 và chắc chắn rằng đã chuyển

set db2instance=db2 db2 get instance

9. Hủy thể hiện newinst

đb2idrop newinst

10. Tìm giá trị hiện tại của tham số FEDERATED của dbm cfg. Nó nên có giá trị mặc định là NO

db2 get dbm cfg

Trong hệ điều hành Linux bạn CC thể làm như sau: db2 get dbm cfg I grep FEDERATED

Page 74: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

74 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

11. Thay đổi giá trị của tham số FEDERATED của dbm cfg thành YES và kiểm tra thay đổi đã được thực hiện.

db2 update đbm cfg using FEDERATED YES

Vì FEDERATED không phải là tham số động, nên những thay đổi của nó sẽ không có hiệu lực cho đến khi bạn dừng và khởi động lại thể hiện. Tuy nhién, đề dừng một thể hiện, bạn phải đảm bảo rằng không có bất cứ kết nối nào. Một cách đảm bảo điều này là thực thi những lệnh:db2 force applications all db2 terminate

Khởi động lại thể hiện, và kiềm tra giá trị mới của tham số FEDERATED:db2stopdb2startdb2 get dbm cfg

12. Kết nối cơ sở dữ liệu SAMPLE với định danh (userlD) và mật khẩu (password) mà bạn đang sử dụng trên hệ điều hành

đb2 connect to sample user <userID> using <password>

13. Xem lại số ứng dụng đang chạy trên thể hiện hiện tại của bạn

db2 list applications

14. Mở một cửa sổ lệnh DB2 khác và kết nối một lần nữa tới cơ sở dữ liệu SAMPLE mà không chỉ rõ định danh và mật khẩu. Sau đó xem lại bạn có bao nhiêu kết nối.db2 connect to sample db2 list applications

15. Tắt nhanh một kết nối từ cửa sổ lệnh DB2. Điều này cho ta một ví dụ làm thế nào để có thể kết thúc nhanh chóng công việc của một người dùng (người mà đang truy cập tài nguyên hệ thống)db2 force application («application handle for db2bp.exe>)

Xử lý các ứng dụng là một số hay một ‘xử lý’ của ứng dụng mà bạn muốn cưỡng bức. Bạn sẽ dạt được số nãy từ dầu ra cùa dòng lệnh db2 list applications, ứng dụng db2bp.exe biểu diễn cho cửa sổ lệnh DB2.

16. Kiểm tra kết nối của một trong các cửa sổ DB2 đã bị tắt cưỡng bức. Nếu bạn không biết rằng kết nối đó là của cái nào trong hai cửa sổ lệnh DB2 bị tắt cưỡng bức, thực hiện lệnh này trên cả hai.

đb2 select * from staff

Page 75: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 4 - Môi trường của DB2 75

Cửa sổ lệnh DB2 bị tắt cưỡng bức sẽ trả về một thông báo lỗi với mã SQL1224N. Cửa sổ lệnh DB2 khác sẽ trả về cho bạn kết quả đầu ra của câu truy vấn.

17. Hủy và tạo lại DAS (máy chủ quản trị DB2), và khởi động nó.db2admin stop db2admin drop db2admin create db2admin start

18. Lấy và xem giá trị hiện tại của biến đăng ký DB2COMM

đb2set -all

19. Bỏ thiết lập biến đăng ký DB2COMM và kiểm tra nó đã thực hiện chưadb2set db2comm= đb2stop(Bạn sẽ nhận về một lỗi trên db2stop nếu bạn có kết nối nào đó. Bạn nên làm gì? Hãy tham khảo bước tiếp theo để giải quyết vấn đề này)

db2start db2set -all

20. Thiết lập biến đăng kí DB2 DB2COMM thành tcpip và npipe trong thể hiện của bạn và kiểm tra lại giá trị mớidb2set db2comm=tcpip,npipeđb2stopdb2startdb2set -all

21. Kiểm tra giá trị hiện tại của tham số LOGSECOND của db cfg, và sau đó thay đổi giá trị của nó thành 5 và kiểm tra lại giá trị mớiđb2 connect to sample đb2 get db cfgdb2 update đb cfg using LOGSECOND 5 đb2 get đb cfg

Page 76: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

V9.7

Chương 5 - Các công cụ của DB2Trong chương này, chúng tôi sẽ trình bày về một vài công cụ mà bạn có thể sử dụng với DB2. Đối với DB2 9.7, hầu hết các cóng cụ được mô tả trong chương này hiện không còn được đánh giá cao, nên mặc dù chúng vẫn được hỗ trợ trong phiên bản này nhưng sẽ không được phát triển thêm, và có thể sẽ không còn được bao gồm trong những sản phẩm trong tương lai. IBM Data studio là sự thay thế cho những công cụ này.

Vòng tròn đỏ trong Hình 5.1 biểu thị các mục được chú trọng trong chương này.□B2 Commands & SQL/XML

XQuety StatementsSQL/XML. Xquery Statementscreate bufferpool create tablespace create table alter bufferpool alter tablespace alter table select insert update delete

DB2 System Commandsdb2setdb2startdb2stopdb2ilistdb2icrtdb2idrop

DB2 CLP Commandsdb2 'update dbm cfg "

catalog db list node directory create database list applications listtahlfispares

<sql statement xquery < >

Command Line ToolsC o p la n d Editor : : : Command line-Processor: "orraiiandWndow

ieneral Adm nistration Tools

Control Center: :vivivivivix:Journal : : : : : : :License-Center gepicati0h:GehteF Task Center: :

InformationInformation Center Check for D82 Updates :

Monitoring ToolsEvent Analyrer Health Cent«Indoubt Transaction Manager :Memory Viscalizer Activity Monitor

Setup ToolsConfiguration Assistant Configure DES Net Data Provider fijrsi Stcps: : f;:;:;:;::::: fe fô iilî 002 '.elect! OKWi2i3h3

DB2 Environment

Instance 'myĩnst'

Database Manager Configuration Fite (dbm cfg)

Database MYDB1Database

Configuration File (db cfg)

BMI

Development Tools

IBM Data:StJdio: OptintDeyetopment Studio

Hình 5.1 - Hình ảnh tổng quan về DB2: Các công cụ của DB2

Page 77: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 5 - Các công cụ của DB2 77

Chú ý:

Xem các video trình bày về các công cụ của DB2 và các liệt kê mã tại các liên kết sau: http://wvw.channeldb2.com/video/video/show7ich807741 :Video:4202 http://vwvw.channeldb2.com/video/video/show7ick807741 :Video:4182

Hình 5.2 liệt kê tất cả các công cụ của DB2 có thể truy xuất từ mục IBM DB2 trên thanh Start Menu. Hầu hết những công cụ này là giống nhau trên cả Linux và Windows.

0 Command td itor

0 Command Une Processor

n Command Window

Control Center

0 Jounal

^ beers* Center

'Ỵp Repkabon Center

fs> Task Center

(J ) Check For D62 updates

(jj) Information Center V9.7

•^1 Activity Monitor

Event Anaỉyrer

í7 jì Health Center

Indoubt Transaction Manager

^ Memory Visualize*

Configuration Assistant

ị Q Confo-re De2 . Í ÍT Data Provder

y 1 Frst Steps

Default 062 and Database Cfient Interface Selection wizard

Hình 5.2 - Các công cụ của DB2 trong mục IBM DB2 trên thanh start menu

Bảng 5.1 Cung cấp danh sách các lệnh có thể được sử dụng để khởi động hầu hết các công cụ phổ biến trên cả Linux và Window. Bảng này còn liệt kê ra những công cụ nào vẫn được hỗ trợ ở phiên bản DB2 9.7 nhưng sẽ bị ngừng hỗ trợ ở các trong các phiên bản sau này.

Tên công cụ Lệnh Ngừng hỗ trợ ờ các phiên bản sau này?

Command Editor db2ce Ngừng

Command Line processor db2 Không

Command Window (Only on Windows platforms)

db2cmd Không

Control Center db2cc Ngừng

Task Center db2tc Ngừng

Health Center db2hc Ngừng

*ìã Ĩ8MDB2 > à OBXOPTl (Default) ► I ¿ I Command In e Toob »

F} Générai Administration Toob ► r j Informator) ►(g) M ontom j Took ► c?) Set-up Toots ►

Page 78: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

78 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

V9.7

Configuration Assistant db2ca Ngừng

First Steps db2fs Ngừng

Bảng 5.1 - Các lệnh dùng đế khởi động các công cụ của DB2

5.1 IBM Data studioTrong DB2 9.7, IBM Data Studio là công cụ chính dùng để quản trị cở sở dữ liệu, và phát triển cơ sở dữ liệu với DB2. Data studio là miễn phí. Nó có thể chạy trên cả Linux và Window, và là một phần của IBM Integrated Data Management. Sự phát triển của Data Studio dựa trên một lịch trình, nó không nhất thiết đồng bộ với các phiên bản của DB2, tuy nhiên các sản phẩm sẽ mắt ra sớm nhất có thể. Ví dụ, DB2 9.7 và IBM Data Studio 2.2 được phát hành trong cùng một ngày của tháng 6 năm 2009.

Hình 5.3 mô tả giao diện của IBM Data Studio.

Eic Edt tiavqatc Search Project Data Sun SíTpt ìiốndovv beta

J - ; upgrade to Op6m

§ 0 PROCÊDllREl

Tj - ] <4 - J y JProject E xp lo re r"^ )

E lU Myf*stPro>ỉct(SAMPLE:jdbc:db2.7^oca#iost: 50000/

® D SQL Scripts E--L-I stored Procedures

PROCEDURE 1 £ I i User Defined Funcoons E - - Ũ Web Servies ® Ó XML

|_Dàta Source E xfio te ^c 'l “ □

'ĩ£ Í17 I til Û I IT ^ BIRT ctsssk ModHs Simpie Database

y RESEARCH fD82A»as:sample (D32 for LWiX, UNIX, and Windows V

Q r Instance B Û SAMPLE

© C D Buffer Poote Ê C j Groups E " D Partition Groups

1?. CD Remote Servers ts- D Roles O&CD Schemas [£ D Table Spaces E ” C3 users

ỹ SAWIE1

LL I £

CREATE PROCEDURE PROCEDURE1

DYNAMIC RESULT SETS 2

SQL Scored Procedure

PI: BEGIN— Declare cursorDECLARE cursor1 CURSOR KITH RETURN FOR

SELECT PROCSCHEMA, PROCNAME FROM SYSCAT.PROCEDURES; DECLARE cursor2 CURSOR WITH RETURN FOR

5£U£CX iA S IN A M i ÍK U K fcMkUAJXLt;

-- Cursor left open for client application OPEN cursor!;OPEN cursor2;

END P I

Configifàtlon Source r~

Proper lies V : Tasks z_ Problems Model Report I Boofanaffcs i Sw/ers □ Ccnsole ; SQL Resits

Type que» y expression tiere Status Resiit J Ị ResJt21

Status I Opyaton_______ I Date________ I Correction... I ____ I LASTNAME

✓ Succccc Depby ARFChQ. 5/30/09 5:5. ■ ■ SAfrPLESucceec RunARFCHONG...

HAASTHOMPSONKWANGEY®STERNPULASKIl-ENDERSCN

Total 42 records shown

I if Displayed 2 o f 2 results: 2 succeeded, 0 faied, 0 terminated, 0 warmnç, 0 cntxal error

Hình 5.3 - IBM Data studio

Nếu bạn đã quen với Eclipse, bạn sẽ chú ý rằng Data studio dựa trên Eclipse. Với Data Studio, bạn thường làm việc trong cửa sổ hướng Data (được đánh dấu ở góc trên bên phải trong hình 5.3). Bạn cũng có thể chuyển thành hướng Java, nếu bạn đang phát triển một chương trình Java. Đó là hai khung nhình khác cũng đươc đánh dấu trong hình trên:

■ Data Project Explorer (góc trên bên trái)

Page 79: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 5 - Các công cụ của DB2 79

■ Data Source Explorer (góc dưới bên trái)

Khung nhìn Data Project Explorer được người phát triển cơ sở dữ liệu dùng để làm việc với mã SQL, XQuery, thủ tục, UDFs, và các dịch vụ Web.

Khung nhìn Data Source Explorer được người quản trị cơ sờ dữ liệu sử dụng trong việc quản lý các thể hiện của DB2 và cơ sở dữ liệu. Với việc sử dụng khung nhìn này bạn có thể thực thi hầu hết các chức năng có sẵn trước đây trong Control Center.

Trong hình, khung nhìn với tiêu đề PROCEDURE1 là một trình soạn thảo cho các thủ tục được chọn trong Data Project Explorer. Tùy thuộc vào thao tác mà bạn đang thực thi, trình soạn thảo hoặc các cửa sổ khác sẽ xuất hiện, cho phép bạn vừa biên tập các đoạn mã vừa trình diễn các mục khác.

Với IBM Data Studio, bạn còn có thể làm việc với các máy chủ dữ liệu khác, như Informix. Hiện tại, các công ty làm việc với nhiều máy chủ dữ liệu và có nhiều nhóm quản trị và phát triển cơ sở dữ liệu nhỏ đã có thêm các điều kiện để làm việc và quản lý tất cả các công việc trên với chỉ một công cụ.

Chú ý:

Để biết thêm chi tiết về Data studio, được đề cập trong cuốn sách miễn phí Nhập môn Data Studio và ià một phần trong bộ sách này. Nó sẽ được phát hành vào tháng 10 năm 2009.

5.2 Control Center (deprecated)Trước khi có DB2 9.7, công cụ chủ yếu cho việc quản trị cơ sở dữ liệu là Control Center, như được mô tả trong Hình 5.4.

Page 80: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

80 Nhap mon He quan tri ca sa dCr lieu DB2

- If l lx lCcrtf oi Center selected Edt view Tools He*>

ss s 5s © 0 i j s ¡= ®

c Object View

Control Center

B Q AM Systems

FtAULCWONGl

R AJI Databases

□ MVDB

® □ RESEARCH

R □ SAMPLE

&223V ie w

£ 3 AJwun

l°1 Nicknames

R t - £ ] Cache Objects

CD Event Monitors

C ] Buffet Poob

ffl CD Applcation Objects

ffl Q3 User «ndGioup Objects

ffl CD Fedeiated Database Objects

Q ] ><Ml Schema Repository C><SR)

SB □ SOFTD.O

SB □ SOFTD.P

SB □ SOFTD.I

RAULCH0NG1 DB2 SiMPLE • Tables

Scfwrcag | Table spaced | C oT m yt? | Irvjex tatte spaces | L yg e d a a table spa iesHams

® ACT ARFCHO USERSPACE1

® ADEFUSR ARFCHO USERSPACE1

g g CATALOG ARFCHO IBMDB2SAM

® CL_SCHED ARFCHO... USERS PACE 1

f f l CUSTOMER ARFCHO... I8MDB2SAM...

® EMP.FHOTO ARFCHO . USERSPACE1

g g EMP.RESU. ARFCHO... USERS PACE 1

8 5 EMPLOYEE ARFCHO... USERSPACE1

£ ] Trigfleis ® EMPMDC ARFCHO. I8MDB2SAM.. T 10000 12/19/06

£ ] Schemas ® EMPPRCUACT ARFCHO USERS PACE1 T -1

CD Indexes ® HMON_ATM_INFO |D0LS SYSTOOLSP T 130 2 /7 /074 !

C j Table Spaces 533 HMON COL. SYSTOOLS SYSTOOLSP.. T 0 2/7/07 4:]

tfie g | Caidinattyg | Statistics ti

130 of 130 items depte/ed i AZ § > ^ t ? E f Default View

m T ob le DEPARTMENT

SchemaCreotcxColumn?

: ARFCHONG : ARFCHONG : 5

Actions:

Open

g g Query

Show R ela te« Obiects

Key Name Data type | Length Nulabfe

<?£ DEPTNO CHARACTER I3 NoDEPTNAME VARCH4R 36 NoMGRN0 CHARACTER 6 Ye*ADMRDEPT CHARACTER 3 NoLOCATION CHARACTER 16 Ves

" j

Hinh 5.4 - DB2 Control Center

Control Center (Trung tarn dieu khien) la cong cu tich hgp cho phep ban:

• Hien thj cac he thong, cac the hien, cac ca sc dCr lieu, cac doi tirgng dCr lieu cua ban;

• Khai tao, thay doi va quan ly cac ca so’ dCr lieu va cac doi tirong dCr lieu;

■ Chay cac cong cu do hoa khac cua DB2

Khung phia ben trai cung cap cay phan cap trirc quan cua cac doi tirgng d& lieu trong mot hoac nhieu he thong cua ban, cung cap cac “thir muc” cho cac Bang, Khung nhin... Khi ban nhay kep vao mot thir muc (vi du, thy muc Tables, nhir trong Hinh 5.4), khung phia ben phai se liet ke tat ca cac doi timing lien quan, trong trirang hgp nay, tat ca cac bang tirang irng trong ca sa dCr lieu sam ple . Neu ban chon mot bang da cho trong khung tren ben phai, khung goc du,6,i ben phai se cung cap cac thong tin chi tiet han ve bang do.

Nhan chuot phai vao cac thu1 muc hoac doi tirgng khac trong cay Doi tirgng se hien thi ra thirc dan co the ap dung doi vai thtr muc hoac doi tirgng dirge chon. Vi du, khi nhan chuot phai vao mot the hien va chon Configure parameters cho phep ban quan sat va cap nhat cac tep cau hinh quan ly ca sa dCr lieu. Giong nhir the, neu ban nhan chuot phai len tren mot Ca sa dCr lieu va chon Configure parameters, ban co the quan sat va cap nhat cac

Page 81: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 5 - Các công cụ của DB2 81

tệp cấu hình cho cơ sở dữ liệu đó. Các thông số môi trường DB2 và các thông số cấu hình sẽ được thảo luận chi tiết trong Chương 5, Môi trường DB2.

Lần đầu tiên bạn khởi động Control Center, bạn phải lựa chọn kiểu hiển thị nào để sử dụng. Lựa chọn kiểu hiển thị xác định các kiểu tùy chọn và các đối tượng cơ sở dữ liệu được trình bày. Hình 5.5 hiển thị Hộp thoại lựa chọn kiểu hiển thị của Control Center.

x jControl Center View

Control Center View

Specify the Control Center view that you want to display.

(? Basic

C Advanced

C Custom Modify..

Details

The basic view provides core DB2 functionality which Includes the essential objects, such as databases, tables and stored procedures.

r Show this window at startup timej

OK Cancel Help

Hinh 5.5 - Hộp thoại lựa chọn kiểu hiển thị của Control Center

Kiểu hiển thị Basic cung cấp các chức năng cốt lõi của DB2. Kiểu hiển thị Advanced cung cấp nhiều tùy chọn và chức năng hơn. Kiểu hiển thị Custom cho phép bạn tùy chỉnh các chức năng, tùy chọn và đối tượng mà bạn thấy.

Để gọi lại Hộp thoại tùy chọn kiểu hiển thị cho Control Center, chọn Tools -> Customize Control Center như trong Hinh 5.6.

Page 82: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

82 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Hình 5.6 - Customizing the Control Center

5.2.1 Khởi động Control Center

Có rất nhiều cách để khời động Control Center:

■ Thông qua thực đơn Start của Windows

- Thực thi lệnh db2cc từ dấu nhắc lệnh

Ũ■ Nhấn vào biểu tượng Control Center

nào khác của công cụ DB2 GUItrên thanh công cụ của bất kỳ công cụ

Sử dụng biểu tượng DB2 trong khay hệ thống của Windows như trong Hình 5.7 (nhấn chuột phải lên biểu tượng DB2 màu xanh lá cây và chọn lệnh thực thi là DB2 Control Center)

062 Control Center ...Enable Quick Launch of Control Center

Stop (DB2)

✓ Latndi Tool at startle Exit 2:04PM

1 ị) ¿ỳ® lft|@ Friday

Right click on the green DB2 icon and select the DB2 Control Center menu option

Hình 5.7 - Khởi động DB2 Control Center từ khay hệ thống của Windows

Page 83: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 5 - Các công cụ của DB2 83

5.3 Nhập lệnh trực tiếp (deprecated)Sử dụng cửa sổ nhập lệnh của DB2, bạn có thể thực thi các lệnh DB2, SQL và các câu lệnh XQuery, phân tích kế hoạch thực hiện của một câu lệnh, và xem hoặc sửa lại kết quả của câu truy vấn. Hình 5.8 là hình ảnh của Cửa sổ nhập lệnh cùng với mô tả ngắn gọn các thành phần của nó.

Back to Control Center view —

Input area

Output area

Qontroi c « w r s e ie t tto £0* View Ioow Metp

h V? « E3 i* SJ -V A ** '9 0 ®—► C<yclV»y.| )Cwm»fw)eo<o>j|X-----

Comm>r<H I OiKff p»tuk< I Ait*»» Plm |

ß iầ

Connect loo !n:oỉMC 103

n t n t - M2/WT a .2 .03« . a u th o r t l« t»©» 10 * STSTERLocal a l l u • 3in fix

SC co«m*ct Ion to the t u g t t baa a

I H««eh c«««f AIM» CWk CD

Command Editor ' view selected

Add a database connection

Database currently connected to

Character used to 'delimit the end of a SQL statement or DB2 command

Hinh 5.8 - Ci>a so nhap lenh cua DB2

Trong vùng nhập lệnh (input area), bạn có thẻ nhập nhiều câu lệnh cùng lúc, nhưng cần đảm bảo tất cả các câu lệnh kết thúc bằng một ký tự kết thúc. Khi bạn ấn chọn nút thực hiện (xem hình 5.9, nút đầu tiên bên trái trên), các câu lệnh sẽ được thực hiện lần lượt. Nếu bạn đánh dấu một câu lệnh nào đó thì chỉ mình câu lệnh này sẽ được thực hiện. Một kết nối tới cơ sở dữ liệu cần phải được thiết lập trước khi thực hiện bất kỳ câu lệnh SQL nào. Song, bạn cũng có thể chèn câu lệnh thực hiện kết nối vào đoạn lệnh của mình để thiết lập một kết nối tới cơ sở dữ liệu.

Commands Query Results Access Plan

^ <Ẫ?— :F w 4 a tln l SAMPLE a Add...

Runs the command (Can also use the QIRL+Eiitsr shortcut)

Runs the command and generates an access plan (more on this later)

Generates an access plan without running the command (more on this later)

Hinh 5.9 - Cửa sổ nhập lệnh - Thẻ lệnh

Page 84: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

84 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

5.3.1 Chạy trình Nhập lệnh trực tiếp

Bạn có thể khởi động Cửa sổ nhập lệnh bằng một trong nhiều cách sau đây:

■ Từ Start của Windows: start -> Programs -> IBM DB2 -> DB2COPY1 (Default) -> Command Line Tools -> Command Editor

■ Từ một cửa sổ nhập lệnh, gõ db2ce

* Từ thực đơn Tools của Trung tâm điều khiển

■ Nhúng trong Trung tâm điều khiển:

- Nhấn phải chuột vào biểu tượng cơ sở dữ liệu SAMPLE trong khung hiển thị các đối tượng của Trung tâm điều khiển, sau đó chọn menu Query.

- Bất kỳ khi nào một đối tượng mà bạn có thể truy vấn được chọn (cơ sở dữ liệu, bảng...), bạn có thể khởi động Cửa sổ nhập lệnh bằng cách nhấn vào đường dẫn Query trong khung thông tin chi tiết về đối tượng của Trung tâm điều khiển.

Hình 5.10 - Biểu tượng Cửa sổ nhập lệnh trong Trung tâm điều khiển

5.3.2 Thêm một kết nối cơ sờ dữ liệu

Để thêm một kết nối vào cơ sở dữ liệu, nhấn vào nút Add (xem hình 5.8). Một hộp thoại như trong hình 5.11 sẽ xuất hiện.

Page 85: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 5 - Các công cụ của DB2 85

Check this box to use the ID and password of the user currently logged in to the operating system

EJ Specify Target * 1

T arget type

Available targets

DB2 Database for Lnux, UNIX and Windows

Select a database configured on the system

* f " Use implicit credential (local databases only)

User ID |

Password I

Valid operating system user ID and pass'.scrd

OK Cancel | Help

Hình 5.11 - Thêm một kết nối cơ sở dữ liệu

5.4 Thủ thuật trợ giúp SQL (deprecated)Nếu bạn không quen thuộc với ngôn ngữ SQL và thích sử dụng một trình hỗ trợ hoặc hướng dẫn tự động sinh mã SQL, lúc này trình trợ giúp SQL Assist Wizard - một công cụ sẵn có từ trình soạn thảo dòng lệnh (Command Editor) - sẽ giúp bạn. Như hình 5.12 bên dưới, bạn có thể triệu gọi trình trợ giúp SQL Assist Wizard trong Command Editor bằng cách nhấp chuột vào biểu tượng cuối cùng có ký hiệu SQL. Lưu ý rằng biểu tượng này sẽ chỉ hiển thị sau khi bạn đã kết nối vào cơ sở dữ liệu.

Page 86: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

86 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

SQL Assist Wizard can also be launched from the Selected menu item

EĐ C o m m and Ed itor 1 -

Command Edầor Selected Edit

SQL Assist Wizard icon

Hình 5.12 - Gọi trình trợ giúp SQL Assist Wizard

Hình 5.13 trình bày về trình trợ giúp SQL Assist Wizard. Trình trợ giúp này rất dễ sử dụng. Đầu tiên, bạn chọn kiểu của câu lệnh SQL mà bạn cần trợ giúp (SELECT, INSERT, UPDATE, DELETE). Tùy theo câu lệnh bạn chọn, các tùy chọn khác nhau sẽ được hiển thị ra. ờ phần cuối của cửa sổ, bạn sẽ nhìn thấy câu lệnh SQL được hình thành như thế nào khi bạn nhấn chọn từng tùy chọn khác trong trình trợ giúp.

Page 87: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 5 - Các công cụ của DB2 87

Sections of the SQL Query.

The query constructed so far.

r*TM I1m e t 'II «w n )

J ■ <*» »I1*»» fm M I V ' yoi»«i

fl ; w 6 ' I M O tM )

«!í«*

r l •»w;

Hình 5.13 - Trình trợ giúp SQL Assist wizard

5.5 Nút “Show SQL” (deprecated)Hầu hết các công cụ và trình trợ giúp đồ họa GUI của DB2 cho phép bạn xem lại và thao tác trên câu lệnh hiện thời hoặc câu lệnh SQL được tạo bằng cách sử dụng công cụ hoặc trình trợ giúp. Để xem phần này, nhấp chuột vào nút Show SQL trong công cụ bạn đang thao tác, như hình 5.14 và hình 5.15

O K J Cancel I^ ^ S h o ^ S Q ^ ^ I Help I

Hình 5.14 - Nút “Show SQL”

_ x jCONNECT TO SAMPLE,CREATE view TEDWAS.V1EW1 [(columnsAS [W ITH (com m on_table_expression, ..)]SELECT <colurrms>FROM <tables>WHERE <search conditions>.CONNECT RESET.

Close I Save I Help

Hình 5.15 - Đầu ra của một phần trình bày về nút “Show SQL”

Page 88: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

88 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Khả năng hiển thị lại những câu lệnh SQL và những dòng lệnh là rất có ích cho việc học cú pháp SQL, cũng như để lưu lại những câu lệnh hoặc dòng lệnh vào một tệp để tiện sử dụng về sau này. Bạn cũng có thể tạo kịch bản bằng cách sử dụng lại những câu lệnh và dòng lệnh đã được tạo ra trước đó.

5.6 Trung tâm tác vụ (deprecated)Công cụ Trung tâm tác vụ với giao diện đồ họa người dùng cho phép bạn tạo ra những tác vụ: một tập hợp những hoạt động, như chạy các lệnh DB2, các lệnh của hệ điều hành, hay những kịch bản. Các thao tác tiếp theo sau đó sẽ được thực hiện tùy theo việc tác vụ đó thất bại hay thành công. Lấy ví dụ một tác vụ sao lưu một cơ sở dữ liệu quan trọng vào lúc 3 giờ sáng. Nếu tác vụ này được thực hiện thành công, một email sẽ được gửi đến người quản trị cơ sở dữ liệu (DBA) để cung cấp thông tin này. Mặt khác, nếu tác vụ sao lưu này không được thực hiện thành công, Trung tâm tác vụ sẽ gửi thông báo đến DBA. Hình 5.16 minh họa Trung tâm tác vụ.

-islxjTask Selected Edit View Tools Help

ss s m D -â S ’ ®

Scheduler system ỊraULCHONG Refresh options | n o automatic refresh ▼J

D B 2- TOOLSDB- TOOLS iAz <ÌỲ

Description Run System s Schecule

i lŨ of 0 items displayed 1 z &Û t f Overview by cat. . * Visw

Hình 5.16 - Trung tâm tác vụ

Page 89: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 5 - Các công cụ của DB2 89

5.6.1 Cơ sở dữ liệu Tools Catalog (deprecated)

Tất cả các thông tin chi tiết về các tác vụ và lịch thực hiện tác vụ được lưu trữ trong một cơ sở dữ liệu DB2 riêng biệt, gọi là cơ sở dữ liệu Tools Catalog. Cơ sở dữ liệu này phải được tạo sẵn từ trước để có thể lên lịch cho các tác vụ. Để tạo một cơ sở dữ liệu Tools Catalog, bạn có thể sử dụng câu lệnh sau đây:CREATE TOOLS CATALOG systools CREATE NEW DATABASE toolsdb

Trong ví dụ ở trên, systools là tên sơ đồ (schema name) của tất cả các bảng trong cơ sở dữ liệu, và tên của cơ sở dữ liệu là to o ls d b . Chúng ta sẽ nói nhiều hơn về các sơ đồ (schema) trong Chương 8, Làm việc với các đối tượng dữ liệu.

5.6.1.1 Khời động Trung tâm tác vụ

Bạn có thể khởi động Trung tâm tác vụ từ Trung tâm điều khiển bằng cách nhấn vào Tools -> Task Center, như minh họa trong hình 5.17. Một cách khác, bạn có thể khởi động công cụ này từ menu Start của Windows: Start -> Programs -> IBM DB2 -> DB2C0PY1 (Default) -> General Administration Tools -> Task Center.

Control Center

Control CenterSelected Edit V iew Tools Help

% -Í? -ữ 3 ^ fe 0 ẳ ?<Cd Object View

-C 3 All Syctcmc CD All Databases

4 □ SAMPLE

CD Tables CD Views

CD Aliases £ ] Nicknames

ffl CD Cache Objects

C3 Triggers CD Schemas

Wizards

Replication Center

Satellite Adm inistration Center

Command Editor

Health Center

Journal

L icense Center

Development Center

C onfiguration Assistant

Customize Control Center.

Tools Settings

CD IndexesCD Table Spaces 2 of 2 items displayed i z §r> 0 8 c f Cf Default View View

Cd Buffer Pools

ffl CJ Application Objects s Cd User and Group Objects

M Control Center ® b f i l n X

Actions: Current v ie w of the Control Center: Advanced

w CD Federated Database Objects Ĩ 5 Customize Control

Hình 5.17 - Khời động Trung tâm tác vụ

5.6.1.2 Lên lịch với Trung tâm tác vụ

Page 90: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

90 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Bất kỳ loại kịch bản nào (dù có được tạo bằng công cụ có giao diện đồ họa người dùng GUI của DB2 hay không) cũng có thể được lên lịch bằng cách sử dụng Trung tâm tác vụ. Các tác vụ sẽ được chạy vào thời điểm được lên lịch từ hệ thống nơi mà bạn đã tạo cơ sở dữ liệu tools catalog. Chúng tôi khuyến khích bạn tự mình khám phá Trung tâm tác vụ. Việc tạo một tác vụ khá đơn giản.

5.7 Nhật ký - Journal (deprecated)Công cụ đồ họa Journal trong DB2 cung cấp cho nhà quản lý cơ sở dữ liệu một bộ nhật ký với các hoạt động trên một mẫu đơn trực tuyến. Hình 5.18 cho thấy thông tin bạn có thể thu được từ Nhật ký.

0 kxjrnalJournal Selected Edit view Tools Help

Sb C * & $ *9 ®

Task History Database History | Messages] Notification Log |

Database ITEDW AS DB2 SAMPLE

Objecl Type $ 1 Name $ | Operation s Start Date s s¡5 ^ T ab i^ ” TAB1 Drop Sep 19.2004

Table TAB1 Drop Sep 19.2004

■Ịỹ Table Space SYSTOOLSPACE Create Sep 18 2004

Table space SYSTOOLSPACE Create Sep 18 2004

j . Table [TAB1 Drop Sep 19,2004 1Table Space SYSTOOLSPACE Create Sep 18,2004

Table TAB1 Drop Sep 19.2004

«17 of 7 Items displayed l \ &■' M s? CT Default View View

Hinh 5.18 - Nhat ky

Page 91: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 5 - Các công cụ của DB2 91

Loại thông tin Mô tả

Task History (Lịch sử tác vụ)

Tất cả các tác vụ theo lịch trình đã xảy ra và tình trạng thành công của chúng

Database History (Lịch sử cơ sở dữ liệu)

Bản ghi chép về các hoạt động của cơ sở dữ liệu đã thi hành (sao lưu, phục hồi, REORGs, v.v.)

Message (thông điệp)

Lịch sử của các thông điệp được trả về từ các công cụ của DB2. Điều này rất hữu ích nếu bạn muốn gọi lại và so sánh các thông báo lỗi cụ, hay nếu bạn đóng một hộp thoại quá nhanh hay do bất cẩn.

Notification Log (Biên bản các thông báo)

Chứa các thông điệp mức hệ thống. Các lỗi nghiêm trọng được ghi nhận ở đây.

Bảng 5.2 - Các thông tin mà Nhật kỷ cung cấp

5.7.1 Khởi chạy Journal

Bạn có thể khởi chạy Journal từ Trung tâm điều khiển bằng cách nhấp vào Tools -> Jounal, như hình 5.19. Ngoài ra, bạn còn có thể khởi động công cụ này từ thực đơn của Start của Windows: start -> Programs -> IBM DB2 -> DB2COPY1 (Default) -> General Administration Tools -> Journal.

m Control CenterControl Center Selected Edit view Tools Help

' j § H3 ỉ » u y m «1 §.

Qj Object View

IS Control Center 51 C] All Systems 9 O All Databases

0 ktVJjldCj Tables C] Views £ ] Aliases CD Nicknames Q Cache Objects Q Triggers

Wizards...

Replication Center

Satellite Administration Center

Command Editor

Task Center

Health Center

License Center

Development Center

Configuration Assistant

Customize Control Center.

Tools Settings

r CD Indexes I CD Table SpacesŨ Table Spaces 14 of 14 items displayed i"z 4* 0 0 Ĩ? c r Default View * View •

: Ũ Buffer Pools ạ Ũ Application Objects á "D User and Group Objects 3 C j Federated Database Objects

0 Database - SAMPLE ® H ẹ !a X

Alias name : SAMPLE Not ConnectedSystem TEDWAS Type Local

( ÿ Conned

A ctions:

iOAODiication

IS1 Design

^ A c tiv ity

Ic3 Query

Q Create New

Hình 5.19 ■ Khời chạy nhật ký

Page 92: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

92 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

5.8 Health Monitor (deprecated)Health Monitor là một chương trình ngầm được mặc định chạy bên trong cơ chế của DB2, nó theo dõi tất cả các khía cạnh liên quan đến sức khỏe của cơ sở dữ liệu (bộ nhớ, không gian quản lý, các hoạt động tự động đã được xác định trước...). Khi một số bộ phận của DB2 đang hoạt động bên ngoài các thông số được thiết lập, một ngoại lệ sẽ được gọi và gửi lưu ý đến nhà quản trị cơ sở dữ liệu. Có ba loại trạng thái cảnh báo:

■ Attention: một trạng thái không bình thường.

■ Warning: một trạng thái không quan trọng đến mức cần lưu tâm ngay, nhưng có thể chỉ ra rằng hệ thống không được tối ưu

■ Alarm: trạng thái nghiêm trọng đòi hỏi có một hành động tức thì.

Health Center có thể bật hoặc tắt bằng cách sử dụng tham số HEALTH_MON của cấu hình quản I cơ sở dữ liệu.

5.8.1 Health Center

Health Center là một công cụ đồ họa dùng để tương tác với Health Monitor. Health Center phân tích các cảnh báo về sức khỏe của hệ thống qua các mức thể hiện, cơ sở dữ liệu, và table space. Hình 5.20 cho thấy công cụ Health Center.

chọn thời ẹian lim tưcri min hình

Hình 5.20 - Health Center

5.8.1.1 Khởi chạy Health Center

Bạn có thể khởi động Health Center lừ Control Center bằng cách chọn Tools -> Health Center. Điều này được thể hiện qua hình 5.21. Bạn cũng có thể khởi động công cụ này từ Start -> Programs-> IBM DB2 -> DB2COPY1 (Default) -> Monitoring Tools -> Health Center

Page 93: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chu’cmg 5 - Câc công eu cüa DB2 93

Control Center Selected Eoit view Tools Help

î f c iS 0 & S3 © %

- 0 A il Systems

- 0 A ll Databases

a 0 SAMPLE

0 Tables

0 Views

r-- C3 A liases

0 Nicknames

1*1 0 Cache Objects

O Tnggers r—Q Schemas

C3 Indexes

0 Table Spaces

0 Event Monitors

0 Buffer Pools

B 0 Application Objects

m 0 User and Group Objects

I*] 0 Federated Dalabase Objects

Wizards.

Replication Center Satellite Administration Centsr Command Editor Task Center

JournalLicense Center Development Center Configuration Assistant

Customize Control Center..

Toole Settings

12 o f 2 iiem s disaiayod 4 ? (JO C? C f Default v iew V iew j

11 C on tro l Center ® H e l a x

A ctio ns: C u rren t v ie w o f th e C ontro l C e n te r Advanced

f ! Customer« Contrnl

Hinh 5.21 - Khô>i dông Health Center

5.8.12 Câu hinh thông bâo cüa Health Center

Mot khi Health Center dâ chay, ban cô the lâp câu hînh cac thông bâo sic cô bang câch nhân chuôt trên mue Health Center -> Configure -> Alert Notification nhir chï ra à hinh 5.22. Thông bâo sy co cho phép ban dira thông tin tên ngiroi, dja chî thu5 diên ti> hoac so mây nhân tin cüa ngipài nhân thông bâo néu cô thông bâo su1 co xây ra.

Page 94: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

94 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Healtn C e n te r E d it V iew Tools Help

s- ow * I Cs a * H3 am rA §0? Hs? fë p G3 §= @ | l0 minutesHpalth In rtira tn r ?sPttinn<5Health Ind ica tor Settings

S hu t Down DB2 Tools

Exit ie Health Center ■ - Leaenc

s <^DB2 Howto use the Health Center:To view alerts within an instance or database, select the object on the left-hand side. Databases are listed below their parent instance. Filter the contents on the left by selecting the sta:e toggle- buttons at the top o flhe navigation view.

Current Instance Status:

Warning:

Attention

Last refresh:

Alarm:

9/28/04 12:16 AM R e fre s i

□ 0 Instances Q View O bjects in A larm

A 0 Instances a V iew O bjects in A la rm o r W arn ina

s 1 Instances O V iew p t)je,c.t ? in A o y A ISrt

Normal

Unknown

♦ 0 Instances ♦ V iew All

? 0 Instances ?

o 0 Instances oNot monitored.

Health monitor data is refreshed. (9 /28/04 12:16 A M )

Hình 5.22 - Thông báo sự cố

5.9 Quản lí bộ nhớ tự động

Quản lí bộ nhớ tự động (Self-tuning memory manager - STMM) được giới thiệu lần đầu tiên trong phiên bản DB2 9 là một trong số các tính năng tự động nhằm đơn giản hóa các tác vụ cấu hình bộ nhớ bằng cách tự động thiết lập giá trị vào các tham số đầu vào của chúng. Khi được kích hoạt, bộ điều chỉnh sẽ linh hoạt và tự động phân phối các vùng nhớ còn trống đến các tác vụ hiện cần thém vùng nhớ của cơ sở dữ liệu. Trình điều chỉnh bộ nhớ đáp ứng việc thay đổi của các khối công việc đặc thù, bằng cách hiệu chỉnh các giá trị của tham số truyền vào của cấu hình bộ nhớ và kích thước của bộ đệm nhằm tối ưu hóa hiệu suất làm việc. Để mở STMM, ta cập nhật thông số db cfg SELF_TUNING J/IEM sang ON.

Một số các tính năng tính toán tự động khác như tự bảo trì (automatic maintenance) và tự cấu hình thiết bị lưu trữ (automatic storage) được đề cập đến trong những phần khác của cuốn sách này.

5.10 Kịch bảnChúng ta sẽ thấy hữu ích khi có thể tạo ra các tệp kịch bản biểu diễn một vài lệnh DB2 hoặc câu lệnh SQL lặp lại. Ví dụ, hàng ngày một người quản trị cơ sở dữ liệu (DBA) có thể muốn chạy một kịch bản được đưa ra để kiểm tra số lượng hàng của một bảng quan trọng. Có hai dạng kịch bản chung, đó là:

■ Các kịch bản SQL.

■ Các kịch bản hệ điều hành (Shell).

Page 95: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 5 - Các công cụ của DB2 95

5.10.1 Các kịch bản SQL

Các kịch bản SQL bao gồm các câu lệnh truy vấn và các lệnh tạo cơ sở dữ liệu. Những kịch bản này khá dễ hiểu và không phụ thuộc vào hệ điều hành cụ thể nào. Tuy nhiên các biến và các tham số không được hỗ trợ trong kịch bản SQL. Ví dụ, các lệnh được trình bày trong liệt kê 5.1 dưới đây được lưu lại trong một tệp có tên s c r i p t l . db2:

CONNECT TO EXPRESS;CREATE TABLE userl.mytable

( coll INTEGER NOT NULL,COl2 VARCHAR(40),COl3 DECIMAL(9,2));

SELECT * FROM userl.raytable FETCH FIRST 10 ROWS ONLY;COMMIT;

Liệt kê 5.1 - Một mẫu kịch bản SQL được lưu trong tệp scriptl .db2

ở kịch bản trên, tất cả các câu lệnh đều là câu lệnh SQL và mỗi câu lệnh được phân cách nhau bởi dấu phân cách câu lệnh, trong trường hợp này là dấu chẩm phẩy (;). Tên của tệp có thể không cần sử dụng phần mở rộng “db2”. Bất kỳ phần mở rộng nào đều có thể sử dụng được.

5.10.1.1 Thực thi kịch bản SQL

Một kịch bản SQL có thể được thực thi từ trình soạn thảo lệnh (Command Editor) hoặc cửa sổ dòng lệnh DB2 (DB2 Command Window) trên hệ điều hành Windows, hoặc từ Linux Shell. Để chạy kịch bản trong liệt kê 5.1 từ cửa sổ dòng lệnh DB2 hoặc từ Linux Shell, bạn có thể sử dụng lệnh sau:

đb2 -t - V -f scriptl.db2 -z scriptl.log

hoặc tương đương với lệnh:đb2 -tvf scriptl.db2 - 2 scriptl.log

Trong câu lệnh trên:

-t chỉ định rằng các câu lệnh sử dụng kí tự kết thúc câu lệnh mặc định (đó là một dấu chấm phẩy).

-V chỉ định chế độ có lời (verbose mode), ở chế độ này DB2 sẽ hiển thị câu lệnh đang được thực thi lên màn hình.

-f chỉ định rằng tên của tệp nằm ngay sau cờ này là một tệp kịch bản.

-z chỉ định rằng tên của tệp nằm ngay sau cờ này được sử dụng vào việc hiển thị lên màn hình trong quá trình phân tích sau đó (đây là tùy chọn, nhưng được khuyên dùng).

Khi cờ -t được sử dụng và không có dấu phân cách câu lệnh nào được chỉ ra thì dấu chấm phẩy được mặc định là dấu phân cách câu lệnh. Có thể có một số tình huống mà

Page 96: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

96 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

dấu phân cách câu lệnh khác với mặc định là cần thiết. Ví dụ, một kịch bản chứa mã SQL PL cần phải sử dụng một kí tự kết thúc câu lệnh khác, hơn là phải sử dụng kí tự mặc định- dấu chấm phẩy, bởi vì các dấu chấm phẩy đã được sử dụng trong việc định nghĩa đối tượng SQL PL để kết thúc các câu lệnh thủ tục.

Ví dụ, trong tệp kịch bản functions . db2 được trình bày trong liệt kê 5.2 phía dưới, bạn có thể thấy nó có chứa câu lệnh tạo một hàm, và một dấu chấm phẩy cần được đặt ở phía cuối câu lệnh SELECT bởi vì nó là một phần cú pháp yêu cầu bên trong hàm. Đẻ kết thúc câu lệnh CREATE FUNCTION chúng ta sử dụng một dấu chấm than (!). Nếu chúng ta sử dụng dấu chấm phẩy để kết thúc câu lệnh tạo hàm thì sẽ có một xung đột trong kịch bản tạo hàm với kịch bản được sử dụng trong câu lệnh SELECT, khi đó kết quả là một lỗi được đưa ra bởi DB2.CREATE FUNCTION fl o

SELECT ... ;

END!

Liệt kê 5.2- Nội dung của tệp kịch bản functions.db2

Để thông báo cho DB2 biết rằng một kí tự kết thúc câu lệnh khác mặc định được sử dụng, ta sử dụng cờ -d, theo ngay sau đó là kí tự kết thúc câu lệnh mong muốn, như được chỉ ra dưới đây:

db2 -td! - V -f functions.db2 -z functions.log

Để biết thêm về các cờ khác có thể được sử dụng khi chạy lệnh từ cửa sổ dòng lệnh (Command Window) hoặc từ Linux Shell, sử dụng lệnh sau:

db2 list command options

5.10.2 Kịch bản hệ điều hành (Shell)

Các kịch bản hệ điều hành cung cấp tính linh hoạt và mạnh mẽ hơn so với các kịch bản SQL, bởi vì chúng cho chúng ta khả năng thêm vào phần lô-gíc lập trình. Chúng phụ thuộc hệ điều hành, nhưng chúng hỗ trự các tham số và các biến. Liệt kê 5.3 trình bày ví dụ của một kịch bản hệ điều hành Windows đơn giản:

set DBPATH=C:set DBNAME=PRODEXPRset MEMORY=25db2 CREATE DATABASE %DBNAME% ON %DBPATH% AUTOCONFIGURE USING

MEM_PERCENT %MEMORY% APPLY DB AND DBM db2 CONNECT TO %DBNAME% USER %1 USING %2

del schema.log triggers.log app_objects.log db2 set schema userldb2 -t -V -f schema.db2 -z schema.logdb2 -td0 - V -f triggers.db2 -z triggers.logdb2 -td@ - V -f functions.db2 -z functions.log

Page 97: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 5 - Các công cụ của DB2 97

Liệt kê 5.3 - N ội dung của tệp kịch bản hệ điều hành create_database.bat

Để thực thi kịch bản hệ điều hành này từ chế độ dòng lệnh, bạn có thể sử dụng lệnh sau với Windows:

create_database.bat db2admin ibmdb2

Trong đó, db2admin là định danh người sử dụng (userlD) và là tham số đầu tiên của kịch bản, còn Ỉbmdb2 là mật khẩu và là tham số thứ hai của kịch bản.

Trên Windows sử dụng phần mỏ' rộng “bat” để chỉ cho hệ điều hành biết rằng đây là một tệp có khả năng thực thi theo khối. Trên Linux, bạn cần phải thay đổi chế độ trên tệp tin để chỉ định rằng tệp tin này có khả năng thực thi bằng cách sử dụng lệnh chm od +x . Sau đó, bạn có thể chạy lệnh giống như cách đề cập ở trên.

5.11 Xét tới hệ điều hành Windows VistaĐặc trưng của bộ điều khiển truy cập người sử dụng (UAC) trong Windows Vista khiến cho các ứng dụng khởi động theo đúng chuẩn, thậm chí định danh người sử dụng là một quản trị viên hệ thống. Điều này có nghĩa là công cụ DB2 hoặc các lệnh bạn khởi động trong Vista sẽ giống như là đang chạy, nhưng sẽ nảy sinh vấn đề có liên quan tới việc truy cập. Để tránh vấn đề này cần phải sử dụng biểu tượng tắt có tên “Command window - Administrator” (“cửa sổ dòng lệnh - người quản trị”) được tạo ra trong quá trình cài đặt cho những người sử dụng Vista. Từ cửa sổ này bạn có thể chạy các lệnh khác và khởi chạy các công cụ khác (sử dụng các lệnh trình bày bảng 5.1 ở đầu chương này). Tiếp đó, từ bảng chọn Windows Vista start hoặc bất kì biểu tượng tắt DB2 nào, tìm công cụ DB2 bạn muốn chạy, nhấn chuột phải vào đó và chọn chạy dưới quyền quản trị viên (Run as administrate)/).

Nếu chế độ bảo mật mở rộng DB2 được bật, đây là mặc định (xem chi tiết chương 10, Bảo mật cơ sở dữ liệu), bạn phải chắc chắn rằng định danh người sử dụng là một thành viên trong nhóm quản trị viên DB2 (DB2ADMNS) để khởi chạy các công cụ đồ họa đóng vai trò như trung tâm điều khiển (Control Center).

5.12 Kết luậnTrong chương này chúng ta đã xem xét một mảng lớn các công cụ cần thiết cho việc quản trị, định cấu hình, và quản lí máy chủ cơ sở dữ liệu DB2.

Phiên bản DB2 9.7 sắp tới sẽ coi IBM Data studio như công cụ quản trị chính cung cấp một hướng tiếp cận mới đối với việc quản trị cơ sở dữ liệu và công việc phát triển.

Chúng ta cũng đã thảo luận về các công cụ giao diện người sử dụng đồ họa (GUI) hiện tại như: Control Center, SQL Assist wizard, Tash Center và Journal, Health Agent và Monitor. Tuy nhiên, các công cụ xử lí dòng lệnh (Command Line Processor) và cửa sổ dòng lệnh (Command Window) sẽ tiếp tục trở thành một phần của ứng dụng trong các phiên bản 9.7. Cũng vậy, công cụ Self Tuning Memory Management chiếm một phần lớn trong việc xử lí tối ưu hóa cơ sở dữ liệu.

Page 98: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

98 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Yếu tố chủ chốt trong các bộ công cụ của bất kì người quản trị cơ sở dữ liệu nào là việc sử dụng các kịch bản để thực thi các hàm và các lệnh DB2. Trong chương này, chúng ta đã có một cái nhìn sâu rộng về các kịch bản hệ điều hành và các kịch bản SQL, đặc biệt là làm cách nào chúng ta soạn thảo, lưu trữ và thực thi các kịch bản đó.

Cuối cùng chúng ta kết thúc với chú ý rằng làm thế nào đảm bảo cho DB2 chạy tốt trên hệ điều hành Windows Vista.

5.13 Bài tậpTrong chương này này chúng ta sẽ thực hành về các kịch bản trong DB2.

Phần 1: Sử dụng kịch bản với cơ sở dữ liệu EXPRESS

Trong phần này, ta sẽ làm quen với cơ sở dữ liệu EXPRESS bằng dòng lệnh (Command Editor) và hai kịch bản có sẵn.

Thủ tục

1. Để thuận tiện khi làm việc với các bảng và dữ liệu trong cơ sở dữ liệu EXPRESS, có hai kịch bản tên là Lab_Chpt5. db2 và Lab__Chpt5. dat đã được tạo sẵn.Kịch bản Lab_chpt5. db2 chứa các lệnh để tạo bảng do đó nó được thực hiện trước. Kịch bản Lab_chpt5.dat chứa các lệnh chèn dữ liệu vào bảng. Cả hai tệp này năm trong tệp nén expressc_book_exercises_9.7. zip đi kèm theo sách này. Để thực hiện kịch bản, hãy mở Command Editor. Chắc chắn rằng cơ sở dữ liệu vừa tạo sẽ được chọn trong danh sách kéo thả của thanh công cụ. Nếu cơ sở dữ liệu mới không xuất hiện trong danh sách, bạn hãy thêm một kết nối đến nó bằng cách sử dụng nút Add.

2. Nhấn Selected -> Open trên cửa sổ Command và chuyển đến thư mục lưu hai kịch bản. Chọn tệp Lab_Chpt5. db2 và nhấn nút OK. Nội dung của kịch bản sẽ được hiển thị trong vùng nhập lệnh của Command Editor. Nhấn nút Run để chạy kịch bản. Xác minh rằng không gặp lỗi khi chạy kịch bản.

3. Lập lại bước 2 với tệp Lab_Chpt 5 . dat.Cơ sở dữ liệu mới vừa tạo là ví dụ đơn giản về một cửa hàng bán sách trên mạng internet. Bảng BOOKS chứa tất cả thông tin về những cuốn sách được lưu trữ. Bảng CUSTOMERS

chứa thông tin về các khách hàng của cửa hàng. Cuối cùng là bảng SALES, bảng này lưu trữ thông tin về việc bán hàng. Khi khách hàng đặt mua một cuốn sách, một bản ghi được tạo ra trong bảng SALES. Dưới đây là sơ đồ quan hệ và thiết kế của các bảng.

Page 99: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 5 -C á c công cụ của DB2 99

BOOKS table

b o o k jd title cost image

(INTEGER) (INTEGER) DECIMAL(7,2) BLOB (1MB)rì„:— . | / A>,

SALES table

CUSTOMERS table

cust_id firstnme lastname address email

(INTEGER VARCHAR VARCHAR(1 VARCHAR(3 VARCHAR(1(100) 00) 00) 00)

s a le s jd prod_id cust_id qty price purch_date

(INTEGER)---

(INTEGER) (INTEGER) (INTEGER) DECIMAL(7,2) TIMESTAMP

Phần 2: Tạo một kịch bản cài đặt cho cơ sở dữ liệu EXPRESS

Các kịch bản là một cơ chế mạnh mẽ trong việc thực hiện những công việc có tính chất lặp đi lặp lại như tập hợp thống kê cho cơ sở dữ liệu, sao lưu, và triển khai cơ sở dữ liệu. Các kịch bản hộ điồu hành có lợi điổrn của việc hổ trợ các tham số kịch bản, điều này giúp cho chúng linh hoạt hơn. Trong phần này, bạn sẽ tạo ra các kịch bản hệ điều hành để triển khai cơ sở dữ liệu EXPRESS là EXPRESS2. Các kịch bản này sẽ gọi các lệnh SQL đã tạo ra trước đó cho từng đối tượng cơ sở dữ liệu. Để tiết kiệm không gian, bài tập này chỉ thể hiện những kịch bản và câu lệnh trên nền Windows. Nếu muốn làm việc trên Linux, bạn phải thực hiện những thay đổi phù hợp với sự hướng dẫn sau đây.

Thủ tue

1. Mở một trình soạn thảo văn bản và nhập vào các thông tin như hình dướiđây. Hầu hết khi các bạn gõ sẽ gặp lỗi, chúng tôi cố tình không cung cấp tệp này để các bạn làm quen và sửa các lỗi khi gặp phải.

Lưu ý rằng có thể bạn phải chỉ định đường dẫn tuyệt đối của các tệpschema, ddl, triggers . ddl và app_ob jects .ddl, các tệp này nằm trong tệp expressc_book_exercises_9 . 7 . zip được kèm theo sách này.

Page 100: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

100 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

s c rea te_data tH ise .ba t - W ordPad

R e B i t View Insert Format Help

ũ â Q t H ®

set DBPATH=c:set D B N A M E = e x p r e s s 2

r e m — the p e r c e n t a g e of m e m o r y f or t he a u t o c o n f i g u r e c o m m a n d set M E M O R Y = 2 0

db2 CREATE DATABASE %D3NAME% on %DBPATH% AUTOCONFIGURE USING MEM_PERCENT »MEMORY* APPLY DS AND DBM

db2 CONNECT TO *DBNAME% USER *1 USING *2

del scr.eraa.log t n g gers.log app_ob3eccs.log

db2 sec schema expressdb2 -t -v -f schema.ddl -z scheraa.logdb2 -wd§ -v -f triggers.ddi - z triggers.logdfc2 -td@ -v -f app_ob}ects.ddl - z app_objeccs.log

| fot H dp, press F I

2. Lưu tập tin kịch bản vào trong một thư mục như là c : \express và đặt tên làcreate_database.bat.

Lưu ý: Nếu bạn sử dụng Wordpad, trong cửa sổ hộp thoại Save As, đảm bảo bạn đã chọn tùy chọn MS-DOS Format. Nếu bạn lưu các tập tin với một đinh dạng khác Wordpad có thể tạo thêm một số ký tự ẩn, việc này có thể sẽ gây ra vấn đề trong lúc thực hiện các kịch bản. Ngoài ra, bạn hãy đặt dấu ngoặc kép bao lấy tên tập tin như thể hiện trong hình bên dưới) để đảm bảo rằng Windows không thêm phần mờ rộng .TXT.

Page 101: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 5 -C á c công cụ của DB2 101

3. Để thực thi các kịch bản tương tác với DB2, bạn phải có một môi trường dòng lệnh DB2. Để mở cửa sổ DB2 Command, chọn start -> Program Files -> IBM DB2 -> DB2C0PY1 (default) -> Command Line Tools -> Command Window. Cách khác, chọn Start-> Run, gõ db2cmd, và nhấn OK như hình dưới đây.

Run ? X

-r~") Type the name o f a program, folder, document, or 7,r / Internet resource, and Windows will open it for you.

Open: db2cmd| V

OK Cancel i Browse... ]

4. Để chạy kịch bản, bạn nhập lệnh sau vào cửa sổ Command Window:

cd C:\expresscreate_database.bat db2admin ibmđb2

Page 102: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

102 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

CA- Select DB2 CLP □ X

C:\>cd c:\expressC:\express>create_database. bat đb2adnỉn ibndb2.

l i ±r5. Bạn hãy dành ít phút để làm quen với kịch bản mà bạn vừa tạo xong. Bạn có hiểu

những gì xảy ra tại từng dòng lệnh hay không?

6. Hãy cố gắng trả lời những câu hỏi sau:

A. Kết nối cơ sở dữ liệu được thiết lập ở đâu?

B. Ký hiệu %1 và %2 có nghĩ là gì?

c. Dòng lệnh sau đây dùng để làm gì? Nó được sử dụng ở đâu? Dùng vào mục đích gì?

SET DBPATH=C:

D. Dòng lệnh sau đây dùng để làm gì?

del schema.log, triggers.log, app_objects.logE. Điều gì xảy ra khi kịch bản được gọi mà lại không có bất kỳ tham số nào?

F. Tại sao những kịch bản SQL được gọi không chứa các câu lệnh CONNECT TO? Làm thế nào đế nó kết nối với cơ sở dữ liệu?

Page 103: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

PHẦN II - HỌC DB2: QUẢN TRỊ Cơ SỞ Dữ LIỆU ■ ■

Page 104: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

6Chương 6 - Kiến trúc DB2Trong chương này, chúng ta sẽ tìm hiểu sơ bộ về kiến trúc DB2. Bạn sẽ được học về:

■ Mô hình xử lý DB2.

■ Mô hình bộ nhớ DB2

■ Các mô hình lưu trữ DB2

Chú ý:Để biết thông tin thêm về kiến trúc DB2, các bạn có thể xem video tại: http://www.channeldb2.com/video/video/show?id=807741 :Video:4482

6.1 Mô hình xử lý DB2Hình 6.1 mô tả mô hình xử lý DB2. Trong mô tả này, hình chữ nhật đại diện cho các quá trình xử lý và hình bầu dục đại diện cho các luồng. Quá trình xử lý chính của DB2 được gọi là db2sysc. Theo quy trình này có một số luồng xử lý, trong đó có một luồng chính cũng được gọi là db2sysc. Đây là luồng chính có thể sinh ra các luồng khác. Khi một ứng dụng từ xa sử dụng câu lệnh SQL CONNECT để kết nối đến máy chủ, bộ lắng nghe từ xa (remote listeners) dành cho các giao thức truyền thông sẽ nhận yêu cầu này và liên hệ với tác nhân điều phối DB2 (db2agent). Một tác nhân DB2 cũng giống như một nhân viên thực hiện các hoạt động nhân danh cho DB2. Khi ứng dụng chạy cục bộ, nghĩa là chạy trên cùng một máy chủ với DB2, các bước đều tương tự, chỉ có một tác nhân db2ipccm xử lý yêu cầu thay vì xử lý từ luồng của db2tcpcm. Trong một số trường hợp, chẳng hạn như khi được kích hoạt song song, một db2agent có thể sinh ra các tác nhân khác có vai trò như những luồng db2agntp. Các tác nhân khác thể hiện trong hình như db2pfchr, db2loggr, db2dlock cũng có thể được sử dụng cho những mục đích khác nhau. Các quy trình thường gặp được mô tả trong Bàng 6.1, và những luồng phổ biến nhất được mô tả trong Bảng 6.2.

Page 105: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 6 - Kiến trúc DB2 105

R em oteClient

Application

LocalClient

Application

db2wdog

db2vend

db2fmp

db2acd

Figure 6.1 - Mô hình xử lý DB2

Quy trình Mô tả

db2sysc (Linux)

db2syscs (Win)

Là bộ máy hay còn gọi là hệ thống điều khiển chính của DB2. Bắt đầu từ DB2 9.5, chỉ có một tiến trình đa phân luồng chính cho toàn bộ phân vùng. Tất cả các Engine Dispatchable Units (EDUs) là các luồng trong tiến trình này. Nếu không có tiến trình này, máy chủ cơ sờ dữ liệu không thể vận hành được.

db2acd

Tiến trình nền tính toán độc lập (The autonomic computing daemon), được sử dụng để thực hiện những tác vụ độc lập phía máy khách, chẳng hạn như theo dõi tình trạng, các tiện ích bảo dưỡng tự động, và lịch trình quản lý. Tiến trình này trước đây được gọi là db2hmon.

db2wdogBộ phận giám sát của DB2. Đây là nguồn gốc của bộ máy xử lý chính, db2sysc. Nó thu hồi tài nguyên nếu tiến trình db2sysc bị chấm dứt một cách bất thường.

db2vend

Tiến trình bảo vệ nhà cung cấp được giới thiệu trong DB2 9.5. Tất cả đoạn code của nhà sản xuất thứ 3 chạy bên trong tiến trình này nằm ngoài bộ máy hoạt động DB2. ứng dụng của nhà sản xuất thứ 3 là những chương trình không do IBM cung cấp, có thể tương tác với DB2, ví dụ: việc ghi nhật kí (log) có thể do quản nhà cung cấp thứ 3 thực hiện, bằng cách xác định tham số của hàm thoát ra khỏi ứng dụng của người sử dụng.

db2fmpCác tiến trình được bảo vệ sẽ chạy mã người dùng trên máy chủ bên ngoài tường lửa, bao gồm các thủ tục lưu trữ và các hàm do người

DB2 Data Server

FI

REwALL

Page 106: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

106 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

dùng định nghĩa. Tiến trình này thay thế cho những tiến trình được sử dụng trong phiên bản trước của DB2 là db2dari và db2udf.

Bảng 6.1 - Những tiến trình thường gặp của DB2

Tên luồng Mô tả

db2syscsLuồng điều khiển hệ thống, chịu trách nhiệm trong việc khởi động, tắt và quản lý các thể hiện của DB2.

db2tcpcm Bộ lắng nghe giao tiếp TCP/IP.

db2agentTác nhân điều phối đảm nhận các hoạt động liên quan cơ sở dữ liệu đại diện cho các ứng dụng (ít nhất 1 tác nhân/ kết nối, lệ thuộc vào Connection Concentrator có được kích hoạt hay không.

db2agntp

Là các tác nhân con được kích hoạt nếu thuộc tính INTRA_PARALLEL được thiết lập là YES. Luồng này thực hiện các quá trình hoạt động cơ sở dữ liệu cho ứng dụng. db2agent sẽ phối hợp hoạt động giữa những tác nhân con db2agntp khác nhau.

db2pfchr Bộ lấy sẵn dữ liệu I/O không đồng bộ của DB2 (NUMJOSERVERS)db2pclnr Bộ ghi dữ liệu I/O không đồng bộ của DB2 (NUMJOCLEANER)Bảng 6.2 - Các luồng DB2 thường gặp

6.2 Mô hình bộ nhớ DB2Mô hình bộ nhớ DB2 bao gồm các vùng khác nhau trong bộ nhớ ở mức thể hiện, mức cơ sở dữ liệu, mức ứng dụng và mức tác nhân như trong Hình 6.2. Chúng tôi sẽ không giải thích cụ thể từng vùng trong bộ nhớ mà chỉ giới thiệu một tổng quan.

Page 107: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 6 - Kiến trúc DB2 107

M o n t or h€Bp D ia b a s * M anager Shared M em ory Au<jt Cutter se e(m on Heap 52) ( in c lu d in g FCUặ (audit b t i sz)

Ư tity h *a p { u t i_ r w * p j í )

B®<* UP D u fte r

(badt bu h z )

R estore bu fec (r«stM ifsz)

______ I______D a tJ b J se G lo b a l M em ory

Bufferpoob(bu ftp iQ «)

E jd fx te d n rx m g y cacft»

Lodtkst| lo c * l» t)

Da :a e » i« h#«p{d ữ h m p )

Log bu ff« f (b g b u fsz )

Catalog cacre icatal0QC8che_s2)

P«cJr*Q* cactm (pd tcac*i«sz)

_________ J __________AppItCJt io n G lo b a l M em ory

l»pp_a i_h»»p _»2 )

1A gent P r iv a te M em ory

A p ç tc a tc o

h e a p(app*«® p4z>

A g e n ts a d <»0«rt s a c * JZ)

S ta t s to he»p(stB t_heap_5z)

S ort heap (so tthoap)

D R D A h « *p:ơf0 a_h«a 0_ iz )

UOF m em ory_}Z)

S ta tem ent heap (s trrtheap)

Q j« fy h«»p (q m ry _ h « » p _ ix )

Java heap

( ja v a _ h M P _ *:)

C hert lO b k x *(Kjriotofc) (r*m c t« )

A ç« n t A p p lic a t io n S K ar*d Memory

A o c ic s îio n support layer re a c (asiheaosr)

CI » r t IO b b d f(rqnofck) (local)

Hình 6.2 - Mô hình bộ nhớ DB2

Bộ nhớ chia sẻ quản lý cơ sở dữ liệu được cấp phát khi một thể hiện được khởi tạo. Thông thường, vùng nhớ này không chiếm nhiều không gian. Khi lần đầu tiên kết nối với cơ sở dữ liệu, Bộ Nhớ Cơ Sở Dữ Liệu Toàn Cục (Database Global Memory) được cấp phát. Trong khối này, vùng đệm là một trong những phần quan trọng nhất, giúp cải thiện hiệu suất truy vấn. Kích thước của các bộ đệm sẽ quyết định kích thước của Bộ Nhớ Cơ Sở Dữ Liệu Toàn Cục.Bộ nhớ riêng biệt mỗi tác nhân là vùng nhớ được sử dụng riêng bởi mỗi tác nhân DB2. Nếu không sử dụng bộ kết nối tập trung, thì mỗi kết nối sẽ yêu cầu một tác nhân. Thông thường một tác nhân sử dụng khoảng 3 đến 5 MB. Với bộ kết nối tập trung, một số kết nối có thể sử dụng chung một tác nhân, do đó giảm bớt nhu cầu bộ nhớ vật lý.

6.3 Mô hình lưu trữ DB2Trong phần này chúng tôi sẽ mô tả những khái niệm sau đây:

■ Trang và phần mở rộng (pages and extents)

Page 108: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

108 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

■ Vùng đệm (buffer pool)

■ Không gian bảng (table space)

6.3.1 Các trang và phần mở rộng

Một trang là một đơn vị lưu trữ tối thiểu trong DB2. Các kích thước trang cho phép là: 4K, 8K, 16K và 32K. Phần mở rộng là một nhóm các trang. Trong DB2, làm việc với một trang tại một thời điểm sẽ làm giảm hiệu suất; vì vậy, DB2 sẽ thay thế bằng cách làm việc với các phần mở rộng tại một thời điểm. Kích thước trang và kích thước phần mở rộng được định nghĩa khi làm việc với các vùng đệm và không gian bảng như chúng ta sỗ thấy trong các phần tiếp theo.

6.3.2 Vùng đệm (Buffer pool)

Một vùng đệm là vùng nhớ cache thực cho dữ liệu bảng và chỉ mục. Nó cải thiện hiệu suất bằng cách giảm tần suất đọc/ghi (I/O) trực tiếp mà chú trọng vào việc đọc(pre-fetching)/ghi không đồng bộ. Như vậy, DB2 biết những gì cần thiết cho các trang, đọc chúng từ đĩa và đưa vào vùng đệm để sẵn sàng cho việc sử dụng.Vùng đệm được cấp phát theo các đơn vị bộ nhớ của các trang là 4K, 8K, 16K, 32K. Nên có ít nhất một vùng đệm ở mỗi cơ sở dữ liệu, và ít nhất một vùng đệm vừa với không gian bảng theo kích thước trang đã cho.

6.3.2.1 Tạo một vùng đệm

Để tạo một vùng đệm bạn có thể sử dụng câu lệnh CREATE BUFFERPOOL. Ngoài ra, có thể sử dụng công cụ Control Center, bạn có thể nhấp chuột phải vào thư mục Buffer Pool trong một cơ sở dữ liệu đã cho và chọn Create, như trong Hình 6.3

Page 109: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 6 - Kiến trúc DB2 109

mm C o n tro l C o n te r

Cortool Center Selected Ectt View Toots Heập

H 1 = ®1 Õ O W ct View

z z C o r trd ca rte r

oa C d a i System*Control Certfer

Home t 1

B 0 SA**t.E

o Toto»©»

C ) View*

C J a » « «

»cinames

83 CD Cac*e <*>*ects

CD Tfw » *l~1 Scfiem «

Ũ

Ü TafcteSptcet

1 > A i Systems

CD AJ M « b M « t

2 o? 2 terns cfcsptsyed i^r ^ t f Oelaul Vtew * Vievv

zz C o n t r o l c « n t « r (2 ) H elp X

r ~ ỉ Evw tM om ors AciKM»» Current mow o f tiM Control Conter: Advanced

1—J â^twlA zz Customize Coniroi center

m Q U W « Rwf»orh1 -

Hình 6.3 - Tạo một vùng đệm

Sau khi chọn Create, hộp thoại Create Buffer Pool sẽ xuất hiện như Hình 6.4

K Create Buffer Pool

RAULCHONG DB2 SAMPLE

Buffetpool Size

Size in 16 KB pages |

Nonblocked

1000

J-1000

Block size in pages I 32 i

Enable sej tuning

I- Use default buffet pool size

(• Cieate bufferpool immediately

C Cieate buffetpool on database testart

Blocked

-X ]

Buffer pool name 1SAMP16K

Pege size |16 J

OK I Cancel I Show SQL Help

Hình 6.4 - Hộp thoại Create Buffer Pool

Page 110: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

110 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Hầu hết các thông số trong hộp thoại đều dễ hiểu. Các thông số Non-blocked và Blocked thể hiện số trang sẽ tồn tại với dạng khối hay là không. Vùng đệm dựa trên khối sẽ bảo đảm các trang kế cận nhau trên ổ đĩa khi được di chuyển vẫn kế cận nhau thành một khối; điều này sẽ làm tăng hiệu suất hoạt động, số lượng trang được chỉ định không được vượt quá 98% so với số trang cho vùng đệm. Nếu giá trị là 0 thì sẽ vô hiệu hóa việc hình thành khối nhập xuất (l/O).

Khi vùng đệm được tạo, được thể hiện trong Control Center, như Hình 6.5.

V Control CenterControl Center Selected Edit V iew Tools Help

B i z ®

Q Object V iew

Control Center

É - CD AI1 Systems

E i - n AIIDsiabases

B 0 SAMPLE

CD Tables

“ ß 3 V iews

Q Aliases

n Nicknames

CD Cache Objects

CD Triggers

11 Schemas

TEDWAS - DB2 - SAMPLE-Buffer Pools

Name £ | Size £ | Use extended storage £ |

9 IBMDEFAULTBP 250 No

H SAMP16K 1000 No

2 of 2 items displayed goQ fcj" Default V iew A View

Cl Indexes

r CD Table Spaces

£ 3 Evert Monitors

(..GfrHMBUMÉ £] Appếcation Objects

Ẹ Q User and Group Objects

S) Ũ Federated Database Objects

C j B ufferpools ( ? ) Help X

Actions: Select an object from the list above to display more details.

* N?W Bufferfig.gj

!

Hình 6.5 - Màn hình Control Center sau khi tạo vùng đệm SAMP16K

6.3.3 Không gian bảng - Table spaces

Không gian bảng là giao diện lô-gíc giữa các bảng lô-gíc và bộ nhớ vật lý (vùng đệm) và không gian chứa nó (ố đĩa). Lệnh CREATE TABLESPACE dùng đế tạo mọt không gian bảng, ta có thể chỉ định các thông số:

■ Kích cỡ trang cho một không gian bảng (4KB, 8KB, 16KB, hay 32KB). Kích cỡ trang phải tương quan với vùng nhớ đệm với cùng kích thước trang.

■ Tên của vùng nhớ đệm phải liên quan tới không gian bảng này.

■ Kích cỡ mở rộng

Page 111: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 6 - Kiến trúc DB2 111

■ Kích cỡ cho một lần pre-fetch (tham khảo khái niệm pre-fetch ở mục 6.3.2 Buffer pool)

6.3.3.1 Các loại không gian bảng

Không gian bảng gồm có 3 loại:

■ Loại thông thường

■ Loại này dùng cho bảng người dùng (user tables). Ví dụ, không gian bảng USERSPACE1 được tạo với mặc định thuộc loại không gian bảng thông thường.

■ Loại lớn

■ Chúng được sử dụng để tách biệt dữ liệu có dung lượng lớn (LOB data) vào không gian bảng riêng của nó. Loại này cũng dùng để lưu trữ dữ liệu XML, được tạo ra theo hỗ trợ pureXML, bằng cách dùng kiểu dữ liệu XML cho các cột. Không gian bảng lớn là thiết lập mặc định.

■ Loại tạm thời

■ Có hai loại không gian bảng tạm:

- Không gian tạm hệ thống

- Được DB2 sử dụng cho những hoạt động bên trong, như những hoạt động sắp xếp. Ví dụ, không gian bảng TEMPSPACE1, được mặc định tạo ra khi tạo mới một cơ sở dữ liệu, đây chính là không gian bảng tạm hệ thống. Luôn phải có ít nhất một không gian bảng tạm hệ thống.

- Không gian bảng tạm người dùng

- Được sử dụng để tạo ra những bảng tạm do người dùng định nghĩa, ví dụ như: Declared Global Temporary Tables (DGTTs), Create Global Temporary Tables (CGTTs). Chúng thường bị nhầm lẫn với không gian bảng tạm hê thống. Người dùng phải tạo không gian bảng tạm trước khi DGTTs và CGTTs có thể được sử dụng.

6.3.3.2 Quản lý không gian bảng

Không gian bảng có thể được phân loại dựa trên cách quản lý. Điều này có thể được chỉ định trong câu lệnh CREATE TABLESPACE:

Quản lý bời hệ thống

Loại không gian bảng này được gọi là System Managed storage - SMS (Bộ lưu trữ do hệ thống quản lý). Có nghĩa là hệ điều hành sẽ quản lý bộ lưu trữ. Chúng rất dễ quản lý, và các bộ quản lý là các thư mục hệ thống. Không gian lưu trữ sẽ không được cấp phát trước, nhưng kích thước tệp có thể mở rộng một cách linh hoạt. Một khi bạn chỉ định nơi lưu trữ, chúng sẽ được cố định vào lúc khởi tạo và những không gian lưu trữ khác sẽ không được thêm vào sau đó, trừ khi bạn khôi phục lại nơi lưu trữ của nó. Khi sử dụng

Page 112: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

112 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

không gian bảng SMS, dữ liệu bảng, chỉ mục, và dữ liệu dung lượng lớn (LOB data) không thể trải rộng trên những không gian bảng khác nhau.

Quản lý bời CO’ sở dữ liệu

Loại không gian bảng này còn gọi là Database Managed Storage - DMS (Bộ lưu trữ do CSDL quản lý). Điều này có nghĩa là chính DB2 sẽ quản lý việc lưu trữ. Việc quản lý không gian đòi hỏi nhiều hơn sự can thiệp thủ công của nhà quản trị (DBA). Vùng chứa sẽ được cấp phát trước những tập tin và những thiết bị thô (raw devices). Với những thiết bị thô này, dữ liệu sẽ được ghi vào một cách trực tiếp mà không cần nhờ vào cơ chế caching vào/ra của hệ điều hành.

Vùng chứa có thể được mờ rộng, hủy bỏ hoặc định lại kích thước bằng cách sử dụng câu lệnh ALTER TABLESPACE. Không gian bảng DMS là loại không gian có hiệu năng hoạt động cao nhất, và dữ liệu bảng, chỉ mục và dữ liệu dung lượng lớn (LOB data) có thể được chia ra thành nhiều không gian bảng riêng biệt, chính điều này làm tăng hiệu năng hoạt động.

Quản lý bời bộ lưu trữ tự động

Không gian bảng loại này được quản lý bởi bộ lưu trữ tự động, cũng quen thuộc như không gian bảng SMS, nhưng với hiệu năng và tính linh động tốt nhất của không gian bảng DMS. Chính vì vậy đây là loại không gian bảng mặc định khi bạn bắt đằu với DB2 9. Với những không gian bảng loại này, đầu tiên người dùng phải chỉ định đường dẫn lưu trữ và một nhóm những thiết bị lưu trữ mà DB2 sẽ dùng để quản lý không gian. Không có một dịnh nghĩa rõ ràng nào vè vùng chứa. Vùng chứa tự dộng dược tạo thông qua những đường dẫn lưu trữ. Việc thêm vùng chứa mới cũng như sự phát triển của những vùng chứa đã có sẽ hoàn toàn được quản lý bời DB2. Nếu một đường dẫn lưu trữ không được chỉ định trong câu CREATE DATABASE, đường dẫn cơ sở dữ liệu sẽ được sử dụng để thay thế (đường dẫn cơ sở dữ liệu là nơi lưu trữ những định nghĩa chính của cơ sở dữ liệu). Nếu đường dẫn cơ sở dữ liệu cũng không được chỉ định, nó sẽ được lấy từ biến DFTDBPATH, biến này dùng để cấu hình việc quản lý cơ sở dữ liệu. Trên Windows, đường dẫn cơ sở dữ liệu chỉ có thể là tên ổ đĩa, không phải một đường dẫn.

Để cho phép lưu trữ tự động, đầu tiên bạn phải tạo cơ sở dữ liệu với thiết lập cho phép lưu trữ tự động (thao tác mặc định) và kết hợp với một bộ đường dẫn lưu trữ. Sau khi tạo, nếu cần thiết, bạn có thể định nghĩa lại đường dẫn lưu trữ, sử dụng thao tác RESTORE. Sau đó, bạn đã có thể tạo một không gian bảng để sử dụng bộ lưu trữ tự động (đây cũng là thao tác mặc định).

Không gian bảng loại này rất giống với không gian bảng DMS, nhưng các thao tác được tự động, nên ta gọi nó là được quản lý bởi DB2; điều này bao gồm sự đăng ký, chỉ định vùng chứa và việc tự động thay đổi kích thước.

Bây giờ bạn hãy xem một ví dụ về sự quản lý bởi không gian bảng lưu trữ tự động. Đầu tiên, bạn tạo một cơ sở dữ liệu với thiết lập cho phép lưu trữ tự động, như ví dụ sau:

Mặc định sẽ cho phép lưu trữ tự động:

Page 113: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 6 - Kiến trúc DB2 113

CREATE DATABASE DB1

Chỉ định lưu trữ tự động một cách tường minh:CREATE DATABASE DB1 AUTOMATIC STORAGE YES

Lưu trữ tự động sẽ được thiết lập mặc định, nhưng đường dẫn lưu trữ thì chưa được chỉ định. Nếu đường dẫn lưu trữ là một thư mục, nó phải được tạo trước hết:

vi dụ trên Windows:CREATE DATABASE DB1 ON C:/, c :/storagepathl, D :/storagepath2

Chú ý thông số đầu tiên trong danh sách là một ổ đĩa, vì nó sẽ cho biết đường dẫn cơ sở dữ liệu chỉ có thể là ổ đĩa, không thể là một đường dẫn trên Windows.Thông số này cũng có thể được sử dụng như một trong những đường dẫn lưu trữ. Như vậy, đường dẫn cơ sở dữ liệu là C:, và đường dẫn lưu trữ bao gồm C: và C:\storagepath1 và D:\storagepath2 là hai thư mục còn lại trong số những đường dẫn phải được tạo đầu tiên.

Ví dụ trên Linux:CREATE DATABASE DB1 ON /data/pathl, /đata/path2

Lưu trữ tự động được vô hiệu hóa một cách tường minh:

CREATE DATABASE DB1 AUTOMATIC STORAGE NO

Tiếp theo, tạo không gian bảng với thiết lập cho phép lưu trữ tự động như ví dụ sau:

Lưu trữ tự động trên không gian bảng được thiết lập mặc định:CREATE TEMPORARY TABLESPACE TEMPTS

Lưu trữ tự động trên không gian bảng được thiết lập một cách tường minh:

CREATE TABLESPACE TS2 MANAGED BY AUTOMATIC STORAGE

Khi lưu trữ tự động được thiết lập ngầm định, kích cỡ ban đầu sẽ được cung cấp, cùng với việc chỉ định kích cỡ tăng, cũng như kích cỡ tối đa mà nó có thể đạt được.

CREATE TABLESPACE TS1 INITIALSIZE 500 K INCREASESIZE 100 K MAXSIZE 100 M

Page 114: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

114 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

6.3.3.3 Cách thức dữ liệu được lưu trữ trong các không gian bảng

Mặc định, DB2 sẽ ghi vào các phần mở rộng (extents) của ổ đĩa ngay khi nó chuyển qua vùng chứa khác. Ví dụ, nếu bạn có một không gian bảng kích thước 4K với một phần mở rộng có kích thước là 8, sử dụng 3 vùng chứa thô trên không gian bảng DMS, có nghĩa là 32K dữ liệu (4K X 8 trang trên 1 phần mở rộng = 32K) sẽ được ghi vào một vùng chứa trước khi được ghi vào vùng chứa khác. Điều này được thể hiện ở Hình 6.6. Lưu ý rằng các bảng không sử dụng chung các phần mở rộng (extents).

ExtentsStripedacrosscontainers

Hình 6.6 - Ghi dữ liệu trong không gian bảng

6.3.3.4 Tạo không gian bảng sử dụng Control Center

Để tạo một không gian bảng sử dụng Control Center, nhấp phải chuột trên thư mục Table Spaces bên trong cơ sở dữ liệu đã cho và chọn Create như Hình 6.7. Cửa sổ Create table space xuất hiện, như Hình 6.8.

Page 115: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 6 - Kiến trúc DB2 115

% C o n tro l O n te r H @ f x | |

Corờol c« r t* r Sotected Ed» v * w Toch Ht*f>

ĩ , í « í a ỉ » á È i ß Ü Ể 1 a ! = ®

1 o O tw ctV tew

ĩ ỉ C crtrd Ceríer

. Q A lS ytíom *

B C3 M V ề Ể tm m

0 0 SAMPL£

C J T«to*w

C3 Vtews

C3 Atese»

Ù N e t n m i

ffl C3 C «h eC t*e «8

C J Irw *

C l Seher»«

D o iM C e rte r

Nome t j

2 ) A I Systems

2 3 A ID *a t* s e j

2 o f 2 terns <*ĩỊ*srre<j ^ Ej* Delaul V iew * V ew

Ũ « » ■ «M Control c « n t« r ( ị ) ü É la X

Ũ E v ^ t M c ^ o f U r ™

O ^ P C C H ^ff l ũ < w fc< tio oC n w i«— ----------1

s C ) User « * *< > < ** Ofc*ect*

a C j Federated Database O tr d s

Actions- C urren t wevy o f the C ontro l C ordon A d W M d

n C gstom ce Control c e n t«

Hình 6.7 - Tạo một không gian bảng từ Control CenterỊ V C re a te T a b le S pace W iz a rd ^ ■ 1

........................... .................................2 Type

3. Bullet Pool

4. Space Mon

5.Coritanere

This w iie rd hej&s you create a table space Each page helps you lo de fiie a different aspect of the tabte spice On this page, type a name that descrftes the cists that you plan to store vou can o»o » « comrrcnts to tetter descrtoe yewt new tatofe space vou w it be atole to chsn&e the nanw and comments alter yc«r teifcle space has been created, if r e tire d . Task Overview

IS È t ỉE í ĩ . " ” ' |SAUK.ETS«K|

Comment

Ị Next ► I __________ I Ccncd

Hình 6.8 - Cửa sổ tạo không gian bảng

Cửa sổ hiện lên ở hình 6.8 sẽ hướng dẫn các bước để tạo một không gian bảng.

Page 116: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

116 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

6.4 Tóm tắtTrong chương này, chúng ta đã được học về ba khía cạnh chủ yếu của kiến trúc DB2: mô hình xử lý, mô hình bộ nhớ, và mô hình lưu trữ. về khía cạnh mô hình xử lý, chúng ta đã xem qua những tiến trình và những luồng hoạt động thường gặp, bao gồm tiến trình db2sysc, không có tiến trình này thì DB2 không hoạt động được.

Chương này đã bàn luận rất kỹ về mô hình lưu trữ, bao hàm 3 khía cạnh quan trọng nhất là: trang và phạm vi, vùng đệm (bufferpool) (gồm cả những chi tiết về việc khởi tạo) và không gian bảng (table space). Sau cùng, chúng ta đã tìm hiểu những loại không gian bảng khác nhau, và cách thức quản lý chúng (SMS, DMS, Automatic), và tìm hiểu cách tạo một không gian bảng sử dụng Control Center.

6.5 Bài tậpBài tập này sẽ giúp bạn hiểu về những mohình xử lý, mô hình bộ nhớ và và cách thức lưu trữ của DB2 trên Windows. Bạn sẽ được nhắc lại về những tiến trình và những luồng hoạt động khác nhau, nắm vững về cách thức sử dụng bộ nhớ của DB2, và thực hành tạo một cơ sở dữ liệu sử dụng hình thức lưu trữ tự động và lưu trữ theo đường dẫn trên Windows. Ý tưởng của việc sử dụng hình thức lưu trữ theo đường dẫn là việc tạo trên nhiều ổ đĩa, nhưng vì máy tính của bạn không được thiết lập với nhiều ổ đĩa thì bài tập này vẫn có thể sử dụng với ổ C:\ của bạn.

Thủ tuc:

7. Bạn hãy xem những tiến trình đang chạy trên Windows. Trước hết, bạn mở cửa sổ DB2 Command Windows (Start -> run -> db2cmd) và phải tắt tiến trình DB2 đang mở bằng câu lệnh: db2stop force

8. Mở Windows Task Manager, chọn thẻ Processes, nhấp chuột vào cột Image Name để sắp xếp các tiến trình theo tên, và tìm tiến trình db2sysc.exe, như hình bên dưới.

Page 117: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 6 - Kiến trúc DB2 117

I £3 Windows Task Manager JP.I X]File Options View Help

Applications Processes I Performance I Networking I

f~ Show processes from all users

Image Name I User Name CPU I Mem Usagecmd.exe SYSTEM 00 1,988 Kcmd.exe arfchong 00 2,952 Kcmd.exe arfchong 00 2,928 Kcsrss.exe SYSTEM 00 10,288 Kctfmon.exe arfchong 00 3,772 K —1

CUCore.exe arfchong 00 7,824 Kcvpnd.exe SYSTEM 00 8,308 Kdb2bp.exe arfchong 00 11,648 Kdb2dasrrm.exe SYSTEM 00 8,876 Kdb2csrv.exe SYSTEM 00 1,472 Kdb2mgmtsvc.exe SYSTEM 00 6,984 Kdb2rcmd.exe arfchong 00 8,504Kdb2systray.exe arfchong 00 7,592KDefWatch.exe SYSTEM 00 5,732 KDIMon.exe arfchong 00 3,388 KDLG.exe arfchong 00 3,856 KDotlXCfg.exe arfthong 00 16,452 KEvtEng.exe SYSTEM 00 13,936 Kexplorer.exe arfchong 01 39,592 K z l

End Process

Processes: 132 CPU Usage: 22% Commit Charge : 1380M / 3931M ¿

Bạn sẽ không tìm thấy tiến trình db2syscs.exe vì bạn đã được yêu cầu phải tắt thể hiện của DB2 ở bước 1.

9. Khởi động thể hiện DB2 với câu lệnh: db2start, và lặp lại bước trước đó. Và bây giờ thì bạn có thể tìm thấy tiến trình db2syscs.exe.

10. Bây giờ bạn sẽ xem xét mức tiêu thụ của CPU. Hãy làm theo các bước sau:

G. Tắt hết các ứng dụng khác đang chạy trên máy tính để chắc chắn rằng không có chương trình nào đang chạy.

H. Mở mới một cửa sổ DB2 Command Windows và chạy lệnh: db2stop forceI. Trên cửa sổ Task Manager, chuyển sang thẻ Performance

J. Giữ cho cửa sổ Task Manager và DB2 Command Windows nằm cạnh nhau như hình dưới. Ghi nhận lại khoảng bộ nhớ vật lý và mức sử dụng CPU.

Page 118: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

118 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

JS1XJ

Aooteaôons I Processes Performance I Networigng I

CPU Usage CPU Usage Hstor y

■ ■u ■ ■1 15 J

gỉ 3i 8 - Ầ - tíiti—

1.35 GB

Page rte Usage History

Totals Handes Threads

, Processes

Commit Charge ỘC)TotalLMtPeak

“ I Physca/ Memory (K)29110 Total 2087276

1275 Available 795736131 I System Cache

Kernel Memory (K)Total 210464Paged 152632Nonpaged __________57852

141933640256241732200

Processes: 131 CPU Usage: 10% Commit Charge: 1386M / 3931M

K. Chạy câu lệnh db2start và cùng lúc đó bạn theo dõi mức sử dụng CPU và dung lượng bộ nhớ vật lý. Bạn sẽ thấy một đường nhọn cao trên biểu đồ sử dụng CPU, và lượng bộ nhớ vật lý giảm đi khoảng 50MB đến 70MB. Đây chính là lượng bộ nhớ mà DB2 đang sử dụng. Nếu bạn chạy lại câu lệnh db2stop force thì tình trạng bộ nhớ sẽ trở về như trước đó.

: 062 CLP - DB2COPY1 - đ b 2 s ta rt

C : \P r o g r a m P i le s S lB M \S Q L L IB \B IN > d b 2 s ta r t

-101 X| Ế

I

M

Applications 1 Processes PerfoinvsfKe I Networkng I

CPU Usage------Ị - CPU Usage History

s?5PỈ BPage Re Usỏọe rtstof y

1.43 GBi

TotalsHandiesThreadsProcesses

293551279

133

Physical Memory (K)Total 2087276Available 724388System Cache

Commit Charge OQTotalLimitPeak

150123240256241732230

Kernel Memory (K)Total 211372Paged 153464Nonpaged____________ 57908

¡Processes: 133 CPU Usage: 53% Commit Charge: H66M/3931M

11. Lặp lại bước trên nhưng lần này bạn sẽ chú ý đến những gì sẽ xảy ra sau khi kết nối vào cơ sở dữ liệu SAMPLE. Chạy câu lệnh sau trên cửa sổ DB2 Command Window:đb2startdb2 connect to sample

Page 119: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 6 - Kiến trúc DB2 119

12. Ngay khi bạn kết nối tới cơ sở dữ liệu SAMPLE, bạn sẽ thấy dung lượng bộ nhớ vật lý bị giảm đi. Nguyên nhân là do khi bạn kết nối với một cơ sở dũ liệu, máy tính sẽ phải cấp phát vùng nhớ cho bộ nhớ toàn cục của cơ sở dữ liệu đó (bao gồm vùng đệm, nơi lưu các chỉ mục,...).

13. Lặp lại bước trên, lần này bạn sẽ tìm hiểu những gì xảy ra sau khi vùng đệm được tạo theo các kích thước khác nhau. Bạn phải chắc rằng bộ nhớ vật lý trong máy không được sử dụng quá mức. Vì nếu như thế DB2 sẽ không cấp vùng đệm ngay lập tức mà nó sẽ đợi đến lúc cơ sở dữ liệu ngừng hoạt động. Hơn thế nữa, một hệ thống vùng đệm nhỏ sẽ được sử dụng để thay thế, và DB2 sẽ sử dụng nó đến khi nào có đủ bộ nhớ vật lý cần thiết để tạo vùng đệm mới. Ví dụ, để tạo một vùng đệm khoảng 160MB, bạn chạy câu lệnh sau, sau khi đã kết nối với cơ sở dữ liệu SAMPLE:

db2 create bufferpool mybp immediate size 5000 pagesize 32k

14. Tạo một cơ sở dữ liệu m ydbl sử dụng cách lưu trữ tự động, với đường dẫn cơ sở dữ liệu là C:, và đường dẫn lưu trữ là C: \mystoragel, c: \mystorage2. Chạy câu lệnh sau trên cửa sổ DB2 Command Window:

đb2 create database mydbl on C:\, C:\mystoragel, C:\mystorage2

Bây giờ, nếu bạn chạy câu lệnh trên thì chắc chắn sẽ nhận được thông báo lỗi vì trước hết bạn phải tạo các đường dẫn C: \mystoragel, C: \mystorage2. Hãy tạo các đường dẫn trên và thử lại lần nữa!

Page 120: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

7Chương 7 - Kết nối máy khách DB2Chương này trình bày các cài đặt cần thiết để kết nối từ một máy khách DB2 đến một máy chủ DB2 sử dụng giao thức TCP/IP. Chú ý rằng một máy chủ DB2 đi liền với một thành phần máy khách, do đó nó cũng chạy như một máy khách để kết nối tới một máy chủ DB2 khác. Có một số cách để thiết lập kết nối máy khách DB2, tuy nhiên trong chương này chúng ta chỉ đề cập tới phương thức dễ dàng nhất, đó là sử dụng Configuration Assistant (công cụ trự giúp cấu hình).

Chú ý:

Để có thêm thông tin về kết nối máy khách DB2, mời độc giả xem video ở liên kết sau:

http://www.channeldb2.com/video/video/show?id=807741 :Video:4222

Bắt đầu từ phiên bản DB2 9.7, Configuration Assistant sẽ không còn được hỗ trợ, tuy nhiên nó vẫn được giữ lại trong sản phẩm này và chúng ta vẫn có thể sử dụng.

7.1 Các thư mục DB2

Các thư mục DB2 là các tệp nhị phân chứa thông tin về những cơ sở dữ liệu mà bạn có thể kết nối từ máy tính của mình. Có bốn thư mục:

■ Thư mục cơ sở dữ liệu hệ thống

■ Thư mục cơ sở dữ liệu cục bộ

■ Thư mục nút

■ Thư mục DCS

Chúng ta có thể xem xét lại và cập nhật nội dung trong các thư mục này bằng công cụ Configuration Assistant GUI.

7.1.1 Thư mục cơ sờ dữ liệu hệ thống

Thư mục này giống như mục lục của một cuốn sách. Nó chỉ ra tất cả các cơ sở dữ liệu từ cục bộ (local) cho đến từ xa (remote) mà bạn có thể kết nối tới. Với một cơ sở dữ liệu cục bộ, nó lưu một con trỏ tới thư mục co sở dữ liệu cục bộ. Với một cơ sở dữ liệu từ xa, nó sẽ lưu một con trỏ tới một mục trong thư mục nút (node). Để xem lại nội dung của thư mục này ta sử dụng dòng lệnh:

Page 121: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 7 - Kết nối máy khách DB2 121

list db directory

7.1.2 Thư mục cơ sờ dữ liệu cục bộ

Thư mục này chứa thông tin về các cơ sờ dữ liệu nằm ngay trên máy tính của bạn mà bạn có thể kết nối tới. Để xem lại nội dung của thư mục này ta sử dụng dòng lệnh:

list db directory on <drive/path>

7.1.3 Thư mục nút

Thư mục này chứa thông tin về cách kết nối tới một cơ sở dữ liệu từ xa đã được biết. Ví dụ, nếu kết nối sử dụng giao thức TCP/IP, một mục của nút TCP/IP sẽ bao gồm địa chỉ IP của máy chủ chứa cơ sở dữ liệu DB2 bạn đang muốn kết nối, và cổng của thể hiện chứa cơ sở dữ liệu. Để xem lại nội dung của thư mục này ta sử dụng dòng lệnh:

list node directory

7.1.4 Thư mục DCS

Thư mục này chỉ xuất hiện sau khi bạn đã cài đặt phần mềm DB2 Connect cho z/OS (máy tính lớn), hay DB2 cho Í5/OS. Để xem lại nội dung của thư mục này ta sử dụng dòng lệnh:

list des directory

7.2 Công cụ trợ giúp cấu hình (deprecated)Sử dụng công cụ trợ giúp cấu hình với giao diện đồ họa, bạn có thể dễ dàng cấu hình kết nối giữa máy khách và máy chủ DB2. Để chạy công cụ này trong Windows, bạn có thề chọn: Start -> Programs -> IBM DB2 -> DB2COPY1 -> Set-up Tools -> Configuration Assistant.

Bạn cũng có thể khởi động công cụ này bằng cửa sổ dòng lệnh với lệnh db2ca. Hình 7.1 mô tả công cụ trợ giúp cấu hình.

Page 122: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

122 Nhap mon He quan tri co so dO lieu DB2

■? C o n fig u ra tio n A ssistan t

C o n fig ix c S e le c te d Edit V ie w Too ls Help

TED W AS - DB2

A lios | Name # j Ta rg e t D a ta b a se S j Loca tio n $ j C om m t

SAMPLE TOOL SOB

SAMPLE TO O L SOB

C :\DB2C:\DB2

<l J j2 o f 2 item s chsployed ^ O f D e fa u lt V i.. . ~ V ie w

Hinh 7.1 - Cong cu tro> giup cau hinh

7.2.1 Cac cai dat can thiet tren may chu

Day la hai viec can thiet can thiet lap tren may chu:

1) DB2COMM

Bien so nay cua DB2 Registry (so dang ky DB2) xac dinh cac bo lang nghe cua giao thiec truyen thong nao nen dipgc dung de quan ly cac yeu cau ti> cac may khach. TCP/IP thifong dirge st> dung lam giao thCrc truyen thong. Khi thay doi tham so nay ta can phai khoi dong lai the hien chi>a cor so du lieu. De xem lai va thay doi gia tri cua DB2COMM trong cong cu trg giup cau hinh, chon Configure -> DB2 Registry nhip trong Hinh 7.2 va Hinh 7.3.

Page 123: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 7 - Kết nối máy khách DB2 123

liT Configuration Assistant Đ E ®Conngtre Sftected EC* V)ew Toots He*>

D6M Corrfi5**aUDế»i E 3 3 0

1 D62 Rigrttry .Ịrrporl Profie »Exgcrt Profie ► $ ( Tarọet Oalabfti* $ Ị Locabon $ 1 CommeConfigure Another Instance C062Re*«t Conf»gur«hon

Shutdown 062 Tocte Ext

1 01 1 l«ms <*Sftoy«d i \ 4 ? M c? Cf Dffaul VL View

Hình 7.2 - Truy cập DB2 Registry

Sctect the vnU ĩ o f 0 fw rw ndcr to chords *5 value

^ 1 Keyword ^ Value ệ 1 Pendng Value ậ

v Global

DB2_D0CH0ST tocaỉhost

D62_DOCPORT 51000

DB2JSCTSECURITY NO

DB2ADMNSERVER DB20ASOO

DB2NSTD6F DB2

D62PAĨH Cr'fVogram Ftes'<B...

D62SYSrEM TECWAS

V Instance

D62ACC0UNTNAME TEDWAS**>2adimi

■ E 3 ••• ■

DB2NSTOMER TEDWAS

DB2NSTPR0F C*>R0GRA-1)BM...

DB2P0RTRANGC 60000 60003

12 Of 1 2 #ernsdspteycd l \ ^ <iji> $ 0 Ef0, D f Defoul View * View

OK I Cancel I Help I

Hình 7.3 - Kiểm tra giá trị của biến DB2C0MM của DB2 Registry

Page 124: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

124 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

2) SVCENAME

Tham số cấu hình quản lý cơ sở dữ liệu (database manager configure - dbm cfg) sẽ được đặt là tên dịch vụ (như đã được định nghĩa trong tệp các dịch vụ TCP/IP) hay số cổng để sử dụng khi bạn muốn truy cập tới các cơ sở dữ liệu của thể hiện này. Từ công cụ trợ giúp cấu hình, chọn Configure -> DBM configuration như trong Hình 7.4.

■ JS 1 * JConfigure Selected Edit V iew Tools Help

i f 0DB2 Registry *5

Import P rofile ►Export Profile ► Target Database^ I Location £ I Comment $ I

Contigure Another Instance... cReset C on figu ra tion ... c

A sample datab...Shutdown D62 Tools cEx« c

SOFTD p SOFTD p cSOFTD_T SOFTD_T c

- I I ►!

7 of 7 items displayed Ậặ < i * so D? Đi’ DefauSt View View

Hình 7.4 - Xem lại dbm cfg trong công cụ trợ giúp cấu hình

Khi bạn đang ở cửa sổ DBM Configuration, tìm đến phần Communications, và tìm mục SVCENAME. Bạn có thể thay đổi giá trị thành xâu kí tự hay thậm chí là một số cổng nếu cần thiết. Xem Hình 7.5.

Page 125: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 7 - Kết nối máy khách DB2 125

I ? DBM Configuration *JSelect the value field of a parameter to change its value.

Keyword ^ [ Value | Pending Value# | Pending Value Effective 5 | Dynamic $ | ;Description~

^ Administration

[> Applications

▼ Communications

DISCOVER Search

NNAME

^ Diagnostic

^ tnvironment

^ Monitor

(> Parallel

^ Performance

Discovery mode

NetBIOS workstation name

TCP/IP service name

79 of 79 items displayed l \ o f 3 ? M Default View1' View

Contains the name of the TCP/IP port which a database server wi use to await communications from remote client nodes

OK Cancel I i l l : í L:!||-■ il Heip

Hinh 7.5 - Xem lại tham số SVCENAME của dbm cfg

7.2.2 Các cài đặt cần thiết trên máy khách

Tại máy khách, trước hết bạn cần biết các thông tin sau:

■ Tên của cơ sở dữ liệu bạn muốn kết nối

■ Số cổng của thể hiện DB2 phía máy chủ chứa cơ sở dữ liệu. Bạn cũng có thể sử dụng tên dịch vụ miễn là có một mục tương ứng trong tệp các dịch vụ TCP/IP

■ Tài khoản người dùng và mật khẩu của hệ điều hành để kết nối tới cơ sở dữ liệu. Tài khoản người dùng phải được định nghĩa trước đó ở phía máy chủ

Các thông tin trên có thể được lấy từ máy khách DB2 sử dụng công cụ trợ giúp cáu hình. Đầu tiên, chạy thủ thuật Add Database bằng việc nhấp chuột vào lựa chọn Selected -> Add Database Using Wizard như Hình 7.6

Page 126: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

126 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Hình 7.6 - Triệu gọi thủ thuật Add Database

Bạn cũng có thể gọi thủ thuật này bằng cách nhấp chuột phải vào khoảng trắng trong công cụ trợ giúp cấu hình và chọn Add Database Using Wizard. Hình 7 .7 là Add Database Wizard.8? Add Database Wizard

Select how you want to set up a connectionUse ttis wizard to iysfc you con fig jc a comedicn to a 082 d«oto(we. W ien you or o 'c of w i r «pplceton piojrams 'ccds to connect to a database. you estobish the cornedicn by cctrm-nr.KkvQ w ih the s e iv r on whehthe detetoaseresides Each C©2 ciertt m aH ars o list otthe databases to which I knows t» w to correct. This wizard lets you ackJ ceiabases to th ii lst(Task Overview)

Sdert it you have a file contanhg ail ths necessary ntamaticn tor a rc is s rg a remote server Typicaly, •four dalifease »ámiristrãtor w ll piovise you with thê rtame ot the ẾKcess profile that ccnta'ns at the rlcrmaticri necessery to ccrfflgUtt connections to the rwurea datstoee&s

r Search me network

Setect to frid daiffcases on vo ir tocat network

MjrualyC0tot»t3ur© a ccwwcscn 10 9 caiifcai©

Sweet (1 you know al the intonmmttn necssssry to conrnơ. to Pic cfeared ditebsse. This irc»jc*33 the proceeds sucpwted by t*c rerrcjtc server, the ccrvieefon conti <?jr«!on nfwTOStioi. and the rwme otthe dstobssc

Hình 7.7 - Thủ thuật Add Database

Page 127: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 7 - Kết nối máy khách DB2 127

Trong Add Database Wizard có ba lựa chọn:

1. Sử dụng một lý lịch

Có thể có nhiều trường hợp bạn cần cấu hình cho nhiều máy khách để kết nối tới cùng một máy chủ DB2. Trong trường họp này, nên thực hiện tất cả cả cấu hình trên một máy khách và lưu lại các cấu hình đó vào một tệp “lý lịch”. Với tệp này, bạn có thể nạp tất cả thông tin trực tiếp vào các máy khách khác. Trong Hình 7.7, nếu bạn chọn “ Use a Profile" thì bạn có thể nạp thông tin từ một “lý lịch” đã tồn tại. Chi tiết sẽ được nói rõ ở các phần sau, còn chương này chỉ mô tả cách lạo ra hồ sơ cho máy chủ và máy khách.

2. Tìm kiếm trên mạng

Phương thức này còn được gọi là khám phá (Discovery). Nó cho phép tìm kiếm trên mạng một máy chủ, một thể hiện và một cơ sở dữ liệu tương ứng cho trước. Để phương thức này hoạt động, DAS phải được chạy trên mỗi máy chủ chứa cơ sở dữ liệu được tìm ra. Có hai cách để thực hiện tìm kiếm:

■ Tìm kiếm (Search):

■ Tìm kiếm trên toàn mạng. Cách này không nên dùng nếu mạng lớn với nhiều bộ tập trung mạng (hub) vì sẽ tốn nhiều thời gian cho việc nhận dữ liệu từ mỗi hệ thong.

■ Đã biết (Known):

■ Tìm kiếm trên mạng một máy chủ đã biết tại địa chỉ bạn cung cấp.

■ Hai phương thức này được minh họa trong Hình 7.8

Search Known

Hình 7.8 - Phương thức tìm kiếm Search và Known

Page 128: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

128 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Có những khi người quản trị không muốn các máy khách tìm kiếm trên mạng những cơ sờ dữ liệu có các thông tin bí mật. Việc này có thể được ngăn chặn từ mức DAS, mức thể hiện hay mức cơ sờ dữ liệu. Chi tiết ở Hình 7.9.

■0B2 Data Server-

V,_________________________________________________________________________ J

Hình 7.9 - Cấu hình các tham số cho phép tìm kiếm

Hình 7.9 chỉ ra các mức khác nhau mà bạn có thể cho phép hay vô hiệu hóa tìm kiếm, ở mức DAS, bạn có thể cho tham số DISCOVER giá trị SEARCH hay KNOWN, ờ mức thể hiện, tham số DISCOVERJNST của dbm cfg có thể được đặt giá trị DISABLE hay ENABLE. Cuối cùng, ở mức cơ sở dữ liệu, tham số DISCOVER_DB có thể được đặt là ENABLE hay DISABLE. Thiết lập các tham số này một cách hợp lý cho phép bạn điều khiển việc tìm kiếm cơ sở dữ liệu.

3. Cấu hình thủ công một kết nối tới cơ sở dữ liệu

Sử dụng phương thức này, bạn sẽ tự thêm một tên máy chủ (host), các số cổng và thông tin của cơ sờ dữ liệu cho công cụ trợ giúp cấu hình để nó tạo ra một danh mục các câu lệnh để thực thi cấu hình kết nối. Công cụ trợ giúp cấu hình sẽ không kiểm tra xem các thông tin đó là đúng hay sai. Bạn sẽ biết nó sai nếu không thể kết nối tới máy chủ. Tương tự, cần đảm bảo tài khoản người dùng và mật khẩu để kết nối tới cơ sở dữ liệu từ xa là chính xác. Mặc định thì việc xác thực sẽ được tiến hành trên máy chủ DB2 bạn đang muốn

Page 129: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 7 - Kết nối máy khách DB2 129

kết nối, do đó bạn phải cung cấp tài knoản người dùng và mật khẩu được định nghĩa trên máy chủ đó.

7.2.3 Tạo lý lịch cho máy khách và máy chủ

Nếu bạn đang cấu hình một số lượng lớn máy chủ hay máy khách, đừng nên cài đặt mỗi máy một cách riêng biệt mà hãy cài đặt cho một máy, sau đó xuất ra một lý lịch từ việc cài đặt đó và sau đó áp dụng cho tất cả các máy còn lại. Việc này tiết kiệm rất nhiều thời gian quản trị khi cài đặt môi trường.

Đẻ tạo một lý lịch đưọ'c tùy biến từ công cụ trọ' giúp cấu hình, nhấp chuột vào thực đơn Configure, sau đó chọn Export Profile -> Customize, như trong Hình 7.10.

ầ ĩ Configuration Assistant ( T l f & f x

Configure Selected Edt View

D6M Contigirabon

D62 R eprtry ..

biport Profie »

Tools Hetp ■ ■ ■ ■ ■

ĩ 3 § * a ®

ExgOft ProWe ► 1 Afl alien s ComrKComigure Afwthef iRjtance D ổ tâ te ỉí CorrtíCíừvs s

R fs« Cenhjuratxjn C irtlC frtx* 92

S hti down 062 Tools

Ext

2 0* 2 Irm s (feptayed 1 \ & 0=0 f i f DefttUl V) View

Hình 7.10 - Xuất một lý lịch

Hình 7.11 chỉ ra các trường cần phải điền để xuất ra một lý lịch

Page 130: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

130 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Export file name

Select available databases to ■ include in profile

Select optional information to include in profile

Click Export to generate profile

Hình 7.11 - Hộp thoại Customize Export Profile (Tùy chỉnh xuất lý lịch)

Hình 7.12 là kết quả sau khi nhấp “Export” trên hộp thoại Customize Export Profile.

I ? Customize Export p ro file (R ]

Để nạp vào một lý lịch được tùy biến bằng công cụ trợ giúp cấu hình, nhấp chuột vào thực đơn Configure, sau đó chọn Import Profile -> Customize như trong Hình 7.13

Customize Export Profile

E>po»t I Row«» I

►Fi«rvame [ẽvĩbãrêĩrprõt"- ~=i»for export

f7 Database corrxsctiorts

± J

± J

Selected databn-ic olascs

f~ Nọđes wthoui an associated dttetxKc

r Acfcnr rodes

06M connection pwwnrtcrs

p 062 registry

F Common f l j pwatwtora

r* AP9C ccnttfMfùon

r~ Netaos peranrtter

Page 131: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 7 - Kết nối máy khách DB2 131

iT Configuration Assistant

C o n t r e Sefected E dỊ v«sw Too* Hefe

D6M C onfigura te*

D 6 2 R e g K t f yä Ị g 3 ỉ * a ®

I h-porl Pro fée ► A I

Escort Profie ► t [ Location $ ; Comme

Ccnftgure Another I rv r ta n c e CC62Configuration CO©2

Shutdown D62 ToolsE*t

‘ I I2 Of 2 «ems (âìpteyed $ 0 Detail V» * v ie w

Hình 7.13 - Nạp một lý lịch

Hình 7.14 chỉ ra các trường cần phải điền để nạp một lý lịch

w cMttmHM two«*» r

Import profile file name

Select available databases to include from profile

Select optional information to include from profile

Click Impon to import selected profile

Hình 7.14 - Hộp thoại Customize Import Profile (Tùy biến nạp lý lịch)

Page 132: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

132 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

7.3 Tóm tắtKết nối từ một máy khách tới một máy chủ là một khía cạnh cốt lõi của việc quản lý cơ sở dữ liệu quan hệ. Trong chương này chúng ta đã xem xét kết nối máy khách, bắt đầu với mục đích và nội dung của cơ sở dữ liệu và các thư mục liên quan trong DB2.

Tiếp theo chúng ta thảo luânn việc sử dụng công cụ trợ giúp cấu hình với giao diện đồ họa để thiết lập kết nối máy khách - máy chủ, bao gồm những gì cần phải cấu hình ở cả hai phía kết nối.

Chúng ta cũng đã xem xét cách sử dụng thủ thuật Add Database để tạo một kết nối tới máy chủ thông qua một trong ba phương thức: sử dụng một lý lịch có sẵn, tìm kiếm trên mạng (còn gọi là khám phá), hay thực hiện thủ công bằng cách điền các thông tin cần thiết của máy chủ. Sau đó, việc tạo lý lịch cho máy khách và máy chủ được mô tả chi tiết hơn.

7.4 Bài tậpCông cụ trợ giúp cấu hình có thể được sử dụng để cấu hình nhanh chóng và dễ dàng các kết nối cơ sở dữ liệu từ xa. Trong bài tập này, bạn sẽ tạo danh mục một cơ sở dữ liệu nằm trên một máy chủ DB2 từ xa (được biểu diễn bởi trạm làm việc của người ở cạnh bạn), sử dụng cả hai chế độ Search và Discover. Khi cơ sở dữ liệu được tạo danh mục, bạn có thể truy cập nó giống như nó được đặt trên hệ thống cục bộ. Tất cả các tiến trình giao tiếp này đều được DB2 thực hiện ngầm.

Bài tập này được đưa ra với giả sử bạn đang làm việc trong một mạng máy tính. Nếu không, máy tính cúa bạn cũng luôn có thề được sứ dụng vừa là máy khách vừa là máy chủ và làm theo các chỉ dẫn sau để kết nối tới hệ thống của chính bạn.

Thủ tuc:

1. Hỏi người chủ của máy chủ (hoặc người hướng dẫn) các thông tin:

2. Thông tin cơ sở dữ liệu từ xa:

(PR) Giao thức TCPIP

(IP) Địa chỉ IP hoặc tên máy chủ ____________

(PN) Số cổng của thể hiện (instance) ____________

(DB) Tên của cơ sở dữ liệu SAMPLE

Gợi ý:

Để lấy tên của máy chủ trên Windows, gõ hostname từ cửa sổ lệnh

Để lấy địa chỉ IP trên Windows, gõ ipconf ig từ cửa sổ lệnh

3. Mở công cụ trợ giúp cấu hình. (Gợi ý: Có thể mở từ thực đơn Start của Windows).

4. Mở thực đơn Selected và chọn Add Database Using Wizard.

Page 133: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 7 - Kết nối máy khách DB2 133

5. Trên trang Source của thủ thuật, chọn tùy chọn Manually Configure a Connection to a Database. Nhấp nút Nextâể đi tới trang sau của thủ thuật.

6. Trên trang Protocol của thủ thuật, chọn tùy chọn TCP/IP. Nhấp nút Next đề đi tới trang sau của thủ thuật.

7. Trên trang TCP/IP của thủ thuật, điền tên đầy đủ của máy chủ hoặc địa chỉ IP lấy được ở bước (1). Nhấp nút Nextâể đi tới trang sau của thủ thuật.

8. Lưu ý: Tùy chọn Service Name có thể được sử dụng nếu bạn có một mục trên tệp Services lưu trên máy cục bộ với một số cổng được định nghĩa tương ứng với cổng đang lắng nghe của thể hiện máy chủ từ xa. Khi sử dụng lựa chọn này, DB2 sẽ nhìn vào tệp các dịch vụ trên máy cục bộ chứ không phải trên máy chủ, do đó để sử dụng bạn phải thêm một mục vào trong tệp này.

9. Trên trang Database của thủ thuật, điền tên của cơ sở dữ liệu được định nghĩa trên máy chủ từ xa lấy được lừ bước (1) vào trường Database Name. Lưu ý rằng trường Database Alias được tự động điền với cùng giá trị. Bí danh cùa cơ sở dữ liệu là tên mà các ứng dụng cục bộ sử dụng để kết nối tới cơ sở dữ liệu đó. Khi bạn tạo một cơ sở dữ liệu tên là SAMPLE, DB2 sẽ không cho phép bạn tạo danh mục một cơ sở dữ liệu khác với cùng tên đó. Do đó, bạn cần sử dụng một bí danh khác. Trong ví dụ này, thay đổi bí danh thành SAMPLE1. Bạn có thể thêm lời chú thích (tùy chọn) về cơ sở dữ liệu này nếu muốn. Nhấp nút Next đề đi tới trang sau của thủ thuật.

10. Trên trang Data Source cùa thù thuật, bạn có thẻ (không bắt buộc) dâng ký cơ sờ dữ liệu (nguồn dữ liệu) mới này như một nguồn dữ liệu ODBC. Việc này sẽ tự đăng ký cơ sở dữ liệu vào trong bộ quản lý ODBC của Windows (Windows ODBC Manager) cho bạn. Trong ví dụ này, bỏ chọn tùy chọn Register this database for ODBC vì bạn sẽ không sử dụng ODBC. Nhấp nút Next đề đi tới trang sau của thủ thuật.

11. Trên trang Node Options của Wizard, chỉ rõ hệ điều hành của máy chủ chứa cơ sở dữ liệu từ xa. Do tất cả các trạm trong phòng máy đều sử dụng Microsoft Windows nên cần đảm bảo mục Windows được chọn từ danh sách sổ xuống (drop-down list). Trường tên của thể hiện (instance) nên đặt là DB2. Nếu trường này đang trống, đặt cho nó giá trị DB2. Nhấp nút Nextâề đi tới trang sau của thủ thuật.

12. Trang System Options giúp bạn đảm bảo thông tin của hệ thống và tèn máy chủ được điền đúng và kiểm tra các cài đặt của hệ điều hành Nhấp nút A/ex/để đi tới trang sau của thủ thuật.

13. Trang Security Options cho phép bạn chỉ ra nơi và phương thức bạn muốn người dùng xác nhận. Chọn tùy chọn Use authentication value in server’s DBM Configuration. Với lựa chọn này, phương thức xác thực sẽ được xác định bởi tham số A U T H E N T IC A T IO N trong tệp cấu hình của thể hiện (Instance). Nhấp nút Finish để tạo danh mục cơ sở dữ liệu từ xa và đóng thủ thuật. Một hộp thoại xác nhận xuất hiện. Nhấp nút Test Connection để đảm bảo bạn có thể kết nối tới cơ sở

Page 134: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

134 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

dữ liệu. Thêm vào đó, phải đảm bảo tên người dùng và mật khẩu bạn cung cấp là đúng với một tài khoản đã được định nghĩa trên máy chủ từ xa (bởi vì tham số AUTHENTICATION của máy chủ có thể được đặt giá trị là SERVER). Nếu việc kiểm tra kết nối thành công thì bạn đã tạo danh mục thành công cơ sở dữ liệu từ xa. Ngược lại, hãy quay lại bằng thủ thuật và đảm bảo rằng bạn đã điền đúng tất cả các thông tin. (Nhấp nút Change để trở lại các cài đặt của thủ thuật).

14. Mở Control Center và thử xem các bảng khác nhau trong cơ sở dữ liệu từ xa mới được lập danh mục.

15. Trớ lại công cụ trợ giúp cấu hình (Configuration Assistant) và thứ lập danh mục một cơ sở dữ liệu khác, lần này sử dụng tùy chọn Search the Network. Thực hiện từng bước với thủ thuật giống với khi bạn cấu hình kết nối thủ công. Lưu ý rằng với các mạng lớn, việc tìm kiếm kiểu khám phá (Discovery) có thể mất nhiều thời gian để trả về kết quả.

Page 135: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

8Chương 8 - Làm việc với các đối tượng CO’ sở dữ liệu

Trong chương này chúng ta thảo luận về các đối tượng cơ sở dữ liệu như lược đồ (schemas), bảng (tables), khung nhìn (views), chỉ mục (indexes), tuần tự (sequences)... Một số đối tượng dữ liệu nâng cao như bẫy sự kiện (triggers), các hàm cho người dùng định nghĩa (UDFs), các thủ tục được lưu trữ sẽ thảo luận trong Chương 14, Nhập môn phát triển ứng dụng với DB2.

Chú ý:Để biết thêm thông tin về làm việc với các đối tượng cơ sở dữ liệu, xem video tại:

http://www.channeldb2.com/video/video/show?id=807741 :Video:4242

8.1 Lược đồ (schemas)Lược đồ là không gian tên (name spaces) cho tập hợp các đối tượng. Chức năng chính được sử dụng như sau:

■ Lược đồ cung cấp các chỉ dẫn về quyền sở hữu trên đối tượng hoặc mối quan hệ với một ứng dụng.

■ Nhóm các đối tượng có quan hệ với nhau một cách hợp lý.

Tất cả các đối tượng dữ liệu của DB2 ngoại trừ các từ đồng nghĩa công cộng (public synomym) thì điều có hai phần tên theo tiêu chuẩn; Lược đồ là nửa phần đầu tiên của tên:

<tên_lược đồ>. <tên_đối t'jợng>

Tên đối tượng theo quy chuẩn phải là duy nhát. Khi bạn kết nối đén cở sở dữ liệu và tạo ra hoặc tham chiếu đến một đối tượng mà không chỉ rõ tên lược đồ cụ thể, khi đó DB2 sẽ sử dụng mã tài khoản mà bạn kế nối đến cơ sở dữ liệu làm tên lược đồ. Ví dụ, nếu bạn kết nối đến cơ sở dữ liệu SAMPLE với tài khoản arfchong, và tạo ra bảng artists sử dụng câu lệnh CREATE table:

CREATE TABLE artists

Page 136: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

136 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

V9.7

Tên đối tượng theo quy chuẩn đầy đủ được tạo ra là arfchong, artists

Bạn cũng có thể sử dụng câu lệnh s e t schemas để đặt lại lược đồ cho một giao dịch. Xem liệt kê 8.1 bên dưới:

connect to sample user arfchong using mypswselect * from staff ## This looks for arfChong.staffset schema db2adminselect * from staff ## This looks for db2admin.staffLiệt kê 8.1 - Một ví dụ sử dụng câu lệnh set schemas

Một hệ thống thi (contest system) có thể được sử dụng để minh họa cho việc sử dụng lược đồ. Một công ty đang tổ chức một cuộc thi mà các thành phần tham gia cần tạo ra các bảng và thực hiện một số câu lệnh SQL. Các thành phần tham gia gửi đến một mã tài khoản giống nhau để kết nối đến cơ sở dữ liệu và đoạn kịch bản giống nhau để tạo ra bảng, ở đó tất cả các đối tượng không được xác định, thật vậy, chúng không có tên lược đò. Sau khi các thành phần dự thi đăng nhập thành công vào hệ thống, hệ thống sẽ tự sinh ra tên lược đồ dựa trên nhãn thời gian sau khi kết nối. Với phương pháp này, người tham gia A sẽ làm việc trên bảng với tên giống như người tham gia B, nhưng với lược đồ của họ thì khác nhau, và vì thế không xảy ra đụng độ giữa các công việc của thành phần tham gia thi.

8.2 Tên công cộng hoặc bí danh (public synonyms or public aliases)Với DB2 9.7 thì khái niệm tên công cộng, cũng được biết như là bí danh công cộng. Tên công cộng cho phép tham chiếu đến đối tượng mà không cần chỉ ra một lược đồ cụ thể. Xem liệt kê 8.2 bên dưới.connect to sample user arfchong using mypsw create public synonym raul for table arfChong.staff select * from raulselect * from arfChong.raul ệệ Error connect to sample user db2admin using psw select * from raulLiệt kê 8.2 - Một ví dụ của bí danh công cộng

Trong liệt kê 8.2, trước tiên bạn kết nối với tên tài khoản là a r f c h o n g và tạo ra tên công cộng r a u l và cho nó tham chiếu tới bảng a rfc h o n g , s t a f f . Tên công cộng của chính nó thì không được sử dụng trong lược đồ. Nếu bạn cố thử, bạn sẽ nhận mội thông báo lổi. Người dùng khác như db2adm±n trong ví dụ của Hệt kê 8.2 có thể sử dụng bí danh jra u l khi nó là công cộng.

Trong ví dụ trên, nếu từ khóa public không được sử dụng, bí danh được tạo ra là tên riêng (private synonym). Xem liệt kê 8.3, nó là cùng ví dụ với liệt kê 8.2 nhưng sử dụng tên riêng.

connect to sample user arfchong using mypsw create synonym raul for table arfchong.staff select * from raul

Page 137: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 8 - Làm việc với các đối tượng cơ sở dữ liệu 137

select * from arfchong.raul ## OK, it also works connect to sample user db2admin using psw select * from raul ## Error, cannot find db2admin.raul select * from arfChong.raul ## OK, this worksLiệt kê 8.3 - Một ví dụ của bí danh riêng

Trong liệt kê 8.3 bạn đã thấy những điều khác nhau vì tên là riêng, nó không thể tham chiếu khi kết nối đến một tài khoản khác mà không chỉ rõ lược đồ cụ thể.

8.3 Bảng (tables)Bảng là tập hợp các dữ liệu có mối liên hệ với nhau được sắp xếp một cách hợp lý theo cột và hàng. Liệt kê 8.4 bên dưới sẽ cung cấp cho bạn bằng cách nào để tạo ra một bảng dữ liệu sử dụng câu lệnh CREATE TABLE.

CREATE TABLE artists(artno SMALLINT not null,name VARCHAR(50) with default 'abc',classification CHAR(l) not null,bio CLOB(IOOK) logged,picture BLOB(2M) not logged compact

)IN mytblsl

Liệt kê 8.4 - Một ví dụ của câu lệnh CREATE TABLE

Trong phần tiếp theo, chúng ta sẽ mô tả những thành phần chính của câu lệnh CREATE TABLE này.

8.3.1 Kiểu dữ liệu

Danh sách các kiểu dữ liệu được hỗ trợ trong DB2 trong hình 8.1.

Page 138: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

138 Nhâp mon Hê quàn tri ca sà dû lieu DB2

built-in data types

datetime string

time

T

timestamp

boolean

BOOLEAN

signednumeric

graphie binary

l

varying length

BLOB

array

ARRAY ROW CURSOR

— Iextensiblemarkuplanguage

XML

decimal floating port

DECFLOAT

approximate

CHAR GRAPHIC

V A R C R A P H IC

fixed varying fixed varying single doublelength length length length precision precision

floating point

REAL DOUBLE

binary integer decimal

32 bit 64 bit packed

SMALUNT INTEGER BIGINT DECIMAL

Hinh 8.1- Kiêu dll’ lieu dircrc cài dät sän trong DB2

Céc kièu dû lieu dirgc trlnh bày trong hinh 8.1 dirge mô tâ chi tiét trong câc tài lieu vè DB2; hàu hét câc kièu dCr lieu trong DB2 thl pho bien hoâc tirong tir vôi câc hê quân tri cô sd dir lieu quan hê khâc, vl thé chûng tôi không mô tà chüng ö dây. Mât khâc, mot vài kiêu dû lieu giong nhir nhüng doi tugng Ion (LOBs) không thê cung cap mot câch trge quan cho nhông ngirài dùng mai.

Kièu dCf lieu dôi tirgng Ion dugc dùng de lu’u tr& câc chuoi kÿ tg Ion, chuoi nhi phân lôn hoâc câc tâp tin dirge chï ra trong hlnh 8.2.

Page 139: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 8 - Làm việc với các đối tượng cơ sờ dữ liệu 139

R I » ;HÁÉ

B inary L arge OB ject

c haracter L arge OB ject

D ouble B ytec haracter L arge OB ject

Hình 8.2 - Kiểu dữ liệu LOBs

Các đối tu'p'ng ló’n nhị phân thưò'ng đư'Ọ’C viết tắt để cho dễ hiểu: Một đối tượng ló'n nhị phân là một BLOB, một đối tượng lớn ký tự là một CLOB và một đối tượng lớn ký tự 2 byte cũng được biết như là DBCLOB.

Hình 8.1 Danh sách các kiểu dữ liệu mới được thêm vào trong DB2 9.7:

■ BOOLEAN

■ ARRAY

■ ROW

■ CURSOR

Các kiểu dữ liệu này là một phần của các kiểu dữ liệu trong hệ quản trị cơ sở dữ liệu Oracle mà được hỗ trợ trong DB2 phiên bản này. Các kiểu dữ liệu trong Oracle sẽ được thảo luận chi tiết hơn trong phần sau của chương này.

8.3.1.1 Các kiểu dữ liệu do người dùng định nghĩa (User-defined types)

DB2 cho phép bạn tự định nghĩa các kiểu dữ liệu của chính bạn sử dụng các kiểu dữ liệu do người dùng định nghĩa (UDTs). UDTs có thể được phân loại như sau:

■ Distinct type

■ Structured type

■ Reference type

Page 140: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

140 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

V9.7

■ Array type

■ Row type

* Cursor type

Kiểu Reference, kiểu Array, kiểu Row, kiểu Cursor là những kiểu dữ liệu mới trong DB2 9.7 và được sử dụng với các thủ tục SQL PL. Trong đó, kiểu dữ liệu Distinct dựa trên các kiểu dữ liệu có sẵn trong DB2. UDTs được sử dụng khi:

■ Có nhu cầu thiết lập ngữ cảnh cho các giá trị

■ Có nhu cầu ép kiểu trong DB2

Các câu lệnh SQL trong liệt kê 8.5 sau đây minh bằng cách nào và khi nào sử dụng kiểu dữ liệu Distinct type trong UDTs:CREATE DISTINCT TYPE POUND AS INTEGER WITH COMPARISONS CREATE DISTINCT TYPE KILOGRAM AS INTEGER WITH COMPARISONS CREATE TABLE person

(f_name VARCHAR(30),weight_p POUND NOT NULL, weight_k KILOGRAM NOT NULL )

Liệt kê 8.5 - Một ví dụ về kiểu Distinct

Trong Hột kc 8.5, trcn có hai kicu Distinct được tạo ra: POUND và KILOGRAM. Cả hai điồu được tạo ra dựa trên kiểu dữ liệu có sẵn là INTEGER. Mệnh đề WITH COMPARISONS được định nghĩa như phần cú pháp chỉ ra rằng việc thay các hàm cùng tên cũng giống như việc các kiểu dữ liệu được tạo ra.

Bảng person sử dụng hai kiểu UDTs mới trong cột weight_p và weight_k theo thứ tự chỉ ra. Nếu bây giờ chúng ta đưa ra phát biểu sau:SELECT F_NAME FROM PERSON

WHERE weight_p > weight_k

Bạn sẽ nhận một thông báo lỗi bời vì hai cột với kiểu dữ liệu khác nhau được so sánh. Thậm chí weight và weight_k dùng kiểu dữ liệu theo thứ tự là POUND và KILOGRAM, cả hai kiểu dữ liệu này được tạo ra đều dựa trên kiểu INTEGER, bằng cách tạp UDTs, thì việc so sánh này cũng không thể thực hiện được, vấn đề chính là những gì mà bạn muốn, bởi vì trong thực tế, việc so sánh giữa pounds và kilograms là điều vô lý.

Trong ví dụ kế tiếp, bạn muốn so sárh cột w e ig h t_ p với kiểu integer; tuy nhiên, hai kiểu dữ liệu này là khác nhau và vì thế bạn sẽ nhận được thông báo lỗi trừ khi bạn sử dụng chức năng ép kiểu.

Như bạn thấy trong phát biểu dưới đây, chúng ta sử dụng chức năng ép kiểu POUNDO để sự so sánh có thể thực hiện được. Như nêu ở trên, chức năng ép kiểu POUNDQ được tạo

Page 141: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 8 - Làm việc với các đối tượng cơ sở dữ liệu 141

V9.7

V9.7

ra với UDT khi sử dụng mệnh đề WITH COMPARISONS trong câu lệnh CREATE DISTINCT TYPE.SELECT F_NAME FROM PERSON

WHERE weight_p > POUND(30)

8.3.1.2 Các kiểu dữ liệu trong hệ cơ sở dữ liệu Oracle

Các kiểu dữ liệu được sử dụng trong Oracle đã được hỗ trợ trong DB2: NUMBER, VARCHAR2, TIMESTAMP(n), “DATE”, BOOLEAN, INDEX BY, VARRAY, Row Type, Ref Cursor. Công việc đầu tiên là bạn cần cho phép khả năng đó bằng biến đăng ký DB2_COMPATIBILITY_VECTOR như sau:db2set DB2_COMPATIBILITY_VECTOR=FFđb2stopdb2start

Khi biến đăng ký được cho phép, cơ sở dữ liệu mới sẽ có thể hỗ trợ các kiểu dữ liệu liệt kê ở trên. Một vài kiểu dữ liệu được sử dụng trong ngữ cảnh nơi mà SQL PL được sử dụng.

Chú ý:

Nếu bạn sử các phiên bản của DB2 mà có hỗ trợ SQL Compatibility (được giới thiệu trong chương 2), bạn có thể sử dụng các kiểu dữ liệu trên nơi mà SQƯPL được sử dụng. Nếu trong trường hợp này, giá trị đặt cho biến đăng ký DB2_COMPATIBILITY_VECTOR sẽ là ‘FFF’ thay vì là ‘FF’ như trình bày ờ ví dụ trên.

8.3.1.3 Ép kiểu ngầm

Nhiều ngôn ngữ động giống như Ruby trên Rails hoặc PHP cho phép ép kiều ngầm. Trong các phiên bản trước thì việc này là một vấn đề. Với DB2 9.7, thì vấn đề đã được giải quyết vì ép kiểu ngầm hoặc “weak typing” đã được cho phép. Nó có ý nghĩa gì, mội ví dụ minh họa, bạn có thể gán hoặc so sánh kiểu dữ liệu chuồi thành kiểu dữ liệu số như trình bày bên dưới:

create table tl (coll int) select * from tl where coll = '42'

Trong ví dụ trên, chuổi ‘42’ có thể được so sánh với dữ liệu kiểu số nguyên ở cột c o l l .

Thêm vào đó, với DB2 9.7 bạn được phép chỉ định các tham số không kiểu và dữ liệu không kiểu NULLs trong nhiều tình huống. Xem ví dụ bên dưới:

select ?, NULL, myUDF(?, NULL) from tl

8.3.1.4 Các giá tri NULL

Page 142: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

142 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Giá trị NULL đại diện cho một trạng thái không xác định. Câu lệnh CREATE TABLE có thể khai báo cột sử dụng mệnh đề NOT NULL để đảm bảo rằng cột chứa giá trị dữ liệu được biết trước. Bạn có thể chỉ định giá trị mặt định cho một cột nếu NOT NULL được khai báo. Phát biểu tiếp theo cung cấp một ví dụ minh họa:CREATE TABLE staff (

ID SMALLINT NOT NULL,NAME VARCHAR(9) ,DEPT SMALLINT NOT NULL with default 10,JOB CHAR (5),YEARS SMALLINT,SALARY DECIMAL(7,2),COMM DECIMAL(7,2) with default 15 )

Trong v í dụ trên, cột ID v à DEPT được khai báo là NOT NULL. Cột DEPT cũng được khai báo giá trị mặt định là 10 nếu ta không cho số khác.

8.3.2 Cột khoá chính (Identity columns)

Một cột khóa chính là một cột kiểu số nó được tự động sinh ra một giá trị duy nhất cho từng dòng khi thêm vào. Chỉ có thể được một cột khóa chính cho mỗi bảng.

Có hai cách để tạo ra giá trị cho một cột khóa chính, tùy thuộc vào cách nó được định nghĩa:

■ Generated always: giá trị luôn luôn được tạo ra bởi DB2. Các ứng dụng không được phép cung cấp một giá trị tường minh.

■ Generated by default: giá trị có thể được cung cấp tường minh bởi một ứng dụng hoặc, nếu không có giá trị được đưa ra, thì DB2 sẽ tạo một giá trị. DB2 không thể bảo đảm tính duy nhất. Tùy chọn này là để dành cho dữ liệu tuyên truyền, và cho việc dỡ ra và nạp lại của một bảng

Chúng ta hãy xem ví dụ sau đây:

CREATE TABLE subscriber(SUbSCriberlD INTEGER GENERATED ALWAYS AS

IDENTITY (START WITH 100 INCREMENT BY 100), firstname VARCHAR(50), lastname VARCHAR(50) )

Trong ví dụ, cột subscriberlD có kiểu dữ liệu là INTEGER được định nghĩa như là một cột khóa chính luôn được tạo ra. Giá trị tạo ra sẽ bắt đầu từ 100, và mỗi lần nó sẽ được tăng thêm 100.

8.3.3 Các đối tượng tuần tự

Mặc dù các đối tượng tuần tự là độc lập với các bảng, chúng được đề cập trong phần này, vì chúng làm việc một cách tương tự như cột khóa chính. Sự khác biệt là đối tượng tuần

Page 143: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 8 - Làm việc với các đối tượng cơ sở dữ liệu 143

tự tạo ra các số duy nhất trong toàn bộ cơ sở dữ liệu, trong khi cột khóa chính tạo ra số duy nhất trong một bảng thôi. Dưới đây là một ví dụ:CREATE TABLE tl (salary int)

CREATE SEQUENCE myseq START WITH 10 INCREMENT BY 1 NO CYCLE

INSERT INTO tl VALUES (nextval for myseq)

INSERT INTO tl VALUES (nextval for myseq)

INSERT INTO tl VALUES (nextval for myseq)

SELECT * FROM tl

SALARY

101112

3 record(s) selected.

SELECT prevval for myseq FROM sysibm.sysdummyl

121 record(s) selected

Liệt kê 8.6 - Một ví dụ về tuần tự

PREVVAL cung cấp giá trị hiện tại của dãy tuần tự, trong khi NEXTVAL cung cấp giá trị tiếp theo. Ví dụ trên cũng sử dụng SYSIBM.SYSDUMMY1. Đây là một bảng danh sách hệ thống, nó có chứa một cột và một hàng. Nó có thể được sử dụng trong trường hợp truy vấn đòi hỏi đầu ra của một giá trị duy nhất. Các bảng danh sách hệ thống này được mô tả trong phần kế tiếp.

8.3.4 Các bảng danh sách hệ thống

Mỗi cơ sở dữ liệu đều có các bảng và khung nhìn danh sách hệ thống riêng. Chúng lưu trữcác siêu dữ liệu (metadata) về các đối tượng của cơ sở dữ liệu. Nếu các bảng hệ thống bị lỗi, cơ sở dữ liệu của bạn sẽ không sừ dụng được. Bạn có thể truy vấn các bảng giống như bất kỳ các bảng cơ sở dữ liệu bình thường. Ba lược đồ (schema) được sử dụng đểxác định các bảng danh sách hệ thống:

Page 144: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

144 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

« SYSIBM: các bảng cơ bản, tối ưu hóa cho sử dụng DB2

■ SYSCAT: các khung nhìn dựa trên các bảng SYSIBM, tối ưu hóa cho dễ sử dụng

■ SYSST AT : cơ sở dữ liệu thống kê

Sau đây là một số ví dụ về các khung nhìn:

- SYSCAT.TABLES

- SYSCAT.INDEXES

- SYSCAT.COLUMNS

■ SYSCAT.FUNCTIONS

- SYSCAT.PROCEDURES

8.3.5 Khai báo các bảng tổng quát tạm thời (DGTTs)

Khai báo bảng tạm là các bảng được tạo ra trong bộ nhớ và được sử dụng bởi một ứng dụng và sau đó bị hủy một cách tự động khi các ứng dụng chấm dứt. Những bảng tạm này chỉ có thể được truy cập bởi ứng dụng đã tạo ra chúng, và chúng không tồn tại trong bất kỳ danh sách bảng DB2 nào. Truy cập vào các bảng tạm này cung cấp hiệu năng rất hiệu quả vì không có tranh chấp, không có khóa của các dòng, không có đăng nhập mặc định (đăng nhập là tùy chọn), và không có kiểm tra thẩm quyền. Ngoài ra nó còn có hỗ trợ chỉ mục (index) cho các bảng tạm, có nghĩa là, bất kỳ chỉ mục chuẩn nào điều có thể được tạo ra trên một bảng tạm. Bạn cũng có thể chạy RUNSTATS chồng lên các hảng.

Khai báo bảng tạm đăt bên trong một người dùng không gian bảng tạm, được xác định trước khi tạo ra bất kỳ khai báo bảng tạm. Các câu lệnh trong Liệt kê ổ.7cung cấp một ví dụ về 3 cách khai báo bảng tạm:

CREATE USER TEMPORARY TABLESPACE apptemps MANAGED BY SYSTEM USING (1apptemps');

DECLARE GLOBAL TEMPORARY TABLE temployees LIKE employee NOT LOGGED;

DECLARE GLOBAL TEMPORARY TABLE tempdept(deptid CHAR(6), deptname CHAR(20))ON COMMIT DELETE ROWS NOT LOGGED;

DECLARE GLOBAL TEMPORARY TABLE tempprojects AS ( fullselect ) DEFINITION ONLY ON COMMIT PRESERVE ROWS NOT LOGGED WITH REPLACE IN TABLESPACE apptemps;

Liệt kê 8.7 - Làm việc với DGTTs

Khi một khai báo bảng tạm được tạo ra, lược đồ của nó là SESSION; lược đồ phải được mô tả khi tham chiếu DGTT. Một mã nhận dạng người dùng (user ID) được dùng để tạo ra

Page 145: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 8 - Làm việc với các đối tượng cơ sở dữ liệu 145

một bảng tạm sẽ có tất cả các đặc quyền trong bảng. Mỗi ứng dụng tạo ra một bảng tạm sẽ tạo ra một bản sao độc lập như trong Hình 8.3.

User 1 User 2 User 3

DECLARE GLOBAL DECLARE GLOBAL DECLARE GLOBALTEMPORARY TABLE T1... TEMPORARY TABLE T l. . . "EMPORARY TABLE T1..

Session.TI Session.T 1 Session.T 1

Hình 8.3 - Phạm vi mô tả các bảng tạm

Liệt kê 8.8 tạo ra sự giới hạn phạm vi của mô tả các bảng tạm thông thường. Nó cho rằng một không gian bảng tạm của người dùng đã được tạo ra.

Từ DB2 Command Window #1:

db2 connect to sampledb2 declare global temporary table mydgtt (coll int, col2 varchar(lO)) on commit preserve rowsdb2 insert into session.mydgtt values (1,'hellol'), (2,'hello2'),(3,'hello31)db2 select * from session.mydgtt

COL1 COL2

1 hellol2 hello23 hello3

3 record(s) selected.

Từ DB2 Command Window #2:db2 connect to sampledb2 select * from session.mydgttSQL0204N "SESSION.MYDGTT" is an undefined name. SQLSTATE=42704Liệt kê 8.8 - Làm việc với DGTTs - phạm vi

Như bạn thấy trong liệt kê ổ.ổkhi bạn sử dụng S E S S IO N . MYDGTT trong phiên làm việc thứ hai (DB2 Command Window #2), bạn nhận được một lỗi bởi vì DGTT không được mô tả

Page 146: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

146 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

V9.7

trong phiên làm việc này. Chú ý rằng một mô tả DGTT sử dụng mệnh đề ON COMMIT PRESERVE ROWS bởi vì làm việc trong DB2 Command Window sẽ cam kết trị mặc định trong mỗi câu lệnh đưa vào.

8.3.6 Tạo bảng tạm tổng quát (CGTTs)

Trong khi DGTTs cho phép bạn tạo một bảng tạm, định nghĩa bảng không thể được chia sẻ giữa các kết nối khác nhau hoặc phiên làm việc (session). Mỗi khi một phiên được thiết lập, các lệnh DECLARE GLOBAL TEMPORARY TABLE đã được thực thi. Với việc tạo bảng tạm thời tổng quát (CGTTs) thì khác, định nghĩa bảng tạm thời chỉ cần được tạo ra một lần, vì nó thường được lưu trữ trong các danh sách cúa DB2. Điều này có nghĩa rằng các kết nối khác có thể chỉ cần sử dụng bảng mà không cần phải tạo ra nó một lần nữa. Mặc dù cấu trúc bảng có thể được sử dụng ngay lập tức, dữ liệu cho mỗi kết nối độc lập với nhau, và sẽ biến mất sau khi đóng kết nối. Ví dụ, chúng ta hãy nhìn vào liệt kê 8.9. Nó giả định một không gian bảng tạm người dùng đã được tạo ra.Từ DB2 Command Window #1:

db2 connect to sampledb2 create global temporary table mycgtt (coll int, col2 varchar(lO)) on commit preserve rowsdb2 insert into mycgtt values (1,'hellol'),(2,'hello2'), (3,'hello3')db2 select * from mycgtt

COL1 COL2

1 hellol2 hello23 hello3

3 record(s) selected.

Tij DB2 Command Window #2: db2 connect to sample db2 select * from mycgtt

COL1 COL2

0 record(s) selected.

Liệt kê 8.9 - Làm việc với CGTTs - phạm vi

Trong liệt kê 8.9, chúng ta thấy rằng trong DB2 Command Window #2 (phiên làm việc hoặc kết nối khác), không cần tạo lại CGTT, bạn có thể dễ dàng tham chiếu đến bảng tạm; tuy nhiên, không có dòng nào được trả về bởi vì dữ liệu đã được tạo ra chi tiết cho phiên làm việc đầu tiên.

Page 147: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 8 - Làm việc với các đối tượng cơ sở dữ liệu 147

8.4 Khung nhìnKhung nhìn là một thể hiện của dữ liệu trong bảng. Dữ liệu cho khung nhìn không được lưu trữ riêng rẽ, nhưng tồn tại khi khung nhìn được viện dẫn (invoked). Những khung nhìn lặp, đó là khung nhìn được tạo dựa trên các khung nhìn khác, được hỗ trợ. Tất cả thông tin về khung nhìn được giữ trong các danh sách khung nhìn DB2 sau: SYSCAT.VIEWS, SYSCAT.VIEWDEP, và SYSCAT.TABLES. Liệt kê 8.10 cung cấp một ví dụ về cách tạo ra và sử dụng khung nhìn:

CONNECT TO MYDB1;

CREATE VIEW MYVIEW1AS SELECT ARTNO, NAME, CLASSIFICATION FROM ARTISTS;

SELECT * FROM MYVIEW1;

Đầu ra:

ARTNO NAME CLASSIFICATION

10 HUMAN A20 MY PLANT c30 THE STORE E

Liệt kê 8.10 - Làm việc với các khung nhìn

8.5 Chỉ mụcChỉ mục là một tập hợp các giá trị được sắp xếp của mỗi điểm trong hàng của một bảng. Một chỉ mục luôn là duy nhất và nó cũng giúp cải tiến hiệu năng. Một số ký tụ đặc biệt mà bạn có thể mô tả trong các chỉ mục:

■ Sắp xếp chỉ mục có thể theo chiều tăng hoặc giảm

■ Các khóa chỉ mục có thể là duy nhất hoặc không là duy nhất

■ Nhiều cột có thể được dùng cho chỉ mục (nó được gọi là chỉ mục kép)

■ Nếu chỉ mục và dữ liệu vật lý được gom lại trong một chỉ mục tuần tự. chúng được gọi là một chỉ mục gom nhóm

Ví dụ:

CREATE UNIQUE INDEX artno_ix ON artists (artno)

8.5.1 Trợ giúp thiết kế (Design Advisor)

Trợ giúp thiết kế là một công cụ tuyệt vời giúp bạn trong việc thiết kế tối ưu cơ sở dữ liệu cho một khối lượng công việc SQL nhất định. Trợ giúp thiết kế có thể giúp bạn với việc

Page 148: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

148 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

thiết kế các chỉ mục, các bảng truy vấn cụ thể (Materialized Query Tables - MQTs), bó dữ liệu đa chiều (Multi-dimension clustering - MDC) và tính năng phân mảnh cơ sờ dữ liệu. Trợ giúp thiết kết được gọi từ Control Center; nhấn chuột phải vào một cơ sờ dữ liệu và chọn Design Advisor như trong hình 8.4.

Stop _ J n | x J

Control Cente Restart

®Connect

D isconnect

Quiesce

I

CD Object Vie

t l Control Cer Unquiesce K -S AM PLE■dB LJ A ll Syst Autnonties... a i— ' All Hata Manage u tilit ie s .

» I_I Mil Ualclầ 0 2 J J d

Configure Automatic Maintenance .nitors

ol£Design A dvisor . in 0.Configuration Advisor... Gro...Configure P aram ete rs . i Da..Configure Database Logging...

High Availability D isaster Recovery ►

Backup...

Restore.

items displayed i 'z Sr* ^ Ô?) fcf Default View * View

s e -S A M P L E ® ü e iû X

Roll-forward... SAMPLE Not Connected ConnedStop roll-forward.. : TEDWAS

LocalShow Explained Statements History

Explain SQL.n_

G enerate DDL..

Manage Storage..

Applications

Activity Monitor

Spatial Extender ► 1 Health Center Alerts - Click

Hình 8.4 - Gọi trợ giúp thiêt kế từ Control Center

Hình 8.5 thể hiện Design Advisor. Làm theo các bước trong thủ thuật này để đạt được tư vấn thiết kế của DB2.

Page 149: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 8 - Làm việc với các đối tượng cơ sở dữ liệu 149

xj

|1 Introduction

2. Features

3. Workload

4. S ta tis tics

5 Options

Calculation

7. Recommendations

8. Unused Objects

9. Schedule

1 0 . S u m m a r y

IntroductionUse the Design advisor to optimize database performance for a workload that you specify. The Desgnadvisor can evaluate and recommend the following featuresIndexesMaterialized query tables (MQTs)Conversion to Multidimensional clustering (MDC) tablesRepartitioninq of tablesFor more information, read the Task overview

Database TEDW AS - DB2 - SAMPLE

Finish

Hình 8.5 - Trình Trợ giúp thiết kế

8.6 Toàn vẹn tham chiếuToàn vẹn tham chiếu cho phép cơ sở dữ liệu của bạn quản lý các quan hệ giữa các bảng. Bạn có thể thiết lập kiểu quan hệ cha - con giữa các bảng như trong hình 8.6. Trong hình này, có hai bảng, DEPARTMENT và EMPLOYEE, liên kết với nhau bởi số của Department. Cột WORKDEPT trong bảng EMPLOYEE chỉ có thể chứa các số của Department đã tồn tại trong bảng DEPARTMENT. Bởi vì trong ví dụ này, bảng DEPARTMENT là bảng cha và bảng EMPLOYEE là bảng con hoặc bảng phụ thuộc. Hình vẽ cũng thể hiện câu lệnh CREATE TABLE cần thiết đối với bảng EMPLOYEE để thiết lập quan hệ.

Page 150: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

150 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

V9.7

DEPARTMENT table (Parent table)

DEPTNO DEPTNAME MGRNO(Primary key)

orumqui constraint

iEMPLOYEE table (Dependent table)

EMPNO (Primary key)

FIRSTNAME LASTNAME WORKDEPT (Foreign key)

PHONENO

create table employee (empno .............primary key (empno) foreign key (workdept) references department on delete no action)

ỉn DMS01

Hình 8.6 - Một ví dụ về toàn vẹn tham chiếu giữa các bảng

Trong toàn vẹn tham chiếu, các ngữ cảnh được liệt kê trong Bảng 8.1 sau là thường được dùng.

Ngữ cảnh Mô tả

Bảng cha Một bảng dữ liệu điều khiển mà khóa cha tồn tạiBảng phụ thuộc Một bảng phụ thuộc về dữ liệu với bảng cha. Nó cũng chứa một khóa

ngoại. Đối với một hàng tồn tại trong một bảng phụ thuộc, một hàng hợp lệ phải tồn tại ở bảng cha.

Khóa chính Mô tả một khóa cha của bảng cha. Nó không thể chứa giá trị NULL và giá trị phải là duy nhất. Một khóa chính bao gồm một hoặc nhiều cột trong một bảng

Khóa ngoại Tham chiếu đến khóa chính của bảng chaBảng 8.1 - Ngữ cảnh khóa Toàn vẹn tham chiếu

Dữ liệu trong các bảng có thể được liên kết với dữ liệu trong một hoặc nhiều bảng khác thông qua toàn vẹn tham chiếu. Các ràng buộc cũng có thể dựa vào các giá trị dữ liệu mà chúng phù hợp với một tài sản nhất định hoặc quy tắc kinh doanh. Ví dụ, nếu một cột lưu trữ giới tính của một người, ràng buộc có thể tuân theo chỉ một giá trị là “M” đối với Nam và “F” đối với nữ.

8.7 Tiến hóa của lược đồ (Schema Evolution)Khi việc kinh doanh cần phải thay đổi, hạ tầng công nghệ thông tin hỗ trợ và hệ thống cũng phải được thay đổi. Điều này có nghĩa trong thế giới cơ sở dữ liệu, các bảng mới phải được tạo ra, các bảng đã tồn tại phải bị xóa đi hoặc chỉnh sửa, các bẫy sự kiện (trigger logic) phải thay đổi, và tương tự vậy. Mặc dù những thay đổi này dễ làm, trong thực tế, chúng có thể khó khăn và phức tạp. Quá trình bảo trì lâu dài là yêu cầu bắt buộc, phức

Page 151: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 8 - Làm việc với các đối tượng cơ sở dữ liệu 151

tạp, nhiều thủ tục rủi ro phải được thực hiện. Một trong những lý do của những thay đổi này gặp nhiều khó khăn trước đó là DB2 yêu cầu tất cả các đối tượng phải phù hợp ở tất cả các lần, và do đó, các hành động ảnh hưởng đến các đối tượng đang được thay đổi không được phép, hoặc sẽ gây ra việc các đối tượng phụ thuộc bị phá hủy. Hình ổ.7cung cấp một kịch bản mẫu.

Hình 8.7 - Kịch bản mẫu lược đồ phát triển

Như một ví dụ, hình 8.7, mô tả V iew l cần thay đổi mà nó không chỉ dựa trên Tab leQ l với thông tin tài chính quý đầu tiên của công ty, mà còn dựa vào TableQl và TabieQ2 với thông tin quý một và hai, theo thứ tự. Thông thường bạn sẽ phải xóa V ie w l và tạo lại với các mô tả mới; tuy nhiên, View2 là độc lập với Viewl. Trước DB2 9.7, DB2 không cho phép bạn xóa Viewl bởi vì sự phụ thuộc vào View2. Bạn sẽ phải xóa View2 trước, sau dó bạn mới có thẻ xóa Viewi và tạo lại cà hai khung nhìn. Với DB2 9.7, các quy tấc dã được mở rộng. Bây giờ, thay đổi có ảnh hưởng độc lập đến các đối tượng phụ thuộc được cho phép. Đối tượng phụ thuộc (View2 trong ví dụ), phải được kiểm tra lại tính hợp lệ trước khi sử dụng, nhưng việc này được thực hiện một cách tự động. Việc này được gọi là tự động kiểm tra lại sự hợp lệ. Thông số AUTO_REVAL của db cfg được sử dụng để bật hoặc tắt tính năng tự động kiểm tra lại sự hợp lệ và để xác định khi cần phải thực hiện việc kiểm tra này. Ví dụ, nếu bạn đặt thông số này là DEFERRED_FORCE, việc kiểm tra hợp lệ sẽ được hoãn lại cho đến khi đối tượng không hợp lệ hoặc các đối tượng phụ thuộc bị truy cập, nhưng các câu lệnh CREATE sẽ cho phép (với một cảnh báo) đối với đối tượng phụ thuộc mà không tồn tại.

Những thay đổi khác ảnh hưởng đến các mô hình phụ thuộc bao gồm việc thực hiện các tính năng như cú pháp CREATE OR REPLACE đối với khung nhìn, hàm, thủ tục, trigger, tên đại diện, và vân vân. Ví dụ:

create or replace procedure pi begin ... end

Với cú pháp này, nếu một đối tượng (trong ví dụ này, thủ tục P1 ) không tồn tại, nó sẽ được tạo. Nếu nó đã tồn tại trước đó, nó sẽ bị thay đổi. Hành động thứ hai là quan trọng cho các đối tượng phụ thuộc. Khi P1 bị thay đổi, các đối tượng phụ thuộc trong P1 được tự động kiểm tra lại.Tình hình tương tự sẽ xảy ra cho các tính năng mới như RENAME COLUMN, và thay đổi kiểu dữ liêu với ALTER COLUMN, nó cũng được mở rộng hỗ trợ việc thay đổi nhiều loại dữ liệu.

Page 152: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

152 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Một khái niệm liên quan được biết đến như là mất hiệu lực mềm (so ft invalidation) cho phép người dùng xóa một đối tượng ngay cả khi các giao dịch đang chạy sử dụng chúng. Bất kỳ giao dịch mới sẽ bị từ chối truy cập vào đối tượng bị xóa.

8.8 Tóm tắtTrong chương này, chúng ta đã có một cái nhìn tổng quan về các đối tượng cơ sở dữ liệu trong DB2: chúng là gì, cách chúng được tạo ra và làm thế nào để sử dụng chúng. Chúng ta đã giới thiệu qua các lược đồ cơ sở dữ liệu (database schemas), và so sánh chúng với các bí danh công cộng (public synonyms), cũng như so sánh xem các bí danh tường minh và các bí danh riêng (private synonyms) khác nhau như thế nào.

Tiếp đó, chúng ta đã thảo luận khá kỹ về các bảng (tables) và các thành phần của chúng: các kiểu dữ liệu (bao gồm cả kiểu có sẵn (built-in) và kiểu người dùng tự định nghĩa), các cột khóa chính (identity columns), các đối tượng tuần tự (sequence objects), và các bảng tạm thời (Global temporary tables). Kế tiếp là việc xem xét các khung nhìn (views), chỉ mục (indexes) và sử dụng giao diện trợ giúp thiết kế (Design Advisor GUI) để tăng cường khả năng truy cập và phục hồi của dữ liệu bên trong bảng.

Cuối cùng, chúng ta đã khảo sát tính toàn vẹn tham chiếu để xác định quan hệ giữa các bảng, và khái niệm mới về tiến hóa của lược đồ (schema evolution) cho phép các đối tượng dữ liệu có thể được thay đổi mà không làm phức tạp hóa khi không cần thiết.

8.9 Bài tậpTừ trước tới giờ, bạn đã quen với việc sử dụng các bảng có sẵn trong cơ sở dữ liệu SAMPLE để minh họa cho các khái niệm. Tuy vậy, bạn sẽ cần phải tự tạo ra các bảng cho riêng mình trong cơ sở dữ liệu. Trong bài tập này, bạn sẽ sử dụng thủ thuật hướng dẫn tạo bảng (Create Table Wizard) để tạo hai bảng mới trong cơ sở dữ liệu SAMPLE.

Thủ tuc

16. Mở Create Table Wizard như đã trình bày ở chương trước đó. (Control Center -> All Databases -> SAMPLE -> (nhấn chuột phải) Table object -> Create ...)

17. Đặt tên bảng, tạo các định nghĩa cột và các tham chiếu nếu có. Bảng sẽ được sử dụng để lưu các thông tin về các đồ dùng văn phòng được sử dụng trong một dự án tại cơ sở dữ liệu SAMPLE. Mỗi lần các thiết bị được mua, một hàng sẽ được thêm vào bảng này. Bảng sẽ bao gồm sáu cột:

- productjd: dịnh danh duy nhát của sàn phảm dang dược mua

- description: mô tả về sản phẩm

- quantity: số lượng mua

- cost: giá của sản phẩm

- image: hình ảnh của sản phẩm (nếu có)

- project_num: mã số của dự án mua sản phẩm này

Page 153: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 8 - Làm việc với các đối tượng cơ sở dữ liệu 153

18. ở trang đầu tiên của hướng dẫn, đối với tên sơ đồ, nhập vào ID bạn đang dùng để đăng nhập, và sử dụng tên bảng là SUPPLIES. Bạn cũng có thể gõ vào ghi chú tùy ý. Nhấn vào nút Nextãề sang trang tiếp theo của hướng dẫn.

19. Từ trang này, bạn có thể thêm các cột vào bảng. Nhấn vào nút ADD đề thêm các cột.

xjColumn name |PRODUCT_ID

Data type

Data type characteristicsThis data type has no modifiable characteristics

Value generation

<*■ None

c Default value p

c Formula

c Identity

Initial value

C3Ghe size

r Nullable

r Store system default values using minimal space

Comment

OK Cancel Reset Help

20. Gõ product_id vào Column name và chọn kiểu dữ liệu là INTEGER. Bỏ dấu chọn ở Nullable và nhấn vào nút Apply để định nghĩa cột.

21. Lặp lại bước này cho các cột còn lại của bảng sử dụng các tùy chọn được hiển thị trong bảng sau. Khi tất cả các cột đã được thêm vào, nhấn nút O K và danh sách các cột vừa được tạo sẽ được tổng hợp lại. Nhấn nút Nextỡể tiếp tục tới trang tiếp theo của hướng dẫn.

Column Name Attributes

productjd (da tao) INTEGER, NOT NULL

description VARCHAR, length 40, NOT NULL

quantity INTEGER, NOT NULL

cost DECIMAL, Precision 7, Scale 2, NOT NULL

image BLOB, 1 MB, NULLABLE, NOT LOGGED

Project_num CHAR, length 6, NOT NULL

Page 154: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

154 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Chú ý: Tùy chọn NOT LOGGED có thể được chỉ rõ khi khai báo các cột LOB. Điều này là bắt buộc đối với các cột có dung lượng dữ liệu lớn hơn 1GB. Nó cũng được khuyên dùng cho các cột LOB có dung lượng dữ liệu lớn hơn 10MB bởi vì sự thay đổi các cột chứa dữ liệu lớn có thể làm đầy tệp nhật kí rất nhanh (log file). Ngay cả khi NOT LOGGED được sử dụng, các thay đổi đối với các tệp LOB trong quá trình giao dịch vẫn có thể quay lui lại trạng thái lúc đầu thành công. Cũng cần chú ý rằng cột image là cột duy nhất được định nghĩa NULLABLE. Bạn hãy thử nghĩ xem tại sao nó lại được định nghĩa như vậy?

22. ở đây, tất cả các thông tin bắt buộc cho việc tạo bảng đều đã được cung cấp.Bằng cách bỏ qua các phần khác của hướng dẫn, các tùy chọn được thiết lập giá trị mặc định. Bạn có thể thêm vào các khóa và các ràng buộc bất cứ khi nào sau khi bảng đã được tạo.

23. Thêm vào một ràng buộc cho bảng để giới hạn giá trị của cột quantity, ở trên trang Constraint của hướng dẫn, nhấn vào nút ADD. ở trường Check Name, gõ vào: valid_quantitíes. Tại trường Check Condition, gõ vào: quantity > 0.

Nhấn nút OK. Bạn sẽ thấy một bản tóm tắt của các ràng buộc vừa được tạo trên trang Constraint của hướng dẫn. Nhấn nút Next để tiếp tục đến trang tiếp theo của hướng dẫn.

24. Bạn có thể tiếp tục theo các bước trong thủ thuật hướng dẫn để thay đổi các tham số khác của bảng. Hoặc bạn có thể nhảy đến trang Summary hay đơn giản ấn nút Finish để tạo bảng.

25. Từ Trung tâm điều khiển Control Center, nhấn vào thư mục Tables bên dưới cơ sở dữ liệu SAMPLE trong khung biểu diễn dạng cây các đối tượng. Bảng vừa được tạo bây giờ sẽ xuất hiện trong danh sách. Có thể cần làm tươi (refresh) khung nhìn của trung tâm điều khiển để có thể thấy được sự thay đổi này.

26. Bây giờ hãy thử kiểm tra việc ép kiểu ngầm định sử dụng bảng STAFF trong cơ sở dữ liệu SAMPLE. Thử các bước sau:

C:\>db2 describe table staffChú ý rằng cột ID cần phải đipợc định nghĩa kiểu SMALLINT

C:\>db2 select * from staff where id = '350' —> Chú ý ‘350’ là một chuỗi

C:\>db2 3elect * from 3taff where id = 350 —> Chú ý 350 là một số

Trong cả hai trường hợp, kết quả đầu ra sẽ là:

ID NAME DEPT JOB YEARS SALARY COMM

350 Gafney 84 Clerk 5 43030.50 188.00

Page 155: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 8 - Làm việc với các đối tượng cơ sở dữ liệu 155

Trong câu lệnh SELECT đầu tiên sử dụng ‘350’ là một chuỗi, DB2 thực hiện việc ép kiểu không tường minh thành một số (SMALLINT).

Page 156: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

9Chương 9 - Các tiện ích di chuyển dữ liệuCác công cụ hoặc lệnh mô tả trong phần này được sử dụng để di chuyển dữ liệu bên trong một cơ sở dữ liệu hoặc giữa các cơ sở dữ liệu với nhau trong cùng hoặc khác nền tảng. Hình 9.1 đưa ra cái nhìn tổng quan về các tiện ích di chuyển dữ liệu.

Database A Database B

Hình 9.1 - Các tiện ích di chuyển dữ liệu

Trong hình 9.1 cỏ hai cơ sở dữ liệu, A và B. Sử dụng tiện ích EXPORT có thể kết xuất dữ liệu từ một bảng ra một file. Định dạng file có thể là:

■ ASC = ASCII

■ DEL = Delimited ASCII

■ WSF = Worksheet format

■ IXF = Integrated Exchange Format

Các file ASC và DEL là các file văn bản có thể được mở và xem lại bằng bất kỳ trình soạn thảo văn bản nào. WSF là định dạng có thể sử dụng cho việc xuất dữ liệu ra các bảng tính như Excel hoặc Lotus® 1-2-3. Định dạng IXF không chỉ bao gồm dữ liệu mà còn là Ngôn ngữ Định nghĩa Dữ liệu (DDL - Data Definition Language) của bảng. Điều này rất tiện lợi bởi khi cần tái tạo lại bảng, ta có thể xây dựng trực tiếp từ một tệp kết xuất dữ liệu với định dạng IXF; mà điều đó là không thể đối với các định dạng khác.

Khi dữ liệu đã được xuất ra một tệp, ta có thể sử dụng tiệc ích IMPORT để nhập dữ liệu từ tệp đó vào một bảng khác. Bảng phải tồn tại sẵn đổi với các định dạng ASC, DEL và WSF, không cần có trước đối với IXF. Một phương pháp khác để tải dữ liệu vào một bảng là sử dụng công cụ LOAD. Tiện ích này nhanh hơn vì nó đi trực tiếp vào các trang cơ sở dữ liệu mà không tương tác với hệ thống DB2; tuy nhiên phương pháp này không kiểm tra các

Page 157: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 9 - Các tiện ích di chuyển dữ liệu 157

ràng buộc, và các trigger (bẫy sự kiện) không được thực thi. Để đảm bảo tính nhất quán của dữ liệu được nạp khi sử dụng LOAD, lệnh SET INTERGRITY thường được sử dụng theo sau.

Phần tiếp theo mô tả chi tiết về các tiện ích EXPORT, IMPORT, và LOAD.

Chú ỷ:

Tìm hiểu thêm về cách làm việc với các tiện ích di chuyển dữ liệu, xem video sau: http://www.channeldb2.com/video/video/show?id=807741 :Video:4262

9.1 Tiện ích EXPORTTiện ích EXPORT như đã nói ở trên, được sử dụng để trích dữ liệu từ một bảng sang một tệp. Phía sau kịch bản, một lệnh SQL SELECT được thực hiện. Ví dụ sau xuất ra 10 dòng dữ liệu từ bảng employee ra tệp e m p lo y e e . i x f theo định dạng IXF.

EXPORT TO employee.ixf OF IXF SELECT * FROM employee FETCH FIRST 10 ROWS ONLY

Bạn nên chạy thử ví dụ trên. Bảng employee nằm trong cơ sở dữ liệu SAMPLE, do đó trước tiên bạn cần kết nối với cơ sở dữ liệu đã tạo ờ chương trước.

Nếu bạn muốn làm việc với các công cụ trên giao diện đồ họa (GUI), tiện ích EXPORT cũng có thể được gọi từ Control Center như trong Hình 9.2.

Page 158: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

158 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

■ Control CenterControl Center Selected Edit View Tools Help

<8 Ẽ3 ĨS m 0 V # S3Cj Object View

£2 Control Center SI- CD All Systems a CD All Databases

CD Views O AJiases ¡23 Nicknames

ffi- CD Cache Objects - CD Tnggers

CD Schemas □ Indexes Cj Table Spaces CD Event Monitors D Buffer Pools

B' D Application Objects E CD User and Group Objects

CD Federated Database Objects

rEDWAS * DB2 - SAMPLE - Tables

NameSÉ UbHTWIMfcNIm EMP_ACT m EMP^HOTO m EMP_f?ESUMEED EMPLOYEEH IN_TRAY B ORG H PROJECT

<l

I Schema,I t u WAS

TEDWAS TEDWAS TEDWAS

123 of 123 Items d

H Table-EMPLO

Open...Query. Alter, Rename.

Drop

Copy .

Create

Table spaces IBScRSTTOtTUSERSPACE1USERSPACE1USERSPACE1

■ p S Œ IJSERSPACE1JSERSPACE1JSERSPACE1

Comments Index table s

SchemaCreatorColumns

A ction s :

I Open

£3 Query

TEDW/_ TEDW/ 14

Privileges

Import..

Load..

Quiesce...

Reorganize. R fin rnan l7 f! InrtfiXRS

n È? Default View* View

@ Heiß. X

*

ne I Datatype I LengthCHARACTER k . HỊVARCHAR 12 idCHARACTER 1VARCHAR

-!5 zi~\r M .1 J

Hình 9.2 - Khởi chạy hộp thoại EXPORT

Như trong hình, đầu tiên bạn nhấp chuột một lần chọn bảng employee, sau đó nhấp chuột phải lên bảng, một menu sổ xuống, bạn chọn Export. Tiếp theo, một bảng chỉ dẫn sẽ hiển thị. Bạn chỉ cần theo từng bước chỉ dẫn để hoàn thành thao tác.

9.2 Tiện ích IMPORTTiện ích IMPORT được dùng để nạp dữ liệu từ một tệp vào một bảng như đã đề cập phần trước. Phía sau nó, một thao tác SQL INSERT được thực thi. Khi một thao tác INSERT được thực thi, mọi bẫy (trigger) đều được kích hoạt, tất cả các ràng buộc sẽ có hiệu lực ngay lập tức, và vùng nhớ đệm của cơ sở dữ liệu sẽ được sử dụng. Ví dụ sau tải tất cả dữ liệu từ tệp định dạng IXF là employee.ixf vào bảng employee_copy. Bạn nên thực hành ví dụ này, nhưng cần phải chạy tiện ích EXPORT như đã nói ở phần trước.

IMPORT FROM employee.ixf OF IXF REPLACE_CREATE INTO employee_copy

Tùy chọn REPLACE_CREATE là một trong rất nhiều tùy chọn có sẵn cùng tiện ích IMPORT. Tùy chọn này thay thế nội dung của bảng employee_copy nếu bảng đã tồn tại trước khi thực hiện IMPORT, hoặc tạo bảng và nạp dữ liệu nếu bảng chưa tồn tại.

Page 159: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 9 - Các tiện ích di chuyển dữ liệu 159

Nếu bạn muốn làm việc từ Control Center, bạn có thể gọi chức năng IMPORT bằng cách chọn bảng bất kỳ, nhấp chuột phải lên nó và chọn Import như trong Hình 9.3.

C o n tro l C e n te r

Control C ente r Selected Edit View Tools Help

©

I Ll) Object View

Zl Control Center

ffl Ũ All SystemsTEDWAS - DB2- SAMPLE - Tables l \

B CD All Databases II Name ệ SchemaV I Table spaced I Comments 11Index table s

B □ SAMPLE

- Ũ Views C j Aliases

m Ü -H A k I fvlbM Iss EMP_ACT

m EMP.PHOTO

f f l e m p ' r e s u m e

TEDWAS USERSPACE1

TEDWAS USERSPACE1

TEDWAS USERSPACE1

d

CD NicknamesO pe n ...

Q u e ry .

A lter

Rename

WAS ỊUSERSPACE11Ez CD Cache Objects

Ũ Triggers

CD Schemas

CD Indexes

C] Table Spaces

C] Event Monitors

f f l IN_TRAY

m ORG

m PROJECT

WAS USERSPACE1

WAS USERSPACE1

WAS USERSPACE1_1

z lM ......... Ị I

123 of 123Drop

Copy...3 ? M Ĩ? c r Default View1* View

i

CD Buffer Pools

B D Application Objects

B Q User and Group Objects

S T a b le -E Create ► ® Helû X

■ Schema P riv ile g e s ..

ả CD Federated Database Objects CreatorColumns

Im port... Name Data type 1 Length

Export... MO CHARACTER 6 ^ 112 = iActions: Load...

rNME VARCHAR

•S Open

leal Query

if f CHARACTER 1 _Q uiesce... NAME VARCHAR i5r Reorganize..

OQorn-aofTQ iniHavac

Hình 9.3 - Khời chạy hộp thoại IMPORT

9.3 Tiện ích LOADTiện ích LOAD là một cách nhanh hơn để tải dữ liệu từ tệp vào bảng. Như đã mô tả, tiện ích LOAD không phải thông qua hệ thống DB2, do đó các bẫy (trigger) không được kích hoạt, vùng đệm không được sử dụng, và các ràng buộc dữ liệu có thể được thực hiện, nhưng phải ở các bước khác sau đó. Mặt khác, thao tác LOAD nhanh hơn IMPORT vì nó là công cụ nạp dữ liệu bậc thấp trực tiếp truy cập các trang dữ liệu trên đĩa cứng. Nó làm việc theo ba pha: LOAD, BUILD, và DELETE.

Ví dụ sau tải tất cả dữ liệu từ tệp định dạng IXF là em ployee. i x f vào bảng employee_copy. Tùy chọn REPLACE là một trong nhiều tùy chọn đi cùng với LOAD. Trong trường hợp này nó được sử dụng để THAY THÉ toàn bộ nội dung của bảngemployee_ copy.LOAD FROM employee.ixf OF IXF

REPLACE INTO employee_copy

Sau khi thực thi lệnh trên, không gian của bảng, nơi bảng dùng để lưu trữ dữ liệu có thể được đặt vào trạng thái CHECK PENDING (chờ kiểm tra). Điều đó có nghĩa là bạn cần

Page 160: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

160 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

chạy lệnh SET INTEGRITY để kiểm tra tính nhất quán của dữ liệu. Ví dụ sau chỉ cho bạn cách thực hiện:

SET INTEGRITY FOR employee_copy ALL IMMEDIATE UNCHECKED

Muốn làm việc từ Control Center, bạn có thể gọi tiện ích LOAD và SET INTEGRITY như trong Hình 9.4 và 9.5 tương ứng.

“ » C o n t r o l C e n te r - J o i . x .

Control Center Selected Edit view Tools Help

0 % # <Ị &

©III

CD Object View

ZZ Control Center [tEDWAS - DB2 - SAMPLE - Tables 1AZ!+} CD All Systems

- CD All Databases II Name $ I Schema^ I Table spaced I Comment Index table s

& - □ SAMPLE m U bh 'AW iM tN I fcU W A Sd

j...P»IE1i1EH SB e m p _a : t TEDWAS USERSPACE1

CD Views US EMP_PHOTO TEDWAS USERSPACE1

CD Aliases s EMP_RESUME TEDWAS USERSPACE1

C l Nicknames m i f i fO pe n ...

TEDWAS USERSPACE1SI CD Cache Objects US IN_ TEDWAS USERSPACE1

CD Triggers m OR Query.. TEDWAS USERSPACE1

....CD Schemas ® PR' Alter TEDWAS USERSPACE1 7 jCD Indexes

CD Table Spaces

CD Event Monitors

<1Rename

I ± r

123Drop Copy...

■Xz S‘r > ^ ^ t j f Default View* View

CD Buffer Pools

S CD Application Objects

Si CD User and Group Objects

B T a l Create ► ® ỵ m X

Scheme Privileges nmns À

S CD Federated Database Objects CreatorColumn-

A ctions

Import Name | Data type I LengthExport.. EMPNO CHARACTER

FIRSTNME VARCHAR61 2 z d

Load... MIDTNIT CHARACTER t lOo 6

Q ueQuiesce. jLASTNAME VARCHAR

1 i* / r in i/ r ir r v r r-i i n n » r>-rr-p - . ¿ 5Reorganize

Hình 9.4 - Khời chạy tiện ích LOAD

Page 161: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 9 - Các tiện ích di chuyển dữ liệu 161

»Control CenterControl Center Selected Edit View Tools Help

% § * ( ^ ' S3

Q ; Object View

m Control Center 03 Cj All Systems ¿) Q AJI Databases

3 □ SAMPLE

...C) ViewsCD Aliases CD Nicknames

© CD Cache Objects...CD Triggers

CD Schemas CD Indexes CD Table Spaces

...CD Event MonitorsCD Buffer Pools

® CD Application Objects ©-■CD *-*ser and Group Objects ©-•CD Federated Database Objects

rEDWAS - DB2 - SAMPLE - Tables AName

S3 EXPLAJN_STREAfv

S5 IN_TRAY m ORG @ PROJECT 35 SALES

| Schema^ | Table spaced | Comments | Index table spaced | Long data tablf

TEDWAS USERSPACE1 TEDWAS USERSPACE1 TEDWAS USERSPACE1 TEDWAS USERSPACE1 TEDWAS USERSPACE1

I m s t a f f ■Open...

Query...

Alter..

Rename

wmmmI & H I

z l<l I Hr

136 of 135 items di 0 8 £? t f Default Vi<w View

m Table - STAFF Drop ® ü ïi t t X

Schema TEDWASCopy

Creator TEDWAS CreateI Data type I Length | Nullable |

Columns : 7 Privileges... SMALLINT 2 NoActions: Import IVARCHAR 9 Yes

SMALLINT 2 Yesi upen Export. CHARACTER 5 Yes53 Query Load... SMALLINT 2 Yes

& Show Related Quiesce------- DECIMAL 7 Yes

DECIMAL 7 ;Yes

O Create New Reorganize

Reorganize indexes

Run statistics.

1 Health Center Alerts - Click 0 |

Hình 9.5 - Khời chạy tiện ích SET INTEGRITY

9.4 Công cụ db2moveTại mỗi thời điểm các công cụ EXPORT, IMPORT và LOAD chỉ làm việc được trên một bảng. Mặc dù bạn có thể viết một kịch bản để phát sinh các câu lệnh trên cho từng bảng trong cơ sở dữ liệu, nhưng một công cụ khác được gọi là db2move cũng có thể làm việc này cho bạn. Công cụ db2move chỉ có thể làm việc với những tệp IXF, và tên của các tệp này sẽ được db2move tự động phát sinh. Ví dụ dưới đây sẽ cho thấy làm thế nào để thực hiện db2move lần lượt với các tùy chọn export và import bằng việc sử dụng cơ sở dữ liệu SAMPLE.

db2move sample export đb2move sample import

Trung tâm điều khiển không có tùy chọn cho db2move.

9.5 Công cụ db2lookTrong khi các công cụ EXPORT, IMPORT, LOAD và db2move cho phép bạn di chuyển dữ liệu từ bảng này tới bảng khác trong cùng một cơ sở dữ liệu hay giữa các cơ sở dữ liệu với nhau, thì công cụ db21ook lại có thể được sử dụng để rút trích các câu lệnh DDL, các số liệu thống kê về cơ sở dữ liệu, và các đặc tính không gian bảng của một cơ sở dữ liệu, rồi lưu chúng trong một tệp kịch bản để sau này có thể chạy trên hệ thống khác. Ví dụ như,

Page 162: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

162 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

nếu bạn muốn sao chép một cơ sở dữ liệu từ máy chủ DB2 chạy trên hệ điều hành Linux sang máy chủ DB2 chạy hệ điều hành Windows; thì đầu tiên bạn sẽ chạy công cụ db21ook trên máy chủ DB2 Linux để thu được cấu trúc của của cơ sở dữ liệu và lưu cấu trúc này vào một tệp kịch bản. Sau đó, bạn sao chép tệp kịch bản này sang máy chủ DB2 Windows, và thực thi kịch bản đó để bắt đầu tạo lập bản sao cơ sở dữ liệu. Tại thời điểm này, thì cấu trúc của cơ sở dữ liệu đã được sao chép xong. Bước tiếp theo là chạy công cụ db2move với tùy chọn export trong máy chủ DB2 Linux, rồi chép toàn bộ những tệp đã được sinh ra sang máy chủ DB2 Windows, và thực thi db2move với một trong hai tùy chọn import hoặc load. Khi bước này hoàn tất, cơ sở dữ liệu của bạn sẽ được sao chép toàn bộ từ máy chủ này sang một máy chủ chạy hệ điều hành khác.

Kịch bản trên có thể là cần thiết khi làm việc với những cơ sở dữ liệu trên các hệ điều hành khác nhau, chẳng hạn như Linux và Windows. Nếu cả hai máy chủ đều chạy trên cùng một hệ điều hành, bạn hãy sử dụng câu lệnh backup và restore, nó sẽ giúp việc xử lí trở lên dễ dàng và nhanh chóng hơn. Các câu lệnh backup và restore sẽ được trình bày kỹ hơn tại những chương sau của cuốn sách này.

Ví dụ sau đây sẽ trích ra sơ đồ của không gian bảng và bộ đệm dữ liệu, cùng với các câu lệnh DDL từ cơ sở dữ liệu SAMPLE, và lưu chúng thành tệp sample .ddl. Chúng tôi khuyến khích bạn chạy câu lệnh sau và xem lại tệp văn bản đầu ra sample .ddl.

db21ook -d sample -1 -e -o sample.ddl

Lệnh db21ook có quá nhiều tùy chọn để mô tả trong quyển sách này, tuy nhiên bạn có thể sử dụng cờ -h để có được một mô tả tóm lược về những tùy chọn có sẵn.

db21ook -h

database nar

output file

(tablespaces & bufferpools)

extract DDL

Công cụ db2look cũng có thể được gọi ra từ trung tâm điều khiển như thể hiện trong Hình 9.6.

Page 163: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 9 - Các tiện ích di chuyển dữ liệu 163

c«rtrd Cerner •

% *9 £

C críro íO rtf

• CjAISy*« B C3 AID tìíat

S0 0 2 2

• □ TOO

Ũ C w c l V«v

Ur*Mesce

AUhortes

Manage IMtws

Configure Automatic M M t(T « x r

Dt'.vjn AcMcc*CorhguroLon A/ỷ*tM*

Ccrihgure Parameters

Ccnhgure Databas« Lo9JT*Ị

AvcAoMty O :ortc f Recovery >

BftCfcup RMlore

Roi-1« ward

S o p ro»-to»w o rd

Show Eípíaned Sỉaẩemerts htítory

SQL .

4? g? a ỉ= d)

WAS . D62 . SAMPLE

T«bèeĩ

View*

Afc»t«

Ncknames

Cache OOiectt

Tn»e»s

View

Manage Sler age

Adhrty Meritor

Spacm Extent»«»

Me*$«rcỉ>E*1*ncte»

v>ttb Se*vic*5

Open SateK« M m m totbor* Certer

Rttnth

s ntme tem

► e

Databas« • SAMPLE X

SAMPLÍ TEOWAs lo e *

AttMaüQP UrtD»&|qn AcMsor

te lm ftM sn itg j

sU *M ®ĩ Of f/M S 1:11 PM Refresh

D6M State Started [ Ị ỉ Slop

L « í Backup s < n « 1?:-» p * Q q Backup D ềH M S «

SI Manage StorageSizeCapacẩy

H M B 10S31 M6

É 3 Query

<> Cítate NftyDil«i5eHe»tn o A ttention ^ MQ«mOf DB

Mar«*w>ce Hot «utofTMted \ ỷ Maintenance

01 Heath Certe» Alerts - Clck

Hình 9.6 - Việc rút trích DDL từ trung tâm điều khiển

Trong Hình 9-ổchọn cơ sở dữ liệu mà bạn muốn rút trích DDL, nhấn chuột phải vào đó, và chọn Generate DDL. Cửa sổ Generate DDL sẽ hiện ra cho thấy một vài tùy chọn rút trích, như trong Hình 9.7.

I Generate DDL - SAMPLE aTEDWAS - DB2 - SAMPLE

; Statemert ;| objec.1 j Schedule |

Generate statements to recreate the following:

P Database objects

R Tablespaces, cistobase portition grocps. and bufferpools

p Authorization statements

I " Database s ta tistcs

f " Update s ta tistcs

I” hc4xte COtoMT statements ofter every toblo

r G«iher configurato-i parameters

I Cancel I Ị Help I

Hình 9.7 - Việc rút trích DDL từ trung tâm điều khiển

Page 164: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

164 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

9. 6 Tóm tắtTrong chương này, chúng ta đã bàn luận về các hàm xuất và nhập của DB2. Bắt đầu từ các định dạng xuất khác nhau (ASC, DEL, WSF, và IXF) rồi tìm hiểu sâu hơn về công cụ EXPORT. Các công cụ nhập IMPORT và LOAD cũng đã được đề cập tới, cùng với những điều cần biết về câu lệnh SET INTEGRITY khi sử dụng LOAD.

Câu lệnh db2move cung cấp cho bạn một phương tiện để đơn giản hóa quá trình xuất và nhập. Một câu lệnh phức tạp hơn, db2look, cho phép bạn rút trích và lưu trữ tất cả các thành phần của cơ sở dữ liệu cần có để tạo lại một cách độc lập toàn bộ cơ sở dữ liệu nếu muốn.

9.7 Bài tậpKhi bạn sao chép một cơ sở dữ liệu, mục đích của bạn có thể là tạo lại cơ sờ dữ liệu đó một cách đơn giản và dễ hiểu nhất. Việc này thường được thực hiện bằng cách sử dụng các kịch bản SQL, nó có thể được thực thi ngay sau khi DB2 cài xong. Trong phần bài tập này, bạn sẽ rút trích các định nghĩa về đối tượng từ cơ sở dữ liệu EXPRESS (đã được tạo từ một bài tập trước) bằng cách sử dụng trung tâm điều khiển.

Thủ tuc:

1. Mở trung tâm điều khiển.

2. Nhấn chuột phải vào cơ sở dữ liệu EXPRESS trong cây đối tượng và chọn mục Generate DDL. Nó sẽ kích hoạt cửa sổ hộp thoại Generate DDL.

3. Trong cửa sổ Generate DDL, chỉ rõ các tùy chọn cho Generate DDL, như đã thể hiện sau đây. Nếu bạn đã tạo những đối tượng bổ sung trong môi trường của bạn, như các không gian bảng, các bộ đệm dữ liệu,... bạn sẽ chọn chúng ờ đây. Khi bạn không muốn tạo loại đối tượng nào, thì đừng đánh dấu vào hộp thoại đó. số liệu thống kê về cơ sở dữ liệu không được kèm theo vì môi trường chạy thật có khả năng đã có một tập hợp khác các số liệu thống kê so với môi trường phát triển. Tương tự, các thông số về cấu hình cũng có thể khác đi đôi chút. Trong môi trường của bạn, nếu mọi thứ được cấu hình chính xác như như cách nó sẽ được triển khai, bạn cũng có thể chọn thêm những tùy chọn bổ sung.

Page 165: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 9 - Các tiện ích di chuyển dữ liệu 165

TEDWAS - 062 - EXPRESS

Statemert object ] Schedule |

Generate statements to recreate the following:

W Database objects

V Tablespaces, ciatabase partition groups, ard bufferpools

W Authorization statements

1“ Database statistics

r Update statistics

Include COMMIT statements after every tabe

F Gather configuration parameters

4. Chuyển tới nhãn Object. Bạn có khả năng chọn lựa chi tiết những đối tượng mà bạn muốn phát sinh ra DDL. Trong trường hợp này, lựa chọn người dùng và giản đồ đã sử dụng để tạo nên mọi đối tượng của bạn và phát sinh DDL cho tất cả các đối tượng trong lược đồ (schema). Nhấn chuột vào nút Generate để bẳt đầu tạo DDL.

Page 166: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

166 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

QTEOWAS - DB2 - EXPRESS

Statement Object Schedule I

Specify user and schema for generating DOL

User ¡TEOWAS

By defau*, DDL statements are generated for al tables

I- Generate DOL for selected tables only

Available titalcr.___________________________ SeJededtiTEOWAS BOOKSTEOWAS COl'WHEADeR.DEADLOCKMONITOR TEOWAS.COI*JHEADeR_OEADLOCKMONITOR_2 TEOWfAS CONNHEADeR_DEADLOCKMOWITOR_3 TEOWAS CONTROL _DEADLOCKMONITOR TEOWAS.CONTROL_DEADLOCKMONITORJ TEOWAS CONTROL_DEADLOCKMONITOR_3 TEOWAS CUSTOMERS tEOWAS DEADLOCK_DEADLOCKMONITOR

Generate | Cancel | Show Command [ | Help

Schema (lEDrtAS

, Generate DDL - EXPRESS

5. Nhìn lại kết quả DDL. Kết quả của các bước trước là một kịch bản đơn đối với tất cả các câu lệnh SQL cho các đối tượng đã chọn. Bây giờ bạn sẽ tổ chức kịch bản này thành những nhóm lô-gíc.

6. Tạo thư mục c : \express trong tệp hệ thống và lưu tệp DDL đã được phát sinh vào thư mục mới trên với tên schema. ddl. (Nhấn chuột chọn nút Save)

7. Mở tệp vừa mới được lưu trong Command Editor. (Gợi ý: Từ Command Editor, chọn File -> Open)

8. Mặc dù chúng ta chỉ muốn DDL cho các bảng, nhưng bạn sẽ thấy rằng cả những DDL cho các đối tượng khác của cơ sở dữ liệu cũng được kèm theo. Chuyển tất cả các câu lệnh CREATE TRIGGER vào một tệp mới riêng biệt gọi là triggers. ddl. Dù chúng ta chỉ tạo một bẫy sự kiện, nhưng đây là cách tốt nhất để phân biệt các đối tượng theo loại.

9. Từ giờ trở đi, chúng tôi khuyên nên loại bỏ tất cả:

Page 167: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 9 - Các tiện ích di chuyển dữ liệu 167

■ Các câu lệnh cơ sở dữ liệu CONNECT TO,

■ Các câu lệnh DISCONNECT.

Tại thời điểm này, bạn nên có hai kịch bản sau:

c : \e x p re s s \s c h e m a . d d l chứa DDL cho các bảng, các hiển thị, các chỉ mục vàcác rằng buộc.

c : \ e x p r e s s \ t r ig g e r s . d d l chứa DDL cho các bẫy sự kiện.

10. Dọn sạch các kịch bản cho việc triển khai:

■ Loại bỏ những câu lệnh không cần thiết (ví dụ: -- CONNECT TO...)

■ Phân loại các hàm và các thủ tục thành những tệp riêng của chúng (việc này rất hữu ích khi mà có quá nhiều các hàm và các thủ tục). Bạn cũng có thể muốn gom nhóm chúng theo các hàm và các ứng dụng (ví dụ: b i l l i n g , d d l, m a th .d d l, s t r i n g f u n c . d d l , ...)

11. Bạn hãy chú ý tới những kí tự đặc biệt đang được dùng để làm dấu thúc của các bẫy sự kiện, của các hàm và các thủ tục (@). Điều này là cần thiết để phân biệt được kết thúc của câu lệnh CREATE <ob ject> khác với kết thúc của câu lệnh theo thủ tục bên trong đối tượng.

Page 168: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

10Chương 10 - Bảo mật Cơ sở dữ liệuChương này nêu lên quy cách quản lý bảo mật trong DB2. Hình 10.1 thể hiện cái nhìn tổng quan về bảo mật.

Authentication Authorization

Hình 10.1 - Tổng quan về bảo mật trong DB2

Theo hình 10.1, bảo mật trong DB2 gồm có hai phần:

■ Chứng thực

Đây là tiến trình kiểm tra hợp lệ thông tin tài khoản người dùng. Tiến trình này được đảm nhận bởi một chương trình bảo mật bổ sung bên ngoài DB2 (security plug-in). Các plug-in bảo mật mặc định đều dựa vào cơ chế bảo mật của hệ điều hành, nhưng ta cũng có thể sử dụng các plug-in khác như Kerberos, LDAP hay ta có thể tự xây dựng plug—in chứng thực của riêng mình. Khi sử dụng plug-in bảo mật của hệ điều hành, định danh và mật khẩu người dùng được gửi đến máy chủ cơ sở dữ liệu (ví dụ như một phần của câu iệnh kết nối). Sau đó, máy chủ cơ sở dữ liệu sẽ gọi chức năng chứng thực của hệ điều hành để kiểm tra tính hợp lệ của tài khoản này.

■ Quyền hạn

Sau khi chứng thực thành công, DB2 sẽ xem xét các yêu cầu tiếp theo mà người dùng này thực hiện. Thông tin quyền hạn được lữu trữ trong một danh mục DB2 và tập tin cấu hình DBM.

Ví dụ, trong hình 10.1, người dùng bob kết nối với cơ sở dữ liệu SAMPLE bằng câu lệnh:

CONNECT TO sample USER bob USING pwd

Page 169: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 10 - Bảo mật Cơ sở dữ liệu 169

Cả bob và pwd được chuyển tới hệ điều hành hoặc một ứng dụng chứng thực bên ngoài để kiểm tra xem tên người dùng bob tồn tại chưa và mật khẩu đó có khớp với người dùng này hay không. Nếu tài khoản hợp lệ, hệ điều hành sẽ trả lại quyền kiểm soát bảo mật cho DB2. Tiếp theo, khi người dùng bob thi hành lệnh sau:

SELECT * FROM mytable

DB2 tiếp tục dùng quyền kiểm soát thi hành bảo mật để thi hành việc kiểm tra quyền hạn và xác nhận người dùng bob có quyền SELECT trên bảng mytable hay không. Nếu quyền đó không hợp lệ, DB2 thông báo lỗi, ngược lại câu lệnh sẽ được thực thi dựa trên bảng mytable.

Chú ý:

Đế biết thêm thông tin về bảo mật của DB2, xin xem tại địa chỉ: httD://www.channeldb2.com/video/video/show?id=807741:Video:4267

10.1 Chứng thựcTuy quá trình chứng thực thực sự được thực hiện bởi hệ điều hành thông qua một chương trình bảo mật mặc định (hoặc một chương trình bảo mật khác bên ngoài), nhưng chính DB2 mới có quyền quyết định nơi nào thực hiện việc chứng thực.

Tham số cấu hình AUTHENTICATION được thiết lập phía server, theo dãy các giá trị cho trước . Ví dụ, khi tham số này được thiết lập là SERVER (mặc định), tiến trình chứng thực sẽ được thực thi bởi hệ điều hành hoặc hoặc plug-in bảo mật ờ phía máy chù. Nếu AUTHENTICATION được thiết lập là CLIENT, tiến trình chứng thực sẽ được thực thi bởi hệ điều hành hoặc plug-in bảo mật ở phía máy khách, vấn đề này được minh họa ở hình 10.2.

/^AUTHENTICATION = SERVEfT \ / " AUTHENTICATION = CLIENT " \

CONNECT TO SAMPLE USER bob USING pwd

Is this the right password for Bob?

CONNECT TO SAMPLE

Hình 10.2 - Nơi diễn ra tiến trình chứng thực

Is this the right password for Bob?

Server

Page 170: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

170 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Tham số AUTHENTICATION có thể được thiết lập bằng những giá trị được liệt kê trong bảng 10.1

Lệnh Mô tả

SERVER (mặc định) Chứng thực diễn ra ờ máy chủ

CLIENT Chứng thực diễn ra ở máy khách

SERVER_ENCRYPT Tương tự tham số SERVER nhưng tên của người dùng và mật khẩu được mã hóa

KERBEROS Tiến trình định danh diễn ra dùng cơ chế bảo mât Kerberos

SQL_AUTHENTICATION_DATAENC Chứng thực và nối kết sử dụng mã hóa dữ liệu

SQL_AUTHENTICATION_DATAENC_CMP Giống như trên, nhưng sử dụng mã hóa dữ liệu chỉ khi sẵn có.

GSSPLUGIN Chứng thực dùng plug-in bảo mật trên nền GSS API

Bảng 10.1 - Các giá trị có thể có của tham số AUTHENTICATION

10.2 Quyền hạnQuyền hạn bao gồm các đặc quyền (privileges), quyền (authorities), vai trò (roles) và nhãn điều khiển truy cập (Label-based access control - LBAC) được lưu trữ trong bảng hệ thống DB2 và được DB2 quản lý.

Đặc quyền cho phép người dùng thực thi một câu lệnh đơn trên cơ sở dữ liệu như là CREATE, UPDATE, DELETE, INSERT, ...

Vai trò cho phép ta gom chung những đặc quyền với nhau, trong đó ta có thể cấp quyền cho một người dùng, một nhóm người dùng hoặc những vai trò khác.

Một quyền là một hành động được xác định trước bao gồm nhiều đặc quyền.

LBAC gồm các chính sách và các nhãn hỗ trợ cho việc truy cập tập trung theo tọa độ dòng-cột nào đó được chỉ định bởi người dùng. LBAC không có trong DB2 Express-C, nhưng ta có thể tìm hiểu thêm trong Chương 2.

10.2.1 Đặc quyền

Hình 10.3 minh họa các đặc quyền khác nhau trong DB2.

Page 171: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 10 - Bảo mật Cơ sở dữ liệu 171

Hình 10.3 - Những đặc quyền trong DB2

Khi một người dùng hay nhóm người dùng nhận đặc quyền CONTROL, nghĩa là họ có thể gán đặc quyền cho người dùng hoặc nhóm người dùng khác. Tham khảo thông tin chi tiết về các đặc quyền tại DB2 Information Center.

10.2.2 Quyền hạn (authorities)

Quyền hạn được chia làm 2 nhóm:

■ Quyền mức thể hiện (instance): những quyền này có thể thực thi ỏ' mức thể hiện, ví dụ: SYSADM

■ Quyền mức cơ sở dữ liệu: những quyền này chỉ được thực thi ờ mức cơ sở dữ liệu, ví dụ: DBADM

10.2.2.1 Quyền mức thể hiện (instance)

Bảng 10.2 liệt kê các quyền mức thể hiện

Page 172: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

172 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

V9.7

Quyền Mô tả

SYSAMD Quản lý toàn bộ thể hiện

SYSCTRL Quản trị viên một thể hiện quản trị cơ sờ dữ liệu

SYSMAINT Duy trì cơ sở dữ liệu trong phạm vi thể hiện

SYSMON Giám sát thể hiện và cơ sở dữ liệu của nó

Bảng 10.2 -Q uyền mức instance

Để gán quyền SYSADM, SYSCTRL, SYSMAINT, hoặc SYSMON cho một nhóm, các tham số tương ưng SYSADM_GROUP, SYSCTRL_GROUP, SYSMAINT_GROUP và SYSMON_GROUP, có thể được gán cho một nhóm hệ điều hành.

Ví dụ, để gán quyền SYSADM cho nhóm hệ điều hành myadmns, bạn sử dụng câu lệnh sau:

update đbm cfg using SYSADM_GROUP myađmns

Với mỗi thể hiện của DB2, từng nhóm được định nghĩa các quyền riêng. Trên Windows, các tham số được mặc định để rỗng, nghĩa là nhóm Local Administrators sẽ có quyền SYSADM. Trong DB2 9.7, nhóm DB2ADMNS và LocalSystem Account cũng sẽ có quyền SYSADM. Quyền hạn của tài khoản LocalSystem có ID là SYSTEM. Với Linux, nhóm chủ của thể hiện được mặc định là nhóm SYSADM.

Hình 10.4 bên dưới được trích từ DB2 Information Center. Hình này mô tả các quyền mức thể hiện và các chức năng của chúng. Quyền SYSADM bao gồm tất cả các chức năng của SYSCTRL và các tính năng khác. Quyền SYSCTRL bao gồm tất cả các chức năng của SYSMAINT và các tính năng khác.

Page 173: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chuwig 10 - Bao mat Co so dCr lieu 173

SYSADM- Update and restore a database manager configuration parameters (DBM CFG) including specifying groups that have SYSADM, SYSCTRL SYSMAINT AND SYSMON- Grant and revoke table space privileges• Upgrade and restore a database

SYSCTRL- Update a database, node, or distributed connection services (DCS) directory- Restore to a new or existing database- Force users off the system- Create or drop a database (NOTE: automatically gets DBADM authority)- Create, drop, or alter a table space- Restore to a new or existing database- Use any table space

SYSMAINT■ Back up a databaso or table space- Restore to an existing database- Roll forward recovery- Start or stop an instance- Restore or quiesce a table space, and query it's state- Run tracing- Database system monitor snapshots- Reorganize tables■ Use RUNSTATS and update log history files

SYSMON- GET DATABASE MANAGER MONITOR SWITCHES• GET MONITOR SWITCHES- GET SNAPSHOT• LIST commands: ACTIVE DATABASES. APPLICATIONS,DATABASE PARTITION GROUPS. DCS APPLICATIONS. PACKAGES. TABLES. TABLESPACE CONTAINERS. TABLESPACES. UTIL ITIES-- RESET MONITOR- UPDATE MONITOR SWITCHES- APIs: db2GetSnapshot and db2GetSnapshotSize. db2MonitorSwitches. db2mtrl<, db2ResefMonitor• All snapshot table functions, without running SNAP WRITE FILE• Can connect to a database

Hinh 10.4 - Quyen mCrc the hien (instance) va cac chuc nang cua chung

10.2.2.2 Quyen a mi>c co> so> du> lieu.

Bang 10.3 Met ke cac quyen o mu>c ccy so dCr lieu.

Page 174: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

174 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Quyền Mô tả

SECADM Quản lý bảo mật cơ sở dữ liệu.

DBADM Quản trị cơ sở dữ liệu.

Gán và hủy các quyền và các đặc quyền (khác với các quyền SECADM, DBADM, ACCESSCTRL, và DATAACCESS. Chú ý rằng quyền SECADM là cần đề gán và hủy những quyền này)

ACCESSCTRL

I __ I Cho phép truy xuất dữ liệu

V9.7DATAACCESS

SQLADM Giám sát và điều chỉnh các câu truy vấn SQL

WLMADM Quản lý lượng tải công việc.

EXPLAIN Những người dùng cần giải thích kế hoạch truy vấn (quyền EXPLAINbản thân nó không cho truy cập dữ liệu)

Bảng 10.3 - Các đặc quyền mức CO’ sờ dữ liệu.

Để gán quyền mức cơ sở dữ liệu, ta sử dụng lệnh GRANT. Ví dụ, để gán quyền DBADM cho người dùng bob trong cơ sở dữ liệu SAMPLE, sử dụng:

connect to samplegrant DBADM on database to user bob

Trong ví dụ trên, trước hết ta cần kết nối đến cơ sở dữ liệu SAMPLE, sau đó bạn gán quyền DBADM cho người dùng. Để gán quyền DBADM và những quyền mức cơ sở dữ liệu khác, bạn phải là SECADM.

Chú ý rằng, DBADM không thể tạo không gian bảng, cho dù những không gian bảng này là các đối tượng bên trong cơ sở dữ liệu, bởi vì không gian bảng có liên quan đến các tài nguyên vật lý của hệ thống (đĩa và các vùng đệm). Nhưng đối với quyền SYSADM thì ta có thể.

Hình 10.5 trích từ DB2 Information Center, cho thấy sự khác nhau giữa các quyền ở mức cơ sở dữ liệu và các chức năng của chúng.

V9.7

Page 175: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 10 - Bảo mật Cơ sở dữ liệu 175

SECADM• Create. alter. drop and common« on security object*• Grant and revoke all pfrviiegos and authorities• TRANSFER OWNERSHIP statement• EXECUTE privilege on audit system-defined routines• Grant EXECUTE privilege on audit sy&tem-dofinod routines• AUDIT statement■ SELECT privilege on system catalog tables and views• CONNECT authority

ACCESSCTRL• SELECT pnvHege on system catalog tables and wows• Grant and revoko SOLADM. WLMADM. EXPLAIN. BINOADO. CONNECT CREATETAB. CREATE EXTERNAL ROUTINE CREATE NOT FENCED ROUTINE. IMPLICIT SCHEMA. LOAD. OUIESCE CONNECT- Grant and revoke a« privileges on global variables, indexes, niefcnamos. paefcagos. ro u tn o s (oxcopl systofn do tincd audit routines), schomas. sequences, sorvers. tables, table spaces, views. XSR objects

DATAACCESS• LOAD authority- SELECT. INSERT. UPOATE. AND DELETE (Hittieges on (til tabioa. views. MOTs. and nicknames■ SELECT privilege on syslom catalog tablos and views- EXECUTE prlvBego on aH routines (except system-oofinod a w « routines)• EXECUTE privtogo on aH packages

DBADM• Create, alter, drop non-socunty-reiated objects• Read log Wes• Croate. activate. drop ovont monitors• Ouery the state of a table space• Update log history Wes■ O uesco a table space• Reorganize tfxfoxe&labtes• Use RUNSTATS

BINDADD authontyCONNECT authontyCREATETAB authontyCREATE EXTERNAL ROUTINE authorityCREATE NOT FENCED ROUTINE authontyIMPLICIT SCHEMA auttontyLOAD authorityOUIESCE.CONNECT authority

WLMADM■ Creato. a ter, comment on and drop workload managor objects• Grant and revoke workload pnviioges• EXECUTH privilege on the system-defined workload management routines

SOLADM• CREATE EVENT MONITOR• DROP EVENT MONITOR• FLUSH EVENT MONITOR• SET EVENT MONITOR STATE• FLUSH OPT PROFILE CACHE• FLUSH PACKAGE CACHE- PREPARE• REORG INDEXES/TABLES• RUNSTATS• EXECUTE prwiego on• SELECT priv on sys catalog tablos and views

EXPLAIN• Certain clauses of ALTER SERVICE CLASS. ALTER THRESHOLD. ALTER WORK ACTION SET. ALTER WORKLOAD

EXPLAIN• e x p l a in statement• PREPARE statement- EXECUTE pmnioge on tho system-defined explain routines

Grant USAGE privilege on workloads

Hình 10.5 - Các đặc quyền ờ mức CO’ sờ dữ liệu và chức năng của chúng

V9.7Chú ý:

Trong DB2 9.7, để cung cấp tính đảm bảo mật và quản trị dữ liệu phù hợp hơn, quyền hạn nên được cấu hình rõ ràng, nên phân biệt rõ nhiệm vụ của người quản trị hệ thống, người quản trị cơ sở dữ liệu, người quản trị bảo mật.

Trong phiên bản DB 9.7, phạm vi chức năng của một số quyền đã được hạn chế hơn so với ở các phiên bản DB2 trước đó. Ví dụ, một SYSADM không còn quyền truy cập dữ liệu từ bất kì cơ sở dữ liệu nào nữa. Một DBADM không còn các quyền truy cập dữ liệu cho cơ sở dữ liệu mà người dùng này đang quản trị. Mặc khác, SECADM được tăng nhiều chức năng hơn như gán và hủy các quyền và đặc quyền cho những người dùng, vai trò và nhóm.

Những quyền mới cũng được tạo thêm để cho nhiều sự lựa chọn cho nhiệm vụ bảo mật hệ thống. Điều này làm giảm thiểu các rủi ro của việc rò rỉ dữ liệu bằng việc không cho người sử dụng nhiều quyền hơn cái họ cần trong công việc của mình.

10.2.2.3 Cho phép SYSADM và DBADM hoạt động như phiên bản cũ DB2 (trước 9.7).

Nếu muốn SYSADM giống như ở các phiên bản cũ của DB2, có hai trường hợp cần quan tâm.

Page 176: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

176 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

■ Nếu SYSADM là người tạo cơ sở dữ liệu, thì nó tự động nhận quyền DATAACCESS, ACCESSCTRL, SECADM và DBADM cho cơ sờ dữ liệu đó. Nó cho phép SYSADM có khả năng tương tự như ở các phiên bản DB2 trước phiên bản 9.7.

■ Nếu SYSADM không phải là người tạo nên cơ sở dữ liệu, thì một SECADM phải gán DBADM với DATAACCESS và ACCESSCTRL (mặc định) cho SYSADM trên cơ sở dữ liệu được chỉ định.

Một vài trường hợp lưu ý cho SECADM:

■ Mặc định, SECADM là người tạo nên cơ sở dữ liệu.

■ Nếu một người dùng có quyền SECADM, và gán SECADM cho một người dùng có quyền SYSADM, thì SYSADM có thể gán SECADM cho những người dùng khác.

■ Nếu một người dùng với quyền SECADM gán DBADM cho một người dùng, thì mặc định DBADM cũng nhận được DATAACCESS và ACCESSCTRL.

Nếu ta chuyển sang cơ sở dữ liệu DB2 9.5, các khả năng của SYSADM và DBADM sẽ không thay đổi bởi vì DB2 tự dộng gán quyền DBADM, DATAACCESS và ACCESSCTRL cho nhóm SYSADM trong lúc chuyển. DB2 cũng tự động gán quyền DATAACCESS và ACCESSCTRL cho mỗi ID quyền hạn đang có DBADM. Thêm vào đó, DB2 tự động gán quyền SECADM cho người dùng (ID) đang thực hiện di chuyển nếu như không có ID nào có kiểu là USER được giữ quyền SECADM trong cơ sở dữ liệu. SYSADM sẽ mất các khả năng ngầm định để gán hoặc hủy DBADM và SECADM, bây giờ chỉ được thực thi bởi SECADM.

10.2.3 Vai trò

Vai trò cho phép người quản trị gán các đặc quyền/ quyền cho vài người dùng hoặc nhóm người dùng. Vai trò cũng giống như nhóm, nhưng nó được định nghĩa bên trong DB2, và do đó, có một vài ưu điểm nhất định. Ví dụ, các đặc quyền/ quyền gán cho các vai trò phải luôn được sử dụng khi bạn tạo các đối tượng như khung nhìn (view), bẫy sự kiện (trigger), nó không áp dụng cho nhóm người dùng. Mặt khác, bạn không thể gán các quyền mức thể hiện ví dụ như SYSADM cho một vai trò, chỉ được gán các đặc quyền và quyền mức cơ sở dữ liệu; trong khi đó, tất cả các đặc quyền đều có thể được gán cho nhóm người dùng.

Làm việc với các vai trò đòi hỏi các bước sau:

1. Đầu tiên, người quản trị bảo mật (SECADM) tạo một vai trò sử dụng lệnh như sau:CREATE ROLE TESTER

2. Tiếp theo, DBADM phải cấp các đặc quyền hoặc quyền cho vai trò vừa tạo.Ví dụ, để cấp quyền SELECT trên các bảng STAFF and DEPT trong cơ sở dữ liệu SAMPLE cho vai trò TESTER, tiến hành như sau:

GRANT SELECT ON TABLE STAFF TO ROLE TESTER

GRANT SELECT ON TABLE DEPT TO ROLE TESTER

Page 177: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 10 - Bảo mật Cơ sở dữ liệu 177

3. Tiếp theo, người quản trị gán vai trò TESTER cho người dùng RAUL và JIN:

GRANT ROLE TESTER TO USER RAUL, USER JIN

4. Tiếp theo, nếu JIN rời khỏi phòng TEST, người quản trị gỡ bỏ vai trò TESTER của JIN:

REVOKE ROLE TESTER FROM USER JIN

10.3 Xem xét việc nhóm các đặc quyềnNếu bạn quyết định sử dụng nhóm thay vì vai trò, có thể xem xét dựa vào các điều sau:

■ Khi một nhóm được gán các đặc quyền, các thành viên của nhóm đó được gán những đặc quyền ngầm định, kế thừa qua thành viên nhóm.

■ Khi một người dùng bị xóa khỏi nhóm, người dùng này mất đi các đặc quyền ngầm định của nhóm, nhưng vẫn giữ các đặc quyền mà họ được gán tường minh trước đó. Các đặc quyền được gán tường minh cho một người dùng phải được gỡ bỏ tường minh từ người dùng.

10.4 Nhóm PUBLIC

DB2 định nghĩa một nhóm bên trong được gọi là PUBLIC. Bất cứ người nào đã được định danh bỏ'i hệ điều hành hoặc dịch vụ chứng thực mạng đều đưọ’c ngầm định là thành viên của nhóm PUBLIC. Khi một cơ sở dữ liệu được tạo ra, một số quyền mặc định sẽ được gán một cách tự động cho nhóm PUBLIC:

■ CONNECT,

■ CREATETAB,

■ IMPLICIT SCHEMA,

■ BINDADD

Để thêm vào mức độ bảo mật, chúng ta nên hủy bỏ mọi quyền từ nhóm PUBLIC như sau:REVOKE CONNECT ON DATABASE FROM PUBLIC REVOKE CREATETAB ON DATA3ASE FROM PUBLIC REVOKE IMPLICIT_SCHEMA ON DATABASE FROM PUBLIC REVOKE BINDADD ON DATABASE FROM PUBLIC

10.5 Lệnh GRANT và REVOKELệnh GRANT và REVOKE là lệnh SQL chuẩn, được dùng để gán hoặc hủy bỏ quyền của một người dùng, một nhóm hoặc một vai trò. Người dùng sử dụng được những lệnh này, ít nhất phải có quyền ACCESSCTRL. Sau đây là một số ví dụ về các câu lệnh này:

Page 178: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

178 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Để gán quyền SELECT trên bảng T1 cho người dùng USER1:GRANT SELECT ON TABLE T1 TO USER userl

Để gán tất cả các quyền trên bảng T1 cho nhóm GROUP1:GRANT ALL ON TABLE T1 TO GROUP groupl

Để hủy bỏ tất cả các quyền trên bảng T1 từ nhóm GROUP1:

REVOKE ALL ON TABLE T1 FROM GROUP groupl

Để gán quyền EXCUTE trên thủ tục p1 cho người dùng USER1:GRANT EXECUTE ON PROCEDURE pi TO USER userl

Để hủy bỏ quyền EXCUTE trên thủ tục p1 từ người dùng USER1:REVOKE EXECUTE ON PROCEDURE pi FROM USER userl

10.6 Việc kiểm tra quyền và đặc quyềnCách tốt nhất để kiểm tra việc quyền và đặc quyền là thông qua trung tâm điều khiển. Hình10.6 mô tả cách mở hộp thoại Table Privileges cho bảng EMPLOYEE từ trung tâm điều khiển.

I % C o n tro l C e n te r - loi x|Control Center Selected Edit View Tools Help

f a É3 u m © €ẫ 8 * ( 5

©III

ED

__________________ J1 CD Object View

Control Center

+ Ũ All Systems

- Cd A ll Databases0 □ SAMPLE

S--Q»—I Ũ Views [•• Cd Aliases

: - Q Nicknames

ệr D Cache Objects CD Tnggers

-Q Schemas CD Indexes

C ] Table Spaces

o Event Monitors Q B u ffe rP o o ls

£ CD Application Objects -H Ũ User and Group Objects

B C ] Federated Database Objects

ÎEDWAS - DB2 - SAMPLE - Tables ANamea DEPARTMENT

a EMP.ACT

s EMP_PHGTO

SB EMP_RESUME

ỊỊỊ) EMPLOYER

m Table - El

Schema Creator Columns

Actions:•S Open i

gg Query

& snow Reiati

* Create New

Schema,,; I Table space# I Comment# I hdex table s

O p en ...

Query...Alter...

Rename..

DropCopy...

Create

import...Export...Load...

QulesceReorganize

TEDWAS USERSPACE1

TEDWAS USERSPACE1

TEDWAS USERSPACE1

TEDWAS USERSPACE1

J

" d

J j

©bsia X

:viMbT

Data type I Length I

LAME

CHARACTER 6 VAKCHAK \]2 CHARACTER I

DEPTẼNOATE

VARCHAR 15 CHARACTER 3CHARACTER ;4 DATE “ pr

Hình 10.6 - Mở hộp thoại Table Privileges

Page 179: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 10 - Bảo mật Cơ sở dữ liệu 179

Như hình 10.6, bạn chọn bảng mong muốn, nhấp chuột phải vào bảng này và chọn Privileges. Một khi được chọn, hộp thoại Table Privileges hiển thị như hình 10.7. Hình này cũng mô tả các trường và các thành phần của hộp thoại.

S3ET K M U S OB3 - M P i f T S M K S E M A O V E E

Use Tabs to choose — between specifying privileges for Users or Groups

Permissions available to grant for this database object

11UPOATt O E L ttt

F " 3 F 3spesexces

« •

Specify privileges for additional users

Grant all privileges

■ Revoke all privileges

•YES' = grant user permission 'MO' =do HOT grant user permission •GRANT = grant user permission + permission to grant this privilege to other users

Hình 10.7 - Hộp thoại Table Privileges

Một cách khác, bạn có thể truy vấn các thể hiện danh mục DB2 SYSCAT, là nơi chứa các thông tin về việc cấp quyền. Ví dụ, nếu bạn muốn biết người dùng DB2ADMIN có quyền SELECT trên bảng T2 hay không, và muốn biết ai đã gán quyền này, bạn có thể thực hiện câu truy vấn như sau:

SELECX grantor, grantee, selectauth FROM syscat.tabauth

WHERE tabname = 1T2’

GRANTOR GRANTEE SELECTAUTH

ARFCHONG DB2ADMIN

Trong ví dụ trên, người dùng ARFCHONG đã gán quyền SELECT cho người dùng DB2ADMIN.

Page 180: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

180 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

V9.7

10.7 Tính năng bảo mật mở rộng trên WindowsĐể ngăn chặn sự truy cập thông qua hệ điều hành Windows vào các tập tin và thư mục DB2 (là những nơi mà DB2 lưu trữ thông tin), DB2 bật tính năng bảo mật mở rộng tại thời điểm cài đặt. Tính bảo mật mở rộng tạo ra hai nhóm:

■ DB2ADMNS: Nhóm này và các quản trị địa phương có toàn quyền truy cập vào tất cả các đối tượng DB2 thông qua hệ điều hành.

■ DB2USERS: Nhóm này có quyền đọc và truy cập vào tất cả các đối tượng DB2 thông qua hệ điều hành.

Đối với DB2 9.7 thì các thành viên của nhóm DB2ADMNS sẽ tự động có quyền SYSADM trong DB2 nếu tính bảo mật mở rộng được kích hoạt và tham số SYSADM_GROUP không được thiết lập.

10.8 Tóm tắtChương này trình bày các khía cạnh bảo mật của DB2, bắt đầu với một cuộc thảo luận toàn diện về sự khác biệt giữa tầm quan trọng của chứng thựv và kiểm định quyền. Từ đó, chúng ta xem xét các mức quyền khác nhau cung cấp chế độ bảo mật cho các thể hiện và cơ sở dữ liệu.

Tiếp theo, chúng ta trình bày các khái niệm mới về vai trò và làm thế nào chúng có thể được sử dụng cho lợi ích của bạn về bảo mật và những hạn chế của việc thiết lập bảo mật thông qua các nhóm. Cụ thể, nhóm PUBLIC đã được thảo luận, cùng với những đè xuất về cách bảo mật nó để người dùng nói chung bị chặn từ máy chủ dữ liệu.

Ngoài ra, các câu lệnh GRANT và REVOKE đã được khảo sát, chúng ta xem xét làm thế nào để sử dụng Trung tâm điều khiển và các bảng danh mục hệ thống để kiểm tra các quyền và các mức đặc quyền.

10.9 Bài tậpTa đã sử dụng tài khoản quản trị SYSADM để thao tác các lệnh cơ sở dữ liệu. Tài khoản này có quyền truy cập rộng rãi đến tất cả các tiện ích, dữ liệu và các đối tượng cơ sở dữ liệu. Điều quan trọng là cần bảo vệ tài khoản này để tránh sự tình cờ hay cố ý làm mất dữ liệu. Trong hầu hết các trường hợp, ta muốn tạo ra những tài khoản người dùng khác nhau hoặc các nhóm với một tập các hạn chế về quyền truy cập. Trong bài tập này, bạn sẽ tạo ra một tài khoản người dùng mới, sau đó gán cho nó những đặc quyền xác định.

Phần 1 - Làm việc với các đặc quyền

Trong phần này của bài tập, bạn sẽ thực hành cách làm thế nào để cấp phát và thu hồi các đặc quyền từ người sử dụng bằng cách sử dụng Trung tâm điều khiển.

Các bước thưc hiên:

1. Mở Windows Computer Management bằng cách kích chuột phải vào biểu tượng My Computer và chọn mục Manage trong danh sách.

Page 181: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 10 - Bảo mật Cơ sở dữ liệu 181

2. Mở rộng nhóm System Tools trên cây thư mục nằm bên trái của cửa sổ, sau đó mở thư mục Local Users and Groups. Nhấp chuột phải lên thư mục Users và chọn mục New User.

3. Trong cửa sổ hộp thoại New User, nhập các thông tin sau: trong mục User name nhập c u s to m e r và trong mục Full name nhập C u s to m e r l . Trong mục Description nhập A t y p i c a l b o o k s t o r e c u s to m & r. Trong các mục Password và Confirm password nhập ibmdb2ibm. Bỏ đánh dấu ở tùy chọn User must change password on next logon (Người dùng cần đổi mật mã ở lần đăng nhập lại) và nhấn nút Create để tạo người dùng mới, sau đó nhấn nút Close để đóng cửa sổ hộp thoại.

-2J*]Username [customer

Eull name Ịcũsĩõmẽrĩ

Description |a typical bookstore customer

Password: |

Confirm password: |»~«****«><

r User must change password at next logon

r User cannot change password

r Possaord never expires

r Account is disabled

Create | Close

4. Mở Trung tâm điều khiển, và chọn chế độ khung nhìn mở rộng bằng cách chọn Tools -> Customize Control Center. Sau đó chọn tùy chọn Advanced và bấm vào nút OK.

5. Mờ rộng cây đối tượng của Trung tâm điều khiển ở bên trái cửa sổ, chọn All Databases -> EXPRESS -> Tables.

6. Cấp đặc quyền cần có cho người sử dụng vừa được tạo ra. Từ danh sách các bảng trong cơ sở dữ liệu EXPRESS, kích chuột phải lên bảng CUSTOMERS, và chọn mục Privileges để hiển thị cửa sổ hộp thoại Table Privileges.

7. Nhấp vào nút Add Uscrvà chọn ngirời dùng customer vừa tạo ra. Nhấp vào nút OK để đóng hộp thoại Add User.

8. Bạn chú ý rằng người sử dụng c u s to m e r đã được thêm vào danh sách người dùng, nhưng chưa được gán các đặc quyền. Để cấp các quyền SELECT, INSERT, UPDATE, và DELETE cho người dùng này, chọn Yes từ các hộp thoại kéo xuống của các thành phần đó. Một người dùng Internet cần có khả năng xem/ thêm/ cập nhật/ xóa dữ liệu tài khoản của họ. Chúng ta không cung cấp cho người sử dụng những quyền khác bởi vì chúng không cần thiết đối với họ. Nhấp vào nút O K để

Page 182: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

182 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

đóng cửa sổ hộp thoại Table Privileges và chấp nhận những thay đổi bạn vừa thực hiện.

V Idb le Privileges - TEÜWAS - DB2 - SAMPLE - T LDWAS.CUSTOMERS * ]TEDWAS - DB2 - SAMPLE - TEDWAS CUSTOMERS

ìroup I

SELECT

TEDWAS

CUSTOMER

INSERT UPDATE

«I 1ẢPim lege^^ELECT V INSERT UPDATE DELETE

\ lY e s I |Yes ▼ I |Yes •* I |Yes ■* IcÖRTffÖL ALTER INOEX REFERENCES

|No ▼ I Ịno ▼ I |No ▼ I |no ▼ I

OK Cancel I Agply Reset Show SQL I Help

9. Lặp lại các bước 7-9 cho các bảng BOOKS và SALES. Đối với bảng BOOKS, chỉ cấp đặc quyền SELECT vì người dùng không nên có khả năng sửa đổi và phục hồi bất kỳ dữ liệu nào trong kho. Đối với bảng SALES, chỉ cấp những đặc quyền SELECT và INSERT. Các khách hàng không cần phải có đặc quyền DELETE hoặc UPDATE bởi vì chỉ những nhân viên mới cần phải có quyền truy cập để sửa đổi các giao dịch bán hàng.

10. Kết nối với cơ sở dữ liệu sử dụng ID của người dùng customer tạo ra ở trên bằng cách sử dụng DB2 Command Window (cửa sổ dòng lệnh của DB2) như sau:

db2 connect to express user customer using ibmđb2ibm

Thử SELECT dữ liệu từ bảng customers. Điều gì xảy ra? Thử DELETE hoặc UPDATE dữ liệu trong bảng SALES. Điều gì xảy ra?

Phần 2 - Làm việc với các quyền SYSADM, DBADM và SECADM

Trong phần này của bài tập, bạn sẽ thực hành cách làm thế nào để gán các quyền SYSADM và DBADM, và hiểu được các quyền này làm việc như thế nào.

Thủ tue:

Page 183: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 10 - Bảo mật Cơ sở dữ liệu 183

1. Thực hiện theo các bước tương tự như ở phần 1 để tạo ra một người dùngmới: mysysadm

2. Tạo nhóm Windows mysysadmgrp. Thực hiện theo các bước tương tự như để tạo ra một người dùng, nhưng thay vì chuột phải lên thư mục Users, bạn nhấn chuột phải vào thư mục Groups và chọn New Group. Đối với trường Group name, nhập mysysadmgrp. Trong phần Members, nhấn vào Add để thêm một thành viên mới, và nhập vào mysysadm. Nhấp chuột vào nút Check Names để xác nhận bạn đã nhập vào các thành viên một cách hợp lệ. Sau khi bạn hoàn thành, nhấp chuột vào Create, sau đó vào Close.

3. Như vậy đến giờ bạn đã lạo ra một trong những người sử dụng mysysadm và một nhóm mysysadmgrp mà người sử dụng mysysadm là thành viên. Tất cả điều này được thực hiện trên hệ điều hành Windows. Bây giờ chúng ta cần phải thông báo cho DB2 rằng chúng ta muốn nhóm mysysadmgrp được là nhóm SYSADM bằng cách sử dụng lệnh sau từ DB2 Command Window:đb2 update đbm cfg using SYSADM_GROUP mysysadmgrp

Khi tham sộ SYSADM_GROUP không phải là động, bạn cần phải dừng lại (stop) và bắt đầu (start) một thể hiện. Tác dụng của tùy chọn trong db2stop sẽ đảm bảo tất cả các kết nối được loại bỏ trước khi db2stop.db2stop force đb2start

4. Kết nối với cơ sở dữ liệu SAMPLE bằng cách sử dụng người dùng mysysadm từ DB2 Command Window, và đưa ra một câu lệnh SELECT * trên bảng STAFF. Lưu ý rằng bạn cần phải sử dụng lược đồ chính xác với cái được sử dụng khi bạn tạo ra bảng này. Trong ví dụ dưới đây chúng tôi sử dụngarf chong như là một lược đồ.

db2 connect to sample user mysysadrtt using ibmdbzibm db2 select * from arfchong.staffBạn sẽ nhận được một thông báo lỗi như thế này. Tại sao? Bạn không phải là SYSADM?

SQL0551N "MYSYSADM" does not have the required authorization or privilege to perform operation "SELECT" on object "ARFCHONG.STAFF". SQLSTATE=42501

Bắt đầu từ DB2 9.7, SYSADM không nhận được quyền DBADM theo mặc định, đó là lý do tại sao bạn nhận được lỗi.

5. Sử dụng người dùng Windows đã được dùng để tạo ra cơ sở dữ liệu SAMPLE, kết nối với cơ sở dữ liệu. Trong ví dụ, ARFCHONG là người sử dụng. Tiếp theo cấp DBADM không có DATAACCESS cho người dùng mysysadm, và thử SELECT trên STAFF lại như mysysadm. Nó đã làm việc? Tại sao?

Page 184: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

184 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

db2 connect to sample user arfchong using ibmdb2ibmdb2 grant dbadm without dataaccess on database to user mysysadmdb2 connect to sample user mysysadm using ibmdb2ibmdb2 select * from arfChong.staff

Như bạn thấy, bạn vẫn nhận được thông báo lỗi tương tự ngay cả sau khi mysysadm đã được cấp DBADM. Cách xử lý này là bình thường vì chúng ta đa đưa ra mệnh đề WITHOUT DATAACCESS nghĩa là quyền DATAACCESS chưa được tính đén, vì thế mysysadm vẫn chưa có quyền để truy cập vào dữ liệu. Điều này cho bạn thấy một ví dụ về cách bạn có thể giới hạn sự truy cập vào dữ liệu với DBADM.

6. Bây giờ hãy cấp DATAACCESS cho mysysadm và thử lại lệnh SELECT.

db2 connect to sample user arfchong using ibmđb2ibm db2 grant DATAACCESS on database to user mysysadm db2 connect to sample user mysysadm using ibmdb2ibm db2 select * from arfchong.staff

Bây giờ SELECT sẽ vận hành. Bài tập này cho bạn thấy một cách xử lý mới cho SYSADM và DBADM bắt đầu với DB2 9.7. Tư tưởng chính mà bạn nên có từ bài tập này là có một sự tách biệt giữa truy cập dữ liệu và những gì một SYSADM và DBADM có thể làm.

7. Thiết lập lại giá trị của SYSADM_GROUP là NULL để nhóm quản trị địa phương (Local Administrator) và tài khoản LocalSystem trở lại thành SYSADM:

db2 update dbm cfg using sysadm_group NULLdb2stop forcedb2start

Page 185: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

11Chương 11 - Sao lưu và Khôi phụcTrong chương này, chúng ta thảo luận về nhật kí cơ sở dữ liệu DB2, làm thế nào để tạo một bản sao chép đầy đủ hay bản sao chép một phần cơ sở dữ liệu của bạn bằng cách sử dụng chức năng BACKUP, và làm thế nào khôi phục dữ liệu của bạn bằng cách sử dụng chức năng RESTORE.

Chú ý:Để có thêm thông tin về ghi nhật kí, sao chép, và khôi phục, thì hãy xem video này: http://www-channeldb2.com/video/video/show?id=807741 :Video:4282

11.1 Nhật kí CO’ sở dữ liệuNếu bạn đang làm việc với một trình soạn thảo văn bản, mỗi khi bạn muốn bảo đảm là tài liệu của mình được lưu lại, thì bạn nhấp vào nút save. Trong thế giới cơ sở dữ liệu, một câu lệnh COMMIT cũng chỉ làm công việc như thế. Bất cứ khi nào một câu lệnh COMMIT được thực thi, chắc chắn rằng bất cứ thay đổi nào trong dữ liệu, cũng được lưu lại tại một nơi nào đó.

Cũng tương tự như vậy, khi bạn làm việc với một tài liệu văn bản, đôi khi bạn sẽ nhìn thấy ờ góc phải bên dưới có một thông báo ngắn là “auto-saving”. Trong thế giới của cơ sở dữ liệu cũng giống như thế, bởi vì bất kì thao tác nào bạn thực hiện trên dữ liệu, như là UPDATE, INSERT hay DELETE, đều được lưu ở một nơi nào đó khi bạn thực hiện.

Cụm từ “một nơi nào đó” trong đoạn văn trên là nói đến các nhật kí cơ sở dữ liệu. Các nhật kí cơ sở dữ liệu được lưu trữ trên ổ đĩa và được sử dụng để ghi lại các hoạt động trong các giao dịch. Nếu có một hệ thống hay cơ sở dữ liệu bị treo, thì các nhật kí được sử dụng để quay lại và thực hiện lại các giao dịch đã được thực hiện trong suốt quá trình khôi phục dữ liệu.

Hình 11.1 minh họa một sơ đồ tổng quan của những hoạt động được thực hiện khi bạn đang làm việc với một nhật kí cơ sở dữ liệu.

Page 186: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

186 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Hình 11.1 - Nhật kí cơ sờ dữ liệu

Trong Hình 11.1, chúng ta thấy một không gian bản (table space) và các nhật kí (log). Cả hai đều được lưu trữ trên đĩa, mặc dù chúng tôi đề nghị không nên giữ chúng trên cùng một ổ đĩa. Ví dụ, khi một thao tác UPDATE được thực thi thì các trang cho các hàng được xem xét sẽ được chuyển đến vùng đệm (bộ nhớ). Những thay đổi của câu lệnh update được thực hiện trên vùng đệm, và những giá trị cũ và mới sẽ được lưu trữ trên các tập tin nhật kí, đôi khi là ngay lập tức, và đôi khi là lúc mà một bộ đệm nhật kí đã đầy. Nếu một thao tác COMMIT xảy ra sau một hành động UPDATE, thì các giá trị cũ và mới sẽ được lưu trữ trong các tập tin nhật kí ngay lập tức. Quá trình này được lặp lại đối với nhiều câu lệnh SQL khác được thực hiện trên cơ sở dữ liệu. Chỉ khi thỏa mãn những điều kiện cụ thể, như là việc đạt đến ngưỡng trang thay đổi được đặc tả trong tham số CHNGPGS_THRES, thì những trang trong vùng đệm dữ liệu sẽ được “truy xuất” và được ghi vào không gian bảng trên đĩa cứng. Tham số CHNGPGS_THRES chỉ định phần trăm của vùng đệm với các trang “bẩn”, tức là các trang có chứa những thay đổi.

Thực hiện hai thao tác ghi cho mỗi thao tác COMMIT không mang tính hiệu quả. Một thao tác ghi vào các log, và một thao tác ghi vào không gian bảng trên ổ đĩa; đó chính là lý do tại sao “sự truy xuất" của dữ liệu đến không gian bảng trên ổ đĩa chỉ xảy ra khi các tham số như là CHNGPGS_THRES đạt ngưõng.

11.2 Các kiểu nhật kíCó hai kiểu nhật kí:

■ Các nhật kí sơ cấp

■ Được cấp phát sẵn và số lượng các nhật kí sơ cấp được xác định bởi tham số cấu hình cơ sở dữ liệu LOGPRIMARY.

■ Các nhật kí thứ cấp

■ Được DB2 cấp phát động khi cần. số lượng tối đa của các nhật kí thứ cấp được thiết lập bởi tham số cấu hình cơ sờ dữ liệu LOGSECOND. cấp phát động cho một nhật kí tốn nhiều chi ph- ; vì vậy, đối với các hành động xảy ra thường xuyên, vẫn

Page 187: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 11 - Sao lưu và Khôi phục 187

nằm trong sự cấp phát các nhật kí sơ cấp. Các tập tin nhật kí thứ cấp bị xóa đi khi tất cả các kết nối đến cơ sở dữ liệu bị ngắt.

Nếu giá trị của LOGSECOND được gán là -1 thì việc ghi nhật kí có thể được thực hiện liên tục; tuy nhiên, điều này không được khuyến khích vì có thể làm cạn không gian lưu trữ.

11.3 Các kiểu ghi nhật kíCó hai kiểu ghi nhật kí: ghi tuần tự quay vòng (mặc định) và ghi lưu trữ.

11.3.1 Ghi tuần tự quay vòng

Ghi nhật kí tuần tự quay vòng là kiểu ghi mặc định, và được kích hoạt khi cả hai tham số cấu hình cơ sở dữ liệu LOGARCHMETH1 và LOGARCHMETH2 được gán thành OFF. Những tham số này chỉ định phương thức sử dụng để lưu trữ các nhật kí, nhưng nếu bạn tắt (gán thành OFF), thì có nghĩa là bạn không muốn lưu trữ các nhật kí, đó chính là cách làm việc của ghi nhật kí tuần tự quay vòng. Hình 11.2 phác thảo một ví dụ minh họa ghi tuần tự quay vòng.

Hình 11.2 - Làm việc với nhật kí sơ cấp và thứ cấp

Trong Hình 11.2 có 3 nhật kí sơ cấp (primary log), vì thế chúng ta có thể giả định rằng giá trị của tham số LOGPRIMARY là 3. Ví dụ đơn giản, chỉ có một giao dịch được thực hiện. Khi giao dịch được thực hiện, thì tập tin nhật kí P1 bắt đầu được ghi, và sau đó là P2. Nếu thao tác COMMIT được thực thi và thông tin sau đó được truy xuất đến không gian bảng trên đĩa, sau đó P1 và P2 có thể bị ghi đè, vì thông tin không còn cần thiết cho việc khôi phục do hệ thống bị treo (phần này sê được thảo luận chi tiết hơn ở phần sau của chương này). Mặt khác, nếu giao dịch quá dài đến nỗi đã sử dụng P1, P2, P3, mà vẫn cần nhiều không gian giao dịch hơn nữa bởi vì giao dịch vẫn chưa được COMMIT lẫn truy xuất, thì sau đó một nhật kí thứ cấp (S1 như trong hình) sẽ được cấp phát tự động. Nếu giao dịch tiếp tục, thì nhiều nhật kí thử cấp sẽ được cấp phát hơn cho đến khi số nhật kí được cấp phát đạt mức tối đa LOGSECOND. Nếu vẫn cần nhiều nhật kí nữa, thì một thông báo lỗi xuất hiện cho biết hết khả năng cấp phát nhật kí và giao dịch sẽ bị quay lại. Ngoài ra, bạn có thể cấu hình DB2 sử dụng tham số cấu hình BLK_LOG_DSK_FUL để tiếp tục ghi nhật kí cứ mỗi 5 phút trong khi một số giao dịch bị dừng lại. Điều này cho phép nhà quản trị cơ sở dữ liệu có thời gian để tìm không gian mới, đề giao dịch có thể tiếp tục.

Page 188: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

188 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Ghi tuần tự quay vòng cho phép bạn phục hồi từ các khôi phục do bị treo, nhưng nếu bạn muốn khôi phục dữ liệu tại một thời điểm cho trước, thì thời gian gần nhất có thể là khi bạn thực hiện bản sao lưu dữ liệu ngoại tuyến lần cuối cùng.

11.3.2 Ghi nhật kí lưu trữ

Trong kiểu ghi nhật kí lưu trữ, được biết đến như là ghi lưu trữ lại, thì các tập tin nhật kí không được ghi đè lên nhau, nhưng được giữ lại, cả trực tuyến hay ngoại tuyến. Các nhật kí lưu trữ trực tuyến được lưu trữ với các nhật kí động cần cho các khôi phục khi hệ thống bị sự cố. Những nhật kí lưu trữ ngoại tuyến được chuyển đến các phương tiện khác như là băng từ, và điều này được thực hiện với các thường trình USEREXIT (routines), Tivoli Storage Manager, hoặc các sản phẩm lưu trữ của bên thứ ba khác.

Để kích hoạt chức năng ghi nhật kí lưu trữ thì gán giá trị cho các tham số cấu hình cơ sở dữ liệu là LOGARCHMETH1 hay LOGARCHMETH2 (hoặc cả hai) thành OFF. Một cách khác để kích hoạt kiểu ghi nhật kí lưu trữ là gán giá trị cho tham số cấu hình LOGRETAIN thành RECOVERY. Tham số LOGARCHMETH1 sẽ được tự động gán thành LOGRETAIN. Tuy nhiên, tham số LOGRETAIN sẽ không được chấp nhận ở những phiên bản sau, hiện còn có nó là để tương thích với các phiên bản cũ hơn của DB2.

Nhật kí lưu trữ thường được sử dụng trong những hệ thống sản phẩm; bởi vì những nhật kí đó sẽ được giữ lại, điều này cho phép khôi phục cơ sở dữ liệu sớm nhất có thể từ những tập tin nhật kí cũ nhất. Với nhật kí lưu trữ, một nhà quản trị cơ sở dữ liệu có thể phục hồi từ lỗi do con người gây ra. Thí dụ, nếu một người dùng của một hệ thống vô tình thực hiện sai một giao dịch diễn ra trong nhiều ngày, khi vấn đề đưọ'C phát hiện, thì ngưò’i quản trị cơ sở dữ liệu có thể phục hồi lại hệ thống về thời điểm trước khi vấn đề xảy ra.Tuy nhiên, vẫn còn một số thao tác bắt buộc phải làm thủ công để bảo đảm việc khôi phục thực hiện một cách chính xác.

Nhật kí lưu trữ là yêu cầu bắt buộc đối với quá trình khôi phục lại và sao lưu trực tuyến. Hình 11.3 mô tả quá trình ghi nhật kí lưu trữ.

Page 189: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 11 - Sao lưu và Khôi phục 189

ONLINE ARCHIVE: ACTIVE LOGS:Contains information for Contain information for

committed and externalized non-committed or non-transactions Stored in the extemalizedACTIVE log subdirectory. transactions.

Databaser j---------- 'í r ị -----------I Ị Primary Log I I I Primary Log I

I I P12 I- I I P131.1 Z m Jp-imary Log

P14

External Archiving Process (manual copy, userexit, Tivoli Storage Manager.

3rt party product)

Hình 11.3 - Ghi nhật kí lưu trữ

OFFLINE ARCHIVE: Archive moved from ACTIVE

log subdirectory

11.4 Ghi nhật kí CO’ sở dữ liệu từ Trung tâm điều khiển

Bạn có thể cấu hình việc ghi nhật kí cơ sờ dữ liệu từ Trung tâm điều khiển bằng cách nhấp chuột phải trên cơ sở dữ liệu, và chọn Configure Database Logging. Hành động này được mô tả như Hình 11.4.

Page 190: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

190 Nhâp mon Hê quàn tri ca sa dû lieu DB2

C on tro l C enter

sQ j Object View

U Control Centi

A il Systei

B -G a A il Datab-

1=1 □2J Ta

i-C3 Vu : Q A li

•CD Nu S O C a i

CJ Tri ï I—f l i Sc

O Inc ¡2D Ta•D E r

D Bu

H CD A p-

Ê CD Us

• 2 Fej

Stop

Restart

C o n n e d

D isconnect

Quiesce

unqu iesce

Authorities

M anage u t ilitie s ...

C onngure A utom atic M aintenance ..

Design A dv isor

co n n g u ra tio n A d v iso r...

C on figu re P a ra m ete rs ...

C onngure D ataoase Logg ing ..

High A va ilab ility D isas te r R ecovery

Backup...

Restore...RolMbrward...Stop ro ll-forward

Show Exp la ined Statem ents H istory

Exp lain SQL.

G e ne ra te DDL

M anage Storage

Applications

A c tiv ity M onitor

Spatia l Extender

Mel Search Extender

W eb se rv ices

O pen Satellite Adm in istra tion c e n te r

■ ■ II ®

• SAMPLE

id s Jes ■

pi 14 items displayed l \ § > 3 ? DÛ $ C f Default View * View

5 - S A M P L E X

• SAMPLE TEOWAS

. Local

Status as of: 9/27AM 11:27 PM “¡> R efresr

DBM State: Started ( j jS t O f i

Last Backup: None 6 a BacKup

Size

Capacity

23 MU

12560 MB1%

121 M ar age

Health U nava ilab le ffig l M on itor DR

Maintenance' Not au tom ated ^ M a in te n a n c e

J

Hinh 1 1 .4 - Câu hinh nhât ki c<y sàdû> lieu tirTrung tâm dieu khiên.

Hînh 17.5 thê hiên màn hînh thiét lâp câu hînh nhât ki ca sà dO lieu theo hu’ô’ng dan ti>ng bu’ô'c, tai dây ta cô th e chon kièu ghi nhât ki tuàn t i i quay vông hay ghi Ilfu trCh

Page 191: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 11 - Sao lưu và Khôi phục 191

■ Configure Database Logging Wizard _*J

1 Logging Type

2 Logging Size

3. Logging Location

4. Enabling Sched..

5. Summary

Choose your logging type.This wizard helps you configure database logging for the database named below. The logging type of your database affects the backup and recovery options available to you, as shown below. Task Overview.

Click next to continue.

Database :

Database State

TEDWAS - DB2 - SAMPLE

INCONSISTENT

Current Logging Type : CIRCULAR

Circular Logging

C Archive Logging

Online backups are possible: 0

Table space backups are possible O

Can recover to any point in time 0

Automatic log file management: ■/rr

Next ►] Finish Cancel

Hình 11.5 - Ghi nhật kí cơ sờ dữ liệu theo hướng dẫn từng bước

11.5 Các tham số của nhật kíĐây là một số các tham số DB CFG liên quan đến việc ghi nhật kí. Bảng 11.1 liệt kê một số các tham số chính.

Tham số Mô tả

logbufsz Dung lượng bộ nhớ được dùng như một bộ đệm cho các bản ghi nhật kí trước khi ghi những bản ghi này vào đĩa

logfilsz Kích thước của từng nhật kí được cấu hình, có dung lượng 4KB

logprimary Số lượng các bản nhật kí sơ cấp của kích thước logfilsz sẽ được tạo

logsecond Số lượng các tập tin nhật kí thứ cấp được tạo và sử dụng cho việc khôi phục, nếu cần thiết.

newlogpath Các nhật kí lưu trữ cơ sở dữ liệu hoạt động và trục tuyến thường được tạo bên dưới thư mục cơ sở dữ liệu của bạn, trong thư mục con SQLOGDIR. Bạn có thể thay đổi vị trí này bằng cách thay đổi giá trị của tham số cấu hình này trỏ đến một thư mục khác hay đến một thiết

Page 192: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

192 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

bị.

mirrorlogpath Để bảo vệ các nhật kí trên đường dẫn chính khỏi những sự cố hỏng đĩa hay vô tình xóa, thì bạn có thể chỉ định một thiết lập đồng nhất cho các nhật kí được lưu trữ trên một đường dẫn phụ (ảnh của đường dẫn nhật kí chính)

logarchmethl / logarchmeth2

Đặc tả vị trí hơn là đường dẫn nhật kí đang hoạt động để lưu trữ các tập tin nhật kí. Nếu cả hai tham số này được đặc tả thì mỗi tập tin nhật kí sẽ được ghi lưu trữ hai lần. Tức là bạn sẽ có hai bản sao chép của những tập tin nhật kí lưu trữ ở tại hai vị trí khác nhau. Các giá trị có thể có là OFF (có nghĩa là ghi nhật kí tuần tự quay vòng được kích hoạt), LOGRETAIN, USEREXIT, DISK, TSM, VENDOR

loghead Tên của tập tin nhật kí đang được sử dụng

softmax Giới hạn chi phí của việc khôi phục do hệ thống bị treo.

overflowlogpath Đặc tả vị trí cho DB2 để tìm kiếm các tập tin nhật kí cần thiết cho một hoạt động phục hồi. Tương tự như tùy chọn OVERFLOW LOG PATH của lệnh ROLLFORWARD.

blk_log_dsk_ful Thiết lập để tránh việc tràn đĩa phát sinh khi DB2 không thể tạo một tập tin nhật kí mới trong đường dẫn nhật kí đang hoạt động. Thay vào đó, DB2 sẽ cố gắng tạo cứ năm phút một tập tin nhật kí cho đến khi tạo thành công. Khi hết trỏ' ngại, thì SQL chỉ-đọc có thể tiếp tục

m axjog Phần trăm không gian nhật kí hoạt động bởi một giao dịch

num_log_span Số tập tin nhật kí hoạt động cho một UOW hoạt động

mincommit Số lượng các commit để nhóm lại trước khi ghi đĩa

Bảng 11.1 - Các tham số nhật kí

11.6 Sao lưu CO’ sở dữ liệuLệnh sao lưu dữ liệu DB2 cho phép bạn tạo ra một bản sao chép cơ sở dữ liệu lúc lệnh được thực thi. Cú pháp đơn giản nhất mà bạn có thể sử dụng để chạy lệnh này là:

BACKUP DATABASE <dbname> [ TO <path> ]

Hầu hết các lệnh và công cụ có thể được thực thi ở chế độ trực tuyến hay ngoại tuyến. Trực tuyến nghĩa là những người sử dụng khác có thể kết nối và thực hiện các thao tác trên cơ sở dữ liệu trong khi bạn đang thực thi lệnh cùa mình. Ngoại tuyến tức là không người nào ngoài bạn được kết nối đến cơ sờ dữ liệu trong khi bạn thực hiện thao tác. Để cho phép một thao tác trực tuyến, thém từ khóa ONLINE vào cú pháp lệnh, nếu không thì mặc định bạn thực thi câu lệnh trong chế độ ngoại tuyến.

Page 193: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 11 - Sao lưu và Khôi phục 193

Ví dụ, nếu muốn sao lưu cơ sở dữ liệu SAMPLE đến đường dẫn c : \B A C K U F S bạn có thể thực hiện lệnh này từ DB2 Command Window hoặc Linux Shell:

db2 BACKUP DB sample TO C:\BACKUPS

Chú ý rằng thư mục c : \B A C K U P S phải tồn tại trước khi thực thi lệnh. Cũng phải chắc chắn là không có kết nối nào đến cơ sờ dữ liệu khi bạn thực thi lệnh ở trên (chế độ mặc định là ngoại tuyến), nếu không bạn sẽ nhận một thông báo lỗi bởi vì một sao lưu ngoại tuyến không thể được thực thi khi có các kết nối đến cơ sở dữ liệu.

Trong trường hợp để tìm ra những kết nối đến cơ sở dữ liệu, ta thực hiện lệnh sau từ cửa sổ lệnh DB2 hoặc Linux Shell:

db2 list applications

Để ngắt tất cả kết nối đến từ các cơ sở dữ liệu tức thì, ta thực hiện lệnh sau từ cửa sổ lệnh DB2 hoặc Linux Shell:

đb2 force applications all

Bạn có lẽ không muốn thực hiện câu lệnh vừa rồi trong môi trường sản xuất với nhiều người sử dụng, nếu không bạn sẽ nhận những cuộc gọi đầy giận dữ từ các đồng nghiệp đấy! Chú ý rằng câu lệnh đó chạy theo cách thức không đồng bộ. Nghĩa là khi bạn cố gắng chạy lệnh sao lưu ngay sau đó, nó có thể sẽ không chạy. Hãy chờ trong giây lát, và lặp lại câu lệnh sao lưu nếu bạn gặp lỗi như lúc đầu.

Sau khi thực thi thành công câu lệnh sao lưu, một tệp mới chứa ảnh cơ sờ dữ liệu sao lưu được tạo ra. Tên của tệp này được đặt theo qui ước như trong hình 11.6

Linux/UNIX/WindowsMinute

Alias Instance Year Day Sequence

DĐALIAS.Ọ.DB2IN S T .N O D E0000.C A TN 0000.20060314131259.001

I J I I . .! JType Node Catalog Node Month Hour Second

Hình 11.6: Các qui ước đặt tên tệp ảnh sao lưu

Loại "0” có nghĩa là đó là bàn sao lưu dầy đũ. Chầng hạn như loại “3”, nghĩa là chì một không gian của bảng cần sao lưu. Giá trị NODEOOOO được gán cố định cho nốt trong cơ sở dữ liệu không-phân vùng, là trường hợp cho tất cả các ấn bản DB2 trừ ấn bản thương mại DB2 Enterprise Edition với tính năng DPF. Danh mục cũng được gán cố định với giá trị CATN0000. Tham khảo sách hướng dẫn sử dụng DB2 để biết thêm chi tiết.

Khi có nhiều bản sao lưu được ghi lại và lưu trữ trong cùng đường dẫn thì nhãn thời gian ở cuối tên tệp được sử dụng để phân biệt giữa các ảnh sao lưu. Như chúng ta sẽ thấy ở

Page 194: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

194 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

phần tiếp theo, lệnh RESTORE có thể sử dụng nhãn thời gian này để phục hồi một bản sao đã được chỉ định.

11.7 Khôi phục CO’ sờ dữ liệuViệc phục hồi cơ sở dữ liệu bao hàm việc phục hồi cơ sở dữ liệu từ các bản sao lưu hoặc các bản nhật ký. Nếu bạn chỉ phục hồi từ bản sao lưu, bạn sẽ tạo lại cơ sở dữ liệu đúng như lúc mà nó được sao lưu.

Nếu chức năng ghi nhật kí lưu trữ được bật lên trước khi tiến hành sao lưu, bạn có thể tiến hành việc Khôi phục không những từ các bản sao lưu, mà còn có thể từ các bản nhật ký. Như chúng ta sẽ thấy ở chương kế tiếp theo, việc sao lưu theo kiểu cuộn về phía trước cho phép chúng ta phục hồi từ các bản sao, và sau đó được áp dụng (theo kiểu cuộn về phía trước) cho các nhật ký vào phía cuối của các nhật ký, hoặc tại một thời điểm được chỉ định.

Chú ý rằng từ khóa “recovery” được sử dụng thường xuyên ở trong chương này, nhưng câu lệnh mà chúng ta dùng thì lại được gọi là "RESTORE”.

11.7.1 Các kiểu khôi phục dữ liệu

Có ba kiểu khôi phục dữ liệu:

■ Khôi phục dữ liệu khi hệ thống bị treo hoặc khởi động lại

Giả sử bạn đang làm việc trên một máy tính để bàn và đang chạy nhiều giao dịch quan trọng tới hệ cơ sở dữ liệu DB2. Đột nhiện bị cúp điện hoặc ai đó vô tình tháo dây nguồn của máy tính: điều gì sẽ xảy ra với cơ sở dữ liệu của bạn?

Sau khi bạn khởi động lại máy tính của mình, khởi động lại DB2, cơ chế khôi phục dữ liệu khi hệ thống treo sẽ được thực thi. Trong cơ chế khôi phục dữ liệu khi hệ thống bị treo, DB2 sẽ tự động chạy câu lệnh RESTART DATABASE, sẽ đọc và thực hiện lại hoặc không thực hiện các giao dịch dựa trên các tệp nhật kí. Khi câu lệnh này hoàn tất, bạn sẽ được đảm bảo rằng dữ liệu của bạn ở trong trạng thái nhất quán, bất cứ giao dịch nào đã hoàn tất sẽ được lưu lại và bất cứ giao dịch nào mà không được hoàn tất sẽ được quay lui trở lại trạng thái trước khi thực thi giao dịch.

■ Khôi phục dữ liệu theo phiên bản hoặc các ảnh đã sao lưu

Kiểu khôi phục này bao hàm rằng bạn đang phục hồi chì từ một tệp tin ảnh sao lưu. Vì vậy, cơ sở dữ liệu của bạn sẽ ở trạng thái như là thời điểm mà việc sao lưu được thực hiện. Bất kì giao dịch được thực thi trên cơ sở dữ liệu sau khi việc sao lưu được thực hiện sẽ bị mất.

■ Khôi phục dữ liệu theo kiểu cuộn về phía trước

Với kiểu khôi phục dữ liệu này, bạn không những chạy lệnh RESTORE từ các bản ảnh sao lưu mà còn chạy lệnh ROLLFORWARD để gắn các bản nhật ký lên bản

Page 195: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 11 - Sao lưu và Khôi phục 195

sao lưu, nhờ đó mà bạn có thể khôi phục dữ liệu tại một thời điểm được chỉ định. Kiểu khôi phục này giảm thiểu việc mất mát dữ liệu.

11.7.2 Phục hồi cơ sở dữ liệu

Sử dụng lệnh RESTORE để phục hồi lại cơ sở dữ liệu từ một bản ảnh sao lưu. Dưới đây là cú pháp đơn giản nhất cho câu lệnh này:RESTORE DATABASE <dbname> [from <path>] [taken at <timestamp>]

Ví dụ, nếu bạn đa có một tệp tin ành sao lưu cùa cơ sờ dư liệu sample với tên như sau:Minute

Alias Instance Year Day Sequence

7 . I .. ........... . L . ....JSAM PLE.Ọ.DB2IN ST.N O D E0000.CATN0000.2006Ọ 314131 259.001

Î I V I . I JType Node Catalog Node Month Hour Second

Bạn có thể thực thi lệnh như sau:RESTORE DB sample FROM <path> TAKEN AT 20060314131259

11.8 Thao tác khác với câu lệnh BACKUP và RESTOREDưới đây là danh sách một số thao tác mà bạn có thể làm với câu lệnh BACKUP vàRESTORE. Chúng tôi khuyến khích các bạn nên xem lại sách hướng dẫn sử dụng DB2 đểbiết thêm chi tiết.

■ Sao lưu một cơ sở dữ liệu ờ dạng 32-bit, và phục hồi nó ở dạng 64-bit

■ Phục hồi dữ liệu trên một cơ sử dữ liệu hiện tại.

■ Sử dụng chức năng khôi phục được định hướng lại (redirected restore) khi cần phục hồi dữ liệu trên một hệ thống mà ở đó số lượng đĩa lớn hơn số lirợng đĩa được chỉ định trong khi tạo tệp ảnh sao lưu.

■ Sao lưu hoặc phục hồi dữ liệu bằng không gian bảng, hơn là toàn bộ cơ sở dữ liệu.

■ Thực hiện sao lưu delta và sao lưu tăng dần (incremental). Cách sao lưu delta chỉ ghi lại những thay đổi so với bản sao trước, trong khi đó, sao lưu tăng dần (incremental backups) ghi lại toàn bộ những gì thay đổi và gom chúng lại thành từng tệp ảnh sao lưu.

■ Sao lưu từ các bản sao chép nhanh (flash copy) (đòi hỏi tương thích về phần cứng).

■ Khôi phục các bảng đã xóa (nếu tùy chọn được lập cho bảng).

■ Không thể thực hiện việc sao lưu ở một nền tảng (ví dụ Windows) và phục hồi ở nền tảng khác (ví dụ Linux). Sử dụng db2look và db2move trong trường hợp này. Với các phiên bản DB2 hỗ trợ hệ điều hành UNIX, biết rằng trong hệ điều hành

Page 196: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

196 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

UNIX, một số nền tảng cho phép sao lưu và phục hồi từ nền tảng UNIX tới nền tảng khác.

11.9 Tóm tắtChúng ta cũng đã tìm hiều làm sao để sao lưu và phục hồi với trình đơn dòng lệnh trong DB2, bao gồm việc tìm hiểu kỹ về ba loại khôi phục cơ sở dữ liệu: khôi phục khi máy bị treo (crash), khôi phục dựa vào phiên bản cơ sở dữ liệu (version) và khôi phục kiểu cuộn về phía trước (roll-forward).

11.10 Bài tậpMặc dù DB2 có khả năng tự động duy trì cơ sở dữ liệu, nhưng đôi khi bạn cũng muốn hiệu chỉnh chúng khi có một hoạt động cụ thể xảy ra. Trong phần bài tập này, bạn sẽ hiệu chỉnh lịch sao lưu cho cơ sở dữ liệu EXPRESS.

Thủ tuc

1. Từ cây đối tượng ở trung tâm điều khiển (Control center), bạn chọn All Database. Nhắp chuột phải trên cơ sở dữ liệu EXPRESS và chọn mục Backup. Công cụ Backup Wizard được khởi động

2. Phần giới thiệu (Introduction) sẽ tóm tắt trạng thái hiện tại của cơ sỏ dữ liệu bao gồm thời điểm sao lưu cuối cùng và phương thức truy cập. Bấm Nextỡể chuyển tới phần tiếp theo của công cụ Backup.

3. Trong phần Image, chọn đích đến của dữ liệu sẽ được sao lưu. Thông thường, bạn nên chọn một ổ đĩa khác với ổ đĩa đang lưu cơ sờ dữ liệu hiện hành. Bây giờ, tạo một thư mục mới trong hệ thống có tên là c : \db2backup, đây sẽ là thư mục chứa cơ sở dữ liệu sao lưu. Trong trình hỗ trợ, chọn File System trong danh sách Media Type. Bấm nút Add, chọn thư mục bạn vừa tạo ra, rồi bấm OK. Sau đó bấm Next đề chuyển sang mục tiếp theo.

4. Bạn có thể khám phá phần Options and Peformance tuy nhiên bạn nên để chế độ mặc định vì DB2 mặc định cho phép sao lưu ở chế độ tối ưu nhất. Thử nghiệm phần Schedule sau khi khám phá xong phần Options and Performance.

5. Trong phần Schedule, nếu như trình lập lịch chưa được kích hoạt thì bạn hãy kích hoạt chúng. Chọn hệ thống để tạo ra danh mục các công cụ và thực hiện chúng. Mô tả một giản đồ cho danh mục công cụ và chọn để tạo ra nó trong cơ sở dữ liệu EXPRESS hiện hành. Danh mục công cụ sẽ chứa siêu dữ liệu về tắt cả các tác vụ lập lịch. Bấm nút OKđể tiếp tục. Bấm Next để chuyển sang mục tiếp theo sau khi danh mục công cụ đã được tạo lập.

Page 197: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 11 - Sao lưu và Khôi phục 197

, C ređte New Tools Catalog - TEDWAS illInstance DB2 ▼

Tools Catalog schema exptools

Database options

Create Tools Catalog in a new database

New database name I

<• Create Tools Catalog in an existing database

D a tab ase

r Use an existing table space

EH

r Force all applications for instance restart

W Activate Tools Catalog

OK Cancel | Show Command | Help

6. Trong phần Schedule, tạo ra một mục lục cho việc thi hành các tác vụ. Lập lịch sao lưu mỗi ngày vào lúc 1 giờ sáng. Bấm Nextỡể sang mục kế tiếp.

m. Backup Wizard *J

Enabling the DB2 scheduling function...To enable the scheduling function of DB2, you need to create a database to store task and schedule information. Creating this database also enable other Task Center features The Task Center provides support for more complex task scheduling and management.

C Run now without saving task history

^ Create this as a task in the Task Center

Run System |t e d w a s

Scheduler System |t EDWAS ▼ I Advanced... I

Task name 1 Backua - 10/3ÆI4 11:19:17 AM ED

f Save task only

C Save and run task now

& Schedule task executicn

Details

Run once, on 10/3AM at 11:19:17 AM

Runtime authorization

User ID j tedwas

Password [

i Back I I Next ► ~| Finish I Cancel I

Page 198: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

198 Nhap mon He quan trj ca sa dO lieu DB2

Occurs

Start date |October 4,2004 ^

Start time 101 00:00 i j

C Run once

G Regeating schedule

Repetition interval [ T . [Days T ]

(f Wait this long after the task starts Each start time is calculated by adding the repetition frequency to the previous start time.

r Wait this long after the task completes

Each start time is calculated by adding the repetition frequency to the previous end time.

r End data H October d, 2004

i~ Jse saved s c lie d u e I----------------------------------------3

PreviewRun every 7 days at 1:00:00 AM, starting on 10/4/04.

OK Cancel

7. Trong muc Summary, ban co the xem lai cac tac vu s i dime tao ra. Sau do bam Finish de tao ra tac vu.

8. Chay trung tarn tac vu (Task Center) de xem hoac chinh si>a cac tac vu sao lu>u vi>a mai dirge tao ra..

Page 199: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

12Chương 12 - Nhiệm vụ bảo trìTrong chương này, chúng ta sẽ thảo luận về các công việc cần thiết để bảo trì tốt cơ sở dữ liệu của bạn. Nhìn chung, hướng giải quyết của DB2 là tự động thực hiện hầu hết các công việc này. Cũng giống như các ấn bản DB2 hiện hành khác, DB2 Express-C cũng có những khả năng tự động này. Khả năng tự quản lý này có ích rất lớn đối với các công ty vừa và nhỏ, là những công ty không thể thuê một nhà quản trị cơ sở dữ liệu - DBA (Database Administrator) làm việc cả ngày để quản trị máy chủ dữ liệu của còng ty. Mặt khác, nếu một quản trị viên như vậy được thuê, họ sẽ có nhiều thời gian rỗi hơn để thực hiện các công việc nâng cao khác, điều này sẽ tốt hơn cho công ty.

Chú ý:

Để biết thêm các thông tin về các công việt bảo trì, bạn có thể xem đoạn video: http://www.channeldb2.com/video/video/show?ỉd=807741 :Video:4302

12.1 REORG, RUNSTATS, REBINDCó ba công việc bảo trì chính trong DB2, như mô tả ở hình 12.1: REORG, RUNSTATS và REBIND.

Hình 12.1 - Các công việc bảo trì: REORG, RUNSTATS, REBIND

Page 200: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

200 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Hình 12.1 cho thấy rằng các công việc bảo trì được thực hiện theo một chu trình vòng tròn. Nếu thực thi REORG, khuyến cáo bạn cũng nên chạy RUNSTATS, tiếp theo đó là REBIND. Sau một thời gian, các bảng trong cơ sở dữ liệu sẽ bị thay đổi do việc thực hiện các thao tác UPDATE, DELETE và INSERT. Vào thời điểm đó, một chu kỳ mới sẽ bắt đầu với REORG.

12.1.1 Lệnh REORG

Theo thời gian, khi bạn thực hiện các thao tác INSERT, UPDATE và DELETE trên cơ sờ dữ liệu, dữ liệu của bạn càng ngày càng bị phân mảnh theo từng trang cơ sờ dữ liệu. Lệnh REORG thu hồi lại các khoảng trống lãng phí và tái tổ chức lại dữ liệu để có thể truy vấn hiệu quả hơn. Các bảng thường xuyên bị thay đổi sẽ có lợi nhiều nhất từ lệnh REORG.Bạn có thể REORG các chỉ mục cũng như các bảng, và REORG có thể được thực hiện trực tuyến hay ngoại tuyến.

Lệnh REORG ngoại tuyến thực hiện nhanh hơn và hiệu quả hơn, nhưng lại không cho phép truy nhập đến các bảng, trong khi REORG trực tuyến lại cho phép truy nhập tới các bảng, nhưng lại có thể sử dụng rất nhiều tài nguyên hệ thống; lệnh này hoạt động tốt nhất đối với các bảng có kích thước nhỏ.

Cú pháp:REORG TABLE <tablename>

Ví dụ:

REORG TABLE employee

Lệnh REORGCHK có thể được sử dụng trước lệnh REORG để xác định liệu một bảng hay một chỉ mục có cần được sửa chữa hay không.

12.1.2 Lệnh RUNSTATS

Bộ tối ưu hóa Optimizer chính là “khối óc” của DB2. Nó tìm những đường dẫn truy nhập hiệu quả nhất để định vị và truy vấn dữ liệu. Bộ tối ưu hóa đánh giá chi phí của hệ thống, và sử dụng thống kê của các đối tượng cơ sờ dữ liệu được lưu trong các bảng danh mục (catalog table) để có thể tối ưu hóa hiệu năng của cơ sở dữ liệu. Ví dụ, các bảng danh mục có số liệu thống kê về việc hiện có bao nhiêu cột trong bảng, có bao nhiêu dòng, có bao nhiêu kiểu chỉ mục và những kiểu chỉ mục nào có thể sử dụng được với mỗi bảng...

Thông tin thống kê không được cập nhật động. Đặc điểm này là do khâu thiết kế, vì bạn sẽ không muốn DB2 cập nhật thông tin thống kê ngay sau mỗi thao tác trên cơ sở dữ liệu; điều này có thể tạo ra các tác động tiêu cực đến hiệu năng của toàn bộ cơ sở dữ liệu.Thay vào đó, DB2 cung cấp lệnh RUNSTATS để có thể cập nhật những thống kê này. Việc cập nhật các thống kê về cơ sở dữ liệu là cần thiết. Bộ tối ưu hóa của DB2 có thể tạo ra những thay đổi cơ bản về đường dẫn truy nhập khi nó xem xét một bảng có một dòng hay có một triệu dòng. Khi các thống kê về cơ sở dữ liệu đã được cập nhật, DB2 có thể chọn

Page 201: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 12 - Nhiệm vụ bảo trì 201

một phương án truy nhập tốt hơn. Tần suất của việc tập hợp các thống kê này sẽ được xác định dựa trên mức độ thường xuyên thay đổi của dữ liệu trong bảng.

Cú pháp:RUNSTATS ON TABLE <schema.tablename>

Ví dụ:RUNSTATS ON TABLE myschema.employee

12.1.3 BIND /REBIND

Sau khi thực thi thành công lệnh RUNSTATS, không phải tất cả các truy vấn đều sẽ sử dụng các thống kê mới nhất. Kế hoạch truy nhập SQL tĩnh được xác định khi bạn chạy lệnh BIND lần đầu tiên, do đó các thống kê sử dụng tại thời điểm đó có thể không giống với các thống kê hiện tại. Hình 12.2 minh họa cho ý tưởng này.

Trong Hình 12.2, một chương trình nhúng viết bằng ngôn ngữ c (lưu trong tập tin với phần mở rộng “sqc”) được tiền biên dịch. Sau quá trình tiền biên dịch, hai tập tin được tạo ra, một tập tin “ .c” chứa các câu lệnh c với tất cả các câu lệnh SQL được xem như chú thích; và một tập tin “.bnd” chứa tất cả các câu lệnh SQL. Tập tin c với phần mở rộng “.c” được biên dịch như thông thường với một trình biên dịch c, tạo ra một “thư viện” như ở phía trên bên phải hình minh họa. Tập tin “.bnd" được liên kết một cách tương tự, nó tạo ra một gói được lưu trữ trong cơ sở dữ liệu. Quá trình kết nối tương đương với quá trình biên dịch các câu lệnh SQL với kế hoạch truy nhập tốt nhất được xác định dựa trên các thống kê sẵn có tại thời điểm đó, và sau đó lưu trữ chúng vào gói.

Bây giờ, điều gì sẽ xảy ra nếu thực hiện việc chèn một triệu dòng vào bảng được sử dụng trong chương trình nhúng trên? Sau khi chèn, nếu thực hiện lệnh RUNSTATS, các thống kê sẽ được cập nhật; tuy nhiên, gói sẽ không được cập nhật tự động để tính toán lại

Page 202: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

202 Nhâp mon Hê quân tri ca sa dû’ lieu DB2

dipàng dan truy nhâp dira trên céc thong kê mai nhât. Lênh db2rbind cô thé dü’O’c sir dung de tâi két noi tât câ câc gôi hiên cö sao cho cô thé lien hê tâi câc thong kê mcci nhât.

Cü phâp:db2rbind database_alias -1 <logfile>

Vi du:

De tâi két noi tât câ câc gôi trong ca sa d& lieu sam ple và Iifu trO thông tin dàu ra trong tâp tin myiog. txt, ta thu'c thi Içnh sau:

db2rbind sample -1 mylog.txt

12.1.4 Câc công viêc bào tri tù> Control Center (Trung tâm Dieu khiên)

Tir Control Center, ban cö thé chay lênh REORG và lênh RUNSTATS. Hlnh 12.3 minh hoa câch thu’c hiên.

I V C o n tro l C e n te r J s J * lControl Center selected Edit View Tools Help

% @ 8» ® ® « 4 S * £ •! 0 iH © ___________ ÊObject View

à CD Ail Systems

0 CJ All Databases s □ SAMPLE

FEDWAS - DB2 • SAMPLE • Tables

■D Views Q Aliases CD Nicknames

E CD Cache Objects £ ] Triggers

D Schemas C3 Indexes D Table Spaces

CJ Event Monitors O Buffer Pools

B CD Application Objects B C l User and Group Objects B C3 Federated Database Objects

Namem i LJU L *m _ J WILI'JILI

® EXP LAI N_STRE AM

S INJTRAY © ORG

ss PROJECT

® SALES

Uh ] STAFFOpen...Query...

Alter...

Rename .

m Table - ST DroP C opy.

JjndeUabJe^pace^J^Lon^

TEDWAS USERSPACE1

TEDWAS USERSPACE1

TEDWAS USERSPACE1

TEDWAS USERS PAC E1

TEDWAS USERS PAC E1

136 of

Schema Creator Columns

Actions:

(S Open

Query

& Show Relate'

'-C1 crea te New I

Create

Privileges

Import...

Export...

Load

Quiesce

Reorganize Indexes

Run Statistics...

Set Integnty.

l*z o f 4 ? M t? t f Default View*

@ H £ lE X

Name Data type Length | NullableSMALLINT 2 NoVARCHAR 9 YesSMALLINT 2 YesCHARACTER 5 YesSMALLINT 2 Yes

Y DECIMAL 7 YesDECIMAL 7 Yes

Hinh 12.3 - REORG và RUNSTATS tip Control Center

Page 203: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 12 - Nhiệm vụ bảo trì 203

Bạn chọn bảng mà mình muốn thao tác, nhấp chuột phải vào bảng đó và chọn Reorganize (đối với REORG) hoặc Run Statistics (đối với RUNSTATS).

12.1.4.1 Khung nhìn thông số CO’ sở dữ liệu (database operational view)

Khi bạn chọn một cơ sở dữ liệu, khung nhìn thông số về cơ sở dữ liệu hiển thị ở phía dưới bên phải của Control Center sẽ cung cấp thông tin về cơ sờ dữ liệu, như kích thước, thời điểm cơ sở dữ liệu được sao lưu gần nhất, liệu chức năng tự động bảo trì có được thiết lập hay không... Khung nhìn này cho phép bạn nhanh chóng xác định các nhu cầu bảo trì cho cơ sở dữ liệu của bạn. Hình 12.4 cho chúng ta thấy các thông tin này.

mm C o n t r o l C e n te r

Control Center Selected Edit V iew Tools Help

< 9 < ữ V B S » 1 m © % & (J1 ị a IE ®

1 Q Object V iew

J 2 Control Center ÎEDWAS - DB2 - SAMPLEs - o A l Systems

B ' O A I DatabasesName # 1

(2d Tables

CD Views

Ũ Aliases

[23 Nicknames

CD Cache Objects

¡23 Triggers

d

14 Of 14 Items displayed i \ 3 ? ■ M l ? C f Default V iew * v ie w■

□ D a ta b a s e - S A M P L E ® U 8 ! f i X

Alias name : SAMPLE System : TEDWAS

Stsius as of: 6/7/05 11:30 AM •5V Refresh

Type : Local DBM State: Started Q d StOE.

Actions: Last Backup Hone Bn Backup Database

ID Desian AdvisorSize:

Capacity:

21 MB 37969 MB

153 Manaae storaae

(§H Activity Monitor .1%

Ic3 Query Health: © Attention l is t Monitor DB Health

O Create New DatabaseMaintenance: Hot automated Maintenance

1 Health Center Alerts - Click ©

Hình 12.4 - Cửa sổ thông số CO’ sở dữ liệu của Control Center

12.2 Các lựa chọn bảo trìCó ba cách để thực hiện công việc bảo trì:

■ Bảo trì thủ công

■ Bạn thực hiện các hoạt động bảo trì một cách thủ công khi có nhu cầu.

■ Tạo các kịch bản thực hiện bảo trì

Page 204: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

204 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

« Bạn có thể tạo các kịch bản với các lệnh bảo trì và lập lịch cho chúng chạy đều đặn.

■ Bảo trì tự động

■ Để DB2 tự động thực hiện việc bảo trì cho bạn (REORG, RUNSTATS, BACKUP).

Trong phần này chúng ta tập trung vào vấn đề bảo trì tự động.

Bảo trì tự động bao gồm các khía cạnh sau:

■ Người sử dụng định nghĩa các cửa sổ bảo trì (maintainance windows), trong đó, các tác vụ có thể được thực thi mà ít bị gián đoạn nhất. Ví dụ, nếu hệ thống ít hoạt động nhất vào khoảng từ 2 giờ đến 4 giờ sáng ngày chủ nhật thì khung thời gian này sẽ hoạt động như một cửa sổ bảo trì.

■ Có hai cửa sổ bảo trì: Một dành cho các thao tác trực tuyến (online) và một dành cho các thao tác ngoại tuyến (offline).

■ DB2 sẽ thực hiện các hoạt động bảo trì một cách tự động chỉ khi cần thiết trong các cửa sổ bảo trì.

Từ Control Center, bạn có thể gọi thủ thuật Configure Automated Maintenance (Cấu hìnhbảo trì tự động) như Hình 12.5.

.Joj_xJRemove Start Stop

_____________ RestartCD Object View Connect..

Control Center

39 » Ẽ

a control Cento Disconnect Ũ AJI Systert ûuiesce

B - Ũ All Databa Unquiesce

Authorities.

Manage utilities

B - t I saania23 Tabû Vie-■22 AlisC2 Nie

Éö O Cac23Tng23 Sch2 j IndcCD TabC3 Eve23 Buf

ü CD App5) Ũ US€á - ũ Fee

Configure Automatic Maintenance

Backup

Restore .

Roll-forward.

Explain SQL

Generate n n i

Manage Storage...

Applications

Activity Monitor

Spatial Extender

Net Search Extender

wet) Services

2 items displayed A Sr' 4? 08 <? Cf Default View

Cuiiunt view o f the Cuntrol Center: Advanced

Open Satellite Administration Center

Hình 12.5 - Gọi cửa sổ thủ thuật Configure Automated Maintenance

Page 205: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 12 - Nhiệm vụ bảo trì 205

Hình 12.6 sẽ cho ta thấy kết quả khi chọn thủ thuật Configure Automated Maintenance.

, Configure Automatic Maintenance *Jmm

1 Introduction

2. Type

3. Timing

4 Notification

5. Activities

6. Summary

Configure automatic maintenanceThe wizard helps you configure automatic database maintenance for the named database. Task overview

Database:

Maintenance:

TEDWAS - DB2 - SAMPLE

Not automated

How DB2 automatic maintenance works:

Configure A utom atic M aintenance

- Define periods of low and no activi:y as maintenance windows for this database- Choose maintenance activities forDB2 to handle automatically.- Choose people to be notified if automatic maintenance is unsuccessful.

DB2 evaluates the need for maintenance activities

- Using evaluation criteria, DB2 will determine if maintenance is required- If maintenance is necessary it will be done in the next available maintenance window.

Remember! Maintenance activities do not occur at scheduled times Maintenance will only occur when DB2 determines that it is required and a maintenance window is available.

I Next ► {Ị Finish Cancel

Hình 1 2 .6 -Wizard Configure Automated Maintenance

12.3 Tổng kếtChương này nghiên cứu về tầm quan trọng của việc bảo trì đối với cơ sở dữ liệu, bao gồm vai trò của các chu trình REORG, RUNSTATS và REBIND. Lệnh REORG, như tên gọi của nó, sẽ tổ chức lại dữ liệu của bạn để loại bỏ sự phân mảnh và tăng tốc độ truy xuất dữ liệu. Lệnh RUNSTATS cập nhật lại những thông tin thống kê được sử dụng bởi công cụ tối ưu của DB2 để tăng hiệu suất cho các thao tác với dữ liệu. Hai quá trình BIND và REBIND cập nhật các gói của cơ sở dữ liệu với đường dẫn truy cập mới nhất của nó.

Chúng ta cũng đã xem xét công cụ trực quan được cung cấp trong Control Center của DB2 để thực thi các hoạt động bảo trì một cách thủ công, hay thông qua các kịch bản, hoặc chạy theo chế độ tự động.

12.4 Bài tậpTrong bài tập này, bạn sẽ cấu hình bảo trì tự động cho cơ sở dữ liệu SAMPLE của DB2.

Page 206: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

206 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Thu tue:

1. Từ cây đối tượng ở cửa sổ Control Center, nhấp chuột phải vào cơ sở dữ liệu SAMPLE và chọn Configure Automatic Maintenance. Thao tác này sẽ gọi thủ thuật Configure Automatic Maintenance.

2. Trang Introduction (Giới thiệu) của thủ thuật hiển thị những thiết lập bảo trì tự động hiện tại. Nếu bạn tạo cơ sở dữ liệu với tùy chọn bảo trì tự động, thì bảo trì tự động đã tự được cấu hình. Bạn có thể sử dụng thủ thuật này để cấu hình lại các tùy chọn cho bảo trì tự động. Chọn Next đề chuyển sang trang tiếp theo của nó.

3. Trang Type (Kiểu) yêu cầu bạn lựa chọn giữa việc tắt tất cả các tùy chọn bảo trì tự động và việc thay đổi các thiết lập bảo trì tự động. Chọn tùy chọn thay đổi các thiết lập bảo trì tự động hiện tại. Sau đó chọn Next.

4. Trang Timing (Thời gian) của thủ thuật sẽ yêu cầu bạn chỉ định các cửa sổ bảo trì. Cấu hình cơ sở dữ liệu để nó ngoại tuyến (offline) vào các đêm thứ bảy và chủ nhật, từ nửa đêm đến 6h sáng như hình bên dưới. Chọn Change bên cạnh khung xem trước các thiết lập bảo trì ngoại tuyến và lựa chọn thời gian mong muốn. Sau khi chỉ ra các thông tin được yêu cầu, chọn OK để quay trở lại thủ thuật. Để nguyên cửa sổ bảo trì trực tuyến (bảo trì trực tuyến có thể thực hiện bất kì lúc nào). Chọn Nextăề tiếp tục.

Specify when automatic maintenance can occur

<• During the specified time.

C Outside the specified time.

Specify the start time and the duration of the maintenance window. The start time is specified using a 24-hour clock.

Start time | 00 00 ^$j

Duration r h o u r s

Specify how often this maintenance window occurs. A valid maintenance window must meet the conditions specified on both the Days of the Week tab and the Days of the Month tab.

Days of the week | Days of the month |

r ah

(• Onl^ on selected days

r Monday f“ Friday

r Tuesday W Saturday

r Wednesday W Sunday

r Thursday

Preview

oOffline automatic maintenance can occur during the following window

TimeDays of the week Days of the month Activities using this window

00:00 • 06:00 (6 hours) Saturday, Sunday ALL None

OK I Cancel I Help

Page 207: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 12 - Nhiệm vụ bảo trì 207

5. ở trang Notification (Cảnh báo), bạn có thể thiết lập một mối liên lạc trong trường hợp hoạt động bảo trì tự động bị lỗi. Bây giờ ta sẽ bỏ qua bước này và chọn Next.

6. ở trang Activities (Các hoạt động), bạn có thể chọn để tự động thực hiện từng phần hay không tự động thực hiện một số hoạt động cụ thể, cũng như chọn để được thông báo về một số hoạt động nào đó. Trong ví dụ này, hãy chắc chắn rằng tất cả các hộp kiểm Automate đều được chọn và các hộp kiểm Notify không được chọn. Nhấp chuột vào Next.

7. Trước khi chuyển qua trang tiếp theo, bạn nên cấu hình vị trí sao lưu của cơ sở dữ liệu. Một lựa chọn lý tưởng là bạn sẽ lưu nó trên một ổ đĩa vật lý khác phòng trường hợp ổ đĩa đang sử dụng bị lỗi. Từ trang Activities, chọn tùy chọn sao lưu cơ sở dữ liệu Backup Database và sau đó chọn Configure Settings (Thiết lập cấu hình).

8. ở thẻ tiêu chí sao lưu Backup Criteria của cửa sổ hội thoại Configure Settings, ta chọn tùy chọn Balance Database Recoverability with Performance (cân bằng giữa khả năng phục hồi cơ sở dữ liệu và hiệu suất), ở thẻ vị trí sao lưu Backup Location, chọn vị trí sao lưu đã có, rồi chọn Change để thay đổi. Chỉ ra một vị trí khác để thực hiện việc sao lưu (và chắc chắn rằng sẽ có đủ không gian lưu trữ trên ổ đĩa đó), ở thẻ chế độ sao lưu Backup Mode, hãy chắc chắn rằng chế độ sao lưu ngoại tuyến Offline Backup được chọn. Chọn O K để đóng thẻ Backup Criteria và chọn Nextâể chuyển qua trang tiếp theo.

9. Trang Summary (Tổng kết) của thủ thuật chứa thông tin tồng kết các lựa chọn mà ta đã chọn. Chọn Finish để chấp nhận và thực thi các thay đổi.

Page 208: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

13Chương 13 - Truy cập đồng thời và khóaChương này sẽ đề cập cách mà nhiều người dùng truy cập vào cùng một cơ sỡ dữ liệu cùng một lúc mà không làm ảnh hưởng lẫn nhau, và giữ cho tác vụ của họ ổn định. Chúng ta sẽ nói về các định nghĩa sau: giao dịch (transactions), truy cập đồng thời (concurrency) và khóa (locking).

Chú thích:

Để biết thêm thông tin về truy cập đồng thời và khóa xem video tại :

http://www.channeldb2.com/video/video/show?id=8Q7741 :Video:4322

13.1 Giao dịch (Transactions)Một giao dịch hay một đơn vị của công việc là gồm một hay nhiều câu lệnh SQL được thực thi, nên được coi như là một đơn vị độc lập, nghĩa là nếu một trong những càu lệnh trong giao dịch thất bại thì toàn bộ giao dịch thất bại, và những câu lệnh đã thực hiện từ trước điểm sai sẽ bị quay lại. Một giao dịch kết thúc với dòng lệnh COMMIT, cũng có nghĩa là bắt đầu với một giao dịch mới. Hình 13.1 cho ta thấy một ví dụ của một giao dịch.

Savings Checking

- Debit S100 from Savings account- Credit $100 to Checking account

Hinh 13.1 - Mot v i du ve giao dich

Page 209: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 13 - Truy cập đồng thời và khóa 209

Trong hình 13.1, ví dụ bạn muốn chuyển 100 đô la từ tại khoản tiết kiệm sang tài khoản séc. Như thấy ở trên, các việc tuần tự cần làm để thực thi tác vụ trên:

- Rút 100 đô la từ tài khoản tiết kiệm

- Chuyển 100 đô la vào tài khoản séc

Nếu những tác vụ trên không thực hiện như một đơn vị đơn lẻ của công việc, hãy tưởng tượng chuyện gì sẽ xảy ra khi một sai lầm nghiêm trọng xuất hiện: sau khi trừ tiền ở tài khoản tiết kiệm, nhưng tiền không cộng vào tài khoản séc. Bạn sẽ mất 100 đô la!

13.2 Truy xuất đồng thời (Concurrency)Truy xuất đồng thời ngụ ý một vài người dùng có thể làm việc trên một đối tượng cơ sở dữ liệu cùng một thời điểm. DB2 được thiết kế cho cơ sở dữ liệu đa người dùng. Truy cập dữ liệu phải kết hợp một cách thích hợp và rõ ràng việc sử dụng một cơ chế bảo đảm tính toàn vẹn và nhất quán. Xem ví dụ hình 13.2.

ID Name Age

3 Peter 33

5 John 2322 Mary 2235 Ann 55

Hình 13.2 - Một ví dụ về truy xuất đồng thời và sự cần thiết của việc kiểm soát truy xuất đồng thời

Trong hình 13.2, có 4 ứng dụng , App A, App B, App c và App D đang cố truy xuất cùng một dòng (dòng 2) trong cùng một bảng. Nếu không có bất kì sự kiểm soát nào, mọi ứng dụng sẽ có thể thực hiện những tác vụ trái ngược nhau. Giả sử mọi ứng dụng đều đang muốn cập nhật cột tuổi của dòng 2 với giá trị khác nhau, ứng dụng nào cật nhật cột đó cuối cùng thì là "người chiến thắng”. Rõ ràng chúng ta thấy trong ví dụ trên, cần có một vài sự kiểm soát để bảo đảm tính nhất quán của kết quả. Sự kiểm soát này dựa trên việc sử dụng khóa (locking).

Khái niệm khóa và truy suất đồng thời đi cùng với nhau. Khóa thì sẽ tạm thờ dừng những tác vụ của những ứng dụng này cho đến khi những tác vụ của những ứng dụng khác hoàn thành. Càng nhiều khóa trên một hệ thống, càng ít những truy suất đồng thời có thể. Và ngược lại, càng ít khóa trên hệ thống, càng nhiều những truy suất đồng thời.

Khóa xuất hiện một cách tự động và hỗ trự một giao dịch và được giải phóng khi giao dịch kết thúc (sử dụng câu lệnh COMMIT và ROLLBACK). Khóa có thể xuất hiện trên bảng và dòng. Có hai loại khóa chính:

■ Khóa chia sẻ - s locks (Share locks ) - xuất hiện khi một ứng dụng muốn đọc một dòng và không các ứng dụng khác cập nhật trên cùng một dòng.

Page 210: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

210 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

« Khóa dành riêng - X locks (Exclusive locks) - xuất hiện khi ứng dụng cập nhật, chèn, hay xóa một dòng.

Bây giờ hãy xem hình 13.3, giống hình 13.2 nhưng bây giờ nó có thêm một cái khóa.

Hình 13.3 - Ví dụ về sự truy xuất đồng thời và sự cần thiết của khóa.

Ví dụ trong hình 13.3, nếu ứng dụng App B truy xuất dòng 2 đầu tiên, và thực hiện tác vụ là UPDATE, App B giữ khóa X lock trên dòng đó. Khi các ứng dụng App A, App c và App D muốn truy xuất cùng dòng đó, chúng không thể UPDATE được vì khóa X lock. Sự kiểm soát này bảo đảm tính toàn vẹn và nhất quán cho dữ liệu.

13.3 Một số vấn đề nếu không có sự kiểm soát truy cập đồng thờiNếu không có sự kiểm soát truy cập đồng thời, chúng ta sẽ gặp các vấn đề sau:

■ Mát dữ liệu cập nhật (Lost update)

■ Đọc dữ liệu không hoàn tất (Uncommited read)

■ Đọc dữ liệu không thể lặp lại (Non-repeatable read)

■ Đọc dữ liệu thừa (Phamtom read)

13.3.1 Mất dữ liệu cập nhật (lost update)

Mất dữ liệu là một vấn đề giống với cái mà ta đã đề cập đầu chương là ứng dụng nào thực hiện cập nhật cuối cùng là người chiến thắng

Page 211: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 13 - Truy cập đồng thời và khóa 211

ReservationsFlight Seat P_Name512 7C512 7B

... ... ...

Update Reservations Set P-name =

'Instruct' Where Flight = 512 and Seat = '7C' and P name is NULL

512 7C Instruct

Update Reservations Set P-name =

'Manager' Where Flight = 512 and Seat = '7C and P Name is NULL

512 7C M anager

Hình 13.4 - Mất dữ liệu cật nhật

Trong hình 13.4, có hai ứng dụng đang cố cập nhật cùng một hàng. Bên trái là ứng dụng App1, và bên phải là ứng dụng App2. Các sự kiện xảy ra như sau:

1. App1 cập nhật một dòng

2. App2 cập nhập cùng dòng đó

3. App1 hoàn tất

4. App2 hoàn tất

Việc cập nhật của App1 sẽ mất khi App2 thực hiện cập nhật, như thế chúng ta có thuật ngữ “mất cập nhật dữ liệu” (lost update).

13.3.2 Đọc dữ liệu không hoàn tất ( Uncommited read)

Đọc dữ liệu không hoàn tất hay “đọc bẩn" cho phép một ứng dụng đọc những thông tin chưa được hoàn tất, và kết quả là không chính xác.

Page 212: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

212 Nhâp mon Hê quàn trj co so dû1 lieu DB2

Reservations

Flight Seat P_Name512 7C512 7B

Update Reservations Set P-name = 'Instruct' Where Flight =512 and Seat = '7C' and P Name is NULL

(^) Select seat From Reservations

r ~► Where P-name is NULL;c

512 7C Instruct

© Roll back @ Incorrect results set

Hinh 13.5 - Doc dO lieu không hoàn tât

Hmh 13.5 cho ta thây câc tâc vu sau:

1. App1 cât nhât mot dông

2. App2 doc giâ trj moi hàng dé

3. App1 trâ lai (rolls back) nhCrng gl nô thay doi dông dô

App2 dang doc mot dû> lieu chira hoàn tât, và dô là tai sao van de này dime goi ra “doc dCr lieu không hoàn tât” (uncommited read).

13.3.3 Doc dCp lieu không the lap lai (Non-repeatable read)

Doc dCr lieu không the lap lai àm chï là ban không the dat dirgc cùng mot két quà sau khi thu>c hiên cùng viêc doc trong cùng tâc vu.

Page 213: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 13 - Truy cập đồng thời và khóa 213

FLIGHT SEAT NAME DESTINATION ORIGIN

512 7B DENVER DALLAS

■ ■ ■ ■

■ ■ ■ ■814 8A SAN JOSE DENVER

m m m m

134 1C HONOLULU SAN JOSE

. . . . • ■ ■ ■

Hình 13.6 - Đọc dữ liệu không thể lặp lại

Trong hình 13.6, giả sử bạn muốn đặt một chuyến bay từ Dallas đến Honolulu. Các tác vụ xảy ra là:

1. App1 mở một bảng (cũng là tập kết quả), như bạn thấy trên hình .

2. App2 xóa dòng (ví dụ như dòng có điểm đến là “San Jose” chẳng hạn)

3. App2 hoàn tất thay đối

4. App1 đóng và mở lại con trỏ

Trong trường hợp này, vì App1 không thể có cùng một dữ liệu khi đọc lại dữ liệu đó, nó không thể có cùng một tập hợp dữ liệu; đó là tại sao vấn đề này được gọi là “đọc dữ liệu không thể lặp lại”.

13.3.4 Đọc dữ liệu thừa (Phantom read)

Đọc dữ liệu thừa thì giống như là đọc dữ liệu không thể lặp lại, nhưng khác biệt ở chỗ lần đọc tiếp theo, bạn sẽ nhận được nhiều dòng hơn lần trước. Hình 73.7 cho thấy một ví dụ.

Page 214: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

214 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Reservations

Flight Seat P_Name512 7B512 7A p Read

Select seat From Reservations Where P-name is NUU

Update Reservations Set p-name = ,NULUWhere Flight = 512 and Seat - '7A' and P_Name = 'P Read'

512 7B(3) Repeat 1 now 7C is

now available Hình 13.7 - Đọc dữ liệu thừa

Hình 13.7cho thấy chuỗi sự kiện sau:

1. App1 mở bảng

2. App2 thêm một dòng mới vào bảng đó

3. App2 hoàn thành sự thay đổi

4. App1 đóng và mở lại bảng

Trong trường hợp này, App1 không có cùng một dữ liệu như đọc dữ liệu không thể lặp lại, mà nó sẽ có thêm nhiều dòng hơn. Đó là lý do tại sao vấn đề này được gọi là “Đọc dữ liệu thừa”.

13.4 Các mức cô lậpBạn có thể nghĩ các mức cô lập như là nơi giữ các chính sách khóa, dựa trên sự lựa chọn mức cô lập bạn có thể có những tác động khác nhau cho cơ sở dữ liệu khóa một ứng dụng.

DB2 cung cấp những mức bảo vệ khác nhau để cô lập dữ liệu:

■ Đọc không cam kết (UR)

■ Ổn định con trỏ (CS)

■ Đọc ổn định (RS)

■ Đọc lặp lại (RR)

Page 215: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 13 - Truy cập đồng thời và khóa 215

V9.7

13.4.1 Đọc không cam kết

Đọc không cam kết cũng như đọc có ý xấu. Đó là mức cô lập thấp nhất, và cung cấp mức độ đồng thời cao nhất. Không có sự khóa dòng nào tồn tại trong những thao tác đọc, trừ khi ứng dụng khác cố bỏ hoặc thay thế một bảng; và cập nhập những thao tác, hành động như là sử dụng mức cô lập ổn định con trỏ.

Những vấn đề vẫn có thể có ở mức cô lập:

■ Đọc không cam kết

■ Đọc không lặp lại

■ Đọc thừa

Những vấn đề đã được ngăn ngừa ở mức cô lập này:

■ Mất dữ liệu khi cập nhật

13.4.2 Ồn định con trỏ

Ổn định con trỏ là mức cô lập mặc định. Nó cung cấp mức độ khóa tối thiểu. Cơ bản, với mức cô lập này "dòng hiện hành " (current) của con trỏ b| khóa. Nếu đó là dòng chỉ được đọc, khóa sẽ được giữ cho đến khi một dòng mới được nạp hoặc đơn vị làm việc được kết thúc. Nếu dòng được cập nhật thì khóa sẽ được giữ cho đến khi đơn vị làm việc được kết thúc.

Những vấn đề vẫn có thể xảy ra ở mức cô lập này:

■ Đọc không lặp lại

■ Đọc thừa

Những vấn đề được ngăn ngừa với mức cô lập này:

■ Mất dữ liệu cập nhật

■ Đọc không cam kết

13.4.2.1 Cam kết hiện thời

Trước DB2 9.7 khi sử dụng ổn định con trỏ ờ mức cô lập, với thao tác cập nhật (UPDATE) sẽ ngăn trình đọc thao tác chọn (SELECT) truy cập đến cùng một hàng. Tính lô-gíc ở đây là khi thao tác thay đổi đến hàng thì trình đọc sẽ đợi cho đến khi việc cập nhật hoàn thành để thấy rõ giá trị cam kết cuối cùng. Trong phiên bản DB2 9.7, có một mặc định mới về tác động con trỏ ổn định mức cô lập cho cơ sở dữ liệu mới. Tác động mới này được thực hiện bằng cách sử dụng cam kết hiện thời (currently committed - CC). Với cam kết hiện thời, một trình viết sẽ không ngăn cản một trình đọc truy cập cùng một hàng. Tác động này có thể có ở phiên bản trước nếu bạn đã sử dụng mức cô lập đọc không cam kết (UR); tuy nhiên, sự khác nhau ờ đây là với cách đoc không cam kết (UR) trình đọc lấy lại giá trị không cam kết, trong khi cam kết hiện thời (CC) trình đọc nhận giá trị cam kết hiện thời. Giá trị được cam kết hiện thời cam kết giá trị từ thời điểm bắt đầu của của thao tác viết (writer operation).

Page 216: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

216 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Cho ví dụ, bạn có bản T1 có nội dung theo dưới đây:FIRSTNAME LASTNAME Raul ChongJin xie

Giả sử bạn có chương trình AppA có câu truy vấn không cam kết:update TI set lastname = 1 Smith' where firstname = 'Raul'

Tiếp theo, chương trình AppB có câu truy vấn:

select lastname from TI where firstname = 'Raul' with es

Kể từ phiên bản DB2 9.7, những câu truy vấn kiểu như trên sẽ bị treo vì nó đang đợi khóa riêng do AppA giữ được thả ra.

Với phiên bản DB2 9.7 và cam kết hiện thời được bật (mặc định cho cơ sở dữ liệu mới), câu truy vấn sẽ được trả về giá trị cam kết hiện thời là Chong.

Lưu ý mặc dù con trỏ ổn định (CS) là mặc định chúng ta vẫn thêm ‘with CS’ ở câu truy vấn. Chúng ta sẽ thảo luận mệnh đề này ờ phần sau của chương.

Nếu chương trình AppB thử truy vấn:

select lastname from TI where firstname = 'Raul' with UR

Khi mức cô lập không cam kết (UR) được sử dụng, kết quả sẽ là Smith đây là giá trị chưa cam kết.

Ví dụ này cho thấy với cam kết hiện thời (CC), truy cập đồng thời sẽ tốt hơn cho những ứng dụng, nó cho phép những trình đọc có thể truy cập đến hàng khi mà trình ghi đang cập nhật.

Một kịch bản khác cũng tạo được sự tranh luận từ phiên bản DB2 9.7 là trình đọc ngăn ngừa một trình viết truy cập đến hàng. Với kịch bản này có một lý do là tại sao một COMMIT được đề nghị cho cả những thao tác đọc, với đảm bảo khóa chia sẻ (S lock) được sử dụng. Với khóa cc vấn đề này không cần dặt ra, việc đọc không chặn việc ghi.

Đối với những thao tác chèn (INSERT) không được cam kết, thao tác đọc sẽ giữ chúng theo mặc định; thật vậy, tập hợp kết quả sẽ không hiển thị những hàng này. Với câu lệnh xóa (DELETE), thao tác đọc cũng sẽ bỏ qua những hàng bị ảnh hường, nhưng hành vi của nó phụ thuộc vào giá trị của biến đăng kí DB2 là DB2_SKIPDELETED. Các biến đăng kí khác và thuộc tính ở các lệnh BIND và PREPARE có thể thay đổi theo hành vi mặc định của cc.

Page 217: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 13 - Truy cập đồng thời và khóa 217

Chỉ cần nhớ: Cam kết hiện thời nghĩa là nó sẽ chỉ hiển thị thông tin cam kết hiện thời, do đó các các lệnh INSERT hoặc DELETE không cam kết sẽ được bỏ qua.

Như đã đề cập từ trước, cc được bật mặc định ở cơ sở dữ liệu mới. Nếu bạn muốn tắt hoặc mở cơ sở dữ liệu được tạo từ trước thời điểm phiên bản DB2 9.7 mà cập nhật lên DB2 9.7, bạn có thể cập nhập giá trị của cấu hình cơ sở dữ liệu CUR_COMMIT. Ví dụ, để tắt cơ sở dữ liệu có tên là SAMPLE, đánh lệnh:

đb2 update db cfg for sample using CUR_COMMIT offdb2stopdb2start

13.4.3 Đọc ổn định

Với đọc ổn định, tất cả các dòng mà ứng dụng lấy ra trong một đơn vị làm việc đều bị khóa. Với một con trỏ xác định, nó khóa tất cả các dòng đủ tiêu chuẩn trong tập hợp kết quả. Ví dụ, nếu bạn có một bảng chứa 10.000 dòng và truy vấn trả về 10 dòng, thì chỉ có 10 dòng bị khóa.Cơ chế đọc ổn định sử dụng một mức độ khóa vừa phải.

Vấn đề còn tồn tại với mức cô lập này:

■ Đọc thừa

Những vấn đề giải quyết được với mức cô lập này:

■ Mất dữ liệu

■ Đọc Không cam kết

■ Đọc không lặp lại

13.4.4 Đọc lặp lại

Đọc lặp lại là mức cô lập cao nhất. Nó cung cấp độ khóa cao nhất và truy cập đồng thời tối thiểu nhất. Khóa được giữ trên tất cả các dòng xử lý việc xây dựng một tập hợp kết quả. Tức là cả những dòng không cần thiết trong tập hợp kết quả cuối cùng có thể bị khóa. Không một chương trình nào khác có thể thể cập nhật, xóa, hoặc thêm mới một dòng để có thể ảnh hưởng đến tập hợp kết quả cho đến khi một đơn vị công việc được hoàn tất.Cơ chế đọc lặp lại bảo đảm rằng những câu truy vấn tương tự nhau được đưa ra bởi một ứng dụng trong một đơn vị làm việc sẽ nhận kết quả giống nhau tại mỗi thời điểm.

Vấn đề còn tồn tại với mức cô lập này:

■ Không còn

Những vấn đề được ngăn ngừa với mức cô lập này:

■ Mất dữ liệu khi cập nhật

■ Đọc không cam kết

■ Đọc không lặp lại

■ Đọc thừa

Page 218: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

218 Nhâp mon Hê quàn tri co sà dû llêu DB2

13.4.5 So sânh câc mire dô cô lâp dû liêu

Hînh 13.8 so sânh sir khâc nhau mà câc mire cô lâp mang lai. Trong hlnh, chüng ta nhln thây mire dô cô lâp “doc không cam két” không khôa gi câ. Mire dô cô lâp ôn djnh con trô giîr mot câi khôa mot dông 1 khi no dang lây vè, nhîrng së giâi phông nô sorn roi lay dông 2 vè,... Doi vôi mire dô cô lâp doc on djnh hoâc doc lâp lai, bat cir dông nào lay vè së b| khôa, và khôa së không dirge giâi phông cho dén khi két thüc mot giao tâc (khi hoàn tât).

ID NAME QTY

1 DISP 10

2 KEYB 3

3 MOUSE 15

4 CABLE 18

5 CPU 1

6 SOUND 4

FETCH

S / 7

1 1

2 2 i l WNo Row

3 3 LocksFor

A A Read-Only4 Cursors

5 5

6 6

COMMIT POINT

A pplica tion B o u ix i- RS or RR CS UR

W- o r X -R O W LO C K S A LW A Y S H ELD UNTIL C O M M IT

Hinh 13.8 - So sânh câc mù>c dô cô lâp

13.4.6 Oät mire cô lâp

Nhîrng mire cô lâp cô the dirge chî rô tai nhièu mire:

- Phiên làm viêc (irng dung)

■ Két noi

■ Câu lênh

Nhîrng mire cô lâp bînh thu’ô’ng dirgc xâc dinh tai phiên hoâc irng dung. Neu không chï rô dirgc mire dô cô lâp trong irng dung ciia câc ban, nô mâc djnh là con trô on djnh. Chang han, bâng 13.1 cho thây nhCrng mire cô lâp khâ dï cho mot chirong trinh .NET hay JDBC và làm sao khi cài dât nhîrng thuôc tinh này phâi phù hgp vô1! mire <5ô cô lâp..

DB2 .NET JDBC

Uncommitted Read (UR) ReadUncommitted TRANSACTION_READ_UNCOMMITTED

Cursor Stability (CS) ReadCommitted TRANSACTION_READ_COMMITTED

Page 219: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 13 - Truy cập đồng thời và khóa 219

V9.7

Read Stability (RS) RepeatableRead TRANSACTION_REPEATABLE_READ

Repeatable Read (RR) Serializable TRANSACTION_SERIALIZABLE

Table 13.1 - So sánh thuật ngữ giữa các mức cô lập

Câu lệnh ở mức cô lập có thể dùng với mệnh đề WITH {mức cô lập}. Ví dụ:SELECT ... WITH {UR I CS I RS I RR}

Ví dụ kịch bản:

Một ứng dụng cần xác định “sơ bộ" số hàng trong một bảng. Hiệu suất là quan trọng. Con trỏ được yêu cầu mức cô lập ổn định với ngoại lệ của một câu lệnh SQL:

SELECT COUNT(*) FROM tabl WITH UR

Với SQL nhúng, các mức thiết lập được đặt tại thời điểm đóng gói, còn SQL động các mức được đặt ở thời gian chạy.

Việc chọn sử dụng mức cô lập nào phụ thuộc vào ứng dụng của các bạn . Nếu ứng dụng của các bạn không yêu cầu có những giá trị như trên ví dụ, chọn cô lập UR. Nếu ứng dụng của các bạn yêu cầu điều khiển rất chặt trên dữ liệu làm việc với nó, chọn cô lập RR.

Để sử dụng cam kết ràng buộc hiện thời ngữ nghĩa và đúng thời điểm hoặc thời gian chuẩn bị, sử dụng cú pháp:

BIND:

>— +----------------------------------------------------------------------------------------------------------+— >'— CONCURRENTACCESSRESOLUTION— +— USE CURRENTLY COMMITTED— +— '

'— WAIT FOR OUTCOME--------- '

PREPARE:

concurrent-access-resolution:I — I— USE CURRENTLY COMMITTED—V---------------------------- I

'-WAIT FOR OUTCOME-------- '

ở ứng dụng JDBC sử dụng trình điều khiển máy chủ dữ liệu của IBM (IBM Data Server Driver) cho JDBC hoặc SQLJ, bạn có thể sử dụng thuộc tính concurrentAccessResolution để mở cam kết hiện thời.

Page 220: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

220 Nhap mon He quan tri ca sa du’ lieu DB2

13.5 Khoa leo thangMoi khoa do DB2 tao ra se si> dung lipang bo nha nhat djnh. Khi bo toi uu cho ring de mot khoa tren toan bo bang tot han, thay vl khoa nhieu hang, khi do su1 leo thang xuat hien.Hinh 13.9 minh hoa cho dieu nay.

table

multiplerowlocks

±s

¥

loci Escdiaaun

table

tablelock

a

Hinh 13.9 - Khoa leo thang

Co 2 tham so cau hinh cc/ sa dO lieu chinh lien quan den khoa leo thang:

■ LOCKLIST - So lirang cua bo nha (trong trang 4k) du1 tru’ de quan ly nhOng khoa cho moi i>ng dung du’O’c ket noi.

■ MAXLOCKS - Phan tram cuc dai cua toan bo danh sach khoa cho mot u>ng dung co the si> dung.

Mac djnh cho hai tham bien tren la tu' dong, co nghTa ring trinh quan ly bo nha (STMM) se chinh si>a kich th iiac nhcc. Neu ban khong bat chifc nang STMM, va dat giatrj cua ban, nhu>ng gl^ tri n£y se ¿nh hu’d’ng khi xucit hiSn sg leo thang. Vi du, n6u ban dat LOCKLIST den 200k va MAXLOG den 22%, thl khoa leo thang xuat hien khi mot Crng dung dan yeu cau han 44k bo nha khoa (200k * 22% = 44K). Neu khoa leo thang xuat hien lien tuc doi vai nhung thiet lap nay, tang gia trj cua LOCKLIST va MAXLOCKS. Khoa leo thang khong tot cho hieu suat vl no lam giam su> truy nhap dong thai. Tap tin cho viec chuan doan, nhat ki db2diag.log co the dung de biet lieu khoa leo thang co xuat hien hay khong. Xem them phu luc A de hieu them ve tap tin nay.

Page 221: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 13 - Truy cập đồng thời và khóa 221

13.6 Kiểm soát khóaBạn có thể theo dõi việc sử dụng khóa DB2 bằng ứng dụng chụp nhanh ảnh khóa. Để mở chụp ảnh khóa, dùng câu lệnh:

UPDATE MONITOR SWITCHES USING LOCK ON

Sau khi bật, thông tin để theo dõi sẽ được thu thập. Để có được báo cáo của khóa vào một thời điểm dùng câu lệnh:

GET SNAPSHOT FOR LOCKS FOR APPLICATION AGENTID <handle>

Hinh 13.9 hiển thị ví dụ ảnh chụp nhanh bởi chương trình ví dụ.

Application Lock Snapshot

Snapshot timestamp 00:09:08.672586

11-05-2002

Application handle Application ID Sequence number Application nams Authorization ID Application status Status change time Application code page Locks held Total wait time (ms)

9»LOCAL.DB2.00B9C5050843 0001dh?bp.p x pADMINISTRATORUOW WaitingNot Collected125240

List Of Locks Lock Name Lock Attributes Release Flags Lock Count Hold Count Lock Object Name Object Type Tablespace Name Table Schema ADMINISTRATOR

ROWTEST4K

0x0500070004 80010000000000520x000000000x40000000255H98308

Hinh 13.9 -ứ ng dụng chụp nhanh khóa

Page 222: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

222 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

V9.7

Chú ý:

Trong DB2 9.7, một nổ lực để di chuyển cơ sở dữ liệu giám sát từ hệ thống giám sát và công nghệ chụp nhanh hướng tới các lệnh SQL có thể truy xuất vào bộ nhớ trong như các chức năng quản lí bảng các công việc và các công cụ của IBM Data Studio. Xem tài liệu về DB2 để có thêm thông tin.

13.7 Chờ khóaKhi hai hoặc nhiều các ứng dụng cần thực hiện một phép toán trên cùng một đối tượng, một trong số đó có thể phải đợi để nhận được khóa cần thiết. Theo mặc định, một ứng dụng sẽ đợi vô hạn. Thời gian chờ đợi một khóa của ứng dụng được kiểm soát bởi tham số cấu hình cơ sở dữ liệu LOCKTIMEOUT. Giá trị mặc định của tham số này là -1 (đợi vô hạn).

Thanh ghi CURRENT LOCK TIMEOUT có thể được dùng để đặt thời gian chờ khóa cho một kết nối đã cho. Theo mặc định, thanh ghi này được đặt giá trị của LOCKTIMEOUT. Sử dụng SET LOCK TIMEOUT để thay đổi giá trị của nó. Một khi giá trị của thanh ghi đã được đặt cho một kết nối, nó sẽ tồn tại qua mọi giao dịch.

Ví dụ:

SET LOCK TIMEOUT=WAIT n

13.8 Vấn đề khóa chết và phát hiệnKhóa chết (deadlock) xuất hiện khi hai hoặc nhiều các ứng dụng được nối tới cùng cơ sở dữ liệu. Sự chờ đợi chưa bao giờ được giải quyết bởi vì mỗi ứng dụng đang giữ một tài nguyên mà các ứng dụng khác cần. Trong thiết kế ứng dụng, những khóa chết luôn là một vấn đề chiếm nhiều thời gian. Hình 13.11 minh họa cho một tình huống khóa chết.

Within a UNIT OF WORK (UOW) INSERT CEREAL AND MILK into BOWL

Hinh 13.11 - Kịch bản cho tình huống khóa chết

Page 223: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 13 - Truy cập đồng thời và khóa 223

Trong hình 13.11, người A giữ được bột nho khô và giả sử sẽ không cho phép người khác dùng cho đến khi ông ta có sữa. Mặt khác, người B giữ được sữa, và sẽ không cho phép người khác dùng cho đến khi ông ta có bột nho khô. Bởi vậy, chúng ta có một tình huống be tắc.

ở DB2 9.7, việc sử dụng cam kết hiện tại đã làm giảm đáng kể sự xuất hiện của các bế tắc, như một ứng dụng không cần phải đợi ứng dụng khác thả khóa ra mà thay vào đó truy cập vào giá trị cam kết hiện tại.

Mô phỏng một tình huống bế tắc trong DB2 theo những bước sau đây:

1. Tắt các cam kết hiện tại

đb2 update db cfg for sample using cur_commit offdb2stop forcedb2start

2. Mở hai cửa sổ soạn thảo lệnh của DB2 (gọi là “CLP1” và “CLP2" tương ứng). Chúng đại diện cho hai ứng dụng khác nhau cùng kết nối tới cơ sờ dữ liệu.

3. Từ CLP1, thực hiện các lệnh:

db2 connect to sampledb2 +c update employee set firstnme = 'Mary' where empno = '000050'

Đầu tiên, chúng ta đang kết nối tới cơ sở dữ liệu có tên là SAMPLE, sau đó thực hiện lệnh cập nhật hàng trên bảng employee với “empno = 000050”. Lựa chọn “+c” trong câu lệnh chỉ ra rằng, chúng ta không muốn cửa sổ của lệnh DB2 tự động cam kết lệnh này. Chúng ta đang cố ý làm điều này sao cho chúng ta sẽ giữ được khóa.

4. Từ CLP2 thực hiện các lệnh:db2 connect to sampleđb2 +c update employee set firstnme = 'Tom' where empno = '000030'

ở cửa sổ CLP2, đó là đại diện cho ứng dụng thứ hai, chúng ta cũng kết nối vào cơ sở dữ liệu SAMPLE, nhưng lại cập nhật một hàng khác ở bảng employee.

5. Lệnh từ CLP1:db2 +c select firstnme from employee where empno = '000030'

Sau khi nhấn Enter để thực hiện câu lệnh SELECT ở trên, câu lệnh SELECT này có thể sẽ bị treo. Thực sự, đó không phải là treo, mà là đợi khóa của hàng này trả về do CLP2 đã được giữ trong bước 4. Tại thời điểm này, nếu CLOCKTIMEOUT đã được để lại với giá trị ngầm định của nó là -1, ứng dụng CLP1 sẽ đợi mãi mãi.

6. Lệnh từ CLP2:db2 +c select firstnme from employee where erapno = '000050'

Page 224: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

224 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Bằng việc thực hiện lệnh SELECT ở trên, bây giờ sự bế tắc đang được tạo ra. Lệnh SELECT này cũng có vẻ bị treo, nhưng thực ra là đang đợi khóa CLP1 đang giữ trả về.

Trong kịch bản khóa chết trên, DB2 sẽ kiểm tra tham số cấu hình CO' sở d ữ liệ u

DLCHKTIME. Tham số này sẽ đặt khoảng thời gian kiểm tra xem có xẩy ra sự bế tắc không. Chẳng hạn, giá trị của tham số này được đặt tới 10 giây, DB2 sẽ sử dụng một giải thuật bên trong để xác định giao dịch nào cần phải quay lui, và một giao dịch nào sê được tiếp tục xử lý.

Nếu gặp tình huống bế tắc, cần phải tái kiểm tra những giao dịch hiện hữu xem có thể tổ chức lại được không.

13.9 Truy cập đồng thời và thực tiễn khóa tốt nhất.Một số thủ thuật để truy cập đồng thời và thực tiễn khóa tốt nhất:

1. Đảm bảo bạn kích hoạt cam kết hiện tại (CC), nếu ứng dụng lô-gíc của bạn cho phép.

2. Giữ những giao dịch càng ngắn càng tốt. Điều này có thể đạt được bằng cách phát hành thường xuyên những lệnh COMMIT (thậm chí cho những giao dịch chỉ đọc) khi ứng dụng của bạn cho phép.

3. Chỉ ghi nhật ký thông tin giao dịch khi có yêu cầu.

4. Lọc dữ liệu đã sử dụng nhanh chóng bằng lệnh:

ALTER TABLE ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE

Hoặc với DB2 9.7, sử dụng lệnh TRUNCATETRUNCATE <table name>

5. Thực hiện những thay đổi dữ liệu theo lô/nhóm. Ví dụ :DELETE FROM (

SELECT * FROM tedwas.tl WHERE cl = ... FETCH FIRST 3000 ROWS ONLY)

6. Sử dụng những đặc tính tương tranh của những công cụ chuyển đổi dữ liệu trong DB2.

7. Đặt tham số LOCKTIMEOUT cho cơ sở dữ liệu (khoảng giữa 30-120 giây). Bạn đừng nên cho giá trị ngầm định của nó là -1. Bạn có thể cũng sử dụng khóa giới hạn thời gian (timeout) trên từng phiên làm việc.

8. Không khôi phục nhiều dữ liệu hơn cần thiết. Chẳng hạn, sử dụng mệnh đề FETCH FIRST n ROWS ONLY trong câu lệnh SELECT.

Page 225: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 13 - Truy cập đồng thời và khóa 225

Chú ý:

Để có thêm thông tin về thực tiễn tốt nhất đối với sự tương tranh và khóa, bạn xem tài liệu Thực tiễn Tốt nhất ở trang http://www.ibm.com/developerworks/data/bestpractices/

13.10 Tóm tắtTrong chương này chúng ta xem xét việc duy trì tính toàn vẹn dữ liệu thông qua kiểm soát giao dịch, người sử dụng truy cập đồng thời và mức độ khóa. Các mức tương tranh khác nhau tất cả đều có vấn đề là có thể ảnh hưởng đến việc truy cập và quản lý dữ liệu của bạn như thế nào.

Chúng tôi cũng nhìn cụ thể vào vai trò của thiết lập các mức cô lập để đối phó với những vấn đề này,và làm thế nào mức độ cô lập có thể được chế tác để cung cấp sự linh hoạt tối đa yêu cầu bởi ứng dụng của bạn và nhu cầu dữ liệu.

Chúng ta cũng đã xem xét khóa leo thang, chờ khóa và kiểm soát khóa, cùng với các nguyên nhân, phát hiện và xử lý khi cơ sở dữ liệu bị bế tắc.

Cuối cùng, chúng tôi xem xét một số ý tưởng thực hành để nhận được kết quả tốt nhất có thể cho nhu cầu xử lí tương tranh của bạn.

13.11 Bài tậpTrong bài tập này, bạn sẽ thực hành với các khái niệm về tương tranh và khóa mà chúng ta đã thảo luận trong chương này bằng cách sử dụng DB2 Command Window. Công cụ này sử dụng cấp độ khóa với sự cô lập cs theo mặc định. Sau khi thực hiện một câu lệnh SQL, Command Window sẽ tự động ra cam kết (điều này còn được gọi là autocommit).Đối với mục đích minh hoạ trong bài tập, chúng tôi sẽ sử dụng cờ +c để tắt autocommit, và sử dụng mệnh đề WITH <các mức cô lậ p > sau một số câu lệnh SQL để ghi đè lên mức cô lập mặc định cs.

Phần 1 : Kiểm tra vấn đề đọc thừa và mức cô lập RR

Thủ tue:

1. Mờ hai DB2 Command Windows như được hiển thị trong hình dưới đây. Chúng tôi sẽ gọi cửa sổ ở đầu "DB2 Command Window #1 ", và một ở phía dưới "DB2 Command Window #2"

Page 226: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

226 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

2. Từ DB2 Command Window #1 đưa ra:

đb2 connect to sample db2 +c select * from staff

Điều này sẽ trả lại 35 bản ghi

3. Từ DB2 Command Window #2 đưa ra:

db2 connect to sampledb2 +c insert into staff (id,name) values (400, 'test')

4. Từ DB2 Command Window #1 đưa ra:

db2 +c select * from staff

Điều này vẫn phải trả lại 35 bản ghi

5. Từ DB2 Command Window #2 đưa ra:

db2 commit6. Từ DB2 Command Window #1 đưa ra:

db2 +c select * from staff

Điều này bây giờ trả lại 36 bản ghi!

DB2 Command Window #1 ổại diện cho một ứng dụng mà sẽ mở ra một con trỏ hoặc tập hợp kết quả (select * from staff) với 35 bản ghi. Trong cùng mộtgiao dịch (bởi vì trong cửa sổ này chúng tôi không phát ra bất kỳ lệnh cam kết -

Page 227: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 13 - Truy cập đồng thời và khóa 227

commit - nào), ứng dụng mở cùng con trỏ, và vẫn còn nhìn thấy 35 bản ghi, ngay cả sau khi các ứng dụng trong DB2 Command Window #2 chèn (nhưng không cam kết) một bản ghi mới.

Tiếp theo, các ứng dụng của DB2 Command Window # 2 cam kết chèn, Và như vậy lần thứ ba ứng dụng DB2 Command Window #1 sẽ mở con trỏ, các tập hợp kết quả trả lại thêm một hàng nữa (một đọc thừa) và có được 36 bản ghi. Ví dụ này minh họa các vấn đề về đọc thừa: Trong cùng một giao dịch, việc mở cùng con trỏ lại trả về nhiều hàng hơn. Chúng ta đang sử dụng một mức cô lập cs, và như đề cập trước đó, cs không ngăn cản đọc thừa.

7. Làm sạch các bản ghi đã được nạp trước khi chúng tôi thử các bước tiếp theo

Từ DB2 Command Window #1:db2 rollback

Từ DB2 Command Window #2:db2 delete from staff where id = 4 00 db2 select * from staff

Điều này trả lại 35 bản ghi lần nữa.

8. Bây giờ hãy xem liệu mức độ cô lập RR có thể ngăn chặn vấn đề đọc thừa.

Từ DB2 Command Window #1 đưa ra:

db2 connect to sampledb2 +c select * from staff with RR

Điều này trả lại 35 bản ghi

Từ DB2 Command Window #2:

db2 connect to sampledb2 +c insert into staff (id,name) values (400, 'test')

Lệnh này sẽ treo như trông đợi.

Kể từ khi mệnh đề WITH RR là được bổ sung vào lệnh SELECT trên DB2 Command Window #1, mức cô lập này ngăn ngừa một INSERT trên một hàng mà có thể làm thay đổi kết quả đầu ra. Ví dụ này minh họa rằng mức độ cô lập của RR không ngăn chặn đọc vấn đề đọc thừa.

Page 228: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

228 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

9. Làm sạch trước khi tiếp tục đến phần 2 của bài tập này:

Từ DB2 Command Window #2:ctrl-c (để dừng chương trình)Đóng cửa sổ

Từ DB2 Command Window #1:đb2 rollbackĐóng cửa sổ

Phần 2: Kiểm tra mức cam kết hiện tại (CC) và đọc không cam kết (UR)

Thủ tục 1: Phân tích hành vi của cô lập c s mà không có cam kết hiện tại

1. Mở một DB2 Command Window và đưa ra các lệnh sau đây:db2 connect to sample db2 select * from staff

Kiểm tra các nội dung của bảng S TA FF , đặc biệt tìm kiếm giá trị của ID bằng '10'. Tương ứng cột NAME có giá trị S a n d e rs . Đóng cửa sổ.

2. Cam kết hiện tại là mặc định cho các cơ sở dữ liệu mới. Xác minh nó đã được bật trong thực tế:

db2 get đb cfg for sample

Tìm kiếm hàng gần cuối của kết quả đầu ra là:Currently Committed (CUR_COMMIT) = ON

Nếu giá trị là ON, đầu tiên đổi nó thành OFF để chúng ta có thể phân tích hành vi của cô lập c s như nó sẽ được thiết lập trước ở DB2 9,7:db2 update db cfg for sample using CUR_COMMIT off db2 force applications allThêm tùy chọn force để đảm bảo rằng không có các kết nối và việc cập nhật cho CUR_COMMIT sẽ có hiệu lực với kết nối tiếp theo.

Kiểm tra CUR_COMMIT đã bị vô hiệu hóa, bằng thông báo:

Currently Committed (CUR_COMMIT) = DISABLED

Page 229: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 13 - Truy cập đồng thời và khóa 229

3. Mờ hai DB2 Command Windows như trong phần 1, cái nọ nằm trên cái kia. Hãy xem mức cô lập cs làm việc như thế nào khi không cam kết hiện tại, khi có một cập nhật (ghi lên) và một lệnh lựa chọn (đọc) cùng một hàng. Lưu ý chúng ta không cần đặt "WITH CS" sau các mệnh đề (vì đây là mặc định).

Từ DB2 Command window #1 (đây là việc ghi lên):

đb2 connect to sampledb2 +c update staff set name = 'Chong' where id = 10

Từ DB2 Command window #2 (đây là việc đọc xuống):db2 connect to sample đb2 +c select * from staffLệnh SELECT này bị treo vì phải chờ đợi khóa X được giải phóng, do ứng dụngDB2 Command Window #1 nắm. Như bạn thấy, hành vi mặc định của cs trướcDB2 9.7 cho phép giảm sự tương tranh.

Từ DB2 Command Window #2:

ctrl-c (đề dừng chương trình)Đóng của sổ

Từ DB2 Command Window #1:

db2 rollback Đóng cửa sổ

Thủ tục 2: Phân tích hành vi của cô lập cs với cam kết hiện tại

1. Thay đổi cam kết hiện tại thành ON:

Mờ một DB2 Command Window và đưa ra lệnh:

đb2 update db cfg for sample using CUR_COMMIT on đb2 force applications all

Đóng cửa số.

2. Mở hai DB2 Command Windows như trong phần 1, cái nọ nằm trên cái kia. Rồi đưa ra lệnh sau đây:

Từ DB2 Command Window #1:db2 connect to sampleđb2 +c update staff set name = 'Chong' where id = 10

Page 230: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

230 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Từ DB2 Command Window #2:

db2 connect to sample db2 +c select * from staff

Bây giờ lệnh SELECT đã làm việc!. Nó không treo, và giá trị hiển thị là Sanders, đó là giá trị cam kết hiện tại.

Từ DB2 Command Window #1:db2 rollbackĐóng cửa sổ.

Từ DB2 Command Window #2:

db2 rollbackĐóng cửa sổ.

Thủ tục 3: Phân tích hành vi của cô lập UR

1. Mở hai DB2 Command Windows như trong phần 1, cái nọ nằm trên cái kia. Rồi đưa ra lệnh sau đây:

Từ DB2 Command Window #1:

db2 connect to sampledb2 +c update staff set name = 'Chong' where id = 10

Từ DB2 Command window #2:

db2 connect to sampledb2 +c select * from staff with UR

SELECT này làm việc, nhưng lưu ý rằng giá trị hiển thị là Chong đó là giá trị không cam kết.

Từ DB2 Command window #1:

db2 rollback Đóng cửa sổ

Từ DB2 Command window #2:db2 rollback Đóng cửa sổ

Page 231: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

PHẦN III - HỌC DB2: PHÁT TRIẺN ƯNG DỤNG■

Page 232: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu
Page 233: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

14Chương 14 - Giới thiệu việc phát triển ứng dụng với DB2IBM DB2 là phần mềm máy chủ dữ liệu mạnh mẽ trong việc quản lý dữ liệu quan hệ cũng như dữ liệu XML, cho phép các nhà quản trị cơ sở dữ liệu và các nhà phát triển cơ sở dữ liệu làm việc một cách linh hoạt. Cho dù bạn sử dụng bất cứ ngôn ngữ nào để phát triển các chương trình của bạn, DB2 đều cung cấp các trình điều khiển (drivers), các bộ thích ứng (adapters) và các mở rộng (extensions) cần thiết để thao tác với cơ sở dữ liệu như một phần trong chương trình. Hơn nữa, với DB2 Express-C, bạn có thể phát triển ứng dụng mà không tốn bất cứ một chi phí nào, không bị giới hạn về kích thước cơ sở dữ liệu, đồng thời vẫn được hỗ trợ về mặt ngón ngữ lập trình ở mức tương đương như với các ấn bản DB2 khác. Chỉ cần phát triển ứng dụng của bạn một lần duy nhất với DB2 Express-C, bạn có thể thực thi ứng dụng đó trên bất cứ ấn bản DB2 nào mà không cần chỉnh sửa gì thêm.

Chú ý:Phần này chỉ bao gồm những giới thiệu tổng quan về việc phát triển ứng dụng với DB2. Hiện tại, có hơn 25 quyển sách trực tuyến miễn phí đang được phát triển theo Tủ sách Cộng đồng (Community Book Series), trong đó có một quyển sách chuyên về phát triển ứng dụng DB2. Một số sách khác trong tủ sách bao gồm các chủ đề ngoài DB2 như Java, PHP, Ruby on Rails, Python, Perl, Web 2.0, SOA, Eclipse, phát triển mã nguồn mở, điện toán đám mây và nhiều chủ đề khác. Các sách khác nữa đề cập chi tiết đến những công nghệ của IBM như pureQuery, Data studio, InfoSphere Data Architect. Những quyển sách này sẽ được giới thiệu bắt đầu từ tháng 10 năm 2009.

14.1 Phát triển ứng dụng DB2: Bức tranh lớnDB2 cho phép các nhà phát triển cơ sở dữ liệu tận dụng linh hoạt các tính năng phát triển phía server như các thủ tục lưu và các hàm do người dùng định nghĩa, trong khi các nhà phát triển ứng dụng có thể phát triển các ứng dụng máy khách với ngôn ngữ lập trình mà họ lựa chọn. Sự linh hoạt này được minh họa như trong hình 14.1.

Page 234: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

234 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

ClientDevelopment Tools

IBM Data Stud». IDA. RSA, RAD, Visual Studio. ZendCofeProgramming Language

DB Application Programming Interface (API)

Embedded static & dynamicSQL in C/C++. Codol. Fortran, REXX. ODBOCLI. JDBC'SOLJ. ADO. ADO NET. OLE DB. PH5. RoR, etc.IBM Data Server Client / Driver

Operating System

Server

DB2 Server

Database

Sto#ed User-definedProcedures Functions

Triggers

Operating System

Hình 14.1 - DB2 cho mọi người: các nhà phát triển cơ sờ dữ liệu và các nhà phát triển ứng dụng

Trong hình 14.1, hình bên trái thể hiện một máy khách, trên đó, lập trình viên ứng dụng sẽ phát triển và chạy chương trình của mình. Trên máy khách này, ngoài hệ điều hành, IBM Data Server Client có thể được cài đặt dựa vào loại ứng dụng đang được phát triển. IBM Data Server Client bao gồm các trình điều khiển kết nối cần thiết như các trình điều khiển JDDC và các trình điều khiển ODDC/CLI. Các trình điều khiển này cũng có thể được tải về độc lập tại trang web của IBM DB2 Express-C, ở địa chỉ: www.ibm.com/db2/express.

Bằng việc sử dụng các công cụ lập trình như IBM Data studio, InfoSphere Data Architect (IDA), Rational Software Architect (RSA), Rational Application Developer (RAD),... bạn có thể phát triển ứng dụng của mình bằng ngôn ngữ lập trình mong muốn. Thư viện API hỗ trợ các ngôn ngữ này cũng nằm trong IBM Data Server Client, để khi bạn kết nối tới một máy chủ DB2, tất cả các chỉ thị chương trình sẽ được các API này dịch thành các câu lệnh SQL hoặc XQuery phù hợp mà DB2 có thể hiểu được. Bảng 1.1 cho ta một mô tả ngắn gọn về các công cụ được đề cập trên đây.

Tên công cụ Mô tả

IBM Data Studio IBM Data Studio là một công cụ dựa trên nền Eclipse, cho phép người dùng quản lý máy chủ dữ liệu của họ và phát triển các thủ tục lưu (Stored Procedures), các hàm (Functions) và các dịch vụ Web dữ liệu (Data Web services). Trong sách này, IBM Data Studio đã được đề cập đến từ trước.

InfoSphere Data Architect (IDA) IDA là công cụ mô hình hóa dữ liệu, hỗ trợ trong việc xây dựng thiết kế cơ sở dữ liệu ở mức logic

Page 235: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 14 - Giới thiệu việc phát triển ứng dụng với DB2 235

và mức vật lý.

Rational Software Architect (RSA) RSA là một công cụ dựa trên nền Eclipse, dùng trong kỹ nghệ phần mềm để trợ giúp việc phát triển các biểu đồ UML.

Rational Application Developer (RAD) RAD là công cụ phát triển ứng dụng nhanh dựa trên nền Eclipse dành cho các nhà phát triển phần mềm.

Visual Studio Microsoft Visual studio là một IDE cho phép bạn phát triển ứng dụng trên nền Windows bằng việc sử dụng công nghệ của Microsoft.

ZendCore Trước đây được gọi là ZendCore for IBM. Đây là một IDE miễn phí cho việc phát triển các ứng dụng PHP.

Bảng 14.1 - Các công cụ hỗ trợ phát triển ứng dụng với DB2

Bên phải Hình 14.1 minh họa một máy chủ DB2 cùng với một cơ sở dữ liệu. Trong cơ sở dữ liệu này có các thủ tục lưu, các hàm do người dùng định nghĩa và các bẫy sự kiện. Trong các phần tiếp theo, chúng ta sẽ mô tả chi tiết hơn về các đối tượng này.

14.2 Phát triển ứng dụng phía máy chủPhát triển ứng dụng phía máy chủ trong DB2 có nghĩa là các đối tượng ứng dụng được phát triển và lưu trữ trên cơ sở dữ liệu DB2. Phần này sẽ thảo luận tóm tắt về các đối tượng ứng dụng sau:

■ Các thủ tục lưu (Stored Procedures)

■ Các hàm do người dùng định nghĩa (User-defined Functions - UDFs)

■ Các bẫy sự kiện (Triggers)

14.2.1 Các thủ tục lưu

Một thủ tục lưu (Stored Procedure) là một đối tượng ứng dụng cơ sở dữ liệu có chức năng bao đóng các câu lệnh SQL và lô-gíc nghiệp vụ. Việc lưu trữ một phần lô-gíc ứng dụng trong cơ sở dữ liệu cho phép cải thiện tốc độ do lượng lưu thông mạng giữa ứng dụng và cơ sở dữ liệu được giảm thiểu. Ngoài ra, các thủ tục lưu cung cấp một vị trí trung tâm để lưu trữ mã lệnh, nên các ứng dụng khác có thể tái sử dụng các thủ tục lưu này. Để gọi một thủ tục lưu, ta sử dụng lệnh CALL. Trong DB2, bạn có thể phát triển các thủ tục lưu bằng một số ngôn ngữ, bao gồm SQL PL, Java, C/C++, CLR, OLE, và COBOL. Một ví dụ đơn giản để tạo và gọi một thủ tục lưu SQL PL từ cửa sổ lệnh DB2 (DB2 Command Window) hoặc Linux Shell như sau:

đb2 create procedure PI begin end

Page 236: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

236 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

db2 call P1

Trong ví dụ này, thủ tục P1 là một thù tục lưu rỗng, không thực thi hành động nào cả. Ví dụ cũng cho thấy sự dễ dàng khi tạo một thủ tục lưu. Để phát triển các thủ tục lưu với các logic phức tạp hơn, chúng tôi khuyến khích bạn sử dụng IBM Data studio với trình sửa lỗi tích hợp sẵn.

14.2.2 Các hàm người dùng định nghĩa

Một hàm do ngườ i dùng định nghĩa (User-defined Function - UDF) là một đối tượng ứng dụng cơ sở dữ liệu cho phép người dùng mở rộng ngôn ngữ SQL với lô-gíc của riêng họ. Hàm luôn trả về một hoặc nhiều giá trị, thường là kết quả của lô-gíc nghiệp vụ trong hàm đó. Để gọi một hàm, ta sử dụng nó trong một câu lệnh SQL, hoặc sử dụng với hàm va lu e s . Trong DB2, bạn có thể phát triển các hàm do người dùng định nghĩa này bằng một số ngôn ngữ, bao gồm SQL PL, Java, C/C++, OLE, CLR.

Ví dụ đơn giản dưới đây minh họa cách tạo và gọi một hàm người dùng định nghĩa với ngôn ngữ SQL PL từ cửa sổ lệnh DB2 hoặc Linux Shell:db2 create function FI 0 returns integer begin return 1000; end db2 values FI

Trong ví dụ, hàm F1 là một hàm trả về giá trị nguyên 1000. Mệnh đề VALUES có thể được dùng để gọi hàm. Cũng như trong trường hợp các thủ tục lưu, chúng tôi khuyến khích bạn tạo các hàm với IBM Data Studio.

14.2.3 Các bẫy sự kiện

Một bẫy sự kiện (Trigger) là một đối tượng tự động thực thi một thao tác trên một bảng hoặc một khung nhìn. Một thao tác bẫy (triggering) xảy ra trên đối tượng mà bẫy sự kiện được định nghĩa sẽ kích hoạt bẫy sự kiện đó. Một bẫy sự kiện thường không được xem là một đối tượng ứng dụng; do đó, các nhà phát triển cơ sở dữ liệu thường không lập trình các bẫy sự kiện, mà đó là công việc của các nhà quản trị cơ sở dữ liệu. Vì cần đến một chút lập trình nên chúng tôi đưa bẫy sự kiện vào phần này. Dưới đây là một ví dụ:

create trigger myvalidate no cascade before insert on TI referencing NEW as N for each row begin atomic

set (N.myxmlcol) = XMLVALIDATE(N.myxmlcol according to xmlschema id myxmlschema);

end

Trong ví dụ này, bẫy sự kiện được kích hoạt trước một thao tác INSERT trên bảng T1. Bẩy sự kiện này sẽ thực thi thao tác thêm giá trị, ở đây là một văn bản XML, nhưng sẽ gọi hàm

Page 237: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 14 - Giới thiệu việc phát triển ứng dụng với DB2 237

XMLVALIDATE để kiểm tra văn bản XML này với một lược đồ cho trước. Chương 15, DB2 pureXML sẽ trình bày thêm về XML và các lược đồ XML.

14.3 Phát triển ứng dụng phía máy kháchKhi phát triển ứng dụng phía máy khách, các nhà phát triển ứng dụng lập trình chương trình của họ trên máy khách, sau đó kết nối và truy nhập cơ sờ dữ liệu DB2 sử dụng các giao diện lập trình ứng dụng (APIs) của DB2. Trong phần này chúng ta sẽ thảo luận về:

■ SQL nhúng

■ SQL tĩnh và SQL động

■ CLI và ODBC

■ JDBC, SQLJ và pureQuery

■ OLE DB

■ ADO.NET

■ PHP

■ Ruby on Rails

■ Perl

■ Python

14.3.1 SQL nhúngCác ứng dụng SQL nhúng là các ứng dụng mà SQL được nhúng vào một ngôn ngữ chủ như c, C++, hoặc COBOL, ứng dụng SQL nhúng có thể chứa SQL tĩnh hoặc động (sẽ được mô tả trong phần tiếp theo). Hình 14.2cho thấy cách xây dựng một ứng dụng SQL

Page 238: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

238 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

nhúng.

hello.sqc#include <stdio.h>#include <stdlib.h>

int main(int argc, char'* argv)

EXEC SQL BEGIN DECLARE SECTION:

char dbnam e[15]. char userlD[8]; char psw[8]:

EXEC SQL END DECLARESECTION:

/* connect to a database */ EXEC SQL CONNECT TO :dbname USER :userlD USING :psw: if (SQLCODE != 0){

printf ("\n *** Error "* \n ”);

precomf lie hello.sqc bindfile

hello.bnd PackaqeI Only SQL, bind hello.bnd Executable SQL

] no c code with access pathinformation

hello exe needs the right package to run successfully

hello.c hello.o tiello.exeOnly c code, no embedded

SQL

compile Object File link ( ExecutableFile

Hình 14.2 - Xây dựng các ứng dụng SQL nhúng

Trong hình trên, chương trình c hello.sqc chứa SQL nhúng. API SQL nhúng dùng cho ngôn ngữ c sử dụng EXEC SQL (được khoanh tròn trong hình 14.2) để cho phép tiến trình tiền biên dịch phân biệt các câu lệnh SQL nhúng với mã c thực sự. Chú ý thấy rằng: trong hello.sqc, một số biến có dấu hai chấm đi kèm đằng trước, như :dbname, : user ID và :psw. Chúng được gọi là các biến chủ (host variables). Biến chủ là các biến của ngôn ngữ chủ được tham chiếu trong các câu lệnh SQL nhúng.

Sử dụng lệnh precompile (còn được gọi là lệnh prep) với tùy chọn bindf ile sẽ tạo ra hai tập tin, tập tin kết nối hello.bnđ chỉ chứa các câu lệnh SQL và tập tin hello.c chỉ chứa mã c. Tập tin kết nối sẽ được biên dịch bằng lệnh bind để tạo ra một gói (package) được lưu trong cơ sở dữ liệu. Gói bao gồm SQL đã biên dịch / có thể thực thi được và đường dẫn truy nhập mà DB2 sẽ theo đó để nhận dữ liệu. Để sử dụng lệnh bind cần phải có một kết nối tới cơ sở dữ liệu, ờ phía bên dưới hình, tập tin hello. c được biên dịch và liên kết như mọi chương trình c thông thường. Tập tin thực thi kết quả hello. exe phải phù hợp với gói được lưu trữ trong cơ sở dữ liệu để có thể thực thi thành công.

14.3.2 SQL tĩnh và SQL độngCâu lệnh SQL tĩnh là câu lệnh SQL mà cấu trúc của nó đã được nhận biết đầy đủ trước thời điểm tiền biên dịch. Ví dụ:

SELECT lastname, salary FROM employee

Trong ví dụ này, tên của các cột (lastname, salary) và bảng (employee) đã được xác định đầy đủ trước thời điểm tiền biên dịch. Ví dụ sau cũng là một câu lệnh SQL tĩnh:

Page 239: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 14 - Giới thiệu việc phát triển ứng dụng với DB2 239

SELECT lastname, salary FROM employee WHERE firstnme = :fname

Trong ví dụ thứ hai, biến chủ :£nameđược sử dụng như một phần của câu lệnh SQL nhúng. Mặc dù tính cho đến thời điểm chạy vẫn không biết giá trị của biến chủ, nhưng chương trình có thể xác định được kiểu dữ liệu của nó, và tất cả các đối tượng khác (như tên cột, tên bảng) cũng được nhận biết hoàn toàn trước thời hạn. DB2 ước lượng cho những biến chủ này để tính toán trước kế hoạch truy nhập; vì vậy, trường họp này vẫn được xem là SQL tĩnh.

Quá trình tiền biên dịch, kết nối và biên dịch tĩnh các câu lệnh SQL được thực thi trước khi bạn chạy ứng dụng. SQL tĩnh được sử dụng tốt nhất trên các cơ sở dữ liệu mà các thống kê không thay đổi quá nhiều. Chúng ta hãy xem xét một ví dụ nữa:

SELECT ?, ? FROM ?

Trong ví dụ này, ở thời điểm chạy, tên của các cột và bảng được tham chiếu trong câu lệnh chưa được nhận biết đầy đủ. Vì vậy, kế hoạch truy nhập chỉ được tính toán vào thời điểm chạy và sử dụng các thống kê có sẵn vào thời điểm đó. Kiểu câu lệnh này được gọi là cảu lệnh SQL động.

Một số thư viện lập trình API như JDBC và ODBC, luôn sử dụng SQL động, cho dù câu lệnh SQL có bao hàm các đối tượng đã được nhận biết hay chưa. Lấy ví dụ, câu lệnh SELECT lastname, salary FROM employee có tất cả các cột và tên bảng đã được nhận biết trước, nhưng qua JDBC hoậc ODBC thì không cần tiến hành tiền biên dịch. Tất cá các kế hoạch truy nhập đều được tính toán khi thực thi.

Thông thường, hai câu lệnh sau được sử dụng để xử lý câu lệnh SQL theo kiểu động:

■ pr epar e : Câu lệnh này chuẩn bị hoặc biên dịch câu lệnh SQL bằng việc tính toán kế hoạch truy nhập để truy vấn dữ liệu.

■ e x e c u t e: Câu lệnh này thực thi SQL

Hoặc bạn có thể thực thi PREPARE và EXECUTE trong cùng một câu lệnh đơn: EXECUTE IMMEDIATELY.Liệt kê 14.1 là ví dụ về một câu lệnh c nhúng SQL động. Câu lệnh này được chuẩn bị và sau đó thực thi như sau:

strcpy(hVStmtDyn, "SELECT name FROM emp WHERE dept = ?");PREPARE StmtDyn FROM :hVStmtDyn;EXECUTE StmtDyn USING 1;EXECUTE StmtDyn USING 2;

Liệt kê 14.1 - Một câu lệnh c nhúng SQL động, sử dụng PREPARE và EXECUTELiệt kê 14.2 dưới đây cho ta thấy một ví dụ tương tự như liệt kê 14.1, nhưng sử dụng câu lệnh EXECUTE IMMEDIATELY.EXECUTE IMMEDIATELY SELECT name from EMP where dept = 1 EXECUTE IMMEDIATELY SELECT name from EMP where dept = 2

Page 240: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

240 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

V9.7

Liệt kê 14.2 - Một câu lệnh c nhúng SQL động, sử dụng EXECUTE IMMEDIATELYVới nhiều ngôn ngữ lập trình động như PHP hay Ruby on Rails, trong đó SQL được thực thi động, các lập trình viên có xu hướng viết cùng một câu lệnh SQL với các trường giá trị khác nhau như sau:

SELECT lastname, salary FROM employee where firstnme = 'Raul'SELECT lastname, salary FROM employee where firstnme = 'Jin'

Trong ví dụ này, các câu lệnh là đồng nhất, ngoại trừ giá trị của cột firstnme. DB2 xem hai câu lệnh SQL động này là khác biệt nhau, và vì vậy, ở thời gian chạy, nó sẽ chuẩn bị và sau đó thực thi mỗi câu lệnh một cách độc lập. Tổng chi phí cho sự chuẩn bị một câu lệnh lặp lại một số lần có thể gây ra sự không tối ưu về hiệu năng hoạt động của hệ thống, vì vậy, trước phiên bản 9.7, DB2 đề xuất viết lại các câu lệnh như sau:

SELECT lastname, salary FROM employee where firstnme = ?Dấu chấm hỏi (?) trong câu lệnh này được gọi là một đánh dấu tham số (parameter marker). Việc sử dụng các đánh dấu tham số này sẽ giúp chương trình có thể chuẩn bị câu lệnh duy nhất một lần, và sau đó thực thi các lệnh EXECUTE với các giá trị khác nhau cho đánh dấu tham số đó.

Trong phiên bản 9.7, DB2 giới thiệu một công nghệ gọi là bộ gộp lệnh (statement concentrator), trong đó, tất cả các câu lệnh giống nhau, trừ các trường giá trị, sẽ được tự động thu gọn lại thành một câu lệnh đơn với các đánh dấu tham số, và sau đó các câu lệnh EXECUTE sẽ được thực thi với các giá trị khác nhau. Bộ gộp lệnh cũng có khả năng thông minh trong việc quyết định xem khi nào thì nên hoặc không nên gộp các câu lệnh lại với nhau; ví dụ, khi bạn chủ ý thêm vào một số câu lệnh để tác động đến bộ tối ưu DB2.

về hiệu năng, SQL tĩnh thường cho hiệu năng tốt hơn so với SQL động, vì kế hoạch truy nhập trong SQL tĩnh được tiến hành vào thời điểm tiền biên dịch chứ không phải thời điểm thực thi. Tuy nhiên, trong các môi trường có nhiều thao tác như INSERT hay DELETE, các thống kê được tính toán ở thời điểm tiền biên dịch có thể không được cập nhật, và do đó, kế hoạch truy nhập của SQL tĩnh có thể không tối ưu. Trong trường hợp này, SQL động có thể là lựa chọn tốt hơn, với việc thực thi thường xuyên câu lệnh RUNSTATS để thu thập các thống kê hiện tại.

Chú ý:Nhiều người dùng nghĩ rằng SQL nhúng chỉ là tĩnh. Trong thực tế, câu lệnh này có thể có cả hai loại tĩnh và động.

14.3.3 CLI và ODBCGiao diện m ức g ọ i- CLI (Call Level Interface) ban đầu được phát triển bởi công ty X/Open và SQL Access Group. Nó là một đặc tả cho giao diện SQL có thể gọi (callable SQL interface) với mục đích phát triển các ứng dụng C/C++ khả chuyển mà không cần

Page 241: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 14 - Giới thiệu việc phát triển ứng dụng với DB2 241

quan tâm đến nhà cung cấp hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management System - RDBMS). Dựa trên bản thảo sơ bộ của X/Open CLI, Microsoft đã phát triển Kết nố i cơ sờ dữ liệu m ở - ODBC (Open Database Connectivity) và sau đó, chuẩn quốc tế ISO CLI đã chấp nhận gần như toàn bộ đặc tả X/Open CLI. DB2 CLI dựa trên hai yếu tố: ODBC và chuẩn quốc tế dành cho SQƯCLI như trong Hình 14.3.

Hình 14.3 - DB2 CLI dựa trên ODBC và chuẩn quốc tế ISO CLIDB2 CLI thích ứng với chuẩn ODBC 3.51, với nghĩa cung cấp hầu hết các tính năng được tìm thấy trong ODBC 3.51, và có thể được sử dụng như một trình điều khiển ODBC khi được nạp bời trình quản lý trình điều khiển ODBC (ODBC Driver Manager). Hình 14.4 có thể giúp bạn hình dung ra những hỗ trợ của DB2 CLI dành cho ODBC.

Hình 14.4 - DB2 CLI thích ứng với chuẩn ODBC 3.51CLI/ODBC có các đặc điểm sau:

Page 242: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

242 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

■ Mã nguồn có thể dễ dàng chuyển đổi qua lại giữa một số bên cung cấp hệ quản trị cơ sở dữ liệu quan hệ.

■ Khác với SQL nhúng, ở đây không cần phải có bộ tiền biên dịch hay các biến chủ

■ Thực thi SQL động

■ Rất phổ biến

Đề chạy một ứng dụng CLI/ODBC, tất cả những gì bạn cần là một trình điều khiển DB2 CLI. Trình điều khiển này có thể được cài đặt từ một trong các nguồn sau (bạn có thể tải vè và sử dụng mlẽn phí tạl địa chỉ wvAw.lbm.com/db2/express):

■ IBM Data Server Client

■ IBM Data Server Runtime Client

■ IBM Data Server Driver dành cho ODBC và CLI

Để phát triển một ứng dụng CLI/ODBC, bạn cần phải có trình điều khiển DB2 CLI và các thư viện thích hợp. Những thành phần này có thể tìm thấy trên IBM Data Server Client.

Chúng ta hãy xem qua ví dụ sau để có thể hiểu rõ hơn về cách cài đặt trình điều khiển DB2 CLI cho các ứng dụng của bạn. Hình 14.5 mô tả ba máy tính khác nhau, một ở Indonesia, một ở Brazil và một ở Canada.

Minh họa trên cho thấy hai trường hợp:

Page 243: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 14 - Giới thiệu việc phát triển ứng dụng với DB2 243

Trong hình bên trái, máy tính ờ Indonesia đang chạy một ứng dụng ODBC có thể làm việc với bất kì hệ quản trị cơ sở dữ liệu quan hệ nào như Oracle, Microsoft SQL Server hay DB2. Trình quản lý trình điều khiển ODBC sẽ nạp trình điều khiển ODBC thích hợp dựa vào cơ sở dữ liệu đang được truy nhập. Trong trường hợp ứng dụng cần truy nhập đến một cơ sở dữ liệu DB2 ở Canada, thì quá trình kết nối cần phải thông qua một máy khách DB2 có các thành phần kết nối từ xa.

Trong hình bên phải, một ứng dụng c u đang chạy trên một máy tính ở Brazil. Đó là một ứng dụng CLI bởi vì nó có thể đang sử dụng một số chức năng riêng không có sẵn trong ODBC, và vì nó chỉ làm việc với một cơ sở dữ liệu DB2. ứng dụng CLI này sẽ đi qua một trình điều khiển DB2 CLI. ứng dụng có thể kết nối đến cơ sở dữ liệu DB2 nội bộ đặt ở Brazil. Khi cần kết nối đến cơ sở dữ liệu từ xa ở Canada, nó sẽ thông qua một máy khách DB2.

Điểm cuối cùng được đề cập đến trong phần này là sự so sách giữa một ứng dụng CLI/ODBC với một ứng dụng c nhúng SQL động. Hình 14.6 minh họa cho sự so sánh này.

CLI/ODBC versus Embedded Dynamic

S5CitPre*3fïre( . . . ) ; fcihC 9QL EffiPÄHE. ..SQL statementsprepared during EXEC SOL EXECUTE. ..

áá lFeti*( . . ) ; application execution EXEC 9QL FETCH . . .

Execute

Prepare

DB2 orotherRDBMS

Execute

DB2

Hình 14.6 - ứng dụng CLI/ODBC và ứng dụng viết bằng c nhúng với SQL độngNhư trong Hình 14.6, chúng ta có thể thấy sự khác biệt duy nhất giữa ứng dụng CLI/ODBC so với ứng dụng c nhúng SQL động là: với CLI/ODBC, mã nguồn của bạn có thể khả chuyển và có thể dễ dàng truy nhập các hệ quản trị cơ sở dữ liệu quan hệ khác bằng cách thay đổi chuỗi kết nối, trong khi đó, với phiên bản c nhúng SQL động, bạn có thể phải lập trình các phần tử riêng cho DB2. Ngoài ra, chúng ta còn có thể thấy sự khác biệt trong cách thức gọi các hàm khác nhau cho các lệnh PREPARE và EXECUTE.

Page 244: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

244 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

14.3.4 JDBC, SQLJ và pureQueryThư viện kết nố i CO’ sở dữ liệu Java - JDBC (Java Database Connectivity) là một API được thiết kế dành cho ngôn ngữ lập trình Java, hỗ trợ việc chuẩn hóa phương thức làm việc và quá trình truy nhập cơ sở dữ liệu. Trong JDBC, mã nguồn có tính khả chuyển dễ dàng giữa một số hệ quản trị cơ sở dữ liệu quan hệ. Những thay đổi đến mã nguồn thường chỉ là thông tin về trình điều khiển JDBC nào sẽ được nạp, và thông tin về chuỗi kết nối (connection string). JDBC chỉ sử dụng SQL động, và hiện nay đã rất phổ biến.

SQLJ là chuẩn cho việc nhúng SQL vào các chương trình Java. SQLJ được sử dụng chính với SQL tính, mặc dù có thể hoạt động cùng với JDBC như trong Hình 14.7. Mặc dù các chương trình SQLJ thường có tính đóng hơn các chương trình JDBC và cho hiệu năng cũng tốt hơn, nhưng hiện nay chúng vẫn chưa được sử dụng rộng rãi. Các chương trình SQLJ phải được chạy qua một bộ tiền xử lý (bộ dịch SQLJ) trước khi được biên dịch.

SQLJApplication

SQLJ Run-Time Classes

JavaJDBC DB2 Client Remote

Application Database

Hình 14.7 - Mối quan hệ giữa các ứng dụng SQLJ và các ứng dụng JDBCTrong Hình 14.7, máy khách DB2 có thể cần phải có hoặc không, phụ thuộc vào loại trình điều khiển JDBC được sử dụng, chúng ta sẽ thảo luận về điều này sau.

pureQuery là một chương trình nhỏ dựa trên nền tảng Eclipse của IBM, có chức năng quản lý dữ liệu quan hệ như các đối tượng. Ra đời từ năm 2007, pureQuery có thể tự động sinh mã để thiết lập một ánh xạ đối tượng - quan hệ (object-relational mapping - ORM) giữa mã hướng đối tượng của bạn với các đối tượng của cơ sở dữ liệu quan hệ.Bạn bắt đầu bằng việc tạo một dự án Java với Optim Development Studio (ODS), kết nối tới một cơ sở dữ liệu DB2, và sau đó ODS sẽ phát hiện ra tất cả các đối tượng cơ sở dữ liệu. Thông qua giao diện người dùng của ODS, bạn có thể lấy một bảng, sau đó lựa chọn để sinh mã pureQuery, cụ thể sẽ biến đổi các thực thể bảng quan hệ cơ sở tương ứng sang các đối tượng Java. Mã được sinh ra để tạo các câu lệnh SQL thích hợp và các đối tượng Java cha bao đóng các câu lệnh SQL này. Các đối tượng Java và các câu lệnh SQL được sinh ra có thể lại được điều chỉnh thêm. Với pureQuery, trong thời gian chạy, bạn có

Page 245: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 14 - Giới thiệu việc phát triển ứng dụng với DB2 245

thể quyết định việc lựa chọn chạy các câu lệnh SQL của bạn ở chế độ tĩnh hay động. PureQuery hỗ trợ cả Java và .NET.

14.3.4.1 Các trình điều khiển JDBC và SQLJCó một số loại trình điều khiển JDBC, như: loại 1, loại 2, loại 3, loại 4; nhưng thông thường người ta không sử dụng loại 1 và loại 3, và DB2 cũng không hỗ trợ các loại này ở những phiên bản sau nữa. Với loại 2, có 2 trình điều khiển mà chúng ta sẽ mô tả sơ lược sau đây, nhưng một trong số đó cũng không được tiếp tục hỗ trợ về sau.

Loại 2 và loại 4 được hỗ trợ với DB2 cụ thể như liệt kê trong Bảng 14.2. Khi sử dụng các trình điều khiển loại 2, cần cài đặt một máy khách DB2 để trình điều khiển sử dụng khi thiết lập quá trình truyền thông với cơ sở dữ liệu. Loại 4 là một máy khách Java thuần, vậy nên không cần một máy khách DB2 nữa, nhưng trình điều khiển phải được cài đặt trên máy có chạy ứng dụng JDBC.

Loại trình điều khiển Tên trình điều khiển Gói Hổ trợ Yêu cầu phiên bản

Java SDK nhỏ nhấtLoại 2 Trình điều khiển DB2

JDBC Loại 2 dành cho Linux, UNIX và Windows (Không được tiếp tục hỗ trợ ờ các phiên bản sau)

db2java.zip JDBC 1.2 và JDBC 2.0

1.4.2

Loại 2 và Loại 4

Trình điều khiển IBM Data Server dành cho JDBC và SQLJ

db2jcc.jar và sqlj.zip

JDBC3.0compliant

1.4.2

db2jcc4.jar và sqlj4.zip

JDBC 4.0 trở xuống

6

Bảng 14.2-1Các trình điều khiển DB2 JDBC và SQLJNhư đã đề cập đến từ trước, và như trong Bảng 14.2, có 2 trình điều khiển DB2 JDBC loại 2 khác nhau; tuy nhiên, trình điều khiển DB2 JDBC loại 2 dành cho Linux, UNIX và Windows, với tên gói là db2java.zip không được tiếp tục hỗ trợ ở các phiên bản sau nữa.

Khi bạn cài đặt một máy chủ DB2, một máy khách DB2 hoặc một trình điều khiển IBM Data Server dành cho JDBC và SQLJ, các gói db2jcc.jar và sqlj.zip phù hợp với JDBC 3.0 được tự động bổ sung vào biến đường dẫn đến các lớp của bạn (classpath).

14.3.5 OLE DB

Cơ sở dữ liệu liên kết và nhúng đối tượng - OLE DB (Object Linking and Embedding, Database) là tập các giao diện cho phép truy nhập đến dữ liệu lưu trữ trong nhiều nguồn

Page 246: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

246 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

khác nhau. Nó được thiết kế như một sự thay thế cho ODBC, với mở rộng hỗ trợ cho nhiều nguồn dữ liệu khác nhau hơn nữa, bao gồm các cơ sở dữ liệu không quan hệ, như các cơ sở dữ liệu hướng đối tượng và các bảng tính. OLE DB được cài đặt sử dụng công nghệ Mô hình đối tượng thành phần - COM (Component Object Model).

Người sử dụng OLE DB có thể truy nhập cơ sờ dữ liệu DB2 với bộ cung cấp OLE DB của IBM dành cho DB2 (IBM OLE DB Provider for DB2). Bộ cung cấp này có những đặc điểm sau:

■ Tên bộ cung cấp: IBMDADB2

■ Hỗ trợ mức 0 của đặc tả kỹ thuật bộ cung cấp OLE DB, và một số giao diện ở mức 1 bổ sung thêm

■ Phù hợp với phiên bản 2.7 trở lên của đặc tả kỹ thuật Microsoft OLE DB

■ Yêu cầu cài đặt Microsoft Data Access Components (MDAC) trên IBM Data Server Client

■ Nếu IBMDADB2 không được chỉ định rõ ràng, thì mặc định, trình điều khiển OLE DB của Microsoft (MSDASQL) sẽ được sử dụng. MSDASQL cho phép người dùng sử dụng OLE DB để truy nhập các nguồn dữ liệu không thuộc Microsoft SQL Server bằng việc sử dụng trình điều khiển ODBC, nhưng không đảm bảo được đầy đủ chức năng của trình điều khiển OLE DB.

14.3.6 ADO.NET.NET Framework là một sự thay thế cho công nghệ COM (Component Object Model) của Mocrosoft. Sử dụng .NET Framework, bạn có thể lập trình các ứng dụng .NET với hơn 40 ngôn ngữ iập trình khác nhau; phổ biến nhất trong đó, có thể kể đến như C# và Visual Basic .NET.

Thư viện lớp -NET Framework cung cấp các khối hợp nhất cho phép bạn xây dựng các ứng dụng .NET. Thư viện lớp này không quan tâm đến ngôn ngữ lập trình, cung cấp các giao diện để vận hành hệ thống và các dịch vụ ứng dụng, ứng dụng .NET của bạn (không xét đến ngôn ngữ) được biên dịch sang ngôn ngữ trung gian (Intermediate Language - IL), là một dạng bytecode.

Bộ thực thi ngôn ngữ chung - CLR (Common Language Runtime) là trung tâm của -NET Framework, có chức năng biên dịch mã ngôn ngữ trung gian khi cần thiết, và thực thi nó. Khi thực thi mã trung gian đã được biên dịch, CLR sẽ kích hoạt các đối tượng, kiểm tra mức độ bảo mật, phân phối bộ nhớ, thực thi mã và dọn dẹp bộ nhớ sau khi thực thi xong.

Tương tự với cách thức làm việc của Java, trong Java, một chương trình có thể chạy trên nhiều nền tảng khác nhau mà chỉ cần một chút hoặc không phải chỉnh sửa gì cả, đó chính là: “Một ngôn ngữ, đa nền tảng”. Trong .NET, một chương trình được viết bời bất cứ ngôn ngữ nào trong 40 ngôn ngữ được hỗ trợ có thể chạy trên một nền tảng, là Windows, với một chút hoặc không phải chỉnh sửa gì cả, đó lại là: "Đa ngôn ngữ, một nền tảng”.

Page 247: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 14 - Giới thiệu việc phát triển ứng dụng với DB2 247

ADO.NET là cách hỗ trợ truy nhập dữ liệu được cung cấp bởi .NET Framework. ADO.NET hỗ trợ cả những truy nhập đã kết nối và đã ngắt kết nối. Thành phần khóa trong truy nhập dữ liệu đã ngắt kết nối trong ADO.NET chính là lớp DataSet, những thực thề của nó hoạt động như một bộ đệm cơ sở dữ liệu nằm bên trong bộ nhớ của ứng dụng.

Với cả 2 cách truy nhập kết nối và ngắt kết nối, các ứng dụng của bạn đều sử dụng cơ sở dữ liệu thông qua một bộ cung cấp dữ liệu (data provider). Hiện tại đã có khá nhiều loại sản phẩm cơ sở dữ liệu khác nhau có chứa những bộ cung cấp dữ liệu .NET riêng của chúng, trong đó có DB2 dành cho Windows.

Một bộ cung cấp dử liệu .NET có xây dựng các lớp cơ bản sau đây:

■ Connection: thiết lập và quản lý một kết nối tới cơ sở dữ liệu.

■ Command: thực thi một câu lệnh SQL tới cơ sở dữ liệu.

■ DataReader: đọc và trả về kết quả lấy dữ liệu từ một cơ sở dữ liệu.

■ DataAdapter: liên kết một thực thể DataSet tới một cơ sở dữ liệu. Thông qua một thực thể DataAdapter, DataSet có thể đọc và ghi dữ liệu từ các bảng trong cơ sở dữ liệu.

Có 3 bộ cung cấp dữ liệu có thể làm việc với DB2 như được chỉ ra trong Bảng 14.3

Bộ cung cấp dữ liệu Đặc điểmODBC .NET Data provider

(không kiến nghị dùng)

■ Tạo các lời gọi ODBC đến nguồn dữ liệu DB2 sử dụng trình điều khiển DB2 CLI.

■ Có hỗ trợ các từ khóa và những hạn chế giống như với trình điều khiển DB2 CLI.

■ Có thể được sử dụng với .NET Framework phiên bản 1.1, 2.0 hoặc 3.0.

OLE DB .NET Data provider

(không kiến nghị dùng)

■ Sử dụng trình điều khiển IBM DB2 OLE DB (IBMDADB2).

■ Có hỗ trợ các từ khóa và những hạn chế giống như với trình điều khiển DB2 OLE DB.

■ Chỉ có thể được sử dụng với .NET Framework phiên bản 1.1, 2.0 hoặc 3.0.

DB2 .NET Data provider

(kiến nghị sử dụng)

■ Mở rộng DB2 để hỗ trợ cho giao diện ADO.NET.

■ Cài đặt tập các lớp và các phương thức như của ADO.NET chuẩn.

■ Được định nghĩa dưới không gian tên IBM.DATA.DB2

■ Có thể lấy bằng cách tải về một trong các thành phần

Page 248: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

248 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

sau:

- Trình điều khiển Data Server dành cho ODBC, CLI, và .NET

- IBM Data Server Runtime Client

- DB2 Data Server

Bảng 14.3 - Các cộ cung cấp dữ liệu ADO.NET14.3.7 PHP

Bộ tiền xử lý siêu văn bản - PHP (PHP Hypertext Preprocessor) là một nguồn mở, là ngôn ngữ iập trình kịch bản độc lập với nền, được thiết kế cho việc phát triển các ứng dụng Web. PHP có thể được nhúng vào HTML, và thường chạy trên một máy chủ Web, lấy đầu vào là mã PHP, và tạo các trang Web như là đầu ra của nó.

PHP là một ngôn ngữ hướng module. Bạn có thể sử dụng các mở rộng để tùy chỉnh các chức năng sẵn có. Các mở rộng PHP phổ biến nhất là các mở rộng được sử dụng để truy nhập cơ sở dữ liệu. IBM hỗ trợ truy nhập cơ sở dữ liệu DB2 thông qua 2 mở rộng sau:

■ ib m _ d b 2 : Mở rộng ibm_db2 cung cấp một giao diện lập trình ứng dụng hướng thủ tục, có chức năng tạo, đọc, cập nhật và ghi các thao tác đối với cơ sờ dữ liệu bên cạnh việc mở rộng truy nhập đến các siêu dữ liệu cơ sở dữ liệu. Nó có thể được biên dịch với PHP 4 hoặc PHP 5.

■ p d o _ ib m : pdo jbm là một trình điều khiển dành cho mở rộng các đổi tượng dữ liệu PHP - PDO (PHP Data Objects extension), cho phép truy nhập cơ sở dữ liệu DB2 thông qua một giao diện cơ sử dữ liệu hướng đối tượng chuẩn được giới thiệu trong PHP 5.1. Nó có thể được biên dịch trực tiếp với các thư viện DB2.

Các mở rộng và các trình điều khiển PHP được cung cấp miễn phí ở địa chỉ dành riêng cho PECL http://pecl.php.net/, hay ngay trong IBM Data Server Client. Cả ibm_db2 và pdo jbm đều dựa trên nền tảng IBM DB2 CLI Layer.

IBM cũng hợp tác với công ty Zend Technologies Inc trong việc hỗ trợ ZendCore, một môi trường miễn phí với bộ công cụ tiện ích sẵn sàng cho việc phát triển PHP và DB2 Express­es Gói ZendCore bao gồm các thư viện PHP, máy chủ Web Apache và DB2 Express-C. Bạn có thể tải ZendCore ở địa chỉ http://www.ibm.com/software/data/info/zendcore.

14.3.8 Ruby on RailsRuby là một ngôn ngữ hướng đối tượng mã nguồn mở. Rails là một kiến trúc Web được tạo ra bởi Ruby. Ruby on Rails (RoR) là một phương thức lý tưởng cho việc phát triển các ứng dụng Web dựa trên cơ sở dữ liệu. Công nghệ mới này dựa trên kiến trúc Mô hình - Hiển thị - Điều khiển MVC (Model - View - Controller) và nguyên lý phát triển phần mềm nhanh.

Rails không yêu cầu định dạng tập tin đặc biệt nào cũng như không yêu cầu các môi trường phát triển tích hợp (IDE); bạn hoàn toàn có thể bắt đầu với một trình soạn thảo văn

Page 249: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 14 - Giới thiệu việc phát triển ứng dụng với DB2 249

bản thuần túy. Tuy nhiên, nhiều IDE khác nhau cũng có hỗ trự sẵn Rails, như RadRails, một môi trường Rails trên Eclipse. Để biết thêm chi tiết về RadRails, bạn có thể tham khảo tại địa chỉ http://www.radrails.org.

DB2 hỗ trợ Ruby từ phiên bản 1.8.5 trở lên, và hỗ trợ Ruby on Rails từ phiên bản 1.2.1 trở lên. Gói IBM_DB bao gồm trình điều khiển IBM_DB Ruby và bộ thích ứng Rails cho phép bạn làm việc với DB2 và dựa trên nền CLI Layer. Gói này phải được cài đặt kèm theo IBM Data Server Client. Để cài đặt trình điều khiển và bộ thích ứng IBM_DB, bạn có thể sử dụng gói Ruby hoặc một plug-in cho Rails.

14.3.9 PerlPerl là một ngôn ngữ lập trình thông dịch phổ biến, sẵn có miễn phí trên nhiều hệ điều hành. Perl sử dụng SQL động, và nó là lý tưởng đối với các ứng dụng nguyên mẫu.

Perl cung cấp một module chuẩn, gọi là module Giao diện Cơ sở dữ liệu - DBI (Database Interface) để truy nhập các cơ sở dữ liệu khác nhau, sẵn có ở địa chỉ: http://www.perl.com. Module này làm việc với các trình điều khiển từ các nguồn cơ sở dữ liệu khác nhau. Trong trường hợp DB2 sẽ là trình điều khiển DBD::DB2, bạn có thể tải về từ địa chỉ: http://www.ibm.com/software/data/db2/perl.

14.3.10 PythonPython là một ngôn ngữ động thường được sử dụng cho kịch bản. Nó nhấn mạnh vào tính dễ đọc mã và hỗ trợ nhiều loại mẫu lập trình khác nhau, bao gồm lập trình hướng thủ tục, lập trình hướng đối tượng, lập trình hướng khía cạnh, siêu lập trình và lập trình hướng chức năng. Python là lý tưởng cho mảng phát triển ứng dụng nhanh.

Bảng 14.4 là các mở rộng sẵn có cho việc truy nhập các cơ sở dữ liệu DB2 từ một ứng dụng Python.

Mở rộng Mô tảibm_db Được định nghĩa bởi IBM

Cung cấp những hỗ trợ tốt nhất cho các đặc tính cao cấp

Cho phép bạn gọi các truy vấn SQL, gọi các thủ tục lưu, sử dụng pureXML và truy nhập thông tin siêu dữ liệu.

ibm_db_dbi Tuân theo đặc tả API Python Database phiên bản 2.0.

Không cung cấp một số đặc tính cao cấp mà API ibm_db hỗ trợ.

Nếu bạn có một ứng dụng với một trình điều khiển hỗ trự đặc tả API Python Database phiên bản 2.0, bạn có thể dễ dàng chuyển sang ibm_db. Các API ibm_db và ibm_db_dbi được đóng gói kèm với nhau.

Page 250: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

250 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

ibm_db_sa Hỗ trợ SQLAIchemy, một bộ công cụ mã nguồn mở phổbiến Python SQL và ánh xạ đối tượng - quan hệ.

Bảng 14.4 - Các mờ rộng của Python - IBM Data Server14.4 XML và DB2 pureXMLNgôn ngữ đánh dấu m ở rộng - XML (Extensible Markup Language) là công nghệ cơ bản dành cho các công cụ và kỹ thuật Web 2.0, cũng như dành cho Kiến trúc định hướng dịch vụ - SOA (Service Oriented Architecture). IBM sớm nhận ra tầm quan trọng của XML và đã chú trọng đầu tư đề đưa công nghệ pureXML ứng dụng vào DB2 nhằm hỗ trợ tốt hơn quá trình lưu trữ các tài liệu XML.

Được giới thiệu vào năm 2006, DB2 9 là một máy chủ dữ liệu lai: nó cho phép lưu trữ thuần dữ liệu quan hệ cũng như dữ liệu phân cấp. So với các phiên bản trước đây của DB2 và các máy chủ dữ liệu khác trên thị trường có thể lưu trữ các tài liệu XML, phương pháp lưu trữ được sử dụng trong DB2 9 đã được cải thiện về hiệu năng và mức độ linh hoạt. Với công nghệ pureXML trong DB2 9, các tài liệu XML được lưu trữ bên trong theo phương pháp phân tích phân cấp, dưới dạng cây; theo đó, quá trình làm việc với các tài liệu XML được cải thiện khá nhiều. Các phiên bản phát hành mới hơn của DB2 như DB29.5 và DB2 9.7 đã có những cải thiện hơn nữa trong việc hỗ trợ cho pureXML. Chương 15, DB2 pureXML sẽ tập trung mô tả chi tiết về chủ đề này.

14.5 Dịch vụ WebĐịnh nghĩa một cách đơn giản, có thể hiểu một dịch vụ Web như một hàm có thể triệu gọi thông qua mạng mà không cần biết về ngôn ngữ lập trình được sử dụng để phát triển nó, không cần biết về hệ điều hành mà hàm sẽ thực thi trên đó, cũng như vị trí thực thi. Các dịch vụ Web cho phép một ứng dụng trao đổi dữ liệu với ứng dụng khác thông qua giao thức chuẩn công nghiệp mở rộng (extensible industry Standard protocols) dựa trên nền tảng XML. Minh họa như trong Hình 14.8.

Page 251: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 14 - Giới thiệu việc phát triển ứng dụng với DB2 251

Web services provider

DB2

Web services consumer

<Fhght><Num ber>33«<Jtlum ber><From>T oronto<From> <To>M«noK/To><Depart Time>10:<XK'DeparT Timc>

</Fttght>

getf liqhtlnlo stored Proc.m .

WebSphereapplication

server

Apache SOAP

BrowserClient

SOAP (XML/HTTP)

(JDBC/SQL)Client

Hình 14.8 - Cách thức hoạt động của dịch vụ WebTrong hình trên, phía bên trái biểu diễn một hệ thống hàng không giả lập Air Atlantis, sử dụng DB2 trên nền Linux để lưu trữ thông tin về các chuyến bay dưới dạng XML trong cơ sở dữ liệu DB2. Phía bên phải là một hệ thống hàng không giả lập khác, Air Discovery, sử dụng SQL Server chạy trên nền Windows. Bây giờ, một hợp đồng hợp tác sẽ được ký kết giữa Air Atlantis và Air Discovery, hai hệ thống này sẽ chia sẻ lịch bay và thông tin về giá cả để phối hợp các chuyến bay. Việc chia sẻ dữ liệu giữa hai hệ thống có thể sẽ gặp khó khăn do họ dùng hai hệ điều hành khác nhau (Linux, Windows), và hai máy chủ dữ liệu khác nhau (DB2, SQL Server). Khi Air Atlantis thay đổi lịch trình của chuyến bay từ Toronto đi Bắc Kinh, làm thế nào để phía Air Discovery có thể tự động điều chỉnh lịch trình riêng cho chuyến bay chuyển tiếp từ Bắc Kinh đi Thượng Hải? Câu trả lời nằm ở các dịch vụ Web. Air Atlantis có thể trích một phần thông tin về các chuyến bay bằng cách tạo một dịch vụ Web dữ liệu (Data Web service) trả về đầu ra của một thủ tục lưu (g e t F l ig h t in f o ) thông tin chuyến bay lấy từ cơ sở dữ liệu DB2. Dịch vụ Web dữ liệu là một dịch vụ Web dựa trên thông tin cơ sở dữ liệu. Khi dịch vụ Web dữ liệu này được triển khai vào một máy chủ ứng dụng như WebSphere Application Server; thì máy khách, hay thành viên như Air Discovery có thể sử dụng trình duyệt để truy cập xem thông tin về các chuyến bay của Air Atlantis một cách dễ dàng. Trong ví dụ này, Air Atlantis giống như một nhà cung cấp dịch vụ Web, vì nó đã phát triển và làm cho dịch vụ Web này trở nên có hiệu lực; còn Air Discovery là khách hàng sử dụng dịch vụ Web.

Page 252: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

252 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Air Discovery có thể triệu gọi dịch vụ Web từ ứng dụng JDBC của riêng nó, để từ đó có thể thực thi các phép tính toán có sử dụng dữ liệu từ cơ sở dữ liệu SQL Server của nó. Ví dụ, nếu một chuyến bay từ Toronto đi Bắc Kinh mất trung bình 12 giờ, Air Discovery có thể tính toán thời gian cho chuyến bay chuyển tiếp từ Bắc Kinh đi Thượng Hải, bằng cách tính thời gian khởi hành của máy bay ở Air Atlantis lúc rời Toronto, cộng thêm thời gian bay và thêm một vài giờ đệm. số giờ đệm này có thể được lưu trong cơ sở dữ liệu SQL Server tại hệ thống của Air Discovery. Dưới đây là công thức đơn giản được sử dụng trong ứng dụng JDBC:

Air Discovery Flight Departure time —

Air Atlantis Flight Departure time

Air Atlantis Flight Duration

+ (Toronto to Beijing) +

Air Atantis Flight Buffer time

(Toronto to Beijing)

(Beijing to Shanghai) (Toronto to Beijing) 12 hours average 2 hours

Nếu Air Atlantis thay đổi thời gian xuất phát của chuyến bay, thông tin này sẽ tự động được cập nhật vào hệ thống Air Discovery khi nó triệu gọi dịch vụ Web.

14.6 Các API quản lýDB2 cung cấp một số lượng lớn các API quản lý để các nhà phát triển có thể sử dụng để xây dựng các tiện ích và công cụ của riêng mình. Ví dụ, để tạo một cơ sở dữ liệu mới, bạn có thể triệu gọi sqlecrea API; để khởi tạo một thể hiện, bạn dùng db2instanceStart API; hoặc để nhập dữ liệu vào một bảng thì sử dụng db2import API. Danh sách đầy đủ các API quản lý được liệt kc trong Trung tâm thông tin DB2 (DB2 Information Center). Bạn có thể xem mục Tài nguyên để biết địa chỉ trang của nội dung này.

14.7 Các phát triển khácMột số người dùng của DB2 Express-C cũng có tương tác với các sản phẩm của bên thứ ba khác như MS Excel và MS Access để tạo các biểu mẫu đơn giản có kết nối tới cơ sở dữ liệu DB2. Trong mục này, chúng ta sẽ mô tả cách thức làm việc với nhữrg phần mềm này cùng với DB2 Express-C.

DB2 Express-C cũng được hỗ trợ trên hệ điều hành Mac OS X, vì vậy, bạn có thể sử dụng DB2 một cách tự nhiên để phát triển các ứng dụng cơ sở dữ liệu trên một máy Mac. Điều này có thể tạo ra sức hấp dẫn đặc biệt đến cộng đồng RoR những người đi theo nền tảng Mac.

14.7.1 Làm việc VỚI Microsoft Access và Microsoft ExcelMicrosoft Excel và Microsoft Access là các công cụ phổ biến để tạo các báo cáo, biểu mẫu và phát triển các ứng dụng đơn giản đem lại một giải pháp quản trị doanh nghiệp thông minh (Business Intelligence) nào đó cho dữ liệu của bạn. DB2 có thể tương tác khá dễ dàng với các công cụ này. Quản trị vỉên cơ sở dữ liệu (DBA) có thể lưu trữ dữ liệu của doanh nghiệp trong một máy chủ DB2 bảo mật, và những người dùng thông thường, với Access hoặc Excel, có thể truy cập các dữ liệu này và xuất ra các báo cáo. Xem minh họa ờ Hình 14.9.

Page 253: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 14 - Giới thiệu việc phát triển ứng dụng với DB2 253

Front-end

DB2Back-end

Hình 14.9 - Làm việc với Excel, Access và DB2Trong hình trên, Excel và Access có thể được dùng để phát triển ứng dụng ỏ' tầng ngoại vi, trong khi DB2 quan tâm đến vấn đề bảo mật dữ liệu, độ tin cậy và hiệu năng, là tầng dưới của ứng dụng. Việc lưu trữ dữ liệu một cách tập trung như trong DB2 tạo nên một mô hình lưu trữ dữ liệu đơn giản hóa.

Đối với Excel, cách dễ dàng nhất để truy nhập dữ liệu trong DB2 là sử dụng trình điều khiển OLE DB, chẳng hạn như bộ cung cấp IBM OLE DB dành cho DB2 (IBM OLE DB Provider for DB2), đi kèm theo bộ cài đặt miễn phí IBM Data Server Client tại trang web của DB2 Express-C: www.ibm.com/db2/exDress. Khi cài đặt, bạn cần chọn nguồn dữ liệu thích hợp với bộ cung cấp OLE DB để sử dụng từ trình đơn của MS Excel. Chọn Data -^ Import External Data Import Data. Các bước tiếp theo được mô tả trong bài báo IBM® DB2® Universal Database ™ and the Microsoft® Excel Application Developer... for Beginners [1]. Bạn có thể xem chi tiết về bài báo tại mục Tham khảo.

Đối với Microsoft Access, bạn cũng nèn cài đặt một trong các thành phần sau:

■ IBM Data Server Client, hoặc

■ Trình điều khiển IBM Data Server (IBM Data Server Driver) dành cho ODBC, CLI và -Net, hoặc

■ Trình điều khiển IBM Data Server dành cho ODBC và CLI

Trình điều khiển IBM Data Server dành cho ODBC, CLI và .Net, và trình điều khiển IBM Data Server dành cho ODBC và CLI, còn được gọi là trình điều khiển IBM DB2 ODBC, tương tự như trình điều khiển DB2 CLI. Đây là trình điều khiển dùng để kết nối Access với DB2. Sau khi trình điều khiển được cài đặt xong, ta tạo một dự án trong Access 2007, và chọn tùy chọn cơ sở dữ liệu ODBC sẵn có trong thẻ External Data của dải chức năng Table Tools (Table Tools Ribbon). Các bước tiếp theo được mô tả trong bài báo DB2 9 and Microsoft Access 2007 Part 1: Getting the Data...[2], Khi sử dụng các bảng liên kết (linked tables) trong Microsoft Access, người dùng Access 2007 có thể sử dụng dữ liệu của các bảng đó, nhưng thực chất, các dữ liệu đó thuộc về máy chủ dữ liệu DB2.

Page 254: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

254 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Với các phiên bản Excel trước 2007, quá trình cài đặt có chút khác biệt, bạn có thể xem bài báo Use Microsoft Access to interact with your DB2 data [3], chi tiết tại mục Tham khảo.

14.8 Các công cụ phát triểnHiện nay, Microsoft Visual Studio và Eclipse là hai môi trường phát triển tích hợp (Integrated Development Environments - IDEs) được các nhà phát triển sử dụng phổ biến nhất. Cả hai môi trường này đều làm việc hiệu quả với DB2.

Với Microsoft Visual studio, DB2 cung cấp thêm bộ Visual Studio Add-in, để sau khi cài đặt, các công cụ của IBM sẽ được thêm vào các trình đơn của Visual Studio. Bằng cách này, nhà phát triển không cần phải chuyển sang các công cụ khác để có thể làm việc với các cơ sở dữ liệu DB2. Bạn có thể tải Visual studio Add-in tại trang web của DB2 Express­es, ở địa chỉ www.ibm.com/db2/express.

Với Eclipse, IBM đã phát hành IBM Data Studio, một công cụ miễn phí dựa trên nền Eclipse cho phép bạn phát triển các đoạn mã SQL và XQuery, các thủ tục lưu, các hàm do người dùng định nghĩa và các dịch vụ Web. Do được phát triển dựa trên nền tảng Eclipse, nhiều nhà phát triển có thể dễ dàng sử dụng công cụ này dựa trên những kiến thức có sẵn về Eclipse.

14.9 Các chương trình mẫuĐể học cách lập trình với các ngôn ngữ khác nhau sử dụng DB2 như một máy chủ dữ liệu, bạn có thể tham khảo các ứng dụng mẫu đi kèm theo bộ cài đặt máy chủ DB2 trong thư mục SQLLIB\samples. Hình 14.10 bên dưới liệt kê một số chương trình mẫu được cung cấp kèm với DB2 trên nền tảng Windows.

Page 255: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 14 - Giới thiệu việc phát triển ứng dụng với DB2 255

Fie View Fftvontes Toots Help ío Bacfc • J ì p Search o PoUers 2 3 *

ÀỊỡrev; >_} c ¡'Program Files'CBM,\$QU.®\sampíes\)ava\ỉdbc

Poỉders± _) 'ibỄ6 o kcense

Õ LOGGING

ÕTWP O M IS C

® Õ m*Q Õ Readne

a G ) samples a 0 a .N E T

o autotoadef tD BARVendor Õ c

Ó c *

Ù cpo COÒCẨc i cobol_mf ŨOP

ffi pdb2saoxjlÍS r*l rthTvmi

va\)dbc V a GOName A Size Type Date Modified ‘•£|AppỉLhtml 3KB HTM_ Document 3/15/2004 10:01 PMApptt.pva 8KB Java Language Sou... 3/15/2004 10:01PM

3 OeateEmployee.java 14 KB Java Language Sou... 8/15/2004 10:01PM^ Da ta.¿ass 2 KB a ASS fie 5/4/2005 10:22 AMsjoto.dass 4KB CLASS Fie 5/4/2005 10:22 AM'_JobAuth.)ava 7 KB Java Language Sou... 8/1 S/2004 10:01PM■jDbCom.java 3 KB Java Language Sou... 8/15/2004 10:01PM06Infi).)ava 4 KB Java Language Sou... 8/15/2004 10:01 PMlDbMCon.java 8 KB Java Language Sou... 8/15/200* 10:01PM*¿3 DbNatve.java 4 KB Java Language Sou... 8/15/2004 10:01PM•ji DbRsHoW >ava 20 KB Java language Sou... 8/15/2004 10:01PM"□ObSeQ.java 14 KB Java Language Sou... a/15/2004 10:01PM’¿jobUse.java 6 KB Java Language Sou... 8/15/2004 10:01PM•Jounfojava 4 KB Java Language Sou... 6A3/2005 5:17 PM»JotLo6.)dva 18 KB Java Language Sou... 4/24/200S 1:15 PMiJotUdtjava 8KB Java Language Sou... 8/ IS/2004 10:01PMGeneratePayrol.java 10 KE Java Language Sou... 8y 15/2004 10:01PM

5KE Java Language Sou... 8/15/2004 10:01PM,sj| JdbcExcep&on.dass 2KB CLASS Fie 5/4/2005 10:22 AM '< >

Hình 14.10 - Các chương trình mẫu đi kèm với DB214.10 Tóm tắtTrong chương này, chúng ta đã tỉm hiểu cách DB2 đem lại sự linh hoạt cho việc lập trinh các ứng dụng cơ sở dữ liệu ờ cả bên trong cơ sở dữ liệu phía máy chủ, cũng như các ứng dụng phía người dùng có kết nối đến máy chủ dữ liệu DB2.

ứng dụng phía máy chủ bao gồm các thủ tục lưu, các hàm do người dùng định nghĩa, và các bẫy sự kiện.

Phía người dùng, chúng ta đã thảo luận rất nhiều các giao diện và phương thức lập trình được hỗ trợ bởi quá trình phát triển ứng dụng DB2, một lần nữa chứng minh tính linh hoạt và hiệu năng đáng kể của DB2 trong vai trò của một máy chủ dữ liệu.

Page 256: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

15Chương 15 - DB2 pureXMLTrong chương này, chúng ta sẽ thảo luận về pureXML, công nghệ mới được đưa vào DB2 9 để hỗ trợ lưu trữ thuần các văn bản XML. Nhiều ví dụ và khái niệm được thảo luận trong chương này được lấy từ IBM Redbook: “DB2 9: Tổng quan và bắt đầu nhanh với pureXML" (DB2 9: pureXML overview and fast start). Bạn có thể xem mục Tài nguyên để có thêm thông tin. Hình 15.1 chỉ ra phần kiến thức trong bức tranh lớn DB2 sẽ được chúng ta thảo luận ờ chương này.

DB2 Environment Instance 'myinst*

D a ta b a se M a n a g e r C o n fig u ra t io n F ile <dbm c fg )

[Database MYDB1 D a ta b a s e

C o n fig u ra t io n F ile <db c fg }

ỊVortỊ

DB2 ToolsCommand Line ToolsCommand Editor Command Line Processor Comm and W indow

General Administration ToolsC ortro l Center JournalLicense C enter Replication Center Tasc Center

InformationInfo'mation Center Check for DB2 Updates

Monitoring ToolsEvent Analyzer Health Center Indoubt Transaction ManagerMemory Visualizer Activity Monitor

Setup ToolsConfiguration Assistant Configure DB2 Net Data Provider First StepsDefault D B2 Selection W izard

Development ToolsIBM Data Studio Optim Development s tud io

DB2 ComrfTands'&sSQL/XML, XQuery StatementsSOL/XML. Xquery statements:reate bufferpool

create tablespace create table alter bufferpool alter tablespace alter table select insert update delete

DB2 System Commandsdb2set db2start db2stop db2ilist db2icrt db2idrop

DB2 CLP Commands'upda te dbm cfg

catalog db list node directory create database list applications list tablespaces

<sql statement» xquery < ý

Hình 15.1 - Bức tranh lớn DB2: Các câu lệnh DB2, SQL/XML và XQuery

Page 257: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 15 - DB2 pureXML 257

Chú ý:Bạn có thể tham khảo video sau để có thêm thông tin về pureXML:

http://www.channeldb2.com/video/video/show?id=807741 :Video:4382

15.1 Sử dụng XML với cơ sở dữ liệuCác tài liệu XML có thể được lưu trữ dưới dạng tập tin văn bản, kho XML hay cơ sở dữ liệu. Có hai lí do chính khiến các công ty lựa chọn lưu trữ XML bằng cơ sở dữ liệu, đó là:

■ Quản lý các khối lượng lớn dữ liệu XML là một vấn đề về cơ sở dữ liệu. XML là một loại dữ liệu giống với các dữ liệu khác, chỉ khác ở định dạng tổng thể. Bên cạnh đó, có một số lý do khiến người ta lựa chọn lưu trữ dữ liệu quan hệ bằng cơ sờ dữ liệu cũng có thể được áp dụng cho dữ liệu XML, như: các cơ sở dữ liệu cung cấp các chức năng tìm kiếm và trích rút hiệu quả, hỗ trự cao tính bền vững của dữ liệu, cho phép sao lưu và phục hồi, hỗ trự giao dịch, tính hiệu quả và khả năng mở rộng.

■ Tính tích hợp: Bằng việc lưu trữ đồng thời tài liệu quan hệ và tài liệu XML, bạn có thể tích hợp thêm dữ liệu XML mới với dữ liệu quan hệ có sẵn, và kết hợp SQL với XPath hoặc XQuerỵ vào cùng một truy vấn. Thêm nữa, dữ liệu quan hệ có thể được chuyển thành XML, và ngược lại. Thông qua việc tích hợp, các cơ sở dữ liệu có thể hỗ trợ tốt hơn các ứng dụng Web, SOA và các dịch vụ Web.

15.2 Cơ sở dữ liệu XMLCó 2 loại cơ sở dữ liệu dành cho việc lưu trữ dữ liệu XML như sau:

■ Cơ sở dữ liệu có hỗ trợ XML (XML-enabled database)

■ Cơ sở dữ liệu thuần XML (Native XML database)

15.2.1 Cơ sở dữ liệu có hỗ trợ XMLCơ sở dữ liệu có hỗ trợ XML sử dụng mô hình quan hệ là mô hình lưu trữ dữ liệu chính để lưu trữ XML. Điều này đòi hỏi hoặc là phải có một ánh xạ giữa mô hình dữ liệu XML (phân cấp) với mô hình dữ liệu quan hệ, hoặc là phải lưu trữ dữ liệu XML dưới dạng các đối tượng lớn có thuộc tính. Mặc dù vẫn được xem như một công nghệ cũ, nhưng nó vẫn đang được sử dụng bởi nhiều nhà cung cấp cơ sở dữ liệu. Hình 15.2 mô tả chi tiết hơn về hai lựa chọn lưu trữ của nó.

Page 258: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

258 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Hình 15.2 - Hai lựa chọn lưu trữ XML trong cơ sờ dữ liệu hỗ trợ XMLPhía bên trái Hình 15.2 là phương pháp CLOB và varchar khi lưu trữ các tài liệu XML trong cơ sở dữ liệu. Theo phương pháp này, tài liệu XML được lưu trữ dưới dạng chuỗi chưa phân tích trong cột CLOB hoặc cột varchar trong ca sở dữ liệu. Nếu tài liệu XML được lưu trữ dưới dạng chuỗi, thì khi bạn muốn lấy ra một phần tài liệu XML, chương trình của bạn vẫn phải lấy toàn bộ chuỗi, sau đó phân tích nó để tìm những gì bạn cần. Quá trình phân tích giống như quá trình xây dựng cấu trúc cây cho tài liệu XML trong bộ nhớ, sao cho bạn có thể duyệt qua cây này. Phương pháp này cần bộ nhớ lớn và không được linh hoạt cho lắm.

Lựa chọn khác dành cho cơ sở dữ liệu hỗ trợ XML được gọi là phân rã (shredding / decomposition), được minh họa ở bên phải Hình 15.2. Sử dụng phương pháp này, toàn bộ tài liệu XML được phân rã thành các phần tử được lưu trữ trong các bảng. Và cũng theo phương pháp này, bạn đã thực sự chuyển tài liệu XML thành mô hình quan hệ, mà bản thân nó vốn dựa trên mô hình phân cấp. Phương pháp này không được linh hoạt, vì nếu tài liệu XML thay đổi, thì những thay đổi đó cũng không dễ truyền đến các bảng tương ứng, và có thể phải tạo thêm nhiều bảng khác nữa. Phương pháp này cũng cho hiệu năng không tốt: nếu bạn cần lấy lại tài liệu XML ban đầu, bạn phải thực thi một thao tác kết nối SQL với chi phí cao, và chi phí này có thể cao hơn nữa khi phải gọi tới nhiều bảng hơn.

15.2.2 Co’ sờ dữ liệu thuần XMLCơ sở dữ liệu thuần XML sử dụng mô hình phân cấp dữ liệu XML để lưu trữ và xử lý XML bên trong. Định dạng lưu trữ giống với định dạng xử lý: không có ánh xạ nào sang mô hình quan hệ, và các văn bản XML không được lưu trữ như các chuỗi chưa phân tích (CLOB hoặc varchar). Khi các câu lệnh XPath hay XQuery được sử dụng, chúng được máy xử lý

Page 259: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 15 - DB2 pureXML 259

một cách tự nhiên, và không chuyển sang SQL. Đây là lí do các cơ sở dữ liệu này được gọi là các cơ sở dữ liệu thuần XML. Hiện tại DB2 là máy chủ dữ liệu thương mại duy nhất hỗ trợ điều này.

15.3 XML trong DB2Hình 15.3 dưới đây minh họa cách thức lưu trữ đồng thời dữ liệu quan hệ và dữ liệu phân cấp (các tài liệu XML) trong một cơ sờ dữ liệu lai DB2. Hình vẽ cũng biểu diễn câu lệnh CREATE TABLE được sử dụng để tạo bảng dept.CREATE TABLE dept (deptID CHAR(8),_., deptdoc XML) ;

Hình 15.3 - XML trong DB2Chú ý rằng trong định nghĩa bảng sử dụng kiểu dữ liệu mới dành cho cột deptdoc, là kiểu XML. Mũi tên bên trái trong hình vẽ chỉ ra rằng cột quan hệ deptiD được lưu trữ dưới dạng quan hệ (bảng), trong khi cột XML deptdoc được lưu trữ dưới dạng phân tích phân cấp.

Hình 15.4 minh họa bốn cách truy nhập dữ liệu hiện nay được sử dụng trong DB2 9:

■ Sử dụng SQL để truy nhập dữ liệu quan hệ

■ Sử dụng SQL và các mở rộng XML (SQL/XML) để truy nhập dữ liệu XML

■ Sử dụng XQuery để truy nhập dữ liệu XML

■ Sử dụng XQuery để truy nhập dữ liệu quan hệ

Page 260: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

260 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

SERVERCLIENT

/< --------- ^

X Q u e r yA'M I/'

N ----------v '

S Q L / X

Hình 15.4 - Bốn cách truy nhập dữ liệu trong DB2Như vậy, phụ thuộc vào phương diện của bạn, nếu đứng trên phương diện người sử dụng SQL, bạn có thể xem DB2 như một hệ quản trị cơ sở dữ liệu cấp cao có hỗ trợ XML. Nếu đứng trên phương diện người sử dụng XML, bạn có thể xem DB2 như kho lưu trữ XML cấp cao ho trợ SQL.

Chú ý rằng IBM sử dụng khái niệm pureXML thay vì khái niệm thuần XML (native XML) để mô tả công nghệ này. Các nhà cung cấp khác vẫn sử dụng các công nghệ cũ CLOB/varchar hay phân rã để lưu trữ các tài liệu XML, họ gọi những công nghệ cũ đó là thuần XML. Để tránh nhầm lẫn, IBM đã quyết định sử dụng khái niệm mới pureXML, và đặt thương hiệu cho khái niệm này để các nhà cung cấp cơ sở dữ liệu và XML khác có thể sử dụng nó để gợi đến một công nghệ mới. pureXML hỗ trợ các cơ sở dữ liệu được sinh ra dưới cả 2 định dạng Unicode và non-Unicode.

15.3.1 Ưu điểm của công nghệ pureXMLCông nghệ pureXML đem lại nhiều ưu điểm như sau:

1. Bạn có thể nâng cao khả năng sử dụng dữ liệu quan hệ, bằng cách lưu trữ các tài liệu XML trong các cột của các bảng, sử dụng kiểu dữ liệu mới XML.

2. Bạn có thể giảm sự phức tạp của mã lệnh. Ví dụ, Hình 15.5 minh họa một đoạn PHP có sử dụng và không sử dụng pureXML. Sử dụng pureXML (khung nhỏ bên trái), số dòng mã lệnh đã được giảm. Điều này không chỉ có nghĩa là mã lệnh ít phức tạp hơn, mà tổng hiệu năng cũng được cải thiện, vì số dòng được phân tích và bảo trì trong mã lệnh cũng ít hơn.

Page 261: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Churnig 15 - DB2 pureXML 261

<?phpIconn = db2_con«ect:$dbname, Sdfcuser, idbpaas);

Ist»t » db2_prepare'Iconn, "VALUE3 I NEXT VALUE TOPcidi -);

db2_execute(Istmt);list(ICld) “ db2_fetch_arr«»y ( S a trot t ;

"custo®ers/cl.x»l");

Istnt » db2_prepare(Iconn, "INSERT INTO xroleuat c-irer Cld, Info) VALUES \ 7 , ?)”>; if('db2_execute($st»t, array:SCid, $fi leContentsii

echo db2_st»t_error»sg :$sttnt i ;

IflleContents - f i leget contenta (“products/pi. x»l");

}dom - sm?plexirl_ load s t n n g ¡If1leContentsi;

IprodID - (string) ldo»["pid"];

I stmt - db2_prepare(Iconn, "INSERT INTO xnlproduct (Pid, Description) VALUES [ 7 , ?)"): ifi'db2 execute / Ssttnt. arrav;IprodID.

db2_execute(Istniti;list(ICid) • <fi>2_fetch_array <lst*t);

IflleContentfl ■ file_get_contents (•customers/cl.xt rnlm) ;

Sdotn - simplex«l_load_strmg(IflleContents);

IcustName - (string) Jdoro--name;IcustCountry - (string) I do«*-:-addr [ "country"];ScustStreet - (string) $doa»->addr -»street;IcustCity - (string) ldc»->addr->city;IcustProvince - (string) ldon*->addr->i"prov-state"I;IcustZip - (string) ldo»->addr->( "pcode-sip");IcustPhone • (string) idoro -phone;

I stmt * db2_prepare<Seonn, "INSEPT tMTO sqlcustotner (Cld, Name, Country, Street, City, Province, Zip, Phone, Info) VALUES (?, 7, 7, 7, 7, 7, 7, 7, ?) *) J

if ( db2_execute ($sc»t, array($Cid, IcustNaine, IcustCountry, IcustStreet, IcustCity, IcustProvince, IcustZip, IcustPhone. IflleContents) )) (

echo db2_stmt_error»sg($8tiBt);) _______________

zl

SflleContents ■ flle_get_contents ("products/pl.xral");Idom - 3implexi»l_load_stnng($fileContents);

IprodID » (string) ldo®["pid"J;

Hinh 15.5 - Sir phurc tap cua ma lenh co s lf dung va khong sip dung pureXML3. NhCmg thay doi toi luge do se de dang hon khi s lp dung XML va cong nghe

pureXML. Hinh 15.6 la mot vi du minh hoa ve sy tang cifong tinh linh dong nay. Trong hinh, gia su1 ban co mot co so d& lieu bao gom cac bang Employee va Department. Dien hinh voi loai co so d& lieu khong co XML, neu nha quan ly yeu cau ban I lp u tr£> khong chi mot so dien thoai cho mot nhan vien (so dien thoai ban), ma con I l f u tru1 them so dien thoai thi> hai khac nu>a (so di dong), ban co the them mot cot trong bang Employee va liru tru1 so dien thoai di dong trong cot moi do. Tuy nhien, phumig phap nay vi pham cac quy t ic chuan hoa cua co so dO lieu quan he. Neu ban muon giu1 cac quy t ic do, ban phai tao mot bang phu moi, bang Phone, va chuyen tat ca cac thong tin ve so dien thoai vao bang nay. Ban cung co the them vao nhieu so di dong khac nu,a. Tao bang mdfi se ton chi phi, khong chi boi vi phai di chuyen so lipgng Ion cac dO lieu da ton tai, ma con vi tat ca cac cau lenh SQL trong cac img dung cua ban cung se phai thay doi de tro den bang moi.

Thay vao do, chung toi dira ra cach thgc hien dieu nay b lng viec si> dung XML nhip d phia ben trai hinh dipoi day. Neu nhan vien Christine cung co mot so di dong, ta them mot the moi de I l t u thong tin nay. Neu nhan vien Michael khong co so dien thoai di dong, ta se de nguyen.

Page 262: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

262 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

«DEPARTMENT asBịiỔ="15" 0£Bißäme="Sales"> «EMPLOYEE»

<EMPNO>10</EMPNO>«FIRSTNAME >c HRISTI NE</FI RST NAME> <LASTNAME> SM ITH</LAST NAME> <PHONE>408-463-4963</PHONE> <PHONE>415-010-1234</PHONE> <SALARY>52750 00</SAlARY>

</EMPLOYEE><EMPLOYEE>

<EMPNO>27</EMPNO> <FIRSTNAME>MICHAEL</FIRSTNAME> <LASTNAME>THOMPSO N</LASTNAME> <PHONE>406-463-1234</PHONE>

Requires:• Normalization of existing data !• Modification of the mapping• Change of applications

PhoneEMPNO PHONE

27 406-463-123410 415-010-123410 408-463-4963

Departm ent</EMPLOYEE> DEPTID DEPTNAME

y Costly!«/DEPARTMENT > 15 SalesEmplo'/ee V

/

DEPTID EMPNO FIRSTNAME LASTNAME SALARY15 27 MICHAEL THOMPSON 406-ỒVỊ234 4125015 10 CHRISTINE SMITH 40^463^963 52750

Hình 15.6 - Tăng cường tính linh động dữ liệu với XML4. Bạn có thể cải thiện hiệu năng ứng dụng XML của bạn. Thực nghiệm cho thấy việc

sử dụng công nghệ pureXML giúp cải thiện đáng kể hiệu năng cho các ứng dụng XML. Bảng 15.1 đưa ra các kết quả thử nghiệm cho một công ty khi chuyển đổi từ những công nghệ cũ sang công nghệ pureXML. Cột thứ hai biểu diễn kết quả khi dùng phương pháp làm việc cũ với XML trong một hệ quản trị cơ sờ dữ liệu khác, và cột thứ ba biểu diễn các kết quả khi sử dụng DB2 9 với pureXML.

Công việc Co’ sở dữ liệu quan hệ khác

DB2 với pureXML

Phát triển các quá trình tìm kiếm và trích rút thương mại

CLOB: 8 tiếng

Shred: 2 tiếng

30 phút

Số dòng mã l/o tương đối 100 35 ( giảm 65%)

Thêm trường vào lược đồ 1 tuần 5 phút

Truy vấn 24 - 36 tiếng 20 giây - 10 phút

Bảng 15.1 - Tăng hiệu năng khi sử dụng công nghệ pureXML15.3.2 Cơ bản về XPathXPath là một ngôn ngữ có thể được sử dụng để truy vấn các tài liệu XML. Liệt kê 15.1 dưới đây mô tả một tài liệu XML, và Hình 75.7 minh họa cùng tài liệu đó, nhưng được trình bày dưới dạng phân tích phân cấp (còn gọi là “nút” hoặc “lá”). Chúng ta sẽ dùng định dạng phân tích phân cấp đó để giải thích cách thức XPath làm việc như thế nào.

Page 263: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 15 - DB2 pureXML 263

<dept bldg="101"><employee id="901">

<name>John Doe</name> <phone>408 555 1212</phone><office>344</office></employee><employee id="902"><name>Peter Pan</name> <phone>408 555 9918</phone><office>216</office></employee></dept>Liệt kê 15.1 - Một tài liệu XML

Hình 15.7 - Biểu diễn phân tích phân cấp cho tài liệu XML trong liệt kê 15.1Một cách nhanh chóng để học XPath là so sánh nó với câu lệnh đổi thư mục (change directory - cd) trong MS-DOS hoặc Linux/UNIX. Sử dụng lệnh cd, bạn duyệt qua một cây thư mục như sau:

cd /directoryl/directory2/...

Tương tự, với XPath, bạn sử dụng dấu gạch chéo (/) để chuyển từ phần tử này đến phần tử khác trong tài liệu XML. Ví dụ, sử dụng tài liệu trong Liệt kê 15.1 với XPath, bạn có thể đưa ra tên của tất cả các nhân viên với truy vấn:

/dept/employee/name

15.3.2.1 Các biểu thức XPath

Page 264: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

264 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Biểu thức XPath sử dụng đường dẫn đầy đủ để xác định các phần tử và các thuộc tính. Kí hiệu được dùng để chỉ định một thuộc tính. Để lấy riêng phần giá trị (text node) của một phần tử, bạn sử dụng hàm t e x t 0 . Bảng 15.2ỠƯa ra những truy vấn XPath và các kết quả tương ứng khi áp dụng trên tài liệu XML ở Liệt kê 15.1.

XPath Result/đept/@bldg 101

/dept/employee/@id 901902

/dept/employee/name <narae>Peter <name>John

Pane/narae> Doe</narae>

/đept/employee/name/text() Peter Pan John Doe

Bảng 15.2 - Một số ví dụ về biểu thức XPath

15.3.2.2 Các kí tự đại diện XPathCó hai kí tự đại diện chính trong XPath:

■ “*” thay thế cho bất kỳ tên thẻ nào

■ “//” là kí tự đại diện cho “từ đây trở xuống” (“descendent-or-self”)

Bảng 15.3 đưa thêm các ví dụ với tài liệu XML ở Liệt kê 15.1.

XPath ResultJohn Doe408 555 1212

/dept/employee/*/text 0 344Peter Pan 408 555 9918 216

/dept/*/@id 901902

//name/text() Peter Pan John Doe

/dept//phone <phone>408 555 <phone>408 555

1212</phone>9918</phone>

Bảng 15.3 - Một số ví dụ về kí tự đại diện XPath

Page 265: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 15 - DB2 pureXML 265

15.3.2.3 Các vị từ XPathCác vị từ được đặt trong dấu ngoặc vuông [ ] . Như một phép so sánh tương tự, bạn có thể nghĩ chúng tương đương với mệnh đề WHERE (ở đâu) trong SQL. Ví dụ,[@id="902"] CÓ thể được hiểu là “ỏ đâu thuộc tính id bằng 902”. Có thể có nhiều vị từ trong một biểu thức XPath. Để chỉ ra một vị từ chỉ vị trí, ta dùng [n], với nghĩa là phần tử con thứ n được chọn. Ví dụ, employee [2] nghĩa là nhân viên thứ 2 được chọn. Bảng15.4 cho ta thêm các ví dụ.

XPath Result/dept/employee[@id="902"]/name <name>Peter

Pan</name>/dept[@bldg="101"]/employee[office >"300"]/name <name>John Doe</name>

//employee[office="344" OR office="216"]/0id 901902

/dept/employee[2]/8id 902

Bảng 15.4 - Các ví dụ vị từ XPath

15.3.2.4 Mức chaGiống như MS-DOS hay Linux/Unix, bạn có thể sử dụng dấu chấm (dot) để chỉ địnhtrong biẻu thức rằng bạn dang tham chiếu dén ngữ cành hiện tại, v à ( d o t dot) dẻ tham chiếu đến vị trí trên nó một cấp (mức cha). Bảng 15.5 cho ta thêm các ví dụ.

XPath Result/dept/employee/name[../0id="9O2"] <name>Peter Pan</name>

/dept/employee/office[.>"300"] <office>344</office>

/dept/employee[office > "300"]/office <office>344</office>

/dept/employee[name="John Doe"]/../@bldg 101

/dept/employee/name[.="John Doe"]/../../@bldg 101

Bảng 15.5 - Mức cha trong XPath 15.3.3 Cơ bản về XQueryXQuery là ngôn ngữ truy vấn được tạo ra dành cho XML. XQuery hỗ trợ các biểu thức đường dẫn để duyệt cấu trúc phân cấp của XML. Trên thực tế, XPath là một tập con của XQuery; do đó, mọi thứ chúng ta đã học trước đây về XPath cũng được áp dụng tương tự cho XQuerỵ. XQuery hỗ trợ cả các loại dữ liệu định kiểu và dữ liệu không định kiểu. XQuery không hỗ trợ các giá trị null bởi vì các tài liệu XML mặc nhiên sẽ bỏ qua các dữ

Page 266: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

266 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

liệu không xác định hoặc bị thiếu. Các biểu thức XQuery và XPath có phân biệt kí tự hoa và kí tự thường, và XQuery sẽ trả về chuỗi dữ liệu XML tuần tự.

XQuery hỗ trợ biểu thức FLWOR. Nếu so sánh với SQL, FLWOR tương đương với biểu thức SELECT-FROM-WHERE. Phần tiếp theo sẽ mô tả cụ thể hơn về FLWOR.

15.3.3.1 XQuery: Biểu thức FLWORFLWOR là viết tắt của:

■ FOR: thực hiện lặp qua một chuỗi, gán một biến cho các phần tử chuỗi

■ LET: gán một biến cho một chuỗi

■ WHERE: loại bỏ các phần tử trong vòng lặp

■ ORDER: sắp xếp lại trật tự các phần tử trong vòng lặp

■ RETURN: xây dựng các kết quả truy vấn

FLWOR là biểu thức cho phép thực hiện các thao tác với các tài liệu XML và trả về một biểu thức khác. Ví dụ, giả sử bạn có một bảng với định nghĩa như sau:

CREATE TABLE dept(deptID CHAR(8), deptdoc XML);

Và tài liệu XML với nội dung như trong Liệt kê 15.2 được chèn vào cột d e p t d o c .

cđept bldg="101"><employee id—"901">

<name>John Doe</name><phone>408 555 1212</phone><office>344</office>

</employee><employee id="902">

<name>Peter Pan</name><phone>408 555 9918</phone><office>216</office>

</employee></dept>Liệt kê 15.2 - Tài liệu XML mẫuKhi đó, câu lệnh XQuery trong Liệt kè 15.3 sử dụng biểu thức FLWOR có thể được thực thi:xqueryfor $d in db2-fn:xmlcolumn('dept.deptdoc■)/deptlet $emp := $d//employee/namewhere $d/@bldg > 95order bỵ $d/0blđgreturn

<EmpList>

Page 267: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 15 - DB2 pureXML 267

{$d/0bldg, $emp}</EmpList>

Liệt kê 15.3 - Câu lệnh XQuery mẫu sử dụng biểu thức FLWORBiểu thức này sẽ trả về kết quả như trong Liệt kê 15.4

<EmpList bldg="101"><name>

John Doe < / n a m e >

<name>Peter Pan

</name></EmpList>Liệt kê 15.4 - Kết quả sau khi thực thi câu lệnh XQuery trong Liệt kê 15.315.3.4 Chèn các tài liệu XMLViệc chèn các tài liệu XML vào cơ sở dữ liệu DB2 có thể được thực hiện bằng cách sử dụng câu lệnh SQL INSERT, hoặc tiện ích IMPORT. XQuery không được dùng cho mục đích này bởi vì nó vẫn chưa được định nghĩa trong chuẩn.

Hãy thử xem xét kịch bản table_creation.txt có nội dung như trong Liệt kê 15.5 dưới đây, đoạn mã này có thể được thực thi từ cửa sổ lệnh DB2 hoặc Linux Shell với câu lệnh :

db2 - t v f table_creation.- X t

— ( 1)

drop database myđb

— ( 2 )

create database mydb using codeset UTF-8 territory us

— (3)connect to mydb

— (4)create table items (

id int primary key not nullbrandnameitemnamesku

varchar(30), varchar(30), int,

srp decimal (7,2),

Page 268: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

268 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

comment s xml) ;

— (5)create table clients(

id int primary key not null varchar(50), varchar(10), xml

namestatuscontact

) ;

— ( 6 )

insert into clients values (77, 'John Smith', 'Gold', '<addr>lll Main St., Dallas, TX, 00112</addr>')

— (7)IMPORT FROM "D:\Raul\clients.del" of del xml from "D:\Raul" INSERT INTO CLIENTS (ID, NAME, STATUS, CONTACT)

— ( 8 )

TMPORT FROM " n : \ R a n 1 .rtel" of dpi xml from "n:\Ranl" TNSF.RT TNTO ITEMS (ID, BRANDNAME, ITEMNAME, SKU, SRP, COMMENTS)

Liệt kê 15.5 - Nội dung của tập tin table_creation.txtTập tin kịch bản này và các tập tin liên quan được cung cấp trong tập tin nén Expressc_book_exercises_9.7 . zip đi kèm với sách này. Sau đây là mô tả cụ thể các dòng trong đoạn kịch bản của Liệt kê 15.5:

1. Xóa cơ sở dữ liệu mydb. Việc này thường được làm trong các tập tin kịch bản để thực hiện việc dọn dẹp. Nếu cơ sở dữ liệu mydb không tồn tại trước đó, bạn sẽ nhận được thông báo lỗi, nhưng điều này không có vấn đề gì.

2. Tạo cơ sở dữ liệu mydb với bảng mã UTF-8. Câu lệnh này tạo một cơ sở dữ liệu Unicode. pureXML hỗ trợ cả các cơ sở dữ liệu Unicode và không Unicode.

3. Kết nối tới cơ sở dữ liệu mydb vừa được tạo ra. Việc này là cần thiết để tạo các đối tượng bên trong cơ sở dữ liệu.

4. Tạo bảng items. Lưu ý rằng cột cuối cùng trong bảng (cột comments) được định nghĩa như một cột XML sử dụng kiểu dữ liệu XML mới.

5. Chúng ta tạo bảng clients. Cột cuối cùng trong bảng (cột contact) cũng được định nghĩa với kiểu dữ liệu XML mới.

Page 269: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 15 - DB2 pureXML 269

6 .

7.

Bằng cách sử dụng câu lệnh SQL INSERT này, bạn có thể chèn một tài liệu XML vào một cột XML. Trong câu lệnh INSERT, tài liệu XML được truyền vào như một chuỗi được đóng trong cặp dấu nháy đơn.

Sử dụng lệnh IMPORT, bạn có thể chèn hoặc nhập một số tài liệu XML cùng với các dữ liệu quan hệ vào cơ sở dữ liệu. Trong (7), bạn đang nhập dữ liệu từ tập tin clients. del (một tập tin ascii có kí tự phân tách), và bạn cũng chỉ định vị trí của dữ liệu XML được tham chiếu bởi tập tin clients .del (trong ví dụ này làD:\Raul)

Chúng ta sẽ tìm hiẻu kỹ hơn vè tập tin clients .del, nhưng trước hết hãy xem qua nội dung thư mục D: \Raul như trong Hình 15.8.

D:\Raul V 0 GName

Ijc lien t3227 .xm l g|Client4309.xml U jclient5681,xm l ịĩ=Ịclient8877.xml Ij|c lient9077.xm l |j=|client9177.xml [Ẩj clientlnfo.xsd I >1 clients, del

h=] Comment3926.xml Ịĩĩh Comment4023, xml 1^1 Comment4272. xml

1 items, del

Size

1 KB 1 KB 1 KB 1 KB 1 KB1 KB2 KB 1 KB 1 KB 1 KB 1 KB 1 KB

Type

XML Documi XML Documi XML Documi XML Docunrn XML Documi XML Documi XML Schem< DEL File XML Documi XML Documi XML Documi DEL File

Hình 15.8 - Nội dung của thư mục D:\Raul chứa các tài liệu XMLLiệt kê 15.6 cho ta nội dung của tập tin văn bản c l ie n t s , d e l như sau:

3227,Ella Kimpton,Gold,<XDS FIL='Client3227.xml' />,8877,Chris Bontempo,Gold,<XDS FIL='Client8877.xml'/>,9077,Lisa Hansen,silver,<XDS FIL='Client9077.xrnl' />9177,Rita Gomez,Standard,<XDS FIL='Client9177.xml'/>,5681,Paula Lipenski,Standard,<XDS FIL='Client5681.xml' />,4309,Tina Wang,Standard,<XDS FIL='Client4309.xml'/>Liệt kê 15.6 - Nội dung của tập tin clients.delTrong tập tin c l ie n t s .d e l , "XDS F IL = " dùng để chỉ định một tập tin XML xác định.

Hình 15.9 minh họa Trung tâm Điều khiển - Control Center sau khi thực thi đoạn mã trên.

Page 270: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

270 Nhâp mon Hê quàn tri ca sô dû lieu DB2

j s j x j

Control Center Selected Edit View Tools Help

f e e6> ED 5 * Q ® i f S «= ®

Object View

O Ail Systems B ^ RAULCHONG O AJI Databases B 0 MYDB

3AULCHONG - DB2 - MYDB - Tables

S B CUENTS

ID

Cj Views....Q Aliases

CD Nickname e O Cache Ot

D Triggers CD Schemas CD Indexes CD Table Sp:

— CD Event Mo O Buffer Po

E CD Appiicabc £ CD User and E CD Federate

CD XML Sche F0 □ RESEARCH

©• Q SAMPLE Commit

ADcruoMr;

Table space

I iC C O C D A r - d

I Comment# I index table sp ace r Large data table

*JRAULCHONG - DB2 - MYDB - ARFCHCNG.CLIENTS

Edits to these results are performed as searched UPDATES and DELETES Use the Tools Settings notebook to change the form of editing.To browse an XML document, click on a cell, then click on the button.

$ I NAME STATUS

77 John Smith_3227E lla Kimpton

GoldCold

8877 cnns Bontempü Gold 9077 Lisa Hansen Stiver9177 Rita Gomez standard5681 Paula Lipenski ¡Standard4 3 09 Tina Wang Standard

CONTACT ?

___ XML_____ i lXML

z u m a s** Tree v ie XI,--------------

y

Tree View | source Vlew|

Roll Back

r Automatically commit updates

LlI

aysnscyBgiaTgg"UBTgnr

* cre a te New Table

a 09 CONTACT s GJ Client

0 xmlns:xsi• xsi:noNamespaceSchemaLocation

0 3 Address E) Q street

Ë1 5401 Julio Ave Ö -Q city

Ë) San Jose EJ Q state

0 CA B -GO zip

0 95116

Expand All

Collapse All

Preferences..

Legend

' • Attribute

G0 Document

□ Element

^ l Text

Hinh 15.9 - Control Center sau khi thirc thi liêt kê kjch bàn table_creation.txtTrong hïnh tren, chúng ta cho hiên ra nôi dung cua bang c l i e n t s . Côt cuói cùng contact là mot côt XML. Khi ban nhap chuôt vào nút có ba dáu chám, mot ci>a so khác së cho ban tháy nôi dung cua tài lieu XML. Ban có the xem minh hoa nhu1 o’ góc phâi phía dirai cua Hinh 15.9.

15.3.5 Truy van dfr liêu XMLTrong DB2 có hai cách de truy van dir lieu XML:

- Si> dung SQL vói các mô rông XML (SQL/XML)

■ Sù dung XQuery

Trong câ hai cách trên, DB2 dèu tuân theo chuân XML quôc té.

15.3.5.1 Truy van dip lieu XML vô1! SQL/XMLSir dung các câu lênh SQL thông thirông cho phép ban làm viêc vói các dông và các côt. Mot câu lênh SQL có thé làm viêc dugc vói toàn bô tài lieu XML dày du; tuy nhiên, SQL së không thê giùp ban làm viêc chï vói mot phàn tài lieu XML. Trong triràng hçyp này, ban càn s ii dung SQL vói các mô rông XML (SQL/XML).

Bàng 15.6 mô tà mot so hàm SQL/XML có sân vói chuân SQL 2006.

Page 271: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 15 - DB2 pureXML 271

Tên hàm Mô tảXMLPARSE

Phân tích dữ liệu kí tự hay dữ liệu nhị phân của đối tượng lớn, lấy ra giá trị XML

XMLSERIALIZEChuyển giá trị XML sang dạng dữ liệu kí tự hay dữ liệu nhị phân của đối tượng lớn

XMLVALIDATEKiểm tra dữ liệu XML với lược đồ XML và ghi chú kiểu của giá trị XML

XMLEXISTSKiếm tra xem XQuery có trả về kết quả không (ví dụ, một dãy có một hoặc nhiều phần tử)

XMLQUERY Thực thi XQuery và trả về dãy kết quả

XMLTABLEThực thi XQuery và trả về dãy kết quả như một bảng quan hệ (nếu có thể)

XMLCAST Ép kiểu từ kiểu XML

Bảng 15.6 - Các hàm SQL/XMLSử dụng cơ sờ dữ liệu mydb đã tạo trước đây để thực hiện các ví dụ sau:

Ví dụ 1Giả sử bạn cần xác định tên của tất cả các khách hàng sống ở vùng nào đó (có mã vùng - zip code). Bảng clients lưu địa chỉ khách hàng, bao gồm thông tin mã vùng trong một cột XML. Bạn có thể sử dụng hàm XMLEXISTS để tìm mã vùng phù hợp trên cột XML và trích rút kết quả trả về theo đó. Liệt kê 15.7 minh họa câu lệnh SQL tương ứng.

SELECT name FROM clients WHERE xmlexists(

1$c/Client/Address[zip="95116"]1 passing clients.contact as "c")

Liệt kê 15.7 - Ví dụ sử dụng XMLEXISTSTrong Liệt kê 15.7, dòng đầu tiên là mệnh đề SQL chỉ ra rằng bạn muốn lấy thông tin cột name trong bảng clients.Mệnh đề WHERE gọi hàm XMLEXISTS, chỉ định rõ biểu thức XPath yêu cầu DB2 tìm phần tử z ip có giá trị 95116.

Mệnh đề $ c / c i i e n t /A d d re ss chỉ ra đường dẫn trong cấu trúc phân cấp của tài liệu XML để DB2 có thể tìm ra phần tử zip. Kí tự ($) được sử dụng để chỉ định một biến. Như vậy “c” là biến. Biến “c” được định nghĩa bởi dòng: passing clients. contact as "c". Trong đó, clients là tên bảng và contact là tên cột có kiểu dữ liệu XML. Nói cách khác, chúng ta gán tài liệu XML cho biến “c”.

Page 272: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

272 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

DB2 kiểm tra tài liệu XML chứa trong cột contact, duyệt từ nút gốc Client xuống nút Address, sau đó là zip, và cuối cùng xác định xem khách hàng có sống ở vùng có mã vùng cần tìm hay không. Nếu hàm XMLEXISTS trả về “t r u e ”, DB2 sẽ lấy ra tên khách hàng tương ứng.

Trong DB2 9.5, câu truy vấn trên có thể viết đơn giản như sau:SELECT name FROM clients WHERE xmlexists(

'$CONTACT/Client/Address[zip="95116"] ')

Liệt kê 15.8 - Cách viết đơn giản cùa truy vấn trong kiệt kê 15.7DB2 sẽ tự động tạo ra một biến có cùng tên với tên cột XML. Trong ví dụ trên, DB2 tự động tạo ra biến CONTACT có tên trùng với tên cột XML CONTACT.

Ví dụ 2Chúng ta nghĩ xem làm thế nào để tạo được báo cáo gồm danh sách các địa chỉ thư điện tử của các khách hàng “Vàng” (có s t a t u s là “G o ld ”). Truy vấn trong Liệt kê 15.9 dưới đây sẽ giải quyết vấn đề này.

SELECT xmlquery('$c/Client/email' passing contact as "c")FROM clientsWHERE status = 'Gold'

Liệt kê 15.9 - Ví dụ sử dụng XMLQUERYDòng đầu tiên chỉ ra rằng chúng ta muốn lấy ra địa chỉ email, là một phần tử của tài liệu XML (không phải một cột dữ liệu quan hệ). Tương tự ví dụ trước, biến “$ c ” lưu trữ tài liệu XML. Trong ví dụ này, hàm XMLQUEF.Y được sử dụng theo sau mệnh đề SELECT, trong khi hàm XMLEXISTS được sử dụng theo sau mệnh đề WHERE.

Ví dụ 3Có trường hợp bạn muốn trình bày dữ liệu XML theo dạng bảng. Chúng ta có thể thực hiện điều này bằng cách sử dụng hàm XMLTABLE như trong Liệt kê 15.10 dưới đây.

SELECT t.comment#, i.itemname, t .customerlD, Message FROM items i,xmltable('$c/Comments/Comment' passing i.comments as "c"

columns Comment# integer path 'CommentlD',CustomerlD integer path 'CustomerlD',Message varchar(lOO) path 'Message') AS t

Dòng đầu tiên chỉ ra các cột sẽ xuất hiện trong tập kết quả. Các cột bắt đầu với biến “t ” dựa trên giá trị của các phần tử trong XML.

Page 273: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 15 - DB2 pureXML 273

Dòng thứ ba gọi hàm XMLTABLE để xác định rõ cột XML của DB2 chứa dữ liệu cần thiết ( i . comments) và đường dẫn đến phần tử cần tìm trong tài liệu XML.

Từ dòng 4 đến dòng 6, mệnh đề columns chỉ ra các phần tử XML sẽ được ánh xạ tương ứng với các cột trong bảng kết quả của câu lệnh SQL ở dòng 1. Việc ánh xạ này cũng chỉ ra kiểu dữ liệu mà giá trị của các phần tử XML sẽ được chuyển sang. Trong ví dụ này, toàn bộ dữ liệu XML được chuyển sang các kiểu dữ liệu truyền thống của SQL.

Ví dụ 4Bây giờ chúng ta xem qua ví dụ đơn giản có chứa biểu thức XQuery FLWOR bên trong hàm SQƯXML XMLQUERY. Ví dụ được thể hiện trong Liệt kê 15.11.

SELECT name, xmlquery('for $e in $c/Client/email[1] return $e' passing contact as "c")

FROM clientsWHERE status = 'Gold'

Liệt kê 15.11 - Ví dụ sử dụng XMLQUERY và FLWORDòng đầu tiên chỉ ra tên khách hàng và kết quả của hàm XMLQUERY sẽ được chứa trong tập kết quả. Dòng thứ hai chỉ ra phần tử con email đầu tiên của phần tử Client sẽ được trả về. Dòng thứ ba chỉ nguồn dữ liệu XML (cột contact). Dòng thứ tư cho biết cột này lấy từ bảng clients, và dòng thứ năm nói rằng chỉ lấy ra các khách hàng “Vàng” (“Gold”).

Ví dụ 5Ví dụ trong Liệt kê 15.12 bên dưới minh họa hàm XMLQUERY có sử dụng biểu thức XQuery FLWOR; tuy nhiên, ví dụ này không chỉ trả về dữ liệu XML mà còn trả về dữ liệu HTML.

SELECT xmlquery('for $e in $c/Client/email[1]/text() return <p>{$e}</p>' passing contact as "c”)

FROM clientsWHERE status = 'Gold'

Liệt kê 15.12 - Ví dụ trả vồ XML và HTMLMệnh đề return của XQuery cho phép chuyển đổi dữ liệu XML đầu ra theo yêu cầu. Sử dụng hàm text ( ) ở dòng đầu tiên chỉ ra rằng chúng ta chỉ quan tâm đến biểu diễn dạng văn bản của địa chỉ email đầu tiên trong các khách hàng thỏa mãn điều kiện. Dòng thứ hai cho biết thông tin này sẽ được bao bởi thẻ <p> của HTML.

Ví dụ 6

Page 274: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

274 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Ví dụ sau đây sử dụng hàm XMLELEMENT để tạo một dãy các phần tử, mỗi phần tử chứa các phần tử con, bao gồm ID, nhãn hiệu hàng hóa (brand name), lượng hàng tồn kho (sku- stock keeping unit) lấy từ các cột tương ứng của bảng items, về cơ bản, bạn có thể sử dụng hàm XMLELEMENT khi bạn muốn chuyển từ dữ liệu quan hệ sang dữ liệu XML. Điều này được minh họa trong Liệt kê 15.13.

SELECTxmlelement (name "item", itemname), xmlelement (name "id", id), xmlelement (name "brand", brandnarae), xmlelement (name "sku", sku)FROM items WHERE srp < 100

Liệt kê 15.13- Ví dụ sử dụng XMLELEMENTTruy vấn trong Liệt kê 15.13 trả về kết quả như trong Liệt kê 15.14.

<item><id>4272</id><brand>Classy</brand><sku>981140</sku>

</item>

<item><±d>1193</id><brand>Natural</brand <sku>557813</sku>

</item>Liệt kê 15.14 - Kết quả của truy vấn trong liệt kê 15.13

15.3.5.2 Truy vấn dữ liệu XML với XQueryTrong phần trước, chúng ta đã xem xét cách thức truy vấn dữ liệu XML bằng việc sử dụng SQL với các mở rộng XML. SQL luôn là phương pháp truy vấn chính, và XQuery hoặc XPath được nhúng vào bên trong SQL. Trong phần này, chúng ta sẽ thảo luận cách thức truy vấn dữ liệu XML với XQuery. Lúc này, XQuery sẽ là phương pháp truy vấn chính, và trong một số trường hợp, chúng ta sẽ sử dụng SQL nhúng bên trong XQuery (sử dụng hàm d b 2 - fn : sqlquery). Khi sử dụng XQuery, chúng ta sẽ gọi một số hàm, và cũng sẽ sử dụng biểu thức FLWOR.

Ví dụ 1

Đây là một XQuery đơn giản trả về dữ liệu liên lạc của khách hàng. Trong ví dụ, CONTACT là tên cột XML, và CLIENTS là tên bảng.

xquery db2-fn:xmlcolumn <'CLIENTS.CONTACT')

Page 275: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 15 - DB2 pureXML 275

Bạn hãy nhớ luôn luôn thêm lệnh xquery vào đầu mỗi biểu thức XQuery để DB2 hiểu rằng nó phải sử dụng bộ phân tích XQuery (XQuery parser). Nếu không, DB2 sẽ cho rằng bạn đang cố gắng thực thi một biểu thức SQL. Hàm db2-fn:xmlcolumn lấy ra các tài liệu XML từ cột được chỉ định như tham số được truyền vào. Câu lệnh trên tương đương với câu lệnh SQL sau đây, thực hiện việc lấy ra toàn bộ các nội dung trong cột:

SELECT contact FROM clients

Ví dụ 2Ví dụ này được thể hiện trong Liệt kê 15.15, chúng ta sử dụng biểu thức FLWOR để lấy dữ liệu fax của khách hàng.

xqueryfor $y in db2-fn:xmlcolumn('CLIENTS.CONTACT')/Client/fax

return $y

Liệt kê 15.15 - XQuery và biểu thức FLWORDòng đầu tiên gọi đến bộ phân tích XQuery. Dòng thứ hai yêu cầu DB2 lặp hết các phần tử con fax chứa trong cột CLIENTS .CONTACT. Mỗi phần tử fax được gán vào biến $y. Dòng thứ ba nói rằng giá trị biến $y sẽ được trả về trong mỗi lần lặp.

Kết quả truy vấn được minh họa như trong Liệt kê 15.16 (Chúng tôi bỏ qua không gian tên trong kết quà dầu ra, nếu không sẽ khó dọc vì nó có thẻ chiếm một số dòng).<fax>4 081112222</fax><fax>5559998888</fax>Liệt kê 15.16 - Kết quả đầu ra của truy vấn trong liệt kê 15.15

Ví dụ 3Ví dụ trong Liệt kê 15.17truy vấn dữ liệu XML và trả về kết quả dưới dạng HTML.

xquery <ul> {

for $y in db2-fn:xmlcolumn('CLIENTS.CONTACT')/Client/Address order bỵ $y/zip return <11>{$y}</1i>

}</ul>

Liệt kê 15.17 - Câu lệnh XQuery với biểu thức FLWOR, trả về kết quả dạng HTML

Mầu kết quả HTML trả về có dạng như Liệt kê 15.18.<ul>

Page 276: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

276 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

<li><address>

<street>9407 Los Gatos Blvd.</street><city>Los Gatos</city><state>ca</state><zip>95302</zip>

</address></li><address><street>4209 E1 Camino Real</street>

<city>Mountain view</city><state>CA</state><zip>95302</zip>

</address></li>

</ul>Liệt kê 15.18 - Kết quả đầu ra của truy vấn trong Liệt kê 15.17

Ví dụ 4Ví dụ tiếp theo chỉ ra cách nhúng SQL vào XQuery bằng việc sử dụng hàm db2- fn: sqlquery. Hàm db2-fn: sqlquery thực thi một truy vấn SQL và chỉ trả về những dữ liệu XML được chọn. Truy vấn SQL được truyền vào hàm db2-fn : sqlquery phải trả về dữ liệu XML. Sau đó, dữ liệu XML này sẽ được XQuery xử lí. Điều này được minh họa trong Liệt kê 15.19.

Xqueryfor $y in đb2-fn:sqlquery(

'select comments from items where srp > 100')/Comments/Commentwhere $y/ResponseRequested='Yes'return (

<action>{$y/ProductID $y/CustomerID $y/Message}

</action>)

Liệt kê 15.19 - Một ví dụ của hàm db2-£n: sqlquery có nhúng SQL trong XQuery

Page 277: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 15 - DB2 pureXML 277

Trong ví dụ trên, truy vấn SQL lọc ra các dòng với điều kiện giá trị tại cột s rp lớn hơn 100. Từ các dòng đã lọc này lấy ra cột comments, là cột dữ liệu XML. Câu lệnh XQuery (hoặc XPath) tiếp theo được sử dụng để nhảy đến các phần tử con.

Chú ý:SQL không phân biệt kí tự hoa, kí tự thường, và DB2 lưu trữ tất cả các tên bảng và tên cột mặc định bằng chữ hoa. Nhưng XQuery lại phân biệt kí tự hoa, kí tự thường. Các hàm trên đây là các hàm giao diện của XQuery, vậy nên các tên bảng và tên cột truyền vào hàm phải được chuyển thành chữ hoa. Truyền tên đối tượng ở dạng chữ thường có thề gây ra lỗi tên đối tượng không xác định.

15.3.6 Kết nối với SQL/XMLPhần này mô tả cách thức thực hiện các lệnh kết nối J O IN giữa hai cột XML của các bảng khác nhau, hoặc giữa một cột XML và một cột quan hệ. Giả sử bạn đã tạo hai bảng bằng các câu lệnh trong Liệt kê 15.20.

CREATE TABLE dept (unitID CHAR(8), deptdoc XML)CREATE TABLE unit (unitID CHAR(8) primary key not null,

name CHAR(20), manager VARCHAR(20),

)

Liệt kê 15.20 - DDL của các bảng được sử dụng trong v í dụ JOINTa có thể thực hiện lệnh J O IN bằng một trong hai cách. Cách thứ nhất đ ư ợ c thể hiện như trong Liệt kê 15.21.

SELECT u.unitlDFROM dept d, unit u WHERE XMLEXISTS (

'$e//employee[name = $m]'passing d.deptdoc as "e", u.manager as "m")

Liệt kê 15.21 - Cách thứ nhất để thực hiện lệnh JOIN với SQL/XMLDòng 4 của câu lệnh trong đoạn mã trên chỉ ra rằng lệnh J O IN xuất hiện giữa phần tử name, là phần tử con của cột XML deptdoc trong bảng dept và cột quan hệ manager trong bảng unit.Liệt kê 15.22 thể hiện cách thứ hai để thực hiện lệnh JOIN.SELECT u.unitID

FROM dept d, unit u WHERE u.manager = XMLCAST(

XMLQUERY('$e//employee/name ' passing d.deptdoc as "e")

Page 278: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

278 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

AS char (20))

Liệt kê 15.22 - Cách thứ hai để thực hiện lệnh JOIN với SQL/XMLTrong cách thứ hai này, cột quan hệ nằm ở bên trái lệnh J O IN . Nếu cột quan hệ ở bên trái dấu bằng, một chỉ mục quan hệ có thể được dùng thay cho một chỉ mục XML.

15.3.7. Kết nối với XQueryGiả sử ta đã tạo các bảng sau:

CREATE TABLE dept(unitID CHAR(8), deptdoc XML)CREATE TABLE project(projectDoc XML)

Nếu ta sử dụng SQƯXML, lệnh JO IN được sử dụng như Liệt kê 15.23.

SELECT XMLQUERY ('$d/dept/employee' passing d.deptdoc as "d")FROM dept d, project p WHERE XMLEXISTS (

'$e/dept[@deptID=$p/project/deptID]'passing đ.deptdoc as "e", p.projectDoc as "p")

Liệt kê 15.23 - Lệnh JOIN với SQL/XMLLệnh J O IN tương đương s ử dụng XQuery đ ư ợ c thể h iện ở Liệt kê 15.24.

xqueryfor $dept in db2-fn:xmlcolumn("DEPT.DEPTDOC")/deptfor $proj in db2-fn:xmlcolumn("PROJECT.PROJECTDOC")/projectwhere $dept/@deptID = $proj/deptID

v a l u e r ,

Phương pháp thứ hai này dễ phiên dịch hơn - biến $dept chứa tài liệu XML của cột deptdoc trong bảng dept. Biến $pro j chứa tài liệu XML của cột XML pro jectdoc trong bảng project. Như vậy, dòng 4 thực hiện lệnh J O IN giữa một thuộc tính của tài liệu XML đầu tiên và một phần tử của tài liệu XML thứ hai.

15.3.8 Các thao tác cập nhật và xóaCác thao tác cập nhật và xóa trên dữ liệu XML có thể được thực hiện bằng một trong hai cách sau:

■ Sử dụng các câu lệnh SQL UPDATE và DELETE.

■ Sử dụng biểu th ứ c TRANSFORM.

Với cách thứ nhất, sử dụng các câu lệnh SQL UPDATE và DELETE, thao tác cập nhật hoặc xóa xảy ra ở mức tài liệu; tức là, toàn bộ tài liệu XML được thay thế bằng một tài liệu được

Page 279: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 15 - DB2 pureXML 279

cập nhật mới. Ví dụ, trong câu lệnh UPDATE trong Liệt kê 15.25 dưới đây, nếu bạn chỉ muốn thay đổi phần tử < s ta te > thì toàn bộ tài liệu XML vẫn sẽ được thay thế thực sự.

UPDATE clients SET contact=( xmlparse(document

'<Client><address>

<street>5401 Julio ave.</street><city>San Jose</city><state>CA</state><zip>95116</zip>

</address><phone>

<work>4084 633000</work><home>4081111111</home><cell>4082222222</cell>

</phone><fax>4087776666</fax><eraail>newemail0someplace.com</email>

</Client>1))WHERE id = 3227

Liệt kê 15.25 - Ví dụ về câu lệnh SQL UPDATE

ở cách thứ hai, bạn có thể thực hiện việc cập nhật tài liệu con bằng cách sử dụng biểu thức TRANSFORM với hiệu quả tốt hơn nhiều. Điều này cho phép bạn thay thế, chèn, xóa hoặc đổi tên các nút trong một tài liệu XML. Bạn cũng có thể thay đổi giá trị của một nút mà không phải thay thế chính nút đó, điển hình là việc thay đổi giá trị của một phần tử hay giá trị của thuộc tính - dạng cập nhật rất phổ biến. Sự hỗ trợ này đã được bổ sung trong DB2 9.5.

Biểu thức TRANSFORM là một phần của ngôn ngữ XQuery, bạn có thể sử dụng nó ở bất cứ nơi nào bạn vẫn sử dụng XQuery, ví dụ trong một biểu thức FLWOR hay trong hàm XMLQUERY của câu lệnh SQƯXML. Trường hợp sử dụng đặc trưng nhất là trong câu lệnh SQL UPDATE để chỉnh sửa tài liệu XML trong một cột XML.

Liệt kê 15.26 đưa ra cú pháp của biểu thức TRANSFORM.

»-transform— I copy clause I — I modify clause I — I return clause I-><

copy clause

V II — copy---- $VariableName— : =— CopySourceExpression-+-------------I

Page 280: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

280 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

modify clause

I — modify--ModifyExpression---------------------------------------- I

return clause

I — return--ReturnExpression---------------------------------------- I

Liệt kê 15.26 - Cú pháp của biểu thức TRANSFORM

Mệnh đề copy được sử dụng để gán các tài liệu XML bạn muốn xử lý vào một biến. Trong mệnh đề modify, bạn có thể gọi một biểu thức insert, delete, rename hoặc replace. Các biểu thức này cho phép bạn thực hiện việc cập nhật tài liệu XML của bạn.

Ví dụ:

■ Nếu muốn thêm các nút mới vào tài liệu, ta sử dụng biểu thức insert.■ Để xóa các nút của một tài liệu XML, ta sử dụng biểu thức delete.■ Để đổi tên một phần tử hay một thuộc tính trong tài liệu XML, ta sử dụng biểu thứcrename.

■ Để thay thế một nút đang tồn tại bời một nút mới hoặc một chuỗi các nút, ta sử dụng biểu thức replace. Giá trị thay thế cùa biểu thức chỉ có thể được sử dụng để thay đổi giá trị của một phần tử hay một thuộc tính.

Mệnh đề return trả về kết quả của biểu thức TRANSFORM.

Liệt kê 15.27 đưa ra một ví dụ của câu lệnh UPDATE sử dụng biểu thức TRANSFORM.

(1)— UPDATE customers(2)— SET contactinfo = xmlquery( 'declare default element namespace(3)— "http://posample.org";(4)— transform(5)— copy $newinfo := $c(6)— modify do insert <email2>my2email.gm.com</email2>(7)— as last into $newinfo/customerinfo(8)— return $newinfo' passing contactinfo as "c")(9)— WHERE id = 100Liệt kê 15.27 - Lệnh UPDATE sử dụng biểu thức TRANSFORM

Trong ví dụ trên, các dòng (1), (2) và (9) là các phần trong cú pháp của câu lệnh SQL UPDATE. Trong dòng (2), hàm XMLQUERY được gọi, hàm này sẽ gọi tới biểu thức chuyển đổi ở dòng (4). Đoạn mã của biểu thức chuyển đổi nằm từ dòng (4) tới dòng (8), và nó được sử dụng để chèn một nút mới chứa phần tử e m a il2 vào tài liệu XML. Chú ý rằng việc cập nhật các phần tử trong tài liệu XML thông qua một khung nhìn (view) không được hỗ trợ.

Page 281: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 15 - DB2 pureXML 281

Việc xóa toàn bộ các tài liệu XML từ các bảng cũng tương tự như khi sử dụng câu lệnh SELECT trong SQƯXML. Bạn sử dụng lệnh SQL DELETE và chỉ ra các điều kiện cần thiết trong mệnh đề WHERE.

15.3.9 Đánh chì mục XMLTrong tài liệu XML, các chỉ mục có thể được tạo cho các phần tử, các thuộc tính, hoặc cho các giá trị (text node - các nút văn bản). Dưới đây là một số ví dụ. Giả sử rằng ta đã tạo ra bảng sau:

CREATE TABLE customer(info XML)

Và giả sử tài liệu XML trong Liệt kê 15.28 là một trong các tài liệu được lưu trong bảng đó.

<customerinfo Cid="1004"><name>Matt Foreman</name><addr country="Canada">

<street>1596 Baseline</street><city>Toronto</city><state>Ontario</state><pcode>M3Z-5H9</pcode>

</ađdr><phone type="work">905-555-4789</phone><phone type="home">416-555-337 6</phone><assistant>

<name>Peter Smith</name><phone type="home">416-555-342 6</phone>

</assistant></customerinfo>Liệt kê 15.28 - Tài liệu XML sử dụng trong các ví dụ liên quan tới các chì mục XMLCâu lệnh trong Liệt kê 15.29 tạo ra một chỉ mục cho thuộc tính C id .

CREATE UNIQUE INDEX idxl ON customer(info)GENERATE KEY USING xmlpattern '/customerinfo/0Cid'AS sql DOUBLE

Liệt kê 15.29 - Một chỉ mục cho thuộc tính CidCâu lệnh trong Liệt kê 15.30 tạo ra một chỉ mục cho phần tử name.CREATE INDEX idx2 ON customer(info)

GENERATE KEY USING xmlpattern '/customerinfo/naree'AS sql VARCHAR(40)

Liệt kê 15.30 - Một chỉ mục cho phần tử nameCâu lệnh trong Liệt kê 15.31 tạo một chỉ mục cho tất cả các phần tử name.

Page 282: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

282 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

CREATE INDEX idx3 ON customer(info)GENERATE KEY USING xmlpattern '//name'AS sql VARCHAR(40);

Liệt kê 15.31 - Một chỉ mục cho tất cả các phần tử nameCâu lệnh trong Liệt kê 15.32 tạo ra một chỉ mục cho tất cả các nút văn bản (tất cả các giá trị). Chúng tôi khuyến cáo bạn không nên làm như vậy, vì sẽ mất rất nhiều chi phí cho việc duy trì chỉ mục cho các thao tác update, delete, insert và chỉ mục có thể quá lớn.

CREATE INDEX idxl ON customer(info)GENERATE KEY USING xmlpattern '//textO'AS sql VARCHAR(40);

Liệt kê 15.32 - Tạo chỉ mục cho tất cả các nút văn bản (không khuyến cáo)15.4 Làm việc với lược đồ XML

DB2 cho phép bạn chèn một tài liệu XML vào cơ sở dữ liệu nếu nó tuân theo định dạng đúng (well-formed). Nếu không, bạn sẽ nhận được một lỗi tại thời điểm chèn. Mặt khác, DB2 không đòi hỏi bạn phải kiểm tra tính hợp lệ của tài liệu XML. Nếu bạn muốn kiểm tra, bạn có thể thực hiện một số phương án thay thế mà chúng ta sẽ thảo luận trong phần này.

15.4.1 Đăng kí lược đồ XMLCác lược đồ XML (XML Schemas) được lưu trong các cơ sở dữ liệu DB2, trong kho lược đồ XML (XML Schema repository). Để thêm một lược đồ XML vào kho, bạn sử dụng lệnhREG ISTER XMLSCHEMA.

Ví dụ, giả sử bạn có một tài liệu XML được lưu trong tập tin order. xml như Hình 15.10.

Page 283: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 15 - DB2 pureXML 283

<?xml version=nl.0" encoding="UTF-8”?><po:PurchaseOrder xmlns:po="http:/ / W W W .test.com/po">

<Header>< Id > l< /Id ><date>2Q04-01-29</date><description>purchase order</description><value>20</value><3tatus>3hĩpped</3tatu3>

</Header><Items>

<Item><IcemDescription color=nredn weight="5">

<Name>Widget C</Name><SKU>1</SKO><Price>30</Price><Comment>no corarnent</Commeno

</ItemDe3cription><NumberOrdered>l</NumberOrdered>

</Icem></Items><Customer type="regualar">

<Name>Manoj K Sardana</Name><Addres3>ring road, bangalore</Address> <Phone>918051055109</Phone><email>msar dana@in. ibm. coitK/email>

</Cu3Comer></po:PurchaseOrder>

Hình 15.10 - Tập tin order.xml chứa một tài liệu XMLBây giờ, giả sử bạn có một lược đồ XML được lưu trong tập tin order .xsd như Hình 15.11.

Page 284: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

284 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

cj0tsd:schema xmlns:xsd""http://www.w3.org/2001/XMLS~1-— *■"T ai-qctHaae3paoc»"hccpi//www. teat ■ lum/lSo"-- xmlns:po“"http://www.test.com/po" xnslr.s: head“"http: //www. test. com/header" xmlns:prod = "http://www.test.com/product" xmlns:cust “ "http://www.test.com/customer">

<xsd:complexType><xsd:sequence><xsd:element narae="ItemDe3cription" type="prod:prodType" /> <x3d:element name”"NumberOrdered" type“"xsd:integer" />

</xsd:sequence></xsd:complexType>

</xsd:element></xsd:sequence></xsd:conplexType>

<xsd:complexType naiae_"potype"><xsd:sequence>

<xsd:element name="Header" type="head:headerType" /><xsd:element name="Iteras" tyFe="po:iteraXype" /><x3d:element name="Custonser" tyF«="cust:customerType" />

</xsd:sequence></xsd:complexType>

<xsd:element r.arae=”PurchaseOrder" type="po:potype" />

</xsd:schema>Hình 15.11 - Tập tin order.xsd chứa lược đồ XML

Trong tài liệu lược đồ XML này, chúng ta chú ý đến các vùng được đánh dấu bởi các vòng e-lip:

■ <xsd:schema ...>: chỉ ra rằng đây là tài liệu lược đồ XML.

■ <xsd:import ...>: nhập các tập tin xsd khác (các lược đồ XML khác) đóng vai trò là các thành phần của lược đồ lớn hơn này.

■ minOccurs=“1”: ví dụ về một quy tắc trong lư ợ c đồ XML, theo đó, phần tử Ite m phải xuất hiện ít nhất một lần, hay nói cách khác, phải có ít nhất một phần tử Item .

Tiếp đó, để đăng kí lược đồ XML vào cơ sở dữ liệu, bạn sử dụng đoạn kịch bản tương tự như trong Liệt kê 15.33 dưới đây. Kịch bản này có các ghi chú đi kèm.— CONNECT TO THE DATABASE CONNECT TO SAMPLE;

— REGISTER THE MAIN XML SCHEMAREGISTER XMLSCHEMA http://www.test.com/order FROM D:\example3\order.xsd AS order;

r.4mespace="http://ww.test .com/customer" schemaLocati namespace-"http://www.test.com/header" schemaLocation

xType name="itemType">

: space“"http Ĩ / / WWW.test.com/product" schemaLocatio>

<xsd:sequence><xsd:element name-"Itéra' 'raaxOccurs-"unbounded" >

Page 285: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 15 - DB2 pureXML 285

— ADD XML SCHEMA DOCUMENT TO MAIN SCHEMAADD XMLSCHEMA DOCUMENT TO order ADD http://www.test.com/header FROM D :\example3\header.xsd;

— ADD XML SCHEMA DOCUMENT TO MAIN SCHEMAADD XMLSCHEMA DOCUMENT TO order ADD http://www.test.com/product FROM D :\example3\product.xsd;

-Ann XMT, SCHEMA nOCtTMF.NT TO MATN SCHF.MAADD XMLSCHEMA DOCUMENT TO order ADD http://www.test.com/customer FROM D :\example3\customer.xsd;

— COMPLETE THE SCHEMA REGISTRATION COMPLETE XMLSCHEMA order;

Liệt kê 15.33 - Kịch bản mẫu thể hiện các bước đăng ký một lược đồ XMLĐề xem lại thông tin này về sau, bạn có thể dùng SELECT để lấy thông tin từ các bảng Catalog như trong Liệt kê 15.34 dưới đây.

SELECT CAST (OBJECTSCHEMA AS VARCHAR ( 15 ) ) , CAST (OBJECTNAME AS VARCHAR < 15) ) FROM syscat.xsrobjects WHERE OBJECTNAME='ORDER';

Liệt kê 15.34 - Lấy thông tin lược đồ XML từ các bảng Catalog của DB215.4.2 Kiểm tra tính hợp lệ theo lược đồ XMLKhi bạn đã đăng ký lược đồ XML trên DB2, bạn có thể kiểm tra tính hợp lệ cho tài liệu XML của bạn theo hai cách sau:

■ Sử dụng hàm XMLVALIDATE trong câu lệnh INSERT.

■ Sử dụng một bẫy sự kiện BEFORE.

Hình 15.12 minh họa ví dụ kiểm tra sự hợp lệ của tài liệu XML Hình 15.10 theo lược đồ XML ở Hình 15.11.

Page 286: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

286 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

J K U F l A t ì L t t l ;

ŨREATE TABLE t1 (po xml);

NSERT INTO t1 VALUES(xmlvalidate(xmlparse(đocument('<?xml version="1.0" encoding=,'ƯTF-8',?> <po:purchase0rderxmlns:po="http://www test.com/po">

<Header><lđ>1</ld><đate>2004-01-29</ơate><description>purchase order </description><value>20</Value><status>shipped</status>

</Heađer><ltems>

<ltem>cltemDescription color-'-ed" weĩght=“5">

<Name>Wiđget C<'Name><SKU>1</SKU><Price>30</Price><Comment>no comment</Comment>

</ltemDescription><NumberOrdered>1 </NumberOrdered>

</ltem></ltems>«Customer type="regular“>

<Name>Manoj K Sardana<'Name><Adcfress>ring road, bangalore</Address><Phone>918051055109</Fhone><email>[email protected]</email>

</Customer></po:PurchaseOrder>')) ACCORDING TO XMLSCHEMA ID order));

Hình 15.12 - Kiểm tra tính hợp lệ theo lược đồ XML sử dụng XMLVALIDATEĐể kiểm tra một tài liệu XML có hợp lệ hay không, bạn có thể sử dụng vị từ IS VALIDATED trong ràng buộc CHECK.

Bạn có thể kiểm tra tính hợp lệ cho các tài liệu XML trong một cột sử dụng nhiều lược đồ XML khác nhau. Điều này có ý nghĩa quan trọng trong sự chuyển đổi dễ dàng của một lược đồ XML từ phiên bản 1 sang phiên bản 2. Trong cùng một cột XML, bạn cũng có thể tìm thấy những tài liệu XML không hề được kiểm tra tính hợp lệ. Điều này rất hữu dụng nếu các tài liệu được nhận từ những nguồn đáng tin cậy và cả những nguồn không đáng tin cậy, trong khi chỉ các bước xử lý sau đó mới cần kiểm tra tính hợp lệ của các tài liệu này theo lược đồ.

15.4.3 Các hỗ trợ XML khácCác tài liệu XML nhỏ có thể được lưu trực tiếp cùng với bảng cơ sở. Điều này có nghĩa là dữ liệu XML được lưu trữ trong cùng vị trí như các dữ liệu quan hệ, và có thề tận dụng các

Page 287: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Chương 15 - DB2 pureXML 287

V9.7

cơ chế nén tương tự như với dữ liệu quan hệ chuẩn. Các tài liệu XML iớn được lưu trữ trong đối tượng nội bộ riêng biệt, và đối tượng này cũng có thể được nén.

DB2 cũng hỗ trợ tiến hóa lược đồ XML. Điều này có nghĩa là: nếu lược đồ XML của bạn thay đổi, bạn có thể cập nhật dễ dàng với lệnh UPDATE XMLSCHEMA. Nếu những thay đổi tới lược đồ XML quá mạnh, bạn có thể nhận được một số lỗi.

Trong DB2, sự phân rã XML (XML decomposition / shredding) cũng được hỗ trợ. Đây là phương pháp "cũ" để lưu trữ XML trong các cơ sở dữ liệu, và cũng là cách mà các nhà cung cấp khác sử dụng để lưu trữ XML. DB2 vẫn hỗ trợ phương pháp này nếu bạn muốn sứ dụng, nhưng chúng tôi khuyên bạn nên sử dụng pureXML. DB2 cũng hỗ trợ mớ rộng XML (XML Extender), và cũng sử dụng phương pháp cũ để lưu trữ XML, nhưng mờ rộng này sẽ không còn được cải tiến nữa.

Với DB2 9.7, tất cả các ích lợi của pureXML đã được mở rộng đến các phân vùng cơ sở dữ liệu thường sử dụng cho kho dữ liệu. Chức năng phân vùng cơ sở dữ liệu (Database Partitioning Feature - DPF) được cung cấp trong phiên bản DB2 Enterprise Edition.

15.5 Tóm tắtChương này giới thiệu về XML và công nghệ pureXML. Việc sử dụng tài liệu XML đang tăng lên theo cấp số nhân với các công cụ Web 2.0 và các công nghệ như SOA. Bằng cách lưu trữ tài liệu XML trong cơ sở dữ liệu DB2, bạn có thể tận dụng lợi thế bảo mật, lợi thế về hiệu năng hoạt động cũng như lập trình linh hoạt bằng việc sử dụng pureXML. pureXML là một công nghệ cho phép bạn lưu trữ các tài liệu XML theo định dạng phân tích phân cấp, như một cây, và điều này được thực hiện ngay tại thời điểm chèn cơ sở dữ liệu. Tại thời gian truy vấn, không cần phân tích các tài liệu XML để xây dựng cây trước khi xử lý. Cây cho các tài liệu XML đã được xây dựng và được lưu giữ trong cơ sở dữ liệu. Ngoài ra, công nghệ pureXML sử dụng một cơ cấu XML thuần có thể hiểu XQuery; vì vậy, không cần ánh xạ XQuery sang SQL như các sản phẩm hệ quản trị cơ sở dữ liệu quan hệ khác.

Chương này cũng đề cập đến cách chèn, xóa, cập nhật và truy vấn các tài liệu XML bằng cách sử dụng SQƯXML và XQuery. Ngoài ra, chương còn thảo luận về các chỉ mục XML, lược đồ XML, và các tính năng khác như nén và tiến hóa lược đồ XML.

15.6 Bài tậpTrong suốt chương này, bạn đã biết một số ví dụ về cú pháp của SQƯXML, của XQuery, và chúng đã được giới thiệu trong trình soạn thảo lệnh DB2 Command Editor và IBM DB2 Data Studio. Bài tập này sẽ kiềm tra Kiến thức SQUXML và XQuery cúa bạn trong khi tiếp thu kinh nghiệm sử dụng những công cụ này. Chúng ta sẽ sử dụng cơ sờ dữ liệu mydb đã được tạo bằng tập tin kịch bản table_creation .txt đã được giải thích trước trong chương này (Danh sách 15.5).

Thủ tuc

1. Tạo cơ sở dữ liệu mydb và nạp dữ liệu XML, như được thảo luận từ trước, trong chương này. Tập tin table_creation.txt nằm trong tập tin

Page 288: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

288 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

Expressc_book_exercises_9.7. zip thuộc thư mục Chương 2. Chạy tập tin kịch bản table_creation.txt từ cửa sổ lệnh DB2 hoặc Linux Shell như sau:

db2 -tvf table_creation.txt

2. Nếu kịch bản không thành công ở bước nào đó, hãy cố gắng tìm ra vấn đề bằng cách xem các thông báo lỗi. Một vấn đề điển hình khi chạy kịch bản là bạn có thể cần phải thay đổi các đường dẫn của các tập tin, vì chúng có thể nằm trong các thư mục khác nhau. Bạn luôn có thể xóa toàn bộ cơ sở dữ liệu và bắt đầu lại bằng việc thực hiện lệnh sau từ cửa sổ lệnh DB2 hoặc Linux Shell:

db2 drop database mydb

3. Nếu xuất hiện lỗi khi bạn đang cố gắng xóa cơ sở dữ liệu do các kết nối đang hoạt động, hãy thực hiện câu lệnh này trước:

đb2 force applications all

4. Sau khi chạy thành công kịch bản, bạn hãy sử dụng DB2 Control Center, hoặc IBM Data Studio để xác minh rằng các bảng items và clients đã được tạo với số hàng tương ứng là 4 và 7 hàng.

5. Với cơ sở dữ liệu mydb đã được tạo và với hai bảng đã được nạp, bây giờ bạn có thể kết nối đến cơ sở dữ liệu, và thực hiện các truy vấn trong các liệt kê, từ Liệt kê 75.7 đến 5.19.

Page 289: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

APhu lue A - Khac phuc su5 co ■ ■ ■ ■ ■

Phu lue này thào luân vè viêc làm thé nào dé khâc phuc câc sir cô co thé gap phài khi viêc vâi DB2. Hînh A. 1 cho ta mot câi nhîn tong quan vè câc hành dông nên thyc hiên co van dé phât sinh. ___________________

db2 ? <code>

Review Administration Notification Log

Review db2diag.log

Review system with Operating System

commands

Search for APARs, or known problems

Collect Traces, dumps, trap files, core files and contact IBM DB2 Tech

Support

Hinh A.1 - Tong quan vè khac phuc su> coChü ÿ:Ban co the tham khào video sau dé biét thêm thông tin vè viêc khac phuc slp co: httD://www.channeldb2.com/video/video/show?id=807741 :Video:4462

Page 290: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

290 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

A.1 Tim thêm thông tin về các mã lỗiĐể có thêm thông tin về một mã lỗi gặp phải, bạn nhập mã lỗi cùng với dấu chấm hỏi đi kèm đằng trước vào vùng nhập lệnh của trình soạn thảo lệnh (Command Editor) và nhấp chuột vào Execute. Bạn có thể xem minh họa như trong Hình A.2.

ç&mnjnatíísr ffftrtea E* y*» Teoh HupV. ý 1 5 h u 3 ầ ^ Í 3 Ï

On*, 0*1*1 Ị ấtx—t *1»JL Ị T JUMfnf jr] Aăể Ị G u 4 SQ V ỈS J

Prefix error code bya question mark in ----------

the Input area

1 NUIOM

* NUlSOtl

More informationĨ nooM

about the error code appears in the Output area

» c* ■ -raetr *» « »TT_i(•fiMMtlM!

n to rmr M( f»v*4 that BMtt tfc* WMC> «MÉ1IUM (fattfMl u M KTI'âTT a« Ptun »* IUWM .

miÊBMiummuìs/ituí** f

Hình A.2 - Tìm thêm thông tin về các mã lỗi của DB2Dấu chấm hỏi (?) sẽ gọi đến trình trợ giúp của DB2. Dưới đây là một số ví dụ về việc làm thế nào để gọi trình trợ giúp, chẳng hạn khi bạn gặp mã lỗi SQL “-104”, trong đó các ví dụlà tương đương:

db2 ? SQL0104Ndb2 ? SQL104Ndb2 ? SQL-0104db2 ? SQL-104db2 ? SQL-104N

A.2 SQLCODE và SQLSTATESQLCODE là mã nhận được sau khi thực thi mỗi câu lệnh SQL. Ý nghĩa các giá trị của SQLCODE được tóm tắt như sau:

■ SQLCODE = 0; câu lệnh thực hiện thành công

■ SQLCODE > 0; câu lệnh thực hiện thành công, nhưng trả về một cảnh báo

■ SQLCODE < 0; câu lệnh thực hiện không thành công và trả về một lỗi

SQLSTATE là một chuỗi gồm năm ký tự theo chuẩn ISO/ANSI SQL92. Hai ký tự đầu tiên được gọi là mã lớp SQLSTATE:

Page 291: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Phụ lục A - Khắc phục sự cố 291

■ Mã lớp là 00 nghĩa là câu lệnh đã thực hiện thành công

■ Mã lớp là 01 nghĩa là có một cảnh báo

■ Mã lớp là 02 nghĩa là không tìm thấy điều kiện

■ Tất cả các mã lớp khác được xem như có lỗi

A.3 Nhật ký thông báo quản trị DB2Nhật ký thông báo quản trị DB2 cung cấp thông tin chẩn đoán về các lỗi tại điểm phát sinh lỗl. Trên môi trường Linux và UNIX, nhật ký thông báo quản trị là một tập tin văn bản dạng <tên thể hiện>.nfy (ví dụ “db2inst.nfy”). Trên Windows, tất cả các thông báo quản trị được ghi vào Windows Event Log.

Tham số cấu hình DBM notifylevel cho phép người quản trị xác định mức độ thông tin được ghi lại:

■ 0 - Không có thông báo quản trị nào được giữ lại (không khuyến khích)

■ 1 - Các lỗi nghiêm trọng hoặc không thể phục hồi

■ 2 - Yêu cầu thực hiện hành động ngay lập tức

■ 3 - Thông tin quan trọng, nhưng không yêu cầu thực hiện hành động ngay lập tức (mặc định)

■ 4 - Các thông điệp

A.4 db2diag.logDb2diag.log cung cấp thông tin chi tiết hơn nhật ký thông báo quản trị DB2. Thông thường nó chỉ được sử dụng bởi người hỗ trợ kỹ thuật IBM DB2 hay nhà quản trị cơ sở dữ liệu có kinh nghiệm. Thông tin trong db2diag.log bao gồm:

■ Vị trí mã DB2 phát sinh lỗi.

■ Các thông tin nhận dạng ứng dụng cho phép bạn có thể kết nối các mục của các ứng dụng trong các tập tin db2diag.log trên máy chủ và máy trạm.

■ Một thông điệp chuẩn đoán (bắt đầu với “DIA”) giải thích nguyên nhân gây lỗi.

■ Các dữ liệu hỗ trợ sẵn có, như cấu trúc dữ liệu SQLCA và con trỏ đến vị trí của kết xuất hoặc tệp bẫy.

Trên Windows (trừ Vista), mặc định, db2diag.log được đặt trong thư mục:

C:\Documents and Settings\All Users\Application Data\IBM\DB2\DB2COPYl\<instance name>

Trên Windows Vista, db2diag.log được đặt trong:

Page 292: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

292 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

C:\ProgramData\IBM\DB2\DB2COPYl\<instance name>

Trên Linux/UNIX:

/home/<instance_owner>/sqllib/db2dump

Tính đầy đủ của văn bản chuẩn đoán được xác định bời tham số cấu hình dbm cfg, là DIAGLEVEL. Mức độ từ 0 đến 4, trong đó 0 là đơn giản nhất, 4 là đầy đủ nhất. Mức mặc định là 3.

A.5 Theo vết CLIVới các ứng dụng CLI, Java, PHP, và Ruby on Rails, bạn có thể bật tiện ích theo vết CLI để khắc phục sự cố cho ứng dụng của bạn. Điều này có thể được thực hiện bằng cách thay đổi tập tin db2cli.ini ờ máy chủ mà ứng dụng của bạn đang chạy, như minh họa ở Liệt kê A. 1 dưới đây:

[common]trace=0tracerefreshinterval=300tracepathname=/path/to/writeable/directory traceflush=lLiệt kê A.1 - Các dòng trong tập tin db2cli.ini cho phép bật tiện ích theo vết CLITiện ích theo vết mức thấp (db2trc) cũng được cung cấp sẵn, nhưng thường chỉ hữu dụng cho người hỗ trự kỹ thuật DB2.

A.6 Khiếm khuyết và sửa lỗi trong DB2

Đôi khi vấn đề bạn gặp phải có thể là do một khiếm khuyết của DB2. IBM đều đặn phát hành các gói vá lỗi để sửa chữa những khiếm khuyết đó (APARs). Trong tài liệu của bản vá lỗi có chứa danh sách những khiếm khuyết mà nó sửa chữa được. Khi phát triển các ứng dụng mới, chúng tôi luôn khuyên bạn nên sử dụng bản vá lỗi mới nhất. Để xem phiên bản hiện tại của bạn và phiên bản của bản vá lỗi: từ Control Center, chọn About từ trình đơn Help; hoặc từ cửa sổ lệnh (Command Window), bạn gõ d b 2 le v e l. Lưu ý rằng các gói vá lỗi và các hỗ trợ kỹ thuật chính thức của IBM DB2 không được cung cấp đi kèm với DB2 Express-C. Với DB2 Express-C, các vá lỗi được hợp nhất vào chính tập tin cài đặt chứ không được đính kèm như các oói vá lỗi rời nữa.

Page 293: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

BPhụ lục B - Tham khảo và Tài nguyênB.1 Tham khảo[1] ZIKOPOULOS, P. IBM® DB2® Universal Database™ and the Microsoft® Excel Application Developer... for Beginners, dbazine.com article, Tháng 4 năm 2005

http://www.dbazine.com/db2/db2-disarticies/zikopouios15

[2] ZIKOPOULOS, P. DB2 9 and Microsoft Access 2007 Part 1: Getting the Data..., Database Journal article, Tháng 5 năm 2008

http://www.databaseiournal.com/features/db2/article.phD/3741221

[3] BHOGAL, K. Use Microsoft Access to interact with your DB2 data, developerWorks article, Tháng 5 năm 2006

http://www.ibm.com/developerworks/db2/librarv/techarticle/dm-06Q5bhoaal/

[4] SARACCO, c. et all. IBM Redbook DB2 9: pureXML overview and fast start

Tháng 7 năm 2006

http://www.redbooks.ibm.com/abstracts/sa247298.html

B.2 Các trang Web:

1. Trang Web chính thức của DB2 Express-C: www.ibm.com/db2/express

Bạn có thể tải về các tập tin cài đặt cho máy chủ DB2 Express-C, máy trạm DB2, các trình điều khiển DB2, tài liệu hướng dẫn sử dụng, bạn cũng có thể truy cập blog của nhóm phát triển DB2, đăng ký để nhận email...

2. Diễn đàn DB2 Express:www.ibm.com/developerworks/forums/dw forum.ịsp?forum=805&cat=19

Bạn có thể sử dụng diễn đàn này để đăng các câu hỏi về kỹ thuật khí bạn không thể tự tìm thấy câu trả lời trong các tài liệu hướng dẫn.

Page 294: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

294 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

3. Trung tâm Thông tin DB2

Trung tâm thông tin giúp bạn truy cập đến nguồn tài liệu hướng dẫn trực tuyến. Đây là nguồn tài nguyên được cập nhật thường xuyên nhất. Mỗi phiên bản của DB2 có một Trung tâm Thông tin DB2 tương ứng:

■ DB2 9.1: http://Dublib.boulder.ibm.com/infocenter/db2luw/v9/index.isD

■ DB2 9.5: http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.isp

■ DB2 9.7: http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.isD

4. developerWorks: http://www.ibm.com/developerworks/db2

Trang Web này là một nguồn tài nguyên tuyệt vời cho các nhà phát triển và các nhà quản trị cơ sở dữ liệu, ỏ' đây, họ có thể tìm thấy các bài báo, bài hướng dẫn... hoàn toàn miễn phí.

5. alphaWorks: http://www.alphaworks.ibm.com/

Trang Web này cho phép bạn truy cập trực tiếp vào các công nghệ nổi trội của IBM. Đây là nơi bạn có thể tìm thấy những công nghệ mới nhất từ Phòng nguyên cứu của IBM.

6. planetDB2: www.planetDB2.com

Đây là nơi tập hợp nhiều blog của những người viết về DB2.

7. Hỗ trợ kỹ thuật DB2: http://www.ibm.com/software/data/db2/suDPort/db2 9/

Bạn có thể tìm thấy những khiếm khuyết và báo cáo về các vấn đề gặp phải của DB2 (APARs) cùng với các thông tin kỹ thuật khác...

8. ChannelDB2: http://www.ChannelDB2.com/

ChannelDB2 là một mạng xã hội của cộng đồng DB2. Nó cung cấp các tiện ích như: các video, demo, podcast, blog, các cuộc thảo luận, tài nguyên... về DB2, dành cho Linux, UNIX, Windows, zJOS, và Í5/0S.

Page 295: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

Phụ lục B -T h a m khảo và Tài nguyên 295

B.3 Sách1. Free Redbook: DB2 Express-C: The Developer Handbook for XML, PHP, C/C++,

Java, and .NETWhei-Jen Chen, John Chun, Naomi Ngan, Rakesh Ranjan, Manoj K. Sardana, Tháng 8 năm 2006 - SG24-7301-00 http://www.redbooks.ibm.com/abstracts/sq247301 .html?Open

2. Free Redbook: DB2 pureXML GuideWhei-Jen Chen, Art Sammartino, Dobromir Goutev, Felicity Hendricks, Ippei Komi, Ming-Pang Wei, Rav Ahuja, Matthias Nicola.Tháng 8 năm 2007http://www.redbooks.ibm.com/abstracts/sq247315.html70pen

3. Free Redbook: Developing PHP Applications for IBM Data ServersWhei-Jen Chen, Holger Kirstein, Daniel Krook, Kiran H Nair, Piotr Pietrzak Tháng 5 năm 2006 - SG24-7218-00http://www.redbooks.ibm.com/abstracts/sq247218.html70pen

4. Understanding DB2 - Learning Visually with Examples V9.5 Raul F. Chong, et all.Tháng 1 năm 2008 ISBN-10: 0131580183

5. DB2® SQL PL: Essential Guide for DB2® UDB on Linux™, UNIX®, Windows™, Í5/OS™, and z/os®, 2nd EditionZamil Janmohamed, Clara Liu, Drew Bradstock, Raul Chong, Michael Gao, Fraser McArthur, Paul Yip ISBN: 0-13-100772-6

6. DB2 9: pureXML overview and fast startCynthia M. Saracco, Don Chamberlin, Rav Ahuja Tháng 6 năm 2006 SG24-7298http://wvw.redbooks.ibm.com/abstracts/sq247298.html7Qpen

7. Information on Demand - Introduction to DB2 9 New Features Paul Zikopoulos, George Baklarz, Chris Eaton, Leon Katsnelson ISBN-10: 0071487832 ISBN-13: 978-0071487832

Page 296: N H Ậ P M Ô N DB2 Express-C - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/nhap... · 2 Nhập môn Hệ quản trị cơ sở dữ liệu

296 Nhập môn Hệ quản trị cơ sở dữ liệu DB2

B.4 Email liên hệHộp thư DB2 Express-C (cho những câu hỏi kiểu hành chính): [email protected]

Hộp thư DB2 dành cho các trường Đại học: [email protected]