数据库原理及应用课程设计
西南石油大学
课 程 设 计 报 告
课程名称 数据库原理及应用
设计题目 学生信息管理系统数据库设计与实现
专 业 网络空间安全
班 级 网安03
学 号
姓 名
完成日期 20200511
任 务 书
设计内容:
自拟一个应用场景,完成一个数据库应用系统中数据库部分的分析、设计与实现。
设计要求:
-
完成系统需求分析,数据库概念结构设计、逻辑结构设计、物理结构设计(如需);
-
创建数据库,表结构、存储过程、触发器等数据库对象;
-
通过控制台操作数据库,实现各种增删改查操作;
-
场景复杂程度合理,设计的E-R图中的实体不少于4个,数据库表不少于5张。
指导教师: 2020 年 4 月
1.概述
1.1本设计的背景和意义
1.设计的数据库管理系统背景:
由于高校的规模大,学生人和老师人数多,教务系统,图书馆等其他资源的增加,从而设计一个学生信息管理系统。
2.设计的意义
为了方便学校对学生的信息进行管理,同时顺应互联网时代的发展,数据库和降低人工成本,同时提高学生信息的保密性,查询的效率提升,此外,与传统的信息管理这有助于提升学校的办学效率,提高学校的知名度。
1.2数据库设计开发工具
本设计采用的数据开发工具为SQL Server 2008
Microsoft Visio 2009
需求分析
2.1需求概述
学生信息管理系统的作用:
用于学校等教育机构的,学生,老师的信息管理,查询,维护,更新等高效率操作,该系统操作简单,便于对学工信息的管理。
2.2功能需求
学生信息管理系统实现的功能:
用于学生对个人信息的查询,添加,修改等管理。
学生成绩的录入,修改,删除,查询等功能。
2.3数据需求
班级:班级编号,班级专业,班级院系;一个班级有多个学生,每一个学生只能属于一个班级,需要记录学生的,学生编号,学生姓名,性别,年龄,出生日期。
课程:有课程编号,课程名称,所需学分,同时一个学生可以选择多个课程,多个课程又可以被同一个学生选择,学生在选修结束后会得到相应的成绩,同时,一个老师可以教授多个课程,多个课程又可以被同一个老师教授,老师可以得到相应的评分
概念结构设计
3.1局部E-R图
3.1.1学生班级局部E-R图
3.1.2教师信息局部E-R图
3.1.3课程信息局部E-R图
3.1.4学生信息局部E-R图
3.2完整E-R图
班级(班级号,所属专业,所属院系)
学生(学生编号,学生姓名,性别,出生日期,班级编号,其中班级编号为外码,
参照班级表中的班级编号)
教师(教师编号,教师姓名,性别,出生日期)
课程(课程编号,课程名称,所需学分)
成绩表(学生编号,课程编号,成绩)
其中学生编号是外码,参照学生表中学生编号
课程编号为外码,参照课程表中的课程编号
评分表(教师编号,课程编号,评分)
其中教师编号是外码,参照教师表中教师编号
课程编号为外码,参照课程表中的课程编号
逻辑结构设计
4.1建立关系模式
根据概念结构设计,可转换得到如下关系模式:
学生表
列名 数据类型 允许为空 主键 外键 CHECK约束 备注
学生编号 Char(6) N Y N 6位数
学生姓名 Varchar(20) N N N 无
性别 Char(2) N N N 默认为“男或女
出生日期 Datetime N N N 无
班级编号 Char(6) N N Y
教师表
列名 数据类型 允许为空 主键 外键 CHECK约束 备注
教师编号 Char(6) N Y Y 6位数
教师姓名 Varchar(20) N N N 无
性别 Char(2) N N N 默认为“男或女
出生日期 Datetime N N N 无
课程表
列名 数据类型 允许为空 主键 外键 CHECK约束 备注
课程编号 Char(6) N Y Y 6位数
课程名 Varchar(20) N N N 无
教师编号 Char(6) N N Y 6位数
所需学分 Varchar(20) Y N N 无
班级表
列名 数据类型 允许为空 主键 外键 CHECK约束 备注
班级编号 Char(6) N Y N 无 前两位字母代表专业,后三位代表班级
班级专业 Varchar(20) N N N 无
所属院系 Varchar(20) N N N 无
成绩表
列名 数据类型 允许为空 主键 外键 CHECK约束 备注
学生编号 Char(6) N Y Y 6位数
课程编号 Char(6) N N Y 6位数
成绩 Varchar(20) N N N 无
评分表
列名 数据类型 允许为空 主键 外键 CHECK约束 备注
教师编号 Char(6) N Y Y 6位数
课程编号 Char(6) N N Y 6位数
评分 Varchar(20) N N N 无
4.2关系模式规范化处理
分析关系模式是否达到第三范式,如果没达到,将其分解为达到第三范式要求;如果需要反规范化处理,则进行反规范化处理。
上述关系模式均达到第三范式要求
数据库实现
5.1建立数据库
创建homework数据库
Create database homework
5.2数据表创建
5.2.1班级表的创建
create table class(
clno char(6) not null primary key,
major varchar(20) not null,
dept varchar(20) not null
)
5.2.2学生表的创建:
create table students(
sno char(6) not null primary key
check(sno like ‘[0-9][0-9][0-9][0-9][0-9][0-9]’),
sname varchar(20) not null,
ssex char(2) not null check(ssex='男’or ssex=‘女’)default ‘男’,
sdate datetime not null,
clno char(6) not null foreign key references class(clno)
)
5.2.3教师表的创建:
create table teachers(
tno char(6) not null primary key
check(tno like ‘[0-9][0-9][0-9][0-9][0-9][0-9]’),
tname varchar(20) not null,
ssex char(2) not null check(ssex='男’or ssex=‘女’)default ‘男’,
sdate datetime not null
)
5.2.4课程表的创建:
create table courses(
cno char(6) not null primary key
check(cno like ‘[0-9][0-9][0-9][0-9][0-9][0-9]’),
cname varchar(20) not null,
pay varchar(20),
tno char(6) not null foreign key references teachers(tno)
)
5.2.5成绩表的创建
create table sgrades(
grade numeric(3, 0) not null,
sno char(6) not null foreign key references students(sno),
cno char(6) not null foreign key references courses(cno)
)
5.2.6评分表的创建
create table tgrade(
tgrade varchar(20) not null,
tno char(6) not null foreign key references teachers(tno),
cno char(6) not null foreign key references courses(cno)
)
5.3数据视图创建