sql-server的系统数据库

首次载入SQL Server时,将从4个系统数据库开始:

l    master;

l    model;

l    msdb;

l    tempdb。

要让服务器正确运行,需要安装所有这些数据库。(实际上,没有它们,服务器根本无法运行。)此后,根据你所做的安装选择,事情将有所不同。可能会看到下面这些示例数据库:

l    AdventureWorks(示例数据库);

l    AdventureWorksDW(Analysis Services用到的示例)。

1.master数据库

所有的SQL Server都有master数据库,无论什么版本或者如何定制修改。master数据库中保存着一类特殊的表(系统表),它们从整体上管理系统。例如,当你在服务器上创建新的数据库时,将向master数据库的sysdatabases表中加入一条新的记录。所有的扩展存储过程和系统存储过程,无论它们将用在哪一个数据库中,都存储在master数据库中。显然,由于几乎所有描述服务器的信息都存储在master数据库中,因此该数据库对于整个系统是至关重要的,并且不能删除。

系统表(包括master数据库中的系统表)只在必要时才可能非常重要。随着微软不断提供越来越多的其他方式来访问系统级别的信息,直接使用系统表的情形越来越少。

没有仔细阅读上面一段的读者可能想去看看用用系统表。千万别去!以任何形式使用系统表都是充满危险的。微软公司在至少最近3个版本的SQL Server里劝告不要使用系统表。他们绝对不保证版本间master数据库的兼容性——实际上,他们是会改变master数据库的。对master数据库中的对象进行升级是极大的错误。一定要记住,以任何方式对这些表进行改动都是想让SQL Server失去作用。庆幸的是,可以使用一些替代的方法(例如系统函数、系统存储过程和信息模式视图)来获取存储在这些系统表中的大量元数据。

2.model数据库

model数据库的命名十分恰当,这一名称说明它是建立副本所基于的模型。model数据库为创建新的数据库提供模板。这意味着,如果你愿意,当想要改变标准的、新建的数据库时,可以修改model数据库。例如,可以加入一组审计表,使得创建的所有数据库中都包含这些表。也可以放进一些用户组,这样在系统上新建的所有数据库中都将复制它们。注意,由于model数据库是所有其他数据库的模板,因此该数据库是必需的,且必须留在系统上,不可删除。

修改model数据库时,需要紧记一些事情。首先,新建的任何数据库,至少与model数据库一样大,即如果把model数据库的大小更改为100 MB,那么将无法创建小于100 MB的数据库。此外还有其他一些类似的隐患。因此,对于90%的安装,我都强烈建议不要修改该数据库。

3.msdb数据库

msdb是SQL代理过程存储系统任务的地方。如果计划在夜间对数据库进行备份,那么在msdb中将有一条记录。如果安排一个一次性执行的存储过程,那么同样在msdb中会有一条记录。

4.tempdb数据库

tempdb是服务器的一个关键的工作区域。在执行复杂的或大量的查询时,如果SQL Server需要创建中间表来完成,那么SQL Server将在tempdb中进行。在创建临时表时,尽管你认为是在当前数据库中创建的,但实际上是创建在tempdb中的。当需要临时存储数据时,数据很可能是存储在tempdb中的。

tempdb与其他数据库有很大的不同,这不仅因为tempdb中的对象是临时的,而且,tempdb自身也是临时的。每次启动SQL Server时,tempdb是系统中唯一完全重新创建的数据库。

从技术上说,实际上你可以自己在tempdb中创建对象——但我强烈建议不要这样做。可以从系统中任何你有权使用的数据库里创建临时对象——创建的临时对象将存储在tempdb中。直接在tempdb中创建对象,除了带来在数据库间引用的混乱外,没有任何好处。这是又一个“别去做”的事情。

5.AdventureWorks

微软公司在2005版本之前的SQL Server中就已经包含了不少示例。不过早期的示例有缺点。例如,示例中包含一些糟糕的设计实践。(对于AdventureWorks是否具有同样的问题,我先不做评判。但AdventureWorks试图改善这一问题。)此外,它们过于简单化,只注重说明某些数据库概念,而不是把重点放在作为一个产品的SQL Server上,或者放在作为一个整体的数据库上。

从Yukon(这是现在的SQL Server 2005的内部代号)开发的最初阶段,微软公司就明白需要一个更稳定、更强健的示例数据库,这个数据库要尽可能地像一个产品。AdventureWorks就是这种努力下的产物。对于AdventureWorks,你听到的多半是我抱怨它对于初级用户太过复杂,但它实在是太炫目了,简直是一个杰作。好吧,即便它实际上并非面面俱到,但也算得上是相当完备的示例了,它有更真实的数据量、更复杂的结构以及用以展示大多数产品功能的组成部分。从这种意义上说,它是非常了不起的。

6.AdventureWorksDW

AdventureWorksDW是Analysis Services的示例。(DW代表数据仓库,它是作为大多数Analysis Services方案基础的一种数据库。)关于示例数据库最棒的是,微软公司很有远见地把事务数据库示例同分析示例结合在一起,给出展示二者一起工作的一套完整的示例。

决策支持数据库超出了本书的讲述范围,因而不会使用到该数据库,但是在你开始学习了解Analysis Services时请想到它。看看两个数据库间的区别。它们都是为同一个虚构的公司服务的数据库,不过它们的用途各不相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值