是采用数据库技术的计算机系统,是由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬 件) 和 软件平台(软件) 五部分构成的运行实体。其中数据库管理员(DataBase Administrator,简称DBA)是对数据库进行规划、设计、维护和监视等的专业管理人员,在数据库系统中起着非常重要的作用。
是数据库系统的一个重要组成部分,是位于用户与操作之间的一层数据管理软件,负责数据库中的数据组织、数据操纵、数据维护和数据服务等。
主要具有如下功能:
为数据模式的物理存取与构建提供有效的存取方法与手段。
为用户使用数据库的数据提供方便,如查询、插入、修改、删除等以及简单的算术运算和统计。
用户可以通过数据库管理系统提供的数据定义语言(Data Definition Language,简称DDL)方便地对数据库中的对象进行定义。
数据库管理系统统一管理数据库的运行和维护,以保障数据的安全性、完整性、并发性和故障的系统恢复性。
数据库管理系统能够完成初始数据的输入和转换、数据库的转储和恢复、数据库的性能监视和分析等任务。
关系数据库是支持关系模型的数据库。关系模型由关系数据结构、关系操作集合和完整性约束三部分组成。
在关系模型中数据结构单一,现实世界的实体以及实体间的联系均用关系来表示,实际上关系模型中数据结 构就是一张二维表。
关系操作分为关系代数、关系演算、具有关系代数和关系演算双重特点的语言(SQL语言)。
完整性约束包括实体完整性、参照完整性和用户定义的完整性约束。
在SQL Server 2012的数据库中,表、视图、存储过程和索引等具体存储数据或对数据进行操作的实体都被称为数据库对象。
表是包含数据库中所有数据的数据库对象,是SQL Server数据库中最重要的逻辑对象。它由行和列组成,用于组织和存储数据。
表中每列称为一个字段,字段具有自己的属性,如字段类型、字段大小等,其中字段类型是字段最重要的属性,它决定了字 段能够存储哪种数据。
SQL规范支持5种基本字段类型:字符型、文本型、数值型、逻辑型和日期时间型。
索引是一个单独的、物理的数据库结构。它是依赖于表建立的,在数据库中索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需的数据。
视图是从一张或多张表中导出的表(也称虚拟表),是用户查看数据表中数据的一种方式。表中包括几个被定义的数据列与 数据行,其结构和数据建立在对表的查询基础之上。视图中保存的不是数据,而是表的查询语句select。
存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集合(包含查询、插入、删除和更新等操作),经编译后以名称的形式存储在SQL Server服务器端的数据库中,由用户通过指定存储过程的名字来执行。当这个存储过程被调用执行时,这些操作也会同时执行。
SQL Server 2012数据库主要由文件和文件组组成。数据库中的所有数据和对象(如表、存储过程和触发器)都被存储在文件中。
主要分为以下3种类型
存放数据和数据库的初始化信息。每个数据库有且只有一个主要数据文件,默认扩展名是 .mdf。
存放用于恢复数据库的所有日志信息。每个数据库至少有一个事务日志文件,也可以有多个事务日志文件,默认扩展名是 .ldf。
存放除主要数据文件以外的所有数据文件。有些数据库可能没有次要数据文件,也可能有多个次要数据文件,默认扩展名是 .ndf。
SQL Server 2012不强制使用.mdf、.ndf 和.ldf文件扩展名,但使用这些扩展名可以帮助标识文件的用途。
文件组是SQL Server 2012数据文件的一种逻辑管理单位,它将数据库文件分成不同的文件组,方便于对文件的分配和管理。
文件组主要分为以下两种类型:
包含主要数据文件和任何没有明确指派给其它文件组的文件。系统表的所有页都分配在主文件组中。
主要是在CREATE DATABASE或ALTER DATABASE语句中,使用FILEGROUP关键字指定的文件组
每个数据库中都有一个文件组作为默认文件组运行,默认文件组包含在创建时没有指定文件组的所有表和索引的页。在没有 指定的情况下,主文件组作为默认文件组。
对文件进行分组时,一定要遵循文件和文件组的设计规则: 文件只能是一个文件组的成员。
文件或文件组不能由一个以上的数据库使用。
数据和事务日志信息不能属于同一文件或文件组。
日志文件不能作为文件组的一部分。日志空间与数据空间分开管理。
注意:系统管理员在进行备份操作时,可以备份或恢复个别的文件或文件组,而不用备份或恢复整个数据库
SQL Server 2012的安装程序在安装时默认将建立4个系统数据库(Master、Model、Msdb和Tempdb)。下面分别进行介绍:
master数据库是SQL Server 2012中最重要的数据库。记录 SQL Server 实例的所有系统级信息,包括实例范围的元数据、端点、链接服务器和系统配置设置。
tempdb是一个临时数据库,用于保存临时对象或中间结果集。
用作 SQL Server 实例上创建的所有数据库的模板。对 model 数据库进行的修改(如数据库大小、排序规则、恢复模式和其他数据库选项)将应用于以后创建的所有数据库。
用于 SQL Server 代理计划警报和作业。
标识符命名规则
在SQL Server中,服务器、数据库和数据库对象(如表、视图、列、索引、触发器、过程、约束和规则等)都有标识符, 数据库对象的名称被看成是该对象的标识符。大多数对象要求带有标识符,但有些对象(如约束)中标识符是可选项。
对象标识符是在定义对象时创建的,标识符随后用于引用该对象,下面分别对标识符的格式及分类进行介绍。
标识符格式
在定义标识符时必须遵守以下规定:
标识符的首字符必须是下列字符之一
统一码(Unicode)2.0标准中所定义的字母,包括拉丁字母a-z和A-Z,以及来自其他语言的字符.下划线“_”,符号“@”或者数字符号“#”。
在SQL Server中,某些处于标识符开始位置的符号具有特殊意义。以“@”符号开始的标识符表示局部变量或参数;以一个数字符号“#”开始的标识符表示临时表或过程,如表“#gzb”就是一张临时表;以双数字符号“##”开始的标识符表示全局临时对象,如表“##gzb”则是全局临时表。
注意:
某些Transact-SQL函数的名称以双at符号(@@)开始,为避免混淆这些函数,建议不要使用以@@开始的名称。
标识符的后续字符可以是以下3种
统一码(Unicode)2.0标准中所定义的字母。
来自拉丁字母或其他国家/地区脚本的十进制数字。
“@”符号、美元符号“$”、数字符号“#”或下划线“_”。
标识符不允许是Transact-SQL的保留字
不允许嵌入空格或其他特殊字符