資料庫圖例
A. 關於matlab的圖例
% 把每個句柄記錄下來,可以選擇需要的線的句柄,進行legend
h1=plot(t1,U1_A,'-r','linewidth',1.0);
hold on;
h2=plot(t2,U1_S,'o','markerfacecolor','w','linewidth',0.5);
hold on;
h3=plot(t1,U6_A,'-r','linewidth',1.0);
hold on;
h4=plot(t2,U6_S,'o','markerfacecolor','w','linewidth',0.5);
hold on;
h5=plot(t1,U10_A,'-r','linewidth',1.0);
hold on;
h6=plot(t2,U10_S,'o','markerfacecolor','w','linewidth',0.5);
legend([h1,h2]',解析解','模擬值'); %需要顯示哪個都可以
legend('boxoff');legend(gca,'Orientation','horizontal');
legend boxoff;
B. 一對多,兩表查詢,下面有圖例。用的DB2資料庫。求解。
一定要用sql查么。這個不是SQL語言擅長的領域。可以使用其他語言做一個輔助。
C. 試用圖例表示三種邏輯關系:AND、OR、NOT,並且說出三者與()在一般計算機檢索資料庫中優先順序
優先順序從高到低( )--not--and--or
D. visio里,怎麼配置圖例
先在「流程圖」-〉「基本流程圖」中找到菱形和方塊,分別右擊選擇「添加到我的形狀」-〉「添加到新模具」。
之後出現「另存為」對話框,把新模具命名為「ER圖」,這樣我們就把菱形和方塊添加到了新模具「ER圖」中。
用同樣的思路,在「資料庫」-〉「ORM圖表」找到橢圓和直線,添加到模具「ER圖」中。
添加完成後,可以在畫ER圖時打開該模具,ER圖所有的元素都會在一個模具中顯示出來即可。
E. 什麼叫資料庫名
一、資料庫名
什麼是資料庫名?
資料庫名就是一個資料庫的標識,就像人的身份證號一樣。他用參數DB_NAME表示,如果一台機器上裝了多全資料庫,那麼每一個資料庫都有一個資料庫名。在資料庫安裝或創建完成之後,參數DB_NAME被寫入參數文件之中。格式如下:
DB_NAME=myorcl
...
在創建資料庫時就應考慮好資料庫名,並且在創建完資料庫之後,資料庫名不宜修改,即使要修改也會很麻煩。因為,資料庫名還被寫入控制文件中,控制文件是以二進制型式存儲的,用戶無法修改控制文件的內容。假設用戶修改了參數文件中的資料庫名,即修改DB_NAME的值。但是在Oracle啟動時,由於參數文件中的DB_NAME與控制文件中的資料庫名不一致,導致資料庫啟動失敗,將返回ORA-01103錯誤。
資料庫名的作用
資料庫名是在安裝資料庫、創建新的資料庫、創建資料庫控制文件、修改數據結構、備份與恢復資料庫時都需要使用到的。
有很多Oracle安裝文件目錄是與資料庫名相關的,如:
winnt: d:\oracle\proct\10.1.0\oradata\DB_NAME\...
Unix: /home/app/oracle/proct/10.1.0/oradata/DB_NAME/...
pfile:
winnt: d:\oracle\proct\10.1.0\admin\DB_NAME\pfile\ini.ora
Unix: /home/app/oracle/proct/10.1.0/admin/DB_NAME/pfile/init$ORACLE_SID.ora
跟蹤文件目錄:
winnt: /home/app/oracle/proct/10.1.0/admin/DB_NAME/bmp/...
另外,在創建數據時,careate database命令中的資料庫名也要與參數文件中DB_NAME參數的值一致,否則將產生錯誤。
同樣,修改資料庫結構的語句alter database, 當然也要指出要修改的資料庫的名稱。
如果控制文件損壞或丟失,資料庫將不能載入,這時要重新創建控制文件,方法是以nomount方式啟動實例,然後以create controlfile命令創建控制文件,當然這個命令中也是指指DB_NAME。
還有在備份或恢復資料庫時,都需要用到資料庫名。
總之,資料庫名很重要,要准確理解它的作用。
查詢當前數據名
方法一:select name from v$database;
方法二:show parameter db
方法三:查看參數文件。
修改資料庫名
前面建議:應在創建資料庫時就確定好資料庫名,資料庫名不應作修改,因為修改資料庫名是一件比較復雜的事情。那麼現在就來說明一下,如何在已創建數據之後,修改資料庫名。步驟如下:
1.關閉資料庫。
2.修改資料庫參數文件中的DB_NAME參數的值為新的資料庫名。
3.以NOMOUNT方式啟動實例,修建控制文件(有關創建控制文件的命令語法,請參考oracle文檔)
二、資料庫實例名
什麼是資料庫實例名?
資料庫實例名是用於和操作系統進行聯系的標識,就是說資料庫和操作系統之間的交互用的是資料庫實例名。實例名也被寫入參數文件中,該參數為instance_name,在winnt平台中,實例名同時也被寫入注冊表。
資料庫名和實例名可以相同也可以不同。
在一般情況下,資料庫名和實例名是一對一的關系,但如果在oracle並行伺服器架構(即oracle實時應用集群)中,資料庫名和實例名是一對多的關系。這一點在第一篇中已有圖例說明。
查詢當前資料庫實例名
方法一:select instance_name from v$instance;
方法二:show parameter instance
方法三:在參數文件中查詢。
資料庫實例名與ORACLE_SID
雖然兩者都表是oracle實例,但兩者是有區別的。instance_name是oracle資料庫參數。而ORACLE_SID是操作系統的環境變數。ORACLD_SID用於與操作系統交互,也就是說,從操作系統的角度訪問實例名,必須通過ORACLE_SID。在winnt不台,ORACLE_SID還需存在於注冊表中。
且ORACLE_SID必須與instance_name的值一致,否則,你將會收到一個錯誤,在unix平台,是「ORACLE not available」,在winnt平台,是「TNS:協議適配器錯誤」。
資料庫實例名與網路連接
資料庫實例名除了與操作系統交互外,還用於網路連接的oracle伺服器標識。當你配置oracle主機連接串的時候,就需要指定實例名。當然8i以後版本的網路組件要求使用的是服務名SERVICE_NAME。這個概念接下來說明 。
三、資料庫域名
什麼是資料庫域名?
在分布工資料庫系統中,不同版本的資料庫伺服器之間,不論運行的操作系統是unix或是windows,各伺服器之間都可以通過資料庫鏈路進行遠程復制,資料庫域名主要用於oracle分布式環境中的復制。舉例說明如:
全國交通運政系統的分布式資料庫,其中:
福建節點: fj.jtyz
福建廈門節點: xm.fj.jtyz
江西: jx.jtyz
江西上饒:sr.jx.jtyz
這就是資料庫域名。
資料庫域名在存在於參數文件中,他的參數是db_domain.
查詢資料庫域名
方法一:select value from v$parameter where name = 'db_domain';
方法二:show parameter domain
方法三:在參數文件中查詢。
全局資料庫名
全局資料庫名=資料庫名+資料庫域名,如前述福建節點的全局資料庫名是:oradb.fj.jtyz
四、資料庫服務名
什麼是資料庫服務名?
從oracle9i版本開始,引入了一個新的參數,即資料庫服務名。參數名是SERVICE_NAME。
如果資料庫有域名,則資料庫服務名就是全局資料庫名;否則,資料庫服務名與資料庫名相同。
查詢資料庫服務名
方法一:select value from v$parameter where name = 'service_name';
方法二:show parameter service_name
方法三:在參數文件中查詢。
資料庫服務名與網路連接
從oracle8i開如的oracle網路組件,資料庫與客戶端的連接主機串使用資料庫服務名。之前用的是ORACLE_SID,即資料庫實例名。
F. 怎樣使用visio畫資料庫模型圖
1、新建一個visio
2、選擇繪圖類型為軟體和資料庫,再選擇資料庫模型圖
3、拖放左邊的圖例,基本上用實體和關系就可以完成了。
G. 如何用SQL server2005建立資料庫(要詳細的過程,最好有圖例說明)
……
打開SQL management studio
右鍵左側菜單「資料庫」選項
新建資料庫
建好資料庫後,右鍵你建好的資料庫
新建表
……
你網路一下,谷歌一下一搜都不止一大堆這么多了
H. 怎樣用柱狀圖實現mysql資料庫中的數據,現在我不知道怎麼將資料庫中的數據讀取出來顯示在柱狀圖上
public class CategoryItemChart {
public static String generateBarChart(HttpSession session, PrintWriter pw,int w, int h,ArrayList list) {
String filename = null;
try {
CategoryDataset dataset = createDataset(list);
JFreeChart chart = ChartFactory.createBarChart(
"",//圖表標題
"",//X軸標題
"",//Y軸標題
dataset,//數據集合
PlotOrientation.VERTICAL,//圖表顯示方向(水平、垂直)
true,//是否使用圖例
true,//是否使用工具提示
false//是否為圖表增加URL
);
/*------------配置圖表屬性--------------*/
chart.setBackgroundPaint(Color.white); // 1,設置整個圖表背景顏色
CategoryPlot plot = chart.getCategoryPlot(); /*------------設定Plot參數-------------*/
plot.setBackgroundPaint(Color.white); // 2,設置詳細圖表的顯示細節部分的背景顏色
plot.setDomainGridlinePaint(Color.black); // 3,設置垂直網格線顏色
plot.setDomainGridlinesVisible(false); // 4,設置是否顯示垂直網格線
plot.setRangeGridlinePaint(Color.yellow); // 5,設置水平網格線顏色
plot.setRangeGridlinesVisible(false); //6,設置是否顯示水平網格線
/*---------將所有數據轉換為整數形式---------*/
final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
/*---------設置是否在柱圖的狀態條上顯示邊框----*/
CategoryItemRenderer renderer = (CategoryItemRenderer) plot.getRenderer();
BarRenderer render = (BarRenderer) plot.getRenderer();
// render.setItemMargin(0.0);
// render.setMinimumBarLength(0.0);
/*---------設置狀態條顏色的深淺漸變-----------*/
GradientPaint gp0 = new GradientPaint(0.0f, 0.0f, new Color(255,200, 80), 0.0f, 0.0f, new Color(255, 255, 40));
GradientPaint gp1 = new GradientPaint(0.0f, 0.0f, new Color(50,255, 50), 0.0f, 0.0f, new Color(100, 255, 100));
GradientPaint gp2 = new GradientPaint(0.0f, 0.0f, Color.red, 0.0f,0.0f, new Color(255, 100, 100));
GradientPaint gp3 = new GradientPaint(0.0f, 0.0f, new Color(108,108, 255), 0.0f, 0.0f, new Color(150, 150, 200));
renderer.setSeriesPaint(0, gp0);
renderer.setSeriesPaint(1, gp1);
renderer.setSeriesPaint(2, gp2);
renderer.setSeriesPaint(3, gp3);
/*
*
* 解決柱狀體與圖片邊框的間距問題
*
*
* */
/*------設置X軸標題的傾斜程度----*/
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setCategoryLabelPositions(CategoryLabelPositions.(Math.E / 6.0));
/*------設置柱狀體與圖片邊框的左右間距--*/
domainAxis.setLowerMargin(0.06);
domainAxis.setUpperMargin(0.06);
/*------設置柱狀體與圖片邊框的上下間距---*/
ValueAxis rAxis = plot.getRangeAxis();
rAxis.setUpperMargin(0.3);
rAxis.setLowerMargin(0.3);
/*---------設置每一組柱狀體之間的間隔---------*/
render.setItemMargin(0.01);
/*
*
* 解決柱狀體與圖片邊框的間距問題
*
*
* */
/*
*
*
* 解決JFREECHART的中文顯示問題
*
*
* */
/*----------設置消除字體的鋸齒渲染(解決中文問題)--------------*/
chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
/*----------設置標題字體--------------------------*/
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("黑體", Font.PLAIN, 20));
/*------設置X軸坐標上的文字-----------*/
domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));
/*------設置X軸的標題文字------------*/
domainAxis.setLabelFont(new Font("宋體", Font.PLAIN, 12));
/*------設置Y軸坐標上的文字-----------*/
rAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 14));
/*------設置Y軸的標題文字------------*/
rAxis.setLabelFont(new Font("黑體", Font.PLAIN, 12));
/*---------設置柱狀體上的顯示的字體---------*/
renderer.setBaseItemLabelFont(new Font("宋體", Font.PLAIN, 12));
renderer.setBaseItemLabelGenerator(new LabelGenerator(0.0));
renderer.setBaseItemLabelsVisible(true);
/*
*
*
* 解決JFREECHART的中文顯示問題
*
*
* */
/*------得到chart的保存路徑----*/
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
filename = ServletUtilities.saveChartAsPNG(chart, w, h, info,session);
/*------使用printWriter將文件寫出----*/
ChartUtilities.writeImageMap(pw, filename, info, true);
pw.flush();
} catch (Exception e) {
System.out.println("Exception - " + e.toString());
e.printStackTrace(System.out);
filename = "public_error_500x300.png";
}
return filename;
}
/*-------------設置柱狀體頂端的數據顯示--------------*/
static class LabelGenerator implements CategoryItemLabelGenerator {
private double threshold;
public LabelGenerator(double threshold) {
this.threshold = threshold;
}
public String generateLabel(CategoryDataset dataset, int row, int column) {
String result = null;
final Number value = dataset.getValue(row, column);
if (value != null) {
final double v = value.doubleValue();
if (v > this.threshold) {
result = value.toString();
}
}
return result;
}
public String generateRowLabel(CategoryDataset dataset, int row) {
return null;
}
public String generateColumnLabel(CategoryDataset dataset, int column) {
return null;
}
}
/*-----------數據封裝-------------*/
private static CategoryDataset createDataset(ArrayList list) {
String s1 = "1";
String s2 = "2";
String c1 = "1";
String c2 = "2";
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.setValue(44, s1, c1);
dataset.setValue(48, s2, c2);
return dataset;
}
}
比較完整的一個得到柱圖的代碼,保存路徑是臨時文件,怎麼從資料庫取值應該會吧。把dataset處理一下就可以了。
I. 資料庫建設
(一)數據准備
1.數據收集
1∶25萬遙感地質填圖數據包含影像數據和矢量數據兩種格式,影像數據主要包括:TM原始影像、SPOT原始影像、SAR原始影像、TM與SPOT融合影像、TM與SAR融合影像、信息增強分類處理後的整幅影像或影像子區;矢量數據主要包括:航磁等值線影像、1∶25萬地形圖、地質圖、航磁解譯地質圖、遙感解譯單元圖、遙感解譯地質圖。現以新疆瓦石峽地區、內蒙古阿龍山地區為例,具體情況如下:
(1)瓦石峽地區
TM衛星影像
SAR衛星影像
航磁等值線(TIF)影像
航磁解譯地質圖
地質圖
遙感解譯影像單元圖
遙感解譯地質圖
(2)阿龍山地區
TM衛星影像
SPOT衛星影像
航磁等值線(TIF)影像
地質圖
航磁解譯地質圖
遙感解譯地質圖
2.數據預處理
1)影像數據處理,主要針對原始影像數據
(1)將TM原始影像、SPOT原始影像、SAR原始影像、航磁等值線(.JPG)數據格式轉換為ERDAS的.IMG格式。
(2)對轉換後的IMG文件進行投影轉換。投影系採用6度分帶的橫軸墨卡托(Transverse Mercator)投影,投影參數為:
Units:Meters
Scale Factor:1.0
Longitude Of Center:123 00 00
Latitude Of Center:0 00 00
False Easting:500 KM
False Northing:0 KM
Xshift:0
Yshift:0
橢球(spheroid)體採用克拉索夫(Krasovsky)橢球,參數為:
SemiMajor:6378245.0000 Meters
SemiMinor:6356863.0188 Meters
坐標系採用大地坐標,度量單位為米,這樣可以在GIS系統中方便的量算特徵的長度和面積。
(3)圖像坐標糾正
參照地形圖選擇同名點,對影像數據進行坐標精校正。同名點的選擇不少於12個。
2)矢量數據處理
工作主要針對地質圖、航磁解譯地質圖、遙感解譯單元圖、遙感解譯地質圖。
(1)數據分層
根據圖面特徵信息內容和制圖要求,每幅矢量圖按特徵類型劃分為點、線、面(區)三個圖層。劃分的依據是遙感地質解譯圖件的信息不完全等同於其他地質調查圖件,它表現的內容主要是:從影像圖中判讀出的地層、岩石影像單元及構造界線,但各種地質特徵的單位、時代、分類、度量、結構、方向等的描述不是十分具體,因此在屬性定義上比較一致,對一個圖件不需要產生基於同一特徵類型的專題圖層,因此按矢量特徵類型劃分較為合理、簡便。
(2)圖件掃描矢量化
將地質、影像單元等圖件掃描成 TIF影像文件,按照分層要求,將每個圖件數字化為點、線、面三個圖層文件。處理的圖件和產生的矢量圖層文件見表3-1至3-7。
表3-1 矢量圖層表
1∶25萬遙感地質填圖方法和技術
c.面特徵:由於影像單元圖的面特徵描述有其特殊之處,有時遵照地層、岩石的分類方法國家標准,但絕大部分是按照影像顏色、紋理等劃分和稱謂,因此進行分類編碼十分困難,有待進一步研究解決。
以上編碼方法是在每種特徵類型組合最大值和預留一定的擴充餘地的基礎上編制的,編碼方案參照國標:GB958—89區域地質圖圖例(1∶5萬)
(6)屬性定義
說明:由於地質代號的組成方式極為復雜,使用了上下角標、希臘字元、拉丁字母等,而這些字元和格式在純文本的屬性欄位中是不能完全或准確表達的,因此在錄入時對地質代號進行了一些簡化。
例如:Pt2xh簡化為Pt2xh
簡化為An1—3
(二)建立資料庫
GIS空間資料庫有兩種存儲形式:一是基於文件索引的傳統空間資料庫管理體系;二是採用商用關系資料庫的解決方案,二者各有千秋。第一種結構是對應用的集成,而數據是鬆散的,雖不利於數據的集中管理,但對不同系統平台之間共享數據提供了很大方便,特別是數據較少的小型應用系統。這種結構的另外一個可取之處是方案簡單,工作量小,不需要資料庫方面的專業知識。第二種結構既是應用的集成,也是數據的集成,並且提供所有的RDBMS的數據和安全管理優勢,但它需要專用的空間數據引擎,對其他軟體使用數據是一個極大的限制,必須進行數據的導入導出和格式轉換,並且要求使用者對RDBMS有一定的操作和管理經驗。
由於本集成系統採用的是ARC/INFO和ERDAS軟體,它們之間只能達到文件方式的數據共享,雖然ARC/INFO 8提供了GeoDataBase這種關系資料庫管理模式,實現真正的空間數據集中管理和RDBMS所有的數據管理能力,但為了滿足兩個軟體之間數據的交互處理,本系統採用文件索引形式的資料庫。在數據完備的基礎上,建庫工作需以下兩個步驟:
(1)首先創建基於項目的不同格式、不同類型的目錄樹工作區,把所有數據文件分類保存在這個工作區中,工作區框架以瓦石峽幅數據為例(圖3-5)。
(2)然後在 ARC/INFO 的 ARCMAP中新建一個 MAP DOCUMENT(以下簡稱為文檔),添加所有數據文件到文檔中。文檔中每個數據文件都被稱為一個 LAYER(以下簡稱為層),每個矢量層可以有它自己的環境,文檔可以保存環境的變化。使用者只需打開這個文檔即可調用項目所有的數據文件,並且恢復到上一次工作時的狀態。
圖3-5 數據分層結構圖
在MAP DOCUMENT這種集成的數據環境下,使用者可以採用ARC/INFO 8的ARCEDITOR、ARCMAP參照影像圖層進行矢量化的解譯工作,對已形成的圖件直接進行圖形和屬性編輯,進行輔助解譯的空間分析,對各種圖件進行疊加比較,使用文字標簽或屬性欄位標注特徵,按照分類符號化特徵,製作專題圖,列印輸出圖件報表等,實現一系列與遙感解譯有關的功能和操作。
由於ARC/INFO提供的地質圖式圖例和符號不能滿足我國的地質成圖要求,因此制圖軟體採用地質行業較為通用的MAPGIS。通過ARCTOOLS工具將最終的解譯成果矢量地質圖轉換為ARC/INFO的標准交換格式E00,提交給MAPGIS形成繪圖文件,出版印刷。具體的實施方案和技術流程見「成果圖件製作方法研究」一節。
J. 什麼是四叉樹,數據結構的。有圖例最好,謝謝。
四叉樹是一種數據結構,是一種每個節點最多有四個子樹的數據結構。
四叉樹可以用來在資料庫中放置和定位文件(稱作記錄或鍵)。這一演算法通過不停的把要查找的記錄分成4部分來進行匹配查找直到僅剩下一條記錄為止。
在樹中,記錄被存儲在葉子的位置上。這一名字的由來是因為記錄被存儲在端點上,它們上面再沒有節點了。分支被稱作節點。數的順序是每節點的分支(也稱孩子)數。在四叉樹中,每個節點通常有4個孩子,因此順序是4。四叉樹的葉子數也是4。為達到想要的記錄所進行的查找操作次數成為樹的深度。下圖給出了深度為3的四叉樹。
在實際的樹中,可能有成千、成萬或數十億條記錄。不是所有的葉子必須有一條記錄,但至少要有一半包含記錄。不包含記錄的葉子稱為空。在上面例子中,第8、第12、第16個葉子是空的,用空白圓來指示。
四叉樹是在二維圖片中定位像素的唯一適合的演算法。因為二維空間(圖經常被描述的方式)中,平面像素可以重復的被分為四部分,樹的深度由圖片、計算機內存和圖形的復雜度決定。