大连交通大学数据库课程设计说明书论文.docx
《大连交通大学数据库课程设计说明书论文.docx》由会员分享,可在线阅读,更多相关《大连交通大学数据库课程设计说明书论文.docx(23页珍藏版)》请在冰点文库上搜索。
大连交通大学数据库课程设计说明书论文
摘要
为了更好的巩固和加强书本所学的知识,把所学的东西转化为实际应用。
我们学习了数据库应用程序的使用。
并应用了SQL语言。
对数据库的创建、修改、删除方法有了一定的了解。
通过导入表和删除表、更改表学会了对于表的一些操作。
为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。
当人们收集了大量的数据后,应该把它们保存起来进入近一步的处理,进一步的抽取有用的信息。
当年人们把数据存放在文件柜中,可现在随着社会的发展,数据量急剧增长,现在人们就借助计算机和数据库技术科学的保存大量的数据,以便能更好的利用这些数据资源。
通过图书馆管理系统的构造以及借书人的信息还有书的相关信息制成表格,输入到数据库中,使之能够进行查询、修改、删除并且与图书馆管理系统执行相同的操作。
需求分析阶段就是要研究我所做图书馆管理系统的具体分类和实施过程流图。
概念设计阶段要完成数据抽象与局部视图设计还有视图的集成。
逻辑结构设计阶段要把E-R图转化为关系模式并且把我输入的五张表结合在一起完成一个总关系表。
最后就是要运行和实施数据库。
要把查询结果与过程抓几张图
关键词:
SQLSERVER;数据库设计;图书馆管理系统
5.3安全性的实现..........................................................................................17
5.4完整性的实现..........................................................................................................17
5.5恢复技术的实现......................................................................................................18
第一章绪论
1.1课题简介
随着时代的发展,计算系软件和系统的成熟,机票如果简单方面预定成为一个影响多数人生活的问题。
而建立机票预定系统是一个很好的解决办法。
经过三年的学习,我们对计算机方面的知识有了很大的提升,本着理论联系实际的宗旨,通过学校提供的这次课程设计实践的机会,在指导教师的帮助下,历经两周时间,我自行设计一套图书馆管理系统,在下面的各章中,我将以这套图书馆管理系统信息系统为例,谈谈其开发过程和所涉及到的问题。
1.2设计目的
应用对数据库系统原理的理论学习,通过上机实践的方式将理论知识与实践更好的结合起来,巩固所学知识。
实践和巩固在课堂教学中学习的关于数据库的有关知识,熟练掌握对于给定结构的数据库的创建、基本操作、程序系统的建立和调试以及系统评价。
实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。
1.3设计内容
选择课题并且对课题的相关信息有一定的了解,对于我选的课题来说,我必须了解图书馆管理系统的构造以及借书人的信息还有书的相关信息。
通过这些信息制成表格,输入到数据库中,使之能够进行查询、修改、删除并且与图书馆管理系统执行相同的操作。
需求分析阶段就是要研究我所作的图书馆管理系统的具体分类和实施过程流图。
概念设计阶段要完成数据抽象与局部视图设计还有视图的集成。
逻辑结构设计阶段要把E-R图转化为关系模式并且把我输入的五张表结合在一起完成一个总关系表。
最后就是要运行和实施数据库。
要把查询结果与过程抓几张图。
第二章需求分析
2.1需求分析的任务
调查图书馆管理系统应用领域涉及的内容,对涉及到领域的各个应用的信息要求和操作要求进行详细分析,形成需求分析说明书。
最重要的是调查、收集信息、分析借书人信息和借书流程。
处理要求、数据的安全性与完整性要求。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。
并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。
2.2需求分析的过程
图书馆为方便管理,需开发一个图书馆管理系统。
为便于图书馆管理员的管理,管理员负责借书并且将借书人的信息,包括姓名、性别、工作单位、身份证号码、借书的书号,借书日期,输入图书馆管理系统的客户端程序,系统经过查询图书馆的数据服务器后,为借书者提供服务。
并规定什么时间还书超过时间要罚款,还要规定一次只能借几本。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。
并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。
2.3数据字典与流程图
1.业务流程分析
经过可行性分析和初步需求调查,抽象出该系统业务流程图,结合该实例具体情况,给出借书者信息、借书信息需求。
图2.1图书馆管理系统流程图
⑴调查用户需求
①图书馆办公需求
●功能:
借书者持借书证去图书馆借书。
●统计功能:
◆按书号统计数的本书数
◆按姓名(身份证号),书名(书号),统计借书书数
②借书需求
●借还书功能:
◆借书
◆还书
③查询需求
●查询功能:
◆查询借书者所借的书是否被借走
◆查询书的位置
●统计功能:
◆统计书借出多少本
◆统计书还剩多少本
●查询功能:
④书的信息需求
●查询功能:
◆书名
◆作者
◆著书时间
2.系统模块分析
在调查完了用户需求之后,就要开始分析用户需求。
在此,我们采用自顶向下的结构化分析方法(SA方法)。
首先,定义全局概念结构的框架,如图2.2所示。
图2.2图书馆管理系统总框架图
各子系统需要进一步细化。
图书信息系统为例进一步细化,如图2.3所示。
图2.3图书信息系统细化
以其中的借书者信息功能为例进一步细化,如图2.4所示。
图2.4借书者信息系统细化
图2.5借书信息系统细化
图2.6书架信息系统
3.数据字典
将所有子系统全部细化。
将所有用户需求分析完毕之后,就要开始构造数据字典了。
经分析之后,本系统要用到五个基本表:
图书信息表,借书者信息表,借书信息表,书架信息表,书位置信息表。
数据结构定义如表2.1所示。
表2.1数据结构定义
数据结构名
含义说明
组成
图书信息表
定义了图书的有关信息
书名,书号,作者,著书时间,剩于多少本
借书者信息
定义了借书者有关信息
借书者姓名,身份证号,性别,
工作单位,电话号
借书信息表
定义了借书
的有关信息
书号,借书者的身份证号,借书日期
书架位置
定义了书架相关有关信息
书架编号,书架位置,所存书的类型
书位置位息表
定义了书座位有关信息
书号,书架编号,
第三章概念结构设计
3.1概念结构设计的方法与步骤
3.1.1概念结构设计的方法
概念设计阶段我采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向上的进行概念结构设计。
对已经细化到无法再分的阶段逐步集成在一起,最终合成一个全局概念模式。
3.1.2概念结构设计的步骤
第一步是进行局部视图的设计:
由于高层的数据流图只能反映系统的概貌,而中层流图能较好的反映系统中各局部应用的子系统组成。
因此我们先逐一的设计分E-R图。
第二步是进行视图的集成:
各子系统的E-R图设计好之后,下一步就是要将所有的分E-R图合成一个系统的总E-R图,一般有两个方式,多个分E-R图一次集成,另一种是一次集成两个分E-R图。
我想采用一次集成两个分E-R图的方式。
3.2数据抽象与局部视图设计
按照图2.2图书馆管理系统总框架图,设计实体属性图以及局部E-R图。
图3.1图书实体属性图
图3.2借书者实体属性图
图3.3书架位置实体属性图
图3.3借书关系E-R图
图3.4书的位置关系E-R图
3.3视图的集成
经逐步细化再进行每两个一集成初步形成一个E-R图,最后得到图3.4总体概念结构E-R图。
借书者与图书是多对多的关系,书架与图书也是多对多的关系,这里不再注释。
图3.4系统总体结构E-R图
第四章逻辑结构设计
4.1E-R图向关系模型的转换
将图3.4总体概念结构E-R图转化成关系模型。
图书信息表(书号,书名,作者,著书时间,剩于多少本)
借书者信息表(身份证号,姓名,电话号,性别,工作单位)
书架位置信息表(书架编号,位置,所存书类型)
借书信息表(身份证号,书号,借书日期)
图书位置信息表(书号,书架编号)
4.2数据模型的优化
将转化的关系模式进行优化,最终达到第三范式。
1、确定数据依赖
图书信息(书号,书名,作者,著书时间,剩余多少本)根据这个关系写出数据依赖
书号→书名,书号→作者,书号→著书时间,书号→剩余多少本
借书者信息(姓名,身份证号,电话号,性别,工作单位)
身份证号→姓名,身份证号→电话号,身份证号→性别,身份证号→工作单位
书架位置信息(书架编号,位置,所存书类型)
书架号→位置,书架号→所存书类型
借书信息(身份证号,书号,借书日期)
(身份证号,书号)→借书日期
图书位置信息(书号,书架编号)
对各关系模式间数据依赖进行极小化处理,消除冗余
书号→书名,书号→作者,书号→著书时间,书号→剩余多少本
身份证号→姓名,身份证号→电话号,身份证号→性别,身份证号→工作单位
书架号→位置,书架号→所存书类型
(身份证号,书号)→借书日期
4.3基本表结构
根据总体结构图设计各表的结构,其相应标的定义如下:
表4-1图书信息系统的结构
字段名
数据类型
长度
约束
描述
bno
char
6
主键
书号
bname
varchar
15
不为空
书名
author
varchar
15
不为空
作者
bdate
date
不为空
著书时间
leftno
smallint
不为空
剩余多少本
表4-2借书者信息系统的结构
字段名
数据类型
长度
约束
描述
id
char
6
主键
身份证号
jname
varchar
15
不为空
借书者姓名
tno
varchar
15
不为空
电话号
sex
char
1
不为空
性别
adress
Varchar
15
不为空
工作单位
表4-3书架信息表系统的结构
字段名
数据类型
长度
约束
描述
shelfno
char
6
主键
书架编号
shelfadd
char
6
不为空
位置
btype
varchar
15
不为空
所存书的类型
表4.4借书信息系统的结构
字段名
数据类型
长度
约束
描述
bno
char
6
主键
书号
id
char
6
主键
身份证号
jdate
date
不为空
借书日期
表4.5图书位置信息表
字段名
数据类型
长度
约束
描述
bno
char
6
主键
书号
shelfno
char
6
主键
书架号
第五章数据库的实现
5.1数据库的建立
Creatdatabasedb1
Onprimary
(name=db1,
Filename='E:
\db1-课程设计数据库\db1_datamdf,
Size=4MB,
Maxsize=10MB,
Filegrowth=1MB
)
Logon
(name=db1_log,
Filename='E:
\db1-课程设计数据库\db1_log.ldf,
Size=1MB,
Maxsize=10MB,
Filegrowth=1%
)
5.2数据库基本结构的建立
1、基本表的建立
●Createtable图书
(
Bnochar(6)primarykey,
Bnamevarchar(15)notnull,
Authorvarchar(15)notnull,
Bdatedatetimenotnull,
Leftnosmallintnotnull
);
●Createtable借书者
(
Idchar(6)primarykey,
Jnamevarchar(15)notnull,
Tnovarchar(15)notnull,
Sexchar
(1)notnull,
Addressvarchar(15)notnull
);
●Createtable书架
(
Shelfnochar(6)primarykey,
Shelfaddchar(6)notnull,
Btypevarchar(15)notnull
);
●Createtable借书
(
Bnochar(6),
Idchar(6),
Jdatedatenotnull,
Primarykey(bno,id),
Foreignkey(bno)references图书(bno),
Foreignkey(id)references借书者(id)
);
●Createtable图书位置
(
Bnochar(6),
Shelfnochar(6),
Primarykey(bno,shelfno),
Foreignkey(bno)references图书(bno),
Foreignkey(shelfno)references书架(shelfno)
);
2、添加数据
Insertinto借书者(id,jname,tno,sex,address)
Values('000007','元芳','666666','m','大连')
3、视图的建立
CreateviewView_1
Asselect图书.bno,图书.bname,书架.btype
From图书,图书位置,书架
Where图书.bno=图书位置.bnoand图书位置.shelfno=书架.shelfno;
4、索引的建立
聚簇索引:
●Createclustedindexindex1on图书(bno);
●Createclustedindexindex2on借书者(jname);
●Createclustedindexindex3on书架(shelfno);
●Createclustedindexindex4on借书(jdate);
●Createclustedindexindex5on图书位置(bno);
唯一索引:
Createuniqueindexindexaon借书者(id);
5、游标的建立
根据应用要求,为其中一个基本表设计游标,并利用该游标修改数据,写出SQL语句。
例如:
在“借书者”表中定义一个所在地为“大连”,包含id,jname,sex的游标名称为借书者_cursor,将游标中绝对位置为1的借书者的姓名改为“科比”。
Declare借书者_cursorscrollcursor
For
Selectid,jname,sex
From借书者
Whereaddress='大连'
Forupdateofjname
Open借书者_cursor
Fetchabsolute1from借书者_cursor
Update借书者
Setjname='科比'
Wherecurrentof借书者_cursor
Fetchabsolute1from借书者_cursor
6、存储过程的建立
Createprocedure借书者_address
As
Selectid,jname,bno
From借书者,借书
Where借书者.id=借书.id
5.3安全性的实现
1、利用图形化工具
1)系统用户名:
SQL课程设计;
SQLSERVER用户名:
DELL-PC\SQL课程设计;
数据库用户名:
SQL课程设计user.
2)为SQLSERVER用户,数据库用户分配角色,写出分配的角色名。
为SQLSERVER用户分配的角色名:
sysadmin;
为数据库分配的角色名:
新建角色1.
2、利用Transact-SQL
1)设计一个SQLserver登录账户,并设置密码,写出相应的SQL语句。
Sp_addlogin'DELL-PC\SQL课程设计','123456'
2)为登录帐户,设计创建一个数据库用户,写出相应的SQL语句。
Sp_grantdbaccess'SQL课程设计user','DELL-PC\SQL课程设计'
3)为数据库用户创建数据库角色,写出相应的SQL语句。
Sp_addrolemember'新建角色1','SQL课程设计user'
5.4完整性的实现
1、UNIQUE约束
Altertable图书
Addconstraintunique_bno
Uniquenonclustered(bno);
2、CHECK约束
Altertable图书
Addconstraintcheck_bno
Check(bno<>'000010');
3、DEFAULT约束
Altertable借书者
Addconstraintdefault_sex
Default'm'forsex;
4、NOTNULL约束
Altertable借书者
Altercolumntnovarchar(15)notnull;
5、规则
创建:
Createruleleftno_ruleas@leftno>=0and@leftno<=20;
查询:
Sp_bindruleleftno_rule,'图书.leftno';
5.5恢复技术的实现
备份路径及文件:
C:
\ProgramFiles(x86)\MicrosoftSQServer\MSSQL.2\MSSQL\Backup\db1.bak
第六章运行与结果
6.1简单查询和连接查询
1、简单查询
1)Select*
From图书;
2)Selectid,jname
From借书者;
2、连接查询
1)Select图书.bno,bname,jdate
From图书,借书
Where图书.bno=借书.bno;
2)Selectbno,bname,shelfno
From图书,图书位置
Where图书.bno=图书位置.bno;
6.2嵌套查询
1)Selectbname,author
From图书
Wherebnoin
(
Selectbno
From借书
Whereid='000003'
);
2)Selectjname,tno
From借书者
Whereidin
(
Selectid
From借书
Wherebno='000007'
);
6.3组合查询和统计查询
1、组合查询
1)Select*
From图书
Whereauthor='金庸'
Union
Select*
From图书
Whereauthor='郭敬明';
2)Select*
From借书者
Whereaddress='大连'
Union
Select*
From借书者
Whereaddress='沈阳';
2、统计查询
1)Selectcount(distinctid)as'借书的人数'
From借书;
2)Selectid,count(bno)as'每人借的书本数'
From借书
Groupbyid
Orderby1,2desc;
总结
通过这次的数据库课程设计我学习并掌握了很多知识与操作。
历时两个星期的设计令我受益匪浅,也对数据库这门学科有了更进一步的认识与熟悉。
一个好的软件的设计必须有一个好的需求分析。
我结合自己的设计理念,设计出了5个表,分别是:
图书信息表,借书者信息表,图书位置信息表,书架信息表,借书信息表。
在各个表中我添加了若干个属性,而这些属性恰恰是我们最想知道的信息。
当创建完这些表和属性后,我开始按照老师给的模板和要求写论文,写论文的过程中温习了用SQLSERVER运行截图,相较于我这是比较难的步骤。
我花了很长的时间才弄懂如何使用。
我根据老师以前给的实验指导书一步一步的从头到尾开始学习操作应用SQLSERVER。
弄懂了SQLSERVER后,我就开始根据老师的要求进行报刊订阅各个操作。
另外,我还自学了用visio2007画E-R图和模式图,也有所收获。
完成之后,很有成就感,学到了很多,希望以后还可以有这样的课程设计让我进步。
由于本人能力不足,难免会使系统出现一些不足之处,但由于限于时间,本系统只能做出其中的一部分功能。
希望老师评点批评。
参考文献
[1]刘金岭,冯万利等.数据库原理及应用.清华大学出版社,2009.7
[2]刘金岭,冯万利.数据库原理及应用实验与课程设计指导.清华大学出版社,2010.6