对企业数据库的要求
在展开讨论A c c e s s和SQL Server之间的差别之前,读者需要了解一个数据库怎样才能成为
企业数据库。
在大多数情况下,当一个企业数据库配置在公司环境中以后,它同时要为成千上万的用
户提供服务。然而,有时客户发现企业数据库配置在小公司里,用户负载并不多,但事务数
量却很大。
一个企业数据库必须满足以下几个需求(也是最小需求):
■ 一周7天中每天2 4小时可用。
■ 采取了本国O / S的优点,因而提供了稳定性和性能。
■ 提供内建的冗余,允许用户通过诸如事务日志文件之类内部特性从灾难中恢复过来。
■ 必须基于客户/服务器结构。
■ 用户/群级安全性贯穿数据库。
■ 能支持非常大的数据库,可以达到万亿字节( t e r a b y t e )的存储量级。
■ 具有使性能与数据库合谐的能力。
虽然SQL Server与A c c e s s特性的对比类似于将服务器级计算机与桌面计算机之间的对比,
读者仍然需要理解两者的区别。一个主要的区别可能是读者转移到SQL Server的唯一原因。
然而,为验证转移到SQL Server的正确性,另一些人可能有几种扩大规模因素。
A c c e s s完全有能力实现设计任务,但是它受到了自己是桌面机数据库的限制,这种数据
库只能运行于桌面级计算机上。这并不是说A c c e s s不是一件好产品, A c c e s s非常擅长于它原
来的设计任务。本节将帮助用户确定是否需要将当前规模从A c c e s s扩大至SQL Server。

解决方案 »

  1.   

    2者的区别
    1. 客户/服务器结构
    SQL Server基于客户/服务器结构,这意味着服务器不用再执行客户端的任务,例如:屏
    幕刷新和按键。而A c c e s s并不是基于客户/服务器结构的。除了处理数据库任务外, A c c e s s必
    须在各个客户端活动间划分处理器时间。
    这种差别不但决定了设计人员使用选定数据库所能开发的应用程序种类,也决定了他们
    必须在桌面上运行的硬件种类。客户/服务器结构使编程人员在桌面上运行“瘦”客户。越来
    越多的应用程序在服务器上运行使得在桌面上处理的事件数量大大减少, SQL Server正是迎
    合了这种功能需求。
    2. 管理
    SQL Server管理器在管理服务器方面有各种各样的工具如下:
    ■ SQL Server Enterprise Manager (如图1 7 - 1所示)提供给管理员的能力不但有管理本地
    SQL Server的能力,还有管理任何作为网络一部分的SQL Server的能力。一些内建向导
    帮助管理员创建和管理数据库及其对象。通过Enterprise Manager,管理员可创建调度
    任务、报警以及存储过程。
    ■ SQL Server Performance Monitor 集成在Windows NT Performance Monitor里。管理员
    可以监视性能变量诸如每秒登陆次数,用户连接或每秒块拷贝的行数。
    可编程管理使用SQL Distributed Management Objects(SQL-DMO),管理员可以编写应
    用程序来自动管理SQL Server。现在,SQL Server可以透明地嵌入应用程序。管理员可
    以将自定义应用程序用于处理个人环境特有的日常任务。
    ■ Database Maintenance Plan向导允许管理员创建一系列任务,这些任务由SQL Server Agent在
    有规律地运行。这些任务包括备份数据库、更新统计信息以及对数据库进行完整性检查。
    A c c e s s中提供的管理工具是有限制的。用户可以使用这些向导,但它们主要用于创建数
    据库,表及表单。诸如备份数据库之类的任务不能通过A c c e s s完成。没有任何工具可以监视
    数据库活动或创建维护计划。数据库错误并没有记录到日志中,创建不能报警和调度的任务。
    A c c e s s中提供的工具主要体现了它的能力—这也正是管理工具的局限所在。
    A c c e s s没有用于性能分析的内建向导,但管理员可以在表、查询、表单、模块或宏上运
    行性能分析器。性能分析器报告可以建议管理员怎样提高这些对象的响应能力。然而,这个
    工具并不象在SQL Server Performance Monitor中那样,它不能对系统实时性能进行报告。
    通过SQL Server,管理员可以限制用户能够管理的对象。A c c e s s通过User Level Security
    Wi z a r d允许管理员限制数据库中的对象。这种向导让管理员来限制用户所能看到的对象。然
    而,SQL Server允许管理员指定关于用户可以管理哪种对象的更多规范。
    A c c e s s中可以获得其他数据库管理工具,其中包括Table Analyzer和D o c u m e n t e r。Ta b l e
    A n a l y z e r用于发现表中的冲突信息,例如能够更加有效地进行处理的重复信息。D o c u m e n t e r
    产生一个表、查询、表单、报告、宏或模块的报告。
    另外,这些工具有助于A c c e s s成为一个有效用户或工作组数据库,但它要在E n t e r p r i s e
    D a t a b a s e (企业数据库)中使用仍然受到限制。
      

  2.   

    3. 稳定性
    稳定性对一个企业数据库来说具有决定性的意义,或者说,对任何依赖于公司范围和
    2 4/7标准的服务器更是如此。因此,如果稳定性是一个问题,考虑用A c c e s s建立数据库可能
    并不明智。
    数据库和该数据库所运行的操纵系统共同决定了数据库的稳定性。如果读者想要在
    Windows 95上共享A c c e s s数据库,则它与用户在Windows NT上共享同样的数据库相比则更容
    易因重负荷而崩溃。这是因为Windows NT在共享文件方面比Windows 95更可靠。这并不意味
    着A c c e s s利用了N T中那些SQL Server用于提高整体可靠性的各种特性。SQL Server使用了
    Windows NT的多线程功能。因此,如果读者在自己的服务器上增加额外的处理器。S Q L
    S e r v e r可以立即利用它们来同时运行多进程。这样,服务器可以处理来自多用户的请求或者根
    据需要创建附加的数据页面,而不用强迫其他任务等待。
    SQL Server使用事务日志,当某个用户打算修改数据库时,这种修改先写入事务日志文
    件,然后传送到数据库。因此如果出现数据库崩溃,就有可能及时从任何时刻恢复数据。如
    果用户写A c c e s s数据库时出现了数据库被破坏的情况,管理员不能从这种事务中回滚。恢复
    的唯一方法是从备份文件中恢复整个数据库文件,管理人员将丢失最后一次备份之后所做的
    所有工作。
    对备份文件来说, Microsoft SQL Server有内部备份和恢复能力。用户可以将数据库备份
    到文件中或磁盘中。并从磁带或文件中恢复到正确状态。在A c c e s s中,管理员必须通过磁带
    备份程序恢复数据库,并因此增加了整体的恢复时间。
    在SQL Server内部可能运行增量备份。管理员现在可以仅仅备份数据库中改变了的值,
    而不必备份整个数据库。而通过A c c e s s,用户除了备份整个数据库,别无选择。
    在实行备份时, A c c e s s用户必须从系统中注销;当用户仍然在A c c e s s系统中时不能备
    份. m d b文件。而在SQL Server中,在备份时并不需要用户从数据库中注销。这仅仅加强S Q L
    S e r v e r的能力使其一天2 4小时可用。
    随着数据库的快速增长,数据库文件的持续增长成为一个问题。SQL Server支持这样一
    种选择:数据库规模以固定百分比和兆字节动态增长。这样,公司的日常运作不会在数据库
    需要更多空间的关键时候受到影响。
    4. 可扩展性
    M i c r o s o f t从开始就是做为一个企业数据库而设计的。设计组牢记一个可扩展系统的需要,他们还牢记要设计一个不仅在现在,而且在将来都满足一个公司的完全需求的数据库。SQL Server的早期版本设计可支持2 0 0 0 M B~3 0 0 0 M B的数据库,但7版本已有支持万亿比特容量数据库的能力。SQL Server 7的另一个可扩展特性是它可在多平台上运行相同的数据库
    引擎的能力。SQL Server 7支持的平台有: Windows 95/98、Windows NT工作站,Wi n d o w sNT服务器和Windows NT企业版。
    这种可扩展性使得应用程序开发人员在使用SQL Server创建应用程序时更加自由。开发人员常常不必考虑O / S的能力。在低端( l o w e r- e n d )系统运行SQL Server时有一些性能限制,例如在Windows 95/98或Windows NT工作站运行。
    A c c e s s的另一种新特性是服务器的动态自动协调能力。这种特性允许用户在便携式电脑和桌面系统上安装SQL Server而不用去使服务器与它们特殊的机器配套。
    最后,由于SQL Server驻于操作系统文件而不是逻辑设备上,所以可扩展性增加了。S Q LS e r v e r数据库在规模上能动态增长。管理员可配置数据库在设定的百分比和兆字节上增长。
    从另一方面来说, A c c e s s极大地受到缺乏可扩展性的限制。尽管如此,应用程序本身也
    能运行在任何基于Wi n d o w s的平台之上。在系统中增加更多的处理器并不能使A c c e s s数据库
    运行更快,主要原因是A c c e s s不能完全利用N T操作系统的能力。相反地, SQL Server能使用
    附加的处理器来同时运行多处理线程。现在SQL Server能同时处理多用户请求而不用暂停其
    他任务。
    5. 容量
    仅仅一个容量问题就能迫使一个组织从A c c e s s转向SQL Server。根据M i c r o s o f t文档所述,
    一个A c c e s s数据库能增大到1 . 2 G B。然而在现实中,一个A c c e s s数据库容量最大能增长到
    5 0 0 M B~7 0 0 M B。过了某一点之后,用户将看到一个增长过大的数据库会出现性能下降。相
    反地,SQL Server 7现在能够增长到万亿字节。如果用户判断自己的数据库增长会超过1 G B大
    小,那么转到SQL Server是必须的。
      

  3.   

    6. 安全性
    Microsoft SQL Server支持Windows NT鉴别模式和混合模式的安全性。Windows NT鉴别使用Windows NT登录信息,这种信息由用户在登录到网络时提供。这简化了安全性管理,因为管理员只需从一个位置控制用户/组信息。
    混合安全模式能采用Windows NT身份验证的优点,但如果没有提供Windows NT帐号信息,SQL Server采取SQL Server登录机制。使用任何一种安全方法,管理员均能在SQL Server数据库和它的对象上设置限制。对触发器、视图和目录的访问都能根据安全信息作出限制。
    A c c e s s具有在数据库上应用安全限制的能力。然而,由于A c c e s s不支持像视图和触发器这样的对象,因此没有在这一级限制安全性的选择。在A c c e s s中的用户级限制可以在表、表单、报表、宏和模块上设置。
    与SQL Server相比,A c c e s s在安全性特性中有许多限制。它没有与Windows NT的安全机制集成。如果它们集成在一起,则将使管理员更方便而且拥有Windows NT提供的C 2级安全性带来的好处。一个数据库如果用于企业数据库,它就需要不仅仅拒绝对数据库或数据库中表的访问,而且需要提供更多
    的限制。例如,通过A c c e s s,管理员可以限制别人浏览一张
    表或者查询(如图1 7 - 2所示)。但如果用户想让他人看见表中特定的一部分或一个特殊的视图时怎么办呢?在Access中,管理员将不得不创建一个查询或者将信息从两张不同的表中组合起来。在SQL Server中,管理员可
    以创建一个数据视图并限制谁有权力访问它。
    7. 多用户
    同时连接到数据库上的用户数量也是作出决定的因素之一。用户可以通过将其置于一个共享文件下来共享A c c e s s数据库,这样最多2 5 5个用户能够访问数据库。
    SQL Server允许最多有32 767个用户连接。正如用户所见, A c c e s s和SQL Server之间在用户连接数量上的区别足以证实从A c c e s s迁移到SQL Server的必要性。
    8. 插入锁机制
    拥有多用户同时访问数据库的环境在插入锁机制或阻隔问题上面临许多问题。阻隔在多用户同时往某一表上增加新列时出现。在A c c e s s中阻隔出现有两个主要的原因,首先,所有新列被增加到表的末尾,其次,页面锁引起问题。当某个用户将某个新列放入一个A c c e s s表中时, J e t引擎锁住2 K B的页面,这个页面正是新记录写入表时所驻留的页面。在一个超过1 5或2 0个用户在做实际数据插入的A c c e s s环境中,管理员发现大量的阻隔问题。SQL Server也使用页面锁来帮助避免冲突。SQL Server的锁应用于数据库的不同粒度等级上。锁可以在行、页面、键、键范围、目录、表或数据库上进行。然而,通过使用聚类索引和填充因子, SQL Server能减轻这个问题。聚类索引控制表中行的物理顺序。每个表只能有一个聚类索引,但它能包含多列。填充因子是一个可定义数字它控制在SQL Server创建新页面之前一个页面能够填充多少数据项。通过使用许多不同值在页面上设置聚类索引并且将填
    充因子设置为一个低于1 0 0的数字,用户可以减少在数据进入时发生阻隔的可能性。除了聚类索引和填充因子之外, SQL Server 7版增强了行锁机制。7版为数据和索引入口支持完全的行级锁定。可以对锁管理器进行优化以便更快地完成锁定需求,从而增强了实时性,尤其当应用程序在表和索引中添加行时。锁管理器可以在页面锁和行锁之间进行选择:
    在多个页面中锁定多行时选择页面锁,而在用户只有极少行或行分散在整个表中时使用行锁。
    -------
    这是我在书上看来的,不敢独享,拿出来,希望对你有帮助
      

  4.   

    1。SQL SERVER可作为网络数据库;而ACCESS在网络使用上不如SQL;
    2。SQL SERVER属于中型数据库规模,而ACCESS是小型的,在处理能力上不如SQL;
    3。SQL SERVER中有许多功能,在ACCESS中也是没有的,如分布式数据库访问等。