贛州網(wǎng)站建設jxgzg3百度導航如何設置公司地址
一、重點知識點
- 基本概念:三級模式-兩級映像、數(shù)據(jù)庫設計
- 數(shù)據(jù)庫模型:E-R模型、關系模型、關系代數(shù)(結合SQL語言)
- 規(guī)范化:函數(shù)依賴、健與約束、范式、模式分解
- 事務并發(fā):并發(fā)三種問題、三級封鎖協(xié)議
- 數(shù)據(jù)庫新技術:數(shù)據(jù)庫安全與備份、反規(guī)范化、分布式數(shù)據(jù)庫、緩存數(shù)據(jù)庫、數(shù)據(jù)庫集群
二、三級模式-兩級映像
- 內模式:管理如何存儲物理的數(shù)據(jù),對應具體物理存儲文件,
- 模式:又稱為概念模式,就是我們通常使用的基本表,根據(jù)應用、需求將物理數(shù)據(jù)劃分成一張張表。
- 外模式:對應數(shù)據(jù)庫中的視圖這個級別,將表進行一定的處理后再提供給用戶使用。
- 外模式-模式映像:是表和視圖之間的映射,存在于概念級和外部級之間,若表中數(shù)據(jù)發(fā)生了修改,只需要修改此映射,而無需修改應用程序。
- 模式-內模式映像:是表和數(shù)據(jù)的物理存儲之間的映射,存在于概念級和內部級之間,若修改了數(shù)據(jù)存儲方式,只需要修改此映射,而不需要去修改應用程序。
三、數(shù)據(jù)庫設計
- 需求分析:即分析數(shù)據(jù)存儲的要求,產出物有數(shù)據(jù)流圖、數(shù)據(jù)字典、需求說明書。
- 概念結構設計:就是設計E-R圖,也即實體-屬性圖,與物理實現(xiàn)無關,說明有哪些實體,實體有哪些屬性。
- 邏輯結構設計:將E-R圖,轉換成關系模式,也即轉換成實際的表和表中的列屬性,這里要考慮很多規(guī)范化的東西。
- 物理設計:根據(jù)生成的表等概念,生成物理數(shù)據(jù)庫。
四、E-R模型
- 實體:客觀存在并可相關區(qū)別的事務。可以是具體的人、事、物或抽象概念。
- 若實體和強實體:若實體依賴于強實體的存在而存在。
- 屬性:實體所具有的特性。
- 屬性分類:簡單屬性和符合屬性;單值屬性和多值屬性;NULL屬性;派生屬性。
- 域:屬性的取值范圍稱為該屬性的域。
- 碼(key):唯一標識實體的屬性集。
- 聯(lián)系:在E-R圖中反應實體內部的聯(lián)系和實體之間的聯(lián)系。
- 聯(lián)系類型:一對一1:1、一對多1:N、多對多M:N。
五、關系模型
- 關系模型中數(shù)據(jù)的邏輯結構是一張二維表,由行列組成:
- ?E-R模型轉換為關系模型:每個實體都對應一個關系模式:聯(lián)系分為三種:
- 1:1聯(lián)系中,聯(lián)系可以放到任意的兩端實體中,作為一個屬性(要保證1:1的兩端關聯(lián)),也可以轉換為一個單獨的關系模式;
- 1:N的聯(lián)系中,聯(lián)系可以單獨作為一個關系模式,也可以在B端中加入1端實體的主鍵;
- M:N的聯(lián)系中,聯(lián)系必須作為一個單獨的關系模式,其主鍵是M和N端的聯(lián)合主鍵。
六、關系代數(shù)
- 笛卡爾積:S1*S2,產生的結果包括S1和S2的所有屬性列,并且S1中每條記錄依次和S2中所有記錄組合成一條記錄,最終屬性列為S1+S2屬性列,記錄數(shù)為S1*S2記錄數(shù)。
- 投影:實際是按條件選擇某關系模式中的某列,列也可以用數(shù)字表示。
- 選擇:實際是按條件選擇某關系模式中的某條記錄
- ?自然連接的結果是顯示全部的屬性列,但是相同屬性列只顯示一次,顯示兩個關系模式中屬性相同且值相同的記錄。
? ? ? ?
七、函數(shù)依賴
- 給定一個X,能唯一確定一個Y,就成X確定Y,或者說Y依賴于X,例如Y=X*X函數(shù)。函數(shù)依賴又可擴展一下兩種規(guī)則:
- 部分函數(shù)依賴:A可確定C,(A,B)也可確定C,(A,B)中的一部分(即A)可以確定C,稱為部分函數(shù)依賴。
- 傳遞函數(shù)依賴:當A和B不等價時,A可確定B,B可確定C,則A可確定C,是傳遞函數(shù)依賴;若A和B等價,則不存在傳遞,直接就可確定C。
- 超鍵:能唯一標識此表的屬性的組合。
- 候選鍵:超鍵中去掉冗余的屬性,剩余的屬性就是候選鍵。
- 主鍵:任選一個候選鍵,即可作為主鍵。
- 外鍵:其他表中的主鍵。
- 主屬性:候選鍵內的屬性為主屬性,其他屬性為非主屬性。
八、范式? ? ?
- 第一范式1NF:關系中的每一個分量必須是一個不可分的數(shù)據(jù)項
- 實例:用一個單一的關系模式學生來描述學校的教務系統(tǒng):學生(學號、學生姓名、系號、系主任姓名、課程號、成績)
- 依賴關系(學號→學生姓名,學號→系名,系名→系主任姓名,(學號,課程號)→成績)
- ?第二范式:如果關系R屬于1NF,且每個非主屬性完全函數(shù)依賴于任何一個候選碼,則R屬于2NF。通俗地說,2NF就是在1NF的基礎上,表中的每一個非主屬性不會依賴符合主鍵中的某一個列。按照定義,上面的學生表就不滿足2NF,因為學號不能完全確定課程號和成績(每個學生可以選多門課)。將學生表分解為:
- 學生(學號、學生姓名、系名、系主任)
- 選課(學號、課程號、成績)
- 每張表均屬于2NF。
- 第三范式:在滿足1NF的基礎上,表中不存在非主屬性對碼的傳遞依賴。
- 繼續(xù)上面的實例,學生關系模式就不屬于3NF,因為學生無法直接決定系主任,是由學號→系名,再由系名→系主任,因此存在非主屬性對主屬性的傳遞依賴
- 將學生表進一步分解為:
- 學生(學號、學生姓名、系編號)
- 系(系編號,系號,系主任)
- 選課(學號、課程號、成績)
- 每張表都屬于3NF
?九、SQL語句關鍵字
- 數(shù)據(jù)庫查詢select…from…where;
- 分組查詢group by,分組時要注意select后的列名要適應分組,having為分組查詢附加條件:select sno,avg(score)from student group by sno having(avg(score)>60)
- 更名運算as: select sno as “學 號”from t1
- 字符串匹配like,%匹配多個字符串,_匹配任意一個字符串:select*from t1 where sname like 'a_'
- 數(shù)據(jù)庫插入insert into…values(): insert into t1 values('a',66)
- 數(shù)據(jù)庫刪除delete from…where: delete t1 where sno=4
- 數(shù)據(jù)庫修改update…set…where: update t1 set sname='aa' where sno=3
- 排序order by,默認為升序,降序要加關鍵字DESC: select* from t1 order by sno desc
- 授權Grant,with grant option允許授權他人
- DISTINCT:過濾重復的選項,只保留一條記錄。
- UNION : 出現(xiàn)在兩個SQL語句之間,將兩個SQL語句的查詢結果取或運算,即值存在于第一句或第二句都會被選出。
- ?INTERSECT : 對兩個SQL語句的查詢結果做與運算,即值同時存在于兩個語句才被選出。
- MIN、AVG、MAX:分組查詢時的聚合函數(shù)
十、并發(fā)控制
- 丟失更新:事務1對數(shù)據(jù)A進行了修改并寫回,事務2也對A進行了修改并寫回,此時事務2寫回的數(shù)據(jù)會覆蓋事務1寫回的數(shù)據(jù),就丟失了事務1對A的更新。即對數(shù)據(jù)A的更新會被覆蓋。
- 不可重復讀:事務2讀A,而后事務1對數(shù)據(jù)A進行了修改并寫回,此時若事務2再讀A,發(fā)現(xiàn)數(shù)據(jù)不對。即一個事務重復讀A兩次,會發(fā)現(xiàn)數(shù)據(jù)A有誤。
- 讀臟數(shù)據(jù):事務1對數(shù)據(jù)A進行了修改后,事務2讀數(shù)據(jù)A,而后事務1回滾,數(shù)據(jù)A恢復了原來的值,那么事務2對數(shù)據(jù)A做的事是無效的,讀到了臟數(shù)據(jù)。
?
十一、分布式數(shù)據(jù)庫
- 局部數(shù)據(jù)庫位于不同的物理位置,使用一個全局DBMS將所有局部數(shù)據(jù)庫聯(lián)網(wǎng)管理,這就是分布式數(shù)據(jù)庫。
- 分片模式
- 水平分片:將表中水平的記錄分別存放在不同的地方。
- 垂直分片:將表中的垂直的列值分別存放在不同的地方。
- 分布透明性
- 分片透明性:用戶或應用程序不需要知道邏輯上訪問的表具體是如何分塊存儲的。
- 位置透明性:應用程序不關心數(shù)據(jù)存儲物理位置的改變。邏輯透明性:用戶或應用程序無需知道局部使用的是哪種數(shù)據(jù)模型。
- 復制透明性:用戶或應用程序不關心復制的數(shù)據(jù)從何而來。