第三讲 数据库的创建与管理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库的创建与管理
●数据库存储结构
●数据库的创建
●数据库的管理
1数据库的存储结构
数据库是相互关联的数据集合,通常是一系列表的结合。
数据库创建的过程就是数据库逻辑设计的物理实现过程。如果能根据ER模型并结合实际情况创建一个性能优异、结构合理并具有良好扩充性能的数据库,将会为后面在数据库基础上开发应用程序奠定坚实的基础,这是数据库管理最重要、最核心的问题。
数据库的创建主要包括数据库及其表、索引、视图、存储过程等对象的创建。
创建数据库时,系统会建立数据库的存储结构。
数据库的存储结构分为逻辑存储结构和物理存储结构两种。
数据库的逻辑存储结构指的是数据库是由哪些性质的信息所组成。实际上,SQL Server 的数据库是由诸如表、视图、索引等各种不同的数据库对象所组成。
数据库的物理存储结构则是讨论数据库文件是如何在磁盘上存储的,数据库在磁盘上是以文件为单位存储的,由数据库文件和事务日志文件组成,一个数据库至少应该包含一个数据库文件和一个事务日志文件。
一、页面
在SQL Server中,数据存储的基本单位是页(Page)。
页的大小是8KB(8192字节),这样数据库上每一兆字节是128页。
每页的开始部分是96B的页首(Page Head),用于存放系统信息,如页的类型、页的可用空间、占据该页的数据库对象的对象标识等。
页有数据页、索引页、文本/图象页等6种(P46)。
二、物理数据库的文件和文件组
1.文件
SQL Server2000将数据库置于操作系统文件之上,数据和日志信息不可能混淆。一个文件只能由一个数据库使用。
有三类文件:
1)主数据文件(.mdf):
是数据库开始的地方,它指向数据库的其他文件,每个数据库都必须具有一个主数据文件。
2)辅助数据文件(.ndf):
包含主数据文件不能放置的数据;一些数据库文件没有辅助数据文件,有的则有多个。
3)事务日志文件(.ldf):
包含用来恢复数据库的日志信息,每个数据库必须具有一个日志文件,可以包含多个。
2.文件组
文件组是文件的集合。对文件进行分组,便于进行数据的管理和分配磁盘空间。
SQL Server2000包含两类文件组:
1)主文件组(Primary File Group):
每个数据库都有一个默认的主文件组,主要包含主数据文件的数据以及其他没有具体规定文件组的文件。
2)用户自定义的文件组:
创建或修改数据库语句中定义关键字Filegroup实现。
3.文件和文件组的设计规则:
♦文件和文件组不能由一个以上的数据库使用;
♦文件只能是一个文件组的成员;
♦事务日志文件不属于任何一个文件组。
注意:数据和事务日志不能属于同一文件或文件组。数据文件和日志文件总是分开存放的。
三、事务日志文件
SQL创建数据库的时候,会同时创建事务日志文件。
事务日志文件存储数据库的更新情况等事务日志信息,当数据库损坏时,管理员使用事务日志恢复数据库。
每一个数据库至少必须拥有一个事务日志文件,而且允许拥有多个日志文件。事务日志文件的扩展名为.ldf,日志文件的大小至少是512KB。
事务日志文件和数据文件必须分开存放,优点如下:
♦事务日志文件可以单独备份;
♦有可能从服务器失效的事件中将服务器恢复到最近的状态;
♦事务日志不会抢占数据库的空间;
♦可以很容易地监测到事务日志的空间;
♦在向数据文件和事务日志文件写入数据时会产生较少的冲突,这有利于提高SQL的性能。
2数据库的创建
创建数据库的三种方法:
◆使用Transact-SQL语言创建数据库
◆使用企业管理器创建数据库
◆使用向导创建数据库
1.Transact-SQL语言简介
SQL中最常用的编程工具是查询分析器。
进入查询分析器的两种方法:
♦从“开始”菜单一路找到SQL中的“查询分析器”启动;
♦先进入“企业管理器”-》“工具”-》“查询分析器”启动
Transact-SQL(T_SQL)语言特点
SQL(结构数据查询语言)主要用于关系数据库中的数据检索(Retrieve)。
SQL语言和第3代语言(C,PASCAL)相比:更加简练、易读、易维护和易扩充。
注意事项:
创建数据库需要一定许可,在默认情况下,只有系统管理员和数据库拥有者可以创建数据库。
数据库名字必须遵循SQL Server命名规则,见P51。
2.使用Transact-SQL语言创建数据库
创建数据库的SQL语句的语法格式:
CREATE DATABASE database_name
[ON[PRIMARY][
[,
[LOG ON{
[FOR LOAD|FOR ATTACH]
其中:
用[]括起来的内容表示是可选的;[,…n]表示重复前面的内容;用<>括起来表示在实际编写语句时,用相应的内容替代;用{}括起来表示是必选的;类似A|B的格式,表示A和B只能选择一个,不能同时都选。
[NAME=logical_file_name,]
FILENAME=‘os_file_name’
[,SIZE=size]
[,MAXSIZE={max_size|UNLIMITED}]
[,FILEGROWTH=growth_increment][,…n]
FILEGROUP filegroup_name
各参数的含义(如下):
database_name:新数据库的名称。数据库名称在服务器中必须唯一,最长为128个字符,并且要符合标识符的命名规则。每个服务器管理的数据库最多为32767个。
ON:指定存放数据库的数据文件信息。
PRIMARY:用于指定主文件组中的文件。主文件组的第一个由
LOG ON:指明事务日志文件的明确定义。如果没有本选项,则系统会自动产生一个文件名前缀与数据库名相同,容量为所有数据库文件大小1/4的事务日志文件。
FOR LOAD:表示计划将备份直接装入新建的数据库,主要是为了和过去的SQL Server 版本兼容。
FOR ATTACH:表示在一组已经存在的操作系统文件中建立一个新的数据库。
NAME:指定数据库的逻辑名称。
FILENAME:指定数据库所在文件的操作系统文件名称和路径,该操作系统文件名和NAME 的逻辑名称一一对应。
SIZE:指定数据库的初始容量大小。如果没有指定主文件的大小,则SQL Server默认其与模板数据库中的主文件大小一致,其它数据库文件和事务日志文件则默认为1MB。指定大小的数字size可以使用KB、MB、GB和TB后缀,默认的后缀为MB。Size中不能使用小数,其最小值为512KB,默认值为1MB。主文件的size不能小于模板数据库中的主文件。
MAXSIZE:指定操作系统文件可以增长到的最大尺寸。如果没有指定,则文件可以不断增长直到充满磁盘。
FILEGROWTH:指定文件每次增加容量的大小,当指定数据为0时,表示文件不增长。增加量可以确定为以KB、MB作后缀的字节数或以%作后缀的被增加容量文件的百分比来表示。默认后缀为MB。如果没有指定FILEGROWTH,则默认值为10%,每次扩容的最小值为64KB
【例1】创建一个只含一个数据文件和一个事务日志文件的数据库,数据库名为JXGL1,主数据库文件逻辑名称为jxgl1_data,数据文件的操作系统名称jxgl1.mdf,数据文件初始大小为5MB,最大值200MB,数据文件大小以10%的增量增加。日志逻辑文件名称jxgl1_log,