最近在複習資料庫相關知識點,過幾天就要考試了;
第一章 資料庫基礎知識
1、資料庫管理是資料處理的基礎工作,資料庫是資料管理的技術和手段。資料庫中的資料具有整體性和共享性。
1.2、資料庫系統的核心:資料庫管理系統。
1.3、資料庫核心:資料模型。
2、資料庫(DB)是一個按資料結構來儲存和管理資料的計算機系統軟體。
2.2、資料庫是長期儲存在計算機內的有組織,可共享的資料集合。
3、資料管理系統(DBMS)能夠為資料的庫提供資料的定義(a.資料定義功能)、建立、維護、查詢和統計(b.資料操縱功能)等操作功能,並完成對資料完整性、安全性進行控制的功能(c.資料庫的建立和維護功能)(d.數據庫的執行管理功能)。
4、資料庫管理系統的資料控制主要指對資料安全性和完整性的控制。
資料安全性控制是為保證資料庫的安全可靠,防止不合法的使用造成資料洩漏和破壞,即避免資料被人偷看、篡改或破壞;
資料完整性控制是為了保證資料中的資料正確、有效和相容,以防止不合語義的錯誤資料被輸入或輸出。
5、資料庫管理技術經歷了手工管理、檔案管理(最小存取單位是記錄)和資料庫技術(最小單位是資料項)三個發展階段。
6、資料庫分類:單使用者(access、fox base、FoxPro),多使用者(SQL sever、oracle、Informix、Sybase、Delphos)
7、資料庫系統管理資料的特點
①資料庫系統以資料模型為基礎
②資料庫系統的資料冗餘度小,資料共享度高
③資料系統的資料和程式之間具有較高的獨立性
④資料庫系統通過DBMS進行資料安全性和完整性的控制
⑤資料庫中資料的最小存取單位是資料項
8、資料系統的資料和程式之間的獨立性:資料和程式之間的依賴程度低、獨立程度大的特性稱為資料獨立性高。
資料獨立性可分為兩級
a. 資料的物理獨立性 資料的物理獨立性是指應用程式對資料儲存結構的依賴度。資料物理獨立性高是指當資料的物理結構發生變化時,應用程式不需要修改也可以正常工作。
b. 資料的邏輯獨立性 資料的邏輯獨立性是指應用程式對資料全域性邏輯結構的依賴程度。資料邏輯獨立性高是指當資料庫系統的資料全域性邏輯結構改變時,它們對應用程式不需要改變仍可以正常執行。
9、資料庫系統是指帶有資料並利用資料庫技術進行資料管理的計算機系統。一個資料庫系統應包括計算機硬體、資料庫、資料庫管理系統、應用程式系統及資料庫管理員。
10、資料庫管理系統體系中由支援系統的計算機硬體設裝置、資料庫及相關的計算機軟體系統、開發和管理資料庫系統的人員3部分組成。
11、資料庫系統的人員組成及資料庫管理員(DBA)的職責
A 資料庫管理員應參與資料庫和應用系統的設計
B 資料庫管理員應參與決定資料庫的儲存結構和儲存策略
C 資料庫管理員要負責定義資料的安全性要求和完整性條件
D 資料庫管理員負責監視和控制資料庫系統的執行,負責系統維護和資料恢復
E 資料庫管理員負責資料庫的改進和重組
12、三級模式結構:外模式(子模式 , 多個) 、模式(邏輯模式 , 一個)、內模式(儲存模式, 物理模式 ,一個)
12.2、描述資料庫中全域性邏輯結構和特徵的是:模式。
12.3、子模式DDL用來描述:資料庫的區域性邏輯結構。
13、資料庫系統二級映像技術及作用
資料庫系統二級映像技術是指外模式和模式之間的映像、模式和內模式之間的映像技術,二級映像技術不僅在三級資料模式之間建立了聯絡,同時也保證了資料的獨立性
① 外模式和模式之間的映像及作用:保證了外模式和資料模式之間的對應關係,也保證了資料的邏輯獨立性。
② 模式和內模式之間的映像及作用:保證了資料的邏輯模式和內模式之間的對應關係,也保證了資料的物理獨立性。
14、要保證資料庫的資料獨立性,需要修改的是:三層模式之間的兩種對映。
第二章 資料模型與概念模型
1、概念模型是對資訊世界的管理物件、屬性及聯絡等資訊的描述形式。概念模型不依賴計算機及資料庫管理系統,它是對現實世界的真實、全面的反映。
1.2、非關係模型中資料結構的基本單位是–基本層次聯絡。
1.3、通過指標連結來表示和實體之間聯絡的模型是:層次和網狀模型。
1.4、層次模型不能直接表達 m:n關係。
2、實體間的聯絡:
(1)兩個實體之間的聯絡:
1)一對一聯絡
2)一對多聯絡
3)多對多聯絡
(2)多實體集之間的聯絡:
1)多實體集之間的一對多的聯絡
2)多實體集之間的多對多的聯絡
(3)實體集內部的聯絡
3、資料庫中最常用的資料模型是層次模型、網狀模型和關係模型
4、資料模型具有資料結構、資料操作和完整性約束條件三要素
5、關係模型中的主要術語:
(1)關係:一個關係對應通常所說的一張二維表
(2)元組:表中的一行稱為一個元組
(3)屬性:表中的一列稱為一個屬性
(4)碼:表中的某個屬性或屬性組,它們的值可以惟一的確定一個元組,且屬性組中不存在多餘的屬性,這樣的屬性或屬性組稱為關係的碼。
(5)域:屬性的取值範圍稱為域。
(6)分量:元組中的一個屬性值稱為分量
(7)關係模式:關係的型稱為關係模式,關係模式是對關係的描述
6、關係操作包括資料查詢和插入、刪除、修改資料。關係中的資料操作是集合操作,無論操作的原始資料、中間資料或結果資料都是若干元組的集合,而不是單記錄的操作方式。
7、關係的完整性約束條件包括:事體完整性、參照完整性、使用者自定義完整性(和域完整性)。
第三章:資料庫系統的設計方法
1、資料庫系統的設計內容:資料庫的結構特性設計、資料庫的行為特性設計、資料庫的物理模式設計。
2、新奧熱量資料庫設計:需求分析、概念設計、邏輯設計、物理設計。
3、後續改:需求分析(分析各個使用者的需求)、概念結構設計(在結構化分析方法中,常用資料流程圖和資料字典來描述軟體的邏輯模式,概念模型,E-R圖,資料字典)、邏輯結構設計(資料模型,關係或非關係模型,邏輯模式,內外模式的確立)、物理結構設計(物理儲存安排,存取路徑的建立)、資料庫實施、資料庫的執行與維護。
圖一
圖二
4、資料字典(概念結構設計階段):1).資料項(不可再分的資料單位)2).資料結構(資料間的組合關係);3).資料流;4).資料儲存;5).處理過程。
5、資料抽象的三種基本方法:分類、聚集、囊括(繼承性)。
6、概念資訊模型:E-R圖—->實體-聯絡圖—-> 1.長方形:實體集名; 2.橢圓形:實體集屬性; 3.菱形:(實體間)聯絡。
7、E-R圖合併的衝突:屬性衝突、命名衝突、結構衝突。
7.1、邏輯結構設計的任務就是把概念模型結構轉化成某個具體的DBMS所支援的資料模型,並進行優化。
7.2、資料庫的物理結構設計是對於給定的邏輯資料模型,選取一個最適合應用環境的物理結構。資料庫的物理結構指的是資料庫在物理裝置上的儲存結構和存取方法,它依賴於給定的計算機系統。
7.3、資料庫物理結構設計的內容主要指選擇儲存結構和存取方法,包括確定關係、索引、聚簇、日誌、備份等的儲存安排和儲存結構,確定系統配置等。
7.4、關聯式資料庫常用的存取方法有 : 索引方法、聚簇方法和HASH方法等。
8、概念模型向關係模型的轉換:將實體集、屬性以及聯絡關係轉換為相應的關係模式【職工(職工號,姓名,年齡)】,關係模型中標有下劃線的屬性為碼(圖3、4例題)。
9、資料庫的執行與維護最主要的工作是組織資料入庫。
10、兩層結構的資料庫系統有兩種構造方式:客戶機/伺服器(Client/Server,簡稱C/S)結構和瀏覽器/伺服器(Browser/Server,簡稱B/S)結構;Client也稱為前端Front-End,Server也被稱為後端Back-End。
11、3層資料庫系統結構減少了資料庫伺服器的工作量,並可在應用伺服器上簡化資料備份,提高了整個系統的工作效能與可靠性。
12、資料庫應用系統設計步驟與方法:需求分析(資料需求,功能需求)、系統設計(資料模式,功能結構,系統結構)、建立資料庫(資料庫,配置資料來源)、程式設計(介面,選單元件及結構)、程式設計與除錯(單元與專案檔案)。
第四章 關聯式資料庫
1、關聯式資料庫為目前最廣泛的資料庫,以數學方法為基礎的管理資料庫。
2、關聯式資料庫模型三要素:關係結構、關係操作、關係完整性約束。
3、關係中的3類完整性約束:實體完整性、參照完整性、使用者定義完整性。
4、關聯式資料庫中的關係可以分為基本表、檢視表、查詢表3種型別。
5、在關聯式資料庫中,實體集以及實體間的聯絡都是用關係來表示的。
6、關係代數是一種抽象的查詢語言。關係代數的運算物件是關係,運算結果也為關係。關係代數所使用的運算子包括4類:集合運算子、專門的關係運算子、比較運算子和邏輯運算子。
7、關係代數的基本運算:並、差、選擇、笛卡爾積、投影。
8、關係代數表示檢索的例子(結合課本例題理解):
[例]設 教學資料庫中有
3
個關係:
學生關係S(SNO,SNAME,AGE,SEX)
學習關係SC(SNO,CNO,GRADE)
課程關係C(CNO,CNAME,TEACHER)
下面用關係代數表示式和SQL語句分別表達每個查詢語句。
(1) 檢索學習課程號為C2的學生SNO與GRADE。
πSNO,GRADE(σ CNO=’C2′(SC))
SELECT SNO, GRADE FROM SC WHERE CNO=‘C2’
(2) 檢索學習課程號為C2的學生SNO與SNAME.
πSNO,SNAME(σ CNO=’C2′(S |X| SC))
由於這個查詢涉及到兩個關係S和SC,因此先對這兩個關係進行自然連線,同一位學生的有關的資訊,然後再執行選擇投影操作。 此查詢亦可等價地寫成:
πSNO,SNAME(S) (πSNO(σ CNO=’C2′(SC)))
這個表示式中自然連線的右分量為”學了C2課的學生學號的集合”。這個表示式比前一個表示式優化,執行起來要省時間,省空間。
SELECT SNO,SNAME FROM S WHERE EXISTS (SELECT * FROM SC WHERE SNO=S.SNO AND CNO=‘C2’)
(3)檢索選修課程名為MATHS的學生學號與姓名。
πSNO,SANME(σ CNAME=’MATHS’(S |X| SC |X| C))
SELECT S.SNO, SNAME FROM S, SC,C WHERE S.SNO=SC.SNO AND SC.CNO=C.CNO AND CNAME=‘MATHS’
(4)檢索選修課程號為C2或C4的學生學號。
πSNO(σ CNO=’C2’∨CNO=’C4′(SC))
SELECT S.SNO, SNAME FROM S, SC,C WHERE S.SNO=SC.SNO AND SC.CNO=C.CNO AND CNAME=‘MATHS’
(5) 檢索至少選修課程號為C2或C4的學生學號。
π1(σ1=4∧2=’C2’∧5=’C4′(SC×SC))
SELECT SNO FROM SC AS X, SC AS Y WHERE X.SNO=Y.SNO AND X.CNO=‘C2’
AND Y.CNO=‘C4’
這裡(SC×SC)表示關係SC自身相乘的乘積操作,其中數字1,2,4,5都為它的結果關係中的屬性序號。 比較這一題與上一題的差別。
(6) 檢索不學C2課的學生姓名與年齡。
πSNAME,AGE(S)-πSNAME,AGE(σ CNO=’C2′(S |X| SC))
這個表示式用了差運算,差運算的左分量為”全體學生的姓名和年齡”,右分量為”學了C2課的學生姓名與年齡”。
SELECT SNAME, AGE FROM S WHERE SNO NOT IN (SELECT SNO FROM SC WHERE CNO=‘C2’
或SELECT SNMAE,AGE FROM S WHERE NOT EXISTS (SELECT * FROM SC WHERE SC.SNO=S.SNO ANDCNO=‘C2’)
(7)檢索學習全部課程的學生姓名。 編寫這個查詢語句的關係代數過程如下:
(a) 學生選課情況可用πSNO,CNO(SC)表示;
(b) 全部課程可用πCNO(C)表示;
(c) 學了全部課程的學生學號可用除法操作表示。
操作結果為學號SNO的集合,該集合中每個學生(對應SNO)與C中任一門課程號CNO配在一起都在πSCO,CNO(SC) 中出現(即SC中出現),所以結果中每個學生都學了全部的課程(這是”除法”操作的含義):
πSNO,CNO(SC)÷πCNO(C)
(d) 從SNO求學生姓名SNAME,可以用自然連結和投影操作組合而成:
πSNAME(S (πSNO,CNO(SC)÷πCNO(C))) 這就是最後得到的關係代數表示式。
SELECT SNAME FROM S WHERE NOT EXISTS (SELECT * FROM C WHERE NOT EXISTS (SELECT * FROM SC WHERE SC.SNO=S.SNO AND SC.CNO=C.CNO))
(8)檢索所學課程包含S3所學課程的學生學號。
注意:學生S3可能學多門課程,所以要用到除法操作來表達此查詢語句。
學生選課情況可用操作 πSNO,CNO(SC)表示;
所學課程包含學生S3所學課程的學生學號,可以用除法操作求得:
πSNO,CNO(SC)÷ πCNO(σ SNO=’S3′(SC)) SELECT DISTINCTSNO FROM SC X WHERE NOT EXISTS (SELECT * FROM SC Y WHERE Y.SNO=‘S3’ AND NOT EXISTS (SELECT * FROM SC Z WHERE Z.SNO=X.SNO AND Z.CNO=Y.CNO))
(9)將新課程元組(’C10′,’PHYSICS’,’YU’)插入到關係C中
(C∪(‘C10′,’PHYSICS’,’YU’)) INSERT INTO C VALUES(’C10′,’PHYSICS’,’YU’)
(10)將學號S4選修課程號為C4的成績改為85分。
(SC-(’S4′,’C4′, )∪(‘S4′,’C4′,85))
修改操作用代數表示分兩步實現:先刪去原元組,再插入新元組。題目中未給出原先的成績,所以用” ”代替,檢索時可忽略。
UPDATE SC SET GRADE=85 WHERE SNO=`S4` AND CNO=`C4`
第五章:關聯式資料庫標準語言–SQL
1、SQL語句按實現的功能分為三類:
(1)資料定義語句 (資料模式定義、刪除、修改)
(2)資料操縱語句 (資料查詢與維護)
(3)資料控制語句 (資料存取控制授權與收權)
2、SQL語句的三個特點:
(1)SQL具有自主式語言和嵌入式語言兩種使用方式
(2)SQL具有語言簡潔、易學易懂的特點
(3)SQL支援三級資料模式結構
1)全體基本表構成了資料庫的全域性邏輯模式(一個)
2)檢視和部分基本表構成了資料庫的外模式(子模式)(多個)
3)資料庫的儲存檔案和索引檔案構成了關聯式資料庫的內模式(一個)
3、SQL的資料控制語句包括授權、收權和拒絕訪問
例題:用SQL語句建立如下三個基本表:學生表(Student)、課程表(Course)、學生選課表(SC),結構如下所示
Student表結構
列名 說明 資料型別 約束
Sno 學號 字串,長度為7 主碼
Sname 姓名 字串,長度為10 非空
Ssex 性別 字串,長度為2 取‘男’或‘女’
Sage 年齡 整數 取值15~45
Sdept 所在院系 字串,長度為20 預設為‘計算機系’
Create table Student (
Sno varchar(7) primary key,
Sname varchar(10) not null,
Ssex char (2) check(Ssex=‘男’or Ssex=’女’),
Sage int check(Sage between 15 and 45),
Sdept varchar(20) default(‘計算機系’) )
Course
表結構
列名 說明 資料型別 約束
Cno 課程號 字串,長度為10 主碼
Cname 課程名 字串,長度為20 非空
Ccredit 學分 整數 取值大於
0
Semester 學期 整數 取值大於0
Period 學時 整數 取值大於0
Create table course (
Cno varchar(10) primary key,
Cname varchar(20) not null,
Ccredit int check(Sctedit>0),
Semester int check(Semester>0),
Period int check(Period>0) )
SC表結構
列名 說明 資料型別 約束
Sno 學號 字串,長度為7 主碼,引用Student的外碼
Cno 課程號 字串,長度為10 主碼,引用Course的外碼
Grade 成績 整數 取值0~100
Create table SC (
Sno varchar(7) foreign key references student(Sno),
Cno varchar(10) foreign key references course(Cno),
Grade int check(Grade between 0 and 100),
Primary key (Sno,Cno))
5、SQL進行表資料查詢:看實驗報告
第六章 SQL Server 關聯式資料庫管理系統
考試不做要求,所以沒整理,如果有整理後續補充。
第七章;關聯式資料庫理論
1、關係資料理論包括兩個方面的內容
(1)關聯式資料庫設計的理論——關係規範化理論和關係模式分解方法
(2)關聯式資料庫操作的理論——關係資料的查詢和優化的理論
2、關係模式規範化是解決關聯式資料庫中插入、刪除資料冗餘而引入的概念
第八章 資料庫保護技術
1、資料庫的保護功能主要包括確保資料的安全性、完整性、併發控制和資料恢復。
2、資料安全性是指保護資料庫,以防止不合法的使用造成的資料洩密、更改或破壞。
3、資料庫安全控制的一般方法(5種)
A 使用者表示與鑑別
B 存取控制 (a、自主存取控制方法 b、強制存取控制方法)
C 檢視機制
D 審計
E 資料加密
3.2、資料庫的完整性是指資料的正確性和相容性。
3.3、資料完整性約束可以分為表級約束、元祖級約束、屬性級約束。
4、SQL sever 的安全體系結構(4層安全防線)
A windows NT 作業系統的安全防線
B SQL sever 的執行安全防線
C SQL sever 資料庫的安全防線
D SQL sever 資料庫物件的安全防線
5、SQL sever 的安全認證模式
A windows安全認證模式
B 混合安全認證模式
6、SQL Server 併發控制機制方法為:事務和加鎖
7、事務是使用者定義的一個資料庫操作序列,這些操作要麼全做,要麼全不做,是一個不可分割的單位
8、事務的4個特性:
(1)原子性:事務是資料庫的邏輯工作單位,事務中包括的諸操作要麼全做,要麼一個也不做
(2)一致性:事務執行的結果必須是使資料庫從一個一致性狀態轉變到另一個一致性狀態。
(3)隔離性:說明一個事務的執行不能被其他事務干擾,即一個事務的內部操作及使用的資料對其他併發事務是隔離的,併發執行的各個事務之間不能互相干擾。
(4)持續性:也稱為永久性,持續性是指一個事務一旦提交,它對資料庫中的資料的改變就是永久性的,接下來的其他操作或故障不應該對其執行結果有任何影響。
9、鎖的型別
基本的封鎖型別有兩種:排他鎖(x),共享鎖(s)。
。。。。。