3.4 数据库设计与实施 3.4.1数据库需求分析
用户的需求具体体现在各种信息的提供、保存、更新和查询方面,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据,数据结构以及数据处理的流程,组成一份详尽的数据库。针对本学院的毕业论文完成的流程,通过对学生学习过程的内容和数据流程分析,设计如下所示的数据项和数据结构。
1. 学院数据实体:学院名称、负责人、办公电话、学院编号。
2. 学生数据实体:学号、密码、姓名、性别、民族、籍贯、出生日期、身份证号、联系电话、Email 、备注、学院编号、所在班级、角色名称、论文编号。
3. 教师数据实体:教师编号、密码、学院编号、所在科室、发布选题、教育程度、职称、姓名、性别、政治面貌、联系电话、Email 、角色名称、备注。
4. 角色数据实体:角色名称、权限名称。 5. 权限数据实体:权限名称、 角色名称。 以上的实体都是基本的数据实体。
由于操作模块的名称对应该权限,在程序初始化时这些数据都应该添加,教师论文管理系统的目的进行论文管理,因此还要包括如下的几个数据实体:
6. 论文数据实体:论文编号、学院、作者、刊物名称、论文题目、收录 情况、教师编号、学号、影响力、影响因子、引用次数、备注。
7. 评审数据实体:教师编号、学号、论文编号、论文题目、评审意见、总分。
3.4.2数据库概念结构设计
根据需求分析的数据项和数据结构,可以规划出学院实体、教师实体、学生实体等各实体的E_R图。具体如下图所示。
图3-7学院实体E-R 图
图3-8教师实体E-R 图
图3-9学生实体E_R图
图3-10论文实体E_R图
图3-11角色实体E_R图
图3-12 权限实体E_R图
图3-13 系统总体E_R图
3.4.3数据逻辑结构设计
将数据概念结构设计转化为SQL SERVER 2005 数据库系统所支持的实际数据库模型,就是数据库的逻辑结构。在实体以及实体之间的关系基础上,形成数据库中的表格以及各个表格之间的关系。毕业论文管理系统数据库中的各个表格的设计见附录。
1. 管理员进行基础信息的管理时,包括学院,用户、角色的管理,因此要包括四个
数据实体。根据前面的分析可知,这四个实体要描述的信息分别为:
2. 学院数据实体:学院名称、负责人、办公电话、学院编号。
3. 学生数据实体:学号、密码、姓名、性别、民族、籍贯、出生日期、身份证号、联系电话、Email 、备注、学院编号、所在班级、角色名称、论文编号。
4. 教师数据实体:教师编号、密码、学院编号、所在科室、发布选题、教育程度、职称、姓名、性别、政治面貌、联系电话、Email 、角色名称、备注。
5. 角色数据实体:角色名称、权限名称。
6. 由于操作模块的名称对应该权限,在程序初始化时这些数据都应该添加,因此还应有如下的数据实体。
7. 权限数据实体:权限名称、 角色名称、 8. 以上的五个实体都是基本的数据实体。
9. 教师论文管理系统的目的进行论文管理,因此还要包括如下的几个数据实体: 10. 论文数据实体:论文编号、学院、作者、刊物名称、论文题目、收录 情况、教师编号、学号、影响力、影响因子、引用次数、备注。
11. 评审数据实体:教师编号、论文编号、学号、论文题目、评审意见、总分。
3.4.4物理结构设计
在这个数据库管理系统中要建立13张数据表,下面将主要介绍关键数据表的数据库设计的详细及存储后台用户基本信息的数据库表的字段说明。
1. 数据表的说明
(1) 学院数据表(pms_college):用于存放学院数据, 如表3-1。 (2) 教师数据表(pms_teacher):用于存放教师数据, 如表3-2。 (3) 学生数据表(pms_student):用于存放学生数据, 如表3-3。 (4) 角色数据表(pms_role):用于存放角色数据库, 如表3-4。 (5) 权限数据表(pms_right):用于存放权限数据, 如表3-5。 (6) 论文数据表(pms_paper):用于存放论文数据, 如表3-6。
(7) 评审数据表(pms_score):用于存放学生论文的评审结果, 如表3-7。
(8) 课题选择表(pms_select):纪录学院所要求的论文的课题,供毕业生进行论文课题选择, 如表3-8。
(9) 上传文档表(pms_upload):纪录用户上传文档的保存信息, 如表3-9 (10) (11) (12) (13)
系统信息设置表(Config ):纪录系统的基础设置信息, 如表3-10。 公告信息表(Information ):用于存放系统公告消息,如表3-11。 管理员信息表(admin):用于存放管理员的信息,如表3-12
消息表(massage )纪录用户之间相互发送的消息等信息,如表3-13。
2. 数据表的详细设计
(1) 学院数据表(pms_college)的设计如表3-1所示。
表3-1学院数据表
(2) 教师数据表(pms_teacher)的设计如表3-2所示。
表3-2教师数据表
(3) 学生数据表(pms_student)的设计如表3-3所示。
用户基本信息表保存的是后台用户的基本信息。其中“sno,tno ”和“用户密码”是用于以后登陆,为了不引起混乱,要求“用户名”在表中唯一;姓名、电话、电子邮件等是用户的基本信息。
表3-3学生数据表
(4) 角色数据表(pms_role)
表3-4角色数据表
(5) 权限数据表(pms_right)
表3-5权限数据表
(6) 论文数据表(pms_paper)
表3-6论文数据表
(7) 评审数据表(pms_score)
表3-7评审数据表
(8) 选题信息表(pms_select)如表3-8所示。
表3-8 选题信息表
(9) 上传文档表(pms_upload)如表3-9所示。
表3-9 上传文档表up_docunment
(10) 系统信息设置表(Config )如表3-10所示。
表3-10 系统信息设置表Config
(11) 公告信息表(Information ) 如表3-11所示。
公告信息主要包括以下几个方面:学校关于毕业设计方面的规章制度、设计安排,以及推荐范文、表格下载和历年的优秀论文,和最新的公告和通知等方面内容。该项只有管理员才有权限进行添加。
表3-11公告信息表(Information )
(12) 管理员信息如表3-12所示。
该表是用于保存系统管理人员的基本信息的,其中“管理员用户名”和“管理密码”是管理人员登陆系统进行管理的通行证,为了不引起混乱,“用户名”在表中是唯一的。本系统的管理员分为两类:一是总管理员,拥有最高权限;二是教务管理人员,拥有一般权限,如信息的发布等等。
表3-12管理员信息
(13) 消息管理表Massage 如表3-13所示。
表3-13消息管理表Massage
3.4.5创建表的脚本文件
根据数据库的字段设计,编写的创建数据表的语句详见附录。
3.5表之间的关系
图3-14表间关系
附录B 代码
创建表的脚本语句:
(1) 学院数据表
create table pms_college(
Collegeid int primary key,
Name char(20) not null,
Tel char(11) not null,
Man char(12) not null,
renshu char(10));
(2) 教师数据表
create table pms_teacher(
tno char primary key,
password char not null,
name char not null,
sex char default null,
Politics char not null,
Education char not null,
Post char not null,
Mobile char,
Email char,
Descs char,
College char not null,
Department char not null,
role char);
(3) 学生数据表
create table pms_student(
sno char(10) primary key,
passwd char(16) not null,
sname char(30) not null,
sex char(3) not null,
politics char(45) ,
birthday datetime,
cerid char(30) not null,
addr char(30) not null,
mobile char(11),
email char(50),
descs char(90),
college char(30),
classes char(35),
role char(90),
pno char(20) not null);
(4) 文件上传数据表
create table pms_fileup(
sno char(10),
fno char(10) primary key,
fname nchar(50),
filememo char(50),
fileaddr char(50),
filetime datetime);
(1) 角色数据表
create table pms_role
(
name char(9)primary key, Rname char(12)
)
(2) 权限数据表
create table pms_right
(Rname char(12) primary key,
name char(12)
)
(3) 论文数据表
create table pms_paper
( Bh char(10) primary key,
Xy char not null ,Zz char not null ,Kwmc char not null ,Lwmc char not
null ,Yxl char not null ,Yxyz char not null ,Yycs number not null ,Djzz number not
null ,Bz char not null ))
(4) 评审数据表
create table pms_score ( Bh char(10),
Sno char not null ,Lwmc char not null ,Tno char not null
null ,score char not null )
(5) 管理员数据表
create table pms_admain(
ano char(10) primary key,
aname char(30) not null,
sex char(3) not null,
addr char(30) not null,
mobile char(11),
email char(50),
descs char(90),
role char(90),
);
,Comm char not
3.4 数据库设计与实施 3.4.1数据库需求分析
用户的需求具体体现在各种信息的提供、保存、更新和查询方面,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据,数据结构以及数据处理的流程,组成一份详尽的数据库。针对本学院的毕业论文完成的流程,通过对学生学习过程的内容和数据流程分析,设计如下所示的数据项和数据结构。
1. 学院数据实体:学院名称、负责人、办公电话、学院编号。
2. 学生数据实体:学号、密码、姓名、性别、民族、籍贯、出生日期、身份证号、联系电话、Email 、备注、学院编号、所在班级、角色名称、论文编号。
3. 教师数据实体:教师编号、密码、学院编号、所在科室、发布选题、教育程度、职称、姓名、性别、政治面貌、联系电话、Email 、角色名称、备注。
4. 角色数据实体:角色名称、权限名称。 5. 权限数据实体:权限名称、 角色名称。 以上的实体都是基本的数据实体。
由于操作模块的名称对应该权限,在程序初始化时这些数据都应该添加,教师论文管理系统的目的进行论文管理,因此还要包括如下的几个数据实体:
6. 论文数据实体:论文编号、学院、作者、刊物名称、论文题目、收录 情况、教师编号、学号、影响力、影响因子、引用次数、备注。
7. 评审数据实体:教师编号、学号、论文编号、论文题目、评审意见、总分。
3.4.2数据库概念结构设计
根据需求分析的数据项和数据结构,可以规划出学院实体、教师实体、学生实体等各实体的E_R图。具体如下图所示。
图3-7学院实体E-R 图
图3-8教师实体E-R 图
图3-9学生实体E_R图
图3-10论文实体E_R图
图3-11角色实体E_R图
图3-12 权限实体E_R图
图3-13 系统总体E_R图
3.4.3数据逻辑结构设计
将数据概念结构设计转化为SQL SERVER 2005 数据库系统所支持的实际数据库模型,就是数据库的逻辑结构。在实体以及实体之间的关系基础上,形成数据库中的表格以及各个表格之间的关系。毕业论文管理系统数据库中的各个表格的设计见附录。
1. 管理员进行基础信息的管理时,包括学院,用户、角色的管理,因此要包括四个
数据实体。根据前面的分析可知,这四个实体要描述的信息分别为:
2. 学院数据实体:学院名称、负责人、办公电话、学院编号。
3. 学生数据实体:学号、密码、姓名、性别、民族、籍贯、出生日期、身份证号、联系电话、Email 、备注、学院编号、所在班级、角色名称、论文编号。
4. 教师数据实体:教师编号、密码、学院编号、所在科室、发布选题、教育程度、职称、姓名、性别、政治面貌、联系电话、Email 、角色名称、备注。
5. 角色数据实体:角色名称、权限名称。
6. 由于操作模块的名称对应该权限,在程序初始化时这些数据都应该添加,因此还应有如下的数据实体。
7. 权限数据实体:权限名称、 角色名称、 8. 以上的五个实体都是基本的数据实体。
9. 教师论文管理系统的目的进行论文管理,因此还要包括如下的几个数据实体: 10. 论文数据实体:论文编号、学院、作者、刊物名称、论文题目、收录 情况、教师编号、学号、影响力、影响因子、引用次数、备注。
11. 评审数据实体:教师编号、论文编号、学号、论文题目、评审意见、总分。
3.4.4物理结构设计
在这个数据库管理系统中要建立13张数据表,下面将主要介绍关键数据表的数据库设计的详细及存储后台用户基本信息的数据库表的字段说明。
1. 数据表的说明
(1) 学院数据表(pms_college):用于存放学院数据, 如表3-1。 (2) 教师数据表(pms_teacher):用于存放教师数据, 如表3-2。 (3) 学生数据表(pms_student):用于存放学生数据, 如表3-3。 (4) 角色数据表(pms_role):用于存放角色数据库, 如表3-4。 (5) 权限数据表(pms_right):用于存放权限数据, 如表3-5。 (6) 论文数据表(pms_paper):用于存放论文数据, 如表3-6。
(7) 评审数据表(pms_score):用于存放学生论文的评审结果, 如表3-7。
(8) 课题选择表(pms_select):纪录学院所要求的论文的课题,供毕业生进行论文课题选择, 如表3-8。
(9) 上传文档表(pms_upload):纪录用户上传文档的保存信息, 如表3-9 (10) (11) (12) (13)
系统信息设置表(Config ):纪录系统的基础设置信息, 如表3-10。 公告信息表(Information ):用于存放系统公告消息,如表3-11。 管理员信息表(admin):用于存放管理员的信息,如表3-12
消息表(massage )纪录用户之间相互发送的消息等信息,如表3-13。
2. 数据表的详细设计
(1) 学院数据表(pms_college)的设计如表3-1所示。
表3-1学院数据表
(2) 教师数据表(pms_teacher)的设计如表3-2所示。
表3-2教师数据表
(3) 学生数据表(pms_student)的设计如表3-3所示。
用户基本信息表保存的是后台用户的基本信息。其中“sno,tno ”和“用户密码”是用于以后登陆,为了不引起混乱,要求“用户名”在表中唯一;姓名、电话、电子邮件等是用户的基本信息。
表3-3学生数据表
(4) 角色数据表(pms_role)
表3-4角色数据表
(5) 权限数据表(pms_right)
表3-5权限数据表
(6) 论文数据表(pms_paper)
表3-6论文数据表
(7) 评审数据表(pms_score)
表3-7评审数据表
(8) 选题信息表(pms_select)如表3-8所示。
表3-8 选题信息表
(9) 上传文档表(pms_upload)如表3-9所示。
表3-9 上传文档表up_docunment
(10) 系统信息设置表(Config )如表3-10所示。
表3-10 系统信息设置表Config
(11) 公告信息表(Information ) 如表3-11所示。
公告信息主要包括以下几个方面:学校关于毕业设计方面的规章制度、设计安排,以及推荐范文、表格下载和历年的优秀论文,和最新的公告和通知等方面内容。该项只有管理员才有权限进行添加。
表3-11公告信息表(Information )
(12) 管理员信息如表3-12所示。
该表是用于保存系统管理人员的基本信息的,其中“管理员用户名”和“管理密码”是管理人员登陆系统进行管理的通行证,为了不引起混乱,“用户名”在表中是唯一的。本系统的管理员分为两类:一是总管理员,拥有最高权限;二是教务管理人员,拥有一般权限,如信息的发布等等。
表3-12管理员信息
(13) 消息管理表Massage 如表3-13所示。
表3-13消息管理表Massage
3.4.5创建表的脚本文件
根据数据库的字段设计,编写的创建数据表的语句详见附录。
3.5表之间的关系
图3-14表间关系
附录B 代码
创建表的脚本语句:
(1) 学院数据表
create table pms_college(
Collegeid int primary key,
Name char(20) not null,
Tel char(11) not null,
Man char(12) not null,
renshu char(10));
(2) 教师数据表
create table pms_teacher(
tno char primary key,
password char not null,
name char not null,
sex char default null,
Politics char not null,
Education char not null,
Post char not null,
Mobile char,
Email char,
Descs char,
College char not null,
Department char not null,
role char);
(3) 学生数据表
create table pms_student(
sno char(10) primary key,
passwd char(16) not null,
sname char(30) not null,
sex char(3) not null,
politics char(45) ,
birthday datetime,
cerid char(30) not null,
addr char(30) not null,
mobile char(11),
email char(50),
descs char(90),
college char(30),
classes char(35),
role char(90),
pno char(20) not null);
(4) 文件上传数据表
create table pms_fileup(
sno char(10),
fno char(10) primary key,
fname nchar(50),
filememo char(50),
fileaddr char(50),
filetime datetime);
(1) 角色数据表
create table pms_role
(
name char(9)primary key, Rname char(12)
)
(2) 权限数据表
create table pms_right
(Rname char(12) primary key,
name char(12)
)
(3) 论文数据表
create table pms_paper
( Bh char(10) primary key,
Xy char not null ,Zz char not null ,Kwmc char not null ,Lwmc char not
null ,Yxl char not null ,Yxyz char not null ,Yycs number not null ,Djzz number not
null ,Bz char not null ))
(4) 评审数据表
create table pms_score ( Bh char(10),
Sno char not null ,Lwmc char not null ,Tno char not null
null ,score char not null )
(5) 管理员数据表
create table pms_admain(
ano char(10) primary key,
aname char(30) not null,
sex char(3) not null,
addr char(30) not null,
mobile char(11),
email char(50),
descs char(90),
role char(90),
);
,Comm char not