§ 2.SQL Server 数据库 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
一 . 数据库的储存结构
1. 数据对象 : 一其有 8 种
表 (Table)/ 索引 (Index)/ 视图 (Views)/ 用户自定义的数据类型 / 默认 (Default)
约束 (Constraints)/ 触发器 (Triggers)/ 存储过程 (Store procedures)
2. 页面 (Page) 和范围 (Extent)
页面 (Page) : 是 SQL Server 中数据存储的最小单位 . 数据库中的所有数据信息都存储在页面上 . 一个页面的大小是 8kB(8192B), 每个页面都包括一个 96 字节的页面头 (Page Head), 页面头被 SQL Server 用来唯一地标识存储在页面中的数据信息 .( 日志文件不包括在页面中 ).
范围 (Extent) : 是 SQL Server 为表和索引分配空间的最小单位 . 一个范围是由 8 个相连的页面所组成 , 即 64kB.
注 :1) 当创建一个数据库对象 ( 如一个表 ) 时 ,SQL Server 会自动地以范围为单位给它分配空间 . 每一个范围只能包含一个数据库对象 . 范围是表和索引分配空间的单位 .( 如果我们在一个新建的数据库中 , 创建了两个表和两个索引 , 并且表中插入了一条刻录 , 那么 , 总共占用 4*64kB = 256kB 硬盘空间 .
2) 数据文件和日志信息不会放在同一文件上 .
3) 所有的 SQL Server 数据库都包含这些数据结构 . 简单地讲 , 一个数据库是由文件组成的 , 文件是由范围结成的范围是由页面组成的 .
数据库 |
数据文件(.mdf) |
日志文件(.ldf) |
表,索引--范围(8个连续页面) |
数据页面(8KB) |
<?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" />
3. 文件
主文件 : 主文件是数据库的起点并指向数据库的其余文件 . 每一个数据库有一个主数据文件 . 主数据文件的扩展名为 '.mdf'.
次文件 : 除主文件之外的所有数据文件组成 , 扩展名为 '.ndf'.
事务日志文件 : 含有恢复数据库的所有日志信息 . 每个数据库至少要有一个日志文件 , 扩展名为 '.ldf'.
4. 文件组 : 是为了管理和数据分配的目的将文件组织在一起的 .
主文件组 : 包含主数据文件和任何其它不属于另一个文件组的文件 . 系统表的所有页面都分配在上文件中 .
用户定义的文件组 : 是在 [Create database] 或 [Alter database] 语句中使用 FileGroup 关键字指定的任何文件组 .
默认文件组 : 默认文件组包含所有在创建时没有指定文件组的表和索引的页面 . 在每个数据库中 , 同一时刻只能有一个默认文件组 . 如果没有指定默认文件组 , 那么系统将主文件组作为默认文件组 .
使用文件组的优点 : 可以提高数据库的查询性能 , 如果数据库超过单个文件允许的最大值 , 可以使用次数据文件使数据继续增长 .
5. 文件和文件组规则 :
1) 一个文件或文件组不能用于多个数据库 , 只能用于一个数据库 .
2) 一个文件只能是一个文件组成员 .
3) 一个数据库的数据信息和事务日志信息不能放在同一个文件或文件组中 , 数据文件和日志文件总是分开的 .
4) 事务日志文件不能成为任何文件组的成员 .
二 .SQL Server 系统数据库
1.master 数据库 : 包含了 SQL Server 系统中的所有系统级信息 . 这些信息包括 : 磁盘空间及其设备的分配和用法 , 系统配置参数 , 登录账号 , 是否存在其它数据库以及是否存在其它的 SQL Server. 建立其他数据库 , 改变配置或修改登录账号等所有操作都将修改 master 数据库 . 它禁止用户直接访问 . 要确保对 master 数据库的备份 .
2.tempdb 数据库 : 是一个临时数据库 . 它只是为临时表和其它临时存储需求提供一个工作空间 .
3.model 数据库 : 只是一个数据库模板或原型 . 它包含属于每个用户数据库的系统表 . 每当建立一个新数据库时 , 即建立了 model 的一个副本 .
4.msdb 数据库 : 用来调试报警和任务并记录操作符 .
三 .SQL Server 命名规则
1. 字符长度可以从 1 到 30.
2. 名称的第一个字母必须是一个字母或者是下列字符中的某一个 :_( 下划线 ),@(at),#( 井号 ).
3. 在中文 SQL Server2000 中 , 可以直接使用中文名字 .
4. 在首字母后的字符可以是字母 , 数字 , 或都前面规则中提到的符号 .
5. 名称当中不能有任何空格 , 除非将名字用引号引起来 .
转载于:https://blog.51cto.com/wnight88/141530