297
HQUN TRỊ CƠ SỞ DLIU DB2 EXPRESS – C 9.5 Mai Thanh Trúc (Ma.)

Csdl Db2 - Slide

Embed Size (px)

Citation preview

Page 1: Csdl Db2 - Slide

HỆ QUẢN TRỊ CƠ SỞDỮ LIỆU

DB2 EXPRESS – C 9.5

Mai Thanh Trúc (Ma.)

Page 2: Csdl Db2 - Slide

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

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

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

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

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

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

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

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

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

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

DB2 Express – C là gì?

n Máy chủ DB2

Page 13: Csdl Db2 - Slide

DB2 Express – C là gì?

n Máy khách DB2

Page 14: Csdl Db2 - Slide

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

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

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

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

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
Page 20: Csdl Db2 - Slide

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

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

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
Page 24: Csdl Db2 - Slide

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

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

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

Cài đặt DB2 Express – C

n Hướng dẫn cài đặt từng bước

Page 28: Csdl Db2 - Slide

Cài đặt DB2 Express – C

n Hướng dẫn cài đặt từng bước

Page 29: Csdl Db2 - Slide

Cài đặt DB2 Express – C

n Hướng dẫn cài đặt từng bước

Page 30: Csdl Db2 - Slide

Cài đặt DB2 Express – C

n Hướng dẫn cài đặt từng bước

Page 31: Csdl Db2 - Slide

Cài đặt DB2 Express – C

n Hướng dẫn cài đặt từng bước

Page 32: Csdl Db2 - Slide

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
Page 34: Csdl Db2 - Slide

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

Môi trường của DB2 Express – C

n Giới thiệu

Page 36: Csdl Db2 - Slide

Môi trường của DB2 Express – C

n Các thể hiện (Instances)

Page 37: Csdl Db2 - Slide

Môi trường của DB2 Express – C

n Các thể hiện (Instances)

Page 38: Csdl Db2 - Slide

Môi trường của DB2 Express – C

n Các thể hiện (Instances)

Page 39: Csdl Db2 - Slide

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

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

Môi trường của DB2 Express – C

n Các cơ sở dữ liệu (Databases)

Page 42: Csdl Db2 - Slide

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

Môi trường của DB2 Express – C

n Các cơ sở dữ liệu (Databases)

Page 44: Csdl Db2 - Slide

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

Môi trường của DB2 Express – C

n Không gian bảng trong CSDL

Page 46: Csdl Db2 - Slide

Môi trường của DB2 Express – C

n Không gian bảng trong CSDL

Page 47: Csdl Db2 - Slide

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

Môi trường của DB2 Express – C

n Không gian bảng trong CSDL

Page 49: Csdl Db2 - Slide

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

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

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

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

Môi trường của DB2 Express – C

n Cấu hình DB2

Page 54: Csdl Db2 - Slide

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

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

Môi trường của DB2 Express – C

n Cấu hình DB2

Page 57: Csdl Db2 - Slide

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

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

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

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

Môi trường của DB2 Express – C

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

Page 62: Csdl Db2 - Slide
Page 63: Csdl Db2 - Slide

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

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

Công cụ của DB2 Express – C

n Công cụ của DB2

Page 66: Csdl Db2 - Slide

Công cụ của DB2 Express – C

n Công cụ của DB2

Page 67: Csdl Db2 - Slide

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

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

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

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

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

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

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

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

Công cụ của DB2 Express – C

n Trình trợ giúp SQL (SQL Assist)

Page 76: Csdl Db2 - Slide

Công cụ của DB2 Express – C

n Trung tâm tác vụ (Task Center)

Page 77: Csdl Db2 - Slide

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

Công cụ của DB2 Express – C

n Nhật ký (Journal)

Page 79: Csdl Db2 - Slide

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
Page 81: Csdl Db2 - Slide

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

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

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

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

Kiến trúc của DB2

n Mô hình xử lý của DB2

Page 86: Csdl Db2 - Slide

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

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

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

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

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

Kiến trúc của DB2

n Mô hình bộ nhớ của DB2

Page 92: Csdl Db2 - Slide

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
Page 110: Csdl Db2 - Slide

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

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

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

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

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

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

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

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

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

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

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

Kết nối máy khách DB2

n Cài đặt trên máy khách

Page 122: Csdl Db2 - Slide

Kết nối máy khách DB2

n Cài đặt trên máy khách

Page 123: Csdl Db2 - Slide

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

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

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

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

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

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
Page 130: Csdl Db2 - Slide

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
Page 150: Csdl Db2 - Slide

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

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

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

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

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

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

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

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
Page 159: Csdl Db2 - Slide

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

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

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

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

Bảo mật cơ sở dữ liệu

n Xác thực (authentication)

Page 164: Csdl Db2 - Slide

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

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

Bảo mật cơ sở dữ liệu

n Quyền hạn (authorization)

Page 167: Csdl Db2 - Slide

Bảo mật cơ sở dữ liệu

n Quyền hạn (authorization) – các cấp

Page 168: Csdl Db2 - Slide

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

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

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

Bảo mật cơ sở dữ liệu

n Lệnh GRANT và REVOKE

Page 172: Csdl Db2 - Slide

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
Page 174: Csdl Db2 - Slide

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

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

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

Sao lưu và phục hồi

n Nhật ký CSDL (Database Logging)

Page 178: Csdl Db2 - Slide

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

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

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

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

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

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

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

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

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

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

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
Page 190: Csdl Db2 - Slide

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

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
Page 193: Csdl Db2 - Slide

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

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

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

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

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

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
Page 200: Csdl Db2 - Slide

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

Bảo trì

n Tổng quann REORGn RUNSTATSn REBIND

Page 202: Csdl Db2 - Slide

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

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

Bảo trì

n REORG

n Có thể thực hiện qua Control Center

Page 205: Csdl Db2 - Slide

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

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

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

Bảo trì

n BIND/REBIND

Page 209: Csdl Db2 - Slide

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
Page 211: Csdl Db2 - Slide

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

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

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

Truy cập đồng thời và khoá

n Tổng quann Giao dịch

Page 215: Csdl Db2 - Slide

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

Truy cập đồng thời và khoá

n Tổng quann Truy cập đồng thời

Page 217: Csdl Db2 - Slide

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

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

Truy cập đồng thời và khoá

n Tổng quann Khoá

Page 220: Csdl Db2 - Slide

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
Page 237: Csdl Db2 - Slide

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

Truy cập đồng thời và khoá

n Khoá leo thang

Page 239: Csdl Db2 - Slide

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

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

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

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

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

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

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

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
Page 248: Csdl Db2 - Slide

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

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

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

Thủ tục lưu trữ SQL PL

n Tổng quan về thủ tục lưu trữ

Page 252: Csdl Db2 - Slide

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

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

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

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

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

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

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

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

Thủ tục lưu trữ SQL PL

n STORED PROCEDUREn Tham số

Page 261: Csdl Db2 - Slide

Thủ tục lưu trữ SQL PL

n STORED PROCEDUREn Chú thích

Page 262: Csdl Db2 - Slide

Thủ tục lưu trữ SQL PL

n STORED PROCEDUREn Câu lệnh ghép

Page 263: Csdl Db2 - Slide

Thủ tục lưu trữ SQL PL

n STORED PROCEDUREn Khai báo biến

Page 264: Csdl Db2 - Slide

Thủ tục lưu trữ SQL PL

n STORED PROCEDUREn Phép gán

Page 265: Csdl Db2 - Slide

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

Thủ tục lưu trữ SQL PL

n STORED PROCEDUREn Con trỏ (cursor):

Page 267: Csdl Db2 - Slide

Thủ tục lưu trữ SQL PL

n STORED PROCEDUREn Câu lệnh điều khiển:

Page 268: Csdl Db2 - Slide

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

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

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

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

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

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

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

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

Thủ tục lưu trữ SQL PL

n STORED PROCEDUREn Xử lý điều kiện:

Page 277: Csdl Db2 - Slide

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

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

Thủ tục lưu trữ SQL PL

n STORED PROCEDUREn SQL động:

Page 280: Csdl Db2 - Slide

Thủ tục lưu trữ SQL PL

n STORED PROCEDUREn Gọi thủ tục (từ CLI):

Page 281: Csdl Db2 - Slide

Thủ tục lưu trữ SQL PL

n STORED PROCEDUREn Gọi thủ tục (từ VB.NET):

Page 282: Csdl Db2 - Slide
Page 283: Csdl Db2 - Slide

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

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

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

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

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

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

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

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

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

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

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

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

Hàm – bẫy lỗi

n Bẫy lỗi (Trigger)n Bẫy trước:

Page 296: Csdl Db2 - Slide

Hàm – bẫy lỗi

n Bẫy lỗi (Trigger)n Bẫy trước:

Page 297: Csdl Db2 - Slide

Hàm – bẫy lỗi

n Bẫy lỗi (Trigger)n Bẫy sau: