当前位置:首页 » 编程语言 » sql拓扑查询
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql拓扑查询

发布时间: 2023-05-29 15:45:28

A. sql bit类型赋值

Bit数据类型在SQL Server 数据库中以存储1、0 进行存储。

如果它是连通的,那么它连续同构于R或C(关于通常绝对值的拓扑);如果它是完全不连通的,那么它就连续同构于 p进数域Qp的一个有限扩域,或者某个有限域K上的形式幂级数域 K((x))的有限扩域。

(1)sql拓扑查询扩展阅读:

实数(或复数)绝对值在任意域上的推广。赋值这个概念最初是由J.屈尔沙克于1913年提出的。设φ是定义在任意域F上的一个取非负实数值的函数,并满足以下三个条件:

①φ(α)=0,当且仅当α=0,并对某个α∈F有φ(α)≠1;

②φ(αb)=φ(α)φ(b)。

③φ(α+b)≤φ(α)+φ(b),J.屈尔沙克把这样的φ称为F上的一个赋值。

按照通行的叫法,后改称之为F的绝对值。不久以后,A.奥斯特罗夫斯基引进了另一种绝对值φ,它满足上述的①和②,以及,并把这种φ称为非阿基米德绝对值,而把满足①、②、③而不满足④的那些φ称为阿基米德绝对值。

B. 局域网内一台电脑建立了SQL数据库,如何让局域网内其它电脑连接使用

--访问不同电脑上的数据库(远程只要联好网就一样)

--如果经常访问或数据量大,建议用链接服务器

--创建链接服务器
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go

--查询示例
select * from srv_lnk.数据库名.dbo.表名

--导入示例
select * into 表 from srv_lnk.数据库名.dbo.表名

go
--处理完成后删除链接服务器
exec sp_dropserver 'srv_lnk','droplogins'

C. SQL在数据检查中的应用

关于SQL在数据检查中的应用

结构化查询语言SQL是工业标准数据库操作语言,在实践中得到了广泛运用,下面是我为大家搜索整理了关于SQL在数据检查中的应用,欢迎参考阅读,希望对大家有所帮助。想了解更多相关信息请持续关注我们应届毕业生培训网!

矢量地形图是地图要素的数字化表示,主要由属性数据、拓扑数据和元数据三部分组成。属性数据用于描述地理实体的类别、等级等质量特征和数量特征,拓扑数据用于描述地图上点、线、面状要素之间关联、邻接、包含等空间关系,元数据则包含了数据和信息资源的描述性信息。境外判绘生成的矢量数据是按照地形图作业规范规定的标准格式;其数据的正确性、完备性、规范性的检查是十分重要的环节。若能对数据属性进行分类显示,即按照某一属性项(编码、名称、编号等)分类和排序,将有共同属性的地图目标排列在一起,将会给属性检查带来很大的便利。现有的检查软件都会进行属性项检查,但是这种检查方式比较单一,不能自己定义查找方式,且操作比较繁琐,所以需要寻找一种能对属性数据进行快速查询、分析的方法。

一、属性数据文件记录格式

属性数据文件由点记录、线记录、面记录三部分组成。点、线、面记录各部分都有一个类首记录和若干中间记录,以文本方式存储。

作业中使用的式矢量地形图数据是严格按照生产记录格式组织、存储的,具有严谨规范的数据结构,很自然我们可以利用数据库来实现属性数据的查询分析。

二、操作流程

要实现这一设想,方法有很多,可以利用EXCEL、ACCESS导入分析,也可以编程直接读取属性数据文件。笔者采用的方法是将属性文件读入MDB数据库,利用SQL语言进行自定义查询,并输出结果的方式。流程图如下:

按图幅建立的mdb数据库中为每个图层建立一个数据表,用于存储每层的.属性数据。数据表的结构(字段名称、数据类型、长度等)应按照军标格式设置,避免出现转换时数据丢失。利用自编程序将属性文件中的记录逐个读入数据库,在查询语句框中输入SQL语句即可进行数据筛选。通过分类筛选,将同类地物放在一起比较,就可以很轻松的检查出地物属性是否存在遗漏和错误。若需输出查询结果,程序可根据相应的坐标文件生成err文件,以供在freescan中检查修改。程序利用VB6.0+数据控件的方式实现,主界面如下:

三、利用SQL实现属性数据查询分析

结构化查询语言SQL是工业标准数据库操作语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,在实践中得到了广泛运用。它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使他具有极大的灵活性和强大的功能。

SQL语言包含4个部分 数据定义语言(如CREATE、DROP、ALTER等语句)、数据操作语言(如INSERT、UPDATE、DELETE语句)、数据查询语言(如SELECT语句)、数据控制语言(如GRANT、REVOKE、COMMIT、ROLLBACK等语句)。我们最常用到的SQL包括选择列表、FROM子句和WHERE子句,它们分别说明所查询列、查询的表、以及搜索条件等。

通过SQL语句的组合可以实现更多复杂的查询,实现对数据的分析与筛选。

如进行独立房与街区名称指针的挂接SQL语句:

SELECT * FROM 居民地C WHERE (居民地C.注记编号=Any (select 注记编号 from 居民地C where 居民地C.编码=130204)) and 注记编号<>0 and 编码=130201;

这是查找街道名未挂指针的SQL语句:

SELECT * FROM 注记R

WHERE 注记R.编码=280338 and (注记R.注记号 NOT in (select 陆地交通D.注记编号 from 陆地交通D));

通过修改SQL语句就可以非常灵活的实现各种查询和筛选。为了方便操作,还可以将各种条件的查询语句存放在一个文本文件中,随时调用。

本文主要介绍了利用SQL语句在数据库中对矢量地形图属性数据进行分析检查的一种方法,这种方法在往年的数据入库中是可行的,且在一定程度上提高了作业效率。在当前进行境外数字判绘过程中,需要我们通过实践不断总结和探索新的更有效的作业方法,高质量、高效率圆满完成任务。

;

D. sql server 2014拓扑同步吗

针对SQL Server 2005版本,来说一下它的性能。从中,我们能更具体的了解到这个版本的特点以及和负载均衡相关的内容介绍。
Sql Server 2005的新特性
端到端拓扑的事务性复制
SQL Server 2005对端到端(P2P)拓扑结构上事务性的复制加强了支持。P2P的拓扑结构支持无限的发布服务器,它们彼此之间可以互相交换事务。
P2P拓扑是SQL Server的一个巨大进步。现在,多端点服务器可以更改数据,并且向其他的发布者复制事务。这就是说,订阅服务器不再被限制在主要的报告环境中,可以通过事务性负载全球共享的方式将服务器分布开来。当用户的数量增加的时候,只要简单地向这个群体中添加服务器即可。
除了将负载分布之外,这个拓扑结构还增加了可用性。如果任何一个点的服务器不可达,则池中其他服务器就会共享这个负载,因为每个服务器都有其他所有服务器上可获得的全部数据集合。
数据库镜像和快照
SQL Server 2005引入了数据库镜像的概念,来帮助获得高可用性。特别提醒的是,只要它正式发布了,数据库镜像就可以在SQL Server 2005上使用。然而,只有到SQL Server 2005 Service Pack 1才会支持镜像。
数据库快照是SQL Server 2005中引入的另一项特性。快照是某一个时间点上的数据库的克隆。只要对镜像数据库进行了快照,就可以让用户查询快照。快照的生成通常只需要几秒钟,因为它实际上在这个过程中并没有拷贝任何数据。因此,要把负载分布到主服务器和备用服务器上,就可以将数据库做镜像,然后阶段性地对备份服务器进行快照。而且还可以使用快照在主服务器上进行报告。

E. 干货分享|优炫数据库支持多业务场景(二)

上期分享中,我们介绍优炫数据库支持的数据存储方式。

戳: 干货分享 优炫数据库支持多业务场景

本期,我们来讲讲优炫数据库支持的多种数据类型。


基本数据类型存储与管理


优炫数据库拥有完备的数据类型,内置数据类型包括 数字类型、货币类型、字符类型、日期/时间类型、布尔类型、枚举类型、网络地址类型、位串类型、文本搜索类型等, 支持使用 serial 类型创建表自增列。


通常为了加快指定过滤条件下从表中查询数据的速度,可以为表的某个字段或某几个字段建立索引。数据库对基本数据提供多种索引类型:B-tree、Hash、GIN(倒排序索引)和 BRIN(数据库块范围索引)。每一种索引类型使用了一种不同的算法来适应不同类型的查询。 默认情况下, CREATE INDEX命令创建适合于大部分情况的B-tree索引。


XML/JSON数据类型存储与管理


优炫数据库内置半结构化XML、JSON、JSONB数据类型。


xml数据类型可以被用来存储XML数据,它比直接在一个text域中存储XML数据的优势在于,它会检查输入值的结构是不是良好,并且有支持函数用于在其上执行类型安全的操作。xml类型可以存储结构良好(如XML标准所定义)的“文档”,以及“内容”片段,它们由XML标准所定义,这意味着内容片段中可以有多于一个的顶层元素或字符节点。通过表达式来评估一个特定的xml值是一个完整文档或者仅仅是一个文档片段。


JSON类型强制检查数据有效性,使用专门的操作符和内置函数操作数据,保留空格,重复键和顺序等。JSONB是解析输入后保存的二进制数据,删除了数据中的空格、调整了顺序、优化了存储、保留最后一个重复键值,可被索引。和 JSON 一样,JSONB支持嵌入式的文档和数组。JSONB 由若干个键值对存储为单个实体,这种实体称为文档。 JSONB具有以下几个特性:轻量级(Lightweight),可遍历性(Traversable),高效性(Efficient)。 由于所需存储更小,JSONB通常是首选格式。两者区别在于:JSON类型写快读慢,JSONB类型写慢读快,支持SQL/JSON路径语言。此外,数据库支持对这两类数据的全文检索。


GIS空间类型存储与管理


优炫数据库支持GIS的地理信息应用,支持PostGIS、ArcGIS、超图,支持OpenGIS联盟(开放地理信息系统,OGC)抽象数据类型的SQL3规范,提供对地理矢量数据、3D模型、线性参考数据的组织、存储、空间索引和管理。


Geometry(几何对象类型)是优炫数据库的一个基本存储类型, 空间数据都会以Geometry的形式存储在数据库里,本质是个二进制对象。使用OGC推荐的WKT(Well-Known Text)和WKB(Well-Known Binary)格式进行描述,大幅增加了易用性,WKT与WKB基本数据类型(矢量数据)包括:


l (POINT):例如POINT(0 0);

l 线 (LINESTRING):例如LINESTRING(0 0,1 1,1 2)

l (POLYGON多边形):例如POLYGON((0 0,4 0,4 4,0 4,0 0)) 简单多边形,例如POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1)) 多边形有一个内部的"孔洞(hole)";

l 多点 (MULTIPOINT):例如MULTIPOINT((0 0),(1 2));

l 多线 (MULTILINESTRING):例如MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4));

l 多面 (MULTIPOLYGON):例如MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1)));

l 几何集合 (GEOMETRYCOLLECTION):例如GEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4))。


栅格空间数据类型raster用于表示jpeg,tiff,png,DEM模型这样文件格式的数据。每一个栅格至少有1个波段,每个波段又有一系列像素值,栅格数据是转换成地理坐标的。可以从数据库外部导入已有栅格数据,也可在数据库内创建栅格数据。下面是一个在数据库内部创建栅格数据的示例:


拓扑类型和函数用于管理拓扑结构,比如面、边界和点。


创建一个带有栅格记录的栅格列的表可以用下面的SQL完成:



如果创建的栅格不依赖于其他栅格,那么可以使用函数:

ST_MakeEmptyRaster,接着使用ST_AddBand添加栅格数据。也可以使用geometry对象来创建栅格你需要使用函数ST_AsRaster。可能还需要和其他函数比如函数ST_Union 或函数 ST_MapAlgebraFct 或者其他地图代数系列函数联合使用。甚至还有一些根据一些已经存在的栅格表创建新的栅格表的可选函数。例如可以使用函数ST_Transform 根据一个已有的栅格表在其他投影系中创建一个新的栅格表。然后通过下SQL命令创建一个空间索引:



通过空间索引R-Tree实现空间数据查询和操作,R-Tree将数据分解为矩形(rectangle)、子矩形(sub-rectangle)和子-子矩形(sub-sub rectangle)等。它是一种可自动处理可变数据的密度和对象大小的自调优(self-tuning)索引结构。


图数据存储与管理


图数据以图关系这种数据结构存储,把图数据的顶点和边信息存储到关系型数据类型中,这些信息包括:


l 顶点(Vertices):一个实体一个顶点,一个实体可以有多个属性。

l 边(Edges):两个实体之间的连接线。

l 属性:实体和边都可以有多个属性。形象举个例子,一个实体对应关系表中一行记录,一个实体的属性代表关系表中这行记录的所有字段和值构成的键值对。


在优炫数据库中图数据通过关系型数据进行存储,这些数据与图模型中的数据相对应。例如通过下SQL语句建立存储图数据的表:



然后新增加数据,后续就可以根据这些数据进行图相关的计算和分析了。


时序数据存储与管理


时序数据存储和管理,通过把时序数据存储到关系型数据类型中。时序数据是指时间序列数据。时间序列数据是同一统一指标按时间顺序记录的数据列。在同一数据列中的各个数据必须是同口径的,要求具有可比性。时序数据可以是时期数,也可以时点数。时间序列分析的目的是通过找出样本内时间序列的统计特性和发展规律性,构建时间序列模型,进行样本外预测。


文档/图片/视频类型存储与管理


优炫数据库可存储任意未知具体内容的图片、声音、视频等非结构化数据,支持 GB 级大对象数据类型与流式数据访问。可借助于数据库图形化管理工具、应用程序、第三方工具等查看这些非结构化数据。根据业务需要也可借助数据库插件读取或识别这些非结构化数据的内容用于数据分析。


优炫数据库支持多种二进制数据类型,包括:Bytea、OID、Blob、raw、Varbinary、Longvarbinary。


自定义数据类型存储与管理


优炫数据库可自定义数据类型、索引、函数等数据库对象。 新增加的数据类型可以是新数据类型,也可以是已知几个数据类型的复合数据类型。


模分析型数据库用户可在数据库中使用CREATE TYPE或CREATE DOMAIN命令增加新的数据类型;可通过自定义函数或存储过程对数据进行各种处理。


CREATE TYPE在当前数据库中注册一种新的数据类型,定义数据类型的用户将成为它的拥有者。五种形式的CREATE TYPE,它们分别创建组合类型、枚举类型、 范围类型、基础类型或者 shell 类型。shell 类型仅仅是一种用于后面要定义的类型的占位符,通过发出一个不带除类型名之外其他参数的CREATE TYPE命令可以创建这种类型。在创建范围类型和基础类型时,需要 shell 类型作为一种向前引用。


CREATE DOMAIN创建一个新的域。 域本质上是一种带有可选约束(在允许的值集合上的限制)的数据类型。域主要被用于把字段上的常用约束抽象到一个单一的位置以便维护。例如,几个表可能都包含电子邮件地址列,而且都要求相同的 CHECK 约束来验证地址的语法。可以为此定义一个域,而不是在每个表上都单独设置一个约束。

F. sql的七层及每层的作用

OSI分层模型。

┌—————┐
│ 应用层 │←第七层
├—————┤
│ 表示层 │
├—————┤
│ 会话层 │
├—————┤
│ 传输层 │
├—————┤
│ 网络层 │
├—————┤
│数据链路层│
├—————┤
│ 物理层 │←第一层
└—————┘
OSI七层参考模型

OSI模型的七层分别进行以下的操作:
第一层:物理层
负责最后将信息编码成电流脉冲或其它信号用于网上传输。它由计算机和网络介质之间的实际界面组成,可定义电气信号、符号、线的状态和时钟要求、数据编码和数据传输用的连接器。如最常用的RS-232规范、10BASE-T的曼彻斯特编码以及RJ-45就属于第一层。所有比物理层高的层都通过事先定义好的接口而与它通话。如以太网的附属单元接口(AUI),一个DB-15连接器可被用来连接层一和层二。
第二层:数据链路层
通过物理网络链路提供可靠的数据传输。不同的数据链路层定义了不同的网络和协议特征,其中包括物理编址、网络拓扑结构、错误校验、帧序列以及流控。物理编址(相对应的是网络编址)定义了设备在数据链路层的编址方式;网络拓扑结构定义了设备的物理连接方式,如总线拓扑结构和环拓扑结构;错误校验向发生传输错误的上层协议告警;数据帧序列重新整理并传输除序列以外的帧;流控可能延缓数据的传输,以使接收设备不会因为在某一时刻接收到超过其处理能力的信息流而崩溃。数据链路层实际上由两个独立的部分组成,介质存取控制(Media Access Control,MAC)和逻辑链路控制层(Logical Link Control,LLC)。MAC描述在共享介质环境中如何进行站的调度、发生和接收数据。MAC确保信息跨链路的可靠传输,对数据传输进行同步,识别错误和控制数据的流向。一般地讲,MAC只在共享介质环境中才是重要的,只有在共享介质环境中多个节点才能连接到同一传输介质上。IEEE MAC规则定义了地址,以标识数据链路层中的多个设备。逻辑链路控制子层管理单一网络链路上的设备间的通信,IEEE 802.2标准定义了LLC。LLC支持无连接服务和面向连接的服务。在数据链路层的信息帧中定义了许多域。这些域使得多种高层协议可以共享一个物理数据链路。
第三层:网络层
负责在源和终点之间建立连接。它一般包括网络寻径,还可能包括流量控制、错误检查等。相同MAC标准的不同网段之间的数据传输一般只涉及到数据链路层,而不同的MAC标准之间的数据传输都涉及到网络层。例如IP路由器工作在网络层,因而可以实现多种网络间的互联。
第四层:传输层
向高层提供可靠的端到端的网络数据流服务。传输层的功能一般包括流控、多路传输、虚电路管理及差错校验和恢复。流控管理设备之间的数据传输,确保传输设备不发送比接收设备处理能力大的数据;多路传输使得多个应用程序的数据可以传输到一个物理链路上;虚电路由传输层建立、维护和终止;差错校验包括为检测传输错误而建立的各种不同结构;而差错恢复包括所采取的行动(如请求数据重发),以便解决发生的任何错误。传输控制协议(TCP)是提供可靠数据传输的TCP/IP协议族中的传输层协议。
第五层:会话层
建立、管理和终止表示层与实体之间的通信会话。通信会话包括发生在不同网络应用层之间的服务请求和服务应答,这些请求与应答通过会话层的协议实现。它还包括创建检查点,使通信发生中断的时候可以返回到以前的一个状态。
第六层:表示层
提供多种功能用于应用层数据编码和转化,以确保以一个系统应用层发送的信息可以被另一个系统应用层识别。表示层的编码和转化模式包括公用数据表示格式、性能转化表示格式、公用数据压缩模式和公用数据加密模式。
公用数据表示格式就是标准的图像、声音和视频格式。通过使用这些标准格式,不同类型的计算机系统可以相互交换数据;转化模式通过使用不同的文本和数据表示,在系统间交换信息,例如ASCII(American Standard Code for Information Interchange,美国标准信息交换码);标准数据压缩模式确保原始设备上被压缩的数据可以在目标设备上正确的解压;加密模式确保原始设备上加密的数据可以在目标设备上正确地解密。
表示层协议一般不与特殊的协议栈关联,如QuickTime是Applet计算机的视频和音频的标准,MPEG是ISO的视频压缩与编码标准。常见的图形图像格式PCX、GIF、JPEG是不同的静态图像压缩和编码标准。
第七层:应用层
最接近终端用户的OSI层,这就意味着OSI应用层与用户之间是通过应用软件直接相互作用的。注意,应用层并非由计算机上运行的实际应用软件组成,而是由向应用程序提供访问网络资源的API(Application Program Interface,应用程序接口)组成,这类应用软件程序超出了OSI模型的范畴。应用层的功能一般包括标识通信伙伴、定义资源的可用性和同步通信。因为可能丢失通信伙伴,应用层必须为传输数据的应用子程序定义通信伙伴的标识和可用性。定义资源可用性时,应用层为了请求通信而必须判定是否有足够的网络资源。在同步通信中,所有应用程序之间的通信都需要应用层的协同操作。
OSI的应用层协议包括文件的传输、访问及管理协议(FTAM) ,以及文件虚拟终端协议(VIP)和公用管理系统信息(CMIP)等。

G. 内部网络路由器的地址是192.168.254.1,sql数据库服务器的地址是192.168.254.101,

网络资料,仅供参考,复制一段可从网上搜到。希望能帮你!
静态路由表配置实例
当一个局域网内存在2台以上的路由器时,由于其下主机互访的需求,往往需要设置路由。由于网络规模较小且不经常变动,所以静态路由是最合适的选择。

随着宽带接入的普及,很多家庭和小企业都组建了局域网来共享宽带接入。而且随着局域网规模的扩大,很多地方都涉及到2台或以上路由器的应用。当一个局域网内存在2台以上的路由器时,由于其下主机互访的需求,往往需要设置路由。由于网络规模较小且不经常变动,所以静态路由是最合适的选择。

本文作为一篇初级入门类文章,会以几个简单实例讲解静态路由,并在最后讲解一点关于路由汇总(归纳)的知识。由于这类家庭和小型办公局域网所采用的一般都是中低档宽带路由器,所以这篇文章就以最简单的宽带路由器为例。(其实无论在什么档次的路由器上,除了配置方式和命令不同,其配置静态路由的原理是不会有差别的。)常见的1WAN口、4LAN口宽带路由器可以看作是一个最简单的双以太口路由器+一个4口小交换机,其WAN口接外网,LAN口接内网以做区分。

路由就是把信息从源传输到目的地的行为。形象一点来说,信息包好比是一个要去某地点的人,路由就是这个人选择路径的过程。而路由表就像一张地图,标记着各种路线,信息包就依靠路由表中的路线指引来到达目的地,路由条目就好像是路标。在大多数宽带路由器中,未配置静态路由的情况下,内部就存在一条默认路由,这条路由将LAN口下所有目的地不在自己局域网之内的信息包转发到WAN口的网关去。宽带路由器只需要进行简单的WAN口参数的配置,内网的主机就能访问外网,就是这条路由在起作用。本文将分两个部分,第一部分讲解静态路由的设置应用,第二部分讲解关于路由归纳的方法和作用。

下面就以地瓜这个网络初学者遇到的几个典型应用为例,让高手大虾来说明一下什么情况需要设置静态路由,静态路由条目的组成,以及静态路由的具体作用。

例一:最简单的串连式双路由器型环境

这种情况多出现于中小企业在原有的路由器共享Internet的网络中,由于扩展的需要,再接入一台路由器以连接另一个新加入的网段。而家庭中也很可能出现这种情况,如用一台宽带路由器共享宽带后,又加入了一台无线路由器满足无线客户端的接入。

地瓜:公司里原有一个局域网LAN 1,靠一台路由器共享Internet,现在又在其中添加了一台路由器,下挂另一个网段LAN 2的主机。经过简单设置后,发现所有主机共享Internet没有问题,但是LAN 1的主机无法与LAN 2的主机通信,而LAN 2的主机却能Ping通LAN 1下的主机。这是怎么回事?

大虾:这是因为路由器隔绝广播,划分了广播域,此时LAN 1和LAN 2的主机位于两个不同的网段中,中间被新加入的路由器隔离了。所以此时LAN 1下的主机不能“看”到LAN 1里的主机,只能将信息包先发送到默认网关,而此时的网关没有设置到LAN 2的路由,无法做有效的转发。这种情况下,必须要设置静态路由条目。此种网络环境的拓扑示意如下:

(注:图中省略了可能存在的交换层设备)
如图一所示,LAN 1为192.168.0.0这个标准C类网段,路由器R1为原有路由器,它的WAN口接入宽带,LAN口(IP为192.168.0.1)挂着192.168.0.0网段(子网掩码255.255.255.0的C类网)主机和路由器R2(新添加)的WAN口(IP为192.168.0.100)。R2的LAN口(IP为192.168.1.1)下挂着新加入的LAN 2这个192.168.1.0的C类不同网段的主机。
如果按照共享Internet的方式简单设置,此时应将192.168.0.0的主机网关都指向R1的LAN口(192.168.0.1),192.168.1.0网段的主机网关指向R2的LAN口(192.168.1.1),那么只要R2的WAN口网关指向192.168.0.1,192.168.1.0的主机就都能访问192.168.0.0网段的主机并能通过宽带连接上网。这是因为前面所说的宽带路由器中一条默认路由在起作用,它将所有非本网段的目的IP包都发到WAN口的网关(即路由器R1),再由R1来决定信息包应该转发到它自己连的内网还是发到外网去。但是192.168.0.0网段的主机网关肯定要指向192.168.0.1,而R1这时并不知道192.168.1.0这个LAN 2的正确位置,那么此时只能上网以及本网段内的互访,不能访问到192.168.1.0网段的主机。这时就需要在R1上指定一条静态路由,使目的IP为192.168.1.0网段的信息包能转发到路由器R2去。
一条静态路由条目一般由3部分组成:1.目的IP地址或者叫信宿网络、子网;2.子网掩码;3.网关或叫下一跳。
例一中R1上设定的静态路由条目就应该为:目的IP地址192.168.1.0(代表1.x这个网段),子网掩码255.255.255.0(因为是C类网段),下一跳192.168.0.100。如图2,此图为TP-LINK R410中的静态路由表配置项,保存后即可生效。如果是Cisco的路由器,则在全局配置模式下键入命令:Router(config)# ip route 192.168.1.0 255.255.255.0 192.168.0.100。
注意:其中的网关IP必须是与WAN或LAN口属于同一个网段。那条默认路由写出来就是:目的IP为 0.0.0.0,子网掩码0.0.0.0,下一跳为WAN口上的默认网关,有时我们也称它为“8个0的默认路由”。另外,如果目的IP是一个具体的主机IP(如192.168.1.2),那么路由条目应为:目的IP 192.168.1.2,子网掩码255.255.255.255,下一跳或网关192.168.0.100。

使用此种连接方式,还可以方便的使用路由器内置的访问控制列表来设置LAN 2下主机的访问权限,这对企业用户而言还是很方便的。宽带路由器中的“防火墙设置”其实就是一个简化的访问控制列表,即ACL- Access Control Lists。如:希望局域网LAN 2中IP地址为192.168.1.7的计算机不能收发邮件,IP地址为192.168.1.8的计算机不能访问企业内部位于LAN 1的ERP服务器(假设其IP为192.168.0.10),对局域网中的其它计算机则不做任何限制,这时您需要指定如下的数据包过滤表,如图:
一条静态路由条目一般由3部分组成:1.目的IP地址或者叫信宿网络、子网;2.子网掩码;3.网关或叫下一跳。
例一中R1上设定的静态路由条目就应该为:目的IP地址192.168.1.0(代表1.x这个网段),子网掩码255.255.255.0(因为是C类网段),下一跳192.168.0.100。如图2,此图为TP-LINK R410中的静态路由表配置项,保存后即可生效。如果是Cisco的路由器,则在全局配置模式下键入命令:Router(config)# ip route 192.168.1.0 255.255.255.0 192.168.0.100。
注意:其中的网关IP必须是与WAN或LAN口属于同一个网段。那条默认路由写出来就是:目的IP为 0.0.0.0,子网掩码0.0.0.0,下一跳为WAN口上的默认网关,有时我们也称它为“8个0的默认路由”。另外,如果目的IP是一个具体的主机IP(如192.168.1.2),那么路由条目应为:目的IP 192.168.1.2,子网掩码255.255.255.255,下一跳或网关192.168.0.100。

使用此种连接方式,还可以方便的使用路由器内置的访问控制列表来设置LAN 2下主机的访问权限,这对企业用户而言还是很方便的。宽带路由器中的“防火墙设置”其实就是一个简化的访问控制列表,即ACL- Access Control Lists。如:希望局域网LAN 2中IP地址为192.168.1.7的计算机不能收发邮件,IP地址为192.168.1.8的计算机不能访问企业内部位于LAN 1的ERP服务器(假设其IP为192.168.0.10),对局域网中的其它计算机则不做任何限制,这时您需要指定如下的数据包过滤表,如图:

例二:两台平级并连的路由器,下挂子网中主机需要互相通信的环境
这种情况,两台平行并连的路由器上层应该还有一个总的出口网关,而这个网关有可能因某种原因不便设置路由,而此时网络中存在3个不同的网段。
地瓜:我家是小区共享型的宽带接入,我自己用一台宽带路由器构建了一个家庭局域网以共享Internet,正好邻居也跟我一样用宽带路由器构建了另一个家庭局域网。而我们各自局域网内的主机之间却不能互相通信,根本ping不通,这是怎么回事?
大虾:这种情况下整个小区其实就是一个大的局域网,主机不能互通的原因,其实跟例一中LAN 1不能ping通LAN 2的原因一样,都是因为上层的默认网关不知道目的IP所属网段的正确位置,无法做有效转发所致。这种环境的典型示意图如下:

图中内网网关就是小区的网关,R1和R3分别为两户的宽带路由器,它们之间一般通过楼层的接入交换机和小区的骨干交换机连接在一起,此图省略了这一部分。图4的这种情况,只要在网关设备上按例一的方式添加两条路由就能实现两个子网中主机的互访,而且其10.0.0.0这个A类网段中存在的主机也都能通过这两条路由访问到R1和R3下的内网机。但是如果是小区的网关设备,那肯定是不会让用户随便配置路由条目的,而且你应该也不想小区内的所有用户都能直接访问到你的内网主机。这时,我们可以在R1和R3上各添加一条路由指向对方来实现R1和R3下主机直接互访的效果。
在R1上:目的IP地址172.16.0.0,子网掩码255.255.0.0(B类网段),下一跳10.1.1.3。
在R3上:目的IP地址192.168.0.0,子网掩码255.255.255.0(C类网段),下一跳10.1.1.2。
注:有些新型小区中使用了P-VLAN技术,这种网络的情况比较复杂,这样上面简单的静态路由设置有可能无法达到目的。
例三:既串且并,网络中有多级路由设备的环境。
这种情况可以说是例一和例二两种应用的整合和延伸,看似复杂其实简单。
地瓜:如果像例二中那样的环境中,我家里的局域网再添置一个路由器,下挂另一个网段以做扩展,那要怎么设置呢?
大虾:你说的这种网络结构,确实就是将例一和例二合在一起了。这时一共有4个网段并存,我们的设置是要让两户家庭局域网下的3个子网内主机能够互通,而此时小区的网关当然还是不能去设置的。其拓扑示意图如下:

可以看到图5就是将图1和图4整合在一起了。既然拓扑图是例一、例二的结合,那将例一、例二中的路由条目加在一起是不是就可以了呢?当然也不是这么简单,如果只是配置了前两例的路由条目,R3下的主机是无法直接访问到R2下的192.168.1.0这个子网的。所以在R3上还要加一条到192.168.1.0这个子网的路由。静态路由条目配置如下:
R1:目的IP地址192.168.1.0,子网掩码255.255.255.0,下一跳192.168.0.100。
目的IP地址172.16.0.0,子网掩码255.255.0.0,下一跳10.1.1.3。
R3:目的IP地址192.168.0.0,子网掩码255.255.255.0,下一跳10.1.1.2。
目的IP地址192.168.1.0,子网掩码255.255.255.0,下一跳10.1.1.2。
地瓜:为何R3中第二条路由的下一跳不是直接指向R2,而是也指向R1呢?
大虾:就知道你会问这个,这个问题要从路由器间通信的原理来讲解。路由器是通过ARP解析协议来获得下一跳路由器的MAC地址,而ARP基于广播,在一般情况下路由器是不会转发广播,也就是广播包无法过路由。所以对于路由器R3来讲,R1和R3才是同等级的,它只能看到R1,不能看到R2,这就是为何在例一的注意中提到:“其中的网关IP必须是与WAN或LAN口属于同一个网段”的原因。而文中所说的静态路由条目组成的第3部分:网关又叫下一跳,而不叫下两跳、下三跳也是这个意思。总之,在一般情况下,下一跳路由的IP地址肯定要跟这个路由器的某个接口是在同一个网段的。
本篇文章下面的部分将讲解关于路由汇总(或叫路由归纳)的知识。
上面例三中R3上的静态路由条目,其实可以写成一条:目的IP地址192.168.0.0,子网掩码255.255.0.0(不再是C类子网的掩码),下一跳10.1.1.2。这时192.168.0.0,掩码255.255.0.0这个网段不能称为C类或B类的子网了,由于它超过了本身C类网段的范围,所以可以称它是一个超网。这个网段包含了192.168.0.0~192.168.255.0所有的子网。也就是说,这条静态路由会使所有目的IP在这个范围内的信息包,都发给10.1.1.2的路由器R1。将多条子路由条目汇总成一条都包含其内的总路由条目,这就是路由汇总或叫路由归纳。路由器在检查计算路由时是比较消耗资源的,路由条目越多,路由表越长,则这个过程耗时越多,所以通过路由汇总减少路由表的长度,对提高路由器工作效率是很有帮助的。虽然在举例中的这种只有几个路由器的小网络中起到的作用有限,但是如果是几十、几百甚至上千、上万个路由器的大型网络中,路由归纳起到的作用就非常明显了,可以说不使用路由归纳是不可想象的。

例四:

例三最后的那条归纳路由虽然包含了R1下所有的两个子网(192.168.0.0和192.168.1.0),但是也包含了R1下实际上并不存在的一些子网(192.168.2.0~192.168.255.0)。如果在整个局域网中别的路由器下还存在这些子网(如图6,R4下存在192.168.2.0子网),那么路由就会出错了,所以这条汇总路由是一条不精确的汇总。

我们都知道IPv4的地址是由4段8位的二进制数组成,一部分是网络位,一部分是主机位。其对应的子网掩码网络位部分就是全1的二进制数,而主机位就是全0的二进制数。每个信息包在过路由器时会检查其目的IP,和路由表中路由条目的子网掩码做“与”运算,并与路由条目中目的IP进行比对,相同的就按照这条路由规则转发,不相同的就再检查比对下一条。可以看出我们做的汇总路由的操作,就是将多条路由条目中目的IP相同的网络位提取出来写成一条。而例三中的汇总路由之所以不精确就是因为相同部分未能全部提出来。

如例三中,R3上的第一条:目的IP为192.168.0.0;第二条:目的IP为192.168.1.0。我们只提取了前面的两段192.168,而后面的第三段网络位中还是有相同的部分的。192.168.0.0中第三段写成二进制数为00000000(8位0),182.168.1.0中第三段写成二进制数为00000001(7位0,1位1),那么它们的前7位是相同的,在对应的子网掩码位置上就应该是11111110(7位1,1位0),合成十进制为254。所以这条汇总路由应该写成:目的IP为192.168.0.0,子网掩码255.255.254.0,下一跳10.1.1.2。这样,这条汇总路由只包含192.168.0.0和192.168.1.0两个子网,是一条精确的汇总路由。如图6中,R3下172.16.0.0的主机发送到192.168.2.0网段的信息包,其第三段网络位写成二进制为00000010(前6位0),就不包含在这条精确的汇总路由内了。
这时我们在R3上静态路由条目应该为:
1.目的IP地址192.168.0.0,子网掩码255.255.254.0,下一跳10.1.1.2。
2.目的IP地址192.168.2.0,子网掩码255.255.255.0,下一跳10.1.1.4。
我们在进行路由汇总时应该尽量使用精确的汇总条目,本着能汇总的条目就汇总,不能精确汇总的条目就不汇总的原则。这样在网络以后的扩展和变动时能更有条理的增改路由表,减少出错的几率。
总结:
静态路由因为其设置简单明了,在不常变动的网络中稳定性好,排错也相对容易,所以在中小企业甚至一些大型的园区网中也都使用静态路由,它在实际应用中是很常见的,属于网络工作人员必会的基础知识。如文中所述,静态路由的设置原理是比较简单的,但可以说它是学习各种路由协议的基础,属于学习路由知识时必学的部分。另外,在越复杂越大的网络中,汇总路由的效果就越显着,而能不能进行有效的路由汇总、汇总的效率如何,都跟网络结构中IP地址网段的分布有密切关系。IP地址的部署越连续而有条理,则路由汇总越容易也越有效,所以我们在部署网络时应该重视体系化编址。(注:在子网环境中,当网络地址是以2的指数形式的连续区块时,路由归纳是最有效的。)

H. 试验说明

下面以具体试验来说明,由算法生成的大连湾区域土地利用应用本体实例,如图5.42 所示,描述了大连湾地区土地利用方面的信息,包含空间数据和非空间数据的语义信息,图 5.42 是对应土地利用本体的树状结构图。本体构建过程参照 《国家资源环境遥感宏观调查土地资源分类系统》和中国科学院地理科学与资源研究所数据中心土地利用本体分类体系。敬枝脊

当用户提出查找在大连湾东北方向,并位于大连湾50 km 内包含湖泊的所有林地地理实体时,此查询语句较为复杂包括方位关系(大连湾东北方向)、距离关系(大连湾 50km 内)、拓扑关系(林地包含湖泊)和语义关系(林地是有林地、灌木林、疏林地和宜林地的父类)。传统的方法很难实现这种复杂的查询请求,通过创建 DALIAN Region 应用本体就可以很好的解决这种复杂的查询请求。本试验是基于 Jena 和 ArcServer 开发的,首先在服务器端调用编写的本体查询函数(用 Jena 解析),利用应用本体实例中的空间语义关系进行推理。如图 5.42 和图 5.43,“有林地”、“灌木林”、“疏林地”和 “宜林地”是林地的子类,宜林地和草山草坡是同义关系,灌木林和疏林地是林间草地的父亮渗类。利用Jena 工具很容易就可以把对林地的查询自动的推理到 “有林地”、“灌木林”、“疏林地”、“宜林地”、“草山草坡”和林间草地中去; 对空间关系的查询,应用本体中已经描述了拓扑关系(Contain)、方位关系(EastNorth)和距离关系(11.7,36.5)只需要用 Xpath、Xquery 查询语言进行查询转换即可。然后将查询到的 DALIAN Region 土地利用应用本体的结果,组织成 SQL 语句传递给 ArcServer 的 GetFeatureClass 类,由 ArcServer 返搭尘回查询结果,在客户端显示。客户端显示的查询结果如彩图 5.1 所示,其中黄色高亮显示的为查询结果。

图 5.43 土地利用应用本体实例(局部)

空间信息的查询与检索是空间信息共享的前提条件。但由于用户认知和概念世界中的概念与系统模型中的概念之间存在语义异质性,用户检索出来的数据往往并不是他们真正想要的。通过建立等价关系、继承关系、逆反关系以及拓扑、方位和距离等空间关系的地理本体并将之用于检索请求可以解决这种语义异质性,从而实现更高级别的检索。在检索处理过程中,以空间数据的属性关系图 ARG 作为描述地理实体空间关系的基础,基于应用本体实例生成算法 AOGA 和语义推理工具 Jena 实现异构消解和语义扩展,极大地提高了检索准确率。以下是本解决方案的优点和将来的工作。

(1)提出了描述空间关系的 ARG 模型,利用 ARG 可以方便地查询任意两个地理实体的空间关系,改进以往空间关系查询时 SQL 扩展的不便性;

(2)建立了非空间数据之间的语义关系,可以更全面的检索出所需数据;

(3)提出了应用本体实例生成方法,可以较为方便的生成所需应用本体实例;作为将来的工作,将集中在以下两点。

(4)建立 ARG 模型时,需花费大量的时间,且容易出错,下一步将研究更自动化的方法建立所需的 ARG。

(5)本体建立层次还较低,只是建立到大类,后续工作,需要在建立地理本体时,建立到具体地理实例一级,要具体到地理实体的名称。