StoredProcedure在企业级网站
开发中的应用
Writen by pepper_dog999
我们都知道现在为企业开发的网站都以后台结合
数据库的应用为主,但企业级的
数据库有它的几点要求:
1、
数据库的性能要好。由于为企业开发的
数据库的记录条的数目有可能很大,所以普通的
数据库服务器的性能就不能达到要求了,一般的要使用SQL Server和Orecal一级的
数据库服务器。
2、
数据库的
安全性要求很高。因为企业的很多商业机密都在
数据库中,一旦
数据库遭到破坏或者是非法的入侵,都会带来无法挽回的损失。
3、事务处理(Transaction)的重要性。在企业级的查询、更改等事务中,均包括了复杂的事务处理,它涉及了锁定(Lock)、回滚(RollBack)等重要的特性。
由上面的几点可以看出,我们在进行企业级的网站
数据库的开发中必须做到高性能、高安全性、有事务处理的能力等几个方面。这就需要我们将
数据库的执行的过程放到
数据库服务器上,对用户隐藏具体的过程,仅让用户提供必要的参数,还要让用户不能直接的操作实际的表项。
我们使用SQL Server上的StoredProcedure就能够很好的来完成这些要求。首先StoredProcedure是在
服务器上进行了预编译的,这样它的性能就能够得到保障。再者我们可以只对用户给予执行StoredProcedure的权限,而不将相关表的权限赋予用户。这样的话用户就不能直接的修改表了。下面我举一个简单的狸子来说明:
第一步:在SQL Server上创建一个
数据库,我们假设这个
数据库的名字是employee。创建一个用于保存员工信息的表member_info,使用下面的Tansact SQL:
use employee
go
create table member_info
(
mem_id int primary key clustered
,lst_name char(20) not null
,fir_name char(20) not null
,address char(255) default "no address"
)
create index nonclustered index ncl_index_address on member_info(address)
第二步:在SQL Server上创建一个用户db_user,密码为空,给该用户给予访问employee
数据库的能力。
第三步:创建StoredProcedure,名称为usp_add_info,用来向member_info表中输入数据。使用下面的Transact_SQl:
use employee
go
create procedure usp_add_info
@inparam1 char(20)
,@inparam2 char(20)
,@inparam3 char(255)
as
insert into employee(lst_name,fir_name,address)
value(@inparam1,@inparam2,@inparam3)
第四步:给予db_user用户以执行usp_add_info的权限