天天看點

資料庫

第一章  資料庫基礎

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

繼續閱讀