(一) 数据库存在的逻辑

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,努力的学习吧!

最新文章

  1. 走向面试之数据库基础:二、SQL进阶之case、子查询、分页、join与视图
  2. php strtotime 在32位操作系统下的限制
  3. ext 对齐
  4. Android listview 制作表格样式+由下往上动画弹出效果实现
  5. Hibernate 问题,在执行Query session.createQuery(hql) 报错误
  6. 005--VS C++ 加载位图
  7. 用java发送邮件(黄海已测试通过)
  8. 【经典DFS】NYOJ-1058-部分和问题
  9. IDEA如何打包可运行jar的一个问题。
  10. 写一个Windows上的守护进程(6)Windows服务
  11. TMsgThread, TCommThread -- 在delphi线程中实现消息循环(105篇博客,好多研究消息的文章)
  12. Android学习记录:ViewPager实现欢迎页
  13. bzoj1001(对偶图最短路)
  14. java虚拟机和java内存区域概述
  15. spring-oauth-server实践:客户端和服务端环境搭建
  16. C语言中sizeof、strlen函数的部分理解
  17. C# 之 Structure 和 Class的区别
  18. verilog语法实例学习(11)
  19. junit mockito
  20. ajax思维导图

热门文章

  1. hdu 6205 card card card 尺取法
  2. (十六)SpringBoot之使用 Caching- - EhCache
  3. python实现tcp代理
  4. TensorType
  5. js中prototype与__proto__的关系详解
  6. 关于Http协议与TCP协议的一些简单理解
  7. golang使用sftp连接服务器远程上传、下载文件
  8. java_赋值与初始化
  9. APP支付宝登录--PHP处理代码
  10. P1038 神经网络[拓扑]