SQL Server 2008编程入门经典笔记(第一章:RDBMS基础:SQL Server数据库的构成)

时间:2022-05-28 04:20:09

RDBMS基础:
RDBMS-关系数据库管理系统(Relational Database Management System)
RDBMS不仅可以保存数据,而且可以管理数据,如限定输入到系统内的数据类型,还能方便地从系统中读取数据。
对于SQL Server来说,它常包括以下重要的数据库对象。
1.数据库
2.事务日志
3.索引
4.文件组
5.数据库关系图
6.视图
7.存储过程
8.用户自定义函数
9.用户
10.角色
11.程序集
12.表
13.报表
14.全文目录
15.用户自定义数据类型

在特定的SQL Server中,数据库实际上是最高层对象。在SQL Server中,大部门其他对象(但不是所有)为数据库对象的子对象。

安装好的SQL Server第一次启动时至少包括4个系统数据库:
1.master
2.model
3.msdb
4.tempdb

ReportServer(为Reporting Server配置和模型存储需求提供服务的数据库)
ReportServerTempDB(用于Reporting Server的工作数据库)

1.master数据库
任意SQL Server都有master数据库。master数据库保存一组特殊的表(系统表)用于系统的总体控制。例如在服务器上新建一数据库,则在master数据库中的sysdatabases表中将加入该项。所有扩展的存储过程和系统存储过程都存储在master数据库中,而不论该存储过程是适用于哪一数据库。

2.model数据库
model数据库构成任何新建数据库的模板(理解:意思就是其他数据库都是按照这个数据库的模板样子创建的)。也就是说,如果想要改变新建标准数据库的样式,则可以根据需要更改model数据库。

在更改model数据库时要注意的是:第一,任意新建的数据库至少要比model数据库大。

3.msdb数据库
msdb数据库是SQL Agent进程存储任意系统任务的地方。如果计划对一数据库每夜进行备份,则在msdb数据库中有一个记录项。如果每次执行任务时调度存储过程,则在msdb数据库中会有一个记录项。(理解:msdb就相当于一个保存操作记录的数据库)

4.tempdb数据库
在执行一个复杂或者大型的查询操作时,SQL Server可能需要创建一些中间表来完成,而这是在tempdb数据库中进行的。只要创建临时表,这些表就会创建在tempdb数据库中,即使您是在当前数据库中创建这些表的(别名是在本地数据库中创建以供引用的,而物理表在tempdb中创建)。

1.1.2 事务日志
数据库文件本身并不是"事情发生最多的场所"。数据当然要从数据库文件读取,但实际上,任意数据库的更改起初不进入数据库本身,而是不断地写入到事务日志。在后面的某个时间点上,数据库发生检查点,就是在该时间点,日志中所有的更改才被传到实际的数据库文件。
数据库为随机访问配置,但是日志是自然连续的。数据库文件的随机访问特点允许快速访问,而日志的连续特征又使得发生的事件可按照顺序来跟踪。日志不断积累已经确认了的更改,并且一次性地将几次更改写入到物理数据库文件。

1.索引
索引是仅在特定表或试图架构内存在的对象。索引中有以某一特定方式排序的查找(或键)值,使用索引是快速查找数据库中实际信息的一种方法。

2.触发器
触发器是存在于表架构内的对象。触发器是在表操作时(如进行插入、更新或者删除等)自动执行的一段逻辑代码。

3.约束
约束是仅限于表中存在的另一对象。约束就是限制表中数据满足某种条件。约束在某种方式上类似触发器,尽可能解决数据完整性问题。

1.1.6视图
视图是一种虚拟表。除了试图不包含本身的任意数据外,视图的使用基本与表的使用类似。实际上视图仅仅是存储在表中的数据的一个预先计划的映射和表示。视图以查询的形式存储在数据库中。这种查询需要从一个或多个表中获取一些列的数据。
    应用视图的主要目的是控制用户所要显示的数据。作用:安全和易于使用。使用视图可以控制用户所见,因此,如果某些人只能看到表的一部分数据,则可以创建允许任何用户访问的只包含这两列数据的视图。

1.1.7存储过程
存储过程通常是组成一个逻辑单元的Transact-SQL语句的有序集合。存储过程的优点:
1.不使用长字符串文本而使用短存储过程名,可减少存储过程中的运行代码所要的网络信息流量。
2.预先优化和预编译,节省存储过程每次运行的时间。
3.通常考虑安全原因,或仅仅是隐藏数据库的复杂性,将过程封装。
4.可用其他存储过程调用方法,使得他们在某些限定意义上重用。