怎樣用三句話向一個 8 歲小孩解釋什麼是資料庫?
問題盜自Quora - Computer Programming: How would you explain a database in three sentences to your 8-year-old nephew? 想聽聽知友們的辦法~
今天我試著問8歲的女兒:
" 你知道IPad上的遊戲是怎麼記住你玩的進度的?"
「 就像書籤一樣,找到書籤就翻到上次看到的地方了!」
「 那遊戲里的東西存在哪兒呢?」
「 IPad里呀!像一個倉庫什麼的 」
和我們的時代不同,8歲的小孩已經開始接觸電腦了,在電腦上玩遊戲,用搜索引擎搜索視頻,會編輯簡單的文字,所以完全可以直接告訴孩子資料庫是什麼,但關鍵是我們能準確的描述「 資料庫是什麼嗎?」
我用自己淺薄的知識試著解讀一下:- 結構化存儲數據(為了方便查找)
- 對數據操作(增刪改)進行控制和管理,維護數據一致性
- 提供用戶共享訪問介面
回到這個問題,比如可以這樣回答:
- 圖書館就是一個資料庫:圖書館的每本書都有一個編號,編號表示了書的類別和順序號,同類別的書放在一個書架上,然後書按順序擺在它所屬的書架上,這麼做的好處是方便查找書。
- 圖書館管理員就是訪問介面:你想找一本書時,他先找到這本書的類別和順序號,然後他就到指定的書架上按順序找到那本書,交給你。
- 你和其他人提出的借書請求就是外部程序,一本書可以借給你也可以借給別人,但是圖書館管理員知道書的狀態並負責把書放回原位。
還可以這樣回答:
資料庫就是在電腦里按照一定規律存放數據的倉庫,比如你玩的「 摩爾莊園 」遊戲里的每件東西都有一個編號存在它所屬的格子里,打開遊戲時,遊戲程序要把格子里的東西取出來擺成你上回玩的那個進度。
我大山寨中國的抄襲精神來了:
Computer Programming: How would you explain a database in three sentences to your 8-year-old nephew?
You know how you have to put your toys away when you"re done playing, so you can find them easily the next time you want to play with them?
A database is like a shelf to put your toys away, except the toys are data instead.
Now, the database can always find the right data easily - whether it"s "all the dinosaur toys" or "all the yellow toys," the computer can get everything out to play with very quickly, because it"s in a database.
1,你知道你玩兒完玩具之後怎麼收拾玩具,才能讓你下回能輕鬆找到它們吧?
2,「資料庫」就像是你收玩具的那個架子,只不過它是收「數據」的。
3,現在,在「資料庫」里可以很方便的找到「數據」——不管是找「所有恐龍玩具」還是「所有黃色玩具」,電腦可以很快的給你找出來讓你玩,因為它們在資料庫里。
-------------
答:
1,不知道,從來不收,我媽收,一邊追著打我一邊收。
2,我不用架子收玩具,我用屋子收。「數據」是什麼?
3,我要恐龍玩具!!!!!!!電腦在哪兒呢?騙人!!!
4,我媽說不讓我再跟你說話了,因為你讓我要「黃色玩具」!!!!帶小孩去看一下老中醫包葯
決定搞個中國特色的答案!我覺得可以和小朋友這樣講啊:
電腦裡面存了好多好多數據。數據就像各種各樣中藥,在沒有資料庫之前,中藥就是一包包這樣雜亂無章地堆放著(unorganized data),找也不好找(inaccessible)。如果你是藥店的掌柜,你怎麼來管理這些葯呢?
聰明的古人就想了辦法:把所有的中藥都放到柜子裡面(data table),柜子裡面都是大小一樣的小盒子(organized data model),每個盒子(a row / record)都在外面標籤上寫上藥名,按筆劃排序幫助快速查找(index / primary key),比如你要找三七,那麼一定是三筆的頭幾個——現在找東西是不是方便多了?
如果要找一味溫熱的葯,按名字找可就不大靈了,除了打開抽屜一個一個舔過去,還有什麼辦法快速找到嗎?對啦,就是在抽屜上塗上顏色,比如溫熱的用粉紅色,涼性的用藍色(secondary key),你還可以用不同大小的抽屜代表葯的其他屬性(another secondary key)
如果有的葯賣空了沒有貨怎麼辦?把整個抽屜拿走(delete a row)!如果新增加一種葯怎麼辦?找一個空抽屜放上新葯貼個標籤唄(add a row)!如果整柜子中藥都過期了怎麼最快處理?把柜子搬走(drop a table),換個新柜子(create a table),再往裡面添加新鮮中藥。
如果有一種藥量特別大,放在另外一個抽屜大一點兒的柜子里怎麼辦呢(splitted table)?在這個抽屜里放一張紙條,寫上「此葯在後堂第三個柜子第二個抽屜」(Foreign key / linked table)。
——喏,小朋友,電腦也是這麼管理裡面的數據的!(當然,這種講法同樣可以讓不懂資料庫有technophobia的萌妹紙懵滴弟們快速入門,其實資料庫裡面的絕大部分概念用中藥鋪子的類比來講都非常容易理解,請自行補充)。
ps: 貌似多於三句了,但是我想三這個數並不重要,最主要的還是用這種類比輕鬆地想把資料庫里的關鍵概念和作用都涉及到。若非要追求三句,在上述的說法中加以刪節就好!裝你的玩具、糖果的盒子。
我個人覺得這是一件非常困難的事情,真的非常困難。
記得曾經做過一個銀行的項目,最後做部級鑒定,第一排坐了一些專家,都是什麼院士,候補院士之類的(真的IT領域的院士和候補院士哦)。當我介紹到項目採用了oracle及其高可用選件的時候,
某候補院士教授發問,說windows的寫字板不是有搜索功能么?為什麼要花那麼多錢購買oracle這種東西?
我當時面臨的是一樣的問題,不可能長篇大論講資料庫原理。。。汗。。。而且我的難度更低,至少我面對的是一個成年人,還是一位這個領域的「專家」。
必須是幾句話說明白。但是我絞盡腦汁搜腸刮肚,最終我還是敗了,傻傻地站在台上獃滯了2分鐘,看著台下大片的人捂著嘴在後面偷笑。
最後還是另外一位好心的院士給解了圍,說:「老X,這問題我們會後在詳細交流吧。」我才得以過關。
83號箱,存好物品,關好箱門
你的腦袋就是個資料庫
你知道 糖糖是甜的 葯葯是苦的
糖糖和葯葯就是數據
等你長大了就知道了
小乖,你能在10秒內,翻出語文書里的《小馬過河》嗎?
資料庫就是一本很大很厚的書,它有很多數據信息,比如一個個小故事。
為了方便查找閱讀,這些數據也需要分門類別,還有索引頁號在目錄里。
8歲應該2年級了,隨便拿本字典,這就是標準資料庫。有組織,有存儲,有管理
你們講的小朋友不會感興趣吧。試試這樣講吧。
資料庫就是寵物小精靈(神奇寶貝)的那個圖鑑。你發現一個小精靈,就記錄下他的信息,放在圖鑑里,以後要看他的資料打開圖鑑就可以了。這個圖鑑就相當於資料庫啦~
所以資料庫是儲存資料的東西,你像查找某個資料,就去找資料庫。
1 像日記本一樣來記錄東西的啊。
2 日記本記錄了你怎麼過的每一天,」它「記錄了你遊戲里怎麼過的每個「關卡」。
3 如果你那天想知道自己種了多少個「蘿蔔」。去找「它」,查下就行了。
你家房子就是存儲,你媽媽就是listener,你給你媽媽說一句「我的方格子上面有小鹿的褲子在哪?」相當於SQL,你媽媽就會給你找出來了....
這樣的小孩子和成年人最大的不同就是不會拒絕專業名詞,故意留出你要展開問題的點,概念簡單沒有細節。喜歡刨根問底的小孩子才會繼續問下去,到時候再說出細節。不學計算機的
是我的話我應該會跟孩子這麼說:你班機四十個人是吧,每個人都有姓名,身高,體重,性別這些個人信息。你們學校有很多班,還有很多年級,所以這些信息很多是不是,你體會下。假如這些信息全都記錄在一個小本本上,老師想要找到一個全學校最沉的小胖墩要怎麼找?一頁頁翻是吧,挺累的,也需要翻一段時間。假如這個小本本是在電腦上,那麼電腦上這種小本本就叫做資料庫,那為什麼要把小本本放電腦上呢?因為電腦腦子很快,用它找你們學校最胖的小胖墩很快,小明你懂了嗎?
你們體會下?
從向一個孩子解釋什麼叫資料庫的問題,快轉成一個教育的問題。 但是事實我想起一件事情,小的時候我就經常問父母東西,剛開始父母還能回答起來,後面也會問到一些父母也回答不了的問題,父母是這樣回答我的:有些東西我們也不清楚,有些問題我們也不知道如何解決,這些問題就是等著你將來長大來解決的。 我覺得父母這這種教育挺成功,起碼我現在一直保持著對事物的好奇心。
對於如何向小孩解釋什麼是資料庫這個問題,針對這個問題,不同的人想要了解的是不一樣的?小孩子可能對於資料庫這個詞是什麼意思都不懂,它想要了解的可能就是一個能夠識別出什麼是資料庫的信息。
我覺得告訴小孩資料庫就是一個管理數據的軟體就行了,然後重點向他解釋一下什麼是數據,什麼是軟體就可以了。
像前面那個仁兄提到的「某候補院士教授發問,說windows的寫字板不是有搜索功能么?為什麼要花那麼多錢購買oracle這種東西?」 ,針對教授提出來的,就可以詳細解釋兩種搜索功能不一樣,而且資料庫需要7*24小時運行,需要大並發量,需要遵從隔離級別等等。 院士提問這種問題,如果它是一個搞軟體的,別人肯定會笑他,但是隔行如隔山,向另外一個領域的的人解釋什麼是資料庫,可能真的要從關係代數,隔離級別這些基本的東西慢慢說起了。資料庫的作用是能夠幫助我們查詢與分析數據, 三句話:
資料庫是一種計算機裡面的保管魔法師,你把你不想記住的各種數字交給他保管,然後等你念咒語的時候他就會告訴你你想要的各種問題的答案。
其實問題的重點在於:你不需要解釋這個問題到你所理解的程度就已經可以滿足八歲孩子的要求。
例如:資料庫就是一個裝數據的倉庫。
例如:你就是你媽媽肚子里生出來的。
待到他有了更具體的問題,便能更具體地解答。
就這麼簡單。1抽屜(資料庫)里裝滿了很多媽媽給你準備的糖(數據)
2糖果是根據不同顏色 大小 口味 整齊的排列在抽屜里
3你想吃什麼口味大小和顏色的糖 只要告訴媽媽(電腦)她會幫你找到你想要的糖(數據)
資料庫就是本作業本。 寫作業的過程就是資料庫的增刪改查。 老師要改作業就要先拿到作業本並打開,相當於連接資料庫的操作
推薦閱讀: