數據字典是指對數據的數據項、數據結構、數據流、數據存儲、處理邏輯等進行定義和描述,其目的是對數據流程圖中的各個元素做出詳細的說明,使用數據字典為簡單的建模項目。簡而言之,數據字典是描述數據的信息集合,是對系統中使用的所有數據元素的定義的集合。
數據字典不是可以拿在手上翻閱的字典。數據字典包含:數據項,數據流,數據結構,數據存儲,處理過程五個部分。同時也是詳細數據收集和數據分析的結果。
擴展資料:
數據字典在需求分析階段被建立。
數據字典是壹個預留空間,壹個數據庫,這是用來儲存信息數據庫本身。
數據字典可能包含的信息,例如:數據庫設計資料,數據內部儲存的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.的麻煩。
參考資料: