日韩偷拍一区二区,国产香蕉久久精品综合网,亚洲激情五月婷婷,欧美日韩国产不卡

在線客服
大學(xué)計(jì)算機(jī)基礎(chǔ)教程圖書
人氣:35

大學(xué)計(jì)算機(jī)基礎(chǔ)教程

以培養(yǎng)計(jì)算思維能力為目標(biāo),以計(jì)算機(jī)中信息的表示、存儲、處理和傳輸為主線,以Python、SQLite等為工具,講解大學(xué)計(jì)算機(jī)基礎(chǔ)課程涵蓋的知識點(diǎn)。

內(nèi)容簡介

本書以培養(yǎng)學(xué)生的計(jì)算思維能力為目標(biāo),以計(jì)算機(jī)中信息的表示、存儲、壓縮、處理和傳輸為主線,以易得易用且前景看好的Python、SQLite等語言和軟件為工具,系統(tǒng)講解了“大學(xué)計(jì)算機(jī)基礎(chǔ)”課程涵蓋的知識和技術(shù)。本書的主要內(nèi)容包括3個(gè)方面: 計(jì)算機(jī)軟件、硬件的概念及基本工作方式;算法的概念、算法與數(shù)據(jù)結(jié)構(gòu)以及常用算法的基本思想;數(shù)據(jù)庫系統(tǒng)的概念、工作方式及基本操作方法。 本書著重講解計(jì)算機(jī)科學(xué)技術(shù)的基礎(chǔ)知識和基本思想方法,對涉及的程序設(shè)計(jì)語言和軟件工具的介紹也力圖、清晰,便于讀者學(xué)習(xí)和運(yùn)用。本書可用作高等院校非計(jì)算機(jī)專業(yè)“大學(xué)計(jì)算機(jī)基礎(chǔ)”課程的教材,也可作為科技工作者或其他工作人員的參考書。本書封面貼有清華大學(xué)出版社防偽標(biāo)簽,無標(biāo)簽者不得銷售。

編輯推薦

本書作者長期從事計(jì)算機(jī)基礎(chǔ)課的教學(xué)工作,具有豐富的教學(xué)、科研經(jīng)驗(yàn),編寫的教材符合教學(xué)規(guī)律,已被多所高校選用。

目錄

目錄

大學(xué)計(jì)算機(jī)基礎(chǔ)教程第1章計(jì)算機(jī)與信息化社會1

1.1計(jì)算機(jī)的誕生和發(fā)展1

1.2了解計(jì)算機(jī)3

1.2.1計(jì)算機(jī)是如何工作的3

1.2.2什么是程序設(shè)計(jì)語言5

1.2.3什么是機(jī)器語言6

1.2.4什么是匯編語言7

1.2.5什么是高級語言8

1.3信息化生存9

1.3.1從互聯(lián)網(wǎng)思維談起9

1.3.2無所不在的計(jì)算設(shè)備12

1.3.3無遠(yuǎn)弗屆的云計(jì)算13

1.3.4與人綁定15

1.3.5線上到線下17

習(xí)題119

第2章Python語言20

2.1Python編程環(huán)境和解釋器20

2.1.1Python編程環(huán)境的使用20

2.1.2Python程序的一般結(jié)構(gòu)22

2.1.3Python解釋器的使用23

2.2數(shù)據(jù)的表示及輸入輸出26

2.2.1常量與變量26

2.2.2數(shù)據(jù)的輸入輸出28

2.2.3常用函數(shù)29

2.2.4運(yùn)算符與表達(dá)式31

2.3序列34

2.3.1字符串34

2.3.2列表36

2.3.3元組37

2.3.4字典39

2.4程序的控制結(jié)構(gòu)40

2.4.1分支語句40

2.4.2while循環(huán)語句41

2.4.3for循環(huán)語句42

2.4.4用戶自定義函數(shù)44

2.4.5模塊46

2.5類和對象47

2.5.1類的定義和使用48

2.5.2面向?qū)ο蟪绦蛟O(shè)計(jì)方法50

2.5.3類的繼承性52

2.5.4異常處理54

習(xí)題256

大學(xué)計(jì)算機(jī)基礎(chǔ)教程目錄

第3章數(shù)據(jù)的計(jì)算機(jī)表示61

3.1邏輯電路及邏輯運(yùn)算61

3.1.1門電路及基本邏輯運(yùn)算61

3.1.2組合邏輯電路63

3.1.3時(shí)序邏輯電路64

3.2數(shù)值的計(jì)算機(jī)表示67

3.2.1二進(jìn)制數(shù)68

3.2.2十六進(jìn)制數(shù)及數(shù)制轉(zhuǎn)換70

3.2.3數(shù)的補(bǔ)碼表示71

3.2.4定點(diǎn)數(shù)73

3.2.5浮點(diǎn)數(shù)74

3.2.6IEEE標(biāo)準(zhǔn)浮點(diǎn)數(shù)76

3.2.7BCD碼79

3.3文字的計(jì)算機(jī)表示81

3.3.1ASCII碼81

3.3.2GB 2312—1980漢字編碼標(biāo)準(zhǔn)83

3.3.3GB 18030漢字編碼標(biāo)準(zhǔn)84

3.3.4Unicode標(biāo)準(zhǔn)88

3.3.5Unicode字符的存儲格式90

3.4圖片與聲音的數(shù)字化93

3.4.1數(shù)字化圖形和圖像93

3.4.2圖像的采樣及存儲96

3.4.3數(shù)字化音頻98

3.5信息量與數(shù)據(jù)壓縮101

3.5.1信息量101

3.5.2信息熵103

3.5.3信息熵與數(shù)據(jù)壓縮105

3.5.4熵編碼算法108

習(xí)題3112

第4章數(shù)據(jù)結(jié)構(gòu)115

4.1數(shù)據(jù)結(jié)構(gòu)的概念115

4.1.1數(shù)據(jù)及數(shù)據(jù)元素115

4.1.2數(shù)據(jù)結(jié)構(gòu)的研究對象117

4.1.3數(shù)據(jù)結(jié)構(gòu)的定義118

4.2線性表119

4.2.1線性表的概念120

4.2.2線性表的順序存儲結(jié)構(gòu)121

4.2.3線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)123

4.2.4棧127

4.2.5隊(duì)列129

4.3樹與二叉樹131

4.3.1樹的概念131

4.3.2二叉樹的概念及性質(zhì)133

4.3.3二叉樹的存儲結(jié)構(gòu)135

4.3.4二叉樹的遍歷136

4.4圖138

4.4.1圖的概念138

4.4.2圖的存儲結(jié)構(gòu)140

4.4.3圖的遍歷142

4.5查找143

4.5.1查找的概念144

4.5.2順序查找145

4.5.3折半查找147

4.6排序148

4.6.1排序的概念148

4.6.2插入排序150

4.6.3交換排序152

4.6.4選擇排序154

習(xí)題4156

第5章數(shù)據(jù)庫160

5.1數(shù)據(jù)庫系統(tǒng)組成與結(jié)構(gòu)160

5.1.1數(shù)據(jù)庫的概念160

5.1.2數(shù)據(jù)庫系統(tǒng)組成163

5.1.3數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)165

5.2數(shù)據(jù)庫管理系統(tǒng)167

5.2.1關(guān)系數(shù)據(jù)庫167

5.2.2數(shù)據(jù)庫管理系統(tǒng)的功能170

5.2.3常見數(shù)據(jù)庫管理系統(tǒng)171

5.3SQL語言及數(shù)據(jù)庫操作173

5.3.1SQL語言的功能與特點(diǎn)174

5.3.2SQL語言的語句175

5.3.3創(chuàng)建SQLite數(shù)據(jù)庫179

5.3.4SQLite數(shù)據(jù)庫的數(shù)據(jù)查詢與更新183

5.3.5Python程序操作SQLite數(shù)據(jù)庫185

習(xí)題5188

第6章算法設(shè)計(jì)191

6.1算法的特征及評價(jià)191

6.1.1算法的概念191

6.1.2算法的特征193

6.1.3算法求解與解析解194

6.1.4算法的表示196

6.1.5算法的復(fù)雜度198

6.2遞推、迭代和遞歸202

6.2.1遞推法202

6.2.2遞推法與代數(shù)解法205

6.2.3迭代法207

6.2.4遞歸法208

6.2.5尾遞歸法211

6.3構(gòu)造算法的常用方法212

6.3.1窮舉法212

6.3.2貪心法215

6.3.3分治法218

6.3.4動態(tài)規(guī)劃算法222

6.3.5回溯法228

6.3.6分支限界法234

6.3.7分支限界法求解單源最短路徑問題241

習(xí)題6245

第7章數(shù)據(jù)的傳輸248

7.1計(jì)算機(jī)網(wǎng)絡(luò)概述248

7.1.1計(jì)算機(jī)網(wǎng)絡(luò)的歷史發(fā)展248

7.1.2計(jì)算機(jī)網(wǎng)絡(luò)的功能250

7.1.3計(jì)算機(jī)網(wǎng)絡(luò)的傳輸介質(zhì)251

7.1.4網(wǎng)絡(luò)體系結(jié)構(gòu)與網(wǎng)絡(luò)協(xié)議252

7.2編碼與加密255

7.2.1編碼與解碼255

7.2.2檢錯(cuò)與糾錯(cuò)260

7.2.3加密與解密技術(shù)262

7.3網(wǎng)絡(luò)結(jié)構(gòu)266

7.3.1網(wǎng)絡(luò)的分類266

7.3.2網(wǎng)絡(luò)地址269

習(xí)題7272

第8章操作系統(tǒng)275

8.1操作系統(tǒng)概述275

8.1.1操作系統(tǒng)的歷史回顧275

8.1.2無所不在的操作系統(tǒng)277

8.1.3操作系統(tǒng)的目標(biāo)與功能279

8.2進(jìn)程與線程281

8.2.1進(jìn)程的概念281

8.2.2線程的概念283

8.2.3多線程285

8.2.4生產(chǎn)者消費(fèi)者問題286

8.3死鎖問題291

8.3.1死鎖的概念291

8.3.2銀行家算法292

8.4設(shè)備管理294

8.4.1I/O控制方式294

8.4.2緩沖技術(shù)296

8.5分布式操作系統(tǒng)299

習(xí)題8301

參考文獻(xiàn)303

在線預(yù)覽

第5章數(shù)據(jù)庫數(shù)據(jù)庫技術(shù)是使用計(jì)算機(jī)進(jìn)行數(shù)據(jù)處理的主要技術(shù)。它廣泛地應(yīng)用于人類社會的各個(gè)方面。在以大批量數(shù)據(jù)的存儲、組織和使用為基本特征的倉庫管理、財(cái)務(wù)管理、人事檔案管理以及企事業(yè)單位的生產(chǎn)經(jīng)營管理等事務(wù)處理活動中,都要使用稱為DBMS(Data Base Management System,數(shù)據(jù)庫管理系統(tǒng))的軟件來構(gòu)建專門的數(shù)據(jù)庫系統(tǒng),并在DBMS的控制下組織和使用數(shù)據(jù),從而執(zhí)行管理任務(wù)。不僅如此,在情報(bào)檢索、專家系統(tǒng)、人工智能、計(jì)算機(jī)輔助設(shè)計(jì)等各種非數(shù)值計(jì)算領(lǐng)域以及基于計(jì)算機(jī)網(wǎng)絡(luò)的信息檢索、遠(yuǎn)程信息服務(wù)、分布式數(shù)據(jù)處理、復(fù)雜市場的多方面跟蹤監(jiān)測等方面,數(shù)據(jù)庫技術(shù)也都得到了廣泛應(yīng)用。時(shí)至今日,基于數(shù)據(jù)庫技術(shù)的管理信息系統(tǒng)、辦公自動化系統(tǒng)以及決策支持系統(tǒng)等已經(jīng)成為企業(yè)、行業(yè)或地區(qū)從事生產(chǎn)活動以及日常生活的重要基礎(chǔ)。5.1數(shù)據(jù)庫系統(tǒng)組成與結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)是一種有組織地、動態(tài)地存儲大量關(guān)聯(lián)數(shù)據(jù),方便用戶訪問的計(jì)算機(jī)軟件和硬件資源組成的系統(tǒng)。存儲于數(shù)據(jù)庫中的數(shù)據(jù)與應(yīng)用程序是相互獨(dú)立的。數(shù)據(jù)是按照某種數(shù)據(jù)模型組織在一起,保存在數(shù)據(jù)庫文件中的。數(shù)據(jù)庫系統(tǒng)對數(shù)據(jù)的完整性、性、安全性提供統(tǒng)一而有效的管理手段。并對用戶提供管理和控制數(shù)據(jù)的各種簡單明了的操作命令或者程序設(shè)計(jì)語言。用戶使用這些操作命令或者編寫程序來向數(shù)據(jù)庫發(fā)出查詢、修改、統(tǒng)計(jì)等各種命令,以得到滿足不同需要的數(shù)據(jù)。數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)可以從多種不同的層次或角度來考察。從DBMS的角度看,數(shù)據(jù)庫系統(tǒng)通常采用三級模式結(jié)構(gòu)。5.1.1數(shù)據(jù)庫的概念現(xiàn)代社會中,需要管理和利用的數(shù)據(jù)資源越來越龐雜。例如,一所大學(xué)要將描述學(xué)生、課程、教師以及學(xué)生選課、教師授課等各種事物的數(shù)據(jù)有機(jī)地組織起來,以便隨時(shí)查詢、更新和抽取,從而指導(dǎo)日常教學(xué);一個(gè)商貿(mào)公司要將描述商品、客戶、雇員和訂單的數(shù)據(jù)組織起來,用于指導(dǎo)經(jīng)營活動。為了有效地收集、組織、存儲、處理和利用來自于生產(chǎn)活動和日常生活中的各種數(shù)據(jù),數(shù)據(jù)庫技術(shù)應(yīng)運(yùn)而生并成為當(dāng)今數(shù)據(jù)處理的主要技術(shù)。簡單地說,數(shù)據(jù)庫是按照一定的方式來組織、存儲和管理數(shù)據(jù)的“倉庫”。數(shù)據(jù)庫是由稱之為DBMS的軟件來統(tǒng)一管理的。用戶根據(jù)自己的業(yè)務(wù)需求選擇某種適用的DBMS(如Microsoft SQL Server、MySQL等),按照它所提供的操作界面來創(chuàng)建數(shù)據(jù)庫并隨時(shí)存取或更新其中的數(shù)據(jù)。一般來說,一個(gè)數(shù)據(jù)庫是基于相應(yīng)業(yè)務(wù)所涉及的多個(gè)部門或個(gè)人之間的所有數(shù)據(jù)而構(gòu)建的,其中的數(shù)據(jù)自然要為每個(gè)部門或個(gè)人用戶所共享。當(dāng)然,不同部門和個(gè)人之間需要存放和操縱的數(shù)據(jù)的范圍可以有所不同。例51一所大學(xué)的數(shù)據(jù)庫。大學(xué)需要存儲和處理教師、學(xué)生、課程等各方面的相關(guān)數(shù)據(jù),這些數(shù)據(jù)存儲于通過某種DBMS創(chuàng)建的數(shù)據(jù)庫中,并分別由人事部門、教務(wù)部門、學(xué)生管理部門和學(xué)術(shù)委員會根據(jù)自己的業(yè)務(wù)來存取和操縱相關(guān)范圍內(nèi)的數(shù)據(jù),如圖51所示。大學(xué)計(jì)算機(jī)基礎(chǔ)教程第5章數(shù)據(jù)庫圖51一所大學(xué)的數(shù)據(jù)庫系統(tǒng)目前,數(shù)據(jù)庫系統(tǒng)基本上都是按照“關(guān)系數(shù)據(jù)模型”來組織數(shù)據(jù)的。這種方式將滿足所有下屬部門業(yè)務(wù)需求的數(shù)據(jù)存放在多個(gè)稱為“關(guān)系”的數(shù)據(jù)表中,相關(guān)人員通過DBMS來存取、查詢或更新(插入、刪除或修改)其中的數(shù)據(jù)。例如,可以將學(xué)生、課程和選課的相關(guān)數(shù)據(jù)分別存放在如圖52所示的3個(gè)表中。圖52數(shù)據(jù)庫中的學(xué)生表、課程表和選課表這3個(gè)表中,有些數(shù)據(jù)項(xiàng)(欄目、列)是同名且存放相同類型數(shù)據(jù)的,可用于建立表和表之間的聯(lián)系,如圖53所示。圖53數(shù)據(jù)庫中3個(gè)表之間的聯(lián)系1. 數(shù)據(jù)庫中的表數(shù)據(jù)庫(特指按照關(guān)系模型創(chuàng)建的數(shù)據(jù)庫)的基本成分是一些存放數(shù)據(jù)的表。數(shù)據(jù)庫中的表從邏輯結(jié)構(gòu)上看相當(dāng)簡單,它是由若干行和列簡單交叉形成的,不能表中套表。要求表中每個(gè)單元都只包含一個(gè)數(shù)據(jù),可以是字符串、數(shù)字、貨幣值、邏輯值、時(shí)間等較為簡單的數(shù)據(jù)。表中的一行稱為一個(gè)記錄。記錄的集合即為表的內(nèi)容。一個(gè)記錄的內(nèi)容是描述一類事物中的一個(gè)具體事物的一組數(shù)據(jù),如一個(gè)學(xué)生的學(xué)號、姓名、入學(xué)分等。一般地,一個(gè)記錄由多個(gè)數(shù)據(jù)項(xiàng)構(gòu)成,數(shù)據(jù)項(xiàng)的名稱、順序、數(shù)據(jù)類型等由表的標(biāo)題決定。表名以及表的標(biāo)題是相對固定的,而表中記錄的數(shù)量和多少則是經(jīng)常變化的。注意: 數(shù)據(jù)庫中的表與外形相似的Excel中的“工作表”是不一樣的。工作表可看作單元格的集合,每個(gè)單元格都可以隨意存放不同類型的數(shù)據(jù),也可以使用公式求得數(shù)據(jù)。而數(shù)據(jù)庫表中的每個(gè)記錄都是相同結(jié)構(gòu)的,每個(gè)單元格都受標(biāo)題的約束,只能存放符合條件的數(shù)據(jù)。表與表之間可以通過彼此都具有的相同字段聯(lián)系起來。例如,學(xué)生表和選課表都有“學(xué)號”字段,學(xué)生表中一條記錄可以關(guān)聯(lián)選課表中多條記錄。這樣就不必在選課表中重復(fù)包含學(xué)生的其他信息,減少了數(shù)據(jù)冗余。2. 數(shù)據(jù)庫系統(tǒng)的功能數(shù)據(jù)庫系統(tǒng)是將累積了一定數(shù)量的記錄管理起來以便再利用的數(shù)據(jù)處理系統(tǒng),故不難推測,建立數(shù)據(jù)庫的主要目的是以下幾個(gè): (1) 輸入記錄。規(guī)定了表的格式或者說創(chuàng)建了表的結(jié)構(gòu)之后,就可以按照這種規(guī)定來“填充”表中的數(shù)據(jù)了。DBMS提供相應(yīng)的輸入方式(操作命令或圖形用戶界面),使得用戶可以方便地輸入每個(gè)記錄。例如,在Microsoft Access中,打開類似于圖52所示的“學(xué)生”表,即可逐個(gè)輸入每個(gè)學(xué)生的記錄。(2) 輸出報(bào)表。報(bào)表是按照某種條件篩選記錄之后形成的記錄的集合,可以打印成文書、形成電子文檔或者作為某種數(shù)據(jù)處理系統(tǒng)的加工對象。DBMS提供輸出報(bào)表的各種方式,用戶可以按照需求選擇不同的內(nèi)容以及輸出格式。例如,可以逐行打印出某個(gè)班級所有學(xué)生某門課程的成績。(3) 查詢。按照DBMS規(guī)定的格式設(shè)置查詢條件并找出符合條件的記錄。例如,輸入一個(gè)SQL語言(將在5.3節(jié)講解)的查詢語句作為操作命令:SELECT課程號, 課程名, 學(xué)分FROM課程WHERE學(xué)分>5即可在課程表中查詢那些5個(gè)以上學(xué)分的課程的課程號、課程名和學(xué)分。(4) 修改記錄。現(xiàn)實(shí)世界中的事物是不斷變化的,相應(yīng)數(shù)據(jù)庫中的數(shù)據(jù)也應(yīng)該隨之而變。例如,一所大學(xué)中,每年都有畢業(yè)的學(xué)生和新入學(xué)的學(xué)生,數(shù)據(jù)庫中的學(xué)生表就應(yīng)該隨時(shí)調(diào)整。相關(guān)人員可以按照DBMS所提供的方法(SQL語言的數(shù)據(jù)操縱語句或圖形化用戶操作界面)來進(jìn)行調(diào)整。5.1.2數(shù)據(jù)庫系統(tǒng)組成數(shù)據(jù)庫系統(tǒng)是一種按照數(shù)據(jù)庫方式存儲、管理數(shù)據(jù)并向用戶或應(yīng)用系統(tǒng)提供數(shù)據(jù)支持的計(jì)算機(jī)應(yīng)用系統(tǒng),是存儲數(shù)據(jù)的介質(zhì)、數(shù)據(jù)處理的對象和管理系統(tǒng)的集合體。圖54數(shù)據(jù)庫系統(tǒng)這種系統(tǒng)通常由存儲數(shù)據(jù)的數(shù)據(jù)庫、操縱數(shù)據(jù)的應(yīng)用程序以及數(shù)據(jù)庫管理員(DBA)等各種人員組成,在DBMS軟件的統(tǒng)一管理下工作,如圖54所示。1. 數(shù)據(jù)庫數(shù)據(jù)庫是一個(gè)單位或組織按某種特定方式存儲在計(jì)算機(jī)內(nèi)的數(shù)據(jù)的集合,如工廠中的產(chǎn)品數(shù)據(jù),政府部門的計(jì)劃統(tǒng)計(jì)數(shù)據(jù),醫(yī)院中的病人、病歷數(shù)據(jù)等。這個(gè)數(shù)據(jù)集合按照能夠反映出數(shù)據(jù)的自然屬性、實(shí)際聯(lián)系以及應(yīng)用處理要求的方式有機(jī)地組織成一個(gè)整體存儲,并提供給該組織或單位內(nèi)的所有應(yīng)用系統(tǒng)(或人員)共享使用。應(yīng)該注意的是: 數(shù)據(jù)庫中的數(shù)據(jù)是一種處理用的中間數(shù)據(jù),稱為業(yè)務(wù)數(shù)據(jù)。它與輸入輸出數(shù)據(jù)不同。當(dāng)然,可以將輸入數(shù)據(jù)轉(zhuǎn)變?yōu)闃I(yè)務(wù)數(shù)據(jù)存入數(shù)據(jù)庫中,也可以從數(shù)據(jù)庫中的數(shù)據(jù)推導(dǎo)產(chǎn)生輸出數(shù)據(jù)。數(shù)據(jù)庫通常由兩大部分組成: 一是有關(guān)應(yīng)用所需要的業(yè)務(wù)數(shù)據(jù)的集合,稱為物理數(shù)據(jù)庫,它是數(shù)據(jù)庫的主體;二是關(guān)于各級數(shù)據(jù)結(jié)構(gòu)的描述數(shù)據(jù),稱為描述數(shù)據(jù)庫,通常由一個(gè)數(shù)據(jù)字典系統(tǒng)管理。運(yùn)行數(shù)據(jù)庫系統(tǒng)的計(jì)算機(jī)要有足夠大的內(nèi)存儲器、大容量磁盤等聯(lián)機(jī)存儲設(shè)備和較高速的數(shù)據(jù)傳輸硬件設(shè)備,以支持對外存儲器的頻繁訪問,還需要有足夠數(shù)量的脫機(jī)存儲介質(zhì),如軟盤、外接式硬盤、磁帶、可擦寫式光盤等,以存放數(shù)據(jù)庫備份。2. DBMS及其軟件支持系統(tǒng)DBMS(數(shù)據(jù)庫管理系統(tǒng))是數(shù)據(jù)庫系統(tǒng)的核心。DBMS一般是通用軟件,由專門的廠家提供。DBMS負(fù)責(zé)統(tǒng)一管理和控制數(shù)據(jù)庫,執(zhí)行用戶或應(yīng)用系統(tǒng)交給的定義、構(gòu)造和操縱數(shù)據(jù)庫的任務(wù),并將執(zhí)行的結(jié)果提供給用戶或應(yīng)用系統(tǒng)。DBMS是在操作系統(tǒng)(可能還包括某些實(shí)用程序)支持下工作的。因?yàn)橛?jì)算機(jī)系統(tǒng)的硬件和軟件資源是由操作系統(tǒng)統(tǒng)一管理的,故當(dāng)DBMS進(jìn)行分配內(nèi)存、創(chuàng)建或撤銷進(jìn)程、訪問磁盤等操作時(shí),必須通過系統(tǒng)調(diào)用請求操作系統(tǒng)為其服務(wù)。操作系統(tǒng)從磁盤取出來的是物理塊,對物理塊的解釋則是由DBMS完成的。數(shù)據(jù)庫系統(tǒng)中的軟件通常還包括應(yīng)用程序,數(shù)據(jù)庫應(yīng)用程序是通過DBMS訪問數(shù)據(jù)庫中的數(shù)據(jù)并向用戶提供服務(wù)的程序。簡單地說,它是允許用戶插入、刪除和修改并報(bào)告數(shù)據(jù)庫中數(shù)據(jù)的程序。這種程序由程序員通過程序設(shè)計(jì)語言或某些軟件開發(fā)工具(如Python、Java、Delphi、Visual C 等),按照用戶的要求編寫的。DBMS將數(shù)據(jù)和操縱數(shù)據(jù)的程序隔離開來。程序必須與DBMS接口才能對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行查詢、插入、刪除、更新等各種操作。因而可以由DBMS集中實(shí)施安全標(biāo)準(zhǔn),以保障數(shù)據(jù)的一致性和完整性。另外,用戶不必考慮數(shù)據(jù)的存儲結(jié)構(gòu),可以將注意力集中在數(shù)據(jù)本身的組織和使用上。3. 人員開發(fā)、管理和使用數(shù)據(jù)庫系統(tǒng)的人員主要有數(shù)據(jù)庫管理員、系統(tǒng)分析員、數(shù)據(jù)庫設(shè)計(jì)人員、應(yīng)用程序員和最終用戶。(1) 數(shù)據(jù)庫管理員(DataBase Administrator,DBA)。對于較大規(guī)模的數(shù)據(jù)庫系統(tǒng)來說,必須有人負(fù)責(zé)建立、維護(hù)和管理數(shù)據(jù)庫系統(tǒng),承擔(dān)這種任務(wù)的人員稱為DBA。DBA是控制數(shù)據(jù)整體結(jié)構(gòu)的人,負(fù)責(zé)保護(hù)和控制數(shù)據(jù),使數(shù)據(jù)庫能為任何有權(quán)使用的人所共享。DBA的職責(zé)包括: 定義并存儲數(shù)據(jù)庫的內(nèi)容,監(jiān)督和控制數(shù)據(jù)庫的使用,負(fù)責(zé)數(shù)據(jù)庫的日常維護(hù),必要時(shí)重新組織和改進(jìn)數(shù)據(jù)庫等。DBA負(fù)責(zé)維護(hù)數(shù)據(jù)庫,但對數(shù)據(jù)庫的內(nèi)容則不負(fù)責(zé)。而且,為了保障數(shù)據(jù)的安全性,數(shù)據(jù)庫的內(nèi)容對DBA應(yīng)該是封鎖的。例如,DBA知道職工記錄類型中含有工資數(shù)據(jù)項(xiàng),他可以根據(jù)應(yīng)用的需要將該數(shù)據(jù)項(xiàng)類型由6位數(shù)字型擴(kuò)充到7位數(shù)字型,但是他不能讀取或修改任一職工的工資值。(2) 系統(tǒng)分析員和數(shù)據(jù)庫設(shè)計(jì)人員。系統(tǒng)分析員負(fù)責(zé)應(yīng)用系統(tǒng)的需求分析和規(guī)范說明,要與用戶及DBA配合,確定系統(tǒng)的軟件和硬件配置,并參與數(shù)據(jù)庫的概要設(shè)計(jì)。數(shù)據(jù)庫設(shè)計(jì)人員負(fù)責(zé)確定數(shù)據(jù)庫中的數(shù)據(jù),并在用戶需求調(diào)查和系統(tǒng)分析的基礎(chǔ)上,設(shè)計(jì)出適用于各種不同種類的用戶需求的數(shù)據(jù)庫。在很多情況下,數(shù)據(jù)庫設(shè)計(jì)人員是由DBA擔(dān)任的。(3) 應(yīng)用程序員。他們具備一定的計(jì)算機(jī)專業(yè)知識,可以編寫應(yīng)用程序來存取并處理數(shù)據(jù)庫中的數(shù)據(jù)。例如,庫存盤點(diǎn)處理、工資處理等通常都是這類用戶完成的。(4) 最終用戶。最終用戶指的是為了查詢、更新以及產(chǎn)生報(bào)表而訪問數(shù)據(jù)庫的人們,數(shù)據(jù)庫主要是為他們的使用而存在的。最終用戶可分為以下3類:  偶然用戶。主要包括一些中層或高層管理者或其他偶爾瀏覽數(shù)據(jù)庫的人員。他們通過終端設(shè)備,使用簡便的查詢方法(命令或菜單項(xiàng)、工具按鈕)來訪問數(shù)據(jù)庫。他們對數(shù)據(jù)庫的操作以數(shù)據(jù)檢索為主,例如,詢問庫存物資的金額、某個(gè)人的月薪等。 簡單用戶。這類用戶較多,銀行職員、旅館總臺服務(wù)員、航空公司訂票人員等都屬于這類用戶。他們的主要工作是經(jīng)常性地查詢和修改數(shù)據(jù)庫,一般都是通過應(yīng)用程序員設(shè)計(jì)的應(yīng)用系統(tǒng)(程序)來使用數(shù)據(jù)庫的。 復(fù)雜用戶。包括工程師、科技工作者、經(jīng)濟(jì)分析專家等博學(xué)的最終用戶。他們地了解自己工作范圍內(nèi)的相關(guān)知識,熟悉DBMS的各種功能,能夠直接使用數(shù)據(jù)庫語言,甚至有能力編寫自己的程序來訪問數(shù)據(jù)庫,完成復(fù)雜的應(yīng)用任務(wù)。典型的DBMS會提供多種存取數(shù)據(jù)庫的工具。簡單用戶很容易掌握它們的使用方法;偶然用戶只需會用一些經(jīng)常用到的工具即可;博學(xué)用戶則應(yīng)盡量理解大部分DBMS工具的使用方法,以滿足自己的復(fù)雜需求。5.1.3數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)從DBMS的角度看,數(shù)據(jù)庫系統(tǒng)有一個(gè)嚴(yán)謹(jǐn)?shù)捏w系結(jié)構(gòu),從而保障其功能得以實(shí)現(xiàn)。根據(jù)ANSI/SPARS(美國標(biāo)準(zhǔn)化協(xié)會和標(biāo)準(zhǔn)計(jì)劃與需求委員會)提出的建議,數(shù)據(jù)庫系統(tǒng)是三級模式和二級映像結(jié)構(gòu),如圖55所示。圖55數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)1. 三種模式數(shù)據(jù)庫的基本結(jié)構(gòu)是由用戶級、概念級和物理級組成的三級結(jié)構(gòu),分別稱為概念模式、外模式和內(nèi)模式。(1) 概念模式。簡稱模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,即數(shù)據(jù)庫所采用的數(shù)據(jù)模型。一個(gè)數(shù)據(jù)庫只有一個(gè)概念模式,它是由數(shù)據(jù)庫設(shè)計(jì)者綜合所有用戶數(shù)據(jù),按照統(tǒng)一的觀點(diǎn)構(gòu)造而成的。在定義模式時(shí),不僅要定義數(shù)據(jù)的邏輯結(jié)構(gòu),例如,數(shù)據(jù)記錄由哪些數(shù)據(jù)項(xiàng)組成,數(shù)據(jù)項(xiàng)的名字、類型、取值范圍等,而且要定義數(shù)據(jù)之間的聯(lián)系,定義與數(shù)據(jù)有關(guān)的安全性、完整性要求。DBMS提供模式描述語言DDL來定義概念模式。概念模式是數(shù)據(jù)庫系統(tǒng)模式的中間層,既不涉及數(shù)據(jù)庫物理存儲細(xì)節(jié)和硬件環(huán)境,也與具體的應(yīng)用程序,與所使用的程序設(shè)計(jì)語言或應(yīng)用開發(fā)工具無關(guān)。它由數(shù)據(jù)庫管理員(DBA)統(tǒng)一組織管理,故又稱為DBA視圖。(2) 外模式。又稱子模式,它是數(shù)據(jù)庫用戶(包括應(yīng)用程序員和最終用戶)能夠看到和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與具體的應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。外模式通常是概念模式的子集,一個(gè)數(shù)據(jù)庫可以有多個(gè)外模式。外模式的描述隨用戶的應(yīng)用需求、處理數(shù)據(jù)的方式的不同而不同,即使是來自模式中同樣的數(shù)據(jù),在外模式中的結(jié)構(gòu)、類型、長度、保密級別等都可以不同。另外,同一外模式也可為某一用戶的多個(gè)應(yīng)用系統(tǒng)所使用,但一個(gè)應(yīng)用程序只能使用一個(gè)外模式。(3) 內(nèi)模式。又稱存儲模式或物理模式,它是數(shù)據(jù)的物理結(jié)構(gòu)和存儲方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式。例如,記錄是順序存儲還是按B樹結(jié)構(gòu)或按Hash(散列)方式存儲,索引按什么方式組織,數(shù)據(jù)是否壓縮存儲、是否加密,數(shù)據(jù)的存儲記錄結(jié)構(gòu)有什么規(guī)定,等等。一個(gè)數(shù)據(jù)庫只有一個(gè)內(nèi)模式。從形式上來看,一個(gè)數(shù)據(jù)庫就是存放在外存儲器上的一個(gè)或多個(gè)物理文件的集合。無論哪一級模式都只是處理數(shù)據(jù)的一個(gè)框架,按這些框架填入的數(shù)據(jù)才是數(shù)據(jù)庫的內(nèi)容。以外模式、概念模式或內(nèi)模式為框架的數(shù)據(jù)庫分別稱為用戶數(shù)據(jù)庫、概念數(shù)據(jù)庫和物理數(shù)據(jù)庫。物理數(shù)據(jù)庫是實(shí)際存放在外存儲器里的數(shù)據(jù),而概念數(shù)據(jù)庫和用戶數(shù)據(jù)庫只不過是對物理數(shù)據(jù)庫的抽象的邏輯描述而已。用戶數(shù)據(jù)庫是概念數(shù)據(jù)庫的部分抽取;概念數(shù)據(jù)庫是物理數(shù)據(jù)庫的抽象表示;物理數(shù)據(jù)庫是概念數(shù)據(jù)庫的具體實(shí)現(xiàn)。2. 二級映像數(shù)據(jù)庫系統(tǒng)的三級模式是對數(shù)據(jù)的三個(gè)抽象級別,而數(shù)據(jù)實(shí)際上只存在于物理層。在一個(gè)基于三層模式結(jié)構(gòu)的DBMS中,每個(gè)用戶實(shí)際上只需要關(guān)注自己的外模式。因此,DBMS必須將外模式中的用戶請求轉(zhuǎn)換成概念模式中的請求,然后再將其轉(zhuǎn)換成內(nèi)模式中的請求,并根據(jù)這一請求完成在數(shù)據(jù)庫中的操作。例如,如果用戶的請求是檢索數(shù)據(jù),則先要從數(shù)據(jù)庫中抽取數(shù)據(jù),然后轉(zhuǎn)換成與用戶的外部視圖相匹配的格式。為了實(shí)現(xiàn)三個(gè)層次之間的聯(lián)系和轉(zhuǎn)換,DBMS提供了二級映像: 外模式/模式映像和模式/內(nèi)模式映像。注意: 所謂映像是用來指定映像雙方如何進(jìn)行數(shù)據(jù)轉(zhuǎn)換的對應(yīng)規(guī)則。(1) 外模式/模式映像。一個(gè)模式可以對應(yīng)多個(gè)外模式,每個(gè)外模式在數(shù)據(jù)庫系統(tǒng)中都有一個(gè)外模式/模式映像,它定義了這個(gè)外模式和模式之間的對應(yīng)關(guān)系。映像的定義包含在各自外模式的描述中。當(dāng)模式改變(如增加新的關(guān)系、屬性,改變屬性的數(shù)據(jù)類型等)時(shí),DBA會相應(yīng)地改變各個(gè)外模式/模式映像,可以使外模式保持不變,從而使得依據(jù)外模式編寫的應(yīng)用程序不必修改,這就保障了數(shù)據(jù)與程序的邏輯獨(dú)立性。(2) 模式/內(nèi)模式映像。數(shù)據(jù)庫中只有一個(gè)模式,也只有一個(gè)內(nèi)模式,故模式/內(nèi)模式映像是的,它定義了數(shù)據(jù)庫全局邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)之間的關(guān)系。模式/內(nèi)模式映像定義通常包含在模式描述中。當(dāng)數(shù)據(jù)庫的存儲結(jié)構(gòu)改變時(shí),DBA會相應(yīng)地改變模式/內(nèi)模式映像,從而使模式保持不變,也不必修改應(yīng)用程序,這就保障了數(shù)據(jù)與程序的物理獨(dú)立性。用戶根據(jù)外模式來操縱數(shù)據(jù)庫時(shí),數(shù)據(jù)庫系統(tǒng)通過外模式/模式映像使用戶數(shù)據(jù)庫與概念數(shù)據(jù)庫相聯(lián)系,又通過模式/內(nèi)模式的映像與物理數(shù)據(jù)庫相聯(lián)系,從而使用戶實(shí)際使用物理數(shù)據(jù)庫中的數(shù)據(jù)。其間的轉(zhuǎn)換工作是由DBMS完成的。5.2數(shù)據(jù)庫管理系統(tǒng)DBMS(數(shù)據(jù)庫管理系統(tǒng))是為數(shù)據(jù)庫的建立、使用和維護(hù)而配置的軟件系統(tǒng),是數(shù)據(jù)庫系統(tǒng)的核心組成部分,可看作用戶和數(shù)據(jù)庫之間的接口。目前常用的DBMS大都是關(guān)系型的,稱為RDBMS(Relational DataBase Management System,關(guān)系數(shù)據(jù)庫管理系統(tǒng))。DBMS建立在操作系統(tǒng)的基礎(chǔ)上,負(fù)責(zé)對數(shù)據(jù)庫進(jìn)行統(tǒng)一的管理和控制。數(shù)據(jù)庫系統(tǒng)的一切操作,包括查詢、更新以及各種控制等,都是通過DBMS進(jìn)行的。用戶或應(yīng)用程序發(fā)出的各種操作數(shù)據(jù)庫中數(shù)據(jù)的命令也要通過DBMS來執(zhí)行。DBMS還承擔(dān)著數(shù)據(jù)庫的維護(hù)工作。它能夠按照DBA(數(shù)據(jù)庫管理員)的規(guī)定和要求,保障數(shù)據(jù)庫的安全性和完整性。5.2.1關(guān)系數(shù)據(jù)庫目前絕大多數(shù)數(shù)據(jù)庫都是關(guān)系數(shù)據(jù)庫,即以關(guān)系(特定形式的二維數(shù)據(jù)表)的形式來表現(xiàn)數(shù)據(jù)以及數(shù)據(jù)之間的聯(lián)系,并在RDBMS的支持下進(jìn)行關(guān)系的創(chuàng)建以及其中數(shù)據(jù)的查詢、存取和更新等操作。例52Northwind數(shù)據(jù)庫。Northwind數(shù)據(jù)庫是微軟Access軟件的一個(gè)示例數(shù)據(jù)庫。其中包含虛構(gòu)的Northwind商貿(mào)公司的業(yè)務(wù)數(shù)據(jù)。該公司進(jìn)行世界范圍內(nèi)的食品采購與銷售,這些食品分屬于飲料、點(diǎn)心和調(diào)味品等幾大類,分別由多個(gè)供應(yīng)商提供,并由銷售人員通過填寫訂單銷售給客戶。所有業(yè)務(wù)數(shù)據(jù)分別存放在Northwind數(shù)據(jù)庫的“產(chǎn)品”“類別”“供應(yīng)商”“雇員”“訂單”“訂單明細(xì)”以及“客戶”等幾個(gè)表中。其中“產(chǎn)品”表和“類別”表如圖56所示。圖56Northwind數(shù)據(jù)庫的產(chǎn)品表和類別表1. 關(guān)系數(shù)據(jù)庫的層次結(jié)構(gòu)完整的關(guān)系數(shù)據(jù)庫可以分為4級: 數(shù)據(jù)庫(database)、表(table)或視圖(view)、記錄(record)、字段(field),相應(yīng)的關(guān)系理論中的術(shù)語是數(shù)據(jù)庫、關(guān)系、元組和屬性。(1) 數(shù)據(jù)庫。數(shù)據(jù)庫可按其數(shù)據(jù)存儲方式以及用戶訪問方式分為兩種: 本地?cái)?shù)據(jù)庫和遠(yuǎn)程數(shù)據(jù)庫。本地?cái)?shù)據(jù)庫(如dBASE、Access等)駐留于本機(jī)或局域網(wǎng)中。如果多個(gè)用戶并發(fā)訪問數(shù)據(jù)庫,則采取基于文件的鎖定(防沖突)策略,故又稱為基于文件的數(shù)據(jù)庫。遠(yuǎn)程數(shù)據(jù)庫通常駐留于其他計(jì)算機(jī)中,而且往往分布于不同的服務(wù)器上。用戶在自己的計(jì)算機(jī)上通過SQL(Structured Query Language,結(jié)構(gòu)化查詢語言)訪問其中的數(shù)據(jù),故又稱為SQL服務(wù)器。典型的SQL服務(wù)器有Oracle、IBM DB2、Informix以及SQL Server等。(2) 表與視圖。關(guān)系數(shù)據(jù)庫的基本成分是一些存放數(shù)據(jù)的表(行列結(jié)構(gòu)的數(shù)據(jù)集,關(guān)系理論中稱為關(guān)系)。表是由若干行若干列數(shù)據(jù)簡單交叉形成的(不能表中套表)。表中每個(gè)單元都只包含一個(gè)數(shù)據(jù),如字符串、數(shù)字、貨幣值、邏輯值、時(shí)間等。表的標(biāo)題也稱為關(guān)系模式,即組成關(guān)系的屬性的集合。數(shù)據(jù)庫中所有關(guān)系模式的集合構(gòu)成了數(shù)據(jù)庫模式。對于不同的數(shù)據(jù)庫系統(tǒng)來說,數(shù)據(jù)庫對應(yīng)物理文件的映射是不同的。例如,在dBASE和Paradox數(shù)據(jù)庫中,一個(gè)表就是一個(gè)文件,索引以及其他一些數(shù)據(jù)庫元素也都存儲在各自的文件中。而在Access和SQLite數(shù)據(jù)庫中,所有表以及其他成分都聚集在一個(gè)文件中。為了方便地使用數(shù)據(jù)庫,很多DBMS都提供對于視圖(Access中稱為查詢)的支持。視圖是能夠從一個(gè)或多個(gè)表中提取數(shù)據(jù)的數(shù)據(jù)定義。數(shù)據(jù)庫中只存放其定義,而數(shù)據(jù)仍存放在作為數(shù)據(jù)源的基表中。故當(dāng)基表中數(shù)據(jù)有所變化時(shí),視圖中的數(shù)據(jù)也隨之變化。(3) 記錄。表中的一行稱為一個(gè)記錄(關(guān)系理論中稱為元組)。一個(gè)記錄是一組數(shù)據(jù),用于描述一類事物中的一個(gè)具體事物,如一種產(chǎn)品的編號、名稱、單價(jià),一次商品交易過程中的訂單編號、商品名稱、客戶名稱、單價(jià)、數(shù)量等。一般地,一個(gè)記錄由多個(gè)數(shù)據(jù)項(xiàng)(字段)構(gòu)成,記錄中的字段結(jié)構(gòu)由表的標(biāo)題(關(guān)系模式)決定。記錄的集合(元組集合)稱為表的內(nèi)容。值得注意的是,表名以及表的標(biāo)題是相對固定的,而表中記錄的數(shù)量和多少則是經(jīng)常變化的。(4) 字段。表中一列稱為一個(gè)字段。每個(gè)字段表示表中所描述的對象的一個(gè)屬性,如產(chǎn)品名稱、單價(jià)、訂購量等。每個(gè)字段都有相應(yīng)的描述信息,如字段名、數(shù)據(jù)類型、數(shù)據(jù)寬度、數(shù)值型數(shù)據(jù)的小數(shù)位數(shù)等。由于每個(gè)字段都包含了數(shù)據(jù)類型相同的一批數(shù)據(jù),因此,字段名相當(dāng)于一種多值變量。字段是數(shù)據(jù)庫操縱的最小單位。2. 主鍵與索引一個(gè)關(guān)系數(shù)據(jù)庫中常有多個(gè)表。每個(gè)表中都需要挑選一個(gè)或多個(gè)字段來標(biāo)識記錄,稱為主鍵或主碼。例如,在“產(chǎn)品”表中,一個(gè)產(chǎn)品對應(yīng)一條記錄,“產(chǎn)品ID”作為主鍵,地標(biāo)識每種產(chǎn)品的記錄。又如,在“類別”表中,“類別ID”作為主鍵,地標(biāo)識一類產(chǎn)品。可以看出,每個(gè)記錄中,作為主鍵的字段的值都不能空缺;多個(gè)記錄中,作為主鍵的字段的值都不能相同。當(dāng)某個(gè)或某些字段被當(dāng)作查找記錄或排序的依據(jù)時(shí),可將其設(shè)定為索引。一個(gè)表中可建立多個(gè)索引,每個(gè)索引確定表中記錄的一種邏輯順序。可為單個(gè)字段創(chuàng)建索引,也可在多個(gè)字段上創(chuàng)建索引。3. 表與表之間的聯(lián)系表與表之間可以通過彼此都具有的相同字段(字段名不必相同)聯(lián)系起來。例如,類別表和產(chǎn)品表都有“類別ID”字段,類別表的一條記錄可以聯(lián)系到產(chǎn)品表的多條記錄。所謂關(guān)系數(shù)據(jù)庫主要就是通過表與表之間的聯(lián)系來體現(xiàn)的,這種聯(lián)系反映了現(xiàn)實(shí)世界中客觀事物之間的聯(lián)系。Northwind數(shù)據(jù)庫中表與表之間的關(guān)系如圖57所示。圖57選課數(shù)據(jù)庫中表與表之間的聯(lián)系可以看出,類別表字段列表中的“類別ID”字段與產(chǎn)品表字段列表中的“類別ID”字段之間由一條線連接起來了,而且類別表標(biāo)記為1方,產(chǎn)品表標(biāo)記為多(∞)方。這就意味著: 一個(gè)類別ID值可以在產(chǎn)品表中出現(xiàn)多次,但只能在類別表中出現(xiàn)一次,這種符號所描述的實(shí)際意義是: 一種類別可以包含多種產(chǎn)品。對于產(chǎn)品表來說,“類別ID”字段將本表與另一個(gè)表關(guān)聯(lián)在一起的同時(shí)又是另一個(gè)表的主鍵,稱之為外鍵。外鍵在兩個(gè)表之間創(chuàng)建了一種“約束”,使得本表中指定字段的每個(gè)

網(wǎng)友評論(不代表本站觀點(diǎn))

免責(zé)聲明

更多出版社
主站蜘蛛池模板: 新河县| 五大连池市| 抚松县| 朝阳市| 华宁县| 玛曲县| 定日县| 滨州市| 新闻| 云龙县| 兰西县| 宜章县| 温宿县| 富阳市| 新乡市| 锡林郭勒盟| 蓬溪县| 凤山县| 安徽省| 和林格尔县| 沂水县| 诏安县| 新河县| 张家川| 习水县| 珠海市| 洪湖市| 娄烦县| 竹溪县| 洞头县| 南充市| 孟村| 汶上县| 大足县| 广南县| 丰宁| 凤翔县| 阳新县| 天柱县| 革吉县| 盐源县|