




免费预览已结束,剩余17页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库原理实训数据库原理实训 学生管理系统学生管理系统 班级 班级 成员 成员 指导老师 指导老师 开发时间 开发时间 一 一 需求分析需求分析 1 编写目的编写目的 为了明确软件需求 安排项目规划与进度 组织软件开发与测试 撰写本 文档 本文档供项目经理 设计人员 开发人员参考 2 项目背景项目背景 使用计算机对学生信息进行管理 拥有手工管理所无法比拟的优点 例如 检索迅速 查找方便 可靠性高 存储量大 成本低等 这些优点能够极大地 提高学生信息的效率 也是管理科学化 正规化的重要支撑 学生信息管理系统能够方便地查询和变更学生的基本数据 包括学籍数据 和成绩数据 节省大量工作时间 有效地提高学生信息管理的效率 而查询信 息的直观显示将有助于系统的用户一目了然地掌握学生的情况 3 开发计划 开发计划 分阶段完成任务 第一阶段实现快速界面原型 并进行相应的补充修改以满足客户的需求 第二阶段完成界面的进一步设计求精 形成最终的设计样式 第三阶段 完成数据库的开发 第四阶段 整合管理系统并进行各项测试改正出现的各种问题 4 实现的内容 实现的内容 学生信息管理系统属于应用系统 学生信息管理系统的使用者是教务处管 理员和学生 它的功能就是教师通过输入用户名和口令登陆到教学管理数据库 中 从而实现对各门选课人数限制 对学生信息的维护限制 每个新学年的开 始 都有新生的进入 和毕业生离校 每个学期学生的课程会发生改变以及有 些学生因为不同的原因离校或者有新来的转校生 系统要对这些情况做相应的 改变 离校的将学生信息删除 新来的要将学生信息存入系统 课程改变了 要将其修改 教务处访问该系统将学生信息填入 删除或修改 学生可以在系 统上查询本人信息 该系统是一个集成多功能的信息管理系统 有教师资料管 理 学生管理 班级管理 院系管理 课程管理和成绩管理功能模块 本系统 将大大提高学生信息的管理效率 带来数据共享 网络查询和网络管理等便利 实现学生信息管理的数字化和智能化 教师管理模块 本模块主要对教师的资料信息进行查询 删除 修改和添加 学生管理模块 本模块主要对学生资料信息进行相应的查询 删除 修改和 添加 添加了学生所在院系资料与学生所在专业资料 同时可对院系资料与专 业资料进行相应的添加 修改 查询 课程管理模块 本模块主要对课程资料进行管理 对其进行查询 添加 修 改和删除 又详细划分了课程类别资料 对其进行如上操作 成绩管理模块 本模块对学生成绩进行查询操作 如发现成绩有输入错误 可对其进行相应的修改 还可对学生的成绩进行录入 班级管理模块 本模块班级资料信息进行管理 对其进行相应的查询 修改 删除和添加 根据实际问题 本系统要实现以下功能 1 用户认证 本系统用户有教务处管理员和学生 所以用户必须通过认证 才能登入系统 系统能够自动识别用户类型 能够给不同的用户分配不同的权 限 教务处管理员用户成功登入后可以进入操作界面 学生成功登入后即可进 入学生本人信息界面 2 数据维护 可以对学生的成绩和课程等数据进行维护 3 信息管理 允许教务处管理员修改学生信息 允许学生在任何时候登入查 询本人信息 如图所示 学 生 信 息 管 理 系 统 学生信息管理 查看学生信息 修改学生信息 增加学生信息 删除学生信息 所在学院信息 所在专业信息 所在年级信息 所在班级信息 老师信息管理 查看老师信息 修改老师信息 增加老师信息 删除老师信息 所在教研室信息 课程信息管理 课程资料管理 学生选课管理 成绩信息管理 成绩录入 成绩修改 成绩查询 二二 概念结构设计概念结构设计 概念结构所涉及的数据是独立于硬件和软件系统的 它的目标是以用户可 以理解的形式来表达信息的流程 从而可以和不熟悉计算机的用户交换意见 它要充分地反映实体之间的关系 成为反映现实的概念数据模型 这是各种基 本数据模型的共同基础 易于向关系模型转变 通过需求分析得到的数据项和数据结构 可以设计出各种实体以及它们之 间的关系图 为后面的逻辑结构设计打下基础 这些实体包含各种具体信息 通过相互之间的作用形成数据的流动 根据上面的设计规划处的实体有 学院实体 专业实体 年级实体 班级 实体 学生实体 课程实体 教师实体 1 一个学院有多个专业 一个专业只能属于一个学院 因此学院与专业 之间具有一对多关系 2 一个专业有多个年级 一个年级有多个专业 因此学院与专业之间具 有多对多关系 3 一个专业有多个班级 一个班级只能属于一个专业 因此专业与班级 之间具有一对多关系 4 一个班级有多个学生 一个学生只能属于一个班级 因此班级与学生 之间具有一对多关系 5 一个学生可以选修多门课程 一门课程可以被多个学生选修 因此学 生与课程之间是多对多的联系 用成绩来表示学生和课程之间联系的属性 6 一个学院有多个教师 一个教师只能属于一个学院 因此学院与教师 具有一对多的联系 7 一个教师可以任教多门课程 一门课程可以被多个教师任教 因此课 程与教师具有多对多的联系 学生信息系统 E R 图如图所示 学院 编号名称 专业 编号名称 学院名称 学院 学院 专业 专业 专业 年级 年级 年级 班级 班级 班级 学生 学生 学生 课程 课程 教师 课程 教师 学院 教师 1n m n 1 n 1 n mn 1 n m p 年级 专业编号 专业名称 学院名称年级 班级 学院编号 年级 班级 学生 班级 电话 年级 专业名称 学院名称 年龄性别 姓名 学号 教师 年龄 学院名称 教研室名称 电话 性别 姓名 工号 教师教研室 教研室编号 学院名称 教研室名称 课程 学分 课程号 课程名 学院名称 三 逻辑结构设计三 逻辑结构设计 此阶段的任务是把概念结构转换成 SQL Server 2005 数据库管理系统能处理 的数据模型 在进行这种转换时 是把实体类型和联系类型分别转换成一个个 关系模式 这中间存在着多种可能组合 必须从中选择一个性能好的关系模式 集作为关系数据库的模式 学生管理系统的关系模式集如下 1 学生信息表 学生学号 学生姓名 性别 年龄 学院名称 专业名称 年级 班级名称 电话 主键为学生学号 2 课程数据表 课程号 课程名称 学院名称 学分 主键为课程号 3 学生选课表 学号 课程号 老师工号 成绩 主键为学号 课程号 4 教师数据表 老师工号 老师姓名 性别 年龄 学院名称 教研室名 称 电话 主键为老师工号 5 学院数据表 学院名称 学员编号 主键为学院名称 6 专业数据表 专业名称 专业编号 学院名称 主键为专业名称 7 年级 班级数据表 年级 学院名称 专业名称 班级名称 主键为年 级 班级名称 8 教师教研室表 教研室名称 教研室编号 学院名称 主键为教研室名 称 9 教师任课数据表 课程号 课程名称 教师工号 主键为课程号 教师 工号 四 物理结构设计四 物理结构设计 物理结构设计是指对给定的基本数据模型选择一个最适合应用环境的物理 结构的过程 数据库的物理结构主要是指数据库的存储记录格式 存储记录安 排和存取方法 确定数据库的存储结构 主要是指确定数据的存放位置和存储结构 包括 确定关系 索引 系统存储参数的配置 确定数据库的存储方法 1 数据结构 设置每一张数据表的属性的属性名 类型和宽度 每张数据表的属性的属性名 类型和宽度如表所示 学生信息表学生信息表 student 名称字段类型长度是否为空备注 学号snochar10否主键 姓名studentnamevarchar10否 性别sexchar2 年龄sagesmallint 学院名称collegenamevarchar20外键 专业名称majornamevarchar20外键 年级gradeint外键 班级名称classchar10外键 电话telvarchar16 课程数据表课程数据表 course 字段别名类型长度是否为空备注 课程号cnochar10否主键 课程名称coursenamevarchar20否 学院名称collegenameVarchar20外键 学分Creditint否 学生选课表学生选课表 selectcourse 字段别名类型长度是否为空备注 学号snochar10否主键 外码 课程号Cnochar10否主键 外码 工号TeacherIDvarchar10外键 成绩Scoreint 教师数据表教师数据表 teachers 名称字段类型长度是否为空备注 工号teacherIDvarchar10否主键 姓名teachernamevarchar10否 性别sexchar2 年龄sagesmallint 学院名称collegenamevarchar20外键 教研室名称departmentvarchar20外键 电话telvarchar16 学院数据表学院数据表 college 名称字段类型长度是否为空备注 学院名称collegenamevarchar20否主键 学院编号collegeIDint否 专业数据表专业数据表 major 名称字段类型长度是否为空备注 专业名称majornamevarchar20否主键 专业编号majorIDint否 学院名称coolegenamevarchar20否外键 班级数据表班级数据表 class 名称字段类型长度是否为空备注 年级gradeint否外键 学院名称collegenamevarchar20否外键 专业名称majornamevarchar20否外键 班级名称classchar10否主键 年级数据表年级数据表 grade 名称字段类型长度是否为空备注 年级gradeint否主键 学院名称collegenamevarchar20否外键 专业名称majornamevarchar20否外键 教师教研室表教师教研室表 depart 名称字段类型长度是否为空备注 教研室名称departmentvarchar20否主键 教研室编号departIDint否 学院名称collegenamevarchar20外键 教师任课数据表教师任课数据表 teachercourse 名称字段类型长度是否为空备注 课程号cnochar10否主键 外码 课程名称coursenamevarchar20否 工号teacherIDvarchar10否主键 外码 2 设置参照属性 1 学生信息表 学生学号 学生姓名 性别 年龄 学院名称 专业名称 年级 班级名称 电话 中的学院名称 专业名称 年级 班级名称分 别参照学院数据表中学院名称 专业数据表中的专业名称 年级 班级 数据表中的年级 班级名称 2 课程数据表 课程号 课程名称 学院名称 学分 中的学院名称参照 学院数据表中学院名称 3 学生选课表 学号 课程号 老师工号 成绩 中的学号 课程号 老 师工号分别参照学生信息表中的学号 课程数据表中的课程号 教师数 据表中的老师工号 4 教师数据表 老师工号 老师姓名 性别 年龄 学院名称 教研室名 称 电话 中的学院名称 教研室名称分别参照学院数据表中的学院名 称 教师教研室表中的教研室名称 5 专业数据表 专业名称 专业编号 学院名称 中的学院名称参照学院 数据表中学院名称 6 年级 班级数据表 年级 学院名称 专业名称 班级名称 中的学院 名称 专业名称分别参照学院数据表中的学院名称 专业数据表中的专 业名称 7 教师教研室表 教研室名称 教研室编号 学院名称 中的学院名称参 照学院数据表中学院名称 8 教师任课数据表 课程号 课程名称 教师工号 中的课程号 工号分 别参照课程数据表中的课程号 教师数据表中的教师工号 3 索引 在成绩上创建索引 score index 在学生年龄上创建索引 student sage index 在老师成绩上创建索引 teachers sage index 4 设置视图 为学生信息创建视图 student view 创建各院系学生的视图 college major s 创建各班级视图 class s 为各学院课程创建视图 college course 为各班的学生选课成绩创建视图 selectcourse s 为各班学生的学号及平均成绩创建视图 avg s 为老师信息创建视图 teachers view 为教研室创建视图 depart view 为老师任课创建视图 teachercourse view 为各学院所拥有的专业创建视图 c major view 5 设置存储过程 a 创建一个存储过程 输入学号可以查询该学生的各科成绩 b 创建一个存储过程 输入课程名显示该门课程的平均成绩和选课人次 c 创建一个存储过程 输入学院名称显示该学院的代号 学院名称以及包含的 各个专业的代号和名称 并统计该学院包含专业的数目 d 创建一个存储过程 输入学院名称 专业名称 年级 班级显示该班级所有学 生的信息 并统计该班的人数 e 创建一个存储过程 输入老师姓名 显示该老师所教的所有课程编号 课程名 称 并显示这位老师的 ID 号 所属院系 教研室名称 6 设置触发器 1 要求学生选课课程表中的课程号被删除时 学生选课成绩表中的对应的课程 号的信息也被删除 2 要求学生信息表中的学好被修改时 学生选课成绩表 学生公共课成绩表中 的学号自动修改 3 触发器 ttrigger 要求教师信息表中老师的职工号修改 则教师选课信息的职 工号也会被修改 4 触发器 ttrigger 要求若输入的学号或者课程号与数据库中数据不符则不插入 选课成绩表中 5 触发器insert student 如果学生表中有新的学生插入 则触发该触发 器 使得该学生信息插入 6 触发器insert classes 如果有新的班级被添加 则触发该触发器使得 该班级信息添加进来 7 触发器insert college 如果有新的学院被添加 则触发该触发器使得 该学院信息添加进来 8 触发器insert course 如果有新的课程被添加 则触发该触发器使得该 课程相关信息添加进来 9 触发器insert depart 如果有新的教师研究室被添加 则触发该触发器 使得该教师研究室的相关信息添加进来 10 触发器insert major 如果有新的专业被添加 则触发该触发器使得该 专业的相关信息被添加进来 11 触发器insert selectcourse 如果有某位同学新选的课程需要添加进 来 则触发该触发器使得该学生选择的这门课程的相关信息被添加进来 12 触发器insert teachercourse 如果有某位教师的选课信息要添加 则触发该触发器使得相关信息被添加进来 13 触发器insert teachers 如果有新老师要被添加 则触发该触发器使 得该教师的相关信息被添加进来 五 实施阶段五 实施阶段 现在我们可以根据物理设计的结果产生一个具体的数据库 并把原始数据输入 数据库中 利用 SQL Server 2005 数据库系统中的 SQL 查询分析器来实现 下 面给出具体的实现过程 1 创建学生信息管理数据库 create database studentmanagesystem on primary name studentmanagement filename D DATA studentmanagesystem mdf size 3 maxsize unlimited filegrowth 1 log on name studentmanagesystem log filename D DATA studentmanagesystem log ldf size 1 maxsize 2 filegrowth 10 2 创建数据表文件 学院数据表学院数据表 college CREATE TABLE college collegename varchar 20 primary key not null collegeID int not null 专业数据表专业数据表 major CREATE TABLE major majorname varchar 20 primary key not null majorID int not null collegename varchar 20 not null FOREIGN KEY collegename REFERENCES college collegename 年级数据表年级数据表 grades CREATE TABLE grades grade int not null primary key collegename varchar 20 not null majorname varchar 20 not null FOREIGN KEY collegename REFERENCES college collegename FOREIGN KEY majorname REFERENCES major majorname 班级数据表班级数据表 classes CREATE TABLE classes class char 10 not null primary key grade int not null collegename varchar 20 not null majorname varchar 20 not null FOREIGN KEY collegename REFERENCES college collegename FOREIGN KEY majorname REFERENCES major majorname FOREIGN KEY grade REFERENCES grades grade 学生信息表学生信息表 student create table student sno char 10 primary key not null studentname varchar 10 not null sex char 2 sage smallint collegename varchar 20 majorname varchar 20 grade int class char 10 tel varchar 16 foreign key collegename references college collegename foreign key majorname references major majorname foreign key grade references grades grade foreign key class references classes class 课程数据表课程数据表 course create table course cno char 10 primary key not null coursename varchar 20 not null collegename varchar 20 Credit int not null foreign key collegename references college collegename 教师教研室表教师教研室表 depart CREATE TABLE depart department varchar 20 not null primary key departID int not null collegename varchar 20 FOREIGN KEY collegename REFERENCES college collegename 教师数据表教师数据表 teachers create table teachers teacherID varchar 10 primary key not null teachername varchar 10 not null sex char 2 sage smallint collegename varchar 20 department varchar 20 tel varchar 16 foreign key collegename references college collegename foreign key department references depart department 学生选课及成绩表学生选课及成绩表 selectcourse create table selectcourse sno char 10 not null Cno char 10 not null teacherID varchar 10 score int primary key sno cno foreign key sno references student sno foreign key cno references course cno foreign key teacherID references teachers teacherID 教师任课数据表教师任课数据表 teachercourse CREATE TABLE teachercourse cno char 10 not null coursename varchar 20 not null teacherID varchar 10 PRIMARY KEY cno teacherID foreign key cno references course cno foreign key teacherID references teachers teacherID 3 创建索引 在成绩上创建索引 score index create nonclustered index score index on selectcourse score desc 在学生年龄上创建索引 student sage index create nonclustered index student sage index on student sage desc 在老师成绩上创建索引 teachers sage index create nonclustered index teachers sage index on teachers sage desc 4 创建视图 为学生信息创建视图 student view create view student view as select from student 创建各院系学生的视图 college major s create view college major s as select sno studentname collegename majorname tel from student group by collegename majorname sno studentname tel 创建各班级视图创建各班级视图 class s create view class s as select sno studentname grade class tel from student group by collegename majorname grade class sno studentname tel 为各学院课程创建视图 college course create view college course as select from course group by collegename cno coursename credit 为各班的学生选课成绩创建视图 selectcourse s create view selectcourse s sno cno teacherID score as select selectcourse sno cno teacherID score from selectcourse class s where selectcourse sno class s sno 为各班学生的学号及平均成绩创建视图 avg s create view avg s sno grade class gavg as select selectcourse sno grade class avg score from selectcourse class s where selectcourse sno class s sno group by grade class selectcourse sno 为老师信息创建视图 teachers view create view teachers view as select from teachers group by collegename department teacherID teachername sex sage tel 为教研室创建视图 depart view create view depart view as select from depart group by collegename departID department 为老师任课创建视图 teachercourse view create view teachercourse view as select from teachercourse group by teacherID cno coursename 为各学院所拥有的专业创建视图 c major view create view c major view collegename collegeID majorname majorID as select collegeID college collegename majorID majorname from college major where major collegename college collegename 5 创建存储过程 1 创建一个存储过程 输入学号可以查询该学生的各科成绩 create proc scoreproc sno char 10 as begin select student sno studentname coursename score credit from student course selectcourse where student sno selectcourse sno and o o and student sno sno end go 用户请输入 exec scoreproc 输入您需要查询的学号 2 创建一个存储过程 输入课程名显示该门课程的平均成绩和选课人次 create proc avgscoreproc cname char 20 avg int output count smallint output as begin select avg avg grade count count from course selectcourse where o o and coursename cname end go 用户请输入 declare a int b smallint exec avgscoreproc 输入您要查找的课程名 a output b output select a as 平均成绩 b as 选课人次 3 创建一个存储过程 输入学院名称显示该学院的代号 学院名称以及包含 的各个专业的代号和名称 并统计该学院包含专业的数目 create proc majorproc collegename char 20 countmajor int output as begin select college collegeID collegename majorID majorname from college major where college collegename major collegename and college collegename collegename select countmajor count from major where collegename collegename end go 用户请输入 declare a int exec majorproc 输入您要查找寻的学院名字 a output select a as 专业数目 4 创建一个存储过程 输入学院名称 专业名称 年级 班级显示该班级所有 学生的信息 并统计该班的人数 create proc classproc collegename char 20 majorname char 20 grade int class char 10 num int output as begin select from student where collegename collegename and majorname majorname and grade grade and class class select num count from student where collegename collegename and majorname majorname and grade grade and class class end go 用户请输入 declare x int exec classprco 输入学院名称 专业名称 年级 班级 x output select x as 人数 5 创建一个存储过程 输入老师姓名 显示该老师所教的所有课程编号 课程 名称 并显示这位老师的 ID 号 所属院系 教研室名称 create proc teacherproc teacher char 10 ID char 10 output college char 10 outchar department char 20 output as begin select cno coursename from teachers teachercourse where teachers teacherID teachercourse teacherID and teachername teacher select ID teacherID college collegename department department from teachers where teachername teacher end go 用户请输入 declare x char 10 y char 20 z char 10 exec teacherproc 请输入您要查找的老师姓名 x output y output z output select x y z 6 创建触发器 1 触发器 ctrigger 要求学生选课课程表中的课程号被删除时 学生选课成绩表 中的对应的课程号的信息也被删除 create trigger ctrig on course after delete as begin delete SC where cno in select cno from deleted End 用户输入 delete C where cno 输入您要删除的课程号 2 触发器 strigger 要求学生信息表中的学号被修改时 学生选课成绩表 学生公共课成绩表中的学号自动修改 create trigger ctrig on student after update as begin update selectcourse set sno in select sno from inserted where sno in select sno from deleted end 用户输入 update student set sno 请输入您要修改的新学号 where sno 请输入该学生的旧学号 触发器 ttrigger 要求教师信息表中老师的职工号修改 则教师选课信息 的职工号也会被修改 create trigger ttrig on teachers after update as begin update teachercourse set teacherID in select teacherID from inserted where teacherID in select teacherID from deleted end 用户输入 update teachers set teacherID 请输入您要修改的新职工号 where teacherID 输入原来的旧职工号 触发器 ttrigger 要求若输入的学号或者课程号与数据库中数据不符则不 插入选课成绩表中 create trigger check trig on selectcourse after insert as begin if exists select from inserted where sno not in select sno from s or cno not in select cno from course rollback end go 用户输入 insert selectcourse values 输入学生的学号 输入学生选修的课程号 输入该门 成绩 5 触发器insert student 如果学生表中有新的学生插入 则触发该触发 器 使得该学生信息插入 create trigger insert student on student after insert as begin insert into student values sno studentna
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年国家级体育盛事宣传资料印刷与赞助商权益最大化合同
- 2025年科幻题材舞台剧剧本改编与全球巡演合作框架合同
- 临澧公务员面试题目及答案
- 公务员ai面试题及答案
- 痹症中医内科试题及答案
- 春日路边作文写景(10篇)
- 八年级(下)期末物理真题汇编《运动与力》及答案
- 2025年废弃矿井资源再利用技术路径与产业前景研究报告
- 2025年教育精准扶贫对农村学校学生学业成就的影响与对策研究
- 手绘pop入门培训课件
- 寺院电路改造方案(3篇)
- 监理公司财务管理制度
- NBT 11551-2024 煤矿巷道TBM法施工及验收标准
- 生产环境条件管理制度
- 汽修进出厂管理制度
- 试用期员工绩效考核表新版本
- 2025江苏省招标中心有限公司校园招聘30人笔试参考题库附带答案详解
- 原发性乳腺癌规范化诊疗指南
- 2025年“健康中国”战略下医疗健康产业投资趋势报告
- 湿地公园项目监理规划
- 旋挖钻孔灌注桩施工流程课件
评论
0/150
提交评论