1、1第第3章章 创建和管理数据库创建和管理数据库创建数据库创建文件组管理数据库数据结构介绍2数据库存储结构数据库存储结构数据库的存储结构逻辑存储结构逻辑存储结构数据库是由哪些性质的信息所组成。实际上,SQL Server的数据库是由诸如表、视图、索引等各种不同的数据库对象所组成。物理存储结构物理存储结构讨论数据库文件是如何在磁盘上存储的,数据库在磁盘上是以文件为单位存储的,由数据库文件和事务日志文件组成,一个数据库至少应该包含一个数据库文件和一个事务日志文件。3数据库文件数据库文件主数据库文件一个数据库可以有一个或多个数据库文件,一个数据库文件只能属于一个数据库。当有多个数据库文件时,有一个文件
2、被定义为主数据库文件(简称为主文件),其扩展名为mdf。主数据库文件用来存储数据库的启动信息以及部分或者全部数据,是所有数据库文件的起点,包含指向其它数据库文件的指针。一个数据库只能有一个主数据库文件。4数据库文件数据库文件辅助数据库文件一个用于存储主数据库文件中未存储的剩余数据和数据库对象,一个数据库可以没有辅助数据库文件,但也可以同时拥有多个辅助数据库文件。辅助数据库文件的扩展名为ndf(简称为辅助文件)。5数据库文件数据库文件事务日志文件一个存储数据库的更新情况等事务日志信息,当数据库损坏时,管理员使用事务日志恢复数据库。每一个数据库至少必须拥有一个事务日志文件,而且允许拥有多个日志文件
3、。事务日志文件的扩展名为ldf,日志文件的大小至少是512KB。SQL Server事务日志采用提前写入的方式。6创建数据库创建数据库1使用向导创建数据库 2使用企业管理器创建数据库 3使用Transact-SQL语言创建数据库7使用使用T-SQL语言创建数据库语言创建数据库CREATE DATABASE SampleON PRIMARY(NAME=SampleData,FILENAME=c:Program Files.DataSample.mdf,SIZE=10MB,MAXSIZE=15MB,FILEGROWTH=20%)LOG ON (NAME=SampleLog,FILENAME=c:P
4、rogram Files.DataSample.ldf,SIZE=3MB,MAXSIZE=5MB,FILEGROWTH=1MB)主数据库文件主数据库文件事务日志文件事务日志文件逻辑文件名逻辑文件名物理文件名物理文件名文件增长量文件增长量建立数据库的定义:数据库的名称数据库的大小数据库将驻留在哪一个文件中8Transact-SQL语言的命令格式说明:用 括起来的内容表示是可选的;,n表示重复前面的内容;用括起来表示在实际编写语句时,用相应的内容替代;用 括起来表示是必选的;类似A|B的格式,表示A和B只能选择一个,不能同时都选。使用使用Transact-SQL语言创建数据库语言创建数据库9CRE
5、ATE DATABASE database_nameON PRIMARY (NAME=logical_file_name,FILENAME=os_file_name,SIZE=size,MAXSIZE=max_size|UNLIMITED ,FILEGROWTH=growth_increment),nLOG ON (NAME=logical_file_name,FILENAME=os_file_name,SIZE=size,MAXSIZE=max_size|UNLIMITED ,FILEGROWTH=growth_increment),n使用使用Transact-SQL语言创建数据库语言创建数
6、据库10database_name:数据库的名称。数据库名称在服务器中必须唯一,最长为128个字符,并且要符合标识符的命名规则。每个服务器管理的数据库最多为32767个。PRIMARY:用于指定主文件组中的文件。如果不指定PRIMARY关键字,则在命令中列出的第一个文件将被默认为主文件。SIZE:指定数据库的初始容量大小。如果没有指定主文件的大小,则SQL Server默认其与模板数据库中的主文件大小一致,其它数据库文件和事务日志文件则默认为1MB。指定大小的数字size可以使用KB、MB、GB和TB后缀,默认的后缀为MB。Size中不能使用小数,其最小值为512KB,默认值为1MB。主文件的
7、size不能小于模板数据库中的主文件。使用使用Transact-SQL语言创建数据库语言创建数据库11MAXSIZE:指定操作系统文件可以增长到的最大尺寸。如果没有指定,则文件可以不断增长直到充满磁盘。FILEGROWTH:指定文件每次增加容量的大小,当指定数据为0时,表示文件不增长。增加量可以确定为以KB、MB作后缀的字节数或以%作后缀的被增加容量文件的百分比来表示。默认后缀为MB。如果没有指定FILEGROWTH,则默认值为10%,每次扩容的最小值为64KB。使用使用Transact-SQL语言创建数据库语言创建数据库12创建数据库(举例)创建数据库(举例)例3-2-1:使用CREATE
8、DATABASE创建一个student数据库,所有参数均取默认值。例3-2-2:创建一个Student1数据库,该数据库的主文件逻辑名称为Student1_data,物理文件名为Student1.mdf,初始大小为10MB,最大尺寸为无限大,增长速度为10%;数据库的日志文件逻辑名称为Student1_log,物理文件名为Student1.ldf,初始大小为1MB,最大尺寸为5MB,增长速度为1MB。13例3-2-3:创建一个指定多个数据文件和日志文件的数据库。该数据库名称为students,有1个10MB和1个20MB的数据文件和2个10MB的事务日志文件。数据文件逻辑名称为student1
9、和student2,物理文件名为student1.mdf和student2.mdf。主文件是student1,由primary指定,两个数据文件的最大尺寸分别为无限大和100MB,增长速度分别为10%和1MB。事务日志文件的逻辑名为studentlog1和studentlog2,物理文件名为studentlog1.ldf和studentlog2.ldf,最大尺寸均为50MB,文件增长速度为1MB。创建数据库(举例)创建数据库(举例)14第第2章章 创建和管理数据库创建和管理数据库创建数据库创建文件组管理数据库数据结构介绍15创建文件组创建文件组文件组的概念文件组的概念文件组是 SQL Serv
10、er 中一个或多个文件的命名集合,它构成分配或用于数据库管理的单个单元文件组的使用场合文件组的使用场合当有多个磁盘,希望把文件分布在这些磁盘上以提高性能文件组的类型文件组的类型两种文件组:主文件组和用户定义文件组主文件组包含主文件的文件组用户定义的文件组在首次创建或以后更改数据库时,用户明确创建的任何文件组16Northwind 数据库数据库默认文件组默认文件组OrderHistory组组 Northwind.mdfC:D:OrdHist1.ndfOrdHist2.ndfNorthwind.IdfE:创建文件组(续)创建文件组(续)17创建文件组(续)创建文件组(续)ALTER DATABAS
11、E NorthwindADD FILEGROUP OrderHistoryGroupGOALTER DATABASE NorthwindADD FILE (NAME=OrdHistYear1,FILENAME=c:HistoryDB OrdHist1.ndf,SIZE=5MB)TO FILEGROUP OrderHistoryGroupGO18第第2章章 创建和管理数据库创建和管理数据库创建数据库创建文件组管理数据库数据结构介绍19管理数据库管理数据库查看数据库信息修改数据库收缩数据库或文件删除数据库事务日志的工作过程20检索数据库信息检索数据库信息使用系统存储过程来显示数据库以及数据库参数的
12、信息 sp_helpdb sp_helpdb 数据库名21使用Transact-SQL语言修改数据库 只有数据库管理员或具有CREATE DATABASE权限的数据库所有者才有权执行该语句。ALTER DATABASE语句的语法格式如下:修改数据库修改数据库 22Alter database databasenameadd file,n to filegroup filegroupname|add log file,n|remove file logical_file_name|remove filegroup filegroup_name|modify file|modify name=ne
13、w_databasename|add filegroup filegroup_name|modify filegroup filegroup_namefilegroup_property|name=new_filegroup_name 修改数据库修改数据库 23add file,n to filegroup filegroupname:表示向指定的文件组中添加新的数据文件。add log file,n:增加新的日志文件。remove file logical_file_name:删除指定的操作系统文件。remove filegroup filegroup_name:删除指定的文件组。modif
14、y file:修改某个操作系统文件。modify name=new_databasename:重命名数据库。add filegroup filegroup_name:增加一个文件组。modify filegroup filegroup_name:修改某个指定文件组的属性。24修改数据库(举例)修改数据库(举例)ALTER DATABASE Sample MODIFY FILE(NAME=SampleLog,SIZE=15MB)GOALTER DATABASE SampleADD FILE (NAME=SampleData2,FILENAME=c:Program Files.DataSample
15、2.ndf,SIZE=15MB,MAXSIZE=20MB)GO25管理数据文件和日志文件的增长管理数据文件和日志文件的增长ALTER DATABASE Sample MODIFY FILE(NAME=SampleLog,SIZE=15MB)GOALTER DATABASE SampleADD FILE (NAME=SampleData2,FILENAME=c:Program Files.DataSample2.ndf,SIZE=15MB,MAXSIZE=20MB)GO使文件自动增长手动扩充数据库文件添加次要数据库文件26收缩数据库或文件收缩数据库或文件收缩整个数据库企业管理器DBCC SHRI
16、NKDATABASE 语句语句 DBCC SHRINKDATABASE(DBCC SHRINKDATABASE(数据库名数据库名,目标百分比目标百分比 ,NOTRUNCATE|TRUNCATEONLY)NOTRUNCATE|TRUNCATEONLY)收缩数据库中的一个数据文件企业管理器DBCC SHRINKFILE 语句语句 DBCC SHRINKFILE(DBCC SHRINKFILE(文件名文件名|文件文件idid,目标大小目标大小 ,EMPTYFILE|NOTRUNCATE|TRUNCATEONLY)EMPTYFILE|NOTRUNCATE|TRUNCATEONLY)自动收缩数据库设置数
17、据库选项 autoshrink 为 true27收缩数据库或文件(续)收缩数据库或文件(续)收缩语句中的选项NOTRUNCATENOTRUNCATE 在数据库文件中保留保留所释放的文件空间。(默认情况)TRUNCATEONLYTRUNCATEONLY 文件中的所有未使用的空间释释放放给操作系统。不尝试将其重新分配到未分配页。当使用TRUNCATEONLY 时,参数 target_size 和 target_percent 被忽略。EMPTYFILEEMPTYFILE 只适用于 DBCC SHRINKFILE,将清空数据文件的内容并将数据移动到同一文件组中的其他文件。28收缩数据库或文件(续)收
18、缩数据库或文件(续)有一个小型的酒店管理系统,其营业数据为有一个小型的酒店管理系统,其营业数据为150MB,对其中的对其中的50%的数据进行备份并删除后,要把数据库的数据进行备份并删除后,要把数据库立即缩小为初始的大小(即立即缩小为初始的大小(即100MB)。下面哪条语句)。下面哪条语句能够实现该功能?能够实现该功能?A.DBCC SHRINKFILE(JiuDianData,NOTRUNCATE)B.DBCC SHRINKDATABASE(JiuDianData,25)C.DBCC SHRINKDATABASE(JiuDianData,100)D.ALTER DATABASE JiuDian
19、Data SET AUTO_SHRINK ON29删除数据库删除数据库1利用企业管理器删除数据库 2利用Drop语句删除数据库 Drop database database_name,n 说明:只有处于正常状态下的数据库,才能使用DROP语句删除。当数据库处于以下状态时不能被删除:数据库正在使用;数据库正在恢复;数据库包含用于复制的已经出版的对象。DROP DATABASE Northwind,pubs30事务日志的工作过程事务日志的工作过程 应用程序发出数据修改应用程序发出数据修改请求请求磁盘磁盘修改记录在磁盘上的事务修改记录在磁盘上的事务日志日志在缓存中定位数据页,在缓存中定位数据页,或者
20、将数据页读入缓存,或者将数据页读入缓存,并修改并修改缓存缓存磁盘磁盘检查点将已提交的检查点将已提交的事务写入数据库中事务写入数据库中31第第2章章 创建和管理数据库创建和管理数据库创建数据库创建文件组管理数据库数据结构介绍32数据结构介绍数据结构介绍数据存储方式页和扩展盘区类型管理文件空间的页跟踪表和索引的页33数据存储方式数据存储方式扩展盘区(8个连续的 8KB页)页(8 KB)表,索引数据每行大小最多 8 060 字节数据数据(文件文件).mdf 或 .ndf日志日志(文件文件).Idf 34页和扩展盘区类型页和扩展盘区类型n页的类型(八种)页的类型(八种)l页可用空间(PFS)页l全局分
21、配映射表(GAM)页和辅助全局分配映射表(SGAM)页l索引分配映射表(IAM)页l大容量更改映射表页l差异更改映射表页l数据页l文本/图像页l索引页35页和扩展盘区类型(续)页和扩展盘区类型(续)统一扩展盘区统一扩展盘区空闲空间空闲空间混合扩展盘区混合扩展盘区n扩展盘区的类型扩展盘区的类型l混合扩展盘区:包含 2 个或多个对象的页的扩展盘区称为“混合扩展盘区”。每张表起始于一个混合扩展盘区。主要为跟踪空间的页及包含小对象的页使用混合扩展盘区l统一扩展盘区:将所有八页分配给单个对象的扩展盘区称为“统一扩展盘区”。在表或索引需要超过 64 KB空间时使用36管理文件空间的页管理文件空间的页混合扩
22、展盘区(文件第一个盘区)混合扩展盘区(文件第一个盘区)SGAMGAM首页首页PFS1234567837管理文件空间的页管理文件空间的页 n每个文件的第一个扩展盘区是混合扩展盘区,包含每个文件的第一个扩展盘区是混合扩展盘区,包含一个文件的页首页和紧接着的三个分配页一个文件的页首页和紧接着的三个分配页l文件的页首页:文件的页首页:包含该文件的特性信息lPFSPFS(页可用空间)页可用空间)页:页:包含有关文件中以页为单位的可用空间的信息。每个 PFS 页可以跟踪 8 000 个连续页,将近 64 MB 的数据。PFS 页对每一页都有一个相应的字节,跟踪:n 该页是否已分配n 该页是在混合扩展盘区还
23、是在统一扩展盘区n 该页可用空间的近似数量38管理文件空间的页(续)管理文件空间的页(续)nGAM(全局分配映射表全局分配映射表)和和 SGAM(辅助全局分配映射表辅助全局分配映射表)页页lSQL Server 使用 GAM 和 SGAM 页来确定未使用的扩展盘区或有未使用页的混合扩展盘区的位置lGAM 和 SGAM 配合使用,每对管理 63 904 个扩展盘区GAM 位设置 SGAM位设置 情况 1 10 0是个可用的扩展盘区。该扩展盘是个可用的扩展盘区。该扩展盘区未被使用区未被使用0 01 1是个可用页。该扩展盘区有一个是个可用页。该扩展盘区有一个或多个未使用页或多个未使用页 0 00 0
24、是个没有可用页的扩展盘区。该是个没有可用页的扩展盘区。该扩展盘区是统一扩展盘区或已满扩展盘区是统一扩展盘区或已满的混合扩展盘区的混合扩展盘区39SQL Server 使用四种类型的页来管理表和索引IAM 页:包含有关表或索引使用的扩展盘区信息的分配页数据页:包含除 text、ntext 和 image 数据之外的内容 文本/图像页:包含 text、ntext 和 image 内容 索引页:包含索引结构 跟踪表和索引的页跟踪表和索引的页40跟踪表和索引的页(续)跟踪表和索引的页(续)混合扩展盘区混合扩展盘区统一扩展盘区统一扩展盘区数据数据第第38页页IAM数据页数据页41回回 顾顾学习完本章后,将能够:创建数据库创建文件组管理数据库描述数据结构
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。