SQL Server数据库概述
SQL Server分类:
系统数据库:存放维护系统正常运行的信息(DBMS本身使用)
用户数据库:存放用户自己的信息(用户开发系统使用)
系统数据库:
Master(核心):最重要的数据库,用于记录所有系统级的信息
Msdb:保存关于报警,作业,操作员等信息(代理即系统服务使用)
Model:包含所有用户数据库的共享信息。当用户创建数据库时,系统自动将Model数据库内容复制到新建数据库
Tempdb:临时数据库,用于存储用户创建的临时表,用户声明的变量及用户定义的游标数据等
SQL Server组成:
SQL Server将数据库映射为一组操作系统文件
文件分两类:
(数据和日志信息不混合在同一文件中,一个文件只由一个数据库使用)
- 数据文件
包含数据和对象,如:表,索引,存储过程和视图等
用于存放数据库的系统信息
(1)主要数据文件:
①推荐扩展名为:.mdf
②包含数据库的系统系统信息,可存放用户数据
③每个数据库都有且只有一个主要数据文件
④是为数据库创建的第一个数据文件
⑤不能小于3MB
(2)次要数据文件
①推荐扩展名:.ndf
②一个数据库可包含0–n个次要数据文件
③可与主要数据文件存放不同地方 - 日志文件
包含恢复数据库中的所有事务需要的信息
①推荐扩展名:.ldf
②用于存放恢复数据库的所有日志信息
③每个数据库有1–n个日志文件
数据库的存储分配
数据库中数据的存储分配单位是数据页。
一页是一块8KB(其中8060字节存数据,132字节存系统信息)的连续磁盘空间
页头(96B),行数据,各行偏移字节
第一行偏96字节
第n行为:96B+n(一行数据大小)。*
页是存储数据的最小空间分配单位
不允许表的一行数据存储在不同页,即行不跨页存储
(除数据类型为:varchar(max),nvarchar(max),text,ntext,varbinary(max),imag)
数据库文件组
为方便分配管理数据文件,相关数据文件组织起来,放置到一个文件组
在一个数据库中可定义多个文件组,文件放到不同文件组中(类似文件夹)
两类型:
(1)主文件组(PRIMARY)
系统定义好的,包含数据文件和任何没有明确分配给其他文件组的其他文件
系统表所有页均分配在主文件组中
(2)用户定义文件组
用户可创建自己的文件组,以将相关数据文件组织起来管理分配
通过在CREATE DATABASE 或ALTER DATABASE 中的FILEGROUP关键字定义
PS.日志文件不包括在文件组内,一个文件不可为多个文件组成员
数据库文件属性
文件名及其位置:每个文件都有一个逻辑文件名和物理文件名及物理存储位置
初始大小:指定文件初始大小
增长方式:指定文件是否自动增长
最大大小:指定文件增长的最大空间限制