1、为了实现医院住院部信息管理系统,方便用户和管理与需求,将医院住院部信息管理系统分为:医生管理,病人管理,病房管理,系统维护四个功能模块,如下图3-1。图3-13.2安全设计给数据库中表创建不同的视图,保证数据的安全性,使得不想被人知道的部分信息能够较好地隐藏下来。给数据库中表创建自定义约束,比如check约束、主键约束和唯一键约束,以此来保证数据库的完整性。给数据库创建存储过程和触发器,防止工作人员由于误操作而删掉部分重要信息。4概念结构设计在需求分析阶段所得到的用户需求抽象为信息结构即概念结构模型的过程就是概念结构设计。它是整个数据库设计的关键。这个部分的关键是设计,一般根据系统要求,画出能
2、反映本系统每个应用需求的 E-R 图。其中包括五个实体即医生实体、病人实体、病房实体、治疗实体、入住实体,以及一些实体与属性之间的联系。然后对初始的 E-R 图进行优化,消除冗余和可能存在的矛盾。根据需要得到一个基本的E-R图,如下图4-1所示。图4-1 医院住院部信息管理系统整体E-R图5逻辑结构设计逻辑结构的设计的任务就是把概念结构设计阶段设计好的基本E-R模型转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。5.1关系模型转化医生表(医生编号,姓名,性别,出生日期,职称,科室)病人表(病人编号,姓名,性别,出生日期,缴费情况,缴费金额,病症)病房表(病房号,床位号,床位数)治疗表
3、(医生编号,病人编号,病人情况,医嘱类型,医嘱内容,治疗时间)入住表(病人编号,病房号,床位号,住院时间,出院时间)5.2确定函数依赖、属于第几范式医生表:医生编号姓名,医生编号姓别,医生编号出生日期,医生编号职称,医生编号科室,没有传递依赖,没有部分依赖,则此范式属于第三范式。病人表:病人编号姓名,病人编号姓别,病人编号出生日期,病人编号缴费情况,病人编号缴费金额,病人编号病症,。没有传递依赖,没有部分依赖,则此范式属于第三范式。病房表:(病房号,床位号)床位数,没有传递依赖,没有部分依赖,则此范式属于第三范式。治疗表:(医生编号,病人编号)病人情况,(医生编号,病人编号)医嘱类型,(医生编
4、号,病人编号)遗嘱内容,(医生编号,病人编号)治疗时间,有传递依赖,没有部分依赖,则此范式属于第三范式。入住表:(病人编号,病房号,床位号)住院时间,(病人编号,病房号,床位号)出院时间,有传递依赖,没有部分依赖,则此范式属于第三范式。6物理结构设计设计中所涉及的表有医生信息表doctor,病人信息表patinet,病房信息表sickroom,治疗情况信息表curecondition,入住信息表intake。表6-1 doctor表列名数据类型宽度允许空值说明列名含义DidNchar10否主键、唯一键职工号Dname16是姓名Dsex1男或女性别DbirthDatetime出生日期Title职
5、称Office科室表6-2 patinet表Pid病人编号PnameCharPsexPbirthPmonText缴费情况PmoneyFloat缴费金额Illness病症 表6-3 sickroom表Sid主键病房号SroomidInt主键、check约束床位号Snum Check约束床位数表6-4 curecondition表主键、外键医生编号Pcondition病人情况Ordertype医嘱类型Mcontent医嘱内容Curetime治疗时间表6-5 intake表病床号intaketimedatetime入住时间OuttimeCheck约束出院时间7数据库的实施、运行完成物理结构设计之后,
6、就要用DBMS提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果严格描述出来,成为DBMS可以接受的源代码,再经过调试产生目标文件。7.1创建数据库、建立表经过以上结构设计,使用软件sql server 2005,通过sql语句创建数据库以及以上5个表。7.1.1创建数据库yygl创建数据库所用到的sql语句:CREATE DATABASE yygl ON PRIMARY ( NAME = Nyygl, FILENAME = ND:库yygl.mdf , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG O
7、N ( NAME = Nyygl_log, FILENAME = ND:库 yygl_log.ldf , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%) COLLATE Chinese_PRC_CI_AS7.1.2创建医生表在医生表中“医生编号”列建立主键约束,使每个医生编号只代表一名医生,“医生编号”不能为空值;在“性别”列上创建check约束,使“性别”属性的取值只能是男或女二者中的一个,不允许出现第三个;在“医生编号”列唯一性约束,保证职工号的唯一性。创建医生信息表所用到的sql语句:CREATE TABLE dbo.doctor
8、( did nchar(10) NOT NULL,dname nchar(16) NULL, dsex nchar(1) NULL,dbirth datetime NULL, title nchar(10) NULL,office nchar(10) NULL, CONSTRAINT PK_doctor PRIMARY KEY CLUSTERED ( did ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS =
9、 ON) ON PRIMARY,CONSTRAINT uq_key UNIQUE NONCLUSTERED ( did ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYGOALTER TABLE dbo.doctor WITH CHECK ADD CONSTRAINT CK_doctor CHECK (dsex=女 OR dsex=男)ALTER TAB
10、LE dbo.doctor CHECK CONSTRAINT CK_doctor7.1.3创建病人表在病人表中“病人编号”列建立主键约束,是每一个病人编号都代表着一个病人,“病人编号”不能为空值;在“病人编号”列唯一性约束,保证职工号的唯一性。创建病人信息表所用到的sql语句:CREATE TABLE dbo.patinet( pid nchar(10) NOT NULL,pname nchar(10) NULL, psex nchar(1) NULL,pbirth datetime NULL, pmon text NULL,pmoney float NULL, illness text NU
11、LL, CONSTRAINT PK_patinet_1 PRIMARY KEY CLUSTERED (pid ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY,CONSTRAINT un_p UNIQUE NONCLUSTERED (pid ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, A
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1