• Nenhum resultado encontrado

Operadores Geogr´ aficos e Multidimensionais (SOLAP)

A LINGUAGEM DE CONSULTA GEOMDQL

5.3 OPERADORES DA LINGUAGEM GEOMDQL

5.3.3 Operadores Geogr´ aficos e Multidimensionais (SOLAP)

Para definirmos os operadores geogr´aficos e multidimensionais da linguagem GeoMDQL, seguimos a mesma l´ogica aplicada na defini¸c˜ao das fun¸c˜oes de agrega¸c˜ao de medidas espaciais, e detalhada no Cap´ıtulo 4. Assim, novos operadores foram definidos a partir da combina¸c˜ao das opera¸c˜oes pertencentes `as classes distributiva, alg´ebrica e hol´ıstica [135] com as opera¸c˜oes espaciais dadas em [246]. Os seguintes operadores s˜ao resultantes desta combina¸c˜ao:

Operador 16 (LowDistance).

Ordena um conjunto de membros em ordem crescente pela distˆancia em rela¸c˜ao a um determi- nado ponto. O terceiro parˆametro ´e opcional, e denota a quantidade de membros retornados na consulta. Quando este parˆametro ´e omitido, todos os membros s˜ao retornados. Por Exemplo, a instru¸c˜ao a seguir:

LowDistance( [Localizacao].[Estado].[Distrito Federal], 5, [Localizacao].[Estado].members), ´e utilizada em uma consulta para retornar somente as cinco menores distˆancias entre o Distrito Federal e os demais membros do n´ıvel Estado. < BooleanExpression > ´e outro parˆametro opcional, e representa o valor booleano que indica se a distˆancia entre os membros ´e ou n˜ao retornada. Quando omitido, o valor padr˜ao ´e falso, e a distˆancia n˜ao ´e retornada.

Sintaxe:

5.3 OPERADORES DA LINGUAGEM GEOMDQL 77

Tabela 5.1 Operadores GeoMDQL sobrecarregados da linguagem MDX

Operador Descri¸c˜ao Sintaxe

DrilldownLevel Realiza a opera¸c˜ao de Drill-Down sobre um conjunto de membros, que podem representar um n´ıvel em uma hierarquia geogr´afica

DrilldownLevel(<Set>| <MemberSet>)

DrilldownMember Aplica a opera¸c˜ao de Drill-Down ao conjunto de membros geogr´aficos definidos no primeiro parˆametro, que est˜ao no conjunto representado pelo segundo parˆametro.

DrilldownMember(<MemberSet>, <MemberSet>)

DrillupLevel Aplica a opera¸c˜ao de Drill-Up ou Roll-Up aos mem- bros pertencentes a um conjunto, que podem repre- sentar um n´ıvel em uma hierarquia geogr´afica.

DrillupLevel(<MemberSet>)

DrillupMember Aplica a opera¸c˜ao de Drill-Up ao conjunto de membros geogr´aficos definidos no primeiro parˆametro, que est˜ao no conjunto representado pelo segundo parˆametro.

DrillupMember(<MemberSet>, <MemberSet>)

Ancestor Retorna o ancestral de um membro em um deter- minado n´ıvel da hierarquia geogr´afica, representado pelo nome do n´ıvel (<LevelName>) ou por um valor num´erico (<NumericExpression>) correspondente ao ´ındice do n´ıvel na hierarquia

Ancestor(<MemberName>, <LevelName>) Ancestor(<MemberName>,

<NumericExpression>)

Descendants Recupera o conjunto de descendentes de um mem- bro geogr´afico, em todos os n´ıveis anteriores ou em um determinado n´ıvel da hierarquia, representado pelo nome do n´ıvel (<LevelName>) ou pelo seu ´ındice (<NumericExpression>). Descendants(<MemberName>) Descendants(<MemberNAme>, <LevelName>) Descendants(<MemberName>, <NumericExpression>) Ascendants Recupera o conjunto de membros ascendentes de um

determinado membro geogr´afico.

Ascendants(<MemberName>) Members Retorna o conjunto de membros pertencentes a um

determinado n´ıvel, representado por < LevelN ame >

< LevelName >.Members Children Retorna todos os filhos de um determinado membro

geogr´afico.

<MemberName>.Children Siblings Retorna todos os irm˜aos de um determinado membro

geogr´afico, pertencentes ao mesmo n´ıvel, incluindo ele pr´oprio.

5.3 OPERADORES DA LINGUAGEM GEOMDQL 78

[, < N umericExpression >],

< M emberSet > [, < BooleanExpression >])

Operador 17 (TopDistance).

´

E o inverso do operador LowDistance, ou seja, ordena os membros em ordem decrescente.

Operador 18 (RankArea ).

Este operador ´e utilizado para classificar um conjunto de membros geogr´aficos de acordo com o tamanho de sua ´area geogr´afica. O membro geogr´afico de maior ´area ocupa a primeira posi¸c˜ao.

Sintaxe:

RankArea(< M emberSet >)

Operador 19 (RankPerimeter ).

´

E utilizado para classificar um conjunto de membros geogr´aficos de acordo com o tamanho de seu per´ımetro. O membro geogr´afico de maior per´ımetro ocupa a primeira posi¸c˜ao.

Sintaxe:

RankPerimeter(< M emberSet >)

Operador 20 (RankLength ).

´

E utilizado para classificar um conjunto de membros geogr´aficos de acordo com o seu compri- mento. O membro geogr´afico de maior tamanho ocupa a primeira posi¸c˜ao.

Sintaxe:

RankLength(< M emberSet >)

Operador 21 (MaxArea ).

Dado um conjunto de membros geogr´aficos, ele retorna o membro de maior ´area geogr´afica.

Sintaxe:

MaxArea(< M emberSet >)

Operador 22 (MinArea ).

´

E o inverso do operador MaxArea.

Operador 23 (MaxPerimeter ).

Dado um conjunto de membros geogr´aficos, ele retorna o membro de maior per´ımetro.

Sintaxe:

MaxPerimeter(< M emberSet >)

Operador 24 (MinPerimeter ).

´

E o inverso do operador MaxPerimeter.

Operador 25 (MaxLength ).

Dado um conjunto de membros geogr´aficos, ele retorna o membro geogr´afico de maior compri- mento.

5.3 OPERADORES DA LINGUAGEM GEOMDQL 79

Sintaxe:

MaxLength(< M emberSet >)

Operador 26 (MinLength ).

Dado um conjunto de membros geogr´aficos, ele retorna o membro geogr´afico de menor compri- mento.

Sintaxe:

MinLength(< M emberSet >)

Operador 27 (AvgArea ).

Dado um conjunto de membros geogr´aficos, ele retorna o valor escalar correspondente `a m´edia das ´areas geogr´aficas dos membros.

Sintaxe:

AvgArea(< M emberSet >)

Operador 28 (AvgPerimeter ).

Retorna um valor escalar que corresponde ao valor m´edio dos per´ımetros dos membros ge- ogr´aficos passados como parˆametro.

Sintaxe:

AvgPerimeter(< M emberSet >)

Operador 29 (AvgLength ).

Retorna um valor escalar que corresponde ao comprimento m´edio de um conjunto de membros geogr´aficos.

Sintaxe:

AvgLength(< M emberSet >)

Operador 30 (MedianArea ).

Dado um conjunto de membros geogr´aficos, ele retorna o valor escalar correspondente ao valor mediano das ´areas geogr´aficas destes membros.

Sintaxe:

MedianArea(< M emberSet >)

Operador 31 (MedianPerimeter ).

Dado um conjunto de membros geogr´aficos, ele retorna o valor escalar correspondente ao valor mediano dos per´ımetros destes membros.

Sintaxe:

MedianPerimeter(< M emberSet >)

Operador 32 (MedianLength ).

5.3 OPERADORES DA LINGUAGEM GEOMDQL 80

mediano dos comprimentos destes membros.

Sintaxe:

MedianLength(< M emberSet >)

Operador 33 (ModeArea ).

Dado um conjunto de membros geogr´aficos, ele retorna o valor escalar correspondente ao valor modal (que aparece com mais freq¨uˆencia) das ´areas geogr´aficas destes membros.

Sintaxe:

ModeArea(< M emberSet >)

Operador 34 (ModePerimeter ).

Dado um conjunto de membros geogr´aficos, ele retorna o valor escalar correspondente ao valor modal dos per´ımetros destes membros.

Sintaxe:

ModePerimeter(< M emberSet >)

Operador 35 (ModeLength ).

Dado um conjunto de membros geogr´aficos, este operador retorna o valor escalar correspondente ao valor modal dos comprimentos destes membros.

Sintaxe:

ModeLength(< M emberSet >)

Tamb´em fazem parte do conjunto de operadores multidimensionais e geogr´aficos da lin- guagem GeoMDQL os operadores Drillout e Drillin, cujas defini¸c˜oes s˜ao dadas a seguir.

Operador 36 (Drillout ).

Retorna todos os membros que fazem divisa com um determinado membro geogr´afico, da mesma hierarquia de uma dimens˜ao geogr´afica. Quando presente na opera¸c˜ao,o segundo parˆametro (que pode ser true ou false) indica se as geometrias dos membros envolvidos s˜ao agrupadas ou n˜ao, podendo transformar o resultado em um ´unico objeto geogr´afico. O valor padr˜ao para este parˆametro ´e falso.

Sintaxe:

Drillout(< M emberN ame > [, < BooleanExpression >])

Operador 37 (Drillin).

Retorna todos os membros que est˜ao dentro de um determinado membro geogr´afico, presente na mesma hierarquia de uma dimens˜ao geogr´afica.

Sintaxe:

Drillin(< M emberN ame >)

GeoFilter estende o operador Filter da linguagem MDX, para a utiliza¸c˜ao de medidas ge- ogr´aficas e opera¸c˜oes espaciais sobre estas medidas. Assim, sua defini¸c˜ao e sintaxe s˜ao dadas como segue:

5.3 OPERADORES DA LINGUAGEM GEOMDQL 81

Operador 38 (GeoFilter ).

Realiza uma filtragem em um conjunto de membros, geogr´aficos ou n˜ao, atrav´es da aplica¸c˜ao de uma express˜ao l´ogica baseada em operadores espaciais (e.g. operadores topol´ogicos e cardinais - ver Cap´ıtulo 2). Dessa forma, o parˆametro < GeoLogicalExpression > pode assumir valores como: i) Area([M easures].[AreaLote]) > 2000, que retorna somente as medidas geogr´aficas que possuem ´area superior a 2000 metros quadrados; ii)AtNortOf([Measures].[AreaLote],POINT(- 47.7972315212149 -15.7811190610677))), que retorna somente as medidas que est˜ao localizadas ao norte de determinada geometria.

Sintaxe:

GeoFilter(< M emberSet >, < GeoLogicalExpression >)

Outro operador definido para a linguagem proposta nesta tese ´e o NGeoGrouping, cuja defini¸c˜ao ´e dada abaixo:

Operador 39 (NGeoGrouping ).

Possui caracter´ısticas de minera¸c˜ao de dados, e quando aplicado a um conjunto de medidas geogr´aficas, ele as organiza em N agrupamentos. O primeiro parˆametro deste operador ´e o nome de um membro geogr´afico ou conjunto de membros geogr´aficos, que definem o contexto do agrupamento. O segundo parˆametro informa quantos agrupamentos dever˜ao ser criados, enquanto o ´ultimo parˆametro indica o nome da medida geogr´afica que ter´a seus valores agrupados. Por exemplo, a instru¸c˜ao em GeoMDQL

NGeoGrouping([Localizacao].[Estado].[PERNAMBUCO],50,[Measures].[TotalCasos]) define que todas os casos de dengue localizados no estado de Pernambuco devem ser organizados em cinq¨uenta grupos.

Sintaxe:

NGeoGrouping(< M emberN ame > | < MemberSet >, < NumericalExpression >, < GeoM easure >)

Para encontrar os vizinhos mais pr´oximos de um determinado local, ou de um membro geogr´afico, a linguagem GeoMDQL conta com o operador NNearestNeighbor, definido abaixo.

Operador 40 (NNNeighbors).

Este operador, quando aplicado a um conjunto de medidas geogr´aficas, retorna as N medidas mais pr´oximas de um determinado local. O primeiro parˆametro deve ser o nome de um mem- bro geogr´afico, ou um conjunto de membros. O segundo parˆametro, indica quantos vizinhos s˜ao retornados, enquanto o terceiro corresponde ao nome da medida geogr´afica envolvida na consulta. Por fim, o quarto parˆametro, representa a geometria de referˆencia usada na an´alise. Por exemplo, a instru¸c˜ao em GeoMDQL:

NNNeighbors([Localizacao].[Estado].[PERNAMBUCO], 150,