【数据库原理】关系数据库标准语言SQL与关系数据库管理系统SQL Server(一)

SQL基本概念.

SQL是结构化查询语言(Structured Query Language)的缩写,它是当前最成功、应用最广泛的关系数据库语言,尽管名称是"查询语言",但其功能包括数据查询、数据定义、数据操纵和数据控制四部分。

基本表Base-Table.

一个关系对应一个基本表,基本表是独立存在的表,不是由其它表导出的。一个或多个基本表对应于一个存储文件。

视图View.

视图是从一个或几个基本表导出的表,是一个虚拟的表。DB中只存放对于视图的定义,而不会存放视图对应的数据,数据依然是存放是导出视图的那些基本表中。视图的概念就类似我们从不同的角度观察一个物体,可能从上面看它是一个圆形,但从正面看它是一个三角形。当基本表中的数据发生变化时,从视图中查询得到的数据也会发生变化。例如教学数据库中有一个学生基本情况表S(SNo,SN,Sex,Age,Dept),此表为基本表,对应一个存储文件。可以在其基础上定义一个男生基本情况表S_Male(SNo,SN,Age,Dept),它是从S中选择Sex='男’的各个行,然后在SNo、SN、Age、Dept上投影得到的,在数据库中只存储S_Male的定义,而S_Male的记录不会重复存储。
在用户看来,视图时通过不同路径去看一个实际表,就像一个窗口一样,通过窗口去看外面的高楼,可以看到高楼的不同部分,而透过视图可以看到DB中用户所感兴趣的内容。
SQL支持数据库的三级模式结构,其中外模式对应于数据的视图和部分基本表,模式对应于基本表,内模式对应于存储文件。
【数据库原理】关系数据库标准语言SQL与关系数据库管理系统SQL Server(一)_第1张图片

SQL Server简述.

SQL实际上是一种DML,也就是前面提到过的数据操纵语言。SQL Server是一个支持关系模型的关系数据库管理系统RDBMS,是Microsoft公司的产品。SQL Server中主要包括数据库引擎、Management Studio等一系列完善的管理工具套件。

  • 【数据库引擎】包括用于存储、处理和保护数据的核心引擎,复制,全文搜索以及用于管理关系数据和XML数据的工具。
  • 【Management Studio】是以集成环境,是用于配置和管理SQL Server的主要组件,它提供了直观易用的图形工具和强大的脚本环境。

对于数据库,从逻辑上来看,描述信息的数据存在数据库中并由DBMS统一进行管理;从物理上来看,描述信息的数据是以文件的方式存储在物理磁盘上,由OS统一进行管理。数据库的存储结构是指数据库文件在磁盘上如何存储,在SQL Server中创建一个数据库时,SQL Server会相应地在物理磁盘上创建相应的操作系统文件,数据库中的所有数据、对象和数据库操作日志都存储在这些文件中。其中将至少产生两个文件:数据文件和事物日志文件,一个数据库至少包含一个数据文件和一个事务日志文件
一个数据库的所有物理文件,在逻辑上通过数据库名联系在一起,也就是说一个数据库在逻辑上对应一个数据库名,在物理存储上会对应若干个存储文件。

数据库中的文件.

  • 【数据文件】Database File是存放数据库数据和数据库对象的文件。一个数据库可以有多个数据文件,但一个数据文件只属于一个数据库。当数据库拥有多个数据文件时,有且仅有一个文件被定义为主要数据文件Primary Database File,其扩展名为【.mdf】,是用于存储数据库的启动信息以及部分或全部数据的文件。其他的数据文件被称为次要数据文件Secondary Database File,扩展名为【.ndf】,用来存储主要数据文件未存储的其他数据。
    采用多个数据文件的优点在于数据文件可以不断扩充,不会受到OS文件大小的限制,并且可以将数据文件存储在不同的硬盘中,这样可以同时对几个硬盘进行存取操作,提高了处理性能。
  • 【事物日志文件】Transaction Log File保存用于需要时用来恢复数据库的日志信息,扩展名为【.ldf】,每一个数据库至少有一个事务日志文件,Microsoft SQL Server将任何一次更新操作立即写入事务日志文件,之后更改计算机缓存中的数据,再以固定的时间间隔将缓存中的内容批量写入数据文件。SQL Server重启时会将事务日志文件中国最新标记点后面的事务记录抹去,因为这些记录并没有真正地从缓存写入数据文件。
  • 【文件组】File Group是将多个数据文件集合起来形成的一个整体,每个文件组有一个组名。与数据文件类似地,文件组也会分为主要文件组和次要文件组。一个数据文件只能存在于一个文件组中,一个文件组也只能被一个数据库使用。当建立数据库时,主要文件组包括了主要数据文件和那些没有被指定文件组的文件(如果没有指定默认文件组的话会包含这些文件)。在次要文件组中可以指定一个默认文件组,在创建数据库对象时,如果没有指定将其放在哪一个文件组中,就会将其放在默认文件组中。而如果我们没有指定默认文件组,那么主要文件组就作为默认文件组保存这些文件。值得注意的是,事务日志文件不属于任何一个文件组。

SQL Server中的系统数据库.

SQL Server中的系统数据库有5个:

  • master
  • model
  • msdb
  • tempdb
  • resource

其中前4个都是可以在Management Studio的系统数据库列表中可以看到的,第5个数据库是一个只读和隐藏的数据库,不会显示在前述的列表中。

master数据库.

master数据库是一个核心数据库,记录Microsoft SQL Server系统的所有系统级信息,包括实例范围的元数据(例如登陆账号)、端点、链接服务器和系统配置信息。此外,master数据库还记录了所有其他数据库的存在、数据库文件的位置以及Microsoft SQL Server的初始化信息。如果master数据库不可用,则Microsoft SQL Server无法启动。因此,用户尽量不要对master数据库执行操作,而且要保证始终有一个master数据库的当前备份可用。执行了创建与使用任意数据库、更改服务器或数据库的配置值、修改或添加登录账户等操作之后,应尽快备份master数据库。倘若最坏的情况发生了,master数据库不可用,可以从当前数据库备份中还原master数据库,也可以重新生成master数据库,但后面一种解决方法将重新生成所有的系统数据库。

model数据库.

model,顾名思义,它应该是某一种模板。实际上,model数据库是所有用户数据库的创建模板,必须始终存在于Microsoft SQL Server系统中。当创建用户数据库时,系统将model数据库的全部内容(包括数据库选项)复制到新的数据库中,由此可以简化数据库及其对象的创建及设置工作。

tempdb数据库.

与model数据库类似地,我们从tempdb这个名称中,可以大概推测到该数据库的用途。它用作系统的临时存储,主要用于保存以下的内容:

  • 显式创建的临时用户对象,如临时表、临时存储过程、表变量或游标;
  • 数据库引擎创建的内部对象,如用于存储假脱机或排序中间结果的工作表;

当我们每一次重新启动SQL Server时,SQL Server都会重新创建tempdb,从而获得一个干净的数据库副本。tempdb数据库采用最小日志策略,在该数据库中的表上进行数据操作,比在其他数据库中要快得多。

resource数据库.

resource数据库中包含了Microsoft SQL Server中的所有系统对象,这些系统对象在物理上保留在resource数据库中,但在逻辑上显示在每个数据库的sys架构中。早期的SQL Server版本中,进行升级需要删除和创建系统对象,而有了resource数据库之后,其数据库文件中包含了所有的系统对象,因此仅仅通过将resource数据库文件复制到本地服务器便可完成升级。
【数据库原理】关系数据库标准语言SQL与关系数据库管理系统SQL Server(一)_第2张图片

你可能感兴趣的:(数据库原理,数据库)