SQL实训报告学员信息管理系统设计报告.docx
《SQL实训报告学员信息管理系统设计报告.docx》由会员分享,可在线阅读,更多相关《SQL实训报告学员信息管理系统设计报告.docx(11页珍藏版)》请在冰豆网上搜索。
SQL实训报告学员信息管理系统设计报告
学员信息管理系统
详细设计说明书(SQL部分)
姓 名:
所属院系:
管理工程系
专 业:
电子商务
年 级:
2009级
学 号:
指导教师:
何冬梅
1. 概述……………………………………………………………………………………………3
2. 系统分析……………………………………………………………………………………...3
2.1. 需求分析 3
2.2. E-R图 4
2.3. 关系模型 4
2.4. 约束关系 5
3. 数据库--表…………………………………………………………………………………..5
3.1. 数据库名称 5
3.2. 数据库创建的代码 6
3.3. 表设计概述 6
3.4. 表student 6
3.5. 表teacher 8
3.6. 表course 9
3.7. 表score 10
4. 查询、视图、索引………………………………………………………………………….11
4.1. 查询表“student”的学员姓名和生源地 11
4.2. 通过多表链接查询学员的学号,姓名,所属院系和考试成绩 12
4.3. 通过子查询表“score”的学员学号,课号,考试成绩和平时成绩的详细记录 11
4.4. 通过相关查询表“score”的学员学号,姓名和考试总成绩情况 13
4.5. 视图vw_1_1 13
4.6. 视图vw_1_2 14
4.7. 索引sp_helpindex 15
5. 存储过程、触发器………………………………………………………………………….16
5.1 存储过程 16
5.2 触发器ins-cqk 17
6. 完整性……………………………………………………………………………………….18
6.1 实体完整性 18
6.2 参照完整性 19
7.报告小结…………………………………………………………………………………. 20
8.参考文献………………………………………………………………………………… 20
1.概述
1.目的
本文为教学案例项目SQLServer功能规范说明书。
本说明书将:
●描述数据库设计的目的
●说明数据库设计中的主要组成部分
●说明数据库设计中涵盖的教学知识要点
2.内容
本文档主要内容包括对数据库设计结构的总体描述,对数据库中各种对象的描述(包括对象的名称、对象的属性、对象和其他对象的直接关系)。
本文档中包含对以下数据库内容的描述:
●数据表
●查询
●视图
●存储过程
●索引
●触发器
●约束
在数据库主要对象之外,本文还将描述数据库安全性设置、数据库属性设置和数据库备份策略,为数据库管理员维护数据库安全稳定地运行提供参考。
2.系统分析
2.1需求分析
在学员信息管理过程中,“学员”通过“课程”、“成绩”与“教师”发生业务联系。
通过对数据库用户(学员信息表)的调查,对用户的需求进行分析得知:
(1)、学号是指某个学员的数字代号,每个学员只能有一个学号;
(2)、课号是每个课程的代号,学员可修多个课程,每个课程只能有一个课号。
(3)、教工号是每个教师的代号,每个教师只能有一个教工号。
(4)、学员信息分为:
学号、姓名、性别、出生日期、来源地、联系方式和所属院校;
(5)、课程信息分为:
课号、课名、类型和学分。
(6)、成绩信息分为:
学号、课号、平时成绩和考试成绩。
(7)、教师信息分为:
教工号、姓名、性别、年龄和职称。
n
1
2.2E-R图
2.3关系模型
由概念模型向关系模型的转换规则知,关系模型中包括8个关系:
实体集“学院”、“系”、“教师”、“教室”、“课程”、“学生”和“教材”分别形成关系,实体的码就是关系的码。
另外,考虑到储户的信息项较多,而且有一部分信息(如:
学号、姓名、性别、出生日期、来源地、所属院校等)相对固定,其余信息(如:
联系方式、平时成绩、考试成绩等)经常变化。
因此,可以将实体的信息分割为学员基本信息和学员动态信息两个关系,两个关系的码均为账号。
这样更利于数据的存储和维护,还可以提高数据的安全性。
学员信息:
(学号、姓名、性别、出生日期、来源地、联系方式、所属院校);
课程信息:
(课号、课名、类型、学分)。
成绩信息:
(学号、课号、考试成绩、平时成绩)。
教师信息:
(教工号、姓名、性别、年龄、职称)。
关系结构描述
表给出的学员管理系统的关系结构描述,实际上是给出了该系统数据库模式的型。
学员信息管理系统的关系结构描述
关系名称
属性名称
数据类型
宽度
学员信息
学号
字符串
4
姓名
字符串
20
性别
字符串
2
出生日期
日期时间型
来源地
字串符
50
联系方式1
字串符
12
联系方式2
字串符
12
所属院校
字串符
20
教师信息
教工号
字串符
6
姓名
字串符
20
性别
字串符
2
年龄
数字
职称
字串符
8
地址
字串符
50
课程信息
课号
字串符
3
教工号
字串符
6
课名
字串符
30
类型
字串符
10
学分
数字
学员成绩
学号
字串符
4
课号
字串符
3
考试成绩
数字
(9,2)
平均成绩
数字
(9,2)
2.4约束关系
实体完整性
实体“学生”的主码“学号”不能为空;实体“课程”的主码“课号”不能为空。
关系“学员成绩”中的主码“学号”和“课号”不能为空。
参照完整性
参照关系“学员成绩”的属性“学号”和”课号,分别是被参照关系“学生”和“课程”的外码。
因此,参照关系“学员成绩”的属性“学号”的值必须是被参照关系“学员”中某一元组的“学号”的值。
同样,参照关系“学员成绩”的属性“课号”的值必须是被参照关系“课程”中某一元组的“课号”的值。
3.数据库--表
3.1.数据库名称
数据库的名称设为bankDB。
3.2.数据库创建的代码
CREATEDATABASE[students]ON
PRIMARY
(NAME=N'student',FILENAME=N'E:
\student\student.mdf',
SIZE=5MB,
MAXSIZE=10MB,
FILEGROWTH=20%),
FILEGROUPstufgrp
(NAME=N'student',FILENAME=N'E:
\student\student.ndf',
SIZE=1MB,
MAXSIZE=5MB,
FILEGROWTH=10%)
LOGON
(NAME=N'student_log',
FILENAME=N'E:
\student\student_log.ldf',
SIZE=5MB,
MAXSIZE=UNLIMITED,
FILEGROWTH=2MB)
3.3.表设计概述
根据教学案例功能,数据库将以存取款的变化为中心存储相关数据,配合SQLServer数据库系统中提供的数据管理,实现学员信息管理等功能。
数据库设计将以学员学号的关联为基础,连接多张相关表实现对以下关系的支持:
●学员信息表
●教师信息表
●课程信息表
●成绩信息表
3.4.表student
概述
表student用于记录学员基本信息,记录学员的学号,姓名等信息,表student通过字段学号与表score关联。
表定义
表student定义如下:
名称
数据库名
类型
可否为空
说明
备注
学号
学号
char4
否
学员学号
主键
姓名
姓名
char20
否
学员姓名
性别
性别
char2
否
学员性别
出生日期
出生日期
datetime
是
学员出生日期
来源地
来源地
char50
是
学员来源地
联系方式
联系方式1
char12
是
学员联系方式
联系方式2
char12
是
所属院系
所属院系
char20
是
学员所在院系
主键
表student的主键为学号,类型为char,用于与表score中的学号字段关联。
外键
无
约束
无
索引
无
USEstudent
GO
createtablestudent
(
学号char(4)notnullprimarykey,
姓名char(20)notnull,
性别char
(2)notnull,
出生日期smalldatetime,
来源地varchar(50),
联系方式char(12),
联系方式char(12),
所属院系char(20)
)
GO
3.5.表teacher
表定义
表teacher定义如下:
名称
数据库名
类型
可否为空
说明
备注
教工号
教工号
char6
否
教师编号
主键
姓名
姓名
char20
否
教师姓名
性别
性别
char2
否
教师性别
年龄
年龄
char3
是
教师年龄
职称
职称
char8
是
教师职称等级
地址
地址
char50
否
教师现住址
唯一约束
主键
表teacher的主键为教工号,类型为char,用于与表course中的教工号字段关联
外键
无
约束
表teacher中的地址字段取值为唯一。
索引
无
表创建的实现代码
usestudent
GO
createtableteacher(
教工号 char(6) NOTNULL,
姓名 char(20)NOTNULL,
性别 char
(2)NOTNULL,
年龄 int,
职称 char(8),
地址 char(18)UNIQUE,
primarykey(教工号)
GO
3.6.);表course
概述
表course用于记录教师担任课程的动态信息。
每个教师所担任课程,在该表中都对应一条独立记录。
该表通过与teacher和score表关联可以确定教师担任课程和学员所修课程的情况。
表定义
表course定义如下:
名称
数据库名
类型
可否为空
说明
备注
课号
课号
char3
否
课程编号
主键
教工号
教工号
char6
否
任课教师编号
外键
课名
课名
char30
否
课程名称
类型
类型
char10
否
课程类型
学分
学分
int
否
课程的学分
主键