數據庫系統概論筆記-王珊版_第1頁
數據庫系統概論筆記-王珊版_第2頁
數據庫系統概論筆記-王珊版_第3頁
數據庫系統概論筆記-王珊版_第4頁
數據庫系統概論筆記-王珊版_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.第一章1.數據庫的四個基本概念:數據、數據庫、數據庫管理系統、數據庫系統。數據:是數據庫中存儲的基本對象。描述事物的符號稱為數據。數據庫:是長期存儲在計算機內、有組織的、可共享的大量數據的集合。數據庫數據具有永久存儲、有組織和可共享三個基本特點。數據庫管理系統:是計算機的基礎軟件。數據庫系統:是由數據庫、數據庫管理系統、應用程序和人組成的存儲、管理、處理和維護數據的系統。2.數據處理和數據管理。數據處理:指對各種數據進行手機、存儲、加工和傳播的一系列活動的總和。數據管理:指對數據進行分類、組織、編碼、存儲、檢索和維護。3.數據獨立性。物理獨立性:指 用戶的應用程序 與數據庫中 數據的物理存儲

2、 是相互獨立的。邏輯獨立性:指 用戶的應用程序 與數據庫的 邏輯結構 是相互獨立的。4.數據模型-是對現實世界數據特征的抽象(現實世界的模擬)。數據模型是數據庫系統的核心和基礎。概念模型:信息模型,按照用戶的觀點來對數據和信息建模,主要用于數據庫設計。邏輯模型:按照計算機系統的觀點對數據建模。物理模型:描述數據在計算機內部的表示方式和存取方法。數據模型組成要素:數據結構、數據操作、數據的完整性約束條件。5.信息世界中的基本概念。實體:客觀存在并可相互區(qū)別的事物。屬性:實體所具有的某一特征。碼:唯一標識實體的屬性集。聯系:失誤內部以及事物之間是有聯系的。實體內部的聯系通常是指組成實體的個屬性之間

3、的聯系,實體之間的聯系通常是指不同實體集之間的聯系。實體之間的聯系有一對一、一對多和多對多等各種類型。6.數據完整性約束條件。實體完整性:檢查主碼值是否唯一,檢查主碼的各個屬性是否為空。實體完整性在創(chuàng)建表時用primary key 主鍵來定義。參照完整性:檢查增刪改時檢查外碼約束。在創(chuàng)建表時用外碼 foreign key短語定義。用戶定義完整性:創(chuàng)建表中定義屬性的同時,可以根據應用要求定義屬性上的約束條件,即屬性值限制。列值非空(not null) 、列值唯一(unique)、檢查列值是否滿足一個條件表達式(check短語)7.數據庫系統的模式。型:是指對某一類數據的結構和屬性的說明,對結構的

4、描述和說明。值:是型的一個具體賦值。模式:是數據庫中全體數據的邏輯結構和特征的描述,對結構進行描述,僅僅涉及型。模式的一個具體值稱為模式的一個實例。模式反應的事數據的結構及其聯系,而實例反應的是數據庫某一時刻的狀態(tài)。8.數據庫的三級模式結構。模式(邏輯模式):是數據庫中全體數據的邏輯結構和特征的描述,需要定義數據想的名字,類型,取值范圍和數據之間的聯系,安全性完整性要求等。外模式(子模式):數據庫中數據的局部邏輯結構。內模式(存儲模式):是數據物理結構和存儲方式的描述,是數據在數據庫內部的組織方式。第二章1.關系模型-關系數據結構、關系操作集合、關系完整性約束三部分組成。2.關系。域:一組具有

5、相同數據類型的值的集合。關系:笛卡爾積的有限子集。候選碼:關系中某一屬性組的值能唯一地標識一個元組。候選碼的諸屬性稱為主屬性。不包含在任何候選碼中的屬性稱為非主屬性。3.表?;颈恚ɑ娟P系、基表):實際存在的表,是實際存儲數據的邏輯表示。查詢表:是查詢結果對應的表。視圖表:是由基本表或其他視圖表導出的表,虛表,不對應實際存儲的數據。4.關系代數:用對關系的運算來表達查詢。關系代數運算的三個要素:1.運算對象:關系;2.運算結果:關系;3:運算符:四類選擇運算是從行的角度進行的運算查詢信息系(IS系)全體學生 Sdept = IS (Student)投影操作主要是從列的角度進行運算。投影之后不

6、僅取消了原關系中的某些列,而且還可能取消某些元組(避免重復行)查詢學生的姓名和所在系,即求Student關系上學生姓名和所在系兩個屬性上的投影 Sname,Sdept(Student)連接也稱連接:連接運算從R和S的廣義笛卡爾積RS中選?。≧關系)在A屬性組上的值與(S關系)在B屬性組上值滿足比較關系的元組除第四章1.數據庫安全性控制。用戶身份鑒別:靜態(tài)口令鑒別,動態(tài)口令鑒別、生物特征鑒別、智能卡鑒別。存取控制:定義用戶權限。合法權限檢查。自主存取控制:授予不同對象不同權限。強制存取控制:數據庫中的內容帶有密級標記,只有具有相應標記的用戶才能夠訪問。2.授權。授權:-對屬性列授權必須指出相應的

7、屬性列名。grant select,insert,delete,updateon table Student,Scto 用戶1,用戶2收回權限:revoke selecton table Student,Scfrom 用戶1,用戶23.角色。數據庫角色是被命名的一組與數據庫操作相關的權限,角色是權限的集合。創(chuàng)建角色、對角色進行授權、將角色授權給其他的角色或者用戶、角色權限的收回。創(chuàng)建角色:create role 角色1,角色2給角色授權:grant select,insert on table Studentto 角色1,角色2將角色授權給其他用戶:grant 角色1to 用戶1,用戶2收回角

8、色權限:Revoke selectOn table StudentFrom 角色14.視圖。創(chuàng)建視圖:Create view 視圖1As Select * From StudentWhere Sdept = CS第五章1.數據庫完整性。數據庫的完整性是指數據的正確性和相容性。數據的正確性是指額數據是符合現實世界語義、反應當前實際狀況的。數據的相容性是指數據庫同一對象在不同的關系表中的數據是符合邏輯的。2.保障數據庫的完整性。提供定義完整性約束條件的機制。提供完整性檢查的方法。進行違約處理。數據完整性約束條件前文中已經講述,此處不再贅述。第六章1函數依賴。若對于R(U)的任意一個可能的關系r,r

9、中不可能存在兩個元組在X上的屬性值相等,而在Y上的屬性值不等,則稱 “X函數確定Y” 或 “Y函數依賴于X”,記作XY一個低一級范式的關系模式,通過模式分解可以轉換為若干個高一級范式的關系模式的集合,這種過程叫做規(guī)范化。1NF(第一范式)如果一個關系模式R的所有屬性都是不可分的基本數據項,則R1NF第一范式是對關系模式的最起碼的要求。不滿足第一范式的數據庫模式不能稱為關系數據庫。2NF:如果R1NF,且每一個非主屬性完全依賴于碼,則R2NF采用投影分解法將一個1NF的關系分解為多個2NF的關系3NF:如果R 是2NF,且每個非主屬性都不傳遞依賴于R的候選碼,則R屬于3NF。2NF消除非主屬性的

10、部分依賴,3NF消除非主屬性的傳遞依賴BCNF的定義:BCNF不僅對非主屬性有要求,而且也對主屬性有要求如果一個關系模式只有兩個屬性構成,則該關系模式一定屬于BCNF第七章1.數據庫設計,數據庫設計分6個階段。需求分析。概念結構設計。邏輯結構設計。物理結構設計。數據庫實施。數據庫運行和維護。2.數據項是不可再分的數據單位數據結構反映了數據之間的組合關系。數據流是數據結構在系統內傳輸的路徑。數據存儲是數據結構停留或保存的地方,也就是流的來源和去向之一。具體處理邏輯一般用判定表或判定樹來描述。數據字典是關于數據庫中數據的描述,是元數據,而不是數據本身。數據字典在需求分析階段建立,在數據庫設計過程中

11、不斷修改、充實、完善。概念結構是各種數據模型的共同基礎,它比數據模型更獨立于機器、更抽象,從而更加穩(wěn)定。自頂向下的進行需求分析,自低向上的設計概念結構。定義數據庫模式主要是從系統的時間效率、空間效率、易維護等角度出發(fā)。物理設計的第一任務就是要確定選擇那些存取方法,即建立哪些存取路徑。3. ER圖 實體型:用矩形表示,矩形框內寫明實體名屬性:用橢圓形表示,并用無向邊將其與相應的實體型連接起來聯系:用菱形表示,菱形框內寫明聯系名,并用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯系的類型(1:1、1:n或m:n)聯系的屬性:聯系本身也是一種實體型,也可以有屬性。如果一個聯系具有屬性,則這些屬性

12、也要用無向邊與該聯系連接起來在關系總數盡量少的情況下,該E-R圖轉換后關系模式包括:學生(學號,姓名,性別,專業(yè),出生日期,學院編號)課程(課程編號,課程名稱,課程類別,學分)學院(學院編號,學院名稱,辦公室電話,院長教職工編號)教職工(教職工編號,姓名,參加工作時間,職稱,學院編號)選課(學號,課程號,成績)第八章1.游標。使用:聲明游標、打開游標、從一個游標中提取信息、關閉釋放游標。聲明游標:Declare XXX cursor For select *打開游標:open XXX關閉游標:close XXX釋放游標:deallocate XXX聲明一個名為curAllCourse的游標,完

13、成統計有多少學生選修了全部課程,輸出學生學號和姓名。declare curAllCourse cursor /聲明游標for SELECT SNO,snamefrom studentwhere sno in (select snofrom scgroup by snohaving COUNT(*)=(select COUNT(*)from course)for read onlyopen curAllCourse/打開游標declare sno char(10),sname char(10)/聲明變量set sno=0fetch next from curAllCourse into sno,

14、sname/從游標中取數據while FETCH_STATUS = 0beginif sname is nullset sno = sno + 1select sno 學號,sname 姓名fetch next from curAllCourse into sno,snameendCLOSE curAllCourse/關閉游標DEALLOCATE curAllCourse/釋放游標2.存儲過程。類似與C語言中的函數。編寫一個存儲過程,在sc表統計每個學生的平均分.create proc avergrade/創(chuàng)建存儲過程asbegin select sno,avg(grade) 平均分 from

15、 sc group by snoendexec avergrade/執(zhí)行存儲過程drop procedure avergrade/刪除存儲過程對練習1的存儲過程進行改進,添加一個輸入參數學號,使存儲過程能根據輸入的學號計算該學生的平均分create proc avergradesno char(10)asbegin select sno,avg(grade) 平均分 from sc where sno = sno group by snoendexec avergrade 04drop procedure avergrade在練習2的基礎上添加一個輸出參數平均分,計算指定學號的平均分,然后將平

16、均分輸出。create proc avergradesno char(10),saving int outasbegin select saving = avg(grade) from sc where sno = sno group by snoenddeclare avg int set avg = 0exec avergrade 02,avg outselect avg 平均分drop procedure avergrade3.函數。函數必須返回指定類型,可以返回表,有輸入參數。創(chuàng)建成績轉換函數,實現百分制成績與優(yōu)、良、中、及格、不及格五個等級的換算.CREATE FUNCTION gr

17、ade_trans(grade FLOAT) RETURNS CHAR(16) AS BEGIN DECLARE class CHAR(16) SELECT class = CASE WHEN grade IS NULL THEN 還沒參加考試 WHEN grade = 60 and grade = 70 and grade = 80 and grade 90 THEN 良好 ELSE 優(yōu)秀! END RETURN(class) END select dbo.grade_trans(88)查詢某個院系所有學生所選的每門課的平均成績。create function aver (p char(10

18、) returns tableas return ( select cno 課程號,avg(grade) 平均成績 from student,sc where student.sno=sc.sno and sdept=p group by cno ) select * from dbo.aver(cs)drop function aver求某個院系選修了某門課的學生人數。create function people(p0 char(10),p1 char(4) returns intas begindeclare renshu intselect renshu = (select COUNT(

19、*) 選課人數from student,scwhere student.sno = sc.sno and cno = p1 and sdept = p0)return renshu end select dbo.people(cs,2)drop function people4.觸發(fā)器。Create trigger XXXOn table for /after /instead of Insert,delete,updateAs 觸發(fā)器實際需要觸發(fā)內容For:用法同afterAfter:執(zhí)行完sql語句之后進行檢查,檢查不符合條件的話回滾 roll back 。after觸發(fā)器只能在表上指定。

20、Instead of :指定觸發(fā)器時代替SQL語句執(zhí)行的,其優(yōu)先級高于觸發(fā)語句的操作。例:為 student表建立觸發(fā)器T1,當插入或更新表中的數據時,保證所操作的記錄的sage值大于0。create trigger T1on studentafter insert,updateas begindeclare sage int select sage = inserted.sage from insertedif(sage 0)beginprint 年齡錯誤rollback transactionendendupdate studentset sage = 38where sno = 01in

21、sert into student(sno,sname,ssex,sage,sdept)values(2007011,張三,男,55,ma)為student表建立觸發(fā)器T2,禁止刪除編號為“0001”的學生。insert into student(sno,sname,ssex,sage,sdept)values(0001,傻大個,男,19,is)create trigger T2on studentafter deleteasbegindeclare sno char(10)select sno = deleted.sno from deletedif(sno = 0001)beginprin

22、t 禁止刪除學號0001信息rollback transactionendenddelete student where sno = 0001drop trigger T2第十章1事務。是一系列的數據庫操作,是數據庫應用程序的基本邏輯單元。是用戶定義的一個數據庫操作序列,這些操作要么全做,要么全不做,是一個不可分割的工作單元。2事務的四個特性。原子性:事務是數據庫的邏輯工作單位,事務總包括的諸操作要么全做,要么全不做。一致性:數據庫只包含成功事務提交的結果,就說數據庫處于一致性狀態(tài)。隔離性:一個事務的執(zhí)行不能被其他事務干擾。即一個事務的內部操作及使用的數據對其他并發(fā)事務是隔離的,并發(fā)執(zhí)行的各個

23、事務之間不能互相干擾。持續(xù)性:指一個事務一旦提交,他對數據庫中數據的改變就應該是永久性的。事務是恢復和并發(fā)控制的基本單位。3數據庫恢復。把數據庫從錯誤狀態(tài)恢復到某一已知的正確狀態(tài)的功能。1. 運行事務非正常中斷。2. 數據丟失。4故障種類。運行事務非正常中斷-恢復-事務撤銷。系統故障、介質故障、計算機病毒。5恢復實現技術。數據恢復的基本原理:冗余。建立冗余數據最常用的技術是數據轉儲和登記日志文件。6 數據轉儲。靜態(tài)轉儲:是在系統中無運行事務時進行的轉儲操作。動態(tài)轉儲:是指轉儲期間允許對數據庫進行存取或修改。即轉儲和用戶事務可以并發(fā)執(zhí)行。海量轉儲:每次轉儲全部數據庫。增量轉儲:指每次只轉儲上一次

24、轉儲后更新過的數據。7.日志文件。是用來記錄事務對數據庫的更新操作的文件。在事務故障恢復和系統故障恢復必須用日志文件。在動態(tài)轉儲方式中必須建立日志文件,后備副本和日志文件結合起來才能有效地恢復數據庫。在靜態(tài)轉儲中也建立日志文件8登記日志文件(對數據庫的操作記錄)。登記的次序嚴格按并發(fā)事務執(zhí)行的時間次序。必須先寫日志文件,后寫數據庫。9事務故障的恢復?;謴妥酉到y應利用日志文件撤銷此事務已對數據庫進行的修改,系統自動進行。10系統故障恢復。導致故障原因可能有兩個:1. 未完成事務對數據庫的更新可能已寫入數據庫。2. 已提交事務對數據庫的更新可能還留在緩沖區(qū)沒來得及寫入數據庫?;謴筒呗允?撤銷故障發(fā)

25、生時未完成的事物,重做已完成的事物。11介質故障的恢復。數據庫副本。第十一章 1 并發(fā)操作帶來的數據不一致性。 并發(fā)操作破壞了事務的隔離性。丟失修改:兩個事務同時讀入同一數據并修改,T2提交的結構破壞了T1提交的結果,導致T1的修改被丟失。不可重復讀:事務1讀取數據后,事務2執(zhí)行更新操作,使T1無法再現前一次讀取結果。讀臟數據:事務1修改某一數據并將其寫回磁盤,事務2讀取同一數據后,T1由于某種原因被撤銷,這時被T1修改過的數據恢復原值,T2讀到的數據就與數據庫中的數據不一致,則T2讀到的數據就為臟數據,即不正確的數據。2.并發(fā)控制的主要技術。 封鎖、時間戳、樂觀控制法、多版本并發(fā)控制等。3.

26、 封鎖。封鎖就是事務T對某個數據對象操作之前,先向系統發(fā)出請求,對該數據對象進行加鎖。加鎖后事務T就對該數據對象有了一定的控制,在事務T釋放它的鎖之前,其他事務不能更新此數據對象。4.封鎖類型。排他鎖(寫鎖):若事務T對數據對象A加上X鎖,則只允許T讀取和修改A,其他任何事務都不能再對A加任何類型的鎖,直到T釋放A上的鎖為止。保證了其他事務在T釋放A上的鎖之前不能再讀取和修改A。共享鎖(讀鎖):若事務T對數據對象A加上S鎖,則事務T可以讀A但不能修改A,其他事務只能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖為止。保證了其他事務可以讀A,但在T釋放S鎖之前不能對A做任何修改。5.封鎖協議。一級封鎖協議:事務T在修改數據R之前必須先對其加X鎖,直到事務結束

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論