怎样用三句话向一个 8 岁小孩解释什么是数据库?

2015-12-31   出处: 知乎  作/译者:海燕整理

今天我试着问8岁的女儿这样一个问题:
问:     “ 你知道IPad上的游戏是怎么记住你玩的进度的?”
答:     “ 就像书签一样,找到书签就翻到上次看到的地方了!”
问:     “ 那游戏里的东西存在哪儿呢?”
答:     “ IPad里呀!像一个仓库什么的 ”

和我们的时代不同,8岁的小孩已经开始接触电脑了,在电脑上玩游戏,用搜索引擎搜索视频,会编辑简单的文字,所以完全可以直接告诉孩子数据库是什么,但关键是我们能准确的描述“ 数据库是什么吗?”我用自己浅薄的知识试着解读一下:
  • 结构化存储数据(为了方便查找)
  • 对数据操作(增删改)进行控制和管理,维护数据一致性
  • 提供用户共享访问接口
回到这个问题,怎样用三句话向一个 8 岁小孩解释什么是数据库? 这里小编给你网罗了各种精采回答:

A 君:
  1. 图书馆就是一个数据库:图书馆的每本书都有一个编号,编号表示了书的类别和顺序号,同类别的书放在一个书架上,然后书按顺序摆在它所属的书架上,这么做的好处是方便查找书。
  2. 图书馆管理员就是访问接口:你想找一本书时,他先找到这本书的类别和顺序号,然后他就到指定的书架上按顺序找到那本书,交给你。
  3. 你和其他人提出的借书请求就是外部程序,一本书可以借给你也可以借给别人,但是图书馆管理员知道书的状态并负责把书放回原位。

B 君:
     数据库就是在电脑里按照一定规律存放数据的仓库,比如你玩的“ 摩尔庄园 ”游戏里的每件东西都有一个编号存在它所属的格子里,打开游戏时,游戏程序要把格子里的东西取出来摆成你上回玩的那个进度。

C 君:形象化的比喻,合理的引导
  1. 你知道你玩儿完玩具之后怎么收拾玩具,才能让你下回能轻松找到它们吧?
  2. 「数据库」就像是你收玩具的那个架子,只不过它是收「数据」的。
  3. 现在,在「数据库」里可以很方便的找到「数据」——不管是找「所有恐龙玩具」还是「所有黄色玩具」,电脑可以很快的给你找出来让你玩,因为它们在数据库里。
得到的答案可能五花八门:
     答1: 不知道,从来不收,我妈收,一边追着打我一边收。
     答2: 我不用架子收玩具,我用屋子收。「数据」是什么?
     答3: 我要恐龙玩具!!!!!!!电脑在哪儿呢?骗人!!!
     答4: 我妈说不让我再跟你说话了,因为你让我要「黄色玩具」!!!!


D 君:决定搞个中国特色的答案
  1. 电脑里面存了好多好多数据。数据就像各种各样中药,在没有数据库之前,中药就是一包包这样杂乱无章地堆放着(unorganized data),找也不好找(inaccessible)。如果你是药店的掌柜,你怎么来管理这些药呢?                                                                                                                                                                                                                    
  2. 聪明的古人就想了办法:把所有的中药都放到柜子里面(data table),柜子里面都是大小一样的小盒子(organized data model),每个盒子(a row / record)都在外面标签上写上药名,按笔划排序帮助快速查找(index / primary key),比如你要找三七,那么一定是三笔的头几个——现在找东西是不是方便多了?                                                                                                                                                                 
  3. 如果要找一味温热的药,按名字找可就不大灵了,除了打开抽屉一个一个舔过去,还有什么办法快速找到吗?对啦,就是在抽屉上涂上颜色,比如温热的用粉红色,凉性的用蓝色(secondary key),你还可以用不同大小的抽屉代表药的其他属性(another secondary key)                                                                                                                
  4. 如果有的药卖空了没有货怎么办?把整个抽屉拿走(delete a row)!如果新增加一种药怎么办?找一个空抽屉放上新药贴个标签呗(add a row)!如果整柜子中药都过期了怎么最快处理?把柜子搬走(drop a table),换个新柜子(create a table),再往里面添加新鲜中药                                                                                                                                                                                                                                                        
  5. 如果有一种药量特别大,放在另外一个抽屉大一点儿的柜子里怎么办呢(splitted table)?在这个抽屉里放一张纸条,写上“此药在后堂第三个柜子第二个抽屉”(Foreign key / linked table)。                                                                                                                          

                           


      ——喏,小朋友,电脑也是这么管理里面的数据的!(当然,这种讲法同样可以让不懂数据库有technophobia的萌妹纸懵滴弟们快速入门,其实数据库里面的绝大部分概念用中药铺子的类比来讲都非常容易理解,请自行补充)。
     ps: 貌似多于三句了,但是我想三这个数并不重要,最主要的还是用这种类比轻松地想把数据库里的关键概念和作用都涉及到。若非要追求三句,在上述的说法中加以删节就好!

E 君:
     你家房子就是存储,你妈妈就是listener,你给你妈妈说一句「我的方格子上面有小鹿的裤子在哪?」相当于SQL,你妈妈就会给你找出来了....
     ps: 这样的小孩子和成年人最大的不同就是不会拒绝专业名词,故意留出你要展开问题的点,概念简单没有细节。喜欢刨根问底的小孩子才会继续问下去,到时候再说出细节。

F 君:
     我们开始接触电脑的时候电脑要分主机和外设,现在还需要知道什么是外设吗?我认为现在的孩子长大后如非专业,数据库这个概念也有可能被淘汰,所以,别整那么复杂。
     一句话就够了:数据库就是存放数据的地方。

G 君:
     我个人觉得这是一件非常困难的事情,真的非常困难。
记得曾经做过一个银行的项目,最后做部级鉴定,第一排坐了一些专家,都是什么院士,候补院士之类的(真的IT领域的院士和候补院士哦)。当我介绍到项目采用了oracle及其高可用选件的时候, 某候补院士教授发问,说windows的写字板不是有搜索功能么?为什么要花那么多钱购买oracle这种东西?我当时面临的是一样的问题,不可能长篇大论讲数据库原理。。。汗。。。而且我的难度更低,至少我面对的是一个成年人,还是一位这个领域的“专家”。必须是几句话说明白。但是我绞尽脑汁搜肠刮肚,最终我还是败了,傻傻地站在台上呆滞了2分钟,看着台下大片的人捂着嘴在后面偷笑。最后还是另外一位好心的院士给解了围,说:“老X,这问题我们会后在详细交流吧。”我才得以过关。所以对这样的一个问题,我印象深刻,我觉得超难,我的看法是,这几乎不可能。

H 君:
  1. 抽屉(数据库)里装满了很多妈妈给你准备的糖(数据)
  2. 糖果是根据不同颜色 大小 口味 整齐的排列在抽屉里
  3. 你想吃什么口味大小和颜色的糖 只要告诉妈妈(电脑)她会帮你找到你想要的糖(数据)

I 君:
     其实问题的重点在于:你不需要解释这个问题到你所理解的程度就已经可以满足八岁孩子的要求。
例如:数据库就是一个装数据的仓库。
例如:你就是你妈妈肚子里生出来的。
待到他有了更具体的问题,便能更具体地解答。就这么简单!

J 君:
  1. “数据库就是你玩的电脑游戏阿!”
  2. “喜欢玩吗?”
  3. “喏。这本《少儿计算机入门》拿去看吧,看懂游戏就没人玩得过你了。”
同理可以解释“什么是计算机?”、“什么是程序猿?”、“什么是代码?“,8岁小孩,引起他兴趣比解释清楚重要得多。

K 君:
  1. 数据库就是一个装满能听懂人话动物的动物园。
  2. 数据就是装在动物园里面那些能听懂人话的动物。
  3. 不管你是要全部的狮子找出来还是要把动物园全部的老虎都扔掉你只要告诉动物园就行了。

L 君:
小朋友比我们更懂数据库
  1. 班上有多少个同学
  2. 男的有多少,女的有多少
  3. 那几个是跟自己是铁哥们(铁姐妹)
  4. 那几个成绩好的受到老师喜欢,而还有成绩好的不一定受到老师喜欢
  5. 那几个是做第一排的,第二排的
  6. 同学爸爸中最大的官,最有才华的。。。
只有能统计(统治)并且能使数据产生价值,才是真正意义上懂数据库

M 君:
  1. 幼儿园是个数据库
  2. 小学是个数据库
  3. 家这栋楼,这个小区,这个城市是个数据库。
如果真有个8岁的小孩能问出这个问题,我觉得可以带着他看一遍《Matrix》动画版,然后再看一遍电影版。

程序员:
     从向一个孩子解释什么叫数据库的问题,快转成一个教育的问题。 但是事实我想起一件事情,小的时候我就经常问父母东西,刚开始父母还能回答起来,后面也会问到一些父母也回答不了的问题,父母是这样回答我的:有些东西我们也不清楚,有些问题我们也不知道如何解决,这些问题就是等着你将来长大来解决的。 我觉得父母这这种教育挺成功,起码我现在一直保持着对事物的好奇心。
对于如何向小孩解释什么是数据库这个问题,针对这个问题,不同的人想要了解的是不一样的?小孩子可能对于数据库这个词是什么意思都不懂,它想要了解的可能就是一个能够识别出什么是数据库的信息。我觉得告诉小孩数据库就是一个管理数据的软件就行了,然后重点向他解释一下什么是数据,什么是软件就可以了。像前面那个仁兄提到的“ 某候补院士教授发问,说windows的写字板不是有搜索功能么?为什么要花那么多钱购买oracle这种东西?” ,针对教授提出来的,就可以详细解释两种搜索功能不一样,而且数据库需要7*24小时运行,需要大并发量,需要遵从隔离级别等等。 院士提问这种问题,如果它是一个搞软件的,别人肯定会笑他,但是隔行如隔山,向另外一个领域的的人解释什么是数据库,可能真的要从关系代数,隔离级别这些基本的东西慢慢说起了。

程序员爸爸 :
     孩子,这是你以后要学的东西,现在,把这些交给爸爸吧

神回复:
     等你长大了就知道了!


声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
278° /2789 人阅读/0 条评论 发表评论

登录 后发表评论