一、數(shù)據(jù)庫規(guī)定主鍵值不能重用的目的是什么
1.主鍵值可以重用。
2.在很多已有的系統(tǒng)中,比如各種開源網(wǎng)站、論壇,由于數(shù)據(jù)庫在設計時,業(yè)務與主鍵值耦合了,這種情況下,重用主鍵值會讓系統(tǒng)發(fā)生業(yè)務錯誤。比如某查詢是以主鍵是否存在來判定查詢結果,重用主鍵會造成誤判。
3.對于自增主鍵,主鍵值也可以重用,但問題是,如何重用?你會發(fā)現(xiàn)這非常麻煩。
SQL Server 中的 “自動增長列”(標識列 / identity 列),既然是 “自動增長”,那當然是不能再 “減少” 的了,否則怎么能叫這個名字呢?好吧,說正經的,實現(xiàn)起來比較簡單,只要記錄當時該列中最大的值且加上一個步長(默認為1)就可以了,否則還得花費時間去搜索那個 “空隙”。尤其是在并發(fā)的情況下,比較容易保證新插入的記錄中這一列的值是正確的。設置為 “標識列” 的缺點就是,這一列的值只能是整型。另外,只要這一列的值都是整型,那么對于計算機來說占用的存儲空間都是一樣的,并沒有 “浪費資源”。
延伸閱讀:
二、什么是數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)
數(shù)據(jù)庫的應用非常廣泛,舉個例子,我們平時在瀏覽器上搜索內容,就要用到數(shù)據(jù)庫去檢索我們的關鍵字。以前我們可能會用數(shù)組、集合、文件等來存儲數(shù)據(jù),但是接下來我們就會面臨一個問題,當存儲的數(shù)據(jù)或內容過多的時候,我們如何去精準的找到我們需要的東西,這時候數(shù)據(jù)庫管理系統(tǒng)就派上了用場。除此之外,數(shù)據(jù)庫管理系統(tǒng)還能永久的儲存我們的數(shù)據(jù)。
為了便于大家理解,這里先給大家講解幾個概念
DB數(shù)據(jù)庫(database):存儲數(shù)據(jù)的“倉庫”。它保存了一系列有組織的數(shù)據(jù)。
DBMS數(shù)據(jù)庫管理系統(tǒng)(Database Management System):數(shù)據(jù)庫是通過DBMS創(chuàng)建和操作的容器。