SQL Server2016数据库应用与开发(微课版21世纪高等学校计算机类课程创新规划教材)

SQL Server2016数据库应用与开发(微课版21世纪高等学校计算机类课程创新规划教材)
作者: 编者:姜桂洪
出版社: 清华大学
原售价: 69.50
折扣价: 52.20
折扣购买: SQL Server2016数据库应用与开发(微课版21世纪高等学校计算机类课程创新规划教材)
ISBN: 9787302516408

作者简介

内容简介

第3章 创建与管理数据库 SQL Server 2016将数据保存于数据库中,并为用户提供了访问这些数据的接口。数据库所存储的信息能否正确地反映现实世界,能否在系统运行过程中及时、准确地为各个应用程序提供所需的数据,关系到以此数据库为基础的应用系统的性能。 本章主要介绍数据库的基本概念及数据库的创建、修改、附加、分离和删除等基本*作,以及数据库快照的创建和数据库的分区管理等。 3.1数据库对象和数据库文件 3.1.1数据库的基本概念 数据库的 基本概念 SQL Server 2016将数据库映射为一组磁盘文件,并将数据与*志信息分别保存于不同的磁盘文件中,每个文件仅在与之相关的数据库中使用。因此,从物理角度看,数据库包括数据文件和*志文件。从逻辑角度看,数据库中的表、索引、触发器、视图、键、约束、默认值、规则、用户定义数据类型或存储过程及数据库本身,都可以理解为数据库对象。 1. 数据库的结构层次 SQL Server的数据库基本结构分为3个层次,反映了观察数据库的3种不同角度。以内模式为框架所组成的数据库叫做物理数据库,以概念模式为框架所组成的数据库叫做概念数据库,以外模式为框架所组成的数据库叫做用户数据库。 (1) 物理数据库。这是数据库的*内层,是物理存储设备上实际存储数据的集合。这些数据是原始数据,是用户加工的对象,由内部模式描述的指令*作处理的位串、字符和字组成。在SQL Server中就是存储文件,即由*作系统管理的数据文件和*志文件。 (2) 概念数据库。这是数据库的中间一层,是数据库的整体逻辑表示。概念数据库指出了每个数据的逻辑定义及数据间的逻辑联系,是存储记录的集合,涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。在SQL Server中表现为由数据行和列组成的基本表。 (3) 用户数据库。这是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。数据库不同层次之间的联系是通过映射进行转换的。在SQL Server中表现为视图、报表和查询结果集等。 2. 数据库的逻辑结构 SQL Server的数据库逻辑结构可以理解为在运行SQL Server软件中观察到的数据库组成。例如,展开SQL Server 2016的示例数据库teaching,如图31所示,可以看到teaching数据库组成部分,如数据库关系图、表、视图等数据库对象。每个数据库对象**限定的对象名称包含4部分: server.database.schema.object即服务器.数据库.架构.数据库对象 以访问teaching数据库的表student为例,即使在当前服务器中也需要写成teaching.dbo.student的形式。如果从其他服务器中访问,前面还需加上服务器名。其中,dbo表示架构; schema在SQL Server中为架构的统称。 图31数据库的逻辑结构 3. 架构 架构是形成单个命名空间的数据库实体的集合。命名空间是一个集合,其内部的每个元素的名称都是**的。在SQL Server 2016中的默认架构是DBO。如果用户创建数据库时没有**架构,系统将使用默认架构。展开一个数据库中的“安全性”→“架构”文件夹,就可以观察到系统架构列表。 4. 数据库所有者 数据库所有者(DBO)就是有权限访问数据库的用户,即登录数据库的网络用户。数据库所有者是**的,拥有该数据库中的全部权限,并能够提供给其他用户访问权限和功能。 5. 数据库的物理文件 每个SQL Server 2016数据库至少具有两个*作系统文件,即一个主数据文件和一个*志文件。主数据文件包含数据和数据库对象,*志文件包含恢复数据库中的所有事务所需的信息。 SQL Server 2016数据库具有以下3种类型的文件。 (1) 主数据文件包含数据库的启动信息,并指向数据库中的其他文件。用户数据和对象可存储在此文件中,也可以存储在次要数据文件中。每个数据库有一个主要数据文件,建议文件扩展名是.mdf。 (2) 次要数据文件是可选的,由用户定义并存储用户数据。通过将每个文件放在不同的磁盘驱动器上,次要文件可用于将数据分散到多个磁盘上,建议文件扩展名是.ndf。 (3) 事务*志文件保存用于恢复数据库的*志信息。每个数据库必须至少有一个*志文件,建议文件扩展名是.ldf。 默认情况下,数据和事务*志被放在同一个驱动器的同一个路径下,这是为处理单磁盘系统而采用的方法。但是,在生产环境中建议将数据和*志文件放在不同的磁盘上。 数据库的 常用对象 3.1.2数据库的常用对象 数据库对象是数据库的组成部分,除了数据库本身外,常见的对象有表、索引、视图、数据库关系图、默认值、规则、触发器、用户、存储过程、序列等,本节简要介绍这些对象的概念,为后续学习打下基础。 (1) 表(Ta**e)。数据库中的表与*常生活中使用的表格类似,由行(Row)和列(Column)组成。其中,列由同类的信息组成,每列又称为一个字段,每列的标题称为字段名。行包括若干列的信息项。一行数据称为一个或一条记录,是有一定意义的信息组合。一个数据库表由一条或多条记录组成,没有记录的表称为空表。每个表中通常都有一个主关键字,用于**地确定一条记录。 (2) 索引(Index)。索引是根据**的数据库表列建立起来的顺序。它提供了快速查询大量数据的方法。有的索引还可以限制表,使其**的列数据不重复。 (3) 视图(View)。视图是一个虚拟的表,在数据库中实际并不存在。视图是由查询数据表产生的,可以用来控制用户对数据的访问,并能简化数据的显示,提高数据的安全性管理水平。 (4) 数据库关系图(Database diagram)。这是本数据库中的表之间的关系示意图,也称图表,利用图表可以编辑表与表之间的关系以及表的行列属性。 (5) 默认值(Default)。默认值是当在表中创建列或插入数据时,对没有**其具体值的列或列数据项赋予事先设定好的值。 (6) 规则(Rule)。规则是对数据库表中数据信息的限制,其限定的是表的列。 (7) 存储过程(Stored Procedure)。存储过程是为完成特定功能而汇集在一起的一组SQL程序语句,经编译后存储在数据库中的SQL程序。 (8) 触发器(Trigger)。触发器是一个用户定义的SQL事务命令的集合。当对一个表进行插入、*改、删除时,这组命令就会自动执行。 (9) 用户(User)。用户是有权限访问数据库的使用者,同时需要自己输入登录账号和密码。一般来说,数据库用户分为管理员用户和普通用户,前者可对数据库进行修改删除,后者只能进行阅读、查看等*作。 除了以上列出的数据库对象之外,不同的数据库管理系统也有部分自定义的对象,将在具体学习中分别介绍,此处不再赘述。 数据库的存储 3.1.3数据库的存储 SQL Server 2016数据库是以文件的方式存储到磁盘中,其中数据文件和*志文件的结构不同,存储方式也不一样,如图32所示。 图32数据的存储方式 1. 数据文件的存储结构 从SQL Server 2016数据库的物理架构上来看,SQL Server用于存储数据的基本单位是页,每页容量为8KB。也就是说,数据库对应磁盘文件在逻辑上可以被划分为多个页。通常页码是由0~n的一组连续号码组成。实际上,SQL Server 2016在执行底层的磁盘I/O时也是以页级为单位的。SQL Server将8个物理上连续的页组成一个区,以此可以*加有效地管理数据页。 (1) 数据页。SQL Server将8KB的数据划分为一页,即在SQL Server数据库中的1MB数据中包含128页。 SQL Server 2016的页类型共有包括数据页、索引页、文本/图像页等8种。每个页的开头为96B的系统信息,此信息包括页码、页类型、页的可用空间以及拥有该页的对象分配单元ID。其中,页类型用于指明该页存储的数据类型以及使用状态等信息。数据区占有8060B,页尾的行偏移数组占有36B。 (2) 扩展盘区(Extents)。数据页是SQL Server数据库读写数据的基本单位,扩展盘区就是管理存储空间的基本单位。一个扩展盘区由8个物理上连续的页(**KB)组成,即SQL Server数据库中每1MB包含16个区。 为了提高空间利用率,SQL Server 2016在为数据库中的某个数据表分配存储区时采取两种不同的策略。 ① 将扩展盘区中所有8个存储页全部分配给一个数据库对象(如数据表),采用这种方法分配的区也被称为“统一区”。统一区中的所有8个存储页只能供所属对象使用。 ② 允许扩展盘区中的存储页由1~8个数据对象共同使用。这种分区方式也称为“混合区”。采用这种方式的分区,区中的每一页(共8页)都可由不同的对象拥有。 本书从教学实际需求出发,结合初学者的认知规律,由浅入深、循序渐进地讲解SQL Server 2016数据库管理与开发过程中的知识。全书体系完整、可*作性强,以大量例题对常用知识点*作进行示范,所有例题全部通过调试,内容涵盖了设计一个数据库应用系统要用到的主要知识。