江西现代职业技术学院
第四章 数据库的设计与实现
4.1 数据库概念结构设计
(1)局部E-R图,下图为科研项目的E-R图,如图4-1所示
编号 名称 学科类 审核人 科研项目 批次 申请时间 状态 负责人 结项时间
图4-1:科研项目E-R图
状态 (2)集成E-R图,下图为教师信息表的部分关联信息,如图4-2所示
编号 性别 姓名 教师 生日 部门 QQ 部门编号 岗位 部门名称 岗位编号 晋升分值 岗位名称 所属编号
图4-2:教师信息集成E-R图
12
江西现代职业技术学院
4.2数据库表的设计
数据库是所有系统设计中的灵魂部分,没有数据库的系统是毫无价值的,是个残废的系统,所以,数据库是个很重要的部分。下面就详细介绍数据库的设计。
(1) Book(著作表):用来存储著作信息,主键期刊编号number,其同时也为标识列,还有著作名称、作者、课题来源、著作类、出版时间、出版社单位、状态、所属项目、分数。表各字段设计如表4-3所示
表4-3 :著作表
列名 Number(书籍编号) Name(书籍名称) Author(作者) Topicsource(著作分值) Bookclass(书籍分类) Scienceclass(学科分类) PublishTime(出版时间) Publisher(出版社) State(状态) Project(项目) Score(分值) 数据类型 Int Nvarchar(50) Int Int Int Int Datetime Nvarchar(50) Nvarchar(50) Int Int 是否允许为空 否(主键) 否 是 是 是 是 是 是 是 是 是 在著作表中著作编号和著作名称都不可以为空,因为这两个在数据库中都是起到关键的作用,所以,不可以为空。
(2) Paper(论文表)用来存储论文信息,主键论文编号number,其同时也为标识列。表各字段设计如下表4-4所示
表4-4:论文表
列名 Number(论文编号) Name(论文名称) 数据类型 Int Varchar(50) 是否允许为空 否(主键) 否 13
江西现代职业技术学院
Author(作者) Scienceclass(学科分类) Paperclass(论文分类) Paperdate(论文发表时间) Publish(发表地址) State(状态) Words(字数) Project(项目) Score(分值) Int Int Int Datetime Varchar(50) Varchar(50) Varchar(50) Int Int 是 是 是 是 是 是 是 是 是 在论文表中论文编号和论文名称都不可以为空,因为这两个在数据库中都是起到关键的作用,所以,不可以为空。
(3)Prize(获奖成果)用来储存获奖成果的信息,主键为获奖成果的编号number,其同时也为标识列。表的详细字段如下表4-5所示
表4-5:获奖成果表
列名 Number(获奖成果编号) PrizeName(获奖名称) Prizeobj(获奖项目) Prizedep(出版) Scienceclass(学科分类) State(状态) Prizeclass(获奖分类) Author(作者) Prizetime(获奖时间) Project(项目) Score(分值) 数据类型 Int Nvarchar(50) Nvarchar(50) Nvarchar(50) Int Nvarcher(50) Int Int Datetime Int Int 是否为空 否(主键) 否 是 是 是 是 是 是 是 是 是 4.3 数据库的安全
14
江西现代职业技术学院
在本系统中,数据库的安全主要通过数据库的存取控制机制实现的。首先定义各类管理人员的操作权限即角色,然后依据用户表将登录分配为相应的角色。由于人员的复杂性,角色分教师、科研管理员、系统管理员三种角色。在用户登录时,提取出用户的角色,不同的角色进入系统后,对应页面初始化时的角色检查会判断改角色可不可以使用该页面,从而保证每种角色的用户,只能看到的操作到自己权限范围内的数据,其他的数据根本看不到,从而基于角色,实现数据的存取控制的安全性。
主外键约束的关系图和项目所涉及的各表间关系图,如图4-6所示
图4-6:系统关系图
15