您的当前位置:首页正文

数据库电子文档

2020-08-11 来源:步旅网
学生学籍管理系统课程设计(Server 2005)

一、 建立关系模式

1、根据对学生学籍管理的实际需求,可确认在系统中存在三个实体即:学生、课程、教师。 2、对学生、课程、教师三个实体间的相互联系分析可得:

学生

课程 任课 教师 学习 授课 教师—学生—课程三个实体的基本E-R图

在对以系为教学主体的专科三年制学生学藉管理系统分析可得出  教师的授课需要有分专业的教学计划和教师学期任课计划;  学生每学期学完一门课程结束时需得到学习该门课程的成绩;  学生是独立实体班级所属成员,同理可推出专业、系的实体存在。 上述基本E-R图可扩展为: 学习 授课 系部 所属 专业 所属 班级 所属 学生 课程成绩表 系部 所属 专业 所属 课程 任课 教师 专业三年教学计划 所属 教师学期任课表 系部 出生日期 所属 专业 系部 所属 所属 班级 所属 成绩注册号 入学时间 性别 姓名 学号 班级代码 专业代码 学分 成绩 课程号 学号 教师编号 专业代码 课程类型 学期 专业 所属 课程号 学生 系部代码 课程成绩表 成绩 学号 授课 学习 职务 课程号 教师编号 姓名 教师编号 备注 性别 出生日期 系部代码 学历 职称 所学专业 学分 课程号 课程 所属 专业三年教学计划 课程名 学分 任课 课程号 教师 教师学期任课表 专业代码 课程类型 开课学期 学分 教师编号 课程号 专业代码 学期 学生人数 3、根据E-R图,可转换为九个关系模式

 系部 (系部代码,系部名称)

 专业 (专业代码,专业名称, 系部代码)

 班级 (班级代码 ,班级名称, 专业代码,系部代码,备注)  学生 (学号,姓名,性别,出生日期,入学时间,班级代码,专业代码,

系部代码)

 课程 (课程编号,课程名称,学分)

 教师 (教师编号,教师姓名,性别,出生日期,学历,所学专业,职务,

职称,系部代码,备注)

 教学计划(课程编号,专业代码,课程类型,开课学期,学分)  教师任课(教师编号,课程编号,专业代码,开课学期)

 成绩注册(成绩注册编码,学号,课程编号,教师编号,专业代码,课程类型,开课学期,成绩,学分)

4、由关系模式转换为表结构

“系部”表 (Department)

字段名称 系部代码 departId 系部名称departName

“专业”表 (Speciality)

字段名称 专业代码specId 专业名称specName 系部代码departId “班级”表 (Class)

字段名称 班级代码 classId 班级名称 calssName 专业代码 specId 系部代码 departId 数据类型 char varchar char char 字段长度 8 30 10 10 是否为空 否 是 是 是 约束 主键 外键 外键 数据类型 char varchar char 字段长度 4 30 2 是否为空 否 否 是 约束 主键 外键 数据类型 字段长度 char 2 varchar 30 是否为空 约束 否 主键 否 备注 remark

varchar 50 是 “学生信息”表 (StudentInfo)

字段名称 学号 stuId 姓名 stuName 性别 stuSex 出生日期 birthDay 入学时间 Education time 班级代码 classId 专业代码 specId 系部代码 departId

“课程”表 (Course)

字段名称 课程编号 CoursId 课程名称 CoursName 学分

“教师”表 (Teacher)

字段名称 教师编号 教师姓名 性别 出生日期 学历 所学专业 职务 职称 系部代码 备注 数据类型 char char char datetime char char char char char varchar 字段长度 14 8 2 10 14 14 14 10 10 50 是否为空 否 否 是 是 是 是 是 是 是 是 约束 主键 外键 数据类型 char varchar smallint 字段长度 10 30 是否为空 否 否 是 约束 主键 数据类型 char char char datetime datetime char char char 字段长度 14 8 2 10 10 10 是否为空 约束 否 是 是 是 是 是 是 是 主键 外键 外键 外键

“教学计划”表 (Teaching program)

字段名称 课程编号 专业代码 课程类型 开课学期 学分

“教师任课”表(Teacher Timetable )

字段名称 教师编号 课程编号 专业代码 开课学期 “成绩注册”表 (Score register)

字段名称 成绩注册编码 学号 课程编号 教师编号 专业代码 课程类型 开课学期 成绩 学分

数据类型 Int char char char char char tinyint tinyint tinyint 字段长度 14 10 14 10 8 是否为空 否 否 否 否 否 是 是 是 是 约束 主键 外键 外键 外键 外键 数据类型 char char char tinyint 字段长度 14 10 10 是否为空 否 否 否 是 约束 外键 外键 外键 数据类型 char char char tinyint tinyint 字段长度 10 10 8 是否为空 否 否 是 是 是 约束 外键 二、 建立脚本、存储过程、触发器

1、 用脚本建立 “学生学籍管理系统”的数据库---student,和第一个表系部表---department;

在E盘根下创建SQLData目录,用下面的脚本创建student数据库和

department表

SQLStudent.sql

--建立student数据库

create Database [student] on primary

(Name=N'student', FileName=N'e:\\SQLdata\\student.mdf', size=5MB,

filegrowth=1024KB) log on

(Name=N'student_log', FileName=N'e:\\SQLdata\\student_log.ldf', size=1024kb, filegrowth=10%) go

--创建系部表

--create table department(

--departid char(2)constraint pk_departid primary key, --departname varchar(30) not null, --departhead varchar(15))

2、 在数据库---student中用存储过程建立其他剩余的表,并添加表中的数据;

 根据由关系模式转换的各表结构,用下面的存储过程依次建表

(1)、将存储过程建在student数据库中。 (2)、依次建立各表

--建立专业表

--create table Speciality(

-- specId char(4)constraint pk_specId primary Key, -- specName varchar(30) not NULL,

-- departid char(2) references department(departid))

--创班级表

--create table Class(

-- classId char(10) constraint pk_classId primary key, -- calssName varchar(30), -- specid char(10), -- departid char(2), -- remark varchar(50))

--建立学生信息表

--create table studentinfo(

--sno char(14) constraint pk_sno primary key, --sname char(8) null, --ssex char(2),

--birthday datetime,

--educationtime datetime,

--classId char(10) references Class(classId), --specId char(4)references Speciality (specId),

--departId char(2) references department (departid))

--建立课程信息表

--create table course(

--coursId varchar(10)constraint pk_coursId primary key, --coursName varchar(15) not null, --courefen smallint )

--创建教师表

--create table teacher(

--tno char(14) constraint pk_tno primary key, --tname char(8), --tsex char(2),

--birthday datetime,

--educationbackground char(10), --professional char(14), --duties char(14), --profess char(10),

--departid char(2) references department(departid), --rmark varchar(50))

--创建教学计划表

create table teachingprogram(

classId char(10) not null references Class(classId), specialityId char(4), coursetype char(8), courseterm tinyint , credit tinyint)

--创建教师任课表

--create table TeacherTimetable(

-- tno char(14)not null references teacher (tno),

-- coursId varchar(10) not null references course(coursId), -- specId char(4) not null references Speciality(specId), -- courseterm tinyint --)

--创建成绩注册表

-- create table Scoreregister (

-- scoreregisterId int not null constraint pk_scoreregisterId primary key, -- sno char(14) not null references studentinfo(sno),

-- coursId varchar(10) not null references course(coursId), -- tno char(14)not null references teacher (tno),

-- specId char(4) not null references Speciality(specId), -- courstype char(8), -- openterm tinyint , -- score tinyint , -- xuefen tinyint --) end

3、 在数据库---student中用存储过程创建“学生成绩表”的视图。 4、 在“学生基本信息”表中创建update触发器,当修改一个学生的姓名时,update触发器可调用显示“学生成绩表”视图的内容。

因篇幅问题不能全部显示,请点此查看更多更全内容