第10章数据库的优化和安全数据库的性能和安全是制约数据库运行和使用的重要因素。对数据库进行优化,使数据库运行得更快,对数据库有着重要的意义。在Access2003中优化数据库性能,加速数据库运行有许多方法,可以通过简单的操作使数据库运行得更快。对于多用户的数据库,数据库的安全性就非常重要,尤其是放置在网络上数据库的安全问题。本章要点10.1数据库的优化10.2数据库安全习题1010.1数据库的优化下面主要介绍Access2003中优化数据库性能,加速数据库运行的各种方法。10.1.1数据库减肥图10-1-1“选项”对话框中的“常规”选项卡用户在利用Access2003建立数据库时就会发现,还没有输入多少数据,数据库的体积就已经庞大了,这时可以对数据库进行压缩减肥。若要减小数据库的体积,用户可以执行以下操作。(1)先打开要进行“减肥”的数据库,然后单击“工具”→“选项”菜单命令,打开“选项”对话框。(2)在“选项”对话框中单击“常规”选项卡,选中“关闭时压缩”复选框,然后单击“确定”按钮,如图10-1-1所示。这时,用户可以在数据库中输入少量的数据,保存退出。然后查看一下刚才保存的数据库文件,就会发现体积没有增大,反而缩小了。10.1数据库的优化图10-1-1“选项”对话框中的“常规”选项卡10.1数据库的优化10.1.2使用性能分析器Access2003带有一个“分析器”工具,该工具可以帮助用户测试数据库对象并报告改进性能的方式。但是分析器只能分析数据库对象,不能提供如何加速Access本身或基础操作系统的信息。Access分析器包括表分析器、性能分析器和文档管理器等3个子工具。1.表分析器如果用户的Access数据库中的表在一个或多个字段中包含有重复的信息,则可以通过“表分析器”将数据拆分成为两个或多个相关的表。这样就能更有效的存储数据,这个过程称之为规范化。“表分析器”将包含重复信息的一个表拆分为每种类型的信息只存储一次的两个或多个独立表。这样使数据库的效率更高并易于更新,而且减小了数据库的大小。在向导分离数据后,通过使用向导创建的查询,用户仍可以查看并使用数据。要利用“表分析器”分割数据表,用户可以执行以下操作。(1)打开数据库,单击“工具”→“分析”→“表”菜单命令,打开“表分析器向导”对话框。如图10-1-2、图10-1-3所示。10.1数据库的优化图10-1-2表分析器向导第1步图10-1-3表分析器向导第2步10.1数据库的优化(2)连续单击“下一步”按钮两次,进入到对话框的第3步,如图10-1-4所示。(3)在这个对话框中,在“表”列表框中选择有重复信息的表。如果希望在下次启动向导时不再显示引导页(即向导的前两个对话框),可以将对话框下方的“显示引导页”选定标识去掉即可。单击“下一步”按钮。进入向导的第4步,如图10-1-5所示。图10-1-4选择有重复信息的表图10-1-5选定决定字段的方式10.1数据库的优化(4)在图10-1-5中,用户可以指定是由向导决定哪些字段放在哪些表中,还是用户自己决定,如果指定由向导决定,则下一步就是验证并调整向导的建议。这里选择“否,自行决定”,然后单击“下一步”按钮,如图10-1-6所示。(5)在图10-1-6中,用户可以将表中的重复字段拖动到空白区域中,释放鼠标,Access将创建一个新表来包含所拖曳的字段,并可对表重命名和设置关键字段。设置完成,单击“下一步”按钮,如图10-1-7所示。注意:引用相同的记录应该完全相同,以便Access2003可以将它们合并成一个惟一的记录。向导发现相似的记录,将给出可能的更正方案供用户选择。(6)在图10-1-7中,用户可以指定是否创建一个查询。如果用户选择了“是,创建查询”单选钮,基于基础表的窗体或报表将能够继续工作,而且向导将把初始表的名字赋予新创建的表,并且重命名初始表。单击“完成”按钮结束表分析器向导。10.1数据库的优化图10-1-6移动重复的字段到新表图10-1-7是否需要创建查询10.1数据库的优化注意:利用“表分析器向导”创建的查询可以同时更新来自多个表中的数据,而且该查询还提供了其他节省时间的功能,提高了数据的准确性。2.性能分析器使用Access2003提供的“性能分析器”可以优化Access数据库的性能。运行“性能分析器”,Access将分析数据库并给出相应的优化方案、意见和建议,用户可以按照注释进行修改,从而优化数据库的性能。利用“性能分析器”优化数据库可以按以下步骤操作。(1)打开数据库,单击“工具”→“分析”→“性能”菜单命令,打开“性能分析器”对话框,如图10-1-8所示。(2)在“性能分析器”对话框中单击要优化的数据库对象类型的选项卡,单击“全部对象类型”选项卡可以同时查看全部数据库的对象列表。在选中的选项卡中选择所要优化的数据库对象的名称,直到选中所有需要优化的数据库对象后,单击“确定”按钮,进行优化。(3)Access将对选中的数据库对象进行逐一优化并给出最终的分析结果,如图10-1-9所示。10.1数据库的优化图10-1-8“性能分析器”对话框图10-1-9“性能分析器”的分析结果10.1数据库的优化(4)单击“分析结果”列表框中的任一项目时,在列表下的“分析注释”列表框中都会显示建议优化的相关信息。Access可以自动执行“推荐”和“建议”的优化,但“意见”优化必须由用户自己来执行。(5)选择一个或多个要执行的“推荐”或“建议”优化,然后单击“优化”按钮,“性能分析器”便会执行优化,并将完成的优化标记为“更正”。如果要执行“意见”优化,可以在“分析结果”列表框中单击某个“意见”优化,然后按照“分析注释”列表框中显示的指导进行自定义优化。图10-1-10“文档管理器”对话框10.1数据库的优化3.文档管理器图10-1-10“文档管理器”对话框利用文档管理器可以选择对不同的数据库对象中包含的属性、关系和权限等内容进行查看和打印,便于用户更好地管理和改进数据库性能。打开数据库,单击“工具”→“分析”→“文档管理器”菜单命令,打开“文档管理器”对话框。如图10-1-10所示。在文档管理器中包含8个选项卡,除了常用的Access数据库对象表、查询、窗体、报表、宏和模块外,还包括当前数据库和全部对象类型两个选项卡。(1)“表”选项卡:在“表”选项卡中,用户可以选择一个或多个表,对其属性、关系等内容进行查看或打印。单击“选项”按钮可对打印表的内容进行自定义。单击“文档管理器”对话框中的“确定”按钮,Access将自动对表文档进行分析、整理,然后再“打印预览”窗口中显示包含所有用户在“打印表定义”对话框中选定的选项的文档,这时,用户可以选择“文件”→“打印”菜单命令进行打印。(2)“查询”选项卡:在“查询”选项卡中,用户可以选择一个或多个查询,对属性等内容进行查看或打印,其操作方法和打印表定义完全相同。10.1数据库的优化(3)“窗体”和“报表”选项卡:“窗体”和“报表”选项卡中的内容完全相同,用户可选择一个或多个窗体或报表的属性进行查看或打印。单击“选项”按钮,可以对窗体或报表包含的内容进行自定义。(4)“宏”和“模块”选项卡:在“宏”选项卡中包含数据库中创建的所有的宏,包括作为系统对象的宏。如果用户要对宏中的内容进行自定义,可以单击“选项”按钮,打开“打印宏定义”对话框。在“模块”选项卡中单击“选项”按钮,打开“打印模块定义”对话框,在该对话框中,用户可以决定是否打印模块中的“属性”、“代码”和“用户和组权限”。(5)“当前数据库”选项卡:在“当前数据库”选项卡中只有属性和关系两个选项。“属性”是指数据库属性,和数据库对象或控件的属性不同;“关系”是指数据库中所有表之间的存在关系。在“当前数据库”选项卡中,“选项”按钮不可用。在“打印预览”窗口中,Access将分别显示两两相关表之间的关系及其强制类型,而不是像在“关系”窗口中那样显示整个数据库所有表的关系。(6)“全部对象类型”选项卡:在“全部对象类型”选项卡中包含了前面7个选项卡中的全部对象。在该选项卡中,用户如果希望更改某个对象的内容,则需要先选中该对象,然后再单击“选项”按钮,Access将根据用户选择对象的对象类型,决定打开的对话框中显示何种打印定义。10.1数据库的优化10.1.3数据库实用工具利用Access2003的数据库实用工具,可以完成多种操作,如转换数据库、压缩和修复数据库、数据库升迁和生成MDE文件等,从而实现数据库性能的进一步完善和提升。1.转换数据库Access默认的数据库格式是Access2000,利用转换数据库功能,用户可以将当前数据库转换为Access97或Access2002~2003文件格式。同样,当打开某个其他版本的数据库时,利用数据库转换功能还可以将该数据库转换为Access2000格式。转换文件格式可按以下步骤操作。(1)打开数据库,单击“工具”→“数据实用工具”→“转换数据库”→“转换为Access2002~2003文件格式”菜单命令,打开“将数据库转换为”对话框。(2)在“将数据库转换为”对话框的“保存位置”列表框中选择某个文件夹,在“文件名”文本框中为新数据库起个新名。(3)单击“保存”按钮,Access将自动处理并弹出警告对话框,提示用户转换数据库后将无法和其他版本Access用户共享新数据库,单击“确定”按钮,完成数据库转换。10.1数据库的优化2.链接表管理器在Access数据表中还有一种表,通常称之为链接表。链接表是专门用于链接数据库文件和HTML、XML文件的数据表,这类表可以在链接管理器中进行优化。链接表的属性是不能更改的。Access2003提供了“链接表管理器”工具,方便用户对数据库中创建的链接表进行查看、编辑和更新等操作。当链接表的结构或位置发生更改时,用户就需要对数据库中的链接表进行查看并刷新链接,用户可以执行以下操作。(1)打开包含链接表的数据库,然后单击“工具”→“数据库实用工具”→“链接表管理器”菜单命令,打开“链接表管理器”对话框,如图10-1-11所示。(2)在“请选择待更新的链接表”列表框中选择1个或多个表进行更新,然后单击“确定”按钮。如果更新成功,则Access将提示确认;如果找不到该表,则Access将显示一个“选择‘表名’的新位置”对话框以便指定表的新位置。如果所选的表都已移到指定的新位置,则“链接表管理器”将搜索所有选定表的位置,然后更新所有的链接。10.1数据库的优化图10-1-11“链接表管理器”对话框10.1数据库的优化3.更改链接表的路径用户可以更改“链接表管理器”中选定的一组链接表的路径。操作步骤如下。(1)打开包含链接表的数据库,然后单击“工具”→“数据库实用工具”→“链接表管理器”菜单命令,打开“链接表管理器”对话框。(2)在“请选择待更新的链接表”列表框中选中“始终提示新位置”复选框,然后在“请选择待更新的链接表”列表框中选中要更改链接的表的复选框,单击“确定”按钮,打开“选择‘表名’的新位置”对话框。(3)在“选择‘表名’的新位置”对话框中指定链接表的新位置,然后单击“打开”按钮。Access将弹出“刷新成功”对话框,单击“确定”按钮。(4)单击“关闭”按钮,关闭“链接表管理器”对话框。注意:“链接表管理器”并不移动数据库或表文件,若移动数据库或表后,可以利用“链接表管理器”更新链接,但“链接表管理器”不能刷新被链接后其名称已更改的Access表的链接。在这种情况下,必须先删除当前链接表,然后重新链接这些表。10.1数据库的优化4.拆分数据库将大型数据库拆分为相对独立的较小数据库,可以减轻数据库在多用户环境下的网络通信负担,还可以使后续的前端开发不影响数据或不中断用户使用数据库,因为Access提供的“拆分数据库”实用工具将表从当前数据库移到后端数据库中进行处理。图10-1-12数据库拆分器要拆分数据库可按以下步骤操作。(1)打开要拆分的数据库,然后单击“工具”→“数据库实用工具”→“拆分数据库”菜单命令,打开“数据库拆分器”对