24小时热门版块排行榜    

CyRhmU.jpeg
查看: 935  |  回复: 8
当前主题已经存档。

wswswws

银虫 (正式写手)

[交流] 数据库的数据挖掘概述

数据库的数据挖掘概述(一)

随着数据库技术的不断发展及数据库管理系统的广泛应用,数据库中存储的数据量急剧增大,在大量的数据背后隐藏着许多重要的信息,如果能把这些信息从数据库中抽取出来,将为公司创造很多潜在的利润,而这种从海量数据库中挖掘信息的技术,就称之为数据挖掘。

    数据挖掘工具能够对将来的趋势和行为进行预测,从而很好地支持人们的决策,比如,经过对公司整个数据库系统的分析,数据挖掘工具可以回答诸如“哪个客户对我们公司的邮件推销活动最有可能作出反应,为什么”等类似的问题。有些数据挖掘工具还能够解决一些很消耗人工时间的传统问题,因为它们能够快速地浏览整个数据库,找出一些专家们不易察觉的极有用的信息。

    下文将对数据挖掘的基本技术作一个简单的介绍。

数据挖掘的基础

    数据挖掘技术是人们长期对数据库技术进行研究和开发的结果。起初各种商业数据是存储在计算机的数据库中的,然后发展到可对数据库进行查询和访问,进而发展到对数据库的即时遍历。数据挖掘使数据库技术进入了一个更高级的阶
段,它不仅能对过去的数据进行查询和遍历,并且能够找出过去数据之间的潜在联系,从而促进信息的传递。现在数据挖掘技术在商业应用中已经可以马上投入使用,因为对这种技术进行支持的三种基础技术已经发展成熟,他们是:

    海量数据搜集
    强大的多处理器计算机
    数据挖掘算法

    商业数据库现在正在以一个空前的速度增长,并且数据仓库正在广泛地应用于各种行业;对计算机硬件性能越来越高的要求,也可以用现在已经成熟的并行多处理机的技术来满足;另外数据挖掘算法经过了这10多年的发展也已经成为一种成熟,稳定,且易于理解和操作的技术。

    从商业数据到商业信息的进化过程中,每一步前进都是建立在上一步的基础上的。见下表。表中我们可以看到,第四步进化是革命性的,因为从用户的角度来看,这一阶段的数据库技术已经可以快速地回答商业上的很多问题了。

进化阶段 商业问题 支持技术 产品厂家 产品特点 数据搜集
(60年代) “过去五年中我的总收入是多少?” 计算机、磁带和磁盘 IBM, CDC 提供历史性的、静态的数据信息 数据访问
(80年代) “在新英格兰的分部去年三月的销售额是多少?” 关系数据库(RDBMS),结构化查询语言(SQL),ODBC Oracle、Sybase、Informix、IBM、Microsoft 在记录级提供历史性的、动态数据信息 数据仓库;决策支持
(90年代) “在新英格兰的分部去年三月的销售额是多少?波士顿据此可得出什么结论?” 联机分析处理(OLAP)、多维数据库、数据仓库 Pilot、Comshare、Arbor、Cognos、Microstrategy 在各种层次上提供回溯的、动态的数据信息 数据挖掘
(正在流行) “下个月波士顿的销售会怎么样?为什么?” 高级算法、多处理器计算机、海量数据库 Pilot、
Lockheed、IBM、SGI、其他初创公司 提供预测性的信息

表一、数据挖掘的进化历程。

    数据挖掘的核心模块技术历经了数十年的发展,其中包括数理统计、人工智能、机器学习。今天,这些成熟的技术,加上高性能的关系数据库引擎以及广泛的数据集成,让数据挖掘技术在当前的数据仓库环境中进入了实用的阶段。

数据挖掘的范围

    “数据挖掘”这个名字来源于它有点类似于在山脉中挖掘有价值的矿藏。在商业应用里,它就表现为在大型数据库里面搜索有价值的商业信息。这两种过程都需要对巨量的材料进行详细地过滤,并且需要智能且精确地定位潜在价值的所
在。对于给定了大小的数据库,数据挖掘技术可以用它如下的超能力产生巨大的商业机会:

    自动趋势预测。数据挖掘能自动在大型数据库里面找寻潜在的预测信息。传统上需要很多专家来进行分析的问题,现在可以快速而直接地从数据中间找到答案。一个典型的利用数据挖掘进行预测的例子就是目标营销。数据挖掘工具可以根据过去邮件推销中的大量数据找出其中最有可能对将来的邮件推销作出反应的客户。

    自动探测以前未发现的模式。数据挖掘工具扫描整个数据库并辨认出那些隐藏着的模式,比如通过分析零售数据来辨别出表面上看起来没联系的产品,实际上有很多情况下是一起被售出的情况。

    数据挖掘技术可以让现有的软件和硬件更加自动化,并且可以在升级的或者新开发的平台上执行。当数据挖掘工具运行于高性能的并行处理系统上的时候,它能在数分钟内分析一个超大型的数据库。这种更快的处理速度意味着用户有更多的机会来分析数据,让分析的结果更加准确可靠,并且易于理解。

数据库可以由此拓展深度和广度

    深度上,允许有更多的列存在。以往,在进行较复杂的数据分析时,专家们限于时间因素,不得不对参加运算的变量数量加以限制,但是那些被丢弃而没有参加运算的变量有可能包含着另一些不为人知的有用信息。现在,高性能的数据挖掘工具让用户对数据库能进行通盘的深度编历,并且任何可能参选的变量都被考虑进去,再不需要选择变量的子集来进行运算了。

    广度上,允许有更多的行存在。更大的样本让产生错误和变化的概率降低,这样用户就能更加精确地推导出一些虽小但颇为重要的结论。

    最近,Gartner Group的一次高级技术调查将数据挖掘和人工智能列为“未来三到五年内将对工业产生深远影响的五大关键技术”之首,并且还将并行处理体系和数据挖掘列为未来五年内投资焦点的十大新兴技术前两位。根据最近Gartner的HPC研究表明,“随着数据捕获、传输和存储技术的快速发展,大型系统用户将更多地需要采用新技术来挖掘市场以外的价值,采用更为广阔的并行处理系统来创建新的商业增长点。”

    在数据挖掘中最常用的技术有:

    人工神经网络:仿照生理神经网络结构的非线形预测模型,通过学习进行模式识别。

    决策树:代表着决策集的树形结构。

    遗传算法:基于进化理论,并采用遗传结合、遗传变异、以及自然选择等设计方法的优化技术。

    近邻算法:将数据集合中每一个记录进行分类的方法。

    规则推导:从统计意义上对数据中的“如果-那么”规则进行寻找和推导。

    采用上述技术的某些专门的分析工具已经发展了大约十年的历史,不过这些工具所面对的数据量通常较小。而现在这些技术已经被直接集成到许多大型的工业标准的数据仓库和联机分析系统中去了。

[ Last edited by 幻影无痕 on 2006-10-27 at 07:42 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1

2楼2005-07-20 11:59:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

幻影无痕

荣誉版主 (知名作家)

小木虫论坛总监

优秀版主

数据库的数据挖掘概述(二)

数据挖掘工具是怎样准确地告诉你那些隐藏在数据库深处的重要信息的呢?它们又是如何作出预测的?答案就是建模。建模实际上就是在你知道结果的情况下建立起一种模型,并且把这种模型应用到你所不知道的那种情况中。比如说,如果你想要在大海上去寻找一艘古老的西班牙沉船,也许你首先想到的就是去找找过去发现这些宝藏的时间和地点有哪些。那么,经过调查你发现这些沉船大部分都是在百慕大海区被发现,并且那个海区有着某种特征的洋流,以及那个时代的航线也有一定的特征可寻。在这众多的类似特征中,你将它们抽象并概括为一个普适的模型。利用这个模型,你就很有希望在具有大量相同特征的另外一个地点发现一件不为人知的宝藏。

    当然,在数据挖掘技术甚至计算机出现以前,这种建模抽象的方法就已经广泛地被人们所使用。在计算机中的建模和以前的建模方法并无很大不同,主要的差异在于计算机能处理的信息量比起以前来更加庞大。计算机中能够存储已知了结果的大量不同情况,然后由数据挖掘工具从这些大量的信息里面披沙拣金,将能够产生模型的信息提取出来。一当模型建立好了之后,就可以应用在那些情形相似但结果尚未知的判断中了。比如,现在假设你是一个电信公司的营销主任,公司想发展一些新的长途电话用户,那么你是不是会漫无目的地到街上去散发广告呢?——就象漫无目的地在海上去寻宝一样。其实,比起漫无目的地去进行宣传来,利用你以前的商业经验来有目的地去拉拢客户会产生高得多的效率。

    作为一个营销主任,你对客户的很多信息都可以了解得一清二楚:年龄、性别、信用记录以及长途电话使用状况。从好的一方面来看,掌握了这些客户的信息其实就是掌握了很多潜在的用户的同样的信息。问题在于你还不一定了解他们的长途电话使用情况(因为他们的长途电话也许是通过的另一个电信公司)。现在你的主要精力就集中在用户中谁有比较多的长途电话上。通过下面这个表格,我们可以从数据库里面抽象某些变量,建立起一个可以对此进行分类营销的模型。
  客户 潜力
一般信息
(e.g. demographic data) 已知 已知
私有信息
(e.g. customer transactions) 已知 待定

表二、数据挖掘应用于分类营销

    根据我们创建的从一般信息到私有信息的计算模型,我们可以得出表二右下方表格中的信息。比如,一个电信公司的简化模型可以是:年薪6万美圆以上的98%的客户,每个月长话费80美圆以上。根据这个模型,我们就能应用这些数据来推断出公司现在尚不能明确的私有信息,这样,新客户群体就可以大体确定出来了。小型市场的试销数据对于这样的模型来说显得极为有用。因为小范围内试销数据的挖掘,能够为全部市场的分类销售打下一个良好的基础。表三则描述了另外一样数据挖掘的普遍应用:预测。
  过去 现在 将来
静态信息和当前计划 已知 已知 已知
动态信息 已知 已知 待定

表三、数据挖掘应用于预测

数据挖掘的体系结构

    现有很多数据挖掘工具是独立于数据仓库以外的,它们需要独立地输入输出数据,以及进行相对独立的数据分析。为了最大限度地发挥数据挖掘工具的潜力,它们必须象很多商业分析软件一样,紧密地和数据仓库集成起来。这样,在人们对参数和分析深度进行变化的时候,高集成度就能大大地简化数据挖掘过程。下图显示了一个大型数据库中的高级分析过程。




集成后的数据挖掘体系

    应用数据挖掘技术,较为理想的起点就是从一个数据仓库开始,这个数据仓库里面应保存着所有客户的合同信息,并且还应有相应的市场竞争对手的相关数据。这样的数据库可以是各种市场上的数据库:Sybase、Oracle、Redbrick、和其他等等,并且可以针对其中的数据进行速度上和灵活性上的优化。

    联机分析系统OLAP服务器可以使一个十分复杂的最终用户商业模型应用于数据仓库中。数据库的多维结构可以让用户从不同角度,——比如产品分类,地域分类,或者其他关键角度——来分析和观察他们的生意运营状况。数据挖掘服务器在这种情况下必须和联机分析服务器,以及数据仓库紧密地集成起来,这样就可以直接跟踪数据和并辅助用户快速作出商业决策,并且用户还可以在更新数据的时候不断发现更好的行为模式,并将其运用于未来的决策当中。

    数据挖掘系统的出现代表着常规决策支持系统的基础结构的转变。不象查询和报表语言仅仅是将数据查询结果反馈给最终用户那样,数据挖掘高级分析服务器把用户的商业模型直接应用于其数据仓库之上,并且反馈给用户一个相关信息的分析结果。这个结果是一个经过分析和抽象的动态视图层,通常会根据用户的不同需求而变化。基于这个视图,各种报表工具和可视化工具就可以将分析结果展现在用户面前,以帮助用户计划将采取怎样的行动。

产生利润的工具

    有很多公司都成功地安装了数据挖掘工具。早先采用了这种技术的公司大部分都是信息密集型公司,比如金融服务和邮件营销系统,但是现在这种技术已经准备好应用于各个公司中,只要公司具有大型数据库,并且有强烈的通过软件技术改善公司管理的愿望。但是采用数据挖掘技术,公司必须两个关键的因素,一个就是大型的,集成化的数据库;另一个就是定义完善的商业处理程序,这样数据挖掘才好紧密地应用于公司数据之上。

    采用数据挖掘技术的一些成功应用,例如一个药品公司,通过对它最近的营销强度和销售结果的分析,来决定哪一种营销活动在最近几个月内对高附加值的医生群体影响最大,这样的分析建立在竞争对手的销售活动信息和当地健康状况的数据系统之上。然后这个药品公司可以通过其办公网络,将分析结果传达到各地的销售代表处,销售代表们则可以根据公司传递的关键信息来作出相应的销售抉择,这样,在快速变化的、动态的市场上,销售代表们都可以根据各种特殊情况的分析作出最优的选择。

结语
    全面集成了客户、供应者以及市场信息的大型数据仓库导致公司内的信息呈爆炸性增长,企业在市场竞争中,需要及时而准确地对这些信息作复杂的分析。为了更加及时地,更加准确地作出利于企业的抉择,建立在关系数据库和联机分析技术上的数据挖掘工具为我们带来了一个新的转机。目前,数据挖掘工具正以前所未有的速度发展,并且扩大着用户群体,在未来越加激烈的市场竞争中,拥有数据挖掘技术必将比别人获得更快速的反应,赢得更多的商业机会。
没能力危害祖国,没理由背离人民,没资本好逸恶劳,没本事损人利己,没机会见利忘义,没胆量违法乱纪,没钞票骄奢淫逸,只好愚昧无知了!
3楼2006-09-11 10:49:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

幻影无痕

荣誉版主 (知名作家)

小木虫论坛总监

优秀版主

精通数据库系列之入门-基础篇1

什么是数据库系统?

  是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。它通常由软件、数据库和数据管理员组成。其软件主要包括操作系统、各种宿主语言,实用程序以及数据库管理系统。数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这些数据为多个应用服务,独立于具体的应用程序。数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。数据库管理系统是一种系统软件,它的主要功能是维护数据库并有效地访问数据库中任意部分数据。对数据库的维护包括保持数据的完整性、一致性和安全性。数据管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。数据库管理员一般是由业务水平较高、资历较深的人员担任。

  数据库系统的个体含义是指一个具体的数据库管理系统软件和用它建立起来的数据库;它的学科含义是指研究、开发、建立、维护和应用数据库系统所涉及的理论、方法、技术所构成的学科。在这一含义下,数据库系统是软件研究领域的一个重要分支,常称为数据库领域。

  数据库研究跨越于计算机应用、系统软件和理论三个领域,其中应用促进新系统的研制开发,新系统带来新的理论研究,而理论研究又对前两个领域起着指导作用。数据库系统的出现是计算机应用的一个里程碑,它使得计算机应用从以科学计算为主转向以数据处理为主,并从而使计算机得以在各行各业乃至家庭普遍使用。在它之前的文件系统虽然也能处理持久数据,但是文件系统不提供对任意部分数据的快速访问,而这对数据量不断增大的应用来说是至关重要的。为了实现对任意部分数据的快速访问,就要研究许多优化技术。这些优化技术往往很复杂,是普通用户难以实现的,所以就由系统软件(数据库管理系统)来完成,而提供给用户的是简单易用的数据库语言。由于对数据库的操作都由数据库管理系统完成,所以数据库就可以独立于具体的应用程序而存在,从而数据库又可以为多个用户所共享。因此,数据的独立性和共享性是数据库系统的重要特征。数据共享节省了大量人力物力,为数据库系统的广泛应用奠定了基础。数据库系统的出现使得普通用户能够方便地将日常数据存入计算机并在需要的时候快速访问它们,从而使的计算机走出科研机构进入各行各业、进入家庭。
没能力危害祖国,没理由背离人民,没资本好逸恶劳,没本事损人利己,没机会见利忘义,没胆量违法乱纪,没钞票骄奢淫逸,只好愚昧无知了!
4楼2006-09-11 10:50:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

幻影无痕

荣誉版主 (知名作家)

小木虫论坛总监

优秀版主

精通数据库系列之入门-基础篇2


数据库系统的产生和发展

  众所周知,数据库系统并不是在计算机产生的同时就出现的,而是随着计算机技术的不断发展,在特定的历史时期、特定的需求环境下出现的。人类在1946年发明了世界上的第一台计算机到20世纪60年代这漫长的20年里,计算机操作系统还主要局限于文件的操作,同样,对数据的管理也主要是通过文件系统来实现。进行计算所需要的各种数据存放在各自的文件里面。当要使用这些数据的时候,将文件打开,读取文件中的数据到内存中。当计算完毕后,将计算结果仍旧写入到文件中去。

  虽然这种在文件中存放数据的方式目前在很多系统中还在使用,但是,这样的数据存放方式在三四十年前的当时,就已经显示出了非常明显的不足。这些不足主要集中在无法对数据进行有效的统一管理。具体表现在这样几个方面:

程序员编写应用程序非常不方便。应用程序的设计者需要对程序所使用的文件的逻辑结构和物理结构都了解的非常清楚。而计算机操作系统只提供将文件打开、关闭、保存等非常低级的操作,而对数据的修改、查询操作则需要应用程序来解决,如果程序所需要的数据存放在不同的文件里,而且这些文件的存储格式又迥然不同。这样就给应用程序的开发带来了巨大的麻烦,程序员要为程序中所用到的每一个文件都写好相应的接口,而且不同的文件格式相差很大,这样就大大的增加了编程的工作量,从而使得在文件级别上开发应用程序的效率非常低下,严重影响应用软件的发展。


文件结构的每一处修改都将导致应用程序的修改,从而使得应用程序的维护工作量特别大。编过程序的人都有这种体会,就是每当自己开发完毕的程序需要修改的时候,又不得不将源程序重新修改、编译、链接。其麻烦程度可想而知。因为有人戏称编程人员为“老改”人员,个中滋味,外人恐怕很难体会到的。


计算机操作系统中的文件系统一般不支持对文件的并发访问。而在现代计算机系统中,为了充分发挥计算机系统的资源使用效率,一般都允许多个程序“同时”运行,即并发性。对数据库系统同样有并发性的要求,现在比较大型的数据库都有非常强的并发访问机制,这样可以充分利用数据库服务器的软、硬件资源,避免浪费。


由于基于文件系统的数据管理缺乏整体性、统一性,在数据的结构、编码、表示格式等诸多方面不能做到标准化、规范化,不同的操作系统有风格迥异的表示方式,因此在一定程度上造成了数据管理的混乱。另外,基于文件系统的数据管理在数据的安全性和保密性发面难以采取有效的措施,在一些对安全性要求比较高的场合,这种安全上的缺陷是完全不允许的。
  针对文件系统的这些重要缺点,人们逐步发展了以统一管理数据和共享数据为主要特征的系统,这就是数据库系统。数据库系统就是在这样的背景下发展起来了。1964年,美国通用电气公司开发成功了世界上的第一个数据库系统——IDS(Integrated Data Store)。IDS奠定了网状数据库的基础,并且得到了广泛的发行和应用,成为数据库系统发展史上的一座丰碑。1969年,美国国际商用机器公司(IBM)也推出世界上第一个层次数据库系统IMS(Information Management System),同样在数据库系统发展史上占有重要的地位。

  七十年代初,E.F.Codd在总结前面的层次、网状数据库优缺点的基础上,提出了关系数据模型的概念。他提出了关系代数和关系演算(直到今天,在E.F.Codd的这些基本理论还在左右这数据库系统的发展,也依然是高校计算机专业课堂上所要讲述的重要内容)。在整个七十年代,关系数据库系统无论从理论上还是实践上都去的了丰硕的成果。在理论上,确立了完整的关系模型理论、数据依赖理论和关系数据库的设计理论(在后面将重点讲述这些关系数据库的基本理论);在实践上,世界上出现了很多著名的关系数据库系统,比较著名的如System R,INGRES,Oracle等。

和文件系统相比,数据库系统有一系列的特点,具体表现在以下几个方面:

数据库系统向用户提供高级的接口。在文件系统中,用户要访问数据,必须了解文件的存储格式、记录的结构等。而在数据库系统中,这一切都不需要了。数据库系统为用户处理了这些具体的细节,向用户提供非过程化的数据库语言(即通常所说的SQL语言),用户只要提出需要什么数据,而不必关心如何获得这些数据。对数据的管理完全由数据库管理系统(DBMS: Database Management System)来实现。
 
查询的处理和优化。查询通常指用户向数据库系统提交的一些对数据操作的请求。由于数据库系统向用户提供了非过程化的数据操纵语言,因此对于用户的查询请求就由DBMS来完成,查询的优化处理就成了DBMS的重要任务。
 
并发控制。前面曾经提到,文件系统一般不支持并发操作,这样大大的限制了系统资源的有效利用。在数据库系统中,情况就不一样了。现代的数据库系统都有很强的并发操作机制,多个用户可以同时访问数据库,甚至可以同时访问同一个表中的不同记录。这样极大的提高了计算机系统资源的使用效率。
 
数据的完整性约束。凡是数据都要遵守一定的约束,最简单的一个例子就是数据类型,例如定义成整型的数据就不能是浮点数。由于数据库中的数据是持久的和共享的,因此对于使用这些数据的单位来说,数据的正确行显得非常重要。在关系数据库系统中,比较重要的完整性约束有实体完整性、域完整性、参照完整性和用户自定义的完整性等,在后面的文章中将有重点讲述。
  进入二十世纪八十年代之后,计算机硬件技术有了飞速的提高。计算机技术的提高促使计算机应用不断深入,产生了许多新的应用领域,例如计算机辅助设计、计算机辅助制造、计算机辅助教学、办公自动化、智能信息处理、决策支持等。这些新的领域对数据库系统提出了新的要求。但是由于应用的多元化,不能设计出一个统一的数据模型来表示这些新型的数据及其相互关系,因而出现了百家争鸣的局面,产生了演绎数据库、面向对象数据库、分布式数据库、工程数据库、时态数据库、模糊数据库等新型数据库的研究和应用。

  不过到目前为止,在世界范围内得到主流应用的还是经典的关系数据库系统,比较知名的如Sybase,Oracle,Informix,SQL Server,DB2等。在本系列专题文章中,我们也将根据数据库系统的实际应用情况,重点介绍关系数据库系统。其他的数据库系统,也将作简单的介绍。
没能力危害祖国,没理由背离人民,没资本好逸恶劳,没本事损人利己,没机会见利忘义,没胆量违法乱纪,没钞票骄奢淫逸,只好愚昧无知了!
5楼2006-09-11 10:51:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

幻影无痕

荣誉版主 (知名作家)

小木虫论坛总监

优秀版主

精通数据库系列之入门-基础篇3

作者:本站收集    文章来源:互联网    点击数:10    更新时间:2005-6-1

行业的现状和展望

  近年来,我一直在和数据库管理员打交道,并直接面试了很多DBA职位。本文想概括一下IT行业对DBA的要求,以及国内DBA的新资现状。可以肯定地说,做一个高级DBA是很不错的职业。如果你打算成为一名DBA,那么希望本文起到抛砖引玉的作用。

什么是DBA

  数据库管理员,英文是Database Administrator,简称DBA。这个职位对不同的人意味着不同的意义。一个小的软件开发工作室和一个分工高度明细的大公司相比,DBA的职责来得更加宽泛一些。一个公司,不管它是自己开发应用软件,还是购买第三方的应用软件,只要涉及到数据库(有多少不涉及数据库的应用软件呢?数据库是商业的灵魂和大脑啊),就需要确定是否雇佣一个或几个DBA。知道DBA这个职位有哪些要求,对于企业内部这个职位的定义或者对于那些未来的DBA将是至关重要的。下面我列出了DBA的一些职责:

安装和升级数据库服务器(如Oracle、Microsoft SQL server),以及应用程序工具。
数据库设计系统存储方案,并制定未来的存储需求计划。
一旦开发人员设计了一个应用,就需要DBA来创建数据库存储结构(tablespaces)。
一旦开发人员设计了一个应用,就需要DBA来创建数据库对象(tables,views,indexes)。
根据开发人员的反馈信息,必要的时候,修改数据库的结构。
登记数据库的用户,维护数据库的安全性。
保证数据库的使用符合知识产权相关法规。
控制和监控用户对数据库的存取访问。
监控和优化数据库的性能。
制定数据库备份计划,灾难出现时对数据库信息进行恢复
维护适当介质上的存档或者备份数据
备份和恢复数据库
联系数据库系统的生产厂商,跟踪技术信息。
DBA的个性特点

  很多时候管理人员都忽视了DBA的个性特点,他们只关注DBA的技术能力。实际上,上面谈到的每个职责都意味着:DBA需要跟各种人员打交道,这些人员可能是销售商、用户、开发人员或者管理人员。这说明:DBA必须具有下面的个性特点:

自信心
好奇心
坚韧的意志力
老练
自我驱动
注意细节

为什么这些个性特点很重要呢?

  我就有几个缺乏自信心的部下,他们反复问我一些事无巨细的问题,他们没有信心哪怕做最小的决定。他们也缺乏工作的主动性。这对于初级DBA来说可能问题不太大,但对于那些高级DBA来说,如果他们缺乏自信心,他们又可以依赖谁帮他们决策呢?在DBA的面试中,即使你不能回答某个技术问题,你也要表现出足够的自信心。最致命的不是不知道问题的答案,而是不知道从哪儿得到答案。

  几乎所有的数据库系统都在不停地更新。但并不是所有的更新都有技术文档。对于好的DBA来说,好奇心是必需的。没有好奇心和求知欲的DBA总是等待有人告诉他们答案。而一个求知欲强的DBA将安装最新版本的数据库系统,并立即开始搜寻那些哪怕是细微的功能和性能上的差异和增强,从而改进自己的工作。应试时一个必然问及的问题是:你手头有哪些参考资料?你如何使用它们?毫无疑问,如果你只回答了数据库的文档,或者你甚至没有读过他们,你的"股票市值"将大大下降。好奇心会驱使DBA们理解数据字典(Data Dictionary)、管理工具(Tools)或者其他支持包(Packages)。

  DBA常常会碰到棘手的问题。寻找答案是一个需要坚韧意志力、可以经受摔打的个性特点。我常常在一些讨论组或者论坛上看到DBA们提出的问题,这些问题往往是提问者自己可以解决的,如果他们具有坚韧的个性特点,并努力寻求问题的答案。

  自我驱动对每个人都是很重要的,对DBA尤其如此。DBA要能想办法使问题出现,而不是等待问题的出现。自驱力强的DBA常常设法取得或者自己写一些必要的脚本(Script)来监控包括数据表大小(Table Size)、表空间使用(Tablespace Usage)等项目,这些项目如果被忽视,他们将遇到麻烦。应试的时候DBA们常常被问及在PL/SQL、SQL或者SQL*PLUS方面的经验,这些问题将把你从从来没有编写过自己需要的脚本的那些DBA们区分开。

  不用说和用户,就是和程序员和管理人员打交道,也需要你足够老练。一个一点不会处事的DBA不会为你做什么好事,只会在你的部门点燃敌对情绪的烈火。老练是这样一种能力,你劝告某个人到地府去,哈哈,最后这个人怀着渴望的心情去了。很多时候,开发者、管理者、用户,他们会提出毫无道理的需求,DBA们需要老练地引导、修正它们的要求,说服他们。在应试时,你的应对就很能说明你是否老练。
最后说说注意细节,这种性格倾向非常重要。注意细节的DBA们衣着整洁,有自己的日程安排,在应试前对应聘的单位做过调查。注意细节的DBA们深入了解数据库的内核,并能理解视图、表之间的关系。

DBA的等级

  DBA的等级并不是很严格的。按照对数据库的掌握情况,我简单地分成三个等级:初级Primary、中级Intermediate和高级Senior。

  初级DBA又称为DBBS,是英文Database Baby Sitter的缩写。初级DBA常常是兼职的,他们往往同时是程序员或者兼任其他的工作。初级DBA往往把个人简历写得很棒,参与了很多和数据库有关的项目或工作。但是,这些项目或者工作往往是:第三方软件供应商已经安装并配置了数据库,他们只做一些监控的工作。他们能处理一些简单的问题,但大多数时候他们向应用软件供应商求救。初级DBA更喜欢图形化的数据库管理或者监控工具,他们喜欢Access这样的桌面数据库简单易用,并把这些小型数据库的经验简单地应用到大型数据库相关的工作中。

  初级DBA是最好区分的。而中级DBA和高级DBA就不太好区分。他们的差别在于经验的不同和个性特点、能力方面的差异。中级DBA比较多,他们可以胜任高级DBA的大部分工作,包括:

数据库安装
数据库配置和管理
权限设置和安全管理
监控和性能调节
备份和恢复
解决一般的问题

  中级DBA往往从业一年左右,熟悉某种操作系统环境下的数据库。因为对中级DBA来讲,Windows NT和Unix是有很大差别的。中级DBA对SQL比较熟悉,他们自己购买了几本数据库方面的书籍,并深入钻研。中级DBA往往同时兼任数据库程序员,他们的工作对性能、稳定性、安全性的追求基本上不是很高,往往配合高级DBA做一些例行工作。

  高级DBA在国内是非常少的。他们购买了太多的数据库方面的英文资料,也许是托朋友从Amazon买的。相对于他们的报酬来讲,买书的钱是很少的一个比例。高级DBA一般都熟悉很多种操作平台下的几种大型数据库。他们知道各种不同数据库在不同环境下的优势和劣势,并能在数据库平台和数据库环境的选择方面做出决策。他们一般通晓系统架构和数据库设计,并能对数据库进行各种级别的优化。高级DBA一般都配有助手,他们更偏向做决策和计划。高级DBA往往在银行业、保险业、在线交易等对稳定性、安全性、性能都要求比较高的关键业务处理领域大显身手。

  很多时候,是否取得数据库专家认证证书并不是很重要。我知道很多数据库厂商的培训只要你去了都会获得证书。有很多的公司提供商业化的培训,他们的服务质量也有好有劣。所以证书并不是特别地有意义。

几种流行的数据库系统

最"容易"的数据库系统-Microsoft SQL Server

  如果你打算做一个DBA,建议你选择那些现在比较流行的数据库系统。这意味着你将有更多的就业机会、交流和培训机会,而且,流行自有流行的理由,你可以因此省心很多。当然,就业竞争压力也比较大。一般的入门者选择Microsoft SQL Server,这是非常适合中小型企业的数据库系统,熟悉Access的读者很容易就能初步使用Microsoft SQL Server,成为一个DBBS。 J
Microsoft SQL Server 7.0的报价,5用户版1399美金,增加用户时,127美金每用户。

最"难"的数据库-无冕之王Oracle

  如果你有机会接触到Oracle,那可是个好机会。Oracle是目前最看好的数据库厂商,由于其强大的功能和可配置、可管理能力,Oracle DBA的薪资一般比其他数据库管理员的薪资要高。而且,Oracle在大中型企业的关键应用也更加普遍了。Oracle可以运行在Windows NT、Sun Solaris、Linux等平台下。很多情况下要求你不仅仅熟悉NT,还要你熟悉Unix;而且Oracle不太友善的界面和成箱的Oracle产品资料可能也是一个障碍。
Oracle 8i标准版的报价,如果运行在Windows NT,附带JServer和interMedia,支持5个并发用户,报价是3925美金每CPU。增加并发用户时,785美金每用户。增加附加的命名用户时,392.5美金每用户。

数据库系统的贵族-IBM UDB/DB2

  作为30年数据库研究的成果,IBM DB2确实称得上"数据库系统的贵族"。不管是小型商业系统,还是大的银行系统,用DB2都是可以高枕无忧的。最近推出的新版DB2 6.1, 管理和调节工具更加卓越和便于使用。DB2 可以运行在Intel架构上,也可以运行在IBM的S/390大型计算机上。如果你所在的行业对IBM的机器特别地称道,建议你学习IBM DB2。

DB2有两种版本:工作组版和企业版。工作组版999美元每服务器,外加249美元每个并发用户。而企业版是12500美元每个CPU,不限并发用户数量。

以Java为中心的数据库-Sybase Adaptive Server Enterprise(ASE) 12.0

  即将发布的Sybase ASE 12.0,直接面向Java 程序员。这种以Java为中心的数据库系统,为那些准备在Java 平台下构建企业应用的企业来说,将是最好的选择。但是ASE称不上一个数据库领域的领先者,尽管相对于它以前的版本已经改进很多,并支持多个CPU和更多的并发,还有很多的新的特性。但Sybase的风光似乎已经不再。

值得期盼的Informix Centaur

  有时候"第一"只是意味着你的对手需要等待更长的时间去赶上你。这正是1997年创立的Informix所面临的。Informix公司是率先将多媒体特性加入到关系数据库系统的大型数据库厂商之一。但是如今,IBM、Oracle、Sybase都已经跨越了这个概念。所以,Informix不得不寻求新的支撑来使自己区别于其他数据库厂商。这就是Informix Centaur的目标。Informix Centaur结合了Informix Dynamic Server 7.3的对象-关系数据库和Informix Universal Data Option 9.1,意在获得更好的适应性和多媒体支持。详情如何,我们拭目以待!

DBA的薪资

有很多因素影响到你作为DBA的薪资:

你的经验和能力所决定的DBA等级
你所熟悉的数据库系统
你的个性特点和潜力

  下面的表说明了国内DBA人员的基本薪资状况,并说明了DAB等级和你所熟悉的数据库系统怎样影响到DBA的薪资。当然,这只是我个人掌握的情况,只能在一定程度上代表行业的平均水平。


DBA等级数据库系统 初级DBA年薪(万元) 中级DBA年薪(万元) 高级DBA年薪(万元)
Oracle 4  8 11
Microsoft SQL Server 3 5 8
IBM DB2 4 8 10
Sybase 3.5 6 8
Informix 4 7 10
注:每年按13个月计算。表内数字为平均年薪。
没能力危害祖国,没理由背离人民,没资本好逸恶劳,没本事损人利己,没机会见利忘义,没胆量违法乱纪,没钞票骄奢淫逸,只好愚昧无知了!
6楼2006-09-11 10:52:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

幻影无痕

荣誉版主 (知名作家)

小木虫论坛总监

优秀版主

精通数据库系列之入门-技巧篇1

在本次讲座中,我们将首先介绍数据库设计的基本方法,并附上了一个设计MS-SQL Server数据库的例子。然后以Delphi5为开发工具,标准的paradox表为后台数据库,来向大家介绍如何进行最简单的数据库编程。

  在本例中,我们将实现对一个数据表单的添加、修改、删除以及对表中数据进行查询的功能。本例所使用的计算机软硬件环境为:Windows NT 4.0 Server,MS-SQL Server7.0,Borland Delphi 5,PIII550,256M内存。当然啦,一般的朋友在Win98的环境下或者Win2000的环境下都可以按照本例的步骤来编程序的。笔者的机器主要用作服务器,所以就在服务器上编啦。废话少说,现在开始:

一、数据库设计的基本方法

  数据库设计是建立数据库及其应用系统的核心和基础,它要求对于指定的应用环境,构造出较优的数据库模式,建立起数据库应用系统,并使系统能有效地存储数据,满足用户的各种应用需求。一般按照规范化的设计方法,常将数据库设计分为若干阶段……

二、MS-SQL Server数据库设计示例

  下面,笔者还为各位网友准备了一套数据库大餐,这就是在MS-SQL Server下的Client/Server结构编程示例……

三、数据库编程示例

  在本次讲座中,我们以Delphi5为开发工具,标准的paradox表为后台数据库,来向大家介绍如何进行最简单的数据库编程。在本例中,我们将实现对一个数据表单的添加、修改、删除以及对表中数据进行查询的功能……

四、大型数据库设计原则

  一个好的数据库产品不等于就有一个好的应用系统,如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能。一般来讲,在一个MIS系统分析、设计、测试和试运行阶段,因为数据量较小,设计人员和测试人员往往只注意到功能的实现,而很难注意到性能的薄弱之处,等到系统投入实际运行一段时间后,才发现系统的性能在降低……
没能力危害祖国,没理由背离人民,没资本好逸恶劳,没本事损人利己,没机会见利忘义,没胆量违法乱纪,没钞票骄奢淫逸,只好愚昧无知了!
7楼2006-09-11 10:52:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

幻影无痕

荣誉版主 (知名作家)

小木虫论坛总监

优秀版主

精通数据库系列之入门-技巧篇2


数据库设计的基本方法  

     

  数据库设计是建立数据库及其应用系统的核心和基础,它要求对于指定的应用环境,构造出较优的数据库模式,建立起数据库应用系统,并使系统能有效地存储数据,满足用户的各种应用需求。一般按照规范化的设计方法,常将数据库设计分为若干阶段:
  系统规划阶段主要是确定系统的名称、范围;确定系统开发的目标功能和性能;确定系统所需的资源;估计系统开发的成本;确定系统实施计划及进度;分析估算系统可能达到的效益;确定系统设计的原则和技术路线等。对分布式数据库系统,还应分析用户环境及网络条件,以选择和建立系统的网络结构。
  需求分析阶段要在用户调查的基础上,通过分析,逐步明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求。通过对组织、部门、企业等进行详细调查,在了解现行系统的概况、确定新系统功能的过程中,收集支持系统目标的基础数据及其处理方法。
  概念设计阶段要产生反映企业各组织信息需求的数据库概念结构,即概念模型。概念模型必须具备丰富的语义表达能力、易于交流和理解、易于变动、易于向各种数据模型转换、易于从概念模型导出与DBMS有关的逻辑模型等特点。
  逻辑设计阶段除了要把E-R图的实体和联系类型,转换成选定的DBMS支持的数据类型,还要设计子模式并对模式进行评价,最后为了使模式适应信息的不同表示,需要优化模式。
  物理设计阶段的主要任务是对数据库中数据在物理设备上的存放结构和存取方法进行设计。数据库物理结构依赖于给定的计算机系统,而且与具体选用的DBMS密切相关。物理设计常常包括某些操作约束,如响应时间与存储要求等。
  系统实施阶段主要分为建立实际的数据库结构;装入试验数据对应用程序进行测试;装入实际数据建立实际数据库三个步骤。
  另外,在数据库的设计过程中还包括一些其他设计,如数据库的安全性、完整性、一致性和可恢复性等方面的设计,不过,这些设计总是以牺牲效率为代价的,设计人员的任务就是要在效率和尽可能多的功能之间进行合理的权衡。
没能力危害祖国,没理由背离人民,没资本好逸恶劳,没本事损人利己,没机会见利忘义,没胆量违法乱纪,没钞票骄奢淫逸,只好愚昧无知了!
8楼2006-09-11 10:53:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

幻影无痕

荣誉版主 (知名作家)

小木虫论坛总监

优秀版主

精通数据库系列之入门-技巧篇3

  下面,笔者还为各位网友准备了一套数据库大餐,这就是在

MS-SQL Server下的Client/Server结构编程示例:  

  MS-SQL SERVER是微软公司生产的中型关系数据库管理系统,它有如下的一些特点:

客户/服务器体系结构
图形化的用户界面,使系统的管理更加直观和简单。
丰富的编程接口,为用户进行应用程序设计提供了更大的选择余地。
与Windows NT操作系统的有机集成,多线程体系结构设计,提高了系统对用户并发访问的速度。
对Web技术的支持,使用户能够很容易的将数据库中的数据发布到网上。
价格上的优势。与其它一些大型数据库系统如Oracle、Sybase等相比,SQL Server的价格非常便宜。
  由于SQL Server数据库管理系统具有突出的有点,所以其用户越来越多。本文中陈述的是一些使用SQL Server的方法和体会(以SQL Server6.5为例)。  

一、系统的安装

  SQL Server要求安装在Windows NT操作系统平台下,它可以和NT一起运行在Intel x86、Alpha AXP或者MIPS等不同体系结构的微处理器环境。系统的内存和硬盘空间最小要求是16MB和96MB。在安装时,启动光盘上i386目录下的setup.exe程序,根据安装程序的提示可以很容易的完成系统安装。

  安装过程中系统主要生成了SQL Enterprise Manager、SQL Web Assistant、ISQL_W、SQL Books Online等系统工具,其中SQL Enterprise Manager是最重要的一个工具,它可以实现对SQL Server数据库系统的全面操作和维护。

  系统安装完毕后,有以下方法可以启动SQL Server服务:

使用net start mssqlserver命令启动SQL Server服务。
系统自动启动。
使用系统管理工具SQL Enterprise Manager或SQL Service Manager启动服务。
使用Windows NT控制面板里的服务选项启动SQL Server服务。
   

二、数据库的建立

  从SQL Enterprise Manager的数据库管理窗口选择“新建”按钮,弹出新建数据库对话框(如下页图所示)。在这个对话框中输入新建数据库的名称,选择存储数据库及其日志所使用的设备,输入它们的空间大小(以MB为单位),再根据需要选择Create for Load复选框(该复选框说明是否从一个备份库中向新建的数据库加载数据),然后选择“OK”按钮即可创建一个新的数据库。

  另外,使用SQL语句也可以创建数据库:

CREATE DATABASE MyDataBase

[ON {DEFAULT | database_device}[=size]

  [,database_device [=size]] …]

  [LOG ON database_device [=size]

[,database_device [=size]] … ]

[FOR LOAD]

  其中size是以MB为单位。




三、表格的建立

  从SQL Enterprise Manager的数据库管理窗口选择DataBases->DataBaseName-> Objects->Tables,弹出新建数据表对话框(如图所示)。

  

  在这个对话框里设置属性的名称、数据类型、字段长度、是否可以为空以及缺省值等。

  设置完毕后点击“存储”的图标,完成表单的存储。

四、使用前端开发工具编程操纵数据库

  本例中前端开发工具采用Inprise Delphi4.0,通过前端程序实现对后台数据库的操作,这也是Client/Server的标准结构。

  首先在Delphi的表单上(Form)放置一些必须的控件,分别是:DataBase、Table、DataSource、DBGrid、DBNavigator。其中DataBase的属性设置为: (数据库服务器的地址)   (数据库的用户名)   (这里假设口令为123456)  

  然后将Table的DataBaseName属性设置为和DataBase控件的DataBaseName属性相同。TableName属性选择成为么操纵的数据库。

  再将DataSource控件的DataSet设为Table1(Table控件的Name)。DBGrid和DBNavigator的DataSource属性都为DataSource1(DataSource控件的Name)。

  进行以上的设置之后,就完成了一个可以操纵数据库表单的最简单的程序,程序的运行界面如下:

  

  以上实现的是基于Client/Server结构的数据库编程,在Windows NT 4.0+MS SQL Server6.5下调试通过(PIII550,256M RAM)。

  另外,我们还有基于MS-SQL Server的Browser/Server结构程序设计示例,将在以后的JSP/ASP讲座中实现。

  本讲到此结束,祝各位朋友愉快!
没能力危害祖国,没理由背离人民,没资本好逸恶劳,没本事损人利己,没机会见利忘义,没胆量违法乱纪,没钞票骄奢淫逸,只好愚昧无知了!
9楼2006-09-11 10:53:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wswswws 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见