1. 系统数据库:
a. 特点:
i. 安装SQL Server 2008时由系统自动创建;
ii. 是SQL Server 2008运行的基础;
iii. 协助系统对数据库的相关操作;
iv. 如图所示(位于左侧对象资源管理器一栏中):
b. 包括四种:master、model、tempdb、msdb;
c. master:
i. 是SQL Server 2008的核心数据库,一旦损坏则SQL Server 2008不能运行;
ii. 主要包含五大关键信息:
(1)所有系统配置信息(如排序信息、安全实现、恢复模式等);
(2)SQL Server 2008的初始化(即启动)信息;
(3)所有用户的登陆信息(包括账户、密码等);
(4)所有在本机SQL Server 2008上创建及访问(包括远程访问)过的数据库的存储路径(远程访问存储的是服务器中数据库的存储路径);
(5)所有数据库的名称及相关信息;
注:由于个人的PC机也可以看成一台服务器,因此SQL Server 2008将所有存储数据库的机器都看做服务器,本机服务器是默认的,当然也可以访问远程的服务器;
!!!master作为核心数据库应该定期备份(此行为属于备份策略中的核心);
d. model:
i. 里面存放了大量创建数据库是的模板,以方便用户自定义数据库;
ii. 模板中包含诸如创建的数据库都具有相同的初始化值等;
e. tempdb:
i. 是SQL Server 2008的临时存储空间;
ii. 仅存在于回话期间,一旦回话结束就关闭(完全丢失)tempdb;
iii. 每次启动SQL Server 2008都会建立一个新的、空的tempdb;
iv. 主要存放的临时数据有:
*1. 临时表:查询过程中形成的临时表,比如从好几张表中查询一些属性而组合而成的一张临时表,不对应任何物理表和逻辑表;
*2. 临时存储过程:比如对数据库进行分离等,这些分离出去的数据也临时存放在tempdb中;
*3. 用户定义的全局变量;
f. msdb:
i. 用于SQL Server 2008代理计划警报和作业,非常重要,特别是在用户执行调度等操作时该数据库会提供支持;
ii. 不能对其进行某些删除操作或者更改其中排序规则的操作;
g. SQL Server 2008将保证在正常情况下系统数据库不会缺少空间,其实SQL Server 2008的一大特点就是在必要时可以自动扩展数据库;
2. 数据库存储文件:
a. 数据数据库在文件系统层面上的实现,和操作系统直接相关;
b. 有三种:主数据文件、次数据文件、事务日志文件,这三者之间相互关联,一同组成一个文件系统层面上的数据库;
c. 主数据文件:
i. 和C程序相似,一个数据库只能包含一个主数据文件;
ii. 默认扩展名为.mdf,即main data file的缩写;
iii. 是数据库文件的核心,包含一个数据库的启动信息,它指向整个数据库的起始位置,并包含指向其他数据文件的信息;
iv. 最主要就是完成iii.的功能,一般不用来存放数据和对象,数据和对象一般存放在此数据文件中,作用和main函数相似;
v. 但是对于一些很小的数据库来说可以不包含次数据文件,将所有数据和对象都放在主数据文件中,但是分主次文件是非常符合逻辑的,推荐分主次;
d. 辅助数据文件:
i. 也称为次数据文件;
ii. 默认后缀名为.ndf,即nth data file的缩写,表示n个数据文件,因为次数据文件可以有很多个;
iii. 一般用于存放用户的数据和对象;
注意:数据文件的实质内容就是指针,主数据文件中包含的是指向数据库启动位置以及其它数据文件的指针,而此数据文件中包含的是指向分散在各个磁盘上的数据和对象;
在文件系统级别上的实现就是这样的,但是在物理层面上的实现可能不是将数据保存在一个文件夹里而是可以分散到很多个磁盘上的,但是这些磁盘上的数据都由存放在一个文件里的指针维系整合在一起(是一种逻辑的、文件层面上的维系),因此可以查看这些数据文件它们也包含了磁盘上数据的大小而不仅仅只有这些指针的大小;
比如分配一个数据文件大小为6MB,你就可以到该文件所在的目录查看该文件的大小就是6MB,而不是指包含指针大小的一个很小的值,也就是说指针索引了磁盘空间上的数据和对象的大小;
!!!通常一个数据文件都是可以设定为可扩展的,但是扩展也是有上限的,比如Windows中就对单个文件的大小有一个上限要求,如果超出了这个上限要求的话,就可以通过增加次数据文件来继续对数据库进行扩展;
e. 事务日志文件:
i. 和之前的数据文件相关联,用于记录任何对数据库进行的操作信息;
ii. 同样,一个数据库可以有多个事务日志文件;
iii. 默认后缀为.ldf,即log data file的缩写,log就是日志的意思;
f. SQL Server 2008不强制要求以上三种文件一定要用这些默认的扩展名,但是使用这些扩展名是一个良好的习惯,是文件更加清晰,值得提倡;