数据库设计报告说明Word格式.docx
《数据库设计报告说明Word格式.docx》由会员分享,可在线阅读,更多相关《数据库设计报告说明Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
图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教学计划信息
班级号+课程编号+开课学年+开课学期
3
学生课程选择数据
P3.2
S5学生选课信息
课程编号+年号+学期号
4
选课信息查询
教务员
P3.3
班级号+课程号+学年+学期
(2)数据存储
表2P3中数据存储的描述
数据文件
文件组成
关键标识
组织
全部
按开课学年,学期,班级降序
S3学生选课信息
学号+课程编号+开课学年+开课学期
S5课程数据清单
课程编号+课程名称+课程说明
课程编号
课程编号排序
(3)处理过程
表3P3中处理过程的描述
处理过程
编号
输入
输出
处理逻辑
查询教学计划
P3.1
学生选课查询请求+教学计划数据
针对的教学计划
针对选课请求进行查询
选课信息录入
根据学生对应的教学计划选择课程
选课信息查询+选课数据
没经确认的选课
根据班级和课程号检查对应的未确认的选课清单清单
选课信息确认
P3.4
选课审核+没经确认的选课
经确认的选课信息
选择选课清单进行确认
(4)数据项
表4P3中数据项的说明
数据项
数据对象说明
数据构成
学号
1{英文|数字}10
入学年号+班级序号+顺序号
选课时间
4{数字}-2{数字}-2{数字}
年+月+日
课程名称
1{汉字|英文|数字}20
班级号
1{英文|数字}6
5
教师编号
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,则相连的每个实体型的键均是该关系模式的侯选键。
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
Notnull
Ssex
性别
nchar
男、女(M/F)
Sbirth
出生年月
datetime
Clnum
varchar
所在班级编号,外键Classes.Clnum
Email
电子邮件
40
支持中文邮箱
Passwd
密码
20
密码,可以是数字英文和符号等
Status
状态
表示在校或毕业或转学等
表7教师基本信息表Teacher字段信息列表
Tnum
Tname
教师姓名
Tsex
Title
职称
教授、副教授…
Tphone
联系电话
15
Tbirth
Dnum
系编号
外键Depart.Dnum
表8系基本信息表Depart字段信息列表
含义
主键
Dname
系名称
Director
系主任
外键Teacher.Tnum
表9班级信息表Classes字段信息列表
班级编号
Cname
班级名称
Desscription
班级说明
100
如专业,本专科
外键Depart.Dnum
表10课程基本信息Course字段信息列表
Cnum
Credit
学分
numeric
3,1
Period
课时
int
表11学生选课信息表StuCourse字段信息列表
外建Student.Snum
外建Course.Cnum
外建Teacher.Tnum
Ynum
开课年度
2008
Term
1|2
Grade
成绩
4,1
{0…100}注意考查课的数字化
CAuditor
选课审核者
直接取其姓名
Gauditor
成绩审核者
表12教学计划信息表Schedule字段信息列表
外建Classes.Clnum
如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)统计某个某个班级的学分信息
……