为什么在使用DBMS时应该定义自己的过程/函数?

时间:2013-03-28 02:10:12

标签: rdbms database

这可能是一个奇怪的问题,但我一直想知道,如果数据库设计得很好,为什么要定义自定义程序/功能?
这些功能/程序是什么? 我想我可以得到很多减票,但我无法抗拒。)

让我解释为什么我想知道。在当前工作场所,其他开发人员使用函数/过程来剪切具有由逗号分隔的多个值的字符串 在我的拙见中,这可以通过这些功能来实现
那么定义和使用函数或过程的其他情况是合法的呢?

3 个答案:

答案 0 :(得分:1)

设计DBMS以满足(DBMS)潜在应用程序的所有可能范围是非常困难的。尽管可以使用内置函数来标记逗号分隔的值字符串,但是没有什么能阻止应用程序对分号分隔的字符串执行相同的操作,依此类推。

定义自定义函数和过程的能力是扩展应用程序功能或DBMS适应不同情况的自然方式。

在合法性方面,定义很难。可能,您的公司可能拥有包含常用功能或程序的代码存储库,可以重复使用。

这会回答你的问题吗?

答案 1 :(得分:1)

您可以创建自定义storad程序来解决无限问题。

简易管理数据; 使用事务控制创建操作。 优化多个操作的应用程序,对dbms执行单个请求,并执行dbms。 ...

但是,许多开发人员说这是不好的做法或有难闻的气味。

答案 2 :(得分:0)

使用功能和程序可以使您的DBMS更加灵活,例如 宣布    - 类型书籍是记录

  (title  varchar(50),

   author  varchar(50),

  subject varchar(100),

  book_id   number);

book1 books;

book2 books;

PROCEDURE printbook(book books)IS

BEGIN

dbms_output.put_line('书名:'|| book.title);

dbms_output.put_line('图书作者:'|| book.author);

dbms_output.put_line('Book subject:'|| book.subject);

dbms_output.put_line('Book book_id:'|| book.book_id);

END;

BEGIN     - 第1册规范

book1.title:='C编程';

book1.author:='Nuha Ali';

book1.subject:='C编程教程';

book1.book_id:= 6495407;

- 第2册规范

book2.title:='电信结算';

book2.author:='Zara Ali';

book2.subject:='电信计费教程';

book2.book_id:= 6495700;

- 使用程序打印书籍信息

printbook(BOOK1);

printbook(第二册);

END;

/ 在上面的“printbook”功能使您的查询更小更容易