




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第一單元:計算機與計算機科學
課文A:計算機概覽
一、引言
計算機是一種電子設備,它能接收一套指令或一個程序,然后通過對數字數據進行運算
或對其他形式的信息進行處理來執行該程序。
要不是由于計算機的發展,現代的高科技世界是不可能產生的。不同類型和大小的計算
機在整個社會被用于存儲和處理各種數據,從保密政府文件、銀行交易到私人家庭賬目。計
算機通過自動化技術開辟了制造業的新紀元,而且它們也增強了現代通信系統的性能。在幾
乎每一個研究和應用技術領域,從構建宇宙模型到產生明天的氣象報告,計算機都是必要的
工具,并且它們的應用本身就開辟了人們推測的新領域。數據庫服務和計算機網絡使各種各
樣的信息源可供使用。同樣的先進技術也使侵犯個人隱私和商業秘密成為可能。計算機犯罪
已經成為作為現代技術代價組成部分的許多風險之一。
二、歷史
第一臺加法機是法國科學家、數學家和哲學家布萊斯.帕斯卡于1642年設計的,它是數
字計算機的先驅。這個裝置使用了一系列帶有10個齒的輪子,每個齒代表從0到9的一個
數字。
輪子互相連接,從而通過按照正確的齒數向前轉動輪子,就可以將數字彼此相加。17世紀
70
年代,德國朽學家和數學家戈特弗里德.威廉?萊布尼茲對這臺機器進行了改良,設計了一臺
也能做乘法的機器。
法國發明家約瑟夫一瑪麗?雅卡爾,在設計自動織機時,使用了穿孔的薄木板來控制復
雜圖案的編織。在19世紀80年代期間,美國統計學家赫爾曼.何勒里斯,想出了使用類似
雅
卡爾的木板那樣的穿孔卡片來處理數據的主意。通過使用一種將穿孔卡片從電觸點上移過的
系統,他得以為1890年的美國人口普查匯編統計信息。
1、分析機
也是在19世紀,英國數學家和發明家查爾斯.巴比奇,提出了現代數字計算機的原理。
他構想出旨在處理復雜數學題的若干機器,如差分機。許多歷史學家認為,巴比奇及其合伙
人,數學家奧古斯塔.埃達.拜倫,是現代數字計算機的真正先驅。巴比奇的設計之一,分析
機,具有現代計算機的許多特征。它有一個以一疊穿孔卡片的形式存在的輸入流、一個保存
數據的“倉庫”、一個進行算術運算的“工廠”和一個產生永久性紀錄的打印機。巴比奇未
能將這個想法付諸實踐,盡管在那個時代它在技術上很可能是可行的。
2、早期的計算機
模擬計算機是19世紀末開始制造的。早期型號是靠轉動的軸和齒輪來進行計算的。用任
何其他方法都難以計算的方程近似數值,可以用這樣的機器來求得。開爾文勛爵制造了一臺
機械潮汐預報器,這實際上就是一臺專用模擬計算機。第一次和第二次世界大戰期間,機械
模擬計算系統,以及后來的電動模擬計算系統,在潛艇上被用作魚雷航線預測器,在飛機上
被用作轟炸瞄準具的控制器。有人還設計了另一個系統,用于預測密西西比河流域春天的洪
水。
3、電子計算機
第二次世界大戰期間,以倫敦北面的布萊切利公園為工作地點的一組科學家和數學家,
制造了最早的全電子數字計算機之一:'‘巨人"。到1943年12月,這個包含了1500個真空
管
的“巨人”開始運轉了。它被以艾倫?圖靈為首的小組用于破譯德國用恩尼格碼加密的無線
電報,他們的嘗試大部分是成功的。
除此而外,在美國,約翰.阿塔納索夫和克利福德?貝里早在1939年就在艾奧瓦州立學院
制造了一臺原型電子機。這臺原型機和后來的研究工作都是悄悄完成的,而且后來因1945
年
電子數字積分計算機(ENIAC)的研制而顯得相形見細。ENIAC被授予了專利。但是,數
十
年后,在1973年,當該機被揭露吸收了在阿塔納索夫一貝里計算機中首次使用的原理后,
這
項專利被廢除了。
圖1A-1:ENIAC是最早的全電子數字計算機之一。
ENIAC(見圖1A-1)含有18,000個真空管,具有每分鐘幾百次的乘法運算速度,但是,
其程序最初是通過導線傳送到處理器內的,必須由人工更改。根據美籍匈牙利數學家約翰.
馮?諾伊曼的想法,后來制造的機器帶有一個程序存儲器。指令像數據一樣存儲在“存儲器”
中,使計算機在執行過程中擺脫了紙帶閱讀器的速度限制,并使問題在不給計算機重新接線
的情況下得以解決。
20世紀50年代末,晶體管在計算機中的應用,標志著比在真空管機器情況下體積小、速
度快、用途廣的邏輯元件的出現。由于晶體管使用的功率小得多,壽命也長得多,僅這項發
展本身就導致了被稱之為第二代計算機的改良機器的產生。元件變小了,元件的間距也變小
了,而且系統的制造成本也變得低得多。
4、集成電路
20世紀60年代末,集成電路(見圖1A-2)得到采用,從而有可能將許多晶體管制作在一
塊硅襯底上,晶體管之間用覆鍍在適當位置的導線相連接。集成電路導致價格、尺寸和故障
率的進一步降低。20世紀70年代中期,隨著大規模集成電路和后來的超大規模集成電路(微
芯片)的采用,成千上萬個彼此相連的晶體管被蝕刻在?塊硅襯底上,于是微處理器成為現
實。
圖1A-2:集成電路
那么,再回過頭來看看現代計算機處理開關值的能力:20世紀70年代的計算機一般一次
能夠處理8個開關值。也就是說,在每個循環中,它們能處理8個二進制數字或位的數據。
8
個位為一組,稱為一個字節;每個字節包含256個開與關(或0與1)的可能模式。每個模
式
相當于一條指令、-?條指令的一部分或者一個特定的數據類型,如一個數字、一個字符或一
個圖形符號。例如,11010010這個模式可能是二進制數據——在此情況下代表210這個十
進
制數字,或者它可能是一條指令,告訴計算機將存儲在其交換設備中的數據與存儲在存儲芯
片某個位置的數據進行比較。
一次能處理16、32和64位數據的處理器的研制,提高了計算機的速度。一臺計算機能夠
處理的全部可識別模式——操作總清單——稱為其指令集。隨著現代數字計算機的不斷發
展,這兩個因素——能夠同時處理的位數和指令集的大小——在繼續增長。
三、硬件
不論尺寸大小,現代數字計算機在概念上都是類似的。然而,根據成本與性能,它們可
分為兒類:個人計算機或微型計算機,一種成本較低的機器,通常只有桌面大小(盡管“膝
上型計算機”小到能夠放入公文包,而“掌上型計算機”能夠放入口袋);工作站,一?種具
有增強型圖形與通信能力、從而使其對于辦公室工作特別有用的微型計算機;小型計算機,
一般就個人使用而言太昂貴,其性能適合于工商企業、學校或實驗室;以及大型機,一種大
型的昂貴機器,具有滿足大規模工商企業、政府部門、科研機構或者諸如此類機構需要的能
力(其中體積最大、速度最快的稱為巨型計算機)。
一臺數字計算機不是單一的機器。確切地說,它是由5個不同的要素組成的系統:(1)
中央處理器:(2)輸入設備;(3)存儲設備;(4)輸出設備:以及(5)被稱作總線的通信
網絡,它將系統的所有要素連接起來并將系統與外界連接起來。
四、編程
一個程序就是一系列指令,告訴計算機硬件對數據執行什么樣的操作。程序可以內嵌在
硬件本身里,或以軟件的形式獨立存在。在一些專門或“專用”計算機中,操作指令被嵌入
其電路里;常見的例子有計算器、手表、汽車發動機和微波爐中的微型計算機。另一方面,
通用計算機盡管含有一些內置的程序(在只讀存儲器中)或者指令(在處理器芯片中),但
依靠外部程序來執行有用的任務。計算機一旦被編程,就只能做在任何特定時刻控制它的軟
件所允許它做的事情。廣泛使用的軟件包括一系列各種各樣的應用程序——告訴計算機如何
執行各種任務的指令。
五、未來的發展
計算機發展的一個持續不斷的趨勢是微小型化,亦即將越來越多的電路元件壓縮在越來
越小的芯片空間內的努力。研究人員也在設法利用超導性來提高電路的功能速度。超導性是
在超低溫條件下在某些材料中觀察到的電阻減小現象。
計算機發展的另一個趨勢是“第五代”計算機的研制工作,亦即研制可以解決復雜問題
而且其解決方法用“創造性的”這個詞來形容或許最終名副其實的計算機,理想的目標是真
正的人工智能。正在積極探索的一條道路是并行處理計算,亦即利用許多芯片來同時執行數
個不同的任務。一種重要的并行處理方法是模仿神經系統結構的神經網絡。另一個持續不斷
的趨勢是計算機聯網的增加。計算機聯網現在使用由衛星和電纜鏈路構成的世界范圍的數據
通信系統,來將全球的計算機連在?起。此外,大量的研究工作還投入在探索“光”計算機
的可能性上——這種硬件處理的不是電脈沖而是快得多的光脈沖。
第二單元:計算機體系結構
課文A:計算機硬件
一、引言
計算機硬件是計算機運行所需要的設備,由可被物理操縱的部件組成。這些部件的功能
一般分為3個主要類別:輸入、輸出和存儲。這些類別的部件與微處理器相連接,特別是與
計算機的中央處理器相連接。中央處理器系電子線路,它通過稱為總線的線路或電路來提供
計算能力和對計算機進行控制。
另一方面,軟件是計算機用來處理數據的一套指令,如文字處理程序或電子游戲。這些
程序通常被存儲起來,并由計算機硬件調入和調出中央處理器。軟件也控制著硬件如何利用:
例如,如何從存儲設備中檢索信息。輸入與輸出硬件的交互是由基本輸入/輸出系統(BIOS)
軟件控制的。
盡管微處理器在技術上仍被認為是硬件,但其部分功能也與計算機軟件有關系。既然微
處理器同時具有硬件與軟件的特征,它們因此經常被稱作固件。
二、輸入硬件
輸入硬件由給計算機提供信息和指令的外部設備——亦即計算機中央處理器以外的部
件——組成。光筆是帶有光敏端頭的輸入筆,用來在計算機顯示屏上直接寫畫,或者通過按
光筆上的夾子或用光筆接觸屏幕來在屏幕上選擇信息。這種筆含有光傳感器,用于識別筆所
經過的屏幕部分。鼠標是為一只手抓握而設計的指示設備。它在底部有一個檢測裝置(通常
是一個圓球),使用戶能夠通過在一個平面上移動鼠標來控制屏幕上指針或光標的運動。該
裝置滑過平面時,光標隨著在屏幕上移動。要在屏幕上選擇項目或命令,用戶就點擊鼠標上
的按鈕。操縱桿是由一根桿子組成的指示設備,該桿以向多個方向移動來操縱計算機屏幕上
的光標或者其他圖形對象。鍵盤是一個像打字機的設備,它使用戶得以向計算機鍵入文本和
命令。有些鍵盤有特殊功能鍵或集成指示設備,如軌跡球或者可以讓用戶通過手指的移動來
移動屏幕上光標的觸敏區。
光掃描儀利用光感應設備將圖片或文本等形式的圖像轉換成計算機能夠處理的電子信
號。例如,一張照片可以掃入一臺計算機,然后包括在該計算機創建的文本文件中。兩種最
常見的掃描儀類型是平板掃描儀和手持式掃描儀,前者類似一臺辦公室用復印機,后者用手
動的方式從要處理的圖像上掃過。麥克風是將聲音轉換成可被計算機存儲、處理和回放的信
號的設備。語音識別模塊是將話語轉換成計算機能夠識別和處理的信息的設備。
調制解調器代表調制器一解調器,是將計算機與電話線連接、允許信息傳送給或接收自
另一臺計算機的設備。每臺發送或接收信息的計算機都必須與調制解調器相連接。一臺計算
機發送的信息由調制解調器轉換成音頻信號,然后通過電話線傳送到接收端調制解調器,由
其將信號轉換成接收端計算機能夠理解的信息。
三、輸出硬件
輸出硬件由將信息從計算機中央處理器傳給計算機用戶的外部設備構成。視頻顯示器或
屏幕將計算機生成的信息轉換成可視信息。顯示器一般有兩種形式:陰極射線管視頻屏幕和
液晶顯示視頻屏幕。基于陰極射線管的屏幕或監視器看起來就像一臺電視機。從中央處理器
輸出的信息,使用電子束顯示出來,其過程是電子束掃描熒光屏,而熒光屏則發出光并產生
圖像。基于液晶顯示器的屏幕將可視信息顯示在比基于陰極射線管的視頻監視器平且小的屏
幕上。液晶顯示器常常用于膝上型計算機。
打印機將計算機輸出的文本和圖像打印在紙上。點陣打印機使用細小的金屬絲打擊色
帶,從而形成字符。激光打印機使用光束在磁鼓上畫圖像,然后由磁鼓吸起稱為墨粉的微小
黑粒。墨粉熔凝到紙上,形成圖像。噴墨打印機將小墨滴噴射到紙匕形成字符和圖像。
四、存儲硬件
存儲硬件永久性地存儲信息和程序,供計算機檢索。兩種主要的存儲設備是磁盤驅動器
和存儲器。磁盤驅動器有幾種類型:硬盤、軟盤、磁光盤利光盤。硬盤驅動器將信息存儲在
盤中嵌入的磁性顆粒中。硬盤驅動器通常是計算機的固定部分,能存儲大量的信息并對其進
行非常快速的檢索。軟盤驅動器也將信息存儲在磁性顆粒中,但這些顆粒是嵌入可移動的盤
中的,而這些盤既可能是軟的也可能是硬的。軟盤比硬盤存儲的信息少,檢索該信息的速度
也慢得多。磁光盤驅動器將信息存儲在對激光和磁場均敏感的可移動盤上。它們可存儲的信
息通常與硬盤一樣多,但檢索速度稍微慢一點。由反射材料制成的光盤,其表面燒蝕出凹陷
區。光盤驅動器(只讀光盤存儲器,CD-ROM)就是將信息存儲于此。存儲在只讀光盤存儲
器上的信息不能擦除或用新信息蓋寫。它們能夠存儲和硬盤驅動器差不多的信息量,但信息
檢索速度比其慢。
存儲器指存儲信息供中央處理器快速檢索的計算機芯片。隨機存儲器(RAM)用來存儲
操作計算機程序的信息和指令。通常,程序由磁盤驅動器的存儲區調到隨機存儲器中。隨機
存儲器也稱作易失性存儲器,因為當計算機的電源關閉時,計算機芯片中的信息隨著丟失。
只讀存儲器(ROM)包含必須永久性可供計算機操作使用的關鍵信息和軟件,如從開機到
關
機一直指揮計算機運行的操作系統。只讀存儲器叫做非易失性存儲器,因為當計算機的電源
關閉時,存儲芯片中的信息不會丟失。
有些設備有不止一種用途。例如,軟盤也可用作輸入設備,如果它們含有計算機用戶要
使用和處理的信息的話。此外,它們也可用作輸出設備,如果用戶想將計算結果存儲在它們
上面的話。
五、硬件的連接
要想運轉,硬件需要物理連接,使部件之間能夠通信和交互。總線提供了一種常見的互
連系統。它由一組導線或電路組成,在計算機的內部組成部分之間協調和移動信息。計算機
總線由兩條通道組成:一條由中央處理器用來給數據定位,叫做地址總線;另一條用來將該
數據送往那個地址,叫做數據總線。總線可用兩個特征來描述:一次可以處理的信息量一
稱為總線寬度,以及傳送這些數據的速度。
串行連接是一根或一組導線,用于將信息從中央處理器傳送到外部設備,如鼠標、鍵盤、
調制解調器、掃描儀和一些類型的打卬機。這種連接一次只能傳送一段數據,因此比較慢。
使用串行連接的好處在于它能提供遠距離的有效連接。
并行連接使用多組導線來同時傳送數個信息塊。多數掃描儀和打印機使用這種連接方
式。并行連接比串行連接速度快得多,但它僅限于中央處理器和外部設備之間不到3米(10
英尺)的距離。
第三單元:計算機語言與編程
課文A:編程語言
-、引言
在計算機科學中,編程語言是用于編寫可由計算機運行的一系列指令(計算機程序)的
人工語言。與英語等自然語言相類似,編程語言有詞匯、語法和句法。然而,自然語言不適
合為計算機編程,因為它們會引起歧義,也就是說它們的詞匯和語法結構可能被用多種方式
進行解釋。用于計算機編程的語言必須有簡單的邏輯結構,它們的語法、拼寫和標點符號規
則必須精確。
編程語言在復雜性和通用程度上差異很大。一些編程語言是為了處理特定類型的計算問
題或為了用于特定型號的計算機系統而編寫的。例如,FORTRAN和COBOL等編程語言是
為
解決某些普遍的編程問題類型而編寫的——FORTRAN是為了科學領域的應用,而COBOL
是
為了商業領域的應用。盡管這些語言旨在處理特定類型的計算機問題,但它們具有很高的可
移植性,也就是說它們可以用來為多種類型的計算機編程。其他的語言,如機器語言,是為
一種特定型號的計算機系統,甚至是一臺特定的計算機,在某些研究領域使用而編寫的。最
常用的編程語言具有很高的可移植性,可以用于有效地解決不同類型的計算問題。像C、
PASCAL和BASIC這樣的語言就屬于這一范疇。
二、語言類型
編程語言可分為低級語言和高級語言。低級編程語言或機器語言,是編程語言中最基礎
的類型,可以被計算機直接理解。機器語言視計算機制造商與型號不同而有所區別。高級語
言是必須首先翻譯成機器語言計算機才能理解和處理的編程語言。C、C++、PASCAL和
FORTRAN都是高級語言的例子。匯編語言是中級語言,非常接近于機器語言,沒有其他高
級語言所表現出的語言復雜程度,但仍然得翻譯成機器語言。
1、機器語言
在機器語言中,指令被寫成計算機能夠直接理解的1和0(稱作位)序列。一條機器語言
指令一般告訴計算機4停:(1)到計算機主存(隨機存儲器)的什么位置去找一兩個數字
或簡單的數據片;(2)要執行的簡單操作,如將兩個數字相加;(3)在主存的什么位置存
放該簡單操作的結果;(4)到什么位置去找下?條要執行的指令。盡管所有的可執行程序
最終都是以機器語言的形式被計算機讀入的,但它們并非都是用機器語言編寫的。直接用機
器語言編程極端困難,因為指令是0和1的序列。一條典型的機器語言指令可能寫成10010
11001011,意思是把存儲寄存器A的內容加到存儲寄存器B的內容中。
2、高級語言
高級語言是相對復雜的一系列語句,它們使用來自人類語言的詞匯和句法。高級語言比
匯編語言或機器語言類似于正常的人類語言,因此用高級語言來編寫復雜的程序比較容易。
這些編程語言可以更快地開發更大和更復雜的程序。然而,高級語言必須由稱為編譯器的另
外一種程序翻譯成機器語言,計算機才能理解它們。因為這個原因,與用匯編語言編寫的程
序相比較,用高級語言編寫的程序可能運行時間長,占用內存多。
3、匯編語言
計算機程序員通過使用匯編語言,使機器語言程序比較容易編寫。在匯編語言中,每個
語句大致對應于一條機器語言指令。匯編語言的語句是借助易于記憶的命令編寫的。在一個
典型的匯編語言語句中,把存儲寄存器A的內容加到存儲寄存器B的內容中這一命令,可
能寫
成ADDB,A。匯編語言與機器語言具有某些共同的特征。例如,對特定的位進行操控,用
匯
編語言和機器語言都是可行的。當盡量減少程序的運行時間很重要時;程序員就使用匯編語
言,因為從匯編語言到機器語言的翻譯相對簡單。匯編語言也用于計算機的某個部分必須被
直接控制的情況,如監視器上的單個點或者單個字符向打印機的流動。
三、高級語言的分類
高級語言通常分為面向過程語言、函數式語言、面向對象語言或邏輯語言。當今最常見
的高級語言是面向過程語言。在這種語言中,執行某個完整功能的一個或多個相關的語句塊
組成一個程序模塊或過程,而且被給予諸如“過程A”一類名稱。如果在程序的其他地方需
要同樣的操作序列,可以使用一個簡單的語句調回這個過程。實質上,?個過程就是一個小
型程序.一個大型程序可以通過將執行不同任務的過程組合在一起而構成。過程語言使程序
變得比較短,而且比較容易被計算機讀取,但要求程序員將每個過程都設計得足夠通用,能
用于不同的情況。
函數式語言像對待數學函數一樣對待過程,并允許像處理程序中的任何其他數據一樣處
理它們。這就使程序構造在更高、更嚴密的水平上得以實現。函數式語言也允許變量——在
程序運行過程中可以被用戶指定和更改的數據符號——只被賦值一次。這樣,通過減少對語
句執行的確切順序給予關注的必要性,就簡化了編程,因為一個變量沒有必要每次在一個程
序語句中用到,都重新聲明或重新說明。來自函數式語言的許多思想已經成為許多現代過程
語言的關鍵部分。
面向對象語言是函數式語言的發展結果。在面向對象語言中,用來編寫程序的代碼和由
程序處理的數據,組合成叫做對象的單元。對象進一步組合成類,而類則定義對象必須具有
的屬性。類的一個簡單例子就是書這個類。這個類中的對象可能是小說和短篇小說。對象還
有某些與其相關的功能,稱為方法。計算機通過使用一個對象的某種方法來訪問該對象。方
法對對象中的數據執行某種操作,然后將值返回給計算機。對象的類也可進一步組合成層,
而在層中一個類的對象可繼承另一個類的方法。面向對象語言提供的這種結構,使該語言對
于復雜的編程任務非常有用。
邏輯語言將邏輯用作其數學基礎。邏輯程序由事實組和“如果一則”規則構成,“如果一
則”規則具體說明一組事實如何可以從其他事實組中推斷出來,例如:
如果X語句為真,則Y語句為假。
在這樣一個程序的執行過程中,一條輸入語句可以按照邏輯從程序中的其他語句推斷出
來。許多人工智能程序使用這種語言編寫。
四、語言結構與成分
編程語言使用特定類型的語句或指令,來給程序提供功能結構。程序中的一個語句是表
達一個簡單想法的基本句子——它的目的是給計算機一條基本指令。語句定義所允許的數據
類型、數據如何處理以及過程和函數的工作方式。程序員使用語句來操控編程語言的常見成
分,如變量和宏(程序中的小程序段)。
數據聲明語句給稱為變量的那些程序元素以名稱和屬性。變量在程序中可以賦予不同的
值。變量可以具有的屬性稱為類型,它們包括:變量中能保存哪些可能的值;這些值中使用
何種程度的數值精度;以及一個變量可以如何以有組織結構的方式——如以表或數組的形式
——表示一組比較簡單的值。在許多編程語言中,一個關鍵的數據類型是指針。指針變量本
身沒有值,而是含有計算機可以用來查找某個其他變量的信息——也就是說,它們指向另一
個變量。
表達式是語句的一段,用于描述要對一些程序變量執行的一系列計算操作,如X+Y/Z,
其中X、Y和Z為變量,加法和除法是計算操作。賦值語句給一個變量賦予得自某個表達
式的
值,而條件語句則指定要被測試、然后用于選擇接下來應該執行的其他語句的表達式。
過程和函數語句將某些代碼塊定義為以后可在程序中回調的過程或函數。這些語句也定
義程序員可選的變量和參數種類,以及當表達式訪問過程或函數時代碼所返回的值的類型。
許多編程語言也容許叫做宏的小翻譯程序。宏將那些用程序員定義的語言結構編寫的代碼段
翻譯成編程語言可以理解的語句。
五、歷史
編程語言幾乎可以追溯到20世紀40年代數字計算機發明之時。隨著商用計算機的推出,
最早的匯編語言出現于20世紀50年代末。最早的過程語言是在20世紀50年代末到60年
代初
開發的:約翰.巴克斯創造了FORTRAN語言,接著格雷斯.霍珀創造了COBOL語言。第一
種
函數式語言是LISP,由約翰.麥卡錫于20世紀50年代末編寫。所有這3種語言今天仍在廣
泛使
用,但經歷過大量更新。
20世紀60年代末,出現了最早的面向對象語言,如SIMULA語言。邏輯語言在20世紀70
年代中期隨著PROLOG語言的推出而變得廣為人知,PROLOG語言是一種用于編寫人工智
能軟件的語言。在20世紀70年代,過程語言繼續發展,出現了ALGOL.BASIC.PASCAL,
C和Ada等語言。SMALLTALK語言是一種具有高度影響力的面向對象語言,它導致了面
向對
象語言與過程語言在C++和更近期的JAVA語言中的結合。盡管純粹邏輯語言的流行程度已
經下降,但其以關系語言形式用于現代數據庫的變種卻變得非常重要,如結構化查詢語言。
第四單元:軟件開發
課文A:計算機程序
一、引言
計算機程序是指揮計算機執行某種處理功能或功能組合的一套指令。要使指令得到執
行,計算機必須執行程序,也就是說,計算機要讀取程序,然后按準確的順序實施程序中編
碼的步驟,直至程序結束。一個程序可多次執行,而且,取決于用戶提供給計算機的選項和
數據,每次執行可能產生不同的結果。
程序分為兩大類:應用程序和操作系統。應用程序直接為用戶執行某種功能,如處理文
字或玩游戲。操作系統管理計算機以及與之相連的各種資源和設備,如隨機存儲器、硬盤驅
動器、監視器、鍵盤、打印機和調制解調器,以便其他程序可以使用它們。操作系統的例子
包括:DOS、Windows95,OS/2和UNIX。
二、程序開發
軟件設計者使用經常被稱為實用程序或開發程序的專門應用程序來創建新程序。程序員
使用稱為文本編輯程序的另一種程序,來以稱為編程語言的特殊符號編寫新程序。程序員使
用文本編輯程序創建一個文本文件,這個文本文件是一個有序指令表,也稱為程序源文件。
構成程序源文件的單個指令稱為源代碼。在這個時候,一種專門的應用程序將源代碼翻譯成
機器語言或目標代碼——操作系統將認作真程序并能夠執行的一種格式。
將源代碼翻譯成目標代碼的應用程序有3種:編譯程序、解釋程序和匯編程序。這3種應
用程序有不同的操作方式,對不同類型的編程語言進行操作,但是,它們都要達到將編程語
言翻譯成機器語言的相同目的。
編譯程序將使用FORTRAN.C和Pascal等高級編程語言編寫的文本文件一次性從源代
碼翻譯成目標代碼。這不同于BASIC等解釋執行的語言所采取的方式。在解釋執行的語言
中,
程序是隨著每條指令的執行而逐個語句地翻譯成目標代碼的。解釋執行的語言的優點是,它
們可以立即開始執行程序,而不需要等到所有的源代碼都得到編譯。對程序的更改也可以相
當快地進行,無需等到程序重新編譯完。解釋執行的語言的缺點是,它們執行起來慢,因為
每次運行程序,都必須對整個程序一次條指令地翻譯。另一方面,編譯執行的語言只編譯
一次,因此計算機執行起來可比解釋執行的語言快得多。由于這個原因,編譯執行的語言比
解釋執行的語言常用,而且,在專業和科學領域幾乎總是應用編譯執行的語言。
另一種翻譯程序是匯編程序,它用于以匯編語言編寫的程序或程序組成部分。匯編語言
也是一種編程語言,但它遠比其他類型的高級語言類似于機器語言。在匯編語言中,一個語
句通常可以翻譯成機器語言的一條指令。今天,匯編語言很少用來編寫整個程序,而是最常
用于程序員需要直接控制計算機某方面功能的情況下。
程序經常編寫為一組較小的程序片,每片表示整個應用程序的某個方面。每片獨立編譯
之后,一種稱為連接程序的程序將所有翻譯好的程序片組合成一個可執行程序。
程序罕有第一次能夠正確運行的,所以一種稱為調試程序的程序常被用來幫助查找稱為
程序錯誤的問題。調試程序通常在運行的程序中檢測到一個事件,并將程序員指引到該事件
在程序代碼中的起源。
Java等最近出現的編程系統,采取多種方法相結合的方式創建和執行程序。編譯程序取
來Java源程序,并將其翻譯成中間形式。這樣的中間程序隨后通過因特網傳送給計算機,
而
計算機里的解釋程序接著將中間形式作為應用程序來執行。
三、程序元素
多數程序僅由少數幾種步驟構成,這些步驟在整個程序中在不同的上下文和以不同的組
合方式多次重復。最常見的步驟執行某種計算,然后按程序員指定的順序,進入程序的下一
個步驟。
程序經常需要多次重復不長的一系列步驟,例如:在瀏覽游戲得分表并從中找出最高得
分時。這種重復的代碼序列稱為循環。
計算機具有的使其如此有用的能力之一,是它們能夠作出條件判定,并根據正在處理的
數據的值執行不同的指令。if-then-else(如果一則一否則)語句執行這種功能,采用的方法
是測試某個數據片,然后根據結果從兩個指令序列中選擇一個。這些選擇對象中的指令之一
可能是一個got。語句,用以指引計算機從程序的另一個部分選擇下一條指令。例如,一個
程
序可能比較兩個數,并視比較結果而分支到程序的另一個部分:
Ifxisgreaterthany
then
gotoinstruction#10
elsecontinue
程序經常不止一次地使用特定的一系列步驟。這樣的一系列步驟可以組合成一個子例
程,而子例程根據需要可在主程序的不同部分進行調用或訪問。每次調用一個子例程,計算
機都會記住該調用發生時自己在程序中所處的位置,以便在運行完這個子例程后還能夠回到
那里。在每次調用之前,程序可以指定子例程使用不同的數據,從而允許一個通用性很強的
代碼片只編寫一次,但以多種方式使用。
大多數程序使用幾種不同的子例程。其中最常用的是函數、過程、庫、系統例程以及設
備驅動程序。函數是i種短的子例程,用來計算某個值,如角的計算,而該值計算機僅用一
條基本指令無法計算。過程執行的是比較復雜的功能,如給一組名字排序。庫是為多種不同
程序使用而編寫的子例程。系統例程類似于庫程序,但實際上用于操作系統。它們為應用程
序提供某種服務,如打印一行文字。設備驅動程序是一種系統例程,它們加到操作系統中,
以使計算機能夠與掃描儀、調制解調器或打印機等新設備通信。設備驅動程序常常具有可以
作為應用程序直接執行的特征。這使用戶得以直接控制設備。這一點很有用,例如:在彩色
打印機更換墨盒后需要重新調整以達到最佳打印質量的情況下。
四、程序功能
現代計算機通常將程序存儲在計算機可以隨機訪問的某種形式的磁性存儲介質上,如固
定放在計算機內的硬盤或者便攜式軟盤。這些磁盤上稱為目錄的額外信息,指明盤上各種程
序的名稱、它們寫入盤中的時間以及它們在磁盤介質上的起始位置。用戶命令計算機執行一
個特定應用程序時,操作系統就瀏覽這些目錄,找到程序,并將一個副本讀入隨機存儲器。
操作系統然后命令中央處理器開始執行程序開頭的指令。程序開頭的指令為計算機處理信息
作好準備,其方法是在隨機存儲器中找到空閑存儲單元來容納工作數據,從盤中檢索用戶指
出的標準選項和默認值的副本,并在監視器上繪制初始顯示。
應用程序通過調用系統例程來對用戶輸入的任何信息都要求一個副本。操作系統將如此
輸入的任何數據都轉換成標準的內部形式。應用程序然后使用該信息決定下一步干什么,如
執行某項期望的處理功能——像重新格式化一頁文本或從盤上的另一個文件獲取一些額外
信息。兩種情況無論是哪一種,都要調用其他系統例程,以事實上完成結果的顯示或對盤上
文件的訪問。
運行結束或接到退出的提示時,應用程序進行進一步的系統調用,以確保所有需要保存
的數據已寫回磁盤。然后,應用程序向操作系統進行最后一次系統調用,指明它已運行結束。
操作系統接下來釋放隨機存儲器和該應用程序使用的任何設備,并等待用戶的命令,以開始
運行另一個程序。
五、歷史
人們以程序的形式存儲指令序列已經有幾個世紀了。18世紀的音樂盒和19世紀末與20
世紀初的自動鋼琴,就可以播放音樂程序。這些程序以?系列金屬針或紙孔的形式存儲,每
一行(針或孔)表示何時演奏一個音符,而針或孔則表明此時演奏什么音符。19世紀初,
隨
著法國發明家約瑟夫-瑪麗?雅卡爾發明由穿孔卡片控制的織機,對物理設備更精巧的控制
變得常見了。在編織特定圖案的過程中,織機的各個部分得進行機械定位。為了使這個過程
自動化,雅卡爾使用一張紙質卡片代表織機的一個定位,用卡片上的孔來指示應該執行織機
的哪種操作。整條花毯的編織可編碼到一疊這樣的卡片上,同樣的?疊卡片每次使用都會編
出相同的花毯圖案。在開發和使用的程序中,有的由24,000多張卡片構成。
世界上第一臺可編程的機器是由英國數學家和發明家查爾斯.巴比奇設計的,但他從未
完全制造成該機器。這臺叫做分析機的機器,使用和雅卡爾織機類似的穿孔k片,來選擇每
個步驟應該執行的具體算術運算。插入不同的卡片組,就會改變機器執行的運算。這種機器
幾乎能在現代計算機中找到所有的對應物,但它是機械化的,而非電氣化的。分析機的制造
從未完成,因為制造它所需要的技術當時不存在。
供分析機使用的最早卡片組式程序是由詩人拜倫勛爵的女兒、英國數學家奧古斯塔.埃
達?拜倫開發的。由于這個原因,她被公認為世界上第一位程序員。
現代的內部存儲計算機程序概念是由美籍匈牙利數學家約翰?馮?諾伊曼于1945年首先
提出來的。馮.諾伊曼的想法是,使用計算機的存儲器既存儲數據又存儲程序。這樣,程序
可被視為數據,可像數據一樣被其他程序處理。這一想法極大地簡化了在計算機中存儲與執
行程序的任務。
六、未來
由于計算機使用的增加,自20世紀50年代以來,計算機科學領域發展迅猛。作為對用戶
需求和技術進步的反應,計算機程序在這一時期經歷了許多變化。計算領域的新思想,如并
行計算、分布式計算和人工智能,從根本上改變了一度決定程序形式與功能的傳統概念。
致力于并行計算領域研究的計算機科學家們,推出了許多新的程序模型。在并行計算中,
多個中央處理器同時合作處理同一個問題。一個問題的組成部分由不同的處理器同時處理,
這樣就加快了問題的解決速度。由于并行處理計算機的極端復雜性,以及使其盡可能有效地
運行所包含的困難,為這種系統設計程序的科學家和工程師面臨著許多挑戰。
一種稱為分布式計算的并行計算,使用多個互連計算機的中央處理器來解決問題。用來
在分布式計算應用環境下處理信息的計算機,常常通過因特網連接。因特網的應用正在成為
分布式計算的一種特別有用的形式,尤其是在使用Java等編程語言的情況下。在這種應用
中,
用戶登錄到一個站點,并下載一個Java程序到其計算機匕該Java程序運行時,就會與其
所來自的站點上的其他程序通信,也可以與不同計算機或站點上運行的其他程序通信.
人工智能研究已經帶來其他幾種新的編程風格。例如,邏輯程序不是由供計算機盲目執
行的單個指令構成,而是由成套的規則組成:如果x發生,則執行y。一種稱為推理機的特
殊
程序,在向其提出一個新問題時,就使用這些規則來“推理”出一個結論。邏輯程序的用途
包括自動監控復雜系統和證明數學定理。
一種全然不同的計算方法稱為神經網絡,在這種計算中沒有傳統意義上的程序。神經網
絡是一組高度互連的簡單處理單元,旨在模擬大腦。神經網絡不是像傳統計算機那樣通過程
序來指揮信息處理,而是依靠其處理單元的連接方式來處理信息。給神經網絡編程的實現方
法是,給其提供輸入與輸出數據的已知模式,并調整處理單元之間各種互連的相對重要性,
直到完成所期望的模式匹配。神經網絡通常在傳統計算機上模擬,但是,不同于傳統的計算
機程序,神經網絡具有經驗學習的能力。
第五單元:軟件過程
課文A:軟件過程模型
一、引言
一個軟件過程是生產出軟件產品的一系列活動。這些活動可能涉及使用一種像Java或C
這樣的標準編程語言從零開始開發軟件。然而,開發新軟件越來越多地使用的方法是,擴展
和修改現有系統,以及配置和集成現成軟件或系統組件.
一個軟件過程模型是對一個軟件過程的一種抽象表示。每個過程模型都從一個特定角度
表示一個過程,因此都只提供有關那個過程的部分信息。本文介紹幾種非常通用的過程模型
(有時稱為過程范例),并從體系結構的角度描述它們。也就是說,我們看到的是過程的框
架,而非具體活動的細節。
這些類屬模型不是對軟件過程的規定性描述。確切點說,它們是過程的抽象,可用于解
釋軟件開發的不同方法。你可以將其視為可擴展和調整以創建更為具體軟件工程過程的過程
框架。
這里論述的過程模型是瀑布模型、演化開發和基于組件的軟件工程。這3種類屬過程模
型在當前的軟件工程實踐中廣泛使用。它們不是互不相容,而是經常一起使用,尤其是在大
型系統開發的情況下。一個較大型系統內的子系統可使用不同的方法開發。因此,盡管分別
討論這些模型比較方便,但應該明白,實際上它們經常結合使用。
二、瀑布模型
最早公布的軟件開發過程模型源自比較通用的系統工程過程。這種模型如圖5A-1所示。
由于從一個階段到另一-個階段的瀑布狀級聯,該模型稱為瀑布模型或軟件生命周期。該模型
的主要階段映射基本的開發活動:
1、需求分析與定義。系統的服務、約束和目標要經過與系統用戶的磋商加以確定。然
后,它們得到詳細定義并作為系統規格說明。
2、系統與軟件設計。系統設計過程將需求劃分成需硬件或軟件系統實現的部分。該過
程確立一個總的系統體系結構。軟件設計涉及到確定和描述基本的軟件系統抽象及
其相互關系。
3、實現與單元測試。在這個階段,軟件設計被實現為一組程序或程序單元。單元測試
涉及到驗證每個單元是否符合其規格說明。
4、集成與系統測試。單個的程序單元或程序進行集成并作為一個完整系統進行測試,
以確保軟件需求已得到滿足。測試之后,軟件系統交付客戶。
5、運行與維護。通常(但并非必定),這是軟件生命周期最長的階段。系統經過安裝
投入實際使用。維護涉及到糾正在軟件生命周期前面階段沒有發現的錯誤,改進系
統單元的實現,并隨著新需求的發現增強系統的服務。
原則上,每個階段的結果都要形成一份或多份經過批準的文件。前一個階段未結束,下
一個階段不應開始。實際上,這些階段重疊并互相饋送信息。在設計期間,需求方面存在的
問題得到識別;在編碼期間,設計問題被發現,等等。軟件過程并#一個簡單的線性模型,
而是涉及到一系列迭代的開發活動。
由于編制和批準文件的成本,迭代需要大筆開銷,而且需要做大量重復工作。因此,經
過少數迭代之后,通常應凍結開發的某些部分,如規格說明,并繼續進行后面的開發階段。
存在的問題留待以后解決,置之不顧,或者通過編程繞過去。這樣倉促凍結需求,可能意味
圖5A-1:軟件生命周期
運行與
維護
集成與
系統測試
實現與
單元測試
系統與
軟件設計
需求定義
著系統將難以滿足用戶的要求.由于使用實現技巧規避了設計問題,這也可能導致不良的系
統結構。
在最后的生命周期階段(運行與維護),軟件投入使用。最初軟件需求中存在的錯誤與
疏漏被發現,程序與設計錯誤浮現,而且新的功能需要得到確定。因此,為保持有用性,系
統必須演變。進行有關更改(軟件維護)可能涉及到重復以前的過程階段。
瀑布模型的優點在于每個階段都編制文件,而且它與其他的工程過程模型相符合。其主
要問題在于將項目僵硬地劃分成不同的階段。在過程的一個早期階段,必須定下決心,從而
使得應對客戶需求變化很困難。
因此,只有在需求得到很好理解、在系統開發期間不可能發生根本性變化的情況下,才
應使用瀑布模型。然而,瀑布模型體現了在其他工程項目中所使用的過程模型類型。所以,
基于這種方法的軟件過程仍然用于軟件開發,特別是當有關軟件項目是一個較大系統工程項
目的一部分時。
三、演化開發
演化開發基于這樣的思想:開發一個初始的實現,讓其接受用戶評論,并讓其經過多個
版本的改進,一直到開發出能夠滿足需要的系統(圖5A-2)。規格說明、開發及驗證活動不
是分開進行,而是交叉進行,各項活動之間有快速的信息反饋。
演化開發有兩個基本類型:
1、探索式開發。在這種類型中,過程的目標是與客戶協作探索其需求,并交付一個最
終的系統。開發從業已理解的系統部分開始。隨著增添客戶提出的新特征,系統不
中間
版本
并行活動
圖5A-2:演化開發
描述
最終
版本
初始
版本
開發
驗證
規格說明
斷演變。
2、拋棄式原型開發。在這種類型中,演化開發過程的目標是理解客戶的需求,從而為
系統開發比較好的需求定義。原型集中試驗沒有很好理解的客戶需求。
在生產滿足客戶眼下需要的系統時,軟件開發的演化方法常常比瀑布方法有效。基于演
化方法的軟件過程的優點是,規格說明可以漸進地開發。隨著用戶增進對其問題的理解,這
種理解可以反映在軟件系統中。然而,從工程和管理的角度來看,演化方法存在兩個問題:
1、過程缺乏可視性。管理員需要定期交付的產品來衡量進度。在快速開發系統的情況
下,編制反映每個系統版本的文件不合算。
2、系統常常缺乏良好的結構。不斷的更改往往會破壞軟件的結構。吸收軟件更改變得
越來越困難,越來越成本高昂。
對于中小型系統(上至50萬行代碼),演化方法或許是最佳的開發方法。對于不同小組
開發系統不同部分的大型、復雜、長壽命系統,演化開發存在的問題尤為嚴重。使用這種方
法難以建立一個穩定的系統體系結構,這使得集成各小組的貢獻變得很難。
對于大型系統,建議使用?種混合過程,將瀑布模型和演化開發模型的最佳特征結合起
來。這可能涉及到使用演化方法開發一個拋棄式原型,以解決系統規格說明中存在的不確定
性。然后,可使用一種結構化程度比較高的方法重新實現系統。得到很好理解的系統部分可
使用基于瀑布模型的過程進行規格說明和開發。事先難以進行規格說明的其他系統部分,如
用戶界面,無例外地應使用探索式編程方法來開發。
四、基于組件的軟件工程
大多數軟件項目都存在某種程度的軟件復用。通常,這是非正式發生的。參加項目的人
知道有現成的設計或編碼類似于他們所需的設計或編碼。他們尋找這些設計或編碼,根據需
要對其進行修改,并將其吸收進他們的系統。對于使用演化方法進行快速系統開發,復用常
常是必要的。
這種非正式復用的發生是不考慮所使用的開發過程的。然而,在過去幾年中,出現了一
種軟件開發方法,這種方法使用得越來越多,它依靠復用,被稱為基于組件的軟件工程。
這種面向復用的方法依靠大量的可復用軟件組件,以及用于這些組件的某種集成框架。
有時,這些組件本身就是可提供文本格式化或數值計算等特定功能的系統(商用現成系統)。
基于組件的軟件工程的類屬過程模型如圖5A-3所示。
就最初的需求規格說明階段和驗證階段而言,面向復用過程與其他過程相類似,但它的
中間階段與其他過程不同。這些階段是:
1、組件分析。在有需求規格說明的情況下,搜索實現該規格的組件。通常,不存在完
全相符的組件。可能被使用的組件只在某種程度上提供所要求的功能。
2、需求修改。在這個階段,使用已經發現的組件的相關信息分析需求,然后修改需求
以反映可用的組件。在無法進行修改的情況下,可能重新進入組件分析活動,以搜
索可供選擇的解決方案。
3、帶復用的系統設計。在這個階段,設計系統框架或復用現有的框架。設計員考慮到
復用的組件,并組織安排框架使其適應復用的要求。如果得不到可復用的組件,可
能得設計一些新軟件。
4、開發與集成。無法外部獲得的軟件要進行開發,組件和商用現成系統要集成以創建
新的系統。系統集成在這種模型中可能是開發過程的一部分,而非一項分開的活動。
基于組件的軟件工程具有減少需要開發的軟件量并因此降低成本與風險的明顯優點。它
通常也可更快地交付軟件。然而,需求方面的妥協不可避免,這可能導致系統不能滿足用戶
的真正需要。此外,可復用組件的新版本不受其使用機構的控制,因此喪失了對系統演變的
某些控制。
圖5A-3:基于組件的軟件工程
需求
規格說明
組件
分析
需求
修改
帶復用的
系統設計
系統
驗證
開發與
集成
第六單元:數據庫
課文A:數據庫概覽
一、引言
數據存儲傳統上是使用單獨的沒有聯系的文件,這些文件有時稱為平面文件。在過去,
一個機構中的每個應用程序都使用自己的文件。例如,在一個大學中,每個部門都可能有其
自己的文件集:檔案辦公室保存著關于學生信息和學生成績的文件;經濟資助辦公室保存著
其自己的關于需要經濟資助以繼續學業的學生的文件;調度辦公室保存著教授的姓名和他們
所教的課程;工薪發放部門保存著其自己的關于全體教職員工(包括教授)的文件,等等。
然而,所有這些平面文件今天都可結合成一個實體一供整個大學使用的數據庫。
雖然難以給出一個普遍接受的數據庫定義,但我們使用下面常見的定義:一個數據庫是
被一個機構內的應用程序所使用的具有邏輯相干性的相關數據的集合。
二、數據庫管理系統
數據庫管理系統定義、創建和維護數據庫。數據庫管理系統也允許對數據庫中的數據進
行受控的訪問。一個數據庫管理系統由5個組成部分構成:硬件、軟件、數據、用戶和規程。
1、硬件
硬件是指允許訪問數據的計算機物理系統。例如,終端、硬盤、主機和工作站被認為是
數據庫管理系統的硬件組成部分。
2、軟件
軟件是指允許用戶訪問、維護和更新數據的實際程序。另外,軟件還控制著哪個用戶可
以對數據庫,11的哪部分數據進行訪問。
3、數據
數據庫中的數據存儲在物理存儲設備上。在一個數據庫中,數據是獨立于對其進行訪問
的軟件的一個實體。這種獨立使一個機構可以在不必更改物理數據及其存儲方式的情況下更
改軟件。如果一個機構決定使用一個數據庫管理系統,那么該機構所需要的所有信息都應作
為一個實體保存在一起,可由數據庫管理系統中的軟件訪問。
4、用戶
在數據庫管理系統中,用戶這個術語有著廣泛的定義。我們可以將用戶分為兩類:最終
用戶和應用程序。
最終用戶是指可直接訪問數據庫以獲取信息的人。最終用戶又分為兩類:數據庫管理員
和普通用戶。數據庫管理員擁有最高程度的特權,可以控制其他用戶及其對數據庫管理系統
的訪問,可以將其某些特權授予其他人并保留隨時收回這些特權的能力。另一方面,普通用
戶只能使用數據庫的一部分,只能進行有限的訪問。
數據庫中數據的其他用戶就是應用程序。應用程序需要訪問和處理數據。例如,工薪發
放應用程序需要在月底訪問數據庫中的部分數據,來開支付工薪的支票。
5、規程
數據庫管理系統的最后一個組成部分就是應該明確定義并為數據庫用戶所遵循的一套
規程或規則。
三、數據庫體系結構
美國國家標準協會標準計劃與需求委員會(ANSI/SPARC)為數據庫管理系統確立了一
個包含3個層次的體系結構:內層、概念層和外層(圖6A-1)。
1、內層
內層決定數據在存儲設備上的實際存儲位置。該層涉及低級訪問方法,以及字節如何傳
向和傳自存儲設備。換句話說,內層直接與硬件交互。
2、概念層
概念層定義數據的邏輯視圖。數據模型在該層定義,數據庫管理系統的主要功能——如
查詢——也在該層。數據庫管理系統把數據的內部視圖轉化為用戶需要看到的外部視圖。概
念層是中介層,它使得用戶不必與內層打交道。
3、外層
外層直接與用戶(最終用戶或應用程序)交互。它將來自概念層的數據轉化為用戶所熟
悉的格式和視圖。
四、數據庫模型
數據庫模型定義數據的邏輯設計。它也描述數據的不同部分之間的關系。在數據庫設計
史上,使用過3種數據庫模型:層次模型、網絡模型和關系模型。
1、層次數據庫模型
在層次模型中,數據被組織成一棵倒置的樹。每個實體只有一個父,但可有數個子。在
分層結構的頂部,有一個實體,稱為根。圖6A-2給出了一個層次模型例子的邏輯視圖。層
次
模型現在已經過時。
2、網絡數據庫模型
在網絡模型中,實體以圖的形式來組織,圖中的有些實體可通過多條路徑訪問(圖6A-3)。
網絡模型沒有分層結構。這種模型現在也已經過時;
3、關系數據庫模型
在關系模型中,數據被組織成稱為關系的二維表。關系模型沒有分層或網絡結構強加于
數據。然而,表或關系是相互關聯的(圖6A-4)。關系數據庫管理系統組織數據,使其外部
視圖呈現為關系或表的集合。這并不意味著數據以表的形式存儲:數據的物理存儲與數據的
邏輯組織方式毫無關系。圖6A-5給出了一個關系的例子。關系數據庫管理系統中的關系具
有
以下特征:
?名稱。關系數據庫中的每個關系都應具有一個名稱,而這個名稱在所有關系中是獨一
無二的。
?屬性。關系中的每一列都稱為一個屬性。在圖6A-5的表中,屬性是列的標題。每個
屬性賦予存儲在其下面的數據以意義。表中的每?列都必須具有一個在關系的范圍內
獨一無二的名稱。一個關系的屬性總數稱為該關系的度。例如,在圖6A-5中,關系
的度為3。注意屬性名并不存儲在數據庫中:概念層使用屬性給每一列賦予一定的意
義。
?元組。關系中的每一行稱為一個元組。元組定義一組屬性值。一個關系中的總行數稱
為該關系的基數。注意一個關系的基數隨著元組的增加或刪除而改變。這使數據庫具
有了動態性。
關系模型是今天使用的常見模型之一。源自關系模型的另外兩種常見模型是分布式模型
和面向對象模型。
4、分布式數據庫模型
分布式數據庫模型并非一種新模型,而是基于關系模型的。但是,數據存儲在通過因特
網或專用廣域網通信的數臺計算機匕每分計算機(或站點)保持數據庫的一部分或整個數
據庫。換句話說,數據或者是分段存儲的——每個站點存儲一段,或者被每個站點復制一份。
在分段型分布式數據庫中,數據是本地化的,本地使用的數據存儲在相應的站點上。然
而,這并不意味著一個站點不能訪問存儲在另一個站點上的數據,但訪問大多是本地性的,
偶爾是全局性的。雖然每個站點對其本地數據具有完全的控制,但也存在通過因特網或廣域
網的全局控制。
例如,一家制藥公司可能在許多國家擁有多個站點。每個站點有一個數據庫,存儲著自
己雇員的信息。但是,中心人事部門可以控制所有的數據庫。
在復制型分布式數據庫中,每個站點都有其他站點的一個完全副本。對一個站點所存儲
的數據進行的任何修改,都要在其他每個站點上精確地重復進行。擁有這種數據庫是為了安
全。如果一個站點上的系統發生故障,該站點的用戶可以訪問另一個站點上的數據。
5、面向對象數據庫模型
關系數據庫具有一個特定的數據視圖,該視圖基于數據庫元組與屬性的性質。關系數據
庫中最小的數據單位是??個元組與一個屬性的交集。然而,有些應用程序需要將數據視為其
他形式,如看作一種結構,像由字段構成的記錄。
面向對象數據庫試圖保留關系模型的優點,同時允許應用程序訪問結構化數據。在面向
對象數據庫中,對象及其之間的關系得到定義。此外,每個對象可以具有可表示為字段的屬
性。
例如,在一個機構中,可以為雇員、部門和客戶定義對象類型。雇員類可以定義一個雇
員對象的屬性(名、姓、社會保險號碼、薪水等等),以及可以如何訪問它們。部門對象可
以定義部門的屬性,以及可以如何訪問它們。此外,數據庫還可以在一個雇員對象與一個部
門對象之間創建一種關系,以表示該雇員在該部門工作。
五、數據庫設計
任何數據庫的設計都是一項冗長、復雜的任務,只能通過一個逐步的過程來完成。第一
步通常涉及對數據庫潛在用戶的大量訪談,以收集需要存儲的信息和每個部門的訪問需求。
第二步是建立一個實體關系模型,該模型定義必須為之保存一些信息的實體、這些實體的屬
性以及這些實體之間的關系。
設計的下一步基于所要使用的數據庫的類型。在關系數據庫中,下一步是建立基于實體
關系模型的關系,并規范化這些關系。規范化是一個過程,通過該過程一組特定的關系轉化
成一組具有更堅固結構的新關系。為了達到以下目的,需要規范化:允許數據庫中的任何關
系得到表示,允許像SQL(結構化查詢語言)這樣的語言使用由原子操作組成的功能強大
的
檢索操作,消除插入、刪除和更新操作中的異常,以及減少添加新的數據類型時重構數據庫
的必要性。
第七單元:計算機通信
課文A:電信與計算機
電信使世界各地的人們得以互相聯系,即刻獲取信息,并從邊遠地區實施通信。電信通
常涉及一個信息發送者和一個或多個接收者,他們通過電話系統等把信息從一地發送到另一
地的技術相聯系。電信設備將不同類型的信息,如聲音和圖像,轉換成電子信號。然后,這
些信號就可以通過電話線或無線電波等媒介進行發送。信號到達目的地后,接收端的設備將
電子信號轉換回可以理解的信息,如電話中的聲音、電視上的活動圖像或計算機屏幕上的文
字和圖片。電信使人們能夠在城鎮不同地方、國家之間以及向外層空間和從外層空間發送和
接收個人信息。電信也為新聞、數據、信息和娛樂提供了關鍵的媒介。
電信信息可通過各種方式和設備發送。信息可由一個發送者發送給一個接收者(點對
點),或者由一個發送者發送給多個接收者(點對多點)。個人通信,如兩個人之間的電話對
話或傳真信息,通常涉及點對點的傳輸。通常稱為廣播的點對多點電信傳輸,為商業無線電
和電視節目播送提供了基礎。
電信以信息轉換為電子信號為開端。然后,這些信號通過媒介發送到接收機,并在那里
解碼,恢復為接收信息的人能夠理解的形式。有各種方法可以生成并解譯信號,也有許多不
同方法可以傳輸信號。
電報機與電話機等設備,通過生成調制電脈沖或以系統化方式變化的脈沖,來傳遞信息。
接下來,這些脈沖通過導線、無線電波或其他媒介發送給接收機,并由其進行解調。電報機
是最早的傳遞電信信息的方法,它通過將電報電鍵與金屬導體之間的接觸(使電流得以流動
的兩個導體之間的連接)轉換成電脈沖而進行工作。這些脈沖沿著導線發送到接收機,而接
收機則將這些脈沖轉換成長與短的聲音脈沖串,或者在簡單的打印設備上打卬出來的點與
劃。特定的點與劃序列代表字母表中的字母。在早期的電報中,這些序列由電報機操作員進
行解譯。這樣,電報機操作員就可以發送和接收可拼成詞語的字母。后來的電報機能臼動解
譯字母和數字。電報機在很大程度上已被其他的電信形式所取代,如傳真機和電子郵件,但
在世界有些地方,電報機仍然用來發送信息。
電報機、電話機、無線電和電視都是通過修改電子信號,使其模擬或再現原來的信息,
來進行工作的。這種傳輸稱為模擬傳輸。然而,計算機和其他類型的電子設備是傳輸數字信
號的。數字技術將信息轉換成電子形式。其方法首先是多次測量信息的不同特性,如語音的
音高和音量。然后,這些測量值被編譯成多個系列的二進制數或1與0。最后,數字技術生
成
并發送與這些系列的1和。相對應的電脈沖。與模擬信號相比較,數字信息可以更快、更清
晰
地傳輸,因為電脈沖僅需與兩個數字對應,而不是構成原信息的所有特性,如人的說話聲的
音高和音量。數字信息可以通過導線、電纜或無線電波傳輸,但必須由數字接收機進行解譯。
新型數字電話和電視正在開發中,以提高電信的效率。
大多數個人計算機通過使用普通電話網,來進行彼此間的通信以及與因特網等大型網絡
的通信。因為電話網是通過將語音信號轉換成電子信號來工作的,計算機必須首先將其數字
數據轉換成語音信號。計算機使用稱為調制解調器的設備來完成這項工作。調制解調器是調
制器/解調器的縮略。調制解調器將計算機輸出的1和。數字流轉換成模擬信號,而模擬信
號
可隨后通過電話網傳輸,就像通話者的聲音那樣。接收端計算機的調制解調器將模擬語音信
號解調還原為計算機能理解的數字形式。
電信系統使用多種不同的傳輸媒介傳送信息,包括銅線、光纜、通信衛星和微波無線電。
劃分電信媒介的一種方法,是看媒介是否使用導線。基于導線(或有線)的電信提供了大多
數電話與電話網之間的最初鏈路,是一種可靠的信息傳輸方式。沒有導線的電信,通常稱為
無線通信,使用無繩電話、蜂窩式無線電話、步話機、民用波段無線電臺、尋呼機和衛星等
技術。無線通信提高了機動性和靈活性。
個人、企業和政府使用多種不同的電信系統。有些系統,如電話系統,使用由電纜、導
線和交換臺組成的網絡,來進行點對點的通信。另外一些系統,如無線電臺與電視臺,通過
空間播出信號,任何擁有接收設備的人都可以接收。有些系統利用數種媒介完成傳輸。例如,
一個電話從打電話的人傳送到接電話的人,其間可能要通過銅線、光纜和無線電波進行傳輸。
隨著電信技術的發展,所有的電信系統都在不斷地演變。
計算機遠程通信具有發送和接收音頻信號、視頻信號、文本、軟件和多媒體的能力,是
電信市場發展最快的部分之一。計算機遠程通信利用現有的電話連接來傳輸數字數據。這種
傳輸常常通過因特網進行,而因特網是一個由個人、企業、政府和教育機構所使用的計算機
和信息源構成的分散型網絡。有些計算機使用綜合業務數字網(ISDN)直接連接到電話網
的
數字部分,但這需要安裝專門設備和進行電話線調整。為了大幅度提高調制解調器的速度,
目前正在開發一種供常規電話線使用的改進型調制解調器系統,稱為數字用戶線路(DSL)。
電子郵件是因特網吸引人的一個關鍵點,也是計算機遠程通信的種常見形式。電子郵
件是基于文本的信息傳輸系統,它能將鍵入的信息和多媒體信息等發送給個人計算機用戶。
(一幢建筑或一家公司內的)本地電子郵件通常經由基于導線的內部網傳送給收件人。必須
橫穿城鎮或國家才能到達最終目的地的電子郵件,通常通過電話網進行傳輸。企業經常使用
的其他計算機遠程通信技術包括自動銀行終端及設備,用來處理將費用直接從顧客銀行帳戶
上扣除的信用卡業務。
隨著越來越復雜的計算機信息以快速提高的速度通過電話線發送,個人計算機拓展了電
話系統的作用范圍。這種時速度的需要促進了數字傳輸技術的發展。光纖技術的革新有望跟
上個人計算機在遠程通信方面不斷增長的使用。下一代蜂窩電話、尋呼機和電視機也將受益
于數字遠程通信的速度和清晰度。
電信和信息技術正在融合。這意味著,在我們只將其與一種功能聯系起來的設備中,有
不少可能演變為多用途設備。這種融合已經開始在各種領域發生。有些電話機和尋呼機不但
能存儲電話號碼,而且還能存儲呼叫者的姓名和個人信息。現在正在研制帶有鍵盤和小屏幕
的先進電話機,可用于訪問因特網和接發電子郵件。個人計算機現在可以訪問信息和視頻娛
樂節目,實際上正在成為電視機和計算機終端的組合體。我們當前將其與廣播和電纜傳輸的
視頻節目聯系在一起的電視機,可以通過附加的設備訪問因特網。未來的改進和技術革新可
能使設備之間的區別進一步模糊化。
電信技術的融合也將在可獲得的內容以及內容提供者的構成方面引起改變。電視機和個
人計算機都將不斷地吸納新的多媒體、交互和數字化特征。例如,?個娛樂節目可能會有屏
幕指針,鏈接到含有演員更多信息的萬維網網頁上。從近期來看,在全數字化電信時代到來
之前,調制解調器等設備在為舊的模擬世界與即將到來的數字世界提供基本鏈接方面,仍然
必不可少。
第八單元:計算機網絡
課文A:網絡基本原理
在不同計算機之間共享信息和資源的需要,導致了相互連接的計算機系統的產生。這種
相互連接的計算機系統被稱為網絡。在網絡中,計算機連接在一起,從而數據可以從一臺計
算機傳輸到另一臺計算機。在網絡中,計算機用戶可以交換信息,并共享分散在整個網絡系
統的資源,如打印能力、軟件包以及數據存儲設備。支持這類應用所需的基本軟件,已經從
簡單的實用軟件包發展成一個不斷擴展的網絡軟件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 青年創業支持政策的效果與反思試題及答案
- 將數據存儲到MySQL的最佳實踐試題及答案
- 公路工程合作機制試題及答案
- 行政組織理論的行為科學視角試題及答案
- 網絡安全策略建立的流程考點題目及答案
- 數據庫程序設計之試題及答案
- 行政組織的理論與實踐結合探討試題及答案
- 行政組織理論考試的復習要點與試題答案
- 行政組織理論的探索之旅試題及答案
- 商業零售業的數字化趨勢與領導力的重塑
- 地方低空經濟平臺建設指南白皮書
- GB/T 14600-2025電子氣體一氧化二氮
- 心血管-腎臟-代謝綜合征患者的綜合管理中國專家共識2025解讀
- 網絡管理員考試實操訓練試題及答案
- 婚慶合作入股協議書
- 學院“十五五”大學文化建設規劃
- 2025年陜西省西安市西咸新區中考二模語文試題(原卷版+解析版)
- 財務人員銷售技巧培訓課件
- GB/T 45545-2025廚房家具配合尺寸
- 安全生產管理和培訓制度
- 2025山東濟南先行投資集團有限責任公司及權屬公司社會招聘169人筆試參考題庫附帶答案詳解
評論
0/150
提交評論