图书馆管理系统

图书馆管理系统

摘要

图书管理系统是典型的信息管理系统(m is),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发。对于前者,要求建立数据一致性和完整性强、数据安全性好的数据库。对于后者,要求应用程序功能齐全,易于使用。

因此,根据开放式图书馆的要求,我对MS SQL Server2000数据库管理系统、SQL语言原理、Delphi应用程序设计和Delphi数据库技术进行了深入的研究和应用,主要完成了图书管理系统的需求分析、功能模块划分和数据库模式分析,并设计了数据库结构和应用程序。系统运行结果证明,本文设计的图书管理系统能够满足借阅者、图书管理员和高级管理人员的需求。

第一章简要介绍了数据库应用系统和图书管理系统的发展,分析了开发图书管理系统应该做的工作。

第二章系统地分析了数据库的设计和SQL语言的使用,为更深入地理解数据库应用奠定了基础。

第三章研究了具体的开发工具Delphi 6.0,系统地介绍了它的数据库组件、SQL语言在Delphi中的应用以及其他关键的数据库编程技术。

第四章分析了图书馆管理信息系统的应用需求,根据数据库设计理论,逐步给出了系统需求规格说明、局部er图、全局ER图、系统关系模式和子模式。数据库采用MS SQL Server2000建立。

第五章进行了具体的程序设计,具体划分了三类用户的操作权限,设计了三种操作界面。实现了数据库表的浏览、记录的添加、删除和修改、报表的生成、多数据库表的连接操作、多条件查询和模糊查询、不可更新查询结果集的灵活更新操作、主从表操作和密码维护功能。最后,系统还可以导入数据库来操作任何具有相同结构的数据库。

该设计充分利用了Delphi 6和MS SQL Server2000数据库技术的强大功能,提高了编程效率和可靠性。

关键词:数据库,SQL语言,MS SQL Server,Delphi6,

数据库组件,图书管理,表单,列表视图组件

24

37

5.2数据模块表单的设置

1.1数据库应用系统开发简介

在开发数据库应用系统之前,要了解开发数据库的基本概念,对数据库结构、步骤、开发系统以及开发数据库应用程序的方法有清晰的认识和了解。

数据库应用系统开发的目标是构建一个满足用户长期需求的产品。开发的主要过程是了解用户的需求,然后将其转化为有效的数据库设计。把设计变成实际的数据库,这些数据库功能齐全,应用高效。

数据库技术一直是计算机软件邻域研究中一个非常重要的课题,它产生于20世纪60年代。近30年来,数据库技术发展迅速,已经形成了比较完整的理论体系和大量的实用系统。而且,近年来,随着万维网(WWW)的快速增长和互联网技术的飞速发展,数据库技术已经成为最热门的技术之一。

1.1.1数据库

图1.1显示了数据库系统的主要组件。数据库由DBMS(数据库管理系统)处理,由开发人员和用户通过应用程序直接或间接使用。主要包括四个要素:用户数据、元数据、索引和应用元数据。

1.1.1.1用户数据

目前,大多数主流数据库管理系统将用户数据表示为关系。现在把关系想象成数据表。表格的列包含字段或属性,表格的行包含与业务环境中的实体相对应的记录。并非所有的关系都同样符合要求,有些关系比其他关系更有结构性。第二章描述了一个产生良好结构关系的过程,称为规范化。

为了比较结构差的关系和结构好的关系的区别,本文以本文设计的图书管理系统中图书与图书借阅者的关系为例。假设设计关系R1(图书卡号、姓名、性别、身份证号、联系电话、书号、书名、图书类别、作者、出版社、出版日期、备注、价格、数量);这种关系的问题是,它有两个不同主题的数据,即图书借阅者和图书。这样形成的关系,修改起来就会有问题。因为借书人可能会借不止一本书,如果借书人的某个字段(比如联系电话)发生了变化,那么它借的书记录(可能不止一本)也一定会发生变化,这就不好了。因此,数据最好用两个关系来表示。现在如果借书人更改联系电话,只需要更改关系(表)用户对应的行即可。当然,如果您想生成一个显示图书名称及其借阅者联系电话的报告,您需要将这两个表的行组合起来。结果表明,单独存储关系并在生成报告时组合它们比将它们存储在合成表中更好。

用户(图书卡号、姓名、性别、身份证号、身份证、联系电话等)

图书(书号、书名、图书类别、作者、出版社、出版日期、备注、价格、数量)

1.1.1.2元数据

数据库是自描述的,这意味着它包含对其结构的描述,这称为元数据。因为DBMS产品用于存储和操作表,所以大多数产品以表的形式存储元数据,有时也称为系统表。这些系统表存储数据库中的表,指示每个表中有多少列,哪一列是主键,以及每一列的数据类型的描述。它还存储索引、关键字、规则和数据库结构的其他部分。

将元数据存储在表中不仅对DBMS有效,而且方便了用户,因为他们可以使用与用户数据相同的查询工具来查询元数据。本文第二章介绍的SQL语言既可以用于元数据,也可以用于用户数据。

1.1.1.3指数

第三种类型的数据提高了数据库的性能和可访问性,这种数据通常称为开销数据。虽然有时也使用其他类型的数据结构,如链表,但它主要是一个索引。索引可用于快速排序和访问数据。以我的图书管理信息系统中的图书表为例来说明。

假设数据在磁盘上按‘书号’升序排列,用户想打印一个按‘书名’排序的图书数据报表。因此,所有数据都需要从源表中提取并排序,这是一个非常耗时的过程,除非表非常小。或者,您可以在“图书名称”字段上创建一个索引,该索引的条目按“图书名称”排序,这样索引的条目可以被读出并用于按顺序访问图书数据。

索引用于快速访问数据。例如,用户只想访问图书表中图书类别值为“01”的学生。如果没有索引,则必须搜索整个源表;但是有了索引,您可以找到索引条目并使用它来挑选所有合适的行。

索引有助于排序和搜索,但这是有代价的。book表中的每一行发生变化,索引也必须发生变化,这意味着索引不是任意的,应该在真正需要的时候保存。

1.1.1.4应用元数据

存储在数据库中的第四个数据是应用程序元数据,它用于存储用户表单、报告、查询和其他形式的查询组件。并非所有的DBMS都支持应用程序组件,支持组件的DBMS也不一定将所有组件的结构作为应用程序元数据存储在数据库中。然而,大多数现代DBMS产品将这些数据存储为数据库的一部分。一般来说,数据库开发人员和用户不会直接访问应用程序元数据。相反,他们通过DBMS中的工具处理这些数据。

MS SQL Server2000支持应用程序元数据,如表单和存储过程。

1.1.2数据库管理系统

数据库管理系统(DBMS)是指管理数据库系统中数据的软件系统。DBMS是数据库系统的核心组成部分。对数据库的所有操作,包括定义、更新和各种控制,都是通过DBMS进行的。DBMS总是基于某种数据模型,可以看作是某种数据模型在计算机系统上的具体实现。根据数据模型的不同,数据库管理系统可以分为层次型、网络型、关系型和面向对象型。MS SQL Server2000是一个关系数据库管理系统。

关系模型。关系模型主要用二维表结构表示实体集,用外键表示实体之间的关系。关系模型是几个关系模式的集合。关系模式相当于上面提到的记录类型,它的实例叫做关系,每个关系实际上是一个二维表。

关系模型与层次和网格模型之间的最大区别是使用键码而不是指针来导航数据。表格简单易懂,编程中不涉及存储结构、存取技术等细节。关系模型是一个数学模型。SQL语言是关系数据库的标准化语言,已经得到了广泛的应用。

如图1.1所示,DBMS的特性和功能可以分为三个子系统:设计工具子系统、操作子系统和DBMS引擎。

设计子系统有一个工具集,可以简化数据库及其应用程序的创建。它通常包含用于生成表格、表单、查询和报告的工具。DBMS产品还提供编程语言和编程语言的接口。

运行子系统处理由设计子系统开发的应用组件。它包含一个正在运行的处理器,用于处理表单和数据库之间的数据交互,以及回答查询和打印报告。

DBMS引擎接受来自其他两个组件的请求,并将其转换为操作系统的命令,以便在物理介质上读写数据。DBMS引擎还涉及事务管理、锁定、备份和恢复。

1.1.3创建数据库

1.1.3.1数据库模式

数据库模式定义了数据库的结构、表、关系、域和业务规则。数据库模式是一种设计,数据库和应用程序都建立在它的基础上。

域是可能值的集合。您必须为每个表的每一列确定域。除了数据的物理格式之外,还需要确定某些字段对于表是否是唯一的。

数据库模式的最后一个元素是业务规则,业务规则是对需要在数据库和数据库应用程序中反映的业务活动的约束。业务规则是模式的重要组成部分,因为它们指定了无论DBMS引擎收到什么样的数据更改,允许的数据值都必须满足的约束。不管无效数据更改请求是来自表单用户、查询/修改请求还是应用程序,DBMS都应该拒绝它。

不幸的是,不同的DBMS产品以不同的方式实现业务规则。在某些情况下,DBMS产品没有能力实现必要的业务规则,必须将它们编码到应用程序中。

创建一个表格

1.1.3.3定义触点

1.1.4应用程序组件

数据库应用程序包括表单、查询、报告、菜单和应用程序。

1.2图书管理系统

当今时代是一个飞速发展的信息时代。各行各业都离不开信息处理,这是计算机广泛应用于信息管理系统的环境。电脑最大的优点是可以管理信息。利用计算机控制信息,不仅提高了工作效率,而且大大提高了其安全性。

特别是对于复杂的信息管理,计算机可以充分发挥其优势。计算机信息管理与信息管理系统的发展密切相关,信息管理系统是系统管理的前提。这个系统是为了更好地管理图书馆信息而设计的。

图书馆作为信息资源的集散地,拥有大量的图书和用户借阅资料,包括大量的信息数据管理。现在很多图书馆都是初步使用,甚至还没有使用过计算机进行信息管理。据调查,他们过去管理信息主要靠基于文本、表格等纸质介质的手工处理。图书借阅的统计和核实(如借阅天数、超限天数等)往往是通过人工检查借书证来进行的,手工计算并复制借阅者的借阅权限和借阅天数。数据信息处理工作量大,容易出错;因为数据量大,容易丢失,很难找到。总体来说,缺乏系统化、规范化的信息管理手段。有些图书馆虽然有计算机,但没有用于信息管理,资源闲置,这是管理信息系统开发的基础环境。

数据处理是手工操作,工作量大,出错率高,而且出错后不容易改。图书馆对图书借阅情况进行人工管理,但是图书借阅信息的管理却因为信息量大而混乱复杂。一般借书情况都记录在借书证上,书的数量和内容都记录在档案里。图书馆的工作人员和管理人员当时才清楚。时间长了,他们要想进一步查询,就得翻看,在很多资料里找,查询费时费力。对很久以前的书进行修改就更难了。

基于这个问题,我认为有必要建立图书管理系统,使图书管理规范化、系统化、程序化,避免图书管理的随意性,提高信息处理的速度和准确性,及时、准确、有效地查询和修改图书。

1.1系统所做的功

1)了解应用开发工具的现状。

Delphi 6.0编程基础

3)微软SQL Server基础

4)设计数据库;设计界面

5)开发数据库。数据库实现的一些功能如下

l数据和数据描述的醒目显示;

l多条件查询、多记录检索和模糊查询;

l数据文件以一定的存储格式导入到数据表单中,经过数据完整性验证后存储在数据库中;

数据库安全设计;

数据库、数据接口和界面的设计。

1.3本文所做的工作

引言简要介绍了数据库应用系统的结构和发展,分析了图书馆管理信息系统设计的特点和任务。

第二章介绍数据库的设计和范式分析,系统介绍SQL语言,为设计和理解应用程序做铺垫。

第三章介绍了Delphi 6.0的数据库编程技术,SQL语言在Delphi 6.0中的应用以及MS SQL Server的建立。

第四章分析了图书管理系统的应用需求,设计了系统的数据库结构,并根据需求划分和细化了系统功能。

第五章根据第四章的设计结果,利用MSSQL Server2000和Delphi 6.0设计了具体的应用程序。

总结部分介绍了设计经验和编程经验,指出了系统设计的不足和改进方向。

第二章数据库的理论基础

一个成功的信息管理系统是建立在许多条件基础上的,而数据库是其中最重要的条件和关键技术之一。

信息管理系统涉及的数据库设计分为五个步骤:数据库需求分析、概念设计、逻辑设计、物理设计和负载测试。

(1)数据库需求分析的任务是将业务管理文档流成数据流,划分主题之间的边界,绘制DFD图,完成相应的数据字典。

(2)概念设计的任务是从DFD画出本题的实体-关系图,列出各个实体和关系的轮廓表。

(3)逻辑设计的任务是从E-R图和相应的大纲表中确定各个实体和关系的表名属性。

(4)物理设计的任务是确定所有属性的类型、宽度、取值范围,设计基本表的主键,将所有表名、字段名翻译成英文(现在很多软件都可以支持中文字段,比如MS SQL Server,就是我用的中文字段名),从而实现物理数据库的建立,完成数据库物理设计字典。

(5)加载测试贯穿于程序测试的全过程,录入、修改、查询、处理的整个工作都可以看作是数据库的加载测试。

要设计一个好的信息管理系统数据库,除了满足系统要求的功能外,还必须遵循以下原则:

基本表的数量越少越好。

主键越少越好。键是连接表的工具。主键越少,表之间的连接越简单。

字段越少越好。

所有基本表格的设计应尽可能符合第三范式。

在数据库设计中,如何处理多对多关系和如何设计主键是需要重点考虑的两个难题。接下来,我们从SQL应用、数据库设计范式和查询优化等方面重点研究了本课题的关键技术和实现难点并加以解决。

2.1数据库系统设计与范式分析

信息系统的主要任务是通过大量的数据获取管理层所需的信息,这就需要存储和管理大量的数据。因此,建立良好的数据组织结构和数据库,使整个系统能够快速、方便、准确地调用和管理所需的数据,是衡量信息系统开发质量的主要指标之一。

2.1.1数据库系统设计

数据库设计主要是关于数据库的逻辑设计,即按照一定的分类、分组体系和逻辑层次来组织数据,这是面向用户的。在设计数据库时,需要综合企业各部门的档案数据和数据需求,分析数据之间的关系,根据DBMS提供的功能和描述工具,设计出规模合适、数据冗余少、访问效率高、满足各种查询需求的数据模型。

数据库设计的步骤是:

(1)数据库结构的定义:目前有些数据库管理系统(DBMS)是支持联机事务处理CLTP(负责收集、处理和存储事务数据)的操作型DBMS,有些大型DBMS可以支持数据仓库和联机分析处理CLAP(一种支持决策的数据处理操作),有些数据库是关系型的,有些数据库可以支持面向对象的数据库。为选定的DBMS定义数据库结构。

(2)数据表定义:数据表定义是指定义数据库中数据表的结构。数据表的逻辑结构包括:属性名、类型、表示、默认值、校验规则、关键字、是否可以为空等。关系数据库应按照关系标准化的要求来设计,但为了达到高效率,标准化的程度应根据应用环境和条件来确定。数据表设计不仅要满足数据存储的要求,还要增加一些反映相关信息、操作职责和中间数据的字段或临时数据表。

(3)存储设备和存储空间组织:确定存储位置、存储路径、存储设备等。的数据、备份方案,以及如何确保多个版本的一致性和数据完整性。

(4)数据使用权限的设置:根据用户的不同使用需求,确定数据的用户使用权限,保证数据安全。

(5)数据字典设计:用一个数据字典来描述数据库的设计,便于维护和修改。

为了更好地组织数据,设计一个实用的应用数据库,我们应该注意以下几个问题:

数据结构的规范化重组:数据的规范化表达,后面会详细讨论。

关系数据结构的建立:基础数据结构标准化重组后,必须建立整个数据的关系结构。这一步完成后,数据库和数据结构的设计就基本完成了。只有将数据分析和数据字典的内容代入到设计好的数据整体关系结构中,标准化的数据库体系结构才得以建立。

关系数据结构的建立涉及三个方面:确定关联的关键索引项,建立关联表;确定单亲记录结构;建立整个数据库的关系结构。

(1)链接关系的确定

经过上述的数据标准化和重组,我们可以保证每一个基础数据表(我们简称为表)都是标准化的,但是这些单个的表并不能完全反映事物,通常我们需要指标体系的整体指标数据才能充分反映问题。也就是说,在这些基本表的每一段中,都存储着同一事物不同侧面的属性。那么计算机系统如何知道哪些表中的哪些记录应该对应于其他表中的哪些记录,它们代表的是同一个东西呢?因此,在设计数据结构时,需要确定表之间的数据记录关系。表与表之间的这种数据关系一般是通过主关键字或辅助关键字之间的连接来实现的。因为只有每个表中的main关键字才能唯一标识表中的这个记录值(因为表中的其他数据字段函数根据第三范式的要求依赖于main关键字),所以通过关键字连接表,可以唯一标识某个东西的不同属性在不同表中的存储位置。

(2)确定单一的父子关系结构

所谓确定单一父系关系结构,就是消除各种已建立的表中的多对多(以下简称M:N)现象,即尽量使所有表中记录之间的关系呈树状(只有一个主干可以发出几个分支,而不是几个主干可以交替发出几个分支)。所谓“父系”,是指表的父关系表。消除多对多关系可以借助E-R图解决,在系统分析中也可以注意避免这种情况。

消除这种M:N情况的方法也很简单。只需在两个表之间增加一个表,原来的M:N关系就变成了M:1,1:N关系。

确定数据资源的安全属性:

通用数据库管理系统为我们提供了定义数据安全性和机密性的功能。系统提供的安全功能一般有八个级别(0-7级)和四种不同的方式(只读、只写、删除和修改),允许用户使用这八个级别的四种方式自由定义每个表。

通常有以下方法来定义安全机密性:

A.原则上所有文件都定义为四级,个人优先级特别高的办公室(终端或电脑访问账号)可以定义为高于四级的级别,反之亦然。

b .统计文件(表格)和数据输入文件通常被定义为对该工作站只写,对其他工作站只读。

c财务等机密文件一般定义为只对中间工作站(如财务部)可写、可修改、可擦除,对其他工作站为只读,而且不是所有人都能看,只有同等级别、级别高的才能看。

2.1.2数据库设计范式分析

建立良好的数据索引系统是建立数据结构和数据库最重要的部分。好的数据索引体系是建立DB的必要条件,但不是充分条件。我们可以认为,建立的指标体系中的一个指标类就是关系数据库中的一个基本表,这个指标类下的每个具体指标就是这个基本表中的一个字段。但是,用这种方式直接构建数据库显然不是最好的。在建立数据库之前,必须以标准化的方式重新组织索引系统中的数据结构。

A.数据组织的标准化形式

在数据的标准化表达中,一组相互关联的数据一般称为一个关系,这个关系下的每个数据指标项称为一个数据元素。这种关系在具体数据库中实现时就是一个基本表,数据元素就是基本表中的一个字段。标准化表达式还规定,一个数据元素必须定义为每个基本表中的一个键,它可以唯一地标识表中其他相关的数据元素。在规范化理论中,表是二维的,它具有以下四个性质:

l在表中的任何一列,数据项应属于同一属性(如图,每列包含不同合同记录的相同属性数据)。

l表中各行不同,不允许有重复项(图中每一行都是不同的合同记录)。

l表中,行的顺序无关紧要(如图,每一行都包含合同记录,所以先放哪个合同无关紧要)。

l表中,列的顺序无关紧要,但不能重复(如图,谁先谁后无所谓,但不能重复或重名)。

在表的形式的标准化定义之后,有五种数据结构的标准化定义,它们被命名为标准化模式和范式。这五种范式中,一般只使用前三种,对于常见的系统来说已经足够了。而且这五种范式是“向上兼容”的,即符合第五种范式的数据结构自动符合第一、二、三、四种范式,符合第四种范式的数据结构自动符合第一、二、三种范式,以此类推。

第一范式(1st NF)意味着同一个表中没有重复项,如果有,应该删除重复项。这种删除重复项的过程称为规范化。在本文讨论的开发方法中,1st NF其实是没有意义的。因为我们的标准化索引系统和表格流程自动确保所有?/div & gt;