StoredProcedure在企业网站开发中的应用(1)

网络整理 - 08-24
 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的权限