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