首页 > 数据库技术 > 详细

数据库

时间:2015-11-26 19:17:53      阅读:355      评论:0      收藏:0      [点我收藏+]

第一章  数据库基础

1数据库系统:是由数据库及其管理软件组成的系统,常常把数据库有关的硬件和软件系统成为数据库系统

2.数据库:数据库就是数据的仓库,由表、关系以及操作对象组成

3.数据:是描述事物的符号记录(数字、文字、图形、图像、声音等)

4.数据库的作用

 存储大量数据,方便检索和访问

 保持数据信息的一致、完整

 共享和安全

 通过组合分析,产生新的有用信息

5.数据库经历的三个阶段及特点

1)人工管理阶段: 数据不保存;使用应用程序管理数据;数据不共享;数据不具有独立性。

2)文件系统阶段:数据可以长期保存;由文件系统管理数据;共享性差,数据冗余大;数据独立性差。

3)数据库系统阶段:数据结构化;数据共享性高;数据独立性强;数据粒度小;独立的数据操作界面;统一管理和控制

6.数据模型的分类

  层次模型

  网络模型

  关系模型

7. E-R图三个主要部分

1)1.实体集:在E-R图中用长方形来表示实体集,实体是实体集的成员。

2) 联系:E-R图中用菱形来表示联系,联系与其涉及的实体集之间以直线连接,并在直线端部标上联系的种类 , (1:11:NM:N)

3) 属性:E-R图中用椭圆形来表示实体集和联系的属性,对于主键码的属性,在属性名下划一横线。

8.绘制E-R图所需的图形

  1) 长方形框----实体集(考虑问题的对象)

  2) 菱形框----联系(实体集间联系)

  3) 椭圆形框----实体集和联系的属性

  4) 直线----连接相关的联系和实体,并可标上联系的种类

9. E-R图设计原则:真实性;避免冗余;简单性

10.三大范式

 第一范式:在关系模型中的每一个具体关系R中,如果每个属性都是不可再分的,则称关系(R)属于第一范式(1NF

 第二范式:如果关系模式R属于第一范式,且每一个非主属性都完全依赖于主码,则称关系R是属于第二范式的

 第三范式:如果关系模式R2NF,并且R中的每个非主属性不传递依赖于R的主码,则称关系R是属于第三范式的

第二章 数据库的安装

1.常见的数据库类型:AccessSQLserver200020052008Oracle数据库等

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)添加日志文件

      Alter database 数据库名

      Add log file

       (

name=‘逻辑名’,

filename= ‘文件的存放路径’,

size=日志文件的初始大小,

maxsize=日志文件的最大大小,

filegrowth=日志文件的增长方式

)

Go

   例子:【例】向shop数据库中添加一个日志文件

alterdatabase shop

addlog file

(

name=‘shop_log2‘,

filename=‘c:\shop_log2.ldf‘,

size=10mb,maxsize=20mb,

filegrowth=10%

)

go

  4)删除空文件

      Alter database 数据库名

      Remove file 文件的逻辑名

  例子: 删除文件shop_data2 alter 

databaseshop remove 

fileshop_data2

4)添加辅助数据文件

alter database 数据库名

add file

(

name=‘逻辑名’,

filename=‘文件存放的路径’,

size=初始大小,

maxsixe=最大大小,

filegrowth=增长方式

)

Go

  例子:向数据库shop中添加一个辅助数据文件

alterdatabase shop

addfile

(

name=‘shop_data3‘,

filename=‘c:\shop_data3.ndf‘,

size=5mb,

maxsize=10mb,

filegrowth=10%

)

go

  5)创建/删除数据库

      Create database 数据库名

      on primary

(                                                    --数据文件 name=‘逻辑名’,

filename=‘文件的存放路径’,

size=数据文件的初始大小,

maxsize=数据文件的最大大小,

filegrowth=文件的增长方式 )

log  on (                                                    --日志文件 name=‘逻辑名’,

filename=‘文件的存放路径’,

size=数据文件的初始大小,

maxsize=数据文件的最大大小,

filegrowth=文件的增长方式 )

go

     例子:创建一个名为book的数据库,其初始值大小为5MB,最大大小为 50MB,允许数据库自动增长,增长方式是按10%比例增长;日志文件初始 为2MB,最大可增长到5MB,按1MB增长。

      create database book

onprimary

(

name=‘book_data‘, 

filename=‘c:\book_data.mdf‘,

size=5mb,

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)

图像

image

全局标识符

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为马德保的相关信息

usestudent_score

select*

fromMember

whereMname=‘马德保‘

go

3.模糊查询 like

1)基本语法:select 字段名

          From 目标名

          Where 目标名 like 条件

【例】查找学生姓名以‘刘’开头的所有学生信息

usestudent_score

select*

fromMember

whereMname like ‘刘%‘

go

2) % 代表所有可能的情况

3)%的使用

  %N%  表示包含N

   N%  表示N开头

   %N  表示N结尾

4)“^’代表不、不是、不以的意思

4. Or/and/not的逻辑运算

【例】将Mname以’刘’开头,或总学分为60,且专业名为网络互连的学生Mname

usestudent_score

selectMname,Mtotalscore,MMajor

fromMember where Mname like ‘刘%‘ or MTotalscore=60

andMMajor=‘网络互连‘

go

5.Between…and 在…范围之内

【例】查找总学分为60和70之间的学生所有信息

usestudent_score

select*

fromMember

whereMTotalScore between 60 and 70

go     

6.In =or

【例】查找总学分为70和80的所有学生信息

usestudent_score

select

fromMember

whereMtotalscore in(‘70‘,‘80‘)

-------whereMtotalscore not in(‘70‘,‘80‘)

go

6.Is null为空的查询

【例】查询所在地区为空的学生姓名

usestudent_score

selectMaera,Mname

fromMember

whereMaera is null

go

7.Order by排序: asc升序;desc降序

【例】查找学生的总学分以升序排列,出生日期以降序排列的学生姓名和学号

usestudent_score

select  Mname,Mbirth,Mtotalscore, MID

fromMember

orderby Mtotalscore asc ,Mbirth desc

go

8.distinct 数据过滤和消除重复记录

【例】查询student_score数据库中Member表中的总学分,但是不能有重复

use student_score

select distinct Mtotalscore

from Member order byMtotalscore

go

9.Top和top…with ties的用法

【例】求学分最高的5位学生的信息,并且返回与第5并列的学生信息

usestudent_score

selecttop 5 with ties MID,Mtotalscore

fromMember order by Mtotalscore

go

注: with ties必须与order by连用

10.as 取别名

【例】在student_score数据库中的Member表中对Mname取别名为a, 专业名为b,并在补一列为性别,并取别名为c

use student_score

select  Mname as a, MMajor as b ,‘性别’ as c

from Member

go

 

第六章 高级查询

1.联接定义:根据各个数据库表之间的逻辑关系从二个或多个数据表中检索数据

2.联接分类

  内连接:基本内连接、多表连接、自连接

  外连接:左外连接、右外连接、全外连接

  交叉连接

3. 左外连接、右外连接、全外连接的含义

leftouter join 左外连接(join左边的表),结果集中除了包括满足连接条件的行外,还包括左表所有行

rightouter join 右外连接(join 右边的表),结果集中除了包括满足连接条件的行外,还包括右表所有行

fullouter join 全外连接,结果集中除了包括满足连接条件的行外,还包括两个表的所有行

4.内连接概述

1)用…innerjion… on…语句进行连接

Jion指定需要连接的数据表

On指定连接条件(inner可省略)

【例】查找选修了01课程且成绩在30分以上的学生编号和成绩

use student_score

select M.MID,S.score

from Member M join Score S

on M.MID=S.MID

where CID=‘01‘ andscore>=30

go

5.外连接语法:select 字段名1,字段名2…字段n

              From 表1 left outer join 表2

              from 表1 right outer join 表2

              from 表1 full outer join 表2

              Go

【例】查找所有学生信息及其考试成绩,若该生未参加任何考试,也列出其信息

use student_score

select M.*,S.CID,S.score

from Score S right joinMember M

on M.MID=S.MID

go

6.交叉连接语法:select字段1,字段2

                From 表1 cross join 表2

                Go

【例】返回Member表和Score表所有可能记录的组合

use student_score

selectM.MID,M.Mname,CID,Score

from Member M cross joinScore S

go

第七章 函数

1.  函数:是一段特殊的程序代码,它能对查询结果进行一定的操作

函数的作用:就是使用户不必书写太多的程序代码即可完成复杂的操作

2.  SQL Server函数类型包括系统函数、字符串函数、 日期时间函数、聚合函数等

3. 系统函数对SQL Server服务器和数据库对象进行操作,返回服务器配置和数据库对象数值等信息

CURRENT_TIMESTAMP()可返回系统当前日期和时间,类型为datetime

HOST_NAME()返回主机名称

  SYSTEM_USER返回当前系统用户

USER_NAME() 返回id 标识指定的用户名称

db_name()返回当前会话的数据库名称

4.聚合函数    功能

1)Sum()     计算表达式所有值之和

【例】求选修01课程的学生的总成绩。

usestudent_score

selectsum(score) as ‘课程01总成绩‘

fromScore

whereCID=‘01

go

2)Avg()     计算表达式的平均值

【例】求选修10课程的学生的平均成绩。

usestudent_score

selectavg(score) as ‘课程10平均成绩‘

fromScore

whereCID=‘10‘

go

3)Count(列名) 计算表达式中非空值的数量

【例】求学生的总成绩

usestudent_score

selectcount() as ‘学生总成绩’

fromMember

go

4)count(*)    计算表达式中所有值的数量

【例】求学生的总人数

usestudent_score

selectcount(*) as ‘学生总人数’

fromMember

go

5)Min()     计算表达式的最小值

  【例】求选修00课程的学生的最低分

usestudent_score

selectmin(score) as ‘课程00的最低分‘

fromScore where CID=‘00‘

go

6)Max()     计算表达式的最大值

【例】求选修11课程的学生的最高分

usestudent_score

selectmax(score) as ‘课程11的最高分‘

fromScore where CID=‘11‘

go

第八章 数据的完整性

1. 数据库完整性:  是指存储在数据库中数据的一致性和标准性

2.数据完整性的类型

1)域(列)完整性:指定对列的一组有效值并决定是否允许有空值。也可以通过在一列中限定数据类型,格式和可能值的范围来强制数据完整性。

2) 实体(行)完整性:要求表中所有的行具有唯一的标识符,例如主关键字值。

3) 参照完整性:确保维持主关键字和外部关键字的关系

3. 约束的概念:  确保在列中输入有效的值并维护表之间的关系。

4.约束的类型

完整性类型

约束类型

说明

DEFAULT

指定列的默认值

CHECK

指定列的允许值

NULL

指定是否允许NULL

实体

PRIMARY  KEY

唯一标识每一行

UNIQUE

防止非主键重复

引用

FOREIGN  KEY

定义值必须与此表的主键匹配的列

5.default功能:执行insert语句时将默认值自动插入约束所在的列

   语法: alter table  表名

addconstraint   约束名

default(默认值)

for   字段名

go

【例】修改数据库student_score中的Menber表,将性别的默认值设置为’男’

use student_score

alter table Member

add constraint df_sex

default(‘男‘) for Msex

go

6.check功能: check(检查约束),每次执行Insert/update语句时,该约束要校验数据的合法性

语法:alter table 表名

add constraint 约束名

check(条件)

      go

【例】 修改数据库student_score中的Score表,使成绩限制在0~100之间

usestudent_score

altertable Score

add  constraint ck_cj

check(score>=0and score<=100)

go

7.primary key功能: primary key(主键约束),一个表中只有能一个pk,不能有空值,不能有 重复值;pk所在列的值能够唯一标识此行 ;能与fk关联, pk所在表为主表; 同时创建一个与PK约束名的簇索引。

语法:  alter table 表名

addconstraint 约束名

primarykey(字段名)

  go

【例】修改数据库student_score中的kc表,将课程号设置为主键

use student_score

alter table Course

add constraint pk_kch

primary key(CID)

go

8.Unique功能: unique(唯一约束), 指定在同一列中的两行不能有相同的值,只能有一行为空值,该约束自动创建一个与约束同名的非簇索引,在插入/修改时自动执行。

语法:  alter table 表名

addconstraint 约束名

unique(字段名)

go

 【例】修改数据库student_score中的Course表,将课程名设置为unique约束

use student_score

alter table Course

add constraint un_kcm

unique(Cname)

go    

 

9.FOREIGN KEY功能: 参照完整性确保维持主关键字(在主表中)和外部关键字(在辅表中)的关系。

语法: alter table 表名1

add constraint 约束名

foreign key(字段名)

references 表名2(字段名)

go

【例】修改数据库student_score中的Score表,将课程号设置为外键

usestudent_score

altertable Score

addconstraint fk_kch

foreignkey(CID)

references  Course(CID)

go

10.删除约束

语法: alter table 表名

drop constraint 约束名

 【例】 删除 Menber表的fk_xh约束。

use student_score

alter table Score

drop constraint fk_xh

go

第九章 视图

1.视图; 是从一个或多个表(或视图)导出的虚表。对于数据库用户来说,视图 似乎是一个真实的表,它具有一组命名的数据列和行。但是,与真实的表不同,在视图中没有存储任何数据,仅仅是一种较简单的访问数据库里其他表 中数据的方式,因此称它为“虚表”。视图只能建立在当前正在使用的数据库中

2.视图的优点

聚焦数据,创建可以控制的环境,将需要的、常规的、适当的数据存储在视图中。

  隐藏数据库的复杂性

  简化对用户的许可管理

  数据库拥有者只允许用户通过视图查询数据,保护了底层基本表的设计结构

  提高性能

  存储复杂查询、分割数据

  输出数据给其他应用程序

3.视图创建是应注意的情况

  只能在当前数据库中创建视图。

  如果视图引用的基表或者视图被删除,则该视图不能再被使用,直到创建新的基表或者视图。

  如果视图中某一列是函数、数学表达式、常量或者来自多个表的列名相同,则必须为列定义名称。

当通过视图查询数据时,SQL Server要检查以确保语句中涉及的所有数据库 对象存在,而且数据修改语句不能违反数据完整性规则。

  视图的名称必须遵循标识符的规则,且对每个用户必须是唯一的

 

2.语法;

1) create view 视图名  创建视图

【例】创建v1视图,包括作者为马德保的书籍ISBN,名称,及单价

use book

go

create view v1

as

selectisbn,bookname,unitprice

from bookinfo

where author=‘马德保‘

go

2) drop  view  视图名  删除视图

  【例】删除名为v2的视图

dropview v2

3) alterview  视图名   修改视图

  【例】修改v1视图,包括出版社为工业出版社的书籍ISBN,作者及单价

use book

go

alter view v1

as

select isbn,author,unitprice

from bookinfo

where publisher=‘工业出版社‘

go

4) execsp_helptext 视图名  查看视图定义

  【例】查看视图v1:

execsp_helptext v1

5) update视图名       更新视图

  【例】将v1视图中书名为“Windows Server 2008活动目录”的单价增加10。

use book

go

update v1

set unitprice=unitprice+10

where bookname=‘WindowsServer 2008活动目录‘

go

 

第十章  索引

1.建立索引目的:是希望提高SQL Server数据检索的速度

2.索引的分类

    聚集索引

    非聚集索引

  唯一索引

3.建立索引的原则

1)定义主键数据列一定要建立索引

2)定义外键数据列上一定建立索引

3)对于经常查询的数据列最好建立索引

4)对于需要在指定范围内快速或频繁查询的数据列

5)经常用在where子句中的数据列

6)对于那些查询中很少涉及的列,重复值较多的列不要建立索引

7)对于定义为text、image和bit数据类型的列不要建立索引

4.语法;

   创建索引  Create unique 索引名

   修改索引  alter unique 索引名

   删除索引  drop unique 索引名

第十一章 存储过程

1.存储过程的类型

 系统存储过程 (名字以“sp_”为前缀,存储在master里)

 本地存储过程 (存储在用户定义的数据库中)

 扩展存储过程 (名字都以“xp_”为前缀,存储在master里)

 临时存储过程 (名字以#开头)

2.语法:

1)Creat procedure 存储过程名     创建存储过程

【例】创建名为p_book_info的存储过程,该存储过程查询所有书籍的信息

use book

go

create procedure p_book_info

as

select * from bookinfo

order by ISBN

go

2)Exec procedure存储过程名      执行存储过程

 【例】 p_order_detail可以通过以下方式执行

execp_order_detail

3)Alter procedure 存储过程名     修改存储过程

【例】修改p_order_detail,返回订单id,用户姓名,用户地址,书籍单价, 书籍名称及 订单数量

alter procedure p_order_detail

as

select

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

go

4)Dropprocedure存储过程名      删除存储过程

【例】删除xscj数据库中的p_book_info存储过程

use book

go

drop procedure p_book_info

go

第十二章 流程设计

  1. 1.  流程控制语句:是指那些用来控制程序执行和流程分支的命令,在SQL Server 中,流程控制语句主要用来控制SQL语句、语句块或者存储过程的执行流程。

  2. 2.  变量分为:局部变量和全局变量

  3. 3.  运算符

 算术运算符:+,-,*,/,%

 赋值运算符:=

 比较运算符 :>,<,>=,<=,=,!=,<>,!>,!<

 逻辑运算符:– all,and,any,between,exists,in,like,not,or,some

 字符串串联运算符:+

 按位运算符:&,|,^,~

  1. 4.  流程控制

  2. 1)begin…end:定义语句块。

  3. 2)gotolabel从 label 所定义的 label 之后的语句处继续进行处理。

  4. 3)if…else定义条件以及当一个条件为 FALSE 时的操作。

  5. 4)while当特定条件为 TRUE 时重复语句。

  6. 5)waitfor为语句的执行设置延迟

第十三章 触发器

1. 触发器 :是一种特殊的存储过程,它被分配给某个特定的表,触发器都是自动 调用的。当一特定的表数据被插入、更新或删除时,数据库需要执行一定的动作,触发器是确保数据完整性和一致性的基本有效的方法

2.触发器的动作

Delete

  Update

  Insert

3.触发器的作用

禁止无效的修改

级联修改相关表格

执行较为复杂的约束操作

4.触发器特点

不接受用户参数,也不返回用户参数;存储在表上。

数据库中跨越相关表的级联修改。对数据库中的相关表进行级

联更新和删除

强制比Check约束更复杂的数据完整性.可以引用其他表中的列

5.语法:

  1) Create trigger 触发器名   创建触发器

【例】对于student_score数据库,如果在Member表中删除数据,则在 执行时显示提示信息。

usestudent_score

go

createtrigger tr_delete

onMember

fordelete

as

print‘你已经删除了此数据!‘

go

   2)alter trigger 触发器名    修改触发器

  【例】在Member表中定义触发器,当修改纪录时弹出消息:恭喜!你修改了此表!

use student_score

go

alter trigger tr_delete

on Member

for delete

as

print ‘恭喜!你修改了此表!

go

   3)disable trigger 触发器名  禁用触发器

   【例】禁用tr_update触发器

use student_score

go

alter table Member

disable trigger tr_update

go

   4)enable trigger 触发器名   启用触发器

   【例】启用tr_insert触发器

usestudent_score

go

altertable Member

enabletrigger tr_insert

go

   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. 1.  备份和恢复的必要性

数据库中的数据丢失或被破坏的原因:  计算机硬件故障、软件故障、病毒、误操作、自然灾害、盗窃

  1. 2.  备份类型

完全备份(Database Full Backups)特点: 1)速度慢、时间长; 2)占用大量的磁盘空间; 3)完全备份的频率通常比差异备份或事务日志备份低

事务日志备份(Transaction LogBackups)特点: 1)速度快、时间少 2)占用磁盘空间少 3)操作复杂

差异备份(Differential DatabaseBackups)特点: 1) 速度一般、时间短 2)占用磁盘空间少 3)需要经常备份

  1. 3.  恢复模式

恢复模式

描述

简单恢复模式

数据库的完整或差异副本,截断事务日志

完整恢复模式

包括数据库备份和事务日志备份

大容量日志恢复

包括数据库和事务日志备份, 但使用较少的日志空 间

  1. 4.  当选择恢复模式时,必须考虑原则:

  2. 1) 大规模操作的性能(如大容量装载)

  3. 2) 数据丢失表现(如已提交的事务丢失)

  4. 3) 事务日志空间损耗

  5. 4) 备份和恢复过程的简化

  6. 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. 1.  影响可用性的因素有软件故障,硬件组件故障,网络故障,电源故障和资源灾难

  2. 2.  优化数据库可用性的注意事项

硬件组件冗余

网络冗余

RAID

服务器和数据库冗余

  1. 3.  服务器群集的版本: Enterprise 、 Developer、  Standard

  2. 4.  为数据库镜像准备服务器的方法

创建镜像端点和登录

设置恢复模式

备份主体数据库并将其还原到镜像服务器上

复制服务器级资源

  1. 5.  处理故障恢复的方法:自动故障恢复,手动故障恢复,强制恢复

切换服务器角色的方法:复制事务日志备份;用 NORECOVERY备份主数据库;使用 RECOVERY 来还原备用服务器上由上一步得到的备份;原来的主体服务器上禁用日志传送作业;在辅助数据库上设置日志传送

第十七章 商业智能

  1. 1.  当今商业智能领域面临的挑战:商业数据分散在企业各处;绩效考核所依赖的信息不能被完整地获取;可执行的洞察力不容易被传递到需要它的每一个用户面前

  2. 2.  SQLServer 2008智能数据平台

1)集成服务:整合和清洗来自各种异类数据源的数据;可预见性响应大数据量变化;简化数据仓库的管理

2)报表服务: 用户自定义报表可以满足任何报表需求;管理任意大小的报表负荷;根据每个用户的喜好灵活的展示不同形式的报表

3)分析服务:创造企业级的分析解 决方案;增强分析的可理解性 和可预见能力; 满足每个涉众的需求

  1. 3.  常用数据操作:条件性拆分、查找、排序、转换、Union All

 


本文出自 “10911626” 博客,请务必保留此出处http://10921626.blog.51cto.com/10911626/1717190

数据库

原文:http://10921626.blog.51cto.com/10911626/1717190

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!