本文用來把我面試時遇到的沒有弄明白的問題記錄下來。
一、資料庫的normalization與denormalization
normalization的目的之一是減少冗餘的過程,之二是方便資料庫查詢語言的使用。
什麼叫做方便資料庫查詢語言的使用呢?
也就是消除update, insertion及deletion時出現的異常。
第一正規化(1nf):
1所有的鍵的屬性(列)都已定義;
2沒有任何重複組(repeating groups),換句話說每行和每列的交匯處可以而且只
能包含乙個值,而不能包含一組值;
3所有的屬性(列)都依賴於主鍵。
第二正規化(2nf):
1該表是第一正規化的表;
2該錶不包含部分依賴。
第三正規化(3nf):
1該錶為第二正規化;
2該錶不包含傳遞依賴。
bc正規化
1該錶為第三正規化;
2設關係模式r∈1nf,如果對於r的每個函式依賴x→y,若y不屬於x,則x必含
有候選碼,那麼r∈bcnf。
3每個非平凡函式依賴的左邊必須包含鍵碼。
二、堆和棧的差別
乙個由c/c++編譯的程式占用的記憶體分為以下幾個部分
1棧區(stack)
由編譯器自動分配釋放 ,存放函式的引數值,區域性變數的值等。其操作方式類似於
資料結構中的棧。 棧給予程式設計師的的自由度小,但是快捷。
2堆區(heap)
一般由程式設計師分配釋放, 若程式設計師不釋放,程式結束時可能由os** 。注意它與
資料結構中的堆是兩回事,分配方式倒是類似於鍊錶。堆給予程式設計師的的自由度大
,但是較慢。
3全域性區(靜態區)(static)
全域性變數和靜態變數的儲存是放在一塊的,初始化的全域性變數和靜態變數在一塊區
域, 未初始化的全域性變數和未初始化的靜態變數在相鄰的另一塊區域,程式結束後
由系統釋放。
4文字常量區
常量字串就是放在這裡的,程式結束後由系統釋放。
5程式**區
存放函式體的二進位制**。
PUPPET生產拾遺 1
目前產線伺服器數量大約高峰在1.6 1.8w臺vm bm,平時在1.2w左右,批量同步的時候會發生非常嚴重的驚群效應,有時候一台主機可能6小時都不會成功同步一次,可以做一些調整避免類似情況。版本 之前產線使用的是puppet3,相比之前puppet2來說效能已經提高了50 但在使用過puppet4之...
asp知識拾遺
最近做的乙個小 碰到了許多問題,能解決的都解決了,還有的沒辦法就找了替代的解決辦法.下面收集一下 1 在選擇了一系列的checkbox後的提交表單提交後,會獲取到name1,逗號,空格,name2,逗號,空格,結果,系統需要獲取這些值,我用了以下 實現.uname request.form user...
Linux同步拾遺
一般情況下,執行緒在主題函式退出的時候會自動終止,但同時也可以因為接收到另乙個執行緒發來的終止請求而強制終止。執行緒取消的方法是向目標執行緒發cancel訊號,但如何處理cancel訊號則由目標執行緒自己決定,或者忽略,或者立即終止,或者繼續執行到cancelation point 取消點 由不同c...