第一章 資料庫基礎
1資料庫系統:是由資料庫及其管理軟體組成的系統,常常把資料庫有關的硬體和軟體系統成為資料庫系統
2.資料庫:資料庫就是資料的倉庫,由表、關系以及操作對象組成
3.資料:是描述事物的符号記錄(數字、文字、圖形、圖像、聲音等)
4.資料庫的作用
存儲大量資料,友善檢索和通路
保持資料資訊的一緻、完整
共享和安全
通過組合分析,産生新的有用資訊
5.資料庫經曆的三個階段及特點
1)人工管理階段: 資料不儲存;使用應用程式管理資料;資料不共享;資料不具有獨立性。
2)檔案系統階段:資料可以長期儲存;由檔案系統管理資料;共享性差,資料備援大;資料獨立性差。
3)資料庫系統階段:資料結構化;資料共享性高;資料獨立性強;資料粒度小;獨立的資料操作界面;統一管理和控制
6.資料模型的分類
層次模型
網絡模型
關系模型
7. E-R圖三個主要部分
1)1.實體集:在E-R圖中用長方形來表示實體集,實體是實體集的成員。
2) 聯系:在E-R圖中用菱形來表示聯系,聯系與其涉及的實體集之間以直線連接配接,并在直線端部标上聯系的種類 , (1:1,1:N,M:N)。
3) 屬性:在E-R圖中用橢圓形來表示實體集和聯系的屬性,對于主鍵碼的屬性,在屬性名下劃一橫線。
8.繪制E-R圖所需的圖形
1) 長方形框----實體集(考慮問題的對象)
2) 菱形框----聯系(實體集間聯系)
3) 橢圓形框----實體集和聯系的屬性
4) 直線----連接配接相關的聯系和實體,并可标上聯系的種類
9. E-R圖設計原則:真實性;避免備援;簡單性
10.三大範式
第一範式:在關系模型中的每一個具體關系R中,如果每個屬性都是不可再分的,則稱關系(R)屬于第一範式(1NF)
第二範式:如果關系模式R屬于第一範式,且每一個非主屬性都完全依賴于主碼,則稱關系R是屬于第二範式的
第三範式:如果關系模式R為2NF,并且R中的每個非主屬性不傳遞依賴于R的主碼,則稱關系R是屬于第三範式的
第二章 資料庫的安裝
1.常見的資料庫類型:Access、SQLserver2000、2005、2008,Oracle資料庫等
2.資料庫管理者的工作是:配置資料庫伺服器環境 ;管理資料庫的邏輯對象結構;配置資料庫的對象權限 ;制定資料庫的性能優化政策;資料庫的備份還原政策 ;資料庫的異構協同結構
3. SQL Server 2008 的版本
Express 适用于無連接配接的用戶端或獨立應用程式
Workgroup 适用于工作組或分支機構操作的資料庫
Standard 部門級應用程式的資料庫伺服器
Enterprise 高度可伸縮和高度可用的企業級資料庫
Developer Enterprise 版,但是隻授予開發和測試用許可
Web 供托管公司提供低成本、高伸縮的托管服務,隻收取低廉的每月許可費
Mobile 用于智能手持式裝置的精簡資料庫
12.掌握SQL Server 2008資料庫的安裝與解除安裝
第三章 資料庫的管理
1.T-SQL語言分類
DDL(資料定義語言)
-create(建立)
-alter (修改)
-drop (删除)
DQL(資料查詢語言)
-inter(插入)
-update(更新)
DML(資料操作語言)
-select(查詢)
DCL(資料控制語言)
-revoke(撤銷)
-deny(拒絕)
-grant(同意、授權)
2.資料庫檔案
主資料檔案(.mdf):一個資料庫有且隻有一個
輔助資料檔案(.ndf):根據需要自由選擇,當資料庫很大時,可以選擇多個
日志檔案(.ldf):用于存儲恢複資料庫所需的事務日志資訊
3.掌握資料庫的建立及修改(圖形化及代碼)
修改資料庫包括:擴充、收縮、分離附加、删除
4.文法
1)修改資料庫名
Alter database 原資料庫名
Modify name =新資料庫名
例子:【例】将資料庫book的名字改為books
alterdatabase book
modifyname=books
2)修改檔案屬性
Alter database 資料庫名
Modify file
(
name='邏輯名',
size=修改後的大小,
maxsize=修改後的大小,
filegrowth=修改後的大小
)
Go
例子:把初始大小由原來5mb增大為12mb
alterdatabase books
modifyfile
(
name='book_data',
size=12mb
go
3)添加日志檔案
Add log file
(
name=‘邏輯名’,
filename= ‘檔案的存放路徑’,
size=日志檔案的初始大小,
maxsize=日志檔案的最大大小,
filegrowth=日志檔案的增長方式
例子:【例】向shop資料庫中添加一個日志檔案
alterdatabase shop
addlog file
name='shop_log2',
filename='c:\shop_log2.ldf',
size=10mb,maxsize=20mb,
filegrowth=10%
4)删除空檔案
Remove file 檔案的邏輯名
例子: 删除檔案shop_data2 alter
databaseshop remove
fileshop_data2
4)添加輔助資料檔案
alter database 資料庫名
add file
filename=‘檔案存放的路徑’,
size=初始大小,
maxsixe=最大大小,
filegrowth=增長方式
例子:向資料庫shop中添加一個輔助資料檔案
addfile
name='shop_data3',
filename='c:\shop_data3.ndf',
size=5mb,
maxsize=10mb,
5)建立/删除資料庫
Create database 資料庫名
on primary
( --資料檔案 name=‘邏輯名’,
filename=‘檔案的存放路徑’,
size=資料檔案的初始大小,
maxsize=資料檔案的最大大小,
filegrowth=檔案的增長方式 )
log on ( --日志檔案 name=‘邏輯名’,
例子:建立一個名為book的資料庫,其初始值大小為5MB,最大大小為 50MB,允許資料庫自動增長,增長方式是按10%比例增長;日志檔案初始 為2MB,最大可增長到5MB,按1MB增長。
create database book
onprimary
name=‘book_data',
filename='c:\book_data.mdf',
maxsize=50mb,
filegrowth=10%)
logon
name=‘book_Log',
filename='c:\book_log.ldf',
size=2mb,
maxsize=5mb,
filegrowth=1mb
6) 删除資料庫
Drop database 資料庫名
例子:删除資料庫shop
dropdatabase shop
第四章 資料表的操作
1. 在SQL server中建立表的極限: 每個資料庫可以有20億個表 ,每個表有1024個列,每個列可以有8064位元組
2.資料類型
種類
資料類型
數字
整數
int, bigint, smallint, tinyint
精确數值
decimal, numeric
近似數值
float, real
貨币
money, smallmoney
日期和時間
datetime, smalldatetime
字元
Non-Unicode
char,varchar,varchar(max), text
Unicode
nchar,nvarchar,nvarchar(max), ntext
二進制
binary,varbinary,varbinary(max)
圖像
p_w_picpath
全局辨別符
uniqueidentifier
Xml
xml
特殊
bit, cursor, timestamp, sysname, table, sql_variant
3.字元類型
字元、數字、特殊符号
– char( ) : 固定長度,以空格填補多餘長度空間
– varchar( ): 可變長長度,不以空格填補多餘長度空間
– nchar( ): unicode固定長度
– nvarchar( ) : unicode可變長長度
– unicode國際标準碼: 雙位元組模式(固定每個字元16bit)
一個漢字占兩個位元組(16bit)
一個字母占兩個位元組(16bit)
4.文法:
1)建立表
create table 表名
2)修改表
alter table 表名
3)删除表
drop/delete table 表名
4)将查出的資訊放入新表
Select * into 新表名 from 舊表名
5)添加的資訊必須滿足現有表結構
Insert into 現有表 select * from 舊表名
5.drop和delete、truncate的差別:drop是删除表,而delete和truncate是删除表中記錄
5. 資料操作語言DML
select 從表或視圖中檢索資料
insert将資料插入到表或視圖中
update修改表或視圖中的資料
delete從表或視圖中删除資料
第五章 基礎查詢
1.select文法結構
基本文法:select 字段名
From 目标表
Where 條件
【例】查詢學生成績資料庫(student_score)學生情況表(Member)中的 所有列。
usestudent_score
select*
fromMember
2.Where條件限定文法的用法
基本文法:use 資料庫名
Select 字段名
From 目标名
Where 字段名=“内容”
Go
【例】查詢Member表中Mname為馬德保的相關資訊
whereMname='馬德保'
3.模糊查詢 like
1)基本文法:select 字段名
From 目标名
Where 目标名 like 條件
【例】查找學生姓名以‘劉’開頭的所有學生資訊
whereMname like '劉%'
2) % 代表所有可能的情況
3)%的使用
%N% 表示包含N
N% 表示N開頭
%N 表示N結尾
4)“^’代表不、不是、不以的意思
4. Or/and/not的邏輯運算
【例】将Mname以’劉’開頭,或總學分為60,且專業名為網絡互連的學生Mname
selectMname,Mtotalscore,MMajor
fromMember where Mname like '劉%' or MTotalscore=60
andMMajor='網絡互連'
5.Between…and 在…範圍之内
【例】查找總學分為60和70之間的學生所有資訊
whereMTotalScore between 60 and 70
go
6.In =or 或
【例】查找總學分為70和80的所有學生資訊
select
whereMtotalscore in('70','80')
-------whereMtotalscore not in(‘70',‘80')
6.Is null為空的查詢
【例】查詢所在地區為空的學生姓名
selectMaera,Mname
whereMaera is null
7.Order by排序: asc升序;desc降序
【例】查找學生的總學分以升序排列,出生日期以降序排列的學生姓名和學号
select Mname,Mbirth,Mtotalscore, MID
orderby Mtotalscore asc ,Mbirth desc
8.distinct 資料過濾和消除重複記錄
【例】查詢student_score資料庫中Member表中的總學分,但是不能有重複
use student_score
select distinct Mtotalscore
from Member order byMtotalscore
9.Top和top…with ties的用法
【例】求學分最高的5位學生的資訊,并且傳回與第5并列的學生資訊
selecttop 5 with ties MID,Mtotalscore
fromMember order by Mtotalscore
注: with ties必須與order by連用
10.as 取别名
【例】在student_score資料庫中的Member表中對Mname取别名為a, 專業名為b,并在補一列為性别,并取别名為c
select Mname as a, MMajor as b ,‘性别’ as c
from Member
第六章 進階查詢
1.聯接定義:根據各個資料庫表之間的邏輯關系從二個或多個資料表中檢索資料
2.聯接分類
内連接配接:基本内連接配接、多表連接配接、自連接配接
外連接配接:左外連接配接、右外連接配接、全外連接配接
交叉連接配接
3. 左外連接配接、右外連接配接、全外連接配接的含義
leftouter join 左外連接配接(join左邊的表),結果集中除了包括滿足連接配接條件的行外,還包括左表所有行
rightouter join 右外連接配接(join 右邊的表),結果集中除了包括滿足連接配接條件的行外,還包括右表所有行
fullouter join 全外連接配接,結果集中除了包括滿足連接配接條件的行外,還包括兩個表的所有行
4.内連接配接概述
1)用…innerjion… on…語句進行連接配接
Jion指定需要連接配接的資料表
On指定連接配接條件(inner可省略)
【例】查找選修了01課程且成績在30分以上的學生編号和成績
select M.MID,S.score
from Member M join Score S
on M.MID=S.MID
where CID='01' andscore>=30
5.外連接配接文法:select 字段名1,字段名2…字段n
From 表1 left outer join 表2
from 表1 right outer join 表2
from 表1 full outer join 表2
Go
【例】查找所有學生資訊及其考試成績,若該生未參加任何考試,也列出其資訊
select M.*,S.CID,S.score
from Score S right joinMember M
6.交叉連接配接文法:select字段1,字段2
From 表1 cross join 表2
Go
【例】傳回Member表和Score表所有可能記錄的組合
selectM.MID,M.Mname,CID,Score
from Member M cross joinScore S
第七章 函數
1. 函數:是一段特殊的程式代碼,它能對查詢結果進行一定的操作
函數的作用:就是使使用者不必書寫太多的程式代碼即可完成複雜的操作
2. SQL Server函數類型包括系統函數、字元串函數、 日期時間函數、聚合函數等
3. 系統函數對SQL Server伺服器和資料庫對象進行操作,傳回伺服器配置和資料庫對象數值等資訊
CURRENT_TIMESTAMP()可傳回系統目前日期和時間,類型為datetime
HOST_NAME()傳回主機名稱
SYSTEM_USER傳回目前系統使用者
USER_NAME() 傳回id 辨別指定的使用者名稱
db_name()傳回目前會話的資料庫名稱
4.聚合函數 功能
1)Sum() 計算表達式所有值之和
【例】求選修01課程的學生的總成績。
selectsum(score) as '課程01總成績'
fromScore
whereCID='01
2)Avg() 計算表達式的平均值
【例】求選修10課程的學生的平均成績。
selectavg(score) as '課程10平均成績'
whereCID='10'
3)Count(列名) 計算表達式中非空值的數量
【例】求學生的總成績
selectcount() as ‘學生總成績’
4)count(*) 計算表達式中所有值的數量
【例】求學生的總人數
selectcount(*) as ‘學生總人數’
5)Min() 計算表達式的最小值
【例】求選修00課程的學生的最低分
selectmin(score) as '課程00的最低分'
fromScore where CID='00'
6)Max() 計算表達式的最大值
【例】求選修11課程的學生的最高分
selectmax(score) as '課程11的最高分'
fromScore where CID='11'
第八章 資料的完整性
1. 資料庫完整性: 是指存儲在資料庫中資料的一緻性和标準性
2.資料完整性的類型
1)域(列)完整性:指定對列的一組有效值并決定是否允許有空值。也可以通過在一列中限定資料類型,格式和可能值的範圍來強制資料完整性。
2) 實體(行)完整性:要求表中所有的行具有唯一的辨別符,例如主關鍵字值。
3) 參照完整性:確定維持主關鍵字和外部關鍵字的關系
3. 限制的概念: 確定在列中輸入有效的值并維護表之間的關系。
4.限制的類型
完整性類型
限制類型
說明
域
DEFAULT
指定列的預設值
CHECK
指定列的允許值
NULL
指定是否允許NULL
實體
PRIMARY KEY
唯一辨別每一行
UNIQUE
防止非主鍵重複
引用
FOREIGN KEY
定義值必須與此表的主鍵比對的列
5.default功能:執行insert語句時将預設值自動插入限制所在的列
文法: alter table 表名
addconstraint 限制名
default(預設值)
for 字段名
【例】修改資料庫student_score中的Menber表,将性别的預設值設定為’男’
alter table Member
add constraint df_sex
default('男') for Msex
6.check功能: check(檢查限制),每次執行Insert/update語句時,該限制要校驗資料的合法性
文法:alter table 表名
add constraint 限制名
check(條件)
go
【例】 修改資料庫student_score中的Score表,使成績限制在0~100之間
altertable Score
add constraint ck_cj
check(score>=0and score<=100)
7.primary key功能: primary key(主鍵限制),一個表中隻有能一個pk,不能有空值,不能有 重複值;pk所在列的值能夠唯一辨別此行 ;能與fk關聯, pk所在表為主表; 同時建立一個與PK限制名的簇索引。
文法: alter table 表名
addconstraint 限制名
primarykey(字段名)
go
【例】修改資料庫student_score中的kc表,将課程号設定為主鍵
alter table Course
add constraint pk_kch
primary key(CID)
8.Unique功能: unique(唯一限制), 指定在同一列中的兩行不能有相同的值,隻能有一行為空值,該限制自動建立一個與限制同名的非簇索引,在插入/修改時自動執行。
unique(字段名)
【例】修改資料庫student_score中的Course表,将課程名設定為unique限制
add constraint un_kcm
unique(Cname)
go
9.FOREIGN KEY功能: 參照完整性確定維持主關鍵字(在主表中)和外部關鍵字(在輔表中)的關系。
文法: alter table 表名1
foreign key(字段名)
references 表名2(字段名)
【例】修改資料庫student_score中的Score表,将課程号設定為外鍵
addconstraint fk_kch
foreignkey(CID)
references Course(CID)
10.删除限制
文法: alter table 表名
drop constraint 限制名
【例】 删除 Menber表的fk_xh限制。
alter table Score
drop constraint fk_xh
第九章 視圖
1.視圖; 是從一個或多個表(或視圖)導出的虛表。對于資料庫使用者來說,視圖 似乎是一個真實的表,它具有一組命名的資料列和行。但是,與真實的表不同,在視圖中沒有存儲任何資料,僅僅是一種較簡單的通路資料庫裡其他表 中資料的方式,是以稱它為“虛表”。視圖隻能建立在目前正在使用的資料庫中
2.視圖的優點
聚焦資料,建立可以控制的環境,将需要的、正常的、适當的資料存儲在視圖中。
隐藏資料庫的複雜性
簡化對使用者的許可管理
資料庫擁有者隻允許使用者通過視圖查詢資料,保護了底層基本表的設計結構
提高性能
存儲複雜查詢、分割資料
輸出資料給其他應用程式
3.視圖建立是應注意的情況
隻能在目前資料庫中建立視圖。
如果視圖引用的基表或者視圖被删除,則該視圖不能再被使用,直到建立新的基表或者視圖。
如果視圖中某一列是函數、數學表達式、常量或者來自多個表的列名相同,則必須為列定義名稱。
當通過視圖查詢資料時,SQL Server要檢查以確定語句中涉及的所有資料庫 對象存在,而且資料修改語句不能違反資料完整性規則。
視圖的名稱必須遵循辨別符的規則,且對每個使用者必須是唯一的
2.文法;
1) create view 視圖名 建立視圖
【例】建立v1視圖,包括作者為馬德保的書籍ISBN,名稱,及單價
use book
create view v1
as
selectisbn,bookname,unitprice
from bookinfo
where author='馬德保'
2) drop view 視圖名 删除視圖
【例】删除名為v2的視圖
dropview v2
3) alterview 視圖名 修改視圖
【例】修改v1視圖,包括出版社為工業出版社的書籍ISBN,作者及單價
alter view v1
select isbn,author,unitprice
where publisher='工業出版社'
4) execsp_helptext 視圖名 檢視視圖定義
【例】檢視視圖v1:
execsp_helptext v1
5) update視圖名 更新視圖
【例】将v1視圖中書名為“Windows Server 2008活動目錄”的單價增加10。
update v1
set unitprice=unitprice+10
where bookname='WindowsServer 2008活動目錄'
第十章 索引
1.建立索引目的:是希望提高SQL Server資料檢索的速度
2.索引的分類
聚集索引
非聚集索引
唯一索引
3.建立索引的原則
1)定義主鍵資料列一定要建立索引
2)定義外鍵資料列上一定建立索引
3)對于經常查詢的資料列最好建立索引
4)對于需要在指定範圍内快速或頻繁查詢的資料列
5)經常用在where子句中的資料列
6)對于那些查詢中很少涉及的列,重複值較多的列不要建立索引
7)對于定義為text、p_w_picpath和bit資料類型的列不要建立索引
4.文法;
建立索引 Create unique 索引名
修改索引 alter unique 索引名
删除索引 drop unique 索引名
第十一章 存儲過程
1.存儲過程的類型
系統存儲過程 (名字以“sp_”為字首,存儲在master裡)
本地存儲過程 (存儲在使用者定義的資料庫中)
擴充存儲過程 (名字都以“xp_”為字首,存儲在master裡)
臨時存儲過程 (名字以#開頭)
2.文法:
1)Creat procedure 存儲過程名 建立存儲過程
【例】建立名為p_book_info的存儲過程,該存儲過程查詢所有書籍的資訊
create procedure p_book_info
select * from bookinfo
order by ISBN
2)Exec procedure存儲過程名 執行存儲過程
【例】 p_order_detail可以通過以下方式執行
execp_order_detail
3)Alter procedure 存儲過程名 修改存儲過程
【例】修改p_order_detail,傳回訂單id,使用者姓名,使用者位址,書籍單價, 書籍名稱及 訂單數量
alter procedure p_order_detail
o.orderdetailid,u.username,u.addr,b.unitprice,b.bookname,o.quantity
from orderdetail as ojoin userinfo as u
on o.userid=u.userid
join bookinfo as b
on o.isbn=b.isbn
4)Dropprocedure存儲過程名 删除存儲過程
【例】删除xscj資料庫中的p_book_info存儲過程
drop procedure p_book_info
第十二章 流程設計
1. 流程控制語句:是指那些用來控制程式執行和流程分支的指令,在SQL Server 中,流程控制語句主要用來控制SQL語句、語句塊或者存儲過程的執行流程。
2. 變量分為:局部變量和全局變量
3. 運算符
算術運算符:+,-,*,/,%
指派運算符:=
比較運算符 :>,<,>=,<=,=,!=,<>,!>,!<
邏輯運算符:– all,and,any,between,exists,in,like,not,or,some
字元串串聯運算符:+
按位運算符:&,|,^,~
4. 流程控制
1)begin…end:定義語句塊。
2)gotolabel從 label 所定義的 label 之後的語句處繼續進行處理。
3)if…else定義條件以及當一個條件為 FALSE 時的操作。
4)while當特定條件為 TRUE 時重複語句。
5)waitfor為語句的執行設定延遲
第十三章 觸發器
1. 觸發器 :是一種特殊的存儲過程,它被配置設定給某個特定的表,觸發器都是自動 調用的。當一特定的表資料被插入、更新或删除時,資料庫需要執行一定的動作,觸發器是確定資料完整性和一緻性的基本有效的方法
2.觸發器的動作
Delete
Update
Insert
3.觸發器的作用
禁止無效的修改
級聯修改相關表格
執行較為複雜的限制操作
4.觸發器特點
不接受使用者參數,也不傳回使用者參數;存儲在表上。
資料庫中跨越相關表的級聯修改。對資料庫中的相關表進行級
聯更新和删除
強制比Check限制更複雜的資料完整性.可以引用其他表中的列
5.文法:
1) Create trigger 觸發器名 建立觸發器
【例】對于student_score資料庫,如果在Member表中删除資料,則在 執行時顯示提示資訊。
createtrigger tr_delete
onMember
fordelete
print'你已經删除了此資料!'
2)alter trigger 觸發器名 修改觸發器
【例】在Member表中定義觸發器,當修改紀錄時彈出消息:恭喜!你修改了此表!
alter trigger tr_delete
on Member
for delete
print '恭喜!你修改了此表!
3)disable trigger 觸發器名 禁用觸發器
【例】禁用tr_update觸發器
disable trigger tr_update
4)enable trigger 觸發器名 啟用觸發器
【例】啟用tr_insert觸發器
altertable Member
enabletrigger tr_insert
5)drop trigger 觸發器名 删除觸發器
【例】删除名為tr_insert的觸發器
droptrigger tr_insert
第十四章 資料庫安全
1.SQL Server 2008的安全性管理可分為3個等級:
1)作業系統級
2)SQL Server 級
3)資料庫級
2.SQL Server登入認證簡介;Windows和SQL Server身份驗證
Windows身份驗證
SQL Server身份驗證
當使用者登陸到Windows域時,使用者名和密碼在被傳送到 Windows域控制器之前被加密
Windows作業系統從不驗證使用者
支援複雜加密、密碼的截止日期和最短長度等密碼政策
支援密碼政策(Sql2000不支援)
支援帳戶鎖定政策,在使用無效密碼進行多次嘗試後鎖定帳戶
不支援帳戶鎖定功能
在Windows98/me中不能使用
在Windows98/me中可以使用
3資料庫安全通過以下三種方式實施:
帳戶管理: 添加和删除資料庫使用者,便于通路資料庫。
權限管理: 指定使用者能夠對哪些資料庫對象執行哪種操作。
角色管理: 将具有相同權限的使用者設定為同一角色,減少權限設定的工作量
第十五章 資料庫災難性恢複
1. 備份和恢複的必要性
資料庫中的資料丢失或被破壞的原因: 計算機硬體故障、軟體故障、病毒、誤操作、自然災害、盜竊
2. 備份類型
完全備份(Database Full Backups)特點: 1)速度慢、時間長; 2)占用大量的磁盤空間; 3)完全備份的頻率通常比差異備份或事務日志備份低
事務日志備份(Transaction LogBackups)特點: 1)速度快、時間少 2)占用磁盤空間少 3)操作複雜
差異備份(Differential DatabaseBackups)特點: 1) 速度一般、時間短 2)占用磁盤空間少 3)需要經常備份
3. 恢複模式
恢複模式
描述
簡單恢複模式
資料庫的完整或差異副本,截斷事務日志
完整恢複模式
包括資料庫備份和事務日志備份
大容量日志恢複
包括資料庫和事務日志備份, 但使用較少的日志空 間
4. 當選擇恢複模式時,必須考慮原則:
1) 大規模操作的性能(如大容量裝載)
2) 資料丢失表現(如已送出的事務丢失)
3) 事務日志空間損耗
4) 備份和恢複過程的簡化
5.備份還原的方法
完整備份和還原
完整+差異備份與還原
完整+事務日志備份與還原
6.建立備份裝置:實體和邏輯
7.文法:
1)建立資料庫備份
完全備份
backup database 資料庫名 to 永久裝置邏輯名 with init /noinit
--init 表示重寫
--noinit表示追加(預設)
【例】把book資料庫完全備份到backup_book裝置裡
backupdatabase book to backup_book with noinit
差異備份
backupdatabase 資料庫名 to 永久備份裝置邏輯名 with differential
【例】追加book資料庫的差異備份到backup_book裝置裡
backupdatabase book to backup_book with differential, noinit
日志備份
backuplog 資料庫名 to 永久備份裝置邏輯名 with init/noinit
【例】追加book資料庫的日志備份到backup_book裝置裡
backup log book to backup_book with noinit
2)備份到臨時裝置
backupdatabase 資料庫名 to disk=‘實體路徑’
【例】備份book資料庫到臨時裝置book_backup.bak裡
backup database book to disk=‘c:\book_backup.bak’
6)恢複資料庫
restore database 資料庫名 from 永久備份裝置邏輯名
【例】先把book資料庫備完全份到book_full裝置裡,再恢複資料庫.
backupdatabse book to book_full
restoredatabase book from book_full
restore log 資料庫名 from 永久備份裝置邏輯名
【例】恢複book_backup 裡的日志備份内容
restorelog book from book_backup
restore database 資料庫名 from disk=‘實體路徑’
【例】從臨時裝置book_backup.bak中恢複資料庫
restore database book fromdisk=‘c:\book_backup.bak’
第十六章 資料庫高可用性
1. 影響可用性的因素有軟體故障,硬體元件故障,網絡故障,電源故障和資源災難
2. 優化資料庫可用性的注意事項
硬體元件備援
網絡備援
RAID
伺服器和資料庫備援
3. 伺服器群集的版本: Enterprise 、 Developer、 Standard
4. 為資料庫鏡像準備伺服器的方法
建立鏡像端點和登入
設定恢複模式
備份主體資料庫并将其還原到鏡像伺服器上
複制伺服器級資源
5. 處理故障恢複的方法:自動故障恢複,手動故障恢複,強制恢複
切換伺服器角色的方法:複制事務日志備份;用 NORECOVERY備份主資料庫;使用 RECOVERY 來還原備用伺服器上由上一步得到的備份;原來的主體伺服器上禁用日志傳送作業;在輔助資料庫上設定日志傳送
第十七章 商業智能
1. 當今商業智能領域面臨的挑戰:商業資料分散在企業各處;績效考核所依賴的資訊不能被完整地擷取;可執行的洞察力不容易被傳遞到需要它的每一個使用者面前
2. SQLServer 2008智能資料平台
1)內建服務:整合和清洗來自各種異類資料源的資料;可預見性響應大資料量變化;簡化資料倉庫的管理
2)報表服務: 使用者自定義報表可以滿足任何報表需求;管理任意大小的報表負荷;根據每個使用者的喜好靈活的展示不同形式的報表
3)分析服務:創造企業級的分析解 決方案;增強分析的可了解性 和可預見能力; 滿足每個涉衆的需求
3. 常用資料操作:條件性拆分、查找、排序、轉換、Union All