学生信息管理系统数据库设计报告Word格式.docx
《学生信息管理系统数据库设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统数据库设计报告Word格式.docx(29页珍藏版)》请在冰点文库上搜索。
![学生信息管理系统数据库设计报告Word格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/f3f88d36-384a-49ea-b037-94615f4bb802/f3f88d36-384a-49ea-b037-94615f4bb8021.gif)
导师编号、导师姓名、联系电话、所属院系
需求分析阶段成果
根据实际业务处理过程,绘制业务流程图如图所示:
(a)验证模块
组合的业务处理流程图:
数据流程图
顶层数据流程图:
二层数据流程图:
二、概念分析
对数据进行抽象
概念结构是对现实的一种抽象。
首先对于该数据库系统中涉及的数据进行分类,及抽象了该数据库涉及数据的型与值,而在E-R图模型中,实体就是这种抽象;
接着进行另一种抽象---聚集,即定义某一类型的组成成分。
它抽象了该数据库涉及对象内部类型和成分,而在E-R模型中若干属性的聚集组成了实体型;
最后在数据库中涉及对象中进行定义类型之间的一种子集联系。
1.学生实体与其属性
2.班级实体及其属性
3.院系实体及其属性
4.成绩实体及其属性
5.课程实体及其属性
6.讲师实体及其属性
7.宿舍实体及其属性
8.导师实体及其属性
创建局部应用,设计分E-R图
整个系统中最核心的数据内容是学生信息,所有一切应用都是围绕着学生这些数据来进行的。
将学生和班级院系结构化,方便查询学生所在班级院系的查询,创建有关的分E-R图如下:
在这个应用或这个分E-R图中主要的应用是,当查询一个学生的班级和院系所涉及的数据时,这个应用能够将所涉及的院系和班级的详细信息集合在一起,而且在需要联系导师时能够将导师的联系电话等相关信息展现出来,方便了用户在查询涉及学生的相关导师、院系、班级的信息。
(2)学生有关课程和教师的数据结构话形成一个查询应用:
该应用主要是涉及学生上课这部分的查询,将学生涉及课程和教师的信息整合起来,这其中可以让用户查询有关对象指定课程的成绩和学分或是指定课程的任课老师的联系电话,方便同老师进行交流,或者时可以查询核定学生的所有学科的成绩或是查询某一科所有同学的成绩,并按照一定的顺序排序。
(1)学生有关宿舍的一个应用:
该应用比较简单,时当用户在查询涉及指定对象的有关宿舍的基本信息,在这个应用中用户可以查询到指定用户的宿舍号和联系电话以及地址。
能够方便的查询到所涉及的信息。
合并分E-R图,形成总E-R图
完整E-R图
三、逻辑设计
完成关系模式的转化
根据关系模式的转换规则可得到如下的关系模式,加下划线的属性为相应的主码。
①院系的基本信息(院系编号、院系名称、联系电话、院系主任)
②班级的基本信息(班级编号、院系编号、班级名称、班长、学生数)
③学生的基本信息(学号、班级编号、姓名、性别、出生日期、家庭住址)
④课程的基本信息(课程编号、课程名称、学分、讲师)
⑤成绩的基本信息(学号、课程编号、成绩、学分)
⑥讲师的基本信息(讲师编号、讲师姓名、教授班级、联系电话)
⑦宿舍的基本信息(宿舍编号、宿舍地址、联系电话、所属院系)
⑧导师的基本信息(导师编号、导师姓名、联系电话、所属院系)
数据字典
数据和表的建立
表名
含义
Department
院系
Class
班级
Student
学生
Course
课程
Grade
成绩
Teacher
讲师
Hourse
宿舍
Director
导师
表结构
(1)、Department
表1-1Department表结构
字段名
数据类型
字段含义
约束
Dept_ID
Decimal
院系编号
PrimaryKey
Department
varChar(50)
院系名称
NotNull
Phone
联系电话
Director
院系主任
(2)、Class
Class_ID
Char(7)
班级编号
ForeignKey
Class
varChar(30)
班级名称
Monitor
varChar(24)
班长
Student_NO
学生数
NotNullDefault0
(3)、Student
Student_ID
varChar(9)
学号
Name
姓名
Gender
varChar
(2)
性别
男,女
Birthday
Datetime
出生日期
Address
家庭地址
H_ID
寝室号
Varchar(50)
所属院系
宿舍编号
(4)、Course
Course_ID
varChar(8)
课程编号
Credit
学分
T_ID
(5)、Grade
G_Value
(6)、Teacher
讲师编号
T_Name
varchar(50)
讲师姓名
教授课程
T_Phone
电话
Insertintoteacher
Values('
001'
'
王玉贤'
java'
1'
信管'
)
002'
焦华光'
网站设计与规划'
'
电商'
003'
郭慧峰'
c语言'
004'
范海平'
管理学'
管理'
005'
范朝奇'
photoshop'
006'
赵金鹏'
计算机网络'
(7)、Hourse
H_Address
宿舍地址
H_Phone
210'
'
西区'
220'
230'
310'
东区'
320'
(8)、Director
D_ID
导师编号
D_Name
Varchar(24)
导师姓名
D_Phone
Dept_ID
Insertintodirector
301'
01'
)
501'
03'
803'
187'
02'
302'
153'
01'
处理逻辑描述(判定表或判定树)
判定条件
决策
判断用户查询涉及的功能模块
系部基本信息模块、宿舍楼基本信息模块、学生基本信息模块、讲师基本信息模块、导师基本信息模块、学生成绩基本信息模块、学生课程基本信息模块:
先确定查询所涉及的功能模块;
然后,确定要查询的内容,确定查询数据流向;
最后显示查询结果。
判断用户修改要涉及的模块,同时把相应的修改数据传到相应的模块之中
先确定更新所涉及的功能模块;
然后,把更新信息传送到相应的模块中;
最后,进行相应的更新操作。
四.物理设计阶段
物理设计阶段的目标与任务
数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:
(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率。
数据存储方面
为数据库中各基本表建立的索引如下:
1.由于基本表class,Student的主码Class_ID,Student_ID经常在查询条件和连接操作的连接条件中出现,且它们的值唯一,考虑在两个属性上建立唯一性索引;
2.Course的主码Course_ID,Teacher经常在查询条件中出现,且它们的组合值唯一,考虑在它们之上建立组合索引;
3.基本表Student的一属性StuName,经常在查询条件中出现,且经常出现在相等的比较条件中,考虑在其之上建立聚簇索引;
4.基本表Hourse、Director的属性值几乎不会有什么变化,更新率很低,可考虑适当建立索引;
5.基本表Teacher,Grade的属性值经常发生变化,权衡系统为维护索引付出的代价,可考虑不建立索引,也可以适当建立索引。
五、系统实现
建立数据库
createdatabaseStudent_Dormitory_Management;
建立数据表
Course表的建立
createtablecourse(
course_IDvarchar(8)notnullunique,
coursevarchar(50)notnull,
creditdecimal,
teachervarchr)
Department表的建立
createtabledepartment(
Dept_IDDecimalnotnullunique,
DepartmentvarChar(50)NotNull,
PhonevarChar(50),
DirectorvarChar(50),
primarykey(Dept_ID))
Director表的建立
createtabledirector(
D_IDvarChar(9)notnullunique,
D_NameVarchar(24),
D_PhonevarChar(50),
DepartmentvarChar(50),
primarykey(D_ID))
Grade表的建立
createtableGrade(
Student_IDvarChar(9)notnullunique,
Course_IDvarChar(8)notnullunique,,
GradeDecimalNotNull,
G_ValueDecimalNotNull,.
foreignkey(Student_ID,Course_ID))
Hourse表的建立
createtableHourse(
H_IDvarChar(9)notnullunique,
H_Address,Varchar(50),
H_PhoneVarchar(50),
DepartmentVarchar(50))
Student表的建立
createtableStudent(
Class_IDChar(7),
NamevarChar(24),
GendervarChar
(2),
BirthdayDatetime,
AddressvarChar(50),
H_ID寝室号,
DepartmentVarchar(50),
primarykey(Student_ID),
foreignkey(Class_ID),
check(genderorgender));
Teacher表的建立
createtableTeacher(
T_IDvarChar(9)notnullunique,,
T_Namevarchar(50)
CoursevarChar(50),
T_PhonevarChar(50),
primarykey(T_ID))
关系图
==
=
=course_course_id
Directordept_id
studenth_id
courset_id
建立视图
(1)用于查询和更新学生班级基本信息的视图定义如下
createviewclassview(班级编号、班级名称、学生数、班长、
院系编号)
select*
fromclass
(2)方便于宿舍楼基本信息查询、更新的视图定义如下:
createviewdepartmentView(院系编号、院系名称、联系电话
院系主任)
as
select*
fromdepartment
(3)显示学生基本信息的视图定义如下:
createviewstuview(学号、班级编号、姓名、性别、
出生日期、家庭地址、寝室号、
所属院系)
as
select*
fromstudent
(4)可用于学生课程基本信息的查询、更新的视图定义如下:
createviewcourseview(课程编号、课程、学分、讲师)
fromcourse
(5)用于查询和更新学生成绩基本信息的视图定义如下
createviewgradeiew(学号、课程编号、成绩、学分)
、as
fromgrade
(6)查询导师的基本信息的视图定义如下:
createviewteacheriew(讲师编号、讲师姓名、教授课程、电话、
fromteacher
(7)查询住宿信息的视图建立如下
createviewhourseviewview(宿舍编号、宿舍地址、联系电话、
select*
fromhourse
(8)用于查询学生导师的视图建立如下
createviewDirectorview(导师编号、导师姓名、联系电话、所属院系)
fromDirector
六、主要代码
查询
1.表查询某同学已登录的所有成绩:
select,,Grade,G_Value
fromCOURSE,GRADE
where=and='
8730201'
2.表查询某班所有同学的信息
select*
fromSTUDENT
whereClass_IDlike'
873%'
更新
更新学号为8730102的学生的性别为女
Updatestudent
Setgender='
女'
Fromstudent
WhereStudent_ID='
8730102'
插入
在学生信息表中新插入信息:
InsertintoStudent
8734065'
8734'
许芯'
1990-01-01'
西安'
08级电商'
1234'
黄斌'
男'
1993-11-04'
渭南'
08级信管'
魏韵'
1993-06-21'
运城'
金野明'
1992-01-01'
2345'
马志飞'
1990-08-11'
临汾'
09级管理'
4567'
赵子龙'
1991-11-01'
昆明'
10级信管'
567'
林羽墨'
1990-09-01'
10级电商'
5'
郎江峰'
1990-03-12'
李菁菁,'
4'
付诗音'
1992-05-15'
吉亚尼'
1992-11-21'
InsertintodepartmentValues('
李建国'
徐胜
李雨生'
Insertintoclass
03,'
刘星'
23'
01,'
张弛'
33'
02,'
08级管理'
陆翔'
25'
王雨'
32'
郭燕'
36'
Insertintocourse
2201'
Photoshop'
5,'
2206'
网站设计与规划'
Insertin