zoukankan      html  css  js  c++  java
  • Access 与 Excel 最重要的区别是什么?

    最核心的区别是:

    一、Access 是基于关系型数据库(RDBMS)设计的 2、Excel 是基于任意形式的电子表格设计的 他们的区别就是RDBMS和电子表格的区别。 只要理解了RDBMS和电子表格的区别,就能理解它们之间的区别。 要解释RDBMS和电子表格的区别,可能是个比较难的事情,毕竟如果没有学过数据库原理,有些概念不好 理解。 但还是可以尝试解释一下。 1、自由和规范 表面上来看,很多时候Access和Excel中的表格是一样的,都是行列式的表格。 但在Access中对“表格”的处理是和Excel中对“表格”的处理是不一样的。 因为Access是基于RDBMS的,它对表格是有规范要求的。这个被称做“范式”

    Access中对表格的设计、窗体的设计,都是用来规定表格的规范、和数据的规范的。 RDBMS还有一个对数据的最核心的要求是要保证数据的”一致性“和”完整性“。 而Excel是一个“自由”的表格,它对表格的结构、内容没有规范化的要求。即使你希望创造的其实是一个 规范化的表格,比如“人员基本信息表”,Excel也不会强制要求你一定要满足某种规范。实际上你可以随 便瞎设计、随便瞎填,只要看的人看得懂就可以了,虽然看的人未必喜欢。 但在Access中你是不能瞎填的,你需要设计表的结构、关键字、每个字段的长度、录入的数据需要符合的 条件等等。 虽然Excel也增加了很多对表格录入数据进行“规范”的功能,真想费点功夫,结合VBA对录入的数据做严 格控制,也是可以做得到的。但与Access相比,它还是要随意得多,而且用Excel实现比Access还是麻烦得 多。 普通用户用Excel的时候,也因为懒或因为嫌麻烦或干脆就不会,实际上都没有去设计这种“规范”。所 以,用Excel录入“保证质量”的数据,比用Access录入“保证质量”的数据,要难得多得多。 举个例子,给客户开发软件经常需要将客户的Excel中的数据导入到系统用的数据库中来(也是某种类似于 Access的关系型数据库)。通常会下发一个Excel文件,里面做好表格,附上填写说明,发给所有相关人 员,让他们按这个填写,然后统 一回收后,一起导入到数据库中去。 想得很美,然而,收上来的Excel文件的内容真的是五花八门,什么样的都有,有且不限于以下几种“乱 搞”的情况:

    1、删除掉某些栏位(导入时遇到这种真是很要命)

    2、隔几行添加一个小计行或合计行(导入时要再把它们清除干净)

    3、最后自己加一个“备注”说明一下情况(真的多此一举,比如某个人已经离职了,按理不需要填报上来 了,但他们不删除掉这一行,在后面自己加了个说明)

    4、本该写金额的地方,自己在金额后面加了个括号,补充说明了一下这个金额为什么是这么个金额的原因 (真的多此一举,破坏掉了整列都是金额的要求,导入前这些文字都要删除掉)

    5、该填的不填,空着(比如必填的身份证号之类的)

    6、填得不符合规范(比如要求填“在职”或“退休“,非有人要填”5月已退休“)

    7、把要填的表格,复制了几份(导入时不注意看,很容易漏掉,其实都填在一个表上就行了呀)

    8、把栏位的顺序自己调了调(真要命)

    9、重复的数据(导入前都要做去掉重复数据的工作)

    10、隔几行空一行,大概是为了好看(然而导入前要把空行都删除掉) 。。。。。。

    Access 与 Excel 最重要的区别是什么? 

    当然这样的数据在Excel中都能”安全“地存在,看的人大概也不会有什么”不适“,用也照样用。然而在 Access中,这样的数据连录入进去的机会都不会有。因为Access在数据录入时,就把这些乱七八糟的都拦 住了。 所以: Excel自由、灵活,但缺乏规范,在对数据有规范化要求的时候,用它就很勉强了。数据的一致性和完整性 难以得到保障。 Access要求更严格、更规范,数据的一致性和完整性能得到保障,但它不能适用于所有需要”表格“的场 合,比如要做一个不太规范的表格,或者只是填几个数做点计算,用Access显然不太合适。

    二、表间的关系 前面说过了,Access是基于关系型数据库的。所以它的一个重要功能,是处理”表和表之间的关系“。 表和表之间能有什么关系呢?这个对于Excel的人来说,好象是个新的概念,但在Excel中也是能够体现这种 关系的。 比如有两个工作表,一个是”人员清单“,一个是”人员工资“。”人员工资“中的姓名来自于”人员清 单“。这两个表之间就存在着一个基于”人员姓名“的”一对多“的关系。也就是一个人,可能在工资表 中有多条记录(多个月的工资)。 但在Excel中,这种关系并不是很强制性的。多数情况下,只是我们这么在”解释“,而并不是这么在”要 求“或”限制“。 比如,我们在”人员工资“表里添加一行,这个人是新员工,他在”人员清单“里还没有记录。这种情 况,在EXCEL里是允许的。但你添加了这条工资记录时,这两个表单数据的”一致性“就被破坏了,因为 你的工资表里出现了一个”人员清单“里没有的人(这样的情况在现实生活中其实也是不应该存在的)。 所以,在Excel里两个表间的关系并非”强制性“的,只是我们将它们之间的关系“在我们脑中进行了解 释”,而并没有在Excel里对它进行定义。 还有,比如你在“人员清单”里删除了某个离职员工的数据,但在“人员工资”里没有删除,也会造成 “一致性”和“完整性”被破坏的情况。 所以,我们在Excel里经常会见到各种数据错乱的问题。我们可以提高警惕,小心操作,但从基础上,很难 防止这种事情发生。 但在Access里,你可以对两个表设置”表单的关系”,如果设置好表间的关系,以上这些情况是不允许 的。你必须要先在”人员清单“里添加了这个人,才能去”人员工资“里添加他的工资记录。你删除人员 资料的时候,他的工资数据也可以被同时删除掉。所以,你对这两个表的关系的理解,并不只是存在你头 脑中,还可以体现在Access对这两个表的关系的定义中。 表间的关系最终会在查询和统计上体现出来。 Excel最强的并不是表和表之间的查询统计,它主要强在”单个表“的各种操作上,但它能实现的这些功 能,基本上Access都有而且更强大。涉及到多个表的数据统计,比如”查询3月份工资高于平均值的那些人 的姓名和email“这种,要把几个表倒腾一会儿才能出来结果,如果把3月改成4月,估计又要重新倒腾一 2020/6/2 Access 与 Excel 最重要的区别是什么? - 知乎 https://www.zhihu.com/question/28880606 3/3 回,如果中间添加了几条新的工资记录,估计又要重新倒腾一回。但用Access,一条SQL语句或建一个查 询就可以搞定了,改查询条件也很容易,数据被修改后,重新执行查询就可以了。 至于说到”优劣“,其实没有什么”优劣“,因为它们是不同的产品,基于不同的应用来设计的,各有各 的针对性。 至于说到哪些场合适合用哪个,这个因为点太多,其实有点不太好总结,我只总结一条吧: 如果有什么功能,只能在Access和Excel中选择,先想想”这个功能是不是要用RDBMS的方式来完成更合 适?“,如果答案是”是“的话,就用Access,不要勉强用Excel来代替,因为那样会很痛苦。其它情 况,都可以先用Excel再说。 至于哪些场合适合用RDBMS,只要知道如何”把现实中数据间的关系,通过关系模型加以描述“,你就知 道哪些场合适合用RDBMS了。

  • 相关阅读:
    spring事物配置,声明式事务管理和基于@Transactional注解的使用
    spring集成ehcache本地缓存
    Java并发编程:volatile关键字解析
    Callable接口、Runable接口、Future接口
    Sorting It All Out
    Borg Maze
    Agri-Net
    Highways
    Truck History
    Arbitrage
  • 原文地址:https://www.cnblogs.com/zhangjiuzheng/p/13031858.html
Copyright © 2011-2022 走看看