数据库相关基础概论
大家好,这次给大家带来的是我的新的专栏:数据库,数据库相对来说难度不是那么高,大家只要勤加练习、熟记语法,我相信学好数据库不是什么问题,博主会从0剖析,逐步讲解数据库的知识点,并且会举很多实例。最重要的是,博主不会采用软件,使用最原始的方式 -> 命令行来讲解,这样讲解的好处是逐个语句进行书写,不会造成读者思路跟不上的问题!
👀QQ:162196770
👀微信:PRIDE_Xu_
👀Gitee:https://gitee.com/jialebihaitao
👀下一篇博客传送门:
👀文章专栏:
数据库的介绍
- 1、数据库的介绍
- 1.1 数据库学啥?
- 1.2 数据库到底是啥?
- 1.3 与数据结构的关系
- 1.4 分类
- 1.4.1 关系型数据库
- 1.4.2 非关系型数据库
- 1.5 一个电脑的基本组成(题外话)
- 1.6 祖师爷:冯诺依曼以及图灵(题外话)
- 1.7 存储位置
- 1.8 常用数据库软件介绍
1、数据库的介绍
1.1 数据库学啥?
- 数据库的基本操作(以
SQL语句为核心),SQL是一门编程语言,使用比较简单 - 数据库的底层原理(主要针对常见面试题)
- 数据库编程(使用Java语言操作数据库)
1.2 数据库到底是啥?
数据库是一个软件(一类软件),这一类软件功能就是”管理数据”,也就是组织并存储数据的软件
1.3 与数据结构的关系
数据库:软件
数据结构:学科
数据库软件在实现过程中,是非常依赖数据结构的,实现数据库软件的内部,会广泛的使用到各种数据结构~
数据结构这门学科就是在讨论具体如何组织和管理数据~ 管理的目的就是为了进行”增删改查”
1.4 分类
1.4.1 关系型数据库
-
定义:数据的组织形式使用“表”作为结构,类似于
excel。首先得有⼀个表头,表头中约定了有很多列,以及每⼀列的类型,插入的数据就是表中的一行。这一行里的每⼀列都需要和表头结构对应。
-
对于数据的“约束”(对于数据合法性的校验)比较强
-
适用于大部分场景
MySQL,Oracle,SQL Server,SQLite
1.4.2 非关系型数据库
- 非关系型数据库(也叫
NoSQL):数据的组织形式使用“键值对”作为结构。类似于Map - 存储的时候都是需要制定
key和value,每组数据的value中都需要包含哪些字段,没有明确要求,对于数据的约束更低 - 相比于关系数据库,牺牲了⼀部分的功能,但是换来了更高的效率以及更强的水平扩展能力 更适用于分布式系统中
1.5 一个电脑的基本组成(题外话)

-
外存:分为软盘、硬盘、光盘、硬盘、U盘(flash),其中现在最常用的就是硬盘以及U盘
-
内存和外存的区别:
-
内存的存储空间较小(8G,16G),外存的存储空间较大(512G,1T)
-
内存的访问速度快,外存的访问速度慢(大概要差3-4个数量级)
这里的外存特指机械硬盘,硬盘也有机械硬盘和
SSD,机械硬盘它受限于机械硬盘的物理结构,导致他的存储速度,已经快十年没有发展了。但是SSD固态硬盘访问速度很快,比机械硬盘快很多,最好的固态硬盘,快赶上最垃圾的内存了~不过一般的SSD还是会比内存慢上许多的 -
内存成本高,外存成本低
-
内存中的数据断电后消失,外存中的数据断电后还在
也不是绝对的.只不过一般机械硬盘存储数据的保存时间是几年~十几年之间
-
-
当前世界上的绝大部分计算机(99%以上)都是按照上述结构来进行构建的~
1.6 祖师爷:冯诺依曼以及图灵(题外话)
给大家讲讲两位祖师爷的光辉历史
Part I:冯诺依曼
冯诺依曼体系结构,叫做“冯诺依曼”大佬提出来的,可以说是20世纪最
NB的全才,它是一个数学家,还是物理学家,还是化学家,计算机之父,在二战中,还参与了曼哈顿计划,他们一起来研究原子弹。那年,有一天,冯诺依曼大佬,去坐火车~(绿皮车),对面有个小伙是 “普林斯顿大学的研究员”,研究一个用来”计算的机器“,但是遇到一些瓶颈,搞不下来了~~~冯诺依曼大佬去溜达溜达,研究了一段时间,就牵头把第一代计算机给研究出来了!
计算机使用二进制,也是冯大佬提出来的~
Part II:图灵
图灵奠定了计算机的理论基础
图灵也参与了二战~最大的贡献,破解了德军的电报加密系统,这直接促进了诺曼底登陆
但是遗憾的是英年早逝~据说是收到了英国皇室的迫害~
1.7 存储位置
一般情况下,MySQL的数据是保存在硬盘上的~ (”持久化存储的“方式),但是也有少数数据库,是把数据存在内存上的(比如:Redis,Tair…)
所以在实际的大型开发中,最容易出现问题的,就是数据库.
相比之下,咱们之前学习的数据结构~尤其是之前写的代码,数据基本都是在内存中保存的~(代码中创建的变量,就保存到对应内存空间)
1.8 常用数据库软件介绍
-
Oracle:最好的数据库,毋庸置疑最好的数据库 就是
Oracle,不⽤他的理由:贵!普通学生用不起,⼀些中小型公司也用不起,甚至一些大厂也不太用得起,真正用得起的都是财大气粗的金主,比如银行。银行的特点:
- 数据特别重要
- 不差钱
贵主要不是贵在软件使用上,而是花钱买的是⼀份平安,放心,更是⼀个背锅侠(出问题了有人赖),出了问题
Oracle的技支持会上门服务,所以花钱买的是服务。
相比之下
MySQL比较适合咱们使用,开源免费,白嫖⼀时爽,一直白嫖⼀直爽~而且,
Oracle基本都需要在配置超高的计算机上运行!(夸张的说,国家级的计算机才适合用) -
MySQL:开源免费,使用体验感也十分不错国内,最开始的时候,
MySQL的市场份额很低,还是以Oracle为主阿里牵头,掀起⼀场“去Oracle”的革命。当时
MySQL是⼀个备选,阿里那时候也在自研数据库最开始替换的时候,问题很多,好在无数大佬们前仆后继,去踩坑去填坑,
MySQL也经历了⼀段快速发展过程。最终
MySQL也就相对稳定搞笑了,就称为了当前非常主流的数据库。但是
MySQL的高速发展,也抢占了不少Oracle的市场份额。Oracle为了遏制MySQL的发展,釜底抽薪,给MySQL买下了,买完之后立刻MySQL就不开源了(虽然暂时还是免费)同时
Oracle也是Java的爸爸Oracle这个公司特别爱搞事情~Google当年整Android,本来是想用Python。正好那个时候Python之父从谷歌离职了,谷歌就把语言切换到了Java。随着
Android风生水起,大家都眼红的不要不要的了,Oracle这时候灵机一动,就把Java给买下来了,然后Oracle就把谷歌上了法庭,你要想用
Java开发安卓,你得给钱(讹人!)谷歌败诉,只能赔钱于是谷歌一气之下准备发展下⼀代移动端系统,搭载的开发语⾔
Dart(谷歌自研的语⾔),搭载的框架Flutter等。此时
MySQL作者也生气了,Oracle公司抠抠搜搜,落井下石。所以他在原来MySQL的开源版本基础上又搞了⼀条分支,叫Mariadb,仍然是开源免费的。Mariadb和原来的MySQL之间都是兼容的,当前学习的时候用哪个都行 -
SQL Server:也不错,营销策略害了他SQL Server微软出品的数据库
其实是⼀个很好的很强大的数据库,然而没人用
最主要的原因:- 收费的,而且也不太便宜
- 早期的
SQL Server和Windows平台是捆绑的,但是那时候主流服务器系统都是Linux
正因为这样的营销错略,导致错失市场份额
SQL Server的市场份额被MySQL抢占了
C#的市场份额也被Java抢占了
后来微软反应过来了,也做出了调整,让SQL Server和C#都能⽀持跨平台,但是为时已晚
-
SQLite:世界上装机量最大的数据库安卓手机自带的数据库,小巧轻量
还有其他数据库,比如SQLite,HBase,MongoDB,Redis等等
以后在实际工作中,数据库用得最多的,还是MySQL,各个数据库之间,差别也不大,“一通百通”




















