失效链接处理 |
数据库原理课程设计指导书 PDF 下载
本站整理下载:
相关截图:
主要内容:
第 1 部分 公司出勤情况管理系统(范例)
在开发一个应用程序之前,必须做到清楚地了解程序所要实现的各项功 能,对程序的功能模块做出清晰的划分,然后设计出应用程序的整体结构。
1系统需求分析
1.1系统功能分析
需求分析指明了系统必须要实现什么的规格说明,它描述了系统的行为、特性或属性,是在开发过程中对系统的约束。系统的需求是应用程序开发的基础。在开发程序之前,写一个需求分析文档是很有必要的。如果所要开发的应用比较简单,也可以写一张纸的需求分析。
公司管理在现实生活中涉及的范围比较广泛,本范例对系统作了较大的简化,只考虑公司的出勤情况管理。经过这样的简化以后,公司出勤情况管理系统的功能有:
(1)员工管理:可以增加、删除、修改员工的各种信息。
(2)出勤管理:可以记录员工的出勤情况。在实际系统中,往往使用 刷卡机来输入出勤数据,这里采用手工输入的方法输入出勤数据。
(3)查询功能:查询功能又可以分为以下几部分。
(i)可以查询某段时间内某个员工的出勤情况,并能统计出勤次数。
(ii)可以按某段时间内的缺勤次数对员工进行排序。
1.2系统功能模块设计(划分)
根据上面的分析, 可以将系统的功能划分为三个模块,其中查询统计部分分为两个子模块,如图 1 所示。说明:本指导书中
的系统功能结构图、数
图 1 出勤管理系统功能模块划分
据流程图和实体联系图等均使用Microsoft Visio 绘制。
1.3与其它系统的关系
公司出勤信息管理系统是公司信息管理系统的一个组成部分。它为其它
系统,如工资管理系统等提供员工出勤信息。同时需要获得其它系统提供的部门设置、员工信息等情况。这些系统可以使用同一个数据库,直接相互调用所需的数据。
1.4数据流程图
数据流程图(Data Flow Diagram,简称 DFD) 是新系统逻辑模型的主要组成部分,它可以反映 出新系统的主要功能、系统与外部环境间的输入
输出、系统内部的处理、数据传送、数据存储等
图 2 数据流程图基本符号
情况。它的绘制依据是现行系统流程图,数据流程图是管理信息系统的总体设计图。数据流程图的符号如图 2 所示。公司出勤管理系统的数据流图如图
3 所示。
2数据库设计
图 3 公司出勤情况管理系统的数据流图
2.1数据库需求分析
根据前面的分析,在公司管理数据库中,员工信息和出勤情况应该分别对应一个数据结构。员工的信息有编号、姓名、性别、出生日期、职位、部门、工资,出勤的信息有编号、员工编号、出勤日期。
2.2数据库概念结构设计
实 体 - 联 系 模 型 (Entity - Relationship Module,E-R 模型)是数据库结构设计常用的方法。图 4 所示
是公司出勤情况管理系统的E-R 图。
2.3数据库逻辑结构设计
图 4 公司出勤管理系统E-R 图
根据系统 E-R 图,需要设计 2 个数据表来存放员工信息和出勤信息。另外需要 2 个计数器数据表来实现记录号的生成。这 2 个数据表的结构如表
1、表 2 所示。其中:数据类型char(50)表示字段类型为char 类型,而长度为 50;如果设置了默认值,表示如果在程序中不给这个字段赋值,则数据库管理系统不会让这个字段为空,而是以默认值来保存这个字段的值;取值范围中的非空表示这个字段不能为空(NULL),这表明用户必须给这个字段赋值,否则数据库会报错。
表 1 Employee 表,用于存放员工的基本信息
表 2 OnDuty 表,用于存放员工的出勤信息
字段名称 数据类型 默认值 取值范围 说明
ID INT 非空 编号,主关键字
EMPID INT 非空 员工编号
DUTYDATE DATE 非空 出勤日期
2.4数据库的建立
USE master GO
IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'CompDuty')
DROP DATABASE [CompDuty] GO
CREATE DATABASE [CompDuty] GO
use [CompDuty] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_OnDuty_Employee]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[OnDuty] DROP CONSTRAINT FK_OnDuty_Employee GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[OnDuty]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[OnDuty] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Employee]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Employee] GO
CREATE TABLE [dbo].[Employee] (
[id] [smallint] IDENTITY (1, 1) NOT NULL ,
[Name] [nvarchar] (20) NOT NULL , [Sex] [nvarchar] (2) NOT NULL , [Birthday] [smalldatetime] NOT NULL , [Job] [nvarchar] (30) NULL ,
[Dept] [nvarchar] (50) NULL , [Salary] [int] NULL
) GO
CREATE TABLE [dbo].[OnDuty] (
[ID] [smallint] IDENTITY (1, 1) NOT NULL ,
[EmpID] [smallint] NULL , [DutyDate] [smalldatetime] NULL
) GO
ALTER TABLE [dbo].[Employee] WITH NOCHECK ADD CONSTRAINT [PK_Employee] PRIMARY KEY CLUSTERED ([id]) GO
ALTER TABLE [dbo].[OnDuty] WITH NOCHECK ADD CONSTRAINT [PK_OnDuty] PRIMARY KEY CLUSTERED ([ID]) GO
ALTER TABLE [dbo].[Employee] WITH NOCHECK ADD CONSTRAINT [DF_Employee_Sex] DEFAULT (N'男') FOR [Sex] GO
ALTER TABLE [dbo].[OnDuty] ADD
CONSTRAINT [FK_OnDuty_Employee] FOREIGN KEY ([EmpID]) REFERENCES [dbo].[Employee] ([id])
ON DELETE CASCADE ON UPDATE CASCADE GO
3各功能模块的设计与实现
3.1功能说明
(1)员工管理:利用网格增加、删除或者修改员工的各种数据。
(2)出勤管理:利用下拉列表增加、删除或者修改出勤时间和出勤员工。
(3)出勤查询:用户可以按员工姓名来查找员工在某一时间范围内的 出勤信息,利用网格显示详细的结果,而出勤次数使用文本显示。
(4)出勤统计:某一时间范围内每一个员工的出勤次数,统计结果使 用网格形式显示。
|