什么是关系数据库?

我主要是系统pipe理员,除了安装数据库,设置帐户,授予权限等之外,我不直接使用数据库。 我意识到,如果“老板”走到我面前,问道:“什么是关系数据库? 我可能无法给出一个满意的答案…我可能会咕about一些关于数据被存储和组织的类别,你可以使用特殊的编程语言(即SQL)查询。

那么有人可以给一个关于什么是关系数据库的“老板答案”? 也许它不同于将数据存储在文件服务器上? 奖励积分为巧妙,但可访问的类比和解释表,列,logging和领域。 我将“老板答案”定义为非技术人员(大部分是你的老板)的一个快速的(也许是两个)段落解释,在极less数情况下,他们实际上问你,你整天做什么。

关系数据库不仅仅存储数据 :它存储数据之间的关系 ,并使得使用这些关系变得容易(更好,更容易)。 在关系数据库术语的早期,表格被称为“关系”,因为它们存储了相关的数据位(字段,现在的列)以及关系和其他关系之间的关系。

规范化是非复杂关系的行为:“尽可能简单但不简单”。 (Alan Perlis)有时候“……但并不简单”意味着我们不把事物完全标准化,因为“简单”最终变得更加复杂。 (你可以从邮政编码中得到状态,但是为什么呢?)

关系型数据库是一种结构化数据的方法,因此一个事实存储在一个地方。 因此,如果John和Jane Doe都为同一家公司工作,那么只能在一个地方(表格)存储公司特有的细节。 你可以将John和Jane独有的数据存储在另一个地方,并将John和Jane的关系存储在第三位。 在理想的情况下,这意味着如果公司传真号码发生改变,我只需要修改一个字段/行。

请理解,并非所有RDBMS中托pipe的数据库都已正确归一化。 妥协是出于性能和其他原因。

请参阅关于数据库规范化的文章。 http://en.wikipedia.org/wiki/Database_normalization

有两个主要的概念来区分关系数据库系统。 首先是存储项目之间的关系。 这是数据的表格模型,通过电子表格比喻来解释。 RDBMS比电子表格要复杂得多,因为在表格或工作表(取决于你使用的类比的哪一方面)之间有更多的参考,它更容易和通用。

第二个是RDBMS实现一个事务的概念, ACID的属性

  • primefaces,
  • 一致性,
  • 隔离和
  • 耐久力

关系模型允许包含许多复杂的关系,查询,sorting,分组等等。 事务模型确保事务完全发生或根本不发生,保持关系模型一致和准确。 那么,至less可以让正确的编程来保持它。

关系数据库就像一个Excel工作簿,包含很多许多工作表,还有一个周边的软件环境,可以进行性能优化,比如索引和caching,同时强制许多用户进行安全访问,并允许您高效地查看可能传播的数据在许多不同的工作表上。

关系数据库是用于存储和检索存储在关系模型中的数据的工具。

数据的关系模型是根据一个小数字(取决于你读的书,4或5条规则)build立的,它确保数据可以以一致的方式被访问,这使得devise的正确性被certificate,并且允许数据库pipe理系统(DBMS)能够快速完成大部分检索数据的工作。 它还提供正式logging数据结构的工具 – 实现数据库本质上实现了大部分文档。

大多数人不明白为什么正确性很重要 – 这意味着错误不太可能被引入到解决scheme的开发中,并且在类似领域工作的(e.hg)2个不同程序员不太可能重复工作。

作为应用程序前端的独立实体,并且对数据结构有一个一致的看法,使用数据库pipe理系统可以在前端使用不同的工具来达到不同的目的 – 所以您可以更多地使用在构build解决scheme时使用现成的组件。

除了关系数据之外,还有其他一些模型用于存储数据 – 但是其他模型(以我的经验)在其简单性,灵活性和用于开发和pipe理数据的工具的可用性方面都非常接近。

100%非技术性答案:

关系数据库是一种以最小化冗余的方式存储数据的地方,可以让您轻松search数据。

假设一个宠物商店的数据库。 商店有物品,有顾客,有销售。 如果我们把它放在Excel中,你可以有这个列:

 客户名称| 客户电话号码| 客户地址| 物品买了| 价格| date 

第一位顾客史密斯夫人买猫粮:

客户名称| 客户电话号码| 客户地址| 物品买了| 价格| date
史密斯夫人|  123-555-1234 |  10主St | 猫食|  $ 15 |  2011-03-11

然后史密斯太太也喜欢猫玩具:

客户名称| 客户电话号码| 客户地址| 物品买了| 价格| date
史密斯夫人|  123-555-1234 |  10主St | 猫食|  $ 15 |  2011-03-11
史密斯夫人|  123-555-1234 |  10主St | 猫玩具|  $ 1 |  2011-03-11

而且她基本上每两周回来一次,并购买相同的东西。 用这种方法,你复制了大量的信息,这可能导致错误。 你也不能在这里存储一个库存,它必须是一个完整的其他Excel工作表,而且每个销售都必须更新。

有了数据库,我们可以有三个独立的实体:客户(包括他们的信息),物品(具有描述和价格)和销售(客户与物品之间的链接,具有date和数量)。

这里有一些好的技术答案。 但是我的老板不会理解他们的!

我将从一个非常简单的解释开始 – '如果将数据保存在一个文件中,它会显示为一个长列表。 关系数据库将数据更像地图或graphics保存,因此地图的不同部分彼此链接。

还有一个例子 – “例如,你的名字链接到你的地址,这反过来可能会链接到你的城市。

随之而来的是他所关心的商业利益 – “这样做的好处是,编写代码来获取复杂的数据,比如”find所有住在西雅图,姓史密斯的人“都会便宜很多。 关系数据库也非常可靠和快速。

并以一个可信度声明结束 – “关系数据库已经存在很多年了,都是非常成熟的技术。 我们特定的产品是[产品名称]。

我的老板是DBA,但是在外行方面:

考虑Excel中的两个表格,以及LOOKUP函数将一个表格中的项目引用到另一个表格。 现在把这个比例提高至less10倍。

这是关于一些人和工作的计算机水平。