Linux 文本格式显示折线图,linux 折线图

可以这样回答:emmm 怎么说呢。

数据库就是用来存储数据的仓库,就像我们生活中存放物品的容器一样,但是容器也有通用和专用之分,比如塑料袋就是通用容器,因为塑料袋可以装各种东西:即可以装糖果,也可以装铅笔。但我们也可以选择一种更合适的存储方式:用糖果盒来装糖果,用笔筒来装铅笔。糖果盒和笔筒就是专用容器。数据和物品一样,也可以采用通用或者专用的存储方式,各有利弊,SQL就是通用数据库,NoSQL就是专用数据库,这就是他俩的区别。

集合论与关系代数

可是为什么SQL可以做到通用呢?世界上的数据结构千千万,为啥SQL可以满足各种需求而且半个世纪都不过时?

虽然说唯一不变的就是变化,计算机行业一直在发生裂变,但是有些基本的东西是永远不变的,或者说变化很慢:当今世上最流行的编程语言JavaScript仍然遵守着60年前Lisp语言的标准,现代操作系统Windows,OSX,Linux都来自于共同祖先Unix。

数据库的发展也是一样,无论形式怎样变化,其本质都是围绕集合论与关系代数来设计的。基本理论决定一切,在软件行业只要掌握了基础数学理论,就掌握了一切变化的规律,这就是SQL永不过时的秘密。

一切都是线性表

软件学家认识到,整个计算机行业都是建立在对数据的一维利用上:无论是内存,外存还是网络,存储和传输的都是一维数据。一维数据也就是线性表,所有复杂的数据结构都建立在线性表之上,任何二维,三维的数据结构也是由线性表组成的。线性表俗称列表,从“人类本质是复读机”理论上看,世间万物都是由列表(集合)组成的。

在宇宙间,一个技术文明等级的重要标志,是它能够控制和使用的微观维度。对于基本粒子的一维使用,从我们那些长毛裸·体的祖先在山洞中生起篝火时就开始了,对化学反应的控制,就是在一维层次上操控微观粒子。当然,这种控制也是从低级到高级,从篝火到后来的蒸汽机,再到后来的发电机;现在,人类对微观粒子一维控制的水平已达到了顶峰,有了计算机和纳米材料。但这一切,都局限于对微观维度的一维控制,在宇宙间一个更高级的文明看来,篝火和计算机、纳米材料等等是没有本质区别的,同属于一个层次。

------《三体I:地球往事》

科幻小说《三体》刘慈欣

基于这个理论(或者说世界观),集合论被拿来研究数据库了,比如我们数学课本上的集合要求集合的元素具有互异性和无序性:因为要互异,我们有了数据库的唯一性主键;因为要无序,数据库的排序就交给索引来做了。

集合论是数学本身的一个分支,数据库科学出现后,为了研究集合与集合之间的关系,衍生出了一门新的分支:关系代数。

关系代数研究的是二维线性表之间可以发生的各种操作,也就是表格语言,最基本的操作包括矩阵学中的水平分割和垂直分割:分别对应选择和投影。SQL(结构化查询语言)就是关系代数的一个实现,所以SQL数据库也叫关系数据库,关系代数和sql的对应关系如下图:

尽管SQL的语法一直饱受吐槽:凌乱而易引歧义,还不是很优雅。但由于SQL的数学基础很稳固,SQL才能够一直流行到现在。但并不是说NoSQL的基础不稳固,相反NoSQL是对具体结构做具体分析,NoSQL的数学基础往往更简单,更牢固。

表格与图表的统一

无论是表格还是各种统计图在数据上都是统一的,都是二维列表(也可以叫列表的列表),一个表格可以无损地转化成一个柱状图,折线图,雷达图,饼图。。。所以表格可以看成是一种特殊的图表。著名的前端框架ag-grid就是在这个理论上诞生的:

关系代数,SQL,NoSQL,线性表,统计图,表格,ag-grid这些研究的都是集合,都是列表,都是最本质,永恒不变的东西,所以才有那么多学者投入到这个永不过时的领域。

就这样啦~ mua!

(完)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/310829.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

十一届蓝桥杯国赛 本质上升序列-dp

【问题描述】 小蓝特别喜欢单调递增的事物。 在一个字符串中,如果取出若干个字符,将这些字符按照在字符串中的顺 序排列后是单调递增的,则成为这个字符串中的一个单调递增子序列。 例如,在字符串 lanqiao 中,如果取出字…

互联网公司的大龄社畜

作者:邹溪源,长沙资深互联网从业者,架构师社区特邀嘉宾!一某年,我有幸加入了一家互联网公司B公司。互联网公司无处不充满了奋斗的精神。以此为背景。二有一天,有同事跟我说:你发现没&#xff0c…

LeetCode 1122 数组的相对排序-简单-unordered_map容器的应用

给你两个数组,arr1 和 arr2, arr2 中的元素各不相同 arr2 中的每个元素都出现在 arr1 中对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。 示例&#x…

linux系统shell知识点,linux shell 知识点

1.if语句语法为:if [ 条件表达式 ]; then.....fi条件表达式类型:文件表达式if [ -f file ] 如果文件存在 if [ -d ... ] 如果目录存在 if [ -s file ] 如果文件存在且非空 if [ -r file]如果文件存在且可读 if [ -w file]如果文件存在且可写 if [ -x fil…

.NET Core开发实战(第34课:MediatR:轻松实现命令查询职责分离模式(CQRS))--学习笔记(下)...

34 | MediatR:轻松实现命令查询职责分离模式(CQRS)实际上我们在定义我的查询的时候,也可以这样定义,例如我们定义一个 MyOrderQuery,把订单的所有名称都输出出去namespace GeekTime.API.Application.Querie…

linux连接http报301解决,https下不加www的301强制跳转

不少浏览器都开始逐渐更新至只支持https的网站,所以很多http网站都需要添加对https的支持,这时就需要涉及到www和不加www的跳转问题,由于www和不加www使用的是不同的证书,所以需要做301跳转处理,方案如下:此…

LeetCode 637 二叉树的层平均值-简单

给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。 示例 1: 输入: 3/ \9 20/ \15 7输出:[3, 14.5, 11] 解释: 第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回 [3, 14.5, 11] 。 提示: …

Asp.Net Core 中IdentityServer4 实战之角色授权详解

一、前言前几篇文章分享了IdentityServer4密码模式的基本授权及自定义授权等方式,最近由于改造一个网关服务,也用到了IdentityServer4的授权,改造过程中发现比较适合基于Role角色的授权,通过不同的角色来限制用户访问不同的Api资源…

linux cpu load 值,理解Linux系统中的load average(图文版)转

一、什么是load average?linux系统中的Load对当前CPU工作量的度量 (WikiPedia: the system load is a measure of the amount of work that a computer system is doing)。也有简单的说是进程队列的长度。Load Average 就是一段时间 (1 分钟、5分钟、15分钟) 内平均…

LeetCode 257二叉树的所有路径-简单

给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 输入: 1/ \ 2 3\5输出: [“1->2->5”, “1->3”] 解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3 代码如下: /*** Definition …

[ASP.NET Core 3.1]浏览器嗅探解决部分浏览器丢失Cookie问

今天的干货长驱直入,直奔主题看了前文的同学们应该都知道,搜狗、360等浏览器在单点登录中反复重定向,最终失败报错。原因在于,非Chrome80浏览器不识别Cookie上的SameSitenone属性值,导致认证Cookie在后续请求中被抛弃。截至2020/3…

c语言 最小值算法,C语言实现基于最大堆和最小堆的堆排序算法示例

堆定义堆实际上是一棵完全二叉树&#xff0c;其任何一非叶节点满足性质&#xff1a;Key[i]<key[2i1]&&Key[i]<key[2i2](小顶堆)或者&#xff1a;Key[i]>Key[2i1]&&key>key[2i2](大顶堆)即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关…

LeetCode100 相同的树-简单

给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例 1&#xff1a; 输入&#xff1a;p [1,2,3], q [1,2,3] 输出&#xff1a;true 示例 2&a…

Xamarin.Forms读取并展示Android和iOS通讯录 - TerminalMACS客户端

本文同步更新地址&#xff1a;https://dotnet9.com/11520.htmlhttps://terminalmacs.com/861.html阅读导航&#xff1a;一、功能说明二、代码实现三、源码获取四、参考资料五、后面计划一、功能说明完整思维导图&#xff1a;https://github.com/dotnet9/TerminalMACS/blob/mast…

LeetCode 101对称二叉树-简单

给定一个二叉树&#xff0c;检查它是否是镜像对称的。 例如&#xff0c;二叉树 [1,2,2,3,4,4,3] 是对称的。 1/ \2 2/ \ / \ 3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1/ \2 2\ \3 3代码如下&#xff1a; /*** Definition for a binary tree…

paragon+ntfs+linux,NTFS For Mac 超强兼容性

NTFS For Mac是为解决Windows和Mac OS X不兼容问题而开发的低级别档案系统驱动&#xff0c;提供在Mac OS X下完全读/写访问NTFS档案系统的任何版本。兼容mac OS X所有版本、32/64位内核模式&#xff0c;及其它第三方软件。不仅如此&#xff0c;NTFS For Mac 超强兼容性支持更多…

Asp.Net Core Ocelot Consul 微服务

做一个简单的微服务架构如下图&#xff1a;这个图表示的是一个网关代理Consul的两个服务&#xff0c;consul每个服务注册集群安装 Consul的服务&#xff0c;这里安装单机版的&#xff0c;集群版配置最低要求&#xff08;3个Consul server&#xff09;的需要三台虚拟机&#xff…

LeetCode 104二叉树的最大深度-简单

给定一个二叉树&#xff0c;找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例&#xff1a; 给定二叉树 [3,9,20,null,null,15,7]&#xff0c; 3/ \9 20/ \15 7返回它的最大深度 3 。 代码如下: …

以下c语言程序片段用于估测cpu的cache参数,阿里巴巴笔试题

阿里巴巴笔试题1.平均速度最快的排序算法是______。Shell排序快速排序冒泡排序插入排序2014-03-29 18:36:022.某服务进程的QPS(没秒处理的请求个数)较低&#xff0c;在空闲时间RT(响应时间)比较合理。在压力下CPU占用率20%左右。那么可能存在的问题是______。该进程的某个处理过…

.Neter们,你真的应该了解下EFCore3.x

本期导读&#xff1a;技术文&#xff0c;带你了解关于EntityFrameworkCore3.x的那些事&#xff0c;本文共1493个字&#xff0c;阅读大约需要3分钟。文末福利不要错过哦&#xff01;是的各位.Neter&#xff0c;不用怀疑&#xff0c;使用O/RM的开发者越来越多了&#xff0c;从风起…