目录

SQL Server的存储结构

文件类型

数据文件

事务日志

创建数据库

创作不易,求关注,点赞,收藏,谢谢~


SQL Server的存储结构

SQL Server 是一个数据库管理系统,需要以有效方式存储高容量数据,要更好地理解SOL Server处理数据的方式,就需要了解数据的存储结构


文件类型

数据库在磁盘上是以文件为单位存储的,由数据文件和事务日志文件组成。一个数据库至少应该包含一个数据文件和一个事务日志文件。
数据库创建在物理介质(如硬盘)的NTFS分区或FAT分区的一个或多个文件上,它预先分配了将要被数据和事务日志所使用的物理存储空间。存储数据的文件叫作数据文件,数据文件包含数据和对象,如表和索引,存储事务日志的文件叫作事务日志文件(又称日志文件)。在创建一个新的数据库的时候,仅仅是创建了一个‘空壳”.必须在这个“空壳”中创建对象(如表等),然后才能使用这个数据库。主数据文件,主数据文件包含数据库的启动信息,指向数据库中的其他文件

每个数据库都有一个主数据文件,主数据文件的推荐文件扩展名是 .mdf
次要(辅助)数据文件,除主数据文件以外的所有其他数据文件都是次要数据文件。某些数据库可能不包含任何次要数据文件,而有些数据库则包含多个次要数据文件。次要数据文件的推荐文件扩展名是.ndf
事务日志文件:事务日志文件包含恢复数据库所有事务日志的信息。每个数据库必须至少为 有一个事务日志文件,当然也可以有多个,事务日志文件的推荐文件扩展名是.Idf

文件流(Filestream)数据文件:可以使基于SQL Server的应用程序能在文件系统中存储非结构化的数据,如文档、图片、音频、视频等。文件流主要将SOL Server数据库引擎和新技术文件系统(NTFS)集成在一起,它主要以varbinaryimax)数据类型存储数据。使用这个数据类型,非结构化数据存储在NTFS文件系统中,而SQL Server数据库引擎管理文件流字段和存储在NTFS格式文件系统中的实际文件.


数据文件

从更微观的角度来看,数据文件由若干个64KB大小的区(Extent)组成,每个区由8个连续页(Page)组成

SQL Server所能识别的最小存储单位被称为页.一个页的大小是8KB 它是SQL Sarver实际存储数据的单位,磁盘1/O操作在页级执行。
一个区由8个物理上连续的页(即64KB)组成用来有效地管理页。 所有的页都存储在区中SOlServer中创建了表以后 对象就被分配到区中,较小的表可以和其他数据索对象在一个区中

事务日志

事务是一个或多个T-SQL(Transact-SOL)语句的集合,相当于一个“原子”任务,要么执行成要么完全不执行。
每个SQL Serve 数据库都具有事务日志,用于记录所有事务的SQL语句、当发生数据灾难时通过事务日志记录的T-SQL语句可以恢复数据库。
假如系统出现故障,SQL Server将使用事务日志前滚(重做)所有已确认的事务,回滚(撤销)所有未完成的事务。

  • 事务日志的存储不是以页为单位,而是以一条条的大小不等的日志记录为单位。

创建数据库

在SOL Server 2016中创建名为“abcd”的数据库。
具体操作步骤如下所述。

  1. 在对象资源管理器中,右击‘数据库”节点,在弹出的快捷菜单中选择“新建数据库”命令,打开”新建数据库”窗口,设置数据库名称为”abcd”,指定数据库的所有者,默认创建数据库的用户将成为该数据库的所za
  2. 在‘初始大小”列中没置初始值,在“自动增长/最大大小列中设置自动增长值。
  3. 在路径列中设置文件的保存目录 单击该列中的按钮,打开“定位文件夹
    选择保有文件的目录
  4. 当设置完数据库名称和其他选项后,单击“确定”按钮,一个新的数据库就建好了,它生
    成了两个文件,一个是包含数据的.mdf文件,另一个是包含日志信息的.ldf文件。

如果不需要改变以上各列的设置,可以保持默认值。SQL Server 会通过复制 model 数据库中的没置来指定默认值,并利用这些默认值来创建一个数据库。只有当数据库管理员真的希望所有新的数据库都拥有同样的设置,同样的数据库用户和同样的数据库角色的时候,才会对model数据库进行更改。
若要创建数据库,必须先确定数据库的名称、所有者(创建数据库的用户)、大小,以及存储该数据文件和事务日志文件的位置。所以,在创建数据库之前,需要考虑如下事项

  • 创建数据库的权限默认授予sysadmin和dbcreator服务器角色成员,服务器角色用于向用户
    授予服务器范围内的安全特权
  • 创建数据库的用户将成为该数据库的所有者。
  • 考虑数据文件及事务日志文件的放置位置。
  • 合理估计数据库的大小和增长值。

作为一名数据库管理员,可能会处理一些对数据库的特殊要求,所以需要为数据库设置数据库
级选项,而不采用创建时的默认值。这些选项的修改可以在数据库属性-cbcd窗口的选项界
面中进行

创作不易,求关注,点赞,收藏,谢谢~