北京邮电大学世纪学院毕业设计(论文)
4.3 数据库完整性
数据库的完整性是指数据的正确性和相容性。数据库管理系统(DBMS)用一定的机制来检查数据库中的数据是否满足规定的条件——完整性约束条件,数据的约束条件是语义的体现,将作为模式的一部分存入数据库中。数据的完整性约束主要包括以下三个方面要求:
(1) 实体完整性
实体完整性是指若属性A是基本关系R的主属性,则属性A不能取空值。对于每个表来说,主键都不可以为空。在用户提交信息时,系统会对用户所填写的信息进行验证,对于其中的关键信息没有填写或者数据非法时,系统会提示用户更改后再提交。这样保证了系统实体完整性。
(2) 参照完整性
由于表和表之间会存在某些联系,当关系R和关系S之间是一对多关系时(R的主键是A,S的主键是b,c是S中的外码),在插入数据时就要保证外码c的值或者为空或者等于R中某个元组的主码值。在对被参照表进行删除操作时应同时进行级联删除。
(3) 用户定义完整性
任何关系数据库系统都应该支持实体完整性和参照完整性。除此之外,不同的关系数据库系统根据其应用玩家的不同,往往还需要一些特殊的特殊条件,用户定义的完整性就是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求,例如某个属性必须取唯一值、某个属性的取值范围等。
数据库完整性对于数据库应用系统非常关键,其作用主要体现在以下一个方面:
(1) 数据库完整性约束能够防止合法用户在使用数据库时向数据库中添加不合语义的数据。
(2) 利用基于DBMS的完整性控制机制来实现业务规则,易于定义,容易理解,而且可以降低应用程序的复杂性,提高应用程序的运行效率,同时,基于DBMS的完整性控制机制是集中管理的,因此比应用程序更容易实现数据库的完整性。
25
北京邮电大学世纪学院毕业设计(论文)
(3) 合理的数据库完整性设计,能够同时兼顾数据库的完整性和系统的效能。比如装载大量数据时,只要在装载之前临时使基于DBMS的数据库完整性约束失效,此后再使其失效,就能保证既不影响数据装载的效率又能保证数据库的完整性。
(4) 在应用软件的功能测试中,完善的数据库完整性有助于尽早发现应用软件的错误。
数据库完整性约束可分为6类:列级静态约束、元组级静态约束、关系级静态约束、列级动态约束、元组级动态约束、关系级动态约束,动态约束通过由应用软件来实现。[10]
4.4 数据库安全性
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。在数据库系统中,大量的数据集中存放,同时又为许多用户直接共享,是宝贵的信息资源,因此系统的安全保护措施就显得更为重要。健全的数据库安全机制可以防止数据库被恶意的破坏和非法的存取。
本系统的安全设计包括服务器和数据库两方面的设计。当用户使用系统时,通过提交自己的登录信息和填写正确的验证码,系统会对用户的身份进行核实,如果在数据库中查找到了相关记录,打开系统功能界面,用户登录成功。对于数据库的安全,主要是通过对授权用户的身份验证实现的,并且系统会自动判断,登录的用户是管理员、领导还是员工,没有授权的用户或验证码输入错误是无法登录系统的。
26
北京邮电大学世纪学院毕业设计(论文)
5 系统详细设计与实现
5.1 登陆模块
管理员在员工模块添加员工基本信息并设置所有员工初始密码为123456。员工(包括员工、领导)凭借姓名和初始密码或者自己之后更改后的密码,填写正确验证码,即可登陆到相关员工操作页面或领导操作界面。用户名、密码或验证码只要有其中之一不正确则重新返回登录界面并显示相关错误信息。登陆模块流程图如图5-1所示。
图5-1 登陆模块流程图
系统登录页面,设计简洁得体,文字与背景图片搭配,符合办公软件要求的实用性和简洁性。页面包括用户名、密码及验证码的填写。填写正确才能进入系统,否则重新回到登陆页面并显示错误信息,登陆页面系统截图如图5-2所示。
27
北京邮电大学世纪学院毕业设计(论文)
图5-2 登陆界面
登录模块关键程序代码如下: @SuppressWarnings(\
public String loginAction() throws Exception {
Map session = ActionContext.getContext().getSession(); String random = (String) session.get(\if (random != null && random.equals(code)) { boolean flag = objectManager.checkUser(util); if (flag) {
session.put(\
session.put(\session.put(\return \} else {
message = \用户名不存在!\return \}
} else {
message = \验证码输入错误!\return \} }
5.2 部门管理模块
部门管理模块可显示现有部门的部门名、创建时间、备注、具体操作属性,在具体操作栏里有编辑和删除按钮,管理员点击编辑按钮连接到该部门的编辑页面,可对以上属性里的内容进行修改。在部门管理模块顶部有添加
28