我主要是一名系统管理员,除了安装数据库、设置帐户、授予权限等之外,我不直接使用数据库。我意识到,如果老板走到我面前问:“什么是关系数据库?”我可能无法给出令人满意的答案……我可能会含糊地说数据是按类别存储和组织的,您可以使用特殊的编程语言(即 SQL)进行查询。
那么,有人能给出一个好的“老板答案”来解释关系数据库是什么吗?也许它与仅仅将数据存储在文件服务器上有何不同?巧妙但通俗易懂的类比以及对表格、列、记录和字段的解释会加分。我将“老板答案”定义为对非技术人员的简短的一段(也许两段)解释……主要是你的老板,在极少数情况下,他们会问你一整天都在做什么。
答案1
关系数据库不仅仅存储数据:它存储关系数据之间的关联,并使使用这些关系变得容易(好吧,更容易)。在关系数据库术语的早期,表被称为“关系”,因为它们存储了相关的数据位(字段,现在是列),以及该关系与其他关系之间的关系。
规范化是简化关系的行为:“让一切尽可能简单,但不要更简单。”(Alan Perlis)有时“...但不要更简单”意味着我们不会完全规范化地存储事物,因为“更简单”最终会变得更加复杂。(您可以从邮政编码中得出州,但何必呢?)
答案2
关系数据库是一种结构化数据的方法,因此单个事实存储在单个位置。因此,如果 John 和 Jane Doe 都为同一家公司工作,您只需将公司特有的详细信息存储在一个位置(表)。您可以将 John 和 Jane 特有的数据存储在另一个位置,并将 John 和 Jane 与公司的关系存储在第三个位置。在理想情况下,这意味着如果公司传真号码发生变化,我只需修改单个字段/行。
请理解,并非所有托管在 RDBMS 中的数据库都经过了正确的规范化。出于性能和其他原因,需要做出一些妥协。
参见有关数据库规范化的文章。 http://en.wikipedia.org/wiki/Database_normalization
答案3
有两个主要概念可以区分关系数据库系统。第一个是存储项目之间的关系。这是数据的表格模型,通过电子表格类比来解释。RDBMS 比电子表格更复杂,因为在表格或工作表之间建立许多引用更容易且更常见(取决于您使用的类比的哪一侧)。
第二,RDBMS 实现了事务的概念,酸的性质
- 原子性,
- 一致性,
- 隔离,以及
- 耐久性
关系模型允许包含、查询、排序、分组等许多复杂的关系。事务模型确保事务完全发生或根本不发生,从而保持关系模型的一致性和准确性。至少,正确的编程可以保持这种一致性和准确性。
答案4
关系数据库是用于存储和检索关系模型中存储的数据的工具。
数据的关系模型是根据少数规则(取决于您阅读的书,4 或 5 条规则)构建的,这些规则确保可以以一致的方式访问数据,从而可以证明设计的正确性,并允许数据库管理系统 (DBMS) 完成快速检索数据的大部分工作。它还提供了正式记录数据结构的工具 - 实现数据库本质上实现了大部分文档。
大多数人不明白为什么正确性如此重要——它意味着在解决方案的开发过程中不太可能出现错误——并且(例如)在相似领域工作的两个不同的程序员不太可能重复努力。
作为与应用程序前端分离的实体,并且具有对数据结构的一致视图,数据库管理系统的使用允许在前端使用不同的工具来实现不同的目的 - 因此您可以在构建解决方案时更多地使用现成的组件。
除了关系型模型之外,还有其他模型也可以用来存储数据,但是(根据我的经验)没有一个模型能够在简单性、灵活性以及开发和管理数据的工具的可用性方面与关系型模型相媲美。