同样,一个线程,其中所有的答案都错过了这一点.
Access是一种用于创建数据库前端的开发工具.
Oracle只是一个数据库,而不是一个开发工具(尽管它现在附带了一套开发工具,但它并没有改变Oracle仍然是数据库而不是开发平台的事实).
也许您认为您的问题是关于两个数据库引擎,但正如所写,这就像问"汽车和餐馆有什么区别?"
当然,Access附带了一个默认的数据库引擎Jet/ACE,这可能就是你要问的问题.我当然不能责怪一些只是偶然接触微软产品的人因为不知道这一点,因为微软已经混淆了两者之间的区别,无论是在文档中还是在你必须在连接中使用的数据提供者的命名中字符串.
但是,没有理由保持无知.
Jet/ACE和Oracle(或任何数据库服务器)之间的主要区别:
A.使用Jet/ACE,没有服务器端进程管理和警告客户端数据请求.Jet/ACE数据库的所有客户端都使用锁定文件直接在文件上运行.这意味着某些事情:
Jet/ACE文件中的数据永远不会像存储在服务器数据库中的数据那样安全.
Jet/ACE将通过线路提取更多数据(它需要元数据和索引页面以便从文件系统请求所需的数据页面),尽管通过适当的索引和查询设计,它并不像反访问偏执者那样效率低下我想相信.
Jet/ACE没有事务日志记录,并且由于其数据文件由多个用户同时打开,因此存在损坏风险.
B.与基于文件的简单系统(如Jet/ACE)相比,Oracle的部署和维护成本要高得多.这意味着:
对于用户群较少且没有重大安全问题的小型企业,Jet/ACE后端可以完全适合,假设设计正确的前端和正确部署(例如,拆分前端/后端,不共享前端等, ).
有些企业规模很小,他们没有专门的服务器来运行像甲骨文这样的庞然大物.毫无疑问,Oracle有一个桌面版本,但在我看来,不建议在专用服务器以外的任何其他程序上运行这样的程序,因为用户操作可能会干扰数据库后端的可靠性.
由于Access作为前端开发工具与Jet/ACE之间的紧密集成,非技术用户可以非常容易地将有用的数据库应用程序组合在一起,而无需成为Oracle(或SQL Server或其他)的专家.
因此,最终,在服务器后端和基于文件的解决方案(如Jet/ACE)之间进行选择将主要取决于服务器数据库的安全性,可伸缩性和可靠性的增加在资金方面的价值.对于任何数量的小企业来说,确实没有竞争 - Jet/ACE获胜.
但是有许多应用程序已经开始使用Jet/ACE后端,真的应该升级到服务器后端.除非在已经是Oracle商店的组织内部进行升级,否则甲骨文似乎并不是一个非常好的候选人.在我看来,SQL Server Express就像这样一个应用程序更自然的升级路径(虽然它对数据库的总大小有4GB的限制,所以你没有比Jet/ACE的2GB限制获得那么多),以及人们可以肯定会考虑像MySQL和PostgreSQL这样的开源数据库,这些数据库在许可方面完全没有成本.
这位小老太太每个星期天早上都不需要一辆Mack卡车去教堂.同样地,农民运输土豆越野将是明智的使用丰田雅力士以外的东西.但是Yaris对于这位小老太太来说可能是完美的,Mack卡车完全适合农民运送他的土豆.
这都是为手头的工作挑选合适的工具.
差异一:Access是一个小型数据库系统,它允许您创建一个具有最小安全功能的中小型数据库.Oracle可以与NT安全性集成,从而严格控制谁可以和无法获取数据.
差异二:由于所有处理都在客户端计算机上执行,因此访问速度比网络快得多,而对于像Oracle(或SQL Server)这样的大型DBMS,只发送一个查询(例如"SELECT*FROM Customers WHERE CustID = 23;"),只返回所需的结果.如果您通过Access在网络上运行此操作,则所有记录都将通过网络发送,让客户端计算机选择所需的记录.
差异三:如果您尝试连接超过10个用户(取决于数据库的大小及其使用方式),访问速度会非常慢,Oracle可以接受数百/数千个同时连接(根据服务器的不同而不同)坐在上面).
最后一个主要区别是触发器和存储过程.Access无法存储可远程执行的过程.您可以编写函数并使用一些"jiggery-pokery"让服务器端执行它们,在数据库中设置标志或某些内容,并让服务器在预定义的时间间隔内检查是否设置了标志.使用Oracle /(其他大型DBMS),您可以调用存储过程,它们将在服务器端的命令上执行.触发器类似于Access窗体上的事件,例如"After-Update".将记录更新到Oracle时,可以设置触发器以自动运行过程以检查预定义的规则或其他.
从这里开始
| 归档时间: |
|
| 查看次数: |
38595 次 |
| 最近记录: |