数据流图与数据库中的数据表

数据流图与数据库中的数据表,第1张

软件生命周期(SDLC)的六个阶段

1、问题的定义及规划

此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。

2、需求分析

在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项目的成功打下良好的基础。"唯一不变的是变化本身。",同样需求也是在整个软件开发过程中不断变化和深入的,因此我们必须制定需求变更计划来应付这种变化,以保护整个项目的顺利进行。

3、软件设计

此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。

4、程序编码

此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。

5、软件测试

在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试、组装测试以及系统测试三个阶段进行。测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。

6、运行维护

软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求。要延续软件的使用寿命,就必须对软件进行维护。软件的维护包括纠错性维护和改进性维护两个方面。

是先数据流图(需求分析),再数据库设计(软件设计)

数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。

数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。 数据流图英文缩写DFD(Data Flow Diagram)它是描绘信息流和数据从输入移动到输出的过程中所经受的变换。 数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。 数据流程图包括: a.指明数据存在的数据符号,这些数据符号也可指明该数据所使用的媒体; b.指明对数据执行的处理的处理符号,这些符号也可指明该处理所用到的机器功能; c.指明几个处理和(或)数据媒体之间的数据流的流线符号; d.便于读、写数据流程图的特殊符号。 在处理符号的前后都应是数据符号。数据流程图以数据符号开始和结束(除9.4规定的特殊符号外)

数据流

数据流是一组数据。在数据流图中数据流用带箭头的线表示,在其线旁标注数据流名。在数据流图中应该描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件。 加工(处理) 在数据流图中加工用圆圈表示,在圆圈内写上加工名。一个处理框可以代表一系列程序、单个程序或者程序的一个模块。

组成元素

数据流程图中有以下几种主要元素: →:数据流。数据流是数据在系统内传播的路径,因此由一组成分固定的数据组成。如订票单由旅客姓名、年龄、单位、身份z号、日期、目的地等数据项组成。由于数据流是流动中的数据,所以必须有流向,除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名。 □:数据源(终点)。代表系统之外的实体,可以是人、物或其他软件系统。 ○:对数据的加工(处理)。加工是对数据进行处理的单元,它接收一定的数据输入,对其进行处理,并产生输出。 〓:数据存储。表示信息的静态存储,可以代表文件、文件的一部分、数据库的元素等。

分层数据流图

根据层级数据流图分为顶层数据流图、中层数据流图和底层数据流图。除顶层数据流图外,其他数据流图从零开始编号。 顶层数据流图只含有一个加工表示整个系统;输出数据流和输入数据流为系统的输入数据和输出数据,表明系统的范围,以及与外部环境的数据交换关系。 中层数据流图是对父层数据流图中某个加工进行细化,而它的某个加工也可以再次细化,形成子图;中间层次的多少,一般视系统的复杂程度而定。 底层数据流图是指其加工不能再分解的数据流图,其加工成为“原子加工”。

问题一:大家用什么工具画数据流图 Microsoft Visio 2003 中文版 专业制作各类图纸的软件,例如程序流程图、网络拓扑图、数据分布图、地图、室内布置图、规划图、线路图等图纸的软件,包含了非常多的组件-----数据库老师推荐的。专业软件。

问题二:画数据流图用什么工具 业务流程用visio, 数据流程可以用powerdesigner, rose, visio

只要把东西说清楚就好, 工具倒是次要的

问题三:画数据流图用什么工具 rose

问题四:数据流图和程序流程图有什么区别?分别用什么工具来了绘制? 数据流图是业务分析用的,主要在分析阶段,经过变换型(事务性)分析可以转换为概要设计,程序流程图和N-S框图一样是用作详细设计的。

数据流图没有控制结构,基本是一种静态结构,没有语法控制。程序流程图是动态的程序状态的描述。

问题五:在WORD里用什么软件做数据流图 比较方便 WORD就是软件,可以做流程图

word2003步骤:

视图→工具栏→绘图,在绘图工具条上选择“自选图形”→更多自选图形→流程图

word2007步骤:

“插入”→攻形状”就可以画了,里面有流程图用的形状

补充:

试试 SuperWORKS ,专业电气CAD软件

问题六:有什么能画数据流图,程序流程图之类的软件吗?推荐一下 visio吧,比较简单,如果要自动生成代码的话,就得用Rational rose之类的专业软件,这种要求你每个数据都画对,才能最终生成正确的代码,不然生成出来的代码都无法直视

问题七:数据流图怎么画 数据流图的画法

数据流图也称为数据流程图date flow diagram , DFD,是一种便于用户理解和分析系统数据流程的图形工具,他摆脱了系统和具体内容,精确的在逻辑上描述系统的功能、输入、输出和数据存储等,是系统逻辑模型的重要组成部分。

数据流图的基本组成成分

数据流:是由一组固定成分的数据组成,表示数据的流向。值得注意的是,数据流图中描述的是数据流,而不是控制流。除了流向数据存储或从数据存储流出的数据不必命名外,每个数据流必须要有一个合适的名字,以反映该数据流的含义。

加工:加工描述了输入数据流到输出数据之间的变换,也就是输入数据流经过什么处理后变成了输出数据。每个加工都有一个名字和编号。编号能反映该加工位于分层的数据流图的哪个层次和哪张图中,能够看出它是由哪个加工分解出来的子加工。

数据存储:数据存储表示暂时存储的数据。每个数据存储都有一个名字。

外部实体:外部实体是存在于软件系统之外的人员或组织,他指出数据所需要的发源地或系统所产生的数据的归属地。

外部实体 加工 数据流

分层数据流图的设计方法

第一步,画子系统的输入输出

把整个系统视为一个大的加工,然后根据数据系统从哪些外部实体接收数据流,以及系统发送数据流到那些外部实体,就可以画出输入输出图。这张图称为顶层图。

第二步,画子系统的内部

把顶层图的加工分解成若干个加工,并用数据流将这些加工连接起来,使得顶层图的输入数据经过若干加工处理后,变成顶层图的输出数据流。这张图称为0层图。从一个加工画出一张数据流图的过程就是对加工的分解。

可以用下述方法来确定加工:

在数据流的组成或值发生变化的地方应该画出一个加工,这个加工的功能就是实现这一变化,也可以根据系统的功能决定加工。

确定数据流的方法

用户把若干数据当作一个单位来处理(这些数据一起到达、一起处理)时,可以把这些数据看成一个数据流。

关于数据存储

对于一些以后某个时间要使用的数据,可以组织成为一个数据存储来表示。

第三步,画加工的内部

把每个加工看作一个小系统,把加工的输入输出数据流看成小系统的输入输出流。于是可以象画0层图一样画出每个小系统的加工的DFD图。

第四步,画子加工的分解图

对第三步分解出来的DFD图中的每个加工,重复第三步的分解过程,直到图中尚未分解的加工都是足够简单的(即不可再分解)。至此,得到了一套分层数据流图。

第五步,对数据流图和加工编号

对于一个软件系统,其数据流图可能有许多层,每一层又有许多张图。为了区分不同的加工和不同的DFD子图,应该对每张图进行编号,以便于管理。

● 顶层图只有一张,图中的加工也只有一个,所以不必为其编号。

● 0层图只有一张,图中的加工号分别是01、02、…,或者1, 2 。

● 子图就是父图中被分解的加工号。

● 子图中的加工号是由图号、圆点和序号组成,如:112,13 等等。

应该注意的问题:

1 应适当的为数据流、加工、数据存储以及外部实体命名,名字应该反映该成分的实际含义,避免使用空洞的名字。

2 画数据流图,不是画控制流。

3 一个加工的输出数据流,不应与输入数据流同名,及时他们的组成完全相同。

4 允许一个加工有多条数据流流向另一个加工,也允许一个加工有两条相同的输出数据流流向不同的加工。

5 保持父图与子图的平衡。也就是说,父图中的某加工的输入输出流必须与他的子图的输入输出数据流在数量上和名字>>

问题八:用什么软件画软件工程中的数据流图 Microsoft Office Visio

问题九:数据流图是用于描述结构化方法中什么阶段的工具 是一种能全面地描述信息系统逻辑模型的主要工具对数据流图中出现的每一个数据流、文件、加工给出详细定义

1数据流图:是结构化系统分析的基本工具。一个数据流图确定了系统的转化过程、系统所 *** 纵的数据或物质的收集(存储),还有过程、存储、外部世界之间的数据流或物质流。从我们画了那么多数据流图来理解,数据流图就是用图形化的方法显示整个现实世界中实际存在的数据流向转化为图表的形式,并最终转化为表,转化为计算机能够接受的形式,所以数据流图是我们做需求分析过程中必不可少的,通过对数据流图的理解,我们会对项目的整个过程有一个深刻的理解!2实体关系图:也叫ER图,描绘了系统的数据关系。分析实体联系图有助于对业务或系统数据组成的理解和交互,并暗示产品将有必要包含一个数据库。相反,当你在系统设计阶段建立实体联系图时,通常要定义系统数据库的物理结构。确定实体与实体之间的关系,是多对多还是一对多等等,加深对项目的理解。 3数据字典:一个定义应用程序中使用的所有数据元素和结构的含义、类型、数据大小、格式、度量单位、精度以及允许取值范围的共享仓库。数据字典的维护独立于软件需求规格说明,并且在产品的开发和维护的任何阶段,各个风险承担者都可以访问数据字典。它定义了原数据元素、组成结构体的复杂数据元素、重复的数据项、一个数据项的枚举值以及可选的数据项。 数据字典我还没有做,个人认为,通过对数据字典的建立,那么数据库中所用到的表也就基本定型了,通过数据字典我们就可以建立相应的表了! 追问: 数据流图的意义呢?我这里在做一个关于学生成绩的设计,题目是系统逻辑模型设计关于学生成绩的。希望可以指导我一下。

方法/步骤如下

1、打开Microsoft Office Visio 2007,左侧的模板类别中选择“软件和数据库”,双击右侧的“数据库模型图”;

2、调整显示比例;

3、添加实体:鼠标指针移动到实体上,按下鼠标左键不要松开,移动鼠标到右侧的绘图页上,松开鼠标左键;

4、修改实体定义:去掉键入时同步的勾,输入物理名称和概念名称;

5、添加列:左侧类别选择“列”,右侧输入列名,选择数据类型,选择是否必须,是否主键。相同的方法添加“用户与角色关联表”;

6、添加关联关系:在左侧的关系上按下鼠标左键,拖动到右侧的“用户表”实体上,实体边框会变成红色,松开鼠标左键;

7、移动关系连接线的另一端关联到另一个实体上。左侧的数据库属性中就会显示对象关系。按此方法创建其它实体和关系;

8、保存文件:实体关系图设计好之后就可以保存了。为了以后可以继续修改,一定要保存为vsd扩展名;如果为了方便查看,可以再另存为其它格式。

9、最终效果:

第一步:首先要根据需求分析的结果(数据流图、数据字典等)对现实世界的数据进行抽象, 设计各个局部视图即分E-R图。关系的属性一半来自数据字典。

第二步:集成局部视图。

概念结构是对现实世界的一种抽象,一般有三种抽象:

⑴分类 ( is member of )

⑵聚集 ( is part of )

⑶概括 ( is subset of )

设计分E-R图的步骤是:⑴选择局部应用

在需求分析阶段,通过对应用环境和要求进行详尽的调查分析,用多层数据流图和数据字典描述了整个系统。

设计分E-R图的第一步,就是要根据系统的具体情况,在多层的数据流图中选择一个适当层次的(经验很重要)数据流图,让这组图中每一部分对应一个局部应用,我们即可以以这一层次的数据流图为出发点,设计分E-R图。

一般而言,中层的数据流图能较好地反映系统中各局部应用的子系统组成,因此人们往往以中层数据流图作为设计分E-R图的依据

⑵逐一设计分E-R图

每个局部应用都对应了一组数据流图,局部应用涉及的数据都已经收集在数据字典中了。现在就是要将这些数据从数据字典中抽取出来,参照数据流图, <1> 标定局部应用中的实体, <2> 实体的属性、标识实体的码, <3> 确定实体之间的联系及其类型(1:1、1:n、m:n)。

<1> 标定局部应用中的实体

现实世界中一组具有某些共同特性和行为的对象就可以抽象为一个实体。对象和实体之间是 "is member of "的关系。例如在学校环境中,可以把张三、李四、王五等对象抽象为学生实体。

对象类型的组成成分可以抽象为实体的属性。组成成分与对象类型之间是 "is part of "的关系。例如学号、姓名、专业、年级等可以抽象为学生实体的属性。其中学号为标识学生实体的码。

<2> 实体的属性、标识实体的码

实际上实体与属性是相对而言的,很难有截然划分的界限。同一事物,在一种应用环境中作为 "属性 ",在另一种应用环境中就必须作为 "实体 "。一般说来,在给定的应用环境中:

⑴属性不能再具有需要描述的性质。即属性必须是不可分的数据项。

⑵属性不能与其他实体具有联系。联系只发生在实体之间。

<3> 确定实体之间的联系及其类型(1:1、 1:n、 m:n)。

根据需求分析,要考察实体之间是否存在联系,有无多余联系

(二)、 合并分E-R图,生成初步E-R图。

各分E-R图之间的冲突主要有三类:属性冲突、命名冲突和结构冲突。

1.属性冲突 (1) 属性域冲突,即属性值的类型、取值范围或取值集合不同。

例如:属性“零件号”有的定义为字符型,有的为数值型。

(2) 属性取值单位冲突。 例如:属性“重量”有的以克为单位,有的以公斤为单位。

2.命名冲突 (1) 同名异义。 不同意义对象相同名称。

(2) 异名同义(一义多名)。同意义对象不相同名称。“项目”和“课题”

3.结构冲突

(1) 同一对象在不同应用中具有不同的抽象。例如 "课程 "在某一局部应用中被当作实体,而在另一局部应用中则被当作属性。

(2) 同一实体在不同局部视图中所包含的属性不完全相同,或者属性的排列次序不完全相同。

(3) 实体之间的联系在不同局部视图中呈现不同的类型。

例如实体E1与E2在局部应用A中是多对多联系,而在局部应用B中是一对多联系;又如在局部应用X中E1与E2发生联系,而在局部应用Y中E1、E2、E3三者之间有联系。

解决方法是根据应用的语义对实体联系的类型进行综合或调整。

(三).修改与重构,生成基本E-R图

分E-R图经过合并生成的是初步E-R图。之所以称其为初步E-R图,是因为其中可能存在冗余的数据和冗余的实体间联系,即存在可由基本数据导出的数据和可由其他联系导出的联系。冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难,因此得到初步E-R图后,还应当进一步检查E-R图中是否存在冗余,如果存在,应设法予以消除。修改、重构初步E-R图以消除冗余,主要采用分析方法。除此外,还可以用规范化理论来消除冗余,这些内容一般在数据库原理课程中,用一种公式化的方法来消除冗余。

数据流图,程序结构图和系统结构图的区别和联系如下:

1、数据流图(Data Flow Diagram),简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。它是描绘信息流和数据从输入移动到输出的过程中所经受的变换。

2、系统流程图(System Flowchart)是描绘系统物理模型的传统工具。它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等),表达信息在各个部件之间流动的情况,而不是表示对信息进行加工处理的控制过程。

3、数据流程图:反应数据走向 ,它不考虑时序关系,是业务分析用的,用作详细设计。图中的有向线段表示了数据流。

4、程序流程图:程序逻辑 描述程序中控制流的情况,即程序中处理的执行顺序和执行序列所依赖的条件,图中的有向线段表示的是控制流,从一个处理走到下一个处理。

5、系统结构图:反映的是系统中模块的调用关系和层次关系,谁调用谁,有一个先后次序(时序)关系。图中的有向线段表示调用时程序的控制从调用模块移到被调用模块,并隐含了当调用结束时控制将交回给调用模块。

分类: 电脑/网络

解析:

各种类型数据的高等界面,后来逐渐演变成满足所有数据访问需要的完整解datamodule4adoquery2sqladd('SELECT借书证号,密码FROM[user]WHERE(借书证号=:tt)');

datamodule4adoquery2parameters[0]value:=username;

datamodule4adoquery2open;

在为TQuery或TADOquery部件设置SQL属性时调用Close方法总是很安全的,如果TQuery或TADOquery部件已经被关闭了,调用Close方法时不会产生任何影响。在应用程序中为SQL属性设置新的SQL命令语句时,必须要调用Clear方法以清除SQL属性中现存的SQL命令语句,如果不调用Clear方法,便调用Add方法向SQL属性中设置SQL命令语句,那么新设置的SQL命令语句会追加在现存SQL命令语句后面,在程序运行时常常会出现出乎意料的查询结果甚至程序无法运行下去。

在这里要特别注意的,一般情况下TQuery或TADOquery部件的SQL属性只能包含一条完整的SQL语句,它不允许被设置成多条SQL语句。当然有些数据库服务器也支持在TQuery或TADOquery部件的SQL属性中设置多条SQL语句,只要数据库服务器允许这样,我们在编程时可以为SQL属性设置多条SQL语句。

在为TQuery或TADOquery部件设置完SQL属性的属性值之后,也即编写好适当的SQL程序之后,可以有多种方式来执行SQL程序。

在设计过程中,设置完TQuery或TADOquery部件的SQL属性之后将其Active属性的值置为True,这样便可以执行SQL属性中的SQL程序,如果应用中有与TQuery或TADOquery部件相连的数据浏览部件(如TDDGridTDBEdit等)那么在这些数据浏览部件中会显示SQL程序的执行结果。

在应用程序运行过程中,通过程序调用TQuery或TADOquery组件的Open方法或ExecSQL方法可以执行其SQL属性中的SQL程序。Open方法和ExecSQL方法是不一样的。Open方法只能用来执行SQL语言的查询语句(Select命令),并返回一个查询结果集,而ExecSQL方法还可以用来执行其它常用的SQL语句(如INSERT,UPDATE,DELETE等命令),例如:

Query1Open(这样会返回一个查询结果集)

如果调用Open方法,而没有查询结果时,会出错。此时应该调用ExecSQL方法来代替Open方法。如:

Query1ExecSQL(没有返回结果)

当然在设计应用程序时,程序设计人员是无法确定TQuery或TADOquery组件中的SQL语句是否会返回一个查询结果的。对于这种情况应当用Try…Except模块来设计程序。在Try部分调用Open方法,而在Except部分调用ExceSQL方法,这样才能保证程序的正确运行。

例如:

Try

Query1Open

Except

Query1ExecSQL

End

通过Tquery或TADOquery组件可以获得两种类型的数据:

u“活动”的数据

这种数据就跟通过TTable部件获得的数据一样,用户可以通过数据浏览部件来编辑修改这些数据,并且当调用Post方法或当焦点离开当前的数据浏览部件时,用户对数据的修改自动地被写回到数据库中。

u非活动的数据(只读数据)

用户通过数据浏览部件是不能修改其中的数据。在缺省情况下,通过TQuery部件获得的查询结果数据是只读数据,要想获得“活动”的数据,在应用程序中必须要设置Tquery或TADOquery组件的RequestLive属性值为True,然而并不是在任何情况下(通过设置RequestLive的属值True)都可以获得“活动”的数据的,要想获得“活动”的数据,除了将TQuery部件的RequestLive属性设置为True外,相应的SQL命令还要满足以下条件。

本地SQL语句查询情况下,要得到可更新的数据集,SQL语句的限制为:

n查询只能涉及到一个单独的表

nSQL语句中不能包含ORDERBY命令

nSQL语句中不能含聚集运算符SUM或AVG

n在Select后的字段列表中不能有计算字段

n在Select语句WHERE部分只能包含字段值与常量的比较运算,这些比较运算符是:Like,>,<,>=,<=。各比较运算之间可以有并和交运算:AND和OR

当通过SQL语句查询数据库服务器中的数据库表:

n查询只能涉及到一个单独的表

nSQL语句中不能包含ORDERBY命令

nSQL语句中不能含聚集运算符SUM或AVG运算

另外,如果是查询Sybase数据库中的表,那么被查询的表中只能有一个索引。

如果在应用程序中要求TQuery或TADOquery组件返回一个“活动”的查询结果数据集,但是SQL命令语句不满足上述约束条件时,对于本地数据库的SQL查询,BDE只能返回只读的数据集。对于数据库服务器中的SQL查询,只能返回错误的代码。当Tquery或TADOquery组件返回一个“活动”的查询结果数据集时,它的CanModIfy属性的值会被设置成True。

§34MSSQLServer简述

SQLServer是一个后台数据库管理系统,它功能强大 *** 作简便,日益为广大数据库用户所喜爱。越来越多的开发工具提供了与SQLServer的接口。SQLServer是一个关系数据库管理系统,它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的。于1988年推出了第一个OS/2版本,在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了,Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本。

SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统的最新版本,该版本继承了SQLServer70版本的优点,同时又比它增加了许多更先进的功能、具有使用方便、可伸缩性好与相关软件集成程度高等优点。可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindows2000的大型多处理器的服务器等多种平台使用。MSSQLServer不但可以应用于大中型数据库管理中,建立分布式关系数据库,并且也可以开发桌面数据库。事实上,SQLServer数据库处理的基本结构,采取关系型数据库模式,尽管如此,相信大家都可以轻易的发现,在SQLServer的数据库处理方式,则是使用面向对象的 *** 作方式与精神,也就是说,SQLServer的所有功能,都可以基于系统已经建立好的一些对象来达成,是相当OO(面向对象)的一个系统结构。

SQLServer企业管理器是SQLServer的主要管理工具,它提供了一个遵从MMC标准的用户界面,使用户得以:

·定义SQLServer实例组。

·将个别服务器注册到组中。

·为每个已注册的服务器配置所有SQLServer选项。

·在每个已注册的服务器中创建并管理所有SQLServer数据库、对象、登录、用户和权限。

·在每个已注册的服务器上定义并执行所有SQLServer管理任务。

·通过唤醒调用SQL查询分析器,交互地设计并测试SQL语句、批处理和脚本。

·唤醒调用为SQLServer定义的各种向导。

·

第三章图书管理系统设计分析

§41应用需求分析

图书管理系统需要满足来自三方面的需求,这三个方面分别是图书借阅者、图书馆工作人员和图书馆管理人员。图书借阅者的需求是查询图书馆所存的图书、个人借阅情况及个人信息的修改;图书馆工作人员对图书借阅者的借阅及还书要求进行 *** 作,同时形成借书或还书报表给借阅者查看确认;图书馆管理人员的功能最为复杂,包括对工作人员、图书借阅者、图书进行管理和维护,及系统状态的查看、维护并生成催还图书报表。

图书借阅者可直接查看图书馆图书情况,如果图书借阅者根据本人借书证号和密码登录系统,还可以进行本人借书情况的查询和维护部分个人信息。一般情况下,图书借阅者只应该查询和维护本人的借书情况和个人信息,若查询和维护其他借阅者的借书情况和个人信息,就要知道其他图书借阅者的借书证号和密码。这些是很难得到的,特别是密码,所以不但满足了图书借阅者的要求,还保护了图书借阅者的个人隐私。

图书馆工作人员有修改图书借阅者借书和还书记录的权限,所以需对工作人员登陆本模块进行更多的考虑。在此模块中,图书馆工作人员可以为图书借阅者加入借书记录或是还书记录,并打印生成相应的报表给用户查看和确认。

图书馆管理人员功能的信息量大,数据安全性和保密性要求最高。本功能实现对图书信息、借阅者信息、总体借阅情况信息的管理和统计、工作人员和管理人员信息查看及维护。图书馆管理员可以浏览、查询、添加、删除、修改、统计图书的基本信息;浏览、查询、统计、添加、删除和修改图书借阅者的基本信息,浏览、查询、统计图书馆的借阅信息,但不能添加、删除和修改借阅信息,这部分功能应该由图书馆工作人员执行,但是,删除某条图书借阅者基本信息记录时,应实现对该图书借阅者借阅记录的级联删除。并且还应具有生成催还图书报表,并打印输出的功能。

在本系统中由于没有打印机设备供试验,所以预先把报表打印改成报表预览。

设计不同用户的 *** 作权限和登陆方法

对所有用户开放的图书查询

借阅者维护借阅者个人部分信息

借阅者查看个人借阅情况信息

维护借阅者个人密码

根据借阅情况对数据库进行 *** 作并生成报表

根据还书情况对数据库进行 *** 作并生成报表

查询及统计各种信息

维护图书信息

维护工作人员和管理员信息

维护借阅者信息

处理信息的完整性

对借阅过期的图书生成报表

图4-2图书管理系统数据库应用需求的总结

根据以上所做的需求分析,并略掉一些细节(如不考虑用户的登录;对记录的维护),得出以下的三层数据流图。

§42系统功能模块划分

系统功能框图如图4-10所示。

§43系统数据库设计

431概念设计

在概念设计阶段中,设计人员从用户的角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式。然后再把概念模式转换成逻辑模式。将概念设计从设计过程中独立开来,使各阶段的任务相对单一化,设计复杂程度大大降低,不受特定DBMS的限制。

利用ER方法进行数据库的概念设计,可分成三步进行:首先设计局部ER模式,然后把各局部ER模式综合成一个全局模式,最后对全局ER模式进行优化,得到最终的模式,即概念模式。

(1)设计局部ER模式

实体和属性的定义:

图书(图书编号,图书名称,作者,出版社,出版日期,备注,价格,数量,)

借阅者(借书证号,姓名,性别,身份z,联系电话,密码)

身份(身份编号,身份描述,最大借阅数)

图书类别(图书类别编号,类别描述)

ER模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。联系定义如图4-5所示。解释如下:

u一个借阅者(用户)只能具有一种身份,而一种身份可被多个借阅者所具有;

u一本图书只能属于一种图书类别(类别),而一种图书类别可以包含多本图书;

u一个用户可以借阅多本不同的书,而一本书也可以被多个不同的用户所借阅。

(2)设计全局ER模式

所有局部ER模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。

1)确定公共实体类型

为了给多个局部ER模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。在这一步中我们仅根据实体类型名和键来认定公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候眩

2)局部ER模式的合并

合并的原则是:首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。

3)消除冲突

冲突分为三类:属性冲突、结构冲突、命名冲突。

设计全局ER模式的目的不在于把若干局部ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。

3)全局ER模式的优化

在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理需求对ER模式进行优化。一个好的全局ER模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。

综上所述,“图书管理系统”的全局ER模式如图4-13所示。

432关系数据库的逻辑设计

由于概念设计的结果是ER图,DBMS一般采用关系型(本人所使用的MSSQLServer就是关系型的DBMS),因此数据库的逻辑设计过程就是把ER图转化为关系模式的过程。由于关系模型所具有的优点,逻辑设计可以充分运用关系数据库规范化理论,使设计过程形式化地进行。设计结果是一组关系模式的定义。

(1)导出初始关系模式

book(图书编号#,图书名称,图书类别#,作者,出版社,出版日期,备注,价格,数量)class(图书类别#,类别名)user(借书证号#,姓名,性别,身份编号#,身份z,联系电话,密码)ID(身份编号#,身份描述,最大借阅数)Owner(借书证号#,图书编号#,借书日期)

图4-14关系模式集

(2)产生子模式

子模式是用户所用到的那部分数据的描述。除了指出用户用到的数据外,还应指出数据与概念模式中相应数据的联系,即指出概念模式与子模式之间的对应性。

借书子模式(借书证号#,姓名,图书编号#,图书名称,借书日期)

图4-15部分子模式

(3)根据设计中出现的问题本人在写系统时还加入了两个关系模式:

1、ownertemp:用于工作人员在处理借书、还书工作时临时存储借书、还书信息,以便打印报表时使用。

2、keyer:用于存储工作人员和图书馆管理员的用户名和密码及权限,以便工作人员或图书馆管理员进入相应的功能模块时进行验证用户的身份。

433数据库的实现

我选用MicrosoftSQLServer2000(企业版)数据库来进行数据库的逻辑设计。首先创建七个基本数据库表如表4-1-4-7所示,然后根据全局ER图,建立各个表之间的联系,如图4-8所示。

表4-1借阅者基本信息表的结构(User)

表4-2图书信息表的结构(Book)

表4-3图书类别信息表的结构(Class)

表4-4借阅者身份信息表的结构(ID)

表4-5借阅情况信息表的结构(Owner)

表4-6借阅情况临时存储信息表的结构(Ownertemp)

注:在owner表和ownertemp表中加入了索引字段,用来唯一标识一条借书记录,并且设置为标识,标识种子为1。

表4-7工作人员和管理员信息表的结构(Keyer)

图4-8数据库表间联系图

第五章图书管理系统应用程序设计

§51系统窗体模块组成

§52数据模块窗体的设置

在编写数据库应用程序时,经常要遇到这样的情况,即好多组件、窗体同时访问相同的数据源,如果为每一个组件或者窗体都设置一个数据源将是十分耗时的工件,而且要保证这些数据源的确是相同的也需花一番功夫。那么,能不能将这些数据源集中管理,最好是做成一个统一的模块,需要时就将该模块引入而不必直接 *** 作数据源本身呢?数据模块(DataModule)是解决这个问题最好的答案。简单说来,数据模块是用来集中管理数据源的一个窗体,该窗体可被需要的地方随时引入。

但本人在开发这个系统时,开始使用了一下数据模块,但在使用过程中却碰到了一些问题。并且考虑这个系统使用到的TADOQuery控件比较多,如果使用数据控件可能会带来管理上的麻烦,如弄混各个数据控件的作用。还考虑到使用动态生成ADOQuery可能会更节省资源。所以在本人的系统中,开始做的第一个模块“借阅者个人模块”中还稍微使用了一下数据模块。但在后面做的两个模块中大多都是用动态生成ADOQuery来实现的。并且由于SQL语句是动态加入的所以datamodule中的控件也不会多。

§53启动画面的实现

启动画面是为了给用户一个良好的印像,加深软件的亲和力,没有实际的功能,在Form1窗体中加入了Image和Time组件。启动画面的窗体略,主要的源代码如下:

§54用户登录窗体的的实现

本窗体是为三种不同的用户(一般用户,工作人员,管理员)提供选择以进入不同的模块,满足不同用户的需求。源代码比较简单,略。

§55用户密码认证窗体的的实现

本窗体是为了让工作人员或图书馆管理员按照用户名和密码进行登录,并且跟据用户名检查Keyer表中的“权限”字段,以分辩进入图书馆管理人员模块还是进入工作人员模块。窗体界面、源代码如下

§56借阅者服务模块的实现

借阅者服务窗体的功能主要是图书的查询,个人借阅情况查看及个人部分信息的修改。界面图如下:

561图书查询功能的实现

在本系统中,任何人都有权限使用查询功能,不做任何限制。界面如下,

由于实现的查询功能有多种,如按图书编号、图书名称等字段进行完全体配查找和部分体配的模糊查找,还有按多个条件进行逻辑与或是逻辑或的多条件查找。其中实现的方法者差不多,所以只给出多条件查找的代码,如下:

562借阅者登录功能的实现

这个功能的实现与工作人员和管理人员登录功能实现的方法大致一样,并且还要简单。是从User表中查到到借阅证号与密码,看与用户输入的是否一致。如果一致,那么用户就可查看自已的借阅情况并维护自己的部分信息。源代码与借阅者登录界面都略。

563借阅者借阅情况功能的实现

当借阅者正确登录到系统后,此功能将被激活,使用户能查看到自身的借阅情况。在此系统中,信息的显示一般用ListView来实现,只在较少的情况下用到了DBgrid,因为我觉得ListView更好实现,并能使信息数据对用户的完全分离。

在这里跟据借阅者的不同要求实现借阅情况的查询,有检查所有的借阅情部、某本书的借阅情况、和根据已借阅天数的来查询。其中根椐借阅天数来查询更有代表性,有方式一和方式二。以下给出此功能的源代码

按借阅天数查询方式一

按借阅天数查询方式二

564借阅者个人资料维护功能的实现

此功能实现当前借阅者部份资料的修改,但借书证号和身份类别这样的信息不允许修改,这是图书馆管理员模块的功能。在此界面中点击修改按钮将出现“修改”窗体(Form8),点击修改密码按钮将出现groupbox8,在这里进行密码修改。关键源代码如下。

这里给出个人部分信息修改的源代码:

这里给出密码修改的源代码:

57工作人员-图书借阅/归还模块的实现

571工作人员进行图书借阅功能实现

在这个功能中,工作人员输入借阅者的借阅证号和所要借阅的图书的图书编号,然后点击借阅按钮就可进行图书借阅。考虑到实际中可能会出现只知图书名而不知图书编号的情况,在此界面下方加入了一个转换功能,可以把图书名称转换成图书编号,再进行图书借阅。

在借阅完成后会生借阅报表以便借阅者检查和确认,借阅报表的打印效果如下图,实现比较简单,略去实现过程。

572工作人员进行图书归还功能实现

在此功能中,工作人员根据借阅者的借书证号和归还的图书编号进行图书的归还工作。并且根据现实中可能会出现的只知图书名不知图书编号的归还情况,所以加入了按书籍名称进行归还的功能。这个功能是图书借阅功能中把图书名称转换成图书编号的一种改进方法,这样就不用如借阅功能中一样要先转换再借阅了。归还完成后,同样会打印出归还报表以便用户检查和确认。

58图书馆管理员模块的实现

581图书馆管理员图书管理功能的实现

在这个功能中可以在(*图书编号)中输入图书编号,点查找按钮后就会在各个相应的组件中显示出信息,或按图书名称模糊查找到所要的记录,在各个相应的组件中显示第一条记录的信息,也可在下端的ListView组件中点击某一条记录,在各个相应的组件中也会显示所选记录的信息。在入库功能中只要不是相同的图书编号并且带*号提示的字段不为空就可插入新的图书记录。删除则删除那些Book表中的图书记录,如果借出还可依用户要求连带删除owner表中的记录。因为图书修改与图书入库的功能与工作人员记录修改和工作人员记录添加的实现过程一样,所以下面仅给出删除功能的源代码,如下

582图书馆管理员工作人员和管理员管理功能的实现

在此功能中可以加入工作人员或是管理员,或是修改他们的密码、权限。

在此功能中如果选中ListView中的记录,则在右边相应的组件中显示出信息,并且管理员还可对这些记录进行修改或加入新的记录。并且也可以点删除按钮删除选中的一条或多条记录。删除功能与图书记录的删除一般,所以下面只给出添加与修改的实现过程。

583图书馆管理员修改图书类别及统记功能的实现

在此窗体中能对图书的类别进行删除,添加和修改,这模块的功能的实现过程与图书记录的删除,添加和修改一样的,但是这个窗体还能跟据图书类别进行统计,还可根据Book表和owner表统计出图书总数目,库存图书数目,借出图书数目及借阅过期的图书数目。在这里给出统计图书总数目,库存图书数目,借出图书数目及借阅过期的图书数目的实现过程中的几个函数和过程

584图书馆管理员借阅者管理功能的实现

查询借阅者可根据借阅者的借书证号或姓名或身份编号查找到借阅者的信息,也可以实行模糊查找,这个功能的实现与前面图书查找的实现过程一般,就不再详细说明。

585图书馆维护借阅者管理功能的实现

此功能能对借阅者信息进行查看添加、删除、修改。在这里给出刷新按钮的实现过程

586图书馆身份维护功能的实现

这一部分是对借阅者身份进行管理,能对身份进行添加、删除、修改。并且同样的在listview中选中某条或多条记录时会在相应的右边的组件中显示出信息。此功能实现过程与前面所叙有雷同,略。

587图书馆借阅者统计功能的实现

此功能按借阅者身份进行统计,得出具有某种身份的借阅者总数,此种身份的并借阅图书的借阅者数和所借阅的图书数,在下面给出实现过程。

588图书馆统计借阅过期记录功能的实现

打印出的借阅过期催还报表如下图所示:

此报表能显示按借书证号升序排列的借阅信息超过限定时限的信息,其中主要的SQL语句如下:

59系统信息显示的实现

显过本系统的信息,并且右边的字向上滚动显示,主要实现如下:

以上就是关于数据流图与数据库中的数据表全部的内容,包括:数据流图与数据库中的数据表、1、 什么是数据流图其作用是什么其中的基本符号各表示什么含义、数据流图用什么工具等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9314755.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存