《网络数据库》教程 第3章 数据库创建与管理
第3章 数据库创建与管理
在客户机/服务器数据库系统中,有两个主要的组成部分,这就是程序和数据库结构。程序是为基于客户机的用户访问数据库提供一个用户界面,而数据库结构是用来管理和存储服务器上的数据。
数据库主要是存储了数据的表的集合以及其他的数据库对象。
SQL Server可以同时支持许多数据库,每一个数据库既可以存储与另一个数据库相关的数据,也可以存储不相关的数据。
第一节 SQL Server数据库基本知识
一、 数据库对象
SQL Server 2000数据库中的数据在逻辑上被组织成一系列对象,当一个用户连接到数据库后,他所看到的是这些逻辑对象,而不是物理的数据库文件。
SQL Server 2000中有以下数据库对象:关系图、表、视图、存储过程、规则、默认、用户自定义的数据类型、用户自定义函数等,如图3-1所示。
图3-1 数据库对象
二、 标识符命名规则
1.第一个字符必须是大小写字母,以及来自其他语言的字母字符,也可以是汉字、下划线(_)、at符号(@)或数字符号(#)。
2.后续字符可以是字母、基本拉丁字母、十进制数字、at符号(@)、美元符号($)、数字符号(#)或下划线(_)。
1
《网络数据库》教程 第3章 数据库创建与管理
3.标识符不能是T-SQL语句的保留字。 4.不允许嵌入空格或其他特殊字符。
三、 数据库结构
1.数据库文件
SQL Server 2000用文件来存放数据库,数据库中的所有数据和对象,例如表、触发器和视图,都存储在下面这些操作系统文件中,数据库文件有三类。
⑴ 主数据文件(Primary):用来存放数据,该文件是数据库的起点,每个数据库都必须有并且只有一个主数据文件。
⑵ 其他数据文件(Secondary):也用来存放数据,这些次数据文件是可选的,它们可以存储那些不在主数据文件中的全部数据和对象。一个数据库可以没有也可以有多个Secondary文件。
⑶ 事务日志文件(Transaction Log):存放事务日志,这些日志文件保存了用于恢复数据库的全部事务日志信息。每个数据库都必须有一个或多个日志文件。
一般情况下,一个简单的数据库可以只有一个主数据文件和一个日志文件。如果数据库很大,则可以设置多个Secondary文件和日志文件,并将它们放在不同的磁盘上。
默认情况下,数据库文件存放在\\MSSQL\\DATA\\目录下,数据文件名为“数据库名_Data.MDF”,日志文件名为“数据库名_Log.LDF”。数据库的创建者可以在创建时指定其他的路径和文件名,也可以添加Secondary文件和更多的日志文件。 2.数据库文件组
文件组就是文件的集合。为了管理和数据分配的方便,文件组允许多个数据库文件组成一个组,对它们整体进行管理。比如,可以将三个数据文件(data1.mdf、data2.mdf和data3.mdf)分别创建在三个盘上,这三个文件组成文件组fgroup1,在创建表的时候就可以指定一个表创建在文件组fgroup1上。这样该表的数据就可以分布在三个盘上,在对该表执行查询时,可以并行操作,大大提高了查询效果。 3.文件和文件组规则
SQL Server的数据库文件和文件组必须遵循以下规则:
? 一个文件或文件组只能被一个数据库使用,不能用于多个数据库; ? 一个文件只能属于一个文件组;
? 一个数据库的数据信息和日志信息不能放在同一个文件或者文件组中,数据文
件和日志文件总是分开的。
? 日志文件永远也不能是任何文件组的一部分,日志文件总是分开的。
2
《网络数据库》教程 第3章 数据库创建与管理
4.数据库空间管理
SQL Server可管理的最小空间是以页为单位的,每一页的大小是8KB,即8192字节。在表中,每一行数据不能跨页存储。这样,表中每一行的字节数不能超过8192个字节。每8个连续页称为一个簇,即簇的大小是64KB。每个表或者索引最少要占一个簇的空间,也就是说每一个表或者索引最小也是64KB。
四、 事务日志
每个数据库都有一个相关的事务日志,事务日志记录了SQL Server所有的事务和由这些事务引起的数据库的变化,即事务日志记录了对数据库的所有修改操作。在数据库中数据的任何改变写到磁盘之前,这个改变首先在事务日志中做了记录。
事务日志记录了每一个事务的开始、对数据的改变和取消修改的足够信息,随着对数据库的操作,日志是连续增加的。SQL Server使用数据库的事务日志来恢复事务。所以事务日志可以具有以下三个作用。 1.恢复单个事务
当执行RELLBACK语句,或SQL Server发现错误时,回滚未完成的事务所做的修改。
2.在SQL Server启动时恢复所有未完成的事务
当SQL Server出错停机时,事务的改变可能一部分被写入数据库文件,而另一部分还没有被写入,这样就造成了数据库中数据的不一致。事务日志可以使在SQL Server重新启动时回滚所有未完成的事务,以保证数据库的一致状态。 3.恢复数据库时,将数据库向前滚动到出错前一秒的状态
数据库从全库备份或差异备份恢复后,利用事务日志可以回滚所有未完成的事务,使数据库恢复到出错前一秒的状态。
五、 系统数据库
在创建任何数据库之前,打开企业管理器的“SERVER(Windows NT)/数据库”目录,可以看到系统中已经有了六个数据库。它们是SQL Server的系统数据库和实例数据库。与用户数据库不同,系统数据库和实例数据库是在安装SQL Server 2000时由安装程序自动创建的。
SQL Server 2000有四个系统数据库,它们分别是:master数据库、tempdb数据库、model数据库和msdb数据库。另外二个数据库pubs和northwind数据库是SQL Server的实例数据库,实例数据库作为学习工具使用,SQL Server在线手册中的很多例子都是在
3
《网络数据库》教程 第3章 数据库创建与管理
这两个数据库上进行的。下面主要介绍系统数据库。 1.master数据库
它记录了SQL Server系统级的信息,包括系统中所有的登录帐户、系统配置信息、所有数据库信息、所有用户数据库的主文件地址等,这些信息都记录在master数据库的表中,为了与用户创建的表相区别称为系统表,表名都以“sys”开头。
master数据库中还有很多系统存储过程和扩展存储过程。 2.tempdb数据库
用于存放所有连接到系统的用户的临时表和临时存储过程,以及SQL Server产生的其他临时性的对象。Tempdb是SQL Server中负担最重的数据库,因为几乎所有的查询都可能需要使用它。
在SQL Server关闭时tempdb数据库中的所有对象都被删除,每次启动SQL Server时都会重新创建tempdb数据库。
tempdb数据库可以按照需要自动增长,每次系统启动时,tempdb数据库都被重置为默认的大小(8.0MB)在以后的工作中,当tempdb数据库空间不够时,系统都将自动扩展tempdb数据库的大小。 3.model数据库
model数据库是系统所有数据库的模板,这个数据库相当于一个模子,所有在系统中创建的新数据库的内容,在刚创建时都和model数据库完全一样。
刚刚完成SQL Server安装时,model数据库数据库就已经有了18个表以及一些视图和存储过程,因此用户创建的每个数据库中都将有这些对象。这18个表是另一类的系统表,它们的表名也是以“sys”开头的,其内容是有关数据库的结构等重要信息。 4.msdb数据库
SQL Server代理(SQL Server Agent)使用msdb数据库来安排报警、作业,并记录操作员。
六、估算数据库的空间需求
作为数据库管理员,主要任务之一就是创建数据库,并且需要为每个文件指定容量。必须尽可能准确地估算数据库容量,以免浪费磁盘空间资源或者因估计不足造成数据库的空间不够。
许多因素会影响数据库最终的大小,在估算数据库容量时要考虑如下因素: 每行记录的大小; 记录数量;
4
《网络数据库》教程 第3章 数据库创建与管理
表的数量;
索引的数量及索引大小; 数据库的对象的数量和大小; 事务日志的大小; 数据库的计划增加量;
七、确定数据库的数目
当一个企业或部门确定要建立数据库系统之后,接着就要确定这个数据库系统与企业中其它部分的关系。因此,需要分析企业的基本业务功能,确定数据库支持的业务范围,是建立一个综合的数据库,还是建立若干个专门的数据库。
从理论上讲,我们可以建立一个支持企业全部活动的包罗万象的大型综合数据库,也可以建立若干个支持范围不同的公用或专用数据库。
一般来讲,前者难度较大,效率也不高;后者比较分散,但相对灵巧,必要时可通过联接操作将有关数据联接起来,而数据的全局共享一般可利用建立在数据库上的应用系统来实现。
在各种规模的企业当中,同时在不同部门内维护众多中小型数据库已成为一种常见现
象。通常情况下,这些数据库或服务器被置于IT部门负责日常维护管理的系统范畴之外,因此,它们无法达到企业在设计、实现及维护方面所制订的IT标准。
第二节 创建数据库
一、 使用企业管理器创建数据库
使用企业管理器创建自己的用户数据库,可以采用两种方法:第一种,使用创建数据库向导;第二种,在控制面板树上选择数据库,然后选择新建数据库菜单命令直接创建用户数据库。
在企业管理器中直接创建用户数据库的步骤如下: ⑴ 打开企业管理器;
⑵ 在控制面板目录中选择“数据库”节点;
⑶ 在“数据库”节点上单击右键,然后在弹出的菜单中选择“新建数据库”,出现如图3-2所示“数据库属性”对话框。
在“数据库属性”对话框中有三个标签页,分别是“常规”、“数据文件”和“事务日志”,在完成这三个标签页的内容设置之后,就完成了数据库的创建工作。
5
第3章 数据库创建与管理



