大学自动排课算法设计与实现数据库设计说明书学院电子与计算机科学技术学院专业软件工程题目大学自动排课算法设计与实现小组成员林琳、罗文凤、顾晓、史东海目录1.文档介绍 (1)1.1文档目的 (1)1.2文档范围 (1)1.3读者对象 (1)1.4参考文献 (1)1.5术语与缩写解释 (2)2.数据库环境说明 (3)3.数据库的命名规则 (3)4.逻辑设计 (3)5.物理设计 (7)5.1表汇总 (8)5.2表 A (9)5.3表 B (9)5.4表 C (10)5.5表 D (10)5.6表 E (10)5.7表 F (11)5.8表 G (11)5.9表 H (11)5.10表 I (12)8.安全性设计 (12)8.1防止用户直接操作数据库的方法 (12)8.2用户帐号密码的加密方法 (12)8.3角色与权限 (13)9.优化 (13)10.数据库管理与维护说明 (13)1.文档介绍1.1文档目的此份文档的目的就是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理结构, 并据此建立数据库应用系统,使之能够有效的存储和管理数据,满足各中用户的应用需求。
1.2文档范围A.待开发的软件系统为:大学自动排课算法设计与实现。
B.该软件可以帮助学校负责排课的相关人士完成排课任务。
C.开发本软件主要是为了帮助学校负责排课的相关人士解决“教师”、“教室”、“时间”等资源搜索的问题。
通过计算机运算速度快的特点,在大数据量的情况下寻找资源的最优或近似最优的组合,以减少人的工作量。
但特殊情况还需人为进行调节,不属于本系统所能处理的范围。
1.3读者对象该文档主要面向系统分析员、数据库设计人员,应用开发人员,数据库管理员,用户代表。
1.4参考文献数据库系统概论(第四版)作者:王珊、萨师煊出版社:高等教育出版社出版日期: 2008 年 12 月1.5术语与缩写解释无2.数据库环境说明运行环境的限制 :必须装有Java 运行平台的操作系统。
数据库则使用的是access数据库3.数据库的命名规则数据库对象包括表、视图(查询)、存储过程(参数查询)、函数、约束。
对象名字由前缀和实际名字组成,长度不超过30。
前缀:使用小写字母。
实际名字尽量描述实体的内容,由单词或单词组合,每个单词的首字母大写,其他字母小写,不以数字和 _开头。
合法的对象名字类似如下:字段命名规则数字、字符、日期 / 时间、杂项,字段有表的简称(或全称)、下划线、实际名称加后缀组成。
后缀:表示该字段的属性。
4.逻辑设计1)教师实体属性图如图 1 所示教师姓名电话号码教师教师编号所授课程总量图 1 教师实体及其属性课程号课程名课程所需学时是否需要多媒体图 2 课程实体及其属性3)教室实体属性图如图 3 所示教室号楼号教室是否为多媒体教室图 3 教室实体及其属性4)班级实体属性图如图 4 所示班级号班级系别图 4 班级实体及其属性时间班级号学生课表教室号课程号教师号图 5 学生课表实体及其属性6)教室课表实体属性图如图 6 所示时间教室号教室课表课程号班级号图 6 教室课表实体及其属性7)教师课表实体属性图如图7 所示教师号课程号教室号教师课表课程号时间图 7 教师课表实体及其属性8)大学自动排课实体属性图如图8 所示学生查询n属于教学任务1课表排课班级n属于查询11系别n教师属于图 8 大学自动排课实体属性图5.物理设计表 1用户信息表字段名称中文解释字段类型长度是否为空备注userID用户账号char20否主键secret用户密码char15否username用户名char20否表 2教师信息表字段名称中文解释字段类型长度是否为空备注id教师编号int20否主键name教师姓名char15否telephone电话号码char20Course所授课程数量int20否表 3课程信息表字段名称中文解释字段类型长度是否为空备注Id课程编号int20否主键name课程名char15否xueshi学时int20否special系别int50否是否需要多媒duomeiti char15否体表 4教室信息表字段名称中文解释字段类型长度是否为空备注Id教室编号char20否主键buliding楼号char15否duomeiti是否为多媒体char20否表 5班级信息表字段名称中文解释字段类型长度是否为空备注Id班级编号int20否主键Special系别int15否5.1表汇总表名功能说明表 course录入课程信息表 teacher录入教师信息表 room录入教室信息表 banji录入班级信息表 constrains录入约束条件表 special录入特殊条件表 teacherschedule输出教师课表表 studentschedule输出学生课表表 roomschedule输出教室课表表名course列名数据类型说明空 /非空约束条件(精度范围)id int课程号非空所有课程不得有相同的 id name字符型课程名非空xueshi int学时非空special int系别,表示上该门非空取值范围不得超过所有系别课的系别总数term int上该门课的学期非空只能为 1、 2、3 或 4,分别表示大一、大二、大三和大四。
duomeiti int1:该门课需要多媒非空数据只能为 1 和 0体教室;0:该门课不需要多媒体补充说明5.3表B表名teacher列名数据类型说明空/非空约束条件(精度范围)id int教师 id 号非空所有教师中不得有相同的 id name字符型教师名非空telephone字符型教师电话号码coursenum int所教授课程数量非空所教授课程数量不得大于所有课程总数量course1int为某门课程的id,非空外键course2int⋯ ..⋯.⋯ .course3⋯ ..⋯⋯⋯⋯⋯⋯course4⋯ ..⋯⋯⋯⋯⋯⋯补充说明假定教师最多上一学期四门课程表名room列名数据类型说明空/非空约束条件(精度范围)num字符型该教室号,如11210非空buliding字符型楼号非空duomeiti int是否为多媒体教室非空补充说明5.5表D表名banji列名数据类型说明空/非空约束条件(精度范围)num字符型班级号非空special int系别非空外键补充说明5.6表E表名constraints列名数据类型说明空 /非空约束条件(精度范围)id int某教师的 id非空外键period int该教师不上课的非空时间段补充说明表名special列名数据类型说明空/非空约束条件(精度范围)id int系别号非空name字符型系别名非空补充说明5.8表G表名teacherschedule列名数据类型说明空 /非空约束条件(精度范围)id int教师的 id 号非空外键course int课程 id 号非空外键banji字符型该班级号非空外键room字符型教室号非空外键coursename字符型课程名非空外键period int学时非空外键time int时间非空外键补充说明5.9表H表名studentschedule列名数据类型说明空 /非空约束条件(精度范围)id int班级的 id 号非空外键course int课程 id 号非空外键banji字符型该班级号非空外键room字符型教室号非空外键coursename字符型课程名非空外键period int学时非空外键time int时间非空外键teacher int教师名非空外键补充说明5.10表I表名roomschedule列名数据类型说明空 /非空约束条件(精度范围)id字符型教室的 id 号非空外键course int课程 id 号非空外键banji字符型该班级号非空外键coursename字符型课程名非空外键period int学时非空外键time int时间非空外键补充说明8.安全性设计用户只有在登陆成功的前提下才能查询,学生和老师只有只读权限,不允许修改,管理员只有在登陆成功的前提下才能进行操作。
8.1防止用户直接操作数据库的方法本系统设有登陆模块,在登录模块中,用户输入账号和密码便可登录系统。
密码输入错误,则重新登录。
本系统只有管理员具有修改的权限,教师和学生只有阅读的权限。
8.2用户帐号密码的加密方法无8.3角色与权限角色可以访问的表与列操作权限学生课表修改权限管理员教室课表修改权限教师课表修改权限学生课表只读权限学生教师教师课表只读权限9.优化无10.数据库管理与维护说明数据库运行后,由于运行环境的不断变化,数据库运行过程中物理存储也会不断地变化,对数据库设计进行评价,调整,修改等维护工作是一个长期的任务也是设计工作的继续和提高。
对数据库经常性维护的工作主要是由DBA完成,它包括,数据库的转储和恢复,数据库的安全性,完整性控制,数据库性能的监督,分析和改造,数据库的重组织和重构造。