




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、5数据库的创建5-1Enterprise Manager管理工具5-2注册SQL Server5-3内建数据库5-4数据库结构5-5创建新的数据库5-6数据库选项5-7数据库的删除与分离本章将介绍数据库的结构以及如何建立、管理数据库,不过,在开始介绍数据库的操作前,先来看看一些Enterprise Manager管理工具常用的操作。5-1 Enterprise Manager管理工具Enterprise Manager可以说是SQL Server 2000最主要的管理工具,所有管理者的操作都可以在这个管理工具上进行,如建立数据库、进行数据转换、备份与回存数据等,而且也可以在这个MMC控制台中调
2、用其他的管理工具。5-1-1Enterprise Manager画面Enterprise Manager的画面如图15-1所示,包含一个菜单、两个工具栏,以及左右两个窗格,左边的目录窗格是一个树状式结构显示目录的内容,右边的清单窗格则是显示选取项目内的内容清单,感觉上类似Windows系统中的资源管理器。图5-1 Enterprise Manager画面用户可以在树状目录窗格中,选取目录名称前方的/按钮展开/缩合目录的内容。例如,我们想要知道数据库目录内的内容,可以点取数据库目录前方的按钮,这时它会展开数据库目录显示该SQL Server所包含的数据库项目,如图5-2所示。图5-2 展开数据库
3、目录5-1-2Enterprise Manager的操作在Enterprise Manager管理对话框中,除了可以利用它的菜单与工具栏来进行各项管理操作外,另一个较常用到的操作方式是利用鼠标右键打开的快捷菜单来进行操作。当我们右击鼠标时,它会根据我们选取的项目类型,在打开的快捷菜单中列出所有可以在该选取项目上操作的工作,让管理者可以更容易地找到他所要进行的功能项目。例如,在数据库目录上右击鼠标,打开的快捷菜单如图5-3所示,表示我们可以在数据库目录内进行“附加数据库”、“备份数据库”、“还原数据库”等操作。图5-3 数据库目录的快捷菜单在某个数据库项目上按鼠标右键,将打开如图5-4所示的快捷
4、菜单,通过这个快捷菜单,可以在该选取的数据库上进行“导出数据”、“生成SQL脚本”、“收缩数据库”等工作。图5-4 数据库项目的快显功能5-1-3向导的使用在SQL Server 2000中,提供了许多的向导,以Step-by-Step的方式,带领数据库系统管理人员进行各项设置完成操作。我们可以利用工具栏上的执行向导工具按钮,或者菜单上的“工具向导”功能,打开“选择向导”对话框。“选择向导”对话框的画面如图5-5所示,它包含SQL 2000所提供的所有向导,并根据应用的对象类型分类分层显示。例如,应用在数据库上的向导,如“创建数据库向导”,显示在“数据库”类别的下层;用来做数据转换的向导,如“
5、DTS导入向导”,显示在“数据转换服务”类别中。只要在“选择向导”对话框的向导清单中选择一个向导,然后单击“确定”按钮,就启动该选择的向导。图5-5 “选择向导”对话框5-2 注册SQL Server在Enterprise Manager中,只能够管理已经在其上注册的SQL Server。默认Enterprise Manager管理工具会自动将本机上的SQL Server注册到SQL Server组上,如果要管理的SQL Server尚未注册,可以利用下面的方式注册SQL Server。5-2-1使用“注册服务器向导”注册首先,来看看如何使用注册服务器向导,将SQL Server(YY)注册到
6、Enterprise Manager控制台上。(1)在工具栏上单击执行向导工具按钮,在打开的“选择向导”对话框中选择“注册服务器向导”项目,然后单击“确定”按钮,激活注册SQL Server向导。(2)在注册SQL Server向导的欢迎对话框中单击“下一步”按钮,然后在“选择SQL Server”中将要注册的服务器名称YY增加到新增的服务器列表中,并单击“下一步”按钮。图5-6 注册SQL Server向导图5-7 选择要注册的SQL服务器(3)在“选择身份验证模式”中,选择要联机该SQL服务器所用的身份验证方式,在这里选择使用“Windows身份验证”,以登录计算机的帐户核认权限;如果要使
7、用SQL帐户联机SQL服务器,选择下面的“SQL Server身份验证”,单击“下一步”按钮。图5-8 选择身份验证模式(4)在“选择SQL Server组”中,选择SQL Server要加入到哪一个服务器组,在这里选择将它加入到现有的“SQL Server组”组中;如果要建立一个新的组,可以选择下方的“新建的顶层SQL Server组”选项按钮,并在下方的“组名”文本框中输入要建立的新组名称,单击“下一步”按钮。图5-9 选择加入的群组(5)“完成注册SQL Server向导”表示所有的设置动作皆已完成,这时用户可以单击“完成”按钮,开始根据前面步骤中的设置注册SQL服务器。如果要改变先前步
8、骤中的设置,可以在单击“完成”按钮前,随时利用对话框中的“上一步”按钮,将画面切换至前一个设置画面。图5-10 完成注册SQL Server向导(6)当SQL Server注册完成,会打开“注册SQL Server消息”对话框,显示注册的结果,如图5-11显示的“服务器注册完成”字样,表示注册YY服务器的动作已经顺利完成。图5-11 注册消息(7)最后只要单击“关闭”按钮关闭对话框,就完成在Enterprise Manager中注册SQL服务器的操作。5-2-2直接设置注册属性其实如果用户已经很熟悉注册SQL服务器的设置项目,也可以选择不通过“注册SQL服务器”向导,直接以设置注册属性的方式来
9、注册SQL服务器,以简化所需设置的对话框,其设置方法如下:(1)在Enterprise Manager管理对话框的工具栏上,单击注册服务器工具按钮,或是选取“操作”菜单上的“添加SQL Server注册”命令。(2)如果您是第一次执行这个功能,或者未设置不再使用向导,这时会激活“注册SQL Server”向导,请选取“我希望今后在执行该任务时不使用向导”复选框,表示要直接设置注册属性,而不需要使用向导协助注册,然后单击“下一步”按钮。 图5-12 单击注册服务器按钮 图5-13 注册SQL Server向导特别说明 一旦选取了“我希望今后在执行该任务时不使用向导”复选框,以后执行“添加SQL
10、Server注册”功能时,将不再激活“注册SQL Server”向导,而是直接打开“已注册的SQL Server属性”对话框。(3)打开“已注册的SQL Server属性”对话框,在“服务器”文本框中输入要注册的SQL Server的名称,然后选择用户验证的方式,在这里选择“使用Windows身份验证”单选按钮,直接以登录操作系统的用户帐户连接SQL服务器。接着在“服务器组”下拉列表中选择该SQL Server要注册到哪一个服务器组中。图5-14 注册SQL Server属性(4)单击“确定”按钮,关闭“已注册的SQL Server属性”对话框,切换回Enterprise Manager画面,
11、这时可以在“SQL Server组”中发现YY服务器。图5-15 成功注册MY- SQL服务器5-2-3更改注册一旦将SQL服务器注册在Enterprise Manager中,以后所有利用Enterprise Manager对该SQL服务器的操作,都会根据注册的内容连接指定的SQL服务器。因此,当SQL服务器本身的设置有所变动,如改变用户权限,原先注册的内容可能已不再适用,无法顺利连接SQL服务器。这时,我们就必须修改SQL服务器的注册内容。要更改已注册SQL服务器的注册内容,可以在选取要更改的SQL服务器后,利用菜单上的“操作编辑SQL Server注册属性”功能,来打开“已注册的SQL S
12、erver属性”对话框,如图5-16所示。图5-16 “已注册的SQL Server属性”对话框修改设置的注册内容后,单击“确定”按钮即完成更改注册内容的动作。有关这个“注册的SQL Server属性”对话框的联机设置项目,我们在前一个小节中已经提到过,在此就不再重复叙述。只简单说明一下属性对话框下面的三个复选框。“显示控制台中显示SQL Server的状态”复选框是用来设置是否要在控制台上显示SQL服务器的状态;“显示系统数据库和系统对象”复选框是设置是否要显示系统数据库及系统对象,当您不需要使用到这些系统对象时,可以取消这个复选框,以简化显示的内容;“在连接时自动启动SQL Server”
13、复选框是设置在执行联机功能时,是否要自动启动SQL Server。5-2-4删除注册当我们对某一个已注册的SQL服务器已经不再具有存取权限,或者不再需要在Enterprise Manager中操作管理它,可以将它从Enterprise Manager中删除。要在Enterprise Manager中删除一个已注册的SQL Server很简单,只要在选取要删除注册的SQL服务器之后,选择“操作”|“删除SQL Server注册”命令,即可完成删除SQL注册的操作。5-3 内建数据库在SQL Server系统中,执行时所会用到的相关信息,如系统对象、组态设置等信息,也是以数据库的形式存在,而这些存
14、放系统信息的数据库也称为系统数据。当我们完成安装SQL Server系统后,会在SQL数据库系统建立master,model,msdb以及tempdb等四个系统数据库,这四个系统数据库的作用说明如下:· master系统数据库可以说是SQL Server的主要数据库,它记录了所有启动SQL Server系统、执行操作时所需要的信息。包含:激活参数、登录帐户、系统组态设置以及现有数据库的相关信息等。由于matser数据库记录了如此多且重要的信息,一旦该数据库文件遗失或损毁,将对整个SQL Server系统的运行造成重大影响,甚至使得整个数据库系统瘫痪无法启动,因此建议数据库系统管理员最
15、好要保留最近的master数据库备份,以便在发生问题时,将数据库恢复。· model系统数据库是一个模板数据库,被用来作为在系统上建立数据库的模板,它包含了建立新数据库时所需要的基本对象,如系统表、查看表、登录信息等。当我们在系统上执行建立新数据库功能时,它会复制这个模板数据库的内容至新的数据库上。由于所有新建立的数据库都是继承这个model数据库而来的,因此当我们更改了model数据库上的内容,如增加对象,则稍后建立的数据库也都包含该变动。· msdb系统数据库是提供给“SQL Server 代理”服务使用,用来记录进行调度、警示、操作员与操作等运作所需的相关信息。如果不
16、需要使用到这些SQL Server 代理项目,就不会使用到这个系统数据库。· tempdb系统数据库是一个暂存数据库,包含了所有的暂存表与暂存的存储过程,以及任何其他的暂时存储需求,例如SQL Server所产生的工作表。每当SQL Server被激活,tempdb数据库就会被重新建立,以便让系统以一个初始状态开始执行。由于暂存表与存储过程会在联机中断时自动卸除,而且当系统关机时没有任何联机处于使用状态,因此在从一个SQL Server工作阶段转到另一个工作阶段时,不会有任何tempdb数据需要存储。特别说明 默认在 SQL Server 执行时,tempdb数据库会视需要自动增长。
17、但不同于其他数据库,每当数据库引擎重新激活时,tempdb数据库都会重设回初始大小。因此,如果tempdb的初始大小定义得太小,每次重新激活SQL Server后,系统就必须耗用资源,将tempdb自动增长到能支持工作负载的大小,所以,管理人员应该适当地调整tempdb数据库的初始大小。除了上述四个系统数据库外,SQL Server还提供了两个内建的范例数据库pubs与northwind,这两个范例数据库主要是让用户可以在开始自行建置数据库前,练习数据库的存取操作。5-4 数据库结构谈到数据库的结构,可以从两方面考虑,一个是逻辑结构,也就是一般我们在数据库管理程序中看到的结构;另一个是实体结构
18、,也就是数据库实际存储的方式,通常用户不需要接触到这部分。5-4-1数据库的逻辑组件数据库是由许多的逻辑组件所构成的,在使用数据库时,其实主要是使用一些逻辑组件,如表、视图表、程序与用户。当我们在Enterprise Manager中展开某个数据库时,可以看到如图5-17所示的画面,它会将包含的对象根据对象的类型进行分类显示。图5-17 数据库结构基本上,表是数据库中最基础的组件,用来表示数据库内存储的数据,图表对象是以图形化的方式表示表间的关联,而视图表、存储过程与触发程序等对象,则是用来对表的内容进行处理(更改数据的显示或实际的内容)。另外,用户与角色对象被用来提供用户存取权限的设置,规则
19、对象则被用来确保数据的合理性。1. 表表包含了数据库内所有的数据,它是许多的数据行所构成的。在表内,将数据整理成列与行的格式(与电子表格二维矩阵相似)。每一个数据行代表着一笔记录,而一每个数据列则代表记录内的一个字段。例如,在包含公司员工数据的表内,每一个数据行分别代表每一个员工,而每一个数据列则分别代表员工的细节数据,如员工编号、姓名、地址、工作职称和住家的电话号码等。2. 视图表视图表是定义表数据的视图方法,提供用来将一个或多个表的内容筛选出来,取出全部或部分的数据列,或者是筛选出部分的数据行。例如,在成绩管理系统中,我们会列出所有总平均不及格的学生,这种通过数据选取或筛选动作而产生的虚拟
20、表就称为视图表。我们可以将常用的窗体查询定义成视图表存储于数据库内,在程序中需要列出定义为视图表的数据时,只需在程序中调用执行该视图表的名称,就可得到所需的数据内容。3. 存储过程存储过程是编译成一个执行计划的一组Transact-SQL语句,有助于在应用程序间达成一致的逻辑操作。对于必须经常执行的工作,可以将它的SQL语句与逻辑设计编写成一个存储过程,这样所有要执行该工作的应用程序,就只要执行该存储过程就可以了。感觉上,就好像在程序设计时,将共同部分设计成一个共享模块,供所有需要的程序调用。将业务逻辑编写成存储过程,可以提供单一的控制点,日后若要更改逻辑的设计,只需要修改存储过程的内容,而不
21、需分别在每一个应用程序上作修改,确保业务逻辑能一致地、正确地执行。另外,使用存储过程来执行工作也可以改善工作的执行效率。大部分的工作包含了多个SQL语句,通过条件式逻辑判断的结果决定接下来执行哪些SQL语句。如果将工作的SQL语句与条件式逻辑写成存储过程,它们成为服务器上执行计划的一部分,所有工作都将在服务器上进行,而不需要将结果返回客户端做条件式逻辑判断。4. 用户数据库内的所有对象其使用权限与拥有权都是利用用户帐户来控制的。数据库中的用户是利用用户识别码来识别的,这个用户识别码是由数据库固定角色db_owner的成员定义。用户帐户是数据库特有的,同一个识别码在不同的数据库中,表示不同的用户
22、。例如,sales数据库中的xyz用户帐户与inventory数据库中的xyz用户帐户不同。登录识别码本身不赋予用户存取任何数据库对象的使用权限,它必须与数据库的用户识别码建立关联后,利用该登录识别码登录的用户才可以存取数据库中的对象。如果登录识别码没有明确与数据库中的任何用户识别码建立关联,它将与guest用户识别码建立关联。如果数据库中没有guest用户帐户,除非登录辨识码与有效的用户帐户建立关联,否则它将无法存取数据库。5. 角色角色是一些用户集合成一个单元,通过角色的设置可以同时为一群用户指定使用权限,感觉上与NT帐号中的组类似,当我们授与、拒绝或撤销某个角色的使用权限时,该权限的设置
23、将会套用在所有属于该角色的成员上,这使得使用权限的管理更为简单。我们可以建立角色来代表组织内某类工作人员所执行的工作,并授与该角色适当的使用权限。当工作人员轮调到这个工作时,只要将他们加入成为角色的成员;当他们轮调出这个工作时,则将他们移出角色。您不必在每个人接任或调离工作时,一再授权、拒绝与撤销他们的使用权限。当用户成为角色的成员时,就会自动套用使用权限。6. 规则规则是用来设置检查条件、确保数据的合理性、执行与CHECK条件约束一样的功能,它的存在主要是为了与先前的版本兼容。在限制数值数据行方面,使用CHECK条件约束是较优先、标准的方式,而且CHECK条件约束也比规则更为简洁,一个数据行
24、只能套用一个规则,但可以套用多个CHECK条件约束。CHECK条件约束是CREATE TABLE语句的一部分,而规则则是建立成个别的对象,然后再与数据行连接。7. 默认默认对象是用来定义默认值,如果插入数据行时不指定数据行的值,该数据行就会使用其所定义的默认值。这个默认值可以是验算出常数的任何项目,如:常数、内建函数、数学表达式。在设置默认值时,可以直接在定义表时,为数据行指定默认值;也可以先定义默认对象,然后再将默认对象关联到数据列。8. 用户自定义数据类型用户自定义的数据类型是以SQL Server的系统数据类型为基础,用户自定义的数据类型。一般来说,用户自定义数据类型通常是在当用户必须确
25、保多个表存储相同的数据的数据行其数据类型、长度和Null值属性完全一样时使用。例如,我们可以为产品代号制定一个用户自定义数据类型prod_code,这个prod_code数据类型是以char数据类型为基础所定义出来的。9. 用户自定义函数在程序语言中,函数是指用来封装经常执行的逻辑子程序。如果有任何程序代码必须执行该函数中的逻辑,可以调用该函数,而不必重复所有的函数逻辑。在SQL Server中也允许用户自行将一或多个Transact-SQL语句组成的子程序封装成程序代码,以便重复使用。用户自定义函数是使用CREATE FUNCTION语句来建立的,用户必须具有CREATE FUNCTION权
26、限才可以建立、改变或丢弃用户自定义函数,而每一个完整的用户自定义函数名称都必须是唯一的。自定义函数拥有者以外的用户若要在Transact-SQL语句中使用该函数,必须先被授与适当的函数权限。若要建立或更改参考CHECK条件约束、DEFAULT子句或计算数据行定义的用户自定义函数的表,也必须具有函数的REFERENCES权限。10. 触发程序触发程序是一种特殊的存储过程,它被定义在对表或视图表发出 UPDATE,INSERT或DELETE语句时自动执行,用来在改变数据时自动强制业务规则,或是在处理超出定义的安全界限时进行因应处理程序,如传送电子邮件通知。我们可以利用它来延伸SQL Server条
27、件约束、默认值与规则的完整性检查逻辑,但当条件约束与默认值可提供所需的功能时,就应该使用条件约束与默认值。表可以有多个触发程序,CREATE TRIGGER语句中通过FOR UPDATE,FOR INSERT或FOR DELETE子句,使触发程序将目标放在特定种类的数据修改动作。在指定FOR UPDATE时,可以使用IF UPDATE (column_name)子句,使触发程序将目标放在特定数据列的更新上。11. 条件约束条件约束定义有关数据行中允许值的规则,用来设置SQL Server自动强制数据完整性的方式。使用时,条件约束应优先于触发程序、规则与默认值。查询最佳化器也是使用条件约束定义来
28、建立高效率的查询执行计划。12. 索引索引是一种与表或视图有关的结构,它会加速从表或视图表中撷取数据行的速度。索引中包含由表或视图表的一个或多个数据列所建立的索引键,这些索引键让SQL Server可以快速有效地找到与索引键值相关的一或多个数据行。5-4-2数据库的实体结构前面所介绍的数据库对象,在数据库系统中实际上是以文件形式存在,这些文件就是数据库的实体结构。在SQL Server中将数据库的实体结构分为数据文件(Data File)与事务日志(Transaction Log)文件两种类型,其中数据文件是用来存储数据库的数据内容,而事务日志文件则是记录事务记录。另外,SQL 2000还进一
29、步提供可以将数据库文件分卸成多个文件进行存储。1. 主数据文件每一个数据库都一定会有一个(也只会有一个)主数据文件,这个主数据文件中记录了数据库的起始信息、数据文件成员以及数据库的对象成员,如表、视图表、规则等。SQL Server数据文件的扩展名为mdf,默认数据库主数据文件的文件名为“数据库名称.mdf”。例如,pubs数据库的主数据文件为pubs.mdf。主数据文件一旦建立了之后,就不能将它删除,除非将整个数据库删除。2. 次数据文件不像以前的SQL版本只能将整个数据库的内容全部存放在同一个数据文件上,我们可以将数据库存成多个数据文件,一个主数据文件与多个次数据文件。次数据文件的扩展名为
30、.ndf,一旦为数据库建立一个数据文件后,就不能再更改数据文件的位置,但次数据文件可以被删除。通常我们并不需要为数据库建立次数据文件,除非数据库的内容太多,单一数据文件无法负荷,需要使用次数据文件另行开辟数据的存储位置,或是分散提高数据的存取效率。3. 事务日志文件事务日志文件是用来记录数据库的事务活动记录,收集该数据库的完整事务过程,提供SQL Server作为取消事务、回存事务动作的参考依据,以便在数据库损坏时,能利用事务日志文件中记录的事务内容修复数据库结构。默认事务日志文件的扩展名为ldf,例如,pubs数据库的事务日志文件为pubs.ldf,但我们可以自行指定其他的扩展名,而不要使用
31、ldf。5-4-3文件组当我们为数据库指定多个数据文件时,可以应用SQL Server的文件组功能来管理这些数据文件。这里的文件组并不是根据实体的位置进行区分,而是根据数据文件内要存储的对象项目进行区分。例如,如果我们建立了多个文件组,当建立一个新的对象时,可以自行指定该对象要存放到哪一个文件组中存储。通过文件组的使用,可以分散数据库的存储位置,避免过度占用一个磁盘空间,或磁盘空间占满造成系统无法运作的状况。1. 文件组的组成在SQL Server中,包含主数据文件的文件组称为“主文件组(Primary Filegroup)”,其他的文件组则称为“自定义文件组(User-defined Fil
32、egroup)”。一个数据库只有一个主文件组,这个主文件组在数据库建立时就已经存在。由于系统表是存放在主文件组内,如果主文件组的磁盘空间满了,系统表将无法动作,数据库也就无法运行。因此,建立不同的文件组,将一些较次要的表指定到其他的自定义文件组内存储(最好在不同的磁盘上),分散存储空间,减少主文件组塞满的情况,毕竟仅是自定义文件组塞满,不会发生数据库无法执行的问题。2. 文件组的数据存储方式文件组的数据存储方式是平均分配分散存放于各个数据文件中,同时使用所有的数据文件,而不是依次一次写到一个数据文件中,等数据文件填满后再写到另一个数据文件中。使用这种平均分散存储的方式,可以让各个数据文件同时增
33、长,而不会造成数据过度集中于同一个数据文件(磁盘驱动器)上。3. 数据只读在SQL Server中,可以将某一个文件组设置为只读状态,使得文件组内的所有对象与数据皆无法变动。这对于一些不希望被更改的数据而言非常好,因为我们只要将这些表指定成同一个文件组,并将该文件组设置为只读状态就可以了,而不需要一个表一个表地设置。5-5 创建新的数据库看完这么多有关数据库的信息,接下来就开始建置自己的数据库。常见的建立数据库方法有:· 使用Enterprise Manager管理工具。· 利用创建数据库向导。· 使用SQL语句CREAT TABLE指令。5-5-1使用Enter
34、prise Manager管理工具在Enterprise Manager管理对话框中,建立数据库的设置是通过一个“数据库属性”对话框来完成的,这个“数据库属性”对话框包含“常规”、“数据文件”与“事务日志”三个选项卡,分别设置数据库的名称、数据文件的位置与文件属性,以及事务日志文件的文件位置与属性。对于每一个数据文件,可以设置它的起始大小、是否允许自动增长以及文件大小的上限。下图为数据库属性对话框的“数据文件”选项卡的画面,在上方的数据库文件清单中,每一个字段分别代表数据库文件的文件名称、文件路径位置、起始文件大小、文件组,我们为数据库指定一个或多个数据文件。不过,必须注意的是,一旦在这为它指
35、定了数据文件并且建立后,数据文件的路径位置就不能再更改,因此在设置数据文件时,请利用数据文件名称旁的按钮,确认文件的路径位置。图5-18 “数据库属性”对话框下方的文件属性是用来设置选取的数据文件的自动增长特性,也就是设置当数据库的数据量填满数据文件时要如何处理。· “文件自动增长”选项组是用来设置是否要自动扩增数据文件的大小,选取“文件自动增长”复选框,表示要在数据文件占满时自动扩增数据文件的大小;反之,不选取,则数据文件将不会扩增。· “文件增长”是设置当数据文件要自动扩增时要扩增的大小,我们可以选择以固定的MB来设置扩增量,也可以以增长的百分比来表示,例如上图设置表示
36、要扩增10%的空间。· “最大文件大小”是设置数据文件的增长上限,也就是设置数据文件大小限制,在这里可以选择不设限制,让数据文件无限扩充,直到占满整个磁盘空间为止。现在就来看看如何在Enterprise Manager中建立一个新的数据库,在下面的步骤中,将在我们的SQL Server(YY)中建立一个名称为Trade的数据库。(1)首先在树状目录窗格中选取要建立新数据库的SQL服务器(YY)如图5-19所示,然后在工具栏上单击新增数据库工具按钮,这时会打开如图5-20所示的“数据库属性”对话框。图5-19 数据库画面(2)在“常规”选项卡中输入要建立的数据库名称,在这要里要建立一个
37、名称为“Trade”的数据库,故在“名称”文本框中输入“Trade”。(3)切换到“数据文件”选项卡,设置数据库文件的位置以及文件属性。如图5-21所示,表示这个数据库只要有一个主数据文件(Trade_Data)就够了,而这个数据文件的初始文件大小为1MB,可以不断自动增长,直到占满整个磁盘,每次以10%的量增长。图5-20 指定数据库名称图5-21 设置数据库文件的位置与属性(4)切换到“事务日志”选项卡,设置事务文件的位置以及文件属性。同样也设置这个事务日志文件Trade_Log的初始文件大小为1MB,每当数据文件占满了就自动扩增10%的空间,直到它占满整个磁盘。图5-22 设置事务文件的
38、位置与属性(5)最后单击“确定”按钮,开始进行建立数据库及相关数据文件的操作。建立完成后,可以在数据库目录中发现刚才建立的数据库Trade。图5-23 数据库画面5-5-2利用创建数据库向导SQL Server 2000中提供许多向导协助管理人员完成各项工作,其中“创建数据库向导”可以协助管理人员以对话框设置的方式建立数据库。比起前面介绍的通过数据库属性对话框的方式,使用创建数据库向导需要较多的操作画面,但相对它对设置项目有较清楚的说明,因此如果您对数据库的建立还不熟悉,不妨使用向导来协助您。使用创建数据库向导建立的数据的方式如下,我们将建立一个名称为“Trade2”的数据库。(1)首先在菜单
39、上选择“工具”|“向导”命令,打开“选择向导”对话框,然后展开数据库项目,并选择“创建数据库向导”项目,单击“确定”按钮后,激活创建数据库向导。图5-24 选择创建数据库向导(2)首先会看到如下图的欢迎画面,在这个欢迎画面中会显示相关信息,简单地说明这个向导的整个设置程序,单击“下一步”按钮,切换到下一个设置画面。图5-25 欢迎画面说明整个设定程序(3)在“数据库名称”文本框中,输入要建立的数据库名称“Trade2”,这个名称不能与现有的数据库名称重复。然后分别在“数据库文件位置”与“事务日志文件位置”两个文本框中指定要存放该数据库数据文件与事务日志文件的目录位置,在这里直接使用系统默认的目
40、录位置“C:Program FilesMicrosoft SQL ServerMSSQLdata”,如果要指定其他的目录位置,可以在文本框中指定,或者利用文本框旁的按钮来浏览系统的目录结构,如图5-26所示。设置完毕后,单击“下一步”按钮,切换设置画面。图5-26 设定数据库名称以及数据文件与事务日志文件的位置(4)在图5-27所示的“文件名”字段中输入“Trade2_Data”,在“初始大小”字段中输入10,表示要建立一个初始文件大小为10的数据文件Trade_Data。在数据库文件清单中,可以分行指定多个数据文件,并分别为每一个数据文件指定初始文件大小。设置完毕后,单击“下一步”按钮,切换
41、设置画面。图5-27 指定数据文件的名称以及文件的初始大小(5)选择“数据库文件自动增长”单选按钮,然后选取“以兆字节为单位增长文件”单选按钮,并在其右方的文本框中数入数值1,表示允许在数据库文件在数据填满时自动扩增,每次扩增1MB。在“最大文件大小”选项组中选取“文件增长的最大值”,在右方的文本框中输入数值“50”,表示要限制数据文件最多只能增长到50MB。设置完毕后,单击“下一步”按钮,切换设置画面。图5-28 设置数据库文件的自动增长量(6)在事务日志文件列表中指定事务日志的文件名称以及文件的初始大小,在这里设置事务日志文件的文件名称为Trade2_Log,文件的初始大小为1MB。图5-
42、29 设置事务日志文件的文件名称与文件的初始大小(7)设置事务日志文件的文件自动增长量以及文件增长的上限,在这里设置允许事务日志文件在填满数据时自动扩增,每次扩增原文件大小的10%,而文件的大小没有限制。图5-30 设置事务日志文件的自动增长量(8)打开完成对话框表示建立数据库的设置已经设置完成,它会在信息框中显示前面几个对话框中所设置的内容。可以检查内容是否正确,如果不正确,可以利用“上一步”按钮切换到前面的设置画面修改设置;如果显示的设置内容无误,请单击“完成”按钮,让系统开始根据这些设置内容建立数据库。图5-31 完成对话框显示设置信息(9)当数据库建立完成后,会显示一个信息对话框,告诉
43、用户数据库已经成功建立,单击信息对话框的“确定”按钮后,它会询问是否继续对创建的数据库建立维护计划,在这单击“否”,结束创建数据库向导。图5-32 是否建立维护计划完成上述操作后,可以在SQL服务器中发现这个新建立的数据库(Trade2),而且也可以从文件系统中找到它的数据文件(Trade2_Data.mdf)与事务日志文件(Trade2_Log.ldf)。5-5-3CREATE DATABASE指令除了前面介绍的两种图形化接口方式建立数据库外,也可以利用Transact-SQL的语法来建立数据库。建立数据库的Transact-SQL指令为CREATE DATABASE指令,其使用语法如下:C
44、REATE DATABASE 数据库名称 ON PRIMARY (主数据文件),(次数据文件), .n , FILEGROUP 文件组名称 (次数据文件), .n LOG ON (事务日志文件), .n COLLATE 默认置序 FOR LOAD | FOR ATTACH 数据文件(主数据文件与次数据文件)与事务日志文件的设置格式如下,定义的内容包括:名称(Name)、文件名称(FILENAME)、起始大小(SIZE)、最大增长值(MAXSIZE)以及增长量(FILEGROWTH)。 ( NAME = 名称 , FILENAME = 文件名称, SIZE = 起始大小 , MAXSIZE =
45、最大限制 | UNLIMITED , FILEGROWTH = 增长量 )这样一大串的指令,看似有点复杂,但其实只要弄清楚创建数据库时的几个设置项目,然后在CREATE DATABASE指令中指定特殊要设置的部分,其余没设置的部分就采用默认值。例如,建立数据库最简单的指令就是:CREATE DATABASE db1这行CREATE DATABASE指令将会使用默认值在SQL服务器上建立一个名为“db”的数据库。如果要自行指定数据文件与事务日志文件的文件位置与自动增长特性,例如,要建立一个名称为“DB2”的数据库,其数据文件的名称为“db2_data”、文件名为“C:DATABASEDB2.MD
46、F”、初始大小为“10MB”、最大值为“50MB”、每次增长“1MB”;其事务日志文件的名称为“db2_log”、文件名为“C:DATABASEDB2.LDF”、初始大小为“10MB”、文件无最大值、每次增长“10%”,可以使用下列CREATE DATABASE指令完成。CREATE DATABASE db2ON PRIMARY(NAME = db2_data,FILENAME = C:DATABASEDB2.MDF,SIZE = 10 ,MAXSIZE = 50,FILEGROWTH = 1 )LOG ON(NAME = db2_Log,FILENAME = C:DATABASEDB2.LD
47、F,SIZE = 10 ,MAXSIZE = UNLIMITED,FILEGROWTH = 10% )有关CREATE DATABASE指定的使用语法,就简单介绍到此,如果需要更详细的使用说明,可以参考“SQL线上说明”。其他有关Transact-SQL的使用,将会在第八章中详细介绍。5-6 数据库选项对于已建立的数据库,可以通过一些数据库选项的设置来决定数据库的特性。只有Sysadmin与Dbcreator固定服务器角色,以及db_owner固定数据库角色的系统管理员、数据库拥有者或成员可修改这些选项。这些选项的设置只会作用在设置的数据库上,而不会影响其他数据库。一旦数据库选项改变后,检查点
48、会自动让修改立即生效。我们可以将数据库选项区分为以下五类: · 自动选项· 数据指针选项· 复原选项· SQL选项· 状态选项 5-6-1自动选项自动选项是用来控制某些自动化行为,包含:AUTO_CLOSE自动关闭、AUTO_CREATE_STATISTICS自动产生统计数据、AUTO_UPDATE_ STATISTICS自动更新统计数据以及AUTO_SHRINK自动压缩等四个选项。1. AUTO_CLOSE自动关闭AUTO_CLOSE选项是用来设置是否自动关闭数据库,如果设置为ON,则当数据库的最后一个用户离开,且完成数据库中的所有程序时,数
49、据库会关闭(完全关机)并且释放所有资源。默认个人版的SQL Server 2000,所有数据库的AUTO_CLOSE选项设为ON,其他版本的SQL 2000,AUTO_CLOSE选项为OFF。当用户要再次使用数据库时,数据库会自动重新打开。如果数据库处于完全关机状态,除非用户要使用数据库而重新激活SQL Server,否则数据库不会被重新打开。当AUTO_CLOSE选项被设置为OFF时,即使目前没有用户在使用数据库,数据库也会保持打开状态。AUTO_CLOSE选项对于桌面型数据库非常有用,它允许用户以管理一般文件的方式来管理数据库文件。用户可以移动或复制备份,甚至以电子邮件的方式传送给其他用户
50、。如果存取数据库的应用程序会不断地与SQL Server建立与中断联机,就不能将此数据库的AUTO_CLOSE 选项设为ON,因为每次关闭或重新打开数据库联机,会降低其效率。2. AUTO_CREATE_STATISTICS自动产生统计数据这个选项是用来设置是否要自动产生统计数据,默认为ON,在进行查询操作时自动产生数据行的统计数据,产生的统计数据可以改善查询效率,让SQL Server查询最佳化器可以更确定如何评估查询。如果统计数据不再使用,SQL Server 会自动删除它们。若将这个选项设置为OFF时,SQL Server将不会自动建立统计数据,而是需要由手动建立。3. AUTO_UPD
51、ATE_STATISTICS自动更新统计数据这个选项是用来设置是否要自动更新统计数据,默认为ON,当数据的内容被删除或新增时,导致现有的统计数据不在正确时,会自动更新这些统计数据,使其符合最新的状况。如果将数据库的这个选项设置成OFF,则当数据变动时,将不会自动更新统计数据,而需要手动更新。 4. AUTO_SHRINK自动压缩这个选项是用来设置SQL Server是否会定期检查这个数据库的文件空间,并在文件空间过剩时,自动缩减数据文件的空间以减少空间的浪费。如果设置为ON,则当数据库文件(数据文件或事务日志文件)未使用的空间大于25%时,SQL Server会自动将文件大小缩减成25%的剩余
52、空间或数据文件的初始大小(视哪一个较大而定)。如果设置成OFF,数据库文件将不会被自动缩减。默认使用个人版SQL Server时,这个选项选项为ON,其他的版本则是设为OFF。事务记录文件只有在数据库设成简单复原模型或记录文件已备份时,才会被缩小。而且它也不会去缩小一个只读数据库。5-6-2数据指针选项数据指针选项用来控制数据指针的行为与范围,包含CURSOR_CLOSE_ ON_COMMIT与CURSOR_DEFAULT两个选项。1. CURSOR_CLOSE_ON_COMMIT这个选项用来设置当事务认可后打开的数据指针是否自动关闭,默认为OFF,数据指针在事务期间会保持打开,只有在关闭联机
53、或联机逾时时才会关闭数据指针。另外,联机层级的设置将会复写CURSOR_CLOSE_ON_COMMIT的默认数据库设置。默认ODBC与OLE DB客户端会利用联机层级的SET语句,在SQL Server的工作阶段中将CURSOR_CLOSE_ON_COMMIT设成OFF。2. CURSOR_DEFAULT LOCAL | GLOBAL这个选项用来设置数据指针的范围,默认为CURSOR_DEFAULT GLOBAL。如果将它设置为CURSOR_DEFAULT LOCAL,且数据指针在建立时不是定义为GLOBAL,则该数据指针仅适用数据指针建立时的批次、存储过程或触发程序,只有在这个范围中的指针名
54、称是有效的。数据指针可以参考批次、存储过程、触发程序或存储过程OUTPUT参数中的本机数据指针变量。当批次、存储过程或触发程序终止时,该数据指针的配置将会被取消。反之,如果将CURSOR_DEFAULT设置为GLOBAL,且数据指针在建立时不是定义为LOCAL,则该数据指针的范围适用于联机全域。而数据指针的名称可以参考联机执行的任何存储过程或批次中的数据指针,只有在中断联机时才会取消该数据指针的配置。5-6-3复原选项复原选项控制了数据库的复原模式,它包含RECOVER与TORN_PAGE_ DETECTION两个选项。1. RECOVERYRECOVERY复原模型有三种选项可供选择:FULL
55、(完整)、BULK_LOGGED(大量登录)以及SIMPLE(简易)。设置为FULL,则所有的操作,包括:SELECT INTO,CREATE INDEX与大量加载数据这类大量操作,都会被完整记录,数据库备份与事务记录文件备份,可以让数据库从媒体失败中完全复原。设置为BULK_LOGGED,会将所有SELECT INTO,CREATE INDEX与大量加载数据操作的记录工作减至最少,减少记录文件所需的空间。这虽然可以取得较佳的效率与较少的记录文件空间,但相对来说,其损失数据的危险性比完整复原大。SIMPLE复原模块则只能将数据库复原到最后的完整数据库备份,或最后的差异式备份(Different
56、ial Backup)。2. TORN_PAGE_DETECTION这个复原选项默认为ON,允许SQL Server侦测因停电或其他系统中断所造成的I/O操作不完全。损坏页通常是在复原期间被侦测到,因为任何错误写入的页面都会在复原时被读取到。当系统侦测到损坏页时,会产生I/O错误并中断联机;若在复原时侦测到损坏页,数据库也会标记成有疑问。这时必须还原数据库备份,并套用到任何的事务纪录文件备份,因为数据库实际上并不一致。5-6-4SQL选项SQL选项控制了ANSI的兼容性选项,主要包含以下内容。ANSI_NULL_DEFAULT允许用户控制数据库的默认空值属性。当用户自定义的数据类型或数据行定义
57、中NULL或NOT NULL值并未明确指定时,用户自定义的数据类型或数据行定义会使用默认设置作为空值属性。空值属性是由工作阶段与数据库设置时所决定的。当这个选项被设置为ON时,如果在CREATE TABLE或ALTER TABLE时没有明确定义为NOT NULL,则所有用户自定义的数据类型或数据行都默认为允许空值。ANSI_NULLS控制NULL空值的兼容性,默认为OFF。设成ON,所有无效值皆为NULL;若设成OFF,如果非Unicode值与无效值都为NULL,则两者的值为TRUE。在计算数据行或索引视图表中建立或管理索引时,ANSI_NULLS必须被设为ON。ANSI_PADDING控制数据行的填补方式,设成ON,插入varchar数据行的字符数值末尾空白,以及插入varbinary数据行的二进制数值末尾零将不会被删除,而且数值也不会填至数据行的长度。若设成OFF,末尾的空白(针对varchar)与零(针对varbinary)将会被删减,这个设置只会影响新的数据行定义。当ANSI_PADDING为ON时,允许空值的Char(n)与binary(n)数据行将填至数据行的长度;当ANSI_PADDING为OFF时,末尾的空白与零将被删减。不允许空值的Char(n)与binary(n)数据行则一定会填至数据行的长度。在计算数据行或索引视图表中建立或管理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025翻译服务合同(翻译中心)
- 2025网络版有条件借款合同范文
- 2025物业公司服务合同
- 社区个人工作计划提升社区居民教育意识
- 2025财务咨询合同书模板
- 中级收入建筑合同标准文本
- 2025公司员工劳动合同(电子版)模板
- 安阳木质游乐施工方案
- 2025物流和仓储业劳动合同(示范文本)
- 写中介合同样本
- 中国邮政集团公司人才发展规划
- GB/T 4348.3-2012工业用氢氧化钠铁含量的测定1,10-菲啰啉分光光度法
- 深圳市失业人员停止领取失业保险待遇申请表样表
- 静配中心岗前培训测试题附答案
- 《土壤污染与防治》教学课件
- 《公共营养师》课件
- 河北省建筑工程管理规程课件
- 课标版高中《音乐鉴赏》学业水平测试题库(含答案)
- 第13课 现代战争与不同文化的碰撞和交流 课件(17张PPT)
- DB32∕T 3158-2016 内河水上服务区建设标准
- CRRT vs 中毒血液净化模式选择
评论
0/150
提交评论