学生管理系统数据库设计与实现班级:03 级理学院应用物理系组成员及所完成的工作:1 班阴文斌(组长) 3003210023 所完成的工作:数据库整体结构的设计,ER 图的绘制和其他工作的审核1 班田巍3003210014 所完成的工作:1 班周冬建3003210029 所完成的工作:系统名称:学生管理系统一.系统需求a.该“学生管理系统”只是对数据库应用技术的一个样本数据库的实例,重在对数据库一些方法的熟悉与掌握,其中包括从数据库的概念模型到ER 图的绘制,再到数据库模式的建立(即为数据库及其基本表的建立),而后数据的录入(在此从略),最后完成一些简单的关系运算表达式的表达和相关的Select 查询语句的使用。
b.系统结构简述:本系统包括六个实体:学生;课程;教师;学院;社团;活动实体之间的关系转换为其他四个表:选修;代课;加入社团;组织活动(都是多对多关系的转换)实体“学院”与“学生”之间一对多的关系转换到表“学生”中注:各个基本表中关键字已在关系模式中说明c.该数据库需要进行如下数据处理:(田巍)◎ 要查询所有学生的个人信息:学号,姓名,性别,民族,出生年月,籍贯,身份证号,学院编号,所在专业◎ 学生要查询本学期所开课程详细情况(成绩除外),并按“课程类型”分组输入:学号输出:学号,姓名,课程名,学分数,学时数,课程类型◎ 对某个学生的社团活动用清单表示(按社团分组,活动时间升序排序):输入:学号输出:学号,姓名,活动名称,活动地点,活动时间,社团名称,详细内容◎ 某位教师想查询自己本学期所代的课程及其上课情况:输入:教师姓名输出:教师编号,姓名,性别,课程名,课程类型,上课教室,上课时间ER 图(阴文斌) 所在专业1n所属院系 选修学院 课程m上课教室入社日期成绩代课职务 上课时间成立年份n社团编号#会长编号教师名称所属级别备注截止日期发起日期活动地点n名称活动详细内容活动编号#学生mm加入社团n社团m组织活动图1社团活动ER 图 姓名 性别学号# 课程编号身份证号岀生年月学生 课程名宿舍号籍贯学时数课程民族 课程类型教师编号#学分数姓名学历家庭住址性别教师电话备注图2课程部分ER 图图3学院局部ER图三•关系模式(田巍)系统中的实体有:学生;课程;教师;学院;社团;活动关系模式如下:学生(学号#,姓名,性别,民族,出生年月,籍贯,身份证号,宿舍号,学院编号,所在专业)说明:属性中“学院编号”和“所在专业”是一对多关系“所属院系”的转换,宿舍号的格式为:_ _ - _ - ___________________ (_代表数字)课程(课程编号#,课程名,课程类型,学分数,学时数)选修(学号#,课程编号#,成绩)教师(教师编号#,姓名,性别,学历,家庭住址,电话,备注)代课(课程编号#,教师编号#,上课教室,上课时间)说明:属性中“上课教室”的格式为:_ _ - ___ ,“上课时间”的格式为:」1-7] _ : _ [S/D] [。
_ [1-7] _ : _ _ [S/D]]社团(社团编号#,名称,所属级别,成立年份,会长编号,备注)说明:属性中“所属级别”的取值为{校级,院级}加入社团(学号#,社团编号#,入社日期,职务)活动(活动编号#,名称,活动地点,发起日期,截止日期,详细内容)组织活动(社团编号#,活动编号#)学院(学院编号#,名称,学院类型,院长编号,院办地址,院办电话)说明:“学院类型”可以看作是“工科”或者“理科”四. 物理设计表1.学生表结构五. 系统实现1.数据库及其基本表的建立(周冬建)数据库的建立用企业管理器,基本表的建立用T - SQL语言:数据库名称为:SM_System建立数据库的T—SQL代码如下:Create database SM_SystemOn (n ame=sm_system_data, file name= ' 阴文斌_ 田巍_ 周冬建\sm_system_data.mdf)Log on (name=sm_system_log, filename= ' 阴文斌_ 田巍_ 周冬建\ sm_system」o g. lmf)建立基本表的T—SQL代码如下:use SM_Systemcreate table 学生(学号char(10) not null,姓名char(8) not null,性别char(2) not null,民族char(10) not null,出生年月datetime,籍贯char(80) not null,身份证号char(18) not null,宿舍号char(9),学院编号char(6) not null,所在专业char(20) not null)create table 课程(课程编号char(6) not null,课程名char(40) not null,课程类型char(12) not null,学分数smallint,学时数smallint)create table 选修(学号char(10) not null,课程编号char(6) not null,成绩smalli nt)create table 教师(教师编号char(6) not null,姓名char(8) not null,性别char(2) not null,学历char(20),家庭住址char(80), 电话char(12), 备注char(80))create table 代课( 课程编号char(6) not null,教师编号char(6) not null,上课教室char(6) not null,上课时间char(18) not null) create table 社团( 社团编号char(6) not null, 名称char(20) not null, 所属级别char(4), 成立年份datetime,会长编号char(6) not null, 备注char(80)) create table 加入社团( 学号char(10) not null, 社团编号char(6) not null,入社日期datetime, 职务char(20))create table 活动( 活动编号char(6) not null,名称char(40) not null,活动地点char(80), 发起日期datetime not null, 截止日期datetime not null,详细内容char(80))create table 组织活动( 社团编号char(6) not null,活动编号char(6) not null)create table 学院( 学院编号char(6) not null,名称char(40) not null, 学院类型char(4),院长编号char(6) not null,院办地址char(40),院办电话char(12))输入数据:Insert into 学生values( ‘3006201801 ', ' 李红 ', ' 女 ', ' 汉族 ', '1985-05-12 ', ' 河北省保定 ', '120186************ ', '24 401 ', '201 ', '机械制造 ') 写出每个数据表数据的输入命令2 .创建索引(略,学生作业至少创建4 个索引)3.创建视图(略,学生作业至少创建4 个视图)4.创建存储过程(略,学生作业至少创建4 个存储过程)5. 查询语句(阴文斌,周冬建)教师批注:此处不符合要求,应该创建存储过程实现!◎ 要查询所有学生的个人信息学号,姓名,性别,民族,出生年月,籍贯,身份证号,学院编号,所在专业Select学号,姓名,性别,民族,出生年月,籍贯,身份证号,学院编号,所在专业From 学生◎学生要查询本学期所开课程详细情况(成绩除外),并按“课程类型”分组输入:学号输出:学号,姓名,课程名,学分数,学时数,课程类型设输入的学号的数值为xSelect S学号,姓名,课程名,学分数,学时数,课程类型From学生as S,选修as X,课程as CWhere S学号=X.学号and X.课程编号=C.课程编号and S学号=xGroup by 课程类型◎对某个学生的社团活动用清单表示(按社团分组,活动时间升序排序):输入:学号输出:学号,姓名,活动名称,活动地点,活动时间,社团名称,详细内容设输入的学号为x◎某位教师想查询自己本学期所代的课程及其上课情况:输入:教师姓名输出:教师编号,姓名,性别,课程名,课程类型,上课教室,上课时间设输入的教师姓名为xSelect J•教师编号,姓名,性别,课程名,课程类型,上课教室,上课时间From教师as J,代课as D,课程as CWhere J.教师编号=D.教师编号and D.课程编号=C.课程编号and姓名=x完成日期:年月日。