



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《實(shí)用計(jì)算機(jī)英語》參考譯文Chapter1Section!個(gè)人計(jì)算機(jī)硬件一臺(tái)個(gè)人計(jì)算機(jī)是由多個(gè)物理部件構(gòu)成的計(jì)算機(jī)硬件組成的,安裝好一組軟件后,就可以執(zhí)行計(jì)算機(jī)的操作了。計(jì)算機(jī)硬件可以分成四大類:處理單元、存儲(chǔ)設(shè)備、輸入設(shè)備、輸出設(shè)備。處理器處理器是計(jì)算機(jī)真正計(jì)算的部分,有時(shí)稱它為MPU(即主處理器)或CPU(即中央處理單元或中央處理器單元),處理器一般包括算術(shù)/邏輯運(yùn)算單元(ALU)、控制單元(包括處理器標(biāo)志、標(biāo)志寄存器、狀態(tài)寄存器)、內(nèi)部總線、特定功能單元(最常見的特殊功能單元是用于浮點(diǎn)算術(shù)的浮點(diǎn)單元)。ー些計(jì)算機(jī)的處理器不止ー個(gè),即多處理器。混合處理器由兩個(gè)或三個(gè)處理器單元組合而成。算術(shù)/邏輯單元(ALU)執(zhí)行整數(shù)算術(shù)運(yùn)算和邏輯運(yùn)算。也能執(zhí)行移位運(yùn)算和其他指定操作。通常,浮點(diǎn)運(yùn)算由專用的浮點(diǎn)協(xié)處理器來實(shí)現(xiàn)。控制單元控制管理計(jì)算機(jī)??刂茊卧≈噶畈⑶医庾g機(jī)器指令??刂茊卧砸部梢钥刂埔恍┩獠吭O(shè)備。存儲(chǔ)設(shè)備內(nèi)存對(duì)于計(jì)算機(jī)就像計(jì)算機(jī)對(duì)于我們那樣重要,內(nèi)存芯片存儲(chǔ)所有計(jì)算機(jī)完成任務(wù)所需的信息,一旦任務(wù)被執(zhí)行完畢,內(nèi)存立即被新數(shù)據(jù)覆蓋。認(rèn)識(shí)到只有當(dāng)計(jì)算機(jī)一直處于打開狀態(tài),數(shù)據(jù)オ被存儲(chǔ)在內(nèi)存里是很重要,也就是說當(dāng)你正在寫一封信,計(jì)算機(jī)電源被關(guān)閉了,那么計(jì)算機(jī)中就沒有那封信的“記憶”了。(要想永久性保存的話,就必須把它存儲(chǔ)到硬盤或軟盤),內(nèi)存芯片價(jià)格便宜并且容易安裝,要想工作起來得心應(yīng)手,就安裝大容量的內(nèi)存吧。輸入設(shè)備通常把計(jì)算機(jī)的外部硬件分為兩組,第一組負(fù)責(zé)將數(shù)據(jù)或命令從用戶傳送到計(jì)算機(jī),也叫輸入設(shè)備。最常見的輸入設(shè)備有鼠標(biāo)和鍵盤,通過按鍵或滾動(dòng)鼠標(biāo)的滾軸以及單擊按鈕來使計(jì)算機(jī)以某種方式響應(yīng)。在計(jì)算機(jī)問世初期,只有通過鍵盤來控制計(jì)算機(jī),但是現(xiàn)在已經(jīng)有很多輸入設(shè)備用于輸入信息了。如果你需要把圖像傳送到計(jì)算機(jī)內(nèi)部,你可以使用掃描儀,對(duì)于計(jì)算機(jī)來說,就像使用影印機(jī)ー樣。只需簡(jiǎn)單地把圖像放到掃描儀上,掃描過后就可以在屏幕上看到圖像,你可以用軟件編輯圖像的尺寸、顏色、對(duì)比度等。如果你需要畫畫,并想在屏幕上顯示,你可以使用鼠標(biāo),但是這就好比是在“磚”上畫,很多藝術(shù)家使用圖形輸入板和光筆替代了傳統(tǒng)的繪畫工具。游戲愛好者有很多比鼠標(biāo)更實(shí)用的工具來幫助他們駕駛、飛翔、戰(zhàn)勝敵人、開火等。最常用的是游戲桿,也可以選擇游戲鍵盤、手柄、游戲?qū)S枚鷻C(jī)等。輸出設(shè)備一旦用戶把需要的數(shù)據(jù)和信息輸入到計(jì)算機(jī),有幾種輸出設(shè)備可以把數(shù)據(jù)從計(jì)算機(jī)傳遞給用戶。最常用的輸出設(shè)備是監(jiān)視器,也叫VDU或光學(xué)顯示單元。現(xiàn)代的顯示器支持高質(zhì)量的分辨率圖片,不用再遇到幾年前會(huì)頻繁出現(xiàn)的令人討厭的影響。不過,只要能支付得起,選擇適合自己工作區(qū)的最大、最亮的屏幕很重要,因?yàn)槟銓?huì)長時(shí)間地使用它。有人希望老式的陰極射線管顯示器能夠在近幾年內(nèi)被激光盤屏幕替代,就像老的電視機(jī)被大的、最新的屏幕替代一樣,液晶顯示器比老的顯示器更輕、產(chǎn)生的熱量更少。對(duì)任何計(jì)算機(jī)來說最重要的輸出設(shè)備是打印機(jī),當(dāng)前最好的是噴墨打印機(jī),它能產(chǎn)生極好的色彩質(zhì)量,他們從墨盒里無聲地在紙上噴出微小的彩色或黑色粉墨顆粒。印刷品圖像的分辨率和精度和傳統(tǒng)的照片可相媲美,但噴墨打印機(jī)速度慢并且更換墨盒的成本很髙。激光打印機(jī)通常進(jìn)行黑白打?。ūM管彩色激光打印機(jī)越來越便宜),而且由于他們比噴墨打印機(jī)打印速度更快,打印質(zhì)量更好,平均每頁消耗成本更低,所以辦公室里更愿意選擇激光打印機(jī)。Ch叩terSection2計(jì)算機(jī)軟件及其分類計(jì)算機(jī)軟件是ー個(gè)通稱,通常是計(jì)算機(jī)數(shù)據(jù)和指令的有組織的集合,該集合是由計(jì)算機(jī)發(fā)布ー套指令以便計(jì)算機(jī)完成一些特定的任務(wù)。計(jì)算機(jī)軟件實(shí)質(zhì)上和計(jì)算機(jī)程序是一致的。在實(shí)踐中,“軟件”這個(gè)術(shù)語通常用來描述一種不僅僅包含單ー程序的商業(yè)產(chǎn)品。軟件可以告知計(jì)算機(jī)如何同用戶溝通,如何處理用戶的數(shù)據(jù)。沒有了軟件,計(jì)算機(jī)基本上就成為ー堆無用的金屬。通過軟件,計(jì)算機(jī)可以存儲(chǔ)、處理和檢索信息,演示多媒體文檔,在因特網(wǎng)上搜索,從事許多其他有價(jià)值的活動(dòng)。計(jì)算機(jī)軟件可粗略地分成兩類:管理計(jì)算機(jī)操作的系統(tǒng)軟件和滿足用戶實(shí)際需求工作的應(yīng)用軟件。創(chuàng)新觀念和科技發(fā)展是經(jīng)濟(jì)增長點(diǎn)推進(jìn)器。—華爾街日?qǐng)?bào)系統(tǒng)軟件是負(fù)責(zé)對(duì)計(jì)算機(jī)系統(tǒng)的各個(gè)部件進(jìn)行控制、集成和管理以便其他軟件和系統(tǒng)用戶將系統(tǒng)軟件視為ー個(gè)功能整體,而不必?fù)?dān)心數(shù)據(jù)如何從內(nèi)存?zhèn)魉偷接脖P,或者在顯示器上顯示文本等低層的細(xì)節(jié)。通常,系統(tǒng)軟件包含一些控制計(jì)算機(jī)操作和設(shè)備的程序。系統(tǒng)操作的功能包括啟動(dòng)計(jì)算機(jī);初始化、調(diào)用和運(yùn)行應(yīng)用程序;存儲(chǔ)、檢索和拷貝文件;格式化磁盤;縮減文件大?。灰约皞浞萦脖P內(nèi)容。系統(tǒng)軟件就好像是計(jì)算機(jī)用戶和應(yīng)用程序和計(jì)算機(jī)硬件之間的接口。常見的計(jì)算機(jī)系統(tǒng)軟件分為操作系統(tǒng)和實(shí)用程序兩類,實(shí)用程序是ー種執(zhí)行某項(xiàng)特定任務(wù),通常管理計(jì)算機(jī)硬件資源的系統(tǒng)軟件。最基礎(chǔ)的系統(tǒng)軟件是操作系統(tǒng),它是一套包含能協(xié)調(diào)所有計(jì)算機(jī)硬件資源的指令的程序。操作系統(tǒng)給系統(tǒng)硬件和用戶或應(yīng)用程序之間提供了一個(gè)應(yīng)用接口。例如,操作系統(tǒng)能夠識(shí)別鍵盤,鼠標(biāo)和麥克風(fēng)這些輸入設(shè)備提供的數(shù)據(jù)、控制顯示器上的輸出顯示;引導(dǎo)打印機(jī)進(jìn)行適當(dāng)?shù)男畔⒋蛴?并且管理存儲(chǔ)在磁盤上的數(shù)據(jù),指令和信息。缺少操作系統(tǒng),計(jì)算機(jī)不能實(shí)現(xiàn)其功能。目前有很多不同品牌和版本型號(hào)的操作系統(tǒng)。這些都是為ー個(gè)或者多個(gè)特定的處理器而設(shè)計(jì)的操作系統(tǒng)。例如Windows系統(tǒng)不能運(yùn)行Apple公司的某些機(jī)型,卻可以和Intel以及AMD的一些處理器很好地兼容。盡管系統(tǒng)軟件控制計(jì)算機(jī)內(nèi)部的功能并且?guī)椭?jì)算機(jī)使用外圍設(shè)備,但是應(yīng)用軟件卻可以培訓(xùn)個(gè)人計(jì)算機(jī)的“大腦”使其具有更高的認(rèn)知能力,而不僅僅是讓計(jì)算機(jī)能保持工作和連接到其他計(jì)算機(jī)上。它是為終端用戶設(shè)計(jì)的程序,具備下列用途;1)作為一個(gè)生產(chǎn)カ和業(yè)務(wù)工具,例如文字處理、數(shù)據(jù)庫管理、電子表格、演示圖片、個(gè)人信息管理、財(cái)務(wù)項(xiàng)目管理以及其他相關(guān)類型的軟件。2)輔助圖片和多媒體項(xiàng)目,包括計(jì)算機(jī)輔助設(shè)計(jì)、桌面排版、動(dòng)畫圖片、視頻和音頻捕捉、多媒體以及網(wǎng)頁制作軟件。3)支持ー些瑣碎的用于個(gè)人事務(wù)、教育或者培訓(xùn)的活動(dòng)。4)促進(jìn)通訊,可以有新聞組、電子郵件、BBS以及網(wǎng)絡(luò)瀏覽器等。形象地說,應(yīng)用軟件位于計(jì)算機(jī)系統(tǒng)軟件的上層,沒有計(jì)算機(jī)操作系統(tǒng)和系統(tǒng)實(shí)用程序,計(jì)算機(jī)就不能運(yùn)行任何的應(yīng)用程序。沒有操作系統(tǒng)和系統(tǒng)實(shí)用工具,計(jì)算機(jī)不能運(yùn)行任何應(yīng)用程序。并且在計(jì)算機(jī)運(yùn)行一些應(yīng)用軟件之前,操作系統(tǒng)載進(jìn)計(jì)算機(jī)的主存中。必需將操作系統(tǒng)運(yùn)行的過程中允許計(jì)算機(jī)和應(yīng)用軟件之間進(jìn)行通訊。同時(shí),可以同時(shí)運(yùn)行在一個(gè)以上的操作系統(tǒng)的應(yīng)用軟件稱為交叉平臺(tái)。File-Maker-Pro就是ー個(gè)例子,它可以運(yùn)行在多個(gè)操作系統(tǒng)平臺(tái),包括幾個(gè)版本的微軟的Windows和Macintosh操作系統(tǒng)。Chapter1Section3數(shù)據(jù)結(jié)構(gòu)與算法數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)科學(xué)領(lǐng)域,數(shù)據(jù)結(jié)構(gòu)是研究數(shù)據(jù)在計(jì)算機(jī)中如何存儲(chǔ)以便有效使用的ー門學(xué)科。它將數(shù)據(jù)按照數(shù)學(xué)和邏輯概念進(jìn)行組織。認(rèn)真選擇的數(shù)據(jù)結(jié)構(gòu)往往使得算法更有效率。數(shù)據(jù)結(jié)構(gòu)的選擇通常始于抽象數(shù)據(jù)類型的選擇。ー個(gè)精心設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu)使得在盡可能少占用資源的情況下,讓各種關(guān)鍵的操作得以實(shí)現(xiàn),這些資源包括執(zhí)行時(shí)間和內(nèi)存空間。數(shù)據(jù)結(jié)構(gòu)通過程序語言和它們提供的數(shù)據(jù)類型、引用以及操作來實(shí)現(xiàn)。不同種類的數(shù)據(jù)結(jié)構(gòu)適用于不同的應(yīng)用領(lǐng)域,有些數(shù)據(jù)結(jié)構(gòu)專用于特定的任務(wù)。例如,B樹特別適用于數(shù)據(jù)庫的實(shí)現(xiàn),而計(jì)算機(jī)網(wǎng)絡(luò)依賴于路由表實(shí)現(xiàn)功能。在多種計(jì)算機(jī)程序的設(shè)計(jì)中,數(shù)據(jù)結(jié)構(gòu)的選擇是最初的設(shè)計(jì)考量。構(gòu)筑大型系統(tǒng)的經(jīng)驗(yàn)表明,實(shí)施的難度和最終結(jié)果的品質(zhì)和性能都強(qiáng)烈依賴于數(shù)據(jù)結(jié)構(gòu)的選擇。在數(shù)據(jù)結(jié)構(gòu)選定以后,可用的算法就相對(duì)顯現(xiàn)了。有時(shí),事情向著相反的方向行進(jìn)ーー數(shù)據(jù)結(jié)構(gòu)的選定是因?yàn)樘囟ǖ年P(guān)鍵任務(wù)已經(jīng)有了和某些數(shù)據(jù)結(jié)構(gòu)最匹配的算法。無論哪種情形,合適數(shù)據(jù)結(jié)構(gòu)的選擇都很關(guān)鍵。這種觀點(diǎn)促進(jìn)了多種形式化設(shè)計(jì)方法和程序語言的發(fā)展,它們把數(shù)據(jù)結(jié)構(gòu)而非算法作為關(guān)鍵的組織因素。多數(shù)語言反映了模塊系統(tǒng)的需求,通過將可校驗(yàn)的實(shí)現(xiàn)細(xì)節(jié)隱藏在控制接ロ之后的方式,允許數(shù)據(jù)結(jié)構(gòu)在不同的應(yīng)用中被安全地復(fù)用。面向?qū)ο蟮某绦蛘Z言,例如C++和Java,特地用類來實(shí)現(xiàn)這ー目的。數(shù)據(jù)結(jié)構(gòu)如此重要,以致許多數(shù)據(jù)結(jié)構(gòu)被納入現(xiàn)代編程語言的標(biāo)準(zhǔn)庫和應(yīng)用程序接口(API)中,例如,C++的容器、Java集合框架以及微軟的.NET框架。多數(shù)數(shù)據(jù)結(jié)構(gòu)的基本構(gòu)件是數(shù)組、記錄、聯(lián)合和引用。例如,可賦為空值的可空引用是引用和區(qū)分聯(lián)合的組合,而最簡(jiǎn)單的鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)ーー鏈表就是由記錄和可空引用構(gòu)成的。數(shù)據(jù)結(jié)構(gòu)呈現(xiàn)為實(shí)現(xiàn)或接口:ー個(gè)數(shù)據(jù)結(jié)構(gòu)可以被看作為兩個(gè)函數(shù)間的接口或作為按照相關(guān)數(shù)據(jù)類型組織起來的存儲(chǔ)訪問方法的實(shí)現(xiàn)。算法在數(shù)學(xué)、計(jì)算機(jī)科學(xué)、語言學(xué)等相關(guān)學(xué)科中,算法是ー組有限指令序列,是為了解決問題而采取的一步ー步的步驟,常用于計(jì)算和數(shù)據(jù)處理。在形式上,它是這樣ー類有效方法:在給定一個(gè)初始狀態(tài)后,ー組定義好的完成任務(wù)的指令通過一系列定義好的后繼狀態(tài)的處理,最終終結(jié)于ー個(gè)結(jié)束狀態(tài)。從ー個(gè)狀態(tài)到下一個(gè)狀態(tài)的轉(zhuǎn)變不必是確定的。有些算法,如概率算法,吸納了隨機(jī)性。算法的廣義定義是,ー組為了完成某個(gè)任務(wù)而編寫的可理解的有限的指令。給定一組定義好的輸入,將產(chǎn)生一些可識(shí)別的結(jié)束狀態(tài)(區(qū)別于啟發(fā)算法)。算法常有重復(fù)(迭代)或需要條件判斷(例如邏輯判斷或比較)的步驟,直到任務(wù)完成。算法效率在計(jì)算機(jī)科學(xué)中,效率用于描述算法占用了多少類型的資源的相關(guān)特征。通常是指以下兩種資源:?速度或運(yùn)行時(shí)間ーー運(yùn)行完一個(gè)算法所花費(fèi)的時(shí)間。?空間ーー在算法執(zhí)行過程中所使用的內(nèi)存或非揮發(fā)的存儲(chǔ)。速度對(duì)于ー個(gè)給定的輸入,ー個(gè)算法的絕對(duì)速度可以簡(jiǎn)單地通過計(jì)算執(zhí)行的時(shí)間(或時(shí)鐘時(shí)間)來衡量,其結(jié)果可以是幾次執(zhí)行的平均值以消除可能的隨機(jī)影響。大多數(shù)現(xiàn)代處理器的操作是在多道程序處理的環(huán)境下進(jìn)行的,因此,必須考慮同一臺(tái)物理機(jī)器上的并行處理,盡可能地消除這些因素的影響。算法性能的相對(duì)測(cè)量有時(shí)可以從運(yùn)行時(shí)間指令集模擬器(如果能獲得的話)判定的總指令路徑長度來獲得。算法速度的估算可以從不同方法得到。最常用的方法用時(shí)間復(fù)雜度來決定算法的大。。參照“運(yùn)行時(shí)間分析”方法,依據(jù)類型(例如:在非排序表中查找還是在排序表中查找等)和規(guī)模去估算ー個(gè)特定的算法運(yùn)行得可能有多快,而規(guī)模取決于“輸入尺寸”、處理器的能力和其他因素。存儲(chǔ)空間通常,以多占用存儲(chǔ)空間為代價(jià)可以換取算法更快執(zhí)行。這樣的事正如將一個(gè)資源消耗很大的計(jì)算結(jié)果放在緩沖寄存器中以備下次使用比每次都重新計(jì)算要快。在這種情況下,雖然額外的存儲(chǔ)需求被看作是附加的儲(chǔ)存,但是,許多情況下,存儲(chǔ)結(jié)果值占用很少的額外空間,并且常常被存儲(chǔ)在預(yù)先編譯的靜態(tài)存儲(chǔ)器中,降低的不僅是處理時(shí)間,而且還有分配和回收工作內(nèi)存的時(shí)間。這是提高速度的通常的方法,以致ー些編程語言常常添加特殊的性能以支持這一方法,例如C++的“易變(mutable)”關(guān)鍵字。算法的內(nèi)存需求實(shí)際上是兩個(gè)既相互獨(dú)立又相互關(guān)聯(lián)的事情:?編譯后的可執(zhí)行代碼(目標(biāo)代碼或二進(jìn)制文件)本身所占據(jù)的內(nèi)存空間(在磁盤或其他相當(dāng)?shù)拇鎯?chǔ)器上,依賴于硬件和語言)。可以通過在編譯時(shí)間決策機(jī)制(例如宏替換和模板)之上實(shí)施運(yùn)行時(shí)間決策機(jī)制(例如虛擬函數(shù)和運(yùn)行時(shí)類型信息)來減少這ー空間需求。這些,當(dāng)然會(huì)伴隨著速度降低的代價(jià)。?在算法處理過程中所分配的臨時(shí)動(dòng)態(tài)內(nèi)存。例如,前面所提到的,為了加快速度而需要?jiǎng)討B(tài)預(yù)緩存運(yùn)算結(jié)果就以內(nèi)存耗費(fèi)為代價(jià)。甚至子程序調(diào)用的深度也會(huì)極大地影響內(nèi)存耗費(fèi)并且增加了路徑深度,特別是,有些特定的函數(shù)調(diào)用需要很多的動(dòng)態(tài)內(nèi)存耗費(fèi)。Ch叩ヤer1Section4計(jì)算機(jī)網(wǎng)絡(luò)概述大多數(shù)機(jī)構(gòu)中用于工作的許多計(jì)算機(jī),經(jīng)常相隔很遠(yuǎn)。例如,擁有許多工廠的公司有可能在每個(gè)地方都會(huì)有一臺(tái)計(jì)算機(jī)來追蹤產(chǎn)品目錄,監(jiān)控產(chǎn)品進(jìn)度,編制薪水冊(cè)。起初,每臺(tái)計(jì)算機(jī)與其他計(jì)算機(jī)相互獨(dú)立工作,但是從某個(gè)點(diǎn)開始,管理層開始決定將它他們連接在ー起管理,使整個(gè)公司的信息互通。計(jì)算機(jī)網(wǎng)絡(luò)采用更通用的說法,就是資源共享,其目的就是使所有程序、設(shè)備,特別是信息,在不考慮使用者和資源的物理位置得前提下,對(duì)網(wǎng)絡(luò)中的每個(gè)人都是可用的。換句話說,即便使用者的數(shù)據(jù)距離他的實(shí)際位置有一千米遠(yuǎn),也不會(huì)阻止他使用數(shù)據(jù),好像這些數(shù)據(jù)都存在本地似的。這個(gè)目的被稱為“地理束縛”的結(jié)束。第二個(gè)目的是利用資源供給的靈活性,提供網(wǎng)絡(luò)可靠性。例如,所有文檔可復(fù)制到兩到三臺(tái)機(jī)器上,所以即使其中一臺(tái)機(jī)器不好使(由于硬件故障),其他備份也可用。另外,多處理器的出現(xiàn)意味著,如果ー個(gè)處理器不工作,其他處理器能夠取代它的工作,雖然會(huì)造成工作性能的降低。對(duì)于軍事、銀行、航空交通控制、核安全和其他應(yīng)用行業(yè)而言,硬件出現(xiàn)問題但系統(tǒng)繼續(xù)運(yùn)行是非常重要的。第三個(gè)目的是省錢。小型計(jì)算機(jī)可能會(huì)比大型機(jī)具有更好的性價(jià)比。大型計(jì)算機(jī)運(yùn)行會(huì)比個(gè)人計(jì)算機(jī)大約快十倍,但可能要比個(gè)人計(jì)算機(jī)貴一千倍。這種不均衡導(dǎo)致更多的系統(tǒng)設(shè)計(jì)者,將系統(tǒng)設(shè)計(jì)成由個(gè)人電腦構(gòu)成的系統(tǒng),每個(gè)使用者一臺(tái),且數(shù)據(jù)可被單個(gè)或多個(gè)共享文件服務(wù)器存儲(chǔ)。在這種體系中,使用者被稱為客戶,整體的布局稱為客戶端一服務(wù)器模型。在客戶端一服務(wù)器模型中,通信形式主要是在客戶端和服務(wù)器之間,以請(qǐng)求消息的形式,發(fā)送某ー需要完成的工作指令。服務(wù)器完成工作后,返回?cái)?shù)據(jù)。通常情況下,許多客戶使用少量的服務(wù)器就可進(jìn)行工作。另ー個(gè)網(wǎng)絡(luò)的目標(biāo)是系統(tǒng)的高暢銷性,也就是隨著工作量逐步的增加,通過增加更多的處理器就可提高系統(tǒng)的性能。系統(tǒng)飽和后,集中式計(jì)算機(jī)只能將被更大型的計(jì)算機(jī)取代,而這類計(jì)算機(jī)通常價(jià)格更高,對(duì)使用者的干擾更大。而采用客戶端一服務(wù)器模型,新的客戶端和服務(wù)器都可隨著需求增加。建立計(jì)算機(jī)網(wǎng)絡(luò)還有一個(gè)目的與技術(shù)沒有關(guān)聯(lián)。計(jì)算機(jī)網(wǎng)絡(luò)可為相距遙遠(yuǎn)的員エ提供強(qiáng)大的通信介質(zhì)。使用網(wǎng)絡(luò),可使兩個(gè)或多個(gè)相隔很遠(yuǎn)的人共同完成一個(gè)報(bào)告。當(dāng)ー個(gè)員エ在線修改文檔時(shí),另一個(gè)可立刻看到這種變化,而不是要等到若干天后オ收到。這種效率的提高使得廣布各個(gè)地區(qū)的群體,能夠容易合作,而在這過去是不可能實(shí)現(xiàn)的。從長遠(yuǎn)來看,人與人之間的交流要比技術(shù)目標(biāo)如提高可控性等更重要,因此計(jì)算機(jī)網(wǎng)絡(luò)能夠加強(qiáng)人與人之間的交流。Chapter2Section1操作系統(tǒng)的基礎(chǔ)介紹操作系統(tǒng)通常存儲(chǔ)在計(jì)算機(jī)硬盤的系統(tǒng)扇區(qū)之中。操作系統(tǒng)的核心稱為內(nèi)核,主要負(fù)責(zé)管理內(nèi)存、文件和硬件設(shè)備,維護(hù)計(jì)算機(jī)包含當(dāng)前日期時(shí)間的系統(tǒng)時(shí)鐘,初始化應(yīng)用,分配計(jì)算機(jī)的硬件、軟件程序以及數(shù)據(jù)等資源。每當(dāng)用戶打開計(jì)算機(jī)的時(shí)候,內(nèi)核和其他操作系統(tǒng)常用的指令就會(huì)被從硬盤調(diào)入到主存檔中。這些長期存儲(chǔ)在計(jì)算機(jī)主存的程序和命令被稱為內(nèi)存常駐進(jìn)程,其中包含操作系統(tǒng)的核心進(jìn)程如日歷計(jì)算機(jī)和一些用戶經(jīng)常會(huì)快速訪問的程序。新一代的計(jì)算機(jī)系統(tǒng)包含一個(gè)或多個(gè)處理器,主存(經(jīng)常被稱作隨機(jī)存儲(chǔ)器)、磁盤、打印機(jī),網(wǎng)絡(luò)接口和輸入輸出設(shè)備??偠灾帉懇`些了解且能正確地使用計(jì)算機(jī)部件的程序是一件非常困難的事情,更別說優(yōu)化它。因此,很顯然,為程序員找到屏蔽復(fù)雜硬件的方法很有必要,該方法已逐漸發(fā)展成在純硬件之上鋪設(shè)ー層軟件來管理系統(tǒng)的所有部件,提供用戶接口或者理解并進(jìn)行程序設(shè)計(jì)的虛擬機(jī)。這個(gè)軟件層就是操作系統(tǒng)。在20世紀(jì)80年代中期的時(shí)候發(fā)生了一些很有意思的變革,運(yùn)行在網(wǎng)絡(luò)操作系統(tǒng)、分布式操作系統(tǒng)和嵌入式操作系統(tǒng)的個(gè)人計(jì)算機(jī)數(shù)量明顯增加。在ー個(gè)網(wǎng)絡(luò)操作系統(tǒng)中,用戶可以意識(shí)到很多計(jì)算機(jī)的存在而且可以遠(yuǎn)程登錄并在計(jì)算機(jī)之間拷貝文件,每一臺(tái)工作站擁有它自己的操作系統(tǒng)和本地用戶。網(wǎng)絡(luò)操作系統(tǒng)和單處理機(jī)的操作系統(tǒng)有著非常顯著的差異。很明顯它們需要一個(gè)網(wǎng)絡(luò)接口控制器和一些低層的軟件系統(tǒng)來支持,以及ー些程序來遠(yuǎn)程登錄和進(jìn)行文件的遠(yuǎn)程讀取,但是這些增加的功能沒有改變操作系統(tǒng)本質(zhì)的結(jié)構(gòu)。改進(jìn)的藝術(shù)是在變更中保持有序,同時(shí)在有序中保持變更。 AlfredNorthWhitehead相反,對(duì)于用戶而言,分布式操作系統(tǒng)則是ー個(gè)傳統(tǒng)的處理器系統(tǒng),即使實(shí)際上它由多個(gè)處理器組成。用戶不必去了解它們的程序在哪里運(yùn)行或者文件存放在哪里。而這些都自動(dòng)并且高效率地由操作系統(tǒng)來執(zhí)行。真正的分布式操作系統(tǒng)只需添加少量的代碼到ー個(gè)處理器操作系統(tǒng),因?yàn)榉植枷到y(tǒng)和核心系統(tǒng)的區(qū)別非常明顯。例如分布式系統(tǒng)通常允許應(yīng)用程序同時(shí)運(yùn)行在幾個(gè)不同的處理器上,因此需要更為復(fù)雜的處理器分配算法來優(yōu)化所有的并行操作。嵌入式的操作系統(tǒng)是ー個(gè)用于嵌入計(jì)算機(jī)系統(tǒng)的操作系統(tǒng),這樣的操作系統(tǒng)一般都設(shè)計(jì)簡(jiǎn)潔、高效,并且拋棄了非嵌入操作系統(tǒng)提供的很多的功能,而這些功能也許不能為它們運(yùn)行的專門應(yīng)用程序所使用。嵌入式系統(tǒng)通常是實(shí)時(shí)操作系統(tǒng),例如嵌入式系統(tǒng)經(jīng)常被應(yīng)用于自動(dòng)柜員機(jī)、現(xiàn)金注冊(cè)、中央電視臺(tái)系統(tǒng)、點(diǎn)唱機(jī)等諸如此類的系統(tǒng)中??傊僮飨到y(tǒng)最主要的功能就是為程序操作人員提供ー組更為方便的指令而屏蔽復(fù)雜的底層系統(tǒng),無需考慮過多的硬件細(xì)節(jié)。根據(jù)一些特定用戶的需求,操作系統(tǒng)可以支持運(yùn)行單個(gè)程序ー個(gè)用戶或者數(shù)千用戶運(yùn)行多個(gè)程序。操作系統(tǒng)的這些能力可以描述為單用戶,多用戶,多處理,多任務(wù)。任何ー個(gè)操作系統(tǒng)都具備一個(gè)或多個(gè)操作能力。Chapter2Section2操作系統(tǒng)的功能操作系統(tǒng)是ー系列過程的集合,這些過程可以隨時(shí)按照需求進(jìn)行調(diào)用。大多數(shù)的CPU擁有兩種模式:ー種是用于操作系統(tǒng)的核心模式,此核心模式中所有的指令都是可用的;另ー種是用于用戶程序的用戶模式,在此模式中I/O和一些特殊的指令是不允許使用的。操作系統(tǒng)會(huì)檢查調(diào)用的參數(shù)來決定何種類型的系統(tǒng)調(diào)用。操作系統(tǒng)是運(yùn)行核心模式或者是監(jiān)管模式的軟件,可以防止用戶對(duì)硬件進(jìn)行更改。接下來介紹操作系統(tǒng)常用的幾個(gè)概念。進(jìn)程,是所有操作系統(tǒng)中的ー個(gè)重要概念。進(jìn)程是程序執(zhí)行的基本單元,每一個(gè)進(jìn)程都分配有各自可供讀取的內(nèi)存地址空間,地址空間包含了可執(zhí)行程序,數(shù)據(jù)以及相關(guān)的堆棧。同時(shí),還有一些和進(jìn)程相關(guān)的寄存器組,包括程序計(jì)數(shù)器,棧指針以及其他的硬件寄存器和其他所有程序運(yùn)行需要的信息。文件,另外一種與文件系統(tǒng)有關(guān)的系統(tǒng)調(diào)用類型。如上所述,操作系統(tǒng)的ー個(gè)首要功能就是隱藏一些特定的磁盤以及I/O系統(tǒng)的細(xì)節(jié)從而給程序員呈現(xiàn)ー個(gè)友好而簡(jiǎn)潔的跟設(shè)備無關(guān)的文件模式。命令解釋器,是用戶終端設(shè)定和操作系統(tǒng)之間的ー個(gè)應(yīng)用接口。一旦有用戶注冊(cè),內(nèi)核程序就開始啟動(dòng)。內(nèi)核擁有標(biāo)準(zhǔn)的輸入和輸出終端。一般從顯示提示開始,ー個(gè)像美元標(biāo)志的字符會(huì)告訴用戶現(xiàn)在那些內(nèi)核正在等待接受命令。這種位于操作系統(tǒng)和用戶程序之間的接口是由操作系統(tǒng)所提供的擴(kuò)展指令定義的,這些擴(kuò)展指令就是我們傳統(tǒng)意義所稱的系統(tǒng)調(diào)用。操作系統(tǒng)的核心就是這些可以操作的系統(tǒng)調(diào)用。這也揭示了操作系統(tǒng)的真正功能。我創(chuàng)造了它,比爾蓋茨卻將它發(fā)揚(yáng)光大?!狣avidBradley(為IBM的個(gè)人計(jì)算機(jī)編寫Ctrl+Alt+Del快捷鍵的人)操作系統(tǒng)從ー開始的操作者發(fā)展成當(dāng)今多程序處理系統(tǒng)經(jīng)歷了一個(gè)漫長的歷史時(shí)期。我們可以從兩種角度來看待操作系統(tǒng):擴(kuò)展機(jī)和資源管理器。作為資源管理器,操作系統(tǒng)的エ作就是髙效地管理計(jì)算機(jī)系統(tǒng)不同的部件。擴(kuò)展機(jī)要比實(shí)際的機(jī)器使用起來更為方便。操作系統(tǒng)類似于擴(kuò)展機(jī)上文曾經(jīng)提到,大多數(shù)計(jì)算機(jī)結(jié)構(gòu)的機(jī)器語言層對(duì)我們程序是非常重要的,尤其是對(duì)于數(shù)據(jù)輸入和輸出。操作系統(tǒng)恰能為程序員屏蔽磁盤硬件細(xì)節(jié)而呈現(xiàn)ー個(gè)面向文件的接口,同時(shí)也避免了一些讓人不愉快的ー些干擾,計(jì)時(shí)器,內(nèi)存管理和其他的ー些底層特性。從這個(gè)角度來說,操作系統(tǒng)的功能就是展現(xiàn)給用戶ー個(gè)類似于擴(kuò)展機(jī)或者虛擬機(jī),利用虛擬機(jī)進(jìn)行程序設(shè)計(jì)要比在硬件層容易。具體的情況可以見下表。銀行系統(tǒng)航空訂票網(wǎng)絡(luò)瀏覽卜應(yīng)用程序編譯器編輯器命令解釋器ヽ操作系統(tǒng)A系統(tǒng)程序機(jī)器語言微代碼硬件系統(tǒng)物理設(shè)備J在操作系統(tǒng)的上層是系統(tǒng)其余的軟件。這里我們可以看到有命令解釋器,視窗系統(tǒng),編譯器,編輯器,以及類似獨(dú)立應(yīng)用的程序。認(rèn)識(shí)到這些程序并不是定義在操作系統(tǒng)的范圍內(nèi)是一件非常重要的事情,即使這些程序基本上是由計(jì)算機(jī)制造商來提供的。作為資源管理器的操作系統(tǒng)現(xiàn)代的計(jì)算機(jī)由處理機(jī)、存儲(chǔ)器、計(jì)時(shí)器、磁盤、鼠標(biāo)、網(wǎng)絡(luò)接口、激光打印機(jī)及其他各種各樣的設(shè)備構(gòu)成。也就是說,操作系統(tǒng)的工作就是提供不同計(jì)算機(jī)程序所競(jìng)爭(zhēng)的各種資源一個(gè)有序和可控的分配,包括處理器、內(nèi)存和輸入輸出設(shè)備。假如三個(gè)運(yùn)行在同一臺(tái)計(jì)算機(jī)上的程序同時(shí)試圖使用一臺(tái)打印機(jī)來完成打印任務(wù),想象會(huì)發(fā)生什么。結(jié)果將會(huì)出現(xiàn)很混亂的情況。操作系統(tǒng)可以通過在磁盤上為打印機(jī)緩存所有的打印文件,來將這些隱藏的混亂進(jìn)行排序。簡(jiǎn)而言之,操作系統(tǒng)首要的任務(wù)是追蹤誰在使用哪個(gè)資源的進(jìn)程,確定資源申請(qǐng),滿足使用,同時(shí)緩解不同程序和用戶的資源需求沖突,這樣的沖突情況被稱為資源死鎖。Ch叩ter2Section3常見的操作系統(tǒng)操作系統(tǒng)是用戶、所有軟件和硬件系統(tǒng)之間的解釋器,同時(shí)也控制著計(jì)算機(jī)系統(tǒng)的內(nèi)部組件。應(yīng)用程序可以通過應(yīng)用程序接口或者系統(tǒng)調(diào)用來獲取這些服務(wù)。通過使用這些接口,應(yīng)用程序可以向操作系統(tǒng)請(qǐng)求服務(wù),傳遞參數(shù),接收操作結(jié)果等。用戶也可以通過某種軟件用戶接口和操作系統(tǒng)之間進(jìn)行交互操作,例如打印命令可以通過使用命令行界面或者圖形用戶界面進(jìn)行操作。對(duì)于ー些便攜式或者桌面計(jì)算機(jī),用戶界面被看作是操作系統(tǒng)的一部分。在大型的類似于UNIX和類UNIX的多用戶操作系統(tǒng)中,用戶接口通常是像運(yùn)行在外部操作系統(tǒng)的應(yīng)用程序。當(dāng)代常見的操作系統(tǒng)一般包含MicrosoftWindows,MacOS、Linux,BSD和Solaris。MicrosoftWindows在臺(tái)式機(jī)和筆記本市場(chǎng)上占有相當(dāng)重要的份額,同時(shí)大多數(shù)服務(wù)器系統(tǒng)通常運(yùn)行在UNIX或者類似UNIX的平臺(tái)上。一些嵌套設(shè)備市場(chǎng)也是由幾種操作系統(tǒng)分食的??偂⒅?常見的集中操作系統(tǒng)有DOS,Windows,UNIX,Linux和MacOS。微軟的MS-DOS和貝爾實(shí)驗(yàn)室的UNIX是兩種最初主導(dǎo)個(gè)人計(jì)算機(jī)和工作站領(lǐng)域的較普遍的操作系統(tǒng):MS-DOS是最先使用的操作系統(tǒng),并且廣泛的應(yīng)用在IBM的個(gè)人計(jì)算機(jī)上,它較難使用的命令行界面給我留下了深刻的印象。盡管早期版本的很多優(yōu)秀的特性都是來源于UNIX系統(tǒng),但是微軟繼承了MS-DOS,最初的Windows版本運(yùn)行在MS-DOS之上。但是從1995年后,一種自由單機(jī)版本不需要MS-DOS框架支持的Windows95版本的誕生,意味著不再需要MS-DOS的支持。微軟的另外一種操作系統(tǒng)WindowsNT,是ー種在某些層次上兼容了Windows95而又從內(nèi)部全新開發(fā)的ー種操作系統(tǒng)。另外一個(gè)主要產(chǎn)品就是由美國電報(bào)電話公司的貝爾實(shí)驗(yàn)室的DennisRitchie和KenThompson開發(fā)出來的UNIX系統(tǒng)。UNIX是由C外殼程序設(shè)計(jì)編寫并可以簡(jiǎn)單用于各種計(jì)算機(jī)接口。目前已經(jīng)在大部分工作站和其他高端計(jì)算機(jī)的操作系統(tǒng)占據(jù)了主導(dǎo)地位,例如網(wǎng)絡(luò)服務(wù)器等。尤其適用于使用高性能的RISC芯片的計(jì)算機(jī)系統(tǒng),這些機(jī)器通常擁有小型計(jì)算機(jī)的處理能力,即使專注于單用戶的操作。UNIX的功能非常強(qiáng)大,由400多個(gè)指令模塊庫構(gòu)成,通過這些模塊的鏈接幾乎可以完成任何程序任務(wù)。當(dāng)UNIX系統(tǒng)剛開發(fā)不久的時(shí)候,在AT&T公司的許可下,其源代碼可以多方獲得用于研究。因?yàn)锳T&T公司投放第7版本的時(shí)候開始意識(shí)到了UNIX的商業(yè)價(jià)值。所以此后理論教學(xué)只能是學(xué)生們對(duì)這個(gè)操作系統(tǒng)的本質(zhì)做一個(gè)泛泛的了解。出于這個(gè)原因,一個(gè)芬蘭的學(xué)生Torvalds,開始編寫了一個(gè)不僅僅用于教學(xué)而且特點(diǎn)鮮明的Linux系統(tǒng)。Linux易獲得免費(fèi)版本的這個(gè)狀況對(duì)它的流行起到了巨大的推動(dòng)作用,而且網(wǎng)絡(luò)管理者發(fā)現(xiàn)這種系統(tǒng)同樣可以為網(wǎng)絡(luò)服務(wù)器提供ー個(gè)性能安全和穩(wěn)定的操作系統(tǒng)。Linux是UNIX的免費(fèi)克隆版本支持各種各樣的軟件,如Windows系統(tǒng),C/C++編譯環(huán)境,TCP/IP網(wǎng)絡(luò)協(xié)議等?,F(xiàn)在開始用在DECAlpha,PowerPC,甚至Macintosh的機(jī)器上,可見其優(yōu)秀的可移植性和靈活性。使用UNIX尤其重要的ー個(gè)特點(diǎn)就是你可以在ー個(gè)真實(shí)內(nèi)核的環(huán)境下進(jìn)行操作。所有的內(nèi)核資源代碼都可以為Linux所用,你可以根據(jù)自己的需要來修改這些源代碼,而且閱讀這些內(nèi)核源碼是一個(gè)非常好的學(xué)習(xí)過程。除此以外,Apple公司的產(chǎn)品Macintosh計(jì)算機(jī)是首先引入圖形用戶界面。1998年Apple的snazzyiMac計(jì)算機(jī)同樣體現(xiàn)了Mac操作系統(tǒng)的特點(diǎn),同時(shí)體現(xiàn)出智能性、交互性、信息性和互聯(lián)性,是新一代的多媒體計(jì)算機(jī)的典型。和Windows相似,Mac操作系統(tǒng)擁有很多不斷改進(jìn)和變更的版本,包括多任務(wù)處理能力、支持小型網(wǎng)絡(luò)等。我們將支持Mac操作系統(tǒng)的軟件稱為Macintosh軟件。目前Mac操作系統(tǒng)使用的軟件條目要比微軟的Windows系統(tǒng)少很多。但是也有一些硬件模擬器和軟件插件陸續(xù)被開發(fā)出來使得Windows系統(tǒng)的軟件能正常運(yùn)行在Mac計(jì)算機(jī)上,但是很多對(duì)性能挑剔的Mac計(jì)算機(jī)用戶還是堅(jiān)持使用Mac自身的軟件系統(tǒng)。Section4LinuxLinux操作系統(tǒng)的出現(xiàn),最早開始于一位名叫LinusTorvalds的計(jì)算機(jī)業(yè)余愛好者,當(dāng)時(shí)他是芬蘭赫爾辛基大學(xué)的學(xué)生。Linus對(duì)Minix,ー種小型UNIX系統(tǒng)感興趣,他決定研發(fā)ー種超過Minix標(biāo)準(zhǔn)的系統(tǒng)。他于1991年開始研發(fā),那一年他發(fā)布了0.02版本,在1994年Linux內(nèi)核1.0版本的發(fā)布之前,該版本很穩(wěn)定地發(fā)揮作用。Linux內(nèi)核是所有Linux系統(tǒng)的核心,它在GUN通用公開許可證下被研發(fā)和發(fā)布。它的源代碼免費(fèi)提供給每個(gè)人。正是該內(nèi)核導(dǎo)致Linux操作系統(tǒng)的研發(fā)?,F(xiàn)有數(shù)百家公司、組織及個(gè)人基于Linux內(nèi)核發(fā)布了他們自己的操作系統(tǒng)版本?,F(xiàn)在的完整版2.6是2003年12月發(fā)布的,版本的研發(fā)還在繼續(xù)。Linux與現(xiàn)代許多其他流行操作系統(tǒng)的主要區(qū)別是Linux內(nèi)核和其他組件是自由和開放源碼軟件。Linux不是唯一的操作系統(tǒng),但它是目前使用最廣泛的。ー些自由和開放源碼軟件許可證是非營利版本,一種互惠,任何來自非營利版本的軟件操作本身也必須是非營利的。最常見的免費(fèi)軟件許可證GNUGPL是ー種非盈利版本,用于Linux內(nèi)核和許多來自GNU項(xiàng)目的部件。除了它是自由發(fā)布式的以外,Linux的功能性、適應(yīng)性和靈活性使得它成為專有Unix和微軟的操作系統(tǒng)的主要替代品。IBM、惠普和其他世界電腦巨頭已經(jīng)接受Linux并且支持其不斷發(fā)展。進(jìn)入第二個(gè)十年,Linux已經(jīng)被世界各地主要作為服務(wù)器平臺(tái)所使用,利用它作為家庭和辦公室桌面操作系統(tǒng)也有所增加。操作系統(tǒng)也可以直接納入“嵌入”過程中的芯片,越來越多地被用于這樣的設(shè)備和裝置。20世紀(jì)90年代,大多數(shù)科技專家不知道Linux的潛カ,駁回其使用,認(rèn)為是電腦業(yè)余愛好者的項(xiàng)目,不適合普通大眾的計(jì)算機(jī)需求。經(jīng)過桌面管理系統(tǒng)(如KDE和GNOME)研發(fā)者的長時(shí)間努力,如,辦公套件項(xiàng)目OpenO和Mozilla網(wǎng)絡(luò)瀏覽器的項(xiàng)目,現(xiàn)在有各種各樣運(yùn)行在Linux的應(yīng)用軟件,任何人可使用,不論他是否了解電腦知識(shí)。那些對(duì)Linux能カ好奇的人們可以下載ー個(gè)所謂的liveCD版Knoppixo它配備了所有你可能需要在電腦上進(jìn)行日常工作的東西,并且無需安裝。它在能從CD驅(qū)動(dòng)器內(nèi)運(yùn)行。那些選擇繼續(xù)使用Linux的人們可以找到各種各樣的版本,或者Linux的“分配”,它是易于安裝、配置和使用的。Linux的正式吉祥物為企鵝Tux,它是由LinusTorvalds選擇來代表與操作系統(tǒng)有關(guān)的形象。Tux企鵝被LarryEwing和Larry慷慨贈(zèng)給社會(huì)免費(fèi)使用,以促進(jìn)Linux操作系統(tǒng)。Section1數(shù)據(jù)庫各組成部分在MicrosoftSQLServer2000中,數(shù)據(jù)庫由存儲(chǔ)特定結(jié)構(gòu)化數(shù)據(jù)集的表集合組成。表中包含行(有時(shí)稱作記錄或元組)和列(有時(shí)稱作特性)的集合。表中的每一列都設(shè)計(jì)為存儲(chǔ)某種類型的信息(例如,日期、名稱、美元金額或數(shù)字)。表上有幾種控制(約束、規(guī)則、觸發(fā)器、默認(rèn)值和自定義用戶數(shù)據(jù)類型)用于確保數(shù)據(jù)的有效性。表上可以有索引(與書中的索引非常相似),利用索引可以快速地找到行??蓪⒙暶饕猛暾裕―RI)約束添加到表±,以確保不同表中相互關(guān)聯(lián)的數(shù)據(jù)保持一致。數(shù)據(jù)庫還可以存儲(chǔ)過程,這些過程使用Transact-SQL編程代碼對(duì)數(shù)據(jù)庫中的數(shù)據(jù)執(zhí)行操作,如存儲(chǔ)對(duì)表數(shù)據(jù)提供自定義訪問的視圖。例如,創(chuàng)建名為MyCoDB的數(shù)據(jù)庫來管理公司的數(shù)據(jù)。在MyCoDB數(shù)據(jù)庫中,可以創(chuàng)建ー個(gè)名為Employees的表來存儲(chǔ)每個(gè)職員的信息,該表可以包含名為Empld、LastName、FirstName,Dept和Title的列。必須給表添加一些約束,以確保沒有兩個(gè)職員使用同一Empld,同時(shí)確保Dept列僅包含貴公司中有效的部門編號(hào)。您可以定義索引,以確保能夠根據(jù)職員ID或姓氏快速地找到職員的數(shù)據(jù)。對(duì)于每ー個(gè)職員,都需要向Employees表添加一行數(shù)據(jù),所以可以創(chuàng)建名為AddEmployee的過程,將該過程自定義為接受新職員的數(shù)據(jù)值,并執(zhí)行向Employees表中添加行的操作。若需要一份部門職員的概要,這種情況下定義ー個(gè)名為DeptEmps的視圖,合并Departments和Employees表中的數(shù)據(jù)并產(chǎn)生輸出。圖3.1顯示了創(chuàng)建的MyCoDB數(shù)據(jù)庫的局部。表表是包含數(shù)據(jù)庫中所有數(shù)據(jù)的數(shù)據(jù)庫對(duì)象。表定義為列的集合。與電子表格相似,數(shù)據(jù)在表中是按行和列的格式組織排列的。每行代表唯一的一條記錄,而每列代表記錄中的ー個(gè)域。例如,在包含公司雇員數(shù)據(jù)的表中每一行代表一名雇員,各列分別表示雇員的詳細(xì)資料,如雇員編號(hào)、姓名、地址、職位以及家庭電話號(hào)碼等。索引數(shù)據(jù)庫中的索引與書籍中的索引類似。在一本書中,利用索引可以快速查找所需信息,無須閱讀整本書。在數(shù)據(jù)庫中,索引使數(shù)據(jù)庫程序無須對(duì)整個(gè)表進(jìn)行掃描就可以在其中找到所需數(shù)據(jù)。書中的索引是ー個(gè)詞語列表,其中注明了包含各個(gè)詞的頁碼。而數(shù)據(jù)庫中的索引是ー個(gè)表中所包含的值的列表,其中注明了表中包含各個(gè)值的行所在的存儲(chǔ)位置??梢詾楸碇械膯蝹€(gè)列建立索引,也可以為ー組列建立索引,索引采用B樹結(jié)構(gòu)。索引包含一個(gè)條目,該條目有來自表中每一行的ー個(gè)或多個(gè)列(搜索關(guān)鍵字)。B樹按搜索關(guān)鍵字排序,可以在搜索關(guān)鍵字的任何子詞條集合上進(jìn)行髙效搜索。例如,對(duì)于一個(gè)A、B、C列上的索引,可以在A以及A、B和A、B、C上對(duì)其進(jìn)行高效搜索。大多數(shù)書中包含一個(gè)關(guān)于詞匯、名稱、地點(diǎn)等等的總索引。數(shù)據(jù)庫則包含分別關(guān)于所選類型或數(shù)據(jù)列的索引:這好比在一本書中分別為人名和地名建立索引。當(dāng)創(chuàng)建數(shù)據(jù)庫并優(yōu)化其性能時(shí),應(yīng)該為數(shù)據(jù)查詢所使用的列創(chuàng)建索引。在隨MicrosoftSQLServer2000提供的pubs示例數(shù)據(jù)庫中,employee表在emp_id列上有一個(gè)索引。圖3.2顯示索引如何存儲(chǔ)每個(gè)emp_id值并指向表中包含各個(gè)值的數(shù)據(jù)行。當(dāng)SQLServer執(zhí)行ー個(gè)語句,在employee表中根據(jù)指定的emp_id值查找數(shù)據(jù)時(shí),它能夠識(shí)別emp_id列的索引,并使用該索引查找所需數(shù)據(jù)。如果該索引不存在,它會(huì)從表的第一行開始,逐行搜索指定的emp_id值。SQLServer為某些類型的約束(如PRIMARYKEY和UNIQUE約束)自動(dòng)創(chuàng)建索引??梢酝ㄟ^創(chuàng)建不依賴于約束的索引,進(jìn)ー步對(duì)表定義進(jìn)行自定義。不過,索引為性能所帶來的好處卻是有代價(jià)的。帶索引的表在數(shù)據(jù)庫中會(huì)占據(jù)更多的空間。另外,為了維護(hù)索引,對(duì)數(shù)據(jù)進(jìn)行插入、更新、刪除操作的命令所花費(fèi)的時(shí)間會(huì)更長。在設(shè)計(jì)和創(chuàng)建索引時(shí),應(yīng)確保性能的提高程度大于在存儲(chǔ)空間和處理資源方面的代價(jià)。視圖視圖是ー個(gè)虛擬表,其內(nèi)容由查詢定義。同真實(shí)的表一樣,視圖包含一系列帶有名稱的列和行數(shù)據(jù)。但是,視圖并不在數(shù)據(jù)庫中以存儲(chǔ)的數(shù)據(jù)值集形式存在。行和列數(shù)據(jù)來自由定義視圖的查詢所引用的表,并且在引用視圖時(shí)動(dòng)態(tài)生成。對(duì)其中所引用的基礎(chǔ)表來說,視圖的作用類似于篩選。定義視圖的篩選可以來自當(dāng)前或其他數(shù)據(jù)庫的ー個(gè)或多個(gè)表,或者其他視圖。分布式查詢也可用于定義使用多個(gè)異類源數(shù)據(jù)的視圖。如果有幾臺(tái)不同的服務(wù)器分別存儲(chǔ)組織中不同地區(qū)的數(shù)據(jù),而您需要將這些服務(wù)器上相似結(jié)構(gòu)的數(shù)據(jù)組合起來,這種方式就很有用。通過視圖進(jìn)行查詢沒有任何限制,通過它們進(jìn)行數(shù)據(jù)修改時(shí)的限制也很少。圖3.3顯示了在兩個(gè)表上建立的視圖。Chapter3Section2關(guān)系數(shù)據(jù)庫組件MicrosoftSQLServer2000數(shù)據(jù)庫組件是基于結(jié)構(gòu)化查詢語ぎ(SQL)的可伸縮的關(guān)系數(shù)據(jù)庫,集成了對(duì)Internet應(yīng)用程序的可擴(kuò)展標(biāo)記語言(XML)支持。下列術(shù)語描述了SQLServer2000數(shù)據(jù)庫組件構(gòu)架的基本組成:數(shù)據(jù)庫數(shù)據(jù)庫與數(shù)據(jù)文件相似,同為存儲(chǔ)數(shù)據(jù)的場(chǎng)所。與數(shù)據(jù)文件ー樣,數(shù)據(jù)庫并不直接向用戶顯示信息;用戶運(yùn)行應(yīng)用程序訪問數(shù)據(jù)庫中的數(shù)據(jù),數(shù)據(jù)庫將這些數(shù)據(jù)以用戶能夠理解的格式呈現(xiàn)給用戶。數(shù)據(jù)庫系統(tǒng)比數(shù)據(jù)文件的功能強(qiáng)大,因?yàn)閿?shù)據(jù)庫中的數(shù)據(jù)組織程度更高。在設(shè)計(jì)良好的數(shù)據(jù)庫中,沒有用戶或應(yīng)用程序必須同時(shí)更新的重復(fù)數(shù)據(jù)塊。相關(guān)的數(shù)據(jù)分在ー個(gè)結(jié)構(gòu)或ー條記錄中,同時(shí),還可以定義這些結(jié)構(gòu)和記錄之間的關(guān)系。處理數(shù)據(jù)文件時(shí),必須根據(jù)每個(gè)數(shù)據(jù)文件的特定結(jié)構(gòu)對(duì)應(yīng)用程序進(jìn)行編碼。數(shù)據(jù)庫則不同,它包含一個(gè)目錄,應(yīng)用程序可以利用該目錄來確定數(shù)據(jù)的組織結(jié)構(gòu)。通用數(shù)據(jù)庫應(yīng)用程序能夠利用該目錄動(dòng)態(tài)地向用戶提供來自不同數(shù)據(jù)庫的數(shù)據(jù),而不受特定數(shù)據(jù)格式約束。數(shù)據(jù)庫通常有兩個(gè)主要部分:ー個(gè)是保存物理數(shù)據(jù)庫的文件,ー個(gè)是應(yīng)用程序用于訪問數(shù)據(jù)的數(shù)據(jù)庫管理系統(tǒng)(DBMS)軟件。DBMS負(fù)責(zé)維護(hù)數(shù)據(jù)庫的結(jié)構(gòu),包括:維護(hù)數(shù)據(jù)庫內(nèi)數(shù)據(jù)間的關(guān)系。確保數(shù)據(jù)存儲(chǔ)正確,定義數(shù)據(jù)間關(guān)系的規(guī)則未被違反。在系統(tǒng)崩潰的情況下,按照已知的一致性程度恢復(fù)所有數(shù)據(jù)。關(guān)系數(shù)據(jù)庫組織數(shù)據(jù)庫數(shù)據(jù)的方法有很多種,而關(guān)系數(shù)據(jù)庫是最為高效的ー種。關(guān)系數(shù)據(jù)庫系統(tǒng)是數(shù)學(xué)集合理論在如何高效組織數(shù)據(jù)這ー問題上的應(yīng)用。在關(guān)系數(shù)據(jù)庫中,數(shù)據(jù)被收集在表(在關(guān)系型理論中稱為關(guān)系)中。表描述了對(duì)企業(yè)具有重要意義的某類對(duì)象。比如,ー個(gè)公司的數(shù)據(jù)庫中可能會(huì)有有關(guān)員エ的表、有關(guān)客戶的表,以及有關(guān)庫存的表。每個(gè)表都由列和行(關(guān)系型理論中稱為屬性和元組)組成。每一列描述代表對(duì)象的某個(gè)屬性。比如,Employee表通常包含名字、姓氏、員ェID號(hào)、部門、エ資級(jí)別以及職位等屬性列。每一行表示表所代表的對(duì)象的ー個(gè)實(shí)例。比如,Employee表中的某一行代表員エID號(hào)為12345的員エ。在將數(shù)據(jù)組織成表的過程中,用戶通常會(huì)發(fā)現(xiàn)有許多不同定義表的方法。關(guān)系數(shù)據(jù)庫理論定義了一個(gè)稱為規(guī)范化的進(jìn)程,可確保定義的表集能夠有效地組織數(shù)據(jù)。可伸縮性SQLServer2000支持許多用戶的同時(shí)訪問。ー個(gè)SQLServer2000實(shí)例通常包括組成一系列數(shù)據(jù)庫的文件和一套DBMS軟件。在不同計(jì)算機(jī)上運(yùn)行的應(yīng)用程序使用SQLServer2000通訊組件,通過網(wǎng)絡(luò)將命令傳送到SQLServer2000實(shí)例。當(dāng)應(yīng)用程序與SQLServer2000實(shí)例連接后,就可以引用該實(shí)例中用戶被授權(quán)訪問的任何數(shù)據(jù)庫。通訊組件還允許SQLServer2000實(shí)例與在同一臺(tái)計(jì)算機(jī)上運(yùn)行的應(yīng)用程序之間進(jìn)行通訊。用戶可以在一臺(tái)計(jì)算機(jī)上同時(shí)運(yùn)行多個(gè)SQLServer2000實(shí)例。SQLServer2000被設(shè)計(jì)為可支持最大的Web站點(diǎn)或企業(yè)數(shù)據(jù)處理系統(tǒng)上的數(shù)據(jù)流通。在大型多處理器服務(wù)器上運(yùn)行的SQLServer2000支持成千上萬的用戶同時(shí)連接。SQLServer表中的數(shù)據(jù)可在多臺(tái)服務(wù)器間分區(qū),這樣,多臺(tái)多處理器計(jì)算機(jī)就可彼此協(xié)作,支持超大型系統(tǒng)的數(shù)據(jù)庫處理需求。這些數(shù)據(jù)庫服務(wù)器組稱為聯(lián)合體。盡管SQLServer2000被設(shè)計(jì)為用作通過網(wǎng)絡(luò)連接的成千上萬用戶的數(shù)據(jù)存儲(chǔ)引擎,它仍可作為ー個(gè)獨(dú)立的數(shù)據(jù)庫,像應(yīng)用程序ー樣直接在同一臺(tái)計(jì)算機(jī)上運(yùn)行。SQLServer2000卓越的可伸縮性和便于使用的諸多功能使其能夠在單個(gè)計(jì)算機(jī)上高效運(yùn)行,既不占用過多的系統(tǒng)資源,也不需要專門的用戶來管理。這些功能還使SQLServer2000得以動(dòng)態(tài)地獲取支持上千用戶所需的資源,同時(shí)將數(shù)據(jù)庫的管理和調(diào)節(jié)工作減到最少。SQLServer2000關(guān)系數(shù)據(jù)庫引擎動(dòng)態(tài)調(diào)節(jié)自身以獲取或釋放適當(dāng)?shù)挠?jì)算機(jī)資源,以支持在任何特定時(shí)間訪問SQLServer2000實(shí)例時(shí)不斷變化的用戶負(fù)荷之需。SQLServer2000關(guān)系數(shù)據(jù)庫引擎的強(qiáng)大功能可以避免因某個(gè)用戶讀取或修改其他用戶當(dāng)前使用的數(shù)據(jù)而引起的邏輯問題。結(jié)構(gòu)化查詢語言若要處理數(shù)據(jù)庫中的數(shù)據(jù),必須使用ー套由DBMS軟件定義的命令和語句(語言)。處理關(guān)系數(shù)據(jù)庫的語言有很多種,其中最常用的是SQL。美國國家標(biāo)準(zhǔn)化組織(ANSI)和國際標(biāo)準(zhǔn)化組織(ISO)定義軟件標(biāo)準(zhǔn),包括SQL語言的標(biāo)準(zhǔn)。SQLServer2000支持SQL-92入門級(jí)(EntryLevel),即由ANSI和ISO在1992年公布的SQL標(biāo)準(zhǔn)。MicrosoftSQLServer支持的SQL語言稱為Transact-SQL(T-SQL),,T-SQL是MicrosoftSQLServer應(yīng)用程序使用的主要語言??蓴U(kuò)展標(biāo)記語言XML是新出現(xiàn)的Internet數(shù)據(jù)標(biāo)準(zhǔn)。XML是一套可用于定義超文本文檔結(jié)構(gòu)的標(biāo)記。XML文檔可由顯示W(wǎng)eb頁的最重要語言——超文本標(biāo)記語言(HTML)輕松處理。盡管大多數(shù)SQL語句以關(guān)系或表格格式結(jié)果集的形式返回結(jié)果,但是SQLServer2000數(shù)據(jù)庫組件仍支持以XML文檔形式返回結(jié)果的FORXML子句。SQLServer2000還支持來自!nternet和Intranet應(yīng)用程序的XPath查詢??蓪ML文檔添加到SQLServer數(shù)據(jù)庫中,并可使用OPENXML子句以關(guān)系結(jié)果集的形式顯示XML文檔中的數(shù)據(jù)。Chapter3Section3數(shù)據(jù)庫構(gòu)架MicrosoftSQLServer2000數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中。在數(shù)據(jù)庫中,數(shù)據(jù)被組織到用戶可以看見的邏輯組件中。數(shù)據(jù)庫還可以按物理方式,在磁盤上作為兩個(gè)或更多的文件實(shí)現(xiàn)(見圖3.4)。使用數(shù)據(jù)庫時(shí)使用的主要是邏輯組件,例如表、視圖、過程和用戶。文件的物理實(shí)現(xiàn)在很大程度上是透明的。一般只有數(shù)據(jù)庫管理員需要處理物理實(shí)現(xiàn)。每個(gè)SQLServer實(shí)例有四個(gè)系統(tǒng)數(shù)據(jù)庫(master、modeRtempdb和msdb)以及■ー個(gè)或多個(gè)用戶數(shù)據(jù)庫(見圖3.5)。有些單位只使用一個(gè)用戶數(shù)據(jù)庫來存儲(chǔ)其所有數(shù)據(jù)。有些單位則為本單位的每一個(gè)組都設(shè)立了不同的數(shù)據(jù)庫,而且有時(shí)ー個(gè)數(shù)據(jù)庫只能由一個(gè)應(yīng)用程序使用。例如,ー個(gè)單位可以有銷售數(shù)據(jù)庫、エ資單數(shù)據(jù)庫、文檔管理應(yīng)用程序數(shù)據(jù)庫等。應(yīng)用程序有時(shí)只使用一個(gè)數(shù)據(jù)庫,而有時(shí)則可以訪問幾個(gè)數(shù)據(jù)庫。不需要運(yùn)行多個(gè)SQLServer數(shù)據(jù)庫引擎的復(fù)本即可使多個(gè)用戶訪問服務(wù)器上的數(shù)據(jù)庫。SQLServer標(biāo)準(zhǔn)版或企業(yè)版實(shí)例能夠處理同時(shí)在多個(gè)數(shù)據(jù)庫中工作的上千個(gè)用戶。根據(jù)定義的安全權(quán)限,每個(gè)SQLServer實(shí)例可使所有連接到實(shí)例的用戶都能使用該實(shí)例上的所有數(shù)據(jù)庫。當(dāng)連接到SQLServer實(shí)例時(shí),您的連接會(huì)與服務(wù)器上的具體某個(gè)數(shù)據(jù)庫相關(guān)聯(lián)。這個(gè)數(shù)據(jù)庫就稱為當(dāng)前數(shù)據(jù)庫。系統(tǒng)管理員通常會(huì)將您連接到默認(rèn)數(shù)據(jù)庫,但您可以使用數(shù)據(jù)庫API內(nèi)的連接選項(xiàng)來指定另ー個(gè)數(shù)據(jù)庫。您可使用Transact-SQLUSEdatabase_name語句,或使用可更改當(dāng)前數(shù)據(jù)庫上下文的API函數(shù),由一個(gè)數(shù)據(jù)庫切換到另一個(gè)數(shù)據(jù)庫。SQLServer2000允許從SQLServer實(shí)例中分離數(shù)據(jù)庫,然后將數(shù)據(jù)庫重新附加到另ー個(gè)實(shí)例,甚至可以將數(shù)據(jù)庫附加回原來的實(shí)例。如果有SQLServer數(shù)據(jù)庫文件,可以在連接時(shí)讓SQLServer以特定的數(shù)據(jù)庫名稱附加該數(shù)據(jù)庫文件。數(shù)據(jù)類型和表結(jié)構(gòu)MicrosoftSQLServer2000數(shù)據(jù)庫中的所有數(shù)據(jù)包含在稱為表的對(duì)象中。每個(gè)表代表某類對(duì)用戶有意義的對(duì)象。例如,可在一個(gè)學(xué)校數(shù)據(jù)庫內(nèi)找到班級(jí)表、教師表和學(xué)生表。SQLServer中的表有兩個(gè)主要組件:列:每列代表由表建模的對(duì)象的某種特性,例如,ー個(gè)部件表有ID歹リ、顏色列和重量列。行:每行代表由表建模的對(duì)象的個(gè)別事件。例如,部件表(見圖3.6)中公司運(yùn)送的每個(gè)部件均占一行。數(shù)據(jù)類型因?yàn)槊恳涣卸即韺?duì)象的ー個(gè)特性,所以一列中每個(gè)事件的數(shù)據(jù)均相似。列屬性中有一個(gè)稱為列數(shù)據(jù)類型的屬性,用于定義該列可以包含的數(shù)據(jù)類型。SQLServer有多種可指定給列的基本數(shù)據(jù)類型:Section4數(shù)據(jù)倉庫數(shù)據(jù)倉庫概述單位在正常的業(yè)務(wù)運(yùn)作過程中需要收集數(shù)據(jù)。數(shù)據(jù)倉庫的目的是合并和組織這些數(shù)據(jù),以便對(duì)其進(jìn)行分析并用來支持業(yè)務(wù)決策。在許多情況下,數(shù)據(jù)倉庫包含單位的動(dòng)態(tài)歷史記錄。數(shù)據(jù)倉庫通常包含歷史數(shù)據(jù),這些數(shù)據(jù)經(jīng)常是從各種完全不同的來源收集的(如聯(lián)機(jī)事務(wù)處理(OLTP)系統(tǒng)、傳統(tǒng)系統(tǒng)、文本文件或電子表格)。數(shù)據(jù)倉庫組合這些數(shù)據(jù),對(duì)其進(jìn)行清理使其準(zhǔn)確一致,并進(jìn)行組織使其便于輕松高效地查詢。有些數(shù)據(jù)倉庫定義包括多個(gè)元素,如數(shù)據(jù)準(zhǔn)備區(qū)、清理進(jìn)程、含有數(shù)據(jù)倉庫數(shù)據(jù)的數(shù)據(jù)庫以及組織數(shù)據(jù)并將其提供給客戶端應(yīng)用程序的工具。有些定義則將數(shù)據(jù)倉庫限制為包含數(shù)據(jù)倉庫數(shù)據(jù)的數(shù)據(jù)庫。在大型數(shù)據(jù)倉庫應(yīng)用程序中,通常將數(shù)據(jù)分段為數(shù)據(jù)集市的專用組件,而數(shù)據(jù)集市處理單位的個(gè)別組件。有些定義將數(shù)據(jù)集市作為數(shù)據(jù)倉庫的一部分;有些定義則將其作為單獨(dú)的實(shí)體。術(shù)語“數(shù)據(jù)倉庫”的本
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 順利通過Adobe設(shè)計(jì)師考試攻略試題及答案
- 計(jì)量器具管理規(guī)定試題及答案
- 考試準(zhǔn)備電氣工程師試題及答案
- 細(xì)讀2024年電氣工程師考試大綱試題及答案
- 2025建筑拆除工程安全施工合同
- 不過退款協(xié)議合同范例
- 信陽雪佛蘭購車合同標(biāo)準(zhǔn)文本
- 元器件維修合同范例
- 企業(yè)回購股合同范例
- 2025離職員工合同終止后的工資結(jié)算問題
- 太陽能光伏電站施工中的質(zhì)量控制要點(diǎn)考核試卷
- UL982標(biāo)準(zhǔn)中文版-2019電動(dòng)家用食品制備機(jī)第七版
- 生態(tài)環(huán)境數(shù)字化治理的杭州創(chuàng)新與經(jīng)驗(yàn)
- 2023年山東省濟(jì)南市中考語文試卷
- 建筑起重信號(hào)司索工試題庫(附答案)
- Unit1-Unit3 (單元測(cè)試)-2024-2025學(xué)年人教PEP版(2024)英語三年級(jí)上冊(cè)
- 一起干活安全協(xié)議書
- 六上 Unit 1 Part A 課件人教版六年級(jí)英語
- 從心理學(xué)角度談醫(yī)患溝通
- 酒店裝修工程保修條款
- 常用焊管規(guī)格表
評(píng)論
0/150
提交評(píng)論