湖南科技大学计算机科学与工程学院数据库课程设计报告题目:医院管理系统学号:姓名:指导老师:完成时间:2015.06.26实验目的现代化的医院也应该有现代化的管理系统。在科技日益发达的今天,人们的身体健康也在不断受到重视。因此,医院进行现代化管理就变得尤为重要。1系统需求分析通过一个医院管理系统,使医院的管理工作系统化、规范化、自动化,从而达到提高医院管理效率的目的。1.1系统功能分析医院管理系统需要完成功能主要有:员工各种信息的输入,包括员工基本信息、职称、岗位等。员工各种信息的查询、修改,包括员工基本信息、职称、岗位、工资等。员工的人事调动管理。病人信息的管理。医院病床的管理。药剂资源管理。仪器资源管理。系统用户管理、权限管理。1.2系统功能模块设计(划分)根据系统功能要求,可以将系统分解成几个模块来分别设计应用程序界面,如图1所示。设计者可只实现住院部、员工管理两个模块的相关功能,其中门诊部、药品和仪器两个模块可根据时间选做。1.3与其它系统的关系1.4数据流程图医院管理系统的数据流程如图2所示(由设计者完成)。图1、医院管理系统功能模块图2数据库设计2.1数据库需求分析通过对医院管理的内容和数据关系分析,我们设计的数据项和数据结构如下:员工基本状况包括的数据项有员工号、员工姓名、性别、所在部门、身份证号、生日、籍贯、国籍、民族、婚姻状况、健康状况、参加工作时间、员工状态、家庭住址、联系电话等。员工工资状况包括的数据项有员工号、工资项别、工资金额等。医院工作岗位信息包括的数据库项有工作岗位代号、工作岗位名称等。医院部门信息包括的数据项有部门代号、部门名称、部门负责人等。病人信息包括的数据项有病人姓名、病人性别、入院时间、病人所属科室、病人状况、病人主治医生、房问号、病床号等。药剂资源管理信息包括的数据项有药剂代号、药剂名称、药剂价格、药剂库存数量、备注等。医疗仪器管理包括的数据项有仪器代号、仪器名称、仪器价格、仪器数量、备注等。有了上面的数据结构、数据项和数据关系,我们就能进行下面的数据库设计。2.2数据库概念结构设计本系统根据上面的设计规划出的实体有员工实体、部门实体、岗位实体、病人实体、药剂实体、仪器实体。实体和实体之间的关系E-R图模型如图3所示。图3、医院管理系统的E-R图2.3数据库逻辑结构设计在上面的实体以及实体之间关系的基础上,我们就可以形成数据库中的表格以及各个表格之间的关系。医院管理系统数据库中各个表格的设计结果如表1到表7所示。2.3.1关系表表1PERSONNEL员工基本状况表列名数据类型是否可空说明EMP_NOVARCHAR员工号(主键)EMP_NAMEVARCHAR员工姓名EMP_DEPT_IDVARCHAR√所在的部门号EMP_DUTYVARCHAR√职务EMP_XLVARCHAR√学历EMP_GENDERVARCHAR√性别EMP_BIRTHDAYVARCHAR√生日EMP_HOMETOWNVARCHAR√籍贯EMP_COUNTRYVARCHAR√国籍EMP_NATIONVARCHAR√民族EMP_IDVARCHAR√身份证号EMP_MARRIAGEVARCHAR√婚姻状况EMP_HEALTHVARCHAR√健康状况EMP_STARTWORKVARCHAR√参加工作时间EMP_STATEVARCHAR√员工状态EMP_HOMEADDRESSVARCHAR√家庭住址EMP_TELENOVARCHAR√联系电话EMP_EMAILVARCHAR√联系Email地址EMP_JOB_IDVARCHAR√工作岗位代号EMO_POWERVARCHAR√权限表2JOB工作岗位情况表列名数据类型是否可空说明JOB_IDVARCHAR工作岗位代号(主键)JOB_NAMEVARCHAR工作岗位名称JOB_DEPT_IDVARCHAR√部门代码表3DEPT部门信息表列名数据类型是否可空说明DEPT_IDVARCHAR部门代号(主键)DEPT_NAMEVARCHAR部门名称DEPT_MANAGERVARCHAR√部门主任代号DEPT_VICEMANAERVARCHAR√部门副主任代号表4病人信息表PATIENT列名数据类型是否可空说明PATIENT_IDVARCHAR病人号PATIENT_NAMEVARCHAR病人姓名PATIENT_GENDERVARCHAR√病人性别PATIENT_DATE_STARTVARCHAR√入院时间PATIENT_DEPTVARCHAR√病人所属科室PATIENT_STATEVARCHAR√病人状况PATIENT_DOCVARCHAR√病人主治医生PATIENT_ROOMVARCHAR√病人房间号PATIENT_BEDVARCHAR√病人病床号PATIENT_POWERVARCHAR√权限表5药剂信息表POTION列名数据类型是否可空说明POTION_IDVARCHAR药剂代号(主键)POTION_NAMEVARCHAR药剂名称POTION_PRICEINT√药剂价格POTION_QUANTITYVARCHAR√药剂库存数量POTION_REMVARCHAR√备注表6医疗仪器信息表APPARATUS列名数据类型是否可空说明APPARTUS_IDVARCHAR仪器代号,主键APPARTUS_NAMEVARCHAR仪器名称APPARTUS_PRICEINT√仪器价格APPARTUS_QUANTITYVARCHAR√仪器数量APPARTUS_REMVARCHAR√备注表7管理TMS系统的用户口令表TMS字段名数据类型是否可空说明TMS_USERVARCHAR用户名(主键)TMS_PSWDVARCHAR√口令表8医院病床管理BED列名数据类型是否可空说明BED_IDVARCHAR病床名(主键)BED_STATEVARCHAR√状态表9员工工资表SALARY列名数据类型是否可空说明SALARY_EMP_NOVARCHAR员工号(主键)SALARY_EMP_NAMEVARCHAR员工名SALARY_RANKVARCHAR√工资项别SALARY_MONEYVARCHAR工资金额2.3.2ER流程图员工概念模型病人概念模型医院员工员工号员工姓名员工性别部门号生日电话email籍贯结婚状况健康状况参加工作时间员工状态家庭地址职务学历国籍民族权限岗位代号身份证号·病人权限病人姓名病人性别病人号病床号房间号入院时间所属科室主治医生组合病人状况用户概念模型病床概念模型部门概念模型部门概念模型用户用户名密码病房状态病床号部门部门号部门名称部长副部长岗位岗位号岗位名称部门代号全局ER图11111N1111N2.4数据库的建立2.4.1数据库的建立(请设计者完成)部门表createtabledept(dept_idvarchar(8)primarykey,dept_namevarchar(8)notnull,dept_mangaervarchar(8),dept_vicemanagervarchar(8));工作岗位表createtablejob(job_idvarchar(8)primarykey,job_namevarchar(20)notnull,job_dept_idvarchar(8),医生病人治疗聘用岗位部门用户名属于病房入住登录foreignkey(job_dept_id)referencesdept(dept_id));员工表createtablepersonnel(emp_novarchar(8)primarykey,emp_namevarchar(8)notnull,emp_dept_idvarchar(8),emp_dutyvarchar(8),emp_xlvarchar(8),emp_gendervarchar(4),emp_birthdarvarchar(8),emp_hometownvarchar(20),emp_countryvarchar(8),emp_nationvarchar(8),emp_idvarchar(18),emp_marriagevarchar(4),emp_healthvarchar(8),emp_stateworkvarchar(8),emp_statevarchar(8),emp_homeaddressvarchar(50),emp_telenovarchar(15),emp_emailvarchar(20),emp_job_idvarchar(8),emp_powervarchar(4),foreignkey(emp_job_id)referencesjob(job_id));病床表createtablebed(bed_idvarchar(8)primarykey,bed_statevarchar(8)notnull);病人表createtablepatient(patient_idvarchar(8)primarykey,patient_namevarchar(8),patient_gendervarchar(8),patient_date_startdatetime,patient_deptvarchar(20),patient_statevarchar(8),patient_docvarchar(8),patient_roomvarchar(8),patient_bedvarchar(8),patient_powervarchar(4),foreignkey(patient_doc)referencespersonnel(emp_no),foreignkey(patient_bed)referencesbed(bed_id));工资表createtablesalary(salary_emp_novarchar(8),salary_rankvarchar(8),salary_moneyint,primarykey(salary_emp_no),foreignkey(salary_emp_no)referencespersonnel(emp_no));药品表createtablepotion(potion_idvarchar(8)primarykey,potion_namevarchar(8)notnull,potion_priceint,potion_quantityvarchar(8),potion_remvarchar(50));仪器表createtableappa(appa_idvarchar(8)primarykey,appa_namevarchar(8)notnull,appa_priceint,appa_quantityvarchar(8),appq_remvarchar(50));用户表createtabletms(tms_uservarchar(8)primarykey,tms_pswdvarchar(20),foreignkey(tms_user)referencespersonnel(emp_no),foreignkey(tms_user)referencespatient(patient_id));2.4.2初始数据的输入insertintobedvalues('b01','1');insertintobedvalues('b02','1');insertintobedvalues('b03','1');insertintobedvalues('b04','1');insertintobedvalues('b05','1');insertintobedvalues('b06','0');病床表insertintobedvalues('b07','0');insertintobedvalues('b08','0');insertintobedvalues('b09','0');insertintobedvalues('b10','0');insertintobedvalues('b11','0