息的访问而言,通过向用户授予对存储过程(而不是基础表)的访问权限,它们可以提供对特定数据的访问。存储过程可以看成是SQL Server视图,除非存储过程接受用户的输入以动态更改显示的数据。
存储过程还可以解决代码安全问题。它们可以防止某些类型的SQL插入攻击。主要是一些使用运算符(如AND或OR)将命令附加到有效输入参数值的攻击。在应用程序受到攻击时,存储过程还可以隐藏业务规则的实现。这对于将此类信息视为知识产权的公司非常重要。
另外,使用存储过程使您可以使用JAVA中提供的SqlParameter类指定存储过程参数的数据类型。这为验证用户提供的值类型(作为深层次防御性策略的一部分)提供了一个简单方法。在缩小可接受用户输入的范围方面,参数在内联查询中与在存储过程中一样有用。
使用存储过程仅仅能够增强数据库安全性,而不能完全使数据库免受攻击。如果数据库的安全性或编码做法不完善仍然会受到攻击。对SQL Server角色创建和分配如果不加注意将导致人们访问到不应看到的数据。同时,如果认为使用存储过程便可防止所有SQL插入代码攻击(例如,将数据操作语言 (DML) 附加到输入参数),后果将是一样的。
另外,无论T-SQL位于代码还是位于存储过程中,使用参数进行数据类型验证都不是万无一失的。所有用户提供的数据(尤其是文本数据)在传递到数据库之前都应受到附加的验证。 5.使用存储过程的优缺点
(1)DBA+Developer分工明确,之间代码模块化。减少数据库操作员和程序员的错误。
(2)数据库安全性;可以设置连接字符串中账号只可访问存储过程,不可操作表。这样数据完整性也有保证。
(3)存储过程是编译过的,执行快。
(4)事务的级别,存储过程级别的事务,JAVA级别的事务比较。一致性。 (5)减少网络通信量。一个需要数行 Transact-SQL 代码的操作由一条执行过程代码的单独语句就可实现,而不需要在网络中发送数行代码。 (6)使用存储过程封装应用逻辑的缺点如下: (7)编程语言SQL功能较差(不包括 SQL 2005) (8)与编程环境集成不够(不包括 SQL 2005) (9)移植性差(不同数据库) (10)数据库服务器压力大
______________________________________________________________________________
-17-
4.2.2 数据库的表的设计
根据项目要求进行数据库中表格的建立。根据对用户的需求分析,在项目中,需要记录银行的基本信息、交易记录的基本信息、银行的操作信息。
数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息。
范式的介绍:
第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。
第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字。
第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。所谓传递函数依赖,指的是如果存在“A → B → C”的决定关系,则C传递函数依赖于A。因此,满足第三范式的数据库表应该不存在如下依赖关系:
关键字段 → 非关键字段x → 非关键字段y 鲍依斯-科得范式(BCNF):在第三范式的基础上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖则符合第三范式。可以消除第三范式删除异常、插入异常和更新异常[13]。
系统中还需要有用户的登录信息表用于记录用户的登录信息。登录信息表中应该有登录的用户名和密码,其中登录名为主键。
4.2.3 设计E-R模式
数据库E-R模式,是实体与实体,实体与实体属性之间的关系,分为局部E-R模式和全局E-R模式 实体和属性的定义:
1.管理员用户类别(用户名,密码,权限,注册时间等)如图4-2所示:
______________________________________________________________________________
-18-
管理员用户 用户名
图4-2管理员用户实体与属性的定义 密码 ?? 权限 注册时间 2.账户信息类别(姓名,身份证,性别,联系电话,地址,注册时间等)如图4-3所示:
账户信息 姓名 性别 ??地址 注册时间图4-3账户信息实体与属性的定义
3.交易记录信息类别(姓名,性别,身份证,电话,地址)如图4-4所示:
交易信息 转入账户
图4-4 交易记录信息实体与属性的定义 转出账户 ?? 类型 身份证 2.实体关系定义:
ER模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体
______________________________________________________________________________
-19-
类型之间是否存在联系。若有联系,进一步确定是1:1、1:N、M:N的关系。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等针对本系统分析如下: 实体间的关系:
1.一个管理员可以管理多个自助银行账户,而一个自助银行账户只能被一个管理员管理。管理员与账户的E-R关系如图4-6所示:
1 管理员 管理
图4-6 自助银行账户与管理员信息管理1:N(一对多的关系)
N 账户 2.一个管理员可以管理多个出入账信息,而一个出入账信息只可以被一个管理员管理。管理员与出入账信息的E-R关系如图4-7所示:
管理员
图4-7管理员与出入账信息1:N(一对多的关系)
1 查看 N 出入账信息 所有局部ER模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。
1.确定公共实体类型
为了给多个局部ER模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。在这一步中我们仅根据实体类型名和键来认定公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。
______________________________________________________________________________
-20-
2.局部ER模式的合并
合并的原则是:首先进行两两合并;先合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。 3.消除冲突
三类:属性冲突、结构冲突、命名冲突。设计全局ER模式的目的不在于把若干局部ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的统一的概念模型。系统全局E-R如图4-8所示:
管理员1管理n交易记录1管理nnn账号n持有1
用户1拥有图4-8 系统总体E-R图
4.2.4数据字典
数据字典是在新系统数据流程图基础上,进一步定义和描述所有数据项的工具,是关于数据的数据。它包括对一切动态数据和表态数据的数据结构和相互关系等的说明,是数据分析和数据管理的重要工具。
数据字典实际上是新系统的所有数据流、数据存储、数据结构、数据元素和处理功能等卡片的集合。这些卡片内容是根据数据流程图,通过数据调查和分析得到的。数据字典可以汇总成清单形式,经过数据分析及规范化转换成组织模式,进行数据库的逻辑设计;或者,直接用来进行文件设计。数据字典的
______________________________________________________________________________
-21-
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库网上银行的设计与实现论文(5)在线全文阅读。
相关推荐: