没学好数据库的程序员,真的混不到饭吃么?

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 以下文章来源于SegmentFault ,作者徐九

业内有句俗语:

只会写代码的是码农;学好数据库,基本能混口饭吃;在此基础上再学好操作系统和计算机网络,就能当一个不错的程序员。

如果能再把离散数学、数字电路、体系结构、数据结构/算法、编译原理学通透,再加上丰富的实践经验与领域特定知识,就能算是一个优秀的工程师了。

这么说其实是有一些道理的,因为计算说穿了就是两个东西:数据与算法。

目前市面上常见的软件应用,大部分都属于数据密集型应用。通俗的话来讲,就是这些应用干的事儿就是把数据收集起来,需要的时候再拿出来。而这些操作都需要数据库来进行承载。

所以说,数据库离我们很近,也是一项开发者们非常需要掌握的技能。

本期内容重点:

  • 数据库解析
  • 数据库发展史
  • 对开发者的建议

01、啥是数据库?

640-68.jpeg

名词解析:数据库

数据库,简而言之可视为电子化的文件柜 —— 存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。所谓“数据库”系以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
数据库技术产生于 20 世纪 60 年代末 70 年代初,设置的主要目的是有效地管理和存取大量的数据资源。

数据库其实就是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。
随着互联网的发展,当今世界是一个充斥着大量数据的世界。数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。

数年来,数据库技术和计算机网络技术的发展相互渗透,相互促进,已成为当今计算机领域发展迅速,应用广泛的两大领域。数据库技术不仅应用于事务处理,并且进一步应用到情报检索、人工智能、专家系统、计算机辅助设计等领域。

数据库的概念实际包括两层意思:

数据库是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。

数据库是数据管理的新方法和技术,它能更合适的组织数据、更方便的维护数据、更严密的控制数据和更有效的利用数据。

数据库技术研究和管理的对象是数据,所以数据库技术所涉及的具体内容主要包括:

通过对数据的统一组织和管理,按照指定的结构建立相应的数据库和数据仓库;

利用数据库管理系统和数据挖掘系统设计出能够实现对数据库中的数据进行添加、修改、删除、处理、分析、理解、报表和打印等多种功能的数据管理和数据挖掘应用系统;

利用应用管理系统最终实现对数据的处理、分析和理解。

按照层级架构,数据库的架构一般可以划分为三层:

  • 内层:最接近实际存储体,亦即有关数据的实际存储方式;
  • 外层:最接近用户,即有关个别用户观看数据的方式;
  • 概念层:介于两者之间的间接层。

从其应用方式来看,数据库技术主要起着两方面的作用:

信息系统开发作用:利用数据库技术以及互联网技术,结合具体的编程语言,可以开发一个信息系统,从而解决业务数据的输入和管理问题.

数据分析与展示作用:利用RDBMS的数据查询功能对数据库中的数据进行关联组合或逐级汇总分析,并以表格,图形或报表形式将分析结果进行展示,从而解决业务数据的综合利用问题。

02、数据库发展阶段

640-69.jpeg

从原理来看,不难知道数据库技术的核心和基础就是「数据模型」。所以业内回顾数据库的发展阶段时,一般也是根据数据模型的演进作为相关的时间节点。
在数据库的发展历史上,数据库先后经历了层次数据库、网状数据库和关系数据库等各个阶段的发展。在这短短几十年的发展过程中,数据库的发展一般划分为下面这三代:

  • 第一代:网状和层次数据库系统;
  • 第二代:是关系数据库系统;
  • 第三代:以面向对象数据模型为主要特征的数据库系统。

🔸第一代:网状和层次数据库系统
第一代数据库系统是层次和网状数据库系统。层次数据库系统的典型代表是 1969 年 IBM 公司研制出的层次模型的数据库管理系统IMS。

🔸第二代:关系数据库系统
第二代数据库系统是关系数据库系统。1970 年 IBM 公司的 San Jose 研究试验室的研究员 Edgar F. Codd 发表了题为《大型共享数据库数据的关系模型》的论文,提出了关系数据模型,开创了关系数据库方法和关系数据库理论,为关系数据库技术奠定了理论基础。

20 世纪 70 年代是关系数据库理论研究和原型开发的时代,大量的理论成果和实践经验终于使关系数据库从实验室走向了社会,因此,人们一般把 20 世纪 70 年代称为数据库时代。

🔸第三代:以面向对象数据模型为主要特征的数据库系统
1990 年高级 DBMS 功能委员会发表了《第三代数据库系统宣言》,提出了第三代数据库管理系统应具有的三个基本特征:

1.应支持数据管理、对象管理和知识管理;
2.必须保持或继承第二代数据库系统的技术;
3.必须对其他系统开放。

随着云计算的发展和大数据时代的到来,关系型数据库越来越无法满足需要,这主要是由于越来越多的半关系型和非关系型数据需要用数据库进行存储管理。

于此同时,分布式技术等新技术的出现对数据库的技术提出了新的要求,传统的关系型数据库慢慢不能完成满足遇到的新需求,越来越多的非关系型数据库就开始出现。

这类数据库更强调数据库数据的高并发读写和存储大数据,这类数据库一般被称为 NoSQL(Not only SQL)数据库。但传统的关系型数据库在一些传统领域,依然保持了强大的生命力。

03、为什么建议开发者学好数据库?

640-71.jpeg

就像开头我们说的,现在的应用大部分都属于数据密集型应用,除非我们准备从轮子造起,不然根本没那么多机会去搞看起来很高端的数据结构和算法。

甚至写代码的能力可能也没那么重要,这个大家应该都懂。大部分需求都有现成的轮子可以使用,主要的创造性工作往往在数据模型与数据流设计上。

实际生产中,数据表就是数据结构,索引与查询就是算法。而应用代码往往扮演的是胶水的角色,处理IO与业务逻辑,其他大部分工作都是在数据系统之间搬运数据。

架构师最重要的能力之一,就是能够灵活地权衡取舍、集成拼接数据系统。绝大多数工程师都不会去从零开始编写存储引擎,因为在开发应用时,数据库已经是足够完美的工具了。关系型数据库则是目前所有数据系统中使用最广泛的组件,可以说是程序员吃饭的主要家伙,重要性不言而喻。

我曾经采访过很多 SegmentFault 社区的用户,都表示上学的时候没有好好学数据库,现在发现基础真的很重要又翻出来重新学了一遍。假如你还在上学,建议你抓住现在的机会,好好掌握这些基础的原理,工作之后很难再有时间和机会去”找补“了。

  • 部分资料来源:

维基百科词条:《数据库》、《萨师煊》
大学计算机基础:《数据库技术简史》
虎嗅网:《中国数据库40年历史:隐秘的江湖与恩怨》
常垒资本:《国产数据库崛起史》

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
8月前
|
存储 设计模式 前端开发
程序员除了会CRUD之外,还应该知道什么叫CQRS!
程序员除了会CRUD之外,还应该知道什么叫CQRS!
|
存储 设计模式 前端开发
程序员除了会 CRUD 之外,还应该知道什么叫 CQRS!
作者 | 倪升武 责编 | 郭 芮 今天主要跟大家分享一下什么是 CQRS,以及在项目中如何去使用。
136 1
程序员除了会 CRUD 之外,还应该知道什么叫 CQRS!
|
SQL 关系型数据库 MySQL
数据库 mysql 优化一 听说发第二遍全网程序员都不会单身 下
数据库 mysql 优化一 听说发第二遍全网程序员都不会单身 下
130 0
数据库 mysql 优化一 听说发第二遍全网程序员都不会单身   下
|
关系型数据库 MySQL 程序员
数据库 mysql 优化一 听说发第二遍全网程序员都不会单身 上
数据库 mysql 优化一 听说发第二遍全网程序员都不会单身 上
87 0
数据库 mysql 优化一 听说发第二遍全网程序员都不会单身    上
|
JSON 自然语言处理 程序员
厉害了!竟然有程序员在GitHub上建了一个新华词典数据库
今天,给大家推荐一个GitHub上的一个热门项目——chinese-xinhua ,一个新华字典数据库,截至今日,该项目已经获得了 927个「star」以及 230个「fork」。可能是知道的太少了
厉害了!竟然有程序员在GitHub上建了一个新华词典数据库
|
SQL 安全 NoSQL
从摩托罗拉、诺基亚再到航空领域应用,这款开源数据库的成功如何成就天才程序员?
  如果说有什么事物能够使男程序员心中的父爱完全觉醒,那我想一定是投身于自己创建的开源项目中去了。在和熊谱翔、黄东旭等储多开源大神的接触中,我可以明显感到他们对于自身开源项目的那份执着与热爱。虽然说贝佐斯、盖茨等IT巨头创始人都能在公司走上正轨后卸任CEO,完成华丽转身,但是为了维护自己的开源项目,程序员们往往都是从一而终,从不始乱终弃。
146 0
|
SQL 存储 关系型数据库
程序员晋级之路——mysql性能优化之数据库分区实战
程序员晋级之路——mysql性能优化之数据库分区实战
程序员晋级之路——mysql性能优化之数据库分区实战
|
存储 Oracle NoSQL
没学好数据库的程序员,真的混不到饭吃么?
只会写代码的是码农;学好数据库,基本能混口饭吃;在此基础上再学好操作系统和计算机网络,就能当一个不错的程序员。
1179 0
没学好数据库的程序员,真的混不到饭吃么?
|
存储 关系型数据库 分布式数据库
解密阿里数据库女程序员梓仪、璇戈、依诺代码诗!
2018年已过,我们迎来了新的一年,在机遇与挑战同在的环境下,我们更应勤于学习。为了方便大家学习,小编为大家盘点了2018年阿里云数据库ApsaraDB云栖号最火的干货文章分享给大家,让我们在新的一年里共同学习和成长! 阿里云数据库ApsaraDB 云栖号简介: 阿里云数据库:帮用户承担一切数据库.
5652 0