MySQL数据分析-(2)数据库的底层逻辑
(一) 数据库存在的逻辑
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)数据库的底层逻辑的更多相关文章
- NewSQL分布式数据库,例如TIDB用K/V的底层逻辑
内容参考 对分布式对定义参考这篇文章: 微服务都想用,先把分布式和微服务之间的关系说清楚 对分布式架构中心或无中心对比参考这篇文章: 分布式存储单主.多主和无中心架构的特征与趋势 对HDFS对内部机制 ...
- MySQL数据分析实战-朱元禄-专题视频课程
MySQL数据分析实战-496人已学习 课程介绍 本套课程由知名数据分析博主jacky老师录制,深入浅出讲解MySQL数据分析,从实战角度出发,帮助大家制胜职场!课程收益 1.学会 ...
- MySQL数据分析-(1) 数据库前言
(一)开场白 大家好,欢迎大家跟我一起学习<MySQL数据分析实战>这门课程,对于数据分析师来说,数据库是每一个从业者都必须掌握的课程,我们这门课是从实战的角度出发,我会帮助大家梳理MyS ...
- MySQL数据分析-(6)数据库设计之规范化
大家好,我是jacky,很高兴继续跟大家学习MySQL数据分析这门课,上次课我们介绍了E-R图,我们要给手机销售公司设计数据库,那么同一个项目,10个设计人员可能设计出10种不同的E-R图:因为不同的 ...
- Percona 开始尝试基于Ceph做上层感知的分布式 MySQL 集群,使用 Ceph 提供的快照,备份和 HA 功能来解决分布式数据库的底层存储问题
本文由 Ceph 中国社区 -QiYu 翻译 英文出处:Using Ceph with MySQL 欢迎加入CCTG Over the last year, the Ceph world drew m ...
- MySQL数据分析-(11)表补充:数据类型
大家好,我是jacky,很高兴继续跟大家学习<Mysql 数据分析实战系列教程>,上次课程jacky讲解了表层面的增删改查,jacky说最重要的是增,增就是创建表,作为一个严谨的MySQL ...
- MySQL数据分析-(15)表补充:存储引擎
大家好,我是jacky,很高兴继续跟大家分享<MySQL数据分析实战>,今天跟大家分享的主题是表补充之存储引擎: 我们之前学了跟表结构相关的一些操作,那我们看一下创建表的SQL模型: 在我 ...
- MySQL数据分析-(14)表补充:字符集
大家好,我是jacky朱元禄,很高兴继续跟大家学习<MySQL数据分析实战>,本节课程jacky分享的主题是表补充之字符集 在分享课程之前,jacky在跟大家强调一下逻辑的重要性,我们学习 ...
- MySQL数据分析-(9)库操作补充:用户管理和权限管理
大家好,我是jacky,很高兴继续跟大家学习MySQL数据分析实战,本节课的主题是用户管理和权限管理: 在分享之前,jacky在不厌其烦的强调一下:学习任何一门学科和技能,最重要的是捋清逻辑,我们要知 ...
随机推荐
- [Es6]原生Promise的使用方法
参考:https://www.cnblogs.com/imwtr/p/5916793.html 1.new Promise(func) 通过实例化构造函数成一个promise对象,构造函数中有个函数参 ...
- CVE-2018-2879 - anniversary
For the anniversary of the discovery of CVE-2018-2879 by Sec Consult (https://sec-consult.com/en/blo ...
- github安全整理
漏洞及渗透练习平台: WebGoat漏洞练习平台: https://github.com/WebGoat/WebGoat webgoat-legacy漏洞练习平台: https://github.co ...
- 自定义printf 打印函数
文章转载自:https://blog.csdn.net/varding/article/details/8109440 我们在程序里经常需要打印一些字符串来调试或者显示,最简单的方法: char ...
- asp.netMVC中使用aop进行关注点分离
资源地址:https://stackoverflow.com/questions/23244400/aspect-oriented-programming-in-asp-net-mvc 从页面复制过来 ...
- 2018-2019 XIX Open Cup, Grand Prix of Korea B - Dev, Please Add This!
B - Dev, Please Add This! 思路: 对于每一个经过 '*' 的横线和竖线看成一个整体,设他们分别为分量x和分量y 用2-sat考虑这个问题, 如果要经过 '*' ,那么x和y至 ...
- 【简易DFS/BFS+标记搜索次序的数组】zznu-2025 : 简单环路
2025 : 简单环路 时间限制:1 Sec 内存限制:128 MiB提交:145 答案正确:41 提交 状态 编辑 讨论区 题目描述 有一个N x M 大小的地图,地图中的每个单元包含一个大写字母. ...
- SQLCommand命令、DbTransaction事务
一.SqlDataReader SqlConnection conn = new SqlConnection("server=10.126.64.11;user=it_oper;pwd=IT ...
- [唐胡璐]Selenium技巧- 如何处理Table
由于webdriver中没有专门的table类,所以我们需要简单的封装出一个易用易扩展的Table类来帮助简化代码。 以下是我之前用C#语言来实现的一个简单的封装: 只是一个大概的思路,有些具体实现就 ...
- 获取TableViewer里面的所有TableViewerColumn
private TableViewerColumn[] getTableViewerColumns(TableViewer tableViewer) { TableColumn[] columns = ...