计算机专业英语中文翻译

Lesson 1.

PC 概述

提到“技术”一词,大多数人会想到计算机。我们生活中的几乎每个方面都有一些计算机化的成份。 家里的电器中内置了微处理器,电视机也是如此,就连汽车上面也有计算机。但是,人们首先想到的 计算机通常是个人计算机或PC机。 PC机是利用微处理器建立的通用工具,具有相互配合的不同的部件,如内存、硬盘、调制解调器,等 等。可以用PC机输入文档、发送电子邮件、浏览Web页面和玩游戏。 可以这样看PC机:PC机是个通用信息处理设备,可以从人(通过键盘与鼠标)、设备(例如软盘与光 盘)和网络(通过调制解调器或网卡)取得信息,进行处理。处理信息之后,结果向用户显示(通过 显示器)、存放在设备中(如硬盘)或发送到网络上其他地方(通过调制解调器或网卡)。日常生活 中有许多专用处理器。MPS播放器是处理MPS文件的专用计算机,不能做别的任何事情。GPS是处理GPS 信号的专用计算机,不能做别的任何事情。掌机是处理游戏的专用计算机,不能做别的任何事情。而 PC机则具有上述所有功能,因为它是通用的。

Lesson 2.

PC 机内部

下面看看典型台式计算机的主要组成部分: ? 中央处理单元(CPU)-计算机系统的微处理器(大脑)称为中央处理单元。计算机所做的一切 都由CPU监控。 ? 内存-保存数据的高速存储器,之所以要快,是因为其与微处理器直接相连。计算机中有几种特 定类型的内存: ? ? ? ? ? ? 随机存取内存(RAM)-临时存储计算机当前使用的信息。 只读内存(ROM)-永久记忆存储器,计算机用其存储不会改变的重要数据。 基本输入/输出系统(BIOS)-一种ROM,计算机首次打开时用其建立基本通信机制。 缓存-在直接连接CPU的超高速RAM中存储常用数据。 虚拟内存-硬盘空间,临时存储数据,在需要时与RAM交换这些数据。 主板-所有其他内部组件连接的主线路板。CPU和内存通常在主板上,其他系统可以直接放在主 板上,也可以通过辅助连接相连。例如,声卡可以直接放在主板上,也可以通过PCI连接。

? ? ? ? ?

电源-电变换器,调节计算机使用的电量。 硬盘-大容量永久存储器,保存程序和文档之类信息。 操作系统-这是基本软件,使用户可以和计算机接口。 集成驱动电子(IDE)控制器-硬盘、光盘驱动器和软盘驱动器的主接口。 外部组件互联 (PCI) 总线-将其他组件连到计算机上的最常用方式。 PCI使用主板上的一系列槽, 插入PCI卡。

? ? ? ?

SCSI-读作“skuzzy”,指小型计算机系统接口,可以向计算机中增加硬盘、扫描仪之类设备。 AGP-图形加速端口,是个超高速连接,图形卡用其与计算机接口。 声卡-计算机用其录制与播放声音,在模拟声音与数字信号之间来回转换。 显示卡-将计算机的图形数据变成显示器中可以显示的格式。

Lesson 3.

输入/输出设备

不管计算机内部的组件多么强大,都需要有一种交互方式。这个交互称为输入/输出(I/O)最常见的 PC输入/输出类型如下: ? ? ? ? ? ? 显示器-显示器是显示计算机信息的主要设备。 键盘-键盘是向计算机输入信息的主要设备。 鼠标-鼠标是计算机导航与交互的主要设备。 可拆存储器-可拆存储器可以方便地向计算机中加入新信息,以及保存信息,带到不同地方。 软盘-最常见的可拆存储器是软盘,非常便宜,很容易保存信息。 光盘-光盘(压缩盘,只读存储器)是发布商业化软件的常见方式。许多系统提供CD-R(可写) 和CD-RW(可重写),还可以写入信息。 ? 闪存(俗称优盘)-闪存利用的ROM称为电可擦于编程只读内存(EEPROM),提供快速永久存储 器。CompactFlash、SmartMedia与PCMCIA卡都是闪存。 ? 数字光盘-数字光盘(数字万用盘,只读存储器)与CD-ROM相似,但可以保存更多信息。

Lesson 4.

从启动到关闭:BIOS 的作用

熟悉PC机的组件之后,下面看看典型计算机会话中从启动到关闭所发生的事件: 1. 2. 按计算机和显示器上的“On”按钮。 可以看到BIOS软件进行通电自检(POST)。在许多机器上,BIOS显示的文本描述计算机上安装的 内存量、安装的硬盘类型等数据。在此启动顺序中,BIOS进行大量工作,使计算机准备运行。 ? BIOS确定显示卡是否能工作。 大多数显示卡本身有个微BIOS, 初始化显示卡上的内存和图形处理 器。如果本身没有微BIOS,则主板的另一ROM上通常会有显示驱动器信息,BIOS能将其装入。 ? BIOS检查这是冷启动还是热启动。为此,它检查内存地址0000:0472的值。值为1234h表示重新启 动,这时BIOS跳过POST其余部分,任何其他值表示冷启动。 ? 如果是冷启动,则BIOS检查RAM,为此要对每个内存地址进行读写测试。它检查键盘和鼠标,检 查PCI总线,如果发现PCI总线,则检查所有PCI卡。如果BIOS通电自检期间发现任何错误,则会 用一系列嘟嘟声或屏幕上显示的文本消息通知用户。这时的错误几乎总是硬件问题。 ? BIOS显示一些系统信息,通常包括下列信息: 1. 2. 3. 4. 5. ? ? 处理器 软盘与硬盘 内存 BIOS版本与日期 显示器

装入SCSI卡之类适配器的任何特殊驱动器,BIOS显示这个信息。 BIOS检查CMOS设置为标为引导设备的一系列存储设备。 “引导” (Boot) “自举” 是 ("bootstrap") 一词的英文缩称,源于老话"Lift yourself up by your bootstraps"。引导指启动操作系统的 过程。BIOS用引导装入器从第一个设备中启动引导顺序。

3.

引导装入器将操作系统装入内存,使其开始工作:为此,它要设置保存操作系统、用户信息和应 用程序的内存区。 然后引导装入器建立数据结构, 用于计算机子系统和应用程序之中和之间通信。 最后,它把计算机的控制权交给操作系统。

Lesson 5.

微处理器概述

我们所用的计算机用微处理器进行工作。微处理器是任何正常计算机的核心,无论是台式机、服务器 还是手提电脑。我们所用的微处理器可能是Pentium、K6、PowerPC、Sparc或任何其他品牌和类型的 微处理器,但它们都以大致相同的方式进行大致相同工作。 如果你想知道计算机中的微处理器干些什么,我想知道不同微处理器的差别,请往下阅读。

Lesson 6.
1.

译码微处理器指令

指令译码器要将每个算子变成一组信号,驱动微处理器中的不同组件。下面以ADD指令为利,看看要 干什么: 第一个时钟周期,要实际装入指令。因此,指令译码器要: ? 激活程序计数器的三态缓冲器 ? 激活RD线 ? 激活数据输入三态缓冲器 ? 将指令锁存到指令寄存器 2. 第一个时钟周期,译码ADD指令,很简单: ? 将ALU运算设置为加法 ? 将ALU输出锁存到C寄存器 3. 第三个时钟周期,程序计数器递增(理论上也可以和第一个时钟周期重叠)。

每个指令可以分解为这样一组顺序操作,按正确顺序操纵微处理器的组件。有些指令(如这个ADD指 令)可能要两个或三个时钟周期,而有些可能要五、六个时钟周期。

Lesson 7.

微处理器趋势

微处理器设计趋势主要是完全32位ALU,内置快速浮点处理器和多个指令流管道执行。处理器设计中 的最新情况是64位ALU,今后十年内,这种处理器可望在家用PC中出现。还有一种趋势是用特殊指令 (如MAX指令)使某个运算特别高效,以及在处理器芯片上增加硬件虚拟内存支持和L1缓存。所有这 些趋势都要增加晶体管个数,从而出现了当今几百万个晶体管的微处理器。 64位处理器 64位处理器从1992年就已经出现, 21世纪已开始成为主流。 Intel与AMD公司都引入了64位芯片, 同Mac G5支持64位处理器。64位处理器具有64位ALU、64位寄存器、64位总线,等等。

之所以需要64位处理器,是因为其扩大地址空间。32位芯片通常限于最多2GB或4GB的RAM存取,听起 来好像很多,因为大多数家用计算机目前只用256MB到512MB的RAM。但是,4GB的局限对服务器和运行 大型数据库的机器可能造成严重问题。 按照目前的趋势发展下去, 就连家用计算机也很快会撞击到2GB 或4GB的极限。64位芯片没有这些限制,因为64位RAM地址空间在可以预见的将来实际上是无限的,因 为2^64字节内存是quadrillionGB内存数量级的。 利用64位地址总线与宽度,主板上的主速数据总线,64位机器还提供了硬盘驱动器、显示卡等的高速 I/O(输入/输出)速度。这些特性可以大大提高系统性能。 服务器明显可以受益于64位结构,但普通用户呢?除了RAM方案,64位芯片目前还看不出对普通用户 有任何真实的具体的好处。它们可以更快地处理数据(由许多实数构成的复杂数据)。这类计算功能 对进行视频编辑和进行超大图像照片编辑的人有好处。高端游戏也有好处,只要把它们重新编码,利 用64位特性。但是,普通用户阅读电子邮件、浏览Web页面和编辑Word文档时,实际上并不这样使用 处理器。此外,Windows XP之类操作系统还没有升级到处理64位CPU。由于缺乏具体的好处,因此估 计2010年左右才会在每台桌面上看到64位机器。

Lesson 8.

RAM 与 ROM

上节介绍了地址与数据总线和RD与WR线。这些总线和线路连接RAM或ROM,通常两者都连。在样本微处 理器中,地址总线为8位,数据总线为8位,即微处理器可以寻扯28=256字节内存,可以一次读取或 写入8位内存。假设这个简单微处理器有128字节ROM,开始地址为0,有128字节RAM,开始地址为128。 ROM表示只读内存,ROM芯片用永久预设字节组编程。地址总线告诉ROM芯片取哪个字节和放在数据总 线上。RD线改变状态时,ROM芯片把所选字节放到数据总线上。 ROM表示随机存取内存。RAM存有信息字节,微处理器可以根据RD与WR线信号读取和写入这些字节。当 今RAM芯片的一个问题是,一旦关掉电源,它们就会忘记一切。因此计算机需要ROM。 顺便说一句,几乎所有计算机都包含一定数量的ROM[可以生成不包含RAM的计算机(许多单片机就是 这样,只在处理器芯片本身放上一些RAM字节),但通常无法生成不包含ROM的计算机]。在PC机上, ROM称为BIOS(基本输入/输出系统)。微处理器启动时,开始执行从BIOS中找到的指令。BIOS指令的 功能包括测试机器硬件,然后到硬盘上取引导扇区。这个引导扇区是另一个小程序,BIOS在读盘之后 将其存放在RAM中,然后微处理器从RAM中执行引导扇区的指令。引导扇区程序告诉微处理器从硬盘中 取其他东西,放在RAM中,然后由微处理器执行,等等。微处理器用这种方法装入和执行整个操作系 统。

Lesson 9.

唤醒调用

知道不同类型的操作系统之后,下面介绍操作系统提供的基本功能。

打开计算机电源时,运行的第一个程序通常是计算机ROM(只读内存)中的一组指令,检查系统 硬件,保证一切正确工作。这个POST(通电自检)检查CPU、内存与BIOS(基本输入/输出系统)的错 误,将结果存放在一个特殊内存地址。一旦POST顺利完成后,ROM中装入的软件(有时称为固件)开 始激活计算机的硬盘驱动器。在大多数现代计算机中,计算机激活硬盘驱动器时,找到操作系统的第 一部分:引导装入器。 引导装入器是个小程序,只有一个功能:将操作系统装入内存中,使其开始操作。最基本的引导 装入器建立小驱动程序,与计算机的不同硬件子系统接口和控制这些子系统。它建立保存操作系统、 用户信息与应用程序的内存分区。它建立保存混合信号、标志与信息的数据结构,用其在计算机子系 统和应用程序间通信。然后它把计算机的控制交给操作系统。 操作系统的任务可以从最一般意义上分为六类: ? ? ? ? ? ? 处理器管理 内存管理 设备管理 存储管理 应用程序接口 用户接口

尽管有人认为操作系统不止完成这六个任务,有些操作系统厂家在操作系统中建立了更多实用程 序和辅助功能,但这六个任务是几乎所有操作系统的核心。下面看看操作系统完成这些功能的工具。

Lesson 10.

从启动到关闭:操作系统

装入操作系统之后,其任务共六大类: ? ? ? ? ? ? ? ? 处理器管理--将任务分解为更小的块,排出优先级,然后再发送到CPU。 内存管理--协调进出内存的数据流和确定何时需要虚拟内存。 设备管理--提供连接计算机的每个设备、CPU与应用程序间的接口。 存储管理--指定数据永久存储在硬盘和其他存储体的什么地方。 应用程序接口--提供软件程序与计算机之间的标准通信与数据交换机制。 用户接口--提供与计算机通信和互动的方式。 打开字处理程序,输入一个字母,保存并打印。这个过程涉及几个组件的工作。 键盘和鼠标将输入发送到操作系统。

? ? ?

操作系统确定活动程序为字处理程序,将输入接受为这个程序的数据。 字处理程序确定数据格式,并通过操作系统将其临时存储在内存中。 操作系统将字处理程序的每个指令发送到CPU中。 这些指令与操作系统监视的尚未发送到CPU的其 他程序指令相互交织。

? ?

这时,操作系统可以向显示卡提供显示信息,指示显示卡显示什么内容。 选择保存字母时,字处理程序向操作系统发一个请求,操作系统提供一个标准窗口,可以选择把 信息保存在哪里,称它为什么。选择文件名称与路径之后,操作系统将内存中的数据发到相应存 储设备中。

?

单击“打印”按钮,字处理程序向操作系统发一个请求,操作系统将数据变成打印机能识别的格 式,将内存中的数据发到所请求计算机的相应端口。

?

打开Web浏览器并输入一个URL。这时,操作系统也会协调所有操作。但这时计算机设备从另一来 源接收输入:因特网和用户。操作系统把所有进入和发出的信息无缝地集成起来。

? ?

关闭Web浏览器并选择“关闭”选项。 操作系统关闭当前活动的所有程序。如果程序中还有未保存信息,则操作系统提供一个机会,让 你先保存之后再关闭程序。

?

操作系统将其当前设置写入特殊配置文件中,使下次启动时使用相同设置。 如果计算机提供软件电源控制功能,则操作系统完成关闭循环后,会完全关闭计算机,否则要手 动关闭。

?

Lesson 11.
? 占。 ?

内存与外存管理

操作系统管理计算机的内存时,主要完成两大任务: 每个进程要有足够的内存来执行,既不能跨到其他进程的内存空间,也不能被其他进程挤

系统中不同类型的内存应该正确使用,使每个进程可以最有效地运行。

第一个任务要求操作系统对各类软件和各个应用程序建立内存边界。 例如,下面看看1MB(1000KB),内存的假想系统。引导过程中,假想计算机的操作系统设计成 可用内存顶部,然后“后退”足够远,满足操作系统本身的要求。假设操作系统运行需要300KB,则 操作系统进入RAM池底部,开始建立各种驱动器软件,用于控制计算机的硬件子系统。在假想计算机 中,驱动器占用200KB。因此,完全装入操作系统之后,还有500KB可供应用程序进程使用。 应用程序开始装入内存时,其按操作系统确定的块长度装入。如果块长为2KB,则装入的每个进 程得到的内存块长度为2KB的倍数。应用程序装入这些固定块长度,块在4字节或8字节边界上开始和

结束。这些块与边界保证应用程序不会因为一两个算错的位而将一个进程的内容装入另一个进程的空 间。有了这个保证之后,更大的问题是填满500KB应用程序空间时怎么办。 大多数计算机允许在原有容量之外增加内存。例如,可以将内存从1MB扩展到2MB。这是可行的, 但通常比较昂贵,而且没有考虑这样一个基本计算事实:应用程序在内存中存放的大部分信息不是每 个时刻都在使用。处理器一次只能访问一个存地址,因此任何时刻大部分内存都是未用的。由于磁盘 空间比内存更便宜,因此把内存中的信息移到硬盘中可以大大扩展内存空间而不花一分钱。这个技术 称为虚拟内存管理。 磁盘存储只是操作系统要管理的内存类型之一,是最慢的一种。计算机系统中的内存类型按速度 快慢排列如下: ? 高速缓存-这是较小的快速内存,通过最快的连接让CPU访问。缓存控制器预测CPU下一步

需要哪些数据,将其从主内移到高速缓存,加速系统性能。 ? ? 主存-这是购买计算机时看到的单位为MB的内存。 二级内存-这通常是某种旋转磁介质存储体,可以提供应用程序和数据,在操作系统控制

下作为虚拟内存。 操作系统要平衡不同进程的需求和不同类型内存的可用性,根据进程调度在可用内存之间移动数 据块(称为页)。

Lesson 12.

设备管理

操作系统和不在计算机主板上的几乎所有硬件之间使用一个特殊程序,称为驱动器。驱动器的主 要功能是在硬件子系统的电信号与操作系统和应用程序的高级编程语言之间作为翻译器。驱动器取得 操作系统定义为文件的数据,将其变成位流,放在存储设备中特定位置,或变成打印机的一系列激光 脉冲。 由于驱动器控制的硬件千差万别,因此驱动器工作的方式各不相同,但大多数在需要这个设备时 运行,与任何其他进程的工作方法相似。操作系统经常对驱动器分配高优先级块,使硬件资源可以尽 快释放,用于其他方面。 驱动器与操作系统分开的原因之一是驱动器和硬件子系统可以增加新功能,而操作系统本身不用 修改、重新编译和发布。通过开发新的硬件设备驱动器,可以大大提高总体系统的输入/输出功能, 而这个开发通常由子系统厂家完成或外包,而不是由操作系统厂家负责。 管理输入与输出主要就是管理保存这些位的队列与缓冲区(这是特殊的存储设备,从键盘、串口 之类设备取得位流),按足够慢的速度将其释放到CPU,使CPU能够处理。这个功能在运行多个进程时 特别重要,每个进程都要占用处理器时间。操作系统会指示缓冲区继续从设备取得输入,但使用输入 的进程暂停时,会停止向CPU发送数据。然后,需要输入的进程再次活动时,操作。系统提示缓冲区 发送数据。这个过程使键盘或Modem可以高速服务于外部用户或计算机,即使有时CPU无法使用这些源 的输入。

管理计算机系统的所有资源是操作系统功能的重要部分,对实时操作系统,也许是所要的全部功 能。但对于其他操作系统,提供相对简单、一致的方式让应用程序和人们利用硬件的功能是其存在的 主要原因。

Lesson 13.
应用程序接口

外部接口

驱动器提供了应用程序利用硬件子系统的方法,使其不必知道硬件操作的每个细节,同样,应用 程序接口(API)使应用程序编程人员可以利用计算机和操作系统的功能,而不必直接跟踪CPU操作的 所有细节。下面举一个例子看看其重要性:生成保存数据的硬盘文件。 编程人员编写一个应用程序,从科学仪器中记录数据,可能要让科学家指定生成的文件名。操作 系统可能提供API函数MakeFile,用于生成文件。编写程序时,编程人员可以插入下列语句: MakeFile [1, %Name, 2] 本例中,指令让操作系统生成文件,其支持随机存取数据(1),具有用户输入的(%Name),长度 随文件中所存数据的多少而变(2)。下面看看操作系统如何把这个指令变成操作。 1.操作系统向磁盘驱动器发一个查询,取得第一个可用自由存储地址的位置 2.利用这个信息,操作系统在文件系统中建立一个项目,显示文件开始与结束位置,文件名,文 件类型,文件是否已存档,哪个用户有权查阅或修改文件,以及文件生成日期和时间。 3.操作系统在文件开头写入信息,标识文件,设置允许的访问类型,以及其他把文件与应用程序 相联系的信息。 在所有这些信息中,查询磁盘驱动器和寻址文件开始与结束点的格式主要取决于磁盘驱动器厂家 和机制。 由于编程人员编写的应用程序使用磁盘存储API,因此他不必涉及每个磁盘与磁带驱动器的指令 代码、数据类型和响应代码。操作系统各种硬件子系统的驱动器,处理硬件细节改变,编程人员只要 编写API所要的代码,可以委托操作系统做其他工作。 API已经成为近年来计算机行业中竞争最激烈的领域之一。公司发现,使用其 API 的 编 程 人

员最终能够控制行业的特定部分,从中获利。这就使许多公司愿意公开免费提供阅读器、浏览器之类 应用程序。他们知道,客户会请求程序利用免费阅读器,应用程序公司要准备支付版税,使其软件提 供客户请求的功能。 用户界面 API提供了应用程序使用计算机系统资源的一致方式,而用户界面(UI)则提供了用户与计算机 交互的结构。近十年来,用户界面的主要发展在图形用户界面(GUI)方面,两个模型Apple公司的 Macintosh和Microsoft公司的Windows最受关注,获得了大部分市场份额。著名的开放源代码Linux操 作系统也支持图形用户界面(GUI)。 还有其他操作系统用户界面,有些是图形用户界面(GUI),有些不是。

例如,Unix的用户界面称为shell,提供比该操作系统的标准文本界面更灵活、更强大的用户界 面。Korn Shell与C Shell之类程序是文本界面,增加了重要实用程序,但主要目的是便于用户利用 操作系统功能。还有X-Windows与Gnome之类图形用户界面,使用户看到的Unix或Linux更角Windows与 Macintosh系统。 一定要记住,在所有这些例子中,用户界面是位于操作系统上层的一个或一组程序。Windows与 Macintosh操作系统也是如此,只是机制稍有不同。核心操作系统功能是计算机系统的管理,位于操 作系统内核中。显示管理器是独立的,但也可能与内核紧密相联。介于操作系统内核和用户界面的实 用程序和其他软件决定了当今操作系统的许多差别,还将决定今后的差别。

Lesson 14.
?

一些术语

记住,我设定你对计算机编程一无所知,下列词汇有助于理解本文的内容: 计算机程序-计算机程序是一组指令,告诉计算机具体要干什么。指令可能让计算机把一

组数相加,或比较两个数和根据结果进行决策,等等。但是,计算机程序只是一组计算机指令,就象 菜单是一组烹调指令,音符是一组音乐指令。计算机严格按照指令做,在此过程中做一些有用的工作, 如平衡支票或在屏幕上显示游戏,或旁观字处理程序。 ? 编程语言-要让计算机识别你给出的指令,就要用计算机理解的语言-编程语言编写这些

指令。和人类语言一样,计算机编程语言也很多,如Fortran, Cobol, Basic, Pascal, C, C++, Java, Perl,它们以不同方式表达大致相同的概念。 ? 编译器-编译器把可读计算机语言(如Java)写成的计算机程序编译为计算机能执行的形

式。也许你在计算机上见过EXE文件,这些EXE文件就是编译器的输出结果,包含可执行程序,即从可 读程序翻译过来的机器可读程序。 为了用Java编程语言开始编写计算机程序,就要有Java语言的编译器。下节介绍如何下载与安装 编译器。有了编译器之后,就可以开始了。这个过程要经过几个小时,主要时间用在下载几个大文件。 我们还需要40MB自由磁盘空间(一定要有足够的磁盘空间再开始)。

Lesson 15.
算机程序。

下载 Java 编译器

要在机器上建立Java开发环境,就要完成下列步骤。我们用“开发环境”来“开发”(编写)计

1. 下载包含Java开发环境的大文件(包括编译器和其他工具)。 2. 下载包含Java文档的大文件。 3. 如果机器上还没有WinZip(或等价文件),就要下载和安装包含WinZip的大文件。 4. 安装Java开发环境。 5. 安装文档。 6. 调整几个环境变量。

7. 全面测试。 开始之前,最好先在临时目录中建立一个新目录,保存要下载的文件。我们称其为下载目录。 第1步--下载Java开发环境 进入页面http://java.sun.com/j2se/1.4.2/download.html,单击"Download J2SE SDK"链接下 载SDK软件。可以看到许可证协议,单击Accept按钮。选择相应操作系统并将文件下载到下载目录。 这是个大文件,在普通电话线Modem上要几个小时才能下载完毕。下面两个文件也很大。 第2步--下载Java文档 选择操作系统并单击SDK 1.4.1文档链接下载Java文档。 第3步--下载与安装WinZip 如果机器上还没有WinZip(或等价文件),到http://www.winzip.com/页面下载WinZip测试版。 运行得到的EXE将其安装,稍后要用其安装文档。 第4步--安装开发工具库 运行第1步下载的j2sdk-1_4_1-*.exe文件,它自动解包和安装开发工具库。 第5步--安装文档 阅读文档安装说明,它会让你把文档文件移到安装开发工具库的目录中。解压缩文档,它就会放 进正确位置。 第6步--调整环境 正如本页所示,需要改变路径变量。最简单的方法是打开MS-DOS提示,输入PATH,看看当前设置 的路径,然后在记事本中打开autoexec.bat文件,按照说明改变路径变量。 第7步--测试 现在可以打开另一个MS-DOS窗口和输入javac。如果一切设置正确,则可以看到两行文本,介绍 如何使用javac。如果看到消息"Bad Command or File Name",则表示还不行。阅读安装说明,看看 错在哪里,一定要保证PATH设置正确和可行。回头重读上述说明,坚持不懈,直到解决问题。 这样,你就可以骄傲地拥有能够编译Java程序的机器了,可以开始编写软件了。 顺便说一句,刚刚解压缩的还有一个demo目录,其中有各种精彩的例子。所有例子都是可以马上 运行的,因此可以找到这个目录,试试几个例子。其中许多例子是有声的,因此一定要打开音箱。要 运行例子,找到名称为example1.html之类的页面,将其装入普通Web浏览器中。

Lesson 16.
算机程序。

第一个程序

要在机器上建立Java开发环境,就要完成下列步骤。我们用“开发环境”来“开发”(编写)计

1. 下载包含Java开发环境的大文件(包括编译器和其他工具)。

2. 下载包含Java文档的大文件。 3. 如果机器上还没有WinZip(或等价文件),就要下载和安装包含WinZip的大文件。 4. 安装Java开发环境。 5. 安装文档。 6. 调整几个环境变量。 7. 全面测试。 开始之前,最好先在临时目录中建立一个新目录,保存要下载的文件。我们称其为下载目录。 第1步--下载Java开发环境 进入页面http://java.sun.com/j2se/1.4.2/download.html,单击"Download J2SE SDK"链接下 载SDK软件。可以看到许可证协议,单击Accept按钮。选择相应操作系统并将文件下载到下载目录。 这是个大文件,在普通电话线Modem上要几个小时才能下载完毕。下面两个文件也很大。 第2步--下载Java文档 选择操作系统并单击SDK 1.4.1文档链接下载Java文档。 第3步--下载与安装WinZip 如果机器上还没有WinZip(或等价文件),到http://www.winzip.com/页面下载WinZip测试版。 运行得到的EXE将其安装,稍后要用其安装文档。 第4步--安装开发工具库 运行第1步下载的j2sdk-1_4_1-*.exe文件,它自动解包和安装开发工具库。 第5步--安装文档 阅读文档安装说明,它会让你把文档文件移到安装开发工具库的目录中。解压缩文档,它就会放 进正确位置。 第6步--调整环境 正如本页所示,需要改变路径变量。最简单的方法是打开MS-DOS提示,输入PATH,看看当前设置 的路径,然后在记事本中打开autoexec.bat文件,按照说明改变路径变量。 第7步--测试 现在可以打开另一个MS-DOS窗口和输入javac。如果一切设置正确,则可以看到两行文本,介绍 如何使用javac。如果看到消息“Bad Command or File Name”,则表示还不行。阅读安装说明,看 看错在哪里,一定要保证PATH设置正确和可行。回头重读上述说明,坚持不懈,直到解决问题。 这样,你就可以骄傲地拥有能够编译Java程序的机器了,可以开始编写软件了。 顺便说一句,刚刚解压缩的还有一个demo目录,其中有各种精彩的例子。所有例子都是可以马上 运行的,因此可以找到这个目录,试试几个例子。其中许多例子是有声的,因此一定要打开音箱。要 运行例子,找到名称为example1.html之类的页面,将其装入普通Web浏览器中。

Lesson 17.

缺陷与调试

学习编程时,通常会遇到各种错误和设定,使程序无法编译或得到错误输出结果。这些问题称为 缺陷(bug),删除缺陷称为调试(debug)。任何编程人员都要把将近一半的时间用于调试。 我们经常会生成缺陷。但为了更熟悉可能的情况,下面故意生成几个缺陷。程序中,删除语句末 尾的一个分号并用javac编译程序。编译器会提示一个错误消息,称为编译错误,要全部消除之后才 能执行程序。拼错一个文件名、丢掉一个“{”号或删除一个import语句,可以得到不同的编译错误。 首先见到某种编译错误时,可能感到困惑,但经过这类试验(故意生成的已知缺陷),你可以更熟悉 各种常见错误。 缺陷也称为执行(或运行时)错误,发生在如下情况下,程序编译和运行顺利,但得到错误输出 结果。例如,下列代码生成红色矩形,上面有两条对角线: g.setColor(Color.red); g.fillRect(0, 0, 200, 200); g.setColor(Color.black); g.drawLine(0, 0, 200, 200); g.drawLine(200, 0, 0, 200); 而下列代码只生成红色矩形(盖住两条线): g.setColor(Color.black); g.drawLine(0, 0, 200, 200); g.drawLine(200, 0, 0, 200); g.setColor(Color.red); g.fillRect(0, 0, 200, 200); 这两段代码大致相同,但执行结果完全不同。如果你想看到两条对角色,则第二种情况的代码包 含缺陷。 下面是另一个例子: g.drawLine(0, 0, 200, 200); g.drawRect(0, 0, 200, 200); g.drawLine(200, 0, 0, 200); 这个代码产生黑边框和两条对角线。而下列代码只产生一两条对角线: g.drawLine(0, 0, 200, 200); g.drawRect(0, 0, 200, 200); g.drawLine(0, 200, 0, 200);

如果需要两条对角线,则第二种情况的代码包含缺陷(看看第二段代码,直到发现错在哪里)。 这类缺陷很微妙,可能要很长时间才能发现。 我们会把大量时间用在寻找缺陷。编程人员平均要花一半时间跟踪、寻找和消除缺陷。遇到缺陷 时,不必沮丧,这是编程生活的正常部分。

Lesson 18.
一个变量中,以便后面使用。

变量

所有程序用变量临时保存数据。例如,如果程序在某个时刻要请用户输入数字,则可以把它存在

变量要先在程序中定义(或声明)之后才能使用,要给每个变量指定特定类型。例如,可以声明 一个变量为某个类型,使其可以保存数字,另一个变量为某个类型,使其可以保存人名(由于Java要 求具体定义变量之后再使用,指定变量中要存放的数值类型,因此Java称为强类型语言。有些语言则 没有这些要求。一般来说,生成大程序时,强类型通常可以减少出现的编程错误。 import java.awt.Graphics; import java.awt.Color; public class FirstApplet extends java.applet.Applet { public void paint(Graphics g) { int width = 200; int height = 200; g.drawRect(0, 0, width, height); g.drawLine(0, 0, width, height); g.drawLine(width, 0, 0, height); } } 在这个程序中,我们声明两个变量width与height,声明其类型为int。int变量可以保存整数(如 1、2、3)。我们将两者初始化为200。也可以这样: int width; width = 200; int height; height = 200;

第一种形式只是更快确定类型。 将变量设置为初值称为变量初始化。忘记将变量初始化是常见的编程缺陷。要显示这个缺陷,试 删除上述代码的初始化部分(”=200”部分),重新编译程序,看看发生什么情形。可以发现,编译 器会提出这个问题。顺便说一句,这是个很好的特性,可以避免大量时间浪费。 Java中有两种变量-简单(基本)变量和类。 Int类型是简单类型,这个变量可以保存一个数,仅此而已。声明int,设置其值和使用。另一方 面,类则可以包含多个部分,其方法使其更容易使用。Rectangle类就是个简单的类,下面从其入手。 前面所介绍程序的一个局限是其设定窗口为200×200象素。如果要询问窗口大小,然后根据其大 小确定矩形和对角线大小,怎么办?如果回头看看Graphics类的文档页面(java.awt.Graphics.html -这个文件列出所有绘图函数),则可以看到其中有个函数叫getClipBounds。单击这个函数名可以 看到完整描述。这个函数不接收参数,但返回Rectangle类型的值。返回的矩形包含绘图区宽与高。 如果单击文档页中的Rectangle,则可以进入Rectangle类的文档页(java.awt.Graphics.html)。看 看页面开头的Variable Index段,可以看到这个类包含四个变量x、y、width与height。因此,我们 要用getClipBounds取得剪取区边界矩形,然后从这个矩形取得宽与高,将值存放在上例生成的width 与height变量中如下: import java.awt.Graphics; import java.awt.Color; import java.awt.Rectangle; public class FirstApplet extends java.applet.Applet { public void paint(Graphics g) { int width; int height; Rectangle r; r = g.getClipBounds(); width = r.width - 1; height = r.height - 1;

g.drawRect(0, 0, width, height); g.drawLine(0, 0, width, height); g.drawLine(width, 0, 0, height);

} } 运行这个程序时,可以发现矩形和对角线刚好适合绘图区。此外,改变窗口大小时,矩形和对角 线自动用新尺寸绘制。这个代码引入了五个新概念,见下面介绍。 1. 首先,由于使用Rectangle类,因此程序第三行要导入java.awt.Rectangle。 2. 们在程序中声明了三个变量,其中两个(width与height)为int类型,一个(r)为Rectangle 类型。 3. 我们用getClipBounds函数取得绘图区大小。它不接收参数,因此什么也不传入(“()”), 但其返回一个Rectangle对象。语句"r = g.getClipBounds();"表示把返回值放在变量r中。 4. 变量r为Rectangle类型,实际上包含四个变量x、y、width与height(这些名称见Rectangle 类的文档)。要访问这些变量,使用点号(.)运算符。因此,短语"r.width"表示“在变量r中取得 width值”。放在局部变量中的值称为width。在这个过程中,我们减去!。如果省略减法,看看会发 生什么情形。如果减去与看看会发生什么情形。 5. 最后,绘图函数中使用width与height。 这时一个常见问题是“真的要声明变量width与height吗?”答案是否定的。也可以直接在绘图 函数中输入r.width - 1,但生成变量可以使代码更可读,因此是个好习惯。 Java支持几种简单变量类型,下面是三种最常见的变量类型: ? ? ? int – 整数值 (1, 2, 3...) float – 十进制值 (如3.14159) char – 字符值(a, b, c...)

可以对简单类型进行数学运算。只要了解加(+)、减(-)、乘(*)、除(/)等几种运算。下面 例子显示了程序中如何使用这些运算。假设要计算直径为10英尺的球的体积,则可以用下列代码: float diameter = 10; float radius; float volume; radius = diameter / 2.0; volume = 4.0 / 3.0 * 3.14159 * radius * radius * radius; 第一个计算表示把变量diameter的值除以2.0,结果放在变量radius中。这里的等号(=)可以看到 把右边计算的结果放在左边的变量中。

Lesson 19.

Internet 基础结构

Internet的妙处之一是不真正属于任何人,而是全球大小网络的集合。这些网络用多种不同方式 连接起来,构成所谓Internet的单一实体。事实上,这个名称就是指互联网络。 Internet始于1969年,从四台主机增长到几千万台主机。虽然Internet不真正属于任何人,但仍 然以不同方式得到监管和维护。Internet学会是1992年成立的非盈利组织,监视相关政策与协议的建 立,确定Internet如何使用和交互。 每个连接Internet的计算机都是网络的一部分,即使你的家用计算机也是。例如,你可能用modem 拨一个市话,连接Internet服务提供者(ISP)。上班时,你可能在局域网(LAN)中,但通常还是用 公司连接的ISP连接Internet。连接ISP时,就成为其网络的一部分。然后ISP可以连接大型网络,成 为其网络的一部分。Internet就是网络的网络。 大多数大型通信公司都有自己的专用主干, 连接不同地区。 在每个地区, 公司有一个存在点 (POP) 。 本地用户从POP访问公司的网络,通常使用市话线或专用线。这里的奇怪之处是没有总体控制的网络, 而是几个高速网络通过网络访问点(NAP)相互连接。

Lesson 20.

主干网络

美国国家科学基金会(NSF)于1987年建立了第一个高速主干网,称为NSFNET,是T1线路,把170 个小网连接起来,以1.544 Mb/s(每秒百万位)速度操作。IBM、MCI与Merit公司和NSF一起建立这个 主干网,于次年开发了T3 (45 Mb/s)主干网。 主干网通常是光纤主干线路,主干线路把多个光缆结合起来,提高容量。光缆指定OC,表示光纤 载波,如OC-3、OC-12或OC-48。OC-3线路可以传输155 Mb/s,而OC-48线路可以传输2,488 Mb/s (2.488 Gb/s)。与此相对比,典型56K modem只能传输56,000 b/s,由此可见,现代主干网多么快捷。 如今,许多公司有自己的高容量主干网,通过全世界的各个NAP相互联接。这样,Internet上的 每个人都能和地球人其他人通信,不管他们在哪里,利用哪个公司的服务。整个Internet是巨大的和 不断增大的公司间自由互联协定。

Lesson 21.

Internet 协议:IP 地址与域名系统

Internet 上的每台机器有唯一标识号,称为 IP 地址。IP 表示 Internet 协议,是计算机在 Internet 上通信时使用的语言。协议是从使用者与服务通信时要用的预定语言。使用者可以是 人,但通常是 Web 浏览器之类的计算机程序。 典型 IP 地址如下:

216.27.61.137
为了便于记住IP地址通常表示成上述十进制格式,称为点号十进制数。但是,计算机是以二进制 形式通信的。这个IP地址的二进制形式如下: 11011000.00011011.00111101.10001001 IP地址中的四个数称为八位位组,因为其二进制形式各有八位。如果把所有位相加,则得到32, 因此IP地址是个32位数。由于八位中每一位各有两种状态(1或0),因此总的组合数为28=256。因此, 每个八位位组可以包含0到255的值, 四个八位位组组合起来, 可以得到232或4,294,967,296个不同值。 在这43亿种组合中,有些值只限于作为特定IP地址。例如,IP地址0.0.0.0留作缺省网络,而 255.255.255.255留作广播地址。 八位位组不仅分开数字,而且可以生成IP地址类,根据对方规模分配给某个公司、政府或其他实 体。八位位组分成两个部分:网络与主机。网络部分总是包含第一个八位位组,用于标识计算机所属 的网络。主机(也称为节点)标识网络上的实际计算机。主机部分总是包含最后一个八位位组。IP类 有五个,还有一些特殊地址。 在Internet初期,只是少量计算机通过modem和电话线连接起来,只能在连接时提供要连接的计 算机的IP地址。例如,典型IP地址。例如,典型IP地址可能是216.27.22.162,如果又有几台主机, 这样做是可以的,但随着联机系统不断增加,渐渐会出问题。 要解决这个问题,第一个方案是由网络信息中心维护简单文本文件,将名称映射到IP地址。这个 文本文件很快会变得很大,很难管理。1983年,威斯康星大学建立了域名系统(DNS),能自动将名 称映射到IP地址。

Lesson 22.

统一资源定位器

使 用 Web 或 发 送 电 子 邮 件 消 息 时 , 用 的 是 域 名 。 例 如 , 统 一 资 源 定 位 器 ( URL ) “http://www.Yiren.com”包含域名Yiren.com,下列电子邮件地址也是:example@Yiren.com。每次 使用域名时,要用Internet的DNS服务器将可读域名变成机器可读的IP地址。

顶级域名也称为一级域名,包括.COM、.ORG、.NET、.EDU与.GOV。每个顶级域中有大量二级域。 例如,在一级域COM中,包括: Yiren Yahoo Microsoft 一级域COM的每个名称要唯一。最左边的单词(如www)是主机名,指定域中特定主机的名称(具 有特定IP地址)。给定域中可能有几百万个主机名,只要它们在域中全部唯一。 DNS服务器从程序和其他名称服务器中接受请求,将域名变成IP地址。收到请求时,DNS服务器可 以做四件事: 答复IP地址请求,因为它已经知道所请求域的IP地址。 联系另一个DNS服务器,试找到所请求名称的IP地址,可以进行多次。 可以让它不知道请求域的IP地址,但能提供一个知识更丰富的DNS服务器的IP地址。 可以返回一个错误消息,因为请求的域名无效或不存在。

Lesson 23.

客户机、服务器与端口

Internet服务器实现了Internet,Internet上的所有机器都是服务器或客户机。向其他机器提供 服务的机器称为服务器,而连接这些服务的机器称为客户机。Web服务器、电子邮件服务器、FTP服务 器等满足了全球所有Internet用户的需求。 连接www.Yiren.com页面进行浏览时,你是客户机端的用户,访问Yiren公司的Web服务器。服务 器机器找到请求的页面并发送给你。客户机访问服务器时是有特定意图的,因此客户机将请求定向到 服务器机器上运行的特定软件服务器。例如,如果机器上运行Web浏览器,则与服务器机器上的Web服 务器通信,而不是与电子邮件服务器通信。 服务器使用静态IP地址,不经常改变。另一方面,通过Modem拨号的家用计算机则通常在每次拨 号时由ISP分配一个IP地址。这个IP地址在本次会话中唯一,但下次拨号时可能不同。这样,ISP只要 对支持的每个Modem提供一个IP地址,而不必对每个客户提供一个IP地址。 任何服务器机器使用编号端口提供服务,服务器上提供的每个服务器有一个端口。例如,服务器 机器运行Web服务器和FTP(文件传输协议)服务器时,Web服务器通常在端口80提供,而FTP服务器通 常在端口21提供。客户机连接特定IP地址和特定端口号的服务。

客户机连接特定端口的服务后,其用特定协议访问这个服务。协议通常是文本,只是描述客户机 与服务器如何进行会话。Internet上的每个Web服务器都遵循超文本传输协议(HTTP)。 网络、路由器、NAP、ISP、DNS和强大的服务器使Internet得以实现。所有这些信息在几个毫秒 的时间内就可以在全球发送,真是让人惊奇!这些组件对现代生活非常重要,如果没有它们,就没有 Internet。而如果没有Internet,我们的生活就会黯然失色。

Lesson 24.

背景音乐与对白

用录相机录制原始镜头时,它有声道。补充或替换现有声道有三个目的: 1. 我们看到的许多电视节目录相和电影都在部分或全部动作期间有一背景音乐。 音乐能形成气 氛, 生成某些感觉。 对于本文介绍的业余爱好者制作, 音乐可以使最终产品增加许多专业感。 2. 3. 常用另一个声道处理对白。大多数文献和自然电影利用这个技术。 许多情况下, 录制的声音无法使用或不太适合创作的电影。 例如, 如果动物园中狮子在吼叫, 你捕获这个图像时,可能没有捕获到其声音,因为你离狮子50英尺,是用变值镜头录制的。 这时,应该换上更好的咆哮声。 要处理音乐,有几个选择: 可以创作和录制自己的音乐。例如,我用45美元的键盘录制了一小段音乐,将其耳机插口 连接到计算机输入插口。我用Windows内部的录音程序按48K样本/秒的速度录制。显然,还 可以做得更完善,但可以看到这个工作并不难。 可以买无版税音乐和音效CD 可以将许多不同类型的声音文件(包括WAV、AIF,等等导入Premiere项目中,然后将其放在时间 线的声道#2中。这样,播放电影时,Premiere会自动将电影的原声道与新声道混合,播放出来。 要处理对白,最简单的方法是把对白读进录相机中,然后和正常一样捕获录相。可以把对白声道 与视频磁道分开,使用其声道。只要把原先的对白片断放进时间线上,右单击并选择"Split Video and Audio"。单击视频部分并将其删除。这样就有了对白声道,可以在时间线的正确位置上播放。 特别在对白中,让音频与视频定时非常重要。时间线上有了对白声道之后,可以用刀片工具将其 切片,增加空白或删除片断,帮助定时。 在大型项目中,经常要使用六、七个声道。Premiere可以管理的音频与视频磁道个数没有极限。 为了增加新的声道,只要右单击时间线并选择Track选项,然后选择增加新声道。

Lesson 25.

使用 Shockwave 技术

在Shockwave中增加三维功能使人们可以访问各种新Web格式。其中最明显的应用之一是基于Web 的三维游戏。第一人称冒险类游戏和其他具有完全真实三维世界的游戏在PC和游戏控制台市场上已经 主导了将近十年。新的Shockwave功能使这种游戏可以在Web上玩。 基于Web的三维游戏引起了巨大的关注,但只是这个新技术的一个市场。三维功能也许更适合促 进电子商务。Web商家可以让客户看到产品的三维图形,从而使客户更清楚地了解其产品目录中的产 品。利用三维模型,联机商店更象进店购买,客户可以旋转货物,从不同角度检查。 电子商务站点用三维模型演示产品 客户还可以根据特定需求修改三维模型。一个最有用的应用是买衣服。如果联机购物时输入自己 的尺寸,则三维软件可以生成这个人的身材模型,可以将特定衣服穿到这个三维模型身上。这是实际 试衣室的虚拟版。 这类用户交互对教育站点也大有帮助。发动机的三维模型可以旋转和互动,可以更比二维模型清 晰地演示其工作原理,就象亲手拿头发动机进行检查一样。 这个彩弹枪的三维模型使彩弹和BB枪的工作原理一目了然。 例如,要了解彩弹枪的工作原理,可以用一个三维模型。可以看到这些机械如何配合和发射。 在所有这些应用中,三维的最大好处是更大的用户参与性。可以自己决定要看什么,而不只是浏 览预先设置的电影。这种差别就象看电视与玩视频游戏的差别。

Lesson 26.

基本概念

要使用Adobe Premiere之类软件包,就要了解几个基本概念。但是,了解这些基本概念后,整个 过程就很简单了。熟悉基本知识后,很容易扩展你的指令表,包括各种高级技术。 下面是开始时要了解的最重要概念。 捕获 第一个概念是捕获,要把所有片断从录相机中移到计算机硬盘中。为此有三种方法: 1. 可以把所有镜头捕获到硬盘上的单个文件中。 半小时的视频片断可能要占10GB空间 (注意有 些操作系统和视频编辑软件包将文件长度限制在2GB,而有些将文件长度限制在30分钟)。 2. 可以放进5个。或10个小文件,共10GB,但更容易管理。

3.

可以用软件一个片断一个片断输入连续镜头。Adobe Premiere可以手工完成这个工作。但 DVGate Motion(许多Sony计算机上的标准程序)之类程序自动扫描磁带,寻找每个片断的 开始和结尾,然后将其全部输入,每个片断放进不同文件中,如果能使用这类程序,则方便 得多。

如果只有几分钟的镜头,则第1种方法就可以了。如果有几小时的镜头,则要用到第2和第3种方 法。 AVI与MOV文件 捕获过程在磁盘上生成AVI(PC机)或MOV(Mac机)文件。这些文件按录相机产生的最大分辨率 保存一帧一帧的镜头。因此,这些文件很大。通常,三分钟的镜头要占用1GB左右空间。进行大量视 频编辑时,磁盘空间越大越好。 片断 把所有镜头放进计算机后,要选择想用的部分。例如,假设要在生日电影中包括一个场景,显示 点燃生日蜡烛的情形。可以从三个角度拍摄这个活动,共三分钟连续镜头。但最后片子中,准备对这 个场景分配15秒钟的镜头,分为三个片断: 3秒钟片断显示点燃火柴 5秒钟片断显示点燃蛋糕上一根蜡烛的特写 7秒钟片断显示把全部蜡烛点燃后的蛋糕拿进房间 在所有镜头构成的大文件中,要能够标出这三个片断的开头和结尾,以便你为各个单元移动和在 最后场景中连接起来。 为此可以看看原始镜头,对要用的每个小段标出IN和OUT点,然后把这些小片断拖到时间线上。 时间线 确定片断之后,要有地方将其布成正确顺序和连接起来。这是在时间线中完成的。片断按顺序对 齐,然后就可以顺序播放。 有了捕获、片断和时间线三个概念后,就可以生成电影了。虽然作品不一定很好,但会比看原始 镜头好10倍。下面介绍这些步骤并用其生成一个电影。

Lesson 27.

视频编辑

也许你见过电视广告和杂志文章中提到“个人视频新时代的曙光”。在这个时代,任何人都 可以坐在家用计算机前,制作出工作室质量的活动图形。只要一台数码相机,加上适当的软件和 创作的欲望就够了。利用当今的相机和计算机技术,可以:

? 创作精彩用暑假节目,比“家用电影”好得多 ? 生成奇妙的视频演示作品 ? 创作任何主题与问题的完全文档电影 ? 创作自己的几百万美元的爆炸性电影,如The Blair Witch Project 等等。但如果你坐下来亲自试试,就会发现没那么简单。事实上,对有些高级软件包,几乎 无从下手,因为它们太复杂了。例如,Adobe Premiere是个著名的视频编辑软件包,打开时可以 看到下列初始对话框。 如果你想在计算机上生成自己的高质量视频, 但不知道从何入手或觉得太复杂, 请阅读本文。

Lesson 28.

数据库基础

好,你已经确定有兴趣在Web开发中使用数据库了吧?那么,下一步就要学习数据库如何工作。 数据如何存储 数据库中的数据如何存储,也许要比你想象的简单得多。数据库用一系列表格存储数据。表格用 行和列引用数据的二维表示。例如:

John Paul Bill

Smith McCartney Murray

jsmith@huh.com paul@beatles.com gopher@caddyshack.com

那么,数据库如何使问题简化?首先,每个数据库表格指定一个唯一名称。如果没有唯一名称, 数据库管理系统就会很混乱。 然后,表中每一列给定一个唯一名称。上例中包括first_name, last_name, email. This等等。 doesn't mean each column that you name has to be unique within the entire database. It only has to be unique within the table you have created。另外,注意名称中不用空格。When naming tables and columns, be sure to keep it simple with letters and numbers. Spaces and symbols can be illegal characters that will mess up the whole works, so if you need to clarify a name use the "_" instead of spaces 下面更新表格: 表名:contacts

First_name

Last_named

Email

John Paul Bill
数据如何组织

Smith McCartney Murray

jsmith@huh.com paul@beatles.com gopher@caddyshack.com

下一个要了解的表格知识是主键。主键就是表中保证唯一的列。主键用于表格检索,使其搜索、 排序、链接等更高效。 例子中的主键是什么?问得好。 没有主键。 本例中, 没有要保证唯一的东西。 Obviously there are many people that share the same last name and/or first name that may be added to the database in the future。电子邮件地址最可能唯一,但如果两个人共享一个电子邮件地址呢? 为了避免用数据列作为主键时的不确定性,许多开发人员创建自己的列,包含计算机生成的唯一 编号,是某种ID号。这样,我们就不必担心其唯一性,因为数据库知道同一数字不能用两次。 表名:contacts

Contact_id 1 2 3

First_name John Paul Bill

Last_name Smith McCartney Murray

Email jsmith@huh.com paul@beatles.com gopher@caddyshack.com

要用几个表格?取决于逻辑上如何分解数据。生成的表格、列之类没有个数限制。但要记住,太 大的表效率很低,而太多小表则容易复杂化。最好的方案通常是两者折衷。 下面举一个例子。假设contact表存储HTML Goodies公司订户数据库中的联系信息。现在要存储 每个订户预订的快报类型。可以在contact表中增加一列,存储快报名。这样就可以存储所要的信息, 但会造成对一个人订购的不同快报重复姓名和电子邮件地址信息。这是相当低效的。 何不另用一个表存储快报名?这样,每个快报名称及其描述只要存储一次。 表名:newsletters

Newsletter_id 1 2
相互联系

Name Goodies to Go Design Goodies

Description A newsletter for HTML fans. A newsletter for web & graphic designers.

这很好,我们把人放在一个表中,把快报放在另一个表中。怎么知道谁订什么报? 这是最精彩的部分,关系型数据库正是由此得名的。关系型数据库?你可能没听说。

前面介绍了数据库的一些基本要素。下面要介绍这些基本要素如何相互联系,使存储的信息逻辑 地联系起来,从而得到新的改进的关系型数据库。 用上面的例子,有一个订户表(contact)和一个快报信息表(HTML Goodies)。怎么知道谁订 什么报?我们用另一个表把现有的两个表联系起来。 表名:contact_newsletter_link

Contact_id 1 2 2 3 2 1 2 1

Newsletter_id

这个表在contact表和newsletters表之间用每个表的唯一ID号联系起来。从上面的表可以看出, John Smith订了Goodies to Go, Paul McCartney订了Goodies to Go和Design Goodies,Bill Murray 订了Design Goodies。 前面介绍的主键有什么用?这里ID号用了多次,没有唯一的项目。 是的,这里用的是外键。外键是这样的,它在所在的表中不唯一,但在引用的表中唯一。这里 contact_id在contact表中唯一,但在contact_newsletter_link表中不一定唯一。 这样就介绍了关系型数据库的基础。

Lesson 29.

读取数据

表中有了内容之后,自然下一步就是读取数据。本章介绍SQL中最有用的SELECT语句。 SELECT语句 什么是SELECT语句?很简单,让DBMS从数据库中读取数据。 怎么读取数据?SELECT可以简单,也可以复杂。SELECT语句提供了许多不同选项,可以用无数种 方法指定计算和布置数据。 使用SELECT语句当然要从SELECT命令开始,然后要指定读取哪列数据。For example, using our test table that we created say we want to get someone's email address and first name. You would let the DBMS know what you are looking for by starting your SELECT statement like this: SELECT first_name, email

其告诉DBMS只从表的"first_name"与"email"列取信息。 如果要选择表中所有列呢?是否要列出表中所有列?如果表中列数很多,这不是很麻烦吗? 是的,太麻烦了,没必要指定每个列。如果要从表中取所有列,只要用一个星号(*)如下: SELECT * 星号让DBMSV发送表中每一列。利用星号很常见,但不能滥用。有些开发人员习惯于利用星号, 即使不需要取得大部分信息时也这么干。While this may cut down on the amount of code you have to type in, it can be an incredible waste of system resources if it is abused. 如果要从几个不同表中取东西,怎么办?是否对每个表写一个SELECT语句? 不用,实际上可以在一个SELECT语句中组合几个不同表中的数据,但这个课题要放到后面章节中 介绍。 SELECT语句下一部分是FROM从句。 FROM从句 可以想象,FROM从句告诉DBMS查找什么表。用前几章生成的表,这时SELECT语句如下: SELECT first_name, email FROM contacts FROM从句中能否用多个表呢? 可以。这个问题比较复杂,和选择不同表中的多个列名一样,要放到后面章节中介绍。 现在,你可以停下来了,只要在SELECT语句末尾加上分号,就可以取得"contacts"表中每个名字 和电子邮件地址。 但如果要取名字为Paul的人的数据呢?这时就要用到WHERE从句。 WHERE从句 A WHERE clause allows you to filter out any unwanted data so that the data you do get is exactly what you are looking for。下面看看表中所有名字为Paul的人: SELECT first_name, email FROM contacts WHERE first_name = 'Paul'; WHERE从句让DBMS只选择"first_name"列为"Paul"的数据。 这里只取得一个结果, 因为"contacts" 表中只有一个人的姓名为"Paul"。 如果要用数字筛选数据呢,例如"contact_id"列的数据?可行吗?

当然可行。要搜索"contact_id"为3的人,SELECT语句如下: SELECT first_name, email FROM contacts WHERE contact_id = 3; 注意这时3不用单引号,因为我们按数字列筛选,而不是按文本列筛选。 能否按其他方式筛选数据? 赌赌看,可以用多种运算符比较和筛选数据。但要记住,每个DBMS可能不同,不同DBMS可能用不 同运算符。 下面是DBMS常用的运算符。

运算符

描述

=

比较数据是否相等

<>

比较数据是否不相等

<

比较数据是否小于条件值

<=

比较数据是否小于或等于条件值

>

比较数据是否大于条件值

>=

比较数据是否大于或等于条件值

IS NULL

检查数据,确定列中没有数据。

Lesson 30.

数据库总结

祝贺你,你已经完成了数据库基础教程,本教程介绍了用SQL增加、更新、读取和删除数据的基 本概念。 其余内容

记住,这里只介绍了冰山的一角,还有许多概念和重要工具。学习数据库的下一步是实际生成数 据库。应该在可用的数据库中多花点时间。 If you are looking something simple to start you off I would suggest Microsoft Access. Access will provide you with a straight forward interface to design and create tables. It will also allow you to use some the SQL commands that you have learned here. If you do not own a copy of Access and don't want to spend the money to get one, I would suggest investigating MySQL. MySQL可以下载,个人使用是免费的(但MySQL的商业使用应得到许 可证)。可以到MySQL.com站点下载MySQL。但要注意,不同操作系统中的MySQL有上百个不同版本 (上百可能有点夸张)。要找到适合你的系统和正确实现的版本,可能要节点功夫。如果想进一步学 习SQL,可以找几本书,包括Sams公司出版的《Teach Yourself SQL in 10 Minutes》。 下一步 Once you have decided on a database, create a small project for yourself. Start with something simple like an address book that has your friends' names, addresses, telephone numbers and email addresses. This will provide you with a perfect opportunity to practice your skills. 数据库还有哪些用法? 如果看看我们的信息世界,你可能发现,我们所做的一切几乎都用到数据库,如跟踪支票帐号、 购买、信用卡、个人联系信息、税收,等等。数据库还以不同形式提供信息,如新闻内容、产品信息、 技术信息,等等。几乎可以想象到的任何信息都存放在某种数据库中。 下面举几个可以在Web中使用的例子。首先介绍几个人数据库项目: 朋友名录,可以从Web站点访问 小孩的照片列表,亲威朋友可以下载。 小孩在学校的事件时间表,亲威朋友可以访问。 DVD交换,让朋友发表买来的DVD和取电影。 这只是几个建议,当然你还可以用更多办法开发自己的个人Web站点。 下面看一些商业Web用法: 快报站点,显示数据库中存储的旧文章。 银行站点,用于访问帐户信息 科研站点,向研究人员提供白皮书。 各种联机商店。 技术支持站点,包括技术信息和下载内容。

这只是几个建议,用数据库提供信息。 Web开发中如何使用数据库? 可以用不同技术访问各种DBMS,最常用的有ASP, ASP.NET, Perl, PHP 与JSP。每种方法各 有利弊,应花点时间去了解。如果这些技术都不能得到你,还可以找更多方法。 祝你好运,编程快乐!


相关文档

计算机专业英语复习提纲
计算机英语sectionA课文及对应中文翻译.
计算机英语sectionA课文及对应中文翻译
计算机英语教学改革探讨
《计算机专业英语》电子教本资料
计算机专业英语教学改革的探讨
计算机专业英语教程翻译
清华大学计算机专业英语
【大学课件】计算机专业英语
计算机专业英语专有名词汇总
学霸百科
电脑版 | | 学霸百科