Chuẩn bị cho kỳ thi 733 về Phát triển ứng dụng DB2 9, Phần 9: Các thường trình do người dùng định nghĩa doc

80 312 0
Chuẩn bị cho kỳ thi 733 về Phát triển ứng dụng DB2 9, Phần 9: Các thường trình do người dùng định nghĩa doc

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chuẩn bị cho kỳ thi 733 về Phát triển ứng dụng DB2 9, Phần 9: Các thường trình do người dùng định nghĩa Tích hợp logic nghiệp vụ phức tạp và có tùy biến vào các câu lệnh SQL của bạn Ted J. Wasserman, Tư vấn CSDL, IBM Tóm tắt: Tìm hiểu cách tạo và sử dụng các thường trình do người dùng định nghĩa trong DB2® 9 của IBM®. Đây là hướng dẫn cuối cùng trong một loạt bài gồm chín hướng dẫn mà bạn có thể sử dụng để trợ giúp chuẩn bị cho kỳ thi cấp chứng chỉ Phát triển ứng dụng DB2 9 (kỳ thi 733). Trước khi bạn bắt đầu Về loạt bài này Chứng chỉ Nhà phát triển ứng dụng được IBM công nhận xác nhận với những người khác rằng bạn là một nhà phát triển ứng dụng mức trung cấp hoặc cao cấp về DB2 cho Linux™, UNIX® và Windows®. Nó cũng chỉ ra rằng bạn có các kỹ năng giỏi trong tất cả các nhiệm vụ lập trình chung cũng như lập trình SQL nhúng, lập trình ODBC/CLI, lập trình.NET hoặc lập trình Java ™. Loạt bài gồm chín hướng dẫn miễn phí này được thiết kế để giúp bạn chuẩn bị cho kỳ thi lấy chứng chỉ Phát triển ứng dụng DB2 9 cho Linux, UNIX và Windows (kỳ thi 733). Mỗi hướng dẫn bao gồm một liên kết đến một bản tải về dùng thử miễn phí DB2 9 cho Linux, UNIX và Windows. Các hướng dẫn này cung cấp một cơ sở vững chắc cho mỗi phần của kỳ thi. Tuy nhiên, bạn không nên dựa vào các hướng dẫn này như là sự chuẩn bị duy nhất của bạn cho kỳ thi này. Hướng dẫn này trình bày về cái gì? Trong hướng dẫn này, bạn sẽ tìm hiểu về cách tạo và sử dụng các thường trình do người dùng định nghĩa trong DB2 9. Bạn sẽ thấy cách có thể sử dụng các đối tượng ứng dụng cơ sở dữ liệu phía máy chủ để đơn giản hóa và tăng tốc độ các ứng dụng của bạn. Hướng dẫn này bao gồm các chủ đề sau:  Các hàm do người dùng định nghĩa.  Các thủ tục lưu sẵn  DB2 Developer Workbench (Bàn làm việc của nhà phát triển DB2). Đây là hướng dẫn cuối cùng trong một loạt gồm chín hướng dẫn mà bạn có thể sử dụng để trợ giúp chuẩn bị cho việc cấp chứng chỉ Phát triển ứng dụng DB2 9 (kỳ thi 733). Các tài liệu trong hướng dẫn này chủ yếu trình bày các mục tiêu của Phần 9 của kỳ thi, mang tên "Các thường trình do người dùng định nghĩa". Các yêu cầu hệ thống Bạn không cần dùng một bản sao của DB2 9 để hoàn tất hướng dẫn này; tuy nhiên, bạn có thể tải về một bản DB2 Express C miễn phí từ trang web DB2 Express-C để thực hành các kỹ năng của bạn. DB2 Developer Workbench cũng có sẵn để tải về miễn phí từ trang Web Fix Pack DB2 9. Xin lưu ý rằng một số tài liệu được thảo luận trong hướng dẫn này chỉ áp dụng với DB2 cho Linux, UNIX và Windows và không cho DB2 trên nền tảng khác, chẳng hạn như Hệ thống z hoặc Hệ thống i. Ai nên dùng hướng dẫn này? Hướng dẫn này được thiết kế cho bất kỳ ai quan tâm đến việc học tập về các khái niệm lập trình DB2 cao cấp và chuẩn bị cho kỳ thi lấy chứng chỉ phát triển ứng dụng DB2 9 (kỳ thi 733). Các điều kiện cần trước Trước khi tham dự kỳ thi 733, bạn phải vượt qua được kỳ thi về các khái niệm cơ bản của Họ DB2 9 (kỳ thi 730). Bạn có thể sử dụng Loạt bài hướng dẫn các khái niệm cơ bản của họ DB2 để giúp chuẩn bị cho kỳ thi đó. Đối với hướng dẫn này để có ích, bạn cần phải có kiến thức nền tảng về hoạt động của cơ sở dữ liệu quan hệ cũng như các kiến thức cơ bản về các khái niệm sau đây:  Các cơ sở dữ liệu.  Các cấu trúc lập trình cơ sở dữ liệu.  Biên dịch ứng dụng. Xem xét lại thuật ngữ. Trước khi bắt đầu hướng dẫn này, bạn nên hiểu rõ khái niệm về một kế hoạch truy cập SQL. Nói ngắn gọn, một kế hoạch truy cập là tập hợp các bước mà DB2 sử dụng để thực hiện một câu lệnh SQL và truy cập dữ liệu. Nó bao gồm các chỉ mục được sử dụng, các thời điểm trong đó các trường được lấy ra từ các bảng cơ sở dữ liệu và thứ tự các bước có thực hiện truy vấn. Kế hoạch truy cập được nhân cơ sở dữ liệu tạo ra dựa trên câu lệnh SQL được đệ trình. Lý tưởng, cơ sở dữ liệu lựa chọn kế hoạch truy cập tối ưu - đó là, kế hoạch sẽ trả về dữ liệu hiệu quả và nhanh chóng nhất. Các hàm do người dùng định nghĩa Các hàm do người dùng định nghĩa là gì? Các hàm do người dùng định nghĩa (User-defined functions - UDFs) là các hàm được người sử dụng định nghĩa chạy trong nhân cơ sở dữ liệu. Các UDF gói gọn một bộ các câu lệnh SQL hay các câu lệnh theo thủ tục chạy thường xuyên trong một đơn vị. Điều này được lợi về quản lý mã thay vì phải lặp lại liên tục logic phức tạp hay logic bình thường trong nhiều câu lệnh, bạn có thể cô lập logic đó trong một hàm đơn. Trong DB2, có một số kiểu hàm khác nhau cũng như các ngôn ngữ lập trình khác nhau mà bạn có thể viết chúng theo các ngôn ngữ đó. Liệt kê sau đây tóm tắt các kiểu hàm khác nhau trong DB2:  Hàm vô hướng SQL : Trả về một giá trị kiểu dữ liệu nhờ SQL.  Hàm hàng SQL : Trả về một hàng dữ liệu nhờ SQL.  Hàm bảng SQL : Trả về một bảng SQL dựa trên SQL.  Hàm vô hướng bên ngoài : Trả về một kiểu dữ liệu; được viết bằng một ngôn ngữ lập trình bên ngoài.  Hàm bảng bên ngoài : Trả về một bảng đầy đủ; được viết bằng một ngôn ngữ lập trình bên ngoài.  Hàm bảng bên ngoài OLE DB : Một hàm bảng bên ngoài OLE DB do người dùng định nghĩa được đăng ký trong cơ sở dữ liệu để truy cập dữ liệu từ một nhà cung cấp OLE DB.  Hàm có nguồn gốc hoặc Khuôn mẫu : Dựa vào hàm hoặc khuôn mẫu khác. Như bạn thấy trong danh sách trên, các kiểu hàm này chủ yếu chia thành hai kiểu hàm khác biệt. Kiểu chung nhất là một hàm trong hay SQL, đó là một hàm được viết khi sử dụng một tập hợp con của ngôn ngữ thủ tục SQL của DB2 (DB2's SQL Procedural Language - SQL PL). Các hàm cũng có thể được viết bằng các ngôn ngữ lập trình bên ngoài như C/C++, VB.NET hoặc ngôn ngữ Java. Các hàm này được gọi là các hàm ngoài. Mã đối với các hàm trong được lưu trữ trong các bảng danh mục (catalog) cơ sở dữ liệu, trong khi các hàm ngoài chỉ là các tham chiếu đến nơi trong hệ thống tệp, mà các mã của ngôn ngữ lập trình ngoài đã biên dịch được lưu trữ ở đó. Một sự khác nhau quan trọng giữa các hàm SQL và các hàm ngoài là vị trí mà bạn dịch chúng. Một hàm SQL có thể được dịch hoặc từ xa hoặc tại chỗ, do nó sẽ được lưu trữ trong các bảng danh mục của cơ sở dữ liệu. Một hàm ngoài không linh hoạt. Nó phải được biên dịch trên máy tính có một trình biên dịch thích hợp, với thư viện biên dịch sau đó chuyển sang máy chủ. Đôi khi, tùy thuộc vào ngôn ngữ lập trình được sử dụng, hệ điều hành và phần cứng bên dưới cần phải có cùng trên cả hai máy biên dịch và máy chủ cơ sở dữ liệu cho mã đã dịch hoạt động. Đây là một lý do các hàm SQL thường được ưa thích hơn các hàm ngoài, đặc biệt là trong các ứng dụng cần nhiều hệ điều hành và nhiều cấu hình phần cứng. Liệt kê sau đây tóm tắt các ngôn ngữ lập trình mà bạn có thể dùng để viết các UDF:  SQL PL của DB2 (với các hàm được viết khi sử dụng một hoặc nhiều câu lệnh SQL).  C/C++.  Ngôn ngữ Java.  Ngôn ngữ.NET CLR như C#.  OLE. Bạn sẽ tìm hiểu về các hàm SQL và các hàm ngoài trong hai phần tiếp theo. Bạn sẽ tìm hiểu sâu hơn các hàm SQL, bởi vì chúng là kiểu chung nhất. Các hàm SQL do người dùng định nghĩa Tạo một hàm Các hàm SQL rất dễ tạo ra và sử dụng trong các ứng dụng. Các câu lệnh CREATE FUNCTION định nghĩa các đặc tính và logic của hàm, được lưu trữ trong danh mục hệ thống DB2. Hoạt động này được gọi là đăng ký một hàm. Một phiên bản đơn giản của sơ đồ cú pháp CREATE FUNCTION được hiển thị trong Liệt kê 1, với giải thích về các bộ phận chính của nó: Liệt kê 1. Sơ đồ cú pháp CREATE FUNCTION >>-CREATE FUNCTION function-name > > ( + + ) * > | , | | V | | ' parameter-name data-type1-+-' > RETURNS +-data-type2 + * > '-+-ROW + | column-list |-' '-TABLE-' LANGUAGE SQL > + + * + + * > '-SPECIFIC specific-name-' NOT DETERMINISTIC EXTERNAL ACTION > + + * + + * > '-DETERMINISTIC ' '-NO EXTERNAL ACTION-' READS SQL DATA > + + * + + * > +-CONTAINS SQL + | | '-MODIFIES SQL DATA ' > | SQL-function-body | > column-list: , V | | ( column-name data-type3-+ ) | SQL-function-body: | +-RETURN Statement + | '-dynamic-compound-statement-' Các mệnh đề phổ biến nhất của câu lệnh CREATE FUNCTION như sau:  function-name: Tên của hàm.  Kiểu RETURNS: Kiểu của hàm đang được tạo. Các kiểu có sẵn là hàm vô hướng, hàng và bảng. Bạn sẽ tìm hiểu về từng kiểu hàm chi tiết hơn trong các phần tương ứng có tên "Các hàm vô hướng," "Các hàm hàng" và "Các hàm bảng" dưới đây. Để chỉ rõ một hàm vô hướng, bạn chỉ cần nhận biết kiểu dữ liệu đang được trả về (bạn không cần phải sử dụng từ khóa SCALAR).  SPECIFIC (Cụ thể): Bạn có thể gán cho hàm một tên cụ thể, chứ không phải là DB2 gán một tên duy nhất do hệ thống tạo ra. Điều này rất có ích nếu bạn sử dụng các hàm quá tải có nghĩa là, hàm có cùng tên nhưng có một số các tham số khác nhau.  DETERMINISTIC (Tất định): Chỉ rõ xem hàm có trả về cùng một kết quả mỗi khi nó được thực hiện với cùng một bộ các tham số đầu vào hay không. Các hàm tất định bao gồm các hàm toán học và các hàm không phụ thuộc vào dữ liệu trong các bảng hoặc thay đổi các nguồn dữ liệu.  EXTERNAL ACTION (Hoạt động bên ngoài): Xác định xem hàm có bất kỳ tác động nào đến các chương trình bên ngoài không.  [READS|CONTAINS|MODIFIES] SQL: Xác định hàm này tương tác với cơ sở dữ liệu thông qua SQL như thế nào.  SQL-function-body: (thân hàm SQL): Đây là cốt lõi của hàm, nơi mà câu lệnh CREATE FUNCTION có chứa logic. Câu lệnh CREATE FUNCTION Phần này trình bày một số ví dụ mã cho biết ý nghĩa của các mệnh đề trong câu lệnh CREATE FUNCTION. [...]... không còn trả về bảng dự kiến với ba cột, mà chỉ trả về hai cột ban đầu được xác định khi bảng đã được tạo ra Tình trạng này phát sinh vì dấu * được sử dụng trong định nghĩa hàm và được giải quyết trong thời gian tạo, chứ không phải trong thời gian thực hiện Các hàm ngoài do người dùng định nghĩa Sử dụng các hàm ngoài Khả năng để tham khảo các chương trình ngoài như là các hàm giúp cho các câu lệnh... (Q4.EDLEVEL = DOUBLE(Q3.$C0))) AS Q5) AS Q6 Các hàm hàng Một hàm hàng không trả về một hàng dữ liệu, như bạn có thể mong đợi từ tên của nó Nó thực sự được sử dụng để biến đổi một kiểu dữ liệu có cấu trúc thành các thành phần riêng biệt của nó Các kiểu có cấu trúc do người dùng định nghĩa (UDST) là các kiểu dữ liệu được người sử dụng định nghĩa với tham chiếu đến một hoặc nhiều kiểu dữ liệu DB2 Do đó, bạn... hàm thay vì một ứng dụng khách Hàm CHANGESAL được tạo bởi dòng đơn trong mã thủ tục: RETURN sal * 2 Các phần khác tạo nên định nghĩa hàm Hàm nhận con số tiền lương của một nhân viên (một giá trị DOUBLE) làm đầu vào Nó cũng chấp nhận các giá trị số khác, chẳng hạn như một số nguyên INTEGER, do DB2 ngầm định tạo khuôn mẫu chúng cho bạn Liệt kê 9 Một hàm vô hướng đơn giản do người dùng định nghĩa CREATE... sử dụng để chỉ rõ một hàm có hay không thường xuyên trả về cùng giá trị Thông tin này sau đó có thể được DB2 sử dụng để tối ưu hoá cách thức gọi hàm, do DB2 sẽ nhớ nhanh (cache) giá trị của hàm nếu nó đã được chạy một lần trước đó và tất định Nếu một hàm sử dụng bất kỳ các số đăng ký đặc biệt nào hoặc gọi bất kỳ các hàm không tất định nào, nó được coi là không tất định Liệt kê 6 chỉ ra một ví dụ về. .. biệt giữa việc sử dụng các câu lệnh thủ tục trong các hàm và trong các thủ tục, phần dưới đây với tên "Các thủ tục lưu sẵn" trình bày cách sử dụng nâng cao hơn về các câu lệnh SQL phức hợp và cung cấp thêm các ví dụ Các hàm vô hướng Một hàm vô hướng SQL là kiểu hàm SQL phổ biến nhất Nó trả về một giá trị theo một kiểu dữ liệu mà DB2 cho phép Ví dụ đơn giản trong Liệt kê 9 minh họa cách bạn có thể nhúng... -' Bạn sẽ tìm hiểu về những phần chính của câu lệnh phức hợp trong các phần con sau đây DECLARE Khai báo (DECLARE) cho phép bạn khai báo các biến trong khối Kiểu dữ liệu có thể là bất kỳ kiểu nào do người dùng định nghĩa hoặc kiểu dữ liệu SQL chuẩn, ngoại trừ kiểu dữ liệu XML Nếu chưa cho giá trị mặc định đối với một kiểu dữ liệu, khi khai báo nó sẽ tự động được thi t lập là NULL Dưới đây là... HANDLING) hiện không dùng cho các hàm Các câu lệnh kiểm soát SQL Lưu ý rằng không phải tất cả các câu lệnh được dùng trong các thủ tục lưu sẵn SQL là có trong các UDF Hơn nữa, một số các câu lệnh trong sơ đồ cú pháp nêu trên chỉ được hỗ trợ trong các hàm bảng Những câu lệnh khác, chẳng hạn như câu lệnh CALL cũng có những hạn chế nhất định về cách chúng có thể được sử dụng trong các hàm Do có một số khác... hợp các nhân viên của một bộ phận Nó chấp nhận một tham số đầu vào theo kiểu VARCHAR Bảng do hàm trả về được tạo từ bốn cột, cột đầu tiên là một số nguyên INTEGER, các cột còn lại là các VARCHAR Hàm trả về một tập hợp các hàng do câu lệnh SELECT định nghĩa Cột đầu tiên của câu lệnh SELECT là một biểu thức đặc biệt để tạo ra việc sử dụng các hàm gộp của DB2 Biểu thức này trả về một giá trị số nguyên cho. .. +1.96500000000000E+005 Các hàm vô hướng thường phức tạp hơn hàm này và thường liên quan đến logic và các lệnh SQL khác phức tạp hơn Liệt kê 11 chỉ ra một ví dụ về một hàm vô hướng phức tạp hơn có trả về số nhân viên đã đạt được trình độ giáo dục bằng với cái được xác định như đầu vào của hàm đó: Liệt kê 11 Một hàm phức tạp hơn do người dùng định nghĩa CREATE FUNCTION edCount (v_edLevel DOUBLE) RETURNS INT... chọn này cho DB2 biết cách một hàm sẽ tương tác với cơ sở dữ liệu Có ba sự lựa chọn:  CONTAINS SQL: Chỉ định các câu lệnh SQL không đọc lẫn không sửa đổi dữ liệu SQL có thể được sử dụng trong hàm đó  READS SQL DATA: Chỉ định các câu lệnh không sửa đổi dữ liệu SQL có thể được sử dụng trong hàm đó  MODIFIES SQL DATA: Chỉ định tất cả các câu lệnh SQL ở dạng câu lệnh phức hợp động có thể được sử dụng trong . Chuẩn bị cho kỳ thi 733 về Phát triển ứng dụng DB2 9, Phần 9: Các thường trình do người dùng định nghĩa Tích hợp logic nghiệp vụ phức tạp và có tùy biến vào các câu lệnh SQL. việc học tập về các khái niệm lập trình DB2 cao cấp và chuẩn bị cho kỳ thi lấy chứng chỉ phát triển ứng dụng DB2 9 (kỳ thi 733) . Các điều kiện cần trước Trước khi tham dự kỳ thi 733, bạn. chuẩn bị cho kỳ thi cấp chứng chỉ Phát triển ứng dụng DB2 9 (kỳ thi 733) . Trước khi bạn bắt đầu Về loạt bài này Chứng chỉ Nhà phát triển ứng dụng được IBM công nhận xác nhận với những người

Ngày đăng: 07/08/2014, 09:23

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan