Một hàm (chức năng – function) chứa các hướng dẫn để thực hiện một tác vụ cụ thể và cung cấp để lặp lại tác vụ này dễ dàng. Hàm người dùng định nghĩa cũng là một chức năng, và nó được tạo bởi người dùng. Người dùng này cần có quyền để thực hiện các tiến trình trong cơ sở dữ liệu, hoặc người sở hữu cơ sở dữ liệu (database owner – dbo) có thể được sử dụng. dbo là một người dùng có thể thực hiện tất cả các hoạt động trên cơ sở dữ liệu.
Nếu chúng ta có một bảng được gọi là Square có hai cột là EdgeLength và Number, thì chúng ta có thể tạo một UDF để tính toán diện tích của các hình vuông bên trong cơ sở dữ liệu. Ví dụ bảng Square trong Hình 2.6.
38
Hình 2.6 Bảng Square.
Không cần thiết phải giữ các giá trị diện tích thêm vào cơ sở dữ liệu. Chúng ta có thể tạo một UDF, và gọi nó khi cần tính toán diện tích. Đây là một ví dụ tạo một UDF.
CREATE FUNCTION dbo.area (edge FLOAT) RETURNS FLOAT RETURN(edge * edge);
Một truy vấn ví dụ để sử dụng UDF này có thể như sau:
SELECT Number, area (Edge Length) AS Area FROM Square; Kết quả trả về sẽ giống Hình 2.7.
Hình 2.7 Kết quả.
Thay vì giữ dữ liệu cho từng thông tin có thể được yêu cầu, sẽ tốt hơn khi tạo một UDF và gọi nó bất cứ khi nào tác vụ cần. Trong CryptDB, UDF cũng là một yêu cầu. Việc giải mã của kiến trúc lớp để điều chỉnh lớp hiện tại được thực hiện bằng cách sử dụng các UDF. Và cập nhật trạng thái hiện tại của các lớp onion cũng được thực hiện bằng cách sử dụng các UDF. Việc thay đổi tất cả cơ chế cơ sở dữ liệu hiện tại là khó đạt được. Do đó, các UDF rất quan trọng đối với các chức năng bổ sung trong hệ thống cơ sở dữ liệu.