资源描述
学生信息管理系统数据库设计
目 录
一、需求分析 4
组合业务处理步骤图: 8
二、概念分析 9
三、逻辑设计 16
四.物理设计阶段 24
五、系统实现 25
六、关键代码 31
七、课程设计总结 53
班级信息查询
班级信息删除
班级信息增加
班级信息修改
系统
课程信息管理
学生信息管理系统
成绩信息管理
用户管理
宿舍信息管理
班级信息管理
课程信息查询
课程信息删除
课程信息增加
课程信息修改
成绩信息查询
成绩信息删除
成绩信息增加
成绩信息修改
查询用户
修改用户
删除用户
添加用户
宿舍信息查询
宿舍信息删除
宿舍信息增加
宿舍信息修改
退出系统
一、需求分析
1.1功效需求分析
总体任务实现是建立在对系统正确需求分析基础之上。需求分析分是数据库系统开发第一步,也是最关键一步。在大学学习生活中学生活动范围很广,信息量相对于以前增加,学生在学习生活中不仅仅和寝室和同班同系同学联络有时候还要和自己所学学科任课老师交流联络,还要和本系教导员和自己所在寝室宿舍管理员等进行联络,这些信息分布比较散乱,难于集合起来。所以创建该数据库尽可能将和学生相关信息集合起来,将部分数据结构化,方便用户查询。
学生信息系统基础情况
因为整个系统是由多个部分组成,所以各个信息以下:
(1)学生信息:统计在学校中学生基础信息,包含姓名,学号,出生年月,所属院系,所在班级,联络电话等等;
(2)老师信息:统计和学生相关老师基础信息,包含老师姓名,联络电话,教讲课程等等;
(3)导师信息:统计学生所在院系导师相关信息,包含导师姓名,联络电话,领导院系等等;
(4)宿舍信息:统计学生所住寝室相关信息,包含寝室号和寝室宿管联络电话等等。
1.2需求分析阶段目标
(1)信息要求:用户能够查找到相关学生全部相关信息包含学生基础信息还有相关老师信息
(2)处理要求:当信息发生改变时,部分信息能够自行修改而不造成插入删除错误。
(3)完整性要求:
①.多种信息统计完整性,信息统计内容不能为空;
②.多种数据间相互联络正确性;
③相同数据在不一样统计中一致性。
1.3信息需求分析
①院系基础信息
院系编号、院系名称、联络电话、院系主任
②班级基础信息
班级编号、院系编号、班级名称、班长、学生数
③学生基础信息
学号、班级编号、姓名、性别、出生日期、家庭住址
④课程基础信息
课程编号、课程名称、学分、讲师
⑤成绩基础信息
学号、课程编号、成绩、学分
⑥讲师基础信息
讲师编号、讲师姓名、教授班级、联络电话
⑦宿舍基础信息
宿舍编号、宿舍地址、联络电话、所属院系
⑧导师基础信息
导师编号、导师姓名、联络电话、所属院系
1.4需求分析阶段结果
依据实际业务处理过程,绘制业务步骤图图所表示:
(a)验证模块
教务员
注册信息
注册表
验证模块
拒绝信息
(b)查询模块
教务员
院系信息表
查询模块
查询结果
学生信息表
课程信息表
成绩信息表
宿舍信息表
查询信息
(c)选课模块
学生
选课信息
课程信息表
选课模块
选课结果
选课信息表
(d)维护模块
教务员
维护信息
维护模块
维护结果
院系信息表
学生信息表
课程信息表
注册信息表
组合业务处理步骤图:
教务员
查询维护信息
注册表
验证模块
拒绝登录
查询模块
查询信息
维护信息
维护模块
系信息表
学生信息表
课程信息表
选课信息表
维护结果jieguo结果
维护结果
数据步骤图
顶层数据步骤图:
教务管理
系统
注册信息
验证
查询要求
查询结果
修改要求
修改结果
教务员
学生
选课输入
选课结果
二层数据步骤图:
选课表
教务员
未经过
维护
查询
学生
验证
注册信息
注册信息
未经过
验证
选课
选课信息
信息表
注册表
包含:系信息、学生信息、课程信息
查询结果
选课结果
二、概念分析
2.1对数据进行抽象
概念结构是对现实一个抽象。首先对于该数据库系统中包含数据进行分类,及抽象了该数据库包含数据型和值,而在E-R图模型中,实体就是这种抽象;接着进行另一个抽象---聚集,即定义某一类型组成成份。它抽象了该数据库包含对象内部类型和成份,而在E-R模型中若干属性聚集组成了实体型;最终在数据库中包含对象中进行定义类型之间一个子集联络。
学生
学号
性别
出生年月
姓名
班级
住址
所属院系
寝室号
1. 学生实体和其属性
班级
班级编号
院系编号
班级名称
学生数
班长
2.班级实体及其属性
院系
院系编号
院系名称
班级数
院系主任
联络电话
3.院系实体及其属性
成绩
学号
课程编号
学分
成绩
4.成绩实体及其属性
课程
课程编号
学分
课程
讲师
5.课程实体及其属性
讲师
讲师编号
讲师姓名
电话
所属院系
教讲课程
6.讲师实体及其属性
宿舍
宿舍地址
宿舍编号
所属院系
宿舍电话
7.宿舍实体及其属性
导师
导师编号
导师姓名
所属院系
联络电话
8.导师实体及其属性
2.2创建局部应用,设计分E-R图
整个系统中最关键数据内容是学生信息,全部一切应用全部是围绕着学生这些数据来进行。
将学生和班级院系结构化,方便查询学生所在班级院系查询,创建相关分E-R图以下:
学生
指导
导师
领导
院系
班级
在这个应用或这个分E-R图中关键应用是,当查询一个学生班级和院系所包含数据时,这个应用能够将所包含院系和班级具体信息集合在一起,而且在需要联络导师时能够将导师联络电话等相关信息展现出来,方便了用户在查询包含学生相关导师、院系、班级信息。
(2)学生相关课程和老师数据结构话形成一个查询应用:
学生
成绩
课程
教授
老师
该应用关键是包含学生上课这部分查询,将学生包含课程和老师信息整合起来,这其中能够让用户查询相关对象指定课程成绩和学分或是指定课程任课老师联络电话,方便同老师进行交流,或时能够查询核定学生全部学科成绩或是查询某一科全部同学成绩,并根据一定次序排序。
(1) 学生相关宿舍一个应用:
学生
宿舍
该应用比较简单,时当用户在查询包含指定对象相关宿舍基础信息,在这个应用中用户能够查询到指定用户宿舍号和联络电话和地址。能够方便查询到所包含信息。
2.3合并分E-R图,形成总E-R图
学生
宿舍
指导
导师
领导
院系
班级
成绩
教授
讲师
课程
完整E-R图
三、逻辑设计
3.1完成关系模式转化
依据关系模式转换规则可得到以下关系模式,加下划线属性为对应主码。
①院系基础信息(院系编号、院系名称、联络电话、院系主任)
②班级基础信息(班级编号、院系编号、班级名称、班长、学生数)
③学生基础信息(学号、班级编号、姓名、性别、出生日期、家庭住址)
④课程基础信息(课程编号、课程名称、学分、讲师)
⑤成绩基础信息(学号、课程编号、成绩、学分)
⑥讲师基础信息(讲师编号、讲师姓名、教授班级、联络电话)
⑦宿舍基础信息(宿舍编号、宿舍地址、联络电话、所属院系)
⑧导师基础信息(导师编号、导师姓名、联络电话、所属院系)
3.2数据字典
数据和表建立
表名
含义
Department
院系
Class
班级
Student
学生
Course
课程
Grade
成绩
Teacher
讲师
Hourse
宿舍
Director
导师
表结构
(1)、Department
表1-1 Department表结构
字段名
数据类型
字段含义
约束
Dept_ID
Decimal
院系编号
Primary Key
Department
varChar(50)
院系名称
Not Null
Phone
varChar(50)
联络电话
Director
varChar(50)
院系主任
(2)、Class
字段名
数据类型
字段含义
约束
Class_ID
Char(7)
班级编号
Primary Key
Dept_ID
Decimal
院系编号
Foreign Key
Class
varChar(30)
班级名称
Not Null
Monitor
varChar(24)
班长
Student_NO
Decimal
学生数
Not Null Default 0
(3)、Student
字段名
数据类型
字段含义
约束
Student_ID
varChar(9)
学号
Primary Key
Class_ID
Char(7)
班级编号
Foreign Key
Name
varChar(24)
姓名
Not Null
Gender
varChar(2)
性别
男,女
Birthday
Datetime
出生日期
Address
varChar(50)
家庭地址
H_ID
varChar(50)
寝室号
Department
Varchar(50)
所属院系
H_ID
Varchar(50)
宿舍编号
Foreign Key
(4)、Course
字段名
数据类型
字段含义
约束
Course_ID
varChar(8)
课程编号
Primary Key
Course
varChar(50)
课程
Not Null
Credit
Decimal
学分
Teacher
Varchar(50)
讲师
T_ID
Varchar(50)
(5)、Grade
字段名
数据类型
字段含义
约束
Student_ID
varChar(9)
学号
Foreign Key
Primary Key
Course_ID
varChar(8)
课程编号
Foreign Key
Grade
Decimal
成绩
Not Null
G_Value
Decimal
学分
Not Null
(6)、Teacher
字段名
数据类型
字段含义
约束
T_ID
varChar(9)
讲师编号
Primary Key
T_Name
varchar(50)
讲师姓名
Course
varChar(50)
教讲课程
T_Phone
varChar(50)
电话
Department
Varchar(50)
所属院系
Insert into teacher
Values ('001','王玉贤',' java ','','信管',)
Insert into teacher
Values ('002','焦华光','网站设计和计划','','电商',)
Insert into teacher
Values ('003','郭慧峰',' c语言','','信管',)
Insert into teacher
Values ('004','范海平','管理学','','管理',)
Insert into teacher
Values ('005','范朝奇',' photoshop ','','电商',)
Insert into teacher
Values ('006','赵金鹏','计算机网络','','信管',)
(7)、Hourse
字段名
数据类型
字段含义
约束
H_ID
varChar(50)
宿舍编号
Primary Key
H_Address
Varchar(50)
宿舍地址
H_Phone
varChar(50)
联络电话
Department
Varchar(50)
所属院系
Insert into teacher
Values ('210', '西区','','信管',)
Insert into teacher
Values ('220', '西区','','电商',)
Insert into teacher
Values ('230', '西区','','信管',)
Insert into teacher
Values ('310', '东区','','管理',)
Insert into teacher
Values ('320', '东区','','管理',)
(8)、Director
字段名
数据类型
字段含义
约束
D_ID
varChar(9)
导师编号
Primary Key
D_Name
Varchar(24)
导师姓名
D_Phone
varChar(50)
联络电话
Department
varChar(50)
所属院系
Dept_ID
varChar(50)
院系编号
Foreign Key
Insert into director
Values ('301', '东区','','信管', '01 ')
Insert into director
Values ('501', '东区','','电商', '03 ')
Insert into director
Values ('803', '东区','','管理', '02')
Insert into director
Values ('302', '东区','','信管', '01')
3.3处理逻辑描述(判定表或判定树)
判定条件
决议
判定用户查询包含功效模块
系部基础信息模块、宿舍楼基础信息模块、学生基础信息模块、讲师基础信息模块、导师基础信息模块、学生成绩基础信息模块、学生课程基础信息模块:先确定查询所包含功效模块;然后,确定要查询内容,确定查询数据流向;最终显示查询结果。
判定用户修改要包含模块,同时把对应修改数据传到对应模块之中
系部基础信息模块、宿舍楼基础信息模块、学生基础信息模块、讲师基础信息模块、导师基础信息模块、学生成绩基础信息模块、学生课程基础信息模块:先确定更新所包含功效模块;然后,把更新信息传送到对应模块中;最终,进行对应更新操作。
四.物理设计阶段
4.1物理设计阶段目标和任务
数据库物理设计就是为逻辑数据模型选择一个最适宜应用要求物理结构过程,在这个阶段中要完成两大任务:
(1)确定数据库物理结构,在关系数据库中关键是存取方法和存放结构;
(2)对物理结构进行评价,评价关键是时间和空间效率。
4.2数据存放方面
为数据库中各基础表建立索引以下:
1. 因为基础表class,Student主码Class_ID,Student_ID常常在查询条件和连接操作连接条件中出现,且它们值唯一,考虑在两个属性上建立唯一性索引;
2. Course主码Course_ID,Teacher常常在查询条件中出现,且它们组合值唯一,考虑在它们之上建立组合索引;
3. 基础表Student一属性StuName,常常在查询条件中出现,且常常出现在相等比较条件中,考虑在其之上建立聚簇索引;
4. 基础表Hourse、Director属性值几乎不会有什么改变,更新率很低,可考虑合适建立索引;
5. 基础表Teacher,Grade属性值常常发生改变,权衡系统为维护索引付出代价,可考虑不建立索引,也能够合适建立索引。
五、系统实现
5.1建立数据库
create database Student_Dormitory_Management;
5.2建立数据表
Course表建立
create table course(
course_ID varchar(8) not null unique,
course varchar(50) not null,
credit decimal,
teacher varchr)
Department表建立
create table department(
Dept_ID Decimal not null unique,
Department varChar(50) Not Null,
Phone varChar(50),
Director varChar(50),
primary key(Dept_ID))
Director表建立
create table director(
D_ID varChar(9) not null unique,
D_Name Varchar(24),
D_Phone varChar(50),
Department varChar(50),
primary key(D_ID))
Grade表建立
create table Grade(
Student_ID varChar(9) not null unique,
Course_ID varChar(8) not null unique,,
Grade Decimal Not Null,
G_Value Decimal Not Null,.
foreign key(Student_ID, Course_ID))
Hourse表建立
create table Hourse (
H_ID varChar(9) not null unique,
H_Address , Varchar(50 ),
H_Phone Varchar(50 ),
Department Varchar(50))
Student表建立
create table Student(
Student_ID varChar(9) not null unique,
Class_ID Char(7) ,
Name varChar(24),
Gender varChar(2),
Birthday Datetime,
Address varChar(50),
H_ID 寝室号,
Department Varchar(50),
primary key(Student_ID),
foreign key(Class_ID),
check(gender or gender));
Teacher表建立
create table Teacher(
T_ID varChar(9) not null unique,,
T_Name varchar(50)
Course varChar(50),
T_Phone varChar(50),
Department Varchar(50),
primary key(T_ID))
5.3关系图
Class.dept_id=department.dept_id=director.dept_id
Class.class_id=student.class_id
Student.student_id=grade.student_id
Grade.course_id=course_course_id
Course.T_id=teacher.T_id
Student.H_id=hourse.H_id
Director dept_id
student h_id
course t_id
5.4 建立视图
(1)用于查询和更新学生班级基础信息视图定义以下
create view classview(班级编号、班级名称、学生数、班长、
院系编号)
select *
from class
(2)方便于宿舍楼基础信息查询、更新视图定义以下:
create view departmentView(院系编号、院系名称、联络电话
院系主任)
as
select *
from department
(3) 显示学生基础信息视图定义以下:
create view stuview(学号、班级编号、姓名、性别、
出生日期、家庭地址、寝室号、
所属院系)
as
select *
from student
(4) 可用于学生课程基础信息查询、更新视图定义以下:
create view courseview(课程编号、课程、学分、讲师)
as
select *
from course
(5)用于查询和更新 学生成绩基础信息视图定义以下
create view gradeiew(学号、课程编号、成绩、学分)
、 as
select *
from grade
(6)查询导师基础信息视图定义以下:
create view teacheriew(讲师编号、讲师姓名、教讲课程、电话、
所属院系)
as
select *
from teacher
(7)查询住宿信息视图建立以下
create view hourseviewview(宿舍编号、宿舍地址、联络电话、
所属院系)
as
select *
from hourse
(8)用于查询学生导师视图建立以下
create view Directorview(导师编号、导师姓名、联络电话、所属院系)
as
select *
from Director
六、关键代码
6.1 查询
1.表查询某同学已登录全部成绩:
select COURSE.Course,GRADE.Course_ID,Grade,G_Value
from COURSE,GRADE
where COURSE.Course_ID=GRADE.Course_ID and GRADE.STUDENT_ID='8730201'
2.表查询某班全部同学信息
select *
from STUDENT
where Class_ID like '873%'
6.2更新
更新学号为8730102学生性别为女
Update student
Set gender='女'
From student
Where Student_ID='8730102'
6.3插入
在学生信息表中新插入信息:
Insert into Student
Values ('8734065','8734','许芯','女','1990-01-01','西安','西区','08级电商','230')
Insert into Student
Values ('2301001','1234','黄斌','男','1993-11-04','渭南','东区','08级信管','310')
Insert into Student
Values ('2301002','1234','魏韵','女','1993-06-21','运城','西区','08级信管','230')
Insert into Student
Values ('2301003','1234','金野明','男','1992-01-01','西安','东区','08级信管','310')
Insert into Student
Values ('2401006','2345','马志飞','男','1990-08-11','临汾','东区','09级管理','310')
Insert into Student
Values ('2801015','4567','赵子龙','男','1991-11-01','昆明','东区','10级信管','320')
Insert into Student
Values (2901001', '567','林羽墨','女','1990-09-01','西安','西区','10级电商','230')
Insert into Student
Values ('2901005','567','郎江峰','男','1990-03-12','西安','东区','10级电商','310')
Insert into Student
Values (2901006','567','李菁菁,'女','1990-01-01','西安','西区','10级电商','230')
Insert into Student
Values ('2901004','567','付诗音','女','1992-05-15','西安','西区','10级电商','230')
Insert into Student
Values ('8734065','8734','吉亚尼','女','1992-11-21','西安','西区','08级电商','230')
Insert into department Values ('01','信管','','李建国')
Insert into department Values ('02','管理','','徐胜
')
Insert into department Values ('01','电商','','李雨生')
Insert into class
Values ('8734','03, '08级电商','刘星','23')
Insert into class
Values ('1234','01, '08级信管','张弛','33')
Insert into class
Values ('2345','02, '08级管理','陆翔','25')
Insert into class
Values ('4567','01, '10级信管','王雨','32')
Insert into class
Values ('567','03, '10级电商','郭燕','36 ')
Insert into course
Values ('2201',' Photoshop','5,'范朝奇','005')
Insert into course
Values ('2206',' 网站设计和计划','5,'焦华光','002')
Insert into course
Values ('2202',' java','5,'王玉贤','001')
Insert into course
Values ('2203',' 计算机网络','5,'赵金鹏','006')
Insert into course
Values ('2204',' c语言','5,'郭慧峰','003')
Insert into course
Values ('2205',' 管理学','5,'范海平','004')
Insert into grade
Values ('8734065','2201','78','5')
Insert into grade
Values ('8734065','2202','89','5)
Insert into grade
Values ('8734065','2203','69','5)
Insert into grade
Values ('2301001','2201','77','5')
Insert into grade
Values ('2301001','2206','74','5')
Insert into grade
Values ('2301002','2204','66','5')
Insert into grade
Values ('2301002','2205','69','5')
Insert into grade
Values ('2301003','2203','86','5')
Insert into grade
Values ('2301003','2205','75','5')
Insert into grade
Values ('2301003','','69 ','5')
Insert into grade
Values ('2401006','2201','65 ','5')
Insert into grade
Values ('2401006','2203','68 ','5')
Insert into grade
Values ('2401006','2206','85 ','5')
Insert into grade
Values ('2801015','2202','97','5')
Insert into grade
Values ('2801015','2206','87','5')
Insert into grade
Values (2901001', '2205','85 ','5')
Insert into grade
Values (2901001', '2206','77 ','5')
Insert into grade
Values ('2901005','2202','65','5')
Insert into grade
Values ('2901005','2204','68','5')
Insert into grade
Values ('2901005','2206','77','5')
Insert into grade
Values (2901006','2206','90,'5')
Insert into grade
Values (2901006','2205','83,'5')
Insert into grade
Values ('2901004','2203','69','5')
Insert into grade
Values ('2901004','2204','69','5')
Insert into grade
Values ('8734065','2205','77','5')
Insert into grade
Values ('8734065','2206','87','5')
6.4删除
删除学号为8030200 学生信息:
Delete student
Where student_ID=’8030200’
系统演示界面
界面菜单栏里包含六个部分,分别是系统,用户管理,班级管理,成绩管理,宿舍管理,课程管理,具体见下图所表示:
登陆界面图所表示;
其中每个菜单(除系统外)下拉菜单里全部包含四个方面:
系统包含打开和退出系统:
用户管理里包含查询用户,新建用户,删除用户,修改密码四个方面:
查询用户界面图所表示:
删除用户界面图所表示:
新建用户界面图所表示:
修改密码界面图所表示:
班级管理里包含查询班级,增加班级,删除班级,修改班级信息四个方面:
查询班级界面图所表示:
删除班级界面图所表示:
添加班级界面图所表示:
修改班级界面图所表示:
查询成绩界面图所表示:
删除成绩界面图所表示:
添加成绩界面图所表示:
七、课程设计总结
这次数据库大作业,是从E-R图到数据表到数据录入和相关sql语句编写全部是由小组自行完成。能够说是在整个这个学数据库学习4个试验总和。当然在试验中也出现了不少问题。从需求分析开始,因为是第一次设计数据库所以需求分析目标性和整个结构全部不清楚,所以整个需求分析写不很清楚和具体。在结束需求分析后,设计E-R图,在设计时因为平时数据库学习和上机过程中极少包含E-R图设计,所以做起来很吃力,其中借鉴了一下在学习中试验一数据字典和E-R图,并扩充了部分表和联络最终完成了E-R图。在建立数据字典时候对于每个属性数据类型确实定不能把握正确,有时候只能用varchar来填充,这么造成了存放空间大量浪费,也有可能出现数据类型不吻合,可
展开阅读全文