版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第 1 章創(chuàng)建及維護(hù)數(shù)據(jù)庫(kù)1.1 【案例 1】注冊(cè) SQL Server 服務(wù)器正確安裝和配置系統(tǒng)是確保 SQL Server 安全、高效運(yùn)行的基礎(chǔ)。本節(jié)將介紹在完成 SQL Server 2005 系統(tǒng)的安裝后,如何配置 SQL Server 2005 服務(wù)的服務(wù)器、查看 SQL Server 2005 管理工具和使用實(shí)用工具管理 SQLServer 2005。相關(guān)知識(shí)1SQL Server 2005 數(shù)據(jù)庫(kù)引擎在 SQL Server 2005 中,除了數(shù)據(jù)管理功能之外,還增強(qiáng)了像商業(yè)智能、數(shù)據(jù)倉(cāng)庫(kù)等功能,其中負(fù)責(zé)數(shù)據(jù)管理的是由一個(gè)稱為“數(shù)據(jù)庫(kù)引擎”的對(duì)象來(lái)實(shí)現(xiàn)的。數(shù)據(jù)庫(kù)引擎提供控制訪問(wèn)和
2、進(jìn)行快速的事務(wù)處理,滿足企業(yè)中最需要占用數(shù)據(jù)的應(yīng)用程序的要求,還為維護(hù)高可用性提供了大量的支持。(1)數(shù)據(jù)庫(kù)引擎的角色與主要職責(zé)Microsoft SQL Server 2005 Database Engine 是儲(chǔ)存、處理和保證數(shù)據(jù)安全的核心服務(wù)。數(shù)據(jù)庫(kù)引擎的角色與主要職責(zé)如下所述。l 數(shù)據(jù)庫(kù)引擎結(jié)構(gòu)設(shè)計(jì)師:負(fù)責(zé)設(shè)計(jì)支持企業(yè)處理要求的數(shù)據(jù)存儲(chǔ)基礎(chǔ)結(jié)構(gòu),決定數(shù)據(jù)存儲(chǔ)系統(tǒng)及使用的技術(shù),并協(xié)調(diào)企業(yè)內(nèi)數(shù)據(jù)驅(qū)動(dòng)系統(tǒng)和應(yīng)用系統(tǒng)之間的交互和互操作性;設(shè)計(jì)和創(chuàng)建數(shù)據(jù)庫(kù);在 SQL Server中使用 XML;在 SQL Server 2005 中使用本機(jī) XML Web 服務(wù)。l 數(shù)據(jù)庫(kù)引擎開(kāi)發(fā)人員:涵蓋開(kāi)
3、發(fā)人員與數(shù)據(jù)庫(kù)引擎的全部交互操作;許多類型的開(kāi)發(fā)人員(如數(shù)據(jù)庫(kù)設(shè)計(jì)人員或網(wǎng)站開(kāi)發(fā)人員)都使用數(shù)據(jù)庫(kù)引擎。l 數(shù)據(jù)庫(kù)引擎管理員:在系統(tǒng)可用性、性能監(jiān)視和優(yōu)化、部署、升級(jí)、故障排除和配置等方面對(duì)數(shù)據(jù)庫(kù)引擎實(shí)例的日常操作進(jìn)行計(jì)劃和運(yùn)行;中小型組織可能只有一個(gè)管理員,較大型的組織可能將管理員角色細(xì)分為多個(gè)職務(wù)。l 數(shù)據(jù)庫(kù)引擎信息工作者:是一個(gè)域?qū)<?,他了解?shù)據(jù)庫(kù)中存儲(chǔ)之間的關(guān)系并能夠?qū)?shù)據(jù)轉(zhuǎn)換成業(yè)務(wù)信息;信息工作者很少直接與聯(lián)機(jī)事務(wù)處理(OLTP)數(shù)據(jù)庫(kù)交互,而是使用與數(shù)據(jù)庫(kù)相關(guān)聯(lián)的應(yīng)用程序進(jìn)行交互;當(dāng)信息工作者與數(shù)據(jù)庫(kù)直接交互時(shí),通常是為了對(duì)輔助報(bào)表數(shù)據(jù)庫(kù)執(zhí)行臨時(shí)查詢或報(bào)告,或者是為了使用工作組或個(gè)
4、人應(yīng)用程序一同發(fā)布的較小的數(shù)據(jù)庫(kù)。除數(shù)據(jù)庫(kù)引擎外,在 SQL Server 2005 中還有兩個(gè)重要的概念,即聯(lián)機(jī)事務(wù)處理和數(shù)據(jù)倉(cāng)庫(kù)。(2)聯(lián)機(jī)事務(wù)處理OLTP 數(shù)據(jù)庫(kù)聯(lián)機(jī)事務(wù)處理(OLTP)關(guān)系數(shù)據(jù)庫(kù)最適用于管理員變化的數(shù)據(jù),是一種面向交易的處理系統(tǒng),其基本特征是lllllll顧客的原始數(shù)據(jù)可以立即傳送到計(jì)算機(jī)中心進(jìn)行處理,并在很短的時(shí)間內(nèi)給出處理結(jié)果。盡管用戶發(fā)出的各個(gè)數(shù)據(jù)請(qǐng)求一般只引用幾行,但是這些請(qǐng)求很多是同時(shí)發(fā)生的,而 OLTP 數(shù)據(jù)庫(kù)只在使事務(wù)應(yīng)用程序僅寫(xiě)入所需數(shù)據(jù),以便盡快處理單個(gè)事務(wù)。OLTP 數(shù)據(jù)庫(kù)通常具有以下特征:支持大量并發(fā)用戶定期添加和修改數(shù)據(jù);反映隨時(shí)變化的單位狀態(tài),
5、但不保存其歷史記錄;包含的數(shù)據(jù)量大,其中包括用于驗(yàn)證事務(wù)的大量數(shù)據(jù);具有復(fù)雜的結(jié)構(gòu);可以進(jìn)行優(yōu)化,以對(duì)事務(wù)活動(dòng)做出響應(yīng);提供用于支持單位日常運(yùn)營(yíng)的技術(shù)基礎(chǔ)結(jié)構(gòu);OLTP 系統(tǒng)在處理同時(shí)輸入的成百上千的事務(wù),為使事務(wù)應(yīng)用程序僅寫(xiě)入所需數(shù)據(jù),單個(gè)事務(wù)能夠很快的完成,并且需訪問(wèn)較少的數(shù)據(jù)。(3)數(shù)據(jù)倉(cāng)庫(kù)OLTP 數(shù)據(jù)庫(kù)的目的是捕獲高比率的數(shù)據(jù)更改和添加,而數(shù)據(jù)倉(cāng)庫(kù)與此相反,其目的是組織大量的穩(wěn)定數(shù)據(jù)以便于分析和檢索。數(shù)據(jù)倉(cāng)庫(kù)經(jīng)常用做商業(yè)智能應(yīng)用程序的基礎(chǔ),其功能如下所述。llllll將來(lái)自異類數(shù)據(jù)源的數(shù)據(jù)組合為單個(gè)同類結(jié)構(gòu)。采用簡(jiǎn)化的結(jié)構(gòu)組織數(shù)據(jù),以便提高分析查詢的效率,而不是為了進(jìn)行事務(wù)處理。包含
6、已轉(zhuǎn)換的數(shù)據(jù),這些數(shù)據(jù)有效、一致并經(jīng)過(guò)合并和格式化以進(jìn)行分析。提供代表業(yè)務(wù)歷史記錄的穩(wěn)定數(shù)據(jù)。定期進(jìn)行更新,更新時(shí)只添加數(shù)據(jù)而不頻繁觸發(fā)事務(wù)。簡(jiǎn)化安全性要求。2SQL Server Management Studio 功能SQL Server Management Studio(簡(jiǎn)稱 SSMS)是為 SQL Server 數(shù)據(jù)庫(kù)管理員和開(kāi)發(fā)人員提供的新工具,是一套用于管理從屬于 SQL Server 組件的工具,此工具由 Microsoft Visual Studio 內(nèi)部承載,它提供了用于數(shù)據(jù)庫(kù)管理的圖形工具和功能豐富的開(kāi)發(fā)環(huán)境。Management Studio 將 SQL Server
7、2000 企業(yè)管理器、AnalysisManager 和 SQL 查詢分析器的功能集于一身,還可用于編寫(xiě) MDX、XMLA 和 XML 語(yǔ)句。此集成環(huán)境使用戶可以在一個(gè)界面內(nèi)執(zhí)行各種任務(wù),如備份數(shù)據(jù)、編輯查詢和自動(dòng)執(zhí)行常見(jiàn)函數(shù)。SQL ServerManagement Studio 包括以下功能: 代碼編輯器:是一種功能豐富的腳本編輯器。SQL Server Management Studio 集成了所有 SQL Server數(shù)據(jù)庫(kù)產(chǎn)品中的查詢編輯,當(dāng)通過(guò)工具欄按鈕或通過(guò)菜單啟動(dòng)新的查詢時(shí),就會(huì)發(fā)現(xiàn)可以創(chuàng)建和編輯 SQL Serverlll查詢、分析服務(wù)查詢和 SQL Mobile 查詢。 對(duì)
8、象資源管理器:用于查找、修改、編寫(xiě)腳本或運(yùn)行從屬于 SQL Server 實(shí)例的對(duì)象。 模板資源管理器:用于查找模板和為模板編寫(xiě)腳本。 解決方案資源管理器:用于將相關(guān)腳本組織并存儲(chǔ)為項(xiàng)目的一部分。 屬性窗口:用于顯示當(dāng)前選定對(duì)象的屬性。 新增的功能:斷開(kāi)連接狀態(tài)下的訪問(wèn),SQL Server 2005 可以在與 SQL Server 實(shí)例斷開(kāi)連接時(shí)編寫(xiě)和編輯腳本??梢栽谌我鈱?duì)話框中創(chuàng)建腳本,并能在創(chuàng)建腳本之后讀取、修改、存儲(chǔ)和重用腳本。非模式對(duì)話框。在訪問(wèn)某個(gè) UI 對(duì)話框時(shí),可以瀏覽 SQL Server Management Studio 中的其他資源而不用關(guān)閉該對(duì)話框。3SQL Serv
9、er Management Studio 界面默認(rèn)情況下,SQL Server Management Studio 中顯示“已注冊(cè)的服務(wù)器”、“對(duì)象資源管理器”和“文檔窗口”3 個(gè)組件窗口,如圖 1-1-22 所示。圖 1-1-22Microsoft SQL Server Management Studio 窗口 已注冊(cè)的服務(wù)器:該窗口列出的是經(jīng)常管理的服務(wù)器,可以在該列表中添加、刪除服務(wù)器。如果計(jì)算機(jī)上以前安裝了 SQL Server 2000 企業(yè)管理器,則系統(tǒng)將提示您導(dǎo)入已注冊(cè)服務(wù)器的列表。否則,列出的服務(wù)器中僅包含運(yùn)行 SQL Server Management Studio 的計(jì)算機(jī)
10、上的 SQL Server 實(shí)例,如果沒(méi)有顯示所需的服務(wù)器,可以在“已注冊(cè)的服務(wù)器”中單擊 Microsoft SQL Servers 按鈕,然后在彈出的菜單中選中“更新本地服務(wù)器注冊(cè)”命令?!耙炎?cè)的服務(wù)器”組件的工具欄包含用于“數(shù)據(jù)庫(kù)引擎”、Analysis Services、Reporting Services、SQLServer Mobile 和 Integration Services 的按鈕,可以注冊(cè)上述任意服務(wù)器類型以便于管理。 對(duì)象資源管理器:是服務(wù)器中所有數(shù)據(jù)庫(kù)對(duì)象的樹(shù)視圖,如圖 1-1-23 所示,該樹(shù)視圖包括 SQL ServerDatabase Engine、Analy
11、sis Services、Reporting Services、Integration Services 和 SQL Servers Mobile數(shù)據(jù)庫(kù)。對(duì)象資源管理器包括與其連接的所有服務(wù)器的信息,打開(kāi) SMSS 時(shí),系統(tǒng)會(huì)提示:是否將對(duì)象資源管理器連接到上次使用的設(shè)置,可以在“已注冊(cè)的服務(wù)器”組件中雙擊任意服務(wù)器進(jìn)行連接,但無(wú)須注冊(cè)要連接的服務(wù)器。在對(duì)象資源管理器的工具欄上,選擇“連接”“數(shù)據(jù)庫(kù)引擎”命令,如圖 1-1-23 所示,系統(tǒng)將打開(kāi)如圖 1-1-21 所示的“連接到服務(wù)器”對(duì)話框。 文檔窗口:是 Management Studio 中的最大部分,文檔窗口包含查詢編輯器和瀏覽器窗口
12、。默認(rèn)情況下,將顯示已于當(dāng)前計(jì)算機(jī)上的數(shù)據(jù)庫(kù)引擎實(shí)例連接的“摘要”頁(yè),如圖 1-1-24 所示,該窗口可以配置為顯示選項(xiàng)卡式文檔或多文檔界面(MDI)環(huán)境,在選項(xiàng)卡式文檔模式中,默認(rèn)的多個(gè)文檔將沿著文檔窗口的頂部顯示為選項(xiàng)卡。圖 1-1-23 選擇“數(shù)據(jù)庫(kù)引擎”命令圖 1-1-24 “摘要”頁(yè)l4數(shù)據(jù)庫(kù)對(duì)象(1)系統(tǒng)數(shù)據(jù)庫(kù)安裝完成 SQL Server 2005 的同時(shí),系統(tǒng)數(shù)據(jù)庫(kù)(master、model、msdb 和 tempdb)會(huì)自動(dòng)安裝到數(shù)據(jù)庫(kù)服務(wù)器上。SQL Server 2005 不同于 SQL Server 2000,默認(rèn)情況下不安裝 pubs 和 northwind 數(shù)據(jù)庫(kù),
13、用戶可從微軟網(wǎng)站下載這兩個(gè)數(shù)據(jù)庫(kù)文件后附加到數(shù)據(jù)庫(kù)服務(wù)器上,關(guān)于數(shù)據(jù)庫(kù)的附加操作,請(qǐng)參閱本教材第 1 章第 3節(jié)。啟動(dòng) SQL Server Management Studio 程序,在“對(duì)象資源管理器”窗格中展開(kāi)“數(shù)據(jù)庫(kù)”“系統(tǒng)數(shù)據(jù)庫(kù)”結(jié)點(diǎn),如圖 1-1-25 所示,SQL Server 2005 系統(tǒng)數(shù)據(jù)庫(kù)及其說(shuō)明如下所述。master 數(shù)據(jù)庫(kù):用于記錄 SQL Server 實(shí)例的所有系統(tǒng)信息。該數(shù)據(jù)庫(kù)中保存著一類特殊的表(系統(tǒng)表),從整體上管理系統(tǒng)。例如,當(dāng)用戶在服務(wù)器上創(chuàng)建新的數(shù)據(jù)庫(kù)時(shí),將向 master 數(shù)據(jù)庫(kù)的 sysdatabases 表中加入一條新的記錄。所有的擴(kuò)展存儲(chǔ)過(guò)程和
14、系統(tǒng)存儲(chǔ)過(guò)程,無(wú)論應(yīng)用在哪個(gè)數(shù)據(jù)庫(kù),都存儲(chǔ)在 master 數(shù)據(jù)庫(kù)中。由于幾乎所有描述服務(wù)器的信息都存儲(chǔ)在 master 數(shù)據(jù)庫(kù)中,因此該數(shù)據(jù)庫(kù)對(duì)于整個(gè)系統(tǒng)是至關(guān)重要的,并且不能刪除。master 數(shù)據(jù)庫(kù)包含 SQL Server 實(shí)例使用的系統(tǒng)級(jí)信息(例如登錄信息和配置選項(xiàng)設(shè)置),不能在 master 數(shù)據(jù)庫(kù)中創(chuàng)建任何用戶對(duì)象(例如:表/視圖/存儲(chǔ)過(guò)程或觸發(fā)器)。圖 1-1-25展開(kāi)“系統(tǒng)數(shù)據(jù)庫(kù)”結(jié)點(diǎn)lllmsdb 數(shù)據(jù)庫(kù):該數(shù)據(jù)庫(kù)用于 SQL Server 代理計(jì)劃警報(bào)和作業(yè),是 SQL 代理過(guò)程存儲(chǔ)系統(tǒng)任務(wù)的地方。如果計(jì)劃在定時(shí)對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份,那么在 msdb 中將有一條記錄;如果安排
15、一個(gè)一次性執(zhí)行的存儲(chǔ)過(guò)程,同樣需要在 msdb 中加入一條記錄。model 數(shù)據(jù)庫(kù):從名稱上理解,說(shuō)明它是建立副本所基于的模型,為創(chuàng)建新的數(shù)據(jù)庫(kù)提供模板。用做 SQLServer 實(shí)例上創(chuàng)建的所有數(shù)據(jù)庫(kù)進(jìn)行的修改(如數(shù)據(jù)庫(kù)大小、排列規(guī)則、恢復(fù)模式和其他數(shù)據(jù)庫(kù)選項(xiàng))將應(yīng)用于以后創(chuàng)建的所有數(shù)據(jù)庫(kù)。當(dāng)需要改變標(biāo)準(zhǔn)的、新建的數(shù)據(jù)庫(kù)時(shí),可以修改 model 數(shù)據(jù)庫(kù)。例如,可以加入一組審計(jì)表,使得創(chuàng)建的所有數(shù)據(jù)庫(kù)中都包含這些表;也可以放進(jìn)一些用戶組,這樣在系統(tǒng)上新建的所有數(shù)據(jù)庫(kù)中都將復(fù)制它們。由于 model 數(shù)據(jù)庫(kù)是所有其他數(shù)據(jù)庫(kù)的模板,因此該數(shù)據(jù)庫(kù)是必需的,且必須留在系統(tǒng)上,不可刪除。tempdb 數(shù)
16、據(jù)庫(kù):用于保存臨時(shí)對(duì)象或中間結(jié)果,是服務(wù)器的一個(gè)關(guān)鍵的工作區(qū)域。在執(zhí)行復(fù)雜的或大量的查詢時(shí),如果 SQL Server 需要?jiǎng)?chuàng)建中間表來(lái)完成,那么 SQL Server 將在 tempdb 中進(jìn)行。在創(chuàng)建臨時(shí)表時(shí),盡管你認(rèn)為是在當(dāng)前數(shù)據(jù)庫(kù)中創(chuàng)建的,但實(shí)際上是創(chuàng)建在 tempdb 中的。當(dāng)需要臨時(shí)存儲(chǔ)數(shù)據(jù)時(shí),數(shù)據(jù)很可能是存儲(chǔ)在 tempdb 中的。tempdb 中的對(duì)象是臨時(shí)的,而且 tempdb 自身也是臨時(shí)的。每次啟動(dòng) SQL Server時(shí),tempdb 是系統(tǒng)中唯一完全重新創(chuàng)建的數(shù)據(jù)庫(kù)。(2)數(shù)據(jù)庫(kù)對(duì)象lSQL Server 實(shí)例可以支持多個(gè)數(shù)據(jù)庫(kù),每個(gè)數(shù)據(jù)庫(kù)可以存儲(chǔ)來(lái)自其他數(shù)據(jù)庫(kù)的相關(guān)
17、數(shù)據(jù)或不相關(guān)數(shù)據(jù)。例如:SQL Server 實(shí)例可以有一個(gè)數(shù)據(jù)庫(kù)用于存儲(chǔ)網(wǎng)站商品數(shù)據(jù),另一個(gè)數(shù)據(jù)庫(kù)用于存儲(chǔ)于內(nèi)部員工的數(shù)據(jù)。SQLServer 2005 中的數(shù)據(jù)庫(kù)由一個(gè)表集合組成。表是所有數(shù)據(jù)庫(kù)的構(gòu)成中最為重要的。這些表包含數(shù)據(jù)以及為支持對(duì)數(shù)據(jù)執(zhí)行的活動(dòng)而定義的其他對(duì)象,如視圖、索引、存儲(chǔ)過(guò)程、用戶定義函數(shù)和觸發(fā)器。啟動(dòng) SQL Server Management Studio 程序,在“對(duì)象資源管理器”窗格中展開(kāi)“數(shù)據(jù)庫(kù)”結(jié)點(diǎn),依次展開(kāi)“商品管理”數(shù)據(jù)庫(kù),如圖 1-1-26 所示,SQL Server 2005 數(shù)據(jù)庫(kù)及其對(duì)象組成如下所述。表:數(shù)據(jù)庫(kù)中的數(shù)據(jù)存儲(chǔ)在表中,用于說(shuō)明如何使用表
18、存儲(chǔ)數(shù)據(jù)行和定義多個(gè)表之間的關(guān)系,由域(domain)數(shù)據(jù)(列)和實(shí)體(entity)數(shù)據(jù)(行)構(gòu)成。每個(gè)表定義中也包含元數(shù)據(jù)(metadata)(數(shù)據(jù)的描述信息),以說(shuō)明表中包含的數(shù)據(jù)的屬性。每一列都有它自己的一組規(guī)則,以限定該列中能存儲(chǔ)什么。違反任何一列的規(guī)則都將導(dǎo)致系統(tǒng)拒絕行的插入或?qū)σ延行械母?,或者阻止行的刪除。圖 1-1-26展開(kāi)“商品管理”數(shù)據(jù)庫(kù)ll索引(index):索引的作用與百科全書(shū)后面的索引十分相似,用于說(shuō)明如何使用索引提高訪問(wèn)表中數(shù)據(jù)的速度,是存在于特定表或視圖結(jié)構(gòu)中的對(duì)象。在索引中,以特定的方式存儲(chǔ)了某類查找(即“鍵”)值,通過(guò)該鍵可以找到實(shí)際要查找的信息。索引提供了
19、一種加快信息查找的方式。索引分為兩類:聚集索引(clustered index)每個(gè)表只能有一個(gè)聚集索引,如果一個(gè)索引是聚集的,則該索引所基于的表,其物理存儲(chǔ)順序與該索引一致;非聚集索引(non-clustered index)每個(gè)表可以有許多非聚集索引,這類索引指向能引導(dǎo)你找到數(shù)據(jù)的一些其他值。存儲(chǔ)過(guò)程(stored procedure,sproc):是主要的編程功能,到了.NET 時(shí)代更是如此。通常,存儲(chǔ)過(guò)程是組成一個(gè)邏輯單元的一系列有序的 Transact-SQL(用來(lái)查詢 Microsoft SQL Server 的語(yǔ)言)語(yǔ)句。它們可以有變量和參數(shù),也允許有選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。比起發(fā)送
20、單獨(dú)的語(yǔ)句到服務(wù)器,使用存儲(chǔ)過(guò)程有以下優(yōu)點(diǎn):調(diào)用存儲(chǔ)過(guò)程只需要使用一個(gè)簡(jiǎn)短的名字,而不必發(fā)送一大串的文本字符串,這樣,運(yùn)行存儲(chǔ)過(guò)程中的代碼需要的網(wǎng)絡(luò)流量更??;存儲(chǔ)過(guò)程是經(jīng)過(guò)了預(yù)先優(yōu)化和預(yù)編譯的,故每次運(yùn)行存儲(chǔ)過(guò)程都能節(jié)省少量的時(shí)間;為了安全性的原因或者僅僅為了隱藏?cái)?shù)據(jù)庫(kù)的復(fù)雜性,需要封裝一個(gè)過(guò)程;可以從其他存儲(chǔ)過(guò)程中調(diào)用,使得它們能在有限的意義上重用。llll視圖:是一種虛擬表,是存儲(chǔ)在表中的數(shù)據(jù)的預(yù)先計(jì)劃好的映射和表現(xiàn)。多數(shù)情況下,使用視圖與使用表類似,只是視圖中不包含自己的數(shù)據(jù)。視圖僅僅是以查詢的形式存儲(chǔ)在數(shù)據(jù)庫(kù)中。該查詢從一個(gè)或多個(gè)表的一些列中獲取數(shù)據(jù)。用戶定義函數(shù):(User-Defi
21、ned Function,UDF)與存儲(chǔ)過(guò)程極其相似,用于說(shuō)明如何使用函數(shù)將任務(wù)和進(jìn)程集中在服務(wù)器中。具有以下優(yōu)點(diǎn):能返回大多數(shù) SQL Server 數(shù)據(jù)類型的值(不能返回 text、ntext、image、cursor 以及 timestamp 類型);不能有“副作用”?;旧纤鼈儾荒茉诤瘮?shù)的范圍之外做任何事情,例如修改表、發(fā)送電子郵件、改變系統(tǒng)或數(shù)據(jù)庫(kù)的參數(shù);可以傳入多個(gè)變量并返回一個(gè)值。用戶和角色:用戶和角色是密切相關(guān)的。用戶(user)非常類似于登錄名。該對(duì)象是登錄到 SQL Server 上的用戶的標(biāo)識(shí)符。登錄到 SQL Server 的任何人都必須(根據(jù)使用的安全模型直接或間接地
22、)映射為一個(gè)用戶。用戶轉(zhuǎn)而屬于一個(gè)或多個(gè)角色(role),能夠把在 SQL Server 中執(zhí)行特定動(dòng)作的權(quán)力直接授予用戶或(一個(gè)或多個(gè)用戶所屬的)角色。觸發(fā)器(trigger):是指當(dāng)表中發(fā)生特定的事情(如插入、更新或刪除)時(shí),自動(dòng)執(zhí)行的一段邏輯代碼。觸發(fā)器能夠用在很多的事情上,但它主要用于在輸入數(shù)據(jù)、復(fù)制數(shù)據(jù),或者檢查更新以確保滿足某些條件。包含兩種觸發(fā)器:DML 觸發(fā)器僅在修改表中的數(shù)據(jù)后執(zhí)行;DDL 觸發(fā)器在響應(yīng)數(shù)據(jù)定義語(yǔ)言(DDL)語(yǔ)句時(shí)激發(fā)。llllll約束(constraint):是限定表中的數(shù)據(jù)以滿足某些條件。在某種程度上,約束與觸發(fā)器作用類似,都是數(shù)據(jù)完整性問(wèn)題上可能的解決方
23、案。規(guī)則:限定存放在表中數(shù)據(jù)的條件。如果更新或插入的記錄違反了規(guī)則,那么更新或插入將被拒絕。規(guī)則能夠用來(lái)在用戶定義數(shù)據(jù)類型(user-defined data type)上加以限制。與規(guī)則不同,約束本身并非實(shí)際的對(duì)象,而只是描述特定表的元數(shù)據(jù)。默認(rèn)值:有兩種類型。一種默認(rèn)值其自身是一個(gè)對(duì)象;另一種默認(rèn)值不是實(shí)際的對(duì)象,只是描述表中特定列的元數(shù)據(jù)(這與約束和規(guī)則類似,規(guī)則是對(duì)象,約束是元數(shù)據(jù)而不是對(duì)象)。兩種默認(rèn)值的作用相同。在插入記錄時(shí),如果沒(méi)有為一個(gè)列指定值,而該列上定義了默認(rèn)值,那么將自動(dòng)使用默認(rèn)值進(jìn)行插入。用戶定義數(shù)據(jù)類型:是系統(tǒng)定義數(shù)據(jù)類型的擴(kuò)展。從 SQL Server 2005 開(kāi)
24、始,其潛力幾乎是無(wú)窮的。雖然SQL Server 2000 及更早版本中有用戶定義數(shù)據(jù)類型的概念,但它們其實(shí)僅限于已有數(shù)據(jù)類型的不同篩選。在 SQL Server 2005 中能夠把.NET 程序集與用戶定義數(shù)據(jù)類型綁定在一起,這就意味著可以有一種數(shù)據(jù)類型,該類型中完全能存儲(chǔ)所有可以存儲(chǔ)到.NET 對(duì)象中的事物。事件通知:用于說(shuō)明作為特殊數(shù)據(jù)庫(kù)對(duì)象的事件通知,可以向 Service Broker 發(fā)送有關(guān)服務(wù)器和數(shù)據(jù)庫(kù)事件的信息主題。同義詞:用于說(shuō)明如何使用同義詞引用基對(duì)象,是包含架構(gòu)的對(duì)象的另一個(gè)名稱。lll5數(shù)據(jù)庫(kù)文件數(shù)據(jù)庫(kù)文件由文件組、數(shù)據(jù)文件頁(yè)和區(qū)等存儲(chǔ)單位組成。(1)數(shù)據(jù)庫(kù)文件SQL
25、 Server 2005 數(shù)據(jù)庫(kù)具有 3 種類型的文件。主數(shù)據(jù)庫(kù)文件:是數(shù)據(jù)庫(kù)的起點(diǎn),每個(gè)數(shù)據(jù)庫(kù)都有一個(gè)主數(shù)據(jù)庫(kù)文件,包含數(shù)據(jù)庫(kù)的啟動(dòng)消息,并指向數(shù)據(jù)庫(kù)中的其他文件;用戶數(shù)據(jù)和對(duì)象可存儲(chǔ)在該文件中,也可以存儲(chǔ)在次要數(shù)據(jù)庫(kù)文件中,每個(gè)數(shù)據(jù)庫(kù)有一個(gè)主要數(shù)據(jù)庫(kù)文件,其擴(kuò)展名是.mdf。次要數(shù)據(jù)庫(kù)文件:除主數(shù)據(jù)庫(kù)文件以外的所有其他數(shù)據(jù)庫(kù)文件都是次要數(shù)據(jù)庫(kù)文件。該文件是可選的,由用戶定義并且存儲(chǔ)數(shù)據(jù);通過(guò)每個(gè)文件存放在不同的磁盤(pán)驅(qū)動(dòng)器上,次要文件可用于將數(shù)據(jù)分散到多個(gè)磁盤(pán)上;如果數(shù)據(jù)庫(kù)超過(guò)了單個(gè) Windows 文件的最大值,可以使用次要數(shù)據(jù)文件,使數(shù)據(jù)庫(kù)能繼續(xù)增長(zhǎng),次要數(shù)據(jù)庫(kù)文件的擴(kuò)展名是.ndf。事
26、務(wù)日志文件:用于保存恢復(fù)數(shù)據(jù)庫(kù)的日志信息,每個(gè)數(shù)據(jù)庫(kù)必須至少有一個(gè)日志文件,其擴(kuò)展名是.ldf。(2)邏輯文件與物理文件啟動(dòng) SQL Server Mangement Studio,在“對(duì)象資源管理器”窗格中展開(kāi)“數(shù)據(jù)庫(kù)”結(jié)點(diǎn),然后展開(kāi)“系統(tǒng)數(shù)據(jù)庫(kù)”,查看到 master 數(shù)據(jù)庫(kù),如圖 1-1-25 所示。在操作系統(tǒng)下,找到 SQL Server 的安裝路徑(例如:C:ProgramFilesMicrosoft SQL Server),依次打開(kāi) MSSQL.1、MSSQL 和 Data 文件夾,其中 master.mdf 和 mastlog.ldf即為 master 數(shù)據(jù)庫(kù)對(duì)應(yīng)的物理文件,如圖
27、 1-1-27 所示。每個(gè) SQL Server 2005 數(shù)據(jù)庫(kù)至少具有兩個(gè)文件:數(shù)據(jù)文件和日志文件。數(shù)據(jù)文件包含數(shù)據(jù)和對(duì)象,例如表、索引、存儲(chǔ)過(guò)程和視圖。日志文件包含恢復(fù)數(shù)據(jù)庫(kù)中的所有事務(wù)所需的信息。為了便于分配和管理,可以將數(shù)據(jù)文件集合起來(lái),存放到文件組中。圖 1-1-27master 數(shù)據(jù)庫(kù)對(duì)應(yīng)的物理文件名稱llSQL Server 2005 文件有兩個(gè)文件名稱:邏輯文件名和物理文件名。邏輯文件名:是所有 T-SQL 語(yǔ)句引用物理文件時(shí)所使用的名稱,邏輯文件名必須符合 SQL Server 標(biāo)識(shí)符規(guī)則,而且在數(shù)據(jù)庫(kù)中邏輯文件名中必須是唯一的。物理文件名:物理文件名是包含目錄路徑的物理文
28、件名,也必須符合操作系統(tǒng)文件名規(guī)則。(3)文件組每個(gè)數(shù)據(jù)庫(kù)有一個(gè)主要文件組,此文件組包含主要數(shù)據(jù)文件和未放入其他文件組的所有次要文件??梢詣?chuàng)建用戶定義的文件組,用于將數(shù)據(jù)文件集合起來(lái),以便于管理、數(shù)據(jù)分配和放置。例如,可以分別在 3 個(gè)磁盤(pán)驅(qū)動(dòng)器上創(chuàng)建 3 個(gè)文件 data1.ndf、data2.ndf 和 data3.ndf,并將它們分配給文件組 fgroupl,可以明確地在文件組 fgroupl 上創(chuàng)建一個(gè)表,對(duì)表中數(shù)據(jù)的查詢將分散到三個(gè)磁盤(pán)上,從而提高性能。SQL Server 2005 將數(shù)據(jù)庫(kù)映射為一組物理文件,在備份操作和還原操作中,文件組用于幫助數(shù)據(jù)布局和管理任務(wù)。(4)數(shù)據(jù)文件
29、頁(yè)SQL Server 中數(shù)據(jù)存儲(chǔ)的基本單位是頁(yè)。為數(shù)據(jù)庫(kù)中的數(shù)據(jù)文件(.mdf 或.ndf)分配的磁盤(pán)空間可以從邏輯上劃分成頁(yè)(從 0n 連續(xù)編號(hào))。磁盤(pán) I/O 操作在頁(yè)級(jí)執(zhí)行,即 SQL Server 讀取或?qū)懭胨袛?shù)據(jù)頁(yè)。SQL Server 中,頁(yè)的大小為 8KB,則 SQL Server 數(shù)據(jù)庫(kù)中每 MB 有 128 頁(yè)。每頁(yè)的開(kāi)頭是 96B 的標(biāo)頭,用于存儲(chǔ)有關(guān)頁(yè)的系統(tǒng)信息。此信息包括頁(yè)碼、頁(yè)類型、頁(yè)的可用空間以及擁有該頁(yè)面的對(duì)象的分配單元 ID。在數(shù)據(jù)頁(yè)上,數(shù)據(jù)行緊接著標(biāo)頭按順序放置。頁(yè)的末尾是行偏移表,對(duì)于頁(yè)中的每一行,每個(gè)行偏移表都包含一個(gè)條目。每個(gè)條目記錄對(duì)應(yīng)行的第一個(gè)字
30、節(jié)與頁(yè)首的距離。行偏移表中行的條目的順序與頁(yè)中行的順序相反。SQL Server 2005 數(shù)據(jù)文件中的頁(yè)按順序編號(hào),文件的首頁(yè)以 0 開(kāi)始。數(shù)據(jù)庫(kù)中的每個(gè)文件都有一個(gè)唯一的文件 ID 號(hào)。若要唯一標(biāo)識(shí)數(shù)據(jù)庫(kù)中的頁(yè),需要同時(shí)使用文件 ID 號(hào)和頁(yè)碼。每個(gè)文件的第一頁(yè)是一個(gè)包含有關(guān)文件屬性信息的文件的首頁(yè)。在文件開(kāi)始處的其他幾頁(yè)也包含系統(tǒng)信息(例如分配映射)。有一個(gè)存儲(chǔ)在主數(shù)據(jù)文件和第一個(gè)日志文件中的系統(tǒng)頁(yè)是包含數(shù)據(jù)庫(kù)屬性信息的數(shù)據(jù)引導(dǎo)頁(yè)。1.2 【案例 2】創(chuàng)建“選課管理”數(shù)據(jù)庫(kù)一個(gè)數(shù)據(jù)庫(kù)必須至少包含一個(gè)數(shù)據(jù)文件和一個(gè)事務(wù)日志文件,所以創(chuàng)建數(shù)據(jù)庫(kù)的操作就是建立數(shù)據(jù)文件和事務(wù)日志文件。相關(guān)知識(shí)1
31、在 SSMS 中使用向?qū)Х绞絼?chuàng)建數(shù)據(jù)庫(kù)一個(gè) SQL Server 2005 數(shù)據(jù)庫(kù)服務(wù)器實(shí)例中最多可以創(chuàng)建 32 767 個(gè)數(shù)據(jù)庫(kù),作為初學(xué)者,我們可以在 SQLServer Management Studio 窗口中使用可視化的界面,通過(guò)向?qū)崾緛?lái)創(chuàng)建數(shù)據(jù)庫(kù),具體的步驟如下所述。 選擇“開(kāi)始”“程序”Microsoft SQL Server 2005 命令,打開(kāi) SQL Server Management Studio 窗l(fā)ll口,使用“Windows 身份驗(yàn)證”或者是“SQL Server 身份驗(yàn)證”建立連接。 在“對(duì)象資源管理器”窗格中依次展開(kāi)服務(wù)器,選擇“數(shù)據(jù)庫(kù)”結(jié)點(diǎn)。 在“數(shù)據(jù)庫(kù)”結(jié)
32、點(diǎn)右擊,從彈出的快捷菜單中選擇“新建數(shù)據(jù)庫(kù)”命令。 打開(kāi)“新建數(shù)據(jù)庫(kù)”窗口,在該對(duì)話框中有 3 個(gè)選項(xiàng)卡,分別是“常規(guī)”、“選項(xiàng)”和“文件組”,如圖1-2-3 所示。 在“數(shù)據(jù)庫(kù)名稱”文本框中輸入數(shù)據(jù)庫(kù)的名稱,在“所有者”文本框中輸入該數(shù)據(jù)庫(kù)的所有者名稱,可以選擇“默認(rèn)值”,也可以通過(guò)單擊文本框右邊的“瀏覽”按鈕選擇所有者,勾選“使用全文索引”復(fù)選框,表示可以在數(shù)據(jù)庫(kù)中使用全文索引進(jìn)行查詢操作。在輸入數(shù)據(jù)庫(kù)的名稱、所有者、大小以及存儲(chǔ)該數(shù)據(jù)庫(kù)的文件和文件組、數(shù)據(jù)庫(kù)名稱時(shí)必須遵循 SQL Server 標(biāo)識(shí)符規(guī)則。 在“常規(guī)”選項(xiàng)卡中的“數(shù)據(jù)庫(kù)文件”列表中包括兩行:一行是數(shù)據(jù)文件,一行是日志文件
33、。通過(guò)單擊下面相應(yīng)的按鈕可以添加或者刪除相應(yīng)的數(shù)據(jù)文件。該列表中各列的含義如下所述。邏輯名稱:指定該文件的文件名,其數(shù)據(jù)文件與 SQL Server 2000 不同,在默認(rèn)情況下不再為用戶輸入的文件名添加下畫(huà)線和 Data 字樣,相應(yīng)的文件擴(kuò)展名并未改變。文件類型:用于區(qū)別當(dāng)前文件是數(shù)據(jù)文件還是日志文件。文件組:顯示當(dāng)前數(shù)據(jù)庫(kù)文件所屬的文件組,一個(gè)數(shù)據(jù)庫(kù)文件只能存放于一個(gè)文件組里。lll初始大?。褐贫ㄔ撐募某跏既萘?,在 SQL Server 2005 中數(shù)據(jù)文件的默認(rèn)值為 3MB,日志文件的默認(rèn)值為1MB。自動(dòng)增長(zhǎng):當(dāng)文件的容量不能滿足使用時(shí),文件可以根據(jù)某種增長(zhǎng)方式自動(dòng)增長(zhǎng)。通過(guò)單擊“自動(dòng)
34、增長(zhǎng)”列中的省略號(hào)按鈕,打開(kāi)更改自動(dòng)增長(zhǎng)設(shè)置對(duì)話框進(jìn)行設(shè)置。如圖 1-2-4 所示的對(duì)話框,分別為數(shù)據(jù)文件、日志文件的自動(dòng)增長(zhǎng)進(jìn)行設(shè)置。在創(chuàng)建數(shù)據(jù)庫(kù)時(shí)最好指定文件的最大允許增長(zhǎng)的大小,這樣做可以防止文件在添加數(shù)據(jù)時(shí)無(wú)限制增大,以至用盡整個(gè)磁盤(pán)空間。路徑:指定存放該文件的目錄,默認(rèn)情況下,SQL Server 2005 將存放路徑設(shè)置為 SQL Server 2005 安裝目錄下的 data 子目錄。單擊該列中的按鈕,可以在打開(kāi)的“定位文件夾”對(duì)話框中更改數(shù)據(jù)庫(kù)的存儲(chǔ)路徑。只能在創(chuàng)建數(shù)據(jù)庫(kù)時(shí)改變其存儲(chǔ)位置,一旦數(shù)據(jù)庫(kù)創(chuàng)建以后,存儲(chǔ)位置就不能被修改。在創(chuàng)建大型數(shù)據(jù)庫(kù)時(shí),盡量把主數(shù)據(jù)文件放在和事務(wù)日
35、志文件不同的路徑下,這樣能夠提高數(shù)據(jù)讀取的效率。 在“新建數(shù)據(jù)庫(kù)”窗口中,切換到“選項(xiàng)”選項(xiàng)卡,定義所創(chuàng)建數(shù)據(jù)庫(kù)的排序規(guī)則、恢復(fù)模式、兼容級(jí)別、恢復(fù)、游標(biāo)等選項(xiàng),如圖 1-2-7 所示。如果在 “兼容級(jí)別”文本框中選擇 SQL Server 2005(90),可以保證 SQL Server 2005 以前版本的數(shù)據(jù)庫(kù)能夠順利地創(chuàng)建數(shù)據(jù)庫(kù)關(guān)系圖。圖 1-2-7 “新建數(shù)據(jù)庫(kù)”窗口中的“選項(xiàng)”選項(xiàng)卡 在“新建數(shù)據(jù)庫(kù)”窗口中,切換到“文件組”選項(xiàng)卡,如圖 1-2-8 所示,可以設(shè)置數(shù)據(jù)庫(kù)文件所屬的文件組,還可以通過(guò)“添加”或者“刪除”按鈕更改數(shù)據(jù)庫(kù)文件所屬的文件組。圖 1-2-8 “新建數(shù)據(jù)庫(kù)”窗口
36、中的“文件組”選項(xiàng)卡 完成以上操作后,單擊“確定”按鈕,關(guān)閉“新建數(shù)據(jù)庫(kù)”窗口,成功創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),這時(shí)可以在“對(duì)象資源管理器”窗格中看到新建的數(shù)據(jù)庫(kù)。2Transact-SQL 語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)語(yǔ)句格式雖然使用 SQL Server Management Studio 是創(chuàng)建數(shù)據(jù)庫(kù)最簡(jiǎn)單的方法,但在實(shí)際設(shè)計(jì)過(guò)程中,開(kāi)發(fā)人員有時(shí)會(huì)直接使用 Transact-SQL 在程序代碼中創(chuàng)建數(shù)據(jù)庫(kù)及其他數(shù)據(jù)庫(kù)對(duì)象。SQL Server 2005 使用的 Transact-SQL是標(biāo)準(zhǔn) SQL(結(jié)構(gòu)化查詢語(yǔ)言)的增強(qiáng)版本,使用它提供的 CREATE DATABASE 語(yǔ)言可以完成新建數(shù)據(jù)庫(kù)的操作。(1)CR
37、EATE DATABASE 語(yǔ)句的簡(jiǎn)單格式使用 CREATE DATABASE 語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù),最簡(jiǎn)單的方式如下:CREATE DATABASE 按照以上方式不需要指定 databaseName 的參數(shù),即可成功創(chuàng)建數(shù)據(jù)庫(kù),databaseName 表示要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)的名稱,其他與數(shù)據(jù)庫(kù)有關(guān)的選項(xiàng)都使用系統(tǒng)的默認(rèn)值。例如,創(chuàng)建“選課系統(tǒng)”數(shù)據(jù)庫(kù),其語(yǔ)句格式如下:CREATE DATABASE 選課系統(tǒng)(2)CREATE DATABASE 語(yǔ)句的完整格式如果創(chuàng)建數(shù)據(jù)庫(kù)時(shí),明確指定數(shù)據(jù)庫(kù)的文件和這些文件的大小及增長(zhǎng)的方式,就需要使用 CREATE DATABASE語(yǔ)句的完整格式,其語(yǔ)法結(jié)構(gòu)如下:C
38、REATE DATABASE ON ( NAME=,FILENAME=, SIZE=, MAXSIZE=, FILEGROWTH=) LOG ON ( NAME=,FILENAME=, SIZE=, MAXSIZE=, FILEGROWTH=)在以上 CREATE DATABASE 語(yǔ)法格式中,每一種特定的符號(hào)都有特殊的含義。方括號(hào) 中的內(nèi)容表示可以省略的選項(xiàng)或參數(shù)。通常會(huì)與符號(hào)連用,表示中的選項(xiàng)或參數(shù)必選其中之一。例如,MAXSIZE=max_sizellllllllKBMBGBTBUNLIMITED表示定義數(shù)據(jù)庫(kù)文件的最大容量,或者指定一個(gè)具體的容量 max_size KBMBGBTB,或
39、者指定容量沒(méi)有限制 UMLIMITED,但是不能空缺。其他各關(guān)鍵字解釋如下所述。ON:用來(lái)創(chuàng)建數(shù)據(jù)文件,使用 PRIMARY 表示創(chuàng)建的是主數(shù)據(jù)文件。FILEGROUP:用來(lái)創(chuàng)建次文件組。LOG ON:用來(lái)創(chuàng)建事務(wù)日志文件。NAME:為所創(chuàng)建文件的文件名稱。FILENAME:指出了各文件存儲(chǔ)的路徑。SIZE:定義初始大小。MAXSIZE:指定了文件的最大容量。FILEGROWTH:指定了文件的增長(zhǎng)值。3在 SSMS 中使用 Transact-SQL 語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)在掌握 CREATE DATABASE 語(yǔ)句的語(yǔ)法格式及參數(shù)含義后,可以使用該語(yǔ)句創(chuàng)建“教務(wù)管理系統(tǒng)”數(shù)據(jù)庫(kù),具體操作步驟如下所述。
40、 選擇“開(kāi)始”“程序”Microsoft SQL Server 2005 命令,打開(kāi) SQL Server Management Studio 窗口,使用“Windows 身份驗(yàn)證”或者是“SQL Server 身份驗(yàn)證”建立連接。 單擊“文件”菜單,依次選擇“新建”“數(shù)據(jù)庫(kù)引擎查詢”命令,如圖 1-2-9 所示,或者單擊“新建查詢”按鈕,創(chuàng)建一個(gè)查詢輸入窗口。圖 1-2-9選擇“數(shù)據(jù)庫(kù)引擎查詢”命令 在如圖 1-2-10 所示的窗口內(nèi)輸入 Transact-SQL 語(yǔ)句。例如,以創(chuàng)建“選課系統(tǒng)”數(shù)據(jù)庫(kù)為例,保存位置為 D:data,語(yǔ)句格式如下:CREATE DATABASE 選課管理ON(
41、NAME=選課管理_DATA,FILENAME=D:data選課管理_DATA.ndf,SIZE=5MB,MAXSIZE=20MB,FILEGROWTH=5%)LOG ON(NAME=選課管理_log,FILENAME=D:data選課管理_log.ldf,SIZE=2MB,MAXSIZE=10MB,FILEGROWTH=1MB) 單擊工具欄中的“分析”按鈕,檢查語(yǔ)法錯(cuò)誤,如果通過(guò),將在查詢窗口內(nèi)的“消息”窗格中顯示“命令已成功完成”提示消息,如圖 1-2-10 所示。在“對(duì)象資源管理器”窗格中刷新,展開(kāi)數(shù)據(jù)庫(kù)結(jié)點(diǎn)就能看到新建的“選課管理”數(shù)據(jù)庫(kù),如圖 1-2-10 所示。圖 1-2-10查詢
42、窗口llll在上述創(chuàng)建的“選課管理”數(shù)據(jù)庫(kù)案例中,數(shù)據(jù)文件的邏輯名稱是“選課管理_DATA”,其日志文件的邏輯名稱是“選課管理_log”,“選課管理_DATA”數(shù)據(jù)文件的物理名稱是通過(guò) FILENAME 關(guān)鍵字指定的,SIZE關(guān)鍵字指定該數(shù)據(jù)文件的大小為 5MB,最大值是 20MB,使用 LOG ON 子句指定日志文件的信息。由于該數(shù)據(jù)庫(kù)的數(shù)據(jù)文件大小是 5MB,日志文件大小是 2MB,所以整個(gè)數(shù)據(jù)庫(kù)的大小是 7MB。如果該數(shù)據(jù)庫(kù)的大小不斷增長(zhǎng),則可以指定其增長(zhǎng)方式,如果數(shù)據(jù)的大小基本不變,為提高數(shù)據(jù)的使用效率,通常不指定其具有自動(dòng)增長(zhǎng)方式。如果數(shù)據(jù)庫(kù)的數(shù)據(jù)文件或日志文件的數(shù)量多于 1 個(gè),則
43、文件之間使用逗號(hào)分隔。當(dāng)某個(gè)數(shù)據(jù)庫(kù)有 2 個(gè)或者 2個(gè)以上的數(shù)據(jù)文件時(shí),需要指定哪一個(gè)數(shù)據(jù)文件是主數(shù)據(jù)文件。默認(rèn)情況下,第一個(gè)數(shù)據(jù)文件是主數(shù)據(jù)文件,也可以使用 PRIMARY 關(guān)鍵字來(lái)指定主數(shù)據(jù)文件。在執(zhí)行上述語(yǔ)句之前,數(shù)據(jù)文件和日志文件所在的目錄必須存在,如果不存在將產(chǎn)生錯(cuò)誤,創(chuàng)建數(shù)據(jù)庫(kù)失敗,同時(shí)所命名的數(shù)據(jù)庫(kù)名稱必須唯一,否則,創(chuàng)建數(shù)據(jù)庫(kù)也將失敗。4查看數(shù)據(jù)庫(kù)屬性查看數(shù)據(jù)庫(kù)信息最簡(jiǎn)單的方法是使用 SQL Server Management Studio,操作步驟如下所述。 打開(kāi) SQL Server Management Studio 窗口,在“對(duì)象資源管理器”窗格中選擇該數(shù)據(jù)庫(kù)結(jié)點(diǎn)并右擊
44、,選擇“屬性”命令。 在打開(kāi)的“數(shù)據(jù)庫(kù)屬性選課管理”窗口中即可查看數(shù)據(jù)庫(kù)的基本信息、選項(xiàng)信息、文件信息和權(quán)限信息等,如圖 1-2-11 所示。圖 1-2-11 “數(shù)據(jù)庫(kù)屬性選課管理”窗口llll5刪除數(shù)據(jù)庫(kù)隨著數(shù)據(jù)庫(kù)數(shù)量的增加,系統(tǒng)的資源消耗越來(lái)越多,運(yùn)行速度也將減慢,這就需要將不需要的數(shù)據(jù)庫(kù)刪除,釋放被占用的磁盤(pán)空間和系統(tǒng)消耗。SQL Server 2005 提供了兩種方法來(lái)完成這些任務(wù)。(1)使用 SQL Server Management Studio 工具打開(kāi) SQL Server Management Studio 窗口,并使用“Windows 身份驗(yàn)證”或者是“SQL Server
45、 身份驗(yàn)證”建立連接。在“對(duì)象資源管理器”窗格中展開(kāi)服務(wù)器,然后展開(kāi)“數(shù)據(jù)庫(kù)”結(jié)點(diǎn)。從展開(kāi)的數(shù)據(jù)庫(kù)結(jié)點(diǎn)列表中,右擊選擇要?jiǎng)h除的數(shù)據(jù)庫(kù),從彈出的快捷菜單中選擇“刪除”命令。打開(kāi)“刪除對(duì)象”窗口,如圖 1-2-12 所示,單擊“確定”按鈕確認(rèn)刪除。刪除操作完成后會(huì)自動(dòng)返回 SQL ServerManagement Studio 窗口,則選中的數(shù)據(jù)庫(kù)被刪除。(2)使用 Transact-SQL 語(yǔ)句刪除數(shù)據(jù)庫(kù)使用 Transact-SQL 語(yǔ)句刪除數(shù)據(jù)庫(kù)的語(yǔ)法為:DROP DATABASE database_name,n。其中 database_name為要?jiǎng)h除的數(shù)據(jù)庫(kù)名,,n表示可以有多個(gè)數(shù)據(jù)庫(kù)名
46、。例如,要?jiǎng)h除數(shù)據(jù)庫(kù)“選課管理”,可使用語(yǔ)句:DROPDATABASE 選課管理。提示:使用 DROP DATABASE 刪除數(shù)據(jù)庫(kù)不會(huì)出現(xiàn)確認(rèn)信息,所以使用這種方法時(shí)要小心謹(jǐn)慎,而且一定不能刪除系統(tǒng)數(shù)據(jù)庫(kù),否則會(huì)導(dǎo)致 SQL Server 2005 服務(wù)器無(wú)法使用。圖 1-2-12 “刪除對(duì)象”窗口ll1.3 【案例 3】維護(hù)“選課管理”數(shù)據(jù)庫(kù)相關(guān)知識(shí)1修改數(shù)據(jù)庫(kù)SQL Server 2005 除了允許修改數(shù)據(jù)庫(kù)的選項(xiàng)設(shè)置以外,還允許對(duì)數(shù)據(jù)庫(kù)具體的屬性進(jìn)行更改,例如修改數(shù)據(jù)庫(kù)的名稱、大小,以及添加或刪除文件和文件組,刪除無(wú)效數(shù)據(jù)庫(kù)等。修改數(shù)據(jù)庫(kù)主要是針對(duì)創(chuàng)建數(shù)據(jù)庫(kù)在需求有變化時(shí)進(jìn)行的操作,這
47、些修改可分為數(shù)據(jù)庫(kù)的名稱、大小及屬性,具體操作步驟如下所述。(1)修改數(shù)據(jù)庫(kù)名稱通常情況下,不建議用戶修改創(chuàng)建好的數(shù)據(jù)庫(kù)名稱,因?yàn)樵S多應(yīng)用程序可能已經(jīng)使用了該數(shù)據(jù)庫(kù)的名稱,在更改了數(shù)據(jù)庫(kù)的名稱之后,還需要修改相應(yīng)的應(yīng)用程序。修改數(shù)據(jù)庫(kù)的方法有多種,包括使用 SSMS 程序、ALTER DATABASE 語(yǔ)句等。使用 SSMS 程序。從“對(duì)象資源管理器”窗格中右擊一個(gè)數(shù)據(jù)庫(kù)名稱結(jié)點(diǎn),選擇“重命名”命令后輸入新的名稱,即可直接改名。ALTER DATABASE 語(yǔ)句。該語(yǔ)句修改數(shù)據(jù)庫(kù)名稱時(shí)只更改了數(shù)據(jù)庫(kù)的邏輯名稱,對(duì)于該數(shù)據(jù)庫(kù)的數(shù)據(jù)文件和日志文件沒(méi)有任何影響,lll語(yǔ)法如下:ALTER DATAB
48、ASEdatabaseNameMODIFY NAME=newdatabaseName例如,將“選課系統(tǒng)”數(shù)據(jù)庫(kù)更名為 Class_MIS,語(yǔ)句為ALTER DATABASE 選課系統(tǒng) MODIFY NAME=Class_MIS(2)修改數(shù)據(jù)庫(kù)大小如果數(shù)據(jù)庫(kù)中的數(shù)據(jù)量不斷膨脹,需要擴(kuò)大數(shù)據(jù)庫(kù)的尺寸,這時(shí)就需要修改數(shù)據(jù)庫(kù)大小、增加或刪除文件、修改數(shù)據(jù)文件和日志文件的長(zhǎng)度。修改數(shù)據(jù)庫(kù)大小可以通過(guò)如下 3 種方式:在數(shù)據(jù)庫(kù)中添加新的次要數(shù)據(jù)文件或日志文件。在創(chuàng)建數(shù)據(jù)庫(kù)時(shí),設(shè)置數(shù)據(jù)庫(kù)為自動(dòng)增長(zhǎng)方式。直接修改數(shù)據(jù)庫(kù)的數(shù)據(jù)文件或日志文件的大小。使用 ALTER DATABASE 命令可以在數(shù)據(jù)庫(kù)中添加或刪除
49、文件和文件組、更改文件的名稱和大小、更改文件和文件組的屬性。雖然 ALTER DATABASE 提供了更改數(shù)據(jù)庫(kù)名稱、文件組名稱以及數(shù)據(jù)文件和日志文件的邏輯名稱的能力,但不能改變數(shù)據(jù)庫(kù)的儲(chǔ)存位置。修改數(shù)據(jù)庫(kù)的基本語(yǔ)句格式如下:ALTER DATABASE ADD FILE | ADD LOG| REMOVEFILEFILE| ADD FILEGROUP| REMOVE| MODIFY| MODIFY| MODIFYFILEGROUPFILENAME=FILRGROUP | SET 如果要增加的是日志文件,可以使用 ADD LOGFILE 子句。在一個(gè) ALTER DATABASE 語(yǔ)句中,一次
50、操作可增加多個(gè)數(shù)據(jù)文件或日志文件,多個(gè)文件之間使用逗號(hào)分隔開(kāi)。例如,可以通過(guò)為“選課系統(tǒng)”數(shù)據(jù)庫(kù)增加一個(gè)大小為 3MB 的數(shù)據(jù)文件,來(lái)實(shí)現(xiàn)將其擴(kuò)大 3MB。使用 ALTERDATABASE 語(yǔ)句,利用 ADD FILE 子句新增一個(gè)次要數(shù)據(jù)文件實(shí)現(xiàn),這里新增數(shù)據(jù)文件的邏輯名稱是“選課系統(tǒng)_DATA1”,其大小是 3MB,最大值是 10MB,并且可以自動(dòng)增長(zhǎng)。具體語(yǔ)句如下:ALTER DATABASE選課系統(tǒng)(ADD FILENAME=選課系統(tǒng)_DATA1,FILENAME=D:data選課系統(tǒng)_DATA.ndf,SIZE=3MB,MAXSIZE=10MB,FILEGROWTH=10%)2收縮數(shù)
51、據(jù)庫(kù)如果將數(shù)據(jù)庫(kù)的容量設(shè)計(jì)得過(guò)大,或刪除了數(shù)據(jù)庫(kù)中大量的數(shù)據(jù),需要收縮數(shù)據(jù)庫(kù)以減少磁盤(pán)資源。收縮數(shù)據(jù)庫(kù)有以下 3 種方式。(1)設(shè)置數(shù)據(jù)庫(kù)為自動(dòng)收縮打開(kāi)數(shù)據(jù)庫(kù)的“數(shù)據(jù)庫(kù)屬性選課管理”窗口,切換到“選項(xiàng)”選項(xiàng)卡,在右邊的“其他選項(xiàng)”列表框中找到“自動(dòng)收縮”選項(xiàng),并將其值改為 True,如圖 1-3-5 所示。再單擊“確定”按鈕。圖 1-3-5 “數(shù)據(jù)庫(kù)屬性選課管理”窗口l(2)手動(dòng)設(shè)置收縮數(shù)據(jù)庫(kù)右擊需要收縮的數(shù)據(jù)庫(kù),從彈出的快捷菜單中選擇“任務(wù)”“收縮”“數(shù)據(jù)庫(kù)”命令,打開(kāi)“收縮數(shù)據(jù)庫(kù)”窗口。在該窗口中可以看到當(dāng)前數(shù)據(jù)庫(kù)的大小及可用空間,并可以自行設(shè)置收縮后的數(shù)據(jù)庫(kù)大小,設(shè)置完成后,單擊“確定”
52、按鈕即可。(3)使用 DBCC SHRINK DATABASE 命令收縮數(shù)據(jù)庫(kù)該命令是一種比自動(dòng)收縮數(shù)據(jù)庫(kù)更加靈活的收縮數(shù)據(jù)庫(kù)方式,可以對(duì)整個(gè)數(shù)據(jù)庫(kù)進(jìn)行收縮,例如:將數(shù)據(jù)庫(kù)“選課管理”收縮,并保留數(shù)據(jù)庫(kù)有 10%的可用空間。語(yǔ)句格式如下:DBCC SHRINK DATABASE (選課管理,10)3分離數(shù)據(jù)庫(kù)分離數(shù)據(jù)庫(kù)是指將數(shù)據(jù)庫(kù)從 SQL Server 2005 實(shí)例上刪除,但該數(shù)據(jù)庫(kù)的數(shù)據(jù)文件和事務(wù)日志文件仍然保持不變,并將該數(shù)據(jù)庫(kù)附加到其他任何 SQL Server 2005 實(shí)例上。(1)數(shù)據(jù)庫(kù)分離的特征以下任何情況之一將不能分離數(shù)據(jù)庫(kù)。已復(fù)制并發(fā)布的數(shù)據(jù)庫(kù)。如果進(jìn)行復(fù)制,則數(shù)據(jù)庫(kù)必須
53、是未發(fā)布的,如果要分離數(shù)據(jù)庫(kù),必須先通過(guò)執(zhí)行sp_replicationdboption 存儲(chǔ)過(guò)程禁用后再分離。ll管理。數(shù)據(jù)庫(kù)中存在數(shù)據(jù)庫(kù)快照。此時(shí)必須先刪除所有的數(shù)據(jù)庫(kù)快照,才能分離數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)處于未知狀態(tài)。在 SQL Server 2005 中,無(wú)法分離可疑和未知狀態(tài)的數(shù)據(jù)庫(kù),必須將數(shù)據(jù)庫(kù)設(shè)置為緊急狀態(tài)模式,才能對(duì)其進(jìn)行分離操作。(2)使用 sp_deatch_db 存儲(chǔ)過(guò)程分離數(shù)據(jù)庫(kù)例如:分離“選課管理”數(shù)據(jù)庫(kù)。使用 sp_deatch_db 存儲(chǔ)過(guò)程來(lái)執(zhí)行數(shù)據(jù)庫(kù)分離操作,命令為:EXEC sp_detach_db 選課(3)使用 SQL Server Management Stud
54、io 工具分離數(shù)據(jù)庫(kù)使用 SQL Server Management Studio 工具來(lái)執(zhí)行數(shù)據(jù)庫(kù)分離操作,具體操作步驟如下所述。 啟動(dòng) SQL Server Management Studio 程序,并使用“Windows 身份驗(yàn)證”或“SQL Server 身份驗(yàn)證”建立連接。 在“對(duì)象資源管理器”窗格中展開(kāi)服務(wù)器下的“數(shù)據(jù)庫(kù)”結(jié)點(diǎn),右擊要分離的數(shù)據(jù)庫(kù)名稱結(jié)點(diǎn)(如選課管理),選擇“任務(wù)”“分離”命令,如圖 1-3-6 所示。 打開(kāi)“分離數(shù)據(jù)庫(kù)”窗口,查看在“數(shù)據(jù)庫(kù)名稱”列中的數(shù)據(jù)庫(kù)名稱,驗(yàn)證這是否為分離的數(shù)據(jù)庫(kù),如圖 1-3-7 所示。圖 1-3-6選擇“任務(wù)”“分離”命令圖 1-3-7
55、 “分離數(shù)據(jù)庫(kù)”窗口 默認(rèn)情況下,分離操作將在分離數(shù)據(jù)庫(kù)時(shí)保留過(guò)期的優(yōu)化統(tǒng)計(jì)信息;若要更新現(xiàn)有的優(yōu)化統(tǒng)計(jì)信息,可勾選“更新統(tǒng)計(jì)信息”復(fù)選框。 在“狀態(tài)”列中的如果是“就緒”,則“消息”列將顯示有關(guān)數(shù)據(jù)庫(kù)的超鏈接信息,當(dāng)數(shù)據(jù)庫(kù)涉及復(fù)制時(shí),“消息”列將顯示 Database replicated。 數(shù)據(jù)庫(kù)有一個(gè)或多個(gè)活動(dòng)連接時(shí),“消息”列將顯示“活動(dòng)連接數(shù)個(gè)活動(dòng)連接”。在可以分離數(shù)據(jù)庫(kù)之前,必須勾選“刪除連接”復(fù)選框來(lái)斷開(kāi)所有活動(dòng)連接的連接。 分離數(shù)據(jù)庫(kù)準(zhǔn)備就緒后,單擊“確定”按鈕。4附加數(shù)據(jù)庫(kù)附加數(shù)據(jù)庫(kù)時(shí),所有數(shù)據(jù)庫(kù)文件(.mdf 文件和.ndf 文件)都必須為“可用”狀態(tài),如果數(shù)據(jù)文件的路徑與
56、創(chuàng)建數(shù)據(jù)庫(kù)或上次附加數(shù)據(jù)庫(kù)時(shí)的路徑不同,則必須指定文件的當(dāng)前路徑。在附加數(shù)據(jù)庫(kù)的過(guò)程中,如果沒(méi)有日志文件,系統(tǒng)將創(chuàng)建一個(gè)新的日志文件。(1)使用 SQL Server Management Studio 程序附加數(shù)據(jù)庫(kù)例如,要將分離后的“選課管理”數(shù)據(jù)庫(kù)附加到指定的 SQL Server 2005 實(shí)例中,可以使用 SQL ServerManagement Studio 程序,具體操作步驟如下所述。 啟動(dòng) SQL Server Management Studio 程序,并使用“Windows 身份驗(yàn)證”或者是“SQL Server 身份驗(yàn)證”建立連接。 在“對(duì)象資源管理器”窗格中,連接到 SQ
57、L Server 2005 數(shù)據(jù)庫(kù)引擎,然后展開(kāi)該實(shí)例的“數(shù)據(jù)庫(kù)”結(jié)點(diǎn)并右擊,選擇“附加”命令,如圖 1-3-8 所示。 打開(kāi)“附加數(shù)據(jù)庫(kù)”窗口,如圖 1-3-9 所示,在該窗口中單擊“添加”按鈕,從打開(kāi)的定位數(shù)據(jù)庫(kù)文件窗口中選擇要附加的數(shù)據(jù)庫(kù)所在的位置,如圖 1-3-10 所示。圖 1-3-8選擇“附加”命令圖 1-3-9 “附加數(shù)據(jù)庫(kù)”窗口 單擊“確定”按鈕返回,效果如圖 1-3-11 所示。圖 1-3-10定位數(shù)據(jù)庫(kù)文件窗口圖 1-3-11附加數(shù)據(jù)庫(kù)后的效果(2)使用 T-SQL 語(yǔ)句附加數(shù)據(jù)庫(kù)可以使用 T-SQL 語(yǔ)句附加數(shù)據(jù)庫(kù),語(yǔ)句格式如下:EXEC sp_attach_db dbn
58、ame=數(shù)據(jù)庫(kù)名,filename1=MDF 文件的路徑,filename2=LDF 文件的路徑例如:附加一個(gè)數(shù)據(jù)庫(kù)圖書(shū)借閱管理,數(shù)據(jù)庫(kù)的名字為“圖書(shū)借閱管理_DATA”,數(shù)據(jù)文件的路徑為 D:data,日志文件的路徑 D:data。EXEC sp_attach_dbdbname=圖書(shū)借閱管理_DATA,filename1=D:data圖書(shū)借閱管理_DATA.MDF,filename2=D:data圖書(shū)借閱管理_LOG.LDF5復(fù)制和移動(dòng)數(shù)據(jù)庫(kù)除 master、model、msdb 系統(tǒng)數(shù)據(jù)庫(kù)外,任何數(shù)據(jù)庫(kù)均可使用 SQL Server 2005 的“復(fù)制數(shù)據(jù)庫(kù)向?qū)А惫ぞ哌M(jìn)行復(fù)制或移動(dòng)。用戶可以創(chuàng)建數(shù)據(jù)庫(kù)的副本,在 SQL Server 不同實(shí)例間復(fù)制和移動(dòng)數(shù)據(jù)庫(kù),以及將 SQL Server2000 的數(shù)據(jù)庫(kù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 藝術(shù)創(chuàng)作深度解析
- 新企業(yè)的建設(shè)
- 2024年四川省樂(lè)山市峨眉山市綏山鎮(zhèn)招聘社區(qū)工作者考前自測(cè)高頻考點(diǎn)模擬試題(共500題)含答案
- 無(wú)人機(jī)配送的關(guān)鍵技術(shù)與創(chuàng)新策略
- 2025幼兒園師德計(jì)劃
- 2025年第一學(xué)期高三班主任工作計(jì)劃范文
- 2025年四年級(jí)德育工作計(jì)劃
- 控?zé)煿芾砑蔼?jiǎng)懲制度范文
- 2025年小學(xué)英語(yǔ)科第二學(xué)期教研工作計(jì)劃范文
- 2025年法律顧問(wèn)工作計(jì)劃
- 《中國(guó)近現(xiàn)代史綱要(2023版)》課后習(xí)題答案合集匯編
- 【超星爾雅學(xué)習(xí)通】《老子》《論語(yǔ)》今讀網(wǎng)課章節(jié)答案
- 配電箱采購(gòu)技術(shù)要求
- 上海外國(guó)語(yǔ)大學(xué)附屬外國(guó)語(yǔ)學(xué)校2020-2021七年級(jí)下學(xué)期期中英語(yǔ)試卷+答案
- 綠色施工措施措施 四節(jié)一環(huán)保
- TCSES 71-2022 二氧化碳地質(zhì)利用與封存項(xiàng)目泄漏風(fēng)險(xiǎn)評(píng)價(jià)規(guī)范
- GB/T 8561-2001專業(yè)技術(shù)職務(wù)代碼
- GB/T 7661-2009光學(xué)零件氣泡度
- GB/T 4745-2012紡織品防水性能的檢測(cè)和評(píng)價(jià)沾水法
- GB/T 16857.1-2002產(chǎn)品幾何量技術(shù)規(guī)范(GPS)坐標(biāo)測(cè)量機(jī)的驗(yàn)收檢測(cè)和復(fù)檢檢測(cè)第1部分:詞匯
- GB 28261-2012安全氣囊氣體發(fā)生器用點(diǎn)火具生產(chǎn)安全技術(shù)條件
評(píng)論
0/150
提交評(píng)論