第2 创建和管理数据库.docx
- 文档编号:14471129
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:19
- 大小:135.43KB
第2 创建和管理数据库.docx
《第2 创建和管理数据库.docx》由会员分享,可在线阅读,更多相关《第2 创建和管理数据库.docx(19页珍藏版)》请在冰点文库上搜索。
第2创建和管理数据库
第2章创建和管理数据库
本章概述
第一章整体介绍了SQLServer的组成及其管理工具。
在本章中,我们将学习SQLServer最基本的操作之一——数据库的创建。
同时将学习诸如设置文件增长和收缩数据库等技能。
这也是一名数据库管理员日常不可缺少的工作。
教学目标
●掌握数据库的创建
●掌握文件组的创建
●掌握数据库的管理
●了解SQLServer数据结构
教学重点
●数据库的创建和管理,包括数据库的选项设置。
●事务日志的工作过程。
教学难点
●本章涉及的数据结构相关知识略难理解,需要大量的数据结构基础知识。
教学资源
课本
知识点
2.1创建数据库
2.2创建文件组
2.3管理数据库
2.4分离和附加数据库
2.5数据结构介绍
2.6推荐操作
实验
实验2-1:
创建ClassNorthwind数据库
实验2-2:
管理ClassNorhtwind事务日志文件的增长
实验2-3:
设置数据库恢复模型
习题
习题1-对应2.1.2事务日志的工作过程
习题2-对应2.3.3收缩数据库或文件
习题3-对应2.1创建数据库
习题4-对应2.2创建文件组
习题5-对应2.1.2事务日志的工作过程
习题6-对应2.3.3收缩数据库或文件
习题7-对应2.2创建文件组
习题8-对应2.1.3设置数据库选项
习题9-对应2.6.3管理文件空间的页
教师光盘
实验文件
教师光盘:
\Labfiles\AllFiles.exe
习题解答
教师光盘:
\Tprep\answer.doc
教学指导手册包
新版幻灯片
教学指导手册包:
\Powerpnt\PPT_2071_2073_02.ppt
先修知识
在正式开始学习本章内容以前,学生须具备下列知识基础。
知识基础
推荐补充
数据结构基础知识,如树、堆栈等。
《数据结构》
建议学时
课堂教学(2课时)+实验教学(2课时)
教学过程
2.1创建数据库
教学提示:
本节主要达到三个目的。
●掌握数据库的创建过程以及相关选项的设置,这个是企业数据管理员最基本的技能之一。
(略讲+演示)
●掌握数据库信息的检索。
(略讲)
●掌握事务日志的工作原理,事务日志是企业数据库的灵魂,只有掌握其工作原理,才能更好的担当数据库管理员。
(精讲)
内容
教学方法
提示
讲授:
创建数据库是数据库程序员需要做的第一件事情。
我们在本节中将学习如何创建数据库以及相关选项。
当然,在创建之前我们需要设计好数据库结构,有了完整的设计才能够实施。
演示:
使用企业管理器创建数据库。
使用SQL语句创建数据库。
阅书:
2.1.1
幻灯:
第3-5页
●注意此时应该提到T-SQL的概念,并且指出我们将在第5章详细介绍SQL语法和用法。
讲授:
事务是作为单个逻辑工作单元执行的一系列操作。
一个逻辑工作单元必须有四个属性,称为ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:
原子性
事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。
一致性
事务在完成时,必须使所有的数据都保持一致状态。
在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。
事务结束时,所有的内部数据结构(如B树索引或双向链表)都必须是正确的。
隔离性
由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。
事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。
这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。
持久性
事务完成之后,它对于系统的影响是永久性的。
该修改即使出现系统故障也将一直保持。
事务日志的作用就是记录设备,保证事务的持久性。
即使服务器硬件、操作系统或SQLServer自身出现故障,SQLServer也可以在重新启动时使用事务日志,将所有未完成的事务自动地回滚到系统出现故障的位置。
阅书:
2.1.2
幻灯:
第6-7页
●补充事务的概念,可以在sqlserver联机丛书中找到,相关内容请在联机丛书的目录中输入“事务”
提问:
数据库不同选项的更改对数据库有哪些影响?
答案都在表2-1
阅书:
2.1.3
幻灯:
第8页
●由于第一章结束时练习过使用SQL联机帮助,这时应该鼓励学生使用联机帮助进行自学
演示:
用书中的例子检索数据库信息。
阅书:
2.1.4
幻灯:
第9页
●需要用演示加深学生的直观印象
讲授:
经过这些学习我们知道了,创建数据库和更改数据库选项的不同方法。
更重要的是,我们了解了事务的概念,并且掌握了事务日志的作用,事务日志在SQLServer中起着相当重要的作用。
2.2创建文件组
教学提示:
本节主要达到两个目的。
●了解文件组的作用。
(略讲)
●掌握文件组的创建方法,这在大型企业应用中,也是提高应用性能的好办法。
(略讲+演示)
内容
教学方法
提示
讲授:
文件组的作用是将不同的对象分配到不同的磁盘驱动器上以达到提高性能的目的。
文件组允许对文件进行分组,以便于管理和数据的分配/放置。
例如,可以分别在三个硬盘驱动器上创建三个文件(Data1.ndf、Data2.ndf和Data3.ndf),并将这三个文件指派到文件组fgroup1中。
然后,可以明确地在文件组fgroup1上创建一个表。
对表中数据的查询将分散到三个磁盘上,因而性能得以提高。
在RAID(独立磁盘冗余阵列)条带集上创建单个文件也可以获得相同的性能改善。
演示:
创建文件组
改变主默认文件组大小
浏览文件组信息
使用42页的例子和表2-4的存储过程
阅书:
2.2
幻灯:
第11-12页
●通过实例,结合图2-2解释文件组为何能够使性能提高(磁盘争用)
2.3管理数据库
教学提示:
本节主要达到三个目的。
●掌握管理数据文件和日志文件的增长的方法,这是作为一名合格的数据库管理员必须具备的技能。
(略讲+演示)
●掌握监视和扩展事务日志的方法。
(略讲)
●掌握收缩数据库的方法。
(精讲+演示)
内容
教学方法
提示
提问:
为什么要管理数据库文件和日志文件的增长?
由于SQLServer对数据存储的方式通常是采用对结构或者树结构,数据库文件和日志文件的大小将对数据库性能产生很大的影响。
因此我们需要管理这些文件的增长。
演示:
扩展数据库文件
P44示例
阅书:
2.3.1
演示:
在联机丛书中找答案
演示:
google的搜索方法
幻灯:
第14-15页
●鼓励学生使用联机丛书或者Internet找答案
演示:
在系统监视器中添加计数器监视事务日志状况
在联机帮助中查询“使用系统监视器进行监视”主题
阅书:
2.3.2
幻灯:
第16页
●具体做法请参考《Windows2000初级管理》
演示:
收缩数据库
P46示例
阅书:
2.3.3
幻灯:
第17-18页
2.4分离和附加数据库
教学提示:
本节主要达到一个目的。
●掌握分离和附加数据库的技能,这也是数据库管理员的基本技能。
(略讲+演示)
内容
教学方法
提示
讲授:
SQLServer允许分离数据库的数据和事务日志文件,然后将其重新附加到另一台服务器,甚至同一台服务器上。
分离数据库将从SQLServer删除数据库,但是保持在组成该数据库的数据和事务日志文件中的数据库完好无损。
然后这些数据和事务日志文件可以用来将数据库附加到任何SQLServer实例上,包括从中分离该数据库的服务器。
这使数据库的使用状态与它分离时的状态完全相同。
如果想按以下方式移动数据库,则分离和附加数据库很有用:
-从一台计算机移到另一台计算机,而不必重新创建数据库,然后手动还原数据库备份。
-移到另一物理磁盘上,例如,当包含该数据库文件的磁盘空间已用完,您希望扩充现有的文件而又不愿将新文件添加到其它磁盘上的数据库。
将数据库或数据库文件移动到另一服务器或磁盘,采用下面的步骤:
1.分离数据库。
2.将数据库文件移到另一服务器或磁盘。
3.通过指定移动文件的新位置附加数据库。
当附加在数据库上时,必须指定主数据文件的名称和物理位置。
主文件包含查找由数据库组成的其它文件所需的信息,除非自分离了数据库后那些文件中的一个或多个已改变了位置。
除主文件外,还必须指出其它任何已改变位置的文件。
否则,SQLServer将试图基于存储在主文件中的不正确的文件位置信息附加文件,且不能成功附加数据库。
如果将数据库附加到的服务器不是该数据库从中分离的服务器,并且启用了分离的数据库用于复制,则应运行sp_removedbreplication从数据库中删除复制。
(有关运行存储过程和系统定义函数的方法,请参阅本书16、17章)或者,可以在分离数据库之前从数据库中删除复制。
分离数据库时所产生的错误可能会防碍干净地关闭数据库和重建事务日志。
如果收到错误信息,请执行下列操作以纠正错误:
重新附加所有与数据库相关联的文件,而不仅是主文件。
解决导致错误信息的问题。
再次分离数据库。
演示:
分离和附加数据库
P例子
阅书:
2.4
幻灯:
第20-23页
2.5数据结构介绍
教学提示:
本节主要达到一个目的。
●了解SQLServer用于存储数据的数据结构,只有在了解了这些底层机制以后,今后做性能优化时才能做到心中有数。
(精讲)
内容
教学方法
提示
讲授:
了解SQLSever数据存储的方法是非常必要的。
不但可以帮助我们精确的计算出数据库选项的设置,还可以帮助我们确定性能优化的策略。
虽然这部分内容比较难,但是希望大家通过查阅资料顺利掌握,这也对本书后面章节内容的理解有很大的帮助。
阅书:
2.5.1
幻灯:
第25-26页
●结合联机丛书中的描述进行深入探讨
讲授:
SQLServer中数据存储的基本单位是页。
在SQLServer2000中,页的大小是8KB。
这意味着SQLServer2000数据库每兆字节有128页。
每页的开始部分是96字节的页首,用于存储系统信息,如页的类型、页的可用空间量、拥有页的对象的对象ID等。
一个页就好比一个抽屉,最多放8K的数据。
但是少于8K,即使只有1K的数据,也需要占用一个8K大小的抽屉。
扩展盘区是一种基本单元,可将其中的空间分配给表和索引。
一个扩展盘区是8个邻接的页(或64KB)。
这意味着SQLServer2000数据库每兆字节有16个扩展盘区。
为了使空间分配更有效,SQLServer2000对只含少量数据的表不分配完整的扩展盘区。
SQLServer2000有两种类型的扩展盘区:
1.统一扩展盘区由单个对象所有,扩展盘区中的所有八页只能由拥有该盘区的对象使用。
2.混合扩展盘区最多可由8个对象共享。
通常从混合扩展盘区中向新表或新索引分配页。
当表或索引增长到8页时,就变成统一扩展盘区。
如果在现有表上创建索引,并且该表包含的行足以在索引中生成8页,则对该索引的所有分配都在统一扩展盘区内进行。
阅书:
2.5.2,2.5.3,2.5.4
幻灯:
第27-32页
●结合联机丛书中的描述进行深入探讨
2.6推荐操作
教学提示:
本节主要达到一个目的。
●掌握本章操作中需要注意的地方。
(略讲)
内容
教学方法
提示
讲授:
通过实践的检验和工程师们对以往经验的总结,我们会有很多推荐操作,记住这些操作对你们今后的工作会有很大的帮助。
阅书:
2.6
幻灯:
第34页
●鼓励学生通过Internet查找更多的经验文章
总结
经过本章的学习,我们了解了下列的知识和内容。
●事务日志在SQLServer中的重要地位。
对事务日志的管理对一个SQLServer管理员来说相当重要。
●使用可视化管理工具和SQL语句对数据库进行操作,包括创建,修改参数,附加和分离,删除以及控制数据库的增长和文件大小。
这些都是一名SQLServer管理员必须精通的技能,在数据库应用的日常维护中的常规工作。
●SQLServer数据存储的数据结构,了解这些内容对我们今后优化数据库应用打下了坚实的理论基础。
在第三章中,我们将更进一步,为数据库创建表。
随堂练习
1.在公司人事管理数据库中使用表Employee记录员工信息,表EmployeeDemographics记录统计信息。
公司大约有2000名员工,员工数量的变化率大约在2%。
员工离职后,记录会保留。
统计信息每年变化9%。
下面是数据库的逻辑设计和脚本设计:
ALTERTABLE[dbo].[Employee]WITHNOCHECKADD
CONSTRAINT[pk_Employee]PRIMARYKEYCLUSTERED
([EmployeeID])
WITHFILLFACTOR=90
GO
ALTERTABLE[dbo].[EmployeeDemographics]WITHNOCHECKADD
CONSTRAINT[pk_EmployeeDemographics]PRIMARYKEYCLUSTERED
([EmployeeID])
WITHFILLFACTOR=90
GO
假设所有的Varchar字段只用到50%,请问创建时SIZE和FILEGROWTH分别为多少?
A.SIZE=1GB
B.SIZE=1MB
C.SIZE=2048K
D.FILEGROWTH=20
E.FILEGROWTH=5%
F.FILEGROWTH=0
正确答案:
(C,E)
分析:
首先估计用户数据的大小:
EmployeeDemographics表
Varchar列160,不足50%的使用率,所以估计需要80byte
剩余的列估计少于30byte
所以一行大约110byte
Employee表
Varchar列150,不足50%的使用率,所以估计需要75byte
剩余的列估计少于30byte
所以一行大约105byte
两张表
表之间为一对一的管理,所以简单估计两张表为225byte
所有行(2000行):
2000*125byte=250000byte
由于填充因子,数据页只填充90%。
250000/0.9=278000,所以2MB足够存放所有数据。
因此将2MB设置为数据库的默认文件大小。
2.使用脚本SQL创建一个名为Employees的数据库。
该数据库需要经常更新,数据库的大小为1G,假设C盘有10G的空间。
下面哪段SQL脚本语言正确?
A.CREATEDATABASEEmployees
ON
(NAME=Employees_dat,
FILENAME=‘C:
\DATA\Employees.mdf,
SIZE=10,
MAXSIZE=1GB,
FILEGROWTH=5)
B.CREATEDATABASEEmployees
ON
(NAME=Employees_dat,
FILENAME=‘C:
\DATA\Employees.mdf,
SIZE=10,
MAXSIZE=1GB,
FILEGROWTH=10%)
C.CREATEDATABASEEmployees
ON
(NAME=Employees_dat,
FILENAME=‘C:
\DATA\Employees.mdf,
SIZE=100,
MAXSIZE=1GB,
Maxsize=UNLIMITED)
D.CREATEDATABASEEmployees
ON
(NAME=Employees_dat,
FILENAME=‘C:
\DATA\Employees.mdf,
SIZE=1GB)
正确答案:
(D)
分析:
使用T-SQL语句CREATEDATABASE创建数据库,使用SIZE=1GB参数设置数据库大小为1GB。
我们不应设置MAXSIZE。
如果设置了max_size,文件会增长到磁盘用满。
因为数据库大小不变,我们不需要设置FILESIZE。
3.在构建一个SQLServer2000的网上数据库时,使用两个RAID阵列来放置数据文件,所有经常访问的表至少有一列有索引,应当采用何种文件放置策略来提高系统的I/O性能?
A.将经常连接的表放在同一个文件组中
将访问频率高的表及其索引放置在不同的文件组中
B.将经常连接的表放在不同一个文件组中
将访问频率高的表及其索引放置在不同的文件组中
C.将经常连接的表放在同一个文件组中
将访问频率高的表及其索引放置在不同的文件组中
D.将经常连接的表放在不同的文件组中
将访问频率高的表及其索引放置在同一个文件组中
正确答案:
(B)
4.在构建一个SQLServer2000的采购系统数据库时,服务器有两个磁盘控制器,一个控制器上连有两个硬盘。
数据库中的两张数据表Order和OrderDetail经常需要连接查询。
应采用什么方法来提高数据库的性能?
(选择两个选项)
A.为四个磁盘上分别创建文件组
B.将Order表上创建索引
C.将OrderDetail表及其索引放置在一个文件组中
D.为两张表分别创建一个文件组
E.将两个文件组分别放置在连接在一个磁盘控制器的磁盘上
F.交叉放置两个文件组
正确答案:
(D,E)
分析:
为了优化性能,我们要将Order表和OrderDetail表的连接优化。
因为经常需要连接两张表。
我们要决定:
●如何创建文件组
●如何在文件组上分配数据和索引
文件组:
一个文件组包含一组文件。
我不必在每个磁盘上存放数据。
我们使用两个文件组,每个包含两个连接在一个磁盘控制器上的磁盘。
这样方便管理。
数据和索引
由于数据表需要经常连接,应此我们应当将两张数据分别放在两个不同的磁盘控制器上。
5.使用下列哪一个选项能够最快速地删除数据表中的数据?
A.使用DELETE语句删除表中的数据
B.使用TRUNCATETABLE语句删除表中的数据
C.使用DROPTABLE语句删除表中的数据
D.使用可更新的游标访问并删除表中的所有记录
正确答案:
(B)
分析:
TRUNCATETABLE在删除数据时比DELETE快。
DELETE每次在物理上删除每一行,并且在事务日志中记录下所有的行。
TRUNCATETABLE释放所有表占有的页面,所以TRUNCATETABLE的速度最快。
TRUNCATETABLE在功能上等同于没有WHERE的DELETE。
但TRUNCATETABLE不能使用在有外键约束的表。
DELETE和TRUNCATETABLE都释放删除行占有的空间。
6.某个数据库中的数据表Sales由于新添加了20000多条数据,数据库的性能大大下降了,为了提高对Sales表查询的性能,应当在SQL查询分析器中运行哪段脚本?
A.EXECsp_updatestats‘resample‘
B.CREATESTATISITCSSalesWITHFULLSCAN
C.Sp_autostaits‘Sales’
D.UPDATESTATISITCSSalesWITHFULLSCANALL
正确答案:
(A)
分析:
由于新添加了20000多条数据,我们要保证统计信息更新。
我们可以新建或更新数据。
sp_updatestats命令对当前数据库中的所有用户自定义表运行UPDATESTATISITCS。
’resample’参数指定sp_updatestats命令使用UPDATESTATISITCS命令的RESAMPLE选项。
新的统计信息继承旧数据的取样率。
布置作业
1.完成书后习题1-9
2.预习书中所有实验,并填写操作步骤。
在实验课上准备操作
案例教学
本章介绍了数据库的创建和基本配置,同时学习了事务日志等理论知识。
但是这些内容非常基础,案例教学此时以开发流程学习和学生分组,任务分配为主。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2 创建和管理数据库 创建 管理 数据库