Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > ADP及SQL SERVER

关于大型数据库项目(ADP)

时 间:2008-05-12 09:07:31
作 者:UMVsoft整理   ID:43  城市:江阴
摘 要:大型数据库项目
正 文:

大型数据库项目的概述

使用 Microsoft Access 作为大型软件开发工作的一部分时,可能会遇到几个值得注意的情况:

多个人设计同一个数据库     几个用户可以连接到一个数据库并使用 Access 来更改数据库设计。
已部署数据库的变化发展     数据库部署之后,随着用户扩展对数据执行的系列任务,设计更改变得十分必要。
特殊数据库的多个版本   大型项目可以包含多个数据库。甚至只有单个数据库的项目也可以有该数据库的多个副本,如开发数据库、测试数据库和已部署的生产数据库。在已部署的数据库应用程序的生命周期内,首先会在开发数据库中进行更改和改进,再传播至测试数据库,然后传播至生产数据库。
多用户环境

多用户环境概述

多用户环境是指在该环境中其他用户可以连接到您正在使用的同一个数据库并对此数据库进行更改。其结果是,几个用户可以在同一时刻使用数据库对象。这样,多用户环境可能就使得由其他用户所做的更改对您的数据库图表起作用,反之亦然。这些更改可能包括:对您的数据库图表副本的更改;和您的图表一起共享数据库对象的其他用户的图表的变化,或者基础数据库的变化。

在多用户环境中使用数据库的一个关键问题是访问权限。所拥有的数据库权限决定能够对数据库所使用的程度。例如,要对数据库中的对象进行更改,必须对数据库有相应的写权限。有关数据库权限的详细信息,请参阅 SQL Server 文档。

作为多用户中的一员,在使用“数据库设计器”时,可能需要解决下列问题:

数据库对象的所有权

受其他用户的更改影响的图表

由其他用户删除的数据库对象
数据库对象的所有权

每个数据库对象可以为一个用户或角色所拥有。如果所有者是一个角色,则对象由属于该角色的每个用户所共同拥有。

每个对象还有与其相关联的权限。该权限保证单个用户或属于某特定角色的所有用户对一个对象拥有某种权限。

根据在数据库中定义的权限,即使不拥有某个对象,也可以查看它。例如,用户可以在一个数据库图表上包括另一个用户所拥有的对象。当这样的对象在数据库图表上或“表设计器”上出现时,它被标记为所有者名和对象名。

受其他用户的更改影响的图表

在多用户环境中,在其他用户保存对以下各项的更改时,您的数据库图表可能会受影响:

数据库图表,在您打开图表后其他用户更改了该图表。
在数据库图表间共享的数据库对象。
数据库。
例如,数据库图表可能包含其他用户已删除或重命名的表。这种情况下,数据库图表不再反映数据库的当前状态。当试图保存数据库图表或所选表时,“发现数据库更改”对话框会提示您自打开图表后数据库已被更新。

该对话框还将显示,如果保存数据库图表或选定内容则可能会受到影响的一系列数据库对象。针对这一点,可采取下列操作之一:

保存数据库图表或选定内容,并使用列表中的所有更改更新数据库。   该操作还会影响共享同一数据库对象的其他数据库图表。
例如,假定在数据库图表上编辑 titleauthors 表中的 au_id 列,而另一个用户的数据库图表中包含 authors 表,该表与 titleauthors 表通过 au_id 列相关,那么,保存您的数据库图表将会影响另一个用户的数据库图表。同样,假定另一个用户在 sales 表中定义了 qty 列的检查约束。如果您删除 qty 列并保存 sales 表,则另一个用户的检查约束将会受到影响。
取消保存操作。   然后可以不保存就关闭数据库图表。当重新打开数据库图表时,它会与数据库保持同步。
保存更改列表。   可以将“检测到数据库更改”对话框中所显示的数据库更改列表保存到一个文本文件中,以便调查其他用户所做更改的原因。
例如,如果另一个用户编辑了您已标记为删除的表,则可以在更新该数据库之前调查是否应当删除该表。
由其他用户删除的数据库对象

在多用户环境中,从数据库中删除数据库对象可以影响其他用户。如果其他用户删除了显示在您的数据库图表中的数据库对象,那么在您的数据库图表上,删除的效果会因删除对象的位置不同而不同。

删除对象的位置 如何影响您的数据库图表
在数据库图表的其他副本中 下次打开数据库图表时,删除的对象将从数据库图表中移走。如果在删除过程中打开数据库图表,数据库图表会显示已删除的项。
在不同的数据库图表中 下次打开数据库图表时,删除的对象将从数据库图表中移走。如果在删除过程中打开数据库图表,数据库图表将显示已删除的项。
在数据库中 如果数据库图表已保存了对该对象的所有更改,则在下一次打开时从数据库图表中移去该对象。
如果数据库图表包含对该对象的未保存更改,则该对象仍保留在数据库图表中。通过保存数据库图表可以在数据库中重新创建该对象。
 

 注释   重新创建已删除的对象将在数据库中创建该对象的新定义;当删除该对象时,该对象不会恢复已删除的数据。

例如,如果在数据库中删除了 titles 表,而在您的数据库图表中有对 titles 表的未保存更改,则保存数据库图表会在数据库中新建 titles 表。在删除 titles 表之前,表中已有的任何数据都不会被恢复。


数据库变化的问题

如果更改已破坏数据库的结构,必须特别关注所做更改是否与已有数据和数据库结构相兼容。进行下列修改操作时,可能需要采取特别步骤:

添加约束     如果添加约束,数据库可能已包含不满足约束的数据。试图保存新的约束时,“保存未完成”对话框通知您数据库无法创建约束。若要强制数据库接受新的约束,可以清除“创建中检查现有数据”复选框。
添加关系     如果添加关系,数据库可能已包含了在主键表中没有对应行的外键表的行。也就是说,已有数据可能不符合参照完整性。试图保存新的关系时,“保存未完成”对话框会通知您数据库不能保存已修订的外键表。若要强制数据库接受所做修改,可以清除“创建中检查现有数据”复选框。 
修改提供给索引视图的表     如果修改提供给 Microsoft SQL Server 索引视图的表,视图上的索引将丢失。有关重新创建索引的信息,请参阅 SQL Server 文档。
无论是怎样改变数据库设计的,均应保留所做改变的历史记录。

设计开发、测试和生产数据库

如果有两个结构相同的数据库,则可以在一个数据库中进行更改,然后将这些更改传播至另一个数据库。例如,如果有一个个人开发数据库和一个小组范围的测试数据库,则可以更改开发数据库,然后将这些更改传播至测试数据库。



Access软件网官方交流QQ群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助