资源预览内容
第1页 / 共173页
第2页 / 共173页
第3页 / 共173页
第4页 / 共173页
第5页 / 共173页
第6页 / 共173页
第7页 / 共173页
第8页 / 共173页
第9页 / 共173页
第10页 / 共173页
亲,该文档总共173页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第2章 数据库的设计与管理,2.1 系统数据库介绍 2.2 创建数据库 2.3 设置数据库选项 2.4 修改数据库结构与删除数据库 2.5 备份和还原数据库 2.6 分离和附加数据库 习题,2.1 系统数据库介绍,2.1.1 master数据库 master数据库记录 SQL Server系统的所有系统级别信息,包括所有的登录帐户、系统配置设置、所有其他的数据库信息和SQL Server 的初始化信息等。 master数据库非常重要,应随时保留一个可用的最新master数据库备份。 在master数据库中,系统信息都记录在以“sys”开头的系统表中。常见系统表的信息如表2-1所示。,表2-1 master数据库中常用的系统表,2.1.2 model数据库 model数据库用作在系统上创建的所有数据库的模板。当发出CREATE DATABASE语句时,新数据库的第一部分通过复制model数据库中的内容创建,剩余部分由空页填充。由于SQL Server 每次启动时都要创建tempdb数据库,因此model数据库必须一直存在于SQL Server系统中。 如果SQL Server专门用作一类应用,而这类应用都需要某个表,甚至在这个表中都要包括同样的数据,那么就可以在model数据库中创建这样的表,并向表中添加那些公共的数据,以后每一个新创建的数据库中都会自动包含这个表和这些数据。当然,也可以向model数据库中增加其他数据库对象,这些对象都能被以后创建的数据库所继承。,刚刚完成SQL Server安装时,由于model数据库就已经有了一些系统表、视图和存储过程,因此用户创建的每个数据库中都将有这些对象。这些系统表的表名也以“sys”开头,其内容是有关数据库的结构等重要信息。 2.1.3 msdb 数据库 msdb数据库供SQL Server代理程序调度警报和作业,以及在记录操作员时使用。如果要让警报、备份、复制等各项操作能够自动、定期地执行,就要启动SQL Server Agent服务。如果未使用调度操作,则不会使用msdb。,2.1.4 tempdb 数据库 tempdb数据库保存所有的临时表和临时存储过程。它还满足任何其他的临时存储要求,例如存储SQL Server 生成的工作表。tempdb 数据库是全局资源,所有连接到系统的用户的临时表和存储过程都存储在该数据库中。由于tempdb数据库在SQL Server每次启动时都重新创建,因此该数据库在系统启动时总是干净的。由于临时表和临时存储过程在连接断开时自动除去,而且当系统关闭后将没有任何连接处于活动状态,因此tempdb数据库中没有任何内容会从SQL Server的一个会话保存到另一个会话。,默认情况下,SQL Server在运行时tempdb数据库会根据需要自动增长。不过,与其他数据库不同,每次启动数据库引擎时它会重置为其初始大小。如果为tempdb数据库定义的空间较小,则每次重新启动SQL Server时系统将tempdb数据库的空间自动增加到支持工作负荷所需的大小,这一工作可能会成为系统处理负荷的一部分。为避免这种开销,可以使用ALTER DATABASE增加tempdb 数据库的大小。,2.1.5 系统数据库的文件 每个系统数据库都包含主要数据文件和日志文件,扩展名分别为.mdf和.ldf。例如master数据库的两个文件分别为master.mdf和master.ldf。系统数据库文件会默认在“Program FilesMicrosoft SQL ServerMSSQLdata”磁盘目录中创建。它们的文件名及默认大小如表2-2所示(采用默认典型安装)。,表2-2 系统数据库的文件大小,2.2 创建数据库,1数据库的逻辑结构 数据库的逻辑结构指的是数据库是由哪些性质的信息所组成的。SQL Server的数据库不仅是数据的存放之处,而且所有与数据处理操作相关的信息都存储在数据库中。SQL Server的数据库由各种不同的对象所组成,它们分别用来存储不同信息并支持特定的功能。,SQL Server数据库包含的对象有:表(Table)、视图(View)、约束(Contraint)、规则(Rule)、默认值(Default)、索引(Index)、用户定义数据类型(User-Defined Data Type)、用户定义函数(User-Defined Function)、存储过程(Stored Procedure)和触发器(Trigger)等。 表(Table):是具体组织和存储数据的对象,由列和行组成。行的顺序可以是任意的,列的顺序也可以是任意的。在同一个表里,列的名字必须是惟一的在同一个数据库里,表的名字也必须是惟一的。一般来说,表的名字或列的名字都应该与存储内容有关。,视图(View):是从一个或几个基本表中导出的表。在数据库中只存储有视图的定义,而没有存储对应的数据。视图是查看表中数据的一种逻辑方法。用户可以利用视图做表的安全性措施,可以利用SQL简化查询。 约束(Contraint):是SQL Server实施数据一致性和完整性的方法。约束对表中各列的取值范围进行限制,以确保表中数据都是合理的、有效的。 默认值(Default):其功能是在向表中插入新的数据时,为没有指定数据的列提供一个默认的数据。默认值也是SQL Server实施数据一致性和完整性的方法。 规则(Rule):规则提供了对特定列或用户定义类型列进行约束的机制。规则也是SQL Server提供的确保数据一致性和完整性的方法。,索引(Index):是提供一种无需扫描整张表就能实现对数据快速访问的途径。使用索引可以优化查询。 存储过程(Stored Procedure):是一组经过编译的可以重复使用的T-SQL代码组合。存储过程在服务器端执行,用户可以调用存储过程,也可以接收存储过程返回的结果。 触发器(Trigger):是一种特殊的存储过程。触发器与表相关联,当用户对指定的表进行某些操作后,触发器将会自动执行。触发器常用来实施数据的完整性。 用户定义数据类型(User-Defined Data Type):是建立在系统数据类型的基础上,并对系统数据类型所做的一种扩展。 用户定义函数(User-Defined Function):是由一条或数条T-SQL语句组成的代码段,用于实现一些常用的功能。编写好的函数可以重复使用。,2数据库的物理结构 数据库的物理结构指的是数据库文件是如何在磁盘上存储的。 1) 文件和文件组 (1) 文件。SQL Server用文件来存放数据库,数据库文件有三类。 主要数据文件(Primary):用来存放数据,每个数据库都必须有一个主数据文件。主要数据文件是所有数据库文件的起点,包含指向其他数据文件的指针。主要数据文件的扩展名是(.mdf)。 其他数据文件(Secondary或二级数据文件):也用来存放数据,数据库中可以没有一个,也可以有多个Secondary文件。其他数据文件的扩展名为.ndf。,事务日志文件(Transaction Log):用来存放日志,每个数据库必须有一个或多个日志文件。日志文件用于存放恢复数据库所用的所有日志信息。事务日志文件扩展名为.ldf. 上述数据库文件的扩展名并非不可改变,但是为了命名的统一,避免引起管理上的混乱,建议不要随便更改默认的扩展名。 一般情况下,一个简单的数据库可以只有一个主数据文件和一个事务日志文件。如果数据库很大,则可以设置多个Secondary文件和日志文件,并将它们放在不同的磁盘上。 默认情况下,数据库文件存放在MSSQLdata目录下,数据文件名为“数据库名_Data.MDF”,日志文件名为“数据库名_Log.LDF”。数据库的创建者可以在创建时指定其他的路径和文件名,也可以添加Secondary文件和更多的日志文件。,(2) 文件组。出于分配和管理上的目的,SQL Server允许将多个文件归纳为同一组,并赋予此组一个名称,这个组就是文件组(File Group)。 文件组允许多个数据库文件组成一个组,并对它们整体进行管理。比如,可以将三个数据库文件(data1.mdf、data2.mdf和data3.mdf)分别创建在三个盘上,这三个文件组成文件组fgroup1。在创建表的时候,就可以指定一个表创建在文件组fgroup1上。这样该表的数据就可以分布在三个盘上,系统在对该表执行查询时可以并行操作,提高了查询效率。,(3) 文件和文件组应遵循的规则。 SQL Server的数据库文件和文件组必须遵循以下规则: 一个文件或文件组只能被一个数据库使用; 一个文件只能属于一个文件组; 日志文件不能属于文件组。 2) 页面(Pages)和盘区(Extents) (1) 页面。SQL Server中所有的信息都存储在页面(Page)上,页面是数据库中使用的最小数据单元,每个页面存储8 K的信息。每个页面都有一个96字节的头来存储系统信息,比如页面类型、页面剩余空间、拥有该页面的数据库逻辑对象的ID等。SQL Server 使用如下类型的页面。,数据页面:用于存储数据库数据,但不包括text、ntext和image类型的数据。 索引页面:用于存储索引数据。 文本/图像页面:用于存储text、ntext和image类型的数据。 全局分配页面:用于存储盘区分配的信息。 页面剩余空间页面:用于存储页面剩余空间的信息。 索引分配页面:用于存储页面被表或索引使用的盘区的信息。,(2) 盘区。盘区(Extent)是由8个连续页面组成的数据结构。它是SQL Server 中为表和索引分配空间的最小单位。也就是说当创建一个表时,SQL Server会自动地以盘区为单位给它分配空间。 为了使存储空间的使用更加高效,SQL Server不会将整个盘区分配给只包含少量数据的表。SQL Server 设计了两种类型的盘区。 单一盘区(Uniform Extents):只被单一的数据库对象使用,所有8个页面都用于这个对象。 混合盘区(Mixed Extents):被最多8个对象共同使用。 一个新建的表或索引首先从混合盘区中分配页面,当表或索引中的数据量增大到8个页面时,再将它转化为单一盘区。,2.2.2 创建数据库 1使用向导创建数据库 使用SQL Server向导可以创建一个最简单的数据库,其步骤如下: (1) 在企业管理器中,选中“控制台根目录”下的要创建数据库的服务器,然后单击“工具”菜单,单击“向导”命令,弹出如图2-2所示的对话框。 (2) 在该对话框中展开“数据库”项,选中“创建数据库向导”后,单击“确定”按钮,打开如图2-3所示的创建数据库向导。 (3) 根据向导提示完成相应操作。,图2-2 “选择向导”对话框,图2-3 创建数据库向导,2使用企业管理器创建数据库 在实际操作中,绝大多数的管理性工作都会利用SQL Server企业管理器来完成。使用SQL Server企业管理器创建数据库的步骤如下: (1) 选中创建数据库的服务器,用鼠标右键单击“数据库”节点,在弹出的快捷菜单中选择“新建数据库”命令,打开如图2-4所示的“数据库属性”对话框。,图2-4 “数据库属性”对话框,(2) 打开新建数据库对话框的“常规”选项卡,在“名称”文本框中输入数据库的名称。数据库的名称必须符合SQL Server命名规则,且不能与其他现存数据库的名称相同。在此,我们输入“学生图书借阅管理”,如图2-5所示。 图2-5 “常规”选项卡,(3) 激活“数据文件”选项卡,如图2-6所示。 图2-6 “数据文件”选项卡,在这个对话框中可以增减数据文件,并对每一个文件设置以下内容。 文件名:也叫逻辑文件名,以后就以这个名字来代表这个数据文件。SQL Server会默认以数据库的名称加上_Data作为主要数据文件的逻辑文件名。比方说,如果在图2-3所示的“名称”文本框中键入“学生图书借阅管理”,则主要数据文件的逻辑文件名将默认是“学
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号