最近在梳理人工智能產(chǎn)品經(jīng)理技術(shù)知識體系,順便將之前的技術(shù)知識整理成文檔,便于自我查看,便于和未來的技術(shù)知識體系對比,同時也為了結(jié)實同好
適合人群:適合非技術(shù)背景產(chǎn)品經(jīng)理,非技術(shù)背景互聯(lián)網(wǎng)從業(yè)
數(shù)據(jù)庫是如何工作的
什么是數(shù)據(jù)庫
數(shù)據(jù)庫是用來進行數(shù)據(jù)存儲和管理的容器,產(chǎn)品在使用過程中發(fā)成的行為和業(yè)務(wù)數(shù)據(jù)都會存儲在數(shù)據(jù)庫中
1.數(shù)據(jù)庫在哪
答:數(shù)據(jù)庫運行在服務(wù)器上,屬于后端的一部分
2.數(shù)據(jù)庫與服務(wù)端有什么關(guān)系和區(qū)別
答:服務(wù)端程序處理業(yè)務(wù)邏輯,然后調(diào)用數(shù)據(jù)庫進行后端操作
數(shù)據(jù)庫分類
關(guān)系型數(shù)據(jù)庫,以表的形式進行存儲
非關(guān)系型數(shù)據(jù)庫,以文本的形式進行存儲,比如存儲用戶行為
不同數(shù)據(jù)庫廠商提供的數(shù)據(jù)庫基礎(chǔ)能力類似,但是用場景和基礎(chǔ)能力有所不同,銀行需要大規(guī)模數(shù)據(jù)庫,如處理速度,功耗,價格等
數(shù)據(jù)庫是如何工作的
數(shù)據(jù)庫的工作原理
1.被服務(wù)端調(diào)用,進行數(shù)據(jù)的增刪改查
2.服務(wù)端程序通過SQL語句操作數(shù)據(jù)庫,SQL語句通過工程師寫代碼的方式實現(xiàn)
3.數(shù)據(jù)庫運行在服務(wù)器上,數(shù)據(jù)存儲在服務(wù)器硬盤中

數(shù)據(jù)庫表和關(guān)系結(jié)構(gòu)
實體關(guān)系結(jié)構(gòu)
反應(yīng)客觀世界中實體本身和相互之間的關(guān)系結(jié)構(gòu),實體間關(guān)系可以是一對一,一對多,多對多

例如
實體A:父親(姓名,年齡,職業(yè)....)
實體B:兒子(姓名,年齡,學校....)
A-B的關(guān)系是父子關(guān)系(1:n)
數(shù)據(jù)庫反應(yīng)的也是實體世界中的客觀關(guān)系
數(shù)據(jù)庫“表”
數(shù)據(jù)庫“表”對應(yīng)客觀世界中的一個實體,“表”的名就是實體名,“表”的字段就是實體屬性
實體“人”——用戶“表”
實體“商品”——商品“表”
實體“訂單”——訂單“表”

表與表之間通過“主鍵”相互關(guān)聯(lián)
“主鍵”:每個表中唯一標識一條數(shù)據(jù)的字段
例如:
商品表的主鍵:productID(商品編號)
訂單表的主鍵:orderID(訂單編號)

數(shù)據(jù)庫字段和字段類型
數(shù)據(jù)表“字段”
字段對應(yīng)實體對象中的屬性,在數(shù)據(jù)庫表結(jié)構(gòu)中,字段是基本組成要素

user表字段:userID,username,sex,age
字段可以有無限多個,數(shù)據(jù)庫表字段命名通常用英文,可以用下劃線區(qū)分
例如:user_id,user_name
數(shù)據(jù)表“字段類型”
每一個字段都對應(yīng)一種字段類型,字段類型表示該字段存儲的值屬于哪種類型,常用的字段類型:整數(shù)型,字符型,日期類型

user表字段類型
userID:字符型
username:字符型
sex:字符型
age:整數(shù)型

order表字段類型
time:日期類型
字段和字段類型的使用
字段映射的是客觀世界中實體的屬性,每個屬性都需要對應(yīng)的數(shù)據(jù)類型
字段和字段類型是數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ),接口里的參數(shù)和值對應(yīng)的都是數(shù)據(jù)庫的字段和字段類型,工程師都是基于字段和字段類型來定義接口(API),產(chǎn)品經(jīng)理對數(shù)據(jù)庫表,字段,字段類型有了了解后,可以更好的理解接口設(shè)計和功能邏輯
數(shù)據(jù)庫操作語言SQL
數(shù)據(jù)庫操作語言——SQL
SQL(structured query language)全稱叫做結(jié)構(gòu)化查詢語言,是一種用來操作關(guān)系型數(shù)據(jù)庫的編程語言,可以理解為對數(shù)據(jù)庫對操作命令

SQL語句被嵌入在服務(wù)端程序中,后端工程師除了編寫業(yè)務(wù)邏輯代碼外,還需要對數(shù)據(jù)庫進行操作
數(shù)據(jù)是如何被呈現(xiàn)到客戶端界面的
客戶端發(fā)起請求,服務(wù)端處理,調(diào)用數(shù)據(jù)庫進行查詢,通過接口將數(shù)據(jù)返回給客戶端并顯示

案例:查詢user表用戶數(shù)據(jù)并顯示到客戶端用戶信息界面

常用SQL語句
user表的建立,新增,查詢,修改,刪除

建表:create table user(userid varchar(30), primary key, username?varchar(50), age number)?
新增:insert into user values(1003, joy, 20)
查詢:select *from user where userid='1001'
修改:update user set age='19' where userid='1002'
刪除:delete from user where userid='1003'
數(shù)據(jù)庫表索引是什么
什么是數(shù)據(jù)庫索引
索引是基于數(shù)據(jù)庫表某一列或幾列建立的結(jié)構(gòu),通過索引能極大提高數(shù)據(jù)的查詢效率?;趗ser表建立的userid索引結(jié)構(gòu),就能快速定位查詢某一條具體數(shù)據(jù)
傳統(tǒng)做法是通過SQL語句select * from user where userid='1001111',查詢第1111條數(shù)據(jù),按行遍歷
通過userid索引就可以快速定位到userid=1001111的數(shù)據(jù)項
數(shù)據(jù)庫索引的缺點
1.索引需要消耗一定的物理存儲空間,索引單獨維護
2.每次對數(shù)據(jù)表更新的同時需要更新維護索引表
3.需要花費較多的時間去建立和維護索引,隨著數(shù)據(jù)總量的增加,花費的時間也將增加