在SQL Server 2008的数据库中,常包含许多对象,列举如下:
►事务日志
实际上,任意数据库的更改起初不进入数据库本身,而是不断地被写入到事务日志。。在后面的某个时间点上,数据库发出检查点,就是在该事件点,日志中所有的更改才被传到实际的数据库文件。
数据库为随机访问配置,但是日志是自然连续的。数据库文件的随机访问特点允许快速访问,而日志的连续特征又使得发生的事件可按照顺序来跟踪。日志不断积累已经确认了的更改,并且一次性地将几次更改写入到物理数据库文件。
[注]:日志是数据进入磁盘上的最先位置,且稍后会被传到更实际的数据库。需要数据库文件和事务日志一起来完成数据库功能。
►表(最基本的数据库对象)
表示包含数据库中所有数据的数据库对象,由称为域的数据(列)和实体数据(行)构成,用于组织和存储数据。
数据库中实际的数据都存储在表中。
表的定义也包含了描述表中包含数据的类型的元数据(metadata,数据描述信息)。每一列具有该列可存储数据类型的一组规则。表中任一列中的数据违反了规则,系统会拒绝插入一行,或拒绝对已有行进行更新,或者禁止删除行。
►索引
索引是仅在特定表或视图架构内存在的对象。索引是一个单独的、物理的数据库结构。它是依赖于表建立的,在数据库中索引使数据库程序无须对整个表进行扫描,以某一特定方式排序的查找(或键)值。使用索引是快速查找数据库中实际信息的一种方法。
利用索引可以加速信息的查找。索引可分为如下两类:
Ю群集索引:每一个只能有一个群集索引。群集索引对应的表按照其索引进行物理排序。
Ю非群集索引:每一个表可以有多个非群集索引。非群集索引是让我们找到数据的其他值。
[注]:具有索引的视图(索引视图)必须在有非群集索引之前至少有一个群集索引。
►文件组
数据库中所有的表及其他对象(日志除外)要存储在一个文件中。该文件是一些所谓的主要文件组的成员。SQL Server允许定义32000个辅助文件。这些文件可以加入到主要文件组中,或者作为一个或多个辅助文件组的一部分创建。仅能有一个主要文件组,可以有多达255个辅助文件组。
文件组是SQL Server 2008数据文件的一种逻辑管理单位,它将数据库文件分成不同的文件组,方便于对文件的分配和管理。
文件组主要分为以下两种类型:
Ю主文件组:包含主要数据文件和任何没有明确指派给其他文件组的文件。系统表的所有页都分配在主文件中。
Ю用户定义文件组:主要是在CREATE DATABASE或ALTER DATABASE语句中,使用FILEGROUP关键字指定的文件组。
每个数据库中都有一个文件组作为默认文件组运行,默认文件组包含在创建时没有指定文件组的所有表和索引的页。在没有指定的情况下,主文件组作为默认文件组。
对文件进行分组时,一定要遵循如下文件和文件组的设计规则:
Ю文件只能是一个文件组的成员
Ю文件或文件组不能由一个以上的数据库使用
Ю数据和事务日志信息不能属于同一文件或文件组
Ю日志文件不能作为文件组的一部分,日志空间与数据空间分开管理
[注]:系统管理员在进行备份操作时,可以备份或恢复个别的文件或文件组,而不用备份或恢复整个数据库。
►数据库关系图
数据库关系图是数据库设计的可视表示。它包括了各种表、每一张表的列名以及表之间的关系。
►视图
视图是从一张或多张表中导出的表,也称虚拟表,是用户查看数据表中数据的一种方式。标准包括几个被定义的数据列与数据行,其结构和数据建立在对表的数据查询的基础之上。
事实上视图仅仅是存储在表中的数据的一个预先计划的映射和表示。视图以查询的形式存储在数据库中,这种查询需要从一个或多个表中获取一些列的数据。
应用视图的主要目的是控制用户所要显示的数据。
►存储过程
存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集合(包括查询、插入、删除和更新等操作),经编译后以名称的形式存储在SQL Server服务器端的数据库中,由用户通过指定存储过程的名字来执行。当这个存储过程被调用执行时,这些操作也会同时执行。
►用户自定义函数
用户自定义函数(UDF)返回值的数据类型包括大部分SQL Server数据类型。不包括的返回值类型有text、ntext、image、cursor和timestamp。SQL Server传送到UDF的所有变量都是按值传递。
►用户和角色
用户等价于登录名。该对象表示登录SQL Server的标识符。登录SQL Server的任何人都映射(直接过间接映射,取决于使用的安全模型)到一个用户。用户依次属于一个或多个角色。SQL Server中可以直接赋予用户或角色执行某种操作的权限,一个或多个用户可属于同一角色。
►规则
规则和约束都是限制插入到表中的数据类型的信息。如果更新或插入记录违反了规则,则插入或更新操作被拒绝。此外,规则可用于定义用户自定义数据类型上的限制条件。与约束不同,规则不限于特定表。他们是独立对象,可绑定到多个表,或者甚至绑定到特定数据类型。
►默认值
SQL Server中有两种类型的默认值,包括对象本身的默认值,以及描述表中特定列的元数据的默认值(非真正对象)。当插入一条记录时,如果没有提供该列的值,且该列具有其默认值,则自动插入默认值。
►全文目录
全文目录是数据映射,用于加速列中特定文本块的搜索,该列需要启动全文搜索功能。在SQL Server 2008以前,全文目录存储在数据库外部,因此导致一些重大的备份和恢复问题。从SQL Server 2008开始,全文目录已集成到主数据库引擎和存储机制中。
►用户自定义数据类型
用户自定义数据类型是系统定义数据类型或.NET程序集中方法定义的复杂数据类型的扩展。用户自定义数据类型几乎可定义任意数据。
在特定的SQL Server中,数据库实际上是最高层对象。在SQL Server中,大部分其他对象(但不是所有)为数据库对象的子集。