一 事務(wù)處理介紹 事務(wù)是這樣一種機制,它確保多個(gè)SQL語(yǔ)句被當作單個(gè)工作單 元來(lái)處理。
事務(wù)具有以下的作用: * 一致性:同時(shí)進(jìn)行的查詢(xún)和更新彼此不會(huì )發(fā)生沖突,其他 用戶(hù)不會(huì )看到發(fā)生了變化但尚未提交的數據。 * 可恢復性:一旦系統故障,數據庫會(huì )自動(dòng)地完全恢復未完 成的事務(wù)。
二 事務(wù)與一致性 事務(wù)是完整性的單位,一個(gè)事務(wù)的執行是把數據庫從一個(gè)一 致的狀態(tài)轉換成另一個(gè)一致的狀態(tài)。因此,如果事務(wù)孤立執行時(shí) 是正確的,但如果多個(gè)事務(wù)并發(fā)交錯地執行,就可能相互干擾, 造成數據庫狀態(tài)的不一致。
在多用戶(hù)環(huán)境中,數據庫必須避免同 時(shí)進(jìn)行的查詢(xún)和更新發(fā)生沖突。這一點(diǎn)是很重要的,如果正在被 處理的數據能夠在該處理正在運行時(shí)被另一用戶(hù)的修改所改變, 那么該處理結果是不明確的。
不加控制的并發(fā)存取會(huì )產(chǎn)生以下幾種錯誤: 1 丟失修改(lost updates) 當多個(gè)事務(wù)并發(fā)修改一個(gè)數據時(shí),不加控制會(huì )得出錯誤的結 果,一個(gè)修改會(huì )覆蓋掉另一個(gè)修改。 2 讀的不可重復性 當多個(gè)事務(wù)按某種時(shí)間順序存取若干數據時(shí),如果對并發(fā)存 取不加控制,也會(huì )產(chǎn)生錯誤。
3 臟讀(DIRDY DATA),讀的不一致性 4 光標帶來(lái)的當前值的混亂 事務(wù)在執行過(guò)程中它在某個(gè)表上的當前查找位置是由光標表 示的。光標指向當前正處理的記錄。
當處理完該條記錄后,則指 向下一條記錄。在多個(gè)事務(wù)并發(fā)執行時(shí),某一事務(wù)的修改可能產(chǎn) 生負作用,使與這些光標有關(guān)的事務(wù)出錯。
5 未釋放修改造成連鎖退出 一個(gè)事務(wù)在進(jìn)行修改操作的過(guò)程中可能會(huì )發(fā)生故障,這時(shí)需 要將已做的修改回退(Rollback)。如果在已進(jìn)行過(guò)或已發(fā)現錯 誤尚未復原之前允許其它事務(wù)讀已做過(guò)修改(臟讀),則會(huì )導致 連鎖退出。
6 一事務(wù)在對一表更新時(shí),另外的事務(wù)卻修改或刪除此表的 定義。 數據庫會(huì )為每個(gè)事務(wù)自動(dòng)地設置適當級別的鎖定。
對于前面 講述的問(wèn)題:臟讀、未釋放修改造成的連鎖退出、一事務(wù)在對一 表更新時(shí)另外的事務(wù)卻修改或刪除此表的定義,數據庫都會(huì )自動(dòng) 解決。而另外的三個(gè)問(wèn)題則需要在編程過(guò)程中人為地定義事務(wù)或 加鎖來(lái)解決。
三 事務(wù)和恢復 數據庫本身肩負著(zhù)管理事務(wù)的責任。事務(wù)是最小的邏輯工作 單元,在這個(gè)工作單元中,對數據庫的所有更新工作,要么必須 全部成功,要么必須全部失敗(回退)。
只要應用程序指定了某 段程序為一個(gè)事務(wù)并做了相應的處理(提交或回退),數據庫系 統會(huì )自動(dòng)維護事務(wù)本身的特性。 四 ORACLE數據庫的事務(wù)定義 ORACLE事務(wù)從COMMIT、ROLLBACK、連接到數據庫或開(kāi)始第一 條可執行的SQL語(yǔ)句時(shí)開(kāi)始,到一條COMMIT、ROLLBACK語(yǔ)句或退出 數據庫時(shí)結束。
如果在一個(gè)事務(wù)中包含DDL語(yǔ)句,則在DDL語(yǔ)句的 前后都會(huì )隱含地執行COMMIT語(yǔ)句,從而開(kāi)始或結束一個(gè)事務(wù)。 如果一個(gè)事務(wù)由于某些故障或者由于用戶(hù)改變主意而必須在 提交前取消它,則數據庫被恢復到這些語(yǔ)句和過(guò)程執行之前的狀 態(tài)。
利用ROLLBACK語(yǔ)句可以在COMMIT命令前隨時(shí)撤消或回退一個(gè) 事務(wù)。可以回退整個(gè)事務(wù),也可以會(huì )退部分事務(wù),但是不能回退 一個(gè)已經(jīng)被提交的事務(wù)。
回退部分事務(wù)的ROLLBACK命令為: ROLLBACK to savepoint 存儲點(diǎn)名 存儲點(diǎn)是用戶(hù)放入事務(wù)中的標記,用來(lái)表示一個(gè)可被回退的 位置。存儲點(diǎn)通過(guò)在事務(wù)中放入一個(gè)SAVEPOINT命令而被插入。
該 命令的語(yǔ)法是: SAVEPOINT 存儲點(diǎn)名 如果在ROLLBACK語(yǔ)句中沒(méi)有給出存儲點(diǎn)名,則整個(gè)事務(wù)被回 退。 五 SYBASE數據庫的事務(wù)定義 SYBASE通過(guò)使用BEGIN TRANsaction和COMMIT TRANsaction命令指 示SQL將任意數目的語(yǔ)句作為一個(gè)單元來(lái)處理。
ROLLBACK TRANsaction 命令則允許用戶(hù)恢復到事務(wù)的開(kāi)始,或恢復到事務(wù)內部已經(jīng)被用SAVE TRANsaction命令定義的存儲點(diǎn)上。 BEGIN TRANsaction和COMMIT TRANsaction能夠包含任意數目的SQL 語(yǔ)句和存儲過(guò)程,方法很簡(jiǎn)單: BEGIN TRANsaction [事務(wù)名稱(chēng)] COMMIT TRANsaction 如果一個(gè)事務(wù)由于某些故障或者由于用戶(hù)改變主意而必須在提交 前取消它,則數據庫被恢復到這些語(yǔ)句和過(guò)程執行之前的狀態(tài)。
利用ROLLBACK TRANsaction命令可以在COMMIT TRANsaction命令 前隨時(shí)回退一個(gè)事務(wù)。可以回退整個(gè)事務(wù),也可以回退部分事務(wù),但 是不能回退一個(gè)已經(jīng)被提交的事務(wù)。
ROLLBACK TRANsaction命令為: ROLLBACK TRANsaction [事務(wù)名|存儲點(diǎn)名] 存儲點(diǎn)名是用戶(hù)放入事務(wù)中的標記,用來(lái)表示一個(gè)可以被回退的 位置。存儲點(diǎn)名通過(guò)在事務(wù)中放入一個(gè)SAVE TRANsaction命令而被插 入。
該命令的句法是: SAVE TRANsaction 存儲點(diǎn)名 如果在ROLLBACK TRANsaction中沒(méi)有給出存儲點(diǎn)名或事務(wù)名,則 事務(wù)被回退到批處理中的第一個(gè)BEGIN TRANsaction語(yǔ)句處。
第一章 數據庫基礎知識本章以概念為主,主要是了解數據庫的基本概念,數據庫技術(shù)的發(fā)展,數據模型,重點(diǎn)是關(guān)系型數據。
第一節:信息,數據與數據處理一、信息與數據:1、信息:是現實(shí)世界事物的存在方式或運動(dòng)狀態(tài)的反映。或認為,信息是一種已經(jīng)被加工為特定形式的數據。
信息的主要特征是:信息的傳遞需要物質(zhì)載體,信息的獲取和傳遞要消費能量;信息可以感知;信息可以存儲、壓縮、加工、傳遞、共享、擴散、再生和增值2、數據:數據是信息的載體和具體表現形式,信息不隨著(zhù)數據形式的變化而變化。數據有文字、數字、圖形、聲音等表現形式。
3、數據與信息的關(guān)系:一般情況下將數據與信息作為一個(gè)概念而不加區分。二、數據處理與數據管理技術(shù):1、數據處理:數據處理是對各種形式的數據進(jìn)行收集、存儲、加工和傳輸等活動(dòng)的總稱(chēng)。
2、數據管理:數據收集、分類(lèi)、組織、編碼、存儲、檢索、傳輸和維護等環(huán)節是數據處理的基本操作,稱(chēng)為數據管理。數據管理是數據處理的核心問(wèn)題。
3、數據庫技術(shù)所研究的問(wèn)題不是如何科學(xué)的進(jìn)行數據管理。4、數據管理技術(shù)的三個(gè)階段:人工管理,文件管理和數據庫系統。
第二節:數據庫技術(shù)的發(fā)展一、數據庫的發(fā)展:數據庫的發(fā)展經(jīng)歷了三個(gè)階段:1、層次型和網(wǎng)狀型: 代表產(chǎn)品是1969年IBM公司研制的層次模型數據庫管理系統IMS。2、關(guān)系型數據型庫: 目前大部分數據庫采用的是關(guān)系型數據庫。
1970年IBM公司的研究員E.F.Codd提出了關(guān)系模型。其代表產(chǎn)品為sysem R和Inges。
3、第三代數據庫將為更加豐富的數據模型和更強大的數據管理功能為特征,以提供傳統數據庫系統難以支持的新應用。它必須支持面向對象,具有開(kāi)放性,能夠在多個(gè)平臺上使用。
二、數據庫技術(shù)的發(fā)展趨勢:1、面向對象的方法和技術(shù)對數據庫發(fā)展的影響:數據庫研究人員借鑒和吸收了面向對旬的方法和技術(shù),提出了面向對象數據模型。2、數據庫技術(shù)與多學(xué)科技術(shù)的有機組合:3、面向專(zhuān)門(mén)應用領(lǐng)域的數據庫技術(shù)三、數據庫系統的組成:數據庫系統(DBS)是一個(gè)采用數據庫技術(shù),具有管理數據庫功能,由硬件、軟件、數據庫及各類(lèi)人員組成的計算機系統。
1、數據庫(DB):數據庫是以一定的組織方式存放于計算機外存儲器中相互關(guān)聯(lián)的數據集合,它是數據庫系統的核心和管理對象,其數據是集成的、共享的以及冗余最小的。2、數據庫管理系統(DBMS):數據庫管理系統是維護和管理數據庫的軟件,是數據庫與用戶(hù)之間的界面。
作為數據庫的核心軟件,提供建立、操作、維護數據庫的命令和方法。3、應用程序:對數據庫中數據進(jìn)行各種處理的程序,由用戶(hù)編寫(xiě)。
4、計算機軟件:5、計算機硬件:包括CPU、內存、磁盤(pán)等。要求有足夠大的內存來(lái)存放操作系統、數據庫管理系統的核心模塊以及數據庫緩沖;足夠大的磁盤(pán)能夠直接存取和備份數據;比較主的通道能力;支持聯(lián)網(wǎng),實(shí)現數據共享。
6、各類(lèi)人員。四、數據庫系統的特點(diǎn):1、數據共享:2、面向全組織的數據結構化:數據不再從屬于一個(gè)特定應用,而是按照某種模型組織成為一個(gè)結構化的整。
它描述數據要身的特性,也描述數據與數據之間的種種聯(lián)系。3、數據獨立性:4、可控數據冗余度:5、統一數據控制功能:數據安全性控制:指采取一定的安全保密措施確保數據庫中的數據不被非法用戶(hù)存取而造成數據的泄密和破壞;數據完整性控制:是指數據的正確性、有效性與相容性。
并發(fā)控制:多個(gè)用戶(hù)對數據進(jìn)行存取時(shí),采取必要的措施進(jìn)行數據保護;數據恢復:系統能進(jìn)行應急處理,把數據恢復到正確狀態(tài)。第三節:數據模型一、數據組織:關(guān)系型數據庫中的數據層次如下:1、數據項(field):又稱(chēng)字段,用于描述實(shí)體的一個(gè)屬性,是數據庫的基本單位。
一般用屬性名作項名;2、記錄(Record):又稱(chēng)為結點(diǎn),由若干個(gè)數據項組成,用于描述一個(gè)對象;3、文件(File):由若干個(gè)記錄組成;4、數據庫(Data Base):由邏輯相關(guān)的文件組成。二、數據模型:數據的組織形式稱(chēng)為數據模型,它決定 數據(主要是結點(diǎn))之間聯(lián)系的表達方式。
主要包括層次型、網(wǎng)狀型、關(guān)系型和面向對象型四種。層次型和網(wǎng)狀型是早期的數據模型,又稱(chēng)為格式化數據系統數模型。
以上四種模型決定了四種類(lèi)型的數據庫:層次數據庫系統,網(wǎng)狀數據庫系統,關(guān)系型數據庫系統以及面向對象數據庫系統。目前微機上使用的主要是關(guān)系型數據庫。
1、層次型:是以記錄為結點(diǎn)的有向樹(shù);圖如教材P7圖1--22、網(wǎng)狀型:樹(shù)的集合,它的表示能力以及精巧懷強于層次型,但獨立性下降。3、關(guān)系型:在關(guān)系型中,數據被組織成若干張二維表,每張表稱(chēng)為一個(gè)關(guān)系。
一張表格中的一列稱(chēng)為一個(gè)“屬性”,相當于記錄中的一個(gè)數據項(或稱(chēng)為字段),屬性的取值范圍稱(chēng)為域。表格中的一行稱(chēng)為一個(gè)“元組”,相當于記錄值。
可用一個(gè)或若干個(gè)屬性集合的值標識這些元組,稱(chēng)為“關(guān)鍵字”。每一行對應的屬性值叫做一個(gè)分量。
表格的框架相當于記錄型,一個(gè)表格數據相當于一個(gè)同質(zhì)文件。所有關(guān)系由關(guān)系的框架和若干元組構成,或者說(shuō)關(guān)系是一張二維表。
關(guān)系型。
1)select b.name from book as a ,student as b where a.title like '數據庫原理';2)select a.sid form student as a, lend as b,return as c where (b.sid = a.sid or c.sid = a.sid )and ldate = rdate;3)select distinct (t.title)書(shū)名,(select(max(a.price) from book as a)價(jià)格 from book as t。
1第一章習題參考答案1.選擇題(1)數據庫(DB)、數據庫系統(DBS)、數據庫管理系統(DBMS)三者之間的關(guān)系是(A)。
A.DBS包括DB和DBMSB.DBMS包括DB和DBSC.DB包括DBS和DBMSD.DBS就是DB,也就是DBMS(2)設有部門(mén)和職員兩個(gè)實(shí)體,每個(gè)職員只能屬于一個(gè)部門(mén),一個(gè)部門(mén)可以有多名職員,則部門(mén)與職員實(shí)體之間的聯(lián)系類(lèi)型是(B)。A.m:nB.1:mC.m:kD.1:1(3)對于“關(guān)系”的描述,正確的是(D)。
A.同一個(gè)關(guān)系中允許有完全相同的元組B.同一個(gè)關(guān)系中元組必須按關(guān)鍵字升序存放C.在一個(gè)關(guān)系中必須將關(guān)鍵字作為該關(guān)系的第一個(gè)屬性D.同一個(gè)關(guān)系中不能出現相同的屬性名(4)E-R圖用于描述數據庫的(A)。A.概念模型B.數據模型C.存儲模型D.邏輯模型(5)在關(guān)系模型中,一個(gè)關(guān)鍵字(C)。
A.可以由多個(gè)任意屬性組成B.至多由一個(gè)屬性組成C.可以由一個(gè)或者多個(gè)其值能夠唯一表示該關(guān)系模式中任何元組的屬性組成D.可以由一個(gè)或者多個(gè)任意屬性組成(6)現有如下關(guān)系:患者(患者編號,患者姓名,性別,出生日期,單位)醫療(患者編號,患者姓名,醫生編號,醫生姓名,診斷日期,診斷結果)其中,醫療關(guān)系中的外關(guān)鍵字是(A)。A.患者編號B.患者姓名C.患者編號和患者姓名D.醫生編號和患者編號(7)一個(gè)關(guān)系只有一個(gè)(D)。
A.候選關(guān)鍵字B.外部關(guān)鍵字C.組合關(guān)鍵字D.主關(guān)鍵字(8)下列標識符可以作為局部變量使用的是(C)。A.[@Myvar]B.MyvarC.@MyvarD.@Myvar(9)Transact-SQL支持的一種程序結構語(yǔ)句是(A)。
A.BEGIN…ENDB.IF…THEN…ELSEC.DOCASED.DOWHILE(10)字符串常量使用(A)作為定界符。A.單引號B.雙引號C.方括號D.花括號2.填空題(1)數據庫是在計算機系統中按照一定的方式組織、存儲和應用的(數據集合)。
支持數據庫各種操作的軟件系統叫(數據庫管理系統)。由計算機、操作系統、DBMS、數據庫、應用程序及有關(guān)人員等組成的一個(gè)整體叫(數據庫系統)。
/link?url=_dRWH0N-TOwjiDuRWTF_DqdRZBjChyQK8LPxW 93x0vGixEdWYK。
樓主說(shuō)的E-R模型和關(guān)系模型是指什么?
我沒(méi)讀過(guò)書(shū),都是實(shí)踐里學(xué)的。
總之,有這么一下幾種結構,
第一:書(shū)一個(gè)表,主鍵-書(shū)號;讀者一個(gè)表;主鍵-讀者編號,另外建一個(gè)表,用來(lái)保存借書(shū)記錄,主鍵RecId uniqueidentifier類(lèi)型。
關(guān)鍵就在第三個(gè)表上,字段有RecId,讀者編號,書(shū)號,借書(shū)時(shí)間,還書(shū)時(shí)間。。。
也就是說(shuō)這實(shí)際上是一個(gè)借書(shū)還書(shū)的表。
那么最清晰的結構就是這個(gè)了,如果非要改,也就是把第三個(gè)表合并到前兩個(gè)表中的一個(gè)。
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:4.136秒