医院门诊管理系统数据库设计课程设计


    信息工程学院
    数库课程设计文

    题 目:医院门诊理系统数库设计











    学 号:

    专业班级:
    软件工程班
    姓 名:

    指导老师:

    完成日期:
    2014年X月X日

    医院门诊理系统数库设计
    (信息工程学院软件工程12级班)

    摘 :着社会进步类生产生活水提高国现医院规模服务质量实现显著增长显然果医院门诊采工理方式显然法应庞病患需求科学发展已成时代题中国软件行业日益进步天利资源帮助减轻医生病负担病够快医高质量医院门诊理系统提高医院社会效益济效益文采结构化分析设计方法运数流程图ER图等工具型医院门诊理系统数库进行分析设计实现登记挂号诊断治疗收费挂号等医院门诊基业务
    关键字:医院门诊理数库设计医院


    目 录
    1. 需求分析 1
    11数流程图 1
    12数字典 4
    121数项 4
    122数结构 5
    123数流 6
    124处理逻辑 6
    125数存储 7
    2.数库结构设计 7
    21 概念设计 7
    211 分ER图建立 7
    212 全局整体ER图 8
    22 逻辑设计 9
    221 建立关系模式 10
    222 关系模式规范化处理 10
    223 户子模式建立 11
    224 关系模式逻辑结构定义 11
    3.数库物理设计 13
    4.数库实施测试 13
    41 SQL Server 2008数库实施测试 13
    411 数库数库象建立 13
    412 数入库 21
    413 数库测试 23
    42 Oracle数库实施测试 30
    421 数库数库象建立 30
    422 数入库 41
    423 数库测试 43
    5. 总结 49



    着社会断进步医院等基础服务机构早已成生活必少部分程度方便生活更程度满足病患需求许医院规模进步扩理进步改善逐步走医疗服务理成熟化方便效理手段已成理部门理力工具
    传统工理手段高速发展天已体现优势繁复量手工记录计算理带更重复工作果复杂类理程封装操作中执行理步骤时相应功理者带更便捷数库设计目标户种应系统提供信息基础设施高效运行环境
    着科学技术断提高计算机科学日渐成熟强功已深刻认识已进入类社会领域发挥着越越重作作计算机应部分计算机医院门诊信息进行理具手工理法拟优点例检索迅速查找方便性高存储量等优点够极提高事劳资理效率企业科学化正规化理重条件
    针典型理系统医院门诊理载体设计医院门诊理系统满足门诊理者类数理现代化思维模式营维护
    1. 需求分析
    需求分析阶段分析户需求数库设计起点医院门诊理目标通医院门诊整服务流程理控制库存数效统计分析保证理畅通决策员早发现问题采取相应措施调整理方式时通数分析获前社会病患需求便理员断进行理优化提高理水通查询资料分析前医院门诊部服务状况明确病患需求进行设计完成业务流程图数流程图进步创建数字典完成数结构数处理功模块
    11数流程图
    数流程图反映医院门诊理工作程数流通数流程图抽象现实世界数医院门诊理物理模型根物理模型抽象出信息流物理模型转化成逻辑模型反映信息系统中流动处理存储情况整程中数流程图图11图15示分顶层数流图第层数流图第二层数流图

    图11 顶层数流程图













    图12 第层数流程图



















    图13 第二层数流程图(挂号收费)
















    图14 第二层数流程图(诊断)















    图15 第二层数流程图(取药)











    12数字典
    数字典体统中类数描述集合进行详细数收集数分析获成果数字典数库设计中占重位数字典通常包括数项数结构数流数存储处理逻辑5部分
    数项分数单位数结构反映数间组合关系数流数结构系统传输路径数存储数结构停留保存方数流源处理逻辑般判定表判定树描述数字典需描述处理程说明性信息
    文中包括35数项8数结构11数流6处理逻辑8数存储
    121数项
    数项编号
    数项名
    数项含义
    数项关系
    类型
    长度
    取值范围
    DI011
    Pno
    病编号

    varchar
    20

    DI012
    Pname
    病姓名

    varchar
    20
    not null
    DI013
    Psex


    varchar
    20

    DI014
    Page
    年龄

    int

    0150
    DI015
    Dno
    医生号
    外键
    varchar
    20

    DI021
    Dno
    医生号

    varchar
    20

    DI022
    Dname
    医生姓名

    varchar
    20
    not null
    DI023
    Dtitle
    职称

    varchar
    20

    DI024
    Dtel
    电话

    varchar
    20

    DI025
    Dp_no
    科室编号
    外键
    varchar
    20

    DI031
    Dp_no
    科室编号

    varchar
    20

    DI032
    Dp_name
    科室名称

    varchar
    20
    not null
    DI033
    Dp_tell
    联系方式

    varchar
    20

    DI041
    Mno
    药品编号

    varchar
    20

    DI042
    Mname
    药品名称

    varchar
    20
    not null
    DI043
    Mprice
    药品价格

    float


    DI044
    Mquantity
    药品库存余量

    int


    DI051
    Rno
    挂号单号

    varchar
    20

    DI052
    Rdate
    挂号日期

    date


    DI053
    Bno
    收费单号
    外键
    varchar
    20

    DI054
    Pno
    病编号
    外键
    varchar
    20

    DI055
    Dno
    医生编号
    外键
    varchar
    20

    DI056
    Rway
    挂号方式

    varchar
    20

    DI061
    Bno
    收费单号

    varchar
    20

    DI062
    Bdate
    日期

    date


    DI063
    Bmoney
    金额

    float


    DI064
    Bway
    收费方式

    varchar
    20

    DI071
    Pr_no
    处方号

    varchar
    20

    DI072
    Pr_date
    日期

    date


    DI073
    Mno
    药品编号
    外键
    varchar
    20

    DI074
    Bno
    收费单号
    外键
    varchar
    20

    DI081
    Dno
    医生号
    键外键
    varchar
    20

    DI082
    Pno
    病编号
    键外键
    varchar
    20

    DI083
    Iname
    病名

    varchar
    20

    DI084
    Pr_no
    处方号
    外键
    varchar
    20

    122数结构
    数结构编号
    数结构名
    数结构含义
    组成
    DS1
    Doctor
    医生
    DnoDnameDtitleDdeptDtel
    DS2
    Patient

    PnoPnamePsexPageDno
    DS3
    Medicine
    药品
    MnoMnameMpriceMquantity
    DS4
    Department
    科室
    Dp_noDp_nameDp_tel
    DS5
    Register
    挂号单
    RnoRwayRdatePnoBno
    DS6
    Bill
    收费单
    BnoBdateBmoneyBway
    DS7
    Prescription
    处方
    Pr_noPr_dateMnoBno
    DS8
    Diagnose
    诊断结果
    DnoPnoInamePr_no
    123数流
    数流编号
    数流名称
    简述
    数流源
    数流
    数流组成
    数流量
    高峰流量
    F1
    挂号请求
    病医院需治疗者病项目挂号

    挂号处理
    病信息分配医师
    日1000
    日5000
    F2
    挂号单
    处理病挂号病信息生成挂号单
    挂号处理

    病医生挂号单编号
    日1000次
    日5000次
    F3
    缴费
    项医疗必须费进行缴费

    收费处理
    收费信息
    日1000次
    日5000次
    F4
    收费证
    病缴费获取收费证备续
    收费处理

    收费信息详细记录
    日1000次
    日5000次
    F5

    病相关科室进行初诊

    初诊处理
    病信息初诊信息
    日1000
    日5000
    F6
    处方病例
    医师病开处方填写病例
    确诊处理

    病处方信息病例信息
    日1000次
    日5000次
    F7
    取药
    病药房领取相关药品

    取药处理
    病药品信息
    日1000次
    日5000次
    F8
    药物
    药房工作员处方相关药品交病
    取药处理

    病药品
    日1000次
    日5000次
    F9
    挂号项目
    挂号系统针病挂号项目分配医师
    挂号处理
    分配医师处理
    病信息分配医师科室
    日1000次
    日5000次
    F10
    医师信息
    系统调相关医师信息返回
    分配医师处理
    挂号处理
    医生
    日1000次
    日5000次
    F11
    诊断信息
    诊断信息整理汇总确诊
    诊断处理
    确诊
    病治疗记录
    日1000次
    日5000次
    124处理逻辑
    处理逻辑
    处理逻辑名称
    简述
    输入数流
    处理
    输出数流
    处理频率
    P11
    挂号
    病挂号请求处理
    病信息
    分配医师
    挂号单
    1次
    P12
    收费
    收费容标准
    收费容
    收取费
    收费记录
    1次
    P13
    分配医师
    根挂号记录分配医师
    医生记录
    分配医师
    医生信息
    1次
    P21
    诊断
    医生病情进行诊断
    诊断请求
    初步诊断
    初诊信息
    1次
    P22
    确诊
    完成诊断确诊
    诊断信息
    确诊
    诊断结果
    1次
    P31
    取药
    取药
    处方
    取药
    药物信息
    1次
    125数存储
    数存储编号
    数存储名称
    简述
    数存储组成
    相关处理
    S1
    挂号记录
    记录病挂号信息
    病信息医生
    P11P21P31
    S2
    收费记录
    记录收费信息
    收费信息
    P12P22P32P33
    S3
    值班医生记录
    记录医生值班安排
    医生值班安排
    P31
    S4
    诊断记录
    记录病诊断程
    诊断程
    P23P31
    S5
    药物记录
    记录药物价格剩余量等
    药物信息
    P32
    S6
    收费款项
    记录收费情况
    收费信息
    P12
    S7
    收费标准
    统收费标准
    收费款项标准
    P12
    S8
    处方
    记录医生病开出处方
    处方
    P32
    2.数库结构设计
    数库结构设计包括概念设计逻辑设计两部分
    21 概念设计
    概念设计阶段务需求分析户需求抽象信息结构(概念模型)程充分反应事物事物间联系现实世界真实模型需求分析阶段应需求首先抽象信息世界结构更某DBMS实现需求ER模型概念模型力工具逐设计分ER图分ER图综合成系统总ER图
    211 分ER图建立
    图22 分ER图
    分ER图建立数流图建立第二层数流图分建立分ER图详见图2123
    图21 分ER图


    2 诊断分ER图




    图23 分ER图













    212 全局整体ER图
    根述列出分ER图消中存突冗余建立全局ER图(详见图24)列出实体联系属性属性ER图(详见图25)

    图24 总ER图














    图25 属性ER图


















    22 逻辑设计
    逻辑结构设计务概念结构设计阶段设计基ER图转换选DBMS产品支持数模型相符合逻辑结构根DBMS产品系统限制设计逻辑结构时般三步骤:首先概念结构转换般
    关系网状层次模型转换关系网状层次模型特定DBMS支持数模型转换数模型进行优化
    医院门诊理系统设计采关系模型ER图转化关系模型实际实体型实体属性实体型间联系转换关系模式
    实体型转换关系模式实体属性关系属性实体码关系码实体型间联系情况:
    (1)1:1联系转换独立关系模式意端应关系模式合果转换独立关系模式该联系相连实体码联系身属性均转换关系属性
    (2)1:n联系转换独立关系模式n端应关系模式合果转换独立关系没模式联系连实体码联系身属性均转换关系属性
    (3)m:n联系转换关系模式该联系相连实体码联系身属性均转换关系属性实体码组成关系码关系码部分
    221 建立关系模式
    医院门诊理系统涉关系:
    病医生n:1()关系间联系n端实体合病挂号单关系1:1()间联系意端实体合科室医生1:n()关系间联系n端实体合医生诊断结果关系1:n()关系间联系n端实体合诊断结果处方单关系1:1()间联系意端实体合处方单收费单药品间联系三元关系间联系转换独立关系模式
    具体转换示(键加划线外键斜体加粗):
    病(病编号病姓名性年龄医生号)
    医生(医生号医生姓名职称电话科室号)
    药品(药品编号药品名称单价数量)
    处方(处方号日期药品编号收费单号)
    收费单(收费单号日期金额收费方式)
    诊断结果(医生号病编号病名处方号)
    挂号单(挂号单号挂号方式日期病编号收费单号)
    科室(科室号科室名称联系方式)
    222 关系模式规范化处理
    关系数库中关系必须满足定规范化求规范化程度范式衡量范式符合某种级关系模式集合衡量关系模式规范化程度标准达关系规范化低级范式关系模式通模式分解转换干高级范式关系模式集合系统中建立关系模式符合三范式
    223 户子模式建立
    根需求分析研究建立满足需求户子模式子模式建立更程度方便数操作户子模式定义
    收费细视图(病号收费单号日期金额收费方式)
    病药品视图(病号药品编号)
    诊断结果视图(病号病姓名病名)
    医生病视图(医生号医生姓名病姓名)
    科室医生视图(医生号医生姓名科室名称)
    病挂号视图(病号病姓名挂号单号挂号日期挂号方式)
    224 关系模式逻辑结构定义
    表26 病关系模式
    属性名
    含义
    数类型
    长度
    否属性
    否外键
    约束条件
    Pno
    病编号
    varchar
    20



    Pname
    病姓名
    varchar
    20


    not null
    Psex

    varchar
    20



    Page
    年龄
    int



    0150
    Dno
    医生号
    varchar
    20



    表27 医生关系模式
    属性名
    含义
    数类型
    长度
    否属性
    否外键
    约束条件
    Dno
    医生号
    varchar
    20



    Dname
    医生姓名
    varchar
    20


    not null
    Dtitle
    职称
    varchar
    20



    Ddept
    科室号
    varchar
    20



    Dtel
    电话
    varchar
    20



    表28 药品关系模式
    属性名
    含义
    数类型
    长度
    否属性
    否外键
    约束条件
    Mno
    药品编号
    varchar
    20



    Mname
    药品名称
    varchar
    20


    not null
    Mprice
    单价
    float




    Mquantity
    数量
    int





    表29 处方单关系模式
    属性名
    含义
    数类型
    长度
    否属性
    否外键
    约束条件
    Pr_no
    处方号
    varchar
    20



    Pr_date
    日期
    date




    Mno
    药品编号
    varchar
    20



    Bno
    收费单号
    varchar
    20



    表210 收费单关系模式
    属性名
    含义
    数类型
    长度
    否属性
    否外键
    约束条件
    Bno
    收费单号
    varchar
    20



    Bdate
    日期
    date




    Bmoney
    金额
    float
    20



    Bway
    收费方式
    varchar
    20



    表211 诊断结果关系模式
    属性名
    含义
    数类型
    长度
    否属性
    否外键
    约束条件
    Dno
    医生号
    varchar
    20



    Pname
    病姓名
    varchar
    20



    Iname
    病名





    Pr_no
    处方号
    varchar
    20



    表212 挂号单关系模式
    属性名
    含义
    数类型
    长度
    否属性
    否外键
    约束条件
    Rno
    挂号单号
    varchar
    20



    Rway
    挂号方式
    varchar
    20



    Rdate
    日期
    date




    Pname
    病姓名
    varchar
    20



    Bno
    收费单号
    varchar
    20



    表213 科室关系模式
    属性名
    含义
    数类型
    长度
    否属性
    否外键
    约束条件
    Dp_no
    科室号
    varchar
    20



    Dp_name
    科室名称
    varchar
    20


    not null
    Dp_tel
    联系方式
    varchar
    20



    3.数库物理设计
    包括数库物理设备存储结构存取方法数库物理结构赖选定数库理系统定逻辑数模型选取合适应环境物理结构程数库物理设计阶段务确定数库物理结构断进行优化处理建立索引触发器存储程
    索引名称
    索引类型

    idx_bno
    唯非聚集
    bno属性列升序排列
    unique_pname
    唯非聚集
    实现唯性约束
    unique_mname
    唯非聚集
    实现唯性约束
    4.数库实施测试
    包括数库实施测试两部分(面分写出SQL Server 2008Oracle实施测试程)
    41 SQL Server 2008数库实施测试
    411 数库数库象建立
    系统建立名Hospital数库数库象分基表视图索引触发器存储程等面分列出相关代码
    1基表
    create table Department
    (Dp_no varchar(20) primary key
    Dp_name varchar(20) not null
    Dp_tel varchar(20)
    )

    create table Doctor
    (Dno varchar(20) primary key
    Dname varchar(20) not null
    Dtitle varchar(20)
    Dp_no varchar(20) references Department(Dp_no)
    Dtel varchar(20)
    )

    create table Patient
    (Pno varchar(20) primary key
    Pname varchar(20)
    Psex varchar(20)
    Page int check(Page>0 and Page<150)
    Dno varchar(20) references Doctor(Dno)
    )

    create table Medicine
    (Mno varchar(20) primary key
    Mname varchar(20) not null
    Mprice float
    Mquantity int
    )

    create table Bill
    (Bno varchar(20) primary key
    Bdate date
    Bmoney float
    Bway varchar(20)
    )

    create table Prescription
    (Pr_no varchar(20) primary key
    Pr_date date
    Mno varchar(20) references Medicine(Mno)
    Bno varchar(20) references Bill(Bno)
    )

    create table Diagnose
    (Dno varchar(20) references Doctor(Dno)
    Pno varchar(20) references Patient(Pno)
    Iname varchar(20)
    Pr_no varchar(20) references Prescription(Pr_no)
    primary key(DnoPno)
    )

    create table Register
    (Rno varchar(20) primary key
    Rway varchar(20)
    Rdate date
    Pno varchar(20) references Patient(Pno)
    Bno varchar(20) references Bill(Bno)
    )
    2视图
    (1)收费细视图(BillDetail)
    create view BillDetail
    as
    select distinct DiagnosepnoBillBnoBdateBmoneyBway
    from PrescriptionBillDiagnoseRegister
    where RegisterpnoDiagnosepno and (DiagnosePr_noPrescriptionPr_no and PrescriptionbnoBillbno
    or RegisterbnoBillbno)
    (2)病药品视图(Patient_Med)
    create view Patient_Med
    as
    select PnoMname
    from MedicinePrescriptionDiagnose
    where MedicineMnoPrescriptionmno and DiagnosePr_noPrescriptionPr_no
    (3)诊断结果视图(Patient_Diag)
    create view Patient_Diag
    as
    select Patientpnopnameiname
    from PatientDiagnose
    where DiagnosePnoPatientpno
    (4)医生病视图(Docter_Patient)
    create view Docter_Patient
    as
    select Doctordnodnamepname
    from PatientDoctor
    where PatientdnoDoctordno
    (5)科室医生视图(Dept_Doctor)
    create view Dept_Doctor
    as
    select dnodnameDp_name
    from DoctorDepartment
    where DepartmentDp_noDoctorDp_no
    (6)病挂号视图(Patient_Register)
    create view Patient_Register
    as
    select Patientpnopnamernorwayrdate
    from PatientRegister
    where RegisterpnoPatientpno

    3索引
    create unique index unique_mname on Medicine(Mname)
    create unique index unique_pname on Patient(pname)
    create index idx_bno on Bill(bno asc)
    4存储程
    (1)患者通方式挂号时Register新增条挂号信息时Patient表添加病记录Bill表中添加条挂号收费记录
    create proc addpatient
    @Rno varchar(20)
    @Rway varchar(20)
    @Pno varchar(20)
    @Bno varchar(20)
    @Pname varchar(20)
    @Psex varchar(20)
    @Page int
    @Dno varchar(20)
    @Bmoney float
    as
    insert into Patient
    values(@Pno@Pname@Psex@Page@Dno)
    insert into Bill
    values(@BnoGETDATE()@Bmoney'挂号收费')
    insert into Register
    values(@Rno@RwayGETDATE()@Pno@Bno)
    (2)患者确诊完毕Diagnose新增条诊断结果记录时Prescription表添加条处方记录更新Bill表中相应收费信息
    create proc addDiagnose
    @Dno varchar(20)
    @Pno varchar(20)
    @Iname varchar(20)
    @Pr_no varchar(20)
    @Mno varchar(20)
    @Bno varchar(20)
    @Bmoney float
    as
    insert into Bill
    values(@BnoGETDATE()@Bmoney'药品收费')
    insert into Prescription
    values(@Pr_noGETDATE()@Mno@Bno)
    insert into Diagnose
    values(@Dno@Pno@Iname@Pr_no)
    (4)插入条药品信息
    create proc MedicineInsert
    @mno varchar(20)
    @mname varchar(20)
    @mprice float
    @mquantity int
    as
    insert into Medicine
    values(@Mno@Mname@Mprice@Mquantity)
    (4)修改某科室电话
    create proc change_tel
    @dp_no varchar(20)
    @Dp_tel varchar(20)
    as
    update Department
    set dp_tel@Dp_tel
    where Dp_no@dp_no
    (5)修改某药品剩余量
    create proc change_med
    @mno varchar(20)
    @mquantity int
    as
    update Medicine
    set mquantity@mquantity
    where mno@mno
    (6)Dept_Doctor查询医院门诊部科室医生数
    create proc Dept_Doc
    as
    select Dp_nameCOUNT(dno) as rs
    from Dept_Doctor
    group by Dp_name
    (7)Docter_Patient查询某病治医生信息
    create proc p_doctor
    @pname varchar(20)
    as
    select *
    from Doctor
    where Dno (select Dno from Docter_Patient where pname@pname)
    (8)Docter_Patient查询某医生治全部病信息
    create proc D_Patient
    @dno varchar(20)
    as
    select pnopnamepsexpage
    from Patient
    where pname in(select pname from Docter_Patient where dno@dno)
    (9)Patient_Diag查询患感病姓名
    create proc Diag_p
    as
    select pname
    from Patient_Diag
    where iname'感'
    (10)Patient_Diag查询某病诊断结果
    create proc p_Diag
    @pno varchar(20)
    as
    select iname
    from Patient_Diag
    where pno@pno
    (11)Patient_Med查询某病购买药品
    create proc p_Med
    @pno varchar(20)
    as
    select mname
    from Patient_Med
    where pno@pno
    (12)BillDetail查询某病购买药品总价
    create proc medpay
    @pno varchar(20)
    as
    select Bwaybmoney
    from BillDetail
    where pno@pno and Bway'药品收费'
    (13)BillDetail查询某病收费总(挂号+取药)
    create proc pay
    @pno varchar(20)
    as
    select sum(bmoney) as total
    from BillDetail
    where pno@pno
    group by pno
    (14)Patient_Register查询某病挂号方式
    create proc reg_way
    @pno varchar(20)
    as
    select rway
    from Patient_Register
    where pno@pno
    5触发器
    处方表(Prescription)中添加元组时步表Medicine级联更新(药品数量1)
    create trigger t1 on Prescription
    after insertupdate
    as
    declare @pr_no varchar(20)@mno varchar(20)
    declare c2 cursor for select pr_nomno from inserted
    open c2
    fetch next from c2 into @pr_no@mno
    while(@@fetch_status0)
    begin
    update Medicine
    set mquantitymquantity1
    where mno@mno
    fetch next from c2 into @pr_no@mno
    end
    close c2
    deallocate c2
    412 数入库
    Patient表

    Register表

    Department表

    Doctor表

    Medicine表

    Prescription表

    Diagnose表

    Bill表


    413 数库测试
    1视图
    病药品视图(Patient_Med)








    收费细视图(BillDetail)

    诊断结果视图(Patient_Diag)







    医生病视图(Docter_Patient)







    科室医生视图(Dept_Doctor)







    病挂号视图(Patient_Register)






    2验证存储程
    (1)患者通方式挂号时Register新增条挂号信息时Patient表添加病记录Bill表中添加条挂号收费记录


    (2)患者确诊完毕Diagnose新增条诊断结果记录时Prescription表添加条处方记录更新Bill表中相应收费信息


    (3)插入条药品信息


    (4)修改某科室电话



    (5)修改某药品剩余量



    (6)Dept_Doctor查询医院门诊部科室医生数


    (7)Docter_Patient查询某病治医生信息


    (8)Docter_Patient查询某医生治全部病信息


    (9)Patient_Diag查询患感病姓名


    (10)Patient_Diag查询某病诊断结果

    (11)Patient_Med查询某病购买药品

    (12)BillDetail查询某病购买药品总价


    (13)BillDetail查询某病收费总(挂号+取药)


    (14)Patient_Register查询某病挂号方式







    3验证触发器
    (见存储程2验证)
    42 Oracle数库实施测试
    421 数库数库象建立
    系统建立名Hospital数库数库象分基表视图存储程等面分列出相关代码
    1基表
    create table Department
    (Dp_no varchar(20) primary key
    Dp_name varchar(20) not null
    Dp_tel varchar(20)
    )

    create table Doctor
    (Dno varchar(20) primary key
    Dname varchar(20) not null
    Dtitle varchar(20)
    Dp_no varchar(20) references Department(Dp_no)
    Dtel varchar(20)
    )

    create table Patient
    (Pno varchar(20) primary key
    Pname varchar(20)
    Psex varchar(20)
    Page int check(Page>0 and Page<150)
    Dno varchar(20) references Doctor(Dno)
    )

    create table Medicine
    (Mno varchar(20) primary key
    Mname varchar(20) not null
    Mprice float
    Mquantity int
    )

    create table Bill
    (Bno varchar(20) primary key
    Bdate date
    Bmoney float
    Bway varchar(20)
    )

    create table Prescription
    (Pr_no varchar(20) primary key
    Pr_date date
    Mno varchar(20) references Medicine(Mno)
    Bno varchar(20) references Bill(Bno)
    )

    create table Diagnose
    (Dno varchar(20) references Doctor(Dno)
    Pno varchar(20) references Patient(Pno)
    Iname varchar(20)
    Pr_no varchar(20) references Prescription(Pr_no)
    primary key(DnoPno)
    )

    create table Register
    (Rno varchar(20) primary key
    Rway varchar(20)
    Rdate date
    Pno varchar(20) references Patient(Pno)
    Bno varchar(20) references Bill(Bno)
    )
    2视图
    (1)收费细视图(BillDetail)
    create view BillDetail
    as
    select distinct DiagnosepnoBillBnoBdateBmoneyBway
    from PrescriptionBillDiagnoseRegister
    where RegisterpnoDiagnosepno and (DiagnosePr_noPrescriptionPr_no and PrescriptionbnoBillbno
    or RegisterbnoBillbno)
    (2)病药品视图(Patient_Med)
    create view Patient_Med
    as
    select PnoMname
    from MedicinePrescriptionDiagnose
    where MedicineMnoPrescriptionmno and DiagnosePr_noPrescriptionPr_no
    (3)诊断结果视图(Patient_Diag)
    create view Patient_Diag
    as
    select Patientpnopnameiname
    from PatientDiagnose
    where DiagnosePnoPatientpno
    (4)医生病视图(Docter_Patient)
    create view Docter_Patient
    as
    select Doctordnodnamepname
    from PatientDoctor
    where PatientdnoDoctordno
    (5)科室医生视图(Dept_Doctor)
    create view Dept_Doctor
    as
    select dnodnameDp_name
    from DoctorDepartment
    where DepartmentDp_noDoctorDp_no
    (6)病挂号视图(Patient_Register)
    create view Patient_Register
    as
    select Patientpnopnamernorwayrdate
    from PatientRegister
    where RegisterpnoPatientpno
    3存储程
    (1)患者通方式挂号时Register新增条挂号信息时Patient表添加病记录Bill表中添加条挂号收费记录
    create or replace procedure addpatient
    (v_Rno varcharv_Rway varcharv_Pno varcharv_Bno varcharv_Pname varcharv_Psex varcharv_Page intv_Dno varcharv_Bmoney float)
    is
    begin
    insert into Patient
    values(v_Pnov_Pnamev_Psexv_Pagev_Dno)
    insert into Bill
    values(v_Bnosysdate()v_Bmoney'挂号收费')
    insert into Register
    values(v_Rnov_Rwaysysdate()v_Pnov_Bno)
    end addpatient

    begin
    addpatient('R021''电话预约''P021''B042''张三''男'18'D014'21)
    end
    (2)插入条药品信息
    create or replace procedure MedicineInsert
    (mno varcharmname varcharmprice floatmquantity int)
    is
    begin
    insert into Medicine
    values(MnoMnameMpriceMquantity)
    end MedicineInsert

    begin
    MedicineInsert('M043''克拉霉素胶囊(桑美)'98200)
    end
    (3)修改某科室电话
    create or replace procedure change_tel(v_dp_no varcharv_Dp_tel varchar)
    is
    begin
    update Department
    set dp_telv_Dp_tel
    where Dp_nov_dp_no
    commit
    end change_tel

    begin
    change_tel('Dp011''87051621')
    end
    (4)修改某药品剩余量
    create or replace procedure change_med(v_mno varchar v_mquantity int)
    is
    begin
    update Medicine
    set mquantityv_mquantity
    where mnov_mno
    commit
    end change_med

    begin
    change_med('M024'150)
    end
    (5)Dept_Doctor查询医院门诊部科室医生数
    create or replace procedure Dept_Doc(Dp_name out varcharrs out number)
    is
    cursor c1 is select Dp_nameCOUNT(dno) as rs from Dept_Doctor group by Dp_name
    begin
    open c1
    loop
    fetch c1 into Dp_namers
    exit when c1notfound
    dbms_outputput_line(Dp_name||' '||rs)
    end loop
    close c1
    end Dept_Doc

    declare
    a varchar(20)
    b number
    begin
    Dept_Doc(ab)
    end
    (6)Docter_Patient查询某病治医生信息
    create or replace procedure p_doctor(v_pname varcharv_dno out varcharv_dname out varcharv_dtitle out varcharv_dp_no out varcharv_dtel out varchar)
    is
    begin
    select dnodnamedtitledp_nodtel
    into v_dnov_dnamev_dtitlev_dp_nov_dtel
    from Doctor
    where Dno (select Dno from Docter_Patient where pnamev_pname)
    dbms_outputput_line(v_dno||' '||v_dname||' '||v_dtitle||' '||v_dp_no||' '||v_dtel)
    end p_doctor

    declare
    f varchar(20)'张三'
    a varchar(20)
    b varchar(20)
    c varchar(20)
    d varchar(20)
    e varchar(20)
    begin
    p_doctor(fabcde)
    end
    (7)Docter_Patient查询某医生治全部病信息
    create or replace procedure D_Patient(v_dno varcharpno out varcharpname out varcharpsex out varcharpage out varchar)
    is
    cursor c1 is select pnopnamepsexpage from Patient
    where pname in(select pname from Docter_Patient where dnov_dno)
    begin
    open c1
    loop
    fetch c1 into pnopnamepsexpage
    exit when c1notfound
    dbms_outputput_line(pno||' '||pname||' '||psex||' '||page)
    end loop
    close c1
    end D_Patient

    declare
    f varchar(20)'D017'
    a varchar(20)
    b varchar(20)
    c varchar(20)
    d varchar(20)
    begin
    D_Patient(fabcd)
    end
    (8)Patient_Diag查询患感病姓名
    create or replace procedure Diag_p(pname out varchar)
    is
    cursor c1 is select pname from Patient_Diag where iname'感'
    begin
    open c1
    loop
    fetch c1 into pname
    exit when c1notfound
    dbms_outputput_line(pname)
    end loop
    close c1
    end Diag_p

    declare
    a varchar(20)
    begin
    Diag_p(a)
    end
    (9)Patient_Diag查询某病诊断结果
    create or replace procedure p_Diag(v_pno varcharv_iname out varchar) is
    begin
    select iname
    into v_iname
    from Patient_Diag
    where pnov_pno
    dbms_outputput_line(v_iname)
    end p_Diag

    declare
    a varchar(20)
    begin
    p_Diag('P019'a)
    end
    (10)Patient_Med查询某病购买药品
    create or replace procedure p_Med(v_pno varcharv_mname out varchar)
    is
    begin
    select mname
    into v_mname
    from Patient_Med
    where pnov_pno
    dbms_outputput_line(v_mname)
    end p_Med

    declare
    a varchar(20)
    begin
    p_Med('P020'a)
    end
    (11)BillDetail查询某病购买药品总价
    create or replace procedure medpay(v_pno varcharv_Bway out varcharv_bmoney out varchar)
    is
    begin
    select Bwaybmoney
    into v_bwayv_bmoney
    from BillDetail
    where pnov_pno and Bway'药品收费'
    dbms_outputput_line(v_bway||' '||v_bmoney)
    end medpay

    declare
    a varchar(20)
    b varchar(20)
    begin
    medpay('P002'ab)
    end
    (12)BillDetail查询某病收费总(挂号+取药)
    create or replace procedure pay(v_pno varcharv_total out number)
    is
    begin
    select sum(bmoney) as total
    into v_total
    from BillDetail
    where pnov_pno
    group by pno
    dbms_outputput_line(v_total)
    end pay

    declare
    a number
    begin
    pay('P005'a)
    end
    (13)Patient_Register查询某病挂号方式
    create or replace procedure reg_way(v_pno varcharv_rway out varchar)
    is
    begin
    select rway
    into v_rway
    from Patient_Register
    where pnov_pno
    dbms_outputput_line(v_rway)
    end reg_way

    declare
    a varchar(20)
    begin
    reg_way('P011'a)
    end
    422 数入库
    Bill表

    Department表

    Patient表

    Doctor表

    Medicine表

    Diagnose表

    Prescription表


    Register表

    423 数库测试
    1视图
    收费细视图(BillDetail)

    诊断结果视图(Patient_Diag)

    医生病视图(Docter_Patient)

    科室医生视图(Dept_Doctor)

    病挂号视图(Patient_Register)

    2验证存储程
    (1)患者通方式挂号时Register新增条挂号信息时Patient表添加病记录Bill表中添加条挂号收费记录




    (2)患者确诊完毕Diagnose新增条诊断结果记录时Prescription表添加条处方记录更新Bill表中相应收费信息

    (3)插入条药品信息

    (4)修改某科室电话

    (5)修改某药品剩余量

    (6)Dept_Doctor查询医院门诊部科室医生数

    (7)Docter_Patient查询某病治医生信息

    (8)Docter_Patient查询某医生治全部病信息

    (9)Patient_Diag查询患感病姓名

    (10)Patient_Diag查询某病诊断结果

    (11)Patient_Med查询某病购买药品

    (12)BillDetail查询某病购买药品总价

    (13)BillDetail查询某病收费总(挂号+取药)

    (14)Patient_Register查询某病挂号方式

    5. 总结
    通次期三周数库课程设计心体会:
    1.学期数库原理应课程学中数库系统认识够深刻时做练老师定表做简单查询删更新工作次实中遇问题:题目医院门诊理系统现实世界抽象遇较问题觉力系统实现业务老师指导发现复杂
    2.实时深刻感受数库设计环环嵌套做需求分析数流图根画出ER图抽象出实体间联系列出关系模型会期工作利展开否果样轻视第环节会实施阶段发现漏洞白醋折回接着做需求分析开始花量时间做需求分析
    次实中时完成数库课程设计求时学收获断实践中发现数库领域高深莫测真心希机会进入领域深入探究
    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 5 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    医院管理系统数据库课程设计

    医院管理系统数据库课程设计内容摘要数据库的设计是指对一个给定的应用环境,构造数据库模式,建立数据库及其应用系统,满足各种用户需求。作为信息资源开发、管理和服务的一种有效的手段,数据库技术的应用...

    1年前   
    441    0

    教师管理系统(数据库)课程设计

    数据库技术与应用(SQLServer2005)课 程 设 计题 目教师管理系统 组 员 班 级计科班学 院信息科学与工程学院指导教师 2012年 X...

    3年前   
    1319    0

    MySql数据库课程设计(学生管理系统)

    XX大学数据库课程设计报告 系 院 应用科学学院 年 级 2013级 专 ...

    2年前   
    677    0

    教务管理系统数据库课程设计报告

     《数据库原理》课程设计报告课程名称: 《数据库原理》课程设计 设计题目: 《教务管理系统》 指导教师: ...

    1年前   
    267    0

    数据库课程设计超市管理系统

    数 据 库 课 程 设 计 说 明 书设计题目: 超市管理系统 专 业: 信息与计算科学 班级: 小组成员:学号: ...

    2年前   
    499    0

    图书管理系统数据库设计数据库应用系统开发课程设计

    信息工程学院《数据库应用系统开发》课程设计论文题 目:图书管理系统数据库设计学 号:专业班级:信管级(X)班姓 名:魏 金 风指导老师:完成日期:2007摘 要在计算机日益普及...

    2年前   
    435    0

    人力资源管理系统数据库设计《数据库系统原理》课程设计报告

    《数据库系统原理》课程设计报告项目名称:人力资源管理系统数据库设计专 业: 计算机科学与技术 年 级: 姓 ...

    1年前   
    413    0

    《SQL-Server-数据库设计》课程设计报告(图书馆管理系统)

    《SQL Server 数据库设计》课程设计报告课题名称:图书馆管理系统_班级:_ 软大班____学号:_ __姓名:___ ___完成日期:_2...

    3年前   
    744    0

    软件测试课程设计医院管理系统

    成绩 课程设计报告 题 目 易非医院管理系统 课 程 名 称 软件测试课程设计 院 部 名 称 专...

    1年前   
    323    0

    学生成绩管理系统数据库课程设计

     数据库课程设计报告题目: 学生成绩管理系统数据库设计 ...

    1年前   
    320    0

    教学管理系统数据库课程设计报告

    《数据库原理与应用》课程设计课程名称 设计题目 专业班级 ...

    1年前   
    259    0

    数据库课程设计薪资管理系统

    《数据库类课程设计》系统开发报告学 号:   ********* 姓 名: ****** 题 目...

    6个月前   
    188    0

    SQL数据库图书管理系统课程设计

    XX职业技术学院信息工程系题 目:《图书管理系统》班 级 网络班 学 号 ...

    3年前   
    693    0

    物业管理系统数据库课程设计报告完整版

    设计题目:物业管理系统学 院:信息科学与工程学院专 业:计算机科学与技术班 级:计信学 号:学生姓名:指导教师:2014 年 X月 X 日目 录1 系统背景 32...

    3年前   
    697    0

    人力资源管理系统数据库课程设计

    第一章 绪论1.1 开发背景 随着企业的信息化和体制改革的步伐,人才竞争使企业的人力资源面临前所未有的挑战。越来越多的企业不断地加大对员工的投资,从而更好地吸引、保留和发展所需要人才,是...

    4年前   
    901    0

    数据库课程设计餐饮下单管理系统

    目 录1.课题名称及目标 12.需求分析 12.1 数据需求 12.2事务需求 22.3数据流 32.4数据字典 53.数据库结构设计 83.1概念设计 83.1.1分E-R图的...

    1年前   
    260    0

    Java与SQL数据库技术学生成绩管理系统课程设计

    《数据库系统原理》课程设计报告说明书学生信息管理系统学生姓名学 号所在专业所在班级指导教师提交时间 评阅情况成 绩目 录读书笔记 11. 学生信息管理系统概述 21.1 研...

    3年前   
    609    0

    JAVA数据库课程设计-学生选课管理系统的

     一、课程设计目的 通过这次的设计,主要是做出一个小型的管理系统,来加强对JAVA所学知识的巩固和融会贯通,可以说是对一个学期所学知识的一个小结,加深对JAVA数据库的理...

    5年前   
    1639    0

    数据库课程设计图书管理系统

    理工大学软件学院课程设计报告课 程:数据库课程设计题 目:图书管理系统班 级: 专 业:软件工程姓名学号:指导教师: 日期: 1.1背景 随着图书馆规模的不断扩大,图书...

    1年前   
    253    0

    数据库课程设计之房屋中介管理系统

    《数据库系统原理》课程设计报告项目名称: 房屋中介管理系统 专 业: 网络工程 年 级: 20XX级 ...

    1年前   
    528    0

    文档贡献者

    文***品

    贡献于2023-11-07

    下载需要 5 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档