csdl db2 - slide
TRANSCRIPT
![Page 1: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/1.jpg)
HỆ QUẢN TRỊ CƠ SỞDỮ LIỆU
DB2 EXPRESS – C 9.5
Mai Thanh Trúc (Ma.)
![Page 2: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/2.jpg)
NỘI DUNG
n Phần 1: Tổng quan và cài đặtn Giới thiệu DB2 Express – Cn Tính năng và các sản phẩmn Cài đặt DB2n Môi trường của DB2n Các công cụ của DB2
![Page 3: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/3.jpg)
NỘI DUNG
n Phần 2: Quản trị cơ sở dữ liệun Kiến trúc của DB2n Kết nối máy khách DB2n Làm việc với các đối tượng dữ liệun Di chuyển dữ liệun Bảo mật cơ sở dữ liệun Sao lưu và phục hồin Bảo trìn Truy cập đồng thời và khoá
![Page 4: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/4.jpg)
NỘI DUNG
n Phần 3: Phát triển ứng dụngn Các thủ tục SQL PLn Hàm nội tuyến (Inline SQL PL), Hàm người
dùng tự định nghĩa (UDF), xử lý sự kiện bẫy (Triggers)
n SQL/XML và Xqueryn Phát triển với Ngôn ngữ lập trình
![Page 5: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/5.jpg)
Tham khảo
n Tài nguyên DB2 Express – C tại www.ibm.com/db2/express/
n Tài liệu dành cho người học tập và nghiên cứu tại www.channelDB2.com/oncampus/www.ibm.com/db2/express/students.htmlhttp://www.ibm.com/developerworks/db2/
n Cộng đồng người phát triển ứng dụng Việt Nam tại http://www.ibm.com/developerworks/vn/
![Page 6: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/6.jpg)
Tổng quan và Cài đặt DB2
n DB2 Express-C là gì?n Các tính năng liên quan và các sản phẩmn Cài đặt DB2 Express – Cn Môi trường của DB2n Các công cụ DB2
![Page 7: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/7.jpg)
Tổng quan và Cài đặt DB2
n DB2 Express-C là gì?n Các tính năng liên quan và các sản phẩmn Cài đặt DB2 Express – Cn Môi trường của DB2n Các công cụ DB2
![Page 8: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/8.jpg)
DB2 Express – C là gì?
n Một sản phẩm dòng DB2 của IBMn Ra đời 6/1983, chạy trên máy chủ
(Mainframe) với z/OSn Khoảng giữa những năm 1990, bắt đầu có
DB2 chạy trên các máy Desktopn Hiện nay có DB2 chạy trên z/OS (mainframe),
trên iSeries (AS400 – OS400), trên LUW (Linux, Unix, Windows)
n DB2 9.5 ra đời 1/2006n Phiên bản hiện nay là DB2 9.7
![Page 9: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/9.jpg)
DB2 Express – C là gì?
n DB2 Express – C là ấn bản miễn phí, không giới hạn, dễ sử dụng (C = Community)n Nhà phát triển phần mềm CSDL khách -
chủn ISVs (Independent software vendor) – nhà
cung cấp phần mềm độc lập, cho thuê phần cứng, cung cấp giải pháp
n Các công ty vừa và nhỏn Nghiên cứu, học tập
![Page 10: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/10.jpg)
DB2 Express – C là gì?
n Đầy đủ tính năng cơ trên trên nền hệ điều hành Linux, Unix, Windows
n Chạy trên nền tảng 32 bit hoặc 64 bitn Tối ưu cho bộ xử lý 2 lõi và 2GB RAMn Bao gồm cả pureXML
![Page 11: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/11.jpg)
DB2 Express – C là gì?
n Đặc điểm khi sử dụng DB2 Express – Cn Tự do phát triển: miễn phí khi phát triển các
sản phẩm phần mềm trên hệ quản trị CSDL DB2 Express – C
n Tự do triển khai: miễn phí khi ứng dụng DB2 Express – C vào hoạt động sản xuất kinh doanh
n Tự do phân phối: miễn phí cả khi đóng gói vào một sản phẩm phần mềm khi phân phối
n Không giới hạn: không giới hạn về kích thước CSDL cũng như số lượng kết nối và người sửdụng
![Page 12: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/12.jpg)
DB2 Express – C là gì?
n Máy chủ DB2
![Page 13: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/13.jpg)
DB2 Express – C là gì?
n Máy khách DB2
![Page 14: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/14.jpg)
DB2 Express – C là gì?
n Ngôn ngữ phát triểnRuby trên nền Rails, C/C++(ODBC và SQL nhúng), JDBC và SQLJ, COBOL, Borland, Python, PHP, Perl, Ngôn ngữ .NET, OLE – DB, ADO, Dịch vụ Web (Web Service), SQL, Microsoft Office: Excel, Access, Word
![Page 15: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/15.jpg)
DB2 Express – C là gì?
n Phiên bản (version) và ấn bản (edition) DB2n Phiên bản là bản phát hành được bổ sung
thêm một số tính năng mới và sửa lỗi (8.1 và 8.2 là 2 lần phát hành của DB2 8)
n Ấn bản là những gói sản phẩm với chức năng khác nhau (phiên bản DB2 9.5 cócác ấn bản DB2 Express – C, DB2 Express, DB2 Workgroup, DB2 Enterprise)
![Page 16: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/16.jpg)
DB2 Express – C là gì?
n Chuyển sang ấn bản khácn Nâng cấp lên ấn bản khác trên cùng một
máy tính, chỉ cần cài đè ấn bản mới lên trên DB2 Express – C (sao lưu dữ liệu trước khi thực hiện)
n Nâng cấp lên một máy mới, sử dụng chung hệ điều hành với máy cũ chỉ cần cài ấn bản trên máy tính mới, sao lưu dữ liệu trên máy tính cũ, và khôi phục lại nó trên máy mới
![Page 17: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/17.jpg)
DB2 Express – C là gì?
n Hỗ trợ kỹ thuậtn Bản quyền 12 thángn Hỗ trợ kỹ thuật từ cộng đồng
![Page 18: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/18.jpg)
DB2 Express – C là gì?
n Một số phần mềm miễn phí liên quann Bộ công cụ phát triển IBM Data Studion Máy chủ nhúng DB2 9 Embedded Application
Servern Mở rộng tìm kiếm DB2 9.5 Net Search
Extendern Hỗ trợ phát triển ứng dụng Web (Ruby on
Rails, Web 2.0 Starter Toolkit for IBM DB2)
![Page 19: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/19.jpg)
![Page 20: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/20.jpg)
Tổng quan và Cài đặt DB2
n DB2 Express-C là gì?n Các tính năng liên quan và các sản phẩmn Cài đặt DB2 Express – Cn Môi trường của DB2n Các công cụ DB2
![Page 21: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/21.jpg)
Các tính năng của sản phẩm
n Chức năng DB2 Express – C (miễn phí)n Nhân của DB2n Trung tâm điều khiển (Control Center), Data
Studio, và các công cụ quản trịn pureXMLn 2GB bộ nhớ và 2 bộ vi xử lýn Linux, Windows và Solaris (x86)
![Page 22: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/22.jpg)
Các tính năng của sản phẩm
n Chức năng DB2 (có phí)
![Page 23: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/23.jpg)
![Page 24: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/24.jpg)
Tổng quan và Cài đặt DB2
n DB2 Express-C là gì?n Các tính năng liên quan và các sản phẩmn Cài đặt DB2 Express – Cn Môi trường của DB2n Các công cụ DB2
![Page 25: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/25.jpg)
Cài đặt DB2 Express – C
n Điều kiện trước khi cài đặtn Hệ điều hành Linux, Solaris (x86), Windows
(2000, 2003, XP, Vista)n Vi xử lý 32bit, 64bit, PowerPC (Linux)n Sử dụng tối đa 2 CPU, 2GB RAM (4 CPU,
4GB RAM cho phí bản quyền 12 tháng)n Quyền cài đặt trên hệ điều hành (Root trên
Linux, nhóm quản trị hoặc có quyền cài đặt trên Windows)
![Page 26: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/26.jpg)
Cài đặt DB2 Express – C
n Hướng dẫn cài đặt từng bướcn Windows: chạy SETUP.EXE trong EXPn Linux: chạy db2setup trong EXP
![Page 27: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/27.jpg)
Cài đặt DB2 Express – C
n Hướng dẫn cài đặt từng bước
![Page 28: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/28.jpg)
Cài đặt DB2 Express – C
n Hướng dẫn cài đặt từng bước
![Page 29: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/29.jpg)
Cài đặt DB2 Express – C
n Hướng dẫn cài đặt từng bước
![Page 30: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/30.jpg)
Cài đặt DB2 Express – C
n Hướng dẫn cài đặt từng bước
![Page 31: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/31.jpg)
Cài đặt DB2 Express – C
n Hướng dẫn cài đặt từng bước
![Page 32: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/32.jpg)
Cài đặt DB2 Express – C
n Ví dụ: Cài đặt một máy chủ DB2 trên hệ điều hành Windows và tạo CSDL mẫu
![Page 33: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/33.jpg)
![Page 34: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/34.jpg)
Tổng quan và Cài đặt DB2
n DB2 Express-C là gì?n Các tính năng liên quan và các sản phẩmn Cài đặt DB2 Express – Cn Môi trường của DB2n Các công cụ DB2
![Page 35: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/35.jpg)
Môi trường của DB2 Express – C
n Giới thiệu
![Page 36: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/36.jpg)
Môi trường của DB2 Express – C
n Các thể hiện (Instances)
![Page 37: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/37.jpg)
Môi trường của DB2 Express – C
n Các thể hiện (Instances)
![Page 38: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/38.jpg)
Môi trường của DB2 Express – C
n Các thể hiện (Instances)
![Page 39: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/39.jpg)
Môi trường của DB2 Express – C
n Các thể hiện (Instances)n Tạo một Instance
n db2icrt <tên thể hiện>n Chuyển đổi giữa các Instance
n set db2instance = <tên thể hiện>n Linux: chuyển người sử dụng bằng su
n Hiển thị danh sách các instance trên Servern db2ilist
n Hiển thị instance hiện tạin db2 get instance
![Page 40: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/40.jpg)
Môi trường của DB2 Express – C
n Các thể hiện (Instances)
Liệt kê các thể hiện đang hoạt động
db2 get instance
Liệt kê các thể hiện đang cótrong hệ thống
db2ilistLoại bỏ một thể hiểndb2idropTạo một thể hiển mớidb2icrtDừng thể hiện hiện tạidb2stopKhởi động thể hiện hiện tạidb2start
![Page 41: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/41.jpg)
Môi trường của DB2 Express – C
n Các cơ sở dữ liệu (Databases)
![Page 42: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/42.jpg)
Môi trường của DB2 Express – C
n Các cơ sở dữ liệu (Databases)n Tạo CSDL trong một instance
n db2 create database mybd1n Hiển thị danh sách các CSDL trong instance
n db2 list db directoryn Một số lệnh làm việc với database
Kết nối đến một CSDLdb2 connect to <database name>
Xoá một CSDLdb2 drop databaseTạo một CSDL mớidb2 create database
![Page 43: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/43.jpg)
Môi trường của DB2 Express – C
n Các cơ sở dữ liệu (Databases)
![Page 44: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/44.jpg)
Môi trường của DB2 Express – C
n Các cơ sở dữ liệu (Databases)n Tạo một CSDL trên instance khác
n db2 list db directory n set db2instance=myinst n db2 create database mydb1 n set db2instance=db2
n Sử dụng Control Center
![Page 45: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/45.jpg)
Môi trường của DB2 Express – C
n Không gian bảng trong CSDL
![Page 46: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/46.jpg)
Môi trường của DB2 Express – C
n Không gian bảng trong CSDL
![Page 47: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/47.jpg)
Môi trường của DB2 Express – C
n Không gian bảng trong CSDLn SYSCATSPACE: nơi chứa các bảng danh
mục (catalog)n TEMPSPACE1: được sử dụng khi cần thêm
không gian để xử lý thao tác (như sắp xếp)n USERSPACE1: được sử dụng để lưu trữ các
bảng CSDL người dùng khi không có không gian riêng để lưu trữ nó.
n IBMDEFAULTBP: vùng đệm dữ liệun LOGS: tệp nhật lý dùng để phục hồi dữ liệu
![Page 48: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/48.jpg)
Môi trường của DB2 Express – C
n Không gian bảng trong CSDL
![Page 49: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/49.jpg)
Môi trường của DB2 Express – C
n Cấu hình DB2n Các biến môi trườngn Tệp cấu hình quản
trị CSDL (dbm cfg)n Tệp cấu hình CSDL
(db cfg)n Đăng ký lý lịch DB2
![Page 50: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/50.jpg)
Môi trường của DB2 Express – C
n Cấu hình DB2n Các biến môi trường
là biến được thiết lập ở hệ điều hành, là một DB2INSTANCE.
n Ví dụ:n set db2instance =
myinst
![Page 51: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/51.jpg)
Môi trường của DB2 Express – C
n Cấu hình DB2n Tệp cấu hình quản
trị CSDL (dbm cfg) gồm các tham số liên quan đến thểhiện và các CSDL trong đó.
n Có thể cấu hình bằng dòng lệnh hoặc Control Center
![Page 52: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/52.jpg)
Môi trường của DB2 Express – C
n Cấu hình DB2n Xem nội dung tệp
cấu hìnhn get dbm cfg
n Cập nhật tệp cấu hình
n update dbm cfg using <para> <val>
n update dbm cfg using DFTDBPATH D:
![Page 53: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/53.jpg)
Môi trường của DB2 Express – C
n Cấu hình DB2
![Page 54: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/54.jpg)
Môi trường của DB2 Express – C
n Cấu hình DB2n Tệp cấu hình CSDL
(db cfg) gồm các tham số tác động đến từng CSDL
n Có thể cấu hình bằng dòng lệnh hoặc Control Center
![Page 55: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/55.jpg)
Môi trường của DB2 Express – C
n Cấu hình DB2n Xem nội dung tệp
cấu hìnhn get db cfgn get db cfg for <db>
n Cập nhật tệp cấu hình
n update db cfg for <db> using <para> <value>
n update db cfg for sample using DLCHKTIME 10000
![Page 56: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/56.jpg)
Môi trường của DB2 Express – C
n Cấu hình DB2
![Page 57: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/57.jpg)
Môi trường của DB2 Express – C
n Cấu hình DB2n Đăng ký lý lịch DB2
(profile) bao gồm các tham số có thểtrên một nền cụ thểvà có thể thiết lập thành toàn cục (ảnh hưởng tất cả các thể hiện) hoặc từng lớp thể hiện (ảnh hưởng riêng từng thể hiện)
![Page 58: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/58.jpg)
Môi trường của DB2 Express – C
n Cấu hình DB2n Một số lệnh điều khiển các biến đăng ký lý lịch
DB2
Thiết lập giá trị cho một tham số
db2set <para> = <val>
Liệt kê tất cả các biến đăng ký lý lịch DB2
db2set –lr
Liệt kê tất cả các biến đăng ký lý lịch DB2 hiện tại được thiết lập
db2set –all
![Page 59: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/59.jpg)
Môi trường của DB2 Express – C
n Cấu hình DB2n Một số biến đăng ký lý lịch DB2 thường dùng
Lưu trữ tên của bản sao DB2 hiện đang sử dụng
DB2_COPY_NAME
Ngăn chặn những người chưa được định danh kết nối với DB2 (Windows)
DB2_EXTSECURITY
Chỉ định giao thức được khởi động khi công cụ quản trị CSDL được khởi động
DB2COMM
![Page 60: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/60.jpg)
Môi trường của DB2 Express – C
n Máy chủ quản trị DB2 (DAS)n Là tiến trình nền chạy trên máy chủ DB2 cho
phép các máy khách quản trị máy chủ DB2 qua giao diện đồ hoạ
n Chỉ có một DAS cho tất cả các instancen Được tạo lúc cài đặt DB2n Một số lệnh
n db2admin create / db2admin dropn db2admin start / db2admin stop
![Page 61: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/61.jpg)
Môi trường của DB2 Express – C
n Máy chủ quản trị DB2 (DAS)
![Page 62: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/62.jpg)
![Page 63: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/63.jpg)
Tổng quan và Cài đặt DB2
n DB2 Express-C là gì?n Các tính năng liên quan và các sản phẩmn Cài đặt DB2 Express – Cn Môi trường của DB2n Các công cụ DB2
![Page 64: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/64.jpg)
Công cụ của DB2 Express – C
n Công cụ của DB2n Tổng quann Trung tâm điều khiển (Control Centre)n Cửa sổ soạn thảo lệnh (Command Editor)n Cửa sổ lệnh (Command Windows)n Trình trợ giúp SQL (SQL Assist)n Trung tâm tác vụ (Task Center)n Nhật ký (Journal)
![Page 65: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/65.jpg)
Công cụ của DB2 Express – C
n Công cụ của DB2
![Page 66: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/66.jpg)
Công cụ của DB2 Express – C
n Công cụ của DB2
![Page 67: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/67.jpg)
Công cụ của DB2 Express – C
n Control Centern Là công cụ quản trị chính của DB2n Cho phép thực hiện:
n Hỗ trợ để xem xét hệ thống DB2n Tạo, sửa và quản lý các CSDLn Quản lý các đối tượng trong CSDL (tables,
views, indexes, …)n Chạy các công cụ GUI khác
![Page 68: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/68.jpg)
Công cụ của DB2 Express – C
n Control Centern Chọn cách hiển thị của Control Center khi bắt
đầu chạy ứng dụng (Menu Tools/Customize Control Center)
![Page 69: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/69.jpg)
Công cụ của DB2 Express – C
n Control Centern Có thể chạy Control Center băng nhiều cách
n Qua Start Menun Chạy db2cc từ cửa sổ lệnhn Chọn biểu tượng Control Center trên thanh
công cụ của bất ký ứng dụng DB2 GUI nào n Chạy từ biểu tượng DB2 trên khay hệ thống
![Page 70: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/70.jpg)
Công cụ của DB2 Express – C
n Control Center
Cây đối tượng
Danh sách đối tượng
Chi tiết đối tượng
![Page 71: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/71.jpg)
Công cụ của DB2 Express – C
n Command Editorn Sử dụng Command Editor có thể thực hiện
các câu lệnh DB2 và câu lệnh truy vấn SQL, …
n Có thể chạy Command Editor như sau:n Qua Start Menun Chạy db2ce từ cửa sổ lệnhn Chọn biểu tượng Comamnd Editor trên thanh
công cụ Control Centern Từ Tools Menu trong Control Center
![Page 72: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/72.jpg)
Công cụ của DB2 Express – C
n Command Editor (tiếp)n Có thể nhúng Command Editor vào trong
Control Centern Phải chuột vào một CSDL và chọn Queryn Chọn đường link Query trong phần chi tiết đối
tượng khi đang đang chọn một CSDL, table hay view nào đó.
![Page 73: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/73.jpg)
Công cụ của DB2 Express – C
n Command Editor (tiếp)
Nơi nhập lệnh
Cửa sổkết quả
Thêm kết nối CSDL
CSDL đang kết nối
Ký tự sửdụng báo
hết câu lệnh
![Page 74: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/74.jpg)
Công cụ của DB2 Express – C
n Command Windows /CLPn Cửa sổ lệnh để thực hiện các câu lệnh bằng
dòng lệnh (db2cmd, tương tự cmd)n Chỉ sử dụng trên Windows, sử dụng Linux
Shell trên Linuxn Có thể thực hiện được câu lệnh db2 (db2==>)
![Page 75: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/75.jpg)
Công cụ của DB2 Express – C
n Trình trợ giúp SQL (SQL Assist)
![Page 76: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/76.jpg)
Công cụ của DB2 Express – C
n Trung tâm tác vụ (Task Center)
![Page 77: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/77.jpg)
Công cụ của DB2 Express – C
n Trung tâm tác vụ (Task Center)n Cho phép tạo ra những tác vụ với giao diện
đồ hoạ như chạy các lệnh của DB2, các lệnh của hệ điều hành, các kịch bản thực thi, …
n Các tác vụ sau vẫn có thể thực hiện cho dùtác vụ trước thực hiện không thành công
n Chỉ thực hiện khi đã tạo một CSDL Tools Catalog
![Page 78: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/78.jpg)
Công cụ của DB2 Express – C
n Nhật ký (Journal)
![Page 79: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/79.jpg)
Công cụ của DB2 Express – C
n Nhật ký (Journal)n Cung cấp cho người quản trị một nhật ký về
các hoạt động của hệ thống. Nó gồm:n Task His.: tất cả các công việc được lên lịch đã
được thực hiện và tình trạng hoạt động của chúng
n Database His.: bản ghi nhớ các hoạt động lênh CSDL (sao lưu, phục hồi, …)
n Messages: nhật ký thông điệp phản hồi từ các DB2 Tools
n Notification Log: lưu trữ thông điệp cấp hệ thống, bao gồm cả các lỗi nghiêm trọng
![Page 80: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/80.jpg)
![Page 81: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/81.jpg)
Quản trị Cơ sở dữ liệun Kiến trúc của DB2n Kết nối máy khách DB2n Làm việc với các đối tượng dữ liệun Di chuyển dữ liệun Bảo mật cơ sở dữ liệun Sao lưu và phục hồin Bảo trìn Truy cập đồng thời và khoá
![Page 82: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/82.jpg)
Quản trị Cơ sở dữ liệun Kiến trúc của DB2n Kết nối máy khách DB2n Làm việc với các đối tượng dữ liệun Di chuyển dữ liệun Bảo mật cơ sở dữ liệun Sao lưu và phục hồin Bảo trìn Truy cập đồng thời và khoá
![Page 83: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/83.jpg)
Kiến trúc của DB2
n Mô hình xử lý của DB2n Mô hình bộ nhớ của DB2n Mô hình lưu trữ của DB2
![Page 84: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/84.jpg)
Kiến trúc của DB2
n Mô hình xử lý của DB2n Quy ước ký hiệu:
n Chữ nhật: biểu diễn tiến trình (process)n Eslip: biểu diễn luồng xử lý
![Page 85: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/85.jpg)
Kiến trúc của DB2
n Mô hình xử lý của DB2
![Page 86: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/86.jpg)
Kiến trúc của DB2
Daemon tự động. Nó dùng để thực hiện các tác vụ từ phía máy khách như hiển thị tình trạng, tự động bảo trì, kế hoạch hoạt động.
db2acd
Cơ chế (động cơ) điều khiển chính trong DB2. Trong v9.5, chỉ có duy nhất một tiến trình xử lý đa luồng cho tất cả các thành phần. Tất cả các EDUs (Engine Dispatchable Units) đều nằm trong tiến trình này. Không có tiến trình này, CSDL không thể hoạt động.
db2sysc, db2syscs (Win)
n Mô hình xử lý của DB2 (tiến trình chính)
![Page 87: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/87.jpg)
Kiến trúc của DB2
DB2 Watchdog, là mức trên của cơ chế xử lý chính db2sysc, sẽ giải phóng tài nguyên khi kết thúc db2sysc bất bình thường
db2wdog
Tiến trình xử lý đối với các hãng khác. Các mã lệnh của các hãng khác IBM sẽ chạy bên ngoài cơ chế này, và như vậy một chương trình không phải của IBM vẫn có thể tương tác với DB2.
db2vend
Các tiến trình xử lý khác chạy các mã lệnh (gồm cả thủ tục lưu trữ hàm do người dùng tự định nghĩa) trên máy chủ nằm ngoài tường lửa
db2fmp
n Mô hình xử lý của DB2 (tiến trình chính)
![Page 88: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/88.jpg)
Kiến trúc của DB2
Luồng điều khiển chính của hệ thống. Luồng này dùng để khởi động (start), tắt (stop) và quản lý các thể hiện (instance) đang hoạt động
db2sysc
Luồng lắng nghe (listener) các yêu cầu qua giao thức TCP/IP
db2tcpcm
Tác nhân (agent) thực thi những thao tác CSDL thay cho những ứng dụng (ít nhất có 1 tác nhân trên một kết nối, tuỳ thuộc vào bộ tập trung kết nối (Connection Concentrator) được thiết lập)
db2agent
n Mô hình xử lý của DB2 (luồng chính)
![Page 89: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/89.jpg)
Kiến trúc của DB2
Tác nhân con (subagent) chủ động được sinh ra nếu tham số INTRA_PARALLEL = YES (dbm cfg). Nó sẽ thực thi các thao tác CSDL thay cho các ứng dụng. db2agent sẽ kết hợp công việc giữa các tác nhân con khác nhau.
db2agntp
Bộ đọc dữ liệu vào/ra không đồng bộ (tham sốNUM_IOSERVERS của database)
db2pfchr
Bộ ghi dữ liệu vào/ra không đồng bộ (tham sốNUM_IOCLEANERS của database)
db2pclnr
n Mô hình xử lý của DB2 (luồng chính)
![Page 90: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/90.jpg)
Kiến trúc của DB2
n Mô hình xử lý của DB2 (luồng chính)n Bộ tập trung kết nối (Connection Concentrator)
n Hỗ trợ quản lý một số lượng lớn người sử dụng kết nối đồng thời
n Bộ tập trung kết nối sẽ được thiết lập khi (dbm cfg) tham số max_connection > max_coordagents
![Page 91: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/91.jpg)
Kiến trúc của DB2
n Mô hình bộ nhớ của DB2
![Page 92: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/92.jpg)
Kiến trúc của DB2
n Mô hình lưu trữ của DB2n Trang và phạm vi (Pages & Extents)n Vùng nhớ đệm (buffer pool)n Không gian bảng (Table Space)
![Page 93: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/93.jpg)
Kiến trúc của DB2
n Mô hình lưu trữ của DB2 (trang / phạm vi)n Trang là đơn vị lưu trữ nhỏ nhất của DB2, với
kích thước cho phép là 4, 8, 16, 32Kn Phạm vi là một nhóm các trangn DB2 làm việc với nhiều phạm vi trong cùng
thời điểmn Kích thước trang và phạm vi được định nghĩa
khi làm việc với vùng nhớ đệm và không gian bảng
![Page 94: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/94.jpg)
Kiến trúc của DB2
n Mô hình lưu trữ của DB2 (vùng nhớ đệm)n Là vùng bộ nhớ thực (real cache) cho dữ liệu
bảng và chỉ mụcn Cải thiện tốc độ thực thi bằng giảm vào/ra
tuần tự trực tiếp và nâng cấp thực thi không đồng bộ. DB2 đoán trước trang nào cần thiết, đọc chúng từ đĩa vào vùng đệm, để sẵn sàng sử dụng.
n Cấp phát với đơn vị nhớ là các trang.n Mỗi CSDL cần ít nhất một bộ đệmn Có ít nhất một bộ đệm cho không gian bảng
![Page 95: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/95.jpg)
Kiến trúc của DB2
n Mô hình lưu trữ của DB2 (tạo vùng đệm)n Vùng đệm được tạo cho từng CSDLn Có thể tạo vùng đệm:
n Sử dụng lệnh create bufferpooln Sử dụng Control Center
![Page 96: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/96.jpg)
Kiến trúc của DB2
n Mô hình lưu trữ của DB2 (tạo vùng đệm)
![Page 97: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/97.jpg)
Kiến trúc của DB2
n Mô hình lưu trữ của DB2 (không gian bảng)n Là một không giản sử dụng để lưu trữ các
bảng, là một giao diện trừu tượng nằm giữa các bảng logic và vùng lưu trữ vật lý của hệthống (bao gồm vùng nhớ đệm và đĩa)
n Tập hợp của một hoặc nhiều “container” (các file, thư mục, các thiết bị khác)
![Page 98: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/98.jpg)
Kiến trúc của DB2
n Mô hình lưu trữ của DB2 (không gian bảng)n Đặc điểm của không gian bảng
n Kích thước trang của không gian bảng là 4, 8, 16, 32KB. Kích thước này phải tương ứng với kích thước trang của bộ đệm
n Tên vùng đệm tương ứng với không gian bảngn Kích thước phạm vi: số trang được ghi vào một
“container” trước khi ghi lượt tiếp theon Kích thước nạp trước: số trang dữ liệu sẽ được
đọc trước khi cần nâng cao hiệu năng thực hiện
![Page 99: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/99.jpg)
Kiến trúc của DB2
n Mô hình lưu trữ của DB2 (không gian bảng)n Các loại không gian bảng
n Thông thường: thời dành cho User, được tạo ra một cách thông thường (userspace1)
n Lớn: thường được sử dụng để lưu trữ dữ liệu cókích thước lớn hoặc các dữ liệu LOB (long or large object). Các chỉ số cũng có thể được lưu trữ luôn trong không gian này.
n Tạm thời:§ Của hệ thống: DB2 sử dụng cho các thao tác nội
bộ của hệ thống (TEMPSAPCE1)§ Của người dùng: được sử dụng cho người dùng
tạo ra các bảng tạm thời
![Page 100: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/100.jpg)
Kiến trúc của DB2
n Mô hình lưu trữ của DB2 (không gian bảng)n Quản lý không gian bảng
n Quản lý bởi hệ thống (System Managed Storage – SMS)
n Quản lý bởi CSDL (Database Managed Storage – DMS)
n Quản lý bởi lưu trữ tự động
![Page 101: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/101.jpg)
Kiến trúc của DB2
n Mô hình lưu trữ của DB2 (không gian bảng)n Quản lý không gian bảng
n Quản lý bởi hệ thống (System Managed Storage – SMS)§ Hệ điều hành quản lý không gian này § Dễ dàng trong quản lý và được chứa trong các tệp.§ Không gian không được cấp phát trước nhưng
dung lượng tăng tự động§ Khi đã được cấp phát, vị trí lưu trữ không thay đổi.§ Dữ liệu, chỉ mục, dữ liệu LOB không được trải
nhiều trên những không gian bảng khác nhau
![Page 102: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/102.jpg)
Kiến trúc của DB2
n Mô hình lưu trữ của DB2 (không gian bảng)n Quản lý không gian bảng
n Quản lý bởi CSDL (Database Managed Storage – DMS)§ DB2 quản lý không gian bảng này§ Cần sự can thiệp của người quản trị§ “Container” có thể là tệp được cấp phát trước, hoặc
những thiết bị lưu trữ khác§ “Container” có thể thay đổi kích thước, xoá, thêm§ Dữ liệu, chỉ mục, dữ liệu LOB có thể nằm trên các
không gian khác nhau nên có hiệu suất tốt
![Page 103: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/103.jpg)
Kiến trúc của DB2
n Mô hình lưu trữ của DB2 (không gian bảng)n Quản lý không gian bảng
n Quản lý bởi lưu trữ tự động § Mong muốn như “một cửa đơn giản để quản lý lưu
trữ”§ Sử dụng tương tự không gian bảng SMS nhưng
hiệu suất tốt và linh hoạt như DMS§ Không định nghĩa tường minh chỗ chứa. Nó được
tự động xác định theo đường dẫn§ Tăng kích thước hay bổ sung thêm chỗ mới là do
DB2 quản lý§ Định nghĩa lại đường dẫn qua database RESTORE
![Page 104: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/104.jpg)
Kiến trúc của DB2
n Mô hình lưu trữ của DB2 (không gian bảng)n Quản lý không gian bảng
n Quản lý bởi lưu trữ tự động (ví dụ)§ Tạo CSDL được lưu trữ tự động
Lưu trữ tự động theo mặc địnhCREATE DATABASE DB1Lưu trữ tự động chỉ định tường minhCREATE DATABASE DB1 AUTOMATIC STORAGE YESLưu trữ tự động theo mặc định, chỉ ra đường dẫnCREATE DATABASE DB1 ON /data/path1, /data/path2Lưu trữ tự động không được phépCREATE DATABASE DB1 AUTOMATIC STORAGE NO
![Page 105: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/105.jpg)
Kiến trúc của DB2
n Mô hình lưu trữ của DB2 (không gian bảng)n Quản lý không gian bảng
n Quản lý bởi lưu trữ tự động (ví dụ)§ Tạo không gian bảng lưu trữ tự động
Lưu trữ tự động cho KGB được cho phép theo mặc địnhCREATE TEMPORARY TABLESPACE TEMPTS
Lưu trữ tự động KGB được cho phép chỉ định tường minhCREATE TABLESPACE TS2 MANAGED BY AUTOMATIC
STORAGELưu trữ tự động không tường minhCREATE TABLESPACE TS1 INITIALSIZE 500 K
INCREASESIZE 100 K MAXSIZE 100 M
![Page 106: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/106.jpg)
Kiến trúc của DB2
n Mô hình lưu trữ của DB2 (không gian bảng)n Quản lý không gian bảng
n Dữ liệu lưu trữ trong không gian bảng
![Page 107: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/107.jpg)
Kiến trúc của DB2
n Mô hình lưu trữ của DB2 (không gian bảng)n Quản lý không gian bảng
n Dữ liệu lưu trữ trong không gian bảng§ Không gian bảng 4K với 8 trang cho mỗi phạm vi
(4K x 8 = 32K)§ Sử dụng 3 chỗ chứa trong không gian bảng DMS
![Page 108: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/108.jpg)
Kiến trúc của DB2
n Mô hình lưu trữ của DB2 (không gian bảng)n Quản lý không gian bảng
n Tạo không gian bảng bằng Control Center
![Page 109: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/109.jpg)
![Page 110: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/110.jpg)
Quản trị Cơ sở dữ liệun Kiến trúc của DB2n Kết nối máy khách DB2n Làm việc với các đối tượng dữ liệun Di chuyển dữ liệun Bảo mật cơ sở dữ liệun Sao lưu và phục hồin Bảo trìn Truy cập đồng thời và khoá
![Page 111: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/111.jpg)
Kết nối máy khách DB2
n Thư mục DB2n Yêu cầu cài đặt tại máy chủn Yêu cầu cài đặt tại máy kháchn Các phương thức khác để cài đặt kết nối
![Page 112: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/112.jpg)
Kết nối máy khách DB2
n Thư mục DB2: n là các tệp nhị phân lưu trữ thông tin từ các
CSDL mà có thể kết nối đếnn Có 4 thư mục
n Thư mục CSDL hệ thốngn Thư mục CSDL nội tạin Thư mục nútn Thư mục DCS
![Page 113: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/113.jpg)
Kết nối máy khách DB2
n Thư mục DB2: n Thư mục CSDL hệ thống
n Chứa danh mục các CSDL mà hệ thống đang quản lý (gồm cả CSDL nội tại và từ xa)
n Là các con trỏ trỏ tới thư mục CSDL nội tạin Là các con trỏ trỏ tới thư mục nút (node)n Câu lệnh: list db directory
![Page 114: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/114.jpg)
Kết nối máy khách DB2
n Thư mục DB2: n Thư mục CSDL nội tại (local)
n Chứa thông tin về những CSDL nội tại mà cóthể kết nối được
n Câu lệnh: list db directory on <drive path>
![Page 115: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/115.jpg)
Kết nối máy khách DB2
n Thư mục DB2: n Thư mục CSDL nút (node)
n Chứa thông tin để kết nối đến một CSDL ở xa.n Khi sử dụng TCP/IP, thông tin gồm địa chỉ IP
của máy DB2 ở xa và địa chỉ cổng (port) của thểhiện chứa CSDL
n Câu lệnh: list node directory
![Page 116: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/116.jpg)
Kết nối máy khách DB2
n Thư mục DB2: n Thư mục DCS
n Chỉ sử dụng khi cài đặt phần kết nối đến máy chủ DB2 sử dụng x/OS
n Câu lệnh: list dcs directory
![Page 117: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/117.jpg)
Kết nối máy khách DB2
n Trợ giúp cấu hình (Configuration Assistant):n Công cụ GUI hỗ trợ cấu hình các kết nối đến
các máy chủ DB2 ở xan Chạy ứng dụng
n Windows Start Menu: IBM DB2\DB2COPY1\Set-up tools\Configuration Assistant
n Control Center: Tools Menu\Configuration Assistant
n Dòng lệnh: db2ca
![Page 118: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/118.jpg)
Kết nối máy khách DB2
n Cài đặt trên máy chủn Máy chủ cần thiết lập 2 tham số liên quan
của instance cho phép kết nốin db2comm: giao thức sẽ sử dụng để hỗ trợ kết
nối từ máy kháchn svcename (service name): tên dịch vụ hoặc số
hiệu cổng (port) của Instance chứa CSDL cho phép kết nối
![Page 119: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/119.jpg)
Kết nối máy khách DB2
n Cài đặt trên máy chủn Thiết lập quan CA
n db2comm à Db2 Registryn svcename à DBM Configuration
(Communication)n Thiết lập qua CC
n db2comm à chọn Instance\Set up communications …
n svcename à chọn Instance\Configure Parameters …
![Page 120: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/120.jpg)
Kết nối máy khách DB2
n Cài đặt trên máy chủn Thiết lập bằng dòng lệnh
n db2comm à db2setdb2set db2comm=TCPIP
n svcename à update dbm cfg using svcename <port # or service name>update dbm cfg using svcename 50001
n Ví dụ: thiết lập tham số máy chủ
![Page 121: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/121.jpg)
Kết nối máy khách DB2
n Cài đặt trên máy khách
![Page 122: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/122.jpg)
Kết nối máy khách DB2
n Cài đặt trên máy khách
![Page 123: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/123.jpg)
Kết nối máy khách DB2
n Cài đặt trên máy kháchn Hoặc cũng có thể kết nối thông qua
n Configuration AssistantAdd Database using Wizard
n Control CenterAll Database \ Add
![Page 124: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/124.jpg)
Kết nối máy khách DB2
n Cài đặt trên máy kháchn Những thông tin cần thiết để kết nối từ máy
khách đến máy chủn Tên CSDL muốn kết nốin Số hiệu cổng (port) của thể hiện DB2 chứa
CSDL. Cũng có thể sử dụng tên dịch vụ nếu tồn tại thực thể tương ứng trong tệp dịch vụ TCPIP
n ID của người dùng và mật khẩu đăng nhập CSDL của máy chủ
![Page 125: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/125.jpg)
Kết nối máy khách DB2
n Các phương thức khác để cài đặt kết nối
![Page 126: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/126.jpg)
Kết nối máy khách DB2
n Các phương thức khác để cài đặt kết nối
![Page 127: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/127.jpg)
Kết nối máy khách DB2
n Các phương thức khác để cài đặt kết nốin Tìm kiếm từ máy khách
n Cấp độ DAS§ Discover = Search/Know§ get admin cfg§ update admin cfg
using <para> <val>n Cấp độ Instance
§ get dbm cfg§ update dbm cfg
using <para> <val>
![Page 128: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/128.jpg)
Kết nối máy khách DB2
n Các phương thức khác để cài đặt kết nốin Tìm kiếm từ máy khách
n Cấp độ Database§ get db cfg§ get db cfg for <db>§ update db cfg for <db>
using <para> <value>n Có thể kết xuất (export)
để hỗ trợ cài đặt cho nhiều máy khách hoặc máy chủ
![Page 129: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/129.jpg)
![Page 130: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/130.jpg)
Quản trị Cơ sở dữ liệun Kiến trúc của DB2n Kết nối máy khách DB2n Làm việc với các đối tượng dữ liệun Di chuyển dữ liệun Bảo mật cơ sở dữ liệun Sao lưu và phục hồin Bảo trìn Truy cập đồng thời và khoá
![Page 131: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/131.jpg)
Làm việc với các đối tượng DL
n Sơ đồ (Schema)n Bảng (Tables)n Khung nhìn (Views)n Chỉ mục (Indexes)n Toàn vẹn tham chiếu (Referential Integrity)
![Page 132: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/132.jpg)
Làm việc với các đối tượng DL
n Sơ đồ (Schema)n một không gian tên (name space) cho tập
hợp các đối tượng trong CSDLn Được sử dụng để:
n Cung cấp chỉ dẫn về quyền sở hữu (ownership) đối tượng hoặc mối quan hệ với đối tượng nào đó
n Gom các đối tượng có liên quan n Tên của tất cả các đối tượng CSDL, theo tiêu
chuẩn, đều có 2 phần<tên sơ đồ>.<tên đối tượng>
![Page 133: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/133.jpg)
Làm việc với các đối tượng DL
n Sơ đồ (Schema)n Khi kết nối đến CSDL mà không chỉ rõ
schema, DB2 sẽ chọn định danh (ID) của người dùng hiện tại đang kết nối đến CSDL làm tên schema
![Page 134: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/134.jpg)
Làm việc với các đối tượng DL
n Bảng (Tables)n Là tập hợp dữ liệu có mối quan hệ với nhau
một cách hợp lý theo cột và hàng
![Page 135: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/135.jpg)
Làm việc với các đối tượng DL
n Bảng (Tables) – kiểu dữ liệu
![Page 136: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/136.jpg)
Làm việc với các đối tượng DL
n Bảng (Tables) – Dữ liệu lớn (LOB)
![Page 137: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/137.jpg)
Làm việc với các đối tượng DL
n Bảng (Tables) – Dữ liệu người dùng tự định nghĩa (User-Defined Types)
![Page 138: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/138.jpg)
Làm việc với các đối tượng DL
n Bảng (Tables) – Dữ liệu người dùng tự định nghĩa (User-Defined Types)
![Page 139: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/139.jpg)
Làm việc với các đối tượng DL
n Bảng (Tables) – Giá trị Nulln Đại diện cho một trạng thái giá trị không xác
địnhn Có thể thiết lập giá trị một cột trong bảng
không được phép Null
![Page 140: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/140.jpg)
Làm việc với các đối tượng DL
n Bảng (Tables) – Bảng danh sách hệ thốngn Mỗi CSDL có danh sách bảng hệ thống riêngn Lưu trữ các siêu dữ liệu về các đối tượng
CSDLn Có thể sử dụng các câu lệnh truy vấn như
những bảng khác
![Page 141: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/141.jpg)
Làm việc với các đối tượng DL
n Bảng (Tables) – Bảng danh sách hệ thốngn Có 3 sơ đồ (schema) để nhận dạng các bảng
danh sách hệ thốngn SYSIBM: chứa các bảng cơ sở, tối ưu hoá sử
dụng cho DB2n SYSCAT: các khung nhìn (view) cơ sở dựa trên
các bảng SYSIBM, tối ưu sự dễ sử dụngn SYSSTAT: các số liệu thông kê trong CSDL
§ ExampleSYSCAT.TABLESSYSCAT.INDEXESSYSCAT.COLUMNS
![Page 142: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/142.jpg)
Làm việc với các đối tượng DL
n Bảng (Tables) – khai báo bảng tạm thờin Là bảng được tạo ra trong bộ nhớ, được sử
dụng một ứng dụng và tự động xoá khi ứng dụng kết thúc
n Chỉ có thể được truy cập bởi ứng dụng tạo ra chúng
n Không sinh ra các bản ghi trong bảng danh sách hệ thống
n Hiệu quả truy cập bảng cao (không bị khoáhàng, không phải xác thực, không ghi nhật ký)
![Page 143: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/143.jpg)
Làm việc với các đối tượng DL
n Bảng (Tables) – cột định danh (identity)n Là cột các con số được tạo ra tự động, có giá
trị duy nhất trên mỗi dòngn Chỉ tối đa một cột định danh trên một bảngn Tạo giá trị trên cột định danh có 2 cách:
n Luôn được sinh ra: các giá trị được sinh ra bởi DB2, ứng dụng không được phép sinh giá trị
n Sinh ra mặc định: giá trị được cung cấp bởi ứng dụng, hoặc nếu không có thì DB2 sinh ra. Không đảm bảo tính duy nhất của dữ liệu
![Page 144: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/144.jpg)
Làm việc với các đối tượng DL
n Bảng (Tables) – cột định danh (identity)
![Page 145: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/145.jpg)
Làm việc với các đối tượng DL
n Bảng (Tables) – đối tượng tuần tự(sequence object)n Đối tượng tuần tự sinh ra một số duy nhất,
hoạt động như một bảng độc lập
![Page 146: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/146.jpg)
Làm việc với các đối tượng DL
n Khung nhìn (Views)n Là sự thể hiện dữ liệu được lưu trữ trong
bảngn Dữ liệu sẽ tồn tại khi được gọi tớin Thông tin về khung nhìn được chứa trong
SYSCAT.VIEWS, SYSCAT.VIEWDEP, SYSCAT.TABLES.
![Page 147: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/147.jpg)
Làm việc với các đối tượng DL
n Chỉ mục (Indexes)n Là tập hợp các khoá được sắp xếp theo mục
ở các dòng trong bảngn Đặc điểm
n Kiểu chỉ mục tăng hoặc giảmn Khoá của chỉ mục có thể là duy nhất hoặc khôngn Nhiều cột có thể sử dụng làm chỉ mục
n Sử dụng công cụ trợ giúp Design Advisor
![Page 148: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/148.jpg)
Làm việc với các đối tượng DL
n Toàn vẹn tham chiếu (Referential Integrity)n Cho phép CSDL quản lý được mối quan hệ
giữa các bảng
![Page 149: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/149.jpg)
![Page 150: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/150.jpg)
Tiện ích di chuyển dữ liệu
n Tổng quann Exportn Importn Load & Set Integrityn db2moven db2look
![Page 151: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/151.jpg)
Tiện ích di chuyển dữ liệu
n Tổng quann Tiện ích di chuyển dữ liệu là công cụ được
sử dụng để di chuyển dữ liệu trong cùng một CSDL sang CSDL khác trên cùng nền (platform) hoặc khác nền
![Page 152: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/152.jpg)
Tiện ích di chuyển dữ liệu
n Tổng quann ASC = ASCIIn DEL = Delimited ASCII – dữ liệu được lưu trữ
dưới dạng văn bản, có thể mở xem bằng bất kỳtrình soạn thảo nào
n WSF = Worksheet Format – định dạng có thể di chuyển dữ liệu sang bảng tính (Excel, Lotus123)
n IXF = Integrated Exchange Format – định dạng không chỉ bao gồm dữ liệu mà còn cả ngôn ngữ DDL (Data Definition Language). Đảm bảo được tính đầy đủ của dữ liệu
![Page 153: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/153.jpg)
Tiện ích di chuyển dữ liệu
n Exportn Kết xuất dữ liệu từ bảngn Làm việc với IXF, DEL, WSFn Có thể thực hiện bằng câu lệnh hoặc Control
Center
![Page 154: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/154.jpg)
Tiện ích di chuyển dữ liệu
n Importn Chèn dữ liệu từ bảng (tương đương câu lệnh
SQL Insert)§ Kích hoạt các bẫy (trigger), các ràng buộc có hiệu
lực, sử dụng BUFFERPOOLn Có thể thực hiện bằng câu lệnh hoặc Control
Center
![Page 155: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/155.jpg)
Tiện ích di chuyển dữ liệu
n Loadn Chèn dữ liệu từ bảng theo cách trực tiếpn Tốc độ thực hiện nhanh, không sử dụng vùng
đệm, các bẫy không được kích hoạt, ràng buộc không có hiệu lực
n Có thể thực hiện bằng câu lệnh hoặc Control Center
![Page 156: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/156.jpg)
Tiện ích di chuyển dữ liệu
n db2moven Có thể làm việc với cả một CSDLn Chỉ làm việc với tệp IXFn Không có trong Control Center
db2move sample exportdb2move sample import
![Page 157: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/157.jpg)
Tiện ích di chuyển dữ liệu
n db2lookn Trích rút dữ liệu dưới dạng câu lệnh DDL, không
gian bảng thành tệp kịch bảnn Có thể sử dụng câu lệnh hoặc Control Center
![Page 158: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/158.jpg)
![Page 159: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/159.jpg)
Quản trị Cơ sở dữ liệun Kiến trúc của DB2n Kết nối máy khách DB2n Làm việc với các đối tượng dữ liệun Di chuyển dữ liệun Bảo mật cơ sở dữ liệun Sao lưu và phục hồin Bảo trìn Truy cập đồng thời và khoá
![Page 160: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/160.jpg)
Bảo mật cơ sở dữ liệu
n Tổng quann Xác thực (authentication)n Quyền hạn (authorization)n Nhóm PUBLICn GRANT và REVOKE
![Page 161: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/161.jpg)
Bảo mật cơ sở dữ liệu
n Tổng quann DB2 sử dụng 2 cách
xác thựcn Dịch vụ bảo mật ngoàin Kiểm soát truy cập
bên trong nội tạin Xác thực
(authentication)n Định danh người sử
dụng
![Page 162: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/162.jpg)
Bảo mật cơ sở dữ liệu
n Tổng quann Quyền hạn
(authorization)n Kiểm tra người sử
dụng đã được xác thực có đủ quyền hạnthực hiện thao tác
![Page 163: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/163.jpg)
Bảo mật cơ sở dữ liệu
n Xác thực (authentication)
![Page 164: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/164.jpg)
Bảo mật cơ sở dữ liệu
n Xác thực (authentication)n Tham số AUTHENTICATION trong DBM
CFGn Các giá trị:
n SERVER (mặc định): xác thực tại máy chủn CLIENT: xác thực tại máy kháchn SERVER_ENCRYPT: xác thực tại máy chủ
nhưng có mã hoán SQL_AUTHENTICATION_DATAENC: xác thực
tại máy chủ thêm sự kết nối phải mã hoán SQL_AUTHENTICATION_DATAENC_CMP:
![Page 165: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/165.jpg)
Bảo mật cơ sở dữ liệu
n Quyền hạn (authorization)n Quyền hạn bao gồm quyền (Authorities) và
các đặc quyền (Privileges)n Đặc quyền là quyền cho phép thực hiện một
thao tác nào đó trên CSDL (Insert, Create,…)n Quyền là một loại hành động bao gồm nhiều
đặc quyền
![Page 166: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/166.jpg)
Bảo mật cơ sở dữ liệu
n Quyền hạn (authorization)
![Page 167: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/167.jpg)
Bảo mật cơ sở dữ liệu
n Quyền hạn (authorization) – các cấp
![Page 168: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/168.jpg)
Bảo mật cơ sở dữ liệu
n Quyền hạn (authorization)n Có thể cấp quyền cho một nhóm người sử
dụng trên OS, có thể thiết lập các tham sốSYSADM_GROUP, SYSCTRL_GROUP, …trong DBM CFG theo nhóm của OS
update dbm cfg using SYSADM_GROUP <group>n Mỗi thể hiện có nhóm quyền riêngn Trên Windows, ngầm định nhóm quản trị
Windows có quyền SYSADM. Trên Linux, nhóm người sở hữu thể hiện là SYSADM
![Page 169: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/169.jpg)
Bảo mật cơ sở dữ liệu
n Quyền hạn (authorization) – DBADMn DBADM (quyền quản trị CSDL): người có
quyền cao nhất về quản trị một CSDL. Đây không có một quyền cụ thể
connect to <db>grant DBADM on database on user <userid>
n Phải là quyền SYSADM mới thực hiện được lệnh gán này
n DBADM không có quyền tạo không gian bảng vì không gian bảng liên quan đến containers (đĩa) và vùng đệm (bộ nhớ)
![Page 170: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/170.jpg)
Bảo mật cơ sở dữ liệu
n Nhóm PUBLICn Là một nhóm bên trong DB2n Mỗi User được xác nhận bởi OS hoặc dịch
vụ chứng thực đều được ngầm định là thành viên nhóm PUBLIC
n Một số quyền được tạo sẵn cho nhóm PUBLIC khi CSDL được tạo CONNECT, CREATE TAB, IMPLICIT_SCHEMA, BINDADD
n Có thể huỷ quyền của nhóm PUBLIC để tăng tính bảo mật
![Page 171: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/171.jpg)
Bảo mật cơ sở dữ liệu
n Lệnh GRANT và REVOKE
![Page 172: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/172.jpg)
Bảo mật cơ sở dữ liệu
n Lệnh GRANT và REVOKEn Có thể kiểm tra quyền và việc cấp quyền qua
Control Center
![Page 173: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/173.jpg)
![Page 174: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/174.jpg)
Quản trị Cơ sở dữ liệun Kiến trúc của DB2n Kết nối máy khách DB2n Làm việc với các đối tượng dữ liệun Di chuyển dữ liệun Bảo mật cơ sở dữ liệun Sao lưu và phục hồin Bảo trìn Truy cập đồng thời và khoá
![Page 175: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/175.jpg)
Sao lưu và phục hồi
n Nhật ký CSDL (Database Logging)n Sao lưu (backup)n Phục hồi (recovery)
![Page 176: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/176.jpg)
Sao lưu và phục hồi
n Nhật ký CSDL (Database Logging)n Nhật ký CSDL ghi lại các hành động của
những giao dịch (transactions). Trong trường hợp sự cố, có thể khôi phục (playback/redo) những giao dịch đã được thực hiện
n Việc ghi lại những thay đổi trong CSDL vào nhật ký được thực hiện sau lệnh COMMIT
![Page 177: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/177.jpg)
Sao lưu và phục hồi
n Nhật ký CSDL (Database Logging)
![Page 178: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/178.jpg)
Sao lưu và phục hồi
n Nhật ký CSDL (Database Logging)n Không gian bảng (tablespace) và nhật ký
(log) đều được ghi trên ổ cứng. Do đó, khuyến cáo là nên được cất trên những ổcứng khác nhau
n Khi có sự thay đổi (giả sử UPDATE), những trang dữ liệu thay đổi sẽ được cất trong vùng đệm (bộ nhớ). Những giá trị cũ và mới sẽ được cất trong Log (đôi khi thì tức thời, đôi khi do một vùng đệm đầy)
![Page 179: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/179.jpg)
Sao lưu và phục hồi
n Nhật ký CSDL (Database Logging)n Nếu thực hiện COMMIT ngay sau UPDATE,
tất cả dữ liệu cũ và mới sẽ được ghi vào Log ngay lập tức
n Khi điều kiện thoả mãn, dữ liệu thay đổi mới được ghi lên không gian bảng trên đĩa
n CHNGPGS_THRES: chỉ định tỷ lệ phần trăm những trang đã thay đổi (dirty)
![Page 180: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/180.jpg)
Sao lưu và phục hồi
n Nhật ký CSDL (Database Logging)n Các kiểu nhật ký
n Nhật ký sơ cấp (LogPrimary): được cấp phát sẵn
n Nhật ký thứ cấp (LogSecond): được cấp phát khi cần thiết và sẽ được xoá khi tất cả các kết nối đến CSDL bị ngắt
![Page 181: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/181.jpg)
Sao lưu và phục hồi
n Nhật ký CSDL (Database Logging)n Các kiểu ghi nhật ký
n Ghi vòng tuần tự (Circular logging): không lưu trữ riêng, có thể bị ghi đè
n Lưu trữ (Archival logging): không bị xoá bất kỳnội dung nào, một số thông tin được lưu trữonline, một số được lưu trữ bên ngoài
![Page 182: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/182.jpg)
Sao lưu và phục hồi
n Nhật ký CSDL (Database Logging)n Các kiểu ghi nhật ký
n Ghi vòng tuần tự (Circular logging):
![Page 183: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/183.jpg)
Sao lưu và phục hồi
n Nhật ký CSDL (Database Logging)n Các kiểu ghi nhật ký
n Ghi vòng tuần tự (Circular logging): P1, P2, P3 là nhật ký sơ cấp; S1, S2 là nhật ký thứ cấp§ Khi có một giao dịch, nhật ký được ghi vào P1 và
sau đó là P2, …§ Nếu có lệnh COMMIT, thay đổi được ghi vào không
gian bảng, P1, P2 có thể được ghi đè lại từ đầu vìkhông cần thiết nữa
§ Nếu chưa COMMIT mà không gian bảng thiếu, sẽcấp phát tiếp S1, S2. Khi giao dịch vẫn tiếp tục mà đạt ngưỡng LOGSECOND thì sẽ xuất hiện thông báo lỗi và giao dịch sẽ được quay lui (rollback)
![Page 184: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/184.jpg)
Sao lưu và phục hồi
n Nhật ký CSDL (Database Logging)n Các kiểu ghi nhật ký
n Lưu trữ (Archival logging):§ Thiết lập tham số LOGRETAIN là YES§ Tệp nhật ký không bị xoá, có thể lưu trữ online
hoặc offline§ Nhật ký lưu trữ offline có thể lưu trữ trên băng từ§ Đảm bảo việc khôi phục lại những dữ liệu cũ khi
gặp sự cố
![Page 185: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/185.jpg)
Sao lưu và phục hồi
n Nhật ký CSDL (Database Logging)n Các kiểu ghi nhật ký
n Lưu trữ (Archival logging):
![Page 186: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/186.jpg)
Sao lưu và phục hồi
n Nhật ký CSDL (Database Logging)n Cấu hình nhật ký qua Control Center
![Page 187: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/187.jpg)
Sao lưu và phục hồi
n Nhật ký CSDL (Database Logging)n Các tham số của nhật ký
n Logbufsz: kích thước bộ nhớ được sử dụng như bộ đệm cho các bản ghi nhật ký trước khi ghi lên đĩa
n Logfilsz: kích thước của mỗi nhật ký đã cấu hình (4KB)
n Logprimary: số bản nhật ký sơ cấp với kích thước logfilsz đã tạo
n Logsecond: số tệp nhật ký phụ được tạo và sửdụng khi cần thiết
![Page 188: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/188.jpg)
Sao lưu và phục hồi
n Nhật ký CSDL (Database Logging)n Các tham số của nhật ký (cont.)
n Logpath/newlogpath: vị trí các nhật ký hoạt động hoặc lưu trữ trong tương lai
n Mirrorlogpath: đường dẫn của nhật ký ảnhn Loghead: tên tệp nhật ký hoạt động hiện hànhn Userexit: cho phép chương trình Userexit thực
hiện sao chép nhật ký ngoại tuyếnn Softmax: giới hạn sự mất mát của việc khôi
phục hỏngn Logretain: thiết lập chế độ ghi nhật ký lưu trữ
![Page 189: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/189.jpg)
![Page 190: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/190.jpg)
Sao lưu và phục hồi
n Sao lưu (backup)n Cho phép tạo ra một bản sao CSDL tại thời
điểm thực thiBACKUP DB sample TO C:\Backups
n Có thể sao lưu trực tuyến (người dùng có thểkết nối đến CSDL khi đang sao lưu) hoặc ngoại tuyến (Offline – người dùng không cóthể kết nối đến CSDL khi đang sao lưu)
n Có thể thực hiện trên Control Center
![Page 191: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/191.jpg)
Sao lưu và phục hồi
n Sao lưu (backup)n Ví dụ về tên file được Backup
![Page 192: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/192.jpg)
![Page 193: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/193.jpg)
Sao lưu và phục hồi
n Khôi phục (Recovery)n Là phục hồi (restore) một CSDL từ phần dữ
liệu đã được sao lưu (backup)n Phục hồi dữ liệu từ các bản ghi nhật ký
![Page 194: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/194.jpg)
Sao lưu và phục hồi
n Khôi phục (Recovery)n Các kiểu khôi phục CSDL
n Khôi phục dữ liệu hỏng (crash/restart database): khi hệ thống gặp sự cố và phải khởi động lại, hệthống kích hoạt lệnh Restart Database để phục hồi các giao dịch khi trước để đảm bảo CSDL ởtrạng thái phù hợp nhất
n Khôi phục dữ liệu theo phiên bản: khôi phục lại CSDL từ một bản đã được sao lưu (backup). CSDL sẽ được trả lại trạng thái như khi sao lưu, và những giao dịch sau đó bị mất
![Page 195: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/195.jpg)
Sao lưu và phục hồi
n Khôi phục (Recovery)n Các kiểu khôi phục CSDL (cont.)
n Khôi phục dữ liệu theo thời gian: cho phép vừa sử dụng sao lưu/ phục hồi, vừa sử dụng lệnh ROLLFORWARD để xác định thời điểm phục hồi giúp làm giảm tối đa mất mát dữ liệu
![Page 196: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/196.jpg)
Sao lưu và phục hồi
n Khôi phục (Recovery)n Khôi phục CSDL
![Page 197: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/197.jpg)
Sao lưu và phục hồi
n Khôi phục (Recovery)n Khôi phục CSDL (một số lưu ý với backup và
restore)n Sao lưu trên OS 32bit, phục hồi trên OS 64n Khôi phục được cả CSDL đang tồn tạin Tạo được CSDL mới từ file đã backupn Có thể sao lưu và khôi phục theo không gian
bảng, không cần toàn bộ CSDLn Có khả năng khôi phục dữ liệu đến một ổ đĩa
khác với vùng cần khôi phục
![Page 198: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/198.jpg)
Sao lưu và phục hồi
n Khôi phục (Recovery)n Khôi phục CSDL (một số lưu ý với backup và
restore)n Cho phép sao lưu những thay đổi (delta) hoặc
tăng dần (incremental)n Có khả năng phục hồi cả những bảng đã bị xoán Không thể sao lưu ở OS này và phục hồi ở OS
khác
![Page 199: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/199.jpg)
![Page 200: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/200.jpg)
Quản trị Cơ sở dữ liệun Kiến trúc của DB2n Kết nối máy khách DB2n Làm việc với các đối tượng dữ liệun Di chuyển dữ liệun Bảo mật cơ sở dữ liệun Sao lưu và phục hồin Bảo trìn Truy cập đồng thời và khoá
![Page 201: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/201.jpg)
Bảo trì
n Tổng quann REORGn RUNSTATSn REBIND
![Page 202: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/202.jpg)
Bảo trì
n Tổng quann Sau quá trình thực hiện, hệ thống CSDL có
nhiều thay đổi. Bảo trì nhằm tối ưu hoá lại hệthống nhằm nâng cao hiệu suất
![Page 203: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/203.jpg)
Bảo trì
n REORGn Sau quá trình truy xuất, bảng và chỉ mục bị
phân mảnhn REORG tái ghép mảnh và tổ chức lại dữ liệu
để tối ưu hiệu quả lưu trữ và truy xuất từng bảng.
n Có thể trực tuyến (online) hay không (offline)n Offline nhanh và tối ưu hơn nhưng không cho
phép truy xuất đến bảngn Online cho phép truy xuất đến bảng nhưng sử
dụng nhiều tài nguyên hơn, phù hợp bảng nhỏ
![Page 204: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/204.jpg)
Bảo trì
n REORG
n Có thể thực hiện qua Control Center
![Page 205: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/205.jpg)
Bảo trì
n RUNSTATS (thông số thống kê)n DB2 có một cơ chế tối ưu thông minh để khai
thác dữ liệu hiệu quả. Để thực hiện cần có sốliệu thống kê trước.
n Số liệu thống kê của CSDL cần được cập nhật (như số lượng cột, các kiểu DL cột, số lượng bản ghi, kích thước chỉ mục, )
n Do số lượng thống kê không được cập nhật tự động nên lệnh RUNSTAT hỗ trợ cập nhật những số liệu thống kê cho cơ chế tối ưu
![Page 206: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/206.jpg)
Bảo trì
n RUNSTATS (thông số thống kê)
n Có thể thực hiện qua Control Center
![Page 207: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/207.jpg)
Bảo trì
n BIND/REBINDn Áp dụng cho những ứng dụng nhúng SQL,
thủ tục lưu trữ SQL sau khi chạy RUNSTAT
![Page 208: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/208.jpg)
Bảo trì
n BIND/REBIND
![Page 209: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/209.jpg)
Bảo trì
n Lựa chọn bảo trìn Có 3 cách:
n Thủ côngn Tạo kịch bản thực hiện bảo trìn Bảo trì tự động (cấu hình cho từng CSDL qua
Control Center)
![Page 210: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/210.jpg)
![Page 211: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/211.jpg)
Quản trị Cơ sở dữ liệun Kiến trúc của DB2n Kết nối máy khách DB2n Làm việc với các đối tượng dữ liệun Di chuyển dữ liệun Bảo mật cơ sở dữ liệun Sao lưu và phục hồin Bảo trìn Truy cập đồng thời và khoá
![Page 212: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/212.jpg)
Truy cập đồng thời và khoá
n Tổng quann Truy cập đồng thờin Khoán Khoá leo thang
![Page 213: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/213.jpg)
Truy cập đồng thời và khoá
n Tổng quann Giao dịch
n Tập hợp dòng lệnh mà khi thực hiện được coi như các câu lệnh riêng lẻ
n Nếu một trong những dòng lệnh thật bại coi như toàn bộ giao dịch thất bại và các dòng lệnh đã được thực hiện đến điểm thất bại sẽ được quay lui (rollback) về giá trị ban đầu
n Giao dịch kết thúc với dòng lệnh COMMIT, vàbắt đầu một giao dịch mới
![Page 214: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/214.jpg)
Truy cập đồng thời và khoá
n Tổng quann Giao dịch
![Page 215: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/215.jpg)
Truy cập đồng thời và khoá
n Tổng quann Truy cập đồng thời
n Nhiều người cùng truy cập đến cùng một CSDL tại cùng thời điểm
n Việc truy cập phải đảm bảo tính an toàn và toàn vẹn dữ liệu
![Page 216: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/216.jpg)
Truy cập đồng thời và khoá
n Tổng quann Truy cập đồng thời
![Page 217: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/217.jpg)
Truy cập đồng thời và khoá
n Tổng quann Khoá
n Khoá được dùng để tạm thời ngăn những ứng dụng truy cập đến khi thao tác kết thúc
n Nếu số khoá tăng lên có nghĩa là số truy cập đồng thời ít đi
n Khoá sẽ tự động xuất hiện hỗ trợ một thao tác và giải phóng khi thao tác kết thúc (Commit hoặc Rollback)
![Page 218: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/218.jpg)
Truy cập đồng thời và khoá
n Tổng quann Khoá
n Có 2 loại kho᧠Khoá chia sẻ (S – share locks): được sử dụng khi
ứng dụng muốn đọc và ngăn cản cập nhật từnhững thao tác khác
§ Khoá dành riêng (X – exclusive locks): được sửdụng khi một ứng dụng muốn cập nhật, xoá hay thêm một dòng
![Page 219: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/219.jpg)
Truy cập đồng thời và khoá
n Tổng quann Khoá
![Page 220: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/220.jpg)
Truy cập đồng thời và khoá
n Truy cập đồng thờin DB2 được thiết kế cho nhiều người truy cậpn Khi không điều khiển truy cập đồng thời, có
thể phát sinh:n Mất dữ liệu cập nhậtn Đọc không cam kếtn Đọc không lặp lạin Đọc thừa
![Page 221: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/221.jpg)
Truy cập đồng thời và khoá
n Truy cập đồng thờin Mất dữ liệu cập nhật: dữ liệu của ứng dụng sau
làm thay đổi dữ liệu ứng dụng trước
![Page 222: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/222.jpg)
Truy cập đồng thời và khoá
n Truy cập đồng thờin Đọc không cam kết: đọc dữ liệu chưa được cập
nhật hoàn toàn
![Page 223: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/223.jpg)
Truy cập đồng thời và khoá
n Truy cập đồng thờin Đọc không lặp lại: không cho dữ liệu giống nhau
sau những câu lệnh thực hiện như nhau
![Page 224: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/224.jpg)
Truy cập đồng thời và khoá
n Truy cập đồng thờin Đọc ảo: đọc thêm những dòng dữ liệu không có
thực
![Page 225: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/225.jpg)
Truy cập đồng thời và khoá
n Truy cập đồng thờin Các mức cô lập
n DB2 cung cấp các mức khác nhau để bảo vệ sựcô lập dữ liệu§ Đọc với không cam kết (Uncommitted Read - UR)§ Ổn định con trỏ (Cursor Stability - CS)§ Đọc ổn định (Read Stability - RS)§ Đọc lặp lại (Repeatable Read - RR)
![Page 226: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/226.jpg)
Truy cập đồng thời và khoá
n Truy cập đồng thờin Các mức cô lập
n Đọc với không cam kết § Cung cấp mức cô lập thấp nhất đồng thời có mức
truy nhật đồng thời cao nhất§ Không có sự khoá dòng khi đọc nếu không có sự
thâm nhập để xoá hoặc sửa một bảng hoặc thao tác cập nhật dữ liệu
§ Vấn đề được ngăn ngừa: mất dữ liệu khi cập nhật§ Vấn đề tồn tại: đọc với không cam kết, đọc không
lặp lại, đọc ảo
![Page 227: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/227.jpg)
Truy cập đồng thời và khoá
n Truy cập đồng thờin Các mức cô lập
n Ổn định con trỏ§ Cấp cô lập mặc định, tạo một mức độ khoá tối thiểu§ Dòng hiện hành của con trỏ (cursor) sẽ bị kho᧠Nếu là dòng chỉ đọc, khoá sẽ được giữ cho đến khi
một dòng mới được lấy hoặc thao tác thực hiện bịngắt
§ Nếu dòng được cập nhật, khoá sẽ được giữ đến khi thao tác thực hiện kết thúc
![Page 228: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/228.jpg)
Truy cập đồng thời và khoá
n Truy cập đồng thờin Các mức cô lập
n Ổn định con trỏ§ Vấn đề được ngăn ngừa: mất dữ liệu khi cập nhật,
đọc với không cam kết§ Vấn đề tồn tại: đọc không lặp lại, đọc ảo
![Page 229: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/229.jpg)
Truy cập đồng thời và khoá
n Truy cập đồng thờin Các mức cô lập
n Đọc ổn định§ Tất cả các dòng trong phạm vi ứng dụng làm việc
đều bị kho᧠Con trỏ truy cập sẽ khoá tất cả các dòng đủ tiêu
chuẩn trong tập hợp kết quả§ Mức độ khoá vừa phải§ Vấn đề được ngăn ngừa: mất dữ liệu khi cập nhật,
đọc với không cam kết, đọc không lặp lại§ Vấn đề tồn tại: đọc ảo
![Page 230: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/230.jpg)
Truy cập đồng thời và khoá
n Truy cập đồng thờin Các mức cô lập
n Đọc lặp lại§ Mức độ khoá cao nhất, truy cập đồng thời thấp nhất§ Khoá giữ tất cả các dòng đang được xử lý để xây
dựng tập hợp kết quả, 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ị khoá
§ Không ứng dụng nào có thể thay đổi một dòng (thêm, xoá, sửa) nếu dòng đó ảnh hưởng đến tập hợp kết quả cho đến khi thao tác công việc được hoàn tất
![Page 231: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/231.jpg)
Truy cập đồng thời và khoá
n Truy cập đồng thờin Các mức cô lập
n Đọc lặp lại§ Cơ chế này đảm bảo những câu truy vấn tương tự
nhau của cùng một ứng dụng sẽ nhận được kết quả giống nhau tại cùng một thời điểm
§ Vấn đề được ngăn ngừa: mất dữ liệu khi cập nhật, đọc với không cam kết, đọc không lặp lại, đọc ảo
§ Vấn đề tồn tại: không còn
![Page 232: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/232.jpg)
Truy cập đồng thời và khoá
n Truy cập đồng thờin Các mức cô lập
n So sánh các mức cô lập
![Page 233: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/233.jpg)
Truy cập đồng thời và khoá
n Truy cập đồng thờin Các mức cô lập
n Đặt mức cô lập§ Có nhiều mức cô lập
§ Phiên làm việc trong ứng dụng§ Kết nối§ Câu lệnh
§ Mức cô lập bình thường được xác định tại phiên làm việc hoặc tại mức ứng dụng
§ Khi không chỉ rõ mức cô lập, mặc định sử dụng con trỏ ổn định
![Page 234: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/234.jpg)
Truy cập đồng thời và khoá
n Truy cập đồng thờin Các mức cô lập
n Đặt mức cô lập
![Page 235: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/235.jpg)
Truy cập đồng thời và khoá
n Truy cập đồng thờin Các mức cô lập
n Đặt mức cô lập
![Page 236: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/236.jpg)
![Page 237: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/237.jpg)
Truy cập đồng thời và khoá
n Khoá leo thangn Mỗi khoá trong DB2 sử dụng một phần bộ
nhớn Khi bộ tối ưu cho rằng tốt hơn là để một khoá
trên toàn bộ bảng thay vì khoá nhiều hàng thìxảy ra sự leo thang khoá
![Page 238: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/238.jpg)
Truy cập đồng thời và khoá
n Khoá leo thang
![Page 239: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/239.jpg)
Truy cập đồng thời và khoá
n Khoá leo thangn Có 2 tham số CSDL liên quan đến khoá
n LockList: số lượng bộ nhớ (trang 4K) dữ trữ đểquản lý những khoá trong mọi ứng dụng được nối. Trên Windows, mặc định là 50 lần của trang (200K)
n MaxLocks: phàn trăm cực đại của toàn bộ danh sách khoá cho một ứng dụng (mặc định 22%)
![Page 240: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/240.jpg)
Truy cập đồng thời và khoá
n Khoá leo thangn Với những giá trị ngầm định, khoá leo thang
xuất hiện khi một ứng dụng yêu cầu hơn 44K trong tổng số bộ nhớ khoá (200K * 22%)
n Tăng giá trị của 2 tham số sẽ làm giảm sựxuất hiện thường xuyên của khoá leo thang
n Khoá leo thang không tốt cho hiệu năng nhưng làm giảm xung đột
n Tệp nhật ký:
![Page 241: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/241.jpg)
Truy cập đồng thời và khoá
n Chờ khoá (Lock wait)n Khi 2 hoặc nhiều ứng dụng cần thực hiện
phép toán trên cùng đối tượng, một trong số đó có thể phải chờ để nhận được khoá
n Locktimeout (db cfg):n Ngầm định -1: chờ vô hạnn Thời gian đợi được tính bằng giây
![Page 242: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/242.jpg)
Truy cập đồng thời và khoá
n Bế tắc (deadlocks)n Xảy ra khi hai hay nhiều ứng dụng cùng kết
nối đến một CSDLn Mỗi ứng dụng lại chiếm dụng một phần tài
nguyên mà nó đang phục vụ cho nhu cầu khác
![Page 243: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/243.jpg)
Truy cập đồng thời và khoá
n Bế tắc (deadlocks)n Ví dụ mô phỏng tình huống
n Mở 2 cửa sổ CLP (CLP1 và CLP2)n CLP1:
db2 connect to sampledb2 +c update employee set firstnme = 'Mary' where
empno = '000050‘+c: không yêu cầu DB2 tự động cam kết lệnh này,
giữ lại khoá sau khi thực hiện
![Page 244: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/244.jpg)
Truy cập đồng thời và khoá
n Bế tắc (deadlocks)n Ví dụ mô phỏng tình huống
n CLP2:db2 connect to sampledb2 +c update employee set firstnme = ‘Tom’ where
empno = ‘000030’n CLP1:
db2 +c select * from employee where empno = ‘000030’
n CLP2:db2 +c select * from employee where empno =
‘000050’
![Page 245: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/245.jpg)
Truy cập đồng thời và khoá
n Truy cập đồng thời và thực tiễn khoá tốt nhấtn Thường xuyên sừ dụng COMMIT để giao
dịch ngắn nhấtn Chỉ ghi nhật ký giao dịch khi có yêu cầun Tẩy dữ liệu đã sử dụng nhanh chóng
n Thực hiện CSDL theo lô/nhóm
![Page 246: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/246.jpg)
Truy cập đồng thời và khoá
n Truy cập đồng thời và thực tiễn khoá tốt nhấtn Đặt tham số LOCKTIMEOUT cho CSDL (30
– 120), không nên để -1n Không yêu cầu dữ liệu nhiều hơn cần thiết
trong mỗi thao tác của ứng dụng
![Page 247: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/247.jpg)
![Page 248: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/248.jpg)
Phát triển ứng dụng
n Các thủ tục SQL PLn Hàm nội tuyến (inline SQL PL), hàm
người dùng tự định nghĩa (UDF), xử lý sựkiện bẫy lỗi (triggers)
n SQL/XML và Xqueryn Phát triển với Ngôn ngữ lập trình
![Page 249: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/249.jpg)
Phát triển ứng dụng
n Các thủ tục SQL PLn Hàm nội tuyến (inline SQL PL), hàm
người dùng tự định nghĩa (UDF), xử lý sựkiện bẫy lỗi (triggers)
n SQL/XML và Xqueryn Phát triển với Ngôn ngữ lập trình
![Page 250: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/250.jpg)
Thủ tục lưu trữ SQL PL
n Tổng quan về thủ tục lưu trữn IBM Data Studion Stored Procedure
![Page 251: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/251.jpg)
Thủ tục lưu trữ SQL PL
n Tổng quan về thủ tục lưu trữ
![Page 252: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/252.jpg)
Thủ tục lưu trữ SQL PL
n Tổng quan về thủ tục lưu trữn Thủ tục lưu trữ là một đối tượng CSDL, có
thể đóng gói các câu lệnh SQL và nghiệp vụ
n Lưu trữ hợp lý cho phép nâng cao hiệu suất thực hiện cũng như giảm băng thông mạng
n Thủ tục lưu trữ được thực hiện và quản lý bởi DB2
![Page 253: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/253.jpg)
Thủ tục lưu trữ SQL PL
n Tổng quan về thủ tục lưu trữn Thủ tục lưu trữ có thể được viết bằng SQL
PL, C/C++, Java, Cobol, ngôn ngữ hỗ trợCLR (Common Language Runtime), OLE
n Lợi ích của Thủ tụcn Bảo mậtn Hiệu năng
n Tập trung vào thủ tục SQL PL và tính đơn giản và phổ biến
![Page 254: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/254.jpg)
Thủ tục lưu trữ SQL PL
n IBM DATA STUDIOn Là công cụ hỗ trợ phát triển và quản lý các
ứng dụng CSDLn Được xây dựng trên nền tảng Eclipsen Giao diện IDE cho phép:
n Tạo, sửa đổi và xoá các đối tượng CSDL trong DB2
n Phát triển các ứng dụng SQLJn Tạo, sửa, kiểm tra lỗi các thủ tục lưu trữ SQL
(SQL Stored Procedure) và Javan Thực hiện di chuyển dữ liệu thuận tiện
![Page 255: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/255.jpg)
Thủ tục lưu trữ SQL PL
n IBM DATA STUDIOn Giao diện IDE cho phép:
n Phát triển các hàm người đùng tự định nghĩa (UDFs)
n Tối ưu hoá các truy vấnn …
![Page 256: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/256.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Có thể sử dụng bằng Command Editor
connect to samplecreate procedure p1 begin … end
n Có thể sử dụng IBM Data Studion Bước 1: Tạo một Projectn Bước 2: Tạo một thủ tụcn Bước 3: Biên dịch thủ tụcn Bước 4: Chạy thủ tục
![Page 257: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/257.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Cấu trúc cơ bản một thủ tục
n <statement>: một câu lệnh hoặc một nhóm câu lệnh nằm trong đoạn BEGIN … END
![Page 258: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/258.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Cấu trúc cơ bản một thủ tục
n Các thuộc tính tuỳ chọnLANGUAGE SQL: ngôn ngữ sử dụng trong thủ tục. Có thể
sử dụng LANGUAGE C hoặc LANGUAGE JAVARESULT SETS <n>: sử dụng nếu thủ tục trả về tập kết
quả <n>SPECIFIC my_unique_name: xác định tên duy nhất được
gán cho thủ tục. Thủ tục có thể nạp chồng (nhiều thủtục trùng tên với tham số khác nhau). Với SPECIFIC, cóthể gán một tên duy nhất cho tất cả các thủ tục này.
![Page 259: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/259.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Tham số
n Tất cả các tham số phải có khi gọi thủ tụcCALL proc (10, ?, 5)
![Page 260: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/260.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Tham số
![Page 261: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/261.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Chú thích
![Page 262: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/262.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Câu lệnh ghép
![Page 263: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/263.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Khai báo biến
![Page 264: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/264.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Phép gán
![Page 265: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/265.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Con trỏ (cursor): trỏ tới tập kết quả trả về
bởi SELECT
![Page 266: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/266.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Con trỏ (cursor):
![Page 267: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/267.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Câu lệnh điều khiển:
![Page 268: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/268.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Câu lệnh điều khiển (ví dụ CASE):CREATE PROCEDURE UPDATE_DEPT (IN p_workdept)LANGUAGE SQLBEGIN
DECLARE v_workdept CHAR(3);SET v_workdept = p_workdept;
CASE v_workdeptWHEN 'A00' THEN
UPDATE department SET deptname = 'D1';WHEN 'B01' THEN
UPDATE department SET deptname = 'D2';ELSE
UPDATE department SET deptname = 'D3';END CASE
END
![Page 269: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/269.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Câu lệnh điều khiển (ví dụ IF):CREATE PROCEDURE UPDATE_SAL (IN empNum CHAR(6), INOUT rating SMALLINT)LANGUAGE SQLBEGIN
IF rating = 1 THENUPDATE employee SET salary = salary * 1.10, bonus = 1000 WHERE empno = empNum;
ELSEIF rating = 2 THENUPDATE employee SET salary = salary * 1.05, bonus = 500 WHERE empno = empNum;
ELSEUPDATE employee SET salary = salary * 1.03, bonus = 0 WHERE empno = empNum;
END IF;END
![Page 270: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/270.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Câu lệnh điều khiển (ví dụ FOR):
CREATE PROCEDURE P()LANGUAGE SQLBEGIN ATOMIC
DECLARE fullname CHAR(40);
FOR v AS cur1 CURSOR FOR SELECT firstnme, midinit, lastname FROM employee
DO SET fullname = v.lastname || ',' || v.firstnme ||' ' || v.midinit;INSERT INTO tnames VALUES (fullname);
END FOR;END
![Page 271: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/271.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Câu lệnh điều khiển (ví dụ WHILE):
CREATE PROCEDURE sum_mn (IN p_start INT,IN p_end INT, OUT p_sum INT)
SPECIFIC sum_mnLANGUAGE SQLsmn: BEGINDECLARE v_temp INTEGER DEFAULT 0;DECLARE v_current INTEGER;SET v_current = p_start;WHILE (v_current <= p_end) DO
SET v_temp = v_temp + v_current;SET v_current = v_current + 1;
END WHILE;p_sum = v_current;END smn;
![Page 272: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/272.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Câu lệnh điều khiển (ví dụ LOOP):
CREATE PROCEDURE ITERATOR()LANGUAGE SQLBEGIN
DECLARE v_deptno CHAR(3); DECLARE v_deptname VARCHAR(29); DECLARE at_end INTEGER DEFAULT 0;DECLARE not_found CONDITION FOR SQLSTATE '02000';DECLARE c1 CURSOR FOR SELECT deptno, deptname FROM department ORDER BY deptno;DECLARE CONTINUE HANDLER FOR not_found SET at_end = 1;OPEN c1;
ins_loop: LOOPFETCH c1 INTO v_deptno, v_deptname; IF at_end = 1 THEN
LEAVE ins_loop;ELSEIF v_dept = 'D11' THEN
ITERATE ins_loop;END IF;INSERT INTO department (deptno, deptname) VALUES ('NEW', v_deptname);
END LOOP; CLOSE c1;
END
![Page 273: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/273.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Xử lý lỗi và điều kiện:
n Hai từ khoá SQLCODE và SQLSTATE đểxác định thành công hay không khi thực thi một câu lệnh SQL
n Hai từ khoá này phải khai báo tường minh trong thủ tục
DECLARE SQLCODE INTDECLARE SQLSTATE CHAR(5)
n Giá trị các biến được thiết lập sau mỗi thao tác SQL
![Page 274: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/274.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Xử lý lỗi và điều kiện:
n SQLCODE§ = 0, thành công§ > 0, thành công có cảnh báo§ < 0, không thành công§ = 100 không tìm thấy dữ liệu
n SQLSTATE§ Thành công: SQLSTATE ‘00000’§ Không thấy: SQLSTATE ‘02000’§ Cảnh báo: SQLSTATE ’01XXX’§ Trường hợp đặc biệt: các giá trị khác
![Page 275: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/275.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Xử lý điều kiện:
n Cần tạo trình xử lý điều kiện với những yếu tố:§ Điều kiện mà nó phải xử lý§ Nơi phục hồi lại quá trình thực thi (CONTINUE,
EXIT hoặc UNDO)§ Hành động được thi hành để xử lý điều kiện
n Các loại điều khiển (handler)§ CONTINUE§ EXIT§ UNDO
![Page 276: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/276.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Xử lý điều kiện:
![Page 277: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/277.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn SQL động:
n Toàn bộ câu lệnh không được xác định trước, chỉ được nhận biết trong chế độ RUN-TIME
n Được khuyến cáo dùng cho DDL để tránh sai sót xảy ra khi đóng gói
![Page 278: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/278.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn SQL động:
n Có thể được thực thi theo hai cách§ EXECUTE IMMEDIATE: ý tưởng để thực thi thủ
tục SQL đơn§ PREPARE + EXECUTE: ý tưởng để thực thi đa
thủ tục SQL
![Page 279: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/279.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn SQL động:
![Page 280: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/280.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Gọi thủ tục (từ CLI):
![Page 281: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/281.jpg)
Thủ tục lưu trữ SQL PL
n STORED PROCEDUREn Gọi thủ tục (từ VB.NET):
![Page 282: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/282.jpg)
![Page 283: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/283.jpg)
Phát triển ứng dụng
n Các thủ tục SQL PLn Hàm nội tuyến (inline SQL PL), hàm
người dùng tự định nghĩa (UDF), xử lý sựkiện bẫy lỗi (triggers)
n SQL/XML và Xqueryn Phát triển với Ngôn ngữ lập trình
![Page 284: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/284.jpg)
Hàm – bẫy lỗi
n Nội tuyến (inline SQL PL)n Là ngôn ngữ PL SQL được sử dụng độc
lập, không nằm trong một thủ tục nàon SQL nội tuyến chỉ hỗ trợ một số câu lệnh
(không phải tất cả câu lệnh PL SQL): DECLARE, SET, CASE, FOR, GOTO, IF, RETURN, SIGNAL, WHILE, ITERATE, LEAVE
n Ví dụ về hàm nội tuyến
![Page 285: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/285.jpg)
Hàm – bẫy lỗi
n Hàm người dùng định nghĩa (UDFs)n Luôn trả lại một giá trịn Nhiều hàm được định nghĩa sẵn: n Có thể sử dụng các ngôn ngữ khác nhau:
SQL PL, C/C++, JAVA, CLR, OLEn Có hai loại hàm: hàm vô hướng (Sclara
Function) và hàm bảng (Table Function)
![Page 286: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/286.jpg)
Hàm – bẫy lỗi
n Hàm người dùng định nghĩa (UDFs)n Hàm vô hướng
n Là hàm trả lại giá trị đơnn Không chứa các câu lệnh SQLn Nhiều hàm đã được định nghĩa sẵn (build-in
function)n Có thể định nghĩa thêm hàm mới (bằng
Command line hoặc Data Studio)
![Page 287: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/287.jpg)
Hàm – bẫy lỗi
n Hàm người dùng định nghĩa (UDFs)n Hàm vô hướng
![Page 288: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/288.jpg)
Hàm – bẫy lỗi
n Hàm người dùng định nghĩa (UDFs)n Hàm vô hướng
![Page 289: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/289.jpg)
Hàm – bẫy lỗi
n Hàm người dùng định nghĩa (UDFs)n Hàm bảng
n Trả lại một bảng dữ liệu các hàngn Có thể gọi trong mệnh đề FROM của truy vấnn Có thể sử dụng các câu lệnh INSERT,
UPDATE, DELETEn Tương tự như VIEW nhưng có hiệu quả thực
hiện cao hơn
![Page 290: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/290.jpg)
Hàm – bẫy lỗi
n Hàm người dùng định nghĩa (UDFs)n Hàm bảng
![Page 291: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/291.jpg)
Hàm – bẫy lỗi
n Hàm người dùng định nghĩa (UDFs)n Hàm bảng
![Page 292: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/292.jpg)
Hàm – bẫy lỗi
n Bẫy lỗi (Trigger)n Trigger là đối tượng CSDL được định
nghĩa trên một bảng và tự động thực hiện khi có một trong những thao tác INSERT, UPDATE, DELETE được thực hiện trên bảng đó
n Các thao tác là nguyên nhân để các Trigger được thực thi gọi là SQL triggering
![Page 293: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/293.jpg)
Hàm – bẫy lỗi
n Bẫy lỗi (Trigger)n Có 3 loại bẫy lỗi
n Bẫy trước (before): § Được thực hiện trước khi một dòng được thay đổi§ Các thao tác thực hiện trong bẫy này không kích
hoạt những bẫy khác (không sử dụng các lệnh INSERT, UPDATE, DELETE trong bẫy)
n Bẫy sau (after):§ Được thực thi sau khi SQL triggering thực hiện
thành công§ Các thao tác thực hiện trong bẫy này kích hoạt
những bẫy khác (16 cấp) và hỗ trợ các lệnh INSERT, UPDATE, DELETE
![Page 294: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/294.jpg)
Hàm – bẫy lỗi
n Bẫy lỗi (Trigger)n Có 3 loại bẫy lỗi
n Bẫy thay thế (instead of)§ Được định nghĩa trong View§ Thay thế cho các bẫy khác khi thực hiện cập nhật
dữ liệu trên View
![Page 295: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/295.jpg)
Hàm – bẫy lỗi
n Bẫy lỗi (Trigger)n Bẫy trước:
![Page 296: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/296.jpg)
Hàm – bẫy lỗi
n Bẫy lỗi (Trigger)n Bẫy trước:
![Page 297: Csdl Db2 - Slide](https://reader031.vdocuments.net/reader031/viewer/2022013118/55721331497959fc0b91cb96/html5/thumbnails/297.jpg)
Hàm – bẫy lỗi
n Bẫy lỗi (Trigger)n Bẫy sau: