本課程主要講的就是資料庫設計的問題。主要包括模型的設計,儲存方式的設計,以及核心的設計(查詢功能、事務管理器、事務併發控制的實現)。
首先在設計模型的時候可以分為三層來看,檢視層、邏輯層和物理層,物理層是資料庫管理者也就是像oracle這樣的大型資料庫公司關係的事情,不需要考慮使用者的感受因為這個不是面向使用者的而是面向資訊庫管理中心的,也就是邏輯層的使用者的。邏輯層規定了資料庫的一些特性,比如說e-r模型和關係模型(分別用e-r圖和關係代數來描述)就是用於資料邏輯層設計的,採用什麼樣的關係,構造怎麼樣的實體。而檢視層則是面向使用者的,使用者如何操縱以及圖形介面等資訊。
設計ddl和dml兩種語言,然後關係代數和sql的標準設計。然後設計資料庫的約束(域約束、參照完整性、實體完整性、使用者自定義約束、斷言、觸發器)。然後為了使得結構更加優秀,設計規範化,以正規化為標準,以函式依賴為參照,滿足越高的範化程度關係的合理性越高。
然後要設計檔案和記錄的組織方式。先考慮儲存介質,磁碟的物理組織,還有什麼是raid,就是廉價磁碟冗餘陣列,用冗餘來解決可靠性,用分塊解決併發性提高效率。從使用者角度來看,資料是按記錄儲存的,它有變長和定長兩種表示方法。定長的方法主要考慮它的維護模式,直接上、最後乙個上、等著。變長有三種方法,位元組流表示法、分槽頁的表示方法和變長定長結合的方法,其中變長定長結合的方法還可以分為,保留空間法、分塊儲存法、錨塊-溢位塊法。而從資料庫底層的物理層看其實是按照頁的儲存方式來的,定長方式就是正常的儲存,變長的方式是按照前面是指標後面記錄的方式。而檔案組織方式可以有堆結構、順序結構、層級結構、雜湊結構和索引結構。其中順序結構就是順序儲存,缺點是效率有時候而且修改的代價很高,所以我們就提公升一下,使用b+樹這種層次結構,要好很多,因為這樣的樹非常平衡,b+樹也可以用於檔案組織。雜湊原本是一種檔案組織方式,每乙個桶的位址是雜湊的位址,然後雜湊索引就是雜湊到輔助索引上,然後索引去找。
資料庫的核心部分是查詢處理器和儲存管理器。查詢優化主要就是看它的代價是什麼,代價函式以及巨集觀上的代價。估計的依據時統計資料。為了實現資料的並行性我們還引入了事務這個概念。然後在事務併發的時候會導致隔離性損失所以要有併發控制機制,設定一定的隔離等級並遵守兩個協議中的乙個——封鎖協議或者時間戳排序協議。
資料庫複習總結
模式 模式可以擁有資料庫中的一切物件,如表,索引,檢視,序列,同義詞 不同的模式可以建立相同的物件名 乙個模式只能指定乙個預設的表空間 表 a 表是以資料行為單位儲存於資料塊中的,oracle 會盡量把同一筆資料放入乙個資料塊中。b 資料行 i.行鏈結的產生 當資料行的資料內容超過了乙個資料塊時,內...
資料庫複習總結
這次學習的課程是面向面試的,所以很多知識都是根據面試 現的高頻問題來學習的.這個是乙個很空泛很大的問題,但是我們可以將資料庫的構建和乙個軟體的構建進行模擬 首先需要硬體儲存模組,比如 機械硬碟,固態硬碟等來儲存資料 資料庫程式例項 資料僅僅儲存起來是沒有任何意義的,需要對資料庫中的資料進行操作,比如...
資料庫複習總結(21) 索引
索引 專案大中後期才用 1 是什麼?相當於書的目錄,字典的檢索,實現了資料的快速查詢 2 分類 聚集索引 與實際儲存位置一樣,乙個表中只能有乙個聚集索引,主鍵採用聚集索引 非聚集索引 索引順序與儲存順序不一致。如學生在教室中的位置,可以按年齡進行查詢,也可以按身高進行查詢 3 建索引 介面 右擊表 ...