【文档说明】数据库 第03章 创建和管理数据库课件.ppt,共(41)页,416.500 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-92409.html
以下为本文档部分文字说明:
Copyright@20081第3章创建和管理数据库创建数据库创建文件组管理数据库数据结构介绍Copyright@20082数据库存储结构数据库的存储结构逻辑存储结构——数据库是由哪些性质的信息所组成。实际上,
SQLServer的数据库是由诸如表、视图、索引等各种不同的数据库对象所组成。物理存储结构——讨论数据库文件是如何在磁盘上存储的,数据库在磁盘上是以文件为单位存储的,由数据库文件和事务日志文件组成,一个数据库至少应该包含一个数据库文件和一个事务日
志文件。Copyright@20083数据库文件主数据库文件一个数据库可以有一个或多个数据库文件,一个数据库文件只能属于一个数据库。当有多个数据库文件时,有一个文件被定义为主数据库文件(简称为主文件),其扩展名为mdf。主数据库文件用来存储数据库的启动信息以及部分或者全部数据
,是所有数据库文件的起点,包含指向其它数据库文件的指针。一个数据库只能有一个主数据库文件。Copyright@20084数据库文件辅助数据库文件一个用于存储主数据库文件中未存储的剩余数据和数据库对象,一个
数据库可以没有辅助数据库文件,但也可以同时拥有多个辅助数据库文件。辅助数据库文件的扩展名为ndf(简称为辅助文件)。Copyright@20085数据库文件事务日志文件一个存储数据库的更新情况等事务日志信息,当数据库损坏时,管理员使用事务日志恢复数据库。每一个数据库至少必
须拥有一个事务日志文件,而且允许拥有多个日志文件。事务日志文件的扩展名为ldf,日志文件的大小至少是512KB。SQLServer事务日志采用提前写入的方式。Copyright@20086创建数据库1.使用向导创建数据库2.使用企业管理器创建数据库3.使用Trans
act-SQL语言创建数据库Copyright@20087使用T-SQL语言创建数据库CREATEDATABASESampleONPRIMARY(NAME=SampleData,FILENAME='c:\ProgramFiles\..\..\Data\S
ample.mdf',SIZE=10MB,MAXSIZE=15MB,FILEGROWTH=20%)LOGON(NAME=SampleLog,FILENAME='c:\ProgramFiles\..\..\Data\Sample.ldf',S
IZE=3MB,MAXSIZE=5MB,FILEGROWTH=1MB)主数据库文件事务日志文件逻辑文件名物理文件名文件增长量建立数据库的定义:数据库的名称数据库的大小数据库将驻留在哪一个文件中Copyright@20088Transact-SQL语言的命令格式说明:用[]括起来的内容表示是可选
的;[,…n]表示重复前面的内容;用<>括起来表示在实际编写语句时,用相应的内容替代;用{}括起来表示是必选的;类似A|B的格式,表示A和B只能选择一个,不能同时都选。使用Transact-SQL语言创建数据库Copyright@20089CREATEDATABASEdatabase_name
[ON{[PRIMARY](NAME=logical_file_name,FILENAME=‘os_file_name’[,SIZE=size][,MAXSIZE={max_size|UNLIMITED}][,FILEGROWTH=growth_increment])
}[,…n]][LOGON{(NAME=logical_file_name,FILENAME=‘os_file_name’[,SIZE=size][,MAXSIZE={max_size|UNLIMITED}][,FILEGROWT
H=growth_increment])}[,…n]]使用Transact-SQL语言创建数据库Copyright@200810database_name:数据库的名称。数据库名称在服务器中必须唯一,最长为128个字符,并且要符合标识符的命名规则。每个服务器管理的数据库最多为32767个。P
RIMARY:用于指定主文件组中的文件。如果不指定PRIMARY关键字,则在命令中列出的第一个文件将被默认为主文件。SIZE:指定数据库的初始容量大小。如果没有指定主文件的大小,则SQLServer默认其与模板数据库中的主文件大小一致,其它数据库文件和事务日志文件则默认为1M
B。指定大小的数字size可以使用KB、MB、GB和TB后缀,默认的后缀为MB。Size中不能使用小数,其最小值为512KB,默认值为1MB。主文件的size不能小于模板数据库中的主文件。使用Transact-SQL语言创建数据库Copyright@200811MAXSIZE
:指定操作系统文件可以增长到的最大尺寸。如果没有指定,则文件可以不断增长直到充满磁盘。FILEGROWTH:指定文件每次增加容量的大小,当指定数据为0时,表示文件不增长。增加量可以确定为以KB、MB作后缀的字节数或以%作后
缀的被增加容量文件的百分比来表示。默认后缀为MB。如果没有指定FILEGROWTH,则默认值为10%,每次扩容的最小值为64KB。使用Transact-SQL语言创建数据库Copyright@200812创建数据库(举例)例3-2-1:使用CREATEDATABASE创建一个student数据
库,所有参数均取默认值。例3-2-2:创建一个Student1数据库,该数据库的主文件逻辑名称为Student1_data,物理文件名为Student1.mdf,初始大小为10MB,最大尺寸为无限大,增长速度为10%;数据库的日志文件逻辑名称为Stud
ent1_log,物理文件名为Student1.ldf,初始大小为1MB,最大尺寸为5MB,增长速度为1MB。Copyright@200813例3-2-3:创建一个指定多个数据文件和日志文件的数据库。该数据库名称
为students,有1个10MB和1个20MB的数据文件和2个10MB的事务日志文件。数据文件逻辑名称为student1和student2,物理文件名为student1.mdf和student2.mdf。主文件是student1,由primary指定,两个数
据文件的最大尺寸分别为无限大和100MB,增长速度分别为10%和1MB。事务日志文件的逻辑名为studentlog1和studentlog2,物理文件名为studentlog1.ldf和studentlog2.ldf,最大尺寸均为50MB,文件增长速度为1MB。创建数据库(举例)Copyright
@200814第2章创建和管理数据库创建数据库创建文件组管理数据库数据结构介绍Copyright@200815创建文件组文件组的概念文件组是SQLServer中一个或多个文件的命名集合,它构成分配或用于数据库管理的单个单元文件组的使用场合当有多个磁盘,希望把文件分布在这些磁盘上以提高性能
文件组的类型两种文件组:主文件组和用户定义文件组主文件组——包含主文件的文件组用户定义的文件组——在首次创建或以后更改数据库时,用户明确创建的任何文件组Copyright@200816Northwind数据库默认文件组OrderHistory
组sys...sys...sysuserssysobjects...OrdersCustomersProductsOrdHistYear2OrdHistYear1Northwind.mdfC:\D:\OrdHist1.
ndfOrdHist2.ndfNorthwind.IdfE:\创建文件组(续)Copyright@200817创建文件组(续)ALTERDATABASENorthwindADDFILEGROUPOrderHistoryGroupGOALTERDATABASENorthwindADDFILE
(NAME=‘OrdHistYear1’,FILENAME=‘c:\HistoryDB\OrdHist1.ndf’,SIZE=5MB)TOFILEGROUPOrderHistoryGroupGOCopyright@200818第2章创建和管理数据库创建数据库创建文件组管理数据库数据结
构介绍Copyright@200819管理数据库查看数据库信息修改数据库收缩数据库或文件删除数据库事务日志的工作过程Copyright@200820检索数据库信息使用系统存储过程来显示数据库以及数据库参数的信息sp_helpdbsp_help
db数据库名Copyright@200821使用Transact-SQL语言修改数据库只有数据库管理员或具有CREATEDATABASE权限的数据库所有者才有权执行该语句。ALTERDATABASE语句的语法格式如下:修改数据库Copyright@200822Alterdata
basedatabasename{addfile<filespec>[,…n][tofilegroupfilegroupname]|addlogfile<filespec>[,…n]|removefilelogical_f
ile_name|removefilegroupfilegroup_name|modifyfile<filespec>|modifyname=new_databasename|addfilegroup
filegroup_name|modifyfilegroupfilegroup_name{filegroup_property|name=new_filegroup_name}}修改数据库Copyright@200823addfile<filespec>[,…n][tofile
groupfilegroupname]:表示向指定的文件组中添加新的数据文件。addlogfile<filespec>[,…n]:增加新的日志文件。removefilelogical_file_name:删除指定的操作系统文件。removefilegro
upfilegroup_name:删除指定的文件组。modifyfile<filespec>:修改某个操作系统文件。modifyname=new_databasename:重命名数据库。addfilegroupfileg
roup_name:增加一个文件组。modifyfilegroupfilegroup_name:修改某个指定文件组的属性。Copyright@200824修改数据库(举例)ALTERDATABASESampleMO
DIFYFILE(NAME='SampleLog',SIZE=15MB)GOALTERDATABASESampleADDFILE(NAME=SampleData2,FILENAME='c:\ProgramFiles\..\..\Data\Sampl
e2.ndf',SIZE=15MB,MAXSIZE=20MB)GOCopyright@200825管理数据文件和日志文件的增长ALTERDATABASESampleMODIFYFILE(NAME='SampleLog',SIZE=15MB)GOA
LTERDATABASESampleADDFILE(NAME=SampleData2,FILENAME='c:\ProgramFiles\..\..\Data\Sample2.ndf',SIZE=15MB,MAXSIZE=20MB)GO使文件自动增长手动扩充数据库文件添加次要数据库文件Copyri
ght@200826收缩数据库或文件收缩整个数据库企业管理器DBCCSHRINKDATABASE语句DBCCSHRINKDATABASE(数据库名[,目标百分比][,{NOTRUNCATE|TRUNCATEON
LY}])收缩数据库中的一个数据文件企业管理器DBCCSHRINKFILE语句DBCCSHRINKFILE({文件名|文件id}[,目标大小][,{EMPTYFILE|NOTRUNCATE|TRUNCATEONLY}])自动收
缩数据库设置数据库选项autoshrink为trueCopyright@200827收缩数据库或文件(续)收缩语句中的选项NOTRUNCATE——在数据库文件中保留所释放的文件空间。(默认情况)TRUNCATEONLY——
文件中的所有未使用的空间释放给操作系统。不尝试将其重新分配到未分配页。当使用TRUNCATEONLY时,参数target_size和target_percent被忽略。EMPTYFILE——只适用于DBCCSHRINKFILE,将清空数据文件的内容并将数据
移动到同一文件组中的其他文件。Copyright@200828收缩数据库或文件(续)有一个小型的酒店管理系统,其营业数据为150MB,对其中的50%的数据进行备份并删除后,要把数据库立即缩小为初始的大
小(即100MB)。下面哪条语句能够实现该功能?A.DBCCSHRINKFILE(JiuDianData,NOTRUNCATE)B.DBCCSHRINKDATABASE(JiuDianData,25)C.DBCCSHRINKDATABASE(JiuDianData,100)D.ALT
ERDATABASEJiuDianDataSETAUTO_SHRINKON√Copyright@200829删除数据库1.利用企业管理器删除数据库2.利用Drop语句删除数据库Dropdatabasedatabase_name[,…n]说明:只有处于正常状态下的数据库,才能使用DROP语句删除。当
数据库处于以下状态时不能被删除:数据库正在使用;数据库正在恢复;数据库包含用于复制的已经出版的对象。DROPDATABASENorthwind,pubsCopyright@200830事务日志的工作过程应用程序发出数据修改请求1磁盘修改记录在
磁盘上的事务日志3在缓存中定位数据页,或者将数据页读入缓存,并修改2缓存磁盘检查点将已提交的事务写入数据库中4Copyright@200831第2章创建和管理数据库创建数据库创建文件组管理数据库数据结构介绍Copyright@200832数据结构介
绍数据存储方式页和扩展盘区类型管理文件空间的页跟踪表和索引的页Copyright@200833数据库数据存储方式扩展盘区(8个连续的8KB页)页(8KB)表,索引数据每行大小最多8060字节数据(文件).mdf或.ndf日志(文件).IdfCopyrigh
t@200834页和扩展盘区类型页的类型(八种)页可用空间(PFS)页全局分配映射表(GAM)页和辅助全局分配映射表(SGAM)页索引分配映射表(IAM)页大容量更改映射表页差异更改映射表页数据页文本/图像页索引页Copyright@200835页和扩展盘区类型(续)统一
扩展盘区空闲空间混合扩展盘区扩展盘区的类型混合扩展盘区:包含2个或多个对象的页的扩展盘区称为“混合扩展盘区”。每张表起始于一个混合扩展盘区。主要为跟踪空间的页及包含小对象的页使用混合扩展盘区统一扩展盘区:将所有八页分配给单个对象的扩展盘区称为“统一扩展盘区”。在表或
索引需要超过64KB空间时使用Copyright@200836管理文件空间的页混合扩展盘区(文件第一个盘区)SGAMGAM首页PFS12345678Copyright@200837管理文件空间的页每个文件的第
一个扩展盘区是混合扩展盘区,包含一个文件的页首页和紧接着的三个分配页文件的页首页:包含该文件的特性信息PFS(页可用空间)页:包含有关文件中以页为单位的可用空间的信息。每个PFS页可以跟踪8000个连续页,将
近64MB的数据。PFS页对每一页都有一个相应的字节,跟踪:该页是否已分配该页是在混合扩展盘区还是在统一扩展盘区该页可用空间的近似数量Copyright@200838管理文件空间的页(续)GAM(全
局分配映射表)和SGAM(辅助全局分配映射表)页SQLServer使用GAM和SGAM页来确定未使用的扩展盘区或有未使用页的混合扩展盘区的位置GAM和SGAM配合使用,每对管理63904个扩展盘区GAM位设置SG
AM位设置情况10是个可用的扩展盘区。该扩展盘区未被使用01是个可用页。该扩展盘区有一个或多个未使用页00是个没有可用页的扩展盘区。该扩展盘区是统一扩展盘区或已满的混合扩展盘区Copyright@200839SQLServer使用四种类型的页来管理表和索引IAM页:包含有关表或索引使用的扩
展盘区信息的分配页数据页:包含除text、ntext和image数据之外的内容文本/图像页:包含text、ntext和image内容索引页:包含索引结构跟踪表和索引的页Copyright@200840跟踪表和索引的页(续)混合扩展盘区统一扩展盘区数据第3~8页IAM数据页Copyrig
ht@200841回顾学习完本章后,将能够:创建数据库创建文件组管理数据库描述数据结构