版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
年4月19日水电管理系统登陆子系统文档仅供参考数据库课程实验周设计说明书水电管理系统学生姓名:施杰明学号:学院:计算机与控制工程专业:计算机科学与技术指导教师:熊风光6月27日1.需求分析1.1目标设计以宿舍水电费为背景,实现水电费管理。本系统能够分为四个子系统:1.统计子系统:统计水电用量,水电费用计算,扣除水电费。2.登陆子系统:实现密码验证,不同身份的用户具有不同的权限。3.管理子系统:增加,删除,修改用户,设置水电价格。4.缴费子系统:实现查询余额,缴费功能1.2开发和运行环境Eclipse、SQLserverWindow7,window81.3数据流分析图1顶层数据流图图2登陆子系统图1.4功能模块设计图3系统功能模块图1.5本人主要工作登陆子系统2.水电管理系统登陆子系统数据库概要设计2.1概念结构设计 图4登陆子系统ER图2.2模式转换学生(学号,学生账号,姓名,性别,宿舍号) 账号(账号,密码,权限) 管理员(管理员编号,管理员账号,管理员身份)2.3范式分析学生(学号,学生账号,姓名,性别,宿舍号)学号作为主码,学生账号,姓名,性别,宿舍号完全函数依赖于主码学生,满足2NF。其它属性不存在对主码的传递依赖,满足3NF。学生中除了学号没有其它决定因素,满足BCNF。账号(账号,密码,权限)账号作为主码,密码,权限完全函数依赖于主码账号,满足2NF。其它属性不存在对主码的传递依赖,满足3NF。账号中除了账号没有其它决定因素,满足BCNF。管理员(管理员编号,管理员账号,管理员身份)管理员编号作为主码,管理员账号,管理员身份完全函数依赖于主码管理员编号,满足2NF。其它属性不存在对主码的传递依赖,满足3NF。管理员中除了管理员编号没有其它决定因素,满足BCNF。3.登陆子系统物理设计3.1数据库中表的定义3.1.1学生表的定义CREATETABLE[dbo].[学生]( [学号][varchar](20)NOTNULL, [学生账号][varchar](20)NOTNULL, [姓名][varchar](20)NULL, [性别][nchar](1)NULL, [宿舍号][varchar](20)NOTNULL,CONSTRAINT[PK_学生_1]PRIMARYKEYCLUSTERED( [学号]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY],CONSTRAINT[IX_学生]UNIQUENONCLUSTERED( [学号]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]3.1.2管理员表的定义CREATETABLE[dbo].[管理员]( [管理员编号][varchar](20)NOTNULL, [账号][varchar](20)NOTNULL, [身份][varchar](20)NOTNULL, [姓名][nchar](10)NULL,CONSTRAINT[PK_管理员]PRIMARYKEYNONCLUSTERED( [管理员编号]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]3.1.3账号表的定义CREATETABLE[dbo].[账号](
[账号][varchar](20)NOTNULL,
[密码][varchar](20)NOTNULL,
[权限][varchar](20)NOTNULL,
CONSTRAINT[PK_账号]PRIMARYKEYNONCLUSTERED
(
[账号]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]3.2视图、存储过程、触发器的结构和定义3.2.1账号视图定义CREATEVIEW[dbo].[accontnumber]ASSELECT账号,密码,权限FROMdbo.账号3.2.2登陆存储器:实现登陆后权限控制ALTERprocedure[dbo].[login](@zhanghaovarchar(20),@passwordvarchar(20),@resultvarchar(20)=nulloutput)ASDECLARE@密码varchar(20),@权限varchar(20)=null,@uservarchar(20)=null,@passvarchar(20)=null;begin select@密码=密码from账号where账号=@zhanghao; if@密码!=@password begin set@result='0'; end; else begin select@权限=权限from账号where账号=@zhanghao; if@权限='学生' begin set@user=@权限; set@pass=''; end if@权限='管理' begin set@user=@权限; set@pass='654321'; end end 3.3安全性保密实施用户CREATEUSER[aa]FORLOGIN[aa]WITHDEFAULT_SCHEMA=[dbo]应用程序角色USE[水电管理系统]GO/******Object:ApplicationRole[学生]ScriptDate:06/27/10:46:31******//*Toavoiddisclosureofpasswords,thepasswordisgeneratedinscript.*/declare@idxasintdeclare@randomPwdasnvarchar(64)declare@rndasfloatselect@idx=0select@randomPwd=N''select@rnd=rand((@@CPU_BUSY%100)+((@@IDLE%100)*100)+(DATEPART(ss,GETDATE())*10000)+((cast(DATEPART(ms,GETDATE())asint)%100)*1000000))while@idx<64beginselect@randomPwd=@randomPwd+char((cast((@rnd*83)asint)+43))select@idx=@idx+1select@rnd=rand()enddeclare@statementnvarchar(4000)select@statement=N'CREATEAPPLICATIONROLE[学生]WITHDEFAULT_SCHEMA=[dbo],'+N'PASSWORD=N'+QUOTENAME(@randomPwd,'''')EXECdbo.sp_executesql@statementGO4.登陆子系统程序设计与实现4.1登陆验证及获取返回参数CallableStatementc=Assist.conn.prepareCall("{calllogin(?,?,?)}");
//给存储过程的第一个和第二个参数设置值
c.setString(2,Assist.passwrod);
c.setString(1,Assist.user);
c.registerOutParameter(3,java.sql.Types.VARCHAR);
//注册存储过程的第三个参数
//执行存储过程
c.execute();
b=c.getString(3);
a=b.charAt(0);
Assist.userName=b.substring(1,3);
Assist.passwrod=b.substring(4);//获取返回参数并处理
Assist.conn.close();4.2检测账号是否存在:Assist.smt=Assist.conn.createStatement();
Assist.rs
=
Assist.smt.executeQuery("select
账号
from
number
where
账号
=
"
+
id);
if(Assist.rs.next())
{
Sno.setText("");
JOptionPane.showMessageDialog(null,
"已存在该账号",
"提示",
JOptionPane.ERROR_MESSAGE);
}4.3学生账号注册:CallableStatement
c=Assist.conn.prepareCall("{call
zhanghao
(?,?)}");
c.setString(1,Sno.getText());
c.setString(2,
Sname.getText());
c.execute();
c=Assist.conn.prepareCall("{call
student1
(?,?,?,?,?)}");
c.setString(1,Ssex.getText());
c.setString(2,
Sno.getText());
c.setString(3,
Sclas.getText());
c.setString(4,
Sbirth.getText());
c.setString(5,
Snation.getText());
c.execute();5.登陆子系统子系统测试登陆测试用例账号:密码:654321图5登陆界面 图6登陆成功图7注册账号图8注册成功注册用例账号:120603336.个人体会这次实验,我学会了在数据库里面去使用触发器,存储过程,以及视图。用触发器去进行复杂的约束条件,用存储过程和视图作为对外的接口,实现对数据库内部结构的保密。存储过程能够进行增删改操作,视图进行查询操作。外部程序访问数据库的时候,首先经过默认的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026河南洛阳老城区南关社区卫生服务中心招聘备考题库及答案详解(名师系列)
- 2026浙江嘉兴高级中学编外用工招聘2人备考题库含答案详解(模拟题)
- 武汉市某水土保持站招聘水土保持监测员1名备考题库含答案详解(完整版)
- 2026浙江宁波市江北区劳动和社会保障事务代理服务有限公司招聘1人备考题库及答案详解(必刷)
- 2026江西省肿瘤医院高层次人才招聘29人备考题库(13)带答案详解ab卷
- 2026福建泉州石狮市蚶江镇中心幼儿园教师、保育员招聘备考题库含答案详解(培优a卷)
- 2026重庆国创投资管理有限公司招聘4人备考题库及答案详解(各地真题)
- 2026海南三亚市市场监督管理局上半年招聘下属事业单位工作人员1人备考题库(第1号)含答案详解(a卷)
- 2026江苏苏州市吴中区社会福利中心招聘护理员1人备考题库带答案详解(轻巧夺冠)
- 2026福建泉州经济技术开发区第二实验幼儿园合同教师招聘1人备考题库附答案详解
- 湖南省新高考教学教研联盟2026届高三年级12月联考(长郡二十校联盟)数学试卷(含答案)
- 浅析国有参股企业股权管理优化方案构建与实施
- 住院患者非计划性拔管循证预防与安全管理体系构建
- 后勤工作会议讲话稿
- DB11∕T 1831-2021 装配式建筑评价标准
- 2024-2025学年度陕西能源职业技术学院单招《职业适应性测试》考试历年机考真题集(易错题)附答案详解
- 2025-2026学年度武汉市部分学校高三年级九月调研考试 数学试卷(含答案解析)
- 2025年护士长竞聘上岗理论测试题(附答案)
- 小区楼道物业清理方案(3篇)
- 保安机具管理办法
- 篮球协会各项管理制度
评论
0/150
提交评论