数据库大作业——学生管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学生管理系统数据库设计与实现

班级:

组成员及所完成的工作:

系统名称:学生管理系统

一.系统需求

a.该“学生管理系统”只是对数据库应用技术的一个样本数据库的实例,重在对数据

库一些方法的熟悉与掌握,其中包括从数据库的概念模型到ER图的绘制,再到数据库模式的建立(即为数据库及其基本表的建立),而后数据的录入(在此从略),最后完成一些简单的关系运算表达式的表达和相关的Select 查询语句的使用。

b.系统结构简述:

本系统包括六个实体:学生;课程;教师;学院;社团;活动

实体之间的关系转换为其他四个表:选修;代课;加入社团;组织活动(都是多对多关系的转换)

实体“学院”与“学生”之间一对多的关系转换到表“学生”中

注:各个基本表中关键字已在关系模式中说明

c.该数据库需要进行如下数据处理:

◎要查询所有学生的个人信息:

学号,姓名,性别,民族,出生年月,籍贯,身份证号,学院编号,所在专业

◎学生要查询本学期所开课程详细情况(成绩除外),并按“课程类型”分组

输入:学号

输出:学号,姓名,课程名,学分数,学时数,课程类型

◎对某个学生的社团活动用清单表示(按社团分组,活动时间升序排序):

输入:学号

输出:学号,姓名,活动名称,活动地点,活动时间,社团名称,详细内容

◎某位教师想查询自己本学期所代的课程及其上课情况:

输入:教师姓名

输出:教师编号,姓名,性别,课程名,课程类型,上课教室,上课时间

二.ER图

图1。社团活动ER图

图2。课程部分ER图

三.关系模式

系统中的实体有:学生;课程;教师;学院;社团;活动

关系模式如下:

学生(学号#,姓名,性别,民族,出生年月,籍贯,身份证号,宿舍号,学院编号,所在专业)

说明:属性中“学院编号”和“所在专业”是一对多关系“所属院系”的转换,宿舍号的格式为:_ _ - _ - _ _ _ _(_ 代表数字)

课程(课程编号#,课程名,课程类型,学分数,学时数)

选修(学号#,课程编号#,成绩)

教师(教师编号#,姓名,性别,学历,家庭住址,电话,备注)

代课(课程编号#,教师编号#,上课教室,上课时间)

说明:属性中“上课教室”的格式为:_ _ - _ _ _,“上课时间”的格式为:_ [1-7] _ : _ _ [S/D] [;_ [1-7] _ : _ _ [S/D] ]

社团(社团编号#,名称,所属级别,成立年份,会长编号,备注)

说明:属性中“所属级别”的取值为{校级,院级}

加入社团(学号#,社团编号#,入社日期,职务)

活动(活动编号#,名称,活动地点,发起日期,截止日期,详细内容)

组织活动(社团编号#,活动编号#)

学院(学院编号#,名称,学院类型,院长编号,院办地址,院办电话)

说明:“学院类型”可以看作是“工科”或者“理科”

四.物理设计

表1。学生表结构

(此处要列出所有表的结构定义)

五.系统实现

1.数据库及其基本表的建立(周冬建)

数据库的建立用企业管理器,基本表的建立用T-SQL语言:

数据库名称为:SM_System

建立数据库的T-SQL代码如下:

Create database SM_System

On (name=sm_system_data, filename=’e:\阴文斌_田巍_周冬建\ sm_system_data.mdf)

Log on (name=sm_system_log, filename=’e:\阴文斌_田巍_周冬建\ sm_system_log. lmf)

建立基本表的T-SQL代码如下:

use SM_System

create 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,

成绩 smallint)

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(‘3006201101’,’李红’,’女’,’汉族’,’1985-05-12’,’河北省保定’,’120106************’,’24-401’,’201’,’机械制造’)

写出每个数据表数据的输入命令

2.创建索引(略)

3.创建视图(略)

相关文档
最新文档