GIS-T课件(第5-6讲)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2014年春季学期主讲:交通科学与工程学院程绍武•关系数据模型中最强大的特性之一就是利用关系代数操纵和抽取信息的能力。•关系代数的操作(Date1995):–选择(Select):基于某种条件选择关系中的元组–投影(Project):选择关系中的某些域–求合(Union):组合两个关系的元组到一个关系–笛卡儿积(Production):生成来自两个关系的元组的所有的组合(准确地讲,生成一个元组的集合,集合中的每个元组对应一个有序对,有序对产生规则是从第一个关系中取出的每个元组与从第二个关系中取出的每个元组组合)关系的操作2014年春季学期主讲:交通科学与工程学院程绍武–求差(Difference):求属于两个关系中一个关系但不属于另一个关系的元组–求交(Intersection):找出两个关系中相同的元组–连接(Join):基于特定域的匹配,逻辑地连接不同关系中的元组•最后四个操作是传统的集合操作的扩展而头三个是专门用于关系代数操作的。•关系代数的主要特征是它的闭特征(Date1995)。2014年春季学期主讲:交通科学与工程学院程绍武•基本操作•选择操作•投影操作•求合操作•笛卡尔积•求差操作•附加操作•求交操作•连接操作2014年春季学期主讲:交通科学与工程学院程绍武例:求关系R和关系S的选择、投影、交、并、差,笛卡儿积、连接操作的结果,其中,选择和投影操作的结果列举一种既可ABCabcdafcbdDEFbgadaf关系R关系S2014年春季学期主讲:交通科学与工程学院程绍武•选择操作–设R是一个n元关系,F是一个形如riθc的公式,其中θ∈{=,≠,,,≤,≥},R的选择操作定义为F(R)={(r1,...,ri,...,rn)|(r1,...,ri,...,rn)∈R∧riθc}。2014年春季学期主讲:交通科学与工程学院程绍武•投影操作–设R是一个n元关系,R的投影操作定义为∏i1,i2,...,im(R)={(ri1,...,rim)|(r1,...,ri1,...,rim,...,rn)∈R}2014年春季学期主讲:交通科学与工程学院程绍武•求合操作–设R和S是n元关系,而且两者各对应属性的数据类型也相同。R和S的并操作定义为R∪S={t|t∈R∨t∈S}。2014年春季学期主讲:交通科学与工程学院程绍武•笛卡尔积–设R是n元关系,S是m元关系,R和S的的笛卡尔积定义为R×S={(r1,...,rn,s1,...,sm)|(r1,...,rn)∈R∧(s1,...,sm)∈S}。82014年春季学期主讲:交通科学与工程学院程绍武•求差操作–设R和S是n元关系,而且两者各对应属性的数据类型也相同。R和S的差定义为R-S={t|t∈R∧tS}。2014年春季学期主讲:交通科学与工程学院程绍武•求交操作–设R和S是n元关系,而且两者各对应属性的数据类型也相同。R和S的交操作定义为RS={t|t∈R∧t∈S}=R-(R-S)。2014年春季学期主讲:交通科学与工程学院程绍武•连接操作–设R是n元关系,S是m元关系,A是R的属性,B是S的属性,A和B的值域具有相同的数据类型,θ∈{=,≠,,,≤,≥}。R和S的连接操作定义为–其中,r[A]表示元组r在属性A上的值,s[B]表示元组s在属性B上的值。我们称A和B是连接属性。2014年春季学期主讲:交通科学与工程学院程绍武–连接操作举例2014年春季学期主讲:交通科学与工程学院程绍武SegmentroadIDsegmentIDfunctionalClass00010001A00010002B00010003C00020001C00020002DSpeedfunctionalClassSpeedlimitA55B45C35D25例:从下列关系中查询roadID为0001,segementID为0001的限速值2014年春季学期主讲:交通科学与工程学院程绍武•在DBMS软件中实现关系代数最普通的方法就是通过结构化的查询语言(SQL,Structuredquerylanguage),尽管只有几个SQL忠实地实现了关系代数(Date1995),大多数的SQL保留了关系代数系统的主要特性(包括闭性)。•关于SQL的讨论超出了本课的范围;关于SQL的一般性的讨论见Emerson,DarnovskyandBowman(1989),GIS范畴内的SQL讨论见Worboys(1995)。2014年春季学期主讲:交通科学与工程学院程绍武•实验报告(自选)•在MicrosoftAccess数据库管理系统中建立下列关系表,给出所建立表的不少于8种关系操作的SQL表示及其相应的操作结果SegmentroadIDsegmentIDFunctional_Class00010001A00010002B00010003C00020001C00020002DSpeedFunctional_ClassSpeed_limitA55B45C35D25Road_NameRoadIDRoad_name0001Emerson0002Redondo2014年春季学期主讲:交通科学与工程学院程绍武•最初的关系数据模型是用来处理非空间数据(文本,数字)的;其对于空间数据是非常有限的。•使用关系模型保存空间数据的原因:–许多现有的数据库是关系型的。因此,出于务实的原因,将地理数据存放在已有的关系数据库要比开发新的模式重新建立数据库要容易得多。–另一个原因与企业级的公共数据库有关。与开发并维护独立的数据库相比,多个用户和应用共享公共的数据库更加省力并且更有可能保持数据的完整性。关系数据模型在支持多用户多应用方面常常具有较好的“鲁棒”(Scarponcini1997)。•关系数据模型与空间数据2014年春季学期主讲:交通科学与工程学院程绍武•在关系数据库中保存空间数据的策略(Scarponcini1997)–采用完全规范化的表格(保持1NF)•WaughandHealey(1987)的GEOVIEW设计—base表、Symbolism表、system表。•地理关系模型georelationalmodel(Healy1991;Morehouse1984)—分离空间数据和属性数据。–扩展关系数据模型的域使其允许抽象数据类型•如InformixRDBMS在SQL3中实现了开放GIS联盟的抽象数据类型规范—用户可以为点、线、多边形等抽象数据类型定义值域(domain)。–在域(field)内支持编码的大的二进制对象binarylargeobject(BLOB)2014年春季学期主讲:交通科学与工程学院程绍武–提供空间扩展的关系数据库系统(spatiallyextendedrelationaldatabasesystems),即,增加明确的空间数据域(domains)和功能作为对传统关系数据模型的扩展。•关系数据模型对空间查询的支持–关系代数和SQL对于GIS环境下的查询和数据操纵的支持是非常有限的(Egenhofer1992)。–开发支持几何和图形操作的扩展来消除SQL的限制(如,Egenhofer991;Frank1982;Herring,Larsen,andShivakumar1988)。2014年春季学期主讲:交通科学与工程学院程绍武–任何基于SQL的空间查询语言都有严重的不足(Egenhofer1992):•不支持对象标识查询。SQL只支持基于属性的等价比较,无法支持有关不同时间点对象状态的查询。•不支持元数据查询。元数据查询对空间数据库是重要的,但SQL不允许用户询问有关数据本身的问题(元数据)。通过将元数据作为关系存储来规避这个问题时可能的,但是,这会导致与冗余数据存储相关的数据库操作异常。•不支持知识查询。SQL无法支持用户查询用于计算空间关系的规则和确定空间数据模型中的地理一致性约束(如,“如果没有桥,路不能跨越河流”)。这些能力超越了当前SQL实现的能力。2014年春季学期主讲:交通科学与工程学院程绍武•不支持定性查询。SQL不支持定性的查询,如“Emerson街与Redondo街宽度的关系是什么?”(可能的答案如,“Emerson街比Redondo街更宽”)。这是由于SQL是一阶(first-order)语言,它只允许谓词名字的常数值。即允许常数也允许变量作为谓词的二阶(second-order)语言,可以支持类似的定性查询。•检索和显示分开。标准的SQL忽视查询结果的表示。缺省的显示由表格形式的结果构成。检索语言与查询结果的显示是分离的:SQL既不知道显示了什么也不允许根据显示内容操纵查询结果。对于空间数据和空间查询来说,这是明显的不足。–上述不足暗示着其他的数据模型可能更适合空间数据和交通数据2014年春季学期主讲:交通科学与工程学院程绍武•多层顺序的一个问题是不同层之间的阻抗不匹配(impedancemismatch):对每个层来说,思想和概念是唯一的,不能完全地、清晰地转化•OO试图通过将概念层和逻辑层压缩到一个层,减少这种阻抗不匹配。这允许用户与计算机内部的逻辑数据结构交互,从而更紧密地匹配他们对数据在概念上或语义上的理解。有许多面向对象的类型,包括面向对象的分析,面向对象的编程,面向对象的用户接口(如,Apple和Windows操作系统),以及面向对象的数据库系统(OODBMS)2.3面向对象数据建模2014年春季学期主讲:交通科学与工程学院程绍武•面向对象的三个主要概念–抽象数据类型–实例–对象标识objectidentity(KhoshafianandAbnous1995)。•与上述概念紧密相关的概念是封装encapsulation和覆盖overriding(Graham1993).•面向对象的数据库管理系统(OODBMS)允许数据库设计者定义抽象数据类型主要的OO概念2014年春季学期主讲:交通科学与工程学院程绍武•OO中的抽象数据类型扩展了数据值域(domain)的概念,超越了对象属性的表示。•抽象数据类型也支持对象行为(beheaviors)的表示。•消息(message)•公共声明(Publicdeclarations)为往来对象的消息指定输入输出格式。•私有声明(Privatedeclarations)是对象内部的属性和行为,其它对象是不可存取的。抽象数据类型(类)2014年春季学期主讲:交通科学与工程学院程绍武图2-7交通网络Link的层次结构(afterKwan,GolledgeandSpeigle1996)LinkRoadHighwayAddressedInterstateArterialLocalMajorMinorAlleyneighborhoodLane继承2014年春季学期主讲:交通科学与工程学院程绍武•行为覆盖overriding–覆盖Overriding允许对已经声明的行为在继承层次结构更低层实现新的方法。•行为覆盖的优点–用户无需考虑准确的算法或层次间的功能,只需知道输入/输出格式即可。–在一些数据库或程序中,用户可能无法准确地知道在给定的阶段什么对象会出现。用户可能只是发送消息“calculateflowcost”。这可以用于继承过程中的任何对象,因此,代码和程序更加健壮和具有柔性。行为覆盖2014年春季学期主讲:交通科学与工程学院程绍武•传统的编成语言或数据库系统不支持永久的对象标识–在传统的编成语言中,对象标识源自其在内存中的位置–关系模型通过特定的或者唯一的属性(如主键)定义对象的标识。关系模型还需要“join”操作来明确地连接其他关系中拥有(非键)属性的对象。•在OO系统中,每个对象有一个区别于其他所有对象的永久标识。不管它的属性和行为如何变化。(KhoshafianandAbnous1995)对象标识2014年春季学期主讲:交通科学与工程学院程绍武•OOA比E-R图或EER图的语义更加丰富。代之以只捕获数据需求,OOA力图捕获复杂系统三个纬度的信息(Graham1994):–需要的数据–统过程:通常用系统组件之间的数据或活动流表示–系

1 / 33
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功