『壹』 什麼是數據字典
下文以oracle資料庫為例對數據字典進行解釋:
數據字典是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的數據字典方面的基本內容,還有很多有用視圖因為篇幅原因這里不能一一講解,希望大家在平時使用中多留心。總之,運用好數據字典技術,可以讓資料庫開發人員能夠更好的了解資料庫的全貌,這樣對於資料庫優化、管理等有極大的幫助。
『貳』 如何編寫數據字典
數據字典是整個資料庫環境的重要組成部分,是資料庫環境管理的有力工具,在資料庫的生命周期內起著重要作用。數據字典的用途是多方面的,它是一個管理有關資料庫設計、實現、運行和擴充階段的各種信息的工具。
數據字典(Data dictionary,縮寫為 DD) 是存放資料庫各級模式結構的描述,也是訪問資料庫的介面。
歸納起來,數據字典的功能包括以下幾方面:
①描述資料庫系統的所有對象,如屬性、實體、記錄類型、數據項、 用戶標識、口令、物理文件名及其位置、文件組織方法等;
②描述資料庫系統各種對象之間的交叉聯系,如哪個用戶使用哪個子模式,哪個記錄分配在哪個區域,存貯在哪個物理設備上;
③登記所有對象在不同場合、不同視圖中的名稱對照表;
④描述模式、子模式和物理模式的改動情況。
代碼是代表客觀存在的實體或屬性的符號(如數字、字母或它們的組合)。在信息系統中,代碼是人和機器的共同語言,是便於進行信息分類、校對、統計和檢索的關鍵,是資料庫規范化、標准化的依據。代碼設計是實現一個信息系統的前提條件,其目的是要設計出一套為系統各部分所公用的優化代碼系統。代碼設計
代碼設計是編制數據字典開始的,編碼對象為數據存儲中所包含的數據元素與數據結構。代碼設計的結果是形成代碼字典,作為系統設計與編程的標准。
現行系統中,已經存在著一套代碼系統,但是,這種代碼不一定適合計算機處理,而且往往不科學、不統一,為此應對本系統使用的代碼進行調查研究和統一規劃,以便進行重新設計或修訂,其中對重要代碼的設計應依據國家有關編碼標准。
代碼設計是一項重要的工作。如果代碼設計不合適,小修改將會引起程序的變化,大修改則會引起文件的重新建立。故一定要進行全面的考慮和仔細的推敲、修改,逐步優化,最後確定,切忌草率行事。
是代碼的基本分類,在實際設計中,可以根據需要進行選擇,或將不同的類型組合起來使用。
詞語代碼的分類一般以結構為准,所謂的代碼結構是指代碼內部各個符號或符號組之間的關系。就目前情況看,詞語的代碼結構類型有十種以上,但在地質上常用的有五種,即特徵組合結構、順序結構、助記結構、分類結構和混合結構。其代碼的種類也相應地分為特徵組合碼、順序碼、助記碼、分類碼和混合碼五種。
按照這種設計思路設計你的數據字典,就是很標準的數據點啦!
注意事項
資料庫系統是一個復雜的系統,其中所包含的信息除了用戶數據外,還有很多非用戶數據信息。例如,模式和子模式的內容、文件間的聯系、數據項的長度、類型、用戶標識符、口令、索引等等。這些非用戶數據是整個資料庫系統的情報系統,如果沒有它們或它們遭到了破壞,則整個系統將陷入癱瘓狀態,即使資料庫本身完好無損,也將無濟於事。為了使資料庫的設計、實現、運行、維護、擴充有一個共同遵循的標准和依據,並且也為了保證資料庫的共享性、安全性、完整性、一致性、有效性、可恢復性以及可擴充性,人們在資料庫中設置了數據字典,來集中保存這些信息。由於數據字典是描述資料庫中各數據屬性與組成的數據集合,因此有人把它看做是關於資料庫的資料庫。
數據字典的作用是:
①管理系統數據資源——數據字典提供了管理和收集數據的方法;
②實現數據標准化——在資料庫中,數據的名稱、格式和涵義等在不同的場合下容易混淆,數據字典提供使之標准化的工具,它可以給這些內容予以統一的名稱、格式和涵義;
③使系統的描述文體化——所有和系統有關的描述,都可以對數據字典中的信息進行查詢、插入、刪除和修改;
④作為設計的工具——由於數據字典中存放著與資料庫有關的各種信息和原始資料,就為資料庫設計提供了有力的工具;
⑤為資料庫提供存取控制和管理——資料庫在接受每一個對資料庫的存取請求時,都要檢查用戶標識、口令、子模式、模式和物理模式等。所以從某種意義上講,數據字典控制了資料庫的運行;
⑥供資料庫管理員(DBA)進行各種查詢,以便了解系統性能、空間使用狀況和各種統計信息,及時掌握資料庫的動態。所以數據字典是 DBA 觀察資料庫的眼晴和窗口。
『叄』 mysql資料庫數據字典表怎麼寫
你導出 information_schema 資料庫里的所有表就OK了 新特性啊,以前只有ORACLE才有的
『肆』 什麼是數據字典SQL SERVER 中如何創建數據字典
數據字典是關於數據的信息的集合,也就是對數據流圖中包含的所有元素的定義的集合. 組成 1數據流 2數據流分量,即數據元素 3數據存儲 4處理 數據字典 資料庫的重要部分是數據字典。它存放有資料庫所用的有關信息,對用戶來說是一組只讀的表。數...
『伍』 SQL資料庫數據字典怎麼生成的
數據字典是關於數據的信息的集合,也就是對數據流圖中包含的所有元素的定義的集合。
資料庫數據字典是一組表和視圖結構。它們存放在SYSTEM表空間中。
資料庫數據字典不僅是每個資料庫的中心。而且對每個用戶也是非常重要的信息。用戶可以用SQL語句訪問資料庫數據字典。
生成資料庫參考代碼如下:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Carbe>
-- Create date: <2014-09-19>
-- Description: <生成資料庫字典>
-- =============================================
CREATE PROCEDURE [dbo].[CreateDatabaseDictionarie]
AS
BEGIN
DECLARE @TableName nvarchar(35),@htmls varchar(8000)
DECLARE @欄位名稱 VARCHAR(200)
DECLARE @類型 VARCHAR(200)
DECLARE @長度 VARCHAR(200)
DECLARE @數值精度 VARCHAR(200)
DECLARE @小數位數 VARCHAR(200)
DECLARE @默認值 VARCHAR(200)
DECLARE @允許為空 VARCHAR(200)
DECLARE @外鍵 VARCHAR(200)
DECLARE @主鍵 VARCHAR(200)
DECLARE @描述 VARCHAR(200)
SET NOCOUNT ON;
DECLARE Tbls CURSOR
FOR
Select distinct Table_name
FROM INFORMATION_SCHEMA.COLUMNS
order by Table_name
OPEN Tbls
PRINT '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'
PRINT '<html xmlns="http://www.w3.org/1999/xhtml">'
PRINT ' <head>'
PRINT ' <title>KC管理系統-資料庫字典</title>'
PRINT ' <style type="text/css">'
PRINT ' body{margin:0; font:11pt "arial", "微軟雅黑"; cursor:default;}'
PRINT ' .tableBox{margin:10px auto; padding:0px; width:1000px; height:auto; background:#FBF5E3; border:1px solid #45360A}'
PRINT ' .tableBox h3 {font-size:12pt; height:30px; line-height:30px; background:#45360A; padding:0px 0px 0px 15px; color:#FFF; margin:0px; text-align:left }'
PRINT ' .tableBox table {width:1000px; padding:0px }'
PRINT ' .tableBox th {height:25px; border-top:1px solid #FFF; border-left:1px solid #FFF; background:#F7EBC8; border-right:1px solid #E0C889; border-bottom:1px solid #E0C889 }'
PRINT ' .tableBox td {height:25px; padding-left:10px; border-top:1px solid #FFF; border-left:1px solid #FFF; border-right:1px solid #E0C889; border-bottom:1px solid #E0C889 }'
PRINT ' </style>'
PRINT ' </head>'
PRINT ' <body>'
FETCH NEXT FROM Tbls INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
Select @htmls = ' <h3>' + @TableName + ' : '+ CAST(Value as varchar(1000)) + '</h3>'
FROM sys.extended_properties AS A
WHERE A.major_id = OBJECT_ID(@TableName)
and name = 'MS_Description' and minor_id = 0
PRINT ' <div class="tableBox">'
PRINT @htmls
PRINT ' <table cellspacing="0">'
PRINT ' <tr>'
PRINT ' <th>欄位名稱</th>'
PRINT ' <th>類型</th>'
PRINT ' <th>長度</th>'
PRINT ' <th>數值精度</th>'
PRINT ' <th>小數位數</th>'
PRINT ' <th>默認值</th>'
PRINT ' <th>允許為空</th>'
PRINT ' <th>外鍵</th>'
PRINT ' <th>主鍵</th>'
PRINT ' <th>描述</th>'
PRINT ' </tr>'
DECLARE TRows CURSOR
FOR
SELECT
' <td>' + CAST(clmns.name AS VARCHAR(35)) + '</td>',
' <td>' + CAST(udt.name AS CHAR(15)) + '</td>' ,
' <td>' + CAST(CAST(CASE WHEN typ.name IN (N'nchar', N'nvarchar') AND clmns.max_length <> -1 THEN clmns.max_length/2 ELSE clmns.max_length END AS INT) AS VARCHAR(20)) + '</td>',
' <td>' + CAST(CAST(clmns.precision AS INT) AS VARCHAR(20)) + '</td>',
' <td>' + CAST(CAST(clmns.scale AS INT) AS VARCHAR(20)) + '</td>',
' <td>' + isnull(CAST(cnstr.definition AS VARCHAR(20)),'') + '</td>',
' <td>' + CAST(clmns.is_nullable AS VARCHAR(20)) + '</td>' ,
' <td>' + CAST(clmns.is_computed AS VARCHAR(20)) + '</td>' ,
' <td>' + CAST(clmns.is_identity AS VARCHAR(20)) + '</td>' ,
' <td>' + ISNULL(CAST(exprop.value AS VARCHAR(500)),'') + '</td>'
FROM sys.tables AS tbl
INNER JOIN sys.all_columns AS clmns ON clmns.object_id=tbl.object_id
LEFT OUTER JOIN sys.indexes AS idx ON idx.object_id = clmns.object_id AND 1 =idx.is_primary_key
LEFT OUTER JOIN sys.index_columns AS idxcol ON idxcol.index_id = idx.index_id AND idxcol.column_id = clmns.column_id AND idxcol.object_id = clmns.object_id AND 0 = idxcol.is_included_column
LEFT OUTER JOIN sys.types AS udt ON udt.user_type_id = clmns.user_type_id
LEFT OUTER JOIN sys.types AS typ ON typ.user_type_id = clmns.system_type_id AND typ.user_type_id = typ.system_type_id
LEFT JOIN sys.default_constraints AS cnstr ON cnstr.object_id=clmns.default_object_id
LEFT OUTER JOIN sys.extended_properties exprop ON exprop.major_id = clmns.object_id AND exprop.minor_id = clmns.column_id AND exprop.name = 'MS_Description'
WHERE (tbl.name = @TableName and exprop.class = 1) --I don't wand to include comments on indexes
ORDER BY clmns.column_id ASC
OPEN TRows
FETCH NEXT FROM TRows INTO @欄位名稱,@類型,@長度,@數值精度,@小數位數,@默認值,@允許為空,@外鍵,@主鍵,@描述
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT ' <tr>'
PRINT @欄位名稱
PRINT @類型
PRINT @長度
PRINT @數值精度
PRINT @小數位數
PRINT @默認值
PRINT @允許為空
PRINT @外鍵
PRINT @主鍵
PRINT @描述
PRINT ' </tr>'
FETCH NEXT FROM TRows INTO @欄位名稱,@類型,@長度,@數值精度,@小數位數,@默認值,@允許為空,@外鍵,@主鍵,@描述
END
CLOSE TRows
DEALLOCATE TRows
PRINT ' </table>'
PRINT ' </div>'
FETCH NEXT FROM Tbls INTO @TableName
END
PRINT ' </body>'
PRINT '</html>'
CLOSE Tbls
DEALLOCATE Tbls
END
『陸』 數據字典怎麼寫
數據字典的組成:
1、數據項
2、數據結構
3、數據流
4、數據存儲
5、處理過程
數據字典內容包括:
1、資料庫中所有模式對象的信息,如表、視圖、簇、及索引等。
2、分配多少空間,當前使用了多少空間等。
3、列的預設值。
4、約束信息的完整性。
5、用戶的名字。
6、用戶及角色被授予的許可權。
7、用戶訪問或使用的審計信息。
8、其它產生的資料庫信息。
資料庫數據字典是一組表和視圖結構。它們存放在SYSTEM表空間中。
資料庫數據字典不僅是每個資料庫的中心。而且對每個用戶也是非常重要的信息。用戶可以用SQL語句訪問資料庫數據字典。
關於數據的信息集合,是一種用戶可以訪問的記錄資料庫和應用程序元數據的目錄,是對資料庫內表信息的物理與邏輯的說明
『柒』 數據字典怎麼寫,舉個例子。
就是資料庫中的每個表的各個列的信息
一般寫如下幾項:
例如:
表名:學生表 StudentInfo
列名 數據類型 長度 是否為主鍵(是外鍵要寫外鍵) 功能描述
stuId varchar 20 是 學號
subId varchar 20 外鍵 課程號
『捌』 怎麼生成數據字典
數據字典是關於數據的信息的集合,也就是對數據流圖中包含的所有元素的定義的集合。
資料庫數據字典是一組表和視圖結構。它們存放在SYSTEM表空間中。
資料庫數據字典不僅是每個資料庫的中心。而且對每個用戶也是非常重要的信息。用戶可以用SQL語句訪問資料庫數據字典。
生成資料庫參考代碼如下:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Carbe>
-- Create date: <2014-09-19>
-- Description: <生成資料庫字典>
-- =============================================
CREATE PROCEDURE [dbo].[CreateDatabaseDictionarie]
AS
BEGIN
DECLARE @TableName nvarchar(35),@htmls varchar(8000)
DECLARE @欄位名稱 VARCHAR(200)
DECLARE @類型 VARCHAR(200)
DECLARE @長度 VARCHAR(200)
DECLARE @數值精度 VARCHAR(200)
DECLARE @小數位數 VARCHAR(200)
DECLARE @默認值 VARCHAR(200)
DECLARE @允許為空 VARCHAR(200)
DECLARE @外鍵 VARCHAR(200)
DECLARE @主鍵 VARCHAR(200)
DECLARE @描述 VARCHAR(200)
SET NOCOUNT ON;
DECLARE Tbls CURSOR
FOR
Select distinct Table_name
FROM INFORMATION_SCHEMA.COLUMNS
order by Table_name
OPEN Tbls
PRINT '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'
PRINT '<html xmlns="http://www.w3.org/1999/xhtml">'
PRINT ' <head>'
PRINT ' <title>KC管理系統-資料庫字典</title>'
PRINT ' <style type="text/css">'
PRINT ' body{margin:0; font:11pt "arial", "微軟雅黑"; cursor:default;}'
PRINT ' .tableBox{margin:10px auto; padding:0px; width:1000px; height:auto; background:#FBF5E3; border:1px solid #45360A}'
PRINT ' .tableBox h3 {font-size:12pt; height:30px; line-height:30px; background:#45360A; padding:0px 0px 0px 15px; color:#FFF; margin:0px; text-align:left }'
PRINT ' .tableBox table {width:1000px; padding:0px }'
PRINT ' .tableBox th {height:25px; border-top:1px solid #FFF; border-left:1px solid #FFF; background:#F7EBC8; border-right:1px solid #E0C889; border-bottom:1px solid #E0C889 }'
PRINT ' .tableBox td {height:25px; padding-left:10px; border-top:1px solid #FFF; border-left:1px solid #FFF; border-right:1px solid #E0C889; border-bottom:1px solid #E0C889 }'
PRINT ' </style>'
PRINT ' </head>'
PRINT ' <body>'
FETCH NEXT FROM Tbls INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
Select @htmls = ' <h3>' + @TableName + ' : '+ CAST(Value as varchar(1000)) + '</h3>'
FROM sys.extended_properties AS A
WHERE A.major_id = OBJECT_ID(@TableName)
and name = 'MS_Description' and minor_id = 0
PRINT ' <div class="tableBox">'
PRINT @htmls
PRINT ' <table cellspacing="0">'
PRINT ' <tr>'
PRINT ' <th>欄位名稱</th>'
PRINT ' <th>類型</th>'
PRINT ' <th>長度</th>'
PRINT ' <th>數值精度</th>'
PRINT ' <th>小數位數</th>'
PRINT ' <th>默認值</th>'
PRINT ' <th>允許為空</th>'
PRINT ' <th>外鍵</th>'
PRINT ' <th>主鍵</th>'
PRINT ' <th>描述</th>'
PRINT ' </tr>'
DECLARE TRows CURSOR
FOR
SELECT
' <td>' + CAST(clmns.name AS VARCHAR(35)) + '</td>',
' <td>' + CAST(udt.name AS CHAR(15)) + '</td>' ,
' <td>' + CAST(CAST(CASE WHEN typ.name IN (N'nchar', N'nvarchar') AND clmns.max_length <> -1 THEN clmns.max_length/2 ELSE clmns.max_length END AS INT) AS VARCHAR(20)) + '</td>',
' <td>' + CAST(CAST(clmns.precision AS INT) AS VARCHAR(20)) + '</td>',
' <td>' + CAST(CAST(clmns.scale AS INT) AS VARCHAR(20)) + '</td>',
' <td>' + isnull(CAST(cnstr.definition AS VARCHAR(20)),'') + '</td>',
' <td>' + CAST(clmns.is_nullable AS VARCHAR(20)) + '</td>' ,
' <td>' + CAST(clmns.is_computed AS VARCHAR(20)) + '</td>' ,
' <td>' + CAST(clmns.is_identity AS VARCHAR(20)) + '</td>' ,
' <td>' + ISNULL(CAST(exprop.value AS VARCHAR(500)),'') + '</td>'
FROM sys.tables AS tbl
INNER JOIN sys.all_columns AS clmns ON clmns.object_id=tbl.object_id
LEFT OUTER JOIN sys.indexes AS idx ON idx.object_id = clmns.object_id AND 1 =idx.is_primary_key
LEFT OUTER JOIN sys.index_columns AS idxcol ON idxcol.index_id = idx.index_id AND idxcol.column_id = clmns.column_id AND idxcol.object_id = clmns.object_id AND 0 = idxcol.is_included_column
LEFT OUTER JOIN sys.types AS udt ON udt.user_type_id = clmns.user_type_id
LEFT OUTER JOIN sys.types AS typ ON typ.user_type_id = clmns.system_type_id AND typ.user_type_id = typ.system_type_id
LEFT JOIN sys.default_constraints AS cnstr ON cnstr.object_id=clmns.default_object_id
LEFT OUTER JOIN sys.extended_properties exprop ON exprop.major_id = clmns.object_id AND exprop.minor_id = clmns.column_id AND exprop.name = 'MS_Description'
WHERE (tbl.name = @TableName and exprop.class = 1) --I don't wand to include comments on indexes
ORDER BY clmns.column_id ASC
OPEN TRows
FETCH NEXT FROM TRows INTO @欄位名稱,@類型,@長度,@數值精度,@小數位數,@默認值,@允許為空,@外鍵,@主鍵,@描述
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT ' <tr>'
PRINT @欄位名稱
PRINT @類型
PRINT @長度
PRINT @數值精度
PRINT @小數位數
PRINT @默認值
PRINT @允許為空
PRINT @外鍵
PRINT @主鍵
PRINT @描述
PRINT ' </tr>'
FETCH NEXT FROM TRows INTO @欄位名稱,@類型,@長度,@數值精度,@小數位數,@默認值,@允許為空,@外鍵,@主鍵,@描述
END
CLOSE TRows
DEALLOCATE TRows
PRINT ' </table>'
PRINT ' </div>'
FETCH NEXT FROM Tbls INTO @TableName
END
PRINT ' </body>'
PRINT '</html>'
CLOSE Tbls
DEALLOCATE Tbls
END
『玖』 資料庫設計說明書中的數據字典應該如何編寫啊
正文
1 引言
1.1編寫目的
說明編寫這份資料庫設計說明書的目的,指出預期的讀者。
1.2背景
說明:
a.說明待開發的資料庫的名稱和使用此資料庫的軟體系統的名稱;
b.列出該軟體系統開發項目的任務提出者、用戶以及將安裝該軟體和這個資料庫的計算站(中心)。
1.3定義
列出本文件中用到的專門術語的定義、外文首字母組詞的原片語。
1.4參考資料
列出有關的參考資料:
a.本項目的經核準的計劃任務書或合同、上級機關批文;
b.屬於本項目的其他已發表的文件;
c.本文件中各處引用到的文件資料,包括所要用到的軟體開發標准。
列出這些文件的標題、文件編號、發表日期和出版單位,說明能夠取得這些文件的來源。
2 外部設計
2.1標識符和狀態
聯系用途,詳細說明用於唯一地標識該資料庫的代碼、名稱或標識符,附加的描述性信息亦要給出。如果該資料庫屬於尚在實驗中、尚在測試中或是暫時使用的,則要說明這一特點及其有效時間范圍。
2.2使用它的程序
列出將要使用或訪問此資料庫的所有應用程序,對於這些應用程序的每一個,給出它的名稱和版本號。
2.3約定
陳述一個程序員或一個系統分析員為了能使用此資料庫而需要了解的建立標號、標識的約定,例如 用於標識資料庫的不同版本的約定和用於標識庫內各個文卷、、記錄、數據項的命名約定等。
2.4專門指導
向准備從事此資料庫的生成、從事此資料庫的測試、維護人員提供專門的指導,例如將被送入數據 庫的數據的格式和標准、送入資料庫的操作規程和步驟,用於產生、修改、更新或使用這些數據文卷的操 作指導。 如果這些指導的內容篇幅很長,列出可參閱的文件資料的名稱和章條。
2.5支持軟體
簡單介紹同此資料庫直接有關的支持軟體,如資料庫管理系統、存儲定位程序和用於裝入、生成、修 改、更新資料庫的程序等。說明這些軟體的名稱、版本號和主要功能特性,如所用數據模型的類型、允許 的數據容量等。列出這些支持軟體的技術文件的標題、編號及來源。
3 結構設計
3.1概念結構設計
說明本資料庫將反映的現實世界中的實體、屬性和它們之間的關系等的原始數據形式,包括各數據項、記錄、系、文卷的標識符、定義、類型、度量單位和值域,建立本資料庫的每一幅用戶視圖。
3.2邏輯結構設計
說明把上述原始數據進行分解、合並後重新組織起來的資料庫全局邏輯結構,包括所確定的關鍵字和屬性、重新確定的記錄結構和文卷結構、所建立的各個文卷之間的相互關系,形成本資料庫的資料庫管理員視圖。
3.3物理結構設計
建立系統程序員視圖,包括:
a.數據在內存中的安排,包括對索引區、緩沖區的設計;
b.所使用的外存設備及外存空間的組織,包括索引區、數據塊的組織與劃分;
c.訪問數據的方式方法。
4 運用設計
4.1數據字典設計
對資料庫設計中涉及到的各種項目,如數據項、記錄、系、文卷、模式、子模式等一般要建立起數據字典,以說明它們的標識符、同義名及有關信息。在本節中要說明對此數據字典設計的基本考慮。
4.2安全保密設計
說明在資料庫的設計中,將如何通過區分不同的訪問者、不同的訪問類型和不同的數據對象,進行分別對待而獲得的資料庫安全保密的設計考慮。
『拾』 數據字典的具體格式怎麼寫
分為模擬數據
和資料庫表結構用以下腳本生成
以SQL2000為例
查出表的各個欄位的所有屬性
SELECT
表名 = case when a.colorder=1 then d.name else '' end,
表說明 = case when a.colorder=1 then isnull(f.value,'') else '' end,
欄位序號 = a.colorder,
欄位名 = a.name,
標識 = case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
主鍵 = case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=a.id and name in (
SELECT name FROM sysindexes WHERE indid in(
SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid))) then '√' else '' end,
類型 = b.name,
佔用位元組數 = a.length,
長度 = COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小數位數 = isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允許空 = case when a.isnullable=1 then '√'else '' end,
默認值 = isnull(e.text,''),
欄位說明 = isnull(g.[value],'')
FROM
syscolumns a
left join
systypes b
on
a.xusertype=b.xusertype
inner join
sysobjects d
on
a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
left join
syscomments e
on
a.cdefault=e.id
left join
sysproperties g
on
a.id=g.id and a.colid=g.smallid
left join
sysproperties f
on
d.id=f.id and f.smallid=0
where
d.name='要查詢的表' --如果只查詢指定表,加上此條件
order by
a.id,a.colorder