本文中出現(xiàn)的圖片均來源于華南理工大學數(shù)據(jù)庫系統(tǒng)的課件
前言##
最近花了一個星期把數(shù)據(jù)庫系統(tǒng)概論(第五版)王珊石洗,薩師煊編著 這本書看了一遍,感覺這本書挺不錯的,讓我對數(shù)據(jù)庫有了大概的了解。
配合PPT上面一些額外的增加內(nèi)容,我覺得的確是學了不少東西彤敛,感覺現(xiàn)在計院的課程大部分就是這些理論化的東西,建立學科體系用的了赌,可以對計算機科學有一個更加顯著的認識吧墨榄。
我個人覺得這本書可以在學過MySQL等應用技術(shù)之后去讀一下,可能會對數(shù)據(jù)庫有更深的理解勿她。
學過一些RDBMS之后袄秩,可以看看這本書一些基本理論和概述
- 第二章 關(guān)系數(shù)據(jù)庫
- 第六章 關(guān)系數(shù)據(jù)理論
- 第七章 數(shù)據(jù)庫設(shè)計
- 第九章 關(guān)系查詢處理和查詢優(yōu)化
- 第十章 數(shù)據(jù)庫恢復技術(shù)
- 第十一章 并發(fā)控制
這里面第十章和第十一章在這本書中講得比較淺,畢竟是一個很大的內(nèi)容嫂拴,這本書只是概論播揪,也只能讓讀者理解一下基本概念,有個印象而已筒狠。畢竟不是每個人都去做DBA猪狈,沒必要把數(shù)據(jù)庫的所有知識在一本教科書寫得一清二楚
第二章 關(guān)系代數(shù)
這個是第2章的內(nèi)容,第一章是緒論辩恼,講的是一些基本概念雇庙,基本上一小會就看完了。第二章內(nèi)容比較多灶伊,主要是涉及的關(guān)系代數(shù)疆前。
- 域:是一組具有相同數(shù)據(jù)類型的值的集合 舉幾個例子 {男,女}聘萨、{0,1}竹椒、大于0小于100的正整數(shù)
- 笛卡爾積:D1*D2
- 關(guān)系 R(D1,D2,....DN)
還有外碼主碼候選碼等等的定義
關(guān)系操作
- 查詢
- 數(shù)據(jù)更新(包括插入刪除修改)
基本操作時選擇米辐、投影胸完、連接书释、除、并赊窥、差爆惧、交,其中選擇锨能、投影扯再、并、差址遇、笛卡爾積是5種基本操作熄阻。
關(guān)系的完整性
- 參照完整性
- 實體完整性
關(guān)系代數(shù)
在課本里面有詳細的定義,就不詳細敘述了
第六章 關(guān)系數(shù)據(jù)理論
規(guī)范化理論
其中規(guī)范化理論最重要的就是函數(shù)依賴的定義和范式
主要的范式有分為1NF傲隶、2NF饺律、3NF窃页、BCNF
第七章 數(shù)據(jù)庫設(shè)計
這一章闡述了數(shù)據(jù)庫的設(shè)計方法跺株。
其中包括需求分析,概念結(jié)構(gòu)設(shè)計脖卖,邏輯結(jié)構(gòu)設(shè)計和物理結(jié)構(gòu)設(shè)計乒省,數(shù)據(jù)庫的實施和維護
概念結(jié)構(gòu)設(shè)計
之前也看過一點點的UML,感覺不是很懂畦木,看完這些課件之后有了個更大體的認識袖扛。
邏輯結(jié)構(gòu)設(shè)計
主要就是E-R圖轉(zhuǎn)為表格
物理結(jié)構(gòu)設(shè)計
數(shù)據(jù)庫物理設(shè)計的步驟
- 確定數(shù)據(jù)庫的物理結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫中主要指存取方法和存儲結(jié)構(gòu)
- 對物理結(jié)構(gòu)進行評價十籍,評價的重點是時間和空間效率
- 如果評價結(jié)果滿足原設(shè)計要求蛆封,則可進入到物理 實施階段,否則勾栗,就需要重新設(shè)計或修改物理結(jié)構(gòu)惨篱,有時甚至要返回邏輯設(shè)計階段修改數(shù)據(jù)模型
數(shù)據(jù)庫管理系統(tǒng)常用存取方法
- B+樹索引存取方法
- Hash索引存取方法
- 聚簇存取方法
第八章 數(shù)據(jù)庫編程 8.4 ODBC編程
- ODBC產(chǎn)生的原因:
- 由于不同的數(shù)據(jù)庫管理系統(tǒng)的存在,在某個RDBMS下編寫的應用程序就不能在另一個RDBMS下運行
- 許多應用程序需要共享多個部門的數(shù)據(jù)資源围俘, 訪問不同的RDBMS
- ODBC優(yōu)點:
- 移植性好
- 能同時訪問不同的數(shù)據(jù)庫
- 共享多個數(shù)據(jù)資源
第九章 關(guān)系查詢處理和查詢優(yōu)化
在課件中有對應的算法
代數(shù)優(yōu)化
典型的啟發(fā)式規(guī)則:
- 選擇運算應盡可能先做砸讳。在優(yōu)化策略中這是最重要、最基本的一條
- 把投影運算和選擇運算同時進行
- 把投影同其前或其后的雙目運算結(jié)合起來
- 把某些選擇同在它前面要執(zhí)行的笛卡爾積結(jié)合起來成為一個連接運算
- 找出公共子表達式
物理優(yōu)化
物理優(yōu)化就是要選擇高效合理的操作算法或 存取路徑界牡,求得優(yōu)化的查詢計劃
第十章 數(shù)據(jù)庫恢復技術(shù)
這一章主要是在出現(xiàn)問題之后的Redo和Undo
第十一章 并發(fā)控制
看完了這一章之后最大的感觸就是大概明白了
- 并發(fā)操作帶來的數(shù)據(jù)不一致性包括丟失修改簿寂、不可重復讀和讀臟數(shù)據(jù)
- X鎖、S鎖宿亡、IS鎖常遂、IX鎖、SIX鎖的含義與作用
- 封鎖之后可能引發(fā)的活鎖與死鎖的問題與解決方案
- 沖突可串行化調(diào)度與可串行化調(diào)度的聯(lián)系
- 2PL協(xié)議
- SQL92中對于一致性級別的定義
后記
這本書看的時間真的非常短挽荠,就花了一個星期克胳,一邊看PPT一邊看書劃重點泊碑,看完之后覺得自己好像沒學到什么東西好像又學到了什么。里面的有一些章節(jié)專門講SQL語言的我沒有放在這次的簡書里面毯欣,畢竟這種東西估計大家學過SQL語言的應該也都會了馒过。
我在看到第七章的時候也很困惑,數(shù)據(jù)庫設(shè)計這種東西對于我而言真的有用嗎酗钞?我又不做DBA腹忽,我隨后就去問了計院的學姐,她告訴我砚作,這種東西的確是不一定有用的窘奏,因為你現(xiàn)在學了遲早也會忘,但至少有個印象葫录,出了問題知道哪里有得查閱資料着裹。計院的課也都是理論性的東西,應用技術(shù)沒有多少米同。
看完之后收獲主要就是
- 現(xiàn)在大概看得懂SQL語句了吧骇扇,知道嵌入式SQL怎么一回事,以后真的要用DB的時候可能會學的快一點
- 解決了一直以來對于事務和鎖的概念不清晰面粮,可能有利于下學期學操作系統(tǒng)這門課(吧)
- 看了一點范式的內(nèi)容明白了其實數(shù)據(jù)庫設(shè)計有很多問題需要去解決
- E-R圖和UML圖少孝,這個是我之前在看C++的時候遺留的問題,也至少有了個總體認識
- 關(guān)系優(yōu)化理論里面對于處理時間的計算熬苍,順帶復習了一下B+Tree...
- 然后沒有別的然后了
- 該好好繼續(xù)學C++和算法了
PS.學校的課件講的內(nèi)容比書多得多詳細多了稍走。。柴底。
課件我傳到我們的Tower了