SQL Server数据库基本理论
逻辑数据库:
SQL Server数据库,是存储数据的容器,是一个存放数据的表和支持这些数据的存储、检索、安全性和完整性的逻辑成分所组成的集合。
1、 数据库对象命名
(1) 完全限定名
,即对象的全名,包括:服务器名、数据库名、数据库架构名和对象名。格式为:server.database.schema_name.object_name
在SQL Server上创建的每一个对象都必须有一个唯一的完全限定名
。
(2)部分限定名
,即省略全名中的某些部分,对象全名的四个部分中的前三个部分均可以被省略,当省略中间的部分时,圆点符“.”不可省略
。把只包含对象完全限定名中的一部分的对象名称为部分限定名。
一般格式为: [ [ [ server. ] [ database ] . ] [ schema_name ] . ] object_name
在部分限定名中,未指出的部分使用以下默认值:
服务器:默认为本地服务器。
数据库:默认为当前数据库。
数据库架构名:默认为dbo。
例如,以下是一些正确的对象部分限定名:
server.database.object /*省略架构名*/
server.scheme.object /*省略数据库名*/
database.scheme.object /*省略服务器名*/
server.object /*省略架构名和数据库名*/
scheme.object /*省略服务器名和数据库名*/
object /*省略服务器名、数据库名和架构名*/
2、 数据库对象简介
表(table):“表”是 SQLServer 中最主要的数据库对象,
它是用来存储和操作数据的一种逻辑结构,
“表”由行和列组成,因此也称之为二维表。“表”是在日常工作和
生活中经常使用的一种表示数据及其关系的形式。
视图(view):视图是从一个或多个基本表中引出的表,数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。
索引(index):索引是一种不用扫描整个数据表就可以对表中的数据实现快速访问的途径,它是对数据表中的一列或者多列的数据进行排序的一种结构
。
表中的记录通常按其输入的时间顺序存放,这种顺序称为记录的物理顺序。为了实现对表记录的快速查询,可以对表的记录按某个和某些属性进行排序,这种顺序称为逻辑顺序。
约束(constraint):约束机制保障了 SQLServer中数据的一致性与完整性
,具有代表性的约束就是主键和外键。主键约束当前表记录的唯一性,外键约束当前表记录与其他表的关系。
存储过程(stored procedure):存储过程是一组为了完成特定功能的 SQL 语句集合。
这个语句集合经过编译后存储在数据库中,存储过程具有接受参数、输出参数,返回单个或多个结果以及返回值的功能。存储过程独立于表存在。
存储过程有和函数类似的地方,但它又不同于函数。例如,它不返回取代其名称的值,也不能直接在表达式中使用。
触发器(trigger):触发器与表紧密关联,是一种特殊的存储过程。它可以实现更加复杂的数据操作,更加有效地保障数据库系统中数据的完整性和一致性。触发器,基于一个表创建,但可以对多个表进行操作。
默认值(default):默认值是在用户没有给出具体数据时,系统所自动生成的数值。
它是 SQL Server系统确保数据一致性和完整性的方法
。
用户和角色(user,role):用户是对数据库有存取权限的使用者;角色是指一组数 据库用户的集合。这两个概念类似于 Windows XP 的本地用户和组的概念。
规则(rule):规则用来限制表字段的数据范围,为向下兼容而保留。
类型(type):用户可以根据需要在给定的系统类型之上定义自己的数据类型。
函数(function):用户可以根据需要在SQL Server上定义自己的函数。
物理数据库:
SQL Server 采用文件来存放数据库,即将数据库操作映射到操作系统文件上。
1、 数据库文件
SQL Server使用的文件包括三类:
(1)主数据文件,简称主文件,是数据库的关键文件,包含了数据库的启动信息,并且存储数据。每个数据库必须有且仅能有一个主文件,其默认扩展名为.mdf
。
(2)辅助数据文件,简称辅(助)文件,用于存储未包括在主文件内的其他数据。辅助文件的默认扩展名为.ndf。辅助文件是可选的
,根据具体情况,可以创建多个辅助文件,也可以不使用辅助文件。
一般当数据库很大时,有可能需要创建多个辅助文件。而数据库较小时,则只要创建主文件而不需要辅助文件。
(3)日志文件。日志文件用于保存恢复数据库所需的事务日志信息。
每个数据库至少有 一个日志文件,也可以有多个,日志文件的扩展名为.ldf。
日志文件的存储与数据文件不同,它包含一系列记录,这些记录的存储不以页为存储单位。
2. 文件组
文件组是由多个文件组成,为了管理和分配数据而将它们组织在一起。通常可以为一个磁盘驱动器创建一个文件组,然后将特定的表、索引等与该文件组相关联,那么对这些表的存储、查询和修改等操作都在该文件组中。使用文件组可以提高表中数据的查询性能
。
在 SQL Server中有两类文件组:
(1)主文件组。主文件组包含主要数据文件和任何没有明确指派给其他文件组的其他文件。管理数据库的系统表的所有页均分配在主文件组中。
(2)用户定义文件组。用户定义文件组是指“CREATE DATABASE”或“ALTER DATABASE”语句中使用“FILEGROUP”关键字指定的文件组。每个数据库中都有一个文件组作为默认文件组运行。若在 SQL Server中创建表或索引时没有为其指定文件组,那么将从默认文件组中进行存储页分配、查询等操作。用户可以指定默认文件组,如果没有指定默认文件组,则主文件组是默认文件组。
3. 系统数据库与用户数据库
在 SQL Server中有两类数据库:系统数据库
和用户数据库
。
系统数据库存储有关 SQL Server 的系统信息,它们是 SQL Server管理数据库的依据。如果系统数据库遭到破坏,SQLServer 将不能正常启动。
在安装 SQL Server时,系统将创建 4 个可见的系统数据库:master
、model
、msdb
和 tempdb
。
(1)master 数据库包含了 SQL Server 诸如登录账号、系统配置、数据库位置及数据库错误信息等,用于控制用户数据库和 SQL Server 的运行。
(2)model 数据库为新创建的数据库提供模板。
(3)msdb 数据库为“SQL Server Agent”调度信息和作业记录提供存储空间。
(4)tempdb 数据库为临时表和临时存储过程提供存储空间,所有与系统连接的用户的临时表和临时存储过程都存储于该数据库中。
SQL语言
SQL的主要功能:
SQL 语言按照功能可以分为三大类。
(l)数据定义语言(Data Definition Language , DLL)
用于定义关系数据库的模式、外模式和内模式,以实现对数据库基本表、视图及索引文
件的定义、修改和删除等操作。主要的 SQL 语句是 CREATE、DROP 和 ALTER
。
(2)数据操纵语言(Data Manipulation Language , DML)
用于完成数据查询和数据更新操作,其中数据更新是指对数据进行插入、删除和修改操
作。最常使用的 DML 语句是 SELECT、INSERT、UPDATE 和 DELETE
。
(3)数据控制语言(Data Control Language , DCL)
用于对数据访问权限的控制,最常使用的DCL 语句是 GRANT、REVOKE、DENY 等
。
SQL 数据库的体系结构
SQL 支持数据库的三级模式结构。其中,模式与基本表相对应
,外模式与视图相对应
,内模式与存储文件相对应
。
基本表是模式的基本内容,每个基本表对应一个实际存在的关系。
视图是外模式的基本单位,是从基本表或其他视图中导出的表,它本身不单独地存储在 数据库中,也就是说,数据库中只存放视图的定义而不存放视图所对应的数据,这些数据仍 存放在导出视图的基本表中,因此视图是一个虚表。
存储文件是内模式的基本单位,每个存储文件存储一个或多个基本表的内容。一个基本 表可有若干索引,索引也存储在存储文件中
SQL 的特点
(1)语言简洁,风格统一,易学易懂。
(2)既是自含式语言
,又是嵌入式语言
。
(3)高度非过程化
。