数据库图例
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个叶子是空的,用空白圆来指示。
四叉树是在二维图片中定位像素的唯一适合的算法。因为二维空间(图经常被描述的方式)中,平面像素可以重复的被分为四部分,树的深度由图片、计算机内存和图形的复杂度决定。