(一) 数据库存在的逻辑

1.案例开篇-大部分公司对于数据和数字的管理都是低效率的

我们要学习数据库,就必须要搞清楚数据库是在什么样的情景下发明并流行的?学习新知识就要搞清楚每个知识点的来龙去脉,这样才能在日后的工作中灵活运用。下面,我会抛砖引玉,以实际案例引导大家思考,数据库存在的底层逻辑是什么?

我们知道,一个公司要想正常运转,一定是多部门协同工作的;以手机销售公司举例,当月销售了1万部手机,想想我们大部分公司是怎么记录存储这些数据的?公司销售部是一定要记录这1万笔的销售数据的,财务部也要记账,销售了1万部手机,物流部要记录运送了这1万部手机,运营部也要记录着投入了这1万部手机的推广费用;

看了上面的例子,对于数据的管理与记录方面,我们发现了什么问题?

  • 问题1:数据重复

    • 目前,每个部门都管理着自己一方的数据。无论是销售部还是物流部都有自己的对手机销售的核算体系,财务部就更不必说了,这种状况下,每个部门的数据记录都是重复的,造成了企业的浪费,每个部门输入记录这些数据也要花费很多时间。某个部门的数据自然也不能用于其他部门。
  • 问题2:数据矛盾的出现

    • 如果开始手机的单价是2000元,当手机单价涨价到2200元的时候,公司就要通知各个部门手机的价格变动了,这准确的信息传递的本身就是一件麻烦的事;如果,比如说物流部忘记了把价格调整,或者财务部错误的单价纪录成了3000元,这样的错误发生后,各个部门的数据就出会现不一致的情况。这样系统的信息与现实世界的实际情况就对应不起来了。
  • 问题3:难以应对新的变化

    • 由于数据是由各部门分别进行管理,如果一个新部门成立,就必须重新构建数据体系。

(二)数据库的引入

1.数据库是一个共享系统

针对上面的问题,我们有没有什么好办法可以建立一个比现在更有效的数据系统?

上面的这些问题归根结底都是由于各自管理数据造成的,为了更加高效的处理数据,仅仅单纯的管理数据是不够的。

那么,怎么做才能更好呢?我们需要对整个企业的数据进行一元化管理就可以了,这就是我们这门课的主题——“数据库”。

  • 对数据库进行一元化管理,共享数据。这样,各部门都可以查询并使用数据,从而建立一个高效有序的系统,这样既能够防止发生数据矛盾,又没有重复的数据,可以很容易的引入新的系统。

2.满足什么条件的共享系统才能当数据库用?

数据库是一个数据共享系统,既然是共享系统,在设计数据库的时候我们要注意回避什么问题吗?

  • 首先,当很多人共享数据库时,简单的录入、提取数据变得非常必要,我们必须使用任何人都能够理解的方法处理数据库;

  • 其次,我们必须要保证共享数据的绝对安全,比如薪酬数据就是只能由一部分人阅读的机密数据,销售数据只能由销售部的人更新

  • 然后,数据库在由多人使用的时候,比如,销售部和物流部想要同时更改手机的名称,销售部要把手机改成英语,物流部要把手机名称变为中文。这时,我们的手机名称会是怎么样呢?在多人使用的数据库中,必须能很好的解决此问题。

  • 最后,我们要注意不能丢失数据,系统有可能卡住,硬盘有可能发生故障,这时数据就面临着损坏的危险。因此,从这些故障中恢复数据的工作就变得非常重要了。

(三)MySQL的本质

1.数据库管理系统是什么?

  • 在说MySQL的本质是什么之前,我们先来说说数据库管理系统是什么?

前面我们已经说过了数据库存在的逻辑,再来说数据库管理系统是什么就非常清楚了;我们要引入数据库,是不是一定得有一个操作软件来操作数据库?这个操作软件就是数据库管理系统—DBMS。

  • 数据库管理系统DBMS,

    • 一句话解释:DBMS就是一个软件;
  • 为什么要有DBMS这个软件

    • 为了管理数据;

2.为什么我们要选择MySQL来学习

现在我们再来说MySQL的本质,前面我们说数据库可以解决当前数据管理中的很多问题,那么开发一套数据库管理体系就有很多商机,是不是?比如微软看到商机就开发了Sql Server,有的商家就开发了Oracle,还有比较小的sqlite,access,DB2等等,有很多这样的软件;

  • 对于茫茫多的数据管理软件,我们该怎样选择呢?

    • Sql Server功能特别强大,但是收费,Oracle非常的稳定,也是收费的;对于一般公司来说,都想省钱,一般情况下,现在大家都在用的就是MySQL,社区版的MySQL是免费的,我们可以对它进行二次开发,进行调优,调成在企业环境下能用的;
  • 学了MySQL,其他的比如说Sql Server,Oracle等就不用再学了,因为都是大同小异的;

最后总结一下,MySQL的本质就是一个数据管理软件,就是一个软件,而已。我们要掌握的就是怎样的应用它去解决实际问题,说白了,我们要学的也就是这么简单的一点东西而已,所以,跟着jacky,努力的学习吧!

MySQL数据分析-(2)数据库的底层逻辑的更多相关文章

  1. NewSQL分布式数据库,例如TIDB用K/V的底层逻辑

    内容参考 对分布式对定义参考这篇文章: 微服务都想用,先把分布式和微服务之间的关系说清楚 对分布式架构中心或无中心对比参考这篇文章: 分布式存储单主.多主和无中心架构的特征与趋势 对HDFS对内部机制 ...

  2. MySQL数据分析实战-朱元禄-专题视频课程

    MySQL数据分析实战-496人已学习 课程介绍        本套课程由知名数据分析博主jacky老师录制,深入浅出讲解MySQL数据分析,从实战角度出发,帮助大家制胜职场!课程收益    1.学会 ...

  3. MySQL数据分析-(1) 数据库前言

    (一)开场白 大家好,欢迎大家跟我一起学习<MySQL数据分析实战>这门课程,对于数据分析师来说,数据库是每一个从业者都必须掌握的课程,我们这门课是从实战的角度出发,我会帮助大家梳理MyS ...

  4. MySQL数据分析-(6)数据库设计之规范化

    大家好,我是jacky,很高兴继续跟大家学习MySQL数据分析这门课,上次课我们介绍了E-R图,我们要给手机销售公司设计数据库,那么同一个项目,10个设计人员可能设计出10种不同的E-R图:因为不同的 ...

  5. Percona 开始尝试基于Ceph做上层感知的分布式 MySQL 集群,使用 Ceph 提供的快照,备份和 HA 功能来解决分布式数据库的底层存储问题

    本文由 Ceph 中国社区 -QiYu 翻译 英文出处:Using Ceph with MySQL 欢迎加入CCTG Over the last year, the Ceph world drew m ...

  6. MySQL数据分析-(11)表补充:数据类型

    大家好,我是jacky,很高兴继续跟大家学习<Mysql 数据分析实战系列教程>,上次课程jacky讲解了表层面的增删改查,jacky说最重要的是增,增就是创建表,作为一个严谨的MySQL ...

  7. MySQL数据分析-(15)表补充:存储引擎

    大家好,我是jacky,很高兴继续跟大家分享<MySQL数据分析实战>,今天跟大家分享的主题是表补充之存储引擎: 我们之前学了跟表结构相关的一些操作,那我们看一下创建表的SQL模型: 在我 ...

  8. MySQL数据分析-(14)表补充:字符集

    大家好,我是jacky朱元禄,很高兴继续跟大家学习<MySQL数据分析实战>,本节课程jacky分享的主题是表补充之字符集 在分享课程之前,jacky在跟大家强调一下逻辑的重要性,我们学习 ...

  9. MySQL数据分析-(9)库操作补充:用户管理和权限管理

    大家好,我是jacky,很高兴继续跟大家学习MySQL数据分析实战,本节课的主题是用户管理和权限管理: 在分享之前,jacky在不厌其烦的强调一下:学习任何一门学科和技能,最重要的是捋清逻辑,我们要知 ...

随机推荐

  1. (十一)Activitivi5之流程控制网关:连线

    一.案例 1.1 需求 我们希望如果是重要情况才需要班主任审批,否则班长审批就行. 1.2 案例 当流程走到“班长审批”任务节点的时候,如果是一般情况,则如下: /** * 完成任务 */ @Test ...

  2. 转:让PIP源使用国内镜像,提升下载速度和安装成功率

    转载,自己记录使用,原文http://www.cnblogs.com/microman/p/6107879.html 对于Python开发用户来讲,PIP安装软件包是家常便饭.但国外的源下载速度实在太 ...

  3. 英特尔vPro博锐技术激活

    英特尔vPro博锐技术激活 参考: Intel官方Management Engine BIOS Extension (Intel®MEBX)手册:http://www.intel.com/conten ...

  4. spring源码(1)---idea基础环境搭建

    一.环境准备 1. jdk1.8.1 做java开发的这个应该能自己找到 2.gradle-4.9 https://services.gradle.org/distributions/ 没用过grad ...

  5. springboot启动流程(十一)aop切面处理过程

    所有文章 https://www.cnblogs.com/lay2017/p/11478237.html 正文 spring的两大核心就是ioc和aop.在关于ioc依赖注入的文章中,我们了解了如何根 ...

  6. C++ 函数重载二义性

    说起函数重载,我不由得想起了C++的“多态”特性.多态又分为静态(编译时)多态和动态(运行时)多态,静态多态即为函数重载,动态多态则是虚函数机制.虚函数水较深,先不讨论,今天我们来看一下函数重载.作用 ...

  7. 封装promise

    // new 做了什么 //1.创建一个新的空对象 //2.将构造函数中的this指向这个新空对象 //3.执行构造函数中的代码 //4.返回这个对象 //5.这个对象有一个__proto__指向构造 ...

  8. 高射炮打蚊子,杀鸡用绝世好剑:在SAP Kyma上运行UI5应用

    国人在表述"大材小用"这个场景时,总喜欢用一些实物来类比,比如:高射炮打蚊子. 英国QF 3.7英寸(94mm)高射炮,战斗全重超过9.3吨,全长近5米,最大射程约18公里,最大射 ...

  9. vue处理换行符

    1.处理换行符 <tr class="unread" v-for="(item,index) in DataList" :key="index& ...

  10. 操作系统 (OS)

    1. 操作系统(Operation System,OS) 操作系统作为接口的示意图 没有安装操作系统的计算机,通常被称为 裸机 如果想在 裸机 上运行自己所编写的程序,就必须用机器语言书写程序 如果计 ...