杨铭
摘 要: Sql Server为用户提供了多个系统数据库,它们在数据库中都扮演着重要的角色。Sql Server数据库在逻辑上被组织成一个个数据对象,如表、视图、角色等,逻辑对象可被用户查看或操作;在物理上却是以文件的形式存放在磁盘中。本文介绍了Sql Server的系统数据库及数据库的逻辑结构和物理结构。
关键词: Sql Server 逻辑结构 数据文件 物理结构
一、系统数据库
在SQL Server系统中,数据库可分为“系统数据库”和“用户数据库”两大类。用户数据库是用户根据实际需要创建的数据库,而系统数据库则是SQL Server内置的,它们主要是用于系统管理。SQL Server中系统数据库主要有以下几个:
1.master数据库
master数据库是最重要的系统数据库,它记录SQL Server系统级的信息,包括系统中所有的系统配置信息、登录账号、所有数据库的信息、所有用户数据库的主文件地址、SQL server的初始化信息。因此,如果master数据库不可用,则SQL Server将无法启动。
2.tempdb数据库
tempdb数据库用于存放所有连接到系统的用户临时表和临时存储过程,以及SQL Server产生的其他临时性的对象。tempdb是SQL Server中负担最重的数据库,因为几乎所有的查询都可能需要使用它。
在SQL Server关闭时,tempdb数据库中的所有对象都被删除,每次启动SQL Server时,tempdb数据库里面总是空的。
默认情况下,SQL Server在运行时tempdb数据库会根据需要自动增长。不过,与其他数据库不同,每次启动数据库引擎时,它会重置为其初始大小。
3.model数据库
model数据库又叫做模板数据库,它是系统所有数据库的模板,这个数据库相当于一个模子,所有在系统中创建的新数据库的内容,在刚创建时都和model数据库完全一样。
如果SQL Server专门用作一类应用,而这类应用都需要某个表,甚至在这个表中都要包括同样的数据,那么就可以在model数据库中创建这样的表,并向表中添加那些公共的数据,以后每一个新创建的数据库中都会自动包含这个表和这些数据。当然,也可以在model数据库中增加其他数据库对象,这些对象都能被以后创建的数据库所继承。
4.msdb数据库
msdb数据库由SQL Server代理(SQL Server Agent)安排报警、作业,并记录操作员。
二、数据库的物理结构
数据库的物理表现是操作系统文件,即在物理上,一个数据库由一个或多个磁盘上的文件组成。
1.数据文件
在SQL Server系统中,一个数据库在磁盘上可以保存为一个或多个文件,我们把这些文件称为数据库文件。数据库文件分成三类:主数据文件、次数据文件、事务日志文件。这种物理结构只对数据库管理员是可见的,而对用户是透明的。
(1)主数据库文件
主数据库文件包含数据库启动信息,并指向数据库中的其他文件。用户数据库和对象可存储在该文件中。每个数据库只能有一个主数据库文件,文件扩展名为.mdf。
(2)次数据库文件
次数据库文件是可选的,次数据库文件可用于将数据库分散存储到多个磁盘中,每个数据库可以有零个或多个次数据库文件,次数据库文件扩展名为.ndf。
(3)事务日志文件
事务日志文件用于记录对数据库的各种操作情况,对数据库进行操作时,对数据库内容的更改将自动记录到该文件中。事务日志文件的扩展名为.ldf,一个数据库可以有一个或多个事务日志文件。
因此,一个数据库至少由两个文件组成个,即一个主数据库文件和一个事务日志文件。
2.数据库文件组
为了方便管理,可以将多个数据文件组织成为一组,称为文件组。每个文件组对应一个组名,可以将文件组中的文件存放在不同磁盘,以便提高数据库的访问性能。
在SQL Server中,文件组有两种类型。
(1)主文件组
主数据文件所在的组称为主文件组。在创建数据库时,如果用户没有定义文件组,系统会自动建立主文件组。当数据文件没有指定文件组时,默认都在主文件组中。
(2)次文件组
用户定义的文件组称为次文件组。如果次文件组中的文件被填满,那么只有该文件组中的用户表会受到影响。
在创建表时,不能指定将表放在某个文件中,只能指定将表放在某个文件组中。因此,如果希望将某个表放在特定的文件中,必须通过创建文件组实现。
3.数据库文件和文件组遵循的规则
(1)一个文件或文件组只能被一个数据库使用。
(2)一个文件只能属于一个文件组。
(3)事务日志文件不能属于文件组。
三、数据库的逻辑结构
逻辑上,一个数据库由若干个用户可视的对象构成,如表、视图、角色等,这些组件称为数据库对象。用户利用这些逻辑数据库的数据库对象存储或读取数据库中的数据,直接或间接地利用这些对象在不同应用程序中完成存储、操作和检索等工作。逻辑数据库的数据库对象可以从数据库服务器管理平台中查看。
参考文献:
[1]谭峤.SQL Server数据库性能优化研究[J].硅谷,2014(08).
[2]林元彦.SQL Server数据库性能分析与优化[J].电子技术与软件工程,2013(17).
[3]冯艳.SQL Server数据库运用及其性能优化分析[J].软件导刊,2012(03).