数据库概论 - 数据库的介绍

数据库相关基础概论

大家好,这次给大家带来的是我的新的专栏:数据库,数据库相对来说难度不是那么高,大家只要勤加练习、熟记语法,我相信学好数据库不是什么问题,博主会从0剖析,逐步讲解数据库的知识点,并且会举很多实例。最重要的是,博主不会采用软件,使用最原始的方式 -> 命令行来讲解,这样讲解的好处是逐个语句进行书写,不会造成读者思路跟不上的问题!

QQ:162196770

微信:PRIDE_Xu_

Gitee:https://gitee.com/jialebihaitao

下一篇博客传送门:

文章专栏:

数据库概论 - 数据库的介绍_第1张图片

数据库的介绍

  • 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 数据库学啥?

  1. 数据库的基本操作(以SQL语句为核心),SQL是一门编程语言,使用比较简单
  2. 数据库的底层原理(主要针对常见面试题)
  3. 数据库编程(使用Java语言操作数据库)

1.2 数据库到底是啥?

数据库是一个软件(一类软件),这一类软件功能就是”管理数据”,也就是组织并存储数据的软件

1.3 与数据结构的关系

数据库:软件

数据结构:学科

数据库软件在实现过程中,是非常依赖数据结构的,实现数据库软件的内部,会广泛的使用到各种数据结构~

数据结构这门学科就是在讨论具体如何组织和管理数据~ 管理的目的就是为了进行”增删改查”

1.4 分类

1.4.1 关系型数据库

  1. 定义:数据的组织形式使用“表”作为结构,类似于excel。首先得有⼀个表头,表头中约定了有很多列,以及每⼀列的类型,插入的数据就是表中的一行。这一行里的每⼀列都需要和表头结构对应。

    数据库概论 - 数据库的介绍_第2张图片

  2. 对于数据的“约束”(对于数据合法性的校验)比较强

  3. 适用于大部分场景 MySQLOracleSQL ServerSQLite

1.4.2 非关系型数据库

  1. 非关系型数据库(也叫NoSQL):数据的组织形式使用“键值对”作为结构。类似于Map
  2. 存储的时候都是需要制定keyvalue,每组数据的value中都需要包含哪些字段,没有明确要求,对于数据的约束更低
  3. 相比于关系数据库,牺牲了⼀部分的功能,但是换来了更高的效率以及更强的水平扩展能力 更适用于分布式系统中

1.5 一个电脑的基本组成(题外话)

数据库概论 - 数据库的介绍_第3张图片

  1. 外存:分为软盘、硬盘、光盘、硬盘、U盘(flash),其中现在最常用的就是硬盘以及U盘

  2. 内存和外存的区别:

    1. 内存的存储空间较小(8G,16G),外存的存储空间较大(512G,1T)

    2. 内存的访问速度快,外存的访问速度慢(大概要差3-4个数量级)

      这里的外存特指机械硬盘,硬盘也有机械硬盘和SSD,机械硬盘它受限于机械硬盘的物理结构,导致他的存储速度,已经快十年没有发展了。但是SSD固态硬盘访问速度很快,比机械硬盘快很多,最好的固态硬盘,快赶上最垃圾的内存了~不过一般的SSD还是会比内存慢上许多的

    3. 内存成本高,外存成本低

    4. 内存中的数据断电后消失,外存中的数据断电后还在

      也不是绝对的.只不过一般机械硬盘存储数据的保存时间是几年~十几年之间

  3. 当前世界上的绝大部分计算机(99%以上)都是按照上述结构来进行构建的~

1.6 祖师爷:冯诺依曼以及图灵(题外话)

给大家讲讲两位祖师爷的光辉历史

Part I:冯诺依曼

冯诺依曼体系结构,叫做“冯诺依曼”大佬提出来的,可以说是20世纪最NB的全才,它是一个数学家,还是物理学家,还是化学家,计算机之父,在二战中,还参与了曼哈顿计划,他们一起来研究原子弹。

那年,有一天,冯诺依曼大佬,去坐火车~(绿皮车),对面有个小伙是 “普林斯顿大学的研究员”,研究一个用来”计算的机器“,但是遇到一些瓶颈,搞不下来了~~~冯诺依曼大佬去溜达溜达,研究了一段时间,就牵头把第一代计算机给研究出来了!

计算机使用二进制,也是冯大佬提出来的~

Part II:图灵

图灵奠定了计算机的理论基础

图灵也参与了二战~最大的贡献,破解了德军的电报加密系统,这直接促进了诺曼底登陆

但是遗憾的是英年早逝~据说是收到了英国皇室的迫害~

1.7 存储位置

一般情况下,MySQL的数据是保存在硬盘上的~ (”持久化存储的“方式),但是也有少数数据库,是把数据存在内存上的(比如:Redis,Tair…)

所以在实际的大型开发中,最容易出现问题的,就是数据库.

相比之下,咱们之前学习的数据结构~尤其是之前写的代码,数据基本都是在内存中保存的~(代码中创建的变量,就保存到对应内存空间)

1.8 常用数据库软件介绍

  1. Oracle:最好的数据库,毋庸置疑

    最好的数据库 就是 Oracle,不⽤他的理由:贵!普通学生用不起,⼀些中小型公司也用不起,甚至一些大厂也不太用得起,真正用得起的都是财大气粗的金主,比如银行。

    银行的特点:

    1. 数据特别重要
    2. 不差钱

    贵主要不是贵在软件使用上,而是花钱买的是⼀份平安,放心,更是⼀个背锅侠(出问题了有人赖),出了问题Oracle的技

    支持会上门服务,所以花钱买的是服务。

    相比之下MySQL 比较适合咱们使用,开源免费,白嫖⼀时爽,一直白嫖⼀直爽~

    而且,Oracle基本都需要在配置超高的计算机上运行!(夸张的说,国家级的计算机才适合用)

  2. 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之间都是兼容的,当前学习的时候用哪个都行

  3. SQL Server:也不错,营销策略害了他

    SQL Server 微软出品的数据库
    其实是⼀个很好的很强大的数据库,然而没人用
    最主要的原因:

    1. 收费的,而且也不太便宜
    2. 早期的SQL ServerWindows平台是捆绑的,但是那时候主流服务器系统都是Linux
      正因为这样的营销错略,导致错失市场份额
      SQL Server的市场份额被MySQL抢占了
      C#的市场份额也被Java抢占了
      后来微软反应过来了,也做出了调整,让SQL Server C#都能⽀持跨平台,但是为时已晚
  4. SQLite:世界上装机量最大的数据库

    安卓手机自带的数据库,小巧轻量

还有其他数据库,比如SQLite,HBase,MongoDB,Redis等等

以后在实际工作中,数据库用得最多的,还是MySQL,各个数据库之间,差别也不大,“一通百通”

你可能感兴趣的:(数据库,数据库,java,开发语言)