数据库课程设计报告文档格式.docx
- 文档编号:22314050
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:21
- 大小:109KB
数据库课程设计报告文档格式.docx
《数据库课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
数据字典...6
系统流程分析...6
第二章概念结构设计...7
第三章逻辑结构设计...8
逻辑结构设计...8
规范化处理...10
第四章数据库物理设计...11
索引表...10
系统配置...11
视图...11
第五章数据库的实施...11
创建数据库及数据库对象...11
完整性约束创建...13
数据库的维护及备份...14
维护...14
检测并改善数据库性能...14
备份...14
第6章前台用户界面...14
第七章结论与体会...17
参考文献
0、前言
引言
数据库作为存取数据并对数据进行操作的工具在系统中所起到的作用至关重要。
数据库设计是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理模式结果,并据此建立数据库及其应用系统,使之能有效地存储和管理数据,满足应用需求,包括信息管理要求和数据操作。
信息管理要求是指在数据库中应该存储和管理哪些数据对象;
数据操作要求是指对数据对象进行哪些操作,如查询、增、删、改、统计等操作。
数据库设计地目标是维用户和各种应用系统提供的一个信息基础设施和高效率地运行环境。
高效率的运行环境包括:
数据库数据的存取速率、数据库存储空间的利用率、数据库系统运行管理的效率等都是高的。
为了使数据库的应用系统开发设计合理、规范、有序、正确、高效进行,现在广泛采用的是工程化6阶段开发设计过程与方法,它们是需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、数据库实施、数据库系统运行与维护阶段。
我按照以上几点开发了学生选课管理系统数据库。
相关技术介绍
MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle旗下产品。
MySQL最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。
MySQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。
MicrosoftVisualStudio(简称VS)是美国微软公司的开发工具包系列产品。
VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。
所写的目标代码适用于微软支持的所有平台,包括MicrosoftWindows、WindowsMobile、WindowsCE、.NETFramework、.NETCompactFramework和MicrosoftSilverlight及WindowsPhone。
1、需求分析
任务概述
建立一个教学管理系统,系统通过数据库存储学校学生、教职工、系、课程以及成绩等资料,系统管理员可通过用户名与密码进入数据库,并根据给予的权限对数据库的数据进行查询或修改。
删除的数据要留底。
对数据库进行操作级审计。
(1)、硬件配置
安装本软件之前,需要确保计算机具有如下配置,这也是最低硬件要求:
使用1G内存
不小于40MB的可用硬盘空间
(2)、软件配置
安装本软件之前,需要确保计算机已安装:
MicorsoftWindowsXP及以上的操作系统
.NETFramework以上
数据流图
操作数据信息
数据信息
图1顶级数据流图
用户名密码登录信息
管理员信息
验证通过
学生信息
操作
增删改查
操作教职工信息
课程信息
删除的信息
成绩信息
系信息
图2、一级数据流图
数据字典
数据元素
数据类型
数据长度
数据组成
数据来源
描述
学号
Varchar
10
10{数字}10
学生信息表
成绩表
唯一标示学生的号码
职工号
8
8{数字}8
职工信息表
唯一标示教工
姓名
1{汉字}10
人员姓名
性别
1
[男|女]
人员性别
所在系号
Int
3
3{数字}3
系号
系信息表
唯一标示一个系的编号
系名称
20
1{汉字}20
课程号
4
4{数字}4
课程信息表
唯一标示一个课程的编号
课程名称
任课老师
这节课的负责教师
考试成绩
1{数字}3
系统流程分析
前面的分析中我们确定了系统各个功能模块,属于静态建模的范围。
在系统运行时刻的动态模型应该由系统流程决定。
从上面的功能描述中,我们可以把各个系统分为5个模块:
用户验证,师生信息管理,课程信息管理,成绩管理和信息查询。
在每个模块下又提供更为具体的功能。
详细的系统模块关系图如图3所示。
图3、程序流程图
通过对整个管理系统的功能分析,可以定义出系统的功能模块图,从中再细分各模块,可以得到系统概要模块如下:
图4、功能模块图
2数据库概念结构设计
采用E-R图的分析方法,首先对局部视图进行分析设计,然后再实现视图集成。
在视图集成时,注意要尽量消除冲突和冗余。
在这里直接给出视图集成后的E-R图,如图5所示。
E-R图如下
图5、实体E-R图
3数据库逻辑结构设计
根据E-R图,我们可以创建以下数据表。
系统管理员表
系统管理员(admin)存储了登录本系统的用户的登录ID和密码,权限以及盐值
表1、系统管理员表
字段名称
可否为空
约束条件
说明
ADMIN_USER
Varchar(50)
NOTNULL
主键
管理员ID
ADMIN_PSWD
Varchar(256)
无
管理员密码哈希值
ADMIN_PERMIT
Varchar
(1)
管理员权限
Salt
Varchar(10)
管理员密码盐值
学生信息表
学生信息表(student)存放了学校的所有学生的基本信息,所有有关学生的操作都与这个表有关。
通过时间戳自动生成入学时间。
信息从表中删除时加入历史表留底。
表2、学生信息表
Sno
学生学号
Sname
Varchar(50)
学生姓名
Ssex
Varchar
(1)
学生性别
S_Dno
外键
学生所在系号
Sindate
Datetime
时间戳形成
学生入学时间
教师信息表
教师信息表(teacher)存放了学校的所有教师的基本信息,所有有关教师的操作都与这个表有关。
通过时间戳自动生成入职时间。
表3、教师信息表
Tno
教师工号
Tname
教师姓名
Tsex
教师性别
T_Dno
教师所在系号
Tindate
教师入职时间
系信息表
系信息表(department)存放了学校的所有系的基本信息,并且与学生表以及教师表有紧密联系
表4、系信息表
Dno
Dname
Dsummary
Text
NULL
系简介
课程信息表
课程信息表(course)记录了学校中所有课程的信息。
表5、课程信息表
Cno
Cname
C_Tno
任课老师工号
成绩信息表
成绩表(sc)记录了某个学生在某们课程得到的成绩。
表6、成绩表
主键、外键
Grade
当科成绩
历史表
历史表(history)记录了离校学生或离职教师的信息,通过触发器自动生成,尽量避免手动添加。
作为留底超过一定数量应给予整理。
表7、历史表
Hno
曾用标示号
hname
hSex
hdepartment
曾在系名
hindate
入学日期
houtdate
离校日期
审计表
审计表(Accesslog)记录了除管理员外的数据库用户对数据库的使用情况,处于安全性考虑,用独立的数据库进行保存,并且只赋予管理员权限进行查看。
只可通过系统进行数据添加,严禁手工操作数据!
表8、审计表
Id
主键、自增
标示号
time
timestamp
操作时间
loaclname
操作帐号
matchname
对应用户
规范化处理
经过对初始关系模式的规范化处理以下关系模式中不存在部分函数依赖和传递函数依赖,已经达到3NF。
(加粗代表主码,斜体外码)
Admin(ADMIN_USER,ADMIN_PSWD,ADMIN_PERMIT)
Student(Sno,Sname,Ssex,S_Dno,Sindate)
Teacher(Tno,Tname,Tsex,T_Dno,Tindate)
Department(Dno,Dname,Dsummary)
Course(Cno,Cname,C_Tno)
SC(Sno,Cno,Grade)
4物理结构设计
数据库在物理上的存储结构与存储方法称为数据库的物理结构,它依赖于选定的数据库管理系统。
为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是物理结构设计。
数据库的物理结构设计通常分为两步:
(1)确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;
(2)对物理结构进行评价,评价的中的是时间和空间效率。
创建数据库及建立索引以及完整性约束
使用工具NavicatforSQL,创建了school数据库及Accesslog数据库并生成相关数据库模型,图如下
建立各数据库间的索引关系。
系统配置
在mysql配置文件中的mysqld设置项中写入如下配置:
init-connect='
insertintovalues(connection_id(),now(),user(),current_user());
'
当非超级管理员连接数据库时自动向审计表中写入审计记录。
创建受限用户a,只允许其对school数据库中student,teacher,course,sc,department表进行增删改查操作,拒绝其他权限。
视图
用SQL管理工具建立常用的一个视图,即学生_成绩视图。
菜单栏中单击工具→向导→数据库→创建视图向导,选择你所要建的试图的对象,选择列名,按照提示,最后单击完成即可。
使用SQL语句建立视图的命令如下:
createviewstudent_sc
as
selectsno,sname,,cname,grade
fromstudentjoinscon=
joincourseon=
5数据库实施
创建数据库及数据库对象
*********************************************************
CREATEDATABASEschool;
USEschool;
CREATETABLEAdmin(
ADMIN_USERVARCHAR(50)NOTNULL,
ADMIN_PSWDVARCHAR(50)NOTNULL,
ADMIN_PERMITVARCHAR(50)NOTNULL,
SaltVARCHAR(10)NOTNULL,
PRIMARYKEY(ADMIN_USER)
);
CREATETABLEStudent(
SnoVARCHAR(50)NOTNULL,
SnameVARCHAR(50)NOTNULL,
SsexVARCHAR
(1)NOTNULL,
S_DnoVARCHAR(50)NOTNULL,
SindateDATETIMENOTNULL,
PRIMARYKEY(Sno)
CREATETABLETeacher(
TnoVARCHAR(50)NOTNULL,
TnameVARCHAR(50)NOTNULL,
TsexVARCHAR
(1)NOTNULL,
T_DnoVARCHAR(50)NOTNULL,
TindateDATETIMENOTNULL,
PRIMARYKEY(Tno)
CREATETABLEDepartment(
DnoVARCHAR(50)NOTNULL,
DnameVARCHAR(50)NOTNULL,
DsummaryTEXT,
PRIMARYKEY(Dno)
CREATETABLECourse(
CnoVARCHAR(50)NOTNULL,
CnameVARCHAR(50)NOTNULL,
C_TnoVARCHAR(50)NOTNULL,
PRIMARYKEY(Cno)
CREATETABLESC(
GradeINT,
PRIMARYKEY(Sno,Cno)
CREATETABLEHISTORY(
HNOVARCHAR(50)NOTNULL,
HNAMEVARCHAR(50)NOTNULL,
HSEXVARCHAR(50)NOTNULL,
HDEPARTMENTVARCHAR(50)NOTNULL,
HINDATEDATETIMENOTNULL,
HOUTDATEDATETIMENOTNULL,
PRIMARYKEY(HNO)
CREATEDATABASEAccesslog;
UseAccesslong;
CREATETABLEAccesslong(
IDINT,
TIMETIMESTAMP,
LOCALNAMEVARCHAR(50),
MATCHNAMEVARCHAR(50),
PRIMARYKEY(ID
完整性约束
useschool;
altertablestudentaddconstraintFK_ID0foreignkey(S_Dno)REFERENCESdepartment(Dno);
altertableteacheraddconstraintFK_ID1foreignkey(T_Dno)REFERENCESdepartment(Dno);
altertablecourseaddconstraintFK_ID2foreignkey(C_Tno)REFERENCESteacher(Tno);
altertablescaddconstraintFK_ID3foreignkey(Sno)REFERENCESstudent(Sno);
altertablescaddconstraintFK_ID4foreignkey(Cno)REFERENCEScourse(Cno);
***************************************************************************
CREATEDEFINER=`root`@`localhost`TRIGGER`indate`BEFOREINSERTON`student`
FOREACHROWset=current_date;
CREATEDEFINER=`root`@`localhost`TRIGGER`olddata`BEFOREDELETEON`student`
FOREACHROWbegin
insertintohistory(hno,hname,hsex,hindate,houtdate)values,,,,current_date);
updatehistoryh,departmentpset=where=;
end;
数据库的维护
在数据库运行阶段,对数据库经常性的维护工作主要是有DBA完成,它包括:
1.数据库的转储和恢复
2.数据库的安全性和完整性控制
3.数据库性能的监督、分析和改造
4.数据库的重组织与重构造
维护
数据库既是共享的资源,又要进行适当的保密。
DBA必须对数据库安全性和完整性控制负起责任。
尤其在计算机网络普遍引应用的今天,保证数据安全、防止黑客攻击、防止病毒入侵等,都是DBA所需要面对的。
按照设计阶段提供的安全防范和故障恢复规范,DBA要经常检查系统的安全是否受到侵犯,根据用户的实际需要授予用户不同的操作权限。
数据库在运行过程中,由于应用环境发生变化,对安全性的要求可能发生变化,DBA要根据实际情况及时调整相应的授权和密码,以保证数据库的安全性。
同样数据库的完整性约束条件也可能会随应用环境的改变而改变,这时DBA也要对其进行调整,以满足用户的要求。
目前许多DBMS产品都提供了检测系统性能参数的工具,DBA可以利用系统提供的这些工具,经常对数据库的存储空间及响应时间进行分析评价;
结合用户的反映情况确定改进措施;
及时改正运行中发现的错误;
按用户的要求对数据库的现有功能进行适当的扩充。
但要注意在增加新功能时应保证原有功能和性能不受损害。
数据库建立后,除了数据本身是动态变化外,随着应用环境的变化,数据库本身也必须变化以适应应用要求。
数据库运行一段时间后,由于记录在不断增加、删除和修改,会改变数据库的物理存储结构,使数据库的物理特性受到破坏,从而降低数据库存储空间的利用率和数据的存取效率,使数据库的性能下降。
因此,需要对数据库进行重新组织,即重新安排数据的存储位置,回收垃圾,减少指针链,改进数据库的响应时间和空间利用率,提高系统性能。
这与操作系统对“磁盘碎片”的处理的概念相似。
数据库的重组只是使数据库的物理存储结构发生变化,而数据库的逻辑结构不变,所以根据数据库的三级模式,可以知道数据库重组对系统功能没有影响,只是为了提高系统的性能。
由此可知,数据库的重组并不会改变原设计的数据逻辑结构和物理结构,而数据库的重构造则不同,它部分修改原数据库的模式或内模式,这主要是因为数据库的应用环境发生了变化,如需求变化、设计调整等。
例如增加新的数据项、改变数据类型、改变数据库的容量、增加或删除索引、修改完整性约束等。
DBMS一般都提供了重新组织和构造数据库的应用程序,以帮助DBA完成数据库的重组和重构工
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 报告