"SQL Server 7.0数据库系统体系结构(上)"
本文档主要介绍了SQL Server 7.0数据库系统的体系结构,包括数据库的物理存储结构、客户机/服务器体系结构等方面。
一、数据库结构
SQL Server数据库由多个操作系统文件组成,每个数据库由多个操作系统文件组成。从逻辑上看,SQL Server数据库由不同的数据库对象组成,包括表、视图、索引、规则、约束、缺省、存储过程和触发器等。普通用户操作时,通过数据库对象访问数据库,而不是直接操作数据库文件。
二、物理存储结构
SQL Server 7.0中的每个数据库由多个操作系统文件组成,数据库的所有数据、对象和数据库操作日志均存储在这些操作系统文件中。根据这些文件的作用不同,可以将它们划分为以下三类:
* 主数据文件:每个数据库有且只有一个主数据文件,它是数据库和其他数据文件的起点。主数据文件的扩展名一般为.mdf。
* 辅数据文件:用于存储主数据文件中未存储的数据,一个数据库可以没有辅数据文件,但也可以同时拥有多个辅数据文件。辅数据文件的扩展名一般为.ndf。
* 日志文件:存储数据库的事务日志信息,当数据库损坏时,管理员可以使用事务日志恢复数据库。日志文件的扩展名一般为.ldf。
每个SQL Server数据库至少由两个文件组成:主数据文件和日志文件。为了管理方便,管理员可以将多个数据库文件组织为一组,称做数据库文件组。在建立数据库时,管理员能够控制文件组中各数据库文件的存储位置。
三、文件组管理
SQL Server采用比例填充策略使用文件组中每个文件的存储空间。例如,如果一个服务器上有四个可供数据库使用的硬盘,它们提供给数据库的最大存储空间分别为1GB、2GB、300MB和1GB,管理员可以在前三个硬盘上建立数据文件组,在第四个硬盘上建立数据库的日志文件。即将日志数据写入第四个硬盘,而数据库数据则写入前三个硬盘。在写入数据时,SQL Server根据文件组中每个文件的自由空間大小按比例分配写入各个数据文件的数据量,即1:2:3。这样将一次磁盘操作同时分配给多个硬盘控制器,从而减轻每个磁盘的负载,提高写入速度,同时也保证文件组中每个文件的空间基本上同时用尽。
四、数据文件组类型
SQL Server的数据文件组有以下三种类型:
* 主文件组:其中包含数据库的主数据文件和不属于其他文件组的数据文件,数据库系统表的所有页面存储在主文件组中。
* 用户定义文件组:数据库创建语句(CREATE DATABASE)或修改语句(ALTER DATABASE)中使用FILEGROUP关键词所指定的文件组。
* 默认文件组:在创建数据库对象时,如果没有为它们指定文件组,它们将被存储在默认文件组中。固定数据库角色dh.owner成员可以使用ALTER DATABASE语句修改数据库中的默认文件组设置,但每个数据库同时最多只能有一个默认文件组。当数据库中没有指定默认文件组时,主文件组将被作为默认文件组使用。