數(shù)據(jù)庫(kù)原理3-1.ppt_第1頁
數(shù)據(jù)庫(kù)原理3-1.ppt_第2頁
數(shù)據(jù)庫(kù)原理3-1.ppt_第3頁
數(shù)據(jù)庫(kù)原理3-1.ppt_第4頁
數(shù)據(jù)庫(kù)原理3-1.ppt_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)據(jù)庫(kù)原理第三章:關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語言SQL,本章學(xué)習(xí)內(nèi)容,SQL概述、數(shù)據(jù)庫(kù)的體系結(jié)構(gòu) 創(chuàng)建及管理數(shù)據(jù)庫(kù) 管理數(shù)據(jù)表 管理表數(shù)據(jù) 數(shù)據(jù)庫(kù)單表查詢 數(shù)據(jù)庫(kù)綜合查詢 視圖的創(chuàng)建及刪除,本次課主講內(nèi)容,SQL基礎(chǔ)知識(shí) SQL Server 2000基礎(chǔ)知識(shí) SQL Server 2000體系結(jié)構(gòu) 創(chuàng)建及管理數(shù)據(jù)庫(kù),一、SQL基礎(chǔ)知識(shí),SQL(Structured Query Language),即結(jié)構(gòu)化查詢語言,是關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語言,是一個(gè)通用的、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫(kù)語言;其功能并不僅僅是查詢;主要用來對(duì)存放在計(jì)算機(jī)中的數(shù)據(jù)庫(kù)進(jìn)行組織、管理和檢索。 標(biāo)準(zhǔn)的SQL語句幾乎可以在所有的關(guān)系型數(shù)據(jù)庫(kù)上不

2、加修改地使用。Access、Visual Foxpro、Oracle這樣的數(shù)據(jù)庫(kù)同樣支持標(biāo)準(zhǔn)的SQL。,當(dāng)前,幾乎所有關(guān)系數(shù)據(jù)庫(kù)管理軟件都支持SQL,許多軟件廠商對(duì)SQL基本命令集還進(jìn)行了不同程度的擴(kuò)充和修改; 如Transact-SQL是SQL Server 在SQL的基礎(chǔ)上添加了變量、運(yùn)算符、函數(shù)及流程控制語句及注解。那么別的關(guān)系型數(shù)據(jù)庫(kù)就不支持T-SQL語言,語言是SQL Server系列產(chǎn)品獨(dú)有的。,1、SQL概述(P78),1974年被Boyce和Chamberlin提出,并在IBM公司研制的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)System R上實(shí)現(xiàn)。由于SQL簡(jiǎn)單易學(xué),功能豐富,因此被數(shù)據(jù)庫(kù)廠商所采

3、用。 1986年,美國(guó)國(guó)家標(biāo)準(zhǔn)局ANSI的數(shù)據(jù)庫(kù)委員會(huì)批準(zhǔn)了SQL作為關(guān)系數(shù)據(jù)庫(kù)語言的美國(guó)標(biāo)準(zhǔn),同年公布了SQL的標(biāo)準(zhǔn)文本。 1987年,國(guó)際標(biāo)準(zhǔn)化組織ISO也通過了這一標(biāo)準(zhǔn)。,2、SQL語言特點(diǎn),一、語言功能和模式結(jié)構(gòu)的一體化 在關(guān)系模型中實(shí)體和實(shí)體間的聯(lián)系均用關(guān)系表示,關(guān)系數(shù)據(jù)結(jié)構(gòu)的單一性帶來了數(shù)據(jù)操作符的統(tǒng)一,查找、插入、刪除、修改等每一種操作都只需一種操作符,克服了信息表示方式的多樣性帶來的操作復(fù)雜性。,二、高度非過程化的語言 用SQL語言進(jìn)行數(shù)據(jù)操作,只要提出“做什么”,而無須指明“怎么做”,因此無需了解存取路徑,存取路徑的選擇以及SQL語句的操作過程由系統(tǒng)自動(dòng)完成。這不但減輕了用戶

4、負(fù)擔(dān),而且有利于提高數(shù)據(jù)獨(dú)立性。,三、面向集合的操作方式 SQL語言采用集合操作方式,不僅操作對(duì)象、查找結(jié)果可以是元組的集合,而且一次插入、刪除、更新操作的對(duì)象也可以是元組的集合。,四、兩種使用方式、統(tǒng)一的語法結(jié)構(gòu) SQL語言既是自含式語言,又是嵌入式語言。 作為自含式語言,它能夠獨(dú)立地用于聯(lián)機(jī)交互的使用方式,用戶可以在終端鍵盤上直接鍵入SQL命令對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作; 作為嵌入式語言,SQL語句能夠嵌入到高級(jí)語言(例如VB、PB、VC)程序中,供程序員設(shè)計(jì)程序時(shí)使用。 在兩種不同的使用方式下,SQL語言的語法結(jié)構(gòu)基本上是一致的。,五、語言簡(jiǎn)捷,易學(xué)易用 SQL語言接近英語口語,因此容易學(xué)習(xí),容易

5、使用。 表 31 SQL語言的動(dòng)詞,3、 SQL Server的管理工具,現(xiàn)在就介紹一下這些工具的功能:,1. 企業(yè)管理器,企業(yè)管理器(Enterprise Manager)是SQL Server中最重要的一個(gè)管理工具。用戶和系統(tǒng)管理員可以使用它來管理網(wǎng)絡(luò)、計(jì)算機(jī)、服務(wù)和其它系統(tǒng)組件,安裝好系統(tǒng)之后,我們可從“開始”-“程序” - “Microsoft SQL Server”中看到如圖10.8所示的畫面。,查詢分析器,SQL Server 2000的查詢分析器(Query Analyzer)可以使用戶交互式地輸入和執(zhí)行各種Transact-SQL語句,并且迅速地查看這些語句的執(zhí)行結(jié)果,來完成對(duì)

6、數(shù)據(jù)庫(kù)中的數(shù)據(jù)的分析和處理,是SQL Server 2000提供用來分析查詢計(jì)劃(The Plan of A Query)、同時(shí)執(zhí)行多個(gè)查詢和查看數(shù)據(jù)及索引的工具,單擊選項(xiàng)會(huì)出現(xiàn)“連接到SQL Server”對(duì)話框,請(qǐng)輸入要連接的主機(jī)和帳戶信息。,查詢分析器有許多功能都是非常有用的,對(duì)于一般初學(xué)者來說,可以把查詢分析器看作T-SQL代碼編譯的地方,在查詢分析器里編寫代碼用以建立數(shù)據(jù)庫(kù)、表、視圖、查詢等很多操作。 查詢分析器的啟動(dòng)前提是服務(wù)管理器已經(jīng)處于啟動(dòng)狀態(tài)。,3服務(wù)管理器,SQL Server服務(wù)管理器(Service Manager)是在服務(wù)器端實(shí)際工作時(shí)最有用的實(shí)用程序 。,SQL S

7、erver服務(wù)管理器的主要作用是用來啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)器的實(shí)時(shí)服務(wù)、暫停和停止正在運(yùn)行的服務(wù),或在暫停服務(wù)后繼續(xù)服務(wù)。,4 客戶端網(wǎng)絡(luò)實(shí)用工具,客戶端網(wǎng)絡(luò)實(shí)用工具(Client Network Utility)用來配置客戶端的網(wǎng)絡(luò)連接,管理和測(cè)定客戶端的網(wǎng)絡(luò)庫(kù)等。 進(jìn)行與SQL Server 2000連接的網(wǎng)絡(luò)配置,通常用戶的SQL Server上無特殊的設(shè)置與更改,基本上連通應(yīng)該都沒有問題,所以這個(gè)工具就很容易被用戶忽略。倘若在其他計(jì)算機(jī)上的SQL Server讓用戶無法連接,可由此工具加入服務(wù)器主機(jī)的名稱和網(wǎng)絡(luò)協(xié)議等設(shè)置。,5服務(wù)器網(wǎng)絡(luò)實(shí)用工具,服務(wù)器網(wǎng)絡(luò)實(shí)用工具(Server Network

8、 Utility)用來配置本計(jì)算機(jī)作為服務(wù)器時(shí)允許使用的連接協(xié)議,還可以在此設(shè)置相關(guān)參數(shù)等。,6 事件探查器,SQL Server 2000中的事件探查器可以即時(shí)獲得服務(wù)器的活動(dòng),幫助用戶監(jiān)控SQL Server所產(chǎn)生的事件,如登錄失敗、連接終止、Transact-SQL SELECT、INSERT、UPDATE,DELETE的語句、RPC(Remote procedure Call)的批處理狀態(tài)、存儲(chǔ)過程的開始及結(jié)束等。可以有選擇的進(jìn)行事件的監(jiān)視。 注:不要選擇過多的事件進(jìn)行監(jiān)視,以免影響性能。,7導(dǎo)入和導(dǎo)出數(shù)據(jù),導(dǎo)入和導(dǎo)出數(shù)據(jù)(Input and Export Data)采用DTS導(dǎo)入/導(dǎo)

9、出向?qū)硗瓿?。此向?qū)О怂械腄TS(Data Transformation Services)工具,提供了在OLE DB數(shù)據(jù)源之間復(fù)制數(shù)據(jù)的最簡(jiǎn)捷的方法。,8聯(lián)機(jī)叢書,SQL Server 2000提供了大量的聯(lián)機(jī)幫助文檔(Books Online),它具有索引和全文搜索能力,可根據(jù)關(guān)鍵詞來快速查找用戶所需信息,是用戶學(xué)習(xí)SQL Server 2000的良師益友。,4. SQL Server 2000的系統(tǒng)數(shù)據(jù)庫(kù),1 SQL Server 2000系統(tǒng)數(shù)據(jù)庫(kù)簡(jiǎn)介,SQL Server 2000安裝成功后,系統(tǒng)會(huì)自動(dòng)創(chuàng)建6個(gè)系統(tǒng)數(shù)據(jù)庫(kù)。這些系統(tǒng)數(shù)據(jù)庫(kù)的文件存儲(chǔ)在Microsoft SQL S

10、erver默認(rèn)安裝目錄下的MSSQL子目錄的Data文件夾中,數(shù)據(jù)庫(kù)文件的擴(kuò)展名為 .mdf,數(shù)據(jù)庫(kù)日志文件的擴(kuò)展名為 .ldf。,(2)Model數(shù)據(jù)庫(kù):是所有用戶數(shù)據(jù)庫(kù)和Tempdb數(shù)據(jù)庫(kù)的模板數(shù)據(jù)庫(kù)。它含有Master數(shù)據(jù)庫(kù)的所有系統(tǒng)表子集,這些系統(tǒng)數(shù)據(jù)庫(kù)是每個(gè)用戶定義數(shù)據(jù)庫(kù)時(shí)都需要的。,(1) Master數(shù)據(jù)庫(kù):記錄了SQL Server系統(tǒng)的所有系統(tǒng)信息。這些系統(tǒng)信息包括所有的登錄信息、系統(tǒng)設(shè)置信息、SQL Server的初始化信息和其它系統(tǒng)數(shù)據(jù)庫(kù)及用戶數(shù)據(jù)庫(kù)的相關(guān)信息。,msdb數(shù)據(jù)庫(kù)是SQL Server中的一個(gè)特例。如果你查看這個(gè)數(shù)據(jù)庫(kù)的實(shí)際定義,會(huì)發(fā)現(xiàn)它其實(shí)是一個(gè)用戶數(shù)據(jù)庫(kù)

11、。不同之處是SQL Server拿這個(gè)數(shù)據(jù)庫(kù)來做什么。所有的任務(wù)調(diào)度、報(bào)警、操作員都存儲(chǔ)在msdb數(shù)據(jù)庫(kù)中。該庫(kù)的另一個(gè)功能是用來存儲(chǔ)所有備份歷史。SQL Server Agent將會(huì)使用這個(gè)庫(kù)。,(3)Msdb數(shù)據(jù)庫(kù):是代理服務(wù)數(shù)據(jù)庫(kù) 。,(4)Tempdb數(shù)據(jù)庫(kù): tempdb數(shù)據(jù)庫(kù)是一個(gè)非常特殊的數(shù)據(jù)庫(kù),供所有來訪問你的SQL Server的用戶使用。這個(gè)庫(kù)用來保存所有的臨時(shí)表、存儲(chǔ)過程和其他SQL Server建立的臨時(shí)用的東西。例如,排序時(shí)要用到tempdb數(shù)據(jù)庫(kù)。數(shù)據(jù)被放進(jìn)tempdb數(shù)據(jù)庫(kù),排完序后再把結(jié)果返回給用戶。每次SQL Server重新啟動(dòng),它都會(huì)清空tempdb數(shù)據(jù)庫(kù)

12、并重建。永遠(yuǎn)不要在tempdb數(shù)據(jù)庫(kù)建立需要永久保存的表。,(5)Pubs和Northwind數(shù)據(jù)庫(kù): 它們是SQL Server自帶的兩個(gè)實(shí)例數(shù)據(jù)庫(kù)。,2 SQL Server 2000系統(tǒng)表簡(jiǎn)介,SQL Server 2000有6個(gè)系統(tǒng)表: (1)Sysobjects表。SQL Server 的主系統(tǒng)表,出現(xiàn)在每個(gè)數(shù)據(jù)庫(kù)中。它對(duì)每個(gè)數(shù)據(jù)庫(kù)對(duì)象含有一行記錄。 (2)Syscolumns表。出現(xiàn)在master數(shù)據(jù)庫(kù)和每個(gè)用戶自定義的數(shù)據(jù)庫(kù)中,它對(duì)基本表或者視圖的每個(gè)列和存儲(chǔ)過程中的每個(gè)參數(shù)含有一行記錄。,(3)Sysindexes表。出現(xiàn)在master數(shù)據(jù)庫(kù)和每個(gè)用戶自定義的數(shù)據(jù)庫(kù)中,它對(duì)每個(gè)

13、索引和沒有聚簇索引的每個(gè)表含有一行記錄,它還對(duì)包括文本/圖像數(shù)據(jù)的每個(gè)表含有一行記錄。 (4)Sysusers表。出現(xiàn)在master數(shù)據(jù)庫(kù)和每個(gè)用戶自定義的數(shù)據(jù)庫(kù)中,它對(duì)整個(gè)數(shù)據(jù)庫(kù)中的每個(gè)Windows NT用戶、Windows NT用戶組、SQL Server用戶或者SQL Server角色含有一行記錄。,(5)Sysdatabases表。它對(duì)SQL Server系統(tǒng)上的每個(gè)系統(tǒng)數(shù)據(jù)庫(kù)和用戶自定義的數(shù)據(jù)庫(kù)含有一行記錄,只出現(xiàn)在master數(shù)據(jù)庫(kù)中。 (6)Sysdepends表。它對(duì)表、視圖和存儲(chǔ)過程之間的每個(gè)依賴關(guān)系含有一行記錄,出現(xiàn)在master數(shù)據(jù)庫(kù)和每個(gè)用戶自定義的數(shù)據(jù)庫(kù)中。,注意:

14、如果使用DDL語句的INSERT,UPDATE和DELETE語句來修改系統(tǒng)表的信息,對(duì)整個(gè)系統(tǒng)是非常危險(xiǎn)的,應(yīng)該使用系統(tǒng)存儲(chǔ)過程來代替。,三、數(shù)據(jù)庫(kù)的體系結(jié)構(gòu),數(shù)據(jù)庫(kù)是存儲(chǔ)和管理數(shù)據(jù)的對(duì)象; 從邏輯上看, 數(shù)據(jù)庫(kù)的邏輯存儲(chǔ)結(jié)構(gòu)指的是數(shù)據(jù)庫(kù)是由哪些性質(zhì)的信息所組成,所有與數(shù)據(jù)處理操作相關(guān)的信息都存儲(chǔ)在數(shù)據(jù)庫(kù)中。 從物理上看, SQL Server 2000數(shù)據(jù)庫(kù)是指用于存儲(chǔ)數(shù)據(jù)庫(kù)的文件及文件組。數(shù)據(jù)庫(kù)的物理存儲(chǔ)結(jié)構(gòu)則是討論數(shù)據(jù)庫(kù)文件是如何在磁盤上存儲(chǔ)的。,1、邏輯數(shù)據(jù)庫(kù),邏輯角度的數(shù)據(jù)庫(kù)呈現(xiàn)為各種數(shù)據(jù)庫(kù)對(duì)象,這些數(shù)據(jù)對(duì)象是用于編寫數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)和管理數(shù)據(jù)庫(kù)的單位。 SQL Server 2000

15、的數(shù)據(jù)庫(kù)對(duì)象主要包括表(table)、視圖(view)、索引(index)、默認(rèn)(default)、存儲(chǔ)過程(stored procedure)、觸發(fā)器(trigger)和約束(constraint)等。,在T-SQL語句中,數(shù)據(jù)庫(kù)對(duì)象可使用兩種對(duì)象名: 完全限定名:在SQL Server 2005上創(chuàng)建的每個(gè)對(duì)象都有唯一的完全限定名。它包括四個(gè)部分:服務(wù)器名、數(shù)據(jù)庫(kù)名、模式名、所有者名和對(duì)象名,其格式為: Server. database. schema. owner. object 部分限定名:只包含對(duì)象完全限定名中的一部分的對(duì)象名稱 使用TSQL編程時(shí),使用全名往往很繁瑣且沒有必要,所以

16、常省略完全限定名中的某些部分。 對(duì)象全名中的前4部分可被省略。,2、物理數(shù)據(jù)庫(kù),物理角度的SQL Server 2005數(shù)據(jù)庫(kù)呈現(xiàn)為各種操作系統(tǒng)文件。 在默認(rèn)安裝路徑C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLData目錄下存放了數(shù)據(jù)庫(kù)的數(shù)據(jù)文件。,SQL Server 的每個(gè)數(shù)據(jù)庫(kù)都必須包含下面兩類文件。 數(shù)據(jù)文件:用于存放所有數(shù)據(jù)和數(shù)據(jù)庫(kù)中建立的所有邏輯對(duì)象。又分為主要數(shù)據(jù)文件和次要數(shù)據(jù)文件。 日志文件:記錄了用戶對(duì)數(shù)據(jù)庫(kù)進(jìn)行的所有操作。,1)主要數(shù)據(jù)文件(Primary Data File) 主數(shù)據(jù)文件簡(jiǎn)稱主文件,它是數(shù)據(jù)庫(kù)的關(guān)鍵文件,包

17、含了數(shù)據(jù)庫(kù)的啟動(dòng)信息。 每個(gè)數(shù)據(jù)庫(kù)必須有且僅能有一個(gè)主文件; 其默認(rèn)擴(kuò)展名為.MDF; 唯一的,2)次要(輔助)數(shù)據(jù)庫(kù)文件(Secondary Data File) 輔助數(shù)據(jù)文件簡(jiǎn)稱輔(助)文件,用于存儲(chǔ)未包括在主文件內(nèi)的其他數(shù)據(jù)。 輔助文件的默認(rèn)擴(kuò)展名為.NDF。 輔助文件是可選的,根據(jù)具體情況,可以創(chuàng)建多個(gè)輔助文件,也可以不用輔助文件。一般當(dāng)數(shù)據(jù)庫(kù)很大時(shí),有可能需要?jiǎng)?chuàng)建多個(gè)輔助文件;而數(shù)據(jù)庫(kù)較小時(shí),則只要?jiǎng)?chuàng)建主文件而不需要輔助文件。 零個(gè)、一個(gè)或多個(gè),3)日志文件(Transaction Log File) 日志文件用于保存恢復(fù)數(shù)據(jù)庫(kù)所需的事務(wù)日志信息。 每個(gè)數(shù)據(jù)庫(kù)至少有一個(gè)日志文件,也可

18、以有多個(gè)。 日志文件的擴(kuò)展名為.LDF。 至少一個(gè),4)數(shù)據(jù)庫(kù)文件組 為了便于分配和管理,SQL Server允許將多個(gè)文件歸納為同一組,并賦予此組一個(gè)名稱,這就是文件組。 主文件組(Primary FileGroup) 用戶定義文件組(Secondary FileGroup),四、創(chuàng)建及管理數(shù)據(jù)庫(kù),在建立用戶邏輯組件之前(如基本表)必須首先建立數(shù)據(jù)庫(kù)。 而建立數(shù)據(jù)庫(kù)時(shí)完成的最實(shí)質(zhì)任務(wù)是向操作系統(tǒng)申請(qǐng)用來存儲(chǔ)數(shù)據(jù)庫(kù)數(shù)據(jù)的物理磁盤存儲(chǔ)空間。這些存儲(chǔ)空間以操作系統(tǒng)文件的方式體現(xiàn),它們的相關(guān)信息將存儲(chǔ)在master數(shù)據(jù)庫(kù)及其系統(tǒng)表中。,創(chuàng)建SQL Server 數(shù)據(jù)庫(kù)可以在Management Stuio中以圖形界面的方式交互完成,或者在查詢界面下通過SQL語句完成。 界面方式管理數(shù)據(jù)庫(kù) 命令方式下管理數(shù)據(jù)庫(kù),1)界面方式創(chuàng)建數(shù)據(jù)庫(kù),以學(xué)生-課程數(shù)據(jù)庫(kù)為例,在Management Stuio中以圖形界面的方式練習(xí)創(chuàng)建數(shù)據(jù)庫(kù),修改數(shù)據(jù)庫(kù)。 例1:要求創(chuàng)建一個(gè)學(xué)生-課程數(shù)據(jù)庫(kù)(名稱為student)。,邏輯名稱:數(shù)據(jù)文件和日志文件名稱 文件類型:數(shù)據(jù)文件及日志文件 文件組:各個(gè)數(shù)據(jù)文件所屬的文件組名稱 初始大小:文件大小 自動(dòng)增長(zhǎng):文件按指定的大小增長(zhǎng),也可限制到最大容量。 路徑:存放

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論