乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      第七章 數(shù)據(jù)字典

       月影斜 2010-05-08

       Oracle 概念(Oracle 10.2) 第七章 數(shù)據(jù)字典

      7、數(shù)據(jù)字典

      這一章描述了每個(gè)Oracle數(shù)據(jù)庫核心引用的只讀表,它們的總稱叫數(shù)據(jù)字典(data dictionary)。

      這一章包含下列主題:

      數(shù)據(jù)字典介紹

      如何使用數(shù)據(jù)字典

      動(dòng)態(tài)性能表

      數(shù)據(jù)庫對象元數(shù)據(jù)

      數(shù)據(jù)字典介紹

      Oracle數(shù)據(jù)庫的最重要的一個(gè)部分就是它的數(shù)據(jù)字典,它們是一些只讀的表集合,提供數(shù)據(jù)庫的信息。一個(gè)數(shù)據(jù)字典包含:

      數(shù)據(jù)庫中所有模式對象的定義(表、視圖、索引、聚集、同義詞、序列、過程、函數(shù)、包、觸發(fā)器等等)

      模式對象被分配了多少空間,當(dāng)前使用了多少

      列默認(rèn)值

      完整性約束信息

      Oracle用戶名

      每個(gè)用戶被賦予的權(quán)限和角色

      審核信息,例如誰有權(quán)限訪問或者更新不同的模式對象

      其他數(shù)據(jù)庫通用信息

      和其他數(shù)據(jù)庫數(shù)據(jù)一樣,數(shù)據(jù)字典以表和視圖的方式存在。給定數(shù)據(jù)庫的所有數(shù)據(jù)字典表和視圖都保存在數(shù)據(jù)庫的SYSTEM表空間。

      數(shù)據(jù)字典不僅僅是Oracle數(shù)據(jù)庫的核心部分,還是從最終用戶到應(yīng)用程序設(shè)計(jì)人員和數(shù)據(jù)庫管理員所有用戶的一個(gè)重要工具。使用SQL語句可以訪問數(shù)據(jù)字典。因?yàn)閿?shù)據(jù)字典是只讀的,你只能對它的表或視圖執(zhí)行查詢(SELECT語句)。

      數(shù)據(jù)字典結(jié)構(gòu)

      數(shù)據(jù)字典包含下列內(nèi)容:

      基表

      這些底層表保存相關(guān)數(shù)據(jù)庫的信息。只有Oracle可以讀寫這些表。用戶很少直接訪問它們,因?yàn)樗鼈兪菢?biāo)準(zhǔn)化的,而且大部分?jǐn)?shù)據(jù)都以加密的格式保存。

      用戶可訪問視圖

      這些視圖匯總和顯示保存在數(shù)據(jù)字典基表中的信息。這些表將基表轉(zhuǎn)換為有用的信息,比如用戶或表名、使用連接和WHERE子句來簡化信息。大部分用戶都只被賦予了這些視圖的訪問,而不是直接訪問基表。

      SYS,數(shù)據(jù)字典的擁有者

      Oracle用戶SYS擁有所有的數(shù)據(jù)字典基表和用戶可訪問表。沒有Oracle用戶能夠更新(UPDATE,DELET,INSERT)SYS模式包含的模式對象或任意行,因?yàn)槟菢拥牟僮鲿?huì)破壞數(shù)據(jù)完整性。安全管理員必須嚴(yán)格控制這個(gè)中心賬號。

      注意:修改或者操作數(shù)據(jù)字典表的數(shù)據(jù)能夠?qū)?shù)據(jù)庫操作的影響是持久和有害的。

      數(shù)據(jù)字典如何使用

      數(shù)據(jù)字典主要有三個(gè)用處:

      Oracle訪問數(shù)據(jù)字典來查找關(guān)于用戶、模式對象和存儲(chǔ)結(jié)構(gòu)的信息

      Oracle每次執(zhí)行一個(gè)數(shù)據(jù)定義語句(DDL)時(shí)都會(huì)修改數(shù)據(jù)字典

      任何Oracle用戶都可以將數(shù)據(jù)字典做為數(shù)據(jù)庫的只讀參考信息

      Oracle如何使用數(shù)據(jù)字典

      數(shù)據(jù)字典中基表的數(shù)據(jù)對Oracle運(yùn)行是至關(guān)重要的。因?yàn)橹挥蠴racle可以寫入和修改數(shù)據(jù)字典信息。Oracle在數(shù)據(jù)庫升級或者降級時(shí)提供腳本來修改數(shù)據(jù)字典表。

      注意:數(shù)據(jù)字典表的任何數(shù)據(jù)都不能被任何用戶修改和刪除。

      數(shù)據(jù)庫操作過程中,Oracle讀取數(shù)據(jù)字典來確保模式對象存在和用戶有足夠的權(quán)限來訪問它們。Oracle還不斷的更新數(shù)據(jù)字典來反映數(shù)據(jù)庫結(jié)構(gòu)、審核、賦權(quán)和數(shù)據(jù)的變化。

      例如,如果用戶Kathy創(chuàng)建一個(gè)叫parts的表,然后數(shù)據(jù)字典中會(huì)增加新行來反映新的表、列、段、區(qū)段和Kathy在這表上擁有的權(quán)限。這些信息在下次查詢這個(gè)字典視圖時(shí)可以看到。

      數(shù)據(jù)字典視圖的公共同義詞

      Oracle對一些數(shù)據(jù)字典視圖創(chuàng)建了公共同義詞,所以用戶可以很方便的訪問他們。安全管理員還可以對模式對象創(chuàng)建公共同義詞,這樣就可以在系統(tǒng)范圍內(nèi)使用。用戶要避免將他們自己的模式對象取名和公共同義詞的名字相同。

      針對數(shù)據(jù)字典快速訪問的Cache

      大部分的數(shù)據(jù)字典信息都保存在SGA的字典Cache中,因?yàn)镺racle運(yùn)行過程中需要不停的訪問數(shù)據(jù)字典來確認(rèn)用戶有權(quán)限訪問模式對象和確定模式對象的狀態(tài)。保存在的內(nèi)存中的所有信息采用最近使用(LRU)算法。

      解析信息也大部分保存在cache中。描述表和行的COMMENT行沒有緩存,除非他們被經(jīng)常訪問。

      其他的程序和數(shù)據(jù)字典

      其他的Oracle產(chǎn)品可以引用已有的視圖和創(chuàng)建它們自己的數(shù)據(jù)字典表或者視圖。應(yīng)用開發(fā)人員寫的程序指向的數(shù)據(jù)字典應(yīng)該使用公共同義詞而不是底層表:因?yàn)樵谲浖姹局g同義詞基本保持不變。

      如何使用數(shù)據(jù)字典

      數(shù)據(jù)字典的視圖可以被所有數(shù)據(jù)庫用戶引用。使用SQL語句可以訪問數(shù)據(jù)字典。某些視圖對于所有Oracle用戶可用,其他的只對數(shù)據(jù)庫管理員可用。

      數(shù)據(jù)字典在數(shù)據(jù)庫打開時(shí)總是可用。它們保存在總是在線的SYSTEM表空間上。

      數(shù)據(jù)字典由一系列視圖組成。在多數(shù)情況下,一個(gè)由三個(gè)視圖組成的系列包含類似的信息,相互之間用他們的前綴區(qū)分:

      表7-1 數(shù)據(jù)字典視圖前綴

      前綴

      范圍

      USER

      用戶視圖(用戶模式相關(guān)的)

      ALL

      擴(kuò)展用戶視圖(用戶可以訪問的)

      DBA

      數(shù)據(jù)庫管理員的視圖(針對所有用戶模式的)

      這一系列視圖的列基本類似,除了:

      USER前綴的視圖通常不包含OWNER列。這一列隱含在對這個(gè)USER視圖提交查詢的用戶上。

      某些DBA視圖包含對管理員有用的一些額外列信息

      USER前綴的視圖

      典型數(shù)據(jù)庫用戶關(guān)心的視圖就是前綴為USER的視圖。這些視圖:

      指向用戶自己的私有數(shù)據(jù)庫環(huán)境,包含用戶創(chuàng)建的模式對象信息、用戶創(chuàng)建的權(quán)限等等。

      只顯示用戶相關(guān)行

      和其他視圖的列類似,除了不包含隱含的OWNER列之外

      返回ALL視圖的一部分信息

      可以有簡單的PUBLIC同義詞來方便使用

      例如,下列查詢返回了你的模式中包含的所有對象:

      SELECT object_name,object_type FROM USER_OBJECTS;

      ALL前綴視圖

      ALL前綴視圖指向用戶的數(shù)據(jù)庫整個(gè)透視圖。這個(gè)視圖除了返回用戶擁有的模式對象信息之外,還返回通過公開的或者隱含的分配給這個(gè)用戶的權(quán)限和角色而能夠訪問的模式對象信息。例如,下面的查詢返回你有權(quán)限訪問的所有對象信息:

      SELECT owner,object_name,object_type FROM ALL_OBJECTS;

      DBA前綴視圖

      DBA前綴視圖顯示整個(gè)數(shù)據(jù)庫的全景視圖。這些視圖不能創(chuàng)建同義詞,因?yàn)镈BA前綴視圖只能被數(shù)據(jù)庫管理員訪問。因此,為查詢DBA前綴視圖,管理員必須在視圖名字前加上它的所有者SYS,如下:

      SELECT owner,object_name,object_type FROM SYS.DBA_OBJECTS;

      Oracle推薦你通過阻止用戶在數(shù)據(jù)字典上擁有系統(tǒng)訪問權(quán)限來保護(hù)數(shù)據(jù)字典。如果你啟動(dòng)了數(shù)據(jù)字典保護(hù)(07_DICTIONARY_ACCESSIBILITY為false),然后訪問SYS模式對象(數(shù)據(jù)字典)被限制為擁有SYS模式的用戶。這些用戶是SYS和以SYSDBA方式連接的用戶。(似乎不是這樣子,system也可以訪問,擁有DBA權(quán)限就可以,因?yàn)镈BA權(quán)限包含了SELECT ANY DICTIONARY權(quán)限)

      DUAL

      DUAL表是數(shù)據(jù)字典中的一個(gè)小表,Oracle和用戶寫的程序可以引用它來確保一個(gè)已知結(jié)果。這個(gè)表包含一列叫DUMMY,包含一行值為X。

      動(dòng)態(tài)性能視圖

      在Oracle運(yùn)行期間,Oracle維護(hù)了一系列虛擬表來記錄當(dāng)前數(shù)據(jù)庫的活動(dòng)。這些表叫做動(dòng)態(tài)性能表。

      動(dòng)態(tài)性能表不是真實(shí)的表,它們對于大多數(shù)用戶來說不可訪問。但是,數(shù)據(jù)庫管理員可以查詢、在表上創(chuàng)建視圖、分配這些視圖的權(quán)限給其他用戶。這些視圖有時(shí)候叫做固定視圖,因?yàn)樗鼈儾荒苡蓴?shù)據(jù)庫管理員修改和刪除。

      SYS擁有動(dòng)態(tài)性能表;他們的名字以V_$開始。在此基礎(chǔ)上創(chuàng)建視圖,然后再在視圖上創(chuàng)建公共同義詞。這些同義詞以V$開始。例如,V$DATAFILE視圖包含數(shù)據(jù)庫數(shù)據(jù)文件的信息,V$FIXED_TABLE視圖包含數(shù)據(jù)庫中所有動(dòng)態(tài)性能表和視圖的信息。

      數(shù)據(jù)庫對象元數(shù)據(jù)

      DBMS_METADATA包提供了抽取全部數(shù)據(jù)庫對象定義的接口。定義可以顯示為XML或者SQL DDL格式。提供兩種形式的接口:

      可編程控制的靈活精密接口

      特殊查詢使用的簡單接口

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多