一般數(shù)據(jù)庫(kù)工程師的主要工作包括:數(shù)據(jù)備份;數(shù)據(jù)庫(kù)日常維護(hù);數(shù)據(jù)結(jié)構(gòu)方面的設(shè)計(jì);SQL調(diào)優(yōu);解決由于數(shù)據(jù)庫(kù)操作所造成的系統(tǒng)性能問(wèn)題;給開(kāi)發(fā)人員開(kāi)展一些數(shù)據(jù)庫(kù)方面的培訓(xùn)。那么成為一名合格的數(shù)據(jù)庫(kù)工程師需掌握哪些知識(shí)技能呢?
一、數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)分析及規(guī)劃:1.軟件工程與軟件生命周期。 2.數(shù)據(jù)庫(kù)系統(tǒng)生命周期。 3.數(shù)據(jù)庫(kù)開(kāi)發(fā)方法與工具。 4.數(shù)據(jù)庫(kù)應(yīng)用體系結(jié)構(gòu)。 5.數(shù)據(jù)庫(kù)應(yīng)用接口。
二、數(shù)據(jù)庫(kù)設(shè)計(jì)及實(shí)現(xiàn): 1.概念設(shè)計(jì)。 2.邏輯設(shè)計(jì)。 3.物理設(shè)計(jì)。 4.數(shù)據(jù)庫(kù)對(duì)象實(shí)現(xiàn)及操作。
三、數(shù)據(jù)庫(kù)存儲(chǔ)技術(shù):1.存儲(chǔ)與文件結(jié)構(gòu)。 2. 索引技術(shù)。
四、并發(fā)控制技術(shù):1.事務(wù)管理。 2.并發(fā)控制技術(shù)。3.死鎖處理。
五、數(shù)據(jù)庫(kù)管理與維護(hù):1、數(shù)據(jù)完整性。 2、數(shù)據(jù)庫(kù)安全性。 3、數(shù)據(jù)庫(kù)可靠性。 4、監(jiān)控分析。 5、參數(shù)調(diào)整。 6、查詢(xún)優(yōu)化。 7、空間管理。
六、數(shù)據(jù)庫(kù)技術(shù)的發(fā)展與新技術(shù):1、分布式數(shù)據(jù)庫(kù)。 2、對(duì)象數(shù)據(jù)庫(kù)。 3、并行數(shù)據(jù)庫(kù)。 4、數(shù)據(jù)倉(cāng)庫(kù)與數(shù)據(jù)挖掘。
目前主流的數(shù)據(jù)庫(kù)無(wú)論規(guī)模如何,例如Access(這個(gè)現(xiàn)在基本沒(méi)人用),MySQL,Microsoft Server SQL,還是大規(guī)模的Oracle,都是關(guān)系數(shù)據(jù)庫(kù),我這么說(shuō)很抽象,你可能不知道什么是關(guān)系數(shù)據(jù)庫(kù),所以你應(yīng)該先學(xué)習(xí)數(shù)據(jù)庫(kù)系統(tǒng)概論,明白其存在的意義,了解其在計(jì)算機(jī)系統(tǒng)當(dāng)中的地位,然后再進(jìn)行進(jìn)一步探究,前沿基礎(chǔ)課我想應(yīng)該是離散數(shù)學(xué)。
因?yàn)樯婕瓣P(guān)系演算,關(guān)系代數(shù),以及一系列抽象概念都和離散數(shù)學(xué)有關(guān)聯(lián),將來(lái)進(jìn)行高效率的嵌套查詢(xún)、修改、刪除、增添數(shù)據(jù),都是涉及這些內(nèi)容,不過(guò)要是面向小型的開(kāi)發(fā),效率也無(wú)關(guān)緊要,可以使用一些可視化的軟件建立維護(hù)數(shù)據(jù)庫(kù),但是使用的過(guò)程中難免會(huì)遇到不理解的問(wèn)題,如實(shí)體完整性約束、表的主碼、外碼確立,安全性考慮、范式理論,都比較難以理解,所以還是建議先從離散數(shù)學(xué)看起,然后再看數(shù)據(jù)庫(kù)系統(tǒng)概論類(lèi)的書(shū)籍,然后選擇一款規(guī)模較小的如MySQL進(jìn)行SQL語(yǔ)言的實(shí)踐,再往后就是數(shù)據(jù)庫(kù)與軟件或網(wǎng)絡(luò)如J2EE技術(shù)之間的關(guān)聯(lián),還要面對(duì)諸多問(wèn)題,總之走一步算一步,步步為營(yíng),急不來(lái),祝學(xué)習(xí)成功~! 如果對(duì)您有幫助,請(qǐng)記得采納為滿意答案,謝謝!祝您生活愉快! Vae團(tuán)隊(duì)招人?。。g迎各位加入?。?!走過(guò)路過(guò)不要錯(cuò)過(guò)?。。⊙该桶l(fā)展中??!。
一 事務(wù)處理介紹 事務(wù)是這樣一種機(jī)制,它確保多個(gè)SQL語(yǔ)句被當(dāng)作單個(gè)工作單 元來(lái)處理。
事務(wù)具有以下的作用: * 一致性:同時(shí)進(jìn)行的查詢(xún)和更新彼此不會(huì)發(fā)生沖突,其他 用戶不會(huì)看到發(fā)生了變化但尚未提交的數(shù)據(jù)。 * 可恢復(fù)性:一旦系統(tǒng)故障,數(shù)據(jù)庫(kù)會(huì)自動(dòng)地完全恢復(fù)未完 成的事務(wù)。
二 事務(wù)與一致性 事務(wù)是完整性的單位,一個(gè)事務(wù)的執(zhí)行是把數(shù)據(jù)庫(kù)從一個(gè)一 致的狀態(tài)轉(zhuǎn)換成另一個(gè)一致的狀態(tài)。因此,如果事務(wù)孤立執(zhí)行時(shí) 是正確的,但如果多個(gè)事務(wù)并發(fā)交錯(cuò)地執(zhí)行,就可能相互干擾, 造成數(shù)據(jù)庫(kù)狀態(tài)的不一致。
在多用戶環(huán)境中,數(shù)據(jù)庫(kù)必須避免同 時(shí)進(jìn)行的查詢(xún)和更新發(fā)生沖突。這一點(diǎn)是很重要的,如果正在被 處理的數(shù)據(jù)能夠在該處理正在運(yùn)行時(shí)被另一用戶的修改所改變, 那么該處理結(jié)果是不明確的。
不加控制的并發(fā)存取會(huì)產(chǎn)生以下幾種錯(cuò)誤: 1 丟失修改(lost updates) 當(dāng)多個(gè)事務(wù)并發(fā)修改一個(gè)數(shù)據(jù)時(shí),不加控制會(huì)得出錯(cuò)誤的結(jié) 果,一個(gè)修改會(huì)覆蓋掉另一個(gè)修改。 2 讀的不可重復(fù)性 當(dāng)多個(gè)事務(wù)按某種時(shí)間順序存取若干數(shù)據(jù)時(shí),如果對(duì)并發(fā)存 取不加控制,也會(huì)產(chǎn)生錯(cuò)誤。
3 臟讀(DIRDY DATA),讀的不一致性 4 光標(biāo)帶來(lái)的當(dāng)前值的混亂 事務(wù)在執(zhí)行過(guò)程中它在某個(gè)表上的當(dāng)前查找位置是由光標(biāo)表 示的。光標(biāo)指向當(dāng)前正處理的記錄。
當(dāng)處理完該條記錄后,則指 向下一條記錄。在多個(gè)事務(wù)并發(fā)執(zhí)行時(shí),某一事務(wù)的修改可能產(chǎn) 生負(fù)作用,使與這些光標(biāo)有關(guān)的事務(wù)出錯(cuò)。
5 未釋放修改造成連鎖退出 一個(gè)事務(wù)在進(jìn)行修改操作的過(guò)程中可能會(huì)發(fā)生故障,這時(shí)需 要將已做的修改回退(Rollback)。如果在已進(jìn)行過(guò)或已發(fā)現(xiàn)錯(cuò) 誤尚未復(fù)原之前允許其它事務(wù)讀已做過(guò)修改(臟讀),則會(huì)導(dǎo)致 連鎖退出。
6 一事務(wù)在對(duì)一表更新時(shí),另外的事務(wù)卻修改或刪除此表的 定義。 數(shù)據(jù)庫(kù)會(huì)為每個(gè)事務(wù)自動(dòng)地設(shè)置適當(dāng)級(jí)別的鎖定。
對(duì)于前面 講述的問(wèn)題:臟讀、未釋放修改造成的連鎖退出、一事務(wù)在對(duì)一 表更新時(shí)另外的事務(wù)卻修改或刪除此表的定義,數(shù)據(jù)庫(kù)都會(huì)自動(dòng) 解決。而另外的三個(gè)問(wèn)題則需要在編程過(guò)程中人為地定義事務(wù)或 加鎖來(lái)解決。
三 事務(wù)和恢復(fù) 數(shù)據(jù)庫(kù)本身肩負(fù)著管理事務(wù)的責(zé)任。事務(wù)是最小的邏輯工作 單元,在這個(gè)工作單元中,對(duì)數(shù)據(jù)庫(kù)的所有更新工作,要么必須 全部成功,要么必須全部失?。ɑ赝耍?。
只要應(yīng)用程序指定了某 段程序?yàn)橐粋€(gè)事務(wù)并做了相應(yīng)的處理(提交或回退),數(shù)據(jù)庫(kù)系 統(tǒng)會(huì)自動(dòng)維護(hù)事務(wù)本身的特性。 四 ORACLE數(shù)據(jù)庫(kù)的事務(wù)定義 ORACLE事務(wù)從COMMIT、ROLLBACK、連接到數(shù)據(jù)庫(kù)或開(kāi)始第一 條可執(zhí)行的SQL語(yǔ)句時(shí)開(kāi)始,到一條COMMIT、ROLLBACK語(yǔ)句或退出 數(shù)據(jù)庫(kù)時(shí)結(jié)束。
如果在一個(gè)事務(wù)中包含DDL語(yǔ)句,則在DDL語(yǔ)句的 前后都會(huì)隱含地執(zhí)行COMMIT語(yǔ)句,從而開(kāi)始或結(jié)束一個(gè)事務(wù)。 如果一個(gè)事務(wù)由于某些故障或者由于用戶改變主意而必須在 提交前取消它,則數(shù)據(jù)庫(kù)被恢復(fù)到這些語(yǔ)句和過(guò)程執(zhí)行之前的狀 態(tài)。
利用ROLLBACK語(yǔ)句可以在COMMIT命令前隨時(shí)撤消或回退一個(gè) 事務(wù)??梢曰赝苏麄€(gè)事務(wù),也可以會(huì)退部分事務(wù),但是不能回退 一個(gè)已經(jīng)被提交的事務(wù)。
回退部分事務(wù)的ROLLBACK命令為: ROLLBACK to savepoint 存儲(chǔ)點(diǎn)名 存儲(chǔ)點(diǎn)是用戶放入事務(wù)中的標(biāo)記,用來(lái)表示一個(gè)可被回退的 位置。存儲(chǔ)點(diǎn)通過(guò)在事務(wù)中放入一個(gè)SAVEPOINT命令而被插入。
該 命令的語(yǔ)法是: SAVEPOINT 存儲(chǔ)點(diǎn)名 如果在ROLLBACK語(yǔ)句中沒(méi)有給出存儲(chǔ)點(diǎn)名,則整個(gè)事務(wù)被回 退。 五 SYBASE數(shù)據(jù)庫(kù)的事務(wù)定義 SYBASE通過(guò)使用BEGIN TRANsaction和COMMIT TRANsaction命令指 示SQL將任意數(shù)目的語(yǔ)句作為一個(gè)單元來(lái)處理。
ROLLBACK TRANsaction 命令則允許用戶恢復(fù)到事務(wù)的開(kāi)始,或恢復(fù)到事務(wù)內(nèi)部已經(jīng)被用SAVE TRANsaction命令定義的存儲(chǔ)點(diǎn)上。 BEGIN TRANsaction和COMMIT TRANsaction能夠包含任意數(shù)目的SQL 語(yǔ)句和存儲(chǔ)過(guò)程,方法很簡(jiǎn)單: BEGIN TRANsaction [事務(wù)名稱(chēng)] COMMIT TRANsaction 如果一個(gè)事務(wù)由于某些故障或者由于用戶改變主意而必須在提交 前取消它,則數(shù)據(jù)庫(kù)被恢復(fù)到這些語(yǔ)句和過(guò)程執(zhí)行之前的狀態(tài)。
利用ROLLBACK TRANsaction命令可以在COMMIT TRANsaction命令 前隨時(shí)回退一個(gè)事務(wù)。可以回退整個(gè)事務(wù),也可以回退部分事務(wù),但 是不能回退一個(gè)已經(jīng)被提交的事務(wù)。
ROLLBACK TRANsaction命令為: ROLLBACK TRANsaction [事務(wù)名|存儲(chǔ)點(diǎn)名] 存儲(chǔ)點(diǎn)名是用戶放入事務(wù)中的標(biāo)記,用來(lái)表示一個(gè)可以被回退的 位置。存儲(chǔ)點(diǎn)名通過(guò)在事務(wù)中放入一個(gè)SAVE TRANsaction命令而被插 入。
該命令的句法是: SAVE TRANsaction 存儲(chǔ)點(diǎn)名 如果在ROLLBACK TRANsaction中沒(méi)有給出存儲(chǔ)點(diǎn)名或事務(wù)名,則 事務(wù)被回退到批處理中的第一個(gè)BEGIN TRANsaction語(yǔ)句處。
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥(niǎo). 頁(yè)面生成時(shí)間:2.703秒