3数据库设计说明书.docx
《3数据库设计说明书.docx》由会员分享,可在线阅读,更多相关《3数据库设计说明书.docx(20页珍藏版)》请在冰豆网上搜索。
3数据库设计说明书
数据库设计说明书
1引言2
1.1编写目的2
1.2背景2
1.3定义2
1.4参考资料2
2外部设计2
2.1标识符和状态2
2.2使用它的程序3
2.3约定3
2.4专门指导3
2.5支持软件3
3结构设计3
3.1概念结构设计3
3.2逻辑结构设计3
3.3物理结构设计4
4运用设计4
4.1数据字典设计4
4.2安全保密设计4
数据库设计说明书
1引言
1.1编写目的
本文档说明了企业人事管理系统的数据库的设计,用于指导该系统在数据库存储各方面的内容,为系统开发的程序员、系统分析员作为基准文档。
1.2背景
1.待开发的数据库名称:
MyDB
2.使用此数据库的软件系统名称:
企业人事管理系统
3.项目提出者:
××软件公司
4.最终用户:
××软件公司
1.3定义
列出本文件中用到的专门术语的定义、外文首字母组词的原词组。
1.4参考资料
1.《企业人事管理系统需求调研报告》
2.《企业人事管理系统需求规格说明书》
3.《企业人事管理系统概要设计说明书》
4.《软件设计文档国家标准--数据库设计说明书(GB8567——88)》
2外部设计
2.1标识符和状态
待建立的数据库名称:
MyDB
数据库软件:
Oracle10g
2.2使用它的程序
PersonnelManagerSystemVersion1.0
2.3约定
表命名Tb_,数据表必须以有特征含义的单词或缩写组成,中间可以用“_”分割,例如tb_record。
主键命名PK_,主键名称应是前缀+表名+构成的字段名。
如果复合主键的构成字段较多,则只包含第一个字段。
表名可以去掉前缀。
外键命名FK_,外键名称应是前缀+外键表名+主键表名+外键表构成的字段名。
表名可以去掉前缀。
命名应该使用英文单词,避免使用拼音,特别不应该使用拼音简写。
命名不允许使用中文或者特殊字符。
英文单词使用和对象本身意义相对或相近的单词。
选择最简单或最通用的单词。
不能使用毫不相干的单词来命名。
当一个单词不能表达对象含义时,用词组组合,如果组合太长时,采用简或缩写,缩写要基本能表达原单词的意义。
2.4专门指导
2.5支持软件
3结构设计
3.1概念结构设计
根据需求分析和系统概要设计,规划出本系统中使用的所有数据库实体。
下面给出所有实体的E-R图:
1.员工就职表
2.培训信息表
3.培训课程
4.试用期合同表
5.正式合同表
6.续签登记表
7.考勤信息表
8.考勤类型
9.奖惩信息表
10.员工调动表
11.考评信息表
12.离职登记表
13.待遇信息表
14.帐套
15.帐套项目
16.帐套人员设置
17.档案信息表
18.部门
19.职务
20.籍贯
21.民族
22.用户
3.2逻辑结构设计
1.将概念结构设计中的E-R图转换为关系数据库的数据模型,其关系模式为:
1)员工就职表(员工编号+姓名+性别+部门+职务+就职日期),其中员工编号为主码,部门(编号)、职务(编号)为外码;
2)培训信息表(培训记录编号+员工编号+员工姓名+课时+开始时间+结束日期+培训费用+成绩+培训课程+备注),其中培训记录编号为主码,员工编号、培训课程为外码;
3)培训课程(课程编号+课程名称+培训对象+课时+计划开始时间+计划结束日期+实际开始时间+实际结束时间+计划人数+实际人数+备注),其中课程编号为主码,员工编号、没有外码;
4)试用期合同表(试用期合同编号+员工编号+员工姓名+部门+试用天数+试用起始日期+试用结束日期+试用工资+职务),其中试用期合同编号为主码,员工编号、部门、职务为外码;
5)正式合同表(正式合同编号+员工编号+员工姓名+部门+签订年数+首次签订时间+本次到期时间+正式工资+职务+合同累计年数+续签次数),其中正式合同编号为主码,员工编号、部门、职务为外码;
6)续签登记表(续签登记编号+正式合同编号+续签起始日期+续签结束日期+续签年数),其中续签登记编号为主码,正式合同编号为外码;
7)考勤信息表(考勤编号+员工编号+员工姓名+部门+考勤类型+考勤说明+开始日期+结束日期+批准部门+批准人+批准日期),其中考勤编号为主码,员工编号、部门、考勤类型(编号)、批准部门为外码;
8)考勤类型(考勤类型编号+考勤类型名称),其中考勤类型编号为主码,没有外码;
9)奖惩信息表(奖惩编号+员工编号+员工姓名+部门+职务+奖惩类型+奖惩原因+奖惩内容+奖惩日期+奖惩金额),其中奖惩编号为主码,员工编号、部门、职务为外码;
10)员工调动表(调动表编号+员工编号+员工姓名+原部门+原职务+新部门+新职务+调动原因+调动日期),其中调动表编号为主码,员工编号、原/新部门(编号)、原/新职务(编号)为外码;
11)考评信息表(考评记录编号+员工编号+员工姓名+部门+职务+考评日期+考核内容+考评结果+考核人编号+考核人姓名+考核人职务),其中考评记录编号为主码,员工编号、部门、职务(编号)、考核人编号、考核人职务为外码;
12)离职登记表(离职记录编号+员工编号+员工姓名+部门+职务+离职原因+离职时间),其中离职记录编号为主码,员工编号、部门、职务(编号)为外码;
13)待遇信息表(待遇信息编号+员工编号+员工姓名+部门+职务+奖金+罚金+养老保险+补贴+医疗保险+住房基金+失业保险+计算日期+基本工资+实发工资),其中待遇信息编号为主码,员工编号、部门、职务(编号)、基本工资为外码;
14)帐套(帐套编号+帐套名称+帐套说明),其中帐套编号为主码,没有外码;
15)帐套项目(项目编号+项目名称+项目类型+项目单位+项目金额),其中项目编号为主码,没有外码;
16)帐套人员设置(设置编号+帐套编号+员工编号),其中设置编号为主码,帐套编号、员工编号为外码;
17)档案信息表(员工编号+员工姓名+性别+出生日期+婚姻状况+毕业院校+身份证号+电子邮件+联系地址+联系电话+政治面貌+民族+籍贯+学历+专业+职务+部门+就职日期+合同开始时间+合同结束时间),其中员工编号为主码,职务、部门为外码;
2.全局数据库视图如下:
3.具体的表设计如下:
1)员工就职表PersonInductionInfo
字段名称
数据类型
可否为空
约束条件
说明
PersonnelId
CHAR(10)
NOTNULL
主键
员工编号
PersonnelName
CHAR(10)
NOTNULL
无
员工姓名
Sex
CHAR(4)
NULL
无
员工性别
Department
CHAR(20)
NULL
无
所在部门
Position
CHAR(10)
NULL
无
职务
DateIntoCompany
DATETIME
NULL
无
就职日期
2)部门表DepartmentInfo
字段名称
数据类型
可否为空
约束条件
说明
DepartmentId
CHAR(10)
NOTNULL
主键
部门编号
Department
CHAR(10)
NULL
无
部门名称
3)职务表PsoitionInfo
字段名称
数据类型
可否为空
约束条件
说明
PositionId
CHAR(10)
NOTNULL
主键
职务编号
Position
CHAR(20)
NULL
无
职务名
4)培训信息表TrainingInfo
字段名称
数据类型
可否为空
约束条件
说明
TrainingId
CHAR(10)
NOTNULL
主键
培训记录编号
PersonnelId
CHAR(10)
NOTNULL
无
员工编号
PersonnelName
CHAR(10)
NOTNULL
无
员工姓名
TrainingCourse
CHAR(10)
NULL
无
培训课程
TrainingHours
CHAR(4)
NULL
无
培训课时
TrainingScores
CHAR(4)
NULL
无
培训成绩
TrainingExpense
CHAR(4)
NULL
无
培训费用
TrainingStart
DATETIME
NULL
无
培训开始日期
TrainingEnd
DATETIME
NULL
无
培训结束日期
TrainingRemark
VARCHAR(50)
NULL
无
培训备注
5)培训课程CourseInfo
字段名称
数据类型
可否为空
约束条件
说明
CourseCode
CHAR(10)
NOTNULL
主键
课程编号
CourseName
CHAR(10)
NOTNULL
无
课程名称
StudentsType
CHAR(10)
NULL
无
培训对象
TeachingHours
INT(4)
NULL
无
培训课时
PlannedStartTime
DATETIME
NULL
无
计划开始日期
PlannedEndTime
DATETIME
NULL
无
计划结束日期
ActualStartTime
DATETIME
NULL
无
实际开始日期
ActualEndTime
DATETIME
NULL
无
实际结束日期
AccruedHeadcount
INT(4)
NULL
无
应参训人数
AttendedHeadcount
INT(4)
NULL
无
实际参训人数
CourseRemark
VACHAR(50)
NULL
无
课程备注
6)试用期合同表ProbationaryContractInfo
字段名称
数据类型
可否为空
约束条件
说明
ProbationaryId
CHAR(10)
NOTNULL
主键
试用期合同编号
PersonnelId
CHAR(10)
NOTNULL
无
员工编号
PersonnelName
CHAR(10)
NOTNULL
无
员工姓名
Department
CHAR(10)
NULL
无
部门
PositionalTitle
CHAR(10)
NULL
无
职务
ProbationaryDays
INT(4)
NULL
无
试用天数
ProbationaryStartTime
DATETIME
NULL
无
试用开始日期
ProbationaryEndTime
DATETIME
NULL
无
试用结束日期
ProbationarySalary
INT(4)
NULL
无
试用工资
7)正式合同表OfficialContractInfo
字段名称
数据类型
可否为空
约束条件
说明
OfficialContractId
CHAR(10)
NOTNULL
主键
正式合同编号
PersonnelId
CHAR(10)
NOTNULL
无
员工编号
PersonnelName
CHAR(10)
NOTNULL
无
员工姓名
Position
CHAR(10)
NULL
无
职务
FirstStartTime
DATETIME
NULL
无
首次签订时间
LastEndTime
DATETIME
NULL
无
本次到期时间
RenewTimes
INT(4)
NULL
无
续签次数
ContractYears
INT(4)
NULL
无
签订年数
TotalContractYears
INT(4)
NULL
无
合同累计年数
OfficalSalary
INT(4)
NULL
无
正式工资
8)续签登记表RenewContractInfo
字段名称
数据类型
可否为空
约束条件
说明
RenewContractId
CHAR(10)
NOTNULL
主键
续签登记编号
OfficalContractId
CHAR(4)
NOTNULL
无
正式合同编号
RenewStartTime
DATETIME
NULL
无
续签起始日期
RenewEndTime
DATETIME
NULL
无
续签结束日期
RenewYears
INT(4)
NULL
无
续签年数
9)考勤信息表AttendanceInfo
字段名称
数据类型
可否为空
约束条件
说明
AttendanceId
CHAR(10)
NOTNULL
主键
考勤编号
PersonnelId
CHAR(10)
NOTNULL
无
员工编号
PersonnelName
CHAR(10)
NOTNULL
无
员工姓名
Department
CHAR(10)
NULL
无
部门
AttendanceTypesName
CHAR(10)
NULL
无
考勤类型
BeginTime
DATETIME
NULL
无
开始日期
FinishTime
DATETIME
NULL
无
结束日期
AttendanceTime
DATETIME
NULL
无
批准日期
AttendanceRemark
DATETIME
NULL
无
考勤说明
10)考勤类型表AttendanceTypesInfo
字段名称
数据类型
可否为空
约束条件
说明
AttendanceTypesId
CHAR(10)
NOTNULL
主键
考勤类型编号
AttendanceTypesName
CHAR(10)
NOTNULL
无
考勤类型名称
11)员工调动表TransferredInfo
字段名称
数据类型
可否为空
约束条件
说明
TransferredId
CHAR(10)
NOTNULL
主键
调动表编号
PersonnelId
CHAR(10)
NOTNULL
无
员工编号
PersonnelName
CHAR(10)
NOTNULL
无
员工姓名
DepartmentBefore
CHAR(10)
NULL
无
原部门
PositionBefore
CHAR(10)
NULL
无
原职务
DepartmentAfter
CHAR(10)
NULL
无
新部门
PositionAfter
CHAR(10)
NULL
无
新职务
TransferredTime
DATETIME
NULL
无
调动日期
TransferredResult
VACHAR(50)
NULL
无
调动原因
12)考评信息表PAInfo
字段名称
数据类型
可否为空
约束条件
说明
PAId
CHAR(10)
NOTNULL
主键
考评记录编号
PersonnelId
CHAR(10)
NOTNULL
无
员工编号
PersonnelName
CHAR(10)
NOTNULL
无
员工姓名
Department
CHAR(10)
NULL
无
部门
Position
CHAR(10)
NULL
无
职务
PATime
DATETIME
NOTNULL
无
考评日期
PAContent
VACHAR(50)
NOTNULL
无
考评内容
PAResults
INT(4)
NOTNULL
无
考评结果
EvaluaterId
CHAR(10)
NULL
无
考评人编号
EvaluaterName
CHAR(10)
NULL
无
考评人姓名
EvaluaterPosition
CHAR(10)
NULL
无
考评人职务
13)离职登记表TerminationInfo
字段名称
数据类型
可否为空
约束条件
说明
TerminationId
CHAR(10)
NOTNULL
主键
离职记录编号
PersonnelId
CHAR(10)
NOTNULL
无
员工编号
PersonnelName
CHAR(10)
NOTNULL
无
员工姓名
Department
CHAR(10)
NULL
无
部门
Position
CHAR(10)
NULL
无
职务
TerminationTime
DATETIME
NULL
无
离职时间
TerminationResult
VACHAR(50)
NULL
无
离职原因
14)帐套AccountCoverInfo
字段名称
数据类型
可否为空
约束条件
说明
AccountCoverId
CHAR(10)
NOTNULL
主键
帐套编号
AccountCoverName
CHAR(10)
NOTNULL
无
帐套名称
AccountCoverRemark
VACHAR(20)
NULL
无
帐套说明
15)帐套项目ItemInfo
字段名称
数据类型
可否为空
约束条件
说明
ItemId
CHAR(10)
NOTNULL
主键
项目编号
ItemName
CHAR(10)
NOTNULL
无
项目名称
ItemStyle
CHAR(10)
NULL
无
项目类型
ItemUnit
CHAR(4)
NULL
无
项目单位
ItemCount
INT(4)
NULL
无
项目金额
16)帐套人员设置AccountCoverPersonnelInfo
字段名称
数据类型
可否为空
约束条件
说明
AccountCoverPersonId
CHAR(10)
NOTNULL
主键
设置编号
AccountCoverId
CHAR(10)
NOTNULL
无
帐套编号
PersonnelId
CHAR(10)
NOTNULL
无
员工编号
17)档案信息表DossierInfo
字段名称
数据类型
可否为空
约束条件
说明
PersonnelId
CHAR(10)
NOTNULL
主键
员工编号
PersonnelName
CHAR(10)
NOTNULL
无
员工姓名
Sex
CHAR(4)
NULL
无
性别
Department
CHAR(10)
NULL
无
部门
BirthDate
DATETIME
NULL
无
出生日期
DateIntoCompany
DATETIME
NULL
无
就职日期
MarriageStatus
CHAR(4)
NULL
无
婚姻状况
PoliticalStatus
CHAR(10)
NULL
无
政治面貌
Nationality
CHAR(10)
NOTNULL
无
民族
NativeProvince
CHAR(4)
NOTNULL
无
籍贯
AdvancedDegree
CHAR(10)
NULL
无
学历
Professional
CHAR(10)
NULL
无
专业
FirstStartTime
DATETIME
NULL
无
合同开始时间
LastEndTime
DATETIME
NULL
无
合同结束时间
School
CHAR(10)
NULL
无
毕业院校
PositionalTitle
CHAR(10)
NULL
无
职务
Address
VACHAR(50)
NULL
无
联系地址
Email
VACHAR(20)
NULL
无
电子邮件
Telephone
VACHAR(20)
NULL
无
联系电话
IDCard
VACHAR(50)
NOTNULL
无
身份证号
3.3物理结构设计
数据库MyDB的物理结构的部分符合Oracle10g关于数据文件、卷、页的分配和分配规则。
MyDB数据库初始大小为100M,按照超过最大容量后20%的增长速率进行增长。
MyDB数据库分配日志文件大小为20M,自动增长。
应用程序中自动截断事务日志。
物理文件的存储位置为Oracle默认的位置。
4运用设计
4.1数据字典设计
具体参照第3节中的表设计。
4.2安全保密设计
数据库被放置在独立的数据库服务器,设置专职的数据库管理人员DBA,负责日常数据库的管理和维护工作,对于访问数据库的用户进行严格的权限和密码管理,保证个人和企业信息的安全和保密性。