文档介绍:第2章数据库文件管理
数据库存储结构
创建数据库
修改数据库
压缩数据库和数据文件
删除数据库
检索数据库信息
数据库存储结构
数据库文件和文件组
数据库文件的空间分配
数据库规划
数据库文件和文件组
(Primary):
存放数据。每个数据库都必须有且仅有一个主数据文件。。包含的系统表格记载数据库中对象及其他文件的位置信息。
(Secondary):
存放数据。。可有可无。主要在一个数据库跨多个硬盘驱动器时使用。
(Transaction Log):
存放事务日志。每个数据库必须有一个或多个日志文件。。记录数据库中已发生的所有修改和执行每次修改的事务。
数据库文件和文件组
(文件的逻辑集合):
对文件进行分组,以便于管理数据的分配或配置。
文件组对组内的所有文件都使用按比例填充策略。
事务日志文件不能属于文件组。
三种类型的文件组:主文件组(primary)、用户定义的文件组和默认的文件组(default)。
包含主数据文件,存放系统表格等。
用来存放任何没有指定文件组的对象。
SQL Server2000至少包含一个文件组,即主文件组。
系统数据库和示例数据库
SQL Server 2000 内部创建和提供了一组数据库,有4个系统数据库(master、msdb、model、tempdb)和两个附带的示例数据库(pubs、northwind)。
master数据库:记录了所有系统信息,包括所有的其他数据库、登录帐号和系统配置。是最主要的系统数据库。
msdb数据库:是SQL Server Agent服务使用的数据库,用来执行预定的任务,如数据库备份和数据转换、警报和作业等。
model 数据库:样板数据库。为用户数据库提供样板。
tempdb数据库:也是从model拷贝而来。存储了SQL Server实例运行期间SQL Server需要的所有临时数据。
系统数据库和示例数据库
pubs和northwind数据库:是两个用户数据库,系统附带的,可以删除,也可以恢复。
其中pubs示例数据库以一个图书出版公司为模型,northwind示例数据库以一个名为Northwind Traders的虚构公司为模型,存放了一些公司的销售数据,该公司从事世界各地的特产食品进出口贸易。
示例数据库的恢复:可以使用SQL Server安装中Install目录下的文件重新进行安装恢复。
数据库文件的空间分配
在创建数据库前需估算所建数据库的大小及增幅。定义一个恰当的数据库大小。计算依据:
数据库的最小尺寸必须等于或大于model数据库大小。
估算数据库的大小,在SQL Server 2000中最基本的数据存储单元是页,每页的大小为8KB(8192字节),每页除去96字节的头部(用来存储有关的页信息,如页类型、可用空间、拥有页的对象的对象ID等),剩下的8096字节(8192-96=8096)用来存储数据。
默认情况下事务日志文件的大小是数据库文件大小的25%。
数据库文件的空间分配
SQL Server 2000 数据库的数据文件中的八种页类型:
数据页:用于存储数据库数据,包含数据行中除text、ntext和image数据外的所有数据。
索引页:用于存储索引数据。
文本/图像页:用于存储text、ntext和image数据。
全局分配页:用于存储扩展盘区分配的信息。
页面剩余空间页:用于存储页剩余空间的信息。
索引分配页:用于存储页被表或索引使用的扩展盘区信息。
大容量更改映射表:有关自上次执行BACKUP LOG语句后大容量操作所修改的扩展盘区的信息。
差异更改映射表:有关自上次执行BACKUP DATABASE语句后更改的扩展盘区的信息。
数据库文件的空间分配
数据页包含数据行中除text、ntext和image数据外的所有数据,text、ntext和image数据存储在单独的页中。在数据页上,数据行紧接着页首按顺序放置。在页尾有一个行偏移表。在行偏移表中,页上的每一行都有一个条目,每个条目记录那一行的第一个字节与页首的距离。行偏移表中的条目序列与页中行的序列相反。
扩展盘区是一种基本单元,可将其中的空间分配给表和索引。一个扩展盘区是8个邻接的页(或64KB)。这意味着 SQL Server 2000 数据库每兆字节有16个扩展盘区。
数据库文件的空间分配
例:假设某个数据库中只有一个表,该表的每行记录是500字节,共有10000行数据。试估计此数据库的大小。
分析:由于一个数据页最多可存放8096字