asp与sql网页数据库程序设计05.docx

上传人:b****4 文档编号:4883507 上传时间:2022-12-11 格式:DOCX 页数:32 大小:589.29KB
下载 相关 举报
asp与sql网页数据库程序设计05.docx_第1页
第1页 / 共32页
asp与sql网页数据库程序设计05.docx_第2页
第2页 / 共32页
asp与sql网页数据库程序设计05.docx_第3页
第3页 / 共32页
asp与sql网页数据库程序设计05.docx_第4页
第4页 / 共32页
asp与sql网页数据库程序设计05.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

asp与sql网页数据库程序设计05.docx

《asp与sql网页数据库程序设计05.docx》由会员分享,可在线阅读,更多相关《asp与sql网页数据库程序设计05.docx(32页珍藏版)》请在冰豆网上搜索。

asp与sql网页数据库程序设计05.docx

asp与sql网页数据库程序设计05

5

数据库的创建

5-1 EnterpriseManager管理工具

5-2 注册SQLServer

5-3 内建数据库

5-4 数据库结构

5-5 创建新的数据库

5-6 数据库选项

5-7 数据库的删除与分离

本章将介绍数据库的结构以及如何建立、管理数据库,不过,在开始介绍数据库的操作前,先来看看一些EnterpriseManager管理工具常用的操作。

5-1EnterpriseManager管理工具

EnterpriseManager可以说是SQLServer2000最主要的管理工具,所有管理者的操作都可以在这个管理工具上进行,如建立数据库、进行数据转换、备份与回存数据等,而且也可以在这个MMC控制台中调用其他的管理工具。

5-1-1 EnterpriseManager画面

EnterpriseManager的画面如图15-1所示,包含一个菜单、两个工具栏,以及左右两个窗格,左边的目录窗格是一个树状式结构显示目录的内容,右边的清单窗格则是显示选取项目内的内容清单,感觉上类似Windows系统中的资源管理器。

图5-1EnterpriseManager画面

用户可以在树状目录窗格中,选取目录名称前方的

/

按钮展开/缩合目录的内容。

例如,我们想要知道数据库目录内的内容,可以点取数据库目录前方的

按钮,这时它会展开数据库目录显示该SQLServer所包含的数据库项目,如图5-2所示。

图5-2展开数据库目录

5-1-2 EnterpriseManager的操作

在EnterpriseManager管理对话框中,除了可以利用它的菜单与工具栏来进行各项管理操作外,另一个较常用到的操作方式是利用鼠标右键打开的快捷菜单来进行操作。

当我们右击鼠标时,它会根据我们选取的项目类型,在打开的快捷菜单中列出所有可以在该选取项目上操作的工作,让管理者可以更容易地找到他所要进行的功能项目。

例如,在数据库目录上右击鼠标,打开的快捷菜单如图5-3所示,表示我们可以在数据库目录内进行“附加数据库”、“备份数据库”、“还原数据库”等操作。

图5-3数据库目录的快捷菜单

在某个数据库项目上按鼠标右键,将打开如图5-4所示的快捷菜单,通过这个快捷菜单,可以在该选取的数据库上进行“导出数据”、“生成SQL脚本”、“收缩数据库”等工作。

图5-4数据库项目的快显功能

5-1-3 向导的使用

在SQLServer2000中,提供了许多的向导,以Step-by-Step的方式,带领数据库系统管理人员进行各项设置完成操作。

我们可以利用工具栏上的

执行向导工具按钮,或者菜单上的“工具\向导”功能,打开“选择向导”对话框。

“选择向导”对话框的画面如图5-5所示,它包含SQL2000所提供的所有向导,并根据应用的对象类型分类分层显示。

例如,应用在数据库上的向导,如“创建数据库向导”,显示在“数据库”类别的下层;用来做数据转换的向导,如“DTS导入向导”,显示在“数据转换服务”类别中。

只要在“选择向导”对话框的向导清单中选择一个向导,然后单击“确定”按钮,就启动该选择的向导。

图5-5“选择向导”对话框

5-2注册SQLServer

在EnterpriseManager中,只能够管理已经在其上注册的SQLServer。

默认EnterpriseManager管理工具会自动将本机上的SQLServer注册到SQLServer组上,如果要管理的SQLServer尚未注册,可以利用下面的方式注册SQLServer。

5-2-1 使用“注册服务器向导”注册

首先,来看看如何使用注册服务器向导,将SQLServer(YY)注册到EnterpriseManager控制台上。

(1)在工具栏上单击

执行向导工具按钮,在打开的“选择向导”对话框中选择“注册服务器向导”项目,然后单击“确定”按钮,激活注册SQLServer向导。

(2)在注册SQLServer向导的欢迎对话框中单击“下一步”按钮,然后在“选择SQLServer”中将要注册的服务器名称YY增加到新增的服务器列表中,并单击“下一步”按钮。

图5-6注册SQLServer向导

图5-7选择要注册的SQL服务器

(3)在“选择身份验证模式”中,选择要联机该SQL服务器所用的身份验证方式,在这里选择使用“Windows身份验证”,以登录计算机的帐户核认权限;如果要使用SQL帐户联机SQL服务器,选择下面的“SQLServer身份验证”,单击“下一步”按钮。

图5-8选择身份验证模式

(4)在“选择SQLServer组”中,选择SQLServer要加入到哪一个服务器组,在这里选择将它加入到现有的“SQLServer组”组中;如果要建立一个新的组,可以选择下方的“新建的顶层SQLServer组”选项按钮,并在下方的“组名”文本框中输入要建立的新组名称,单击“下一步”按钮。

图5-9选择加入的群组

(5)“完成注册SQLServer向导”表示所有的设置动作皆已完成,这时用户可以单击“完成”按钮,开始根据前面步骤中的设置注册SQL服务器。

如果要改变先前步骤中的设置,可以在单击“完成”按钮前,随时利用对话框中的“上一步”按钮,将画面切换至前一个设置画面。

图5-10完成注册SQLServer向导

(6)当SQLServer注册完成,会打开“注册SQLServer消息”对话框,显示注册的结果,如图5-11显示的“服务器注册完成”字样,表示注册YY服务器的动作已经顺利完成。

图5-11注册消息

(7)最后只要单击“关闭”按钮关闭对话框,就完成在EnterpriseManager中注册SQL服务器的操作。

5-2-2 直接设置注册属性

其实如果用户已经很熟悉注册SQL服务器的设置项目,也可以选择不通过“注册SQL服务器”向导,直接以设置注册属性的方式来注册SQL服务器,以简化所需设置的对话框,其设置方法如下:

(1)在EnterpriseManager管理对话框的工具栏上,单击

注册服务器工具按钮,或是选取“操作”菜单上的“添加SQLServer注册”命令。

(2)如果您是第一次执行这个功能,或者未设置不再使用向导,这时会激活“注册SQLServer”向导,请选取“我希望今后在执行该任务时不使用向导”复选框,表示要直接设置注册属性,而不需要使用向导协助注册,然后单击“下一步”按钮。

图5-12单击注册服务器按钮图5-13注册SQLServer向导

特别说明一旦选取了“我希望今后在执行该任务时不使用向导”复选框,以后执行“添加SQLServer注册”功能时,将不再激活“注册SQLServer”向导,而是直接打开“已注册的SQLServer属性”对话框。

(3)打开“已注册的SQLServer属性”对话框,在“服务器”文本框中输入要注册的SQLServer的名称,然后选择用户验证的方式,在这里选择“使用Windows身份验证”单选按钮,直接以登录操作系统的用户帐户连接SQL服务器。

接着在“服务器组”下拉列表中选择该SQLServer要注册到哪一个服务器组中。

图5-14注册SQLServer属性

(4)单击“确定”按钮,关闭“已注册的SQLServer属性”对话框,切换回EnterpriseManager画面,这时可以在“SQLServer组”中发现YY服务器。

图5-15成功注册MY-SQL服务器

5-2-3 更改注册

一旦将SQL服务器注册在EnterpriseManager中,以后所有利用EnterpriseManager对该SQL服务器的操作,都会根据注册的内容连接指定的SQL服务器。

因此,当SQL服务器本身的设置有所变动,如改变用户权限,原先注册的内容可能已不再适用,无法顺利连接SQL服务器。

这时,我们就必须修改SQL服务器的注册内容。

要更改已注册SQL服务器的注册内容,可以在选取要更改的SQL服务器后,利用菜单上的“操作\编辑SQLServer注册属性”功能,来打开“已注册的SQLServer属性”对话框,如图5-16所示。

图5-16“已注册的SQLServer属性”对话框

修改设置的注册内容后,单击“确定”按钮即完成更改注册内容的动作。

有关这个“注册的SQLServer属性”对话框的联机设置项目,我们在前一个小节中已经提到过,在此就不再重复叙述。

只简单说明一下属性对话框下面的三个复选框。

“显示控制台中显示SQLServer的状态”复选框是用来设置是否要在控制台上显示SQL服务器的状态;“显示系统数据库和系统对象”复选框是设置是否要显示系统数据库及系统对象,当您不需要使用到这些系统对象时,可以取消这个复选框,以简化显示的内容;“在连接时自动启动SQLServer”复选框是设置在执行联机功能时,是否要自动启动SQLServer。

5-2-4 删除注册

当我们对某一个已注册的SQL服务器已经不再具有存取权限,或者不再需要在EnterpriseManager中操作管理它,可以将它从EnterpriseManager中删除。

要在EnterpriseManager中删除一个已注册的SQLServer很简单,只要在选取要删除注册的SQL服务器之后,选择“操作”|“删除SQLServer注册”命令,即可完成删除SQL注册的操作。

5-3内建数据库

在SQLServer系统中,执行时所会用到的相关信息,如系统对象、组态设置等信息,也是以数据库的形式存在,而这些存放系统信息的数据库也称为系统数据。

当我们完成安装SQLServer系统后,会在SQL数据库系统建立master,model,msdb以及tempdb等四个系统数据库,这四个系统数据库的作用说明如下:

∙master系统数据库可以说是SQLServer的主要数据库,它记录了所有启动SQLServer系统、执行操作时所需要的信息。

包含:

激活参数、登录帐户、系统组态设置以及现有数据库的相关信息等。

由于matser数据库记录了如此多且重要的信息,一旦该数据库文件遗失或损毁,将对整个SQLServer系统的运行造成重大影响,甚至使得整个数据库系统瘫痪无法启动,因此建议数据库系统管理员最好要保留最近的master数据库备份,以便在发生问题时,将数据库恢复。

∙model系统数据库是一个模板数据库,被用来作为在系统上建立数据库的模板,它包含了建立新数据库时所需要的基本对象,如系统表、查看表、登录信息等。

当我们在系统上执行建立新数据库功能时,它会复制这个模板数据库的内容至新的数据库上。

由于所有新建立的数据库都是继承这个model数据库而来的,因此当我们更改了model数据库上的内容,如增加对象,则稍后建立的数据库也都包含该变动。

∙msdb系统数据库是提供给“SQLServer代理”服务使用,用来记录进行调度、警示、操作员与操作等运作所需的相关信息。

如果不需要使用到这些SQLServer代理项目,就不会使用到这个系统数据库。

∙tempdb系统数据库是一个暂存数据库,包含了所有的暂存表与暂存的存储过程,以及任何其他的暂时存储需求,例如SQLServer所产生的工作表。

每当SQLServer被激活,tempdb数据库就会被重新建立,以便让系统以一个初始状态开始执行。

由于暂存表与存储过程会在联机中断时自动卸除,而且当系统关机时没有任何联机处于使用状态,因此在从一个SQLServer工作阶段转到另一个工作阶段时,不会有任何tempdb数据需要存储。

特别说明默认在SQLServer执行时,tempdb数据库会视需要自动增长。

但不同于其他数据库,每当数据库引擎重新激活时,tempdb数据库都会重设回初始大小。

因此,如果tempdb的初始大小定义得太小,每次重新激活SQLServer后,系统就必须耗用资源,将tempdb自动增长到能支持工作负载的大小,所以,管理人员应该适当地调整tempdb数据库的初始大小。

除了上述四个系统数据库外,SQLServer还提供了两个内建的范例数据库pubs与northwind,这两个范例数据库主要是让用户可以在开始自行建置数据库前,练习数据库的存取操作。

5-4数据库结构

谈到数据库的结构,可以从两方面考虑,一个是逻辑结构,也就是一般我们在数据库管理程序中看到的结构;另一个是实体结构,也就是数据库实际存储的方式,通常用户不需要接触到这部分。

5-4-1 数据库的逻辑组件

数据库是由许多的逻辑组件所构成的,在使用数据库时,其实主要是使用一些逻辑组件,如表、视图表、程序与用户。

当我们在EnterpriseManager中展开某个数据库时,可以看到如图5-17所示的画面,它会将包含的对象根据对象的类型进行分类显示。

图5-17数据库结构

基本上,表是数据库中最基础的组件,用来表示数据库内存储的数据,图表对象是以图形化的方式表示表间的关联,而视图表、存储过程与触发程序等对象,则是用来对表的内容进行处理(更改数据的显示或实际的内容)。

另外,用户与角色对象被用来提供用户存取权限的设置,规则对象则被用来确保数据的合理性。

1.表

表包含了数据库内所有的数据,它是许多的数据行所构成的。

在表内,将数据整理成列与行的格式(与电子表格二维矩阵相似)。

每一个数据行代表着一笔记录,而一每个数据列则代表记录内的一个字段。

例如,在包含公司员工数据的表内,每一个数据行分别代表每一个员工,而每一个数据列则分别代表员工的细节数据,如员工编号、姓名、地址、工作职称和住家的电话号码等。

2.视图表

视图表是定义表数据的视图方法,提供用来将一个或多个表的内容筛选出来,取出全部或部分的数据列,或者是筛选出部分的数据行。

例如,在成绩管理系统中,我们会列出所有总平均不及格的学生,这种通过数据选取或筛选动作而产生的虚拟表就称为视图表。

我们可以将常用的窗体查询定义成视图表存储于数据库内,在程序中需要列出定义为视图表的数据时,只需在程序中调用执行该视图表的名称,就可得到所需的数据内容。

3.存储过程

存储过程是编译成一个执行计划的一组Transact-SQL语句,有助于在应用程序间达成一致的逻辑操作。

对于必须经常执行的工作,可以将它的SQL语句与逻辑设计编写成一个存储过程,这样所有要执行该工作的应用程序,就只要执行该存储过程就可以了。

感觉上,就好像在程序设计时,将共同部分设计成一个共享模块,供所有需要的程序调用。

将业务逻辑编写成存储过程,可以提供单一的控制点,日后若要更改逻辑的设计,只需要修改存储过程的内容,而不需分别在每一个应用程序上作修改,确保业务逻辑能一致地、正确地执行。

另外,使用存储过程来执行工作也可以改善工作的执行效率。

大部分的工作包含了多个SQL语句,通过条件式逻辑判断的结果决定接下来执行哪些SQL语句。

如果将工作的SQL语句与条件式逻辑写成存储过程,它们成为服务器上执行计划的一部分,所有工作都将在服务器上进行,而不需要将结果返回客户端做条件式逻辑判断。

4.用户

数据库内的所有对象其使用权限与拥有权都是利用用户帐户来控制的。

数据库中的用户是利用用户识别码来识别的,这个用户识别码是由数据库固定角色db_owner的成员定义。

用户帐户是数据库特有的,同一个识别码在不同的数据库中,表示不同的用户。

例如,sales数据库中的xyz用户帐户与inventory数据库中的xyz用户帐户不同。

登录识别码本身不赋予用户存取任何数据库对象的使用权限,它必须与数据库的用户识别码建立关联后,利用该登录识别码登录的用户才可以存取数据库中的对象。

如果登录识别码没有明确与数据库中的任何用户识别码建立关联,它将与guest用户识别码建立关联。

如果数据库中没有guest用户帐户,除非登录辨识码与有效的用户帐户建立关联,否则它将无法存取数据库。

5.角色

角色是一些用户集合成一个单元,通过角色的设置可以同时为一群用户指定使用权限,感觉上与NT帐号中的组类似,当我们授与、拒绝或撤销某个角色的使用权限时,该权限的设置将会套用在所有属于该角色的成员上,这使得使用权限的管理更为简单。

我们可以建立角色来代表组织内某类工作人员所执行的工作,并授与该角色适当的使用权限。

当工作人员轮调到这个工作时,只要将他们加入成为角色的成员;当他们轮调出这个工作时,则将他们移出角色。

您不必在每个人接任或调离工作时,一再授权、拒绝与撤销他们的使用权限。

当用户成为角色的成员时,就会自动套用使用权限。

6.规则

规则是用来设置检查条件、确保数据的合理性、执行与CHECK条件约束一样的功能,它的存在主要是为了与先前的版本兼容。

在限制数值数据行方面,使用CHECK条件约束是较优先、标准的方式,而且CHECK条件约束也比规则更为简洁,一个数据行只能套用一个规则,但可以套用多个CHECK条件约束。

CHECK条件约束是CREATETABLE语句的一部分,而规则则是建立成个别的对象,然后再与数据行连接。

7.默认

默认对象是用来定义默认值,如果插入数据行时不指定数据行的值,该数据行就会使用其所定义的默认值。

这个默认值可以是验算出常数的任何项目,如:

常数、内建函数、数学表达式。

在设置默认值时,可以直接在定义表时,为数据行指定默认值;也可以先定义默认对象,然后再将默认对象关联到数据列。

8.用户自定义数据类型

用户自定义的数据类型是以SQLServer的系统数据类型为基础,用户自定义的数据类型。

一般来说,用户自定义数据类型通常是在当用户必须确保多个表存储相同的数据的数据行其数据类型、长度和Null值属性完全一样时使用。

例如,我们可以为产品代号制定一个用户自定义数据类型prod_code,这个prod_code数据类型是以char数据类型为基础所定义出来的。

9.用户自定义函数

在程序语言中,函数是指用来封装经常执行的逻辑子程序。

如果有任何程序代码必须执行该函数中的逻辑,可以调用该函数,而不必重复所有的函数逻辑。

在SQLServer中也允许用户自行将一或多个Transact-SQL语句组成的子程序封装成程序代码,以便重复使用。

用户自定义函数是使用CREATEFUNCTION语句来建立的,用户必须具有CREATEFUNCTION权限才可以建立、改变或丢弃用户自定义函数,而每一个完整的用户自定义函数名称都必须是唯一的。

自定义函数拥有者以外的用户若要在Transact-SQL语句中使用该函数,必须先被授与适当的函数权限。

若要建立或更改参考CHECK条件约束、DEFAULT子句或计算数据行定义的用户自定义函数的表,也必须具有函数的REFERENCES权限。

10.触发程序

触发程序是一种特殊的存储过程,它被定义在对表或视图表发出UPDATE,INSERT或DELETE语句时自动执行,用来在改变数据时自动强制业务规则,或是在处理超出定义的安全界限时进行因应处理程序,如传送电子邮件通知。

我们可以利用它来延伸SQLServer条件约束、默认值与规则的完整性检查逻辑,但当条件约束与默认值可提供所需的功能时,就应该使用条件约束与默认值。

表可以有多个触发程序,CREATETRIGGER语句中通过FORUPDATE,FORINSERT或FORDELETE子句,使触发程序将目标放在特定种类的数据修改动作。

在指定FORUPDATE时,可以使用IFUPDATE(column_name)子句,使触发程序将目标放在特定数据列的更新上。

11.条件约束

条件约束定义有关数据行中允许值的规则,用来设置SQLServer自动强制数据完整性的方式。

使用时,条件约束应优先于触发程序、规则与默认值。

查询最佳化器也是使用条件约束定义来建立高效率的查询执行计划。

12.索引

索引是一种与表或视图有关的结构,它会加速从表或视图表中撷取数据行的速度。

索引中包含由表或视图表的一个或多个数据列所建立的索引键,这些索引键让SQLServer可以快速有效地找到与索引键值相关的一或多个数据行。

5-4-2 数据库的实体结构

前面所介绍的数据库对象,在数据库系统中实际上是以文件形式存在,这些文件就是数据库的实体结构。

在SQLServer中将数据库的实体结构分为数据文件(DataFile)与事务日志(TransactionLog)文件两种类型,其中数据文件是用来存储数据库的数据内容,而事务日志文件则是记录事务记录。

另外,SQL2000还进一步提供可以将数据库文件分卸成多个文件进行存储。

1.主数据文件

每一个数据库都一定会有一个(也只会有一个)主数据文件,这个主数据文件中记录了数据库的起始信息、数据文件成员以及数据库的对象成员,如表、视图表、规则等。

SQLServer数据文件的扩展名为mdf,默认数据库主数据文件的文件名为“数据库名称.mdf”。

例如,pubs数据库的主数据文件为pubs.mdf。

主数据文件一旦建立了之后,就不能将它删除,除非将整个数据库删除。

2.次数据文件

不像以前的SQL版本只能将整个数据库的内容全部存放在同一个数据文件上,我们可以将数据库存成多个数据文件,一个主数据文件与多个次数据文件。

次数据文件的扩展名为.ndf,一旦为数据库建立一个数据文件后,就不能再更改数据文件的位置,但次数据文件可以被删除。

通常我们并不需要为数据库建立次数据文件,除非数据库的内容太多,单一数据文件无法负荷,需要使用次数据文件另行开辟数据的存储位置,或是分散提高数据的存取效率。

3.事务日志文件

事务日志文件是用来记录数据库的事务活动记录,收集该数据库的完整事务过程,提供SQLServer作为取消事务、回存事务动作的参考依据,以便在数据库损坏时,能利用事务日志文件中记录的事务内容修复数据库结构。

默认事务日志文件的扩展名为ldf,例如,pubs数据库的事务日志文件为pubs.ldf,但我们可以自行指定其他的扩展名,而不要使用ldf。

5-4-3 文件组

当我们为数据库指定多个数据文件时,可以应用SQLServer的文件组功能来管理这些数据文件。

这里的文件组并不是根据实体的位置进行区分,而是根据数据文件内要存储的对象项目进行区分。

例如,如果我们建立了多个文件组,当建立一个新的对象时,可以自行指定该对象要存放到哪一个文件组中存储。

通过文件组的使用,可以分散数据库的存储位置,避免过度占用一个磁盘空间,或磁盘空间占满造成系统无法运作的状况。

1.文件组的组成

在SQLServer中,包含主数据文件的文件组称为“主文件组(PrimaryFilegroup)”,其他的文件组则称为“自定义文件组(User-definedFilegroup)”。

一个数据库只有一个主文件组,这个主文件组在数据库建立时就已经存在。

由于系统表是存放在主文件组内,如果主文件组的磁盘空间满了,系统表将无法动作,数据库也就无法运行。

因此,建立不同的文件组,将一些较次要的表指定到其他的自定义文件组内存储(最好在不同的磁盘上),分散存储空间,减少主文件组塞满的情况,毕竟仅是自定义文件组塞满,不会发生数据库无法执行的问题。

2.文件组的数据存储方式

文件组的数据存储方式是平均分配分散存放于各个数据文件中,同时使用所有的数据文件,而不是依次一次写到一个数据文件中,等数据文件填满后再写到另一个数据文件中。

使用这种平均分散存储的方式,可以让各个数据文件同时增长,而不会造成数据过度集中于同一个数据文件(磁盘驱动器)上。

3.数据只读

在SQLServer中,可以将某一个文件组设置为只读状态,使得文件

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1