1.1数据库概述 数据库广泛应用于管理业务中的数据管理,例如仓库管理、档案管理、财务管理、生产管理等数据处理问题。这类数据的特点是数据量比较大、数据检索频繁,数据处理的主要内容是数据的存储、查询、修改、分类排序等,以及支持决策功能。 数据库是指相关数据的集合,这些数据按照一定的数据模型在计算机系统中组织存储和使用。数据库管理系统(DataBase Management System,DBMS)是辅助用户管理和利用大数据集的软件工具。DBMS具有以下特征。 (1) 数据独立性。应用程序可独立于数据表达和存储细节。DBMS提供数据的抽象视图,从而把应用代码与数据细节分开。 (2) 持久性。数据库中数据可长久地保持,如银行的业务数据、单位的人事数据等,这些数据需要保存几年、几十年甚至更长的时间。 (3) 可靠性。系统发生软硬件故障时,DBMS可以有办法迅速可靠地把系统恢复到发生故障前的状态,例如可以对数据进行经常性的备份,以便当系统遭到破坏、数据丢失后可以把数据恢复到系统破坏前的状态。 (4) 共享性。指许多用户能够按照一定、有序的方式存取数据库中的数据,避免同步存取时可能会造成的并发性错误。例如在铁路部门或航空部门的售票系统中,经常会出现多个售票点对同一数据源中数据的操作。 (5) 有效的数据存取。DBMS采用各种复杂技术有效地存储和检索数据。这个特征非常重要,当数据存储在外部存储设备上时尤其如此。 (6) 数据完整性和安全性。如果数据总是通过DBMS存取,则DBMS能增强数据完整性约束。例如,在插入一个雇员的工资信息之前,DBMS可以检查是否超过部门预算。另外,DBMS也可以通过实行存取控制,确保数据对不同用户的可见性是不同的。 (7) 并发存储。DBMS并发调度数据的存取,所有用户在存取数据时感觉就像只有一个用户在操作一样。 数据库技术产生于20世纪60年代中期,根据数据模型的发展,可以划分为3个阶段: 第一代网状、层次数据库系统; 第二代关系数据库系统; 第三代面向对象数据库系统。 1. 第一代数据库 第一代数据库的代表有: (1) 1969年IBM公司研制的层次模型的数据库管理系统IMS。 (2) 20世纪70年代美国数据库系统语言研究会(CODASYL)下属数据库任务组(DBTG)提议的网状模型。层次数据库的数据模型是有根的定向有序树,网状模型对应的是有向图。这两种数据库具有如下共同点。 ① 支持三级模式(外模式、模式、内模式)。保证数据库系统具有数据与程序的物理独立性和一定的逻辑独立性。 ② 用存取路径来表示数据之间的联系。 ③ 有独立的数据定义语言。 ④ 导航式的数据操纵语言。 2. 第二代关系数据库 其主要特征是支持关系数据模型。关系模型具有以下特点。 (1) 实体和实体之间的联系用关系来表示。 (2) 以关系代数为基础。 (3) 关系数据库语言是非过程化的。 3. 第三代面向对象数据库 第三代面向对象的数据库产生于20世纪80年代,主要有以下特征。 (1) 支持数据管理、对象管理和知识管理。 (2) 保持和继承了第二代数据库系统的技术。 (3) 对其他系统开放,支持数据库语言标准,支持标准网络协议,有良好的可移植性、可连接性、可扩展性和互操作性等。第三代数据库支持分布处理技术、并行计算技术。 网络数据库技术是目前数据库技术代表性内容。它允许用户开发的应用程序把多个物理分开的、通过网络互联的数据库当作一个完整的数据库看待。例如,Oracle 10g数据库是第一个为网格计算设计的数据库。它利用了基于网格的硬件革新,并使用户更容易地在这些标准化、模块化的硬件组件上安装和配置Oracle数据库。作为网格资源(服务器和存储器)的消费者以及数据的提供者,Oracle 10g数据库利用了网格计算的3个基本属性,即每一层计算栈之间的虚拟化、基于企业策略和动态需求的工作和资源供应、集中资源,以提高利用率,使Oracle 数据库使用硬件组件(存储器和服务器)的方式虚拟化。它自动地将集群化的存储器和服务器供应给运行在网格中的不同数据库。作为数据的提供者,Oracle 10g数据库提供了各种技术,Oracle管理员可以利用这些技术来为网格用户和应用程序集中、虚拟化和供应数据。此外,运行在网格上的企业在安全性、高可用性、自依赖性和可管理性方面还具有严格的操作要求。 1.2关系数据库的主要概念 1.2.1数据描述、存储、查询与数据库设计过程 如图1.1所示,DBMS中的数据描述的三级抽象为概念模式、物理模式和外模式。 图1.1DBMS中抽象的级别 概念模式(也称为逻辑模式)以DBMS数据模型的形式描述存储的数据。在关系型DBMS中,概念模式描述存储在数据库中的所有关系,这些关系包括实体信息(如企业管理者)和联系信息(如企业管理者的登记信息)。例如,假设所有企业管理者实体都是用Managers关系中的记录来描述,每一个实体集合和联系集合都描述为一个关系,于是产生下面的概念模式: Managers(mid: string, name: string, age: integer) Business(mid: string, bid: string, content: string) 物理模式描述概念模式中关系在磁盘和磁带等二级存储设备上实际是如何存储的。物理模式描述存储细节。通常要依据数据存取特点选择物理模式。例如,一个企业数据库的物理模式如下: (1) 使用未排序的记录文件存储所有关系。 (2) 在Managers关系的第1列上创建索引。 外模式(也称为DBMS的数据模型)允许为单个用户和用户组定制数据存取。任何给定的数据库只有一组存储关系,只有一个概念模式和一个物理模式,但它可以有多个外模式,每一个外模式由一个或多个视图和来自概念模式的关系组成。 例如,如果允许员工查找管理者的名字和业务内容,则可通过定义下面的视图来实现: Managersfo(mid: string, name: string, content: string) 针对DBMS中存储的数据的提问称为查询,用户利用SQL语言可以创建、修改和查询数据库中数据。 为了应用数据库管理业务数据,合理的数据库基本设计过程是很重要的,其基本过程如下: (1) 需求分析。了解用户业务需求,调查清楚用户面临的数据管理问题。 (2) 概念数据库设计。使用高级数据模型来对需求分析信息进行描述。 (3) 逻辑数据库设计。选择一个DBMS来实现数据库设计,并且将概念数据库设计转换为以所选DBMS的数据模型表示的数据库模式。 (4) 模式的细化。分析关系数据库模式中的关系集合,找出潜在的问题并且改进它。用规范化关系理论对这些关系进行重组以确保所需要的特征。 (5) 物理数据库设计包括在一些表上建立索引,以及对一些表进行聚簇,或者也可能对前面所得的部分数据库模式进行重新设计。 (6) 应用与安全设计。任何涉及DBMS的软件项目都必然包含数据库之外的内容。 1.2.2ER模型 语义数据模型是一种抽象的高级数据模型,一个广泛使用的语义数据模型是实体联系(Entity Relationship,ER)模型,它允许形象地定义实体及它们之间的联系。DBMS不可能直接支持ER模型,但可以将它转变为数据库支持的数据模型。 实体是客观世界的一个对象。例如,汽车、汽车公司、汽车公司生产部、财务部、销售部等。相似实体的集合称为实体集。实体集之间可以是相交的; 所有汽车公司销售部雇员的集合与所有汽车公司生产部雇员的集合可能都包含李明(他恰巧在两个部门工作)。可以定义实体集Managers,它包含了汽车公司的所有管理人员。 属性指实体具有的某种特性。属性用来描述一个实体。对于属性的选择反映了希望描述实体信息的细节。例如,Managers实体可以用姓名(name)、工作内容作为属性,就可以在数据库中为每个管理人员存储其姓名、工作内容等信息,但没有存储管理人员的住址、年龄等信息。对于每个与实体集相关的属性,须确定该属性的值域。例如,属性name的值域可以为一个30个字符的字符串集合。对于每个实体集,都选取一个码,码的值能够唯一地确定实体集中的每个实体,有可能存在多个候选码,这时可在其中指定一个作为主码。 图1.2表示实体集Managers有3个属性mid、name及age。其中,实体用矩形表示,属性用椭圆表示,主码用下划线标出。 图1.2实体集Managers 联系就是两个或多个实体之间的一种关联。与实体一样,希望把相似的联系放到一起,组成一个联系集。在信息世界中,实体之间的联系可分为两类: 实体内部的联系,如组成实体的各属性之间的关系; 实体之间的联系。设A、B为两个包含若干个体的总体,其间建立了某种联系,其联系方式可分为以下3类。  一对一联系如果对于A中的一个实体,B中至多有一个实体与其发生联系,反之,B 中的每一实体至多对应A中一个实体,则称A与B是一对一联系。  一对多联系如果对于A中的每一实体,实体B中有一个以上实体与之发生联系,反之B中的每一实体至多只能对应于A中的一个实体,则称A与B是一对多联系。  多对多联系如果A中至少有一实体对应于B中一个以上实体,反之,B中也至少有一个实体对应于A中一个以上实体,则称A与B为多对多联系。 联系集可以具有描述性属性。这些属性用来记录有关联系自身的一些信息,而不是记录包含在该联系集中实体集的信息。 图1.3描述了汽车公司管理人员与部门的信息模型。联系集Works_In用菱形表示,其中每个联系都表明管理人员在哪个部门工作。 图1.3汽车公司管理人员与部门的信息模型 在WorksIn中加了一个since属性用来记录管理人员何时进入某部门工作。 在Works_In联系集中,每个Works_In联系都能用管理人员的mid和部门的did来唯一标识。 ER模型的不精确性可能会导致数据冗余,从而引起很多问题。将在后续讨论数据冗余及相关问题,并提出一种称为规范化的方法来从数据库表中消除冗余。 1.2.3关系模型 1970年,IBM公司San Jose研究所的E.F.Code发表了题为“大型共享数据库的数据关系模型”的论文,开创了数据库的关系方法和关系规范化的理论研究。关系模型是建立在数学概念的基础上,应用关系代数和关系演算等数学理论处理数据库系统的方法。关系模型中用于描述数据的主要结构是关系。关系模型是数据库领域的一次革命。关系模型简单、精巧。数据库由一个或多个关系共同组成,每个关系是行和列组成的表。 一个关系由关系模式和实例共同组成。实例就是一个表中记录行,而关系模式则对表的每个列进行描述。关系模式需要给出关系名,每个字段(称之为列或属性)的名称,以及每个字段的域。关系模式中的域由一个域名表示,它具有与之相关的具体值。在关系模型下,数据的逻辑结构是一张二维表,其中,表名为关系名,表头中各列名称为字段名。关系模型中的主要术语如下。 (1) 关系。一个关系对应于一张二维表。 (2) 记录(元组)。表中一行称为一个记录。 (3) 字段。表中一列称为一个字段,给每列起一个名即为字段名。 (4) 主码(主关键字)。表中的某个属性组,它的值唯一地标识一个元组。 (5) 域。字段的取值范围。 (6) 分量。记录中的一个字段值。 (7) 关系模式。对关系的描述,用关系名(属性1,属性2,…,属性n)来表示。 例1.1汽车公司数据库中管理人员信息的关系模式。 Managers(mid: string, name: string,age: integer) 一个关系的实例可以看成是记录的一个集合,每条记录具有的字段数目与在关系模式中定义的相符。一个关系的元组可以看成一个表,其中每条记录就是表中的一行,所有行具有相同数目的字段。 例1.2关系Managers的实例,如表1.1所示。表中有3条记录,并与关系模式一样具有3个字段。任何2行数据都不完全相同。 表1.1关系Managers的实例 midnameage 1001王新29 1008李高38 1012张明30 对于实体和实体之间的联系均以关系来表示。 例1.3实体Managers和Department之间的联系。 Managers(mid: string, name: string,age: integer) Works_In(mid,did,since) Department(did: string, dname: string, budge: numeric) 其中,Works_In关系引用了Managers关系中的mid字段,Department关系引用了Works_In关系的did字段。 对于关系之间的联系可通过包含的属性表示,如例1.3中Works_In的“mid,did”。 1.2.4数据规范化 数据库中数据的冗余是指在数据库中存储了同一信息的多个副本。它会引起以下一些问题:  冗余存储信息被重复存储。  更新异常当重复信息的一个副本被修改,所有的副本都必须进行同样的修改,否则就会造成不一致性。  插入异常只有当一些信息事先已经存储在数据库中时,另外一些信息才能存入到数据库中。  删除异常在删除某些信息时可能会丢失其他的信息。 关系型数据库的规范化理论是数据库设计的理论基础,其目的是研究关系模式中各个属性之间的依赖关系及其对关系模式的影响。规范化理论不仅能够作为数据库设计优劣的判断依据,而且还可以预测数据库系统可能出现的问题。给定一个关系模式,需要确定它是否是一个好的设计,或者是否需要将其分解为一些小的关系。要做出这些决定,就必须全面了解当前模式中所包含的问题。现在已经提出了一些范式用来指导做这些决定。如果一个关系满足某一种范式,那么就可以肯定不会发生某些特定的问题。 关系模式要满足的条件称为规范化形式(Normal Form),简称为范式NF。不同程度的条件称为不同层次的范式,这些范式包括第一规范化形式(1NF)、第二规范化形式(2NF)、第三规范化形式(3NF)、第四规范化形式(4NF)、第五规范化形式(5NF)等。这些范式以函数依赖为基础,要求一个比一个严格。前三个范式是最常用的范式形式。第一规范化形式要求元组中的每一个数据项都不能再分割,都是原子项,记作1NF。简单地说,1NF就是要求在二维表中的每一个元素都是单一的、不可再分的数据。 如表1.2所示,Department关系不符合第一范式,因为表中budget数据项能再分割为production、sales与finance项。 表1.2Department关系不符合第一范式 diddname budget production salesfinance 1002第一分公司200019003000 1003第二分公司230021003500 将表1.2中的budget数据项分解为3个原子项,形成表1.3,则符合第一范式的关系。 如果一个关系模式符合第一规范化形式(1NF),并且每一个非主键属性都完全依赖主键,那么认为该关系模式符合第二规范化形式,简称2NF。在2NF中,非主键属性(从全部属性的集合中除去主键包含的属性)必须与整个主键有函数依赖关系。依据2NF定义,表1.3 Departmen1关系符合第二规范化形式。表1.4所示的关系满足第一规范化形式,但不是第二规范化形式。因为它的非主属性不完全依赖于由管理人员代码和工程项目代码组成的主关键字,其中,姓名和年龄只依赖于主关键字的一个分量——管理人员代码mid,部门名只依赖于主关键字的另一个分量——部门代码did,工程项目名只依赖于主关键字的另一个分量——工程项目代码pid。这种关系会引起数据冗余和更新异常,当要插入新的工程项目数据时,往往缺少相应的管理人员代码,以致无法插入; 当删除某位管理人员的信息时,常会引起丢失有关工程项目信息。解决的方法是将一个非2NF的关系模式分解为多个2NF的关系模式。 表1.3Departmen1关系符合第二范式 diddnameproduction budgetsales budget finance budget 1002第一分公司200019003000 1003第二分公司230021003500 表1.4管理人员、部门与工程项目关系 midnameagediddnamepidpname 可将表1.4所示关系分解为如下4个关系。 Managers(mid: string, name: string,age: integer) Department(did: string, dname: string) Project(pid: string, pname: string) ManagersDepartmentProject(mid: string, did: string, pid: string) 这些关系都符合2NF要求。 如果在一个符合第二规范化形式的关系模式中,所有非主键属性之间不存在函数依赖关系,那么称该关系模式符合第三规范化形式,简记为3NF。3NF的实质是从符合2NF的关系模式中除去非主键属性之间的传递依赖。 表1.3 Departmen1关系不符合第三范式, 如下各关系符合第三范式。 Managers(mid: string, name: string,age: integer) Department(did: string, dname: string) Project(pid: string, pname: string) ManagersDepartmentProject(mid: string, did: string, pid: string) 表1.5符合第二范式,但不符合第三范式。 表1.5工程项目与项目来源的关系 pidpnamesname(项目来源单位)sperson(项目来源单位联人) sname(项目来源单位)依赖于pid, sperson(项目来源单位联人)又依赖sname(项目来源单位)。消除传递依赖关系的办法,是将原关系分解为如下2个3NF关系: Project(pid: string, pname: string) SProject(sname: string, sperson: string) 3NF消除了插入、删除异常及数据冗余、修改复杂等问题,通常的数据库设计达第三范式关系,可满足数据要求了。 1.2.5主流数据库产品简介 现今流行的关系数据库产品有Access数据库、SQL Server数据库、Oracle数据库和 Sybase数据库等。 1. Access数据库 Access数据库是Microsoft Office的一个组成部分,适用于小型商务应用。Access数据库中有6种对象,即表(Table)、查询(Query)、窗体(Form)、报表(Report)、宏(Macro)和模块(Module)。 ① 表是数据库的基本对象,是创建其他5种对象的基础。表由记录组成,记录由字段组成,表用来存储数据库的数据,故又称数据表。 ② 查询可以按索引快速查找到需要的记录,按要求筛选记录并能连接若干个表的字段组成新表。 ③ 窗体提供了一种方便的浏览、输入及更改数据的窗口,还可以创建子窗体显示相关联的表的内容。窗体也称表单。 ④ 报表的功能是将数据库中的数据分类汇总,然后打印出来,以便分析。 ⑤ 宏相当于DOS中的批处理命令,用来自动执行一系列操作。Access列出了一些常用的操作供用户选择,使用起来十分方便。 ⑥ 模块的功能与宏类似,但它定义的操作比宏更加精细和复杂,用户可以根据自己的需要编写模块程序。 Access可以方便地利用FoxPro数据库、Excel电子表格的数据,可以和Word混合使用,打印通用信函或信封。Access不是一个数据库管理系统,它的性能一般,只能应付普通的桌面应用程序,无法对企业级的应用提供支持。 2. SQL Server数据库 Microsoft SQL Server是Microsoft关系数据库管理系统。Microsoft SQL Server 2005根据不同的应用有多个不同的版本可供选用。 3. Oracle数据库 目前,Oracle公司在数据库领域处于领先地位,其产品覆盖了大、中、小型机等几十种机型,Oracle数据库成为世界上使用最广泛的关系数据系统之一。 Oracle数据库产品具有以下优良特性。 ① 可移植性。Oracle的产品可运行于范围很广的硬件与操作系统平台上。可以安装在70种以上不同的大、中、小型机上; 可在DOS、UNIX、Windows等多种操作系统下工作。 ② 可联结性。能与多种通信网络相连,支持各种协议。 ③ 高效性。提供了多种开发工具,能极大地方便用户进一步的开发。 4. Sybase数据库 Sybase是Sybase公司开发的数据库系统,是一个面向联机事务处理,具有高性能、高可靠性且功能强大的关系型数据库管理系统(RDBMS)。 Sybase数据库服务器支持企业内部各种数据库应用需求,如数据仓库、联机事务处理、决策支持系统和小平台应用等。Sybase数据库的多库、多设备、多用户、多线索等特点极大地丰富和增强了数据库功能。因为Sybase数据库系统是一个复杂的、多功能的系统,所以对Sybase数据库系统的管理就变得十分重要,管理的好坏与数据库系统的性能息息相关。Sybase为用户提供了良好的开发工具和开发环境,支持组件创建和快速应用开发,包括Power builder、Power Designer、Power J等。 1.3网络数据库系统概念、特征及其组成 1.3.1网络数据库系统概念 从数据库发展历史可知,相关数据集合中数据模型组织方式形成了历史上称谓的不同数据库类型。网络数据库目前还没有公认统一定义。以下列举一些有关网络数据库的描述。  所谓网络数据库,是指所有连入网络并提供信息服务的自治数据库的集合。众所周知,数据库是网络应用中必不可少的基础之一。  网络数据库是指图书馆自建或引进的中外文全文及文摘数据库,能够在校园网上使用或通过互联网可以访问,但不包括电子图书和书目数据库。  跨越单台电脑、在网络上建立与运行的数据库,称为网络数据库。与单机数据库不同,网络数据库为数据存储与提取提供了多种路径,这是通过在数据之间建立多种关系而实现的。 存储在网络服务器上的文献信息数据库称为网络数据库,多由信息服务商或大型图书情报机构创建维护,品种多,质量高,但基本上都是需要付费才能使用。 从本质上说,网络数据库是一种能通过计算机网络通信进行组织、存储、检索的相关数据集合。目前的关系型数据库产品如Microsoft SQL Server、Oracle等数据库都具有网络数据库功能,都可用作网络数据库创建及开发工具。 一般来说,网络数据库系统有网络操作系统、网络数据库、网络数据库管理系统、网络数据库管理员和网络数据库应用程序5个重要组成部分。网络操作系统是网络数据库系统运行的软件系统环境; 数据库管理系统是负责组织和管理数据信息的程序; 网络数据库管理员是数据库系统不可或缺的重要角色,主要负责数据库的建立、使用和维护工作; 网络数据库应用程序是数据库前端程序,即用于浏览、修改数据的应用程序。 网络数据库应用系统是信息管理与信息系统的重要领域,如企业网络信息系统开发、网站的建设、各种信息管理系统及各种网络图书期刊电子资源数据库等都是网络数据库应用系统的具体实例。 目前电子期刊网络数据库数据应用系统中资源已十分丰富。这些网络数据库资源可通互联网进行访问。著名学术出版商、研究机构以及专业学科协会,例如SpringerVerlag、John Wiley、World Scientific、Science、Nature Publishing Group等著名出版商以及英国皇家化学学会(RSC)、英国物理学会(IOP)、美国计算机学会(ACM)等都将其纸本期刊电子化存储在网络数据库中。在互联网上可看到很多重要的自然科学、工程技术与医学学术期刊。 Springer已成功地将The Series Lecture Notes in Computer(LNCS)、 Lecture Notes in Mathematics、 Lecture Notes in Physics等20套丛书中的1000余种书电子化。John Wiley推出了在线图书Online Books,内容涉及化学、生命科学与医学、电子工程/通信等多个学科领域。Elsevier Science的ScienceDirect 期刊数据库2000年收录期刊1100多种,2002年初增加到1200多种, 2002年5月成功收购IDEAL,将包括Academic Press、Mosby、Churchill Livingstone、W.B. Saunders等出版商在内的335种全文期刊纳入其系统,使其期刊总数增至1500多种,成为目前世界上最大的全文期刊数据库。 1.3.2网络数据库系统的特点 1. 小型数据库 小型数据库产品被称为桌面关系型数据库系统,其主要特点如下。 (1) 广泛应用于单机环境。 (2) 计算机操作系统为桌面型操作系统,如Windows 98/XP等。 (3) 不提供或仅仅提供有限的网络应用功能。 (4) 没有或仅有较弱的安全方案。 (5) 开发的数据库应用系统主要目的是日常小型办公需要。 (6) 提供的是较弱的数据库管理和较强的前端开发工具,开发工具与数据库集成为一体,既是数据库管理工具,同时又是数据库应用开发的前端工具,如在Visual FoxPro 6.0里就集成了应用开发工具,在Access 2000和Access 2003里集成了脚本语言。 (7) 侧重于可操作性、易开发和简单管理等方面。 2. 网络数据库系统 网络数据库系统具有以下主要特点。 (1) 运行环境为网络操作系统,如Windows NT Server、Windows Server 2000、Windows Server 2003、Linux Server、UNIX、Solaris等。 (2) 数据库系统管理是分布式的,前端开发工具和后台数据库可独立分离。 (3) 具有强大的网络功能,可以根据软硬件和网络环境的不同,组合成各种工作模式。 (4) 支持超大规模数据库技术、Internet并行在线查询、多线程服务器等。 (5) 网络信息资源集成。网络信息资源集成功能是指数据库应用系统借助互联网,利用超文本技术,在不同的信息资源之间进行链接,将原本相互独立,但互为联系的信息资源与服务整合在一块,使之形成为一个互动的有机整体,用户只需透过同一界面,即可迅速地查到并获取自己所需要的信息。 Internet中包含着丰富的信息资源,网络数据库利用网络便利,可提供相关的Internet信息资源检索与链接,只需输入一个检索式即可同时检索数据库及Internet 中的相关信息。该种链接不仅可补充、扩展数据库资源,且可为用户快捷、有效地利用Internet信息资源提供方便。 (6) 数据量大。如美国科学信息所(Information Science Institute,ISI)的Web of Knowledge 信息平台上目前可提供服务的数据库有: ISI三大引文索引数据库、期刊目次库、多个专业文献信息及事实数据库、会议录及专利信息数据库。 (7) 24小时在线。网络数据库借助于互联网运行环境,可24小时不停机,通过互联网为世界各地授权终端用户提供服务。为人们检索、利用数据库提供了极大的便利,只要网路畅通,用户足不出户,即可查找、获取、利用所需信息资源,不受信息资源储存的地理位置影响与限制。 (8) 网络数据库可通过Internet Explorer、Netscape等通用、标准浏览器,以及PDF格式文档标准阅读器Acrobat Reader等查阅文档信息。网络数据库数据文档常用的格式有PDF、ASCII(TEXT)、Word、PostScript及HTML等。 (9) 提供完备的数据安全性方案,提供完善的数据库备份和恢复手段。 1.4网络数据库系统体系结构 通常网络数据库系统的体系结构有3种类型,它们是主机终端体系结构、分层的体系结构和基于Web服务的体系结构。典型的分层体系结构又分为C/S结构和B/S结构两种。 1.4.1主机终端体系结构 主机终端体系结构在大型主机上部署中央CPU和网络数据库应用系统。这种软件系统的体系结构也称为单层体系结构,所有的功能和操作集中在主机上,终端仅仅是作为输入和输出设备使用。 1.4.2分层体系结构 典型的分层体系结构有C/S结构和B/S结构两种。 客户服务器(Client/Server,C/S)模式,两层结构,又称为胖客户机模式。基于C/S模式的网络数据库在前端计算机上要安装专门的应用程序来操作后台数据库服务器中的数据,前端应用程序可以完成计算和接收处理数据的工作,后台数据库服务器主要完成数据的管理工作。C/S模式的优点是速度较快、功能完备; 缺点是维护升级很不方便。对于基于行业的数据库应用,如股票接收系统、邮局汇款系统等,由于有多个系统,在每个客户机上就要安装多个前端客户程序。因此这种工作模式也被称为胖客户机模式。 浏览器服务器(Browser/Server,B/S)模式,3层结构,又称为瘦客户机模式。B/S模式下的客户机只需安装浏览器软件,如Windows XP系统内嵌的IE即可,无须开发前端应用程序,这就是瘦客户机模式中“瘦”的含义; 中间层的Web应用服务器,如Microsoft公司的IIS等是连接前端客户机和后台数据库服务器的桥梁,主要的数据计算和应用都在此完成,因此对中间层服务器的要求较高,开发中间层应用的技术人员需要具备一定的编程基础; 后台数据库服务器主要完成数据的管理。 基于B/S模式的Web网络数据库应用模式主要用于浏览、查询Internet/ Intranet信息。如Internet上订票、购物、政府网站、企业网站等使用的数据库系统,是目前开展电子商务应用的常用模式。 分层的软件系统体系结构把一个软件系统分解成了3个主要部分。一是用户表现层。它接受用户的请求和操作,将操作信息最终显示给用户。常见的就是一个IE浏览器中的Web页面,或者是一个标准的Windows窗体程序。二是业务逻辑层。它完成业务功能和逻辑。比如,Web网站中的IIS服务器就是一个业务逻辑层。三是数据服务层。它指后台数据库系统,也可以是各种能够存储数据的文件。C/S模式将用户表现层和业务逻辑层部署在客户机上,B/S模式则将用户表现层部署在客户机上,业务逻辑层分离部署在应用服务器上。 1.4.3基于Web服务的体系结构 面向服务是一种有效地集成现代企业数据中心的各种典型系统的方法。面向服务提供了一个模型,可将多个系统的信息和业务逻辑聚合到一个单独的接口中,这样就可以通过通用的、一致的接口集处理各种冗余的系统。通过在基于功能的接口之后封装业务应用程序,该服务模型允许对关键任务应用程序进行控制性访问,同时它还创造了在此接口之后持续改善实现过程的机会。面向服务使投资避免了纷繁的变化。面向服务是创建网络数据库系统的一个重要方法。互联网系统属于应用程序,它们可利用网络来链接、推动业务流程的执行者和系统。可以在一种特殊的应用程序模型上构建互联网系统,这种模型超越了任何设备,适度地跨越了边界,并抑制了同步性的限制。通过将一系列服务和设备集中到了一起,互联网系统可以比过去分离的应用程序更有效地应对业务挑战。通用的功能调用模型是面向服务的重点,而面向服务是有效的互联网系统策略的核心。在计算机组件模型的环境下,服务是一种通过交换消息进行通信的程序。换句话说,服务是一组应用逻辑,它接收和发送的消息完整地定义了它的接口。通过以可扩展标记语言(XML)为基础开发消息标准,面向服务正迅速成为构建互联网系统的主流方法。在连接各种不同的系统的过程中,其固有的挑战是特定平台的信息和过程模型的转换。在理想的世界里,有标准语法以明确地表达来自所有系统的信息。标准语义模型,各组织可以通过一种一致的语言表达它们的业务实践方法。标准协议,可以跨越操作环境和组织之间的边界传递信息。标准方法,用来绑定行为和业务文档。客户端是互联系统的一个非常重要但是却经常受到忽略的元素。服务只有在受到调用时才会引起注意。不同的交互要求需要支持各种不同的客户端模式。 面向服务的开发方法目前是以XML Web服务为代表的新一代基于Web的软件体系结构。在这种体系结构中,有以下3个组成部分。  服务提供者提供各种服务。服务提供者需要把自己的信息注册到服务代理上供服务使用者来查询和定位。  服务代理为网络中的服务提供者和服务使用者提供一个沟通的平台,实质上就是提供目录服务。  服务使用者可以理解为各种各样的软件系统,在服务代理上查询和定位到服务后,就可以直接访问某些服务了。 可以通过一个生活中的例子来理解基于Web服务软件的工作原理。比如,我们要找一个订飞机票公司来完成订票的服务,但我们并不知道订飞机票公司的联系方式,我们(服务使用者)可以通过查询114服务台(服务代理)来查询订飞机票公司(服务提供者),然后根据查询到的联系方式直接和订飞机票公司联系(绑定服务)。Web服务并不局限在局域网,其主要的应用环境是居于Internet的分布式应用。概括起来,在跨企业、跨系统、跨平台的情况下,Web服务是不错的解决方案。如果仅仅是开发一个企业内部的系统,基于Web服务的体系结构倒不一定是最佳的选择。目前Visual Studio 2005是开发面向服务系统的工具之一。 1.5思考题 1. 什么是数据库?DBMS有何特征? 2. 如何理解DBMS中的数据描述的三级抽象? 3. 什么是ER模型?在数据库设计中ER模型有何作用? 4. 什么是规范化形式? 5. 网络数据库系统主要特点是什么? 6. 网络数据库系统体系结构有哪三种类型? 7. 如何理解关系模式?举例说明关系模式。 2.1SQL Server版本简介 Microsoft SQL Server 2005数据库有5个版本。 1. 企业版(Enterprise Edition) 支持32位和64位CPU。支持超大型企业进行联机事务处理、高度复杂的数据分析、数据仓库系统和网站,全面的商业智能和分析能力、高可用性,可用于超大型企业级网络数据库商业应用。 2. 标准版(Standard Edition) 支持32位和64位CPU。具有包括电子商务、数据仓库和业务流解决方案所需的基本功能,集成商业智能和高可用性,可用于中小型企业网络数据库商业应用。 3. 工作组版(Workgroup Edition) 支持32位和64位CPU。具有包括SQL Server产品系列的核心数据库功能,并且可以轻松地升级至 Standard Edition或Enterprise Edition。入门级数据库,具有可靠的、功能强大的且易于管理的特点。可用于小型企业、前端Web服务器、部门或分支机构的运营网络数据库应用。 4. 开发版(Developer Edition) 支持32位和64位CPU。具有SQL Server 2005企业版的所有功能,功能有许可限制,可以根据生产需要升级至SQL Server 2005企业版。主要用于开发和测试系统,不能用做生产服务器。主要用户是独立软件供应商(ISV)、咨询人员、系统集成商、解决方案供应商,以及创建和测试应用程序。 5. 简易版(Express Edition) 支持32位CPU,不支持64位CPU。一个免费数据库,可以和Microsoft Visual Studio 2005集成,开发功能丰富、存储安全、可快速部署数据驱动应用程序。主要用于低端独立软件供应商、低端服务器用户、创建Web应用程序的非专业开发人员,以及创建客户端应用程序的编程爱好者。 2.2SQL Server网络数据库功能特征 1. 数据库引擎 SQL Server 2005数据库引擎是用于存储、处理和保护数据的核心服务。数据库引擎是传统意义上理解的数据库。SQL Server 2005数据库引擎的一些网络数据库功能特征可描述如下。  数据库镜像用数据库镜像解决方案扩展日志传送功能。可以使用数据库镜像特性通过设置自动故障转移至备用服务器的方式来增强SQL Server系统的功能。  在线恢复数据库管理员可以在SQL Server实例运行状态下执行恢复操作。在线恢复特性能够有效地提高SQL Server的可用性。  在线索引操作在线索引选项允许对底层表格、群集索引数据以及索引数据定义语言(DDL)执行过程中的所有相关索引执行并行修改(更新、删除和插入操作)。  快速恢复新增的快速恢复选项将提高SQL Server数据库的可用性。当事务日志回滚后,管理员可以重新连接正在恢复的数据库。  专用管理员连接SQL Server 2005引入专用的管理员连接,管理员可以使用这种连接来访问运行中的服务器,甚至被锁定或因为某种原因而无法使用的服务器。  复制增强特性对于分布式移动数据库而言,SQL Server 2005提供了新的端到端复制功能。  .NET Framework托管可以使用网络编程语言(如Microsoft Visual C# .NET和Microsoft Visual Basic .NET)来创建存储过程、触发器等数据库对象。同时,开发人员还可以创建两种新型对象——用户定义类型及聚合。  XML技术Internet在不同应用间分布数据的重要标准是XML。SQL Server 2005具备针对XML文档存储与查询的内建支持能力。 数据库引擎的一些基本功能的操作界面如图2.1和图2.2所示。 图2.1数据库引擎登录界面 图2.2数据库引擎基本功能图 2. 分析服务 分析服务(Analysis Services)具备以下功能。  联机分析处理(OLAP)。  数据挖掘引入了4种新型数据挖掘算法,以及能够帮助各种规模企业简化数据挖掘方式的改进工具与向导。  实时分析增强的伸缩特性与Microsoft Office进行深度集成。  关键性能指示器关键性能指示器(KPI)提供定义自定义图形化业务衡量标准的功能,这项特性有助于生成并跟踪关键性企业级基准测试指标。  伸缩性与性能诸如并行分区处理、远程关系型联机分析处理(ROLAP)或混合型联机分析处理(HOLAP)、分区创建、分布式分区数据集、持久性计算以及缓存机制。  OneClick多维数据集OneClick多维数据集监测与建议功能的选项。该选项将检查数据源视图中的关系并针对事实数据表、维度数据表和相关测量方式提出建议。 3. 集成服务 SQL集成服务(SQL Server Integration Services,SSIS)提供企业数据转换和数据集成解决方案,用户可以使用它从不同的数据源提取、转换和合并数据,并将其移至单个或多个目标。 4. 复制 复制是在数据库之间对数据和数据库对象进行复制和分发,然后在数据库之间进行同步以保持一致性的一组技术。使用复制可以通过局域网、广域网、拨号连接、无线连接和Internet将数据分发到不同位置,以及分发给远程用户或移动用户。 5. 报表服务 报表服务是一种基于服务器的新型数据报表平台,可用于创建和管理包含来自关系数据源和多维数据源的数据的表报表、矩阵报表、图形报表和自由格式报表。SQL Server 2005支持通过基于Web的连接来查看和管理报表。报表服务中的报表服务器提供的报表可以在Microsoft SharePoint Portal Server以及如Microsoft Word与Microsoft Excel的Microsoft Office系统应用程序环境下运行。可以使用SharePoint特性来订阅报表、创建新版报表和发布报表。同时,还可以在Word或Excel中打开报表,以查看其HTML版本。 6. 通知服务 通知服务(Notification Services)用于开发和部署可生成并发送通知的应用程序。SQL Server 2005的通知服务可以生成并向大量订阅方及时发送个性化的消息,还可以向各种各样的设备传递消息。通知服务允许企业创建能够向各种设备提供及时个性化信息(如证券市场提示、新闻订阅、装运报警和航班机票价格查询)的丰富通知应用程序。借助SQL Server 2005,通知服务将与诸如分析服务和SQL Server Management Studio之类的技术实现更为紧密的集成。 7. 服务代理 服务代理(Service Broker)将面向大规模在线商务应用提供分布式异步应用程序框架。服务代理是一种用于生成可靠、可伸缩和安全的分布式异步数据库应用程序的技术。分布式异步数据库应用程序要求在多台物理计算机上完成同一件事务。比如, 一个持有上海地区的中国银行卡的用户到了北京从POS机上异地提取现金,这是一个分布式异步的事务。SQL Server 2005的服务代理包含在数据库引擎中,对队列提供本机支持,提供了一个基于消息的通信平台,可用于将不同的应用程序组件链接成一个操作整体。服务代理还提供了许多生成分布式应用程序所必需的基础结构,可显著地减少应用程序开发时间。 8. Web服务 借助SQL Server 2005,开发人员可以在数据库层次上开发网络Web服务,从而使SQL Server成为一个超文本传输协议(HTTP)监听器并面向以网络Web服务为中心的应用提供新型数据访问功能。 2.3部署SQL Server网络数据库功能 首先需要将SQL Server 2005安装在计算机中,其主要过程如下。 1. 把SQL Server 2005的CD或者DVD光盘插入服务器,系统会自动出现一个引导窗口,如图2.3所示,上面是产品介绍和运行须知。 图2.3SQL Server 2005引导页面 2. 选择“安装”标题下的“服务器组件、工具、联机丛书和示例”选项。 3. 进入安装SQL Server 2005的过程,读者可按照安装向导的提示进行安装。 (1) 打开“最终用户许可协议”界面,选择“我接受许可条款和条件”复选框,如图2.4所示。 图2.4“最终用户许可协议”界面 安装向导完成的第一项任务是扫描系统,以确保它满足SQL Server 2005最低要求。SQL Server 2005的一些服务(例如报告服务)要求使用IIS(因特网信息服务器),因此,需在安装IIS之后,才能继续进行安装。 (2) 单击“下一步”按钮,打开“系统配置检查”界面,检查系统中是否有潜在的安装问题,如图2.5所示。 图2.5“系统配置检查”界面 (3) 单击“下一步”按钮,打开“注册信息”界面,填写姓名、公司名和产品密钥,如图2.6所示。 图2.6填写姓名、公司名和产品密钥 (4) 单击“下一步”按钮,打开“要安装的组件”界面,如图2.7所示选择“SQL Server数据库服务”(SQL Server Database Services)复选框。单击“高级”按钮,弹出一个更加常见的功能选择窗口。在窗口里,单击“下一步”按钮继续安装。 图2.7选择安装组件 (5) SQL Server 2005引入了SQL Server命名实例(named instance)的概念。可以选择升级已有的命名实例,也可以选择安装SQL Server 2005默认的实例。在本例中,使用“默认实例”选项,如图2.8所示。 图2.8选择安装SQL Server 2005默认实例