• 数据库技术及应用期末作业


    数据库设计期末作业

    学号:         姓名:        班级:

    . 设计任务、要求及所用软件环境或工具、

    设计任务:选题一, 工资管理系统设计

    要求:它的主要任务是对各种工资信息 进行日常的管理,如工资信              

    删除,迅速准确地完成各种工资信息 的统计计算和汇总,快速打印出报表。

    软件环境:SQLserver2019

    工具:SQLmanage stduio

    二.数据库设计

    1)需求分析阶段的数据流图、数据字典

    数据字典:

    1数据流名称:工资信息[使用文档中的独特引言吸引读者的注意力,或者使用此空间强调要点。要在此页面上的任何位置放置此文本框,只需拖动它即可。]

    来源:财务人员

    去向:工资

    2数据流名称:员工信息

    来源:人事管理

    去向:员工

    3数据流名称:部门信息

    来源:人事管理

    去向:部门

    4数据流名称:查询请求

    来源:员工

    去向:查询职工工资

    5数据流名称:查询结果

    来源:查询职工工资

    去向:品工

    2)数据库概念设计的 ER图(局部ER图 及 全局ER 图)

    3)数据库逻辑阶段设计的 各个数据模式

    E-R图转换成关系模式如下:

    员工(员工编号,姓名,性别,出生年月,部门编号)

    F = {员工编号→姓名,员工编号→性别,员工编号→出生日期,员工编号→部门编号}

    候选码:员工编号,姓名,最高符合BCFN。

    工资(员工编号,基本工资、岗位工资、住房补贴、津贴、工会会费、水电费、住房公积金,养老保险、奖惩、应发金额、应扣金额,实发金额)

    F = {员工编号,员工编号→基本工资、员工编号→岗位工资、员工编号→住房补贴、员工编号→津贴、员工编号→工会会费、员工编号→水电费、员工编号→住房公积金,员工编号→养老保险、员工编号→奖惩、员工编号→应发金额、员工编号→应扣金额,员工编号→实发金额}

    候选码:员工编号,最高符合BCNF。

    部门信息(部门编号、部门名称、部门负责人、部门人数。)

    F = {部门编号、部门编号→部门名称、部门编号→部门负责人、部门编号→部门人数。 }

    候选码:部门编号,部门名称,最高符合BCNF。

    创建数据库:

    1. create table department
    2. (
    3. dno char(10) primary key not null,
    4. dname char(6) not null,
    5. dcharge char(7) not null,
    6. dnumeber int
    7. );
    8. create table woker
    9. (
    10. wno char(15) primary key not null,
    11. wname varchar(15) not null,
    12. sex char(5) not null check(sex='男' or sex='女'),
    13. birth date not null,
    14. dno char(10) not null,
    15. post char(6),
    16. mar char(6),
    17. politic char(6) check(politic in ('党员','团员','群众'))
    18. foreign key (dno) references department(dno)
    19. );
    20. create table wage(
    21. wno char(15) primary key not null,
    22. base_wage float,
    23. post_wage float,
    24. house_wage float,
    25. allowances float,
    26. union_dues float,
    27. utilities float,
    28. house_pro float,
    29. old_ins float,
    30. reward float,
    31. pay_amount float,
    32. deduc_amount float,
    33. paid_amount float,
    34. foreign key(wno) references woker(wno)
    35. )

    06fd3f1175c24f67acdb12daaa646aef.jpeg

    表的内容的编辑根据自己的需要进行编辑

    4)数据库的安全性设计(设置不同权限的用户方案)

       创建不同的登录对象:财务人员,人事管理人员,员工。

     758d6e2017004dd5b777c40d1287c2d0.jpeg

    02564fd2c4ed4c27bccd63995b646fb7.jpeg

     其他同理创建。

     125ee36924094506bd2000d9baa43e21.jpeg

    5)基础数据的维护

      基于查询功能,由各个表的管理员进行维护。

      查询:

    1. select *
    2. from woker
    3. where wname = '张三'

    7dfbfc50c1e04fd8b2bddabc38b804d2.jpeg

    1. select *
    2. from wage
    3. where wno= '11111'

     22b8500dda6f4a8e9b1e2803d112f872.jpeg

     创建视图:浏览工资表,返回当月份各个部门员工的工资信息。

    1. create view de_wage
    2. as select dno 部门编号 ,wage.*
    3. from wage ,woker
    4. where wage.wno =woker.wno
    5. group by dno

    c4c3d008db714d9582a47992eee7f84c.jpeg

    6)各类信息的查询统计(至少包括一个存储过程、一个触发器)

      创建存储过程(以员工编号为输入参数返回指定员工的基本信息)

    1. create procedure chazhao
    2. as
    3. declare @wno char(15)
    4. begin
    5. select *
    6. from wage
    7. where wno =@wno
    8. end

     d25d8efb1f164225aea64a5602f264e0.jpeg

     创建 一个存储 过程统计所有员工在本月的实发工资为输出。

    1. create procedure 总工资
    2. as
    3. declare @total_wage float
    4. begin
    5. select @total_wage= sum(paid_amount)
    6. from wage
    7. end

     bc943738f5694869a5287a0d3738712d.jpeg

    创建触发器(当在员工表中有部门变动时,部门表中部门人数自动变化)

    1. create trigger 职位调动
    2. on woker
    3. after update ,insert,delete
    4. as
    5. declare @dno char(10) ,@dnumber int
    6. begin
    7. select @dno =dno
    8. from inserted --变动的部门(@dno)
    9. select @dnumber = count(*)
    10. from woker
    11. group by dno
    12. having dno =@dno
    13. ---变动之后的部门人数
    14. update department
    15. set dnumeber = @dnumber
    16. where dno =@dno
    17. ---更新部门人数
    18. end

    101c746fe9554e2a87663a9feb42d619.jpeg

  • 相关阅读:
    容器内存溢出排障思路
    银河麒麟4.0Kylin桌面版安装Java环境
    HarmonyOS—HAP唯一性校验逻辑
    【牛客刷题】带你在牛客刷题第三弹(C/C++语言基础)
    Arcgis中创建自定义脚本工具
    (Matalb分类预测)WOA-BP鲸鱼算法优化BP神经网络的多维分类预测
    如何为项目匹配资源技能和要求?
    RCU Library
    网络安全(黑客)自学
    LLM模型-讯飞星火与百度文心api调用
  • 原文地址:https://blog.csdn.net/weixin_64338372/article/details/128140251