重慶大學在職研究生數(shù)據(jù)庫系統(tǒng)_第1頁
重慶大學在職研究生數(shù)據(jù)庫系統(tǒng)_第2頁
重慶大學在職研究生數(shù)據(jù)庫系統(tǒng)_第3頁
重慶大學在職研究生數(shù)據(jù)庫系統(tǒng)_第4頁
重慶大學在職研究生數(shù)據(jù)庫系統(tǒng)_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

#/7主要內(nèi)容口第1章緒論口第2章關(guān)系模型口第3章結(jié)構(gòu)化査詢語言-SQL口第4章并發(fā)控制口第5章數(shù)據(jù)庫設(shè)計第1章緒論口基本概念■數(shù)據(jù)庫(Database,DB):長期儲存在計算機內(nèi)、有組織的、可共享的數(shù)據(jù)集合。■數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,DBMS):是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。常用的大型數(shù)據(jù)庫管理系統(tǒng)包括DB2、SQLSERVER、Oracle、Sybase、Informix等。應用ASERVER、Oracle、Sybase、Informix等。應用A應用D|外摸式1數(shù)據(jù)庫系統(tǒng)的樓式結(jié)構(gòu)應問£井蟆式制外鎖式£離式/內(nèi)棲式映能數(shù)據(jù)陽口外模式(ExternalSchema)也稱子模式或用戶模式,是把現(xiàn)實世界中的信息按照不同用戶的觀點抽象為多個邏輯數(shù)據(jù)結(jié)構(gòu),每個邏輯結(jié)構(gòu)稱為一個視圖,描述了每個用戶關(guān)心的數(shù)據(jù),即數(shù)據(jù)庫用戶看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。數(shù)據(jù)庫外模式是面向用戶的數(shù)據(jù)庫模式。口數(shù)據(jù)庫三級模式體系結(jié)構(gòu)的劃分,有利于保持數(shù)據(jù)庫的數(shù)據(jù)獨立性。口數(shù)據(jù)的邏輯獨立性口數(shù)據(jù)的物理獨立性口數(shù)據(jù)模型:是現(xiàn)實世界數(shù)據(jù)特征的抽象。口概念數(shù)據(jù)模型:按用戶的觀點對數(shù)據(jù)和信息建模。如:實體聯(lián)系模型口邏輯數(shù)據(jù)模型:按計算機系統(tǒng)的觀點對數(shù)據(jù)建模。如:層次模型,網(wǎng)狀模型,關(guān)系模型口數(shù)據(jù)倉庫口數(shù)據(jù)倉庫是一個面向主題的、集成的、不可更新的、隨時間不斷變化的數(shù)據(jù)集合,用以支持企業(yè)或組織的決策分析處理??诜植际綌?shù)據(jù)庫系統(tǒng)是邏輯上屬于同一系統(tǒng),物理上分布在用計算機網(wǎng)絡(luò)連接的多個場地(或叫結(jié)點)上的數(shù)據(jù)集合,且每個場地具有獨立處理和自治能力,至少能參加一個全局應用,并由分布式數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理??诜植际綌?shù)據(jù)庫系統(tǒng)的特點:口數(shù)據(jù)獨立性;口中和自治相結(jié)合的控制機制口可控冗余口事務(wù)管理的分布性口存取效率第2章關(guān)系模型口關(guān)系模型:用二維表的形式表示實體和實體間聯(lián)系的數(shù)據(jù)模型口關(guān)系數(shù)據(jù)模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作和完整性約束三部分組成。口數(shù)據(jù)完整性:是指保護數(shù)據(jù)庫中數(shù)據(jù)的正確性、有效性和相容性,防止不合語義的數(shù)據(jù)進入數(shù)據(jù)庫??陉P(guān)系模型符合1NF。口第一范式(1NF)是指數(shù)據(jù)庫表的每一列都是不可分割的基本數(shù)據(jù)項???NF:不存在非主屬性部分依賴于侯選鍵的關(guān)系模式口3NF:不存在非主屬性傳遞依賴于侯選鍵的關(guān)系模式口超鍵(Superkey):在一個關(guān)系中,能唯一標識元組的屬性集??阪IKey(候選鍵candidatekey):—個屬性集能惟一標識元組,又不含有多余屬性??谥麈I(primarykey):關(guān)系模式中用戶正在使用的候選鍵稱主鍵。用作主鍵的列不可以為NULL,在行記錄中不可以重復,可以將幾個列合并起來用作主鍵??谕怄I(ForeignKey):是指關(guān)系R中的一組屬性A不是關(guān)系R的主鍵,但A是另一個關(guān)系S的主鍵,則屬性組A就是關(guān)系R的外鍵??诶河幸粋€讀者關(guān)系,其主鍵為借書證號。另有一個借閱關(guān)系,其屬性有借書證號、總編號、借書日期等,主鍵為總編號,則借書證號為借閱關(guān)系的??陉P(guān)系代數(shù):用關(guān)系的運算來表達查詢要求的方式??诓?、差、交口廣義笛卡爾積口投影:是從關(guān)系R中選擇出若干屬性列組成新的關(guān)系。口選擇:在關(guān)系R中選擇滿足給定條件的元組??谶B接:從兩個關(guān)系的笛卡兒積中選取屬性間滿足一定條件的元組??诔ǖ?章結(jié)構(gòu)化查詢語言一SQL口SQL(StructuredQueryLanguage)是結(jié)構(gòu)化查詢語言,包括查詢、定義、操縱和控制四個部分,是一種功能齊全的數(shù)據(jù)庫語言。目前已成為關(guān)系數(shù)據(jù)庫的標準語言。SQL功能關(guān)鍵動詞數(shù)據(jù)查詢DQL(DataQueryLanguage)SELECT數(shù)據(jù)定義DDL(DataDefinitionLanguage)CREATE,DROP,ALTER數(shù)據(jù)操縱DML(DataManipulationLanguage)INSERT,UPDATE,DELETE數(shù)據(jù)控制DCL(DataControlLanguage)GRANT,REVOKE口1.定義基本表口CREATETABLE<表名>(<列名><數(shù)據(jù)類型>[列級完整性約束條件][,<列名><數(shù)據(jù)類型>[列級完整性約束條件]...)[,<表級完整性約束條件>];口設(shè)有一個關(guān)系數(shù)據(jù)庫,有三個基本表,表結(jié)構(gòu)如下:口STUDENT(學號姓名年齡性別學院號)、口SC(學號課程號成績)、口COURSE(課程號課程名學時數(shù)課程類型)口創(chuàng)建COURSE表的SQL語句口CreateTableCOURSE(課程號char(6)notnullprimarykey,課程名char(30),學時數(shù)smallint,課程類型char(10))口查詢口SELECT[ALL|DISTINCT]v目標列表達式>[,<目標列表達式>]…FROM<表名或視圖名>[,<表名或視圖名>]...[WHERE<條件表達式>][GROUPBY<列名1>[HAVING<條件表達式>]][ORDERBY<列名2>[ASC|DESC]];口GROUP:將結(jié)果按<列名1>的值進行分組,該屬性列值相等的元組為一個組,每個組產(chǎn)生結(jié)果表中的一條記錄??谌绻鸊ROUP子句帶HAVING短語,則只有滿足指定條件的組才予輸出。口如果有ORDER子句,則結(jié)果表還要按<列名2>的值的升序或降序排序??谑褂镁酆虾瘮?shù)口COUNT([DISTINCT|ALL]*)統(tǒng)計元組個數(shù)口COUNT([DISTINCT|ALL]<列名>)統(tǒng)計一列中值的個數(shù)口SUM([DISTINCT|ALL]<列名>)計算一列值的總和口AVG([DISTINCT|ALL]<列名>)計算一列值的平均值口MAX([DISTINCT|ALL]<列名>)求一列值中的最大值口MIN([DISTINCT|ALL]<列名>)求一列值中的最小值口客戶表CUSTOMERS(cid,cname,city,discnt)口產(chǎn)品表PRODUCTS(pid,pname,city,quantity,price)口代理商表AGENTS(aid,aname,city,percent)口訂單表ORDERS(ordno,month,cid,aid,pid,qty,dollars)口1)查詢居住在紐約的客戶的cid值和名字。口Selectcid,cnamefromCUSTOMERSwherecity='NewYork';口2)查詢沒有通過代理商a01訂購過商品的顧客的cid值。口Selectcidfromcustomerscwherenotexists(select*fromordersowherec.cid=o.cidandaid='a01')口客戶表CUSTOMERS(cid,cname,city,discnt)口產(chǎn)品表PRODUCTS(pid,pname,city,quantity,price)口代理商表AGENTS(aid,aname,city,percent)口訂單表ORDERS(ordno,month,cid,aid,pid,qty,dollars)口3)查詢滿足條件為某個代理商所訂購的某種產(chǎn)品的總量超過500的產(chǎn)品ID、代理商ID和總量??赟electpid,aid,sum(qty)asTOTALfromordersgroupbypid,aidhavingsum(qty)>500;口更新數(shù)據(jù)口格式為:口UPDATE<表名>口SET<列名1>=<表達式1>[,<列名2>=<表達式2>][,...n]口[WHERE<條件>];口客戶表CUSTOMERS(cid,cname,city,discnt)口產(chǎn)品表PRODUCTS(pid,pname,city,quantity,price)口代理商表AGENTS(aid,aname,city,percent)口訂單表ORDERS(ordno,month,cid,aid,pid,qty,dollars)口例:修改表PRODUCTS的數(shù)據(jù),把存放在城市Duluth或Dallas的所有產(chǎn)品的價格提高20%??赨pdateproductssetprice=1.2*pricewherecityin('duluth','dallas')口數(shù)據(jù)庫的安全性控制是指保護數(shù)據(jù)以防止未經(jīng)授權(quán)或不合法的使用造成的數(shù)據(jù)泄露更改或破壞。口保證數(shù)據(jù)庫系統(tǒng)的安全性措施:口1)用戶標識和身份鑒定;口2)存取控制;口3)定義視圖;口4)審計;口5)數(shù)據(jù)加密??谝?、授權(quán)口grant表級權(quán)限on{表名|視圖名}to傭戶[,用戶]…|public}[withgrantoption]withgrantoption表示獲得權(quán)限的用戶可以把權(quán)限再授予其它用戶口回收權(quán)限口revoke表級權(quán)限on俵名|視圖名}from{用戶[,用戶]…|public}口例:授予用戶SQLTest對數(shù)據(jù)庫Sales的CUSTOMERS表的列cid、cname的查詢權(quán)限??趃rantselectoncustomers(cid,cname)tosqltest口視圖是從一個或幾個基本表(或視圖)導出的表,它是一個虛表,只存放視圖的定義,而不存放視圖對應的數(shù)據(jù)??趦?yōu)點:口1)簡化用戶的操作;口2)使用戶能從多種角度看待同一數(shù)據(jù);口3)對重構(gòu)數(shù)據(jù)庫提供了一定程度的邏輯獨立性;口4)能夠?qū)C密數(shù)據(jù)提供安全保護??谒饕↖NDEX)是對數(shù)據(jù)庫表中一列或多列的值進行排序的一種結(jié)構(gòu)。建立索引是加快查詢速度的有效手段,用戶可以根據(jù)應用環(huán)境的需要,在基本表上建立一個或多個索引,以提供多種存取路徑,加快查找速度??谟螛耸窍到y(tǒng)為用戶開設(shè)的一個數(shù)據(jù)緩沖區(qū),存放SQL語句的執(zhí)行結(jié)果,用戶可以用SQL語句逐一從游標中獲取記錄,并賦值給主變量,交由主語言進一步處理??谝粋€SQL語句原則上可產(chǎn)生或處理一組記錄,而程序語言一次只能處理一個記錄,為此必須協(xié)調(diào)兩種處理方式,這是通過使用游標機制來解決的??诖鎯^程是一組為了完成特定功能的SQL語句集,經(jīng)編譯后存儲在數(shù)據(jù)庫中。用戶通過指定存儲過程的名字并給出參數(shù)來執(zhí)行它。存儲過程有以下的優(yōu)點:口重復使用??谔岣咝阅?。存儲過程在創(chuàng)建的時候就進行了編譯,將來使用的時候不用再重新編譯??跍p少網(wǎng)絡(luò)流量。存儲過程位于服務(wù)器上,調(diào)用的時候只需要傳遞存儲過程的名稱以及參數(shù)就可以了,因此降低了網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量。口安全性。參數(shù)化的存儲過程可以防止SQL注入式的攻擊,而且可以將Grant、Deny以及Revoke權(quán)限應用于存儲過程。口函數(shù)是由一個或多個Transact-SQL語句組成的子程序,可用于封裝代碼以便重新使用??诖鎯^程和函數(shù)的區(qū)別:口存儲過程可以返回參數(shù),而函數(shù)只能返回值或者表對象。口存儲過程一般是作為一個獨立的部分來執(zhí)行,而函數(shù)可以作為查詢語句的一個部分來調(diào)用,由于函數(shù)可以返回一個表對象,因此它可以在查詢語句中位于FROM關(guān)鍵字的后面??诤瘮?shù)在系統(tǒng)啟動時就進行編譯并加載,存儲過程在調(diào)用時才加載??谟|發(fā)器是一種特殊的存儲過程,它可以在對一個表上進行INSERT、UPDATE和DELETE操作中的任一種或幾種操作時被自動調(diào)用執(zhí)行。第4章并發(fā)控制口日志文件是用來記錄事務(wù)對數(shù)據(jù)庫的更新操作的文件,在數(shù)據(jù)庫恢復中其著非常重要的作用,可以用來進行事務(wù)故障恢復和系統(tǒng)故障恢復,并協(xié)助后備副本進行介質(zhì)恢復。口并發(fā)控制口為了充分利用數(shù)據(jù)庫資源,發(fā)揮數(shù)據(jù)庫共享資源的特點,應該允許多個用戶并行地存取數(shù)據(jù)庫,但會產(chǎn)生多個用戶并發(fā)存取同一數(shù)據(jù)的情況,需要對并發(fā)操作進行控制,以防止數(shù)據(jù)庫的不一致性??诓l(fā)控制機制的好壞是衡量數(shù)據(jù)庫管理系統(tǒng)性能的重要標志之一。并發(fā)控制是以事務(wù)為單位進行的??诜怄i技術(shù)(Locking)是并發(fā)控制的主要技術(shù),所謂封鎖就是當一個事務(wù)在對某個數(shù)據(jù)對象(可以是數(shù)據(jù)項、記錄、數(shù)據(jù)集以至整個數(shù)據(jù)庫)進行操作之前,先請求系統(tǒng)對其加鎖,成功加鎖之后該事務(wù)就對該數(shù)據(jù)對象有了控制權(quán),只有該事務(wù)對其進行解鎖之后,其他的事務(wù)才能更新它??贒BMS普遍采用封鎖方法保證調(diào)度的正確性??谒梨i:在數(shù)據(jù)庫并發(fā)控制中,兩個或多個事務(wù)處于等待狀態(tài)。口事務(wù)是數(shù)據(jù)庫的邏輯工作單位,是用戶定義的一組操作序列。在關(guān)系數(shù)據(jù)庫中,一個事務(wù)可以是一組SQL語句或整個程序。事務(wù)通常是以BEGINTRANSACTION開始,以COMMIT或ROLLBACK結(jié)束。事務(wù)應具有原子性、一致性、隔離性和持續(xù)性??谠有裕菏聞?wù)必須是原子工作單元,對于其數(shù)據(jù)操作,要么全都執(zhí)行,要么全都不執(zhí)行??谝恢滦裕菏聞?wù)的執(zhí)行結(jié)果必須使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)??诟綦x性:一個事務(wù)的執(zhí)行不能被其它事務(wù)干擾??诔掷m(xù)性(持久性):一旦事務(wù)成功提交,其對數(shù)據(jù)庫的更新操作將永久有效,即使數(shù)據(jù)庫發(fā)生故障??诓l(fā)操作帶來的數(shù)據(jù)不一致性包括三類:丟失更新問題、不可重復讀問題和讀“臟”數(shù)據(jù)問題??冢?)丟失修改口兩個事務(wù)T1和T2讀入同一數(shù)據(jù)并修改,T2提交的結(jié)果破壞了(覆蓋了)T1提交的結(jié)果,導致T1的修改被丟失??冢?)不可重復讀口不可重復讀是指事物T1讀取數(shù)據(jù)后,事務(wù)T2執(zhí)行更新操作,使T1無法再現(xiàn)前一次讀取結(jié)果??冢?)讀“臟”數(shù)據(jù)口讀“臟”數(shù)據(jù)是指事務(wù)T1修改某一數(shù)據(jù),并將其寫回磁盤,事務(wù)T2讀取同一數(shù)據(jù)后,T1由于某種原因被撤銷,這時T1已修改過的數(shù)據(jù)恢復原值,T2讀到的數(shù)據(jù)就與數(shù)據(jù)庫中的數(shù)據(jù)不一致,則T2讀到的數(shù)據(jù)就為“臟”數(shù)據(jù),即不正確的數(shù)據(jù)??诒苊獠灰恢滦缘姆椒ê图夹g(shù)就是并發(fā)控制。最常用的技術(shù)是封鎖技術(shù)??跀?shù)據(jù)庫運行中可能產(chǎn)生三種故障:口事務(wù)故障:違反完整性約束引起事務(wù)夭折;口系統(tǒng)故障:軟硬件錯誤斷電引起事務(wù)夭折;口介質(zhì)故障:磁盤損壞部分或全部數(shù)據(jù)丟失??谑聞?wù)故障和系統(tǒng)故障影響事務(wù)的正常執(zhí)行,介質(zhì)故障破壞數(shù)據(jù)庫數(shù)據(jù)??跀?shù)據(jù)庫系統(tǒng)故障常用的恢復方法??诖?DBMS—般都使用數(shù)據(jù)轉(zhuǎn)儲和登錄日志文件實現(xiàn)數(shù)據(jù)庫系統(tǒng)的恢復功能。針對不同的故障,使用不同的恢復策略和方法。例如,對于事務(wù)故障的恢復是由DBMS自動完成的,對用戶是透明的??趯τ谙到y(tǒng)故障,也是由DBMS完成恢復操作,包括撤銷(UNDO)故障發(fā)生時未完成的事務(wù),重做(REDO)已完成的事務(wù)。DBA的任務(wù)是重新啟動系統(tǒng),系統(tǒng)啟動后恢復操作就由DBMS來完成了??趯τ诮橘|(zhì)故障,則恢復方法是由DBA重裝最新的數(shù)據(jù)庫后備副本和轉(zhuǎn)儲結(jié)束時刻的日志文件副本,然后DBA啟動系統(tǒng)恢復命令,由DBMS完成恢復功能,即重做已完成的事務(wù)??谌罩疚募怯脕碛涗浭?/p>

溫馨提示

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

評論

0/150

提交評論