1、学籍数据库设计目 录1一需求分析 .2二概念结构设计 .2三关系模式 .3四物理设计 .4五系统实现 .51.数据库及其基本表的建立(附图) .52.基于基本表的查询过程 .7学生信息管理系统数据库设计与实现系统名称:学生信息管理系统一需求分析(1) 该“学生管理系统”只是对数据库应用技术的一个样本数据库的实例,重在对数据库一些方法的熟悉与掌握,其中包括从数据库的概念模型到 ER 图2学生学号# 姓名 性别课程课程编号#课程名学分数学时数教师教师编号# 姓名性别的绘制,再到数据库模式的建立(即为数据库及其基本表的建立) ,而后数据的录入(在此从略) ,最后完成一些简单的关系运算表达式的表达和相
2、关的Select 查询语句的使用。(2)系统结构简述:本系统包括六个实体:学生;课程;教师;学院实体之间的关系转换为其他四个表:选修;代课(都是多对多关系的转换)实体“学院”与“学生”之间一对多的关系转换到表“学生”中注:各个基本表中关键字已在关系模式中说明(3)该数据库需要进行如下数据处理: a. 要查询所有学生的个人信息:学号,姓名,性别,学院编号,所在专业b. 学生要查询本学期所开课程详细情况(成绩除外) ,并按“课程类型”分组输入:学号输出:学号,姓名,课程名,学分数,学时数c. 某位教师想查询自己本学期所代的课程及其上课情况:输入:教师姓名输出:教师编号,姓名,性别,课程名,上课教室
3、,上课时间二概念结构设计图 1.总 ER 图图 2.课程部分 ER 图学院学院编号# 名称学院类型院长编号图 3.学院部分 ER 图学生 选修 课程成绩m n教师代课mn教室时间属于学院 k1所在专业3三关系模式系统中的实体有:学生;课程;教师;学院;社团;活动关系模式如下:学生(学号,姓名,性别,学院编号,所在专业)说明:属性中“学院编号”和“所在专业”是一对多关系“所属院系”的转换课程(课程编号,课程名,学分数,学时数)选修(学号,课程编号,成绩)教师(教师编号,姓名,性别)代课(课程编号,教师编号,上课教室,上课时间)学院(学院编号,名称,学院类型,院长编号)说明:“学院类型”可以看作是
4、“工科”或者“理科”四物理设计表 1.学生表结构字段名 类型 特殊属性学号 char(20) 主健姓名 char(20) not null性别 char(20) not null学院编号 char(20) not null所在专业 char(20) not null表 2.课程字段名 类型 特殊属性课程编号 char(20) 主键课程名 Char(20) not null学分数 Int not null学时数 Int not null表 3. 教师字段名 类型 特殊属性教师编号 char(20) 主键姓名 Char(20) not null性别 Char(20) not null表 4. 学院
5、字段名 类型 特殊属性学院编号 char(20) 主键院长编号 char(20)) not null名称 Char(20) not null学院类型 Char(20) not null表 5.选修字段名 类型 特殊属性4学号 char(20) 主键课程编号 char(20) 主键成绩 Int not null表 6. 代课字段名 类型 特殊属性教师编号 char(20) 主键课程编号 char(20) 主键上课教室 char(20) not null上课时间 char(20) not null创建视图:因为我把选修关系和代课关系重新创建了两个表,所以不需要再创建视图了。建立索引:再学生表上建立
6、聚簇索引Create cluster index st on 学生(学号)五系统实现1.数据库及其基本表的建立(附图)数据库的建立用企业管理器,基本表的建立用 SQL 语言:数据库名称为:SM_System建立数据库的 SQL 代码如下:Create database SM_System 建立基本表的 SQL 代码如下:create table 学生(学号 char(20) primary key,姓名 char(20) not null,性别 char(20) not null,学院编号 char(20) not null,所在专业 char(20) not null)create tabl
7、e 课程 (课程编号 char(20) primary key,5课程名 char(20) not null,课程类型 char(20) not null,学分数 int,学时数 int)create table 选修(学号 char(20) not null,课程编号 char(20) not null,成绩 int,Primary key (学号, 课程编号)create table 教师(教师编号 char(20) primary key,姓名 char(20) not null,性别 char(20) not null)create table 代课(课程编号 char(20) not
8、 null,教师编号 char(20) not null,上课教室 char(20) not null,上课时间 char(20) not null,Primary key (教师编号, 课程编号)create table 学院(学院编号 char(20) primary key,名称 char(20) not null,学院类型 char(20),院长编号 char(20))用企业管理器输入数据:62.基于基本表的查询过程(1)要查询所有学生的个人信息学号,姓名,性别,学院编号,所在专业Select *From 学生(2)学生要查询本学期所开课程详细情况(成绩除外)输入:学号输出:学号,姓名,课程名,学分数,学时数设输入的学号的数值为 xSelect S.学号,姓名,课程名,学分数,学时数From 学生 7Where S.学号X.学号 and X.课程编号C.课程编号 and S.学号x(3)某位教师想查询自己本学期所代的课程及其上课情况:输入:教师姓名输出:教师编号,姓名,性别,课程名,上课教室,上课时间设输入的教师姓名为 xSelect J.教师编号,姓名,性别,课程名,上课教室,上课时间From 教师 Where J.教师编号=D.教师编号 and D.课程编号=C. 课程编号 and 姓名=x