《第四章 数据库管理优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第四章 数据库管理优秀PPT.ppt(71页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第四章 数据库管理第一页,本课件共有71页数据库的存储结构 n n数据库的存储结构分为逻辑存储结构和物理存储结构两种。n n数据库的逻辑存储结构指的是数据库是由哪些性质的信息所组成。实际上,SQL Server的数据库是由诸如表、视图、索引等各种不同的数据库对象所组成。n n数据库的物理存储结构是讨论数据库文件是如何在磁盘上存储的,数据库在磁盘上是以文件为单位存储的,由数据库文件和事务日志文件组成,一个数据库至少应该包含一个数据库文件和一个事务日志文件。第二页,本课件共有71页数据库文件n n当建立一个当建立一个SQL ServerSQL Server数据库时,数据库的实际存储被数据库时,数据
2、库的实际存储被映射成几个操作系统文件。三种类型的映射成几个操作系统文件。三种类型的SQL ServerSQL Server数据库文件:n n主数据库文件(主数据库文件(.mdf.mdf)n n辅数据库文件辅数据库文件 (.ndf.ndf)n n日志文件日志文件 (.ldf.ldf)n n每个文件有两个互相联系的名字每个文件有两个互相联系的名字 n n逻辑名逻辑名n n物理名物理名 第三页,本课件共有71页数据库文件(续)n n逻辑存储结构和物理存储结构逻辑存储结构和物理存储结构n n一、数据库的逻辑存储结构指的是数据库是由哪一、数据库的逻辑存储结构指的是数据库是由哪些性质的信息所组成,些性质的
3、信息所组成,SQL ServerSQL Server的数据库不仅仅的数据库不仅仅只是数据的存储,所有与数据处理操作相关的信息都只是数据的存储,所有与数据处理操作相关的信息都存储在数据库中。存储在数据库中。n n二、数据库的物理存储结构则是讨论数据库文件是如二、数据库的物理存储结构则是讨论数据库文件是如何在磁盘上存储的,数据库在磁盘上是以文件为单位何在磁盘上存储的,数据库在磁盘上是以文件为单位存储的,由数据库文件和事务日志文件组成,一个数存储的,由数据库文件和事务日志文件组成,一个数据库至少应该包含一个数据库文件和一个事务日志文据库至少应该包含一个数据库文件和一个事务日志文件。件。第四页,本课件
4、共有71页数据库的存储结构-物理存储结构n n数据库文件 n n1主数据库文件(Primary Database File)n n一个数据库可以有一个或多个数据库文件,一个数据库文件只能属于一个数据库。当有多个数据库文件时,有一个文件被定义为主数据库文件(简称为主文件),其扩展名为mdf。第五页,本课件共有71页3.1 数据库的存储结构n n主数据库文件用来存储数据库的启动信息以及部分或者全部数据,是所有数据库文件的起点,包含指向其它数据库文件的指针。一个数据库只能有一个主数据库文件。第六页,本课件共有71页数据库的存储结构n n2辅助数据库文件(Secondary Database File
5、)n n用于存储主数据库文件中未存储的剩余数据和数据库对象,一个数据库可以没有辅助数据库文件,但也可以同时拥有多个辅助数据库文件。n n辅助数据库文件的扩展名为ndf(简称为辅助文件)。第七页,本课件共有71页数据库的存储结构n n3事务日志文件 n n存储数据库的更新情况等事务日志信息,当数据库损坏时,管理员使用事务日志恢复数据库。n n每一个数据库至少必须拥有一个事务日志文件,而且允许拥有多个日志文件。事务日志文件的扩展名为ldf,日志文件的大小至少是512KB。n nSQL Server事务日志采用提前写入的方式。第八页,本课件共有71页n nSQL Server使用数据库的事务日志来防
6、止没有完成的事务破坏数据。第九页,本课件共有71页数据库的存储结构n n注意:SQL Server 2000中的数据和事务日志文件不能存放在压缩文件系统或象共享网络目录等远程的网络驱动器上。n nSQL Server 2000的文件拥有两个名称,即逻辑文件名和物理文件名。当使用Transact-SQL命令语句访问某一个文件时,必须使用该文件的逻辑名。n n物理文件名是文件实际存储在磁盘上的文件名,而且可包含完整的磁盘目录路径。第十页,本课件共有71页数据库文件组文件组n n文件组的主要目的是为了方便管理和空间分配。文件组的主要目的是为了方便管理和空间分配。n n在建立文件组时,有三条规则:在建
7、立文件组时,有三条规则:n n数据库文件不能与一个以上的文件组关联。数据库文件不能与一个以上的文件组关联。n n日志文件不能加到文件组里。日志文件不能加到文件组里。n n只有文件组中任何一个文件都没有空间了,文件组的只有文件组中任何一个文件都没有空间了,文件组的文件才会自动增长文件才会自动增长 。n n三种不同类型的文件组三种不同类型的文件组n n主类型主类型(PRIMARY)(PRIMARY)n n用户定义型用户定义型n n缺省型缺省型 第十一页,本课件共有71页数据库的存储结构n n数据库文件组 n n利用文件组可以使服务器的性能得到提高。n n主文件组中包含了所有的系统表,当建立数据库时
8、,主文件组包括主数据库文件和未指定组的其他文件。n n用户定义文件组中可以指定一个缺省文件组,那么在创建数据库对象时如果没有指定将其放在哪一个文件组中,就会将它放在缺省文件组中。如果没有指定缺省文件组,则主文件组为缺省文件组。第十二页,本课件共有71页数据库的存储结构n n一个文件只能存在于一个文件组中,一个文件组也只能被一个数据库使用;日志文件是独立的,它不能作为任何文件组的成员。第十三页,本课件共有71页4.1.1 页面页面逻辑存储结构逻辑存储结构 1、什么是页面?n nSQL ServerSQL Server中的所有信息都存储在页面(中的所有信息都存储在页面(pagepage)上,页面是
9、数据库中使用的最小数据单元。上,页面是数据库中使用的最小数据单元。n n每一个页面存储每一个页面存储8KB8KB(81928192字节)的信息。字节)的信息。n n所有的页面都包括一个所有的页面都包括一个132132字节的页面头,用来唯字节的页面头,用来唯一地标识存储在页面中的数据,留下一地标识存储在页面中的数据,留下8060 8060 字节存储字节存储数据。数据。n n每页可以包含至少一行,但一行不能超出一页的长每页可以包含至少一行,但一行不能超出一页的长度。每页只能存储一个表中的数据。度。每页只能存储一个表中的数据。第十四页,本课件共有71页第十五页,本课件共有71页页面(续)页面(续)2
10、 2、SQL ServerSQL Server使用页面的类型 n n分配页面:用于控制数据库中给表和索引分配的页面。分配页面:用于控制数据库中给表和索引分配的页面。n n数据和日志页面:数据和日志页面:用于存储数据库数据和事务日志数据。数据存储在每个页用于存储数据库数据和事务日志数据。数据存储在每个页面的数据行中。每一行大小的最大值为面的数据行中。每一行大小的最大值为80608060个字节。个字节。SQL SQL ServerServer不允许记录跨页面存储。不允许记录跨页面存储。n n索引页面:用于存储数据库的索引数据。索引页面:用于存储数据库的索引数据。n n分发页面:用于存储数据库中有关
11、索引的信息。分发页面:用于存储数据库中有关索引的信息。n n文本文本 /图像页面:用于存储大量的文本或二进制大对象图像页面:用于存储大量的文本或二进制大对象(BLOBBLOB)。)。第十六页,本课件共有71页4.1.2 盘区盘区 1 1、什么是盘区?、什么是盘区?n n盘区是盘区是SQL ServerSQL Server每次申请空间时能分配的最小单位。每次申请空间时能分配的最小单位。n n一个盘区(一个盘区(extentextent)是由)是由8 8个连续的页面(个连续的页面(88KB=64KB88KB=64KB)组成的数据结构。组成的数据结构。n n当创建一个数据库对象(如一个表)时,当创建
12、一个数据库对象(如一个表)时,SQL ServerSQL Server会自动会自动地以盘区为单位给它分配空间。地以盘区为单位给它分配空间。n n每一个盘区只能包含一个数据库对象。每一个盘区只能包含一个数据库对象。n n盘区是表和索引分配空间的单位。盘区是表和索引分配空间的单位。n n假设我们在一个新建的数据库中,创建了一个表和两假设我们在一个新建的数据库中,创建了一个表和两个索引,并且表中只插入了一条记录,那么,总共占个索引,并且表中只插入了一条记录,那么,总共占用用364KB=192KB364KB=192KB空间。空间。第十七页,本课件共有71页盘区(续)盘区(续)2、SQL Server使
13、用的盘区的种类n n混合型混合型一个混合型区域有一个混合型区域有64KB64KB,其中的页可以组成,其中的页可以组成8 8个不同的对象。个不同的对象。n n统一型统一型一个统一型区域有一个统一型区域有64KB64KB,其中所有的页必须,其中所有的页必须属于同一个对象。属于同一个对象。当你第一次建立一个数据库对象时,当你第一次建立一个数据库对象时,SQL ServerSQL Server在一个在一个混合型区域中为它分配空间。如果这个对象增长到包含混合型区域中为它分配空间。如果这个对象增长到包含8 8个个页或更多时,页或更多时,SQL ServerSQL Server便会将现有数据移到一个统一型便
14、会将现有数据移到一个统一型区域中。区域中。第十八页,本课件共有71页4.2 创建、修改和删除数据库n n4.2.1 4.2.1 创建数据库创建数据库 n n4.2.2 4.2.2 设置数据库选项设置数据库选项n n4.2.3 4.2.3 修改数据库修改数据库 n n4.2.4 4.2.4 删除数据库删除数据库 第十九页,本课件共有71页4.2.1 创建数据库n n每个数据库都由以下几个部分的数据库对象所组成:关系图、表、视图、存储过程、用户、角色、规则、默认、用户自定义数据类型和用户自定义函数。第二十页,本课件共有71页估算数据库的空间需求n n数据库管理员的主要任务之一是创建数据库,并且需要
15、为每个文件指定容量。准确地估算应有的容量以免浪费不必占用的资源或者用尽数据库的空间是数据库管理员的责任。第二十一页,本课件共有71页考虑因素n n 每行记录的大小。每行记录都由一列或者多列数据组成。这些列决定了每一行每行记录的大小。每行记录都由一列或者多列数据组成。这些列决定了每一行的大小,必须从数据库开发人员那里或者通过自行检查数据库中的每个表得到每的大小,必须从数据库开发人员那里或者通过自行检查数据库中的每个表得到每一行的大小。一行的大小。n n 记录的数量。表中的记录数有可能基本不变,也有可能变化相当大。数据记录的数量。表中的记录数有可能基本不变,也有可能变化相当大。数据库开发人员可以告
16、诉你数据库中的每个表预计存储多少条数据。库开发人员可以告诉你数据库中的每个表预计存储多少条数据。n n 表的数量。一些数据库只有少量的表,另一些却有可能有成百上千的表。表的数量。一些数据库只有少量的表,另一些却有可能有成百上千的表。你可以使用企业管理器自行查看表的数量。你可以使用企业管理器自行查看表的数量。n n 索引的数量。每个表都有一个或者多个索引,这些索引可能是聚簇式索引索引的数量。每个表都有一个或者多个索引,这些索引可能是聚簇式索引或者是非簇式索引。每个非簇式索引将在数据库中占用额外的空间。或者是非簇式索引。每个非簇式索引将在数据库中占用额外的空间。n n 每个索引的大小。索引的大小取
17、决于使用该索引的列的大小、索引中包每个索引的大小。索引的大小取决于使用该索引的列的大小、索引中包含的记录数量和索引的填充因子。填充因子越大,索引对象占用的空间含的记录数量和索引的填充因子。填充因子越大,索引对象占用的空间就越多。就越多。n n 数据库对象的数量和大小。数据库包含很多对象,例如触发器、视图、存储过数据库对象的数量和大小。数据库包含很多对象,例如触发器、视图、存储过程等等。程等等。第二十二页,本课件共有71页考虑因素n n 事务日志的大小。事务日志大小的差别很大。这取决于很多事务日志的大小。事务日志大小的差别很大。这取决于很多因素,其中包括数据库中的数据的修改频率。大多数事务日志因
18、素,其中包括数据库中的数据的修改频率。大多数事务日志以数据库容量的以数据库容量的1 0%1 0%到到2 5%2 5%为起点,在数据库被用于实际工为起点,在数据库被用于实际工作环境后再通过监控来调整。经验显示,经常被修改的数据库和作环境后再通过监控来调整。经验显示,经常被修改的数据库和很少被修改的数很少被修改的数n n据库相比需要更大的事务日志。越是经常备份,事务日志就越据库相比需要更大的事务日志。越是经常备份,事务日志就越是可以小一些,这是因为在每次备份过程中都会截断事务日志。是可以小一些,这是因为在每次备份过程中都会截断事务日志。n n 数据库的计划成长量。有一些数据库的容量从不增长,也数据
19、库的计划成长量。有一些数据库的容量从不增长,也有一些每周都大幅度地增长。为了确定总体的计划成长量,有一些每周都大幅度地增长。为了确定总体的计划成长量,你必须估算数据库中每个表的成长量。你必须估算数据库中每个表的成长量。第二十三页,本课件共有71页估算公式n n其中,行的长度,就是指一行的字节数。第二十四页,本课件共有71页创建新数据库的注意事项创建新数据库的注意事项n n缺省情况下只有系统管理员可以创建新数据库缺省情况下只有系统管理员可以创建新数据库n n给数据库指定名字必须遵循SQL Server命名规范 n n所有的新数据库都是所有的新数据库都是model数据库的拷贝数据库的拷贝 n n单
20、个数据库可以存储在单个文件上,也可以跨越多个文单个数据库可以存储在单个文件上,也可以跨越多个文件存储件存储 n n数据库的大小可以被扩展或者收缩数据库的大小可以被扩展或者收缩 n n当新的数据库创建时,当新的数据库创建时,SQL Server自动地更新“mastermaster”数据库的“sysdatabasessysdatabases”系统表 第二十五页,本课件共有71页n n在SQL Server中创建数据库时,在创建新数据库之前,首先创建两个文件:一个用于数据库,另外一个用于事务日志。考虑在数据库使用的文件的逻辑名上加n n入“data”这个词,在事务日志使用的文件的逻辑名上加入“log
21、”这个词(例如n n“marketing_data”和“marketing_log”)。第二十六页,本课件共有71页创建新数据库的注意事项n n1)1)缺省情况下,只有系统管理员可以创建新数据库。缺省情况下,只有系统管理员可以创建新数据库。n n2)2)给数据库指定的名字必须遵循给数据库指定的名字必须遵循SQL ServerSQL Server命名规范:命名规范:n n 字符的长度可以从字符的长度可以从1 1到到3 03 0。n n 名称的第一个字符必须是一个字母或者是下列字符中的名称的第一个字符必须是一个字母或者是下列字符中的某一个:下划线(某一个:下划线(_ _),),a ta t符号(符
22、号(),或者是英镑符号),或者是英镑符号(#)。)。n n 在首字母后的字符可以是字母、数字或者前面规则中提在首字母后的字符可以是字母、数字或者前面规则中提到的符号。到的符号。n n 名称当中不能有任何空格,除非将名字用引号引起来。名称当中不能有任何空格,除非将名字用引号引起来。第二十七页,本课件共有71页创建新数据库的注意事项n n3)所有的新数据库都是model数据库的拷贝。这意味着新数据库不可能比model数据库当前的容量更小。n n4)单个数据库可以存储在单个文件上,也可以跨越多个文件存储。n n5)数据库的大小可以被扩展或者收缩。n n6)当新的数据库创建时,SQL Server自动
23、地更新“master”数据库的“sysdatabases”系统表。第二十八页,本课件共有71页创建数据库的方法 n n使用向导创建数据库n n使用企业管理器(Enterprise Manager)创建数据库n n使用Transact-SQL语言创建数据库。第二十九页,本课件共有71页使用企业管理器创建数据库n n该使用企业管理器来创建和管理数据库。这个图形化用户界面比Transact-SQL语句或者系统存储过程更容易使用。第三十页,本课件共有71页步骤-创建名为M Y D B的数据库n n1)1)在企业管理器的主界面中选择一个在企业管理器的主界面中选择一个SQL ServerSQL Serve
24、r,单击这个服务器旁边,单击这个服务器旁边的加号打开这个文件夹,出现各个的加号打开这个文件夹,出现各个SQL ServerSQL Server文件夹。文件夹。n n2)2)单击单击DatabasesDatabases旁的加号,打开这个文件夹,出现这个旁的加号,打开这个文件夹,出现这个SQL ServerSQL Server上上当前所有数据库的列表(见图当前所有数据库的列表(见图5-35-3)第三十一页,本课件共有71页n n3)3)右击右击D a t a b a s e sD a t a b a s e s文件夹,从菜单中选择文件夹,从菜单中选择New DatabaseNew Database
25、,出现,出现Database PropertiesDatabase Properties对话框(见图对话框(见图5-45-4)。)。n n4)4)在在NameName一栏中输入新建数据库的名字,如:一栏中输入新建数据库的名字,如:MYDBMYDB。确保遵循了。确保遵循了SQL SQL ServerServer的命名规范标准。的命名规范标准。第三十二页,本课件共有71页n n5)5)在File nameFile name一栏中可以输入数据文件的逻辑名。缺一栏中可以输入数据文件的逻辑名。缺省情况下,系统自动产生省情况下,系统自动产生“数据库名_ Data_ Data”的数据文件,你可以修改这个名字
26、。而且,你可以输入多个文件。n n6)6)在Location中可以指定数据文件所在的位置。缺省情况下,是安装SQL Server的目录的的目录的Data子目子目录下。你可以修改它。录下。你可以修改它。n n7)在Initial sizeInitial size一栏中以兆为单位输入数据文件的初始容量。值得注意的是,数据文件必须以1 M的的整倍数来创建,所以在这里你必须输入一个整数。整倍数来创建,所以在这里你必须输入一个整数。第三十三页,本课件共有71页n n8)8)在该页的下面,你可以选择在该页的下面,你可以选择Automatically grow fileAutomatically grow
27、file,指明:,指明:如果数据库的数据容量超过了数据文件的大小,数据文件可如果数据库的数据容量超过了数据文件的大小,数据文件可以自动增加。你可以指定按照百分比增加(选择以自动增加。你可以指定按照百分比增加(选择By percentBy percent后输入百分数),或者指定按照大小增加(选择后输入百分数),或者指定按照大小增加(选择In In megabytesmegabytes后输入大小)。你还可以指定:增加是否有上限。后输入大小)。你还可以指定:增加是否有上限。如果想指定上限,可以选择如果想指定上限,可以选择Restrict filegrowthRestrict filegrowth并输
28、入上限的大并输入上限的大小;如果不想指定上限,可以选择小;如果不想指定上限,可以选择Unrestricted filegrowthUnrestricted filegrowth。n n9)9)在在Transaction LogTransaction Log页中,输入日志文件的名称和大小。页中,输入日志文件的名称和大小。n n10)10)单击单击“确定确定”按钮立即创建数据库。按钮立即创建数据库。n n如果你选择如果你选择“确定确定”,这个数据库就会立即创建。,这个数据库就会立即创建。SQL SQL ServerServer不会返回任何有关创建的状态的信息。你可以通过在不会返回任何有关创建的状态
29、的信息。你可以通过在企业管理器的主界面中查看企业管理器的主界面中查看DatabasesDatabases文件夹下是否包含新建文件夹下是否包含新建的数据库来验证创建工作成功与否。的数据库来验证创建工作成功与否。第三十四页,本课件共有71页(一)使用向导创建数据库n n以下图4-1 到图4-8是使用向导创建数据库,用户根据提示操作,即可创建数据库。第三十五页,本课件共有71页图图4-1 选选择择向向导导对对话话框框第三十六页,本课件共有71页图图4-2 欢迎使用创建数据库向导对话框欢迎使用创建数据库向导对话框 第三十七页,本课件共有71页图图4-3 输入数据库名称和文件位置对话框输入数据库名称和文
30、件位置对话框 第三十八页,本课件共有71页图图4-4 定义数据库文件逻辑名称及初始大小对话话框定义数据库文件逻辑名称及初始大小对话话框第三十九页,本课件共有71页图图4-5 定义数据库增长信息对话框定义数据库增长信息对话框 第四十页,本课件共有71页图图4-6 定义事务日志文件名称及初始大小对话框定义事务日志文件名称及初始大小对话框 第四十一页,本课件共有71页图图4-7 定义事务日志文件增长信息对话框定义事务日志文件增长信息对话框 第四十二页,本课件共有71页图图4-8 确认创建数据库对话框确认创建数据库对话框 第四十三页,本课件共有71页(3)使用Transact-SQL语言创建数据库,语
31、法如下:n nCREATE DATABASE database_nameCREATE DATABASE database_namen nON PRIMARY ON PRIMARY ,n n ,n n n n LOG ON LOG ON ,nnn n FOR RESTORE FOR RESTOREn n:=(NAME=logical_file_name:=(NAME=logical_file_name,n nFILENAME=FILENAME=os_file_nameos_file_name n n,SIZE=sizeSIZE=sizen n,MAXSIZE=max_size|UNLIMITED
32、MAXSIZE=max_size|UNLIMITEDn n,FILEGROWTH=growth_increment)FILEGROWTH=growth_increment),nnn n:=FILEGROUP filegroup_name:=FILEGROUP filegroup_name ,nn第四十四页,本课件共有71页database_name:数据库的名称,最长为:数据库的名称,最长为128个字符。PRIMARY:该选项是一个关键字,指定主文件组:该选项是一个关键字,指定主文件组中的文件。中的文件。LOG ONLOG ON:指明事务日志文件的明确定义。:指明事务日志文件的明确定义。NAM
33、ENAME:指定数据库的逻辑名称,这是在SQL Server系统中使用的名称,是数据库在SQL Server中的标识符。中的标识符。各参数说明如下:各参数说明如下:第四十五页,本课件共有71页FILENAME:指定数据库所在文件的操作系统文件名称和路径,该操作系统文件名和NAMENAME的逻辑名称一一对应。的逻辑名称一一对应。SIZE:指定数据库的初始容量大小。MAXSIZEMAXSIZE:指定操作系统文件可以增长到的:指定操作系统文件可以增长到的最大尺寸。最大尺寸。FILEGROWTHFILEGROWTH:指定文件每次增加容量的大小,:指定文件每次增加容量的大小,当指定数据为当指定数据为0时
34、,表示文件不增长。时,表示文件不增长。第四十六页,本课件共有71页例子4-1:创建了一个Company数据库 n n创建了一个CompanyCompany数据库,该数据库的主数据文数据库,该数据库的主数据文件逻辑名称为件逻辑名称为Company_data,物理文件名为,物理文件名为Company.mdfCompany.mdf,初始大小为,初始大小为10MB,最大尺寸为无限,最大尺寸为无限大,增长速度为大,增长速度为10%10%;数据库的日志文件逻辑名称为Company_logCompany_log,物理文件名为,物理文件名为Company.ldf,初始大小为1MB1MB,最大尺寸为,最大尺寸为
35、5MB5MB,增长速度为,增长速度为1MB。n n程序清单:第四十七页,本课件共有71页create database companycreate database companyon primaryon primary(name=company_data,(name=company_data,filename=d:mssql7datacompany.mdf,filename=d:mssql7datacompany.mdf,size=10,size=10,maxsize=unlimited,maxsize=unlimited,filegrowth=10%)filegrowth=10%)log
36、onlog on(name=company_log,(name=company_log,filename=d:mssql7datacompany.ldf,filename=d:mssql7datacompany.ldf,size=1,size=1,maxsize=5,maxsize=5,filegrowth=1)filegrowth=1)n n输出为:输出为:输出为:输出为:The CREATE DATABASE process is allocating 10.00 MB on disk The CREATE DATABASE process is allocating 10.00 MB o
37、n disk company_pany_data.The CREATE DATABASE process is allocating 1.00 MB on disk company_log.The CREATE DATABASE process is allocating 1.00 MB on disk company_log.第四十八页,本课件共有71页例子4-2:创建一个指定多个数据文件和日志文件的数据库 n n该数据库名称为该数据库名称为该数据库名称为该数据库名称为employeesemployeesemployeesemployees,有,有,有,有1 1 1 1个个个个10MB10M
38、B10MB10MB和和和和1 1 1 1个个个个20MB20MB20MB20MB的数据文件和的数据文件和的数据文件和的数据文件和2 2 2 2个个个个10MB10MB10MB10MB的事务日志文件。数据文件逻辑名称为的事务日志文件。数据文件逻辑名称为的事务日志文件。数据文件逻辑名称为的事务日志文件。数据文件逻辑名称为employee1employee1employee1employee1和和和和employee2employee2employee2employee2,物理文件名为,物理文件名为,物理文件名为,物理文件名为employee1.mdfemployee1.mdfemployee1.m
39、dfemployee1.mdf和和和和employee2.mdfemployee2.mdfemployee2.mdfemployee2.mdf。主。主。主。主文件是文件是文件是文件是employee1employee1employee1employee1,由,由,由,由primaryprimaryprimaryprimary指定,两个数据文件的最大尺指定,两个数据文件的最大尺指定,两个数据文件的最大尺指定,两个数据文件的最大尺寸分别为无限大和寸分别为无限大和寸分别为无限大和寸分别为无限大和100MB100MB100MB100MB,增长速度分别为,增长速度分别为,增长速度分别为,增长速度分别为1
40、0%10%10%10%和和和和1MB1MB1MB1MB。事务日。事务日。事务日。事务日志文件的逻辑名为志文件的逻辑名为志文件的逻辑名为志文件的逻辑名为employeelog1employeelog1employeelog1employeelog1和和和和employeelog2employeelog2employeelog2employeelog2,物理文件名,物理文件名,物理文件名,物理文件名为为为为employeelog1.ldfemployeelog1.ldfemployeelog1.ldfemployeelog1.ldf和和和和employeelog2.ldfemployeelog2.
41、ldfemployeelog2.ldfemployeelog2.ldf,最大尺寸均为,最大尺寸均为,最大尺寸均为,最大尺寸均为50MB50MB50MB50MB,文件增长速度为,文件增长速度为,文件增长速度为,文件增长速度为1MB1MB1MB1MB。n n其源程序为:其源程序为:其源程序为:其源程序为:第四十九页,本课件共有71页create database employeescreate database employeeson primaryon primary(name=employee1,(name=employee1,filename=filename=d:mssql7data em
42、ployee1.mdfd:mssql7data employee1.mdf,size=10,maxsize=unlimited,filegrowth=10%),size=10,maxsize=unlimited,filegrowth=10%),(name=employee2,(name=employee2,filename=filename=d:mssql7data employee2.mdfd:mssql7data employee2.mdf,size=20,maxsize=100,filegrowth=1)size=20,maxsize=100,filegrowth=1)log on lo
43、g on(name=employeelog1,(name=employeelog1,filename=filename=d:mssql7data employeelog1.ldfd:mssql7data employeelog1.ldf,size=10,maxsize=50,filegrowth=1),size=10,maxsize=50,filegrowth=1),(name=employeelog2,(name=employeelog2,filename=filename=d:mssql7data employeelog2.ldfd:mssql7data employeelog2.ldf,
44、size=10,maxsize=50,filegrowth=1)size=10,maxsize=50,filegrowth=1)n n输出结果为:输出结果为:输出结果为:输出结果为:The CREATE DATABASE process is allocating 10.00 MB on disk employee1.The CREATE DATABASE process is allocating 10.00 MB on disk employee1.The CREATE DATABASE process is allocating 20.00 MB on disk employee2.Th
45、e CREATE DATABASE process is allocating 20.00 MB on disk employee2.The CREATE DATABASE process is allocating 10.00 MB on disk employeelog1.The CREATE DATABASE process is allocating 10.00 MB on disk employeelog1.The CREATE DATABASE process is allocating 10.00 MB on disk The CREATE DATABASE process is
46、 allocating 10.00 MB on disk employeelog2.employeelog2.第五十页,本课件共有71页4.2.2 设置数据库选项设置数据库选项n n数据库选项:用来控制一个数据库的默认行数据库选项:用来控制一个数据库的默认行为,这些设置将从模型数据库中继承过来,为,这些设置将从模型数据库中继承过来,选项影响着这个数据库的工作方式。n n使用使用SQL Enterprise ManagerSQL Enterprise Manager设置数据库设置数据库选项选项 n n通过通过“sp_dboptionsp_dboption”系统存储过程来修改系统存储过程来修改数据
47、库选项数据库选项n n每个数据库的选项都是与其他数据库分离设置的。第五十一页,本课件共有71页部分数据库选项n n每一个选项在缺省的情况下都是被关闭的。每一个选项在缺省的情况下都是被关闭的。n n ANSI Null Default ANSI Null Default:这个选项决定了表中的列在缺省的情况:这个选项决定了表中的列在缺省的情况下被设置为下被设置为“NULLNULL”(允许为空)还是(允许为空)还是“NOT NULLNOT NULL”(不允许(不允许为空)。打开这个选项会使为空)。打开这个选项会使Microsoft SQL ServerMicrosoft SQL Server的数据库
48、与的数据库与ANSIANSI标准兼容。标准兼容。n n DBO Use Only DBO Use Only:如果打开这个选项,将只允许数据库属:如果打开这个选项,将只允许数据库属主(主(DBODBO)访问这个数据库。如果在用户访问这个数据库的期)访问这个数据库。如果在用户访问这个数据库的期间打开了这个选项,这个用户仍旧可以继续访问这个数据库,但间打开了这个选项,这个用户仍旧可以继续访问这个数据库,但是新的用户不能登录访问这个数据库。是新的用户不能登录访问这个数据库。n n Read Only Read Only:如果这个选项被打开,这个数据库就处于只读:如果这个选项被打开,这个数据库就处于只读
49、状态。这样用户就不能修改数据库中的任何记录。状态。这样用户就不能修改数据库中的任何记录。n n Select Into/Bulk Copy Select Into/Bulk Copy:在数据库中执行不记日志的操作之:在数据库中执行不记日志的操作之前必须设置这个选项。一个不记日志的操作会忽略事务日前必须设置这个选项。一个不记日志的操作会忽略事务日志而直接修改数据库中的内容。志而直接修改数据库中的内容。第五十二页,本课件共有71页部分数据库选项n n Single User Single User:这个选项被设置时,每一时刻只有一个:这个选项被设置时,每一时刻只有一个用户可以访问这个数据库。但是这
50、个用户并不限于用户可以访问这个数据库。但是这个用户并不限于sa或者dbodbo,因此任何首先访问该数据库的用户就是这个,因此任何首先访问该数据库的用户就是这个唯一允许访问数据库的用户。打开这个选项将取消数唯一允许访问数据库的用户。打开这个选项将取消数据库中的所有锁,这是因为数据库中只有一个用户,据库中的所有锁,这是因为数据库中只有一个用户,所以没有必要加任何锁。所以没有必要加任何锁。n n Truncate Log on Checkpoint:这个选项打开以后,在每一次检查点发生时都会将非活动事务从事务日志中清除。事务日志通常只有在手工截断日志或者备份事务日志时才会被截断。第五十三页,本课件共