天天鼓捣数据,你知道数据库长啥样吗?

起点学院产品经理365成长计划,2天线下闭门集训+1年在线学习,全面掌握BAT产品经理体系。了解详情

shujuku

在家里,找一个东西,经常找了几个小时找不到,最终放弃。

在宜家,找任何东西,基本都可以靠编号自助搞定。

是什么导致了这种区别?

很好理解,宜家的所有东西都在一张表上登记过,然后在这张表里面填上了物品即将被放置的地址编号,最终这件物品才被工作人员最终放置到那个地址编号所对应的货架上,便于寻址(计算机中的寻址就是“找”的意思,不装逼一下,半夜写文章还真有点儿困)。在表上填写若干件物品的名称和相应的地址,有需要的时候再把它找出来,有的时候要进行统计每种物品的库存数量,其实就是一个典型的数据库的应用场景,只不过我举的例子好像是一个纯人工手工的操作,用脚后跟想想,21世纪的今天,肯定也是由电脑完成的哦。

数据库的英文叫做DB(DataBase),数据仓库的意思,就是存储数据的仓库呗,跟宜家存储是真正的物品没有什么不同,一个是在硬盘上,一个是在真正的三维空间中而已。

数据库中有多个表(最少要有一张表,空的数据库什么也表示不了哦,表的英文叫table),表中真正存储的才是数据记录,一张表简单理解成excel的一张二维表格,你就真正理解数据库了,哈哈,如下表所示,表仍然以行列描述其结构,列id,name,address分别描述了物品的编号,名称以及地址,明眼人应该看清楚了,每一列就是一个物品的一个属性,也就是这个物品的一个特点。每一行代表了一条记录(record),这条记录有三个列(特点)。

4

这张表格如此清晰,我上面这张图也是从excel截取出来的,那为啥不用excel直接管理数据啊?主要是因为数据库的存取效率较excel更高,好多系统是没有用户界面的,你也用不了excel,最重要的是全世界的数据库都支持一种叫做SQL语言的东西来进行“增删改查”操作,数据库是有事务系统的(一系列步骤的一步出错了,全部回滚到最初状态),数据库是支持命令操作的,而不是简简单单的鼠标操作,这就更减少了人为出错,数据库是支持索引的,数据库的查询效率更高等等等等,后面省略一万条原因。

作为一名产品或设计人员,你只需要把数据库简单理解为,数据库是一个大文件,这个大文件当中有若干个excel表格,每张表格里面存储了若干条记录就。

以宜家举例,宜家的后台一定是个大数据库,这个数据库里面至少有两张表,第一张表记录了所有的员工信息,包括姓名,年龄,手机,家庭住址,银行卡帐号等等。第二张表记录了所有商品的信息,包括商品编号,价格,库存,货架位置等等。

你的新浪微博的用户名和密码,是存储在新浪的后台数据库中的一个表当中的。

你的QQ号码,也是存储在腾讯的服务器中的某一个数据库里面的。

你的京东购物车的物品列表,也是存储在京东的一个数据库当中的。

数据库的操作一般有“增”“删”“改”“查”四种操作,都是借助于SQL语句完成的,SQL读作【se一声】【kou一声】,我们写程序的时候,一般用C语言,C++或者Java等,但是操作数据库的话,全世界的程序员都是统一的,都是用SQL语句来操作数据库,我交你写一句最简单的SQL语句,剩下的就靠自学了,哈哈。Select * From table1 where name=“桌子”,这个SQL语句的意思是,查询出table1这张表中所有名字为“桌子”的记录。其实一个牛逼的程序员可以用一条非常漂亮的SQL语句来解决许多复杂问题。

数据库的知识概念很多,我挑几个重要的简单介绍下:

  1. 索引,数据库经常有上亿条记录,查询会很慢很慢的,数据库会提供一个功能,像字典一样编制一个”索引“,就是新华字典的前几页一样,靠拼音或偏旁来查询的功能,这个就是索引,这个经常能大幅度提高查询速度。
  2. 事务,数据库提供了一种机制,就是一件事,必须做完,如果中间出了差错,他会清理掉一切痕迹,回到最初状态,这对于保持数据的一致性和完整性有功不可没的作用。
  3. 联合查询,经常一张表格解决不了你的问题,比如有两张表,一张表是员工基本信息,另一张表是工资表,这个时候,要查询某某员工的工资,就要两张表一起来“联合查询”

最后简单介绍下,一个应用程序怎么使用数据库呢?第一步,首先建立和数据库的连接,第二步,利用这个连接,来进行数据库的建表,删表,以及对表的增删改查操作,第三部,关闭数据库连接。最后一步是最容易犯错误的,不关闭数据库连接,经常会产生内存泄漏,以及各种异常。

说了很多废话,其实数据库的直观表现就可以看成一个excel表格。

PS:如果你想跟我交流,对公众号像跟朋友那样聊微信回复就可以了,亲,不能保证每一条都回,但是每一条肯定都会认真看。如果觉得我每天的分享有价值,你能帮我分享给你周围的同事和朋友,想必那是极好的~~~

#专栏作家#

给产品经理讲技术,微信公众号(pm_teacher),人人都是产品经理专栏作家。资深程序猿,专注客户端开发若干年,对前端、后台技术略懂,热衷于对新的科技领域的探索。

本文原创发布于人人都是产品经理,未经许可,不得转载。

您的赞赏,是对我创作的最大鼓励。

评论( 2

登录后参与评论
  1. 稀烂,都写的撒。。

    回复
  2. 关注你的公众号啦~正是我需要的那种 :neutral:

    回复
加载中