SQLServer數(shù)據(jù)庫應(yīng)用技術(shù)實(shí)例教程課件_第1頁
SQLServer數(shù)據(jù)庫應(yīng)用技術(shù)實(shí)例教程課件_第2頁
SQLServer數(shù)據(jù)庫應(yīng)用技術(shù)實(shí)例教程課件_第3頁
SQLServer數(shù)據(jù)庫應(yīng)用技術(shù)實(shí)例教程課件_第4頁
SQLServer數(shù)據(jù)庫應(yīng)用技術(shù)實(shí)例教程課件_第5頁
已閱讀5頁,還剩517頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、任務(wù)一 認(rèn)識SQL Server 20051.1 數(shù)據(jù)庫技術(shù)基礎(chǔ)1.2 設(shè)計(jì)數(shù)據(jù)庫1.3 認(rèn)識SQL Server 20051.4 知識進(jìn)階任務(wù):了解數(shù)據(jù)庫技術(shù)的基礎(chǔ)理論,安裝SQL Server 2005,認(rèn)識T-SQL語言,完成數(shù)據(jù)庫應(yīng)用系統(tǒng)“高職院校教學(xué)管理系統(tǒng)”需求分析及邏輯結(jié)構(gòu)設(shè)計(jì)。學(xué)習(xí)目標(biāo)了解數(shù)據(jù)庫技術(shù)的發(fā)展歷程及特點(diǎn)了解三種數(shù)據(jù)模型及其特點(diǎn)了解關(guān)系數(shù)據(jù)庫的概念及其特點(diǎn)掌握數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計(jì)流程了解SQL Server 2005的安裝流程熟悉SQL Server Management Studio的簡單操作了解T-SQL語言的特點(diǎn)認(rèn)識SQLServer20051.1.1 數(shù)據(jù)庫1

2、.1.2 數(shù)據(jù)模型1.1.3 關(guān)系數(shù)據(jù)庫1.1 數(shù)據(jù)庫技術(shù)基礎(chǔ)任務(wù):奠定數(shù)據(jù)庫技術(shù)的理論基礎(chǔ),了解數(shù)據(jù)庫技術(shù)的發(fā)展歷程,數(shù)據(jù)庫系統(tǒng)的概念,掌握三種數(shù)據(jù)模型的概念及關(guān)系數(shù)據(jù)庫的特點(diǎn)。認(rèn)識SQLServer20051數(shù)據(jù)現(xiàn)實(shí)世界中的客觀事物在人腦中經(jīng)過抽象形成的概念,稱為信息。2數(shù)據(jù)管理通過計(jì)算機(jī)將數(shù)據(jù)轉(zhuǎn)換成信息的過程。數(shù)據(jù)處理信息。數(shù)據(jù)處理的矛盾焦點(diǎn)集中在數(shù)據(jù)管理上,數(shù)據(jù)管理包括數(shù)據(jù)的收集、整理、組織、存儲、查詢、維護(hù)和傳遞等。 3數(shù)據(jù)管理的發(fā)展 (1)人工管理時期 (2)文件系統(tǒng)時期 (3)數(shù)據(jù)庫系統(tǒng)時期 4數(shù)據(jù)庫系統(tǒng)一個完整的數(shù)據(jù)庫系統(tǒng)(DBS)由硬件、軟件、數(shù)據(jù)庫(DB)和用戶構(gòu)成,如圖1

3、-2所示。5數(shù)據(jù)庫應(yīng)用系統(tǒng)數(shù)據(jù)庫應(yīng)用系統(tǒng)是SQL Server管理技術(shù)在具體問題中的應(yīng)用,是一個實(shí)際可運(yùn)行的數(shù)據(jù)庫系統(tǒng)。 1.1.1 數(shù)據(jù)庫認(rèn)識SQLServer20051.1.2 數(shù)據(jù)模型 數(shù)據(jù)模型是對客觀事物及其聯(lián)系的數(shù)據(jù)化描述,是數(shù)據(jù)庫技術(shù)的核心。在DBS中,通過數(shù)據(jù)模型實(shí)現(xiàn)對現(xiàn)實(shí)世界中數(shù)據(jù)和信息的抽象、描述和處理,所有的DBMS都基于某種數(shù)據(jù)模型。 數(shù)據(jù)模型包含三個基本要素:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操縱和數(shù)據(jù)完整性約束條件,用來精確描述系統(tǒng)的靜態(tài)特性、動態(tài)特性和完整性條件。1概念模型相關(guān)概念:實(shí)體(Entity); 屬性(Attribute); 域(Domain); 鍵(Key); 聯(lián)系(Rel

4、ationship)。 實(shí)體集間的聯(lián)系 : 一對一聯(lián)系(1:1);一對多聯(lián)系(1:n);多對多聯(lián)系(m:n)。認(rèn)識SQLServer2005 :用矩形表示實(shí)體(集),在矩形內(nèi)注明實(shí)體的名稱。兩個實(shí)體集間的三種聯(lián)系 1.1.2 數(shù)據(jù)模型2概念模型的表示方法 :用橢圓表示實(shí)體的屬性,橢圓內(nèi)注明屬性名稱,并用直線將各橢圓與對應(yīng)的矩形連起來。 :用菱形表示實(shí)體間的聯(lián)系,菱形內(nèi)注明聯(lián)系名稱,并用直線將菱形與相關(guān)聯(lián)的實(shí)體連起來,連線上標(biāo)明聯(lián)系類型。認(rèn)識SQLServer2005關(guān)系模型要求關(guān)系必須是規(guī)范化的,最基本的條件是,關(guān)系的每一個分量必須是不可分的數(shù)據(jù)項(xiàng),即不允許表中還有表。學(xué)號姓名性別民族出生日期

5、班級成績(學(xué)分)專業(yè)英語SQL SerrvASP.NETJ07051129王浩男漢族1988-9-23J070511232J08010212杜薇女回族1990-3-16J080102322不規(guī)范的關(guān)系1.1.2 數(shù)據(jù)模型大表中包含一張小表認(rèn)識SQLServer2005關(guān)系模式(Relation Schema):二維表的表頭一行。每一個關(guān)系模式都由一些屬性組成,且必須命名。關(guān)系(Relation):對應(yīng)于關(guān)系模式的二維表,又稱表。記錄(Record):關(guān)系中的每一行稱為一條記錄或一行,同一個關(guān)系中的記錄保持唯一。屬性(Attribute):關(guān)系中的每一列稱為一個屬性,又稱為列或字段,在同一關(guān)系模

6、式中字段名互不相同。主鍵(Primary Key):在一個關(guān)系模式中,能夠唯一標(biāo)識每一條記錄的屬性或?qū)傩越M稱為主鍵。如在學(xué)生關(guān)系模式中,(學(xué)號)可作為該關(guān)系模式的主鍵。外鍵(Foreign Key):若關(guān)系模式R1中的屬性A是關(guān)系模式R2的主鍵,則屬性A稱為關(guān)系模式R1的外鍵。1.1.2 數(shù)據(jù)模型認(rèn)識SQLServer20051關(guān)系數(shù)據(jù)庫基于關(guān)系模型的一種數(shù)據(jù)庫,是一些相關(guān)的表和其他數(shù)據(jù)庫對象的集合。在關(guān)系數(shù)據(jù)庫中,信息存放在二維表格結(jié)構(gòu)的表(table)中,一個關(guān)系數(shù)據(jù)庫中包含多個表,每一個表由多個行(記錄)和多個列(字段)組成。表與表之間通過主鍵和外鍵建立聯(lián)系。 主鍵(Primary Ke

7、y,PK):在一個數(shù)據(jù)庫的一個表中,有且僅有一個主鍵,不允許為空值且值必須保持唯一性。外鍵(Foreign Key,F(xiàn)K):當(dāng)表A中的主鍵同時出現(xiàn)在表B中,該列稱為表B的外鍵,外鍵值不要求唯一。公共鍵(Common Key):關(guān)系數(shù)據(jù)庫中,若兩個表中具有相同的列或列組,則這個列或列組稱為這兩個表的公共鍵。 1.1.3 關(guān)系數(shù)據(jù)庫認(rèn)識SQLServer2005高職院校教學(xué)管理過程中主要面對:學(xué)生及其所在班級基本信息,任課教師及所在系部基本信息,課程及其所用教材、教室基本信息。對以上數(shù)據(jù)進(jìn)行處理,產(chǎn)生如下新數(shù)據(jù):按班級排課,產(chǎn)生排課信息;學(xué)生選擇課程,產(chǎn)生學(xué)生成績、班級成績。系統(tǒng)應(yīng)能完成如下基本功

8、能:存儲、查詢、管理、維護(hù)學(xué)生、班級、教師、系部、課程、教材、教室基本信息,及班級排課、學(xué)生成績信息等,以報(bào)表形式輸出各班的學(xué)期課程表、各班的期末成績單及其他信息管理結(jié)果。1.2.1 需求分析認(rèn)識SQLServer2005 圖概念結(jié)構(gòu)設(shè)計(jì)階段的主要任務(wù)是描述數(shù)據(jù)庫的組織結(jié)構(gòu)并生成關(guān)系模式。 分析實(shí)體及實(shí)體間的聯(lián)系,得到局部E-R圖1.2.2 概念結(jié)構(gòu)設(shè)計(jì)考核成績已獲學(xué)分課程性質(zhì)學(xué)期學(xué)號姓名性別學(xué)籍郵編班級民族學(xué)生課程名考核成績總學(xué)時周學(xué)時課程號學(xué)分成績課程mn出生日期家庭住址入學(xué)日期認(rèn)識SQLServer20051m1nn班級管理教師系管理教材教室開設(shè)學(xué)生成績排課課程1nmnn1n使用 初步E

9、-R圖可能存在數(shù)據(jù)冗余和關(guān)系冗余,利用數(shù)據(jù)庫的規(guī)范化理論消除各種冗余,對初步E-R圖進(jìn)行重構(gòu),最后形成系統(tǒng)的E-R圖。 高職院校教學(xué)管理系統(tǒng)E-R圖1.2.2 概念結(jié)構(gòu)設(shè)計(jì)認(rèn)識SQLServer2005 選擇合適的數(shù)據(jù)模型將概念設(shè)計(jì)的結(jié)果即E-R圖轉(zhuǎn)化為數(shù)據(jù)庫邏輯結(jié)構(gòu),并以具體的數(shù)據(jù)模型工具加以描述。 1.2.3 邏輯結(jié)構(gòu)設(shè)計(jì) 將E-R圖轉(zhuǎn)化為關(guān)系模型時要遵循的原則:(1)每個實(shí)體集轉(zhuǎn)化為一個關(guān)系模式。 (2)兩個實(shí)體集是一對一(1:1)聯(lián)系,其中一個關(guān)系模式的主鍵可以添加到另一個關(guān)系模式并充當(dāng)外鍵。(3)兩個實(shí)體集是一對多(1:n)聯(lián)系,n端關(guān)系模式的主鍵要添加到1端關(guān)系模式中,并充當(dāng)外鍵。

10、 (4)兩個或多個實(shí)體集是多對多(n:m)聯(lián)系,聯(lián)系本身產(chǎn)生出新的屬性,且該屬性在當(dāng)前應(yīng)用系統(tǒng)中是必需的,則該聯(lián)系轉(zhuǎn)化為一個關(guān)系模式。n端和m端實(shí)體集的主鍵及關(guān)系本身的屬性轉(zhuǎn)化為關(guān)系模式的列,各實(shí)體集的主鍵組合為關(guān)系模式的主鍵。 。 認(rèn)識SQLServer2005數(shù)據(jù)庫的物理結(jié)構(gòu)依賴于具體的DBMS和硬件系統(tǒng)。物理設(shè)計(jì)包括以下幾方面:(1)確定數(shù)據(jù)的存儲結(jié)構(gòu)。(2)確定數(shù)據(jù)的存放位置。(3)設(shè)計(jì)數(shù)據(jù)的存取路徑。(4)確定系統(tǒng)配置。(5)評價(jià)物理結(jié)構(gòu)的合理性。(6)數(shù)據(jù)完整性設(shè)計(jì)。根據(jù)選用的DBMS,設(shè)計(jì)出完整性方案,保證放入數(shù)據(jù)庫中數(shù)據(jù)的完整性、一致性和準(zhǔn)確性。(7)實(shí)施設(shè)計(jì)方案。 1.2.4

11、 物理結(jié)構(gòu)設(shè)計(jì)認(rèn)識SQLServer2005 對數(shù)據(jù)庫的物理結(jié)構(gòu)進(jìn)行實(shí)施后,基本解決了數(shù)據(jù)的存取、更新和刪除等問題。但直接對數(shù)據(jù)庫進(jìn)行操作需要專業(yè)的數(shù)據(jù)庫知識。因此,對于一般用戶來說,提供一個友好的人機(jī)界面完成對數(shù)據(jù)庫的操作是更好的解決方案。這需要開發(fā)者利用某些應(yīng)用程序開發(fā)語言和數(shù)據(jù)庫訪問技術(shù)編寫應(yīng)用程序,幫助用戶完成相應(yīng)的數(shù)據(jù)庫操作業(yè)務(wù)。1.2.5 數(shù)據(jù)庫應(yīng)用程序開發(fā)認(rèn)識SQLServer20051.3.1 SQL Server 2005概述1.3.2 SQL Server 2005的安裝1.3.3 SQL Server 2005的簡單操作1.3.4 關(guān)于T-SQL語言任務(wù):了解SQL Se

12、rver 2005的功能特點(diǎn)、安裝過程,SQL Server Management Services的基本操作,了解T-SQL語言的特點(diǎn)及基本語法。1.3 認(rèn)識SQL Server 2005認(rèn)識SQLServer2005Microsoft SQL Server 2005 是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng),包括數(shù)據(jù)管理、數(shù)據(jù)庫開發(fā)和商業(yè)智能三大功能。1SQL Server 2005的新增功能2SQL Server 2005的體系結(jié)構(gòu)1.3.1 SQL Server 2005概述企業(yè)數(shù)據(jù)管理數(shù)據(jù)庫開發(fā)商業(yè)智能第三方應(yīng)用程序Microsoft SQL Server 2005管理工具報(bào)表功能集成功能通知功能分

13、析功能復(fù)制功能關(guān)系數(shù)據(jù)庫管理Microsoft SQL Server由四大組件組成:協(xié)議(Protocol)、關(guān)系引擎(Relational Engine,或Query Processor 查詢處理器)、存儲引擎(Storage Engine)和SQLOS(SQL Operation System)。任何客戶端應(yīng)用程序提交給SQL Server的每一個批處理(Batch)都必須與這四個組件進(jìn)行交互。認(rèn)識SQLServer20053SQL Server 2005的系統(tǒng)數(shù)據(jù)庫和樣本數(shù)據(jù)庫 master數(shù)據(jù)庫。記錄SQL Server所有系統(tǒng)級信息,包括磁盤空間、文件分配和使用、系統(tǒng)配置參數(shù)、登錄賬

14、戶信息、初始化信息等。禁止用戶直接訪問該數(shù)據(jù)庫。 model數(shù)據(jù)庫。當(dāng)前SQL Server 實(shí)例上創(chuàng)建的所有數(shù)據(jù)庫的模板,包括所有用戶數(shù)據(jù)庫和tempdb數(shù)據(jù)庫的模板。 msdb數(shù)據(jù)庫。SQL Server 代理服務(wù)使用的數(shù)據(jù)庫,為警報(bào)、作業(yè)、任務(wù)調(diào)度和記錄操作員的操作信息提供存儲空間。 tempdb數(shù)據(jù)庫。是一個中間結(jié)果集,為所有的臨時表、臨時存儲過程及其他的臨時操作提供空間。 1.3.1 SQL Server 2005概述認(rèn)識SQLServer20051.3.2 SQL Server 2005的安裝1.3.3 SQL Server 2005的簡單操作安裝步驟省略認(rèn)識SQLServer20

15、05SQL(Structure Query Language,結(jié)構(gòu)化查詢語言)是一種關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言,在關(guān)系數(shù)據(jù)庫中完成定義、查詢、操縱和控制數(shù)據(jù)的操作,應(yīng)用程序通過調(diào)用SQL語句訪問數(shù)據(jù)庫。T-SQL(Transact Structure Query Language,事務(wù)化SQL語言)是對標(biāo)準(zhǔn)SQL語言功能的擴(kuò)充。很多大型關(guān)系型數(shù)據(jù)庫都在標(biāo)準(zhǔn)SQL基礎(chǔ)上,結(jié)合自身特點(diǎn)推出可進(jìn)行高級編程的、結(jié)構(gòu)化的SQL語言,如SQL Server 2005的T-SQL。 1.3.4 關(guān)于T-SQL語言認(rèn)識SQLServer20051.3.4 關(guān)于T-SQL語言1SQL語言的特點(diǎn)(1)語法簡單,功能強(qiáng)大。

16、(2)實(shí)現(xiàn)數(shù)據(jù)完整性和數(shù)據(jù)庫安全管理。(3)是一種面向集合的語言,用戶只提出“做什么”,而“怎么做”由DBMS來解決。(4)不是一種程序開發(fā)語言,只提供對數(shù)據(jù)庫的操作能力,不具有屏幕控制、報(bào)表生成、菜單管理等功能。(5)是一種交互式語言,既可作為獨(dú)立語言使用,也可以嵌入到其他開發(fā)語言中使用。(6)實(shí)現(xiàn)分布式數(shù)據(jù)處理,實(shí)現(xiàn)數(shù)據(jù)倉庫。認(rèn)識SQLServer20052SQL語言的分類 SQL語言分為四類:數(shù)據(jù)定義語言(DDL)、數(shù)據(jù)查詢語言(DQL)、數(shù)據(jù)操縱語言(DML)和數(shù)據(jù)控制語言(DCL)。數(shù)據(jù)定義語言(DDL):創(chuàng)建、修改、刪除數(shù)據(jù)庫中的各類對象?;菊Z句包括:CREATE DATABAS

17、E,CREATE/ALTER/DROP TABLE,CREATE/DROP VIEW,CREATE/DROP INDEX。數(shù)據(jù)查詢語言(DQL):按照指定的條件表達(dá)式或排序要求查詢、統(tǒng)計(jì)數(shù)據(jù)庫中的數(shù)據(jù)?;菊Z句:SELECT FROM WHERE。數(shù)據(jù)操縱語言(DML):對數(shù)據(jù)庫輸入、刪除、修改數(shù)據(jù)的操作?;菊Z句:INSERT、UPDATE、DELETE。 數(shù)據(jù)控制語言(DCL):授予或收回訪問數(shù)據(jù)庫的某種權(quán)限、控制事務(wù)的發(fā)生時間及效果,對數(shù)據(jù)庫進(jìn)行監(jiān)控?;菊Z句:GRANT、REVOKE、COMMIT、ROLLBACK。1.3.4 關(guān)于T-SQL語言認(rèn)識SQLServer20053批(ba

18、tch) 一個SQL語句集,作為一個組一起提交、執(zhí)行,結(jié)束符為GO。4腳本 一系列順序提交的批。5流程控制語句 用來控制SQL語句執(zhí)行的順序 包括:(1)IF ELSE語句:條件結(jié)構(gòu)。(2)CASE語句:多條件分支結(jié)構(gòu)。(3)GOTO語句:無條件轉(zhuǎn)移。 (4) WHILE語句:循環(huán)結(jié)構(gòu)。(5) BEGIN END:將一組SQL語句作為一整個語句塊,必須一次執(zhí)行完, 除非遇到轉(zhuǎn)移語句。(6)RETURN語句:無條件返回。 (7)PRINT語句:屏幕打印。(8)RAISERROR語句:向屏幕顯示錯誤信息。(9)WAITFOR語句:使腳本暫停執(zhí)行,等待某一時刻的到來。6注釋(1)/* */:用來注釋

19、多行語句。(2)-:只能注釋當(dāng)前一行語句。1.3.4 關(guān)于T-SQL語言認(rèn)識SQLServer20051.4 知識進(jìn)階認(rèn)識SQLServer20051.4.1 SQL Server 2005的數(shù)據(jù)庫對象1.4.2 SSMS的選項(xiàng)1.4.3 查詢編輯器任務(wù):了解SQL Server 2005的數(shù)據(jù)庫對象,熟悉SQL Server 2005操作界面。表:存放用戶數(shù)據(jù),是具有關(guān)聯(lián)列的數(shù)據(jù)行的集合。數(shù)據(jù)類型:用來定義列或變量允許的數(shù)據(jù)值。索引:為加速查詢并強(qiáng)制實(shí)施數(shù)據(jù)完整性的一種存儲結(jié)構(gòu)。視圖:一種查看一個或多個表或視圖中的數(shù)據(jù)的方法。約束:標(biāo)準(zhǔn)的強(qiáng)制實(shí)施數(shù)據(jù)完整性的方法。默認(rèn)值:在不輸入值時,系統(tǒng)自

20、動指定的由用戶預(yù)先存儲在該列的值。規(guī)則:由用戶定義并可以捆綁到一個或多個列,包含指定存儲在列里的有效值或數(shù)據(jù)類型。存儲過程:一組預(yù)先編譯好的完成特定功能的SQL語句組。觸發(fā)器: 特殊存儲過程,操作表或視圖中的數(shù)據(jù)時自動被激活。自定義數(shù)據(jù)類型:由用戶創(chuàng)建、完成特定數(shù)據(jù)存儲的數(shù)據(jù)類型。自定義函數(shù):用來封裝經(jīng)常執(zhí)行的邏輯,返回標(biāo)量數(shù)值或表。鍵:或者唯一標(biāo)識每個實(shí)體(主鍵),或者定義表之間的關(guān)系(外鍵)的列或列組。 1.4.1 SQL Server 2005的數(shù)據(jù)庫對象認(rèn)識SQLServer2005注意:SQL Server 2005數(shù)據(jù)庫對象的完整名字被稱為數(shù)據(jù)庫對象的全限定名稱,包括四個元素:服務(wù)

21、器名、數(shù)據(jù)庫名、數(shù)據(jù)庫所有者名和數(shù)據(jù)庫對象名?;菊Z法如下: server.database.owner.object(數(shù)據(jù)庫服務(wù)器名.數(shù)據(jù)庫名.數(shù)據(jù)庫所有者名.數(shù)據(jù)庫對象名)使用某一個數(shù)據(jù)庫對象時,可以不必使用全限定名稱,而只在相應(yīng)位置用“.”代替,但數(shù)據(jù)庫對象名不能缺省。 1.4.1 SQL Server 2005的數(shù)據(jù)庫對象認(rèn)識SQLServer20051.4.2 SSMS的選項(xiàng)1.4.3 查詢編輯器認(rèn)識SQLServer2005項(xiàng)目實(shí)訓(xùn)1實(shí)訓(xùn)題目 對“銷售合同管理系統(tǒng)”進(jìn)行需求分析和數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)。2實(shí)訓(xùn)目的(1)了解SQL Server 2005的體系結(jié)構(gòu)、安裝過程。(2)熟悉S

22、QL Server 2005的可視化管理工具SSMS的基本操作。 (3)掌握數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計(jì)步驟。(4)進(jìn)行“銷售合同管理系統(tǒng)”數(shù)據(jù)庫的需求分析、邏輯結(jié)構(gòu)設(shè)計(jì) 以及物理結(jié)構(gòu)設(shè)計(jì)。3實(shí)訓(xùn)內(nèi)容 設(shè)計(jì)“銷售合同管理系統(tǒng)”數(shù)據(jù)庫邏輯結(jié)構(gòu)。認(rèn)識SQLServer2005任務(wù)二 為數(shù)據(jù)管理創(chuàng)建數(shù)據(jù)庫環(huán)境 創(chuàng)建和管理SQL Server數(shù)據(jù)庫任務(wù):在SSMS中創(chuàng)建數(shù)據(jù)庫JXGL,并對JXGL進(jìn)行簡單管理;使用CREATE DATABASE語句創(chuàng)建數(shù)據(jù)庫JXGL,使用T-SQL語句對JXGL進(jìn)行簡單管理。 2.1 認(rèn)識SQL Server數(shù)據(jù)庫2.2 創(chuàng)建SQL Server數(shù)據(jù)庫2.3 管理SQL Se

23、rver數(shù)據(jù)庫2.4 知識進(jìn)階 項(xiàng)目實(shí)訓(xùn) 學(xué)習(xí)目標(biāo)了解SQL Server數(shù)據(jù)庫的存儲結(jié)構(gòu)建立事務(wù)日志的概念使用SSMS創(chuàng)建數(shù)據(jù)庫使用CREATE DATABASE語句創(chuàng)建數(shù)據(jù)庫使用SSMS管理數(shù)據(jù)庫使用T-SQL語言管理數(shù)據(jù)庫2.1 認(rèn)識SQL Server數(shù)據(jù)庫 任務(wù):了解SQL Server數(shù)據(jù)庫的存儲結(jié)構(gòu),建立事務(wù)日志的概念。創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.1.1 SQL Server數(shù)據(jù)庫的存儲結(jié)構(gòu)2.1.2 事務(wù)日志2.1.1 SQL Server數(shù)據(jù)庫的存儲結(jié)構(gòu) SQL Server數(shù)據(jù)庫的存儲結(jié)構(gòu)分為邏輯存儲結(jié)構(gòu)和物理存儲結(jié)構(gòu)。邏輯存儲結(jié)構(gòu)指的是數(shù)據(jù)庫是由各種數(shù)據(jù)庫對象

24、組成的;物理存儲結(jié)構(gòu)是討論數(shù)據(jù)庫文件如何在磁盤上存儲的。事務(wù)日志是 SQL Server數(shù)據(jù)庫的一個亮點(diǎn),它對數(shù)據(jù)庫恢復(fù)起著至關(guān)重要的作用。 從邏輯存儲結(jié)構(gòu)角度看,SQL Server數(shù)據(jù)庫是由表、視圖、索引、存儲過程等各種數(shù)據(jù)庫對象組成的,它們被數(shù)據(jù)庫管理系統(tǒng)管理。 從物理存儲結(jié)構(gòu)角度看,數(shù)據(jù)庫實(shí)際上是一個文件的集合,在磁盤上以文件為單位存儲。數(shù)據(jù)庫的物理存儲結(jié)構(gòu)是用來討論數(shù)據(jù)庫文件如何在磁盤上存儲的。創(chuàng)建和管理SQL Server數(shù)據(jù)庫數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu) 物理存儲結(jié)構(gòu)(數(shù)據(jù)頁)數(shù)據(jù)區(qū)學(xué)號姓名性別出生日期民族J07051129王浩男1988-9-23漢族J08010212杜薇女1990

25、-3-16回族槽2槽1槽0頁頭(96字節(jié))行偏移數(shù)組邏輯存儲結(jié)構(gòu)(數(shù)據(jù)表)2.1.1 SQL Server數(shù)據(jù)庫的存儲結(jié)構(gòu)創(chuàng)建和管理SQL Server數(shù)據(jù)庫1數(shù)據(jù)庫的物理文件 數(shù)據(jù)庫是存儲數(shù)據(jù)的容器,數(shù)據(jù)以文件形式存儲在磁盤上,稱為數(shù)據(jù)庫的物理文件或操作系統(tǒng)文件。 每個SQL Server 2005數(shù)據(jù)庫包含兩類物理文件:數(shù)據(jù)文件和日志文件。 數(shù)據(jù)文件存儲數(shù)據(jù)和數(shù)據(jù)庫對象。第一個數(shù)據(jù)文件稱為主數(shù)據(jù)文件,文件名后綴為.mdf(Primary Data File);日志文件用來存儲恢復(fù)數(shù)據(jù)庫中所有事務(wù)所需的信息,文件名后綴為.ldf(Log Data File)。每個SQL Server數(shù)據(jù)庫至

26、少包含一個主數(shù)據(jù)文件和一個日志文件。當(dāng)數(shù)據(jù)庫存儲的數(shù)據(jù)量巨大,或需要將重要數(shù)據(jù)與次要數(shù)據(jù)分開存儲時,用戶可自行創(chuàng)建次數(shù)據(jù)文件,輔助主數(shù)據(jù)文件存儲數(shù)據(jù),文件名后綴為.ndf(Secondary Data File)。 一個SQL Server 2005數(shù)據(jù)庫只包含一個主數(shù)據(jù)文件,必須至少包含一個日志文件,可以不包含或包含多個次數(shù)據(jù)文件。 2.1.1 SQL Server數(shù)據(jù)庫的存儲結(jié)構(gòu)創(chuàng)建和管理SQL Server數(shù)據(jù)庫2數(shù)據(jù)庫文件的名稱每個SQL Server 2005數(shù)據(jù)庫文件有兩個文件名:邏輯文件名和操作系統(tǒng)文件名。(1)邏輯文件名。在T-SQL語句中引用數(shù)據(jù)庫文件時使用的名稱。其命名必須

27、符合SQL Server標(biāo)識符規(guī)則,且在同一數(shù)據(jù)庫中必須唯一。(2)操作系統(tǒng)文件名。包含存儲目錄路徑的數(shù)據(jù)庫文件名稱。其命名必須符合操作系統(tǒng)文件命名規(guī)則,且在同一數(shù)據(jù)庫中必須唯一。2.1.1 SQL Server數(shù)據(jù)庫的存儲結(jié)構(gòu)創(chuàng)建和管理SQL Server數(shù)據(jù)庫3數(shù)據(jù)庫文件的存儲 (1)數(shù)據(jù)頁 數(shù)據(jù)文件的基本存儲單位為8KB(8192B)的連續(xù)空間,稱為一個頁(Page)。SQL Server 2005中包含數(shù)據(jù)頁、索引頁、文本/圖像頁等8種類型的頁。頁由以下三部分組成: 1)頁頭。頁首的96KB用來存儲頁的系統(tǒng)管理信息,如頁類型、頁的可用空間、頁碼及擁有該頁的數(shù)據(jù)庫對象的分配單元ID值等信

28、息。 2)數(shù)據(jù)區(qū)。以槽(Slot)為單位的空間,用來存儲數(shù)據(jù)。數(shù)據(jù)記錄(行)就存儲在槽中,緊接著頁頭按順序放置。 3)行偏移數(shù)組。映射槽的相對位置,通過查詢行偏移數(shù)組中某個槽的偏移量,就可以準(zhǔn)確定位槽在數(shù)據(jù)區(qū)的位置。 一個頁只能存儲一個數(shù)據(jù)庫對象,如表、索引。 2.1.1 SQL Server數(shù)據(jù)庫的存儲結(jié)構(gòu)創(chuàng)建和管理SQL Server數(shù)據(jù)庫(2)盤區(qū) SQL Server 2005將8個物理上連續(xù)的頁作為一個單元為數(shù)據(jù)庫對象分配存儲空間,這個單元稱為盤區(qū)(Extent),容量為64KB。以盤區(qū)為分配單位,就不會因分配存儲空間的操作十分繁忙而影響數(shù)據(jù)庫性能,提高了空間分配效率。分配盤區(qū)的基本

29、策略是:容量不滿8個頁的數(shù)據(jù)庫對象盡量從已經(jīng)存在的混合盤區(qū)中挑選一個進(jìn)行后續(xù)分配;為容量滿8個頁的數(shù)據(jù)庫對象分配統(tǒng)一盤區(qū)。這樣大大提高了空間利用率。 創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.1.1 SQL Server數(shù)據(jù)庫的存儲結(jié)構(gòu)2.1.1 SQL Server數(shù)據(jù)庫的存儲結(jié)構(gòu)數(shù)據(jù)庫(表,索引)(數(shù)據(jù))數(shù)據(jù)(文件).mdf 或 .ndf日志(文件) .ldf.頁(8KB,每行最大容量8060B)盤區(qū)(64KB,8個物理上連續(xù)的頁)數(shù)據(jù)庫的物理存儲結(jié)構(gòu)創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.1.1 SQL Server數(shù)據(jù)庫的存儲結(jié)構(gòu)4數(shù)據(jù)文件組為便于分配數(shù)據(jù)和管理文件,可以將數(shù)據(jù)文件組織到

30、不同的文件組中。SQL Server 2005包含兩種類型的文件組:主文件組(Primary)和用戶定義文件組。主文件組包含主數(shù)據(jù)文件和未放入其他文件組的所有次數(shù)據(jù)文件。每個數(shù)據(jù)庫只有一個主文件組,也是數(shù)據(jù)庫的默認(rèn)文件組,系統(tǒng)表的所有頁均分配在主文件組中。數(shù)據(jù)庫包含多個數(shù)據(jù)文件時,用戶也可以自定義文件組,將次文件放到自定義文件組中。提示:文件組是命名的文件集合,只包含數(shù)據(jù)文件,日志文件不包括在任何文件組內(nèi)。2.1.1 SQL Server數(shù)據(jù)庫的存儲結(jié)構(gòu)創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.1.1 SQL Server數(shù)據(jù)庫的存儲結(jié)構(gòu)事務(wù)(Transaction)是需要一次完成的操作集合。事

31、務(wù)作為SQL Server的單個邏輯工作單元,必須徹底執(zhí)行完或根本不執(zhí)行。事務(wù)日志用來記錄所有事務(wù)和每個事務(wù)對數(shù)據(jù)庫所做的更新操作,以日志文件形式存儲在磁盤中。1事務(wù)日志的作用(1)單獨(dú)恢復(fù)個別事務(wù)。(2)保證數(shù)據(jù)庫的完整。(3)將恢復(fù)的數(shù)據(jù)庫、文件、文件組或頁回滾到某一故障點(diǎn)。 2事務(wù)日志的特點(diǎn)(1)作為單獨(dú)的文件實(shí)現(xiàn),可以根據(jù)需要定義文件為自動增長。(2)日志文件與數(shù)據(jù)文件分開存放,減少了沖突。(3)事務(wù)日志可以單獨(dú)備份、恢復(fù),不必遵守?cái)?shù)據(jù)頁的存儲格式。(4)日志的截?cái)鄼C(jī)制速度快,對事務(wù)的容量影響小。(5)記錄了數(shù)據(jù)頁的分配和釋放信息。2.1.2 事務(wù)日志創(chuàng)建和管理SQL Server數(shù)據(jù)

32、庫2.2 創(chuàng)建SQL Server數(shù)據(jù)庫任務(wù):創(chuàng)建JXGL數(shù)據(jù)庫。創(chuàng)建數(shù)據(jù)庫前,必須首先明確數(shù)據(jù)庫名稱、數(shù)據(jù)庫所有者、初始容量、最大容量、數(shù)據(jù)庫文件的存儲路徑及增長方式等。創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.2.1 使用SSMS創(chuàng)建數(shù)據(jù)庫2.2.2 使用T-SQL創(chuàng)建數(shù)據(jù)庫【例2-1】創(chuàng)建未指定文件的數(shù)據(jù)庫shili01。代碼如下:IF DB_ID (shili01) IS NOT NULL- 判斷當(dāng)前服務(wù)中是否已有名稱為shili01的數(shù)據(jù)庫DROP DATABASE shili01GO- 若已有名稱為shili01的數(shù)據(jù)庫,則刪除它CREATE DATABASE shili01GO 分

33、析:本示例沒有 語句項(xiàng)。主數(shù)據(jù)庫文件的大小為 model 數(shù)據(jù)庫主文件的大小1MB,事務(wù)日志文件為下列值中較大者:512 KB 或主數(shù)據(jù)文件大小的 25%。因?yàn)闆]有指定MAXSIZE,文件可以增大到填滿全部可用的磁盤空間為止。2.2.1 使用SSMS創(chuàng)建數(shù)據(jù)庫創(chuàng)建和管理SQL Server數(shù)據(jù)庫創(chuàng)建用戶數(shù)據(jù)庫的過程就是為數(shù)據(jù)庫確定名稱、大小和數(shù)據(jù)庫文件名稱及存放位置的過程。新建數(shù)據(jù)庫的信息存放在系統(tǒng)數(shù)據(jù)庫master中,屬于系統(tǒng)級信息。創(chuàng)建SQL Server數(shù)據(jù)庫主要有兩種方法:使用視圖化管理工具SQL Server Management Studio(SSMS)和在代碼編輯器中使用T-SQ

34、L語言中的CREATE DATABASE語句。 創(chuàng)建示例數(shù)據(jù)庫JXGL的操作步驟 :2.2.1 使用SSMS創(chuàng)建數(shù)據(jù)庫創(chuàng)建和管理SQL Server數(shù)據(jù)庫1CREATE DATABASE的基本語法使用CREATE DATABASE語句創(chuàng)建數(shù)據(jù)庫?;菊Z法如下:CREATE DATABASE database_name ON PRIMARY , n , , n LOG ON , n 其中: : : = ( NAME = logical_file_name , FILENAME = os_file_name , SIZE = size MB , MAXSIZE = max_size MB , FI

35、LEGROWTH = growth_increment MB | % ) , n 其中: : : = FILEGROUP filegroup_name DEFAULT 2.2.2 使用T-SQL創(chuàng)建數(shù)據(jù)庫創(chuàng)建和管理SQL Server數(shù)據(jù)庫【例2-1】創(chuàng)建未指定文件的數(shù)據(jù)庫shili01。代碼如下:IF DB_ID (shili01) IS NOT NULL - 判斷當(dāng)前服務(wù)中是否已有名稱為shili01的數(shù)據(jù)庫DROP DATABASE shili01GO - 若已有名稱為shili01的數(shù)據(jù)庫,則刪除它CREATE DATABASE shili01GO 分析:本示例沒有 語句項(xiàng)。主數(shù)據(jù)庫文

36、件的大小為 model 數(shù)據(jù)庫主文件的大小1MB,事務(wù)日志文件為下列值中較大者:512 KB 或主數(shù)據(jù)文件大小的 25%。因?yàn)闆]有指定MAXSIZE,文件可以增大到填滿全部可用的磁盤空間為止。創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.2.2 使用T-SQL創(chuàng)建數(shù)據(jù)庫【例2-2】創(chuàng)建指定數(shù)據(jù)文件和日志文件的數(shù)據(jù)庫shili02。代碼如下:CREATE DATABASE shili02ON ( NAME = shili02_data, FILENAME = D:shilishili02_data.mdf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 )LOG ON

37、( NAME = shili02_log, FILENAME = D:shilishili02_log.ldf, SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB ) GO 分析:本示例沒有使用關(guān)鍵字PRIMARY,第一個文件shili02_data將成為主文件。在shili02_data.mdf文件的 SIZE 參數(shù)中沒有指定單位,將使用MB并按 MB 分配空間。創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.2.2 使用T-SQL創(chuàng)建數(shù)據(jù)庫【例2-3】創(chuàng)建指定多個數(shù)據(jù)和事務(wù)日志文件的數(shù)據(jù)庫shili03。代碼:CREATE DATABASE shili03

38、ONPRIMARY (NAME = shili03_data, FILENAME =D:shilishili03_data.mdf, SIZE = 2, MAXSIZE = 200, FILEGROWTH = 2), ( NAME = shili03_data302, FILENAME =D:shilishili03_data302.ndf, SIZE = 5, MAXSIZE = 500, FILEGROWTH = 5%)2.2.2 使用T-SQL創(chuàng)建數(shù)據(jù)庫創(chuàng)建和管理SQL Server數(shù)據(jù)庫LOG ON (NAME = shili03_log301, FILENAME =D:shilish

39、ili03_log301.ldf, SIZE = 10, MAXSIZE = 200, FILEGROWTH = 10%), (NAME = shili03_log302, FILENAME =D:shilishili03_log302.ldf, SIZE = 5, MAXSIZE = 1024, FILEGROWTH = 2)GO 分析:本示例要創(chuàng)建的數(shù)據(jù)庫shili03具有兩個數(shù)據(jù)文件和兩個日志文件。主數(shù)據(jù)文件使用 PRIMARY 關(guān)鍵字顯式指定,日志文件在LOG ON關(guān)鍵字后指定。 創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.2.2 使用T-SQL創(chuàng)建數(shù)據(jù)庫【例2-4】創(chuàng)建具有文件組的數(shù)據(jù)庫

40、shili04。代碼如下:CREATE DATABASE shili04ON PRIMARY( NAME =shili04_data, FILENAME =d:shilishili04_data.mdf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15% ),( NAME =shili04_data402, FILENAME = d:shilishili04_data402.ndf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15% ),創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.2.2 使用T-SQL創(chuàng)建數(shù)據(jù)庫FILEGROUP

41、 shiligroup1( NAME = shili04_data403, FILENAME = d:shilishili04_data403.ndf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ),( NAME = shili04_data404, FILENAME = d:shilishili04_data404.ndf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 )2.2.2 使用T-SQL創(chuàng)建數(shù)據(jù)庫創(chuàng)建和管理SQL Server數(shù)據(jù)庫LOG ON( NAME = shili04_log, FILENAME =

42、d:shilishili04_log.ldf, SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB )GO 分析:本示例創(chuàng)建的數(shù)據(jù)庫shili04包含以下兩個文件組:包含文件shili04_data和shili04_data402 的主文件組PRIMARY;名為shiligroup1的文件組,包含數(shù)據(jù)文件 shili04_data403和 shili04_data404。創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.2.2 使用T-SQL創(chuàng)建數(shù)據(jù)庫4創(chuàng)建“高職院校教學(xué)管理系統(tǒng)”數(shù)據(jù)庫JXGL【例2-5】創(chuàng)建本教材實(shí)例數(shù)據(jù)庫JXGL。該數(shù)據(jù)庫具有兩個文件組:包含主

43、數(shù)據(jù)文件JXGL_data 的主文件組,文件初始容量為4MB,遞增率為5MB,最大容量為500MB;filegroup1文件組,包含數(shù)據(jù)文件 JXGL_data02,文件初始容量為2MB,遞增率為10%,最大容量為500MB。包含兩個日志文件JXGL_log和JXGL_log02,文件初始容量為5MB,遞增率為5%和5MB,最大容量為1GB和500MB。代碼如下:創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.2.2 使用T-SQL創(chuàng)建數(shù)據(jù)庫CREATE DATABASE JXGLON PRIMARY( NAME =JXGL_data, FILENAME =D:JXGLJXGL_data.mdf, S

44、IZE = 4, MAXSIZE = 500, FILEGROWTH = 5),FILEGROUP filegroup1( NAME =JXGL_data02, FILENAME = D:JXGLJXGL_data02.ndf, SIZE = 2, MAXSIZE = 500, FILEGROWTH = 10% )2.2.2 使用T-SQL創(chuàng)建數(shù)據(jù)庫創(chuàng)建和管理SQL Server數(shù)據(jù)庫LOG ON( NAME = JXGL_log, FILENAME = D:JXGLJXGL_log.ldf, SIZE = 5, MAXSIZE = 1024, FILEGROWTH = 5% ),( NAME

45、 = JXGL_log02, FILENAME = D:JXGLJXGL_log02.ldf, SIZE = 5, MAXSIZE = 500, FILEGROWTH = 5 )GO創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.2.2 使用T-SQL創(chuàng)建數(shù)據(jù)庫創(chuàng)建用戶數(shù)據(jù)庫時要注意以下幾點(diǎn):(1)默認(rèn)情況下,只有系統(tǒng)管理員可以創(chuàng)建數(shù)據(jù)庫。(2)當(dāng)新的用戶數(shù)據(jù)庫創(chuàng)建后,master數(shù)據(jù)庫的系統(tǒng)表sysdatabases立即被更新,因此創(chuàng)建數(shù)據(jù)庫后應(yīng)及時備份master數(shù)據(jù)庫。(3)所有用戶數(shù)據(jù)庫都是model數(shù)據(jù)庫的副本,數(shù)據(jù)庫的系統(tǒng)表包含在主文件中。model數(shù)據(jù)庫的數(shù)據(jù)文件為1MB,日志文件也是1

46、MB。這意味著用戶數(shù)據(jù)庫的最小容量為2MB。(4)在一個數(shù)據(jù)庫實(shí)例上,最多可創(chuàng)建32767個數(shù)據(jù)庫。一個數(shù)據(jù)庫最多可包含32767個數(shù)據(jù)文件和32767個日志文件。(5)創(chuàng)建完成新數(shù)據(jù)庫后,想在“對象資源管理器”的數(shù)據(jù)庫列表中看到剛創(chuàng)建的數(shù)據(jù)庫,需要刷新“數(shù)據(jù)庫”節(jié)點(diǎn)。 創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.2.2 使用T-SQL創(chuàng)建數(shù)據(jù)庫 2.3 管理SQL Server數(shù)據(jù)庫任務(wù):使用SSMS及T-SQL語言兩種方法對數(shù)據(jù)庫JXGL進(jìn)行簡單管理。 創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.3.1 使用SSMS管理數(shù)據(jù)庫2.3.2 使用T-SQL管理數(shù)據(jù)庫1查看數(shù)據(jù)庫屬性2修改數(shù)據(jù)庫3刪除數(shù)

47、據(jù)庫提示:對數(shù)據(jù)庫執(zhí)行刪除命令,不但數(shù)據(jù)庫將被刪除,數(shù)據(jù)庫文件也將從磁盤中被刪除。刪除數(shù)據(jù)庫將更新master數(shù)據(jù)庫中的系統(tǒng)表。若master需要還原,則從上次備份master之后刪除的所有數(shù)據(jù)庫仍然在系統(tǒng)表中被引用,因而可能導(dǎo)致出錯。4數(shù)據(jù)庫更名數(shù)據(jù)庫被創(chuàng)建后一般不要更改名稱,否則所有與該數(shù)據(jù)庫的連接都將出錯。5生成創(chuàng)建數(shù)據(jù)庫腳本2.3.1 使用SSMS管理數(shù)據(jù)庫創(chuàng)建和管理SQL Server數(shù)據(jù)庫1查看數(shù)據(jù)庫屬性使用系統(tǒng)存儲過程sp_helpdb查看指定數(shù)據(jù)庫或當(dāng)前所有數(shù)據(jù)庫信息。基本語法如下:sp_helpdb database_name database_name缺省時,查看當(dāng)前所有數(shù)

48、據(jù)庫信息?!纠?-6】查看數(shù)據(jù)庫實(shí)例下所有數(shù)據(jù)庫信息,查看JXGL數(shù)據(jù)庫信息。代碼如下:(1) sp_helpdb -查看數(shù)據(jù)庫實(shí)例下所有數(shù)據(jù)庫信息(2) sp_helpdb JXGL -查看JXGL數(shù)據(jù)庫信息 運(yùn)行結(jié)果見圖2-9 ,2-10 2.3.2 使用T-SQL管理數(shù)據(jù)庫創(chuàng)建和管理SQL Server數(shù)據(jù)庫2修改數(shù)據(jù)庫通過 ALTER DATABASE語句可以添加、刪除數(shù)據(jù)庫文件、文件組;可以更改文件或文件組的屬性,如名稱、容量等;還可以更改數(shù)據(jù)庫名稱;但不能移動數(shù)據(jù)庫的存儲位置?;菊Z法如下:ALTER DATABASE ADD FILE | ADD FILE | REMOVE FI

49、LE | ADD FILEGROUP | REMOVE FILE | MODIFY FILE | MODIFY NAME | MODIFY FILEGROUP | SET 創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.3.2 使用T-SQL管理數(shù)據(jù)庫【例2-7】使用ALTER DATABASE語句對數(shù)據(jù)庫JXGL進(jìn)行以下修改。添加一個次數(shù)據(jù)文件JXGL_data03,初始大小為5MB,最大容量為200MB,增長率為2%。代碼如下:USE JXGLGOALTER DATABASE JXGLADD FILE( NAME= JXGL_data03,FILENAME =D:JXGLJXGL_data03.n

50、df, SIZE = 5, MAXSIZE = 200, FILEGROWTH = 2% )GO創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.3.2 使用T-SQL管理數(shù)據(jù)庫【例2-8】使用ALTER DATABASE語句對數(shù)據(jù)庫JXGL進(jìn)行以下修改:將日志文件JXGL_log02的初始容量由5MB改為10MB,刪除數(shù)據(jù)文件JXGL_data03。代碼如下:USE JXGLGOALTER DATABASE JXGLMODIFY FILE ( NAME=JXGL_log02,SIZE = 10MB )GOALTER DATABASE JXGLREMOVE FILE JXGL_data03GO創(chuàng)建和管理

51、SQL Server數(shù)據(jù)庫2.3.2 使用T-SQL管理數(shù)據(jù)庫3移動數(shù)據(jù)庫位置通過ALTER DATABASE語句的FILENAME子句指定數(shù)據(jù)庫文件的新位置,可以移動系統(tǒng)數(shù)據(jù)庫文件和用戶數(shù)據(jù)庫文件?!纠?-9】使用ALTER DATABASE語句將數(shù)據(jù)庫shili02移動到D:shiliyidong。(1)移動數(shù)據(jù)文件位置,代碼如下:ALTER DATABASE shili02MODIFY FILE(NAME=shili02_data,FILENAME=D:shiliyidongshili_data02.mdf)GOALTER DATABASE shili02MODIFY FILE(NAME

52、=shili02_log, FILENAME =D:shiliyidongshili_log02.ldf)GO創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.3.2 使用T-SQL管理數(shù)據(jù)庫 提示:移動數(shù)據(jù)庫文件,需要知道數(shù)據(jù)庫文件的邏輯名??梢酝ㄟ^查詢 sys.master_files 目錄視圖中的name 列獲取。不能移動或重命名資源數(shù)據(jù)庫文件,若該文件已重命名或移動,SQL Server 將不啟動。(2)驗(yàn)證數(shù)據(jù)文件位置已更改,代碼如下:SELECT name,physical_nameFROM sys.master_filesWHERE database_id=DB_id(shili02)GO

53、創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.3.2 使用T-SQL管理數(shù)據(jù)庫4刪除數(shù)據(jù)庫使用DROP DATABASE語句刪除數(shù)據(jù)庫?;菊Z法如下:DROP DATABASE 【例2-10】刪除不再需要的數(shù)據(jù)庫shili01。代碼如下:DROP DATABASE shili01執(zhí)行代碼后,刷新“數(shù)據(jù)庫”節(jié)點(diǎn),觀察發(fā)現(xiàn),數(shù)據(jù)庫shili01 已不在數(shù)據(jù)庫列表中。創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.3.2 使用T-SQL管理數(shù)據(jù)庫5數(shù)據(jù)庫更名使用系統(tǒng)存儲過程sp_renamedb可以對數(shù)據(jù)庫進(jìn)行重命名?;菊Z法如下:sp_renamedb ,如將數(shù)據(jù)庫shili04改名為shili。代碼如下:sp

54、_renamedb shili04,shili創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.3.2 使用T-SQL管理數(shù)據(jù)庫2.4 知識進(jìn)階任務(wù):對數(shù)據(jù)庫容量進(jìn)行理論估算,對數(shù)據(jù)庫實(shí)施收縮,節(jié)省存儲空間。創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.4.1 數(shù)據(jù)庫空間的估算2.4.2 增加和收縮數(shù)據(jù)庫容量許多因素影響數(shù)據(jù)庫的最終容量:記錄的大小。列的大小決定了記錄的大小。記錄的數(shù)量。一般情況下,應(yīng)該按數(shù)據(jù)表所代表的實(shí)體或關(guān)系的實(shí)際數(shù)據(jù)量估算該表要存儲的記錄數(shù),而不是憑空想象。表的數(shù)量。按關(guān)系模型特點(diǎn)和數(shù)據(jù)庫設(shè)計(jì)規(guī)范化原則確定。索引的大小。索引的大小取決于索引關(guān)鍵列的大小、索引中包含的數(shù)據(jù)量(記錄數(shù))和索引

55、填充因子。填充因子的值越小,索引頁上的空閑空間越大。索引的數(shù)量。每個表中都至少包含一個索引。事務(wù)日志的大小。修改數(shù)據(jù)頻率越高,存放日志需要更多空間其他數(shù)據(jù)庫對象的大小和數(shù)量。除數(shù)據(jù)表外,數(shù)據(jù)庫還包含如索引、視圖、存儲過程等數(shù)據(jù)庫對象。數(shù)據(jù)庫的計(jì)劃增長率。預(yù)先對數(shù)據(jù)庫存儲需求估算得高些。 創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.4.1 數(shù)據(jù)庫空間的估算SQL Server采用預(yù)先指定、分配存儲空間的方法來創(chuàng)建數(shù)據(jù)庫。當(dāng)數(shù)據(jù)庫的數(shù)據(jù)增長到要超過定義的使用空間時,必須加大數(shù)據(jù)庫容量,增加數(shù)據(jù)庫容量即為數(shù)據(jù)庫提供額外的存儲空間。 反之,當(dāng)分配的空間沒有被充分利用時,會造成空間浪費(fèi)。收縮數(shù)據(jù)庫功能允許對

56、數(shù)據(jù)庫中的每個文件進(jìn)行收縮,刪除已經(jīng)分配但沒有使用的頁。不能將整個數(shù)據(jù)庫收縮到比其初始容量還小 。收縮數(shù)據(jù)庫的動作在后臺執(zhí)行,不影響數(shù)據(jù)庫內(nèi)的用戶活動,但不能在備份數(shù)據(jù)庫時收縮數(shù)據(jù)庫,也不在收縮數(shù)據(jù)庫時創(chuàng)建或備份數(shù)據(jù)庫。創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.4.2 增加和收縮數(shù)據(jù)庫容量1使用T-SQL語言手工收縮數(shù)據(jù)庫語法如下:DBCC SHRINKDATABASE | SHRINKFILE ( database_name | file_name , target_percent , TRUNCATEONLY | NOTRUNCATE )其中:target_percent:數(shù)據(jù)庫收縮后,數(shù)據(jù)

57、庫文件中剩余的可用空間的百分比值。TRUNCATEONLY:將數(shù)據(jù)庫文件中所有分配的未使用空間釋放給操作系統(tǒng)。文件空間默認(rèn)被釋放給操作系統(tǒng)。NOTRUNCATE:將DBCC壓縮釋放的空間保留給數(shù)據(jù)庫文件,文件的物理空間不更改。【例2-11】假設(shè)數(shù)據(jù)庫JXGL的當(dāng)前可用空間為數(shù)據(jù)庫大小的75%,則收縮JXGL,使其可用空間為40%。代碼如下: DBCC SHRINKDATABASE (JXGL, 40)2.4.2 增加和收縮數(shù)據(jù)庫容量創(chuàng)建和管理SQL Server數(shù)據(jù)庫2使用SSMS手工收縮數(shù)據(jù)庫3自動收縮數(shù)據(jù)庫有以下兩種方法:(1)應(yīng)用ALTER DATABASE語句可以將數(shù)據(jù)庫設(shè)計(jì)為自動收縮

58、?;菊Z法如下:ALTER DATABASE SET AUTO_SHRINK on/off其中,on表示將數(shù)據(jù)庫設(shè)置為自動收縮。(2)使用SSMS設(shè)置數(shù)據(jù)庫為自動收縮。選擇要收縮的數(shù)據(jù)庫,打開“數(shù)據(jù)庫屬性”對話框。在“選擇頁”列表中單擊“選項(xiàng)”選項(xiàng)卡,展開“其他選項(xiàng)”區(qū)的“自動”下拉列表,將“自動收縮”選項(xiàng)的值設(shè)置為true。創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.4.2 增加和收縮數(shù)據(jù)庫容量提示:文件收縮操作始終從文件末端開始反向進(jìn)行。例如,要將一個5GB的文件收縮至4GB,系統(tǒng)將從文件的最后一個1GB開始釋放盡可能多的空間。文件中被釋放的部分若含有使用過的頁,則將這些頁重新定位到保留的區(qū)域

59、(即文件的開始位置,也即重新組織文件)。只能將數(shù)據(jù)庫收縮到?jīng)]有剩余的可用空間為止。如5GB的數(shù)據(jù)庫已有4GB數(shù)據(jù)(可用空間只有20%),若指定數(shù)據(jù)庫收縮到2GB(數(shù)據(jù)庫的40%),則實(shí)際上只會釋放1GB空間。創(chuàng)建和管理SQL Server數(shù)據(jù)庫2.4.2 增加和收縮數(shù)據(jù)庫容量創(chuàng)建和管理SQL Server數(shù)據(jù)庫項(xiàng)目實(shí)訓(xùn) 1實(shí)訓(xùn)題目創(chuàng)建“銷售合同管理系統(tǒng)”數(shù)據(jù)庫CONTRACTDB。2實(shí)訓(xùn)目的(1)掌握SQL Server數(shù)據(jù)庫的存儲結(jié)構(gòu)。(2)掌握通過SSMS和T-SQL創(chuàng)建數(shù)據(jù)庫的方法。(3)掌握通過SSMS和T-SQL管理數(shù)據(jù)庫的方法。3實(shí)訓(xùn)內(nèi)容(1)分析“銷售合同管理系統(tǒng)”數(shù)據(jù)庫空間需求

60、,估算數(shù)據(jù)庫初始容量,分析每張表所占的記錄。(2)使用SSMS創(chuàng)建“銷售合同管理系統(tǒng)”數(shù)據(jù)庫CONTRACTDB,并刪除數(shù)據(jù)庫。 (3)使用CREATE DATABASE語句創(chuàng)建“銷售合同管理系統(tǒng)”數(shù)據(jù)庫CONTRACTDB。 (4)在SSMS中查看“銷售合同管理系統(tǒng)”數(shù)據(jù)庫CONTRACTDB的當(dāng)前可用空間,若為數(shù)據(jù)庫大小的80%,則收縮數(shù)據(jù)庫,使其可用空間為40%。 任務(wù):了解SQL Server 2005支持的數(shù)據(jù)類型,創(chuàng)建自定義數(shù)據(jù)類型。設(shè)計(jì)JXGL數(shù)據(jù)庫表結(jié)構(gòu),應(yīng)用SSMS和T-SQL語言兩種方法,創(chuàng)建、修改JXGL數(shù)據(jù)庫中的表,向表中輸入數(shù)據(jù),對表中數(shù)據(jù)進(jìn)行簡單管理。3.1 T-S

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論