資料字典和SQlDA

2022-09-21 12:21:10 字數 1558 閱讀 9406

解決問題:動態sql,依據條件動態構造sql語句,但不知道欲訪問的表名和欄位名

1.資料字典(系統目錄)

(1)資料字典是系統維護的一些表或檢視的集合,這些表或檢視儲存了資料庫中各類物件的定義資訊,這些物件包括用create語句定義的表,列,索引,檢視,許可權,約束等,這些資訊又稱資料庫的元資料--關於資料的資料

(2)不同的dbms對資料字典的稱呼不同:資料字典,目錄表,系統目錄,系統檢視

(3)不同的dbms對系統目錄的儲存方式不同,有一些資訊對dba公開,利用這些公開資訊,dba可以使用一些特殊的sql命令來檢索

2.資料字典的內容構成

(1)資料字典通常儲存的是資料庫和表的元資料,即模式本身的資訊

//應用程式設計師構造動態sql需要的資訊

(2)與關係相關的資訊

1)關係名字

2)每乙個關係的屬性名及其型別

3)檢視的名字及其定義

4)完整性約束

(3)使用者和賬戶資訊,包括密碼

//資料庫管理系統實現演算法需要的資訊

(4)統計與描述性資料:如每個關係中的元組數目

(5)物理檔案組織資訊

1)關係是如何儲存的(順序,無需,雜湊)

2)關係的物理位置

(6)索引相關的資訊

3.資料字典的結構

(1)資料字典是儲存在磁碟上的關係,專為記憶體高效訪問設計的特定的資料結構

(2)可能的資料字典結構

1)relation_metadata = (relation_name, number_of_attributes, storage_organization, location)

2)attribute_metadata = (attribute_name, relation_name, domain_type, position, length)  

//屬性的元資料,屬性名,屬於那個關係,屬性的域的型別,關係中的型別,長度

3)user_metadata = (user_name, encrypted_password, group)

//使用者的元資料,使用者名稱,密碼,屬於哪個組

4)index_metadata = (index_name, relation_name, index_type, index_attributes)

5)view_metadata = (view_name, definition)

//檢視的元資料,檢視名,檢視定義

4.x/open標準的系統目錄

(1)x/open標準中有乙個目錄表info_schem.tables該表中的一行是乙個已經定義的表的有關資訊

1)table_schem:表的模式名(通常是表所有者的使用者名稱)

2)table_name:表名

3)table_type:「base_table」或「view」

(2)模式:指某一使用者設計和使用的表,索引及其他與資料庫有關的物件的集合,因此表的完整名:模式名.表名。這樣做可允許不同使用者使用相同的表名,而不混淆

(3)一般而言,乙個使用者有乙個模式,可以使用 create schema 語句來建立模式,在 create table 等語句可以使用所定義的模式名稱

關於資料字典

1 什麼是資料字典 data dictionary 應該承認,每個人對資料字典的理解有不同的地方,因為並沒有這方面的標準,下面是三個大同小異的定義 1 資料字典是以資料庫中資料基本單元為單位,按一定順序排列,對其內容作詳細說明的資料集。2 資料字典中存放著系統中所有資料的定義,即對所有資料庫結構的描...

Oracle 資料字典

資料字典包括以下內容 1.所有資料庫schema物件的定義 表,檢視,索引,聚簇,同義詞,序列,過程,函式,包,觸發器 2.資料庫的空間分配和使用情況 3.欄位的預設值 4.完整性約束資訊 5.oracle使用者名稱,角色,許可權等資訊 6.審計資訊 7.其他資料庫資訊 資料字典有4部分組成 內部r...

oracle 資料字典

oracle資料字典 select from user tab columns 檢視使用者列物件 select from user tab comments 檢視使用者表的備註 select from user tab statistics select from all users 所有使用者 s...