




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、數據庫技術與應用數據庫技術與應用教材編寫組第1章 數據庫技術概論數據庫技術的產生與發展數據庫系統數據模型關系數據庫SQL Server 2008數據庫概述Transact-SQL語言簡介關系模型、關系運算、關系數據庫設計 2問題提出什么是數據庫技術?數據庫的地位如何?什么是大數據?什么是云計算?3?1.1 數據庫技術的產生與發展人工管理階段 文件管理階段 數據庫管理階段 新型數據庫系統 41.1 數據庫技術的產生與發展人工管理階段(40年代中50年代中) 程序與數據是一個整體,一個程序中的數據無法被其他程序使用,因此程序與程序之間存在大量的重復數據。硬件方面:沒有磁盤等直接存取的外存儲器。軟件
2、方面:沒有對數據進行管理的系統軟件。特點不能共享數據;程序復雜;數據無法長期保存。561.1 數據庫技術的產生與發展文件管理階段(50年代末60年代中) 計算機開始用于大量數據管理。硬件方面:有了直接存取的大容量外存儲器軟件方面:出現了操作系統(包含文件系統)特點程序共享數據;可長期保存數據;數據冗余度較大;程序對數據依賴性較強;缺乏對數據的統一控制管理。1.1 數據庫技術的產生與發展數據庫管理階段(60年代末現在) 數據庫是在數據庫管理系統的集中控制之下,按一定的組織方式存儲起來的、相互關聯的數據集合。特點 數據的共享性高,冗余度低,易擴充數據獨立性高 數據由DBMS統一管理和控制781.1
3、數據庫技術的產生與發展新型數據庫系統分布式數據庫(Distributed Database System,DDBS)是地理上分布在計算機網絡的不同結點,邏輯上屬于同一系統的數據庫系統;支持局部應用,存取本地結點或另一結點的數據,也支持全局應用,同時存取兩個或兩個以上結點的數據。特點數據是分布的數據是邏輯相關的結點的自治性分布式數據庫系統主要應用于航空、鐵路、旅游訂票系統、銀行通存通兌系統、水陸空聯運系統、跨國公司管理系統、連鎖配送管理系統等等。91.1 數據庫技術的產生與發展新型數據庫系統面向對象數據庫系統(Object-Oriented Database System,OODBS)是將面向對
4、象的模型、方法和機制,與先進的數據庫技術有機地結合而形成的新型數據庫系統。基本設計思想一方面把面向對象語言向數據庫方向擴展,使應用程序能夠存取并處理對象另一方面擴展數據庫系統,使其具有面向對象的特征,提供一種綜合的語義數據建模概念集,以便對現實世界中復雜應用的實體和聯系建模。面向對象數據庫系統對一些特定應用領域(如CAD等),能較好地滿足了其應用需求。1.1 數據庫技術的產生與發展新型數據庫系統多媒體數據庫系統(Multimedia Database System,MDBS)能存儲和管理多種媒體的數據庫系統。特點如果能夠對多媒體數據和傳統的字符型數值數據采用統一的方法進行管理,該系統將成為最理
5、想、最有效的數據管理方法。多媒體數據庫系統主要應用于軍事、醫學病例管理、航天測控、商標管理、地理信息系統、數字圖書館、期刊出版系統等。101.1 數據庫技術的產生與發展新型數據庫系統數據倉庫技術 (Data Warehouse,DW)數據倉庫是一個面向主題的、集成的、相對穩定的、反映歷史變化的數據集合,用于支持管理決策。數據倉庫是一個環境 。數據倉庫系統包括:數據倉庫技術;聯機分析處理技術(OLAP);數據挖掘技術(DM);數據倉庫技術應用領域遍及通信、 零售業、金融以及制造業。 111.1 數據庫技術的產生與發展新型數據庫系統12內存數據庫系統(Main Memory DataBase,MM
6、DB)是實時系統和數據庫系統的有機結合。拋棄了磁盤數據管理的傳統方式,基于全部數據都在內存中重新設計了體系結構,并且在數據緩存、快速算法、并行操作方面也進行了相應的改進,所以數據處理速度比傳統數據庫的數據處理速度要快很多,一般都在10倍以上。特點“主拷貝”或“工作版本”常駐內存,即活動事務只與實時內存數據庫的內存拷貝打交道。內存數據庫系統目前廣泛應用于航空、軍事、電信、電力、工業控制等領域。1.2 數據庫系統1.2.1 數據庫系統的組成1.2.2 數據庫的結構體系1.2.3 數據庫系統的特點131.2.1 數據庫系統組成數據庫系統(DBS)是指基于數據庫的計算機應用系統。它是由計算機硬件、軟件
7、、數據和人員組合起來為用戶提供信息服務的系統。應用程序1應用程序2應用程序n數據庫管理系統(DBMS)數據庫管理員(DBA)數據庫(DB)數據軟件系統DBS141.2.2 數據庫的結構體系數據庫的結構體系數據庫領域公認的標準結構是三級模式結構及二級映射。三級模式外模式概念模式內模式二級映射則概念模式/內模式的映射外模式/概念模式的映射把解決某類問題的方法總結歸納到理論高度,即模式。151.2.2 數據庫的結構體系三級模式結構及二級映射用于定義概念模式和內模式之間的對應性。一般在內模式中描述。用于定義外模式和概念模式間的對應性。在外模式中描述。161.2.3 數據庫系統的特點數據結構化 數據共享
8、性高、冗余度低 具有較高的數據獨立性有統一的數據控制功能 171.3 數據模型1.3.1 數據模型的組成要素1.3.2 數據抽象的過程1.3.3 概念模型1.3.4 邏輯模型181.3 數據模型數據(data)是描述事物的符號記錄。模型(Model)是現實世界的抽象。數據模型(Data Model)是數據特征的抽象,是數據庫管理的教學形式框架。數據庫系統中用以提供信息表示和操作手段的形式構架。191.3.1 數據模型的組成要素數據模型的3要素數據結構數據結構是所研究的對象類型的集合。這些對象和對象類型是數據庫的組成成分。一般可分為兩類:一類是與數據類型、內容和其它性質有關的對象;一類是與數據之
9、間的聯系有關的對象。數據操作數據操作是指對各種對象類型的實例(或值)所允許執行的操作的集合,包括操作及有關的操作規則。數據的完整性約束數據的約束條件是完整性規則的集合。用來確保數據的正確性、有效性和一致性。201.3.2 數據抽象的過程數據模型是對現實世界進行抽象和轉換的結果。21對現實世界的抽象現實世界是存在人們頭腦之外的客觀世界,由客觀事物及其聯系組成。 觀念世界中的概念模型是對現實世界的抽象和描述。用概念模型描述機器世界中的邏輯模型和物理模型是指現實世界在計算機中的體現與反映。1.3.3 概念模型概念模型是面向用戶、面向現實世界的數據模型,它與DBMS無關。它主要用來描述一個單位的概念化
10、結構。采用概念數據模型,數據庫設計人員可以在設計的開始階段,把主要精力用于了解和描述現實世界上,而把涉及DBMS的一些技術性的問題推遲到設計階段去考慮。221.3.3 概念模型與現實世界對應的概念實體:客觀存在并可相互區別的事物實體集:具有相同屬性的實體的集合屬性:實體所具有的某一特性稱為實體的屬性 類型與值:屬性類型就是屬性名及其取值類型,屬性值就是屬性所取的具體值。實體間的聯系:實體集之間的對應關系。例:負責人與其單位的聯系 一對一聯系 1 :1例:單位與職工的聯系 一對多聯系:n 例:實體(集)課程與實體(集)學生 多對多聯系 m :n 231.3.3 概念模型E-R圖(用E-R圖描述現
11、實世界的概念模型)實體-聯系方法(Entity-Relationship Approach)E-R方法也稱為E-R模型使用圖形方式(4種原素:橢圓,長方形,凌形,無向的線)11負責人管理單位證件號姓名職稱單位代碼單位名稱電話1m單位包含職工24概念模型如何描述?1.3.4 邏輯模型邏輯模型,是指數據的邏輯結構。在數據庫中,邏輯模型有層次、關系、網狀模型。在進行數據庫設計時,總是先設計E-R模型,然后再把E-R模型轉換成計算機能實現的邏輯數據模型。層次模型用層次結構(樹形結構)來表示實體及實體之間的聯系,如 IMS(IP多媒體系統 )系統。251.3.4 邏輯模型網狀模型沒有惟一的根結點,且每一
12、個結點都可以與其他任意個結點相連 ,這樣便成了網狀結構。用網狀結構來表示實體及實體之間的聯系 ,如:DBTG(數據庫任務組)系統261.3.4 邏輯模型關系模型用二維表格結構來表示實體以及實體之間聯系。操作的對象和結果都是二維表。 采用關系模型的數據庫稱為關系數據庫。 關系模型與層次型、網狀型的本質區別在于數據描述的一致性,模型概念單一 。學生登記表學號姓名性別出生日期901040101王文清男1986.10建宇男1985. 3.07901040103李超男女1986.8.10901040104覃江燕女1986.12.25271.4 關系數據庫1.4.1 關系數據庫的
13、基本概念1.4.2 關系運算1.4.3 關系的完整性約束1.4.4 關系數據庫設計實例281.4.1 關系數據庫的基本概念關系,表示多個實體之間的相互關聯,是一種規范化了的二維表格 。 沒有重復行、重復列,并且每個行列的交叉點只有一個基本數據的二維表格看成一個關系。不是二維表29二維表1.4.1 關系數據庫的基本概念30 基本術語關系:一張二維表 元組:表中的一行或記錄屬性:表中的一列或字段 屬性值:表中行和列的交叉位置 域:屬性的取值范圍 表結構:表中的第1行關鍵字:能唯一區分、確定不同元組的單個屬性或屬性組合外部關鍵字 :也是表中的一個或多個字段,外部關鍵字的值與相關表的主關鍵字相匹配。1
14、.4.2 關系運算關系模式它由一個關系名以及它所有的屬性名構成。是指對關系結構的描述,一般表示為: 關系名(屬性1,屬性2,屬性3,屬性n)例:學生(學號,姓名,性別,出生日期)課程(課程代碼,課程名稱,學分)選課(學號,課程代碼,成績)n選課學生課程學號姓名性別出生日期成績課程代碼課程名稱學分m311.4.2 關系運算關系的基本運算有兩類傳統的集合運算(并、差、交等)專門的關系運算(選擇、投影、連接等)傳統的關系運算交 、并、差 - 、笛卡爾積 。交:它是 R 和 S 共同具有記錄的集合。生成新關系,新關系結構與 R 和 S 相同。記作RS。并:R 中的元素和 S 中的元素共同組成的集合。生
15、成新關系,新關系結構與 R 和 S 相同。記作記作RS。差:它是從 R 中去掉 S 中存在的記錄集合。生成新關系,新關系結構與 R 和 S 相同。記作R-S。 笛卡爾積:記作 RS ,它的關系模式是 R 和 S 的模式的并集,關系的值是 R 中的每條記錄連接 S 中的每個記錄的記錄集合。 321.4.2 關系運算專門的關系運算(3種)選擇(Selection)運算從一個關系中選擇出滿足給定條件的所有記錄,它是原關系的一個子集,結構與原關系相同。選擇運算提供了橫向劃分(或稱分割)關系的手段。 Select * FROM 表名 WHERE 條件投影(Projection)運算從一個關系 R 中按所
16、需順序選取若干屬性組成新關系。投影運算提供縱向劃分(或稱分割)關系的手段。新關系的屬性通常少于原關系。 Select 列1,列2 , FROM 表名連接(Join)運算把兩個關系 R 和 S 按相應屬性值的比較條件聯接起來。它是 R 和 S 笛卡爾積的子集。有6個比較運算符:、= 、= 、= 、 331.4.2 關系運算341.4.3 關系的完整性約束(3種)實體完整性實體完整性就是指關系的主屬性不能取空值,并且不允許兩個元組的關鍵字值相同。即一個二維表中沒有兩個完全相同的行。參照完整性參照完整性規則就是定義外部關鍵字與主關鍵字之間的引用規則,即對于R中每個元組在F上的值必須取空值或等于S中某
17、個元組的主關鍵字值。用戶定義完整性針對某一具體關系數據庫的約束條件,它反映某一具體應用所涉及的數據必須滿足的語義要求。例如規定關系中某一屬性的取值范圍。351.4.4 關系數據庫設計實例1n聯系到關系模型的轉化把每個實體分別轉化為一個關系,實體名作為關系名,實體屬性作為關系的屬性,并在1n聯系的n方增加一個屬性,該屬性存放與該實體相聯系的另一個實體的關鍵字。例如,根據學院與學生兩個實體(1:n)所轉化的關系是:學院(編號,學院名稱)學生(學號,姓名,性別,出生日期,班級,電話,地址,簡歷,編號)編號是指學院的編號361.4.4 關系數據庫設計實例mn聯系到關系模型的轉化表1-3中學生與課程的聯
18、系是多對多的聯系。對這樣的聯系進行關系模型轉化時,把兩個實體獨立地轉化為兩個關系,轉化時,將實體名作為關系名,實體屬性轉化為關系屬性,除此以外單獨設置一個關系描述兩個實體間的聯系,其屬性由兩個實體的關鍵字組成。例如:學生(學號,姓名,性別,出生日期,班級,電話,地址,簡歷)其中學號作為關鍵字課程(課程號,課程名稱,課程類型,學分,備注)其中課程號作為關鍵字選課(學號,課程號,成績)其中學號和課程號的組合作為關鍵字371.4.4 關系數據庫設計實例11聯系到關系模型的轉化將兩個實體按上述實體轉化方法分別轉化為兩個關系,并對每個屬性增加一個外部關鍵字,外部關鍵字由與本實體相聯系的對方實體的關鍵字組
19、成。例如:學生(學號,姓名,性別,出生日期,班級,電話,地址,簡歷,編號)學院(編號,學院名稱)課程(課程號,課程名稱,課程類型,學分,備注)選課(學號,課程號,成績)381.4.4 關系數據庫設計實例學生信息數據庫列名數據類型寬度說明列名數據類型寬度說明St_IDchar10學號(主關鍵字)St_Namevarchar20姓名St_Sexchar2性別Born_Datedatetime8出生日期Cl_Namevarchar15班級名稱Telephonevarchar20聯系電話Addressvarchar150聯系地址Resumevarchar255簡歷391.5 SQL Server 20
20、08數據庫概述401.5.1 SQL Server的初步認識1.5.2 SQL Server 2008的服務器組件1.5.3 SQL Server 2008常用管理工具1.5.4 SQL Server數據類型 1.5.1 SQL Server的初步認識41SQL Server 2008 是一個使用客戶機/服務器體系結構的關系型數據庫管理系統。SQL Server的發展1987年賽貝爾公司發布了Sybase SQL Server系統,2008年微軟公司發布了Microsoft SQL Server 2008系統,其代碼名稱為Katmai(卡特邁)。SQL Server2008的版本SQL Ser
21、ver 2008系統提供了7種不同的版本,這些版本分別是企業版、標準版、開發版、工作組版、學習版、移動版和Web版。SQL Server2008的安裝(見P20)1.5.2 SQL Server 2008的服務器組件42主要組件數據庫引擎(Database Engine)Analysis Services(分析服務)Reporting Services(報表服務)Integration Service(集成服務)SQL Server Compact Edition(精簡版)一個適用于嵌入到移動應用的精簡數據庫產品SQL Server 2008的版本不同,提供的服務器組件可能也不相同。1.5.3
22、 SQL Server 2008常用管理工具43P24 表1.9管理工具功 能SQL Server Management Studio用于編輯和執行查詢,以及啟動標準向導任務SQL Server配置管理器管理服務器和客戶端網絡配置設置SQL Server Profiler提供用于監視SQL Server 數據庫引擎實例或Analysis Services實例的圖形用戶界面數據庫引擎優化顧問可以協助創建索引、索引視圖和分區的最佳組合SQL Server Business Intelligence Development Studio用于包括Analysis Services、Integratio
23、n Service 和Reporting Services項目在內的商業解決方案的集成開發環境Reporting Services配置管理器提供報表服務器配置的統一的查看、設置和管理方式SQL Server安裝中心安裝、升級到或更改SQL Server 2008 實例中的組件441.5.3 SQL Server數據類型SQL Server支持4種基本數據類型:數值數據類型字符和二進制數據類型日期時間數據類型邏輯數據類型451.5.3 SQL Server數據類型 數值數據類型(大致可分為4種基本類型)整數數據類型int4字節smallint2字節tinyint1字節bigint8字節浮點數據類
24、型:用于存儲系統所能提供的最大精度保留的實數數據 。FLOAT 數據類型可精確到第15 位小數,占8字節-1.7910308 +1.7910308 REAL數據類型可精確到第7 位小數 ,占4字節-3.401038 +3.401038 461.5.3 SQL Server數據類型精確數值數據類型用于存儲有小數點且小數點后位數確定的實數 。格式:decimal(p, s)numeric(p, s) 其中:P精度,S小數位數。兩者功能上等同貨幣數據類型Money:存儲長度是8字節,貨幣數據值介于-263 263-1 Smallmoney:存儲長度是4字節,介于 -231 231-1 decimal
25、和numeric類型適用于貨幣數據的處理。471.5.3 SQL Server數據類型字符和二進制數據類型字符數據類型(要用單引號括起來)存儲漢字、英文字母、數字符號和其他符號。定長 char數據類型 變長varchar數據類型 文本 text數據類型 Unicode,多字節的字符數據類型nchar(n)、nvarchar(n)和ntext。指不管對哪個地區、哪種語言均采用雙字節(16位)編碼,即世界上所有的字符統一進行編碼。481.5.3 SQL Server數據類型二進制數據類型用于存儲二進制數或字符串(3種): binary定義形式為binary(n),n的取值為18000,若不指定則n
26、默認為1。varbinaryvarbinary(n),通過存儲輸入數據的實際長度而節省存儲空間,存取速度比binary類型慢。存儲大小為所輸入數據的實際長度 加4 個字節。若輸入的數據超過n+4個字節,則截斷后存儲。image可存儲1231-1個字節的二進制數據。image數據類型存儲的是二進制數據而不是文本字符,不能用作變量或存儲過程的參數。491.5.3 SQL Server數據類型日期時間數據類型Datetime占用8字節空間。存儲從1753年1月1日到9999年12月31日的日期和時間數據,精確到百分之三秒(或3.33毫秒)Smalldatetime占用4字節空間。存儲從1900年1月
27、1日到2079年6月6日的日期和時間數據,精確到分鐘例如:Oct 25 20052005-10-25或2005/10/25200510252005-10-25 3:28:56 PM2005-10-25 15:28:56 英文數字格式(2005年10月25日)數字加分隔符格式12小時格式(PM下午)24小時格式501.5.3 SQL Server數據類型邏輯數據類型為bit,用于判斷真/假的場合,長度為1個字節。表示方法整型數據 1(真)、0 (假)或 NULL。uniqueidentifier數據類型可存儲16字節的二進制值,其作用與全局唯一標記符(Globally Unique Identi
28、fier,GUID)一樣。GUID是唯一的二進制數:世界上的任何兩臺計算機都不會生成重復的GUID值。例如 6F9619FF-8B86 -D011-B42D-00C04FC964FF511.6 Transact-SQL語言簡介1.6.1 SQL與Transact-SQL1.6.2 運算符與表達式1.6.3 語句塊和注釋1.6.4 流程控制語句521.6.1 SQL與Transact-SQLSQL語言 SQL是結構化查詢語言(Structured Query Language)的英文縮寫,是一種使用關系模型的數據庫應用語言。 功能:(1)數據查詢語言 DQL(2)數據定義語言 DDL(3)數據操
29、縱語言 DML(4)數據控制語言 DCLTransact-SQL (1)增加了流程控制語句。 (2)加入了局部變量、全局變量等許多新概念,可寫出更復雜的查詢語句。(3)增加了新的數據類型,處理能力更強。531.6.2 運算符與表達式標識符(2種)常規標識符例: SELECT * FROM TableX -標識符為 TableX表WHERE KeyCol = 124 -標識符為 KeyCol列名分隔標識符包含在雙引號(“)或方括號()中。標識符是保留字或包含空格,則使用分隔標識符。例: SELECT * FROM TableX -可選擇的分隔標識符 WHERE KeyCol = 124 -可選擇
30、的分隔標識符數據庫對象的名稱被看成是該對象的標識符。標識符包含的字符數必須在1128之間。首字是字母、下劃線( _ )、at符號()或者數字符號541.6.2 運算符與表達式常量與變量常量程序運行中保持常值的數據,即程序本身不能改變其值的數據,稱為常量,在程序中經常直接使用文字符號表示。變量在程序運行過程中可以改變其值的數據,稱為變量。常量類型字符串和二進制常量字符串常量括在單引號內。例如Cincinnati、OBrien、Process X is 50% complete. 為字符串常量。二進制常量具有前輟0 x是十六進制數字字符串,不使用引號。例如: 0 xAE、0 x12Ef、0 x69
31、048AEFDD010E、0 x(空串)為二進制常量。 551.6.2 運算符與表達式日期/時間常量datetime常量使用特定格式的字符日期值表示,用單引號括起來。使用“/”、“.”、“-”作日期/時間常量的分隔符。例如:SELECT CAST(2000-05-08 12:35:29.998 AS smalldatetime) 數值常量整型常量:例如,1894、2為整型常量。浮點常量: 主要采用科學記數法表示,如101.5E5、0.5E-2為浮點常量。精確數值常量:如 1894.1204、2.0為精確數值常量。貨幣常量:如 $12.5、$542023.14為貨幣常量。unique ident
32、ifier常量是表示GUID(全局惟一標識符)值的字符串。可以使用字符或二進制字符串格式指定。561.6.2 運算符與表達式邏輯數據常量邏輯數據常量使用數字0或1表示,并且不使用引號。非0的數字當作1處理。空值(NULL)空值意味著用戶在向表中插入數據時可以忽略該列值。空值可以表示整型、實型、字符型數據。571.6.2 運算符與表達式變量用于臨時存放數據,變量中的數據隨程序的運行而變化。變量有名字、類型和值三個要素變量的命名使用常規標識符即以字母、下劃線(_)、at符號()、數字符號(#)開頭,后續字母、數字、at符號、美元符號($)、下劃線的字符序列。不允許嵌入空格或其他特殊字符。581.6
33、.2 運算符與表達式變量的使用范圍局部變量(變量名前加)由用戶定義。定義格式DECLARE local_variable data_type ,.n變量名)、小于(=)、小于等于(=)和不等于(!=)等。邏輯運算符運算符含 義AND如果兩個布爾表達式都為TRUE,那么結果為TRUE。OR一個為TRUE,那么結果就為TRUE。NOT對任何其他布爾運算符的值取反。LIKE如果操作數與一種模式相匹配,那么值為TRUE。IN如果操作數等于表達式列表中的一個,那么值為TRUE。ALL如果一系列的比較都為TRUE,那么值為TRUE。ANY如果一系列的比較中任何一個為TRUE,那么值為TRUE。BETWEE
34、N如果操作數在某個范圍之內,那么值為TRUE。EXISTS如果子查詢包含一些行,那么值為TRUE。641.6.2 運算符與表達式連接運算符連接運算符(+)用于兩個字符串數據的連接,通常也稱為字符串運算符。例如,Dr.+ComputerDr. Computer運算符的優先級別() *、/、% +、- NOT AND OR651.6.3 語句塊和注釋語句塊BEGIN.ENDBEGIN sql_statement statement_block END注釋單行注釋“-” 多行注釋“/* */”661.6.4 流程控制語句選擇控制條件執行語句IFELSEIF Boolean_expression sq
35、l_statement statement_block -條件表達式為真時執行 ELSE sql_statement statement_block -條件表達式為假時執行671.6.4 流程控制語句CASE函數格式1:簡單CASE函數,將某個表達式與一組簡單表達式進行比較以確定結果。CASE input_expression WHEN when_expression THEN result_expression .n ELSE else_result_expression END格式2:CASE搜索函數,CASE計算一組邏輯表達式以確定結果。CASE WHEN Boolean_express
36、ion THEN result_expression . n ELSE else_result_expression END681.6.4 流程控制語句循環控制WHILE boolean_expression sql_statement statement_block BREAK sql_statement statement_block CONTINUE BREAK語句使程序完全跳出循環,結束WHILE語句的執行。CONTINUE語句使程序跳過CONTINUE語句后面的語句,回到WHILE循環的第一行命令。本章小結(1)數據庫的幾個基本概念數據管理的發展過程;數據、數據庫、數據庫管理系統、數
37、據庫系統;數據庫系統三級模式結構和體系結構;(2)數據模型數據模型的三要素;概念模型,E-R模型;三種主要數據模型。(3)關系數據庫關系數據庫的幾個基本概念,關系運算,關系的完整性約束,關系數據庫設計。(4)SQL Server 2008數據庫系統(5)Transact-SQL 語言69 本章思考(1)什么是數據庫、數據庫管理系統、數據庫系統?它們之間有什么聯系? (2)當前,主要有哪幾種新型數據庫系統?它們各有什么特點?用于什么領域,試舉例說明? (3)什么是數據模型?目前數據庫主要有哪幾種數據模型?它們各有什么特點? (4)關系數據庫中選擇、投影、連接運算的含義是什么?(5)關鍵字段的含義
38、是什么?它的作用是什么?(6)什么是E-R圖?E-R 圖是由哪幾種基本要素組成?這些要素如何表示?70本章結束71數據庫技術與應用數據庫技術與應用教材編寫組第2章 數據庫的管理與使用SQL Server數據庫的存儲結構數據庫的創建數據庫的修改數據庫的刪除數據庫的分離和附加數據庫的擴大和收縮數據庫的存儲結構、創建、修改、分離和附加73問題提出數據庫的管理指的是什么?是有關建立、存儲、修改和存取數據庫中信息的技術,是指為保證數據庫系統的正常運行和服務質量,有關人員須進行的技術管理工作。數據庫管理的主要內容是什么?數據庫的建立數據庫的調整數據庫的重組數據庫的重構數據庫的安全控制數據的完整性控制和對用
39、戶提供技術支持如何實現數據庫的管理?74?2.1 SQL Server數據庫的存儲結構2.1.1 邏輯存儲結構2.1.2 物理存儲結構752.1 SQL Server數據庫的存儲結構762.1.1 邏輯存儲結構邏輯存儲結構 指的是數據庫是由哪些性質的信息所組成。它主要應用于面向用戶的數據組織和管理,如數據庫的表、視圖、存儲等。由于這些對象是存儲在數據庫中,因此也叫數據庫對象。數據庫對象772.1.1 邏輯存儲結構數據庫類型SQL Server 2008數據庫分為系統數據庫和用戶數據庫。系統數據庫是由系統創建和維護的數據庫。在SQL Server 2008中有:master 、model 、ms
40、db 和tempdb 共4個系統數據庫78數據庫名稱數據庫描述mastermaster 數據庫記錄 SQL Server 系統的所有系統級信息。主要包括實例范圍的元數據、端點、鏈接服務器和系統配置設置以及記錄了所有其他數據庫的存在、數據庫文件的位置以及 SQL Server 的初始化信息。model提供了SQL Server 實例上創建的所有數據庫的模板。msdb主要由 SQL Server 代理用于計劃警報和作業。tempdbtempdb 系統數據庫是一個全局資源,可供連接到 SQL Server 實例的所有用戶使用,并可用于保存顯式創建的臨時用戶對象、SQL Server 數據庫引擎創建的
41、內部對象,和一些版本數據等。2.1.1 邏輯存儲結構數據庫類型用戶數據庫用戶數據庫分為系統提供的示例數據庫和用戶創建的數據庫。示例數據庫(默認的示例數據庫)AdventureWorks:自行車制造公司的業務數據。AdventureWorksDW:是Analysis Services(分析服務)的示例數據庫用戶創建的數據庫792.1.2 物理存儲結構數據庫的物理存儲結構指的是數據庫文件在磁盤中是如何存儲的。數據庫文件存放數據庫數據和數據庫對象的文件。3種類型:主數據文件(.mdf):一個數據庫只能有一個主數據文件次數據文件 (.ndf):一個數據庫可以有零個或多個次數據文件事務日志文件(.ldf
42、):一個數據庫可以有一個或多個事務日志文件802.1.2 物理存儲結構數據庫文件的存儲形式81數據庫頁的結構 2.1.2 物理存儲結構數據庫文件組出于分配和管理目的,可以將數據庫文件分成不同的文件組(File Group,文件的邏輯集合)。主文件組(Primary FileGroup):系統文件分配到此組,每一個數據庫中的主文件和未被放入其他組的次要文件在此組中。用戶定義文件組(Secondary FileGroup)默認文件組:未指定對象所屬文件組的對象都被放入此組注意:事務日志文件不屬于任何文件組。822.2 數據庫的創建2.2.1 使用對象資源管理器創建數據庫2.2.2 使用T-SQL語
43、言創建數據庫832.2 數據庫的創建在建立用戶邏輯組件之前(如基本表)必須先建立數據庫。Sql server 2008中可以支持最多32767個數據庫命名規則:名稱長度不能超過128個字符,臨時表名不能超過116個字符名稱第1個字符必須是英文字母、中文、下劃線、和#(不建議用)除第1個字符外的其他字符可以包含數字和$符號名稱中間不允許有空格和其他特殊字符842.2.1 使用對象資源管理器創建數據庫圖形化的方式創建數據庫85演示操作主文件必須至少3MB2.2.1 使用對象資源管理器創建數據庫默認情況下,SQL Server 2008數據庫文件保存在:“.Program FilesMicrosof
44、t SQL ServerMSSQL10.MSSQLSERVERMSSQLDATA”目錄下。862.2.2 使用T-SQL語言創建數據庫T-SQL語言的語法約定及使用說明87約定使用說明大寫 T-SQL 關鍵字斜體用戶提供的 T-SQL 語法的參數粗體數據庫名、表名、列名、索引名、存儲過程、實用工具、數據類型名以及必須按所顯示的原樣鍵入的文本下劃線指示當語句中省略了包含帶下劃線的值的子句時應使用的默認值|(豎線)分隔括號或大括號中的語法項。只能使用其中一項 (方括號)可選語法項。不要鍵入方括號 (大括號)必選語法項。不要鍵入大括號,.n指示前面的項可以重復n次。各項之間以逗號分隔.n指示前面的項
45、可以重復n次。每一項由空格分隔;可選的 T-SQL 語句終止符。不要鍵入方括號 :=語法塊的名稱。此約定用于對可在語句中的多個位置使用的過長語法段或語法單元進行分組和標記。可使用的語法塊的每個位置由括在尖括號內的標簽指示:2.2.2 使用T-SQL語言創建數據庫語句格式:CREATE DATABASE database_name ON -指定數據庫文件和文件組屬性 ,.n , ,.n LOG ON ,.n -指定日志文件屬性 COLLATE collation_name -使用默認排序規則 FOR LOAD | FOR ATTACH -附加已經存在的數據庫882.2.2 使用T-SQL語言創建
46、數據庫在SSMS主窗口中單擊“新建查詢”工具按鈕,打開SQL Server 2008 的查詢設計器進行操作。892.2.2 使用T-SQL語言創建數據庫例2.1:創建一個名稱為Exercise_db1的簡單數據庫,文件的所有屬性均取默認值。 CREATE DATABASE Exercise_db1例2.2:創建一個指定主數據文件和事務日志文件的簡單數據庫,數據庫名稱為Exercise_db2。要求如下:(1)數據庫的主數據文件邏輯文件名為Exercise_Data,物理文件名為Exercise.MDF,初始大小為5MB,最大文件大小無限制,自動增長量為10%。(2)事務日志文件邏輯文件名為Ex
47、ercise_LOG,物理文件名為Exercise.LDF,初始大小為1MB,最大文件大小為10MB,自動增長量為2MB。(3)文件存儲的物理位置均為F:mydb(設mydb文件夾已經建立)。902.2.2 使用T-SQL語言創建數據庫創建例2.2要求的數據庫語句為:CREATE DATABASE Exercise_db2ONPRIMARY( NAME=Exercise_Data,FILENAME= F:mydbExercise.MDF,SIZE=5,MAXSIZE=Unlimited,FILEGROWTH=10% )LOG ON( NAME=Exercise_LOG,FILENAME= F:
48、mydbExercise.LDF,SIZE=1,MAXSIZE=10,FILEGROWTH=2 )91數據庫文件屬性事務日志文件屬性2.2.2 使用T-SQL語言創建數據庫92 分析2.3 數據庫的修改2.3.1 使用對象資源管理器修改數據庫2.3.2 使用T-SQL語言修改數據庫932.3.1 使用對象資源管理器修改數據庫94演示操作2.3.2 使用T-SQL語言修改數據庫ALTER DATABASE database ADD FILE ,.n TO FILEGROUP filegroup_name | ADD LOG FILE ,.n | REMOVE FILE logical_file_
49、name | ADD FILEGROUP filegroup_name | REMOVE FILEGROUP filegroup_name | MODIFY FILE | MODIFY NAME = new_dbname | MODIFY FILEGROUP filegroup_name filegroup_property | NAME = new_filegroup_name | SET ,.n WITH | COLLATE 95filespec:file子句REMOVE:從系統中刪除文件描述和物理文件2.3.2 使用T-SQL語言修改數據庫例2.5 向數據庫中添加文件。要求如下:(1)在
50、Exercise_db2數據庫中添加一個新數據文件,數據文件的邏輯文件名、物理位置及文件名分別為Exe1dat1和D:mydbExe1_dat1.NDF。(2)數據文件初始大小為5MB,最大文件大小為30MB,自動增長量為2MB。ALTER DATABASE Exercise_db2 ADD FILE ( NAME=Exe1dat1, FILENAME=f:mydbExe1_dat1.NDF, SIZE=5MB, MAXSIZE=30MB, FILEGROWTH=2MB)962.3.2 使用T-SQL語言修改數據庫例2.9 修改數據庫文件名稱。要求是:將數據庫Exercise_db2名稱修改為
51、Exe_db2。ALTER DATABASE Exercise_db2 MODIFY NAME=Exe_db2也可將數據庫更名為漢字,如ALTER DATABASE Exe_db2MODIFY NAME =學生信息管理系統972.3.2 使用T-SQL語言修改數據庫修改數據庫補例:將“Exercise_db2”數據庫主數據文件最大大小改為20MB。 ALTER DATABASE Exercise_db2MODIFY FILE( NAME = Exercise_Data, MAXSIZE=20MB)982.4 數據庫的刪除2.4.1 使用圖形界面方式刪除數據庫2.4.2 使用T-SQL語言刪除數
52、據庫992.4.1使用圖形界面方式刪除數據庫100演示操作勾選要刪除的數據庫2.4.2 使用T-SQL語言刪除數據庫命令語法格式:DROP DATABASE database_name ,.n 例2.10 刪除Test_db1單個數據庫。 DROP DATABASE Test_db1例2.11同時刪除Test_db2和Test_db3多個數據庫。 DROP DATABASE Test_db2,Test_db31012.5 數據庫的分離和附加2.5.1 數據庫的分離2.5.2 數據庫的附加1022.5.1 數據庫的分離數據庫的分離就是將用戶的數據庫從SQL Server中刪除,即從SQL Ser
53、ver服務器中分離出來,但是保持組成該數據的數據文件和事務日志文件中的數據完好無損,即數據庫文件仍保留在磁盤上。使用對象資源管理器分離數據庫103演示操作2.5.1 數據庫的分離使用系統存儲過程sp_detach_db分離數據庫語法格式:sp_detach_db dbname= database_name 例2.12將student_db 數據庫從SQL Server 2008服務器中分離。Use student_db-打開數據庫student_dbGo sp_detach_db student_dbGo104GO 不是 Transact-SQL 語句;它是可由 sqlcmd 和 osql 實
54、用工具以及 SQL Server Management Studio 代碼編輯器識別的命令。表示當前批語句由上一 GO 命令后輸入的所有語句組成2.5.2 數據庫的附加附加數據庫是分離數據庫的逆操作,通過附加數據庫,可以將沒有加入SQL Server服務器的數據庫文件添加到服務器中。使用對象資源管理器附加數據庫注意:(1)在附加數據庫時,當確定主數據文件的名稱和物理位置后,與它相配套的事務日志文件(.LDF)也一并加入。(2)將 SQL Server 2000 或SQL Server 2005 數據庫附加到 SQL Server 2008 后,該數據庫立即變為可用,然后自動升級。105演示操作
55、2.6 數據庫的擴大和收縮2.6.1 數據庫的擴大2.6.2 數據庫的收縮1062.6 數據庫的擴大和收縮由于SQL Server 2008對數據庫空間分配采取“先分配、后使用”的機制,所以在SQL Server 2008系統中,如果數據庫的數據量不斷膨脹,可以根據需要擴大數據庫的大小。同理,對于數據庫的設計大小過大,或者刪除了數據庫中的大量數據,這時數據庫會白白耗費大量的磁盤資源。則可使用SQL Server 2008提供的收縮數據庫功能,對數據庫進行收縮,還可以對數據庫中的每個文件進行收縮,直至收縮到沒有剩余的可用空間為止。1072.6.1 數據庫的擴大擴大數據庫空間有3種方法(1)設置數
56、據庫為自動增長方式,可以在創建數據庫時設置(2)直接修改數據庫的數據文件或日志文件的大小(3)在數據庫中添加新的次要數據文件或日志文件108演示操作2.6.2 數據庫的收縮可以對數據庫進行設置自動收縮數據庫109演示操作2.6.2 數據庫的收縮手動收縮數據庫1102.6.2 數據庫的收縮手動收縮數據文件111本章小結(1)數據庫的存儲結構邏輯存儲結構,物理存儲結構(2)數據庫的創建、修改、刪除的幾種方法(3)數據庫的分離和附加分離數據庫就是將某個數據庫從SQL Server數據庫列表中刪除,使其不再被SQL Server管理和使用,但該數據庫的文件(.MDF)和對應的日志文件(.LDF)完好無
57、損。附加數據庫就是將一個備份磁盤中的數據庫文件(.MDF)和對應的日志文件(.LDF)拷貝到需要的計算機,并將其添加到某個SQL Server數據庫服務器中,由該服務器來管理和使用這個數據庫。(4)數據庫的擴大和收縮112 本章思考(1)在SQL Server 2008中的數據庫中包含哪些對象?其中什么對象是必不可少的?其作用又是什么?(2)SQL Server提供的系統數據庫master它的作用是什么?用戶可以刪除和修改嗎?為什么?(3)什么文件是數據庫文件?組成數據庫的文件有哪些類型?如何識別?它們的作用是什么?(4)分離數據庫和附加數據庫的區別是什么?分離數據庫是不是將其從磁盤上真正刪除
58、了?為什么?(5)數據庫的收縮是不是指數據庫的壓縮?為什么?收縮數據庫能起什么作用?113本章結束114數據庫技術與應用數據庫技術與應用教材編寫組第3章 數據表的管理與維護數據表的創建和管理表數據的管理數據庫完整性管理管理數據表的方法、數據庫完整性管理116問題提出數據表與數據庫是什么關系?數據表(或稱表)是數據庫最重要的組成部分之一。數據庫只是一個框架,數據表才是其實質內容。根據信息的分類情況,一個數據庫中可能包含若干個數據表。數據表與表數據的區別?為什么要進行數據庫完整性設置?117?3.1 數據表的創建和管理3.1.1 使用對象資源管理器創建數據表3.1.2 使用T-SQL語言創建數據表
59、3.1.3 使用對象資源管理器對數據表進行管理3.1.4 使用T-SQL語言對數據表進行管理1183.1 數據表的創建和管理一個數據庫可以擁有許多表,每個表都代表一個特定的實體。例如,學生數據庫可能包含學生個人信息、院系信息、課程信息、成績信息等多個表。每個實體使用一個單獨的表可以消除重復數據,使數據存儲更有效并減少數據輸入項錯誤。SQL Server 2008中數據庫的主要對象是數據表,創建好數據庫后,就可以向數據庫中添加數據表。數據表由行和列組成,行有時也稱為記錄,列有時也稱為字段或域。1193.1.1使用對象資源管理器創建數據表120在SQL Serve中,一個漢字占據兩個字符的位置,因
60、此計算一個字段長度時,一個漢字的長度是Byte。3.1.2 使用T-SQL語言創建數據表語法格式:CREATE TABLEdatabase_name.owner.|owner. table_name( | column_name AS computed_column_expression| =CONSTRAINT constraint_name | PRIMARY KEY | UNIQUE )ON filegroup | DEFAULTTEXTIMAGE_ON filegroup | DEFAULT =column_name data_typeCOLLATEDEFAULT constant_e
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 西北工業大學《口腔頜面外科學實驗二》2023-2024學年第二學期期末試卷
- 抵押反擔保抵押反擔保合同書
- 藥店入股合同書協議書
- 建筑工程違約合同書范例
- 校合作協議書
- 二零二五車庫租賃協議簡單范例
- 二零二五青島房屋租賃合同
- 捐贈合同書范文
- 事業單位停薪留職協議二零二五年
- 2025房屋租賃合同模板及范本
- 跨學科實踐制作簡易桿秤人教版八年級下冊物理
- 消毒供應中心規范培訓
- 口腔門診6S管理
- 沉浸式體驗活動設計合同
- 易制毒化學品銷售人員崗位職責
- 2025四川九洲建筑工程有限責任公司招聘生產經理等崗位6人筆試參考題庫附帶答案詳解
- 2025-2030中國金紅石發展現狀及未來趨勢研究報告
- 結腸鏡檢查前后的護理
- 人工智能與人才測評融合-全面剖析
- 小區二次供水水箱清洗消毒的監督流程課件
- 2024年江蘇淮安中考滿分作文《這份考卷答的漂亮》2
評論
0/150
提交評論