我尝尝比如关系型资料库是一座图书馆。首先说的是你问的关系型资料库应该是关系型资料库管理系统。那么这里有几个名词,关系型、资料库、管理系统。关系型通俗的理解是,数据作为二维数组存在,你可以理解为图书馆的图书排列。书架、楼层你可以理解为关系型的数据结构。书作为数据存在。而所有图书馆管理员就是资料库的进程,用于不同的工作。有人救火(数据修复、备份),有人整理书架、书籍(数据整理、归档),而用户进程就是指的来到图书馆的顾客,他们看书、移动书籍,而管理员就会对著维护。其次管理员也有很多工具,提高服务质量和效率。以上,希望对你有帮助。


事物之间普遍有关系。

整理、表达出事物间的关系,就是模型(关系模型)。

能落实关系模型的资料库,就是关系资料库。

附:这样通俗的表述不严谨。严谨定义参见教科书,逃......


关系型资料库涉及到集合论的知识基础。里面的「关系」是一种数学定义,而不是我们通常所理解的关系。

举个例子,一个公司里,共有{小明,小张,小李}三个人,他们有两种岁数,分别是{28岁,25岁}

那么,所有可能的排列组合就有

{小明,小张,小李} × {28岁,25岁}

=

{

(小明,28岁),(小明,25岁),

(小张,28岁),(小张,25岁),

(小李,28岁),(小李,25岁)

}

这种集合的乘法叫做笛卡尔积,就是把a集合和b集合里面的元素一一组合,形成新的集合。

但是我们显然知道,人不可能有两种岁数,

所以我们真正的数据是

{

(小张,28岁),(小明,25岁),(小李,28岁)

}

是上面那个大全集合的一个子集。这个子集就叫做「关系」。准确的说,是「人名集合」和「岁数集合」的一个「关系」。

可以说:两个集合的笛卡尔积的子集,就叫做这两个集合的一个「关系」

为什么要搞得这么复杂呢?其实就是为了把生活中事物的关系用数学语言表述出来,让我们能用计算机来处理

你看,假如我们的数值很大很多,譬如有一千万人,里面有一百万个人的籍贯是:「中国山东省潍坊市」,其他人都是「中国山东省济南市」如果直接存储,那么计算机岂不是要存一百万个「中国山东省潍坊市」和九百万个「中国山东省济南市」?

如果用关系型资料库,只要把所有的人名和所有的籍贯都保存一遍,就好像最开始的{小明,小张,小李} ,{28岁,25岁},每样只存一遍,编好号,然后再用相对很小的存储空间保存一下「关系」集合,就可以了。这样不仅可以大大节省存储空间,还可以极大加快检索的速度。


举个简单的例子吧,肯定有漏洞,杠精绕。

假设:

有一间书房;书房里有两个书架,A书架放置学习类书籍,B书架放置娱乐类书籍;书房里有一个书籍登记册,登记册中记录:哪个书架的第几层放著什么书(书名)。

好了,基本假设完成了,那么:

书房就是具体的某个资料库;

两个书架和登记册就是资料库表;

书架里面放的书就是资料库记录;

登记册中的具体内容也是资料库记录。

好了,现在我们出道题:找某本书的作者,出版时间,零售价等信息:

通过资料库跨表查询的功能,资料库内部会将两个书架和登记册共3个表进行联动查询,通过给定条件,我们可以直接查询到我们想要的信息了,那这个过程就好比:

我们走进书房--翻开登记册--找到指定的书籍--知道了本书籍在哪个书架的哪一层--到该书架找到本书籍--查看书籍的作者,出版时间,零售价等信息。

这就是典型的关系型资料库的应用,不知道我解释清楚了没有?


先把名字忘掉,原理就是通过表的形式来管理数据。

之所以称为关系型资料库,因为关系型资料库的设计理念来自于IBM的研究员、数学家Codd发表的关于【关系代数】的论文,通过数学的形式建立了一种模型理论。然后IBM的工程师将这种数学模型 翻译成成机器语言,逐渐就产生了现在的sql语句。

关系代数这种模型,可以通过关系运算符、逻辑运算符、集合运算符、比较运算符来实现表之间的运算,通过运算可以完成譬如资料库中常见的选择、连接、筛选等操作。

了解一下就会发现【关系代数】于关系型资料库中的概念有一一对应的关系。


在传统的key value的数据组织(也叫层次资料库,可以简单理解为一个层次递进的目录树和文件)结构之上,增加了一个快速查询的方便性语言。 这个语言还有比较成熟的数学证明,证明可以更方便清晰的处理数据。


就是装了无数个excel二维表的仓库,你需要查这些表格里的数据会很方便快捷安全


这么多回答,没发现谁解释的到位。我也想知道啥是关系。哪一点体现了关系。关系资料库叫做行资料库还差不多,我也没懂这个关系。

所有人只会说一个表格就是一个关系。关键的问题是表格的哪里体现了关系?就两行两列。就一行一列。关系又在哪里体现了呢?

列属性与列属性之间的关系,是一对一,或者一对多?等等。


我想你的疑点应该在于关系资料库中的关系指的是啥。

关系资料库是指 采用关系模型作为数据组织方式的资料库。常见的数据模型还有层次模型、网状模型。一个关系对应通常说的一张表。关系/表 中的每一行叫做一个元组。

关系模型是建立在集合代数的基础上。

从用户观点看,关系模型由一组关系组成。每个关系的数据结构是一张规范化的二维表。关系模型的数据结构虽然简单,但却能够表达丰富的语义,描述出现实世界的实体以及实体间的各种联系。也就是说,在关系模型中,现实世界的实体以及实体间的各种联系均用单一的结构类型----关系(二维表)来表示。

具体的形式化定义见 参考书籍 第2章第1节,关系数据结构及形式化定义。

参考:

  1. 《资料库系统概论(第5版)》--王珊 萨师煊


通俗的讲,基于关系模型的资料库就是关系型资料库。而一般不基于关系模型的资料库就是NoSql,比如内存型资料库redis。

你可以看看wikipedia,下面是链接。

https://zh.m.wikipedia.org/zh-cn/%E5%85%B3%E7%B3%BB%E6%95%B0%E6%8D%AE%E5%BA%93?

zh.m.wikipedia.org


推荐阅读:
相关文章