㈠ 如何為資料庫取名
在資料庫中創建對象時,管理員也要對其進行取名。現在談談取名的一些技巧。 一、表名大小寫的控制 一般情況下Oracle資料庫中的表名或者列名是不區分大小寫的。在創建表或者列的時候,即使管理員採用了小寫的名字,資料庫在將其保存到數據字典之前,會先將其轉換為大寫,再將他們保存到數據字典中。這也就是為什麼我們取名使用小寫的子母取名,但是下次查看錶的名字的時候,卻變成了大寫。 雖然說Oracle資料庫中表與列等資料庫對象對於大小寫是不敏感的,但是如果資料庫管理員確實有需要要讓資料庫系統對表的名字區分大小寫,這也是可以做到的。通常情況下,如果把名字使用雙引號括起來,則在Oracle數據字典中就會成為區分大小寫的名字。不過筆者這里要提醒各位資料庫管理員,雖然說從技術上可以讓資料庫系統強製取分大小寫,但是在實際工作中,包括在內的絕大部分資料庫管理員可能都不建議這么做。因為如果有混合的大小寫存在,那麼在引用這些表或者列名稱的時候就需要特別的小心。因為即使用戶或者資料庫管理員有著過目不忘的本領,也很難准確的記住這些名稱的大小寫歌時。如果資料庫管理員硬要這么做的話,那麼很可能是自尋煩惱。在查詢時或者其他作業時,要嚴格區分大小寫那是一件很頭疼的事情。為此,對於這個大小寫的控制,筆者建議資料庫管理員要謹慎使用。除非有充分的理由,否則的話,不要輕易使用這個雙引號來控制大小寫。 這個雙引號不僅可以用來控制大小寫,還有一個比較特殊的作用,就是用引用一些特殊的字元。如在建立表格的時候,需要設置一個名牌號的欄位。有些資料庫管理員習慣使用num#類似的名稱。這不會違反資料庫的取名規則。不過在處理的時候會比較麻煩。如利用create語句建立表格的時候,需要給這個欄位名稱加上雙引號。否則的話,執行這條語句的時候,資料庫會拒絕執行並向用戶提示錯誤信息。類似的特殊符號還包括一個$美元符號。他們在建立表格的時候,在語句中都需要使用雙引號。不過欄位建立好之後,在引用這些對象的時候,不需要使用雙引號了。同理,雖然Oracle資料庫支持這些特殊符號,但是筆者不鼓勵資料庫管理員在表或者列的取名中採取這些特殊的符號。這有可能給後續的引用帶來不必要的麻煩。 二、牢記取名空間 在Oracle資料庫中,跟其他的資料庫不同,有一個叫做取名空間的概念。在同一個取名空間中,其名字不可以重復。如表與視圖就共享同一個取名空間,為此就要求不僅表的名字不能夠相同,而且表的名字與視圖的名字也不能夠相同。因為他們處於同一個取名空間。類似的,表與函數也是同處於一個表空間,為此他們也不能夠同名。不過表與索引、表與約束等等卻屬於不同的取名空間。也就是說,表的名字可以與約束的名字相同。所以說,資料庫管理員在給表等對象取名的時候,一定要了解哪些對象共享同一個名稱空間。如果在同一個名稱空間內的,即使對象不同(如視圖與表),但是他們仍然不能夠取相同的名字。 為了避免同一個取名空間內重名的現象,筆者建立在取名的時候最好能夠根據對象的不同加上對象的固有前綴。如大部分的資料庫管理員,在給表取名的時候,一般不會表名前面加上表對象的前綴。但是在定義函數或者視圖對象的時候,則會加上前綴。如在函數前面可能會加上FN的前綴,而在視圖前面可能會加上vi的前綴。如此的話,在同一個取名空間內也不用擔心對象重名的問題。不過無論怎麼說,這個取名空間的概念資料庫管理員必須牢記。即使在實際的工作中,可以通過前綴等手段輕易的避免這個陷阱,但是在Oracle資料庫管理員的認證考試中,這個取名空間也是一個必要的知識點。所以無論從實際的工作還是認證考試的需要,對於這個取名空間管理員都必須要有一個清晰的認識。 三、在表、索引、約束、列之間設置密切的聯系 在創建表的同時,可以給表中的某些列添加索引、約束等等。如在員工信息表中,會設置員工編號唯一性約束。在創建約束的時候,也需要對約束進行取名。雖然說也約束與表、列不屬於同一個取名空間,所以在取名的時候基本上沒有限制。但是為了後續使用的方便,筆者對約束的取名還有一個小小的建議。簡單的說,就是給一個與表直接有關的其他對象具有該表的名字是一種好的做法。如現在有一張用戶表名字叫做ad_user(在表名前面一般不加對象名,但是可以根據應用軟體的模塊設計加上模塊的前綴),這種表中有一個欄位叫做叫做vlaue,用來存儲員工的編號。在表設計的時候,需要給這個欄位加一個索引。那麼這個索引的名字就可以取名為IDX_USER_VALUE(也就是索引前綴+表名+欄位名的形式)。這么做有什麼好處呢?一是可以確保相關對象的名字不會重復。因為表的名字不會重復,所以將表的名字與列的名字一起組成某個對象的名字,那麼其重復的幾率可以說基本上沒有。二是方便管理員閱讀、理解、維護等等。一看到索引或者約束對象的名字時,就可以看到這個是索引或者約束是用在哪個表的那個欄位上的。而且也可以知道這個約束是唯一性約束還是檢查約束;索引時主鍵索引還是外鍵索引。給資料庫管理員一目瞭然的感覺。這對於後續的維護、升級、調整、引用等等都提供了方便。 雖然說Oracle資料庫中表與列等資料庫對象對於大小寫是不敏感的,但是如果資料庫管理員確實有需要要讓資料庫系統對表的名字區分大小寫,這也是可以做到的。通常情況下,如果把名字使用雙引號括起來,則在Oracle數據字典中就會成為區分大小寫的名字。不過筆者這里要提醒各位資料庫管理員,雖然說從技術上可以讓資料庫系統強製取分大小寫,但是在實際工作中,包括在內的絕大部分資料庫管理員可能都不建議這么做。因為如果有混合的大小寫存在,那麼在引用這些表或者列名稱的時候就需要特別的小心。因為即使用戶或者資料庫管理員有著過目不忘的本領,也很難准確的記住這些名稱的大小寫歌時。如果資料庫管理員硬要這么做的話,那麼很可能是自尋煩惱。在查詢時或者其他作業時,要嚴格區分大小寫那是一件很頭疼的事情。為此,對於這個大小寫的控制,筆者建議資料庫管理員要謹慎使用。除非有充分的理由,否則的話,不要輕易使用這個雙引號來控制大小寫。
㈡ 什麼是數據字典
數據字典:關於數據的信息集合。也就是對數據流圖中包含的所有元素的定義的集合
數據字典的內容:
1.由對下列四類元素的定義組成:
(1)數據流
(2)數據流分量(數據元素)
(3)數據存儲
(4)處理
(註:本書所指主要是由對數據的定義組成)
2.除數據定義外,數據字典還應包括:
記錄數據元素的下述信息
(1)一般信息(名字,別名,描述)
(2)定義(數據類型,長度,結構)
(3)使用特點(值的范圍,使用頻率,使用方式,輸入/輸出/本地條件值等)
(4)控制信息(來源,用戶,使用它的程序,改變權,使用權等)
(5)分組信息(父結點,從屬結構,物理位置——記錄,文件和資料庫等)
三、數據的定義方法:
數據字典中的定義:
就是對數據自頂向下的分解,分解到不需要進一步定義為止。
數據元素組成數據的方式:
(1)順序:以確定次序連接兩個或多個分量
(2)選擇:從兩個或多個可能的元素中選取一個
(3)重復:把指定的分量重復零次或多次
(4)可選:一個分量是可有可無的
3.在數據字典中建議使用下列符號:
(1)=:等價於(定義為)
(2)+:和(連接兩個分量)
(3)[ ]:或(從方括弧內列出的若干個分量中選擇一個)
(4)():可選(圓括弧里的分量可有可無)
四、數據字典的用途
數據字典最重要的用途是作為分析階段的工具
有助於改進分析員,發小組之間的通信。
有助於改進不同開發人員,不同開發小組之間的通信
有助於要求所有開發人員根據公共數據字典描述數據和設計模塊,避免許多麻煩口問題
2.數據字典是開發資料庫的第一步。
五、數據字典的實現:
三種常見的途徑:
全人工過程(數據字典卡片)
全自動化過程(利用數據字典處理程序)
混合過程
六、數據字典應具有的特點:
通過名字能方便地查閱數據的定義
沒有冗餘
盡量不重復在規格說明的其他組成部分中已經出現的信息
容易更新和修改
能單獨處理描述每一個數據元素的信息
定義的書寫方法簡單、方便且嚴格
產生交叉表、錯誤檢測、一致性校驗等
㈢ 什麼是數據流圖與數據字典
數據流圖:簡稱DFD,就是採用圖形方式來表達系統的邏輯功能、數據在系統內部的邏輯流向和邏輯變換過程,是結構化系統分析方法的主要表達工具及用於表示軟體模型的一種圖示方法。
數據流圖的基本符號的意思:
1.矩形表示數據的外部實體;
2.圓角的矩形表示變換數據的處理邏輯;
3.少右面的邊矩形表示數據的存儲;
4.箭頭表示數據流。
數據流程圖中有以下幾種主要元素:
→:數據流。數據流是數據在系統內傳播的路徑,因此由一組成分固定的數據組成。如訂票單由旅客姓名、年齡、單位、身份證號、日期、目的地等數據項組成。由於數據流是流動中的數據,所以必須有流向,除了與數據存儲之間的數據流不用命名外,數據流應該用名詞或名詞短語命名。
□:數據源(終點)。代表系統之外的實體,可以是人、物或其他軟體系統。
○:對數據的加工(處理)。加工是對數據進行處理的單元,它接收一定的數據輸入,對其進行處理,並產生輸出。
〓:數據存儲。表示信息的靜態存儲,可以代表文件、文件的一部分、資料庫的元素等。
在單張數據流圖時,必須注意以下原則:
1.一個加工的輸出數據流不應與輸入數據流同名,即使它們的組成成分相同。
2.保持數據守恆。也就是說,一個加工所有輸出數據流中的數據必須能從該加工的輸入數據流中直接獲得,或者說是通過該加工能產生的數據。
3.每個加工必須既有輸入數據流,又有輸出數據流。
4.所有的數據流必須以一個加工開始,或以一個加工結束。
數據字典是Oracle存放有關資料庫信息的地方,其用途是用來描述數據的。比如一個表的創建者信息,創建時間信息,所屬表空間信息,用戶訪問許可權信息等。當用戶在對資料庫中的數據進行操作時遇到困難就可以訪問數據字典來查看詳細的信息。
Oracle中的數據字典有靜態和動態之分。靜態數據字典主要是在用戶訪問數據字典時不會發生改變的,但動態數據字典是依賴資料庫運行的性能的,反映資料庫運行的一些內在信息,所以在訪問這類數據字典時往往不是一成不變的。以下分別就這兩類數據字典來論述。
1. 靜態數據字典
這類數據字典主要是由表和視圖組成,應該注意的是,數據字典中的表是不能直接被訪問的,但是可以訪問數據字典中的視圖。靜態數據字典中的視圖分為三類,它們分別由三個前綴夠成:user_*、 all_*、 dba_*。
user_*
該視圖存儲了關於當前用戶所擁有的對象的信息。(即所有在該用戶模式下的對象)
all_*
該試圖存儲了當前用戶能夠訪問的對象的信息。(與user_*相比,all_* 並不需要擁有該對象,只需要具有訪問該對象的許可權即可)
dba_*
該視圖存儲了資料庫中所有對象的信息。(前提是當前用戶具有訪問這些資料庫的許可權,一般來說必須具有管理員許可權)
從上面的描述可以看出,三者之間存儲的數據肯定會有重疊,其實它們除了訪問范圍的不同以外(因為許可權不一樣,所以訪問對象的范圍不一樣),其他均具有一致性。具體來說,由於數據字典視圖是由SYS(系統用戶)所擁有的,所以在卻省情況下,只有SYS和擁有DBA系統許可權的用戶可以看到所有的視圖。沒有DBA許可權的用戶只能看到user_*和all_*視。如果沒有被授予相關的SELECT許可權的話,他們是不能看到 dba_*視圖的。
由於三者具有相似性,下面以user_為例介紹幾個常用的靜態視圖:
user_users視圖
主要描述當前用戶的信息,主要包括當前用戶名、帳戶id、帳戶狀態、表空間名、創建時間等。例如執行下列命令即可返回這些信息。
select * from user_users
user_tables視圖
主要描述當前用戶擁有的所有表的信息,主要包括表名、表空間名、簇名等。通過此視圖可以清楚了解當前用戶可以操作的表有哪些。執行命令為:select * from user_tables
user_objects視圖
主要描述當前用戶擁有的所有對象的信息,對象包括表、視圖、存儲過程、觸發器、包、索引、序列等。該視圖比user_tables視圖更加全面。例如, 需要獲取一個名為「package1」的對象類型和其狀態的信息,可以執行下面命令:
select object_type,status
from user_objects
where object_name=upper(『package1』);
這里需注意upper的使用,數據字典里的所有對象均為大寫形式,而PL/SQL里不是大小寫敏感的,所以在實際操作中一定要注意大小寫匹配。
user_tab_privs視圖
該視圖主要是存儲當前用戶下對所有表的許可權信息。比如,為了了解當前用戶對table1的許可權信息,可以執行如下命令:
select * from user_tab_privs where table_name=upper('table1')
了解了當前用戶對該表的許可權之後就可以清楚的知道,哪些操作可以執行,哪些操作不能執行。
前面的視圖均為user_開頭的,其實all_開頭的也完全是一樣的,只是列出來的信息是當前用戶可以訪問的對象而不是當前用戶擁有的對象。對於dba_開頭的需要管理員許可權,其他用法也完全一樣,這里就不再贅述了。
2. 動態數據字典
Oracle包含了一些潛在的由系統管理員如SYS維護的表和視圖,由於當資料庫運行的時候它們會不斷進行更新,所以稱它們為動態數據字典(或者是動態性能視圖)。這些視圖提供了關於內存和磁碟的運行情況,所以我們只能對其進行只讀訪問而不能修改它們。
Oracle中這些動態性能視圖都是以v$開頭的視圖,比如v$access。下面就幾個主要的動態性能視圖進行介紹。
v$access
該視圖顯示資料庫中鎖定的資料庫對象以及訪問這些對象的會話對象(session對象)。
運行如下命令:
select * from v$access
結果如下:(因記錄較多,故這里只是節選了部分記錄)
SID
OWNER OBJECT TYPE
27 DKH V$ACCESS CURSOR
27 PUBLIC V$ACCESS SYNONYM
27 SYS DBMS_APPLICATION_INFO PACKAGE
27 SYS GV$ACCESS VIEW
v$session
該視圖列出當前會話的詳細信息。由於該視圖欄位較多,這里就不列詳細欄位,為了解詳細信息,可以直接在sql*plus命令行下鍵入:desc v$session即可。
v$active_instance
該視圖主要描述當前資料庫下的活動的實例的信息。依然可以使用select語句來觀察該信息。
v$context
該視圖列出當前會話的屬性信息。比如命名空間、屬性值等。
3.小結
以上是Oracle的數據字典方面的基本內容,還有很多有用視圖因為篇幅原因這里不能一一講解,希望大家在平時使用中多留心。總之,運用好數據字典技術,可以讓資料庫開發人員能夠更好的了解資料庫的全貌,這樣對於資料庫優化、管理等有極大的幫助。
㈣ 以下英文簡寫 咋寫啊
本文介紹了一些常見的英文縮寫及其含義:
以上就是這些英文縮寫的簡寫形式和對應解釋,有助於理解和記憶各種專業術語和概念。