① 信息系统建设是怎样划分基础数据库和业务数据库的
一、 引言数据库对于企业信息化的重要性是不言而喻的。数据库存储着现代企业最重要的数据,包括生产、经营、管理等各类数据,这些数据作为企业的核心信息,通过各类信息系统,为用户提供及时准确的信息,帮助用户分析,为用户提供决策依据。为提高企业的工作效率,提升企业形象,具有传统模式无法比拟的优势。其中构建合理高效的数据库,是数据库建设关键之一。如何构建合理高效的数据库是企业信息化过程要解决的问题。下面就数据库的构建谈谈自己的一些经验,希望能对大家有所帮助。 二、 设计数据库之前
数据库并不是凭空想象出来的,而是根据业务部门的需要设计符合业务需求的数据库。因此在形成数据库之前需要充分了解业务需求。 1. 充分理解业务需求。需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。在这期间通过与业务部门交流,了解用户的想法以及工作流程,通过双方多次交流,会形成初步的数据模型,当然这时的数据模型不会是最终的模型,还需要和用户进行交流,并且在以后的信息系统开发过程中还会反复修改。 2. 重视输入输出。在定义数据库表和字段需求(输入)时,首先应了解数据产生源和数据流程,也就是必需要知道每个数据在那儿产生,数据在那儿表现,以什么样的形式表现等等,然后根据用户提供的报表或者设计出的报表、查询和视图(输出)以决定为了支持这些输出哪些是必要的表和字段。 3. 创建数据字典和ER 图表。ER 图表和数据字典可以让任何了解数据库的人都明确如何从数据库中获得数据。ER图对表明表之间关系很有用,而数据字典则说明了每个字段的用途以及任何可能存在的别名。对sql 表达式的文档化来说这是完全必要的。 需要注意的是,在需求分析调研过程中,并不是一帆风顺的,因为业务人员对于业务的理解不同,以及对于信息知识的缺乏,会影响需求分析的质量,为了提高质量,各方要用更多的时间交流与相互理解,业务部门需要精通业务的人员自始至终全力配合,而开发人员则尽量使用用户理解的业务术语交流,这样会避免出现理解不同而产生的歧义。 三、 设计合理的表结构
通常合理的表结构会减少数据冗余,提高数据库的性能。设计合理的表结构要遵循以下两点。 1. 标准化和规范化 数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,但3NF(第三范式)通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。简单来说,遵守3NF标准的数据库的表设计原则是:某个表只包括其本身基本的属性,当不是它们本身所具有的属性时需进行分解。表之间的关系通过外键相连接。它具有以下特点:有一组表专门存放通过键连接起来的关联数据。 例如:某个存放单井信息及其有关油井生产日报信息的3NF数据库就有两个表:单井基础信息和油井日报信息。日报信息不包含单井的任何信息,但表内会存放一个键值,该键指向单井基础信息里包含该油井信息的那一行。 不过也有例外,有时为了效率的缘故,对表不进行标准化也是必要的。 2. 考虑各种变化 在设计数据库的时候考虑到哪些数据字段将来可能会发生变更。使数据库更具扩展性,从而减少将来数据变更所带来的损失。 例如,日期类型字段,有时我们会考虑使用字符类型代替日期类型,因为在处理日期字段上容易产生数据错误,所以我们就使用字符类型。这样的例子还很多,在做前期设计时都要考虑的。 表结构的设计不是一次就能成功的,在信息系统开发过程中会存在数据读取、录入或统计困难,为了解决这些问题会修改表结构,或增加一些字段,或修改一些字段的属性。这个过程不断重复,因此不要想一次能成功。建议使用专门设计工具来做这些工作,笔者经常使用:SYBASE PowerDesigner ,当然还有其它的工具:ORACLE Designer 2000 ,ROSE等工具。这样会使你的工作事半功倍。 四、 选择合理的索引
索引是从数据库中获取数据的最高效方式之一。95%的数据库性能问题都可以采用索引技术得到解决。 1. 逻辑主键使用唯一的成组索引,对系统键(作为存储过程)采用唯一的非成组索引,对任何外键列采用非成组索引。考虑数据库的空间有多大,表如何进行访问,还有这些访问是否主要用作读写。 2. 大多数数据库都索引自动创建的主键字段,但是可别忘了索引外键,它们也是经常使用的键,比如运行查询显示主表和所有关联表的某条记录就用得上。 3. 不要索引大型字段(有很多字符),这样作会让索引占用太多的存储空间。如MEMO(备注)、TEXT(文本)等字段。 4. 不要索引常用的小型表 不要为小型数据表设置任何键,假如它们经常有插入和删除操作就更别这样作了。对这些插入和删除操作的索引维护可能比扫描表空间消耗更多的时间。如代码表,或系统参数表。 五、 保证数据完整性
数据的完整性非常重要,这关系到数据的准确性,不准确的数据是毫无价值的,因此保证数据的完整性非常重要。 1. 完整性实现机制:实体完整性:主键参照完整性: 父表中删除数据:级联删除;受限删除;置空值父表中插入数据:受限插入;递归插入 父表中更新数据:级联更新;受限更新;置空值 DBMS对参照完整性可以有两种方法实现:外键实现机制(约束规则)和触发器实现机制用户定义完整性:NOT NULL;CHECK;触发器 以上完整性机制需要熟悉和掌握,它对于数据的完整性非常重要。 2. 用约束而非业务规则强制数据完整性 采用数据库系统实现数据的完整性。这不但包括通过标准化实现的完整性而且还包括数据的功能性。在写数据的时候还可以增加触发器来保证数据的正确性。不要依赖于业务层保证数据完整性;它不能保证表之间(外键)的完整性所以不能强加于其他完整性规则之上。 3. 强制指示完整性 在有害数据进入数据库之前将其剔除。激活数据库系统的指示完整性特性。这样可以保持数据的清洁而能迫使开发人员投入更多的时间处理错误条件。 4. 使用查找控制数据完整性 控制数据完整性的最佳方式就是限制用户的录入。只要有可能都应该提供给用户一个清晰的价值列表供其选择。这样将减少键入代码的错误和误解同时提供数据的一致性。某些公共数据特别适合查找:性别代码、单位代码等。 5. 采用视图 视图是一个虚拟表,其内容由SQL语句定义,视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。另外通过视图用户只能查询和修改他们所能见到的数据。数据库中的其它数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,增强数据的安全性。 六、 结束语
数据库的高效运行不仅需要技术上的支持,也需要硬件平台和网络的支持以及数据库管理员的有效管理,本文只是从技术的角度说明如何提高数据库的效率,但在实际应用过程中其它方面的支持也是不可缺少的,尤其是数据库管理,数据库建设是“三分技术,七分管理,十二分基础数据”,因此对于数据库管理一定要重视,在管理到位的情况下技术才能发挥应有的作用。
② 主题数据库的主题数据库与应用数据库的区别
我们看一个简单的例子。某单位的工资系统是按工资单建数据库的,职工张华的工资单编号是0104。该单位人事系统是按职工档案建数据库的,张华在人事系统中的编号是1122。人事系统要获得张华的工资数据,需要做接口程序将1122转换成0104,才能正确地检索;反之,工资系统要获得人事系统的数据,需要做接口程序将0104转换成1122。这样,2个应用系统至少需要2个接口。如果再加上安监系统和社保系统,共4个应用系统要互相交流数据,就至少需要12个接口。而企业经营管理中如果有20个大大小小“孤岛式”的应用系统需要相互交流数据,就至少需要380个接口。这么多的接口无法做完,即使做完所有的接口,整个系统的运行也将是低效率和脆弱的。所以,企图通过做接口实现系统集成,从来就是可望而不可及的。
解决这类应用系统集成问题的正确方法是:不按照单证报表原样建立数据库,而是面向业务主题建立数据库,这就是主题数据库。上例中的员工信息是几个应用系统所共用的,应该对企业的所有员工统一编号,有关员工的信息统一组织存储,从而能保证信息共享——各应用程序都存取共享的“员工主题数据库”,这就从根本上取消了不必要的接口。这就是说,通过建立主题数据库,简单、科学地实现了应用系统的集成。
发达国家在上世纪70年代中后期至80年代初的信息化初级阶段,遇到过包括“信息孤岛”问题在内的“数据处理危机”问题。詹姆斯·马丁(James Martin)提出的主题数据库概念和有关理论方法,为解决这些问题作出了重要的贡献,这对我们具有十分重要的借鉴意义。
③ 数据仓库和数据库有什么区别和联系
简而言之,数据库是面向事务的设计,数据仓库是面向主题设计的。
数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。
数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计。
数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表。维是看问题的角度,比如时间,部门,维表放的就是这些东西的定义,事实表里放着要查询的数据,同时有维的ID。
单从概念上讲,有些晦涩。任何技术都是为应用服务的,结合应用可以很容易地理解。以银行业务为例。数据库是事务系统的数据平台,客户在银行做的每笔交易都会写入数据库,被记录下来,这里,可以简单地理解为用数据库记帐。数据仓库是分析系统的数据平台,它从事务系统获取数据,并做汇总、加工,为决策者提供决策的依据。比如,某银行某分行一个月发生多少交易,该分行当前存款余额是多少。如果存款又多,消费交易又多,那么该地区就有必要设立ATM了。
显然,银行的交易量是巨大的,通常以百万甚至千万次来计算。事务系统是实时的,这就要求时效性,客户存一笔钱需要几十秒是无法忍受的,这就要求数据库只能存储很短一段时间的数据。而分析系统是事后的,它要提供关注时间段内所有的有效数据。这些数据是海量的,汇总计算起来也要慢一些,但是,只要能够提供有效的分析数据就达到目的了。
数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,它决不是所谓的“大型数据库”。那么,数据仓库与传统数据库比较,有哪些不同呢?让我们先看看W.H.Inmon关于数据仓库的定义:面向主题的、集成的、与时间相关且不可修改的数据集合。
“面向主题的”:传统数据库主要是为应用程序进行数据处理,未必按照同一主题存储数据;数据仓库侧重于数据分析工作,是按照主题存储的。这一点,类似于传统农贸市场与超市的区别—市场里面,白菜、萝卜、香菜会在一个摊位上,如果它们是一个小贩卖的;而超市里,白菜、萝卜、香菜则各自一块。也就是说,市场里的菜(数据)是按照小贩(应用程序)归堆(存储)的,超市里面则是按照菜的类型(同主题)归堆的。
“与时间相关”:数据库保存信息的时候,并不强调一定有时间信息。数据仓库则不同,出于决策的需要,数据仓库中的数据都要标明时间属性。决策中,时间属性很重要。同样都是累计购买过九车产品的顾客,一位是最近三个月购买九车,一位是最近一年从未买过,这对于决策者意义是不同的。
“不可修改”:数据仓库中的数据并不是最新的,而是来源于其它数据源。数据仓库反映的是历史信息,并不是很多数据库处理的那种日常事务数据(有的数据库例如电信计费数据库甚至处理实时信息)。因此,数据仓库中的数据是极少或根本不修改的;当然,向数据仓库添加数据是允许的。
数据仓库的出现,并不是要取代数据库。目前,大部分数据仓库还是用关系数据库管理系统来管理的。可以说,数据库、数据仓库相辅相成、各有千秋。
补充一下,数据仓库的方案建设的目的,是为前端查询和分析作为基础,由于有较大的冗余,所以需要的存储也较大。为了更好地为前端应用服务,数据仓库必须有如下几点优点,否则是失败的数据仓库方案。
1.效率足够高。客户要求的分析数据一般分为日、周、月、季、年等,可以看出,日为周期的数据要求的效率最高,要求24小时甚至12小时内,客户能看到昨天的数据分析。由于有的企业每日的数据量很大,设计不好的数据仓库经常会出问题,延迟1-3日才能给出数据,显然不行的。
2.数据质量。客户要看各种信息,肯定要准确的数据,但由于数据仓库流程至少分为3步,2次ETL,复杂的架构会更多层次,那么由于数据源有脏数据或者代码不严谨,都可以导致数据失真,客户看到错误的信息就可能导致分析出错误的决策,造成损失,而不是效益。
3.扩展性。之所以有的大型数据仓库系统架构设计复杂,是因为考虑到了未来3-5年的扩展性,这样的话,客户不用太快花钱去重建数据仓库系统,就能很稳定运行。主要体现在数据建模的合理性,数据仓库方案中多出一些中间层,使海量数据流有足够的缓冲,不至于数据量大很多,就运行不起来了。
④ 主题数据库的特点
主题数据库的基本特征有:
1.面向业务主题。主题数据库是面向业务主题的数据组织存储,例如,企业中需要建立的典型的主题数据库有:产品、客户、零部件、供应商、订货、员工、文件资料、工程规范等。其中产品、客户、零部件等数据库的结构,是对有关单证、报表的数据项进行分析整理而设计的,不是按单证、报表的原样建立的。这些主题数据库与企业管理中要解决的主要问题相关联,而不是与通常的计算机应用项目相关联。
2.信息共享。主题数据库是对各个应用系统“自建自用”的数据库的彻底否定,强调建立各个应用系统“共建共用”的共享数据库。不同的应用系统的计算机程序调用这些主题数据库,例如,库存管理调用产品、零部件、订货数据库;采购调用零部件、供应商、工程规范数据库等。
3.一次一处输入系统。主题数据库要求调研分析企业各经营管理层次上的数据源,强调数据的就地采集,就地处理、使用和存储,以及必要的传输、汇总和集中存储。同一数据必须一次、一处进入系统,保证其准确性、及时性和完整性,经由网络-计算机-数据库系统,可以多次、多处使用。
4.由基本表组成。一个主题数据库的科学的数据结构,是由多个达到“基本表” (Base Table)规范的数据实体构成的,这些基本表具有如下的特性:
· 原子性——基本表中的数据项是数据元素(即最小的、不能再分解的信息单元);
· 演绎性——可由基本表中的数据生成全部输出数据(即这些基本表是精练的,经过计算处理可以产生全部企业管理所需要的数据);
· 规范性——基本表中数据满足三范式(3-NF)要求,这是科学的、能满足演绎性要求、并能保证快捷存取的数据结构。
⑤ 数据库与数据仓库的区别
数据库是面向事务的设计,数据仓库是面向主题设计的。数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。
“与时间相关”:数据库保存信息的时候,并不强调一定有时间信息。数据仓库则不同,出于决策的需要,数据仓库中的数据都要标明时间属性。决策中,时间属性很重要。同样都是累计购买过九车产品的顾客,一位是最近三个月购买九车,一位是最近一年从未买过,这对于决策者意义是不同的。
“不可修改”:数据仓库中的数据并不是最新的,而是来源于其它数据源。数据仓库反映的是历史信息,并不是很多数据库处理的那种日常事务数据(有的数据库例如电信计费数据库甚至处理实时信息)。因此,数据仓库中的数据是极少或根本不修改的;当然,向数据仓库添加数据是允许的。
拓展资料:
数据仓库的出现,并不是要取代数据库。数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,它决不是所谓的“大型数据库”。
目前,大部分数据仓库还是用关系数据库管理系统来管理的。可以说,数据库、数据仓库相辅相成、各有千秋。
⑥ 大数据里的基础库、主题库、专题库有什么区别,各自呈现方式是什么,比如政务行业
基础库一般是指业务中原有的如常口,企业登记等
主题库是指把针对某一主题的相关类别的表集成到一起,如出行。
专题库一般是某领域内的某特定时期的专项业务,所形成的表,如xxx事件,xx活动
表现形式上以sql库为主。
⑦ 数据仓库与数据库的主要区别有
首先我们来了解数据仓库和数据库分别是什么:
1、数据库:是一种逻辑概念,用来存放数据的仓库,通过数据库软件来实现。数据库由很多表组成,表是二维的,一张表里面有很多字段。字段一字排开,对数据就一行一行的写入表中。数据库的表,在于能够用二维表现多维的关系。如:oracle、DB2、MySQL、Sybase、MSSQL Server等。
2、数据仓库:是数据库概念的升级。从逻辑上理解,数据库和数据仓库没有区别,都是通过数据库软件实现存放数据的地方,只不过从数据量来说,数据仓库要比数据库更庞大德多。数据仓库主要用于数据挖掘和数据分析,辅助领导做决策;
区别主要总结为以下几点:
1.数据库只存放在当前值,数据仓库存放历史值;
2.数据库内数据是动态变化的,只要有业务发生,数据就会被更新,而数据仓库则是静态的历史数据,只能定期添加、刷新;
3.数据库中的数据结构比较复杂,有各种结构以适合业务处理系统的需要,而数据仓库中的数据结构则相对简单;
4.数据库中数据访问频率较高,但访问量较少,而数据仓库的访问频率低但访问量却很高;
5.数据库中数据的目标是面向业务处理人员的,为业务处理人员提供信息处理的支持,而数据仓库则是面向高层管理人员的,为其提供决策支持;
6.数据库在访问数据时要求响应速度快,其响应时间一般在几秒内,而数据仓库的响应时间则可长达数几小时
⑧ 数据库和数据仓库的区别在哪儿
数据仓库和数据库就好比仓库和仓库管理员一样,仓库作用是存放东西的,而仓库管理员是管理仓库的里的东西的,例如仓库管理员可以将其他东西放进仓库或从仓库中取出,也可以将仓库里东西按某种方式摆放等数据库就好比仓库管理员,数据库可将数据放进数据仓库,也可以从数据仓库中取出数据.数据仓库就是用来存放数据的.
⑨ 数据库和数据仓库的区别是什么
大家都知道,我们在进行数据分析工作的时候会用到数据库这一工具,可能大家还听说过数据仓库这个工具,数据库和数据仓库很容易被大家混淆。很多人认为数据库和数据仓库是一类事物,其实并不只是这样的,那么大家知不知道数据库和数据仓库的区别是什么呢?下面我们就为大家介绍一下数据库和数据仓库的相关知识。
一般来说,传统数据库是为存储而生,而数据仓库很明显,是为分析而生。实现目的的不同一开始就注定它们的差异。传统数据库包括增删改查,但数据仓库注重查询。而传统数据库的主要任务是执行联机事务处理。主要负责日常操作。而数据仓库系统在数据分析和决策方面为用户或“知识工人”提供服务,可以以不同的格式组织和提供数据,以便应付不同的需求,这种系统称作联机分析处理。这就是数据库和数据仓库的相关知识。
那么数据仓库和数据库的区别是什么呢?首先需要我们考虑用户和系统的面向对象,数据库是面向顾客的,用户操作员,客户和信息技术人员的事务和查询处理。数据仓库是面向市场的,用于知识工人的数据分析。从中我们可以发现数据库和数据仓库的面向对象是不一样的。
当然,在数据内容中两者也是有很大的区别的,一般来说数据库管理当前数据。但是一般这种数据比较琐碎,很难用于决策。数据仓库系统管理大量历史数据,提供汇总和聚集机制,而且在不同的粒度层上存储和管理信息。
在数据库设计设计中,数据库和数据仓库也是有区别的,数据库系统采用实体联系数据模型和面向应用的数据库设计。而数据仓库系统采用星形或雪花模型和面向主题的数据库设计。
而在视图中,二者也是有所区别的,数据库关注一个企业或部门内部的当前数据,不涉及历史数据或不同单位的数据。数据仓库经常需要跨域数据库模式的不同版本。
在访问模式中,数据库和数据仓库也是有所区别的,数据库系统主要由短的原子事务组成,一般需要并发控制和恢复机制。而数据仓库系统的访问大部分是只读操作。
在这篇文章中我们给大家介绍了关于数据库和数据仓库之间的区别的相关知识,通过对这些知识的了解我们可以更好地区分数据库和数据仓库,也希望大家在学习过程中能够融会贯通,得心应手。