关系数据库中的规范化

2024-08-07

关系数据库中的规范化(精选7篇)

关系数据库中的规范化 篇1

1、引言

规范化的理论首先由E.F.Codd于1971年提出, 目的是要让设计者能够设计出最优秀的关系数据库模式。具体主要体现在两个方面, 一方面可以最大可能的消除冗余数据, 如把相同的数据存储在超过一个表里;另一方面可以最大限度的确保数据的依赖性处于有效状态, 如相关数据只存储在一个表里。这两个目标的实现对关系数据库很有意义, 因为能够减少数据库和表的空间消耗, 并确保数据存储的一致性和逻辑性。

国际数据库界制定了一系列构建数据库必须遵循的特殊规则, 以确保数据库的规范化。在关系数据库里, 这种规则就是范式, 在数据库的世界里用数字来定义不同级别的范式, 根据关系模式满足的不同性质和规范化的程度, 把关系模式分为第一范式、第二范式、第三范式、BC范式和第四范式等, 范式越高、规范化的程度越高, 则关系模式越好, 越能体现上面两个目标。

在研究规范化应用于关系数据库之前, 有必要了解关系数据库的相关知识。

2、关系数据简介

数据库这一概念提出后, 先后出现了几种数据模型。其中基本的数据模型有三种:层次模型系统、网络模型系统、和关系模型系统。60年代末期提出的关系模型具有数据结构简单灵活、易学易懂且具有雄厚的数学基础等特点, 从70年代开始流行, 发展到现在已成为数据库的标准。目前广泛使用的数据库软件都是基于关系模型的关系数据库管理系统。它具有如下性质:

1、列是同质的, 即每一列中的分量是同类型的数据, 来自同一个值域;

2、不同的列可以出自同一值域, 每一列称为属性, 要给予不同的属性名;

3、行和列的顺序是无关紧要的, 即行和列的次序可以任意交换;

4、元组不可以重复, 即任意两个元组不能完全相同;

5、每一分量必须是不可分的最小数据项;

6、每个关系都有一个主关键字唯一标识它的各个元组。

3、规范化在关系数据库中的应用

数据库的设计范式是数据库设计所需要满足的规范, 满足这些规范的数据库是简洁的、结构明晰的, 同时, 不会发生插入、删除和更新操作异常。如果没有数据库设计所需要满足的规范, 不仅给数据库的编程人员制造麻烦, 而且可能存储了大量不需要的冗余信息。

3.1 第一范式 (1NF)

每个关系模式都应满足最低要求, 即关系的所有分量都必须是不可分的最小数据项, 关把其称为第一范式 (1NF) 关系。图1所示的表格就不是规范化的关系, 因其"学生"不是基本数据项, 将图1转换成图2所示的表格后就是规范化的1NF关系了。

很显然, 在当前的任何关系数据库管理系统 (DBMS) 中, 谁也不可能做出不符合第一范式的数据库, 因为这些DBMS不允许我们把数据库表的一列再分成二列或多列。因此, 我们想在现有的DBMS中设计出不符合第一范式的数据库都是不可能的。

3.2 第二范式 (2NF)

数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖 (部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况) , 也即所有非关键字段都完全依赖于任意一组候选关键字。

假定选课关系表为选课 (学号, 姓名, 年龄, 课程名称, 成绩学分) , 关键字为组合关键字 (学号, 课程名称) , 因为存在如下决定关系:

(学号, 课程名称) → (姓名, 年龄, 成绩, 学分)

这个数据库表不满足第二范式, 因为存在如下决定关系:

(课程名称) → (学分) ; (学号) → (姓名, 年龄)

即存在组合关键字中的字段决定非关键字的情况。

由于不符合2NF, 这个选课关系表会存在如下问题:

(1) 数据冗余:

同一门课程由n个学生选修, "学分"就重复存储了n-1次;同一个学生选修了m门课程, "姓名"和"年龄"就重复存储了m-1次。

(2) 更新异常:

若调整了某门课程的学分, 数据表中所有行的"学分"值都要更新, 否则会出现同一门课程学分不同的情况。

(3) 插入异常:

假设要开设一门新的课程, 暂时还没有人选修。这样, 由于还没有"学号"关键字, "课程名称"和"学分"也无法记录入数据库。

(4) 删除异常:

假设一批学生已经完成课程的选修, 这些选修记录就应该从数据库表中删除。但是, 与此同时, "课程名称"和"学分"信息也被删除了。很显然, 这也会导致插入异常。

把选课关系表改为如下三个表:

学生 (学号, 姓名, 年龄) ;课程 (课程名称, 学分) ;选课 (学号, 课程名称, 成绩) 。这样的数据库表是符合第二范式的, 消除了数据冗余、更新异常、插入异常和删除异常。

另外, 所有单关键字的数据库表都符合第二范式, 因为不可能存在组合关键字。

3.3 第三范式 (3NF)

在第二范式的基础上, 数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。所谓传递函数依赖, 指的是如果存在"A→B→C"的决定关系, 则C传递函数依赖于A。因此, 满足第三范式的数据库表应该不存在如下依赖关系:

关键字段→非关键字段x→非关键字段y

假定学生关系表为学生 (学号, 姓名, 年龄, 所在学院, 学院地点, 学院电话) , 关键字为单一关键字"学号", 因为存在如下决定关系:

(学号) → (姓名, 年龄, 所在学院, 学院地点, 学院电话)

这个数据库是符合2NF的, 但是不符合3NF, 因为存在如下决定关系:

(学号) → (所在学院) → (学院地点, 学院电话)

即存在非关键字段"学院地点"、"学院电话"对关键字段"学号"的传递函数依赖。

这个关系存在数据冗余、更新异常、插入异常和删除异常, 这里就不进行详细的分析了, 读者可以参考前面的分析, 自己进行理解分析。

把学生关系表分为如下两个表:学生 (学号, 姓名, 年龄, 所在学院) ;学院 (学院, 地点, 电话) 。这样的数据库表是符合第三范式的, 消除了数据冗余、更新异常、插入异常和删除异常。

3.4 BC范式 (BCNF)

在第三范式的基础上, 每个函数依赖的左部都是关键字, 即所有的决定因素都是关键字, 则符合BC范式。

假设仓库管理关系表为仓库管理 (仓库号, 设备号, 职工号, 数量) , 且有一个职工只在一个仓库工作;一个仓库可以存储多种物品。这个数据库表中存在如下决定关系:

(仓库号, 设备号) → (职工号, 数量) ;

(职工号, 设备号) → (仓库号, 数量)

所以, (仓库号, 设备号) 和 (职工号, 设备号) 都是仓库管理的候选关键字, 表中的唯一非关键字段为数量, 它是符合第三范式的。但是, 由于存在如下决定关系:

(仓库号) → (职工号) ; (职工号) → (仓库号)

即存在关键字段决定关键字段的情况, 所以其不符合BC-NF范式。

这个关系存在更新异常、插入异常和删除异常, 这里就不进行详细的分析了, 读者可以参考前面的分析, 自己进行理解分析。

把仓库管理关系表分解为二个关系表:

仓库管理 (仓库号, 职工号) ;仓库 (仓库号, 设备号, 数量) 。这样的数据库表是符合BCNF范式的, 消除了删除异常、插入异常和更新异常。

3.5 第四范式 (4NF)

要了解第四范式, 要先了解多值依赖, 那么什么是多值依赖呢?我们以一个实例来加以说明这个问题。

假设手机生产销售关系表为Phone (手机型号, 手机生产商, 手机商店) , 并且某手机生产商生产的任何手机都要, 并且只能在本手机生产商的所有商店进行销售。根据这个描述, 我们可以理解为:

(1) 一家手机生产商制造多种型号的手机, 但一种型号的手机仅有一家生产商制造;

(2) 一家手机生产商有多个手机商店, 但一个商店只属于一家生产商;

(3) 一家生产商在其全部手机商店出售全部型号的手机。

在这个关系中, 任何一个或两个字段的组合都不可能成为关键字, 它的关键字只能是全部三个字段的组合, 显然这个关系是BCNF的。

根据以上的规则, 比如某生产商推出了新型手机, 应在所有商店销售, 那么有几个商店, 就得向关系表中插入几条新记录, 同样新开一家商店, 则有几种型号的手机, 就要向关系表中插入几条新记录。反之, 比如有些手机被淘汰了, 则有几个商店, 就得在关系表中删除几条记录, 有些商店不开了, 则有几种型号的手机, 就得在关系表中删除几条记录。

造成这样结果的原因就是因为每个手机生产商都有一组手机型号与其对应, 而手机生产商生产的各种型号的手机与商店无关。这就是多值依赖, 称为手机型号多值依赖于手机生产商。当然这个关系上的数据冗余也是非常明显的, 数据增、删非常不方便。

把手机生产销售关系表分解为两个关系表:

手机生产 (手机型号, 手机生产商) ;手机销售 (手机生产商, 手机商店) 。这样的数据库表是符合第四范式的, 消除了删除异常、插入异常和数据冗余等。

4、结束语

规范化是在逐步消除非需函数依赖和多值依赖的过程中进行的。首先将复合项分解成最小数据项, 如果是单属性关键字关系, 那自然就是2NF关系, 否则消除部分函数依赖可得2NF关系, 接着判断是否有非主属性对关键字的传递函数依赖, 如果有就消除之, 可得3NF关系, 单属性关键字关系自然是BCNF关系, 若是复合关键字, 且有主属性对非主属性的函数依赖, 消除这种函数依赖可得BCNF关系, 最后判断是否有多值函数依赖, 从而得到4NF关系。

多数3NF关系自然是BCNF关系或4NF关系, 并且3NF关系已经消除了绝大部分操作异常现象。所以在实际数据库设计中, 对个别不是BCNF或4NF关系的3NF关系, 是否有必要做进一步的分解和转换, 可以视具体情况而定, 可以在后期的程序上做一些限定, 来避免一些操作异常现象的发生。

摘要:关系数据库规范化和函数依赖等问题, 是设计一个比较好的关系数据库模式必须要掌握的知识。本文利用几个容易理解的实例, 对数据库模式规范化过程中要注意的问题以及如何进行规范化进行了详细的阐述。

关键词:数据库,规范化,关系,范式

参考文献

[1]崔巍.数据库系统及应用[M]北京高等教育出版社, 1999

[2]高荣芳.数据库原理[M]西安西安电子科技大学出版社, 2007

关系数据库中的规范化 篇2

一、数据仓库是企业CRM的核心

面对日益激烈的市场竞争,客户越来越成为企业最重要的资源,企业要理解客户、影响客户就必须通过不断地获得与客户相关的信息,了解客户,进而为客户提供个性化服务,从而提高客户的满意度和持久度,为企业创造利润。然而在企业中客户数据可能存在于订单处理、客户支持、营销、销售、查询系统等各个环节或部门,产生这些数据的系统是专门为特定的业务设计的,并拥有关于客户的部分信息,因此企业要想成功实施CRM首先必须把这些分散的客户信息集成起来,这涉及到CRM如何与企业现有的系统进行连接,目前一种普遍的做法是将CRM与数据仓库相结合,建立时需要考虑以下几方面的因素:

1、CRM中数据仓库的是客户数据的集成。CRM数据仓库的建立需要把企业内外的客户数据集成起来。从这些不同信息源中对个别顾客进行分析、识别,并寻求这些顾客间的相互关系,如有一些顾客可能有亲属关系。就客户数据集成来讲,主要包括两个方面:其一,企业需具有对顾客进行匹配和合并的能力。其二,记录的匹配和合并的完整性和准确性是很重要的。此外,如果把本不应合并的记录合并了,这时对客户的看法也是歪曲的。这些不完整、不准确和不可靠的匹配都会导致不准确的分析结果和决策,导致企业费用的增加和利润的减少。因此,对于CRM客户匹配和建立完整准确的数据仓库来讲,姓名和地址这两个信息片断是很重要的,没有姓名和地址所进行的客户匹配是不充分的。

2、保持已有客户和添加新客户与别的类型的数据仓库有着诸多不同,CRM数据仓库的维护更具有挑战性。CRM中的数据仓库是逐渐更新的,而不是一次性完全更新的。这主要基于两个方面的原因:数据仓库所利用的信息源中的历史数据经过一段时间后可能被擦掉;在每次更新时,都重新进行客户记录匹配和重新建立数据仓库的做法工作量太大,不可行。比较合理的做法是,在保留已有数据的基础上,每次更新时都加入新的数据。首先识别新数据是关于新客户还是关于数据仓库中已有客户,如果是新的客户数据,就要给这个客户一个独立的标识,在数据仓库中插入一行,如果是关于已有客户的数据,就要对这些客户记录的相关信息片断进行更新。把客户数据仓库的更新与销售数据仓库的更新做一个比较。每个既定的时间点,新的销售数据被加入到销售数据库中。在此过程中,不需要把新数据与已有数据进行匹配,不会对已有的数据进行修改。这种更新是全新数据的载入,比上面所讨论的客户数据的更新要简单。

3、建设和维护企业CRM数据仓库的工具选择。建设和维护企业CRM数据仓库有两种类型的工具。其一是转换工具,其二是清理工具。前者满足了一般数据仓库的建设和维护需求,通常熟悉的数据仓库工具属于这个行列,它的主要功能是数据抽取、转移和数据载入。但它没有姓名和地址清理、模糊匹配和合并的功能,与已有的数据库的同步化能力比较弱,客户合并的能力也很弱。其主要目标是为OLAP服务,而不是详细的客户水平的数据。后者则可以满足一些特别的需求,但没有提供通常的建设和维护数据仓库的功能,即没有提供抽取、数据载入和更新、元数据管理的功能,其核心工作是清理和匹配。尽管转换工具和清理工具的功能在某些环节上有着交叉,但它们大部分功能是互补的。因此在建设CRM数据仓库的时候,对这两种工具都是需要的,以实现数据和元数据层次的集成,而这种集成常常很费时间,成本也较高。

二、数据仓库企业CRM系统的构建

数据仓库是CRM的灵魂,在CRM中充分发挥数据仓库的作用是CRM系统成败的关键之一,企业利用数据仓库和数据挖掘技术加强客户关系管理势在必行。通过企业CRM数据仓库的建立,实现全部客户数据的集中存储和管理,使不同部门接触客户后的经验能立即与其它部门分享,从而支持整个企业的相关数据分析,提供面向整个企业的决策功能。同时随着信息技术的不断发展,各企业通过建立多种与客户交流的渠道,将面对面、电话接洽、E-mail、Fax或信函以及Web访问协调为一体,以提供更快速和周到的优质服务吸引和保持更多的客户。

以数据仓库为基础的企业CRM系统构架如图所示:

从图中可以看出以数据仓库为基础的企业CRM系统包括三个层次:

1、信息采集系统。数据仓库是企业CRM的基础,可以满足系统对各方面数据的要求,包括客户基本信息、产品、交易信息、反馈信息等等。这些数据可以分为两部分:一是前台数据即来自企业外部的数据,包括客户基本信息(如客户姓名、年龄、性别、地址、联系电话等)、客户行为信息(如客户订货情况)等等,这些信息是海量的,而且是分散的,企业可以通过多种渠道(展销会、Web、电子邮件等)完成CRM数据收集。另一部分数据是来自于企业内部日常运作过程中所产生的信息流,称为后台数据,包括企业产品信息、服务信息、资产数量及其分布情况等等。它们可能分布在不同的硬件、数据库、网络环境中,为不同的业务部门服务。从结构上看,它们是相对独立的,这部分数据一般通过企业内部网络链实行信息的共享与集中。因此,与前台海量数据相比是比较集中的,也比较容易获得。通过信息采集系统企业前台与后台数据被抽取到CRM数据仓库中,利用数据仓库的星状资料模式(Star Schema)的思想,建立数据仓库模型,把数据集成一个统一的整体,得到提供面向全局的数据视图,再以此为基础进行抽取、集成与转换,并以客户信息数据仓库的形式存储。

2、客户服务支持系统。企业建立CRM系统的目标之一是要留住客户,在很多情况下,客户的保持和提高客户利润贡献度依赖于提供优质的服务。因此,客户服务和支持对企业来说是极为重要的。客户服务支持为客户提供了客户服务热线、服务网站等功能。它是企业提高客户满意度、忠诚度从而达到留住老客户、发展新客户的一个重要手段。从数据流向来看,此时的数据应该是双向的。从功能上来看,客户服务支持系统一般包括了客户账号管理、服务合约管理、服务请求管理、联系活动管理以及客户普查等功能。通过这些功能,服务人员能快速地查询客户的服务合约确定客户的服务级别,并创建、分配客户的服务请求。服务人员还可以随时查询与客户的联系记录以及服务请求的执行情况。此过程也将充分利用CRM数据仓库的信息,如客户呼叫中心在为客户提供服务时需要实时查询客户基本信息(信用情况、账户情况等)。客户服务系统为客户的服务过程包括用户的反馈信息也将被CRM数据仓库所记录,以作为今后提高服务响应速度、改善客户服务,提高客户满意度,对服务人员进行考核的依据。

3、信息分析系统。如果对于企业CRM系统而言信息采集是一个起点,那么对所获得的信息进行分析则是支持企业决策的依据。企业CRM系统除了将各个渠道得来的数据,整理成全面、完善的CRM数据仓库之外,还应具备对信息进行分析的能力。在这里的信息分析有两个方面的含义,一是对客户行为的分析,目的是发现客户的偏好,预测客户的个性化需求,以便于企业设计符合客户需求的产品或服务,协助企业制定针对性的营销策略;另一个是对客户反馈信息的分析,目的是通过对“过程”、“客户状态”、“客户满意度”和“客户成本”的评估、检测和分析,帮助企业及时、准确、全面地掌握自己的客户服务水平、销售服务机会等情况。

事实上企业在日常的营运过程中储存了大量详细的客户轮廓的信息和客户交易厅行为的历史数据,这些数据经过抽取、转换和装载过程,形成数据仓库,通过对这些数据的分析来发现隐藏在数据后面的真实情况,并将客户行为数据与其他相关的客户数据集中起来,对客户进行统一的规划,能帮助企业以科学的手段快速地分析、模拟和预测客户的个性化需求,进而设计符合客户需求的产品或服务,为市场分析提供依据。此外,借助于数据仓库的数据清洁与集中过程,将客户对市场反馈信息自动输入到数据仓库中,建立在数据仓库基础上的数据挖掘和多维数据分析,则能够提供强大的市场分析功能。数据仓库为企业提供了综合运行不同平台上的业务数据,能进行不同产品或服务的盈利性分析和风险性分析,以最大限度地增加企业利润和利润占有率。

关系数据库中的行列互换 篇3

不仅如此, 现实世界是错综复杂的, 数据的结构、大小、及数据间的关系也会随着时间的变化而变化。数据库设计人员在逻辑设计时既要考虑目前的数据状况, 还要考虑数据关系在未来可能发生的变化, 设计人员的设计水平和经验至关重要。有些时候, 数据模型设计好且系统开发完成, 运行一段时间以后, 数据的状况和数据间的关系发生了变化, 这时需要对现有的数据模型做适当修改, 并且还要保证现有数据不丢失、保证数据的完整性、一致性, 系统运行可靠和高效率, 这也是数据库系统维护的重要工作。

例如, 在金融行业的CRM系统中 (其他行业也类似) , 需要用关系表来存储个人客户, 其中有电话号码信息, 表1为一种数据模型结构。

此关系的主键为CNO, 且此关系是第三范式的。

另一种数据模型是把客户电话号码分离出来, 用一张单独的表来存储, 表2为其存储结构。

表2中关系Customer的主键为CNO, 是第三范式的;关系Cphone的主键为 (CNO, PHONETYPE) , 也是第三范式的。

第一种方式称作以行的形式存储, 第二种方式称作以列的形式存储。两种方式都符合关系模式设计的规范化原则, 但各有其优缺点。有时设计人员以一种方式设计好关系模式后, 随着时间的变化, 用户需求、报表格式[6,7]、数据间的关系也发生变化, 此种方式的优点变得不明显, 设计人员要用另一种方式来存储数据, 这时就牵涉到关系中数据的行列互换。

1 行列存储方式的比较

上面提到, 行列存储方式各有其优缺点, 图1中的方式是以行的形式存储, 其优点为:

1) 关系模式结构比较清晰, 易于理解。

2) 很多报表的格式与关系模式结构类似, 易于生成。

3) 用一个关系存储数据, 在查询时不需要作多表连接, 具有较高的查询效率。

这种方式也有一些缺点:

1) 关系表中会出现很多空值, 因为不是所有客户都有三种类型的电话号码, 特别是对于客户数量很大的情况 (一般CRM系统中客户数可达百万以上) , 这既浪费存储空间, 又可能会给数据处理带来异常。

2) 存储客户的电话类型数目是固定的, 不够灵活, 若增加或减少电话类型数, 需要增加或减少表的属性, 修改表的结构。

相比较而言, 图2中的方式是以列的形式存储, 它的优缺点正好与图1中的方式相反。其优点为:

1) 若客户没有某种类型的电话号码, 则不存储, 不会出现空值, 从而不会带来可能的数据处理异常。

2) 存储客户的电话类型数目是可变的, 非常灵活, 若增加或减少电话类型数, 不需要增加或减少表的属性, 不必修改表的结构, 只需要在表Cphone插入或删除记录即可。

这种方式的缺点为:

1) 关系模式结构不太清晰, 不太容易理解。

2) 很多报表的格式是以行的形式显示, 不太容易从数据表中直接生成。

3) 因为是用多表存储, 在查询时需要作多表连接, 影响查询效率。

由于两种方式各有其优缺点, 很难说一种方式一定优于另一种方式, 设计人员根据用户需求、数据量、报表格式、数据间的关系会采用一种方式, 但随着时间的变化, 可能会改为另一种方式, 这时就要对关系中的数据进行行列的互换。

下面就以图1、图2为例, 以Oracle 11g[8,9]为工具具体阐述如何进行行列互换的。

2 行到列的转换

假设已有图1中的关系表结构, 需要转换为图2中关系模型。首先创建客户电话号码表Cphone, 创建语句见图1。

再生成表Cphone中的数据, 生成语句见图2。

最后删除表Customer中的列HOMEPHONE、OFFICEPHONE、CELLPHONE, 见图3。

这样就把行的存储方式转换为列的存储方式, 并且不需要重新录入数据, 保证数据的完整性、一致性。

3 列到行的转换

假设已有图2中的关系表结构, 需要转换为图1中关系模型。首先在个人客户表Customer中增加电话号码列:家庭电话、办公电话、手机, 其语句见图4。

再生成表中电话号码的数据, 其语句见图5:

最后删除客户电话号码表Cphone, 见图6。

这样就完成了从列的存储方式到行的存储方式的转换, 也不需要重新录入数据, 保证了数据的完整性、一致性。

4 结束语

以上阐述了关系数据库中行列存储方式及其相互转换, 在实际的数据库应用中有很多这样的情况, 如客户或员工的证件号码 (身份证号、驾驶证号、护照号、学生证号、军官证号等) , 家庭住址 (身份证地址、常住地址等) , 电子邮件 (单位电子邮件、私人电子邮件等) , 这些数据既可以行的形式存储, 也可以列的形式存储, 在数据库系统运行阶段, 由于用户需求、报表生成或数据间的关系变化等原因, 需要将其相互转换。

本文即是基于这样的考虑, 用实例详细阐述了关系数据库中的行列互换, 相信对于关系数据库的模式设计、数据库系统的维护及提高系统性能具有重要借鉴意义。

摘要:关系数据库模式设计的好坏直接影响到整个数据库应用系统的性能, 应遵循关系规范化理论, 而关系中有些类似数据既可以行的形式存储, 又可以列的形式存储。该文阐述了行列这两种存储方式及其优缺点, 并用实例及以Oracle 11g为工具详细描述了关系数据库中数据的行列相互转换, 并给出实现互换的SQL语句, 这对于数据库中类似数据的模式设计、数据库系统的维护都具有借鉴意义。

关键词:行列互换,关系模式,数据库设计

参考文献

[1]王珊, 萨师煊.数据库系统概论[M].4版.北京:高等教育出版社, 2006.

[2]Clare Churcher.Beginning Database Design:From Novice to Professional[M].New York, USA, Springer Science+Business Media LLC.2012.

[3]梁玉强.E-R模型中联系状态研究及应用[J].计算机工程与应用, 2012, 48 (9) :94-97.

[4]郭思培, 彭智勇.数据库规范化理论研究[J].武汉大学学报 (理学版) , 2011, 57 (6) :535-544.

[5]汪辉, 魏书堤.数据库模式设计中派生属性的处理[J].电脑知识与技术, 2012, 8 (28) :6652-6654.

[6]陈竞波, 王永贵.基于语义的报表系统模型[J].计算机工程, 2010, 36 (10) :259-261, 264.

[7]覃雄派, 周晓云, 吴忠信, 等.银行数据大集中环境下大规模固定报表生成[J].华中科技大学学报 (自然科学版) , 2012, 40 (12) 增I:5-8.

[8]Diana Lorentz, Mary Beth Roeser Oracle Database SQL Language Reference, 11g Release 2 (11.2) [M].California, USA, Oracle Corp.2013.

关系数据库中的规范化 篇4

随着信息技术的不断发展,人们利用信息技术处理数据的能力大幅度提高,越来越多的数据库被应用于商业管理、生产控制和工程设计等各种领域。但是,面对不断增加的各种复杂数据,已存在的数据库的查询功能已经不能满足人们的需要,能不能从数据中提取人们所需要的信息和知识是大家越来越关注的问题。传统的统计技术已面临极大的挑战,集统计学、数据库、知识发现等技术于一身的数据挖掘技术应运而生。近几年来,数据挖掘技术在零售业、直效行销界、制造业、财务金融保险、通讯业以及医疗服务等领域应用广泛。

一、数据挖掘的基本概念

(一)“啤酒尿布”的典型案例

在了解数据挖掘的概念之前,我们先来看一个“啤酒尿布”的故事。故事的主角是沃尔玛这个世界上最大的零售商,在其遍布美国数千家超级市场中,小孩尿布与啤酒居然并排摆放在邻近的货价上一起销售,而且两者销量都还不错。原来沃尔玛通过建立的数据仓库,分析了原始交易数据,按周期统计产品的销售信息,然后利用数据挖掘工具进行分析和挖掘,结果发现,每逢周末沃尔玛连锁超市啤酒和尿布的销量很大。进一步调查表明,在美国有孩子的家庭中,太太经常嘱咐她们的丈夫下班后要为孩子买尿布,而丈夫们在买完尿布后又顺手带回了自己爱喝的啤酒,因此啤酒和尿布一起购买的机会是最多的。之后该店打破常规,将啤酒和尿布的货架放在了一起,使得啤酒和尿布的销量进一步增长。啤酒和尿布这两者看似毫无关联,但在特定的条件下,它们之间却有密切的关系,这就是数据挖掘技术。

(二)数据挖掘的概念

数据挖掘(Data Mining)就是从海量的原始数据中,找出隐含在其中的、我们事先不知道的、但又是潜在的有意义的知识和信息,从而利用这些知识来指导我们的活动。从统计学的角度,数据挖掘可以看成是通过计算机对大量的复杂数据的自动探索性分析。随着信息技术的高速发展,人们积累的数据量急剧增长。数据挖掘就是为顺应这种需要应运而生发展起来的数据处理技术。

二、零售业应用数据挖掘的背景

零售业客户关系管理(Customer Relationship Management,CRM)是一种以客户为中心的市场营销理念和策略。 CRM的目标是缩减销售周期和销售成本、增加收入、寻找扩展业务所需的新市场和渠道以及提高客户的价格、满意度、盈利性和忠诚度。

零售业客户关系管理主要通过条形码、销售管理系统、客户资料管理系统等各种途径获得关于商品信息、客户信息、供应商信息及店铺信息等大量的数据信息,如何利用这些海量数据信息分析出哪些商品好卖、哪些商品不好卖、哪些客户适宜哪些商品、商品之间如何搭配,是令零售商头疼的问题。利用数据挖掘工具对这些数据进行分析,可以帮助零售商进行科学的决策,分析哪些商品顾客最有希望一起购买,从而将这些商品摆放在一起;分析商品的销售趋势,从而给零售商提供进货建议;分析购买商品的人员信息,从而帮助零售商选择店铺的所在

地点等。

三、数据挖掘技术的常用算法

数据挖掘是零售业CRM中的核心技术,通过分析顾客已购买商品及这些商品之间的内在联系,确定顾客的购买习惯和关联购买倾向,从而帮助零售商制定营销策略。为了实现在零售业CRM中的应用,数据挖掘技术中主要涉及以下常用算法:

(一)聚类分析算法

聚类分析算法是根据事物的特征对其进行聚类或分类,即所谓物以类聚,以期从中发现规律和典型模式。在零售业中,聚类分析可以帮助市场分析人员从消费者数据库中区分出不同的消费群体来,并且概括出每一类消费者的消费模式或者说习惯。

(二)决策树算法

决策树算法就是利用训练集生成一个测试函数,根据不同取值建立树的分支;在每个分支子集中重复建立下层结点和分支,这样便生成一棵决策树。然后对决策树进行剪枝处理,最后把决策树转化为规则。决策树算法常用于预测模型,它通过将大量数据有目的分类,从中找到一些有价值的,潜在的信息。它分类速度快,特别适合大规模的数据分类处理。

(三)神经网络算法

神经网络算法能够模拟人的神经元功能,经过输入层、隐藏层、输出层等,对数据进行调整、计算,最后得到结果。神经网络算法的优点是它能精确地对复杂问题进行预测。它本身具有良好的鲁棒性、自适应性和高度容错性。

(四)关联规则挖掘算法

关联规则挖掘是用于发现数据库中属性之间的相关联系的一种算法。关联规则发现任务的本质是在数据库中发现强关联规则,利用这些关联规则了解客户的行为,其最典型的例子就是购物篮分析。

四、数据挖掘技术在零售业CRM中的应用

随着日益增长的Web或电子商务方式的兴起,零售业CRM是数据挖掘的主要应用领域。数据挖掘技术可有助于识别客户购买行为,发现客户购买模式和趋势,改进服务质量,取得更好的客户保持力和满意度,提高货品销量比率,设计更好的货品运输与分销策略,减少商业成本。数据挖掘技术在零售业CRM中的应用主要体现在以下几个方面:

(一)使用多特征数据立方体进行销售、客户、产品、时间和地区的多维分析

多维数据分析是指通过多维的方式对数据进行分析、查询和报表。维是人们观察数据的特定角度。例如,企业在考虑产品的销售情况时,通常从客户、产品、时间和地区等不同角度来深入观察产品的销售情况。这里的客户、产品、时间和地区就是维。根据这些维的不同组合和所考察的度量指标从客户基本库中发现不同的客户群,以便决策者根据主客户群的特征作相应的定货、销售、服务等决策。

(二)利用关联分析挖掘关联信息进行购买推荐和商品参照

关联分析就是利用关联规则进行数据挖掘技术,其目的在于挖掘隐藏在数据间的相互关系,发现数据库中形如“90%的顾客在一次购买活动中购买A商品的同时也会购买B商品”之类的知识。通过从销售记录中挖掘关联信息,可以发现买某一品牌商品的顾客很可能购买其他一些商品。这类信息可用于形成一定的购买推荐。商家通过宣传可改进服务,帮助顾客选择商品,增加销售额和减少库存积压。

(三)使用多维分析和关联分析进行促销活动的有效性分析

利用多维分析和关联分析对数据库的数据仔细研究,以分析顾客的购买习惯、广告成功率和其他战略性信息。利用数据库通过检索数据库中近年来的销售数据,用多维关联分析方法,通过比较促销期间的销售量和交易数量与促销活动前后的有关情况,可预测出季节性和月销售量,对商品品种和库存的趋势进行分析还可确定降价商品,并对数量和运作做出决策。此外,用关联分析可以找出哪些商品可以用于促销活动,便于安排商品货源,提高销售额。

(四)序列模式挖掘可用于客户忠诚分析

序列模式分析和关联分析相似,但侧重点在于分析数据间的前后序列关系。序列模式挖掘可用于分析顾客的消费或忠诚的变化,据此对价格和商品的品种加以调整,以留住老顾客,吸引新客户,保证一定的顾客数量。商家可以从原客户后来却转成竞争对手的客户群中,分析其特征,再根据分析结果到现有客户数据中找出可能转向的客户,然后设计一些方法预防客户流失;也可以根据客户的消费行为与交易纪录对客户忠诚度进行排序,根据流失率的等级进而配合不同的策略。

(五)利用交叉销售模式向老客户销售新的产品或服务

零售业和客户之间的关系是持续不断的、发展的,交叉销售是指向老客户销售新的产品或服务的过程。交叉销售是建立在买卖双方互利原则的基础之上,客户因得到更多更好符合他们需求的服务而获益,企业也因销售增长而获益。交叉销售的优势在于,商家可以比较容易得到老客户较为丰富的信息。企业所掌握的客户信息特别是以前购买行为的信息中,可能正包含着决定这个客户下一个购买行为的关键信息。这个时候数据挖掘的作用就体现为它可以帮助企业寻找到那些影响顾客购买行为的信息和因素。

关系数据库中的规范化 篇5

一、XML及DTD技术简单介绍

XML是互联网环境中跨平台、依赖于内容的技术,是当前处理结构化文档信息的有力工具,它使用一系列简单的、用户可自行定义的标记描述数据;以文本文件的形式存储数据,不受操作系统和软件平台的限制,非常适合于异构数据的交换,目前大量的业务系统都采用XML技术进行数据的交换、存储和展示。

DTD(Document Type Definition)是一套关于XML的语法规则,在XML1.0版中,它是XML技术的一部分,它描述和规范了XML文档的逻辑结构、提供了XML文档的验证机制(关于XML的规范、验证技术还有XML Schema),使得XML能够成为数据交换的标准。(图1和图2给出了XML和DTD的样例)

从图1的示例可以看出,XML文档以树状层次结构组织数据,其根元素(orders)包含了若干个子元素(order),子元素(order)又包含了其他的子元素(cust_id,acct_id,inst_id,acc_nbr,fee),结构十分清晰,且各个元素可以由用户自行定义,含义明确,具有良好的开放性和扩展性。

XML以DTD(或XML Schema)来描述、定义其逻辑结构(包括定义XML中的元素、元素类型、元素的上下级关系、属性及其顺序关系等等,如图2)。

而对于XML文档数据的解析、存取,从编程接口来说,有DOM和SAX两种主流的操作方式:DOM(Document Object Model)以树形结构加载整个XML文档,提供了直接获取和操作文档中各个组成部分的API;而SAX(Simple API for XML)则提供了一种事件驱动型的XML标准接口,不需要在内存中构建整个XML树,但是不允许开发人员实际更改原始XML文档中的数据。

二、关系型数据库中的两种XML存储模式

关系型数据库技术是当前最为成熟的数据库技术。商用关系型数据库系统都具有高性能的查询引擎、良好的可扩展性、安全性和健壮性,因此利用关系型数据库系统管理XML数据可以重用数据库的查询优化器和事务处理机制,能够保证XML数据的一致性和完整性;同时,目前大量的应用系统的数据主要都是存放在关系数据库中,将XML数据存储在关系数据库中,可以将XML数据融入到应用系统的其他数据中,便于系统数据的管理和使用。

由于XML采用树型结构组织数据,而关系型数据库采用平面的二维关系存储数据,两者在数据组织结构方面存在差异,所以利用关系型数据库存储XML数据的基本思想就是通过将XML模式向关系模式进行映射来完成数据的存储,而从映射的粒度来说,可以分为文档存储模式和元素存储模式两种(下文中关于关系型数据库的描述以oracle数据库为例)。

1. 文档存储模式:

文档存储模式是将整个X M L文档作为存储对象,直接将XML文档构造为数据库中的一个字段。如图1中的文档可以直接映射为一张关系数据表t_orders的order字段,具体的操作方式如下:

①首先创建关系表:Create t able t_orders(id number(10),odr blob);

②然后将orders.xml的内容直接写入到odr字段中(blob是oracle数据库用来存储大对象的字段类型,其他商用关系型数据库对大对象都有类似支持)。数据库中的存储结构如图3:

2. 元素存储模式:

元素存储模式则是按照xml数据的结构,在关系型数据库中建立起与其结构对应的、具备父子关系的多张关系表,如图1中的文档可以映射为t_orders表和t_order表,具体操作如下:

①首先创建关系表:

②然后将orders.xml的内容根据结构关系写入到表中。数据库中的存储结构如图4:

三、两种存储模式的对比分析

上述两种存储模式虽然都是采用关系型数据库的表来存储XML数据,但在具体操作上有本质的区别,且各有不同的应用场景和数据使用方法:

第一种模式将整个XML作为一个整体存储,不利于利用关系型数据库的标准查询语言进行数据元素的检索,然而在具体应用系统中,特别是在不同应用系统之间利用XML格式进行数据交互的场景下,由于在生产环境下数据库表结构的修改很多时候比XML结构的修改成本更高;而且在复杂的应用环境下,确实有时候是需要利用XML存储半结构化或者非结构化数据的;另外很多商用关系型数据库(如oracle)本身提供了利用XPath等技术对XML文档进行操作的手段,所以该模式也还是有其应用场景的。

第二种模式将XML数据映射成了关系型数据库中的若干张表,也就自然而然地继承了关系型数据在数据检索、查询优化、事务管理等方面的诸多优势,在纯粹利用XML存储结构化数据的场景下有很大的优势。

所以在实际的应用系统设计过程中,针对XML数据的存储方案需要根据实际的应用情况来确定,只有对系统情况进行了详细分析,才能在不同的应用场景下采用最合适的存储方案,另外,也可以尝试一种折中的存储模式即文档存储模式与元素存储模式相结合的方式,具体可以参考文献[5]等相关技术资料。

四、结束语

应用系统的日新月异推动了数据表示和存储技术的发展,XML的易扩展性、灵活性使得其在当前应用系统的数据表示和存储方面发挥了巨大的作用。利用关系型数据库进行XML数据的存储,更是提高了数据的安全性和检索速度,另外由于目前大部分应用系统的业务数据都是存储在关系型数据库上的,所以利用关系型数据库存储XML数据也可以将整个系统的数据类型、查询方式、管理手段统一起来,有利于系统的数据管理。

参考文献

[1]罗军珍,XML在关系数据库中存储方法的研究,重庆大学,May2005。

[2]翁亮,曾昭平,XML技术分析,计算机与网络。2000(1):24-25。

[3]严海兵.基于数据集的X M L数据存储技术[J].2006,23(3):68-70。

[4]万常选,XML数据库技术。清华大学出版社,2005。

[5]杜向华.几种X M L数据存储技术[J].科技信息,2007,(2):190-190.

关系数据库中的规范化 篇6

关键词:关系数据库技术,计算机网络设计,运用

0 引言

随着社会经济建设的不断发展, 计算机网络技术已经深入到社会经济的各个领域, 并逐渐开始在这些社会经济领域发挥关键性的作用, 所以当前计算机网络设计已经成为计算机领域发展中最为热门的研究项目, 本文结合关系数据库对计算机网络设计进行详细阐述。

1 关系数据库的概况

关系数据库是数据库发展的高级形式, 在最初的计算机网络设计活动中, 设计人员将相关的数据以数据库的形式进行基本的保存。随着计算机网络设计活动的发展需求推动, 这些简单的数据库开始呈现出相互之间关联的趋势, 在不断的发展中, 数据库中的数据部分和关系描述部分开始分离, 这种经过加工处理的数据库从一定意义上来说具有了描述性的特征。当使用者需要提取数据时, 并不需要亲自动手对自己需求的数据进行排列组合, 只需要对数据进行有效调度就可以获得有用数据, 目前主流的关系数据库有access、sqlserver、oracle、SQL、sybasedb2等等。

2 计算机网络设计中关系数据库的辅助功能

在计算机网络设计活动中, 关系数据库技术是一种辅助手段, 为计算机网络设计活动提供数据支持。在计算机网络设计活动中, 关系数据库的巨大容量和包含数据信息种类的多元性, 为计算机网络设计活动提供了充分的数据资源支持。

在关系数据库的运用活动中, 使用者只需要在关系数据库中进行数据的赋值就可以进行关系数据的存取和调用活动, 让网络设计活动中遇到的数据和数值问题能够得到及时、有效的解决。而在传统的数据库运行活动中, 数据库的录入和调用需要借助人工操作来完成, 这种数据库运行模式不仅极大的浪费了人力资源, 而且在数据运行的效率和质量上也有很大的缺陷, 经常会导致数据的输入、输出环节出现错误, 甚至会极大的拖延网络设计活动的进程。当采用关系数据库以后, 数据库以网络设计活动为服务对象, 对内部的数据信息内容进行了关联化的处理, 让数据库由过去的数据堆积体衍变成为一种数据的有机管理主体, 内部的网络设计数据与常用的数据关系连接起来, 并采用基于可扩展语言设计了数据库与使用者之间的信息交互界面, 让关系数据库可以与使用者进行数据关系形式的交流, 并根据使用者的数据要求对内部数据信息进行整理、关联。实现了计算机网络设计活动数据管理的智能化[1]。

3 关系数据库技术在计算机网络设计中的基本原理

在计算机网络技术发展的过程中, 数据库技术存在着众多的种类, 其中根据数据库模型的运行模式可以分为:网状模型数据库技术、层次模型数据库技术以及关系数据模型数据库技术。这些数据库技术在不同的计算机网络设计活动中有各自的优势, 其中关系数据模型数据库技术, 以其完美的数据连结技术和高度的数据模型适应性, 成为计算机网络设计活动中通用的一种数据库技术。其在运行过程中展示出的完善的数据连结性, 能够在计算机网络设计活动中, 对任何相关的计算机网络数据进行关联, 并能够在一定数据基础上对多种数据进行综合性的关系链接。这种数据信息服务的全面性和数据链接服务形式的多样性, 能够极大的满足计算机网络设计活动中多样化的数据信息需求, 所以在具体的计算机网络设计活动中成为使用者首选的数据库类型, 被广泛的应用于计算机网络设计中。

计算机网络设计活动是一个复杂、系统的工程性活动, 在其运行活动中要求下属的各个模块都要最大程度上的兼具数据信息服务的全面性和便捷性。在关系数据库中这一系统要求被很好的体现了出来, 关系数据库拥有自己管理信息交互平台, 能够基于C语言等网络编程语言与使用者进行数据库信息的交流[2], 提高了数据库使用的便捷性和全面性。

在计算机数据库软件系统结构中包含着两个数据库访问系统, 一个是开放数据库连接性 (ODBC) , 一个是数据访问对象 (DAO) , 这两个数据库访问系统相互独立, 能够单独向用户提供数据信息服务。其中ODBC不仅能够基于SQL语言与使用者进行数据信息交互, 而且对C语言和SQL数据库之间的访问机制进行了定义, 让使用者可以通过C语言这样一种计算机网络设计活动中常见的语言形式与数据库进行信息交互, 保证了关系数据库对计算机网络设计活动数据信息交互, 让计算机网络设计人员能够通过其最常用的信息交互方式与关系数据库进行交流, 保证了关系数据库与计算机网络设计活动积极、有效的互动。

DAO为计算机网络设计提供了数据库机制, 这一机制是从关系数据库的整体出发对关系数据库内部组成部分和内容的一种规范。当一个关系数据库体系结构由多个DAO构成时, DAO自身的数据库管理机制就会发挥作用, 从DAO自身的数据资源特点出发, 对关系数据库整体进行协同管理, 保证整个关系数据库的数据信息服务的高效进行。DAO的这种自我管理机制和其自身的数据访问对象本质是相互分离的, 在具体的管理活动中自我管理机制和数据访问对象能够进行各自独立的管理, 让每一个DAO都可以在保证自身数据访问对象性质的基础上, 同时实现自身和DAO群体的管理, 这种各自独立的数据访问对象管理和运行管理, 在保证DAO数据服务对象专业性的同时, 也方便了自身的升级改造。而且在关系数据库运行活动中, DAO可以链接相应的网络数据库, 实现数据资源的网络化共享和管理[3]。

4 关系数据库在计算机网络设计中的优势

关系数据库在计算机网络设计中具有强大的数据存储功能, 以及简便的数据转换功能等强大的优势, 以下将对关系数据库在计算机网络设计中的优势进行详细的阐述[4]。

4.1 强大的数据存储功能

强大的数据存储功能, 是关系数据库在计算机网络设计活动中运用的主要优势。随着计算机网络设计应用范围的不断扩大, 计算机网络设计活动的内容含量越来越大, 内容的组成形式也变得越来越复杂, 面对计算机网络设计活动这样一种发展趋势, 相应的关系数据库的数据储存能力和数据管理能力变得极为重要。关系数据库的应用, 不仅能够对计算机网络设计活动中需求和产生的大量计算机网络设计数据进行及时的存储, 而且能够借助内部管理机制的帮助, 对这些数据进行有效、准确的规划和管理。关系数据库的应用让计算机网络设计活动的数据管理环节, 成为计算机网络设计环节的一个效率增长点[5]。在具体的操作活动中计算机网络设计人员, 可以利用数据库强大的数据存储功能将设备参数输入到网络拓扑结构中, 进而借助网络拓扑结构对关系数据库进行高效、快捷的操作。如果不能有效的利用关系数据库的辅助作用, 有效管理复杂的数据信息, 那么计算机网络设计势必会陷入困境中[6]。

4.2 简便的数据转换功能

关系数据库在计算机网络设计活动中的优势, 还体现在不同数据之间的转换功能。在计算机网络设计活动中, 因为设计活动本身可能会涉及到社会经济的各个领域, 自身的设计形式也会因为网络设计目标的不同而大相径庭, 在计算机网络设计活动中, 计算机网络设计的数据从呈现形式和传递方式上都是有本质上的不同的, 所以在对计算机网络设计数据进行管理的时候, 不同数据之间的转换是一个关键性的问题, 只有解决了计算机网络设计活动中的数据转换和数据转换效率的问题, 才能促进计算机网络设计活动高效进行。关系数据库在计算机网络设计活动中的应用在一定程度上解决了这一关键性问题, 因为关系数据库本身存在的关联性, 就是要从两组不同数据中寻找共同点, 并基于这些共同点建立二者之间的普遍联系, 关系数据库的这种工作机制, 在不同形式的数据之间的转换活动中也有积极的作用[7]。

数据的两种不同呈现形式本质上也是两种不同数据之间联系的一种体现, 二者之间本质内容和内在逻辑的联系是普遍存在的。关系数据库可以根据这一特点, 结合自身的工作机制, 对二者进行本质上的联系, 这样一种在计算机网络设计活动中复杂无比的问题, 在关系数据库的参与下立刻变得可实现、可操作。关系数据库的存在只是解决了计算机网络设计活动数据转化能力的有无问题, 只有强化计算机网络设计活动中数据转化能力的效率和便捷性, 才能在网络设计的实际工作中起到更加积极的效果。所以在关系数据库的建立健全活动中, 对其自身的数据转换能力的强化, 是关系数据库发展完善的未来方向。这一改进必须要将关系数据库的数据转化能力与关系数据库的信息交互系统结合起来, 保证使用者对关系数据库的数据转换能力有更加直接的参与和应用, 同时要结合计算机网络设计活动发展的实际, 对网络设计活动中可能会涉及到的数据呈现形式进行系统、详细的统计, 并在关系数据库中对这些数据的呈现形式进行广泛的应用。具体而言, 就是要在关系数据库中, 对计算机网络设计活动中可能会涉及到的数据呈现形式进行定义, 并设置相应的数据转化机制, 在对数据信息进行存储时, 尽量选择应用范围最广的数据呈现形式进行存储, 以最大限度的保证计算机网络设计活动的数据需求, 同时也要定义好各种数据呈现形式的转化机制, 在使用者产生特殊的数据呈现形式需求时, 能够运用相应的数据转换机制, 进行数据呈现形式的转换, 以保证计算机网络设计活动的高效进行[8]。

5 结束语

计算机网络设计活动已经深入到社会经济发展的各个领域, 这也就意味着设计活动进行的质量和效率会对社会经济产生广泛的影响。所以在计算机网络设计活动中应用关系数据库, 以提高计算机网络设计活动的效率是十分有必要的。本文对关系数据库在计算机网络设计活动中的运用进行了详细阐述, 以期为关系数据库在计算机网络设计活动中的应用提供支持和借鉴。

参考文献

[1]殷晓黎.面向分布式关系数据库的高效离群点挖掘算法研究[D].辽宁大学, 2013.

[2]何彤宇.基于分布式数据库的网络教学资源系统设计与研究[D].贵州师范大学, 2004.

[3]陶爽.基于Arc GIS林业资源数据库管理系统的可视化研究[D].东北师范大学, 2012.

[4]冯建飞.某集团网络系统与网络管理的设计与实现[D].电子科技大学, 2012.

[5]李志刚.空间信息技术在矿区可持续开发与管理中的应用研究[D].成都理工大学, 2012.

[6]王莉.基于Arc GIS的矿山管理信息系统关键技术研究与集成[D].中国地质大学 (北京) , 2009.

[7]高宝.森林资源管理信息化中网络及网络安全技术的研究[D].北京林业大学, 2002.

关系数据库中的规范化 篇7

数据库技术诞生于20世纪60年代末, 从诞生至今已经发展到了第三代数据库。第一代数据库为层次与网状数据库系统, 第二代为关系型数据库, 如今发展到以面向对象数据模型为主要特征的第三代数据库系统。从层次型与网状型数据库跨越到关系型数据库要归因于20世纪70年代美国E.F.Codd提出的关系型数据库的数学模型。此后, 关系型数据库得到了长足的发展, 目前已经成为主流数据库类型。目前虽然面向对象的数据库、分布式数据库和多媒体数据库等新型数据库获得了长足发展, 但是还没有从根本上摆脱对关系型数据库的核心技术。因此, 目前的商用数据库仍然选择了关系型数据库。

ERP, 即企业资源计划 (Enterprise Resource Planning) , 是建立在信息技术基础上的系统化的进行企业管理、决策的平台。ERP的发展历经了MIS (Management Information System) 阶段、MRP (Material Require Planning) 阶段、MRP I (Manufacture Resource Planning) 阶段而进入了ERP阶段。ERP系统应具备的标准功能包括超越MRP II范围的集成功能、支持混合方式的制造环境、支持能动的监控能力并提高业务绩效、支持开放的客户机/服务器 (C/S) 计算环境。ERP系统的管理对象是企业内的人力资源和资产, 包括固定资产和存货, 以及在这个基础上运作的企业流程。

二、企业建立小型数据库的必要性与可行性

1、必要性

企业在运作过程中产生了大量的信息, 这些信息需要加工、整理、储存、共享, 使信息的需求者能在需要的时候方便地得到相关信息。对于已经实施了ERP项目的企业, 诸如财务、库存、生产、质量等关键数据都已经全部或部分整合在ERP中。但是对于这些企业基础数据以外的一些信息, 由于其本身所具有的零散性、随意性、临时性等特点而无法集成到ERP系统中去。但是这些信息却是企业各部门运作当中所不可或缺的。对于其中一部分的内容, 只是日常工作中临时需要, 而无保存价值, 这部分的信息没有进一步加工、保存的必要。这类信息大致包括口头通知、简单直接的操作指令、对工作状态的查询申请等。而对于其他的内容, 则由于其相对重要, 且可能被反复利用, 需要储存以备将来查询, 则有必要妥善保管、仔细维护。这类信息包括各种统计结果、调查分析报告等。此外, 对于部分已经集成到ERP系统中去的信息, 由于以下一些原因而有必要再建立独立的辅助信息系统单独管理这些信息, 形成对ERP系统的备份:

(1) 用户操作不便。ERP系统中的数据和格式都有规定形式, 统一的用户界面, 这样的界面通常是为企业运作所必须。但是往往在某些场合需要对信息进行快速查询, 显示用户需要的信息, 但是这样的要求往往并不容易得到满足。一方面ERP系统的用户界面灵活性有一定的制约, 不可能任意满足客户的需求。另一方面开发不同的用户界面要求ERP系统的维护商付出额外的努力, 这往往是需要经费支持的。

(2) 对正式数据要求的严谨性使得用户为了满足系统的流程需要而操作产生很多无效的记录或无法录入的记录。例如, 没有库存的产品在ERP系统中是无法交货的, 但如果因为情况特殊入库的产品无法录入系统, 则ERP系统将由于没有相应的产品库存而拒绝发货。但实际情况并非如此, 可能产品因为顾客急需而提前发出, 这样就需要有独立的系统记录这种特殊的物料移动。此外, 当系统中的数据失真需要调整时将产生很多的虚假记录, 这些记录是为了记录调整而产生的。过多的类似记录将为以后追溯历史记录造成很大的困惑。如果有辅助的系统记录真实的历史记录, 则可以帮助用户方便地进行记录查询。

2、可行性

数据库是按照数据结构来组织、存储和管理数据的仓库, 分为物理数据层、概念数据层和逻辑数据层。数据库可实现数据共享, 减少数据的冗余度, 可对数据集中控制, 使数据得以保持一致性、独立性和可维护性, 增强了数据的安全性和可靠性。数据库一般分为层次型数据库、网络型数据库和关系型数据库, 当前的主流数据库是关系型数据库。

对于企业运作所产生的数据来说, 这些数据结构相对简单, 对操作、查询的要求不高, 这使利用关系型数据库管理这些数据成为了可能。目前市场上有很多商用小型关系型数据库可供开发利用, 如DBASE系列, Fox Base, Fox Pro, Inter Base, MSAcess, SQL Server, Oracle, DB2等, 也有一些开放源代码的可供利用, 典型的如My SQL。小型关系型数据库相对简单, 编程容易, 即使是业余爱好者也可以开发出简单的事务系统。此外, 面向用户的可视化界面使开发出的数据库具有良好的操作性能, 能够为广大用户所接受。

三、开发实例

为了满足企业对数据管理的需要, 笔者以ACCESS为开发平台为企业开发出简单的事务管理系统做为ERP系统的补充。ACCESS的特点是简单、方便, 多数公司内都使用Office办公软件, 可得性强, 部署方便。但ACCESS也有很多缺点, 如不能编译成可执行文件、安全性不高、多用户条件下操作性差、数据库容量有一定限制等问题, 但对于我们所需要的辅助性的简单事务系统来说是足够满足用户需求的。

确定了数据库软件后, 首先要做的就是对用户的需求进行调查, 在此基础上确立数据库的基本功能。为了简便起见, 笔者首先选取一个部门作为数据库开发的起点。部门级的数据相对简单、功能类似, 用户要求一致性强。经过访问, 我们发现, 在公司各个部门中, 以仓库的信息最为庞杂, 经常需要进行大量的查询, 是各个部门所需信息的提供者, 对信息管理的要求也最为迫切。对于仓库, 他们需要对物料的出入库进行记录, 需要显示库存情况, 需要对物料的基本信息随时查询, 需要对历史记录调阅, 需要对发货情况进行跟踪等。仓库所要处理的事务涉及原材料、产成品、废弃物、样品的收发货、库存的管理, 以及其他部门内部的事务管理。

在了解了用户的基本需求后, 就要对系统涉及到的数据结构进行分析。这一步涉及到数据库的基础数据结构, 是数据库设计的核心, 因此需要特别谨慎。该企业的物料数据结构极为复杂, 整个数据分成四个层次:第一层是通用代码, 其作用是唯一确定了某物料, 具有与某种物料一一对应的关系;第二层是半成品代码, 代表着某种产品未包装的状态;第三层是产成品代码, 对应着包装好的产成品;第四层是销售服务代码, 对应的是不同包装不同产品名称的某种产成品。根据分析, 我们认为, 半成品的代码只是在生产过程中使用, 销售服务代码也只是客户服务所需, 都不是仓库所期望处理的数据。所以数据库所要处理的数据就只有通用代码和产成品代码了。鉴于产成品代码与通用代码之间存在着映射关系, 所以决定以通用代码作为数据存储的基础结构, 产成品代码通过不同的包装类型与通用代码的结合来体现。对于其他种类的物料, 同样可以套用类似的数据结构。但为了区分不同类型的物料, 在编码结构上考虑使用可明显区分不同类型数据的编码方法。

数据结构确定之后, 就是根据用户的要求来设计用户界面, 具体实现数据录入、数据查询、数据打印、数据分析等功能。在这一设计过程中, 以下一些要点必须得到注意:

(1) 良好的用户界面是用户乐于接受该事务系统的前提。良好的用户界面使得用户可以方便地操作, 毋须数据库的知识就可以使用。用户可以在统一的界面上操作, 排除了非法操作的可能。

(2) 对于各项操作、查询等要根据用户的需要安排合适的规格。恰当的数据显示规格将方便用户的使用, 节省用户的时间。

(3) 从简化操作步骤出发, 在操作界面的安排上尽量方便用户的使用, 以自动的方式响应用户的需求。

在数据库的设计基本成型后, 需要用户将基础数据录入系统。这是一个比较辛苦的阶段, 毕竟不是所有的数据都可以方便地一次性上传至系统, 有些数据需要用户手工输入, 工作量比较大。造成这一局面的原因是有些数据没有汇总归档, 处理方式随意不够规范, 致使数据无法得到数据库的处理。

数据录入系统后, 用户就可以对系统进行测试。在测试中发现问题后应对系统中的错误及时更正。这是系统开发的最后阶段。测试结束后该事务管理系统就可以正式交付用户使用。

四、结论

经过用户一段时间的使用, 用户对这套事务管理系统基本满意。用户对其评价是方便、可靠、易用, 对日常工作有很大帮助和支持。用户拥有了统一的操作平台, 改变了过去信息各人随意处理、分别保管、查询不易的局面。而且对于部门级的用户来说, 该事务管理系统基本开发成功。该套系统的开发成功为以后将其推广到其他部门去提供了经验, 也打下了基础。

在数据库开发过程中同样遇到了很多困难。例如, 用户需求的多变性使得数据库的开发经历了反复修改, 增加了开发的工作量。用户新增加的对数据的需求与调查过程中得到的信息不一致, 致使数据结构无法统一, 只能另外安排, 造成了数据的通用性差, 影响了数据库的使用效率。因此, 如果能在系统规划阶段就尽量全面地考虑到将来的使用情况, 尽量为所有可能的操作预留接口, 使系统具有良好的可扩展性能, 是系统设计时必须予以考虑的。此外, 对于类似于EHS部门这样的与企业生产资源关联度不大的部门, 可以考虑为其单独开发一个适合于本部门使用的管理系统。其他部门可以通过共享的方式访问该系统, 但没有操作权限。最后, 数据库开发还应注意的一个问题是哪些已经在ERP系统中存在的数据是需要数据库来管理的。因为企业运行的核心数据已经在ERP系统中运行, 所以哪些数据需要额外的记录就必须慎重考虑。一般认为, 只有那些比较重要且需要重点管理的数据才有价值为ERP系统已经存在的数据进行备份。否则将造成用户负担过重, 重复劳动过多。

上一篇:信息公开环境下一篇:我国现行税制问题研究