-2

我姐姐将开始上课,试图学习如何成为一名网络开发人员。她给我发了几所候选学校的班级名单,让我帮助指导她的决定。

其中一所学校提到 Microsoft Access 作为数据库课程中使用的主要工具,包括关系代数、SQL、数据库管理等。

我想知道 - 如果您学习 Microsoft Access,您以后是否能够轻松掌握另一种更受社会认可的数据库技术,例如 MySQL、Postgres 等?我对 Access 的体验并不愉快,而且在我上学期间玩它时,我发现了很多不好的做法。

基本上:Microsoft Access 是否使用符合标准的 SQL?您是否通过了解 Microsoft Access 的工作原理来学习其他数据库的必要技能?

4

2 回答 2

2

MS-Access 是一个很好的沙坑,用于构建数据库和学习数据库的基本(初级)设计和结构。

MS-Access 的 SQL 实现几乎等同于 SQL1.x 语法。Access 是一个很棒的应用程序,用于学习查询、表和视图之间的交互。

确保她不习惯 Access 中可用的宏,因为它们的结构不会转换为主流 RDBMS。最好的等价物是专业 RDBMS 中的存储过程 (SProcs),但 SProcs 的实用性和功能性是任何 Access 宏所能提供的一千倍。

让她使用 MS-Access 来了解 DBMS 的外观和感觉,但是一旦她对数据库设计感到满意,就让她迁移到 MS-SQL Express 或 MySQL 或两者兼而有之。SQL-Express 与真实的东西一样接近,无需支付 MS-SQL Std 的费用。MySQL 适用于 LAMP Web 基础设施。

于 2012-09-26T18:48:30.713 回答
2

访问 我会说比“实际”数据库软件更多的特性。Access 可以很容易地用作 SQL 数据库的前端,这是程序的一部分。

假设该类正在使用 Access 中内置的数据库。然后让我们将其分解为数据库的各个部分:

Access 使用简化的变量模型。基本上,您可以拥有典型的数字、文本字段等。例如,您可以像使用 SQL 一样修复小数位数。不过,您不会看到像 varchar(x) 这样的变量。您只需选择一个文本字段并将字段大小设置为“8”等。但是,就像一个真实的数据库一样,它会强制执行您设置的限制。Access 将支持 OLE 对象,但它很快就会变得一团糟。Access 数据库只是像文件一样存储,并且可以变得非常大并且迅速膨胀。因此,将它用于存储地址簿、文本数据库或通过代码链接到外部资源之外……您必须小心存储了多少信息,因为文件太大而无法使用。

查询

Access 沿着 SQL 线实现了很多东西。我不知道它是否符合 SQL。我相信您可以将您的 Access 数据库导出到 SQL 可以使用的东西中。在代码中,您使用 DAO、ADO、ADODB 和 Jet 或 Ace 引擎与 SQL 数据库进行交互。(有些已经过时,但在较旧的数据库上工作)但是,一旦您开始进行查询,许多事情都是相似的。典型的命令——select、from、where、order、group、have 等都是正常的,并且可以像您在其他地方看到的那样工作。当您开始使用计算表达式、复杂的连接(访问没有实现某些类型的连接但您会看到可以说是最重要的——内部连接/联合)时,会发生特殊的事情。例如,在 Access 中 distinct 的行为与其他数据库体系结构不同。您使用聚合函数 (sum/max/min/avg) 的方式也受到限制。从本质上讲,Access 适用于很多任务,但它非常挑剔,您必须编写查询才能解决这些您不必在真实数据库中编写的问题。

表格/报告

我认为 Access 的关键特性是它对非计算机专家的用户来说更加平易近人。您可以轻松浏览表格并拖放以创建表单和报告。因此,即使它在我的书中不是正式的数据库,它也可能非常有用......特别是如果很少有人会使用数据库并且他们更喜欢易用性/轻型设置而不是更“企业级”的解决方案。您不需要水晶报表或某人编写大量代码以使 Access 数据库提供结果并允许用户根据需要添加数据。

为什么 Access 不是数据库

它并不意味着处理大量并发连接。一个人可以持有锁并且没有任何协商 - 如果一个人正在编辑数据库的某些部分,它将锁定所有其他用户或至少将他们限制为只读。此外,如果您尝试对大量用户使用 Access 或通过代码向其发送许多请求,它会在大约 10-20 个并发连接后中断。它只是不适用于 oracle 和 mySQL 的构建对象。如果您愿意,它适用于“普通”计算机用户,但程序员可以利用许多有用的东西来改善用户体验。

那么这对您了解更多信息有用吗?

我不明白这会是一件坏事。在这个环境中,您可以更轻松地查看关系代数并了解如何适当地组织数据。这与教授 Java、C++ 或 Python 的大学以及为什么每个都有其优点的大学类似。由于您可以立即从 Access 转移到作为访问 SQL 数据库的前端(加载表的链接)的 Access,我相信您可以用它教一门非常好的课程。

于 2012-09-26T18:49:58.077 回答