一、QQ數(shù)據(jù)庫是怎樣設(shè)計的
1、對于群成員上限的問題,不是從數(shù)據(jù)庫層面解決的,而應(yīng)該有專門的“配額檢查”服務(wù)/邏輯,在群成員人數(shù)變化時用來判斷當(dāng)前群成員人數(shù)是否已超上限。而相應(yīng)的配額都是全局統(tǒng)一配置的,可變更;
2、對于快速找到聊天記錄的問題,說到底就是:緩存、分區(qū)與索引。
數(shù)據(jù)庫設(shè)計就是將數(shù)據(jù)庫中的實體以及這些數(shù)據(jù)實體之間關(guān)系進(jìn)行規(guī)劃和結(jié)構(gòu)化。
數(shù)據(jù)庫中創(chuàng)建的數(shù)據(jù)結(jié)構(gòu)的種類,以及在數(shù)據(jù)實體之間建立的復(fù)雜關(guān)系是決定數(shù)據(jù)庫系統(tǒng)效率的重要因素。
設(shè)計數(shù)據(jù)庫步驟:開發(fā)一個項目需要經(jīng)過需求分析,概要設(shè)計,(詳細(xì)設(shè)計),代碼編寫,運行測試和上線維護(hù)幾個階段,下面重點討論在各個階段中數(shù)據(jù)庫的設(shè)計過程。
需求分析階段:分析客戶的業(yè)務(wù)和數(shù)據(jù)處理需求
概要設(shè)計階段:繪制數(shù)據(jù)庫的ER模型圖,用于在項目團隊內(nèi)部、設(shè)計人員和客戶之間進(jìn)行溝通,確認(rèn)需求信息的正確性和完整性。
詳細(xì)設(shè)計階段:將ER圖轉(zhuǎn)換為多張表,進(jìn)行邏輯設(shè)計,確認(rèn)各表的主外鍵并應(yīng)用數(shù)據(jù)庫設(shè)計的三大范式進(jìn)行審核,經(jīng)項目組開會討論確定后,還需根據(jù)項目的技術(shù)實現(xiàn)團隊開發(fā)能力以及項目的經(jīng)費來源,選擇具體的數(shù)據(jù)庫(如MySQL成 Oracle等)進(jìn)行物理實現(xiàn)。包括創(chuàng)建庫和創(chuàng)建表,存儲過程等,創(chuàng)建完畢后,開始進(jìn)入代碼編寫階段,開發(fā)前后端應(yīng)用程序。
E-R圖:實體:所調(diào)實體就是指現(xiàn)實世界中具有區(qū)分其他事物的特征或?qū)傩圆⑴c其他實體有聯(lián)系的實體
屬性:屬性可以理解為實體的特征
聯(lián)系:兩個或多個實體之間的關(guān)聯(lián)關(guān)系
映射基數(shù):表示通過聯(lián)系與該實體關(guān)聯(lián)的其他實體的個數(shù),對于實體集X和Y之間的二元關(guān)系,映射基數(shù)必須為下列基數(shù)之一:
ER圖以圖形的方式將數(shù)據(jù)庫的整個邏輯結(jié)構(gòu)表示出來:
矩形表示實體集;橢圓形表示屬性;菱形表示聯(lián)系集;直線用來連接屬性和實體集,也用來連接實體集和聯(lián)系集
延伸閱讀:
二、實例(instance)是什么
一組Oracle 后臺進(jìn)程/線程以及一個共享內(nèi)存區(qū),這些內(nèi)存由同一個計算機上運行的線程/進(jìn)程所共享。這里可以維護(hù)易失的、非持久性內(nèi)容(有些可以刷新輸出到磁盤)。就算沒有磁盤存儲,數(shù)據(jù)庫實例也能存在。也許實例不能算是世界上最有用的事物,不過你完全可以把它想成是最有用的事物,這有助于對實例和數(shù)據(jù)庫劃清界線。