最近在梳理人工智能產品經理技術知識體系,順便將之前的技術知識整理成文檔,便於自我查看,便於和未來的技術知識體系對比,同時也爲了結實同好
適合人羣:適合非技術背景產品經理,非技術背景互聯網從業
數據庫是如何工作的
什麼是數據庫
數據庫是用來進行數據存儲和管理的容器,產品在使用過程中發成的行爲和業務數據都會存儲在數據庫中
1.數據庫在哪
答:數據庫運行在服務器上,屬於後端的一部分
2.數據庫與服務端有什麼關係和區別
答:服務端程序處理業務邏輯,然後調用數據庫進行後端操作
數據庫分類
關係型數據庫,以表的形式進行存儲
非關係型數據庫,以文本的形式進行存儲,比如存儲用戶行爲
不同數據庫廠商提供的數據庫基礎能力類似,但是用場景和基礎能力有所不同,銀行需要大規模數據庫,如處理速度,功耗,價格等
數據庫是如何工作的
數據庫的工作原理
1.被服務端調用,進行數據的增刪改查
2.服務端程序通過SQL語句操作數據庫,SQL語句通過工程師寫代碼的方式實現
3.數據庫運行在服務器上,數據存儲在服務器硬盤中
數據庫表和關係結構
實體關係結構
反應客觀世界中實體本身和相互之間的關係結構,實體間關係可以是一對一,一對多,多對多
例如
實體A:父親(姓名,年齡,職業....)
實體B:兒子(姓名,年齡,學校....)
A-B的關係是父子關係(1:n)
數據庫反應的也是實體世界中的客觀關係
數據庫“表”
數據庫“表”對應客觀世界中的一個實體,“表”的名就是實體名,“表”的字段就是實體屬性
實體“人”——用戶“表”
實體“商品”——商品“表”
實體“訂單”——訂單“表”
表與表之間通過“主鍵”相互關聯
“主鍵”:每個表中唯一標識一條數據的字段
例如:
商品表的主鍵:productID(商品編號)
訂單表的主鍵:orderID(訂單編號)
數據庫字段和字段類型
數據表“字段”
字段對應實體對象中的屬性,在數據庫表結構中,字段是基本組成要素
user表字段:userID,username,sex,age
字段可以有無限多個,數據庫表字段命名通常用英文,可以用下劃線區分
例如:user_id,user_name
數據表“字段類型”
每一個字段都對應一種字段類型,字段類型表示該字段存儲的值屬於哪種類型,常用的字段類型:整數型,字符型,日期類型
user表字段類型
userID:字符型
username:字符型
sex:字符型
age:整數型
order表字段類型
time:日期類型
字段和字段類型的使用
字段映射的是客觀世界中實體的屬性,每個屬性都需要對應的數據類型
字段和字段類型是數據結構的基礎,接口裏的參數和值對應的都是數據庫的字段和字段類型,工程師都是基於字段和字段類型來定義接口(API),產品經理對數據庫表,字段,字段類型有了瞭解後,可以更好的理解接口設計和功能邏輯
數據庫操作語言SQL
數據庫操作語言——SQL
SQL(structured query language)全稱叫做結構化查詢語言,是一種用來操作關係型數據庫的編程語言,可以理解爲對數據庫對操作命令
SQL語句被嵌入在服務端程序中,後端工程師除了編寫業務邏輯代碼外,還需要對數據庫進行操作
數據是如何被呈現到客戶端界面的
客戶端發起請求,服務端處理,調用數據庫進行查詢,通過接口將數據返回給客戶端並顯示
案例:查詢user表用戶數據並顯示到客戶端用戶信息界面
常用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'
數據庫表索引是什麼
什麼是數據庫索引
索引是基於數據庫表某一列或幾列建立的結構,通過索引能極大提高數據的查詢效率。基於user表建立的userid索引結構,就能快速定位查詢某一條具體數據
傳統做法是通過SQL語句select * from user where userid='1001111',查詢第1111條數據,按行遍歷
通過userid索引就可以快速定位到userid=1001111的數據項
數據庫索引的缺點
1.索引需要消耗一定的物理存儲空間,索引單獨維護
2.每次對數據表更新的同時需要更新維護索引表
3.需要花費較多的時間去建立和維護索引,隨着數據總量的增加,花費的時間也將增加