天天鼓搗數據,你知道數據庫長啥樣嗎?

4 評論 20999 瀏覽 71 收藏 8 分鐘

在家里,找一個東西,經常找了幾個小時找不到,最終放棄。

在宜家,找任何東西,基本都可以靠編號自助搞定。

是什么導致了這種區別?

很好理解,宜家的所有東西都在一張表上登記過,然后在這張表里面填上了物品即將被放置的地址編號,最終這件物品才被工作人員最終放置到那個地址編號所對應的貨架上,便于尋址(計算機中的尋址就是“找”的意思,不裝逼一下,半夜寫文章還真有點兒困)。在表上填寫若干件物品的名稱和相應的地址,有需要的時候再把它找出來,有的時候要進行統計每種物品的庫存數量,其實就是一個典型的數據庫的應用場景,只不過我舉的例子好像是一個純人工手工的操作,用腳后跟想想,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),人人都是產品經理專欄作家。資深程序猿,專注客戶端開發若干年,對前端、后臺技術略懂,熱衷于對新的科技領域的探索。

本文原創發布于人人都是產品經理,未經許可,不得轉載。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 想問問產品經理需要對數據庫掌握到什么程度?

    回復
  2. 感謝,終于知道什么是數據庫了??????

    回復
  3. 稀爛,都寫的撒。。

    來自湖北 回復
  4. 關注你的公眾號啦~正是我需要的那種 ??

    來自河北 回復