SQL Server:数据库对象


    在SQL Server 2008的数据库中,常包含许多对象,列举以下:数据库

►数据库安全

    见博文:《SQL Server:数据库介绍服务器

 

►事务日志架构

    实际上,任意数据库的更改起初不进入数据库自己,而是不断地被写入到事务日志。。在后面的某个时间点上,数据库发出检查点,就是在该事件点,日志中全部的更改才被传到实际的数据库文件。数据库设计

数据库为随机访问配置,可是日志是天然连续的。数据库文件的随机访问特色容许快速访问,而日志的连续特征又使得发生的事件可按照顺序来跟踪。日志不断积累已经确认了的更改,而且一次性地将几回更改写入到物理数据库文件。函数

[注]:日志是数据进入磁盘上的最早位置,且稍后会被传到更实际的数据库。须要数据库文件和事务日志一块儿来完成数据库功能。spa

 

►表(最基本的数据库对象).net

    表示包含数据库中全部数据的数据库对象,由称为域的数据(列)和实体数据(行)构成,用于组织和存储数据。设计

    数据库中实际的数据都存储在表中。日志

    表的定义也包含了描述表中包含数据的类型的元数据(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中,大部分其余对象(但不是全部)为数据库对象的子集。