不管通信网络提供的是一台计算机与另一台计算机之间的连接还是终端与计算机之间的连接,通信网络可以分成两种基本类型:电路交换(有时叫做面向连接的)和分组交换(有时叫做无连接的)。电路交换网络运行时在两点之间形成一条专用连线(线路)。美国电话系统使用电路交换技术,即一个电话呼叫建立一条线路,从发起呼叫的电话机通过本地交换局、穿过中继线到一个远程交换局,最后到达目的电话机。在线路存在时,电话设备对话筒的输出重复采样,把采样进行数字编码,并通过线路把它们传送到接收方。发话方确信采样一定会被传输和重新生成,因为线路提供了一条被保证的64kbps(千比特每秒)数据路径,这个速率是发送数字化的语音所必需的。电路交换的好处在于它的容量有保证:一旦建立一条线路,没有其它网络活动会减少这条线路的容量。电路交换的缺点是代价大:线路的费用是固定的,与通信量无关。例如,一个人要为一个电话交付固定的费用,即使两边没有交换。
分组交换类型的网络通常用于连接计算机,它采用完全不用得方法。在一个分组交换网络中,网络上传输的数据被分成一个个小的片,叫做分组,分组被多路复用在大容量的机器间的连接上。一个分组,通常含有几百个字节的数据,载有使网络硬件知道怎样把它发送到指定目的地的标识信息。例如,一个要在两台机器间传送的大文件,必须被分成许多分组,在网络上一个一个地传送。网络硬件把分组传送到指定目的地,在那里,软件把它们重新组装成一个文件。分组交换的额主要优点是计算机之间的多路通信可以并行进行,机器间连接被正在通信的各对机器所共享。当然,它的
缺点是,随着网络活动的增加,一对通信的计算机所获得的网络容量就会减少。也就是说,每当一个分组交换网络超载,那么,使用这个网络的计算机在可以继续发送分组之前,必须等待。
尽管分组交换网存在不能保证网络容量的潜在缺点,分组交换网络已成为非常流行的。采用分组交换的动机是从成本和性能方面考虑的。因为多机可以共享网络硬件,所以只要求较少的几个连接,费用低;而且工程师们已经能制造高速网络硬件,容量通常不成为问题。因此,许多计算机互联都使用分组交换,所以本书后面,术语“网络(network)”将仅指分组交换网络。
7.1数据库系统概述
让我们考虑航空公司这样的企业,它有大量的数据长时间保存在计算机中。这些数据,例如,可能包括关于乘客、航班、飞机与乘务组人员的信息。可能表示的典型关系包括订票(哪些乘客在哪些航班上订有座位?)、航班乘务组(在哪些航班上谁是驾驶员,谁是副驾驶员,等等),以及服务记录(每架飞机最后是何时由谁服务的?)。
我们把上述那样的不同程度地长久存储在计算机中的数据成为数据库。 使得一个人或许多人能使用和/或修改这些数据的软件是数据库管理系统(DBMS)。DBMS的主要目标是提供这样的环境,在从数据库中检索信息和把信息存储在数据库中时使用起来既方便,功效又高。
数据抽象
显然,在处理二进位的计算机和处理像航班或把乘务组人员分派到飞机这样一些抽象的最终用户之间将存在很多层抽象。关于抽象层的相当标准的观点如图7-1所示。在那里我们看到3个不同抽象层的单个数据库,它可能是使用同一个DBMS软件的很多个数据库中的一个数据库。
最底层,也即物理层,把数据存储在硬件设备上。用户程序不能直接存取它们。它们必须通过逻辑层存取数据。外部层按外部或用户程序之需要定义数据库的不同试图。一个用户程序不可能需要数据库中的所有数据,因此用户/应用程序仅观察所需的数据库信息。这意味着取决于对数据的需求,不同的程序对同一个数据库将有不同的视图。这样一些视图是数据库外部的,因而在外部层规定。不同的视图也不必须要包含完全不同的数据。在不同的视图中会存在公共的信息。
概念层描述整个数据库,它是由数据库管理人员使用的,它们必须决定什么信息要被保存在数据库中。
数据模型
数据模型是一组概念工具,用来描述数据、数据关系、数据语义和数据限制。数据模型分成三类,就是基于对象的逻辑模型、基于记录的逻辑模型和物理数据模型。
基于对象的逻辑模型用于描述概念层与视图层的数据。它们非常接近于人的逻辑。很多不同的模型可用来描述基于对象的逻辑模型,其中最重要的是语义数据模型和实体关系模型。语义数据模型提供了表达数据库中数据之意义的设施。实体关系模
型(E-R模型)是基于这样的认识:现实世界是由一组称为实体的对象和这些对象之间的关系组成的。实体是对象,它能与其它对象唯一的却别开。例如,名称、物理尺寸和每单位长度的重量唯一的描述一段特定的钢材。相同类型的所有实体之集合和相同类型的各种关系分别称作实体集合和关系集合。实体集合的例子有:
一座建筑物中的所有房间 在一个有限网络中的所有元素 一台机器中的所有轴承
实体和关系要被区别开,并且数据库模型应指明这如何能实现。这用主关键字概念来实现。实体关系模型可以定义数据库的内容必须遵守的某些限制。一个重要的限制是某个实体能经由一个关系与其相关的其它实体之个数。对于涉及两个实体集合的关系,可能存在像一对一、一对多、多对一和多对多那样的关系,这些关系的图解表示如图7-2所示
基于记录的逻辑模型定义数据库的整个逻辑结构以及其实现的更高级描述。三种不同的基于记录的逻辑模型被广泛使用。它们是:
1. 层次模型 2. 网络模型 3. 关系模型
物理数据模型用于描述最低层的数据。只有很少的几种物理数据模型在使用。广
泛知道的是:
1. 统一模型 2. 框架存储
7.2 SQL引言
理想地,一个数据库语言必须使我们能够创建数据库和表结构;它必须使我们能够执行一些基本的日常数据管理工作(添加、删除和修改数据);并且它必须使我们能执行设计来把原始数据变换成有用信息的复杂查询。此外,它必须让用户以最小的努力来完成这样一些基本功能,而且它的命令结构和语法必须是易于学习的。最后,它必须是可移植的,亦即,它必须与某个基本标准一致,以致当从一个RDBMS改变为另一个时不必要重头开始学习。
SQL很好地满足这些理想化的数据库语言需求。首先,SQL覆盖范围归入三个范畴:
1. 数据定义创建数据库及其表结构。
2. 数据管理使用一组命令来对数据库表内的数据进行键入、校正、删除和更新。
3. 数据查询使用一组命令来探索数据库内容并使得用户能把原始数据转换成有用信息。
其次,SQL是相当容易学的:它通过使用由大约30个命令组成的基本词汇表来