天天鼓搗數(shù)據(jù),你知道數(shù)據(jù)庫(kù)長(zhǎng)啥樣嗎?
![](http://image.woshipm.com/wp-files/img/90.jpg)
在家里,找一個(gè)東西,經(jīng)常找了幾個(gè)小時(shí)找不到,最終放棄。
在宜家,找任何東西,基本都可以靠編號(hào)自助搞定。
是什么導(dǎo)致了這種區(qū)別?
很好理解,宜家的所有東西都在一張表上登記過(guò),然后在這張表里面填上了物品即將被放置的地址編號(hào),最終這件物品才被工作人員最終放置到那個(gè)地址編號(hào)所對(duì)應(yīng)的貨架上,便于尋址(計(jì)算機(jī)中的尋址就是“找”的意思,不裝逼一下,半夜寫(xiě)文章還真有點(diǎn)兒困)。在表上填寫(xiě)若干件物品的名稱和相應(yīng)的地址,有需要的時(shí)候再把它找出來(lái),有的時(shí)候要進(jìn)行統(tǒng)計(jì)每種物品的庫(kù)存數(shù)量,其實(shí)就是一個(gè)典型的數(shù)據(jù)庫(kù)的應(yīng)用場(chǎng)景,只不過(guò)我舉的例子好像是一個(gè)純?nèi)斯な止さ牟僮?,用腳后跟想想,21世紀(jì)的今天,肯定也是由電腦完成的哦。
數(shù)據(jù)庫(kù)的英文叫做DB(DataBase),數(shù)據(jù)倉(cāng)庫(kù)的意思,就是存儲(chǔ)數(shù)據(jù)的倉(cāng)庫(kù)唄,跟宜家存儲(chǔ)是真正的物品沒(méi)有什么不同,一個(gè)是在硬盤(pán)上,一個(gè)是在真正的三維空間中而已。
數(shù)據(jù)庫(kù)中有多個(gè)表(最少要有一張表,空的數(shù)據(jù)庫(kù)什么也表示不了哦,表的英文叫table),表中真正存儲(chǔ)的才是數(shù)據(jù)記錄,一張表簡(jiǎn)單理解成excel的一張二維表格,你就真正理解數(shù)據(jù)庫(kù)了,哈哈,如下表所示,表仍然以行列描述其結(jié)構(gòu),列id,name,address分別描述了物品的編號(hào),名稱以及地址,明眼人應(yīng)該看清楚了,每一列就是一個(gè)物品的一個(gè)屬性,也就是這個(gè)物品的一個(gè)特點(diǎn)。每一行代表了一條記錄(record),這條記錄有三個(gè)列(特點(diǎn))。
這張表格如此清晰,我上面這張圖也是從excel截取出來(lái)的,那為啥不用excel直接管理數(shù)據(jù)?。恐饕且?yàn)閿?shù)據(jù)庫(kù)的存取效率較excel更高,好多系統(tǒng)是沒(méi)有用戶界面的,你也用不了excel,最重要的是全世界的數(shù)據(jù)庫(kù)都支持一種叫做SQL語(yǔ)言的東西來(lái)進(jìn)行“增刪改查”操作,數(shù)據(jù)庫(kù)是有事務(wù)系統(tǒng)的(一系列步驟的一步出錯(cuò)了,全部回滾到最初狀態(tài)),數(shù)據(jù)庫(kù)是支持命令操作的,而不是簡(jiǎn)簡(jiǎn)單單的鼠標(biāo)操作,這就更減少了人為出錯(cuò),數(shù)據(jù)庫(kù)是支持索引的,數(shù)據(jù)庫(kù)的查詢效率更高等等等等,后面省略一萬(wàn)條原因。
作為一名產(chǎn)品或設(shè)計(jì)人員,你只需要把數(shù)據(jù)庫(kù)簡(jiǎn)單理解為,數(shù)據(jù)庫(kù)是一個(gè)大文件,這個(gè)大文件當(dāng)中有若干個(gè)excel表格,每張表格里面存儲(chǔ)了若干條記錄就。
以宜家舉例,宜家的后臺(tái)一定是個(gè)大數(shù)據(jù)庫(kù),這個(gè)數(shù)據(jù)庫(kù)里面至少有兩張表,第一張表記錄了所有的員工信息,包括姓名,年齡,手機(jī),家庭住址,銀行卡帳號(hào)等等。第二張表記錄了所有商品的信息,包括商品編號(hào),價(jià)格,庫(kù)存,貨架位置等等。
你的新浪微博的用戶名和密碼,是存儲(chǔ)在新浪的后臺(tái)數(shù)據(jù)庫(kù)中的一個(gè)表當(dāng)中的。
你的QQ號(hào)碼,也是存儲(chǔ)在騰訊的服務(wù)器中的某一個(gè)數(shù)據(jù)庫(kù)里面的。
你的京東購(gòu)物車的物品列表,也是存儲(chǔ)在京東的一個(gè)數(shù)據(jù)庫(kù)當(dāng)中的。
數(shù)據(jù)庫(kù)的操作一般有“增”“刪”“改”“查”四種操作,都是借助于SQL語(yǔ)句完成的,SQL讀作【se一聲】【kou一聲】,我們寫(xiě)程序的時(shí)候,一般用C語(yǔ)言,C++或者Java等,但是操作數(shù)據(jù)庫(kù)的話,全世界的程序員都是統(tǒng)一的,都是用SQL語(yǔ)句來(lái)操作數(shù)據(jù)庫(kù),我交你寫(xiě)一句最簡(jiǎn)單的SQL語(yǔ)句,剩下的就靠自學(xué)了,哈哈。Select * From table1 where name=“桌子”,這個(gè)SQL語(yǔ)句的意思是,查詢出table1這張表中所有名字為“桌子”的記錄。其實(shí)一個(gè)牛逼的程序員可以用一條非常漂亮的SQL語(yǔ)句來(lái)解決許多復(fù)雜問(wèn)題。
數(shù)據(jù)庫(kù)的知識(shí)概念很多,我挑幾個(gè)重要的簡(jiǎn)單介紹下:
- 索引,數(shù)據(jù)庫(kù)經(jīng)常有上億條記錄,查詢會(huì)很慢很慢的,數(shù)據(jù)庫(kù)會(huì)提供一個(gè)功能,像字典一樣編制一個(gè)”索引“,就是新華字典的前幾頁(yè)一樣,靠拼音或偏旁來(lái)查詢的功能,這個(gè)就是索引,這個(gè)經(jīng)常能大幅度提高查詢速度。
- 事務(wù),數(shù)據(jù)庫(kù)提供了一種機(jī)制,就是一件事,必須做完,如果中間出了差錯(cuò),他會(huì)清理掉一切痕跡,回到最初狀態(tài),這對(duì)于保持?jǐn)?shù)據(jù)的一致性和完整性有功不可沒(méi)的作用。
- 聯(lián)合查詢,經(jīng)常一張表格解決不了你的問(wèn)題,比如有兩張表,一張表是員工基本信息,另一張表是工資表,這個(gè)時(shí)候,要查詢某某員工的工資,就要兩張表一起來(lái)“聯(lián)合查詢”
最后簡(jiǎn)單介紹下,一個(gè)應(yīng)用程序怎么使用數(shù)據(jù)庫(kù)呢?第一步,首先建立和數(shù)據(jù)庫(kù)的連接,第二步,利用這個(gè)連接,來(lái)進(jìn)行數(shù)據(jù)庫(kù)的建表,刪表,以及對(duì)表的增刪改查操作,第三部,關(guān)閉數(shù)據(jù)庫(kù)連接。最后一步是最容易犯錯(cuò)誤的,不關(guān)閉數(shù)據(jù)庫(kù)連接,經(jīng)常會(huì)產(chǎn)生內(nèi)存泄漏,以及各種異常。
說(shuō)了很多廢話,其實(shí)數(shù)據(jù)庫(kù)的直觀表現(xiàn)就可以看成一個(gè)excel表格。
PS:如果你想跟我交流,對(duì)公眾號(hào)像跟朋友那樣聊微信回復(fù)就可以了,親,不能保證每一條都回,但是每一條肯定都會(huì)認(rèn)真看。如果覺(jué)得我每天的分享有價(jià)值,你能幫我分享給你周圍的同事和朋友,想必那是極好的~~~
#專欄作家#
給產(chǎn)品經(jīng)理講技術(shù),微信公眾號(hào)(pm_teacher),人人都是產(chǎn)品經(jīng)理專欄作家。資深程序猿,專注客戶端開(kāi)發(fā)若干年,對(duì)前端、后臺(tái)技術(shù)略懂,熱衷于對(duì)新的科技領(lǐng)域的探索。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,不得轉(zhuǎn)載。
想問(wèn)問(wèn)產(chǎn)品經(jīng)理需要對(duì)數(shù)據(jù)庫(kù)掌握到什么程度?
感謝,終于知道什么是數(shù)據(jù)庫(kù)了??????
稀爛,都寫(xiě)的撒。。
關(guān)注你的公眾號(hào)啦~正是我需要的那種 ??