<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>王武兔的业务流程管理世界</title>
    <description>五年软件架构经验，曾就职于HP, IBM。
致力于SOA, MDA, EAI, BPM, Workflow, JavaEE及Web应用技术的研究推广。</description>
    <link>http://ww2.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>集成产品开发（IPD）理论学习心得（3）：产品开发管理的时代变迁</title>
        <author>ww2</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ww2.javaeye.com">ww2</a>&nbsp;
          链接：<a href="http://ww2.javaeye.com/blog/171004" style="color:red;">http://ww2.javaeye.com/blog/171004</a>&nbsp;
          发表时间: 2008年02月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 麦克格拉斯大叔眼光再一次超越了我们当前的产品开发管理模式。上个世纪的《培思的力量》造就了IPD的浪潮（当然，这股浪潮也离不开IBM的贡献）。在其《下一代产品开发》一书中，提出了新的&ldquo;提高产品研发生产率的&rdquo;时代。当然，这个时代可能离我们还比较遥远，绝大多数的国内软件企业还停留在&ldquo;项目成功时代&rdquo;，当然，有部分极少数的已经进入&ldquo;快速上市时代&rdquo;。</p><p>麦克格拉斯为产品开发管理划分了四个时代（截至目前为止）：发明与商品化时代，项目成功时代，快速上市时代，研发生产率时代。</p><p><strong>发明与商品化时代：</strong>这个时代的特征就是如何更快的发明创造出新产品。可能会因为一两个新产品的发明，而影响到整个企业的发展。<br /><strong>项目成功时代：</strong>这个时代关注的是如何保证产品被成功研发出来，项目进度如何被正确估算、控制、监督和保证。<br /><strong>快速上市时代：</strong>这个时代关注的则是如何有更好的产品策略来差异化及领先竞争对手产品，并保证产品能够在最快的时间内上市销售。<br /><strong>研发生产率时代：</strong>这个时代关注的则是如何通过内部资源、财务管理来保证利用最少的资源，产出最多的有效产品。</p><p>集成产品开发（IPD）是&rdquo;快速上市时代&ldquo;的产物，事实上，这就要求实施IPD的企业，必须已经能够很好的控制项目研发管理，必须已经存在比较一套运作良好的研发管理流程&mdash;&mdash;这也就是说，那种还是&rdquo;小作坊式&lsquo;的研发模式，根本是无法实施IPD的。&mdash;&mdash; 当然，在实施IPD之后，原本的研发管理流程可能会有所改变，以适应&ldquo;从产品的角度看待研发的视角&rdquo;。</p>
          <br/>
          <span style="color:red;">
            <a href="http://ww2.javaeye.com/blog/171004#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 15 Feb 2008 10:33:15 +0800</pubDate>
        <link>http://ww2.javaeye.com/blog/171004</link>
        <guid>http://ww2.javaeye.com/blog/171004</guid>
      </item>
      <item>
        <title>集成产品开发（IPD）理论学习心得（2）：战略愿景下的产品战略</title>
        <author>ww2</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ww2.javaeye.com">ww2</a>&nbsp;
          链接：<a href="http://ww2.javaeye.com/blog/171005" style="color:red;">http://ww2.javaeye.com/blog/171005</a>&nbsp;
          发表时间: 2008年02月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在《<strong>培斯的力量</strong>》第七章中，很着重的强调了&ldquo;产品战略&rdquo;的作用。产品战略始于一个清晰的企业&ldquo;<strong>战略愿景（Strategic Vision）</strong>&rdquo;。愿景这个名词有的翻译为&ldquo;远景&rdquo;。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对产品战略有非凡眼光的企业通常能取得不寻常的成功。这些企业清楚自己前进的方向以及达到目标的方法，他们对成功有信心并且毫不动摇地前进。而着完全依托于合适而明确的&ldquo;战略愿景&rdquo;。对于&ldquo;Strategic Vision&rdquo;我们不多讲解，这属于企业文化范畴。任何成功的企业，必然有着深厚而浓郁的企业文化做支撑，才能保证企业组织构架的完备、一心。稳固和健全的企业组织构架是确保产品战略稳定运行的基础。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 国内很多创业型的软件企业在经历过一两年的挣扎后就关门了，失败的原因就是在于&ldquo;尚未想清楚做什么&rdquo;就&ldquo;揭竿而起&rdquo;了。当然，因为&ldquo;机会成本&rdquo;的存在，总会有些企业被上帝眷顾，幸运的走上的正规，但绝大多数却&ldquo;在迷失中失败了&rdquo;：有很多朋友，总想着创业，在某天幸运的接到一单项目，就盲目注册公司，开始创业了&mdash;&mdash; 如今，还在存活的不多了。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 战略愿景需要企业回答：企业的目标是什么？怎样实现该目标？为什么会成功？</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 那么产品战略是做什么的呢？<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>产品战略，能使公司先于其它任何公司进入一个新兴市场；能给公司源源不断地提供具有竞争优势的产品。</strong> &mdash;&mdash; 这其实是一个&rdquo;悖论概念&ldquo;，如果相互竞争的公司都实施了正确的产品战略过程，那么大家都在同一个起跑线上竞争；如果其中一家没有实施产品战略，那么只能在慢慢的竞争中逐渐落后，直到被收购或推出市场。&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://ww2.javaeye.com/blog/171005#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 04 Feb 2008 13:18:00 +0800</pubDate>
        <link>http://ww2.javaeye.com/blog/171005</link>
        <guid>http://ww2.javaeye.com/blog/171005</guid>
      </item>
      <item>
        <title>集成产品开发（IPD）理论学习心得（1）</title>
        <author>ww2</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ww2.javaeye.com">ww2</a>&nbsp;
          链接：<a href="http://ww2.javaeye.com/blog/171006" style="color:red;">http://ww2.javaeye.com/blog/171006</a>&nbsp;
          发表时间: 2008年02月01日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对于很未接触过<font color="#0000ff">集成产品开发（IPD）</font>的人来说，&ldquo;集成产品开发&rdquo;这个名词很容易让人误以为是&ldquo;系统集成&rdquo;范畴内的事情或工作。事实上，IPD是一个&ldquo;软件开发管理&rdquo;层面的概念和方法。接下来的工作与IPD（集成产品开发）有直接关系，但IPD对我来说，完全是一个新概念、新名词、新方法。所以就预先从&ldquo;概念和理论&rdquo;层面好好学习学习。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 虽然不久会有专业的IPD咨询人员做指导，来推进IPD的进行。但是我还是考虑先预习预习理论知识。这应该是这么多年在Workflow领域打拼之后的心得吧：理论很重要，没有理论的盲目实践，指挥大大增加失败和走弯路的几率。&mdash;&mdash; 国内开发人员普遍不重视对理论知识的积累，这是一个非常不好的习惯。&mdash;&mdash; 当然，对于IPD更重要的是&ldquo;实践&rdquo;，这有赖于今后在进行IPD工作中逐步积累方法和方式。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如今，就先理论学习中的心得吧。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当一个企业的产品研发、市场推广、销售渠道、售后支持等方面都具有一定的基础之后，就会面临几个主要问题：<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; （1）<strong>如何更加有效的制定产品定位和战略：</strong>满足客户需求、符合发展趋势、领先竞争对手<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; （2）<strong>如何确保&ldquo;新产品&rdquo;从规划、预研、开发的按时、按质的顺利进行；并在预期的时间范围内启动上市、推广、销售策略。<br /></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; （3）<strong>确保产品研发按照市场趋势和需求研发，</strong>而不是&ldquo;闭门造车、技术探索&rdquo;。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; （4）<strong>在企业内部，确保&ldquo;市场、销售、研发、服务&rdquo;关键环节的有效沟通。</strong></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在企业成长初期，一个产品的定位和战略，可能完全取决于CEO、CTO、产品研发经理等少数几个人抉择。这样的抉择符合企业起步发展的阶段性需求（精简、快速出产品），并带有明显的&ldquo;技术主导&rdquo;的影子：研发人员更多的是从&ldquo;技术实现&rdquo;角度来看待产品；而市场、销售等部门完全只着眼于自身产品如何&ldquo;卖好&rdquo;，因为他们无需也无法干预&ldquo;产品研发的方向和进度&rdquo;。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当企业初步成长起来后：研发具有了小规模性，不再是小作坊；市场已经有所基础，开始面对更多的竞争对手；销售已经有客户群基础，面临如何拓展更广泛的客户群；服务体系已经基本形成。&mdash;&mdash; 此时，如果企业还依然&ldquo;以产品研发为主导&rdquo;的视角来看待产品管理，则会极大的影响企业的发展，甚至因为某些技术或技术人员的变故，造成产品开发的瘫痪。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 国内很多软件企业都面临这样的问题，我想也是国内很多软件企业&ldquo;无法做大做强&rdquo;的原因之一。很多国内企业，在刚刚有所起步的时候，因为技术核心人员的离职，而造成产品研发的停滞或延迟。&mdash;&mdash;这个问题，并不是IPD所能解决的问题范畴，但或多或少有一定关系&mdash;&mdash;如果企业能够正确的规划产品、规划产品战略，从而会大大提高&ldquo;研发人员&rdquo;的积极性和稳定性&nbsp;<br /></p>
          <br/>
          <span style="color:red;">
            <a href="http://ww2.javaeye.com/blog/171006#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 01 Feb 2008 16:51:13 +0800</pubDate>
        <link>http://ww2.javaeye.com/blog/171006</link>
        <guid>http://ww2.javaeye.com/blog/171006</guid>
      </item>
      <item>
        <title>关于管理的故事</title>
        <author>ww2</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ww2.javaeye.com">ww2</a>&nbsp;
          链接：<a href="http://ww2.javaeye.com/blog/171361" style="color:red;">http://ww2.javaeye.com/blog/171361</a>&nbsp;
          发表时间: 2008年01月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>　　一、 分工 <br /><br />　　[故事]　<br /><br />　　一位年轻的炮兵军官上任后，到下属部队视察操练情况，发现有几个部队操练时有一个共同的情况：在操练中，总有一个<a><span id="S__699_ADDIV_5" onmouseover="S__699.SHOWFLOW('士兵','5',event);this.style.textDecoration='none';" onclick="S__699.SHOWFLOW('士兵','5',event);" onmouseout="S__699.hidden('5');this.style.textDecoration='underline';" oncontentextmenu="return false" style="CURSOR: pointer; COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline">士兵</span></a>自始至终站在大炮的炮筒下，纹丝不动。经过询问，得到的答案是：操练条例就是这样规定的。原来，条例因循的是用马拉大炮时代的规则，当时站在炮筒下的士兵的任务是拉住马的缰绳，防止大炮发射后因后座力产生的距离偏差，减少再次瞄准的时间。现在大炮不再需要这一角色了。但条例没有及时调整，出现了不拉马的士兵。这位军官的发现使他受到了<a><span id="S__699_ADDIV_8" onmouseover="S__699.SHOWFLOW('国防部','8',event);this.style.textDecoration='none';" onclick="S__699.SHOWFLOW('国防部','8',event);" onmouseout="S__699.hidden('8');this.style.textDecoration='underline';" oncontentextmenu="return false" style="CURSOR: pointer; COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline">国防部</span></a>的表彰。 <br /><br />　　[分析]　 <br /><br />　　管理的首要工作就是科学分工。只有每个员工都明确自己的岗位职责，才不会产生推委、扯皮等不良现象。如果公司象一个庞大的机器，那么每个员工就是一个个零件，只有他们爱岗敬业，公司的机器才能得以良性运转。公司是发展的，管理者应当根据实际动态情况对人员数量和分工及时做出相应调整。否则，队伍中就会现&ldquo;不拉马的士兵&rdquo;。如果队伍中有人滥竽充数，给企业带来的不仅仅是工资的损失，而且会导致其他人员的心理不平衡，最终导致公司工作效率整体下降。 <br /><br />　　二、 标准 <br /><br />　　[故事]　<br /><br />　　有一个小和尚担任撞钟一职，半年下来，觉得无聊之极，&ldquo;做一天和尚撞一天钟&rdquo;而已。有一天，主持宣布调他到后院劈柴挑水，原因是他不能胜任撞钟一职。和尚很不服气地问：&ldquo;我撞的钟难道不准时、不响亮？&rdquo;老主持耐心地告诉他：&ldquo;撞的钟虽然很准时、也很响亮，但钟声空泛、疲软，没有感召力。钟声是要唤醒沉迷的众生，因此，撞出的钟声不仅要洪亮，而且要圆润、浑厚、深沉、悠远。&rdquo; <br /><br />　　[分析]　　<br /><br />　　本故事中的主持犯了一个常识性管理错误，&ldquo;做一天和尚撞一天钟&rdquo;是由于主持没有提前公布工作标准造成的。如果小和尚进入寺院的当天就明白撞钟的标准和重要性，我想他也不会因怠工而被撤职。工作标准是员工的行为指南和考核依据。缺乏工作标准，往往导致员工的努力方向与公司整体发展方向不统一，造成大量的力和物力资源浪费。因为缺乏参照物，时间久了员工容易形成自满情绪，导致工作懈怠。制定工作标准尽量做到数字化，要与考核联系起来，注意可操作性。 <br /><br />　　三、 体制 <br /><br />　　[故事]　<br /><br />　　有七个人住在一起，每天共喝一桶粥，显然粥每天都不够。一开始，他们抓阄决定<a><span id="S__699_ADDIV_1" onmouseover="S__699.SHOWFLOW('谁','1',event);this.style.textDecoration='none';" onclick="S__699.SHOWFLOW('谁','1',event);" onmouseout="S__699.hidden('1');this.style.textDecoration='underline';" oncontentextmenu="return false" style="CURSOR: pointer; COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline">谁</span></a>来分粥，每天轮一个。于是乎每周下来，他们只有一天是饱的，就是自己分粥的那一天。后来他们开始推<a><span id="S__699_ADDIV_2" onmouseover="S__699.SHOWFLOW('选出','2',event);this.style.textDecoration='none';" onclick="S__699.SHOWFLOW('选出','2',event);" onmouseout="S__699.hidden('2');this.style.textDecoration='underline';" oncontentextmenu="return false" style="CURSOR: pointer; COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline">选出</span></a>一个道德高尚的人出来分粥。强权就会产生腐败，大家开始挖空心思去讨好他，贿赂他，搞得整个小团体乌烟障气。然后大家开始组成三人的分粥委员会及四人的评选委员会，互相攻击扯皮下来，粥吃到嘴里全是凉的。最后想出来一个方法：轮流分粥，但分粥的人要等其它人都挑完后拿剩下的最后一碗。为了不让自己吃到最少的，每人都尽量分得平均，就算不平，也只能认了。大家快快乐乐，和和气气，日子越过越好。 <br /><br />　　[分析]　 <br /><br />　　管理的真谛在&ldquo;理&rdquo;不在&ldquo;管&rdquo;。管理者的主要职责就是建立一个象&ldquo;轮流分粥，分者后取&rdquo;那样合理的游戏规则，让每个员工按照游戏规则自我管理。游戏规则要兼顾公司利益和个人利益，并且要让个人利益与公司整体利益统一起来。责任、权利和利益是管理平台的三根支柱，缺一不可。缺乏责任，公司就会产生腐败，进而衰退；缺乏权利，管理者的执行就变成废纸；缺乏利益，员工就会积极性下降，消极怠工。只有管理者把&ldquo;责、权、利&rdquo;的平台搭建好，员工才能&ldquo;八仙过海，各显其能&rdquo;。 <br /><br />　　四、 表率 <br /><br />　　[故事]　<br /><br />　　春秋晋国有一名叫李离的狱官，他在审理一件案子时，由于听从了下属的一面之辞，致使一个人冤死。真相大白后，李离准备以死赎罪，晋文公说：官有贵贱，罚有轻重，况且这件案子主要错在下面的办事人员，又不是你的罪过。李离说：&ldquo;我平常没有跟下面的人说我们一起来当这个官，拿的俸禄也没有与下面的人一起分享。现在犯了错误，如果将责任推到下面的办事人员身上，我又怎么做得出来&rdquo;。他拒绝听从晋文公的劝说，伏剑而死。 <br /><br />　　[分析]　 <br /><br />　　正人先正己，做事先做人。管理者要想管好下属必须以身作则。示范的力量是惊人的。不但要象先人李离那样勇于替下属承担责任，而且要事事为先、严格要求自己，做到&ldquo;己所不欲，勿施于人&rdquo;。一旦通过表率树立起在员工中的威望，将会上下同心，大大提高团队的整体战斗力。得人心者得天下，做下属敬佩的领导将使管理事半功倍。 <br /><br />　　五、 竞争 <br /><br />　　[故事]　<br /><br />　　国外一家森林公园曾养殖几百只梅花鹿，尽管环境幽静，水*丰美，又没有天敌，而几年以后，鹿群非但没有发展，反而病的病，死的死，竟然出现了负增长。后来他们买回几只狼放置在公园里，在狼的追赶捕食下，鹿群只得紧张地奔跑以逃命。这样一来，除了那些老弱病残者被狼捕食外，其它鹿的体质日益增强，数量也迅速地增长着。 <br /><br />　　[分析]　 <br /><br />　　流水不腐，户枢不蠹。人天生有种惰性，没有竞争就会固步自封，躺在功劳簿上睡大觉。竞争对手就是追赶梅花鹿的狼，时刻让梅花鹿清楚狼的位置和同伴的位置。跑在前面的梅花鹿可以得到更好的食物，跑在最后的梅花鹿就成了狼的食物。按照市场规则，给予&ldquo;头鹿&rdquo;奖励，让&ldquo;末鹿&rdquo;被市场淘汰。 <br /><br />六、 沟通 <br /><br />　　[故事]　<br /><br />　　美国知名主持人&ldquo;林克莱特&rdquo;一天访问一名小朋友，问他说：&ldquo;你长大后想要当什么呀？&rdquo;小朋友天真的回答：&ldquo;我要当飞机的驾驶员！&rdquo;林克莱特接着问：&ldquo;如果有一天，你的飞机飞到太平洋上空所有引擎都熄火了，你会怎么办？&rdquo;小朋友想了说：&ldquo;我会先告诉坐在飞机上的人绑好安全带，然后我挂上我的降落伞跳出去。&rdquo;当在现场的观众笑的东倒西歪时，林克莱特继续注视这孩子，想看他是不是自作聪明的家伙。没想到，接著孩子的两行热泪夺眶而出，这才使得林克莱特发觉这孩子的悲悯之情远非笔墨所能形容。于是林克莱特问他说：&ldquo;为甚么要这么做？&rdquo;小孩的答案透露出一个孩子真挚的想法：&ldquo;我要去拿燃料，我还要回来！！&rdquo;。　<br /><br />　　[分析]　 <br /><br />　　你真的听懂了手下的话了吗？你是不是也习惯性地用自己的权威打断手下的语言？我们经常犯这样的错误：在手下还没有来得及讲完自己的事情前，就按照我们的经验大加评论和指挥。反过头来想一下，如果你不是领导，你还会这么做吗？打断手下的语言，一方面容易做出片面的决策，另一方面使员工缺乏被尊重的感觉。时间久了，手下将再也没有兴趣向上级反馈真实的信息。反馈信息系统被切断，领就成了&ldquo;孤家寡人&rdquo;，在决策上就成了&ldquo;睁眼瞎&rdquo;。与手下保持畅通的信息交流，将会使你的管理如鱼得水，以便及时纠正管理中的错误，制定更加切实可行的方案和制度。 <br /><br />　　七、 指导 <br /><br />　　[故事]　<br /><br />　　有一回，日本歌舞伎大师勘弥扮演古代一位徒步旅行的百姓，他要上场之前故意解开自己的鞋带，试图表现这个百姓长途旅行的疲态。正巧那天有位<a><span id="S__699_ADDIV_6" onmouseover="S__699.SHOWFLOW('记者','6',event);this.style.textDecoration='none';" onclick="S__699.SHOWFLOW('记者','6',event);" onmouseout="S__699.hidden('6');this.style.textDecoration='underline';" oncontentextmenu="return false" style="CURSOR: pointer; COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline">记者</span></a>到后台采访，看见了这一幕。等演完戏后，记者问勘弥：&ldquo;你为什么不当时指教学生呢，他们并没有松散自己的鞋带呀。&rdquo;勘弥回答说：&ldquo;要教导学生演戏的技能，机会多的是，在今天的场合，最重要的是不要让他们保持热情。&rdquo; <br /><br />　　[分析]　 <br /><br />　　提高员工素质和能力是提高管理水准的有效方式。学习有利于提高团队执行力，便于增强团队凝聚力。手把手的现场指导可以及时纠正员工的错误，是提高员工素质的重要形式之一。但是指导必须注重技巧，就象勘弥大师那样要保护员工的热情。管理者必须避免教训式指导，应当语重心长的激励员工提高自身业务素质。除了现场指导外，还可以综合运用培训、交流会、内部刊物、业务竞赛等多种形式，激发员工不断提高自身素质和业务水平，形成一个积极向上的学习型团队。 <br /><br />　　八、 锻炼 <br /><br />　　[故事]　<br /><br />　　一个人在高山之巅的鹰巢里，抓到了一只幼鹰，他把幼鹰带回家，养在鸡笼里。这只幼鹰和鸡一起啄食、嬉闹和休息。它以为自己是一只鸡。这只鹰渐渐长大，羽翼丰满了，主人想把它训练成猎鹰，可是由于终日和鸡混在一起，它已经变得和鸡完全一样，根本没有飞的愿望了。主人试了各种办法，都毫无效果，最后把它带到山顶上，一把将它扔了出去。这只鹰像块石头似的，直掉下去，慌乱之中它拼命地扑打翅膀，就这样，它终于飞了起来！ <br /><br />　　[分析]　 <br /><br />　　每个人都希望用自己的能力来证明自身<a><span id="S__699_ADDIV_4" onmouseover="S__699.SHOWFLOW('价值','4',event);this.style.textDecoration='none';" onclick="S__699.SHOWFLOW('价值','4',event);" onmouseout="S__699.hidden('4');this.style.textDecoration='underline';" oncontentextmenu="return false" style="CURSOR: pointer; COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline">价值</span></a>，手下也不例外。给他们更大的空间去施展自己的才华，是对他们最大的尊重和支持。不要害怕他们失败，给予适当的扶持和指点，放开你手中的&ldquo;雄鹰&rdquo;，让他们翱翔于更宽阔的天空。是个猴子就给他们座山折腾折腾，是条龙就给他们条大江大河扑腾扑腾。他们的成长，将为你的工作带来更大的贡献。他们的成长，将促使你更进一步。 <br /><br />　　九、 发挥 <br /><br />　　[故事]　<br /><br />　　一位著名企业家在做报告。当听众咨询他最成功的做法时，他拿起粉笔在黑板上画了一个圈，只是并没有画圆满，留下一个缺口。 他反问道：&ldquo;这是什么？&rdquo;&ldquo;零&rdquo;、&ldquo;圈&rdquo; 、&ldquo;未完成的事业&rdquo;、&ldquo;成功&rdquo;，台下的听众七嘴八舌地答道。 他对这些回答未置可否：&ldquo;其实，这只是一个未画完整的句号。你们问我为什么会取得辉煌的业绩，道理很简单：我不会把事情做得很圆满，就像画个句号，一定要留个缺口，让我的下属去填满它。&rdquo;　<br /><br />　　[分析]　 <br /><br />　　事必躬亲，是对员工智慧的扼杀，往往事与愿违。长此以往，员工容易形成惰性，责任心大大降低，把责任全推给管理者。情况严重者，会导致员工产生腻烦心理，即便工作出现错误也不情愿向管理者提出。何况人无完人，个人的智慧毕竟是有限而且片面的。为员工画好蓝图，给员工留下空间，发挥他们的智慧，他们会画的更好。多让员工参与公司的决策事务，是对他们的肯定，也是<a><span id="S__699_ADDIV_10" onmouseover="S__699.SHOWFLOW('满足','10',event);this.style.textDecoration='none';" onclick="S__699.SHOWFLOW('满足','10',event);" onmouseout="S__699.hidden('10');this.style.textDecoration='underline';" oncontentextmenu="return false" style="CURSOR: pointer; COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline">满足</span></a>员工自我价值实现的精神需要。赋予员工更多的责任和权利，他们会取得让你意想不到的成绩。 <br /><br />　　十、 鞭策 <br /><br />　　[故事]　<br /><br />　　拿破仑一次打猎的时候，看到一个落水男孩，一边拼命挣扎，一边高呼救命。这河面并不宽，拿破仑不但没有跳水救人，反而端起猎枪，对准落水者，大声喊到：你若不自己爬上来，我就把你打死在水中。那男孩见求救<a><span id="S__699_ADDIV_3" onmouseover="S__699.SHOWFLOW('无用','3',event);this.style.textDecoration='none';" onclick="S__699.SHOWFLOW('无用','3',event);" onmouseout="S__699.hidden('3');this.style.textDecoration='underline';" oncontentextmenu="return false" style="CURSOR: pointer; COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline">无用</span></a>，反而增添了一层危险，便更加拼命地奋力自救，终于游上岸。 <br /><br />　　[分析]　 <br /><br />　　对待自觉性比较差的员工，一味的为他创造良好的软环境、去帮助他，并不一定让他感受到&ldquo;萝卜&rdquo;的重要，有时还离不开&ldquo;大棒&rdquo;的威胁。偶尔利用你的权威对他们进行威胁，会及时制止他们消极散漫的心态，激发他们发挥出自身的潜力。自觉性强的员工也有满足、停滞、消沉的时候，也有依赖性，适当的批评和惩罚能够帮助他们认清自我，重新激发新的工作斗志&nbsp;</p><p>&nbsp;</p><p>[转自]http://bbs.csai.cn/bbs/index.asp?url=http://bbs.csai.cn/BBS/view.asp?id={B17E3275-CE66-4E97-8B18-53F3FCD5ABCB}</p>
          <br/>
          <span style="color:red;">
            <a href="http://ww2.javaeye.com/blog/171361#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 17 Jan 2008 11:27:06 +0800</pubDate>
        <link>http://ww2.javaeye.com/blog/171361</link>
        <guid>http://ww2.javaeye.com/blog/171361</guid>
      </item>
      <item>
        <title>试用炎黄盈动Sam业务流程梳理工具</title>
        <author>ww2</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ww2.javaeye.com">ww2</a>&nbsp;
          链接：<a href="http://ww2.javaeye.com/blog/171007" style="color:red;">http://ww2.javaeye.com/blog/171007</a>&nbsp;
          发表时间: 2008年01月05日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 很早之前，Jack（炎黄盈动创始人）就跟我说过去年底或今年初要发布一款&ldquo;业务流程梳理&rdquo;的工具，昨天终于拿到了beta试用版。&nbsp;可以访问 <a href="http://www.actionsoft.com.cn/sam/">http://www.actionsoft.com.cn/sam/</a>&nbsp;获取详情。通过访问 <a href="http://www.actionsoft.com.cn/xwiki/bin/view/sam/001">http://www.actionsoft.com.cn/xwiki/bin/view/sam/001</a>&nbsp;获取下载试用版本<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img src="http://www.actionsoft.com.cn/xwiki/images/sam.gif" alt="" /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 还是蛮喜欢这只可爱的小鱼的，Jack自己称其为&ldquo;精灵&rdquo;，意思是&ldquo;小巧、易用&rdquo;。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 炎黄盈动作为一家专业的&ldquo;业务流程&rdquo;解决方案和平台提供商，能够抽出精力来&ldquo;关注业务流程梳理&rdquo;，并开发出一款业务流程梳理的工具，实在是有些&ldquo;超前&rdquo;，但这肯定是未来的趋势。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 目前，国内流程方面的软件平台提供商，更多的还是关注在&ldquo;如何更快捷的实施客户流程&rdquo;，却很少从&ldquo;需求分析、流程梳理&rdquo;的角度来辅助客户。&mdash;&mdash; 当然，很多时候，这是由于国内平台厂商只关注&ldquo;产品&rdquo;，然后一般是&ldquo;行业合作伙伴或集成商、实施商&rdquo;来基于产品实施项目。&mdash;&mdash; 特别是很多产品的市场策略是&ldquo;大客户策略&rdquo;，更是影响的产品厂商&ldquo;从客户分析角度&rdquo;看问题的视角。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当然，&ldquo;业务流程梳理&rdquo;更多的偏重于&ldquo;业务咨询&rdquo;领域，所以Sam采用了EVC（企业价值链）方法来进行流程梳理，对于流程的描述，则采用了我非常欣赏的EPC模型。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 多的不说了，直接秀几张图吧。<br /><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/james999/357727/o_sam001.jpg" alt="" /><br /><br /><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/james999/357727/o_sam002.jpg" alt="" /><br /><br /><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/james999/357727/o_sam003.jpg" alt="" /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
          <br/>
          <span style="color:red;">
            <a href="http://ww2.javaeye.com/blog/171007#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 05 Jan 2008 13:58:03 +0800</pubDate>
        <link>http://ww2.javaeye.com/blog/171007</link>
        <guid>http://ww2.javaeye.com/blog/171007</guid>
      </item>
      <item>
        <title>数据仓库相关概念</title>
        <author>ww2</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ww2.javaeye.com">ww2</a>&nbsp;
          链接：<a href="http://ww2.javaeye.com/blog/171362" style="color:red;">http://ww2.javaeye.com/blog/171362</a>&nbsp;
          发表时间: 2007年12月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><br />Data&nbsp;Warehouse<br />本世纪80年代中期，&quot;数据仓库之父&quot;William&nbsp;H.Inmon先生在其《建立数据仓库》一书中定义了数据仓库的概念，随后又给出了更为精确的定义：数据仓库是在企业管理和决策中面向主题的、集成的、与时间相关的、不可修改的数据集合。与其他数据库应用不同的是，数据仓库更像一种过程，对分布在企业内部各处的业务数据的整合、加工和分析的过程。而不是一种可以购买的产品。<br /><br />Data&nbsp;mart<br />数据集市，或者叫做&quot;小数据仓库&quot;。如果说数据仓库是建立在企业级的数据模型之上的话。那么数据集市就是企业级数据仓库的一个子集，他主要面向部门级业务，并且只是面向某个特定的主题。数据集市可以在一定程度上缓解访问数据仓库的瓶颈。<br /><br />OLAP<br />联机分析处理(OLAP)的概念最早是由关系数据库之父E.F.Codd于1993年提出的。当时，Codd认为联机事务处理(OLTP)已不能满足终端用户对数据库查询分析的需要，SQL对大数据库进行的简单查询也不能满足用户分析的需求。用户的决策分析需要对关系数据库进行大量计算才能得到结果，而查询的结果并不能满足决策者提出的需求。因此Codd提出了多维数据库和多维分析的概念，即OLAP。Codd提出OLAP的12条准则来描述OLAP系统：<br />准则1&nbsp;OLAP模型必须提供多维概念视图<br />准则2&nbsp;透明性准则<br />准则3&nbsp;存取能力推测<br />准则4&nbsp;稳定的报表能力<br />准则5&nbsp;客户/服务器体系结构<br />准则6&nbsp;维的等同性准则<br />准则7&nbsp;动态的稀疏矩阵处理准则<br />准则8&nbsp;多用户支持能力准则<br />准则9&nbsp;非受限的跨维操作<br />准则10&nbsp;直观的数据操纵<br />准则11&nbsp;灵活的报表生成<br />准则12&nbsp;不受限的维与聚集层次<br /><br />ROLAP<br />基于Codd的12条准则，各个软件开发厂家见仁见智，其中一个流派，认为可以沿用关系型数据库来存储多维数据，于是，基于稀疏矩阵表示方法的星型结构（star&nbsp;schema）就出现了。后来又演化出雪花结构。为了与多维数据库相区别，则把基于关系型数据库的OLAP称为Relational&nbsp;OLAP，简称ROLAP。代表产品有Informix&nbsp;Metacube、Microsoft&nbsp;SQL&nbsp;Server&nbsp;OLAP&nbsp;Services。<br /><br />MOLAP<br />Arbor&nbsp;Software严格遵照Codd的定义，自行建立了多维数据库，来存放联机分析系统数据，开创了多维数据存储的先河，后来的很多家公司纷纷采用多维数据存储。被人们称为Muiltdimension&nbsp;OLAP，简称MOLAP，代表产品有Hyperion(原Arbor&nbsp;Software)&nbsp;Essbase、Showcase&nbsp;Strategy等。<br /><br />Client&nbsp;OLAP<br />相对于Server&nbsp;OLAP而言。部分分析工具厂家建议把部分数据下载到本地，为用户提供本地的多维分析。代表产品有Brio&nbsp;Designer，Business&nbsp;Object。<br /><br />DSS<br />决策支持系统（Decision&nbsp;Support&nbsp;System），相当于基于数据仓库的应用。决策支持就是在收集所有有关数据和信息，经过加工整理，来为企业决策管理层提供信息，为决策者的决策提供依据。<br /><br />ETL<br />数据抽取（Extract）、转换（Transform）、清洗（Cleansing）、装载（Load）的过程。构建数据仓库的重要一环，用户从数据源抽取出所需的数据，经过数据清洗，最终按照预先定义好的数据仓库模型，将数据加载到数据仓库中去。<br /><br />Ad&nbsp;hoc&nbsp;query<br />即席查询，数据库应用最普遍的一种查询，利用数据仓库技术，可以让用户随时可以面对数据库，获取所希望的数据。<br /><br />EIS<br />主管信息系统（Executive&nbsp;Information&nbsp;System），指为了满足无法专注于计算机技术的领导人员的信息查询需求，而特意制定的以简单的图形界面访问数据仓库的一种应用。<br /><br />BPR<br />业务流程重整（Business&nbsp;Process&nbsp;Reengineering），指利用数据仓库技术，发现并纠正企业业务流程中的弊端的一项工作，数据仓库的重要作用之一。<br /><br />BI<br />商业智能（Business&nbsp;Intelligence），指数据仓库相关技术与应用的通称。指利用各种智能技术，来提升企业的商业竞争力。<br /><br />Data&nbsp;Mining<br />数据挖掘，Data&nbsp;Mining是一种决策支持过程，它主要基于AI、机器学习、统计学等技术，高度自动化地分析企业原有的数据，做出归纳性的推理，从中挖掘出潜在的模式，预测客户的行为，帮助企业的决策者调整市场策略，减少风险，做出正确的决策<br /><br />CRM<br />客户关系管理（Customer&nbsp;Relationship&nbsp;Management），数据仓库是以数据库技术为基础但又与传统的数据库应用有着本质区别的新技术，CRM就是基于数据仓库技术的一种新应用。但是，从商业运作的角度来讲，CRM其实应该算是一个古老的&quot;应用&quot;了。比如，酒店对客人信息的管理，如果某个客人是某酒店的老主顾，那么该酒店很自然地会知道这位客人的某些习惯和喜好，如是否喜欢靠路边，是否吸烟，是否喜欢大床，喜欢什么样的早餐，等等。当客人再次光临时，不用客人自己提出来，酒店就会提供客人所喜欢的房间和服务。这就是一种CRM。<br /><br />Meta&nbsp;Data<br />元数据，关于数据仓库的数据，指在数据仓库建设过程中所产生的有关数据源定义，目标定义，转换规则等相关的关键数据。同时元数据还包含关于数据含义的商业信息，所有这些信息都应当妥善保存，并很好地管理。为数据仓库的发展和使用提供方便&nbsp;</p><p>&nbsp;</p><p>引用地址：<a href="http://www.gold-life.com.cn/trackback.asp?tbID=71" tip="" target="_blank">http://www.gold-life.com.cn/trackback.asp?tbID=7<font color="#000000">1</font></a></p>
          <br/>
          <span style="color:red;">
            <a href="http://ww2.javaeye.com/blog/171362#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 26 Dec 2007 20:32:00 +0800</pubDate>
        <link>http://ww2.javaeye.com/blog/171362</link>
        <guid>http://ww2.javaeye.com/blog/171362</guid>
      </item>
      <item>
        <title>Teradata Client Access</title>
        <author>ww2</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ww2.javaeye.com">ww2</a>&nbsp;
          链接：<a href="http://ww2.javaeye.com/blog/171363" style="color:red;">http://ww2.javaeye.com/blog/171363</a>&nbsp;
          发表时间: 2007年12月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h1 removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" style="MARGIN: 17pt 0cm 16.5pt 21pt; TEXT-INDENT: -21pt; mso-list: l18 level1 lfo1; tab-stops: list 21.0pt"><font removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" face="Times New Roman"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" style="mso-list: Ignore">2.<span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" style="FONT: 7pt 'Times New Roman'"><font size="6" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">&nbsp;&nbsp; </font></span></span></span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US">Client Access</span></font></h1><h2 removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" style="MARGIN: 13pt 0cm 13pt 36pt; TEXT-INDENT: -36pt; mso-list: l18 level2 lfo1; tab-stops: list 36.0pt"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US" style="mso-fareast-font-family: Arial; mso-bidi-font-family: Arial"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" style="mso-list: Ignore">2.1<span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US">Client Connections</span></h2><p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US"><font size="3" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" face="宋体">Users can access data in the Teradata Database through an application on both channel-attached and network-attached clients. Additionally, the node itself can act as a client. Teradata client software is installed on each client (channel-attached, network-attached, or node) and communicates with </font><a href="javascript:WinOpen(1)" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"><font size="3" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" face="宋体">RDBMS</font></a><font size="3" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" face="宋体"> software on the node. You may occasionally hear either type of client referred to by the legacy term of &quot;host,&quot; though this term is not typically used in documentation or product literature. </font></span></p><p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US"><font size="3" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"><font removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" face="宋体"><v:shapetype o:spt="75" coordsize="21600,21600" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" filled="f" id="_x0000_t75" stroked="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t"><v:stroke removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" joinstyle="miter"></v:stroke><v:formulas removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"><v:f removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" eqn="sum @0 1 0"></v:f><v:f removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" eqn="sum 0 0 @1"></v:f><v:f removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" eqn="prod @2 1 2"></v:f><v:f removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" eqn="prod @3 21600 pixelWidth"></v:f><v:f removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" eqn="prod @3 21600 pixelHeight"></v:f><v:f removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" eqn="sum @0 0 1"></v:f><v:f removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" eqn="prod @6 1 2"></v:f><v:f removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" eqn="prod @7 21600 pixelWidth"></v:f><v:f removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" eqn="sum @8 21600 0"></v:f><v:f removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" eqn="prod @7 21600 pixelHeight"></v:f><v:f removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" o:connecttype="rect" gradientshapeok="t"></v:path><o:lock removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" id="_x0000_i1025" type="#_x0000_t75" alt="" style="WIDTH: 355.5pt; HEIGHT: 209.25pt"><v:imagedata o:href="teradata考试资料/Basic/Basic/Untitled/cli-hw.gif" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image001.gif"></v:imagedata></v:shape></font></font></span></p><h2 removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" style="MARGIN: 13pt 0cm 13pt 36pt; TEXT-INDENT: -36pt; mso-list: l18 level2 lfo1; tab-stops: list 36.0pt"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US" style="mso-fareast-font-family: Arial; mso-bidi-font-family: Arial"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" style="mso-list: Ignore">2.2<span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US">Channel-Attached Client</span></h2><p class="MsoNormal" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Channel-attached clients are IBM-compatible mainframe systems supported by the Teradata Database. The following software components installed on the mainframe are responsible for communications between client applications and the Channel Driver on a Teradata node: <o:p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"></o:p></span></p><ul removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" type="disc">    <li class="MsoNormal" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l2 level1 lfo2; tab-stops: list 36.0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Teradata Director Program (TDP) software to manage session traffic, installed on the channel-attached client. <o:p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"></o:p></span></li>    <li class="MsoNormal" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l2 level1 lfo2; tab-stops: list 36.0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Call-Level Interface (CLI), a library of routines that are the lowest-level interface to Teradata. <o:p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"></o:p></span></li></ul><p class="MsoNormal" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><strong removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Communication with the Teradata System</span></strong><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><o:p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"></o:p></span></p><p class="MsoNormal" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Communication from client applications on the mainframe goes through the mainframe channel, to the Host Channel Adapter on the node, to the Channel Driver software.<o:p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"></o:p></span></p><h2 removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" style="MARGIN: 13pt 0cm 13pt 36pt; TEXT-INDENT: -36pt; mso-list: l18 level2 lfo1; tab-stops: list 36.0pt"><a name="2" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"></a><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US" style="mso-fareast-font-family: Arial; mso-bidi-font-family: Arial"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" style="mso-list: Ignore">2.3<span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US">Network Attached Client</span></h2><p class="MsoNormal" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">The Teradata Database supports network-attached clients connected to the node over a <a href="javascript:WinOpen(3)" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">LAN</a>. The following software components installed on the network-attached client are responsible for communication between client applications and the Teradata Gateway on a Teradata node: <o:p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"></o:p></span></p><ul removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" type="disc">    <li class="MsoNormal" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l12 level1 lfo3; tab-stops: list 36.0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><a href="javascript:WinOpen(7)" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">ODBC</a> <o:p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"></o:p></span></li>    <li class="MsoNormal" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l12 level1 lfo3; tab-stops: list 36.0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><a href="javascript:WinOpen(8)" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">CLIv2</a> <o:p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"></o:p></span></li></ul><p class="MsoNormal" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><strong removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Communication with the Teradata System</span></strong><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"> <o:p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"></o:p></span></p><p class="MsoNormal" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Communication from applications on the network-attached client goes over the LAN, to the Ethernet card on the node, to the Teradata Gateway software.<o:p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"></o:p></span></p><h2 removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" style="MARGIN: 13pt 0cm 13pt 36pt; TEXT-INDENT: -36pt; mso-list: l18 level2 lfo1; tab-stops: list 36.0pt"><a name="3" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"></a><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US" style="mso-fareast-font-family: Arial; mso-bidi-font-family: Arial"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" style="mso-list: Ignore">2.4<span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US">Node</span></h2><p class="MsoNormal" removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">The node is considered a network-attached client. If you install application software on a node, it will be treated like an application on a network-attached client. In other words, communications from applications on the node go through the Te</span></p>
          <br/>
          <span style="color:red;">
            <a href="http://ww2.javaeye.com/blog/171363#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 25 Dec 2007 17:00:00 +0800</pubDate>
        <link>http://ww2.javaeye.com/blog/171363</link>
        <guid>http://ww2.javaeye.com/blog/171363</guid>
      </item>
      <item>
        <title>Teradata and Data Warehouse Architectures</title>
        <author>ww2</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ww2.javaeye.com">ww2</a>&nbsp;
          链接：<a href="http://ww2.javaeye.com/blog/171364" style="color:red;">http://ww2.javaeye.com/blog/171364</a>&nbsp;
          发表时间: 2007年12月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h1 style="MARGIN: 17pt 0cm 16.5pt 21.6pt"><font face="Times New Roman"><span lang="EN-US" style="FONT-SIZE: 16pt; LINE-HEIGHT: 240%; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">1<span style="FONT: 7pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="FONT-SIZE: 16pt; LINE-HEIGHT: 240%">Teradata and Data Warehouse Architectures<o:p></o:p></span></font></h1><h2 style="MARGIN: auto 0cm auto 28.8pt; mso-list: l3 level2 lfo1"><span lang="EN-US"><span style="mso-list: Ignore"><font face="宋体">1.1</font><span style="FONT: 7pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US"><font face="宋体"><span style="mso-spacerun: yes">&nbsp;</span>Evolution to Active Data Warehousing</font></span></h2><h3 style="MARGIN: 13pt 0cm 13pt 36pt"><font face="Times New Roman"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font size="5">1.1.1</font><span style="FONT: 7pt &quot;Times New Roman&quot;">&nbsp;&nbsp; </span></span></span><span lang="EN-US"><font size="5">Data Warehouse Usage Evolution </font></span></font></h3><p><span lang="EN-US"><font size="3" face="宋体">There is an information evolution happening in the data warehouse environ<st1:rtx w:st="on">me</st1:rtx>nt today. Changing business require<st1:rtx w:st="on">me</st1:rtx>nts have placed demands on data warehousing technology to do more things faster. Data warehouses have moved from back room strategic decision support systems to operational, business-critical components of the enterprise. As your company evolves in its use of the data warehouse, what you need from the data warehouse evolves, too. </font></span></p><p align="center" style="TEXT-ALIGN: center"><span lang="EN-US"><font size="3"><font face="宋体"><v:shapetype o:spt="75" coordsize="21600,21600" filled="f" id="_x0000_t75" stroked="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" o:connecttype="rect" gradientshapeok="t"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" alt="" style="WIDTH: 408pt; HEIGHT: 189pt"><v:imagedata o:href="teradata考试资料/Basic/Basic/Untitled/Mod3-dwevolution.gif" src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image001.png"></v:imagedata></v:shape></font></font></span></p><p><font size="3"><font face="宋体"><strong><span lang="EN-US">Stage 1 Reporting: </span></strong><span lang="EN-US">The initial stage typical<st1:rtx w:st="on">ly</st1:rtx> focuses on reporting from a single source of truth to drive decision-making across functional and/or product boundaries. Questions are usual<st1:rtx w:st="on">ly</st1:rtx> known in advance, such as a week<st1:rtx w:st="on">ly</st1:rtx> sales report. </span></font></font></p><p><font size="3"><font face="宋体"><strong><span lang="EN-US">Stage 2 Ana<st1:rtx w:st="on">ly</st1:rtx>zing:</span></strong><span lang="EN-US"> Focus on why so<st1:rtx w:st="on">me</st1:rtx>thing happened, such as why sales went down or discovering patterns in custo<st1:rtx w:st="on">me</st1:rtx>r buying habits. Users perform ad-hoc ana<st1:rtx w:st="on">ly</st1:rtx>sis, slicing and dicing the data at a detail level, and questions are not known in advance. </span></font></font></p><p><font size="3"><font face="宋体"><strong><span lang="EN-US">Stage 3 Predicting:</span></strong><span lang="EN-US"> Sophisticated ana<st1:rtx w:st="on">ly</st1:rtx>sts heavi<st1:rtx w:st="on">ly</st1:rtx> utilize the system to leverage information to predict what will happen next in the business to proactive<st1:rtx w:st="on">ly</st1:rtx> manage the organization's strategy. This stage requires data mining tools and building predictive models using historical detail. As an example, users can model custo<st1:rtx w:st="on">me</st1:rtx>r demographics for target marketing. </span></font></font></p><p><font size="3"><font face="宋体"><strong><span lang="EN-US">Stage 4 Operationalizing: </span></strong><span lang="EN-US">Providing access to information for im<st1:rtx w:st="on">me</st1:rtx>diate decision-making in the field enters the realm of active data warehousing. Stages 1 to 3 focus on strategic decision-making within an organization. Stage 4 focuses on tactical decision support.. Tactical decision support is not focused on developing corporate strategy, but rather on supporting the people in the field who execute it. Examples: 1) Inventory manage<st1:rtx w:st="on">me</st1:rtx>nt with just-in-ti<st1:rtx w:st="on">me</st1:rtx> replenish<st1:rtx w:st="on">me</st1:rtx>nt, 2) Scheduling and routing for package delivery. 3) Altering a campaign based on current results. </span></font></font></p><p><font size="3"><font face="宋体"><strong><span lang="EN-US">Stage 5 Active Warehousing: </span></strong><span lang="EN-US">The larger the role an ADW plays in the operational aspects of decision support, the more incentive the business has to automate the decision processes. You can automate decision-making when a custo<st1:rtx w:st="on">me</st1:rtx>r interacts with a web site. Interactive custo<st1:rtx w:st="on">me</st1:rtx>r relationship manage<st1:rtx w:st="on">me</st1:rtx>nt (CRM) on a web site or at an ATM is about making decisions to optimize the custo<st1:rtx w:st="on">me</st1:rtx>r relationship through individualized product offers, pricing, content delivery and so on. As technology evolves, more and more decisions beco<st1:rtx w:st="on">me</st1:rtx> executed with event-driven triggers to initiate ful<st1:rtx w:st="on">ly</st1:rtx> automated decision processes. Example: determine the best offer for a specific custo<st1:rtx w:st="on">me</st1:rtx>r based on a real-ti<st1:rtx w:st="on">me</st1:rtx> event, such as a significant ATM deposit.</span></font></font></p><h3 style="MARGIN: 13pt 0cm 13pt 36pt"><a name="1"></a><font face="Times New Roman"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font size="5">1.1.2</font><span style="FONT: 7pt &quot;Times New Roman&quot;">&nbsp;&nbsp; </span></span></span><span lang="EN-US"><font size="5">Active Data Warehouse</font></span></font></h3><p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Data warehouses are beginning to take on mission-critical roles supporting CRM, one-to-one marketing, and minute-to-minute decision-making. Data warehousing require<st1:rtx w:st="on">me</st1:rtx>nts have evolved to demand a decision capability that is not just oriented toward corporate staff and upper manage<st1:rtx w:st="on">me</st1:rtx>nt, but actionable on a day-to-day basis. Decisions such as when to replenish Barbie dolls at a particular retail outlet may not be strategic at the level of custo<st1:rtx w:st="on">me</st1:rtx>r seg<st1:rtx w:st="on">me</st1:rtx>ntation or long-term pricing strategies, but when executed proper<st1:rtx w:st="on">ly</st1:rtx>, they make a big difference to the bottom line. We refer to this capability as &quot;tactical&quot; decision support. <o:p></o:p></span></p><p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Tactical decisions are the drivers for day-to-day manage<st1:rtx w:st="on">me</st1:rtx>nt of the business. Businesses today want more than just strategic insight from their data warehouse imple<st1:rtx w:st="on">me</st1:rtx>ntations-they want better execution in running the business through more effective use of information for the decisions that get made thousands of ti<st1:rtx w:st="on">me</st1:rtx>s per day. <o:p></o:p></span></p><p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">The origin of the active data warehouse is the ti<st1:rtx w:st="on">me</st1:rtx><st1:rtx w:st="on">ly</st1:rtx>, integrated store of detail data available for ana<st1:rtx w:st="on">ly</st1:rtx>tic business decision-making. It is on<st1:rtx w:st="on">ly</st1:rtx> from that source that the additional traits needed by the active data warehouse can evolve. These new &quot;active&quot; traits are supple<st1:rtx w:st="on">me</st1:rtx>ntal to data warehouse functionality. For example, the work mix in the database still includes complex decision support queries, but expands to take on short, tactical queries, background data feeds, and possib<st1:rtx w:st="on">ly</st1:rtx> event-driven updates all at the sa<st1:rtx w:st="on">me</st1:rtx> ti<st1:rtx w:st="on">me</st1:rtx>. Data volu<st1:rtx w:st="on">me</st1:rtx>s and user concurrency levels may explode upward beyond expectation. Restraints may need to be placed on the longer, ana<st1:rtx w:st="on">ly</st1:rtx>tical queries in order to guarantee tactical work throughput. While accessing the detail data direct<st1:rtx w:st="on">ly</st1:rtx> remains an important opportunity for ana<st1:rtx w:st="on">ly</st1:rtx>tical work, tactical work may thrive on shortcuts and summaries, such as <strong>operational data store (ODS) level information</strong>. And for <strong>both strategic and tactical decisions</strong> to be useful to the business, today's data, this hour's data, even this minute's data has to be at hand.<o:p></o:p></span></p><p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Teradata is positioned exceptional<st1:rtx w:st="on">ly</st1:rtx> well for stepping up to the challenges related to high availability, large multi-user workloads, and handling <strong>complex queries</strong> that are required for an active data warehouse imple<st1:rtx w:st="on">me</st1:rtx>ntation. Teradata technology supports the evolving business require<st1:rtx w:st="on">me</st1:rtx>nts by providing <strong>high performance and scalability</strong> for: <o:p></o:p></span></p><ul type="disc">    <li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l14 level1 lfo3; tab-stops: list 36.0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Mixed workloads (both tactical and strategic queries) for mission critical applications <o:p></o:p></span></li>    <li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l14 level1 lfo3; tab-stops: list 36.0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Large amounts of detail data <o:p></o:p></span></li>    <li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l14 level1 lfo3; tab-stops: list 36.0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Concurrent users <o:p></o:p></span></li></ul><p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Teradata provides <strong>7x24 availability and reliability</strong>, as well as continuous updating of information so <strong>data is always fresh and accurate</strong>.<o:p></o:p></span></p><h3 style="MARGIN: 13pt 0cm 13pt 36pt"><a name="2"></a><font face="Times New Roman"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font size="5">1.1.3</font><span style="FONT: 7pt &quot;Times New Roman&quot;">&nbsp;&nbsp; </span></span></span><span lang="EN-US"><font size="5">Evolution of Data Processing</font></span></font></h3><p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Traditional<st1:rtx w:st="on">ly</st1:rtx>, data processing has been divided into two categories: on-line transaction processing (OLTP) and decision support systems (DSS). For either, requests are handled as transactions. A transaction is <strong>a logical unit of work</strong>, such as a request to update an account. <o:p></o:p></span></p><p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">An <a href="javascript:WinOpen(20)">RDBMS</a> is used in the following main processing environ<st1:rtx w:st="on">me</st1:rtx>nts: <o:p></o:p></span></p><ul type="disc">    <li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l17 level1 lfo4; tab-stops: list 36.0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">DSS <o:p></o:p></span></li>    <li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l17 level1 lfo4; tab-stops: list 36.0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">OLTP <o:p></o:p></span></li>    <li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l17 level1 lfo4; tab-stops: list 36.0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">OLAP <o:p></o:p></span></li></ul><p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><strong><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Decision Support Systems (DSS)</span></strong><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><br />In a decision support environ<st1:rtx w:st="on">me</st1:rtx>nt, users submit requests to <strong>anaylze historical detail data</strong> stored in the tables. The results are used to establish strategies, reveal trends, and make projections. A database used as a decision support system (DSS) usual<st1:rtx w:st="on">ly</st1:rtx> receives fewer, very complex, ad-hoc queries and may involve nu<st1:rtx w:st="on">me</st1:rtx>rous tables. Decision support systems include batch reports, which roll-up numbers to give business the big picture, and over ti<st1:rtx w:st="on">me</st1:rtx>, have evolved: <o:p></o:p></span></p><ul type="disc">    <li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l23 level1 lfo5; tab-stops: list 36.0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Instead of pre-written scripts, users now require the ability to do ad-hoc queries, which are unpredictable in their processing and which allow &quot;what if &quot; types of questions. These types of questions are essential for <strong>long range planning</strong>. <o:p></o:p></span></li>    <li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l23 level1 lfo5; tab-stops: list 36.0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">DSS systems are able to read through huge volu<st1:rtx w:st="on">me</st1:rtx>s of data. DSS is an area where Teradata has traditional<st1:rtx w:st="on">ly</st1:rtx> excelled with its parallel architecture. <o:p></o:p></span></li></ul><p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><v:shape id="_x0000_i1026" type="#_x0000_t75" alt="" style="WIDTH: 284.25pt; HEIGHT: 96pt"><v:imagedata o:href="teradata考试资料/Basic/Basic/Untitled/ds.gif" src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image003.gif"></v:imagedata></v:shape><o:p></o:p></span></p><p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><strong><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">On-line Transaction Processing (OLTP) </span></strong><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><br />Unlike the DSS environ<st1:rtx w:st="on">me</st1:rtx>nt, an on-line transaction processing (OLTP) environ<st1:rtx w:st="on">me</st1:rtx>nt typical<st1:rtx w:st="on">ly</st1:rtx> has users accessing current data to update, insert, and delete rows in the data tables. OLTP is typified by a small number of rows (or records) or a few of many possible tables being accessed in a matter of seconds or less. Very little I/O processing is required to complete the transaction. This type of transaction takes place when we take out money at an ATM. Once our card is validated, a debit transaction takes place a<st1:rtx w:st="on">gai</st1:rtx>nst our current balance to reflect the amount of cash withdrawn. This type of transaction also takes place when we deposit money into a checking account and the balance gets updated. We expect these transactions to be perfor<st1:rtx w:st="on">me</st1:rtx>d quick<st1:rtx w:st="on">ly</st1:rtx>. They must occur in real ti<st1:rtx w:st="on">me</st1:rtx>. <br /><br /><v:shape id="_x0000_i1027" type="#_x0000_t75" alt="" style="WIDTH: 318pt; HEIGHT: 61.5pt"><v:imagedata o:href="teradata考试资料/Basic/Basic/Untitled/tp.gif" src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image004.gif"></v:imagedata></v:shape><o:p></o:p></span></p><p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; m