複製鏈接
請複製以下鏈接發送給好友

數據字典

鎖定
數據字典是指對數據的數據項數據結構數據流數據存儲、處理邏輯等進行定義和描述,其目的是對數據流圖中的各個元素作出詳細的説明,使用數據字典為簡單的建模項目。簡而言之,數據字典是描述數據的信息集合,是對系統中使用的所有數據元素的定義的集合。
數據字典(Data dictionary)是一種用户可以訪問的記錄數據庫和應用程序元數據的目錄。主動數據字典是指在對數據庫或應用程序結構進行修改時,其內容可以由DBMS自動更新的數據字典。被動數據字典是指修改時必須手工進行更新內容的數據字典。
中文名
數據字典
外文名
Data dictionary
相關學科
數據庫設計
使用目的
對數據流程圖中各個元素做出説明

目錄

數據字典簡介

數據字典(data dictionary)是對於數據模型中的數據對象或者項目的描述的集合,這樣做有利於程序員和其他需要參考的人。分析一個用户交換的對象系統的第一步就是去辨別每一個對象,以及它與其他對象之間的關係。這個過程稱為數據建模,結果產生一個對象關係圖。當每個數據對象和項目都給出了一個描述性的名字之後,它的關係再進行描述(或者是成為潛在描述關係的結構中的一部分),然後再描述數據的類型(例如文本還是圖像,或者是二進制數值),列出所有可能預先定義的數值,以及提供簡單的文字性描述。這個集合被組織成書的形式用來參考,就叫做數據字典。
當開發用到數據模型的程序時,數據字典可以幫助你理解數據項適合結構中的哪個地方,它可能包含什麼數值,以及數據項基本上表示現實世界中的什麼意思。例如,一家銀行或者是一個銀行組織可能對客户銀行業涉及的數據對象進行建模。他們需要給銀行程序員提供數據字典。這個數據字典就描述了客户銀行業中的數據模型每一個數據項(例如,“賬户持有人”和“可用信用”)。 [1] 

數據字典作用

數據字典最重要的作用是作為分析階段的工具。任何字典最重要的用途都是供人查詢對不瞭解的條目的解釋,在結構化分析中,數據字典的作用是給數據流圖上每個成分加以定義和説明。換句話説,數據流圖上所有的成分的定義和解釋的文字集合就是數據字典,而且在數據字典中建立的一組嚴密一致的定義,很有助於改進分析員和用户的通信。
數據庫數據字典不僅是每個數據庫的中心,而且對每個用户也是非常重要的信息。用户可以用SQL語句訪問數據庫數據字典。

數據字典分類

數據字典在需求分析階段被建立。
數據字典是一個預留空間,一個數據庫,這是用來儲存信息數據庫本身。
數據字典可能包含的信息,例如:
數據內部儲存的SQL程序
用户統計
數據庫的過程中的信息
數據庫增長統計
數據庫性能統計
數據字典則是系統中各類數據描述的集合,是進行詳細的數據收集數據分析所獲得的主要成果。
數據字典通常包括數據項\數據結構\數據流\數據存儲和處理過程五個部分。
其中數據項是數據的最小組成單位,若干個數據項可以組成一個數據結構。數據字典通過對數據項和數據結構的定義,來描述數據流、數據存儲的邏輯內容。
數據字典是關於數據的信息的集合,也就是對數據流圖中包含的所有元素的定義的集合。
數據字典還有另一種含義,是在數據庫設計時用到的一種工具,用來描述數據庫中基本表的設計,主要包括字段名數據類型、主鍵、外鍵等描述表的屬性的內容。
Oracle數據庫字典為例:數據字典分為數據字典表和數據字典視圖
Oracle數據庫字典通常是在創建和安裝數據庫時被創建的,Oracle數據字典是Oracle數據庫系統工作的基礎,沒有數據字典的支持,Oracle數據庫系統就不能進行任何工作。數據字典中的表是不能直接被訪問的,但是可以訪問數據字典中的視圖。
數據字典表裏的數據是Oracle系統存放的系統數據,而普通表存放的是用户的數據。為了方便的區別這些表,這些表的名字都是用"$"結尾,這些表屬於SYS用户。
數據字典表由$ORACLE_HOME/rdbms/admin/sql.bsq 腳本創建, 這個腳本里又調用了其他的腳本來創建這些數據字典表。 在那些創建腳本里有基表的創建SQL。
Oracle 對數據字典表的説明:
These underlying tables store information about the database. Only Oracle Database should write to and read these tables. Users rarely access the base tables directly because they are normalized and most data is stored in a cryptic format.
這些數據字典表,只有Oracle 能夠進行讀寫。
SYS用户下的這些數據字典表,存放在system 表空間下面,表名都用"$"結尾,為了便於用户對數據字典表的查詢, Oracle對這些數據字典都分別建立了用户視圖,這樣即容易記住,還隱藏了數據字典表表之間的關係,Oracle針對這些對象的範圍,分別把視圖命名為DBA_XXXX, ALL_XXXX和USER_XXXX。
數據字典視圖分2類:靜態數據字典(靜態性能視圖) 和 動態數據字典(動態性能視圖)。
靜態數據字典中的視圖分為三類,它們分別由三個前綴構成:user_*、 all_*、 dba_*。
user_*:該視圖存儲了關於當前用户所擁有的對象的信息。(即所有在該用户模式下的對象)
all_*:該視圖存儲了當前用户能夠訪問的對象的信息, 而不是當前用户擁有的對象。(與user_*相比,all_* 並不需要擁有該對象,只需要具有訪問該對象的權限即可)
dba_*:該視圖存儲了數據庫中所有對象的信息。(前提是當前用户具有訪問這些數據庫的權限,一般來説必須具有管理員權限)
這些視圖由SYS用户創建的,所以使用需要加上SYS,為了方便, Oracle為每個數據字典表的視圖頭建立了同名字的公共同義詞(public synonyms). 這樣簡單的處理就省去了寫sys.的麻煩。
除了靜態數據字典中三類視圖,其他的字典視圖中主要的是V$視圖,之所以這樣叫是因為他們都是以V$或GV$開頭的。這些視圖會不斷的進行更新,從而提供了關於內存和磁盤的運行情況,所以我們只能對其進行只讀訪問而不能修改它們。
Throughout its operation, Oracle Database maintains a set of virtual tables that record current database activity. These views are calleddynamic performance views because they are continuously updated while a database is open and in use. The views, also sometimes calledV$ views。
V$視圖是基於X$虛擬視圖的。V$視圖是SYS用户所擁有的,在缺省狀況下,只有SYS用户和擁有DBA系統權限的用户可以看到所有的視圖,沒有DBA權限的用户可以看到USER_和ALL_視圖,但不能看到DBA_視圖。與DBA_,ALL,和USER_視圖中面向數據庫信息相反,這些視圖可視的給出了面向實例的信息。
動態性能表用於記錄當前數據庫的活動,只存於數據庫運行期間,實際的信息都取自內存和控制文件。 DBA可以使用動態視圖來監視和調節數據。

數據字典組成

數據字典的組成:
2、數據結構
數據字典
數據字典是數據庫的重要組成部分。它存放有數據庫所用的有關信息,對用户來説是一組只讀的表。數據字典內容包括:
1、數據庫中所有模式對象的信息,如表、視圖、簇、及索引等。
2、分配多少空間,當前使用多少空間等。
3、列的缺省值
4、約束信息的完整性。
5、用户的名字。
6、用户及角色被授予的權限
7、用户訪問或使用的審計信息
8、其它產生的數據庫信息。
數據庫數據字典是一組表和視圖結構。它們存放在SYSTEM表空間中。
數據庫數據字典不僅是每個數據庫的中心。而且對每個用户也是非常重要的信息。用户可以用SQL語句訪問數據庫數據字典。
關於數據的信息集合,是一種用户可以訪問的記錄數據庫和應用程序元數據的目錄,是對數據庫內表信息的物理與邏輯的説明。

數據字典描述

數據字典各部分的描述
數據項:數據流圖中數據塊的數據結構中的數據項説明
數據項是不可再分的數據單位。對數據項的描述通常包括以下內容:
數據項描述=數據項名,數據項含義説明,別名,數據類型,長度,
取值範圍,取值含義,與其他數據項的邏輯關係
其中“取值範圍”、“與其他數據項的邏輯關係”定義了數據的完整性約束條件,是設計數據檢驗功能的依據。
若干個數據項可以組成一個數據結構。
數據結構:數據流圖中數據塊的數據結構説明
數據結構反映了數據之間的組合關係。一個數據結構可以由若干個數據項組成,也可以由若干個數據結構組成,或由若干個數據項和數據結構混合組成。對數據結構的描述通常包括以下內容:
數據結構描述={數據結構名,含義説明,組成:{數據項或數據結構}}
數據流:數據流圖中流線的説明
數據流是數據結構在系統內傳輸的路徑。對數據流的描述通常包括以下內容:
數據流描述=數據流名,説明,數據流來源,數據流去向,
組成:{數據結構},平均流量高峯期流量
其中“數據流來源”是説明該數據流來自哪個過程,即數據的來源。“數據流去向”是説明該數據流將到哪個過程去,即數據的去向。“平均流量”是指在單位時間(每天、每週、每月等)裏的傳輸次數。“高峯期流量”則是指在高峯時期的數據流量。
數據存儲:數據流圖中數據塊的存儲特性説明
數據存儲是數據結構停留或保存的地方,也是數據流的來源和去向之一。對數據存儲的描述通常包括以下內容:
數據存儲描述=數據存儲名,説明,編號,流入的數據流,流出的數據流,
組成:{數據結構},數據量,存取方式
其中“數據量”是指每次存取多少數據,每天(或每小時、每週等)存取幾次等信息。“存取方法”包括是批處理,還是聯機處理;是檢索還是更新;是順序檢索還是隨機檢索等。
另外“流入的數據流”要指出其來源,“流出的數據流”要指出其去向。
處理過程:數據流圖中功能塊的説明
數據字典中只需要描述處理過程的説明性信息,通常包括以下內容:
處理過程描述={處理過程名,説明,輸入數據流,輸出數據流},
處理:{簡要説明}
其中“簡要説明”中主要説明該處理過程的功能及處理要求。功能是指該處理過程用來做什麼(並不是怎麼樣做);處理要求包括處理頻度要求,如單位時間裏處理多少事務,多少數據量,響應時間要求等,這些處理要求是後面物理設計的輸入及性能評價的標準。
參考資料