欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    中南大学数据库课程设计报告.docx

    • 资源ID:13094389       资源大小:983.27KB        全文页数:23页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    中南大学数据库课程设计报告.docx

    1、中南大学数据库课程设计报告中南大学数据库课程设计报告数据库课程设计报告学 院: 信息科学与工程学院 专业班级: 物联网工程1201班 指导老师: 盛津芳 学 号: 0909120122 姓 名: 李 浩 日 期: 2015年1月10日 课程设计要求数据库课程设计任务书1 任务概述 某医院拟开发一个挂号系统,以方便患者就医,提高医疗服务水平。患者在医院就诊前需要提供姓名、身份证号码、联系电话等个人信息并办理一张诊疗卡,该诊疗卡在每次挂号时需要出示给挂号的工作人员。患者在挂号时,需说明科室名称以及医生的职称。挂号以半个工作日为一个班次,系统中保存各科室门诊医生的排班表,每位医生每个班次能够接诊的病

    2、人人数可设置一个上限。本次课程设计要求设计并实现一个虚拟的医院挂号系统。系统中包含两个子系统,即由医院内部工作人员使用的挂号系统,以及患者使用的网上预约挂号系统。其中网上预约挂号系统的前端要求是浏览器,即采用B/S模式开发。医院工作人员使用的挂号系统采用C/S模式开发,前端开发工具不限,可采用PowerBuilder, Delphi, VB,VC,Java等。后台数据库要求采用SQL SERVER2005或Oracle 11g及以上版本。2 功能描述2.1 医院工作人员使用的挂号系统该系统仅供医院内部工作人员使用,主要分为挂号人员和系统管理人员两类角色,需提供以下功能:1) 办理诊疗卡。患者提

    3、供姓名、身份证号码、联系电话等个人信息,挂号人员为其办理一张长期有效的诊疗卡。2) 挂号。挂号人员根据患者要求的科室、医生职称分配一个候诊号,并收取相应的诊疗费用,诊疗费用根据医生的职称分为不同的档次。医生当班次接诊患者人数不能超过预先设定的上限。3) 修改挂号。患者可更改就诊的科室,挂号人员根据更改后的科室和医生职称,重新计算诊疗费用的差值,多退少补。4) 查询挂号情况。挂号人员可查询某位医生目前的挂号情况。5) 挂号费当班结转。系统对每个班次收取的挂号费生成相应的统计表,并提供查询功能,包括该班次总的挂号费用、各个挂号人员该班次总的挂号费用、各位医生该班次总的挂号费用。6) 参数维护。系统

    4、管理人员负责维护各种参数,包括科室、医生、医生排班表、号类字典。医生的基本信息、排班表、诊疗费标准、各班次医生接诊人数上限都是可以修改的,尽量提高系统的灵活性和可扩展性。7) 系统维护。系统管理人员负责管理用户、分配权限、管理密码。2.2 网上预约挂号系统该系统供患者使用,需提供以下功能:1) 用户注册。提供注册所需基本信息,必须实名注册。2) 用户可修改注册信息。3) 用户可查询指定时间的某科室的医生排班表。4) 用户可以在网上预约挂号。系统不提供当日预约服务,用户可预约部分科室次日至一个月内的就诊号源。同一患者实名(有效证件号)在同一就诊日、同一科室只能预约一次;在同一就诊日的预约总量不可

    5、超过两次;在一个月内的预约总量不可超过三次。2.3 安全性控制要求1) 所有用户密码在数据库中都要求加密存储。2) 网上预约挂号系统要进行输入验证,防止SQL注入。3) 系统管理员只能进行系统维护和参数维护,不能进行挂号操作。实验环境:电脑:联想G460操作系统:Windows8.1 64位语言:Java、JavaScript、JSP、HTML、SQL编程工具:Eclipse IDE for Java EE Developers(Kepler版)数据库:MySQL 5.6.21数据库工具:MySQLWorkbench 6.2 CE、navicat其他工具:Sublime Text 2概要设计:

    6、(数据库)E-R图 1 n 1 n 1 n m n除了上面的E-R图,数据库中还有另外三张表,分别是管理员表(Administrator)、员工表(Worker)、结算表(Calculate)物理模型用MySQLWorkbench所建管理员表、员工表、结算表备注:由于数据库模型是在课设最初建立的,后期根据编程的需求对表结构有了不少修改,虽然后来根据对表的修改已经对Model进行了更新,但可能仍有略微不同概要设计:(程序)系统主要功能管理员更改科室更改职称排班表管理用户办理诊疗卡管理密码员工详细设计(数据库)表结构Doctor表(医生表)Patient表(诊疗卡表)Arrangement表(排班

    7、表)Orderregist表(挂号表)Calculate表(结算表)DoctorLevel表(级别表)备注:其他几张表结构太简单,就不一一列举了。视图该系统中暂时只用到了一个视图,用于将Doctor表、Arrangement表、Doctorlevel表、Department表Join起来,方便查询。存储过程一共用到了4个存储过程分别是procedure_calculate:用来结算procedure_find_registinfo:用来找到挂号信息procedure_regist:用来挂号procedure_update_regist:用于修改挂号下面是procedure_regist的部分代

    8、码: if regcount 0 THEN insert into orderregist VALUES(null,patId,doId,deId,regDate,regTime,cost,worId,isCalculate); update arrangement set ArrangeAccptCount = ArrangeAccptCount - 1; END IF;这里用来判断剩余的接诊人数是否大于零,如果大于零则能挂号,否则不能。详细设计(程序) 如上图所示,整个系统写了很多个类,很多个jsp页面,以下介绍一下各个包的功能,然后就几个重要的类简单介绍一下。Action包:主要是对用户

    9、和管理员的Action事件进行处理。App包:许多个Thread类,用于务器与客户端进行通讯。Bean包:许多bean类,也是为JavaBean技术服务的重要一部分。Commom包:许多公共类,包括: Conf类:通讯协议。Constants类:SQL语句集合。Dbcp类:获取数据库连接对象。Log类:为了调试所用(跟系统功能关系不大)PageBean类:分页类Dao包:许多对数据库的操作。ViewAdmin包:管理员界面包。ViewWorker包:工作人员界面包。WebContent中Main包,主要是包含很多JSP页面。系统展示C/S端以员工身份登录后,可以看到如下图所示。系统中有诊疗卡的

    10、操作、预约挂号、挂号信息的查看与修改、排班表、挂号费结算。添加诊疗卡的信息 双击表格后,弹出对信息修改界面预约挂号界面,可以选择挂号的日期已经班次。然后系统会根据时间和班次、科室、级别筛选出医生。这里可以查到挂号的信息。排班信息挂号费的结算(前两条信息是我手动添加的)以管理员身份登陆后,可以看到如下图所示。系统中有科室的操作、医生、排班表、工作人员、诊疗费标准。可以对诊疗费用进行修改其他功能大同小异,就不一一列举了。B/S端B/S端登录界面B/S端主界面 B/S端注册界面信息查看和修改查看医生排版表预约挂号界面安全性控制MD5加密MD5的全称是Message-Digest Algorithm

    11、5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。-摘自XX百科关键代码如下:private static String encodeByMD5(String originString) if (originString != null) try MessageDigest md = MessageDigest.getInstance(MD5); /使用指定的字节数组对摘要进行最后更新,然后完成摘要计算 byte re

    12、sults = md.digest(originString.getBytes(); /将得到的字节数组变成字符串返回 String resultString = byteArrayToHexString(results); String pass = resultString.toUpperCase(); return pass; catch(Exception ex) ex.printStackTrace(); return null; 防SQL注入SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要

    13、的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生原因通常表现在以下几方面:不当的类型处理;不安全的数据库配置;不合理的查询集处理;不当的错误处理;转义字符处理不合适;多个提交处理不当。-摘自XX百科在JSP中,我都是采用的setParameter的方法来传递参数,也就是采用post方式来传参,因此大大降低了SQL注入的风险此外,在登录等含有输入框的地方,我也都验证了输

    14、入的合法性,过滤了所有的可疑字符。关键技术1、 在C/S端,主要用到了信息的加密技术,防注入技术,其他的更多的是对Java编码能力的考量。2、 在B/S端,用到了JavaBean、JSP、EL、JavaWeb对数据库的操作以及加密技术,防注入等等技术心得体会 经过近一个月紧张的数据库课程设计,加之中间还夹杂着两个考试,自己已经累得不成样子了。不过,虽然很累,但是自己还是学到了不少的东西。以下分几个方面谈谈自己的心得。1、 对Java编程能力的提高。编完这个系统,我用Eclipse计算了一下,光Java代码就有5800多行,中间也用到了继承、接口等高级一点的编程方法,近7000行代码对于大三的学

    15、生来说,不多不少吧。以前也编过几个工程量大致相当的project,从project中锻炼自己的能力,这一点对自己帮助还是挺大的。毕竟嘴上说谁都会,但是动起手来就会遇到形形色色各种问题。所以说,这次的课设对自己的逻辑锻炼还是蛮大的,对Java的理解也加深了一点。也学会了很多新的API,诸如JTable、JInternalFrame、JComboBox等等。2、 JavaWeb入门。以前虽然一直都想学习JavaWeb方面的知识,也一直有在看Web方面的书籍,但是毕竟没有动力、导致学习效率低下。这次接触了到数据库的课程设计,在Deadline的强大压力之下,逼着自己去快速的学习JavaWeb知识。回

    16、想起当初,结合自己此前JavaSE、Android、HTML、XML的基础,其实JavaWeb入门很容易,不到一天就能编出像样的东西了。后来由于时间有限,我B/S端做的并不是很好,寒假里再去深入去学习吧。3、 数据库知识加强。虽然以前上过数据库的课程,也做了数据库的实验。可是那个东西毕竟太抽象,知识仅仅停留在纸面上。此前做的几个project也经常用到数据库,但是也仅仅是几个简单的Select就能搞定的难度,像这样的完整做一个管理系统,此前还未曾尝试过。所以这次无论是从SQL语法而言、还是对数据库知识的复习,自己的数据库知识的都有很大的提升。系统中也用到了视图、存储过程等等,这些东西此前都没有

    17、真正实战过,所以这次还是有蛮大的收货,至少以后再次遇到就不会那么陌生了。4、 其他方面。经过这次数据库的课设,自己也懂得了不少的道理。没有压力就没有动力,没有动力就会导致效率低下。就拿JavaWeb而言,此前就很想学习了,可是一直就拖着,今天看一点明天看一点,导致在数据库课设之前,自己的JavaWeb基础几乎为零。但是有了数据库课设的这个动力,也就几天时间就从Web零基础入门了,能写简单的几个页面了,也能实现几个简单的操作。所以说,凡事不要总是拖着去做,有时间就赶紧学了,不要等到需要用的时候再去学习,到时候就来不及了。书到用时方恨少。5、 关于数据库课设的一点建议。这里仅仅是自己的一点看法,也

    18、许不一定对。关于这个课设,如果仅仅是只做一端(C/S、B/S仅做一方面,但是功能必须全)的话,如果把时间放久一点,就难度和工程量而言基本上是合理的。但是如果是做两端的话,个人认为,这仅仅是数据库的课设,应该把重心放在数据库上面,而不是重点考察编程能力,对编程能力的考量以后还有Java课设等等。所以这也是我为什么认为只需要做一端的主要原因。因为做一端的话,数据库的知识基本上都考察到位了,也降低了不少的编程量。就我个人而言,在整个工程上面,花在数据库部分的时间为10%-15%左右,其余时间基本上都在花在编程上面的。这也是我认为不合理的地方,所以我认为应该对数据库的知识重点考量,相对的,编程量应该可以减少。不过这也仅仅是一方面吧,难度大了,所以自己提高也就多了,这也是好处。6、 这次的课设做的还并不很完善,以后有机会再去完善一下。


    注意事项

    本文(中南大学数据库课程设计报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开