数据库设计报告说明.docx
《数据库设计报告说明.docx》由会员分享,可在线阅读,更多相关《数据库设计报告说明.docx(22页珍藏版)》请在冰豆网上搜索。
数据库设计报告说明
1.需求分析
2.概念结构设计
3.逻辑结构设计
4.物理结构设计
5.数据库的建立和测试
6.数据库运行和维护
《学生选课管理系统》数据库设计
班级:
学号:
姓名:
一.需求分析
1.1总体需求简介
需求分析阶段是数据库应用系统开发的最重要阶段。
需求分析要求应用系统的开发人员按照系统的思想,根据收集的资料,对系统目标进行分析,对业务的信息需求、功能需求以及管理中存在的问题等进行分析,抽取本质的、整体的需求,为设计一个结构良好的数据库应用系统的逻辑模型奠定坚实的基础。
高等学校的学生选课管理系统,在不同的学校会有不同的特点,因为作为教务工作部分它和学校本身的行政制度有关。
作为数据库设计和应用开发的运用对象,对业务进行适度的简化,突出比较核心的成分,如院系算作一个级别的概念而且直接管理班(跳过专业一级的设置),学生的免修重修等情况处理、教师的管理没有细化等。
1.2用户总体业务构造
学生选课管理业务,包括4个主要部分:
学生的学籍及成绩管理、制定教学计划、学生选课管理以及教学调度。
各部分具体的内容:
(1)学籍及成绩管理包括:
各院系的教务员完成学生学籍注册、毕业、转学等处理,各授课教师完成所讲授课成绩的录入,然后教务员进行学生成绩的审核认可。
(2)制定教学计划包括:
由教务部门完成指导性教学计划、培养方案的确定,开设课程的注册和调整。
(3)学生选课包括:
学生根据开设课程和培养计划(和自己的状况)选择自己本学期所选修课程,教务员对学生所选修课程的确认处理。
(注意:
一般的必修课程是由教务员统一处理,只有辅修的课程才经过学生的选择过程)
(4)执行教学调度包括:
教务员根据本学期所开设的课程、教师上课的情况以及学生选课情况完成排课、调课等。
1.3其它要求
如安全性,系统环境要求(根据现有的设备情况进行系统运行)等,这些不是本章的核心内容,所以就不再进一步叙述。
1.4系统功能设想
这里的功能划分,是根据第一阶段需求调查基础上进行的初步划分。
随着需求调查的深入,功能模块随着对需求了解的明确得到调整。
教务管理业务的4个主要部分,可以将系统应用程序划分为对应得4个子模块:
包括学籍及成绩管理子系统、教学计划管理子系统、学生选课管理子系统以及教学调度子系统。
根据各业务子系统所包括业务内容,还可以将各个子系统继续细化划分为更小的功能模块。
划分的准则主要遵循模块的内聚性要求和模块间的低聚合性。
如图所示表示一个教务管理系统功能模块结构图。
图1选课管理系统功能结构图
1.5业务流程分析
一个简化的选课系统业务流程如图2所示:
图2选课管理系统业务流程
1.6需求描述
1.6.1数据流图
数据流图是通过系列符号及其组合来描述系统功能的输入、输出、处理或加工构造。
数据流图中使用的符号在各种书籍和资料上表达不尽相同,目前许多常用的一些流行的数据库辅助设计工具如MicrosoftVisio、SybasePowerDesigner、OracleDesigner、RationalRose、Erwin等符号都不统一。
图3Gane-Sarson模板中数据流图的基本元素
注意:
DFD表示数据被加工或处理的过程,箭头只是表示数据流动的方向,不能有分支、循环的情况。
数据流图命名规则之一:
数据流图的中加工、处理过程一般采用动词及其短语;数据源点或终点、数据存储(数据文件或表单形式)、数据流(一项或多项数据)等一般为名词或名词短语。
数据流图命名规则之二:
流图中的命令所使用的语言要基本上反映实际的情况,在整个DFD中必须要唯一,尽量避免含有像加工、处理、存储这样的元名称。
(1)系统的全局数据流图
图4简化的选课管理系统0层数据流图
(2)系统局部数据流图
图5P1的1层数据流图:
制定教学计划
图6P3的1层数据流图:
选课管理
1.6.2数据字典
数据流图表达了数据与处理的关系,数据流图作为直观的了解系统运行机理的手段,并没有具体描述各类数据的细节,只有通过数据字典进一步细化才能对系统的需求得到具体而确切的了解。
数据字典用来说明数据流图中出现的所有元素的详细的定义和描述,包括数据流、加工处理、数据存储、数据的起点和终点或外部实体等。
数据字典包括的项目有:
数据项、数据结构、数据流、数据存储、加工逻辑和外部实体。
可使用一些符号来表示数据结构、数据流和数据存储的组成。
数据字典项目一般较多,可选择重要的几个对象加以描述。
(1)数据流
表1P3中数据流的描述
序号
数据流名
来源
流向
组成
说明
1
(学生)教学计划查询请求
需要选课的学生
P3.1
班级号或学号
注意查询类别的区别
2
教学计划数据
S2教学计划信息
P3.1
班级号+课程编号+开课学年+开课学期
3
学生课程选择数据
P3.2
S5学生选课信息
课程编号+年号+学期号
4
选课信息查询
教务员
P3.3
班级号+课程号+学年+学期
(2)数据存储
表2P3中数据存储的描述
序号
数据文件
文件组成
关键标识
组织
1
S2教学计划信息
班级号+课程编号+开课学年+开课学期
全部
按开课学年,学期,班级降序
2
S3学生选课信息
学号+课程编号+开课学年+开课学期
全部
按开课学年,学期,班级降序
3
S5课程数据清单
课程编号+课程名称+课程说明
课程编号
课程编号排序
(3)处理过程
表3P3中处理过程的描述
序号
处理过程
编号
输入
输出
处理逻辑
1
查询教学计划
P3.1
学生选课查询请求+教学计划数据
针对的教学计划
针对选课请求进行查询
2
选课信息录入
P3.2
针对的教学计划
学生课程选择数据
根据学生对应的教学计划选择课程
3
选课信息查询
P3.3
选课信息查询+选课数据
没经确认的选课
根据班级和课程号检查对应的未确认的选课清单清单
4
选课信息确认
P3.4
选课审核+没经确认的选课
经确认的选课信息
选择选课清单进行确认
(4)数据项
表4P3中数据项的说明
序号
数据项
数据对象说明
数据构成
1
学号
1{英文|数字}10
入学年号+班级序号+顺序号
2
选课时间
4{数字}-2{数字}-2{数字}
年+月+日
3
课程名称
1{汉字|英文|数字}20
4
班级号
1{英文|数字}6
5
教师编号
1{英文|数字}10
6
开课学年
4{数字}
7
开课学期
{1|2}
8
课程说明
0{汉字|英文|数字}100
英文=[‘a’…’z’|’A’…’Z’]
数字=[‘0’…’9’]
二、概念设计
上述的数据流图和数据字典共同构成了对用户需求的表达,它们是系统分析员(数据库管理员)在需求调查过程中和用户反复交互得到的。
建设系统实际要处理的数据基本上已经在数据流图中得到体现,整个设计过程的后续步骤提供基础和依据。
概念设计就是通过对需求分析阶段所得到的信息需求进行综合、归纳与抽象,形成一个独立于具体数据库管理系统的概念模型,主要的手段为ER图。
在概念设计阶段,主要采用的设计手段目前还是实体联系模型(E-RModel)。
绘制E-R图的关键是确定E-R图的各种结构,包括实体、属性和联系。
大部分的流行建模工具(PowerDesigner、OracleDesigner、ERwin等)也都包含了对E-R设计手段的支持。
2.1实体
要建立系统的E-R模型的描述,需进一步从数据流图和数据字典中提取系统所有的实体及其属性。
这种提出实体的指导原则如下:
1属性必须是不可分的数据项,即属性中不能包含其它的属性或实体
2E-R图中的关联必须是实体之间的关联,属性不能和其它实体之间有关联
由前面分析得到的数据流图和数据字典,可以抽象得到实体主要有5个:
学生、教师、课程、院系、班级。
(1)学生实体属性有:
学号、姓名、出生年月、性别、电话、系编号。
(2)教师实体属性有:
教师编号、教师姓名、性别、职称、出生年月、电话、电子邮件。
(3)课程实体属性有:
课程编号、课程名称、课程学时、课程学分。
(4)院系实体属性有:
系编号、系名称、负责人。
(5)班级实体属性有:
班级编号、班级名称。
2.2系统局部E-R图
图7“学生-课程”选课关系
图8“教师-课程”实体间的关系
图9“学生-班级”的组成关系
图10“班级-系”的属于关系
图11“教师-系”实体间的关系
2.3系统全局E-R图
图12选课管理系统的全局ER图
注:
许多商业软件支持建立概念模型,如Sybase公司的PowerDesigner。
三、逻辑设计
逻辑设计就是把E-R图转换成关系模式,并对其进行优化。
3.1E-R图向关系模型的转换
原则:
(1)一个实体型转换为一个关系模型,实体的属性就是关系的属性,实体的键就是关系的键;
(2)一个联系转换为一个关系模式,和该联系相连的每个实体型的键及联系的属性都转换为关系的属性。
这个关系的键分为以下三种不同的情况:
若联系为1:
1,则相连的每个实体型的键均是该关系模式的侯选键。
若联系为1:
n,则联系对应的关系模式的键取n端实体型的键。
若联系为m:
n,则联系对应的联模式的键为参加联系的诸实体型的键的组合。
例如:
教师(教师编号,教师姓名,性别,职称,电话,系编号)
课程(课程编号,课程名称,课程学分,课时)
讲授(教师编号,课程编号,课程编号,开课年度,开课学期)
系(系编号、系名称、系主任)
班级(班级编号,班级名称,系编号)
学生(学号,姓名,性别,出生年月,电话,班级编号)
学生选课(课程编号,学号,教师编号,开课年度,开课学期,成绩)
…
3.2关系模式的规范及调整
…
3.3各个数据表的表结构设计
在上述经由E-R模型得到关系模式并且得到适当的调整后,我们可以结合在需求表述中数据字典包含的数据项信息,得到数据库的表结构(具体设计各个数据表的表结构,包括表名,表中各列的字段名、数据类型、数据长度和表的主键和外键;还要考虑应该建立哪些索引以及索引的类型)。
需要指出的是,考虑到系统的统一兼顾如对数据库管理员和后续软件开发中对数据库管理以及编程引用的便利,表名和字段名的命名应该由表名的英文含义的词语为主或以其缩写字母构成;同时要为各个表名和字段名作出完整的中文文档说明。
表5数据库中表清单
数据库表名
关系模式名称
备注
Teacher
教师
教师信息表
Student
学生
学生学籍信息表
Course
课程
课程基本信息表
Class
班级
班级基本对照表
StuCourse
学生选课
选课-授课合成信息表
Department
系
院系基本信息表
Schedule
教学计划
教学计划安排表
表6学生信息表Student字段信息列表
字段名称
含义属性
类型
长度
备注
Snum
学号
char
10
主键,也可以作为登录标识
Sname
学生姓名
nvarchar
6
Notnull
Ssex
性别
nchar
2
男、女(M/F)
Sbirth
出生年月
datetime
Clnum
班级号
varchar
6
所在班级编号,外键Classes.Clnum
Email
电子邮件
nvarchar
40
支持中文邮箱
Passwd
密码
varchar
20
密码,可以是数字英文和符号等
Status
状态
nvarchar
8
表示在校或毕业或转学等
表7教师基本信息表Teacher字段信息列表
字段名称
含义属性
类型
长度
备注
Tnum
教师编号
char
10
主键,也可以作为登录标识
Tname
教师姓名
nvarchar
6
Notnull
Tsex
性别
nchar
2
男、女(M/F)
Title
职称
nvarchar
8
教授、副教授…
Tphone
联系电话
char
15
Email
电子邮件
nvarchar
40
支持中文邮箱
Tbirth
出生年月
datetime
Passwd
密码
varchar
20
密码,可以是数字英文和符号等
Dnum
系编号
varchar
6
外键Depart.Dnum
表8系基本信息表Depart字段信息列表
字段名称
含义
类型
长度
备注
Dnum
系编号
varchar
6
主键
Dname
系名称
nvarchar
10
Notnull
Director
系主任
varchar
10
外键Teacher.Tnum
表9班级信息表Classes字段信息列表
字段名称
含义
类型
长度
备注
Clnum
班级编号
varchar
6
主键
Cname
班级名称
nvarchar
10
Notnull
Desscription
班级说明
nvarchar
100
如专业,本专科
Dnum
系编号
varchar
6
外键Depart.Dnum
表10课程基本信息Course字段信息列表
字段名称
含义
类型
长度
备注
Cnum
课程编号
varchar
10
主键
Cname
课程名称
varchar
20
Notnull
Credit
学分
numeric
3,1
Period
课时
int
3
表11学生选课信息表StuCourse字段信息列表
字段名称
含义
类型
长度
备注
Snum
学号
varchar
10
外建Student.Snum
Cnum
课程编号
varchar
10
外建Course.Cnum
Tnum
教师编号
varchar
10
外建Teacher.Tnum
Ynum
开课年度
int
4
例如:
2008
Term
开课学期
int
1
1|2
Grade
成绩
numeric
4,1
{0…100}注意考查课的数字化
CAuditor
选课审核者
nvarchar
6
直接取其姓名
Gauditor
成绩审核者
nvarchar
6
直接取其姓名
表12教学计划信息表Schedule字段信息列表
字段名称
含义
类型
长度
备注
Cnum
课程编号
varchar
10
外建Course.Cnum
Clnum
班级编号
varchar
6
外建Classes.Clnum
Ynum
开课年度
int
4
例如:
2008
Term
开课学期
int
1
如1|2针对一个学年只有两个学期情形
…
四、物理设计
数据库的物理设计任务,主要是将逻辑设计映射到存储介质上,利用可用的硬件和软件条件能可靠地、高效地对数据进行物理访问和维护。
存储介质及其存储模式是任何关系数据库的关键组件。
数据库的成功执行通常需要在工程的前期阶段精心设计,其中主要考虑的内容:
1使用哪种类型的磁盘硬件,如RAID(独立磁盘冗余阵列)设备;
2数据在磁盘上如何放置即数据的分配策略;
3从访问性能的角度采用适当的索引技术和设计具体的索引项;
4以及基于特定数据库有关的参数配置以使数据库很好地运行。
五、数据库的建立和测试
主要内容:
1建立数据库
CREATEDATABASE学生选课
ON
Primary
(NAME=css_Data1,FILENAME='C:
\css\data\csmain.mdf')
LOGON
(NAME=css_Log,FILENAME='F:
\css\data\cslog.ldf')
2创建数据表,并输入相关数据
--创建系基本信息表Depart
CREATETABLEDepart
(
Dnumvarchar(6)PRIMARYKEY,
Dnamenvarchar(10)notnull,
Directorvarchar(10)
)
--创建班级基本信息表Classes
CREATETABLEClasses
(
Clnumvarchar(6)PRIMARYKEY,
Clnamenvarchar(10)notnull,
Dnumvarchar(6),
Bdatedatetime,
Descriptionnvarchar(100),
ConstraintClDnumFKforeignkey(Dnum)ReferencesDepart(Dnum)
)
--创建学生基本信息表Student
CREATETABLEStudent
(
Snumvarchar(10)PRIMARYKEY,
Snamenvarchar(6)notnull,
Ssexnchar
(2),
Sbirthdatetime,
Emailnvarchar(40),
Passwdvarchar(20),
Clnumvarchar(6),
Statusnvarchar(6),--0:
正常,1:
毕业,2:
休学,3:
退学,4:
转学,5:
其它
ConstraintClnumFKforeignkey(Clnum)ReferencesClasses(Clnum),
ConstraintSSexchkCheck(Ssex='男'orSsex='女')
)
--创建课程基本信息表Course
CREATETABLECourse
(
Cnumvarchar(10)PRIMARYKEY,
Cnamenvarchar(20)notnull,
Periodint(3),
Creditnumeric(3,1)
)
…
3创建视图、索引、存储过程等(略)
六、数据库运行和维护
查询要求:
(1)查询某门课程的选课信息
(2)查询某个学生的选课信息
(3)查询某个班级的选课信息
(4)学生查询自己的课程计划
(5)统计某个某个班级的学分信息
……