学生信息管理数据库设计报告文档格式.docx
《学生信息管理数据库设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《学生信息管理数据库设计报告文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
1)安全性要求
系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。
安全性先通过视图机制,教务员可以设置密码来限制别人访问系统的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;
系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。
2)完整性要求
系统完整性要求系统中数据的正确性以及相容性。
可通过建立主、外键,使用check约束,或者通过使用触发器和级联更新。
2.2需求分析阶段成果
2.2.1体会与收获
系统需求分析主要是通过对网上一些资源以及《SQLSEERVER2000案例教程》这本书的相关资料的查看,以及联系一些现实学校的班主任记录学生信息的基本情况,总结学生信息管理系统至少应该具备对重要相关信息的哪些管理功能,以及在管理中的一些问题。
因为是第一次做这样的需求调查,有些东西到现在可能还不是做的很好,但是这些我以后都会慢慢把他完善的。
希望本系统能在使用中不断地发现漏洞,改善漏洞,不断完善本系统。
2.2.2学生信息管理系统数据流程图
顶层数据流图:
教师
学生信息信息
查询信息
录入
学生个人信息
查询
第2层数据流图:
(学生信息录入,教师信息录入,学生课程信息录入,学生成绩录入,学生信息查询和修改等)
学生
查询结果
学生个人信息表
课程信息表
学生选课表
教师信息表
任课教师表
学生成绩表
院系信息表
修
改
教务员
2.2.3学生信息管理系统数据字典
(a)数据项:
系统涉及的数据项有15项
表1.1数据项列表
数据项编号
数据项名
数据项含义
数据类型
长度
别名
DI-1
sno
学生编号
Char
15
DI-2
sname
学生姓名
char
DI-3
sage
学生年龄
int
4
DI-4
ssex
学生性别
DI-5
sdno
学生所在院系编号
DI-6
tno
教师编号
DI-7
cno
课程号
DI-8
tname
教师名称
DI-9
tage
教师年龄
DI-10
tsalary
教师工资
DI-11
dno
院系编号
DI-12
dname
院系名称
DI-13
cname
课程名称
100
DI-14
credit
课程学分
DI-15
Grade
课程成绩
(b)数据结构:
表1.2数据结构列表
数据结
构编号
数据结构名
组成
DS-1
STUDENT
Sno,Sname,Ssex,Sage,Sdno
DS-2
SC
Dno,Cname,Grade
DS-3
COURSE
Dno,Cname,Credit
DS-4
DEPART
Dno,Dname
DS-5
TEACHER
Tno,Tname,Tsage,Tsalary,Dno
DS-6
TC
Tno,Cno
3概念设计阶段
3.1任务与目标
任务:
开发学生信息管理系统,主要为减轻教师工作的负担,使老师对学生信息的记录与查询相对方便,便于学生信息的增加与减少,降低出错率,使管理更加合理、科学,也为老师节省开支。
在系统中实现了学生信息的录入、修改、查询等操作,所以在学生信息管理的过程中会涉及到大量的数据操作,如数据的添加、删除、修改等
目标:
开发本系统的目的在于代替手工管理、修改、查询等工作,具体要求包括:
数据录入:
录入学生个人信息、学生成绩;
数据修改:
修改学生个人信息,修改教师个人信息;
数据查询:
查询学生个人信息,查询学生选课信息,查询任课教师信息等。
3.2阶段结果
(1)根据不同的对象,分别画出各分E-R图:
(a)院系的E-R图:
(c)课程的E-R图:
课程
(d)学生信息的E-R图:
(e)教师实体E-R图:
编号
工资
院系
姓名
年龄
(2)合并各分E-R图,消除属性冲突、命名冲突、结构冲突等三类冲突,得到初步E-R图,再消除不必要冗余,得到的学生信息管理E-R图如下所示:
n1
mn
nm1
数据库中关系图
4.逻辑设计阶段
4.1逻辑设计的任务和目标
概念设计阶段是独立于任何一种数据模型的。
系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。
具体内容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)以及数据处理(画出系统功能模块图)两大任务。
4.2关系模型设计
1)DEPART(院系信息表)
NO.
字段名
类型
说明
1
Dno
Char
主键
2
Dname
Null
2)COURSE(课程表)
Cno
Cname
3
Credit
Int
3)STUDENT(学生个人信息表)
Sno
Sname
Ssex
Sage
5
Sdno
4)SC(选课表)
约束
Int
5)TEACHER(教师个人信息表)
Tno
Tname
Nnull
Tage
Tsalary
6)TC(任课教师表)
4.3用户子模式举例
学生个人信息查询视图
列名
可否为空
notNull
Nulll
课程信息查询视图
notNull
教师个人信息查询视图
4.4数据处理
系统功能模块图:
课程信息息
学生信息管理
教师信息管理
院系信息
课程信息添加
课程信息查询
新生个人信息输入
学生信息修改
教师信息查询
教师信息输入
院系信息查询
学生信息查询
院系信息输入
5.物理设计阶段
5.1物理设计阶段的目标与任务
数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:
(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率。
5.2数据存储方面
为数据库中各基本表建立的索引如下:
1.由于学生个人信息表中的属性姓名经常在查询条件中出现,且它们的值一般都是唯一,在两个属性上建立索引;
2.由于学生个人信息表中的主码学号经常在查询条件和连接条件中出现,且它们的值是唯一的,在两个属性上建立唯一性索引;
5.3系统功能模块
依据需求分析阶段看,学生信息管理系统主要分为学生个人信息管理,课程信息管理,教师信息管理等主要方面。
课程信息管理
院系信息管理
学生个人信息管理
6数据库部分
1)基本表
STUDNET学生信息表
TEACHER教师个人信息表
COURSE课程表
SC学生选课表
TC任课教师表
DEPART院系表
2)视图
CREATEVIEWdbo.VIEW1
WITHSCHEMABINDING
AS
SELECTdbo.SC.Sno,dbo.COURSE.Cno,dbo.COURSE.Credit
FROMdbo.COURSEINNERJOIN
dbo.SCONdbo.COURSE.Cno=dbo.SC.Cno
CREATEVIEWdbo.VIEW2
SELECTdbo.TEACHER.Tname,dbo.TEACHER.Dno,dbo.DEPART.Dname
FROMdbo.DEPARTINNERJOIN
dbo.TEACHERONdbo.DEPART.Dno=dbo.TEACHER.Dno
CREATEVIEWdbo.VIEW3
SELECTdbo.STUDENT.Sname,dbo.SC.Cno,dbo.SC.Grade
FROMdbo.SCINNERJOIN
dbo.STUDENTONdbo.SC.Sno=dbo.STUDENT.Sno
CREATEVIEWdbo.VIEW4
SELECTdbo.STUDENT.Sname,dbo.SC.Cno,dbo.COURSE.Cname,dbo.TC.Tno
FROMdbo.TCINNERJOIN
dbo.COURSEONdbo.TC.Cno=dbo.COURSE.CnoINNERJOIN
dbo.SCONdbo.COURSE.Cno=dbo.SC.CnoINNERJOIN
CREATEVIEWdbo.VIEW5
SELECTdbo.STUDENT.Sname,dbo.SC.Cno,dbo.COURSE.Cname,dbo.COURSE.Credit,
dbo.SC.Grade
CREATEVIEWdbo.VIEW6
SELECTdbo.STUDENT.Sno,dbo.STUDENT.Sname,dbo.DEPART.Dname,
dbo.COURSE.Cname
FROMdbo.STUDENTINNERJOIN
dbo.DEPARTONdbo.STUDENT.Sdno=dbo.DEPART.DnoINNERJOIN
dbo.SCONdbo.STUDENT.Sno=dbo.SC.SnoINNERJOIN
dbo.COURSEONdbo.SC.Cno=dbo.COURSE.Cno
CREATEVIEWdbo.VIEW7
SELECTdbo.TEACHER.Tname,dbo.COURSE.Cname
FROMdbo.TEACHERINNERJOIN
dbo.TCONdbo.TEACHER.Tno=dbo.TC.TnoINNERJOIN
dbo.COURSEONdbo.TC.Cno=dbo.COURSE.Cno
CREATEVIEWdbo.VIEW8
SELECTdbo.TEACHER.Tname,dbo.COURSE.Cname,dbo.STUDENT.Sname
3)存储过程
CREATEPROCEDURE[user1].[PROCEDURENAME]AS
selectdistincts.snamefromstudentsjoinscons.sno=sc.snowheregrade<
80
selectsname,sagefromstudentwheresdnoin(10001,10005,10007)
selectSname,SagefromSTUDENTWHERESage<
22
CREATEPROCEDURE[user2].[sum]AS
selectcount(distinctsno)fromsc
CREATEPROCEDURE[user3].[tac]AS
selectsname,tname,t.dnofromstudentsjoinscons.sno=sc.snojointcono=o
jointeachertont.tno=tc.tno
CREATEPROCEDURE[user2].[teacher]AS
selecttname,tsalaryfromteacherorderbytsalary
CREATEPROCEDURE[user3].[teacherc]AS
selecttname,cnamefromteachertjointcont.tno=tc.tnojoincoursecono=o
CREATEPROCEDURE[user4].[yuanxi]AS
select*fromstudentsjoindepartdons.sdno=d.dno
CREATEPROCEDURE[user4].[yuanxi2]AS
selectdno,sname,sagefromstudentsjoindepartdons.sdno=d.dno
CREATEPROCEDURE[user1].[zhang]AS
select*fromstudentwheresnamelike'
张__'
4)触发器
createtriggertr_studonstudent
forupdate
as
declare@msgvarchar(100)
select@msg=str(@@rowcount)+'
studentshasbeenupdated'
print@msg
return
createtriggertruteacheronteacher
forupdateas
ifupdate(tno)
begin
updatetc
settno=i.tnofromtc,insertedi,delecteddwheretc.tno=d.tno
end
createtrigger[delete]on[dbo].[tc]
fordelete
as
deletesc
fromsc,deletedd
whereo=o
5)用户
6)角色
7)索引
ALTERTABLE[dbo].[COURSE]WITHNOCHECKADD
CONSTRAINT[PK__COURSE__CB]PRIMARYKEYCLUSTERED
(
[Cno]
)ON[PRIMARY]
GO
ALTERTABLE[dbo].[DEPART]WITHNOCHECKADD
PRIMARYKEYCLUSTERED
[Dno]
ALTERTABLE[dbo].[SC]WITHNOCHECKADD
CONSTRAINT[PK__SC__0425A276]PRIMARYKEYCLUSTERED
[Sno],
ALTERTABLE[dbo].[STUDENT]WITHNOCHECKADD
[Sno]
ALTERTABLE[dbo].[TEACHER]WITHNOCHECKADD
CONSTRAINT[PK_TEACHER]PRIMARYKEYCLUSTERED
[Tno]
CONSTRAINT[UQ__COURSE__023D5A04]UNIQUENONCLUSTERED
UNIQUENONCLUSTERED
CONSTRAINT[CK_SC]CHECK([GRADE]<
=100)
CREATEUNIQUEINDEX[COURSE_Index_1]ON[dbo].[COURSE]([Cname])ON[PRIMARY]
8)完整性约束
ALTERTABLE[dbo].[SC]ADD
CONSTRAINT[FK__SC__Cno__060DEAE8]FOREIGNKEY
)REFERENCES[dbo].[COURSE](
),
CONSTRAINT[FK__SC__Sno__0519C6AF]FOREIGNKEY
)REFERENCES[dbo].[STUDENT](
)ONDELETECASCADE
ALTERTABLE[dbo].[STUDENT]ADD
FOREIGNKEY
[Sdno]
)REFERENCES[dbo].[DEPART](
)
ALTERTABLE[dbo].[TC]ADD
CONSTRAINT[FK__TC__Cno__09DE7BCC]FOREIGNKEY
CONSTRAINT