Oracle數(shù)據(jù)庫Oracle存儲(chǔ)結(jié)構(gòu)、Oracle運(yùn)行機(jī)制、日期相關(guān)的函數(shù)、序列、大對_第1頁
Oracle數(shù)據(jù)庫Oracle存儲(chǔ)結(jié)構(gòu)、Oracle運(yùn)行機(jī)制、日期相關(guān)的函數(shù)、序列、大對_第2頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、OracleOracleOracle運(yùn)機(jī)制、期相關(guān)的函數(shù)、序列、對。僅僅只是閱讀瀏覽博客內(nèi)容學(xué)習(xí)Oracle這種式不,更重要的是敲代碼,推薦博客中代碼建議閱讀本博客的去動(dòng)的敲下代碼!推薦博客:Oracle在了解Oracle物理存儲(chǔ)結(jié)構(gòu)之前,先了解些表空間和數(shù)據(jù)庫的結(jié)構(gòu)組成。表空間是個(gè)數(shù)據(jù)庫被分成若個(gè)邏輯單元,每個(gè)邏輯單元稱為表空間,在關(guān)系型數(shù)據(jù)庫中,所有的數(shù)據(jù)都是放在表中,表放在表空間中。數(shù)據(jù)庫在物理上是有若個(gè)件組成,邏輯上,由若個(gè)表空間組成,表物理上是放在數(shù)據(jù)件中的,邏輯上放在表空間上的。Oracle的存儲(chǔ)結(jié)構(gòu)分別介紹物理存儲(chǔ)結(jié)構(gòu)和邏輯存儲(chǔ)結(jié)構(gòu)。數(shù)據(jù)庫的物理存儲(chǔ)結(jié)構(gòu):包括些件,其中件主要由下

2、三種件組成:數(shù)據(jù)件(*.dbf DatabaseFiles):存放數(shù)據(jù),存放表(Segment段)控制件(*.ctlControl):數(shù)據(jù)庫物理結(jié)構(gòu)的倉庫,于存放數(shù)據(jù)庫物理結(jié)構(gòu)信息。轉(zhuǎn)儲(chǔ):alter database backup controlfile to trace(轉(zhuǎn)儲(chǔ)的的是為了打開上述種后綴名件的時(shí)候,找不到合適的件編譯器,所以利轉(zhuǎn)儲(chǔ)將件轉(zhuǎn)為能打開的格式。)重做志件(*.log):存放每次堆數(shù)據(jù)庫的改變數(shù)據(jù)庫的邏輯結(jié)構(gòu)表空間,表的容器,由若個(gè)段組成,每個(gè)段對應(yīng)個(gè)表,存放表數(shù)據(jù),由若個(gè)區(qū)組成,每個(gè)區(qū)為個(gè)表中的,是塊連續(xù)的存儲(chǔ)空間,由若個(gè)塊組成,其中塊是表中的列,Oracle中最的存儲(chǔ)單

3、位。關(guān)于段分為:數(shù)據(jù)段和回滾段;其中數(shù)據(jù)段于存放普通的表的數(shù)據(jù)(createtable 創(chuàng)建出來的表就是普通表)創(chuàng)建表的實(shí)質(zhì)就是創(chuàng)建數(shù)據(jù)段。回滾段是于存放回滾數(shù)據(jù),回滾數(shù)據(jù)是修改前的數(shù)據(jù),即原數(shù)據(jù)。Oracle先來張Oracle數(shù)據(jù)庫中寫數(shù)據(jù)的運(yùn)過程:在Oracle中存在實(shí)例這個(gè)概念,實(shí)例由系列為當(dāng)前數(shù)據(jù)庫提供服務(wù)的內(nèi)存和后臺(tái)進(jìn)程,內(nèi)存和服務(wù)進(jìn)程的集合成為個(gè)實(shí)例。數(shù)據(jù)庫速緩沖區(qū)(Database Buffer Cache)于存放從數(shù)據(jù)件中讀取的數(shù)據(jù),Oracle查數(shù)據(jù)時(shí),先從速緩沖區(qū)中查找數(shù)據(jù),如果找到了,直接取出來,如果沒找到,則從磁盤數(shù)據(jù)件中取,然后放到速緩沖區(qū)。Oracle修改數(shù)據(jù)時(shí),先

4、查,放到速緩沖區(qū)中,然后修改速緩沖區(qū)數(shù)據(jù)。關(guān)于這個(gè)操作中,存在兩個(gè)件,(1)是誰把修改的數(shù)據(jù)寫硬盤數(shù)據(jù)件中的?(2)什么時(shí)候執(zhí)把修改的數(shù)據(jù)寫硬盤數(shù)據(jù)件中?問題(1)、DBWnDarabase Writer Process(這個(gè)進(jìn)程可以有多個(gè),即DBW0,DBW1,DBW2)(數(shù)據(jù)庫書寫進(jìn)程,負(fù)責(zé)把數(shù)據(jù)庫速緩沖區(qū)中的數(shù)據(jù)書寫到磁盤數(shù)據(jù)件中)問題(2)、先介紹個(gè)概念:臟緩沖器(原先緩沖器中的數(shù)據(jù)被改變了),冷緩沖器(最近最少使的緩沖器),臟數(shù)據(jù)(內(nèi)存中改變后的數(shù)據(jù),與數(shù)據(jù)庫存儲(chǔ)的不致數(shù)據(jù))。當(dāng)緩沖器臟冷時(shí),將臟冷緩沖器寫數(shù)據(jù)件中。緩沖器會(huì)重新變得凈(意味著可重新3往該緩沖器內(nèi)存放數(shù)據(jù))。當(dāng)緩沖器不

5、夠時(shí),關(guān)于緩沖區(qū)的分配和清空策略,請?jiān)僦匦虏檎屹Y料。注意點(diǎn):事務(wù)提交了,被修改的數(shù)據(jù)不定要被寫數(shù)據(jù)件中。事務(wù)沒提交,但被修改數(shù)據(jù)已經(jīng)寫數(shù)據(jù)件。這兩種情況都有可能發(fā),具有不確定性。重做志緩沖器Redo Log Buffer(于存放堆數(shù)據(jù)庫的修改)問題(1):誰把修改的志寫重做志中?問題(2):什么時(shí)候?qū)⑿薷牡闹緦懼刈鲋局??問題(1)、LGWr-Log Writer Process(志書寫進(jìn)程,負(fù)責(zé)把志緩沖區(qū)中的內(nèi)容書寫到重做志件中)問題(2)、當(dāng)提交事務(wù)時(shí)、每隔3秒、志緩沖區(qū)滿1/3、DBWr將修改的數(shù)據(jù)寫到磁盤數(shù)據(jù)件中時(shí),志書寫進(jìn)程就會(huì)執(zhí)。重做志件中,有個(gè)標(biāo)志,于表操作屬于哪個(gè)事務(wù),事務(wù)有沒有

6、提交。Oracle符合Oracle默認(rèn)顯期格式(dd-mon-yy)的字符串可以動(dòng)轉(zhuǎn)換為date類型,返回服務(wù)器當(dāng)前時(shí)間和期。sysdate返回datesystimestamp返回timestamp(1)to_char(date,format)將期轉(zhuǎn)換為格式化的字符串miss(2)to_date(str, format)將個(gè)期的字符串轉(zhuǎn)換成默認(rèn)顯的期格式的數(shù)據(jù)formatto_char()函數(shù)。Sequence )序列是Oracle對象,于成連續(xù)的證書,Oracle沒有增長的類型,所以需要到序列來實(shí)現(xiàn)增長。創(chuàng)建序列的語法:start with num(,1,-1)increment by nu

7、m(1)maxvalue num | nomaxvalueminvalue num | nominvaluecycle | nocyclecache num | nocachemaxvalue numcurrval 于獲取序列的當(dāng)前值currvalnextval*blob Binary Large Object進(jìn)制對象,保存進(jìn)制數(shù)據(jù),數(shù)據(jù)的插操作依賴于編程語11g:128T1、表的些常見修改:添加新的列定義alter table 表名add(列名,.;修改列的類型alter table 表名modify(列名,.);重命名列名drop table 表名cascade contraint;cas

8、cade contraint 級聯(lián)刪除外鍵約束,不刪列復(fù)制表:根據(jù)查詢結(jié)果創(chuàng)建個(gè)表create table 表名as select;根據(jù)查詢結(jié)果,往指定表中插數(shù)據(jù)insert into 表名select;2、表的約束約束某個(gè)字段能保存什么樣的數(shù)據(jù)。列級約束:在定義列的同時(shí)指定約束,constraint 約束名約束內(nèi)容表級約束:在列定義完后,再指定的約束,constraint 約束名約束內(nèi)容(制定列)常見約束:主鍵約束primary keyprimary key(列名)外鍵約束references 表名(列名) mysql中不起作foreign key (當(dāng)前表列名)references /;唯

9、約束:uniquenot null表級:mysql不持檢查約束,約束不起作check(條件)check(條件)修改約束not null 列級alter table 表名add check;添加外鍵約束 表級alter table 表名add constraint foreign key (當(dāng)前表列名)references /;刪除約束alter table 表名drop constraint ;外鍵約束foreign key on delete cascadeforeign key(列名)references 表名(列名)on delete cascadeon delete cascade 刪

10、除主表記錄時(shí),級聯(lián)刪除所有關(guān)聯(lián)的表記錄七、事務(wù)事務(wù):組不可分的操作,由若個(gè)次操作組成(例如轉(zhuǎn)賬操作),這些操作要么同時(shí)成功,要么同時(shí)失敗,事務(wù)的特性:ACID,原性 Atomicity致性 Consistency隔離性 Isolation永久性 Durability事務(wù)常見操作:提交事務(wù)commit;回滾事務(wù)rollback; commit后狀態(tài)rollback to ;如果沒有被事務(wù)操作,先內(nèi)存后數(shù)據(jù)件回滾段Undo Segment ,于存放回滾數(shù)據(jù)Undo Dataundoxxx.dbf個(gè)事務(wù)開啟,系統(tǒng)會(huì)為他分配對應(yīng)的回滾段,事務(wù)提交或回滾后動(dòng)釋放Oracle事務(wù)控制:oracleoracle認(rèn)為個(gè)事務(wù)結(jié)束:1commit;2rollback;3greaedropaltercommit;如果操作失敗,那么表系統(tǒng)rollback;4grantrevoke

溫馨提示

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

最新文檔

評論

0/150

提交評論