㈠ 如何使用PowerDesigner創建物理數據模型
物理數據模型(PDM)的主要功能:
1、可以將資料庫的物理設計結果從一種資料庫移植到另一種資料庫;
2、可以通過反向工程將已經存在的資料庫物理結構重新生成物理模型或概念模型;
3、可以定製生成標準的模型報告;
4、可以轉換為OOM;
5、完成多種資料庫的詳細物理設計(涵蓋常用的各種資料庫的DBMS),並生成資料庫對象的.sql腳本;
㈡ oracle資料庫導出是出現的問題
資料庫結構和空間管理
一個ORACLE資料庫是數據的集合,被處理成一個單位。一個ORACLE資料庫有一個物理結構和一個邏輯結構。
物理資料庫結構(physical database structure)是由構成資料庫的操作系統文件所決定。每一個ORACLE資料庫是由三種類型的文件組成:數據文件、日誌文件和控制文件。資料庫的文件為資料庫信息提供真正的物理存儲。
邏輯資料庫結構是用戶所涉及的資料庫結構。一個ORACLE資料庫的邏輯結構由下列因素決定:
l 一個或多個表空間
l 資料庫模式對象(即表、視圖、索引、聚集、序列、存儲過程)
邏輯存儲結構如表空間(dataspace)、段(segment)和范圍將支配一個資料庫的物理空間如何使用。模式對象(schema object)用它們之間的聯系組成了一個資料庫的關系設計。
1) 物理結構
(1) 數據文件
每一個ORACLE資料庫有一個或多個物理的數據文件(data file)。一個資料庫的數據文件包含全部資料庫數據。邏輯資料庫結構(如表、索引)的數據物理地存儲在資料庫的數據文件中。數據文件有下列特徵:
l 一個數據文件僅與一個資料庫聯系。
l 一旦建立,數據文件不能改變大小
l 一個表空間(資料庫存儲的邏輯單位)由一個或多個數據文件組成。
數據文件中的數據在需要時可以讀取並存儲在ORACLE內存儲區中。例如:用戶要存取資料庫一表的某些數據,如果請求信息不在資料庫的內存存儲區內,則從相應的數據文件中讀取並存儲在內存。當修改和插入新數據時,不必立刻寫入數據文件。為了減少磁碟輸出的總數,提高性能,數據存儲在內存,然後由 ORACLE後台進程DBWR決定如何將其寫入到相應的數據文件。
(2) 日誌文件
每一個資料庫有兩個或多個日誌文件(redo log file)的組,每一個日誌文件組用於收集資料庫日誌。日誌的主要功能是記錄對數據所作的修改,所以對資料庫作的全部修改是記錄在日誌中。在出現故障時,如果不能將修改數據永久地寫入數據文件,則可利用日誌得到該修改,所以從不會丟失已有操作成果。
日誌文件主要是保護資料庫以防止故障。為了防止日誌文件本身的故障,ORACLE允許鏡象日誌(mirrored redo log),以致可在不同磁碟上維護兩個或多個日誌副本。
日誌文件中的信息僅在系統故障或介質故障恢復資料庫時使用,這些故障阻止將資料庫數據寫入到資料庫的數據文件。然而任何丟失的數據在下一次資料庫打開時,ORACLE自動地應用日誌文件中的信息來恢復資料庫數據文件。
(3) 控制文件
每一ORACLE資料庫有一個控制文件(control file),它記錄資料庫的物理結構,包含下列信息類型:
l 資料庫名;
l 資料庫數據文件和日誌文件的名字和位置;
l 資料庫建立日期。
為了安全起見,允許控制文件被鏡象。
每一次ORACLE資料庫的實例啟動時,它的控制文件用於標識資料庫和日誌文件,當著手資料庫操作時它們必須被打開。當資料庫的物理組成更改時,ORACLE自動更改該資料庫的控制文件。數據恢復時,也要使用控制文件。
2) 邏輯結構
資料庫邏輯結構包含表空間、段、范圍(extent)、數據塊和模式對象。
(1) 表空間
一個資料庫劃分為一個或多個邏輯單位,該邏輯單位稱為表空間(TABLESPACE)。一個表空間可將相關的邏輯結構組合在一起。DBA可利用表空間作下列工作:
l 控制資料庫數據的磁碟分配。
l 將確定的空間份額分配給資料庫用戶。
l 通過使單個表空間在線或離線,控制數據的可用性。
l 執行部分資料庫後備或恢復操作。
l 為提高性能,跨越設備分配數據存儲。
資料庫、表空間和數據文件之間的關系如下圖所示:
Database
SYSTEM DATA
Tablespace Tablespace
DTATAFILE1
(2MB) DATAFILE2
(2MB) DATAFILE3
(2MB)
Driver1 Driver2
。每個資料庫可邏輯劃分為一個或多個表空間
。每一個表空間是由一個或多個數據文件組成,該表空間物理地存儲表空間中全部邏輯結構的數據。DBA可以建立新的表空間,可為表空間增加數據文件或可刪除數據文件,設置或更改預設的段存儲位置。
每一個ORACLE資料庫包含有一個名為SYSTEM的表空間,在資料庫建立是自動建立。在該表空間中總包含有整個資料庫的數據字典表。最小的資料庫可只需要SYSTEM表空間。該表空間必須總是在線。表和存儲的PL/SQL程序單元(過程、函數、包和觸發器)的全部存儲數據是存儲在SYSTEM表空間中。如果這些PL/SQL對象是為資料庫建的,DBA在SYSTEM表空間中需要規劃這些對象所需要的空間。
表空間利用增加數據文件擴大表空間,表空間的大小為組成該表空間的數據文件大小的和。
DBA可以使ORACLE資料庫中任何錶空間(除SYSTEM表空間外)在線(ONLINE)或離線(OFFLINE)。表空間通常是在線,以致它所包含的數據對資料庫用戶是可用的。當表空間為離線時,其數據不可使用。在下列情況下,DBA可以使其離線。
。使部分數據不可用,而剩餘的部分允許正常存取
。執行離線的表空間後備
。為了修改或維護一應用,使它和它的一組表臨時不可用。
包含有正在活動的回滾段的表空間不能被離線,僅當回滾段不正在使用時,該表空間才可離線。
在數據字典中記錄表空間的狀態,在線還是離線。如果在資料庫關閉時一表空間為離線,那麼在下次資料庫裝配和重新打開後,它仍然保持離線。
當出現某些錯誤時,一個表空間可自動地由在線改變為離線。通過使用多個表空間,將不同類型的數據分開,更方便DBA來管理資料庫。
ORACLE 資料庫中一表空間是由一個或多個物理數據文件組成,一個數據文件只可與一個表空間想聯系。當為一表空間建立一數據文件時,ORACLE建立該文件,分配指定的磁碟空間容量。在數據文件初時建立後,所分配的磁碟不包含任何數據。表空間可以在線或離線。在ORACLE中還允許單獨數據文件在線或離線。
(2) 段、范圍和數據塊
ORACLE通過段、范圍和數據塊邏輯數據結構可更細地控制磁碟空間的使用。
段
段(SEGMENT)包含表空間中一種指定類型的邏輯存儲結構,是由一組范圍組成。在ORACLE資料庫中有幾種類型的段:數據段、牽引段、回滾段和臨時段。
數據段:對於每一個非聚集的表有一數據段,表的所有數據存放在該段。每一聚集有一個數據段,聚集中每一個表的數據存儲在該段中。
索引段:每一個索引有一索引段,存儲索引數據。
回滾段:是由DBA建立,用於臨時存儲要撤消的信息,這些信息用於生成讀一致性資料庫信息、在資料庫恢復時使用、回滾未提交的事務。
臨時段:當一個SQL語句需要臨時工作區時,由ORACLE建立。當語句執行完畢,臨時段的范圍退回給系統。
ORACLE對所有段的空間分配,以范圍為單位。
范圍
一個范圍(EXTENT)是資料庫存儲空間分配的一個邏輯單位,它由連續數據塊所組成。每一個段是由一個或多個范圍組成。當一段中間所有空間已完全使用時,ORACLE為該段分配一個新的范圍。
為了維護的目的,在資料庫的每一段含有段標題塊(segment header block)說明段的特徵以及該段中的范圍目錄。
數據塊
數據塊(data block)是ORACLE管理數據文件中存儲空間的單位,為資料庫使用的I/O的最小單位,其大小可不同於操作系統的標准I/O塊大小。
數據塊的格式:
公用的變長標題
表目錄
行目錄
未用空間
行數據
(3) 模式和模式對象
一個模式(schema)為模式對象(scehma object)的一個集合,每一個資料庫用戶對應一個模式。模式對象為直接引用資料庫數據的邏輯結構,模式對象包含如表、視圖、索引、聚集、序列、同義詞、資料庫鏈、過程和包等結構。模式對象是邏輯數據存儲結構,每一種模式對象在磁碟上沒有一個相應文件存儲其信息。一個模式對象邏輯地存儲在資料庫的一個表空間中,每一個對象的數據物理地包含在表空間的一個或多個數據文件中。
表
表(table)為資料庫中數據存儲的基本單位,其數據按行、列存儲。每個表具有一表名和列的集合。每一列有一個列名、數據類型、寬度或精度、比例。一行是對應單個記錄的列信息的集合。
視圖
一個視圖(view)是由一個或多個表(或其他視圖)中的數據的一種定製的表示,是用一個查詢定義,所以可認為是一個存儲的查詢(stored query)或是一個虛表(virtual table)。視圖可在使用表的許多地方使用。
由於視圖是由表導出的,視圖和表存在許多類似,視圖象表最多可定義254列。視圖可以被查詢,而在修改、插入或刪除時具有一定的限制,在視圖上執行的全部操作真正地影響視圖的基本表中的數據,受到基本表的完整性約束和觸發器的限制。
視圖與表不同,一個視圖不分配任何存儲空間,視圖不真正地包含數據。由查詢定義的視圖相應於視圖引用表中的數據。視圖只在數據字典中存儲其定義。
引入視圖有下列好處:
。通過限制對表的行預定義集合的存取,為表提供附加的安全性
。隱藏數據復雜性。
。為用戶簡化命令
。為基本表的數據提供另一種觀點。
。可將應用隔離基本表定義的修改
。用於不用視圖無法表示的查詢。
。可用於保存復雜查詢。
聚集
聚集(cluster)是存儲表數據的可選擇的方法。一個聚集是一組表,將具有同一公共列值的行存儲在一起,並且它們經常一起使用。這些公共列構成聚集碼。例如:EMP表各DEPT表共享DEPTNO列,所以EMP表和DEPT表可聚集在一起,聚集碼的列為DEPTNO列,該聚集將每個部門的全部職工行各該部門的行物理地存儲在同一數據塊中。
索引
索引(index)是與表和聚集相關的一種選擇結構。索引是為提高數據檢索的性能而建立,利用它可快速地確定指定的信息。ORACLE索引為表數據提供快速存取路徑。索引適用於一范圍的行查詢或指定行的查詢。
索引可建立在一表的一列或多列上,一旦建立,由ORACLE自動維護和使用,對用戶是完全透明的。索引是邏輯地和物理地獨立於數據,它們的建立或刪除對表沒有影響,應用可繼續處理。索引數據的檢索性能幾乎保持常數,而當一表上存在許多索引時,修改、刪除和插入操作的性能會下降。
索引有唯一索引各非唯一索引。唯一索引保證表中沒有兩行在定義索引的列上具有重復值。ORACLE在唯一碼上自動地定義唯一索引實施UNIQUE完整性約束。
組合索引是在表的某個列上所建立的一索引。組全索引可加快SELECT語句的檢索速度,在其WHERE子句中可引用組合索引的全部或主要部分 。所以在定義中給出列的次序,將經常存取的或選擇最多的列放在首位。
在建立索引時,將在表空間自動地建立一索引段,索引段空間分配和保留空間的使用受下列方式控制:
索引段范圍的分配常駐該索引段的存儲參數控制。
其數據塊中未用空間可受該段的PCTFREE參數設置所控制。
序列生成器
序列生成器(sequence generator)產生序列號。在多用戶環境下該序列生成器特別有用,可生成各返回序列號而不需要磁碟I/O或事務封鎖。
序列號為ORACLE整數,最多可有38個數字。一個序列定義指出一般信息:序列的名字、上升或下降、序列號之間間距和其它信息。對所有序列的確的定義以行存儲在SYSTEM表空間中的數據字典表中,所以所有序列定義總是可用。由引用序列號的SQL語句使用序列號,可生成一個新的序列號或使用當前序列號。一旦在用戶會話中的SQL語句生成一序列號,該序列號僅為該會話可用。序列號生成是獨立於表,所以同一序列生成器可用於一個和多個表。所生成序列號可用於生成唯一的主碼。
㈢ 如何通過sql命令查看oracle資料庫的物理結構
資料庫的物理結構一般是指資料庫文件的組成情況,
數據文件可以查詢數據字典dba_data_files:
select * from dba_data_files;
日誌文件可以查詢v$logfile;
select * from v$logfile;
控制文件可以直接查參數
show parameter control;
㈣ 怎麼使用 powerdesigner 生成 表結構圖
打開powerdesigner這個軟體。
打開軟體後,選擇 File --> Reverse Engineer --> 選擇 Database。
這里可以輸入 你表結構的名稱,也可以不填寫,點擊確定按鈕。
點擊 紅色 標記按鈕,選擇已經准備好的資料庫文件,然後點擊確定按鈕。
確定後,如果資料庫文件不是很大,稍等片刻表結構圖就會自動生成了!生成好的表結構圖,:
㈤ 資料庫的物理存儲結構和數據的物理物理結構
是一樣的。這個不用太過糾結。資料庫和數據結構本身就不是兩個獨立的學科。資料庫書數據結構的具體應用。數據結構書里一開始用的例子就是資料庫建的一個表。簡單的說,數據結構是建立資料庫的方法。
所以兩者是相通的
㈥ 如何使用PowerDesigner創建物理數據模型
1、新建一個物理模型後,此時就會進入物理模型的設計面板,
2、系統會顯示一個專門用於物理模型設計的工具欄
3、若要在物理模型中添加一個表,單擊按鈕,然後再到模型設計面板中單擊一次便可以添加一個表,系統默認為表命名為Table_n,這里的n會隨著添加的表增多而順序增加。添加的表是沒有任何的列的,
4、單擊工具欄的按鈕,講滑鼠切換回指針模式,然後雙擊一個表,系統將打開表的屬性窗口,在General選項卡中可以設置表的Name、Code等屬性
例如我們要新建一個學生表(Student),則可以修改Name和Code
5、單擊【Columns】切換到列選項卡,在下面的列表中可以添加表中的列,Name是模型上顯示的名稱,Code是生成的實際列名,後面的3個復選框P代表主鍵(primary key),F代表外鍵(foreign key),M代表不能為空。為學生表添加列,
點擊【確定】按鈕,就可以創建完成了,
㈦ 怎麼導出mysql資料庫表結構
在命令行下mysql的數據導出有個很好用命令mysqlmp,它的參數有一大把,可以這樣查看:
mysqlmp
最常用的:
mysqlmp -uroot -pmysql databasefoo table1 table2 > foo.sql
這樣就可以將資料庫databasefoo的表table1,table2以sql形式導入foo.sql中,其中-uroot參數表示訪問資料庫的用戶名是root,如果有密碼還需要加上-p參數
C:\Users\jack> mysqlmp -uroot -pmysql sva_rec date_drv > e:\date_drv.sql
mysql的數據導入也是相當便捷的,如:
mysql -uroot databasefoo < foo.sql
這樣就可以將foo.sql的數據全部導入資料庫databasefoo
1.導出整個資料庫
mysqlmp -u用戶名 -p密碼 資料庫名 > 導出的文件名
C:\Users\jack> mysqlmp -uroot -pmysql sva_rec > e:\sva_rec.sql
2.導出一個表,包括表結構和數據
mysqlmp -u用戶名 -p 密碼 資料庫名 表名> 導出的文件名
C:\Users\jack> mysqlmp -uroot -pmysql sva_rec date_rec_drv> e:\date_rec_drv.sql
3.導出一個資料庫結構
C:\Users\jack> mysqlmp -uroot -pmysql -d sva_rec > e:\sva_rec.sql
4.導出一個表,只有表結構
mysqlmp -u用戶名 -p 密碼 -d資料庫名 表名> 導出的文件名
C:\Users\jack> mysqlmp -uroot -pmysql -d sva_rec date_rec_drv> e:\date_rec_drv.sql
5.導入資料庫
常用source 命令
進入mysql資料庫控制台,
如mysql -u root -p
mysql>use 資料庫
然後使用source命令,後面參數為腳本文件(如這里用到的.sql)
mysql>source d:wcnc_db.sql
㈧ mysql怎麼導出資料庫表結構
mysql資料庫表結構導出
命令行下具體用法如下:
mysqlmp -u用戶名 -p密碼 -d 資料庫名 表名 > 腳本名;
導出整個資料庫結構和數據
mysqlmp -h localhost -uroot -p123456 database > mp.sql
導出單個數據表結構和數據
mysqlmp -h localhost -uroot -p123456 database table > mp.sql
www.2cto.com
導出整個資料庫結構(不包含數據)
/usr/local/mysql/bin/mysqlmp -uroot -d entrym> mp.sql
導出單個數據表結構(不包含數據)
mysqlmp -h localhost -uroot -p123456 -d database table > mp.sql