當前位置:成語大全網 - 書法字典 - 什麽是數據流和數據字典?

什麽是數據流和數據字典?

數據流圖(Data flow diagram):簡稱DFD,是表示系統的邏輯功能、數據在系統中的邏輯流向和邏輯轉換過程的圖形方式。它是結構化系統分析方法的主要表達工具,是壹種用來表達軟件模型的圖形化方法。

數據流圖的基本符號的含義:

1.矩形代表數據的外部實體;

2.圓角矩形表示轉換數據的處理邏輯;

3.右側較少的矩形代表數據存儲;

4.箭頭表示數據流。

數據流程圖中有幾個主要元素:

→:數據流。數據流是數據在系統中傳播的路徑,因此它由壹組固定的數據組成。例如,預訂表單包含乘客姓名、年齡、單位、身份證號、日期和目的地等數據項。因為數據流是流動的數據,所以必須有流向。除了數據流和數據存儲之間的數據流,應該用名詞或名詞短語來命名。

□:數據來源(終點)。表示系統外的實體,可以是人,可以是物,也可以是其他軟件系統。

○:數據的處理。處理是處理數據的單元。它接收特定的數據輸入,對其進行處理並產生輸出。

〓:數據存儲。表示信息的靜態存儲,可以表示文件、文件的壹部分、數據庫的壹個元素等。

在繪制單數據流圖時,我們必須註意以下原則:

1.已處理的輸出數據流不應與輸入數據流同名,即使它們的組件相同。

2.保持數據守恒。也就是說,壹個流程的所有輸出數據流中的數據,必須是直接從該流程的輸入數據流中獲取的,或者是可以通過該流程生成的數據。

3.每個進程都必須有輸入數據流和輸出數據流。

4.所有數據流都必須以進程開始或以進程結束。

數據字典是Oracle存儲數據庫信息的地方,其目的是描述數據。例如,表的創建者信息、創建時間信息、表空間信息、用戶訪問權限信息等等。當用戶在操作數據庫中的數據時遇到困難時,他們可以訪問數據字典來查看詳細信息。

Oracle中有靜態和動態數據字典。靜態數據字典在用戶訪問數據字典時不會發生變化,而動態數據字典依賴於數據庫操作的性能,反映了數據庫操作的壹些內部信息,所以在訪問這類數據字典時往往不是靜態的。下面分別討論兩種類型的數據字典。

1.靜態數據字典

這種數據字典主要由表和視圖組成。需要註意的是,不能直接訪問數據字典中的表,但是可以訪問數據字典中的視圖。靜態數據字典中的視圖分為三類,由user_*、all_*和dba_*三個前綴組成。

用戶_*

此視圖存儲有關當前用戶所擁有的對象的信息。(即該用戶模式下的所有對象)

所有_*

這種嘗試存儲當前用戶可以訪問的對象的信息。(與user_*相比,all_*不需要擁有對象,只需要擁有對象的訪問權。)

dba_*

該視圖存儲數據庫中所有對象的信息。(前提是當前用戶有訪問這些數據庫的權限,壹般來說,他必須有管理員權限。)

從上面的描述可以看出,三者之間存儲的數據必然會重疊。其實除了訪問範圍不同(因為權限不同,訪問對象的範圍也不同)之外,兩者是壹致的。具體來說,由於數據字典視圖歸SYS(系統用戶)所有,所以在節省時間的情況下,只有SYS和具有DBA系統權限的用戶才能看到所有視圖。沒有DBA權限的用戶只能看到user_*和all_*。如果沒有被授予相關的SELECT權限,他們就看不到dba_*視圖。

由於三者之間的相似性,下面以user_為例介紹幾種常用的靜態視圖:

用戶_用戶視圖

主要描述當前用戶的信息,包括當前用戶名、賬戶id、賬戶狀態、表空間名稱、創建時間等。例如,可以通過執行以下命令來返回此信息。

select * from用戶_用戶

User_tables視圖

主要描述當前用戶擁有的所有表的信息,包括表名、表空間名、簇名等。通過這個視圖,可以清楚地了解當前用戶可以操作哪些表。執行命令是:select * from user_tables。

用戶對象視圖

主要描述當前用戶擁有的所有對象的信息,包括表、視圖、存儲過程、觸發器、包、索引、序列等。該視圖比user_tables視圖更全面。例如,要獲取有關名為“package1”的對象類型及其狀態的信息,可以執行以下命令:

選擇對象類型,狀態

來自用戶對象

其中object _ name = upper(' package 1 ');

這裏註意upper的使用。數據字典中的所有對象都是大寫的,但是PL/SQL是不區分大小寫的,所以在實際操作中壹定要註意大小寫匹配。

用戶選項卡權限視圖

該視圖主要存儲當前用戶下所有表的權限信息。例如,為了了解當前用戶對表1的權限信息,可以執行以下命令:

select * from user_tab_privs其中table_name=upper('table1 ')

知道當前用戶對表的權限,就可以清楚的知道哪些操作可以執行,哪些操作不可以執行。

前面的視圖都是以user_開頭,其實all_是完全壹樣的,只是列出的信息是當前用戶可以訪問的對象,而不是當前用戶擁有的對象。對於需要管理員權限的dba_來說,其他用法完全壹樣,這裏不再贅述。

2.動態數據字典

Oracle包含壹些由系統管理員(如SYS)維護的潛在表和視圖。因為它們在數據庫運行時不斷更新,所以被稱為動態數據字典(或動態性能視圖)。這些視圖提供了關於內存和磁盤操作的信息,所以我們只能以只讀方式訪問它們,不能修改它們。

Oracle中的這些動態性能視圖都是以v$開頭的視圖,比如v$access。下面介紹幾種主要的動態性能視圖。

v $訪問

該視圖顯示數據庫中鎖定的數據庫對象以及訪問這些對象的會話對象(會話對象)。

運行以下命令:

從v$access中選擇*

結果如下:(由於記錄較多,此處僅摘錄部分記錄)

(同suddenionosphericdisturbance)電離層的突然騷擾

所有者對象類型

27 DKH V $訪問光標

27 PUBLIC V$ACCESS同義詞

27系統DBMS _應用程序_信息包

27系統GV $訪問視圖

五美元會議

此視圖列出了當前會話的詳細信息。因為該視圖中有許多字段,所以這裏不列出詳細的字段。要了解詳細信息,您可以在sql*plus命令行中直接鍵入desc v$session。

v $活動實例

該視圖主要描述當前數據庫下活動實例的信息。您仍然可以使用select語句來觀察這些信息。

五.背景

該視圖列出了當前會話的屬性信息。例如名稱空間、屬性值等。

3.摘要

以上是甲骨文數據字典的基本內容,還有很多有用的觀點因為篇幅原因無法在此說明。希望大家在平時的使用中多加註意。總之,用好數據字典技術可以讓數據庫開發人員更好地了解數據庫的全貌,對數據庫的優化和管理有很大的幫助。