FDS’s Blog

2011年5月12日

[软考]Internet数据库建设方案比较

Filed under: 计算机考试 — liaowei @ 14:33

  在Internet应用中,除设计静态网页以外,通过数据库进行数据管理和根据查询生成动态网页也是其中极其重要的一部分,一方面,数据库提高了数据管理的能力,使得数据可以重用和进行必要的数据分析;另一方面,通过数据库进行动态网页的生成,大大提高了网页设计和开发的效率,减少了静态网页的设计和开发任务,并保证了Internet应用的数据一致性和设计风格的一致性,同时数据库还大大提高了Internet应用数据维护的方便性和效率。然而,通过数据库建设Internet应用,也存在数据库选型问题,即选用什么数据库,能够对数据库实现什么样的检索能力,具有什么样的检索效率,也是用户必须考虑的问题。

  在90年代初期,用户设计和开发Internet应用时,只有唯一的选择,即必须采用关系数据库,通过应用服务器和各种中间件产品,实现对数据库的数据检索、维护和显示。然而,随着技术的不断发展,这种局面正在改变,用户可以有更多的选择机会,采用不同的数据库产品、不同的查询和检索方式来设计和构造自己的Internet应用。
从严格意义上说,传统关系数据库经过了多年的针对Internet应用的发展和完善,具有自己的传统意义上的优势。针对Internet网上应用而设计和开发的产品,则克服了传统关系数据库在Internet应用上的一些局限,大大提高了网上应用的效率。

  下面仅就Internet应用中数据库建设的几种方案进行比较:

一、 关系数据库建设方案

  关系数据库最初设计目标是基于主机/终端方式的大型机上的应用,应用范围较为有限,随着客户机/服务器方式的流行和应用向客户机方的分解,关系数据库又经历了客户机/服务器时代,并获得了极大的发展。随着Internet应用的普及,由于Internet上信息资源的复杂性和不规范性,关系数据库初期在开发各种网上应用时显得力不从心,表现在无法管理各种网上的复杂的文档型和多媒体型数据资源。后来关系数据库对于这些需求作出了一些适应性调整,如增加数据库的面向对象成分以增加处理多种复杂数据类型的能力,增加各种中间件以扩展基于Internet应用能力,通过应用服务器解释执行各种HTML中嵌入脚本来解决Internet应用中数据库数据的显示、维护、输出以及到HTML的格式转换等。此时关系数据库的基于Internet应用的模式典型表现为一种三层或四层的多层结构。

  在这种多层结构体系下,关系数据库解决了数据库的Internet应用的方法问题,使得基于关系数据库能够开发各种网上数据库数据的发布、检索、维护、数据管理等一般性应用。

  但是可以说关系数据库从设计之初并没有也不可能考虑到以HTTP为基础、HTML为文件格式的因特网的需求,只是在因特网出现后才作出相应的调整,因此关系数据库在基于Internet应用时由于结构模型等原因的限制,不能与Internet完全融合,需在Internet与数据库之间加入大量的中间件,从而在无形中加大了数据库基于网络应用的难度。并且对于网络环境下Internet应用,如各种非结构化文档信息、多媒体信息以及全文检索需求显得力不从心。虽然后来关系数据库对于这些需求作出了一些适应性调整,但对于网络环境下Internet应用不可或缺的检索效率、全文检索能力等却无法解决。同时,关系数据库的基于中间件的解决方案又给Internet应用带来了新的网络瓶颈,应用服务器端由于与数据库频繁交互,因其本身的效率和数据库检索的效率造成Internet应用在应用服务器端的阻塞。

二、 iBASE非结构化数据库建设方案

  Internet的迅猛发展使数据库应用环境发生了巨大的变化。电子商务、Web 医院、远程教育、移动计算等都需要新的数据库技术支持。因此,对半结构化和无结构数据模型的描述、管理、查询和安全控制等问题的研究已成为新的研究课题,特别是Web数据库发展是新热点和难题。

  从数据库技术发展的角度看,以前通过浏览器访问数据库的唯一渠道是CGI,随后又出现ISAPI、NSAPI和ODBC、JDBC、ASP、PHP、JSP等技术方案,但均没有实现Web服务器和数据库服务器的有机结合,让数据库系统和技术成为Web的重要有机组成部分。

  iBASE非结构化数据库在出现之前经过了近10年的研发,在充分考虑到因特网的实际和需求的前提下,北京国信贝斯软件有限公司(http://www. ibase.com.cn)基于自己的非结构化数据库和全文检索技术,将TCP/IP、HTTP协议、HTML语言等网络技术紧密结合,推出iBASE WEB非结构化网络数据库系统。iBASE WEB非结构化网络数据库系统提供了将iBASE非结构化数据库和各种传统关系数据库方便上网发布的能力,同时对于数据库的网上发布还提供了极高的检索效率和强大的全文检索能力,能够满足网络环境下各种Internet应用的需要。

  针对Internet应用的特殊性,iBASE非结构化网络数据库系统主要解决了Internet数据库应用的几大难点:

1、文档型和多媒体数据类型的支持问题


  在Internet应用中,存在大量的复杂数据类型,如各种超文本文档信息,各种图片、声音等多媒体信息资源,如何对这些信息资源进行有效的存储、管理、检索,是Internet数据库必须解决的问题,iBASE非结构化网络数据库系统通过其外部文件数据类型,可以管理各种文档信息、多媒体信息,并且,对于各种具有检索意义的文档信息资源,如HTML、DOC、RTF、TXT等还提供了强大的全文检索能力。

2、数据库的全文检索问题

   在Internet应用中,由于信息资源极其繁多,如何从浩瀚的信息海洋中查找到所需的信息,如何保证所查询信息的全面性和准确性,也是一个Internet数据库应用必须解决的问题。iBASE非结构化网络数据库系统通过其独特的索引技术和基于布尔检索表达式的查询检索算法,解决了基于字段级和数据库级的全文检索问题,用户可以针对数据库中特定的字段也可针对整个数据库进行全文检索,从而从数据库中检索出感兴趣的内容。同时,其强大的索引表达式构造能力和布尔检索表达式解析能力,使用户可以构造极其灵活的Internet数据库全文检索应用。

3、Internet数据库应用中的查询和检索效率问题

  作为Internet应用,由于需要面对大量的用户群和大量的瞬时并发数据库查询检索,其数据库查询和检索效率就是一个极其关键的问题。iBASE非结构化网络数据库系统主要通过以下途径来保证数据库查询和检索的效率。

  iBASE非结构化网络数据库系统提供了重复字段和子字段的支持能力,通过这种能力,在构造数据库时,可以实现数据库的一条记录中一维表和二维表嵌套,从而避免了关系数据库在大数据量时由于表连接查询而导致的查询检索性能的急剧降低。

  作为Internet数据库应用,一般采用多层结构,由于多层结构以及各种中间件产品在相互连接和交互时,需要交换大量信息和占用处理器资源,也会导致Internet数据库应用性能的降低。iBASE非结构化网络数据库系统实现了WEB Server、Application Server、DB Server的紧密集成,使数据库系统和技术成为Web的一个重要有机组成部分,实现数据库和Web的有机组合。

4、对现有Internet应用的全文检索支持问题

  iBASE非结构化网络数据库系统不仅能够支持iBASE非结构化数据库的直接上网发布和全文检索,对于传统关系型数据库,如Oracle、SYBASE、SQL Server、DB2、Informix等,也提供了导入和链结的支持能力,用户可以采用导入方式,将传统关系数据库转换为iBASE非结构化数据库,再进行网上发布和开发全文检索应用;用户也可采用链结方式,对传统关系数据库构建本地化索引,从而通过本地化索引实现对关系数据库的全文检索支持,iBASE非结构化网络数据库系统充当关系数据库应用服务器,系统的检索效率也将受关系数据库自身检索效率和应用服务器交互效率的影响。

三、 Internet数据库方案比较

  Internet数据库建设到底采用何种数据库,摆在用户面前的至少有三种方案:关系数据库建设方案、iBASE非结构化网络数据库建设方案、关系数据库和iBASE非结构化网络数据库共存方案。

  在事务处理和数值计算方面,由于关系数据库经过了多年的发展,其在事务处理、数值计算方面具有强大的能力并已被证实,而iBASE数据库目前在事务处理和对于数值计算方面的支持则相对薄弱,因此,对于偏向事务处理和数值计算方面的Internet数据库建设,关系数据库建设方案应该说更有优势。

  在对于超文本、文档信息管理和数据库全文检索方面,关系数据库通过其MEMO或TEXT字段等也能实现这种信息的存储,而对于这些信息或数据库的全文检索,关系数据库则显得捉襟见肘。虽然一些网站通过关系数据库构造了一些所谓的“全文搜索引擎”,但实质上,只是在关系数据库中进行基于字段的一种字符串匹配检索,检索时需要对数据库进行顺序扫描,效率极其低下,在数据量较少时尚可胜任,但任何一个Internet应用是不但发展的,随着数据量的不但增大,这种检索方式的必将成为Internet应用的效率及发展的致命的瓶颈。而iBASE WEB非结构化网络数据库系统则完全解决了网上数据库的全文检索问题,通过其独特的单汉字、单英文词、英文字母的索引方式及B*树索引算法,能够高效地解决数据库的网上全文检索问题,构造出强大的网上全文搜索引擎。因此,在对于超文本、文档信息管理和数据库全文检索方面,iBASE非结构化网络数据库建设方案应为首选。

  然而,Internet数据库建设并不能从严格意义上按以上两种情况进行区分,但有一点可以肯定的是,大多数Internet应用都会有全文检索或构建搜索引擎的需求,从理论上讲,除事务处理能力外,iBASE非结构化网络数据库能够处理所有关系数据库支持的Internet应用方式,并能对数据库进行全文检索扩展,也就是说,完全可以利用iBASE非结构化网络数据库构建独立的Internet应用。

  对于一些特殊的Internet应用,我们也可以采用关系数据库和iBASE非结构化网络数据库两者共存的建设方案,实现两者的无缝集成,以发挥两者各自的长处。

[软考]数据库为网格设计

Filed under: 计算机考试 — liaowei @ 14:33

作为一名网格用户,您最关心的是什么?

  答案是网格计算作为类似于电力网或电话网等公用设施一样的计算模式,用户只需要关心数据及进行计算的位置。因为从服务器端来看,网格与虚拟化和供应有关。将所有的资源集中在一起,然后根据业务需求动态地供应这些资源,从而可以同时实现更好的资源利用率。由此看来,网格计算正在改变着计算经济学。

转向网格计算

  从IT 行业的趋势来看,企业也正在向网格计算转移,这在很大程度上是由硬件革新——低成本的刀片服务器驱动的。同时,共享存储技术也简化了硬件的虚拟化和供应,硬件供应商也开始提供实现硬件虚拟化和供应的管理软件。而只有当运行在硬件上的软件能够有效利用硬件革新时,这些革新才更有价值。

硬件趋势

  使网格计算成为可能的主要原因是围绕着硬件的革新。例如:

  · 处理器 新的低成本、高容量的Intel Itanium 2、Sun SPARC 和IBM PowerPC 64 位处理器所提供的性能等于或者优于在高端SMP 服务器中使用的处理器。

  · 服务器 与同类产品相比,刀片服务器技术以其极低的成本提供了较高的密集计算能力。由于这些刀片服务器还自带了远程管理功能,使得数据中心管理员可以较为容易地管理这些系统。

  · 网络化存储 目前,网络附加存储(NAS) 和存储区域网(SAN) 在数据中心中已经得到了广泛的应用,存储已不再局限在单台服务器上。

  · 网络互联 千兆位以太网和无限带宽互联技术正不断降低连接服务器集群的成本。

软件趋势

  在软件中,Linux 继续保持比其它任何OS 更快的发展势头。今天,尽管Linux 还不能适应大型的SMP,但由于刀片服务器有1~4个CPU,Linux 已经可以在其上很好地运行。刀片服务器优于SMP的经济优势将使得刀片服务器占据市场支配地位。另外,由于Linux 本身所具有的价格优势,随着刀片服务器数量的增多,这将变得更加重要,从而也将加速Linux的普遍采用。因此,标准的低成本刀片服务器集群自然与Linux非常相配。

简化网格管理

  Oracle数据库10g是第一个为网格计算设计的数据库。它利用了基于网格的硬件革新,并使用户更容易地在这些标准化、模块化的硬件组件上安装和配置Oracle数据库。作为网格资源(服务器和存储器)的消费者以及数据的提供者,Oracle 数据库10g利用了网格计算的三个基本属性(每一层计算堆栈之间的虚拟化、基于企业策略和动态需求的工作和资源供应、集中资源以提高利用率),使Oracle 数据库使用硬件组件(存储器和服务器)的方式虚拟化。它自动地将集群化的存储器和服务器供应给运行在网格中的不同数据库。作为数据的提供者,Oracle数据库10g提供了各种技术,Oracle管理员可以利用这些技术来为网格用户和应用程序集中、虚拟化和供应数据。此外,运行在网格上的企业在安全性、高可用性、自依赖性和可管理性方面还具有严格的操作要求。

  Oracle数据库10g 自身所具有的技术优势,简化了网格的管理和操作。具体地说,该数据库的特点如下:

自动存储管理

  自动存储管理(ASM)使存储虚拟化,并且提供了轻松的数据库存储供应。用户可以使用标准、低成本、模块化的组件来存储所有的Oracle 数据,也可以使用单个ASM来为多个Oracle 数据库管理存储。ASM仅要求用户管理少量的磁盘组,而不是管理许多数据库文件。一个磁盘组是一组磁盘设备的集合,ASM将其作为单个逻辑单元来管理。另外,用户可以定义一个特别的磁盘组作为数据库的默认磁盘组,Oracle 自动为该数据库分配存储资源,以及创建或删除与该数据库相关的文件。

  ASM还提供了一些存储技术方面的功能,如镜像或逻辑卷管理器(LVM)。类似于这些技术,ASM 使用户能够从单独磁盘设备的集合中创建单一磁盘组。它可以跨磁盘组中的所有设备均衡到该磁盘组的I/O,并执行条带划分和镜像存储来改善I/O 性能和数据可靠性。当存储配置发生变化时,ASM 都将自动再均衡数据库的存储资源。

可移植的集群组件

  集群组件是为集群中服务器间的通信提供集群化服务的软件。在Oracle 数据库10g 之前,用户可以依赖硬件供应商来提供其平台上的集群组件(除了Linux 和Windows 平台)。Oracle只为Linux 和Windows 平台提供集群组件,Oracle 数据库10g 现在提供了可移植的集群组件。也就是说,Oracle 提供了一个可以在所有平台上运行的集群组件,用户不需要依赖供应商提供的集群组件。这也会给他们带来很多好处,如:有单个支持点,不需要依靠多个供应商来解决支持问题;诊断和解决问题变得容易,没有任何由供应商施加的限制,利用可移植的集群组件,即可将集群扩大为任何想要的规模。

  此外,Oracle 也便于用户安装可移植集群。利用单次安装,用户可以确定希望安装可移植集群组件的节点,Oracle Universal Installer 将在所有这些节点上安装可移植集群组件。

高速无限带宽网络支持

  Oracle数据库10g利用高速互联技术(如无限带宽)提供更好的性能和可伸缩性。用户可以全面使用无限带宽来进行网络通信。它提供了许多好处,主要表现为:无限带宽提供了超过千兆位以太网的许多性能改善;用户可以使用单个网络基础架构来进行不同服务器之间、以及服务器和存储器之间的通信,简化了数据中心的连接需求;利用简化的网络基础架构,用户可以使用单个网络底板,使得网络供应更加容易。利用Oracle数据库10g,用户现在可以使用无限带宽来进行应用服务器到数据库服务器的通信、集群数据库中服务器到服务器的通信,以及服务器到存储器的通信,从而为企业的数据中心提供了全面的性能改善和灵活性。

计算资源供应

  网格计算的宗旨是能够根据不断变化的优先级动态分配资源。Oracle数据库10g 有许多改进和新的功能,便于用户分配计算资源以适应业务需求。

  Oracle Real Application Clister (RAC) 具有标准、低成本、模块化服务器(如刀片服务器)集群的高利用率。用户可以在一个刀片服务器集群上运行单个Oracle 数据库。运行在RAC 上的应用程序,能够动态地利用供应给它们的更多的刀片服务器。同样,当应用程序不再需要这些刀片服务器时,能够容易地释放它们。相反,标准级数据库在标准级组件上具有非常低的利用率。在标准级数据库上,用户需要为高峰负载分配资源并且分配备用资源。只有整个系统停止工作,才能向标准级数据库中添加或删除刀片服务器。由于不进行共享,数据被人为地分区。当增加了更多的刀片服务器时,所有的数据都需要重新分区,并将数据分配给新的刀片服务器。类似地,当需要删除刀片服务器时,在删除前需要重新对数据分区。

  Oracle数据库10g为RAC数据库内的服务提供自动负载管理。当在托管服务的例程间建立连接时,RAC会自动地为这些连接执行负载均衡。此外,利用资源管理器,用户可以制订策略,并给运行在RAC 数据库内的服务分配资源。为了满足这些策略,RAC 将自动向这些服务供应数据库例程。

共振

  Oracle数据库10g的最显著特性之一是共振——自己定义集群。集群是一组服务器的集合,这些服务器通过Oracle 可移植集群组件集群在一起。用户可以在相同的集群上运行许多数据库,并且为这些数据库定义服务策略。共振将动态地增加或减少集群中服务器(个人数据库在其上运行)的数量来满足服务级目标。该任务可以自动完成,无需任何用户干预。

结论

  由于以上只是Oracle数据库10g的主要技术特色,其它的新增功能在此不再赘述。尽管它还没有网格的统一定义,但网格计算本身所存在一些基本属性,可以让企业享受网格的好处。硬件新的革新和新的经济性,使得网格计算在硬件层成为可能,并且切合实际。

  可以说,Oracle数据库10g 利用其强大的安全性、自依赖性和可管理性产品解决了企业网格的严格操作要求。利用Oracle数据库10g中的网格优势,用户可在Oracle 产品中进行投资,并将它作为未来的网格计算技术。

【软考】SQL Server中各个系统表的作用

Filed under: 计算机考试 — liaowei @ 14:33

sysaltfiles 主数据库 保存数据库的文件
  syscharsets 主数据库 字符集与排序顺序
  sysconfigures 主数据库 配置选项
  syscurconfigs 主数据库 当前配置选项
  sysdatabases 主数据库 服务器中的数据库
  syslanguages 主数据库 语言
  syslogins 主数据库 登陆帐号信息
  sysoledbusers 主数据库 链接服务器登陆信息
  sysprocesses 主数据库 进程
  sysremotelogins 主数据库 远程登录帐号
  syscolumns 每个数据库 列
  sysconstrains 每个数据库 限制
  sysfilegroups 每个数据库 文件组
  sysfiles 每个数据库 文件
  sysforeignkeys 每个数据库 外部关键字
  sysindexs 每个数据库 索引
  sysmenbers 每个数据库 角色成员
  sysobjects 每个数据库 所有数据库对象
  syspermissions 每个数据库 权限
  systypes 每个数据库 用户定义数据类型
  sysusers 每个数据库 用户

【软考】MD5算法基础

Filed under: 计算机考试 — liaowei @ 14:33

MD5产生一个128位的HASH值,在经过一写初始树立后,将明文分成了512位的块,再将每一块分成16个32位的子块。算法的输出是4个32位的块,连接起来构成128位的HASH值。
    首先,将消息填充到比512的倍数少64位,填充时先向消息末尾填一个1,然后再填满0,然后后面再加上一个64位的消息长度的表示(不包括填充位)。这两步使消息长度恰好是512的倍数,同时保证不同消息在填充后仍不相同。
    初始化4个32位变量:
    A=0×01234567
    B=0x89abcdef
    C=0xfedcba98
    D=0×76543210
这些变量成为链变量。
然后,开始算法的主循环。这个循环对消息中所有的块都执行一次。将4个变量复制到不同的变量:a值为A,b值为B,c值为C,d值为D。
    主循环有4圈,都很相似。每圈使用一个不同的操作,重复16次。每个操作完成一个a,b,c和d中三个变量的非线性函数。然后,将结果与第四个变量、文本的一个子块和一个常数相加。然后,将结果混换左移一个可变值的位数,再将结果与a,b,c和d之一相加。最后用结果来代替a,b,c和d之一。

    共有4个非线性函数,每次操作使用一个,每圈都不相同。
    F(X,Y,Z)=(X∧Y)∨((「X)∧Z)
    G(X,Y,Z)=(X∧Z)∨(Y∧(「z))
    H(X,Y,Z)=X㈩Y㈩Z
    I(X,Y,Z)=Y㈩(X∧(「z))
    ㈩为异或,∧为与,∨为或,「为非

    如果Mi代表消息的第i个子块(0到15),而<<<s代表循环左移s位,则4个操作为:
    FF(a,b,c,d,Mj,s,ti)代表=a=b((a+F(b,c,d)+Mj+ti)<<<s)
    GG(a,b,c,d,Mj,s,ti)代表=a=b((a+G(b,c,d)+Mj+ti)<<<s)
    HH(a,b,c,d,Mj,s,ti)代表=a=b((a+H(b,c,d)+Mj+ti)<<<s)
    II(a,b,c,d,Mj,s,ti)代表=a=b((a+I(b,c,d)+Mj+ti)<<<s)

本新闻共2页,当前在第1页  1  2  

【软考】异步传输和同步传输的区别

Filed under: 计算机考试 — liaowei @ 14:33

1,异步传输是面向字符的传输,而同步传输是面向比特的传输。
2,异步传输的单位是字符而同步传输的单位是桢。
3,异步传输通过字符起止的开始和停止码抓住再同步的机会,而同步传输则是以数据中抽取同步信息。
4,异步传输对时序的要求较低,同步传输往往通过特定的时钟线路协调时序。
5,异步传输相对于同步传输效率较低。

【软考】联机分析处理(OLAP)

Filed under: 计算机考试 — liaowei @ 14:33


OLAP是使分析人员、管理人员或执行人员能够从多角度对信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求,它
的技术核心是”维”这个概念。

“维”是人们观察客观世界的角度,是一种高层次的类型划分。“维”一般包含着层次关系,这种层次关系有时会相当复杂。通过把一个实体的多项重要的属性定义为多个维(dimension),使用户能对不同维上的数
据进行比较。因此OLAP也可以说是多维数据分析工具的集合。

OLAP的基本多维分析操作有钻取(roll up和drill down)、切片(slice)和切块(dice)、以及旋转(pivot)、drill across、drill through等。

·钻取是改变维的层次,变换分析的粒度。它包括向上钻取(roll up)和向下钻取(drill down)。roll up是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而drill
down则相反,它从汇总数据深入到细节数据进行观察或增加新维。
·切片和切块是在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有三个,则是切块。
·旋转是变换维的方向,即在表格中重新安排维的放置(例如行列互换)。
OLAP有多种实现方法,根据存储数据的方式不同可以分为ROLAP、MOLAP、HOLAP。

ROLAP表示基于关系数据库的OLAP实现(Relational OLAP)。以关系数据库为核心,以关系型结构进行多维数据的表示和存储。ROLAP将多维数据库的多维结构划分为两类表:一类是事实表,用
来存储数据和维关键字;另一类是维表,即对每个维至少使用一个表来存放维的层次、成员类别等维的描述信息。维表和事实表通过主关键字和外关键字联系在一起,形成了”星型模式”。对于层次复杂的维,为避免冗余数据占用
过大的存储空间,可以使用多个表来描述,这种星型模式的扩展称为”雪花模式”。

MOLAP表示基于多维数据组织的OLAP实现(Multidimensional OLAP)。以多维数据组织方式为核心,也就是说,MOLAP使用多维数组存储数据。多维数据在存储中将形成”立方块(Cub
e)”的结构,在MOLAP中对”立方块”的”旋转”、”切块”、”切片”是产生多维数据报表的主要技术。

HOLAP表示基于混合数据组织的OLAP实现(Hybrid OLAP)。如低层是关系型的,高层是多维矩阵型的。这种方式具有更好的灵活性。

还有其他的一些实现OLAP的方法,如提供一个专用的SQL Server,对某些存储模式(如星型、雪片型)提供对SQL查询的特殊支持。

OLAP工具是针对特定问题的联机数据访问与分析。它通过多维的方式对数据进行分析、查询和报表。维是人们观察数据的特定角度。例如,一个企业在考虑产品的销售情况时,通常从时间、地区和产品的不同角度来深入观
察产品的销售情况。这里的时间、地区和产品就是维。而这些维的不同组合和所考察的度量指标构成的多维数组则是OLAP分析的基础,可形式化表示为(维1,维2,……,维n,度量指标),如(地区、时间、产品、销售
额)。多维分析是指对以多维形式组织起来的数据采取切片(Slice)、切块(Dice)、钻取(Drill-down和Roll-up)、旋转(Pivot)等各种分析动作,以求剖析数据,使用户能从多个角度、
多侧面地观察数据库中的数据,从而深入理解包含在数据中的信息。

根据综合性数据的组织方式的不同,目前常见的OLAP主要有基于多维数据库的MOLAP及基于关系数据库的ROLAP两种。MOLAP是以多维的方式组织和存储数据,ROLAP则利用现有的关系数据库技术来模拟
多维数据。在数据仓库应用中,OLAP应用一般是数据仓库应用的前端工具,同时OLAP工具还可以同数据挖掘工具、统计分析工具配合使用,增强决策分析功能。

[软考]数据仓库设计的原则

Filed under: 计算机考试 — liaowei @ 14:33

高效实现数据仓库的七个步骤

  数据仓库和我们常见的RDBMS系统有些亲缘关系,但它又有所不同。如果你没有实施过数据仓库,那么从设定目标到给出设计,从创建数据结构到编写数据分析程序,再到面对挑剔的用户的评估,整个过程都会带给你一种与以往的项目完全不同的体验。一句话,如果你试图以旧有的方式创建数据仓库,那你所面对的不是预算超支就是所建立的数据仓库无法良好运作。

  在处理一个数据仓库项目时需要注意的问题很多,但同时也有很多有建设性的参考可以帮助你更顺利的完成任务。开放思维,不断尝试新的途径,对于找到一种可行的数据仓库实现方法来说也是必需的。

1. 配备一个全职的项目经理或你自己全面负责项目管理

  在通常情况下,项目经理都会同时负责多个项目的实施。这么做完全是出于资金和IT资源方面的考虑。但是对于数据仓库项目的管理,绝对不能出现一人身兼数个项目的情况。由于你所处的领域是你和你的团队之前没有进入过的领域,有关数据仓库的一切-数据分析、设计、编程、测试、修改、维护-全都是崭新的,因此你或者你指派的项目经理如果能全心投入,对于项目的成功会有很大帮助。

2. 将项目管理职责推给别的项目经理

  由于数据仓库实现过程实在是太困难了,为了避免自虐,你可以在当前阶段的项目完成后就将项目管理职责推给别的项目经理。当然,这个新的项目经理一定要复合第一条所说的具有全职性。为什么要这么做呢?首先,从项目经理的角度看,数据仓库实施过程的任何一个阶段都足以让人身心疲惫。从物理存储设备的开发到Extract-Transform-Load的实现,从设计开发模型到OLAP,所有阶段都明显的比以前接触的项目更加困难。每个阶段不但需要新的处理方法、新的管理方法,还需要创新性的观点。所以将管理职责推给别的项目经理不但不会对项目有损害,还可以起到帮助作用。

3.与用户进行沟通

  这里所讲的内容远比一篇文章本身要重要的多。你必须明白,在数据仓库的设计阶段,那些潜在用户自己也不清楚他们到底需要数据仓库为他们做什么。他们在不断的探索和发现自己的需求,而你的开发团队也在和客户的接触中做着同样的事情。更加频繁的与客户接触,多做记录,并让你的团队更关注于项目需求讨论的结果而不是讨论的过程本身。

  既然你和客户的交流是为了了解存储的数据是何种类型以及如何有效存储数据,你也许需要(和你的用户一起)采用一种新的方法观察数据,而不是直接处理数据。你可以尝试从中找出隐藏的信息,比如在一段时期内的数字涨落等。不要试图追寻项目需求的答案,而是要让答案找上门来。

4. 以技术/信息库作为领导

  由于数据仓库实施的各个阶段都有很大不同,因此你需要有人能起到维持整个项目的连续进行的作用,不过这个职责并不需要那种全职性。项目实施有三个重要方面:架构、技术和业务。将架构作为重点可以保证在整个项目中,数据仓库的架构从物理层往上,都会受到良好的维护。而我们应该将技术作为重点,因为开发团队和关键用户都在使用他们以前从未用过的工具,必须有人监督开发过程以及工具使用的一致性。

  最后,在数据仓库的应用过程中浮现出来的业务需求必须被详细分析和记录,以促机开发过程持续下去。如果用户不能很好的开发人员以及其它用户沟通,那么数据分析和度量方面的开发进程就会延期,所以必须有人关注业务方面的开发,推动开发进入更高级别。

5. 跳出反复修改程序的陷阱

  第一次实现的数据仓库肯定不会是最终交付的版本。为什么呢?实际上在真正见到产品前,你无法确定的知道自己的目标是什么。或者说,最终用户只有在使用数据仓库产品一段时间后,才能明确告诉你这个产品是不是他所希望的。与你以往处理的项目不同,业务智能还处于发展的初期,每个公司对业务智能都有不同的解释,因此你的项目决不会一次成功。

  为了以正确的格式获得数据,你需要在不断变化的状况中摸索前进。BI具有很强的个性,不同的环境、不同的市场以及不同的企业都有不同的BI。这又代表什么呢?这表示你需要把数据库管理员放在一个消息相对封闭的环境中,不要让他知道数据仓库的数据结构以及ETL程序在不断的改变。对此没有别的办法。这样可以减轻你和DBA所承受的压力。

6. 对大量的前端资源进行数据源分析

  在数据仓库实现过程中,你不得不在旧有的数据中艰难跋涉,这些数据来自老的数据库、老的磁带机以及远程的数据。它们中的大部分都凌乱不堪,并且难以获取。你要对这些数据进行大量处理,并且还要设计ETL程序来寻找其中的有用信息。如果你希望整个项目做起来比较顺利,并且找到一种方法能够一次成功,那就需要你的开发人员必须花费足够的时间来充分研究这些旧有数据,将凌乱的数据规则化,并尽力设计和实现强壮的数据采集和转换过程。数据仓库的ETL部分会占用整个项目资源的百分之八十,所以一定要确定你的资源都用在刀刃上了。

7. 将人际关系处理放在首位

  在数据仓库实现过程中真正的地狱不是来自技术或者开发方面,而是来自你周围的人。你也许会遇到一个对项目并不乐观而又没时间听你陈述的领导。你也许会遇到一些开发人员将进度拖延太长时间还抱怨为什么不能用老方法实施。你也许还会遇到一些抱有不切实际的幻想的用户,他们希望轻点鼠标就能实现想象中的功能,但却不愿在他们那边多做些智力投资,更好的培训他们自己的员工。而你也已经疲惫不堪,鼓励投资,以及在开发团队和用户(甚至老板)中推广新的开发技巧。

  总之你要保持微笑。当一切搞定,你的烦恼也就一扫而空了,笑到最后才笑得最轻松。

[page]

数据仓库开发过程中的七个禁忌

  过去我们一直使用的OLTP技术也许隐藏着许多严重的缺陷。数据仓库的实现并不是一个简单的任务,你会发现以前积累下来的丰富经验,并不适合处理每个数据仓库的独特需求。

  下面列出的条款是你在实现数据仓库过程中一定会面对的问题,其中一些看起来并没有想象中那么严重,但是你还是应该尽量避免出现类似问题。数据仓库并不是一个事务处理系统,它没有一定的标准也不会实现某个特定的应用,但它本质上是非常有组织性的。总之,每个公司所建立的数据仓库都是唯一的,并且每一次数据仓库的实现方法都不是一成不变的。在实现数据仓库时需要注意的不单是”应该如何作”,更要注意”不该如何做”。下面就是我们总结的七点”不该如何作”。

1.不要编写自己无法快速修改的代码

  你所要编写的程序主要用于数据分析,而不是处理事务。而你的用户也并不真正知道他们自己真正想要一个什么样的程序。因此你不得不反复修改代码好几次,才会明白用户到底需要一个什么样的程序。如果你编写的程序具有良好的结构和灵活性,就算需要修改也不会太浪费力气。反之,你会被自己累死。

2. 不要使用无法修改的数据库访问API

  在过去,你的数据库可以为大量的客户提供稳定的数据查询服务。而如今,你的程序必须能够应付更多的数据查询。这使得重新改写程序以使得每个查询请求能得到最大的数据量成为势在必行的工作,而一般来说这种代码修改都不会一次成功,所以只有选择合适的可以修改的API,才能使程序尽快适应新的需求。

3. 不要设计任何无法扩展的东西

  在联机处理过程(OLTP)应用中,数据分析并不是一个真正的应用程序。实际上,数据分析的关键是获取大量旧的数据,从中提取数据模型,并以此模型推断出新的信息。而你所编写的访问潜在信息的代码应该具有可扩展性,可以附加新的数据。千万别在支持数据分析的代码中假定数据都是固定格式的。

4. 不要附加不必要的功能

  一个仓库要做的是恰到好处的服务,用户走进仓库,从货架上取得自己所需得信息,仅此而已。由于业务智能、分析以及规律性的问题都有各自的处理程序,因此你的客户唯一的需要就是获取信息。他们需要一种应用环境,可以让他们快速的从数据仓库中取得分析过程所需的数据,而不论这个数据是什么样子的。也许你想帮助他们精炼一下获得的数据,但最好不要这么做。一定要记住,不要给客户的数据分析程序添加任何会影响数据访问性能的功能。

5. 不要简化数据清除和数据源分析的步骤

  在实现数据仓库过程中最应该注意的地方就是为Extract-Transform-Load机制分析数据源,以及为优化负载而清除数据。安全的做法是假设项目经理在这个阶段会需要整个项目资源的一半以上。相反,如果你在这方面进行了简化,稍后肯定会后悔。所以就算系统工作缓慢,也不要简化清理旧的数据的过程。

6. 不要避免颗粒度和分区问题

  在数据仓库设计过程中有两个最大的数据存储问题,第一是如何给转换数据定位一个恰当的颗粒度等级,第二是如何将数据绝对的分区。为什么这两点问题如此重要呢?因为整个数据仓库的响应能力受颗粒度影响,并且数据访问的效率直接与数据分区性能有关。因此这是具有关键性的工作,不要试图避免面对这些问题。

7. 不要在没考虑业务问题前就使用OLAP

  用户在亲眼见到程序前通常都不知道自己到底想要个什么样的程序。因此他们的观点有不少错误,比如他们希望分析结果会忠实反应性能度量,或者希望程序会使他们部门或公司的业务工作有所不同。而你必须跳出自己的职责范围,从IT管理者的角度考虑用户部门直至整个企业的运行方式,才能在开发过程中避免这类问题。在通常的OLTP开发中,你可以比较方便的理解业务流程。而在联机分析处理(OLAP)领域,任何事情都需要亲自考察,而在你周围工作的人也许并不会发现你对业务方面存在的误解。因此,不要自以为已经了解了足够的信息。不断的询问才能使你真正了解”业务智能”中的”业务”到底是什么样子的

[page]
顺利开发数据仓库的七种思路

  对于大多数IT顾问来说,实现一个数据仓库的难度比以前做过的任何项目难度都要大。考虑到不同的数据结构、用途以及应用程序开发方法,以前所积累的经验和技巧大部分都无用武之地了。但是只要在你的前进道路上稍加修正,你就会发现实现一个数据仓库并不是难事,就算你是第一次实现数据仓库也没问题。

  下面列出了数据仓库实施过程需要考虑的步骤,有一些你可能从来没有意识到,而另一些可能已经在实施过程中使用到了,但是重新思考一番也许你会有更多的领悟。开放思维,不断尝试新的途径,找到一种可行的数据仓库实现方法。

1. 再三考虑应用程序的实现方法

  数据仓库并不涉及事务处理,并且在报表方面也仅占一小部分。而数据仓库应用程序的本质是分析,尤其是针对业务智能的分析。BI并不是通常所说的数据:它是一种从旧有数据中,模型化得到的新的数据。那么如何才能从旧有数据中挖出这些新数据呢?事实上,这个工作不是让你来完成的,而是你的客户所要完成的。从项目主管的角度看,应该有一个经验丰富的数据表格设计师与你合作,进而决定如何将各类程序融合在一起。其中所遇到的最主要的挑战将是如何用新的方法观察数据,这也是你的客户正在试图使用的方法。

2. 创建抽象的、良好部署的数据库访问组件

  在过去你接触过的数据库项目和现在的数据仓库之间,有一点绝对不同,那就是:在Online Transaction Processing (OLTP)环境中,用户数量非常大,但使用到的数据却比较少;而在Online Analytical Processing (OLAP)环境中情况却正好相反,少量的用户在使用大量的数据。而你的工作就是编写一个应用程序来优化这种不同。这里有一个线索:在你所有的分析程序中,都要能抓取连续的数据项,这样在以后建立和访问的数据结构中才能存放与原数据物理结构类似的数据。具体如何实现呢?首先不要规格化数据。第二将其放入数组中最小化读取请求数。按照这种方法,DBA会很乐意与你合作。

3. 保持松散

  现在回头看看第一步,你应该可以理解定义一个分析程序不是件简单事了,而且一般情况下,很难在第一次就实现符合要求的最终产品。而在你将要进行分析的数据结构上同样存在这种问题。一句话,实现过程会有很多变数,你需要不断的改动你的程序。通常我们都希望将改动次数降到最低。在一个数据仓库实现过程中,本质是要分析过程毫无差错,这也需要DBA的参与。不要死抓住你的程序设计、代码、框图,或你建立的其它什么东西不放手,要根据这种变化而不断进行调整。

4. 将管理放在首位

  在分析数据源方面你做的如何呢?你是否认为清理垃圾数据的工作非常困难?并不是只有你一个人这样想,做过类似工作的人都有这种看法。在一个一般规模的机构中,作为数据仓库实现过程的一部分,会有大量的旧有数据必须进行一致性处理。所以分析数据源并花费数个小时编写转换程序将旧有数据导入数据仓库是整个数据仓库实现过程中最艰难的一部分。并且这也是整个项目中最重要的一环,可以占到整个项目周期和预算的四分之三。所以一定要小心对待。

5. 从字里行间发现问题

  与用户交流是个很麻烦的事情,为什么这么说呢?因为很多用户在见到最终产品前都不知道自己想要什么样的产品。定义数据仓库应用程序是一个探索的过程,而且这个过程要反复进行。记住所谓的”业务智能”是用户自己定义的,他们按照自己的理解来处理业务流程。因此这些用户就是连接数据和业务处理过程间的桥梁。他们所要的并不是数据本身,而是隐藏在数据后面的智能性。你可以让他们讨论、思考并给出建设性的意见。但千万不要让他们解决或让他们任意想象和发表那些”有可能”的观点。最后,一定要随时留意用户得出的结论。

6. 保持领先

  数据仓库看起来没有传统的OLTP模式根深蒂固,事实如此。虽然很多人投身数据仓库的开发中,但由于其框架与以前的系统大相径庭,因此在开始的一段时间数据仓库的实现看上去相当混乱。但是坚持下去是很重要的。它具有两方面重要的作用。

  第一,技术的领先性。它可以跟踪项目中任何阶段的软件工具的部署和正确使用,以及开发过程。如果这复合你的背景,你可以对此多加留意。

  第二,体系结构的领先性。它使得项目在各个阶段转换时,数据仓库和它所支持的系统的物理以及逻辑架构都具有持续性,不会发生改变。这也是你能提供的。

7. 发出警告

  最后你要记住,你并不是唯一登上新大陆的人。你周围的每一个人都会有下面一点或几点问题:不现实的期望、对技术的误解、旧习惯或坏习惯、竞争行为,或缺乏对项目的信任度。虽然交流沟通等任务应该是项目经理负责的,但实际上你也要担负起相同的责任。那么作为技术总监你该怎么作呢?首先当然是要真诚的对待周围的人,但一定要竖立威信,适当的发出警告。当你发现项目进度缓慢、资源流失,或者员工失去目标,就要直言不讳的说出来。快速明确的给予警告在大部分情况下都是明智之举。匆忙上马的数据仓库项目也许会出轨,但不要让失败的项目把你拉下马。

网络基础知识讲座之四:理解数据链路层

Filed under: 计算机网络 — liaowei @ 14:29

  2层是数据链路层,是以太网所在的层。在这一层我们将讨论网桥、交换和虚拟局域网,要让一个网络运行起来,你实际上不需要学习以太网内部的工作原理,当然,如果你愿意学习的话,你可以利用其它的时间学习这方面的知识。

  以太网交换机是一种“网桥”设备。传统的网桥是这样工作的,一开始它接收以太网帧,然后,把它们发送到除接收端口之外的全部其它端口。以太网交换机具允许允许双绞线连接的能力。它渐学习哪一个端口连接了哪些MAC地址。这时候,网桥就变成了一台学习设备,能够存储在一个端口上看到的全部的MAC地址表。当一个帧需要发出时,网桥将查看在网桥表中的目标MAC地址,并且知道应该在哪一个端口发送这个帧。这种仅向正确的主机发送数据的能力是交换技术中的一个巨大的进步,因为这可能显著减少通信冲突。如果在网桥表中没有目标MAC地址,交换机就简单地把数据发送到全部端口。这是首次发现主机到底在什么地方的惟一方法,因此,正如你看到的那样,把数据发送到全部端口是交换技术中的一个重要原则。这个原则在路由中也非常必要。

  2层相关的重要词汇包括:

  单播分段(Unicast segmentation):网桥能够限制哪些主机能够收到单播帧(仅发送给一个MAC地址的帧)。集线器只是简单地把一切数据发送给所有的端口,因此,单播分段本身可以节省大量的带宽。

  冲突域(Collision Domain):冲突域是能够发生冲突的网段。由于交换机采用了直通发送技术以及网卡全部采用双工技术,冲突已经不再发生了。如果你在一个端口看到冲突,这就意味着有人意外地使用半双工的设备,或者是出现了其它的故障。

  广播域:发送和接收广播帧的网段。

  在交换机产品几年后,网桥运行所采用的老式的存储和发送方式改变了。新的交换机仅查看帧的目标MAC地址,然后立即把这个帧发送出去。这种技术称作“直通发送”可以帧更快地直接通过交换机,因为这种方式对帧很少进行处理。这种方式也暗示了一件重要的事情:一台交换机不再检查CRC(循环冗余校验)以便查看数据包是否损坏。这还暗示着不可能发生冲突。

  另外,为了解决广播网段的问题,我们引入了虚拟局域网技术。如果你不能向另一台机器发送广播帧,那些机器就不在你的本地网络中,你要把全部数据包发送给一台路由器,接着由路由器发送这些数据包。实际上,这就是虚拟局域网做的事情:虚拟局域网将网络划分为更多的子网。

  你可以在一台交换机上设置虚拟局域网,然后向一个虚拟局域网分配端口。如果主机A是虚拟局域网1,这台主机就不能与虚拟局域网2中的任何人通话,就像它们生活在完全没有网络连接的设备中一样。不过需要注意,这毕竟只是虚拟的,如果交换机的MAC地址表空间已经被数据填满从而无法继续维护这个交换MAC地址表,为了继续维持通讯交换机将会把收到的所有数据转发到所有端口。很多人将VLAN视为一种很好的安全措施,实际上任何一个半吊子黑客使用合适的工具都可以很快的攻克交换机的VLAN限制,事实上,当交换机出现MAC地址表溢出的情况时,它会变成一台单纯的HUB.

  正如我们已经知道的那样,如果你无法使用ARP协议获得目标的MAC地址,那你必须要使用一台路由器。这是不是意味着你必须在每个VLAN之间物理的连入一台路由器呢?不需要,因为我们现在拥有3层交换机!设想一个例子,如果你愿意,一台交换机可以配置48个端口。这台交换机有两个虚拟局域网,虚拟局域网1采用1至24端口,虚拟局域网2采用25至48端口。要把这两个虚拟局域网连接起来,你基本上有三种选择。第一,使用一台路由器分别连接这两个虚拟局域网中的一个端口,并且分为VLAN中的主机配置正确的默认路由。第二种方法是你还可以简单地在每个虚拟局域网中各自建立一个虚拟路由器接口(virtual interfaces)。在思科的设备,这种虚拟路由器接口可能称作“vlan1”和“vlan2”。它们拥有自己的IP地址,而VLAN中的主机使用这些虚拟路由器接口作为自己的路由器。

  在第三种方法使我们回到了2层概述的最终话题。如果你拥有多台需要包含同样的虚拟局域网的交换机,你可以通过端口汇聚(trunk)的方式它们都连接起来。这样,交换机A中的虚拟局域网1和交换机B中的虚拟局域网1就完全是一样的了。这是采用802.1q标准完成的。802.1q标准为将离开第一台交换机的数据包打上一个虚拟局域网的标识符。思科把这些交换机间的链路称作“主干端口(trunk ports)”,你可以拥有交换机允许的最多数量的虚拟局域网(目前大多数硬件允许4096个虚拟局域网)。因此,在虚拟局域网之间建立联系的第三种方法(也是最后一种方法)是把以trunk方式连接一台路由器,并且为每一个虚拟局域网建立一个虚拟路由器接口。虚拟局域网1上的主机(无论是在交换机A和交换机B上)都能够访问这个路由器接口(这个接口可以在另一台设备上),因为他们全部都连接在了一起,并且共享一个广播域。关于trunk与802.1q的更多信息请参见这篇文章。

  在这里我们没有采用“这是2层协议,记住以太网数据包头”这种标准的教学模式。要成为一个真正的专家,你必须要知道这些知识。但是,要成为一个有用的操作人员,简单地知道2层是如何工作的就可以了。下一讲我们将介绍网络领域最有趣的协议生成树协议。

  小结:

  ●网桥(又名交换机)存储MAC地址表以实现单播网段功能。也就是说它们仅向需要这个数据的主机发送单播数据。

  ●虚拟局域网并不能提供可靠的安全。

  ●一台3层交换机能够通过trunk提供多个虚拟局域网,并且为这些虚拟局域网提供路由。这可以完全在同一条线路上实现。

CMM综述

Filed under: 计算机网络 — liaowei @ 14:29

CMM(Capability Maturity Model能力成熟度模型)的本质是软件管理工程的一个部分。它是对于软件组织在定义,实现,度量,控制和改善其软件过程的进程中各个发展阶段的描述。他通过5个不断进化的层次来评定软件生产的历史与现状。

  CMM的诞生
  信息时代,软件质量的重要性越来越为人们所认识。软件是产品、是装备、是工具,其质量使得顾客满意,是产品市场开拓、事业得以发展的关键。而软件工程领域在1992年至1997年取得了前所未有的进展,其成果超过软件工程领域过去15年来的成就总和。
  软件管理工程引起广泛注意源于20世纪70年代中期。当时美国国防部曾立题专门研究软件项目做不好的原因,发现70%的项目是因为管理不善而引起,而并不是因为技术实力不够,进而得出一个结论,即管理是影响软件研发项目全局的因素,而技术只影响局部。到了20世纪90年代中期,软件管理工程不善的问题仍然存在,大约只有10%的项目能够在预定的费用和进度下交付。软件项目失败的主要原因有:需求定义不明确;缺乏一个好的软件开发过程;没有一个统一领导的产品研发小组;子合同管理不严格;没有经常注意改善软件过程;对软件构架很不重视;软件界面定义不善且缺乏合适的控制;软件升级暴露了硬件的缺点;关心创新而不关心费用和风险;军用标准太少且不够完善等等。在关系到软件项目成功与否的众多因素中,软件度量、工作量估计、项目规划、进展控制、需求变化和风险管理等都是与工程管理直接相关的因素。由此可见,软件管理工程的意义至关重要。
  软件管理工程和其它工程管理相比有其特殊性。首先,软件是知识产品,进度和质量都难以度量,生产效率也难以保证。其次,软件系统复杂程度也是超乎想象的。因为软件复杂和难以度量,软件管理工程的发展还很不成熟。
  软件管理工程的发展,在经历了从70年代开始以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征的结构化生产时代,到90年代中期,以CMM模型的成熟模型和日益为市场接受为标志,已经进入以过程成熟模型CMM、个体软件过程PSP和群组软件过程TSP为标志的以过程为中心的时代,而软件发展第三个时代,及软件工业化生产时代,从90年代中期软件过程技术的成熟和面向对象技术、构件技术的发展为基础,已经渐露端倪,估计到2005年,可以实现真正的软件工业化生产,这个趋势应该引起软件企业界和有关部门的高度重视,及早采取措施,跟上世界软件发展的脚步。软件生产转向以改善软件过程为中心,是世界各国软件产业或迟或早都要走的道路。
  软件过程改善是当前软件管理工程的核心问题。50多年来计算事业的发展使人们认识到要高效率、高质量和低成本地开发软件,必须改善软件生产过程。软件管理工程走过了一条从70年代开始以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试到90年代中期以过程成熟模型CMM、个体软件过程PSP和群组软件过程TSP为标志的以过程为中心向着软件过程技术的成熟和面向对象技术、构件技术的发展为基础的真正软件工业化生产的道路。软件生产转向以改善软件过程为中心,是世界各国软件产业或迟或早都要走的道路。软件工业已经或正在经历着”软件过程的成熟化”,并向”软件的工业化”渐进过渡。规范的软件过程是软件工业化的必要条件。
  软件过程研究的是如何将人员、技术和工具等组织起来,通过有效的管理手段,提高软件生产的效率,保证软件产品的质量。由此诞生了软件过程的三个流派:CMU-SEI的CMM/PSP/TSP;ISO 9000质量标准体系;ISO/IEC 15504(SPICE)。
  CMM/PSP/TSP即软件能力成熟度模型/ 个体软件过程/群组软件过程,是1987年美国 Carnegie Mellon 大学软件工程研究所(CMU/SEI)以W.S.Humphrey为首的研究组发表的研究成果”承制方软件工程能力的评估方法”;SO 9000质量标准体系是在70年代由欧洲首先采用的,其后在美国和世界其他地区也迅速地发展起来。目前,欧洲联合会积极促进软件质量的制度化,提出了如下ISO9000软件标准系列:ISO9001、ISO9000-3、ISO9004-2、ISO9004-4、ISO9002;ISO/IEC 15504(SPICE)是1991年国际标准化组织采纳了一项动议,开展调查研究,按照CMU-SEI的基本思路,产生的技术报告ISO/IEC 15504–信息技术软件过程评估
  目前,学术界和工业界公认美国 Carnegie Mellon 大学软件工程研究所(CMU/SEI) 以W.S.Humphrey为首主持研究与开发的软件能力成熟度模型CMM是当前最好的软件过程,已成为业界事实上的软件过程的工业标准。

系统流程图简介

Filed under: 计算机网络 — liaowei @ 14:29

系统流程图又叫事务流程图,是在计算机事务处理应用进行系统分析时常用的一种描述方法(另一个是数据流图),它描述了计算机事务处理中从数据输入开始到获得输出为止,各个处理工序的逻辑过程。

在高级程序员下午试卷中,每年都有一道系统流程图的试题。

一、系统流程图所用的基本元素符号:

输入单据

磁盘文件,或其它介质文件

处理(表示各种处理功能)

输出单据

二、基本处理工序

1、变换

把输入单据变换成磁盘文件,或把磁盘文件变换成输出单据,或把某一磁盘文件的内容由一个介质文件传送到另一介质文件:

变换处理工序

一般在在进行输入变换同时,还可进行形式性的逻辑检查,如输入单据的数据范围,录入错误等等。

2、合并

把多个文件合并为一个文件,如:

输入文件1:
2379
输入文件2:
14581012
合并后的输出文件:
123457891012

3、划分

是合并的逆操作,将合并工序的输入文件与输出文件对调即可:

4、分类(排序)

按指定的键(关键字)以升序或降序改变原文件的记录排列顺序。

例如,将如下记录排列的旧文件,按关键字升序,依次进行分类,得到新文件:

旧文件
9371511082612514
新文件
1235678910121415

分类也可和输入或输出操作一起进行:

5、更新

将多个文件作为输入根据关键项目进行对照,对文件进行内容修正、删除、增加等改写工作,一般更新的内容先要写入一个临时文件:

三、用系统流程图设计管理系统应该注意的问题

1、尽量缩短处理时间。

2、尽量减少空闲时间。

为了减少操作人员的工作量,如果具有多重处理能力,要尽量利用它。

如何对发生的错误采取措施的作法进行系统化,则对处理时间和空闲时间有很大影响。

3、要考虑便于完成程序的调试。

工序数和系统的类型,由于存储容量和中间介质的使用如何,使用几台机器问题,也要受到影响。因此在这个阶段,可对存储容量和机器结构进行预测。

四、系统流程图实例——库存处理

Powered by WordPress