- SQL Server從入門到精通(第5版)
- 明日科技編著
- 2184字
- 2024-12-27 21:41:47
3.1 認(rèn)識數(shù)據(jù)庫
Microsoft SQL Server數(shù)據(jù)庫同Microsoft的其他數(shù)據(jù)庫類似,主要用于存儲數(shù)據(jù)及其相同的對象(如視圖、索引、存儲過程和觸發(fā)器等),以便隨時對數(shù)據(jù)庫中的數(shù)據(jù)及其對象進(jìn)行訪問和管理。本節(jié)將對數(shù)據(jù)庫的基本概念、數(shù)據(jù)庫對象等知識進(jìn)行詳細(xì)的介紹。
3.1.1 數(shù)據(jù)庫基本概念
數(shù)據(jù)庫(database)是按照一定數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫,是存儲在一起的相關(guān)數(shù)據(jù)的集合。其優(yōu)點(diǎn)主要體現(xiàn)在以下幾個方面。
減少數(shù)據(jù)的冗余度,節(jié)省數(shù)據(jù)的存儲空間。
具有較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)充性。
實現(xiàn)數(shù)據(jù)資源的充分共享。
下面介紹與數(shù)據(jù)庫相關(guān)的幾個概念。
1.?dāng)?shù)據(jù)庫系統(tǒng)
數(shù)據(jù)庫系統(tǒng)是采用數(shù)據(jù)庫技術(shù)的計算機(jī)系統(tǒng),是由數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員(人員)、硬件平臺(硬件)和軟件平臺(軟件)5部分構(gòu)成的運(yùn)行實體。
2.?dāng)?shù)據(jù)庫管理系統(tǒng)
數(shù)據(jù)庫管理系統(tǒng)(database management system,DBMS)是數(shù)據(jù)庫系統(tǒng)的一個重要組成部分,是位于用戶與底層數(shù)據(jù)之間的一種數(shù)據(jù)管理軟件,其主要具有如下功能。
數(shù)據(jù)存取的物理構(gòu)建:為數(shù)據(jù)模式的物理存取和構(gòu)建提供有效的存取方法與手段。
數(shù)據(jù)操縱功能:為用戶使用數(shù)據(jù)庫中的數(shù)據(jù)提供方便,如查詢、插入、修改、刪除等以及簡單的算術(shù)運(yùn)算和統(tǒng)計。
數(shù)據(jù)定義功能:用戶可以通過數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)定義語言(data definition language,DDL)方便地對數(shù)據(jù)庫中的對象進(jìn)行定義。
數(shù)據(jù)庫的運(yùn)行管理:數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理數(shù)據(jù)庫的運(yùn)行和維護(hù),以保障數(shù)據(jù)的安全性、完整性、并發(fā)性和故障的系統(tǒng)恢復(fù)性。
數(shù)據(jù)庫的建立和維護(hù)功能:數(shù)據(jù)庫管理系統(tǒng)能夠完成初始數(shù)據(jù)的輸入和轉(zhuǎn)換、數(shù)據(jù)庫的轉(zhuǎn)儲和恢復(fù)、數(shù)據(jù)庫的性能監(jiān)視和分析等任務(wù)。
3.關(guān)系數(shù)據(jù)庫
關(guān)系數(shù)據(jù)庫是支持關(guān)系模型的數(shù)據(jù)庫。關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和完整性約束3部分組成。
關(guān)系數(shù)據(jù)結(jié)構(gòu):在關(guān)系模型中數(shù)據(jù)結(jié)構(gòu)單一,現(xiàn)實世界的實體以及實體間的聯(lián)系均用關(guān)系來表示,實際上關(guān)系模型中的數(shù)據(jù)結(jié)構(gòu)就是一張二維表。
關(guān)系操作集合:關(guān)系操作分為關(guān)系代數(shù)、關(guān)系演算以及具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言(SQL)。
完整性約束:包括實體完整性、參照完整性和用戶定義的完整性。
3.1.2 數(shù)據(jù)庫常用對象
在SQL Server數(shù)據(jù)庫中,表、字段、索引、視圖和存儲過程等具體存儲數(shù)據(jù)或?qū)?shù)據(jù)進(jìn)行操作的實體都被稱為數(shù)據(jù)庫對象。常用的幾種數(shù)據(jù)庫對象如下。
1.表
表是包含數(shù)據(jù)庫中所有數(shù)據(jù)的數(shù)據(jù)庫對象,由行和列組成,用于組織和存儲數(shù)據(jù)。
2.字段
表中每列稱為一個字段,字段具有自己的屬性,如字段類型、字段大小等,其中字段類型是字段最重要的屬性,它決定了字段能夠存儲哪種數(shù)據(jù)。
SQL規(guī)范支持5種基本字段類型:字符型、文本型、數(shù)值型、邏輯型和日期時間型。
3.索引
索引是一個單獨(dú)的、物理的數(shù)據(jù)庫結(jié)構(gòu)。它是依賴于表建立的,在數(shù)據(jù)庫中索引使數(shù)據(jù)庫程序無須對整個表進(jìn)行掃描,就可以在其中找到所需的數(shù)據(jù)。
4.視圖
視圖是從一張或多張表中導(dǎo)出的表(也稱虛擬表),是用戶查看數(shù)據(jù)表中數(shù)據(jù)的一種方式。表中包括幾個被定義的數(shù)據(jù)列與數(shù)據(jù)行,其結(jié)構(gòu)和數(shù)據(jù)建立在對表的查詢基礎(chǔ)之上。
5.存儲過程
存儲過程(stored procedure)是一組為了完成特定功能的SQL語句集合(包含查詢、插入、刪除和更新等操作),經(jīng)編譯后命名存儲在SQL Server服務(wù)器端的數(shù)據(jù)庫中,由用戶通過指定存儲過程名執(zhí)行。當(dāng)這個存儲過程被調(diào)用執(zhí)行時,這些操作也會同時執(zhí)行。
3.1.3 數(shù)據(jù)庫組成
SQL Server數(shù)據(jù)庫主要由文件和文件組組成。數(shù)據(jù)庫中的所有數(shù)據(jù)和對象(如表、存儲過程和觸發(fā)器)都被存儲在文件中。
1.文件
文件主要分為以下3種類型。
主要數(shù)據(jù)文件:存放數(shù)據(jù)和數(shù)據(jù)庫的初始化信息。每個數(shù)據(jù)庫有且只有一個主要數(shù)據(jù)文件,默認(rèn)擴(kuò)展名是.mdf。
次要數(shù)據(jù)文件:存放除主要數(shù)據(jù)文件以外的所有數(shù)據(jù)文件。有些數(shù)據(jù)庫可能沒有次要數(shù)據(jù)文件,也可能有多個次要數(shù)據(jù)文件,默認(rèn)擴(kuò)展名是.ndf。
事務(wù)日志文件:存放用于恢復(fù)數(shù)據(jù)庫的所有日志信息。每個數(shù)據(jù)庫至少有一個事務(wù)日志文件,也可以有多個事務(wù)日志文件,默認(rèn)擴(kuò)展名是.ldf。
2.文件組
文件組是SQL Server數(shù)據(jù)文件的一種邏輯管理單位,它將數(shù)據(jù)庫文件分成不同的文件組,方便對文件的分配和管理。
文件組主要分為以下兩種類型。
主文件組:包含主要數(shù)據(jù)文件和任何沒有明確指派給其他文件組的文件。系統(tǒng)表的所有頁都分配在主文件組中。
用戶定義文件組:主要是在CREATE DATABASE或ALTER DATABASE語句中,使用FILEGROUP關(guān)鍵字指定的文件組。
說明
每個數(shù)據(jù)庫中都有一個文件組作為默認(rèn)文件組運(yùn)行,默認(rèn)文件組包含在創(chuàng)建時沒有指定文件組的所有表和索引頁。在沒有指定的情況下,主文件組作為默認(rèn)文件組。
對文件進(jìn)行分組時,一定要遵循如下文件和文件組的設(shè)計規(guī)則。
文件只能是一個文件組的成員。
文件或文件組不能由一個以上的數(shù)據(jù)庫使用。
數(shù)據(jù)和事務(wù)日志信息不能屬于同一個文件或文件組。
日志文件不能作為文件組的一部分。日志空間與數(shù)據(jù)空間分開管理。
注意
系統(tǒng)管理員在進(jìn)行備份操作時,可以備份或恢復(fù)個別的文件或文件組,而不用備份或恢復(fù)整個數(shù)據(jù)庫。
3.1.4 系統(tǒng)數(shù)據(jù)庫
SQL Server數(shù)據(jù)庫在安裝時默認(rèn)創(chuàng)建4個系統(tǒng)數(shù)據(jù)庫(master、tempdb、model和msdb)。下面分別進(jìn)行介紹。
master數(shù)據(jù)庫:是SQL Server中最重要的數(shù)據(jù)庫,記錄SQL Server實例的所有系統(tǒng)級信息,包括實例范圍的元數(shù)據(jù)、端點(diǎn)、鏈接服務(wù)器和系統(tǒng)配置設(shè)置。
tempdb數(shù)據(jù)庫:是一個臨時數(shù)據(jù)庫,用于保存臨時對象或中間結(jié)果集。
model數(shù)據(jù)庫:用作SQL Server實例上創(chuàng)建的所有數(shù)據(jù)庫的模板。對model數(shù)據(jù)庫進(jìn)行的修改(如數(shù)據(jù)庫大小、排序規(guī)則、恢復(fù)模式和其他數(shù)據(jù)庫選項)將應(yīng)用于以后創(chuàng)建的所有數(shù)據(jù)庫。
msdb數(shù)據(jù)庫:用于SQL Server代理計劃警報和作業(yè)。
- 數(shù)據(jù)浪潮
- 數(shù)據(jù)分析實戰(zhàn):基于EXCEL和SPSS系列工具的實踐
- 數(shù)據(jù)庫原理與設(shè)計(第2版)
- 數(shù)據(jù)科學(xué)實戰(zhàn)指南
- 一本書講透Elasticsearch:原理、進(jìn)階與工程實踐
- Augmented Reality using Appcelerator Titanium Starter
- 中文版Access 2007實例與操作
- Access數(shù)據(jù)庫開發(fā)從入門到精通
- 大數(shù)據(jù)時代系列(套裝9冊)
- Scratch 2.0 Game Development HOTSHOT
- Learning Ansible
- Python金融數(shù)據(jù)挖掘與分析實戰(zhàn)
- 數(shù)據(jù)可視化五部曲
- Tableau數(shù)據(jù)可視化實戰(zhàn)
- Java 9 Dependency Injection