



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