SlideShare ist ein Scribd-Unternehmen logo
1 von 27
3 Creación de tablas
espaciales.
OBJETIVOS
•Describir el esquema asociado con todas las capas espaciales, tipos, funciones y
procedimientos
•Explicar cómo los datos espaciales se almacenan utilizando el modelo de objetos de
Oracle Spatial
•Crear una tabla con una capa espacial
•Cargar una vista de metadatos asociada con una capa espacial
1 PASOS TÍPICOS PARA LA GESTIÓN DE DATOS ESPACIALES
1. Creación de una tabla para almacenar datos
espaciales.
2. Introducir (almacenar) los datos espaciales
3. Actualización de los metadatos espaciales.
4. Validación y depuración de geometrías (si
es necesario).
5. Creación de índices espaciales.
6. Ejecución de consultas espaciales.
Los pasos mencionados en el diagrama son las tareas básicas que suelen realizar para
empezar a trabajar con cualquier tipo de datos espaciales. Como primer paso se debe
definir una tabla con una o más columnas SDO_GEOMETRY para almacenar los datos
geométricos. Esta tabla debe tener algunos atributos no espaciales.
Posteriormente se procede a insertar filas en esta tabla mediante la instrucción INSERT.
Hay también maneras de carga masiva de datos espaciales en tablas de Oracle (SQL *
LOADER). También es esencial el llevar a cabo una validación de la geometría antes de
usarla en las consultas espaciales. Oracle Spatial proporciona la validación y diferentes
funciones de depuración que pueden ayudar a eliminar las geometrías no válidas, así como
fijar algunas discrepancias.
También se deben de actualizar las vistas de metadatos. Posteriormente se procede a crear
índices espaciales para mejorar el rendimiento de las consultas espaciales. Por último, se
pueden ejecutar una gran variedad de consultas espaciales.
2 ESQUEMA MDSYS
•Cuando se instala Oracle Spatial u Oracle Locator, se crea el usuario
MDSYS. El usuario MDSYS es:
•El propietario de los tipos espaciales, paquetes, funciones, procedimientos,
y los metadatos
•Similar al usuario SYS
•Un usuario con privilegios With ADMIN option
•Esta cuenta está bloqueada por defecto.
•Se debe de tener cuidado con esta cuenta de administrador.
•Nunca debe de existir la necesidad de iniciar la sesión como el usuario
MDSYS.
•Nunca se deben de crear datos como el usuario MDSYS.
3 OBJETO SDO_GEOMETRY
La base de datos Oracle8i introdujo un nuevo tipo de datos nativos llamados
SDO_GEOMETRY. Se pueden crear tablas con las columnas del tipo de
SDO_GEOMETRY de la misma manera que se crean tablas con otros tipos de datos de
Oracle. No hay una tabla espacial como tal, sólo una tabla con una o más columnas
espaciales del tipo SDO_GEOMETRY. Las tablas espaciales tienen las mismas
características que las tablas ordinarias de Oracle, con las cláusulas de almacenamiento
(storage) normales; la diferencia radica en que contienen una o más columnas
SDO_GEOMETRY. El objeto SDO_GEOMETRY contiene una geometría entera que
puede ser asociada a una columna de una tabla de Oracle.
Si sabes cómo utilizar la base de datos Oracle, y nunca habías oído hablar de Oracle
Spatial, de antemano sabes cómo utilizar gran parte de las características que posee
Oracle Spatial. El presente texto te dará la nueva información asociada a cómo cargar,
indexar y consultar una columna SDO_GEOMETRY. La columna de SDO_GEOMETRY
se accede a través de comandos SQL, y trabaja con todos los servicios de Oracle: SQL *
Loader; así como las herramientas de import y export.
El objeto SDO_GEOMETRY tiene cinco campos. Cada campo se describe en detalle
en las próximas páginas. Dos de los campos son del tipo numérico y los tres
campos restantes son del tipo objeto.
Objeto SDO_GEOMETRY:
Ejemplo :
SQL> CREATE TABLE states (
2 state VARCHAR2(30),
3 totpop NUMBER(9),
4 geom SDO_GEOMETRY);
SDO_GTYPE NUMBER
SDO_SRID NUMBER
SDO_POINT SDO_POINT_TYPE
SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY
SDO_ORDINATES SDO_ORDINATE_ARRAY
La ilustración anterior es un ejemplo simple de la creación de una tabla con una columna
del tipo SDO_GEOMETRY.
Nota: Al crear una columna del tipo SDO_GEOMETRY en versiones anteriores a Oracle
Spatial 10g, el tipo debe ser especificado como MDSYS.SDO_GEOMETRY.
El objeto SDO_POINT_TYPE es un campo en el objeto SDO_GEOMETRY. Se utiliza para
almacenar un único punto que podrá tener como máximo tres dimensiones. El objeto
SDO_POINT_TYPE no debe ser utilizado fuera del objeto SDO_GEOMETRY (es decir, no
crear tablas con una columna de tipo SDO_POINT_TYPE).
SDO_ELEM_INFO_ARRAY es un campo en el objeto SDO_GEOMETRY. En él se
describen los elementos almacenados en esta geometría. Este campo es discutido a
detalle más adelante..
SDO_ORDINATE_ARRAY es un campo en el objeto SDO_GEOMETRY. Contiene todas
las coordenadas de todos los elementos que componen la geometría. Esto se describe con
más detalle en las siguientes páginas.
SDO_POINT_TYPE:
x NUMBER
y NUMBER
z NUMBER
SDO_ELEM_INFO_ARRAY:
VARRAY (1048576) OF NUMBER
SDO_ELEM_INFO_ARRAY:
VARRAY (1048576) OF NUMBER
4 SDO_GTYPE
Este es el primero de los cinco campos en el objeto SDO_GEOMETRY. Como se indicó
anteriormente, una geometría puede estar compuesta de uno o más elementos. Se puede
pensar en SDO_GTYPE como la "visión global". Define qué tipo de geometría se almacena
en el objeto SDO_GEOMETRY.
Se debe asociar al SDO_GTYPE más apropiado con la geometría que deseemos
representar. Por ejemplo, un único elemento de tipo polígono puede ser representado
como un SDO_GTYPE 7, pero de manera óptima, es representado como un SDO_GTYPE
3. Se debe de tener en cuenta que SDO_GTYPE 4 (heterogéneo) sólo debe usarse si es
un requisito que la geometría almacene tipos de elementos diferentes. HETEROGENEOUS
COLLECTION (Colecciones heterogéneas) no son parte del estándar Open Geospatial
Consortium (OGC), y puede no ser soportado por todas las aplicaciones.
GTYPE Descripción
1 POINT La geometría contiene un punto
2 LINESTRING La geometría contiene un “line string”
3 POLYGON La geometría contiene un polígono
4 HETEROGENEOUS
COLLECTION
La geometría es una colección de distintos
elementos: puntos, lineas y poligonos.
5 MULTIPOINT La geometría tiene multiples puntos
6 MULTILINESTRING La geometría tiene multiples “line strings”.
7 MULTIPOLYGON La geometría tiene multiples polígonos.
SDO_GTYPE. Define el tipo de geometría almacenada en el
objeto. Se especifica en el formato DLTT donde:
D identifica el número de dimensiones
L identifica el LRS
TT identifica el tipo de geometría
El SDO_GTYPE se especifica en el formato DLTT. El valor de la componente “D” puede
ser de 2, 3, o 4, lo que representa el número de coordenadas que se utilizan para definir
un vértice. El valor de “L” se utiliza para indicar el sistema de referencia lineal (LRS) el
cual se explica a detalle más adelante. Los valores van desde 01 hasta 07 en “TT”, el
cual es usado para indicar el tipo de geometría. Por ejemplo, un valor de 02 indica una
LineString que puede contener líneas rectas o arcos.
Un valor de SDO_GTYPE de 2003 indica que la geometría es un polígono de dos
dimensiones sin ningún tipo de referencias lineales.
Nota: Los valores de TT de 08 y 09 se utilizan para representar los sólidos y
multisolidos, que no están cubiertos en este texto.
5 SISTEMA DE REFERENCIA LINEAL (Linear
Referencing System) LRS
•Es un mecanismo asociado al valor de una medida con un punto 2D o 3D a lo largo
de un LineString o un polígono.
•El valor de la medida es típicamente proporcional a la distancia registrada desde el
inicio de la geometría.
•Es comúnmente usado en muchas aplicaciones de SIG, tales como transporte y
servicios públicos.
Desde Oracle 9i, la posición de la medida en una geometría LRS está codificada en el
segundo dígito de izquierda a derecha en SDO_GTYPE.
Si la geometría no es una geometría LRS, entonces no hay ningún cambio en
SDO_GTYPE (es decir, 2000-2007, 3000-3007 y 4000-4007).
La posición LRS debe ser coherente en todas las geometrías en la columna.
Las posiciones de medida se almacena en la geometría por la misma razón que la
dimensionalidad se almacena en la geometría. Almacenar esta información en la
geometría elimina una búsqueda en el diccionario para encontrar la posición de medida,
que es especialmente difícil si la geometría viene de una visión compleja (como se
discutió previamente).
Una geometría 2D con una medida:
Geometrías 2D con una medida debe tener el valor de medida en la tercera posición
de cada vértice.
Geometrías 3D (es decir los valores, x, y, z) con una medida:
Geometrías 3D con una medida debe almacenar el valor de medida en la cuarta
posición de cada vértice.
6 MÉTODOS CON SDO_GTYPE
GET_GTYPE() devuelve el tipo de geometría, utilizando dos dígitos
Las tablas deben ser renombradas cuando accedemos a los atributos o métodos en
las columnas que tienen un tipo de dato objeto.
En el ejemplo anterior, GEOD_STATES tiene un alias, que es g . Esto permite el
acceso a GET_GTYPE () del objeto SDO_GEOMETRY.
SQL> SELECT g.geom.get_gtype() state_gtype
FROM geod_states g
WHERE g.state = 'Delaware';
STATE_GTYPE
-----------
3
GET_DIMS() devuelve el número de dimensiones:
GET_LRS_DIM() devuelve la dimensión LRS:
SQL> SELECT s.geom.get_dims() state_dims
FROM geod_states s
WHERE s.state = 'Delaware';
STATE_DIMS
----------
2
GET_LRS_DIM() devuelve la dimensión LRS:
SQL> SELECT s.geom.get_lrs_dim() state_lrs_dim
FROM geod_states s
Where s.state = 'Delaware';
STATE_LRS_DIM
-------------
0
Hasta ahora, sólo el primero de los cinco campos en el objeto SDO_GEOMETRY ha sido
discutido. Los siguientes dos campos que analizaremos serán
Campo SDO_SRID: Este es el segundo campo en el objeto SDO_GEOMETRY. Es
utilizado para asociar los datos espaciales con un sistema de coordenadas. Oracle Spatial
tiene una tabla de diccionario llamado MDSYS.CS_SRS, que enumera todos los sistemas
de coordenadas. El valor establecido en el ámbito de SDO_SRID debe coincidir con un
valor en el ID de referencia espacial (SRID) de la tabla MDSYS.CS_SRS, o en su caso ser
NULL. Todas las geometrías en una columna deben tener el mismo SDO_SRID. Más
detalles acerca de los sistemas de coordenadas están cubiertos en las lecciones titulado
"Sistemas de coordenadas: Información general" y "Conceptos Avanzados Sistemas de
coordenadas".
Campo SDO_POINT: Este es el tercer campo en el objeto SDO_GEOMETRY. Esta es una
forma optimizada para almacenar un único punto en el objeto SDO_GEOMETRY. El campo
SDO_POINT debe utilizarse en el contexto del objeto SDO_GEOMETRY (Oracle Spatial no
funciona con una columna definida como SDO_POINT_TYPE). Si solo se requiere
almacenar un único punto (2D o 3D) se sugiere sea colocado en el campo de SDO_POINT
del objeto SDO_GEOMETRY.
El campo SDO_POINT proporciona almacenamiento y rendimiento óptimos. El valor
almacenado en el campo SDO_POINT se ignora si el SDO_ELEM_INFO y campos
SDO_ORDINATES son not NULL.
Campo SDO_ELEM_INFO: Este es el cuarto campo en el objeto SDO_GEOMETRY. Una
geometría contiene uno o más elementos. Si el único elemento que se va a almacenar es
un punto, se sugiere sea almacenado en el campo SDO_POINT, una descripción de cada
elemento que compone la geometría se almacena en el campo SDO_ELEM_INFO.
El campo de SDO_ELEM_INFO es un VARRAY (varying-sized array) de tipo numérico.
Los valores que se coloquen en el campo SDO_ELEM_INFO deben ser considerados en
grupos de tres números. Los valores representan el triplete:
Desplazamiento de coordenada: Este es un desplazamiento en el campo
SDO_ORDINATES (descrito más adelante). Una geometría puede estar compuesta de
uno o más elementos. El primer elemento de una geometría comienza siempre en la
posición 1.
Tipo de elemento: Este es el tipo de elemento (punto, línea, polígono, …). El tipo de
elemento es también llamado “eType”. Todos los valores posibles para el tipo de elemento
se discuten en la parte restante de esta unidad.
Interpretación: Posee un significado diferente dependiendo del valor del tipo de elemento.
Puede significar que todos los puntos que integran un elemento están conectados con
líneas rectas, arcos circulares, o podría significar que es el header (encabezado) de un
elemento compuesto.
Campo SDO_ORDINATES: Este es el quinto campo en el objeto SDO_GEOMETRY.
Este campo es una VARRAY de tipo numérico. Contiene todas las coordenadas que
forman los elementos descritos por el campo SDO_ELEM_INFO.
Nota: Tanto el SDO_ORDINATES y SDO_ELEM_INFO se definen como VARRAY, cuya
longitud máxima es de 1,048,576.
En el caso de SDO_ELEM_INFO, el número máximo de elementos simples que
cualquier geometría puede tener es de 349,525 (1,048,576 / 3).
En el caso de SDO_ORDINATES, si la geometría tiene coordenadas de dos
dimensiones, puede llegar a tener hasta 524,288. Si la geometría es de tres dimensiones
(o de dos dimensiones con una medida de LRS), el número máximo de coordenadas es
349,525. Si hay coordenadas de cuatro dimensiones en la geometría, el número máximo
de coordenadas será de 262,144.
7 POINT
Este es un ejemplo de almacenamiento de un único punto en el campo de
SDO_POINT. El campo SDO_POINT optimiza el almacenamiento de un solo punto.
Para generar un índice espacial en el campo SDO_POINT, el SDO_ELEM_INFO y
campos SDO_ORDINATES deben ser nulos. El campo SDO_POINT es ignorado por
Oracle Spatial si el SDO_ELEM_INFO y campos SDO_ORDINATES son NOT NULL.
El ejemplo muestra el uso de un constructor de SDO_GEOMETRY (resaltado), que es
la sintaxis específica para los tipos de objetos.
Nota: Si se desea almacenar un punto 2D en el campo SDO_POINT, se debe
establecer el valor de z como NULL, por ejemplo:
INSERT INTO TELEPHONE_POLES VALUES
(attribute_1, attribute_n,
MDSYS.SDO_GEOMETRY (2001, null,
MDSYS.SDO_POINT_TYPE(-75.2,43.7,NULL), null, null));
SQL> INSERT INTO TELEPHONE_POLES
2> VALUES (attribute_1, …, attribute_n,
3> SDO_GEOMETRY (
4> 3001, null,
5> SDO_POINT_TYPE (-75.2,43.7,200),
6> null, null)
7> );
Hasta el momento, sólo se ha visto la forma de almacenar datos en el campo de
SDO_POINT del objeto SDO_GEOMETRY. Ahora se empieza a observar el
almacenamiento de elementos en los campos de VARRAY del objeto SDO_GEOMETRY.
El cuadro que se presenta resume la forma de representar un elemento en el campo de
SDO_ELEM_INFO.
Como se dijo anteriormente, una geometría puede estar compuesta de uno o más
elementos. Si la geometría no es un único punto almacenado en el campo
SDO_POINT, entonces cada elemento tendrá una entrada de valor triple en el varray
SDO_ELEM_INFO (coordenada de desplazamiento, tipo de elemento, interpretación).
Este cuadro NO muestra el desplazamiento de coordenadas. Este cuadro sólo describe las
otras dos partes del valor del triplete (tipo de elemento, interpretación).
No se debe confundir con los tipos de elementos SDO_GTYPEs, ya que éstos representan
el tipo de geometría que se almacena.
8 RESUMEN DE TIPOS DE ELEMENTOS
Elemento de tipo 0: Se utiliza para el modelo de un elemento que no está actualmente
soportado por Oracle Spatial.
Elemento de tipo 1: Para almacenar puntos o multipuntos. El campo de interpretación
describe cuántos puntos son almacenados.
Elemento de tipo 2: Para almacenar LineStrings
Interpretación 1 representa una LineString convencional conectada con líneas rectas.
Interpretación 2 representa una LineString compuesta de uno o más arcos circulares.
Elemento de tipo 3: En un formato de 4 dígitos, 1003 representa un polígono de tipo anillo
exterior y 2003 representa un anillo interno:
Interpretación 1: polígono convencional conectada con las líneas rectas
Interpretación 2: Arc polygon (polígono arco) , conectado con arcos circulares
Interpretación 3: Rectángulo optimizado , sólo requiere de representar los puntos de la parte
inferior izquierda y superior derecha del rectángulo
Interpretación 4: círculo optimizado (no es realmente un polígono, pero es clasificado como
polígono porque tiene área)
Elemento de tipo 4: LineString compuesta, tiene elementos contiguos que contiene líneas
rectas y arcos circulares. El campo de interpretación determina cuántos subelementos (es
decir, los valores del triplete en el ámbito SDO_ELEM_INFO) componen la LineString.
Elemento de tipo 5: Un valor 1005 representa un polígono compuesto de tipo anillo
exterior (un elemento contiguo que contiene líneas rectas y arcos circulares). 2005
representa un polígono compuesto que es un anillo interior . El campo de interpretación
determina cuántos subelementos (es decir, los valores del triplete en el campo de
SDO_ELEM_INFO) componen este polígono compuesto.
9 LINESTRING
(x1,y1)
(x2,y2)
(x3,y3) (x4,y4)
En la tabla mostrada en la figura podemos apreciar el valor del triplete (desplazamiento de
coordenada, tipo de elemento, interpretación) que se almacena en el campo de
SDO_ELEM_INFO. La mayoría de los desplazamientos de coordenadas que se ve en los
ejemplos siguientes comenzará con el número 1, porque los ejemplos que muestran tienen
geometrías con un solo elemento. Hay algunos ejemplos con geometrías que tienen más
de un elemento y en esos casos, se pueden observar los valores correspondientes al
desplazamiento de coordenadas.
El tipo de elemento 2 corresponde a un elemento LineString. Un elemento LineString se
compone de uno o más segmentos contiguos.
La interpretación de un tipo de elemento 2 define cómo conectar los segmentos que
componen al LineString. En este ejemplo, la interpretación es 1 y corresponde a una
LineString cuyos segmentos están conectados con líneas rectas ( LineString convencional).
LineString que forman un anillo no tienen ninguna área implicada.
Los segmentos de línea pueden cruzar entre sí.
Nota: SDO_GTYPE para esta geometría es 2002 (un solo elemento LineString). Se debe
de tener en cuenta que SDO_GTYPE es el primer campo del objeto SDO_GEOMETRY y
describe toda la geometría.
10 ARC STRING
En la tabla mostrada se puede observar el valor del triplete (desplazamiento de coordenda,
tipo de elemento, interpretación) que se almacenará en el campo de SDO_ELEM_INFO.
El tipo de elemento 2 corresponde a un elemento de tipo LineString. Un elemento
LineString se compone de uno o más segmentos contiguos.
La interpretación define cómo se han de conectar los segmentos que componen el
LineString. En este ejemplo, la interpretación es 2, y corresponde a una LineString cuyos
segmentos están conectados con arcos circulares. Un arco está definido por tres puntos
distintos de la circunferencia de un círculo: el primer punto, el último punto, y cualquier
punto distinto en medio de estos dos. El último punto de un arco es el primer punto del
arco siguiente.
Arcos que cierran y formar un anillo no tienen ninguna área implicada.
Los arcos pueden cruzar entre sí.
Nota: SDO_GTYPE para esta geometría es 2002 (un solo elemento de tipo LineString).
(x5,y5) (x7,y7)
(x1,y1)
(x3,y3)
(x4,y4)(x2,y2)
(x6,y6)
11 POLYGON
En general, el tipo de elemento 3 corresponde a un polígono. En lugar de especificar un
tipo de elemento 3, se recomienda determinar claramente si un polígono anillo exterior o un
anillo interior. Polígonos de anillo exterior se representan como el tipo de elemento 1003, y
polígonos de anillo interior son representados como el tipo de elemento de 2003.
Los polígonos anillo exterior deben almacenar sus coordenadas en sentido contrario a las
manecillas del reloj.
El polígono anillo interior debe almacenar sus coordenadas en sentido horario.
Cumplir con los comentarios anteriores permite cálculos más rápidos.
El último punto de un polígono debe ser el mismo que el primer punto. A pesar de que este
punto podría ser información un tanto obvia, debe repetirse para ajustarse al estándar del
Open Geospatial Consortium (OGC).
La interpretación define cómo conectar los segmentos que conforman el polígono. En este
ejemplo, la interpretación es 1, y corresponde a un polígono cuyos segmentos están
conectados con líneas rectas (un polígono convencional).
Los segmentos de línea de los polígonos NO se cruzan entre sí.
Nota: SDO_GTYPE para esta geometría es 2003 (un único polígono).
(x4,y4)
(x5,y5)
(x3,y3)(x2,y2)
(x6,y6)
(x1,y1)
12 ARC POLYGON
El tipo de elemento de 1003 indica que es un polígono anillo exterior.
La interpretación 2 indica que los segmentos de línea son arcos circulares.
Las coordenadas que lo conforman se almacenan en sentido anti horario.
La interpretación define cómo se conectan los segmentos que conforman el polígono. En
este caso, la interpretación es de 2, y corresponde a un polígono cuyos segmentos están
conectados con arcos circulares. Un arco circular está definido por tres puntos.
Nota: SDO_GTYPE para esta geometría es 2003 (un único polígono).
(x7,y7)
(x6,y6)
(x5,y5)
(x9,y9) (x3,y3)
(x4,y4)
(x1,y1)
(x8,y8)
(x2,y2)
13 RECTANGLE
(x2,y2)
(x1,y1)
El tipo de elemento de 1003 corresponde a un polígono anillo exterior.
Si el polígono fuera un anillo interior, estaría representado, como el tipo de elemento 2003.
En este ejemplo, la interpretación es 3, y corresponde a un rectángulo optimizado para el
almacenamiento. Sólo la parte inferior izquierda y superior derecha de los puntos del
rectángulo se almacenan. Un rectángulo optimizado tiene área.
Nota: SDO_GTYPE para esta geometría es 2003 (un único polígono).
14 CIRCLE
El tipo de elemento de 1003 indica que es un polígono anillo exterior.
En este ejemplo, la interpretación es de 4, y corresponde a un círculo. El círculo está
representado por cualquiera de los tres puntos distintos que integran la circunferencia.
Nota: SDO_GTYPE para esta geometría es 2003 (un único polígono).
(x1,y1)(x2,y2)
(x3,y3)
15 COMPOUND LINE STRING
El tipo de elemento 4 corresponde a una LineString compuesta. Estos tipos de elementos
son conectados con líneas rectas o con arcos circulares.
Una LineString tiene las mismas propiedades que una LineString simple. Se permiten líneas
que se crucen entre sí; sin embargo ninguna zona o figura que formen tendrá área.
Una LineString se define por una serie de sub-elementos contiguos. Cada subelemento es
una línea recta o un arco circular.
El primero es un triplete de cabecera (header). La interpretación en la cabecera indica
cuántos subelementos forman parte de la LineString compuesta.
Todos los subelementos deben ser del tipo de elemento 2 (interpretación 1 ó 2) y deben ser
contiguos (es decir, el último punto de un subelemento es el primer punto del siguiente
subelemento).
En el ejemplo mostrado en la figura se puede observar que los desplazamientos de
coordenadas de cada sub-elemento son diferentes y corresponden a donde el subelemento
comienza a definirse en el arreglo de coordenadas.
Nota: SDO_GTYPE para esta geometría es 2002 (un solo elemento de tipo LineString).
(x6,y6)
(x3,y3)
(x1,y1)
(x5,y5)
(x4,y4)
(x2,y2)
(x7,y7)
(x8,y8)
(x9,y9)
El primer triplete es denominado “encabezado”
Elemento de tipo 4: nos indica que tenemos una LienString compuesta
Interpretación 3: indica el número de subelementos por los cuales está formada la
LineString compuesta.
16 COMPOUND POLYGON
El tipo de elemento 5 corresponde a un polígono compuesto.
Un polígono compuesto se define por una serie de subelementos contiguos. Cada
subelemento es una línea recta o un arco circular. El primero es un triplete de cabecera. La
interpretación en la cabecera indica cuántos subelementos (o tripletas adicionales en
SDO_ELEM_INFO) componen este polígono compuesto. Todos los subelementos de un
polígono compuesto debe ser del tipo de elemento 2 (segmentos) con la interpretación de 1
o 2, y todos los subelementos deben ser contiguos (es decir, el último punto de un
subelemento es el primer punto de la siguiente subelemento ).
En la figura, se puede observar que los desplazamientos de coordenadas de cada
subelemento son diferentes y corresponden a lugar exacto donde comienza el subelemento
Note: SDO_GTYPE para esta geometria es de 2003 (un único elemento de tipo polígono).
Los polígonos compuestos tienen las mismas propiedades como polígonos (es decir, los
segmentos de línea de los polígonos NO se cruzan entre sí).
El triplete de encabezado define a los subelementos.
Tipo de elemento es 1005: Indica que es un polígono anillo exterior
Interpretación 2: nos marca el número de subelementos que formarán al
polígono
(x4,y4)
(x5,y5)
(x6,y6)
(x7,y7)
(x2,y2)
(x3,y3)(x1,y1)
17 REGLAS PARA ELEMENTOS DE TIPO “POLÍGONO”
Este es un ejemplo de un polígono que posee huecos. El anillo exterior tiene es un tipo de
elemento de 1003, y el anillo interior es un tipo de elemento de 2003.
Huecos pueden contener islas, y las islas pueden contener huecos.
El área se calcula como la diferencia entre exterior e interior de los polígonos.
Nota: SDO_GTYPE para esta geometría es 2003 (un único polígono ).
18 POLÍGONO CON HUECOS
(x4,y4)
(x5,y5)
(x3,y3)(x2,y2)
(x6,y6)
(x1,y1)
(x7,y7)
(x8,y8)
19 POLÍGONO COMPUESTO CON HUECOS
Este es un ejemplo de un polígono compuesto con un hueco. El anillo exterior es un tipo de
elemento 1005 (polígono compuesto) y el anillo interior es un tipo de elemento 2003
(rectángulo optimizado).
El polígono compuesto tiene tres entradas en el campo SDO_ELEM_INFO. El primero es un
triplete de cabecera (1,1005,2). "2" indica dos tripletes adicionales, los cuales definen los
subelementos (1,2,1) y (7,2,2).
Nota: SDO_GTYPE de esta geometría es 2003 (un único polígono ). Un polígono con uno o
más elementos vacío todavía puede ser considerado como un único polígono (que no es
clasificado como un MultiPolygon).
(x4,y4)
(x5,y5)
(x3,y3)
(x6,y6)
(x7,y7)
(x1,y1)
(x2,y2)
(x9,y9)
(x10,y10)
(x8,y8)
20 CONSTRUYENDO GEOMETRÍAS
Utilice la instrucción SQL “INSERT” para la construcción de las geometrías y la insercion de
las mismas en las tablas.
El constructor SDO_GEOMETRY es llamado para crear una instancia de un objeto
geometrico.
INSERT INTO LINES VALUES (
attribute_1, …. attribute_n,
SDO_GEOMETRY (
2002, null, null,
SDO_ELEM_INFO_ARRAY (1,2,1),
SDO_ORDINATE_ARRAY (
10,10, 20,25, 30,10, 40,10))
);
(10,10) (30,10) (40,10)
Anteriormente, se vio la forma de insertar un punto a través de la utilización de
SDO_POINT.
Este es el primer ejemplo para insertar datos de carácter geométrico utilizando los
campos (SDO_ELEM_INFO y SDO_ORDINATES) del objeto SDO_GEOMETRY.
La instrucción INSERT utiliza un constructor SDO_GEOMETRY, establece el SRID y los
campos de SDO_POINT a null, y utiliza el SDO_ELEM_INFO_ARRAY y constructores
SDO_ORDINATE_ARRAY para rellenar los campos faltantes.
Nota: Cuando almacenemos un valor NULL en una columna que tiene asociado un tipo
de dato geometrico, solo bastara con colocar un solo NULL y no uno por cada valor de
SDO_GEOMETRY.
Ejemplo:
correcto
INSERT INTO LINES VALUES (attribute1, … attribute_n, NULL);
incorrecto
INSERT INTO LINES VALUES (attribute1, … attribute_n,
SDO_GEOMETRY(NULL, NULL, NULL, NULL, NULL));
Cuando se llama a un constructor, se utiliza el nombre del tipo y no el nombre de columna
o nombre de campo.
INSERT INTO PARKS VALUES(
attribute_1, …, attribute_n,
SDO_GEOMETRY(
2003, null, null,
SDO_ELEM_INFO_ARRAY
(1,1005,2, 1,2,1, 7,2,2, 17,2003,3),
SDO_ORDINATE_ARRAY
(10,50,10,30,50,30,50,50,45,60,
30,50,15,60,10,50,25,35,35,40)));
(45,60)
(50,50)
(50,30)
(30,50)
(15,60)
(10,50)
(10,30)
(25,35)
(35,40)
(10,50)
Este es otro ejemplo para insertar información en los campos (SDO_ELEM_INFO y
SDO_ORDINATES) del objeto SDO_GEOMETRY.
En este ejemplo se inserta el polígono compuesto con un hueco, mismo que se habia
presentado con anterioridad.
La instrucción INSERT utiliza un constructor SDO_GEOMETRY, establece el SRID y
campos SDO_POINT a null, y utiliza constructores SDO_ELEM_INFO_ARRAY y
SDO_ORDINATE_ARRAY para rellenar los campos correspondientes.
Se debe tener en cuenta que cuando se llama a un constructor, se utiliza el nombre del
tipo y no el nombre de la columna o el nombre del campo. Para el campo
SDO_ELEM_INFO, se debe de escribir el nombre SDO_ELEM_INFO_ARRAY y el campo
SDO_ORDINATES es del tipo SDO_ORDINATE_ARRAY.
Nota: SDO_GTYPE de esta geometría es 2003 (un único polígono en 2D). Un polígono
con uno o más huecos todavía puede ser considerado como un único polígono (que no es
clasificado como un MultiPolygon).
21
REGLAS PARA INSERTAR GEOMETRÍAS EN
TABLAS ESPACIALES.
Todas las geometrías deben tener la misma dimensión en una tabla espacial.
El valor D en SDO_GTYPE debe ser el mismo.
Todas las geometrías deben estar asociadas con el mismo sistema de coordenadas.
El valor SDO_SRID debe ser el mismo.
2005 30055. MULTIPOINT
2004 30044. HETEROGENEOUS
COLLECTION
2003 30033. POLYGON
2006 30066. MULTILINESTRING
2007 30077. MULTIPOLYGON
2002 30022. LINESTRING
2001 30011. POINT
4 dÍgitos para el GTYPEs:
Incluida la dimensión.
2D 3D
SDO_GTYPE
22 METADATOS ESPACIALES
Por cada columna SDO_GEOMETRY, se deben de insertar los metadatos en una vista de
diccionario de datos llamada USER_SDO_GEOM_METADATA.
Usted es responsable de la actualización de la vista USER_SDO_GEOM_METADATA con
información de metadatos sobre cualquier columna SDO_GEOMETRY que cree.
Oracle Spatial se asegura de que la vista ALL_SDO_GEOM_METADATA se actualice con el
obejtivo de reflejar las filas que se insertan en USER_SDO_GEOM_METADATA.
ALL_SDO_GEOM_METADATA contiene información de metadatos sobre todas las tablas
Esta vista contiene todos los metadatos para el usuario de Oracle que se ha identificado con
el nombre “X”, y todos los metadatos para las columnas de las geometrías para las cuales
“x” tiene permisos de select.
Oracle Spatial nunca actualiza o elimina información de la vista de
USER_SDO_GEOM_METADATA.
Nota: Usted debe actualizar esta vista antes de crear índices espaciales.
Actualizar la vista USER_SDO_GEOM_METADATA con la información de
metadatos acerca de cada columna SDO_GEOMETRY.
Las siguientes vistas están disponibles para cada usuario:
USER_SDO_GEOM_METADATA
ALL_SDO_GEOM_METADATA:
Esta contiene información de metadatos sobre todas las tablas espaciales sobre
las cuales el usuario tiene privilegios de SELECT
Nunca se debe de insertar información en esta vista, ya que su propósito
principal es mostrar información.
USER_SDO_GEOM_METADATA
DESCRIBE USER_SDO_GEOM_METADATA
Name Null? Type
-------------- ---------- ------------------
TABLE_NAME NOT NULL VARCHAR2(32)
COLUMN_NAME NOT NULL VARCHAR2(1024)
DIMINFO SDO_DIM_ARRAY
SRID NUMBER
MDSYS.SDO_DIM_ARRAY:
VARRAY(4) OF SDO_DIM_ELEMENT
MDSYS.SDO_DIM_ELEMENT object
SDO_DIMNAME VARCHAR2(64)
SDO_LB NUMBER
SDO_UB NUMBER
SDO_TOLERANCE NUMBER
USER_SDO_GEOM_METADATA
Descripcion de la vista USER_SDO_GEOM_METADATA
TABLE_NAME: El nombre de la tabla que contiene la columna SDO_GEOMETRY
COLUMN_NAME: el nombre de la columna SDO_GEOMETRY
DIMINFO: muestra el VARRAY de los objetos SDO_DIM_ELEMENT.
Aquí es donde se define el sistema de coordenadas (2, 3 ó 4 ejes pueden ser definidos).
Los campos del objeto SDO_DIM_ELEMENT se describen mas adelante.
SRID: SRID es un acrónimo para el sistema de identificación de referencia espacial.
Este puede recibir los valores NULL o coincidir con un valor en la columna de la tabla de
SRID MDSYS.CS_SRS, donde todos los sistemas de coordenadas están definidos.
USER_SDO_GEOM_METADATA: SDO_DIM_ELEMENT Object
SDO_DIMNAME, SDO_LB, y SDO_UB, SDO_TOLERANCE son los campos del objeto
SDO_DIM_ELEMENT.
SDO_DIMNAME: es una cadena de caracteres para identificar el eje. Este valor no es
utilizado actualmente por Oracle Spatial 11g; fue utilizado en versiones previas a Oracle
9i.
SDO_LB: LB es un acrónimo para el límite inferior. Representa el valor más mas
pequeño para esta dimensión.
SDO_UB: UB es un acrónimo para el límite superior. Representa el mayor valor posible
para esta dimensión.
SDO_TOLERANCE:
Es la distancia requerida entre dos coordenadas de manera que sean considerados como
coordenadas individuales.
Es utilizado por la indexación de Oracle Spatial
Datos simples: La unidad de tolerancia y la unidad de datos son los mismos.
Datos geodésicos: Para los datos almacenados con longitud y latitud, la unidad de la
tolerancia es metros (es decir, 0,5m de tolerancia ). Los márgenes más pequeños de
tolerancia permitidos para los datos geodésicos son de 0,05 metros (5 centímetros).
23 INSERTANDO DATOS EN LA VISTA
USER_SDO_GEOM_METADATA.
INSERT INTO USER_SDO_GEOM_METADATA
(TABLE_NAME, COLUMN_NAME, DIMINFO, SRID)
VALUES (
'ROADS',
'GEOMETRY',
SDO_DIM_ARRAY (
SDO_DIM_ELEMENT('Long', -180, 180, 0.5),
SDO_DIM_ELEMENT('Lat', -90, 90, 0.5)),
8307);
Para los datos geodésicos, en el eje x los límites deben ser desde -180 hasta 180, y en el
eje y los límites deben ser desde -90 hasta 90.
Establezca el mismo valor en la columna SRID de la vista
USER_SDO_GEOM_METADATA que aquel que inserto en el campo de SDO_SRID.
Por cada columna de carácter geométrico, una fila de metadatos debe ser insertada en
USER_SDO_GEOM_METADATA. Esto se hace con insert convencional.
Nota: Usted debe especificar el eje "x" antes que el eje “y”.

Weitere ähnliche Inhalte

Was ist angesagt?

PostGIS and Spatial SQL
PostGIS and Spatial SQLPostGIS and Spatial SQL
PostGIS and Spatial SQLTodd Barr
 
Effective Java - Enum and Annotations
Effective Java - Enum and AnnotationsEffective Java - Enum and Annotations
Effective Java - Enum and AnnotationsRoshan Deniyage
 
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례BJ Jang
 
Using ddl statements to create and manage tables
Using ddl statements to create and manage tablesUsing ddl statements to create and manage tables
Using ddl statements to create and manage tablesSyed Zaid Irshad
 
오픈소스 GIS 교육 - PostGIS
오픈소스 GIS 교육 - PostGIS오픈소스 GIS 교육 - PostGIS
오픈소스 GIS 교육 - PostGISJungHwan Yun
 
공간정보연구원 PostGIS 강의교재
공간정보연구원 PostGIS 강의교재공간정보연구원 PostGIS 강의교재
공간정보연구원 PostGIS 강의교재JungHwan Yun
 
Oracle sql joins
Oracle sql joinsOracle sql joins
Oracle sql joinsredro
 
Using GeoServer for spatio-temporal data management with examples for MetOc a...
Using GeoServer for spatio-temporal data management with examples for MetOc a...Using GeoServer for spatio-temporal data management with examples for MetOc a...
Using GeoServer for spatio-temporal data management with examples for MetOc a...GeoSolutions
 
SAP BW - Creation of hierarchies (time dependant hierachy structures)
SAP BW - Creation of hierarchies (time dependant hierachy structures)SAP BW - Creation of hierarchies (time dependant hierachy structures)
SAP BW - Creation of hierarchies (time dependant hierachy structures)Yasmin Ashraf
 
Spatio-temporal Data Handling With GeoServer for MetOc And Remote Sensing
Spatio-temporal Data Handling With GeoServer for MetOc And Remote SensingSpatio-temporal Data Handling With GeoServer for MetOc And Remote Sensing
Spatio-temporal Data Handling With GeoServer for MetOc And Remote SensingGeoSolutions
 
Standard Template Library
Standard Template LibraryStandard Template Library
Standard Template LibraryGauravPatil318
 
Scheduling bods jobs sequentially and conditionally
Scheduling bods jobs sequentially and conditionallyScheduling bods jobs sequentially and conditionally
Scheduling bods jobs sequentially and conditionallyChandra Reddy
 
[Curso Java Basico] Aula 14: Condicionais If-Else
[Curso Java Basico] Aula 14: Condicionais If-Else[Curso Java Basico] Aula 14: Condicionais If-Else
[Curso Java Basico] Aula 14: Condicionais If-ElseLoiane Groner
 
[공간정보시스템 개론] L09 공간 데이터 모델
[공간정보시스템 개론] L09 공간 데이터 모델[공간정보시스템 개론] L09 공간 데이터 모델
[공간정보시스템 개론] L09 공간 데이터 모델Kwang Woo NAM
 

Was ist angesagt? (20)

PostGIS and Spatial SQL
PostGIS and Spatial SQLPostGIS and Spatial SQL
PostGIS and Spatial SQL
 
Effective Java - Enum and Annotations
Effective Java - Enum and AnnotationsEffective Java - Enum and Annotations
Effective Java - Enum and Annotations
 
Sql loader good example
Sql loader good exampleSql loader good example
Sql loader good example
 
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
 
Using ddl statements to create and manage tables
Using ddl statements to create and manage tablesUsing ddl statements to create and manage tables
Using ddl statements to create and manage tables
 
오픈소스 GIS 교육 - PostGIS
오픈소스 GIS 교육 - PostGIS오픈소스 GIS 교육 - PostGIS
오픈소스 GIS 교육 - PostGIS
 
공간정보연구원 PostGIS 강의교재
공간정보연구원 PostGIS 강의교재공간정보연구원 PostGIS 강의교재
공간정보연구원 PostGIS 강의교재
 
Sql queries
Sql queriesSql queries
Sql queries
 
Sql fundamentals
Sql fundamentalsSql fundamentals
Sql fundamentals
 
Oracle sql joins
Oracle sql joinsOracle sql joins
Oracle sql joins
 
Using GeoServer for spatio-temporal data management with examples for MetOc a...
Using GeoServer for spatio-temporal data management with examples for MetOc a...Using GeoServer for spatio-temporal data management with examples for MetOc a...
Using GeoServer for spatio-temporal data management with examples for MetOc a...
 
SAP BW - Creation of hierarchies (time dependant hierachy structures)
SAP BW - Creation of hierarchies (time dependant hierachy structures)SAP BW - Creation of hierarchies (time dependant hierachy structures)
SAP BW - Creation of hierarchies (time dependant hierachy structures)
 
Spatio-temporal Data Handling With GeoServer for MetOc And Remote Sensing
Spatio-temporal Data Handling With GeoServer for MetOc And Remote SensingSpatio-temporal Data Handling With GeoServer for MetOc And Remote Sensing
Spatio-temporal Data Handling With GeoServer for MetOc And Remote Sensing
 
Introduction to data structure and algorithms
Introduction to data structure and algorithmsIntroduction to data structure and algorithms
Introduction to data structure and algorithms
 
Standard Template Library
Standard Template LibraryStandard Template Library
Standard Template Library
 
SQL JOIN
SQL JOINSQL JOIN
SQL JOIN
 
Scheduling bods jobs sequentially and conditionally
Scheduling bods jobs sequentially and conditionallyScheduling bods jobs sequentially and conditionally
Scheduling bods jobs sequentially and conditionally
 
SQL UNION
SQL UNIONSQL UNION
SQL UNION
 
[Curso Java Basico] Aula 14: Condicionais If-Else
[Curso Java Basico] Aula 14: Condicionais If-Else[Curso Java Basico] Aula 14: Condicionais If-Else
[Curso Java Basico] Aula 14: Condicionais If-Else
 
[공간정보시스템 개론] L09 공간 데이터 모델
[공간정보시스템 개론] L09 공간 데이터 모델[공간정보시스템 개론] L09 공간 데이터 모델
[공간정보시스템 개론] L09 공간 데이터 모델
 

Andere mochten auch

Oracle Spatial de la A a la Z - Unidad 8
Oracle Spatial de la A a la Z - Unidad 8Oracle Spatial de la A a la Z - Unidad 8
Oracle Spatial de la A a la Z - Unidad 8Jorge Ulises
 
Oracle Spatial de la A a la Z - Unidad 6
Oracle Spatial de la A a la Z - Unidad 6Oracle Spatial de la A a la Z - Unidad 6
Oracle Spatial de la A a la Z - Unidad 6Jorge Ulises
 
Oracle Spatial de la A a la Z - Unidad 10
Oracle Spatial de la A a la Z - Unidad 10Oracle Spatial de la A a la Z - Unidad 10
Oracle Spatial de la A a la Z - Unidad 10Jorge Ulises
 
Android de la A a la Z - Unidad 9
Android de la A a la Z - Unidad 9Android de la A a la Z - Unidad 9
Android de la A a la Z - Unidad 9Jorge Ulises
 
Oracle spatial de la A a la Z - INTRO
Oracle spatial de la A a la Z - INTROOracle spatial de la A a la Z - INTRO
Oracle spatial de la A a la Z - INTROJorge Ulises
 
Analisis geografico con oracle
Analisis geografico con oracleAnalisis geografico con oracle
Analisis geografico con oraclewalteromero
 
Manual completo-oracle-español-spanish-by-silex
Manual completo-oracle-español-spanish-by-silexManual completo-oracle-español-spanish-by-silex
Manual completo-oracle-español-spanish-by-silexAngel Lucas
 
Introdución a PostGis
Introdución a PostGisIntrodución a PostGis
Introdución a PostGisMarco Carranza
 
Intro To PostGIS
Intro To PostGISIntro To PostGIS
Intro To PostGISmleslie
 
Introducción a base de datos Oracle
Introducción a base de datos OracleIntroducción a base de datos Oracle
Introducción a base de datos Oraclepajaro5
 
Introducción a SQL sobre Oracle
Introducción a SQL sobre OracleIntroducción a SQL sobre Oracle
Introducción a SQL sobre OracleRaúl Galíndez
 

Andere mochten auch (13)

Oracle Spatial de la A a la Z - Unidad 8
Oracle Spatial de la A a la Z - Unidad 8Oracle Spatial de la A a la Z - Unidad 8
Oracle Spatial de la A a la Z - Unidad 8
 
Oracle Spatial de la A a la Z - Unidad 6
Oracle Spatial de la A a la Z - Unidad 6Oracle Spatial de la A a la Z - Unidad 6
Oracle Spatial de la A a la Z - Unidad 6
 
Oracle Spatial de la A a la Z - Unidad 10
Oracle Spatial de la A a la Z - Unidad 10Oracle Spatial de la A a la Z - Unidad 10
Oracle Spatial de la A a la Z - Unidad 10
 
Oracle Spatial de la A a la Z - JUGM 2010
Oracle Spatial de la A a la Z - JUGM 2010Oracle Spatial de la A a la Z - JUGM 2010
Oracle Spatial de la A a la Z - JUGM 2010
 
Android de la A a la Z - Unidad 9
Android de la A a la Z - Unidad 9Android de la A a la Z - Unidad 9
Android de la A a la Z - Unidad 9
 
Oracle spatial de la A a la Z - INTRO
Oracle spatial de la A a la Z - INTROOracle spatial de la A a la Z - INTRO
Oracle spatial de la A a la Z - INTRO
 
Analisis geografico con oracle
Analisis geografico con oracleAnalisis geografico con oracle
Analisis geografico con oracle
 
Manual completo-oracle-español-spanish-by-silex
Manual completo-oracle-español-spanish-by-silexManual completo-oracle-español-spanish-by-silex
Manual completo-oracle-español-spanish-by-silex
 
Introdución a PostGis
Introdución a PostGisIntrodución a PostGis
Introdución a PostGis
 
Intro To PostGIS
Intro To PostGISIntro To PostGIS
Intro To PostGIS
 
Introducción a base de datos Oracle
Introducción a base de datos OracleIntroducción a base de datos Oracle
Introducción a base de datos Oracle
 
Introducción a SQL sobre Oracle
Introducción a SQL sobre OracleIntroducción a SQL sobre Oracle
Introducción a SQL sobre Oracle
 
Base de Dato Oracle
Base de Dato OracleBase de Dato Oracle
Base de Dato Oracle
 

Ähnlich wie Oracle Spatial de la A a la Z - Unidad 3

Descubriendo los datos espaciales en SQL Server
Descubriendo los datos espaciales en SQL ServerDescubriendo los datos espaciales en SQL Server
Descubriendo los datos espaciales en SQL ServerSpanishPASSVC
 
(2)_sesión_2_construir_base_datos_FINAL(mixta)_v1.2023-1.pdf
(2)_sesión_2_construir_base_datos_FINAL(mixta)_v1.2023-1.pdf(2)_sesión_2_construir_base_datos_FINAL(mixta)_v1.2023-1.pdf
(2)_sesión_2_construir_base_datos_FINAL(mixta)_v1.2023-1.pdfJeanCarlosLozanoHern
 
Actividad 5
Actividad 5Actividad 5
Actividad 5neolider
 
Unidad 01 Tema 01 2022 LPI (1891).pdf
Unidad 01 Tema 01 2022 LPI (1891).pdfUnidad 01 Tema 01 2022 LPI (1891).pdf
Unidad 01 Tema 01 2022 LPI (1891).pdfKatherineLamaLaime
 
Utilización de base de datos externas en arcgis..
Utilización de base de datos externas en arcgis..Utilización de base de datos externas en arcgis..
Utilización de base de datos externas en arcgis..poli1971
 
4 establecer-procesos-para-la-manipulacion-de-la-base-de-datos
4 establecer-procesos-para-la-manipulacion-de-la-base-de-datos4 establecer-procesos-para-la-manipulacion-de-la-base-de-datos
4 establecer-procesos-para-la-manipulacion-de-la-base-de-datosNathaly Arias
 
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)Universidad Nacional de Piura
 
Base de-datos-ii
Base de-datos-iiBase de-datos-ii
Base de-datos-iiLuis Carmen
 
Arc Gis: Herramientas y Funcionalidades
Arc Gis: Herramientas y FuncionalidadesArc Gis: Herramientas y Funcionalidades
Arc Gis: Herramientas y FuncionalidadesTabodiaz
 
Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos Simeon Bordones
 
Bases de datos my sql
Bases de datos my sqlBases de datos my sql
Bases de datos my sqlevavivez
 
Módulo3 presentacion
Módulo3 presentacionMódulo3 presentacion
Módulo3 presentacionJuan Garcia
 
Bases De Datos My Sql
Bases De Datos My SqlBases De Datos My Sql
Bases De Datos My SqlArnulfo Gomez
 

Ähnlich wie Oracle Spatial de la A a la Z - Unidad 3 (20)

Tipos de datos espaciales
Tipos de datos espacialesTipos de datos espaciales
Tipos de datos espaciales
 
Descubriendo los datos espaciales en SQL Server
Descubriendo los datos espaciales en SQL ServerDescubriendo los datos espaciales en SQL Server
Descubriendo los datos espaciales en SQL Server
 
Datos espaciales
Datos espacialesDatos espaciales
Datos espaciales
 
(2)_sesión_2_construir_base_datos_FINAL(mixta)_v1.2023-1.pdf
(2)_sesión_2_construir_base_datos_FINAL(mixta)_v1.2023-1.pdf(2)_sesión_2_construir_base_datos_FINAL(mixta)_v1.2023-1.pdf
(2)_sesión_2_construir_base_datos_FINAL(mixta)_v1.2023-1.pdf
 
Actividad 5
Actividad 5Actividad 5
Actividad 5
 
Unidad 01 Tema 01 2022 LPI (1891).pdf
Unidad 01 Tema 01 2022 LPI (1891).pdfUnidad 01 Tema 01 2022 LPI (1891).pdf
Unidad 01 Tema 01 2022 LPI (1891).pdf
 
Curso de Geodatabase
Curso de Geodatabase Curso de Geodatabase
Curso de Geodatabase
 
Utilización de base de datos externas en arcgis..
Utilización de base de datos externas en arcgis..Utilización de base de datos externas en arcgis..
Utilización de base de datos externas en arcgis..
 
Repaso excel
Repaso excelRepaso excel
Repaso excel
 
Base de datos multidimensional
Base de datos multidimensionalBase de datos multidimensional
Base de datos multidimensional
 
TEMAS DE UNIDAD 4
TEMAS DE UNIDAD 4TEMAS DE UNIDAD 4
TEMAS DE UNIDAD 4
 
4 establecer-procesos-para-la-manipulacion-de-la-base-de-datos
4 establecer-procesos-para-la-manipulacion-de-la-base-de-datos4 establecer-procesos-para-la-manipulacion-de-la-base-de-datos
4 establecer-procesos-para-la-manipulacion-de-la-base-de-datos
 
Práctica N° 4
Práctica N° 4Práctica N° 4
Práctica N° 4
 
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
 
Base de-datos-ii
Base de-datos-iiBase de-datos-ii
Base de-datos-ii
 
Arc Gis: Herramientas y Funcionalidades
Arc Gis: Herramientas y FuncionalidadesArc Gis: Herramientas y Funcionalidades
Arc Gis: Herramientas y Funcionalidades
 
Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos
 
Bases de datos my sql
Bases de datos my sqlBases de datos my sql
Bases de datos my sql
 
Módulo3 presentacion
Módulo3 presentacionMódulo3 presentacion
Módulo3 presentacion
 
Bases De Datos My Sql
Bases De Datos My SqlBases De Datos My Sql
Bases De Datos My Sql
 

Mehr von Jorge Ulises

Android de la A a la Z - Unidad 8
Android de la A a la Z - Unidad 8Android de la A a la Z - Unidad 8
Android de la A a la Z - Unidad 8Jorge Ulises
 
Android de la A a la Z - Unidad 7
Android de la A a la Z - Unidad 7Android de la A a la Z - Unidad 7
Android de la A a la Z - Unidad 7Jorge Ulises
 
Android de la A a la Z - Unidad 6
Android de la A a la Z - Unidad 6Android de la A a la Z - Unidad 6
Android de la A a la Z - Unidad 6Jorge Ulises
 
Android de la A a la Z - Unidad 5
Android de la A a la Z - Unidad 5Android de la A a la Z - Unidad 5
Android de la A a la Z - Unidad 5Jorge Ulises
 
Android de la A a la Z - Unidad 3
Android de la A a la Z - Unidad 3Android de la A a la Z - Unidad 3
Android de la A a la Z - Unidad 3Jorge Ulises
 
Android de la A a la Z - Unidad 2
Android de la A a la Z - Unidad 2Android de la A a la Z - Unidad 2
Android de la A a la Z - Unidad 2Jorge Ulises
 
Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1Jorge Ulises
 
Android de la A a la Z - Introducción
Android de la A a la Z - IntroducciónAndroid de la A a la Z - Introducción
Android de la A a la Z - IntroducciónJorge Ulises
 
Android de la A a la Z - Unidad 11
Android de la A a la Z - Unidad 11Android de la A a la Z - Unidad 11
Android de la A a la Z - Unidad 11Jorge Ulises
 

Mehr von Jorge Ulises (9)

Android de la A a la Z - Unidad 8
Android de la A a la Z - Unidad 8Android de la A a la Z - Unidad 8
Android de la A a la Z - Unidad 8
 
Android de la A a la Z - Unidad 7
Android de la A a la Z - Unidad 7Android de la A a la Z - Unidad 7
Android de la A a la Z - Unidad 7
 
Android de la A a la Z - Unidad 6
Android de la A a la Z - Unidad 6Android de la A a la Z - Unidad 6
Android de la A a la Z - Unidad 6
 
Android de la A a la Z - Unidad 5
Android de la A a la Z - Unidad 5Android de la A a la Z - Unidad 5
Android de la A a la Z - Unidad 5
 
Android de la A a la Z - Unidad 3
Android de la A a la Z - Unidad 3Android de la A a la Z - Unidad 3
Android de la A a la Z - Unidad 3
 
Android de la A a la Z - Unidad 2
Android de la A a la Z - Unidad 2Android de la A a la Z - Unidad 2
Android de la A a la Z - Unidad 2
 
Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1
 
Android de la A a la Z - Introducción
Android de la A a la Z - IntroducciónAndroid de la A a la Z - Introducción
Android de la A a la Z - Introducción
 
Android de la A a la Z - Unidad 11
Android de la A a la Z - Unidad 11Android de la A a la Z - Unidad 11
Android de la A a la Z - Unidad 11
 

Kürzlich hochgeladen

#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadEduardoSantiagoSegov
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Marketing BRANDING
 

Kürzlich hochgeladen (20)

#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedad
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
 

Oracle Spatial de la A a la Z - Unidad 3

  • 1. 3 Creación de tablas espaciales. OBJETIVOS •Describir el esquema asociado con todas las capas espaciales, tipos, funciones y procedimientos •Explicar cómo los datos espaciales se almacenan utilizando el modelo de objetos de Oracle Spatial •Crear una tabla con una capa espacial •Cargar una vista de metadatos asociada con una capa espacial 1 PASOS TÍPICOS PARA LA GESTIÓN DE DATOS ESPACIALES 1. Creación de una tabla para almacenar datos espaciales. 2. Introducir (almacenar) los datos espaciales 3. Actualización de los metadatos espaciales. 4. Validación y depuración de geometrías (si es necesario). 5. Creación de índices espaciales. 6. Ejecución de consultas espaciales. Los pasos mencionados en el diagrama son las tareas básicas que suelen realizar para empezar a trabajar con cualquier tipo de datos espaciales. Como primer paso se debe definir una tabla con una o más columnas SDO_GEOMETRY para almacenar los datos geométricos. Esta tabla debe tener algunos atributos no espaciales.
  • 2. Posteriormente se procede a insertar filas en esta tabla mediante la instrucción INSERT. Hay también maneras de carga masiva de datos espaciales en tablas de Oracle (SQL * LOADER). También es esencial el llevar a cabo una validación de la geometría antes de usarla en las consultas espaciales. Oracle Spatial proporciona la validación y diferentes funciones de depuración que pueden ayudar a eliminar las geometrías no válidas, así como fijar algunas discrepancias. También se deben de actualizar las vistas de metadatos. Posteriormente se procede a crear índices espaciales para mejorar el rendimiento de las consultas espaciales. Por último, se pueden ejecutar una gran variedad de consultas espaciales. 2 ESQUEMA MDSYS •Cuando se instala Oracle Spatial u Oracle Locator, se crea el usuario MDSYS. El usuario MDSYS es: •El propietario de los tipos espaciales, paquetes, funciones, procedimientos, y los metadatos •Similar al usuario SYS •Un usuario con privilegios With ADMIN option •Esta cuenta está bloqueada por defecto. •Se debe de tener cuidado con esta cuenta de administrador. •Nunca debe de existir la necesidad de iniciar la sesión como el usuario MDSYS. •Nunca se deben de crear datos como el usuario MDSYS. 3 OBJETO SDO_GEOMETRY La base de datos Oracle8i introdujo un nuevo tipo de datos nativos llamados SDO_GEOMETRY. Se pueden crear tablas con las columnas del tipo de SDO_GEOMETRY de la misma manera que se crean tablas con otros tipos de datos de Oracle. No hay una tabla espacial como tal, sólo una tabla con una o más columnas espaciales del tipo SDO_GEOMETRY. Las tablas espaciales tienen las mismas características que las tablas ordinarias de Oracle, con las cláusulas de almacenamiento (storage) normales; la diferencia radica en que contienen una o más columnas SDO_GEOMETRY. El objeto SDO_GEOMETRY contiene una geometría entera que puede ser asociada a una columna de una tabla de Oracle. Si sabes cómo utilizar la base de datos Oracle, y nunca habías oído hablar de Oracle Spatial, de antemano sabes cómo utilizar gran parte de las características que posee Oracle Spatial. El presente texto te dará la nueva información asociada a cómo cargar, indexar y consultar una columna SDO_GEOMETRY. La columna de SDO_GEOMETRY se accede a través de comandos SQL, y trabaja con todos los servicios de Oracle: SQL * Loader; así como las herramientas de import y export. El objeto SDO_GEOMETRY tiene cinco campos. Cada campo se describe en detalle en las próximas páginas. Dos de los campos son del tipo numérico y los tres campos restantes son del tipo objeto.
  • 3. Objeto SDO_GEOMETRY: Ejemplo : SQL> CREATE TABLE states ( 2 state VARCHAR2(30), 3 totpop NUMBER(9), 4 geom SDO_GEOMETRY); SDO_GTYPE NUMBER SDO_SRID NUMBER SDO_POINT SDO_POINT_TYPE SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY SDO_ORDINATES SDO_ORDINATE_ARRAY La ilustración anterior es un ejemplo simple de la creación de una tabla con una columna del tipo SDO_GEOMETRY. Nota: Al crear una columna del tipo SDO_GEOMETRY en versiones anteriores a Oracle Spatial 10g, el tipo debe ser especificado como MDSYS.SDO_GEOMETRY. El objeto SDO_POINT_TYPE es un campo en el objeto SDO_GEOMETRY. Se utiliza para almacenar un único punto que podrá tener como máximo tres dimensiones. El objeto SDO_POINT_TYPE no debe ser utilizado fuera del objeto SDO_GEOMETRY (es decir, no crear tablas con una columna de tipo SDO_POINT_TYPE). SDO_ELEM_INFO_ARRAY es un campo en el objeto SDO_GEOMETRY. En él se describen los elementos almacenados en esta geometría. Este campo es discutido a detalle más adelante.. SDO_ORDINATE_ARRAY es un campo en el objeto SDO_GEOMETRY. Contiene todas las coordenadas de todos los elementos que componen la geometría. Esto se describe con más detalle en las siguientes páginas. SDO_POINT_TYPE: x NUMBER y NUMBER z NUMBER SDO_ELEM_INFO_ARRAY: VARRAY (1048576) OF NUMBER SDO_ELEM_INFO_ARRAY: VARRAY (1048576) OF NUMBER
  • 4. 4 SDO_GTYPE Este es el primero de los cinco campos en el objeto SDO_GEOMETRY. Como se indicó anteriormente, una geometría puede estar compuesta de uno o más elementos. Se puede pensar en SDO_GTYPE como la "visión global". Define qué tipo de geometría se almacena en el objeto SDO_GEOMETRY. Se debe asociar al SDO_GTYPE más apropiado con la geometría que deseemos representar. Por ejemplo, un único elemento de tipo polígono puede ser representado como un SDO_GTYPE 7, pero de manera óptima, es representado como un SDO_GTYPE 3. Se debe de tener en cuenta que SDO_GTYPE 4 (heterogéneo) sólo debe usarse si es un requisito que la geometría almacene tipos de elementos diferentes. HETEROGENEOUS COLLECTION (Colecciones heterogéneas) no son parte del estándar Open Geospatial Consortium (OGC), y puede no ser soportado por todas las aplicaciones. GTYPE Descripción 1 POINT La geometría contiene un punto 2 LINESTRING La geometría contiene un “line string” 3 POLYGON La geometría contiene un polígono 4 HETEROGENEOUS COLLECTION La geometría es una colección de distintos elementos: puntos, lineas y poligonos. 5 MULTIPOINT La geometría tiene multiples puntos 6 MULTILINESTRING La geometría tiene multiples “line strings”. 7 MULTIPOLYGON La geometría tiene multiples polígonos.
  • 5. SDO_GTYPE. Define el tipo de geometría almacenada en el objeto. Se especifica en el formato DLTT donde: D identifica el número de dimensiones L identifica el LRS TT identifica el tipo de geometría El SDO_GTYPE se especifica en el formato DLTT. El valor de la componente “D” puede ser de 2, 3, o 4, lo que representa el número de coordenadas que se utilizan para definir un vértice. El valor de “L” se utiliza para indicar el sistema de referencia lineal (LRS) el cual se explica a detalle más adelante. Los valores van desde 01 hasta 07 en “TT”, el cual es usado para indicar el tipo de geometría. Por ejemplo, un valor de 02 indica una LineString que puede contener líneas rectas o arcos. Un valor de SDO_GTYPE de 2003 indica que la geometría es un polígono de dos dimensiones sin ningún tipo de referencias lineales. Nota: Los valores de TT de 08 y 09 se utilizan para representar los sólidos y multisolidos, que no están cubiertos en este texto.
  • 6. 5 SISTEMA DE REFERENCIA LINEAL (Linear Referencing System) LRS •Es un mecanismo asociado al valor de una medida con un punto 2D o 3D a lo largo de un LineString o un polígono. •El valor de la medida es típicamente proporcional a la distancia registrada desde el inicio de la geometría. •Es comúnmente usado en muchas aplicaciones de SIG, tales como transporte y servicios públicos. Desde Oracle 9i, la posición de la medida en una geometría LRS está codificada en el segundo dígito de izquierda a derecha en SDO_GTYPE. Si la geometría no es una geometría LRS, entonces no hay ningún cambio en SDO_GTYPE (es decir, 2000-2007, 3000-3007 y 4000-4007). La posición LRS debe ser coherente en todas las geometrías en la columna. Las posiciones de medida se almacena en la geometría por la misma razón que la dimensionalidad se almacena en la geometría. Almacenar esta información en la geometría elimina una búsqueda en el diccionario para encontrar la posición de medida, que es especialmente difícil si la geometría viene de una visión compleja (como se discutió previamente).
  • 7. Una geometría 2D con una medida: Geometrías 2D con una medida debe tener el valor de medida en la tercera posición de cada vértice. Geometrías 3D (es decir los valores, x, y, z) con una medida: Geometrías 3D con una medida debe almacenar el valor de medida en la cuarta posición de cada vértice. 6 MÉTODOS CON SDO_GTYPE GET_GTYPE() devuelve el tipo de geometría, utilizando dos dígitos Las tablas deben ser renombradas cuando accedemos a los atributos o métodos en las columnas que tienen un tipo de dato objeto. En el ejemplo anterior, GEOD_STATES tiene un alias, que es g . Esto permite el acceso a GET_GTYPE () del objeto SDO_GEOMETRY. SQL> SELECT g.geom.get_gtype() state_gtype FROM geod_states g WHERE g.state = 'Delaware'; STATE_GTYPE ----------- 3 GET_DIMS() devuelve el número de dimensiones: GET_LRS_DIM() devuelve la dimensión LRS: SQL> SELECT s.geom.get_dims() state_dims FROM geod_states s WHERE s.state = 'Delaware'; STATE_DIMS ---------- 2 GET_LRS_DIM() devuelve la dimensión LRS: SQL> SELECT s.geom.get_lrs_dim() state_lrs_dim FROM geod_states s Where s.state = 'Delaware'; STATE_LRS_DIM ------------- 0
  • 8. Hasta ahora, sólo el primero de los cinco campos en el objeto SDO_GEOMETRY ha sido discutido. Los siguientes dos campos que analizaremos serán Campo SDO_SRID: Este es el segundo campo en el objeto SDO_GEOMETRY. Es utilizado para asociar los datos espaciales con un sistema de coordenadas. Oracle Spatial tiene una tabla de diccionario llamado MDSYS.CS_SRS, que enumera todos los sistemas de coordenadas. El valor establecido en el ámbito de SDO_SRID debe coincidir con un valor en el ID de referencia espacial (SRID) de la tabla MDSYS.CS_SRS, o en su caso ser NULL. Todas las geometrías en una columna deben tener el mismo SDO_SRID. Más detalles acerca de los sistemas de coordenadas están cubiertos en las lecciones titulado "Sistemas de coordenadas: Información general" y "Conceptos Avanzados Sistemas de coordenadas". Campo SDO_POINT: Este es el tercer campo en el objeto SDO_GEOMETRY. Esta es una forma optimizada para almacenar un único punto en el objeto SDO_GEOMETRY. El campo SDO_POINT debe utilizarse en el contexto del objeto SDO_GEOMETRY (Oracle Spatial no funciona con una columna definida como SDO_POINT_TYPE). Si solo se requiere almacenar un único punto (2D o 3D) se sugiere sea colocado en el campo de SDO_POINT del objeto SDO_GEOMETRY. El campo SDO_POINT proporciona almacenamiento y rendimiento óptimos. El valor almacenado en el campo SDO_POINT se ignora si el SDO_ELEM_INFO y campos SDO_ORDINATES son not NULL. Campo SDO_ELEM_INFO: Este es el cuarto campo en el objeto SDO_GEOMETRY. Una geometría contiene uno o más elementos. Si el único elemento que se va a almacenar es un punto, se sugiere sea almacenado en el campo SDO_POINT, una descripción de cada elemento que compone la geometría se almacena en el campo SDO_ELEM_INFO. El campo de SDO_ELEM_INFO es un VARRAY (varying-sized array) de tipo numérico. Los valores que se coloquen en el campo SDO_ELEM_INFO deben ser considerados en grupos de tres números. Los valores representan el triplete: Desplazamiento de coordenada: Este es un desplazamiento en el campo SDO_ORDINATES (descrito más adelante). Una geometría puede estar compuesta de uno o más elementos. El primer elemento de una geometría comienza siempre en la posición 1. Tipo de elemento: Este es el tipo de elemento (punto, línea, polígono, …). El tipo de elemento es también llamado “eType”. Todos los valores posibles para el tipo de elemento se discuten en la parte restante de esta unidad. Interpretación: Posee un significado diferente dependiendo del valor del tipo de elemento. Puede significar que todos los puntos que integran un elemento están conectados con líneas rectas, arcos circulares, o podría significar que es el header (encabezado) de un elemento compuesto.
  • 9. Campo SDO_ORDINATES: Este es el quinto campo en el objeto SDO_GEOMETRY. Este campo es una VARRAY de tipo numérico. Contiene todas las coordenadas que forman los elementos descritos por el campo SDO_ELEM_INFO. Nota: Tanto el SDO_ORDINATES y SDO_ELEM_INFO se definen como VARRAY, cuya longitud máxima es de 1,048,576. En el caso de SDO_ELEM_INFO, el número máximo de elementos simples que cualquier geometría puede tener es de 349,525 (1,048,576 / 3). En el caso de SDO_ORDINATES, si la geometría tiene coordenadas de dos dimensiones, puede llegar a tener hasta 524,288. Si la geometría es de tres dimensiones (o de dos dimensiones con una medida de LRS), el número máximo de coordenadas es 349,525. Si hay coordenadas de cuatro dimensiones en la geometría, el número máximo de coordenadas será de 262,144. 7 POINT Este es un ejemplo de almacenamiento de un único punto en el campo de SDO_POINT. El campo SDO_POINT optimiza el almacenamiento de un solo punto. Para generar un índice espacial en el campo SDO_POINT, el SDO_ELEM_INFO y campos SDO_ORDINATES deben ser nulos. El campo SDO_POINT es ignorado por Oracle Spatial si el SDO_ELEM_INFO y campos SDO_ORDINATES son NOT NULL. El ejemplo muestra el uso de un constructor de SDO_GEOMETRY (resaltado), que es la sintaxis específica para los tipos de objetos. Nota: Si se desea almacenar un punto 2D en el campo SDO_POINT, se debe establecer el valor de z como NULL, por ejemplo: INSERT INTO TELEPHONE_POLES VALUES (attribute_1, attribute_n, MDSYS.SDO_GEOMETRY (2001, null, MDSYS.SDO_POINT_TYPE(-75.2,43.7,NULL), null, null)); SQL> INSERT INTO TELEPHONE_POLES 2> VALUES (attribute_1, …, attribute_n, 3> SDO_GEOMETRY ( 4> 3001, null, 5> SDO_POINT_TYPE (-75.2,43.7,200), 6> null, null) 7> );
  • 10. Hasta el momento, sólo se ha visto la forma de almacenar datos en el campo de SDO_POINT del objeto SDO_GEOMETRY. Ahora se empieza a observar el almacenamiento de elementos en los campos de VARRAY del objeto SDO_GEOMETRY. El cuadro que se presenta resume la forma de representar un elemento en el campo de SDO_ELEM_INFO. Como se dijo anteriormente, una geometría puede estar compuesta de uno o más elementos. Si la geometría no es un único punto almacenado en el campo SDO_POINT, entonces cada elemento tendrá una entrada de valor triple en el varray SDO_ELEM_INFO (coordenada de desplazamiento, tipo de elemento, interpretación). Este cuadro NO muestra el desplazamiento de coordenadas. Este cuadro sólo describe las otras dos partes del valor del triplete (tipo de elemento, interpretación). No se debe confundir con los tipos de elementos SDO_GTYPEs, ya que éstos representan el tipo de geometría que se almacena. 8 RESUMEN DE TIPOS DE ELEMENTOS
  • 11. Elemento de tipo 0: Se utiliza para el modelo de un elemento que no está actualmente soportado por Oracle Spatial. Elemento de tipo 1: Para almacenar puntos o multipuntos. El campo de interpretación describe cuántos puntos son almacenados. Elemento de tipo 2: Para almacenar LineStrings Interpretación 1 representa una LineString convencional conectada con líneas rectas. Interpretación 2 representa una LineString compuesta de uno o más arcos circulares. Elemento de tipo 3: En un formato de 4 dígitos, 1003 representa un polígono de tipo anillo exterior y 2003 representa un anillo interno: Interpretación 1: polígono convencional conectada con las líneas rectas Interpretación 2: Arc polygon (polígono arco) , conectado con arcos circulares Interpretación 3: Rectángulo optimizado , sólo requiere de representar los puntos de la parte inferior izquierda y superior derecha del rectángulo Interpretación 4: círculo optimizado (no es realmente un polígono, pero es clasificado como polígono porque tiene área) Elemento de tipo 4: LineString compuesta, tiene elementos contiguos que contiene líneas rectas y arcos circulares. El campo de interpretación determina cuántos subelementos (es decir, los valores del triplete en el ámbito SDO_ELEM_INFO) componen la LineString. Elemento de tipo 5: Un valor 1005 representa un polígono compuesto de tipo anillo exterior (un elemento contiguo que contiene líneas rectas y arcos circulares). 2005 representa un polígono compuesto que es un anillo interior . El campo de interpretación determina cuántos subelementos (es decir, los valores del triplete en el campo de SDO_ELEM_INFO) componen este polígono compuesto.
  • 12. 9 LINESTRING (x1,y1) (x2,y2) (x3,y3) (x4,y4) En la tabla mostrada en la figura podemos apreciar el valor del triplete (desplazamiento de coordenada, tipo de elemento, interpretación) que se almacena en el campo de SDO_ELEM_INFO. La mayoría de los desplazamientos de coordenadas que se ve en los ejemplos siguientes comenzará con el número 1, porque los ejemplos que muestran tienen geometrías con un solo elemento. Hay algunos ejemplos con geometrías que tienen más de un elemento y en esos casos, se pueden observar los valores correspondientes al desplazamiento de coordenadas. El tipo de elemento 2 corresponde a un elemento LineString. Un elemento LineString se compone de uno o más segmentos contiguos. La interpretación de un tipo de elemento 2 define cómo conectar los segmentos que componen al LineString. En este ejemplo, la interpretación es 1 y corresponde a una LineString cuyos segmentos están conectados con líneas rectas ( LineString convencional). LineString que forman un anillo no tienen ninguna área implicada. Los segmentos de línea pueden cruzar entre sí. Nota: SDO_GTYPE para esta geometría es 2002 (un solo elemento LineString). Se debe de tener en cuenta que SDO_GTYPE es el primer campo del objeto SDO_GEOMETRY y describe toda la geometría.
  • 13. 10 ARC STRING En la tabla mostrada se puede observar el valor del triplete (desplazamiento de coordenda, tipo de elemento, interpretación) que se almacenará en el campo de SDO_ELEM_INFO. El tipo de elemento 2 corresponde a un elemento de tipo LineString. Un elemento LineString se compone de uno o más segmentos contiguos. La interpretación define cómo se han de conectar los segmentos que componen el LineString. En este ejemplo, la interpretación es 2, y corresponde a una LineString cuyos segmentos están conectados con arcos circulares. Un arco está definido por tres puntos distintos de la circunferencia de un círculo: el primer punto, el último punto, y cualquier punto distinto en medio de estos dos. El último punto de un arco es el primer punto del arco siguiente. Arcos que cierran y formar un anillo no tienen ninguna área implicada. Los arcos pueden cruzar entre sí. Nota: SDO_GTYPE para esta geometría es 2002 (un solo elemento de tipo LineString). (x5,y5) (x7,y7) (x1,y1) (x3,y3) (x4,y4)(x2,y2) (x6,y6)
  • 14. 11 POLYGON En general, el tipo de elemento 3 corresponde a un polígono. En lugar de especificar un tipo de elemento 3, se recomienda determinar claramente si un polígono anillo exterior o un anillo interior. Polígonos de anillo exterior se representan como el tipo de elemento 1003, y polígonos de anillo interior son representados como el tipo de elemento de 2003. Los polígonos anillo exterior deben almacenar sus coordenadas en sentido contrario a las manecillas del reloj. El polígono anillo interior debe almacenar sus coordenadas en sentido horario. Cumplir con los comentarios anteriores permite cálculos más rápidos. El último punto de un polígono debe ser el mismo que el primer punto. A pesar de que este punto podría ser información un tanto obvia, debe repetirse para ajustarse al estándar del Open Geospatial Consortium (OGC). La interpretación define cómo conectar los segmentos que conforman el polígono. En este ejemplo, la interpretación es 1, y corresponde a un polígono cuyos segmentos están conectados con líneas rectas (un polígono convencional). Los segmentos de línea de los polígonos NO se cruzan entre sí. Nota: SDO_GTYPE para esta geometría es 2003 (un único polígono). (x4,y4) (x5,y5) (x3,y3)(x2,y2) (x6,y6) (x1,y1)
  • 15. 12 ARC POLYGON El tipo de elemento de 1003 indica que es un polígono anillo exterior. La interpretación 2 indica que los segmentos de línea son arcos circulares. Las coordenadas que lo conforman se almacenan en sentido anti horario. La interpretación define cómo se conectan los segmentos que conforman el polígono. En este caso, la interpretación es de 2, y corresponde a un polígono cuyos segmentos están conectados con arcos circulares. Un arco circular está definido por tres puntos. Nota: SDO_GTYPE para esta geometría es 2003 (un único polígono). (x7,y7) (x6,y6) (x5,y5) (x9,y9) (x3,y3) (x4,y4) (x1,y1) (x8,y8) (x2,y2)
  • 16. 13 RECTANGLE (x2,y2) (x1,y1) El tipo de elemento de 1003 corresponde a un polígono anillo exterior. Si el polígono fuera un anillo interior, estaría representado, como el tipo de elemento 2003. En este ejemplo, la interpretación es 3, y corresponde a un rectángulo optimizado para el almacenamiento. Sólo la parte inferior izquierda y superior derecha de los puntos del rectángulo se almacenan. Un rectángulo optimizado tiene área. Nota: SDO_GTYPE para esta geometría es 2003 (un único polígono).
  • 17. 14 CIRCLE El tipo de elemento de 1003 indica que es un polígono anillo exterior. En este ejemplo, la interpretación es de 4, y corresponde a un círculo. El círculo está representado por cualquiera de los tres puntos distintos que integran la circunferencia. Nota: SDO_GTYPE para esta geometría es 2003 (un único polígono). (x1,y1)(x2,y2) (x3,y3)
  • 18. 15 COMPOUND LINE STRING El tipo de elemento 4 corresponde a una LineString compuesta. Estos tipos de elementos son conectados con líneas rectas o con arcos circulares. Una LineString tiene las mismas propiedades que una LineString simple. Se permiten líneas que se crucen entre sí; sin embargo ninguna zona o figura que formen tendrá área. Una LineString se define por una serie de sub-elementos contiguos. Cada subelemento es una línea recta o un arco circular. El primero es un triplete de cabecera (header). La interpretación en la cabecera indica cuántos subelementos forman parte de la LineString compuesta. Todos los subelementos deben ser del tipo de elemento 2 (interpretación 1 ó 2) y deben ser contiguos (es decir, el último punto de un subelemento es el primer punto del siguiente subelemento). En el ejemplo mostrado en la figura se puede observar que los desplazamientos de coordenadas de cada sub-elemento son diferentes y corresponden a donde el subelemento comienza a definirse en el arreglo de coordenadas. Nota: SDO_GTYPE para esta geometría es 2002 (un solo elemento de tipo LineString). (x6,y6) (x3,y3) (x1,y1) (x5,y5) (x4,y4) (x2,y2) (x7,y7) (x8,y8) (x9,y9) El primer triplete es denominado “encabezado” Elemento de tipo 4: nos indica que tenemos una LienString compuesta Interpretación 3: indica el número de subelementos por los cuales está formada la LineString compuesta.
  • 19. 16 COMPOUND POLYGON El tipo de elemento 5 corresponde a un polígono compuesto. Un polígono compuesto se define por una serie de subelementos contiguos. Cada subelemento es una línea recta o un arco circular. El primero es un triplete de cabecera. La interpretación en la cabecera indica cuántos subelementos (o tripletas adicionales en SDO_ELEM_INFO) componen este polígono compuesto. Todos los subelementos de un polígono compuesto debe ser del tipo de elemento 2 (segmentos) con la interpretación de 1 o 2, y todos los subelementos deben ser contiguos (es decir, el último punto de un subelemento es el primer punto de la siguiente subelemento ). En la figura, se puede observar que los desplazamientos de coordenadas de cada subelemento son diferentes y corresponden a lugar exacto donde comienza el subelemento Note: SDO_GTYPE para esta geometria es de 2003 (un único elemento de tipo polígono). Los polígonos compuestos tienen las mismas propiedades como polígonos (es decir, los segmentos de línea de los polígonos NO se cruzan entre sí). El triplete de encabezado define a los subelementos. Tipo de elemento es 1005: Indica que es un polígono anillo exterior Interpretación 2: nos marca el número de subelementos que formarán al polígono (x4,y4) (x5,y5) (x6,y6) (x7,y7) (x2,y2) (x3,y3)(x1,y1)
  • 20. 17 REGLAS PARA ELEMENTOS DE TIPO “POLÍGONO” Este es un ejemplo de un polígono que posee huecos. El anillo exterior tiene es un tipo de elemento de 1003, y el anillo interior es un tipo de elemento de 2003. Huecos pueden contener islas, y las islas pueden contener huecos. El área se calcula como la diferencia entre exterior e interior de los polígonos. Nota: SDO_GTYPE para esta geometría es 2003 (un único polígono ). 18 POLÍGONO CON HUECOS (x4,y4) (x5,y5) (x3,y3)(x2,y2) (x6,y6) (x1,y1) (x7,y7) (x8,y8)
  • 21. 19 POLÍGONO COMPUESTO CON HUECOS Este es un ejemplo de un polígono compuesto con un hueco. El anillo exterior es un tipo de elemento 1005 (polígono compuesto) y el anillo interior es un tipo de elemento 2003 (rectángulo optimizado). El polígono compuesto tiene tres entradas en el campo SDO_ELEM_INFO. El primero es un triplete de cabecera (1,1005,2). "2" indica dos tripletes adicionales, los cuales definen los subelementos (1,2,1) y (7,2,2). Nota: SDO_GTYPE de esta geometría es 2003 (un único polígono ). Un polígono con uno o más elementos vacío todavía puede ser considerado como un único polígono (que no es clasificado como un MultiPolygon). (x4,y4) (x5,y5) (x3,y3) (x6,y6) (x7,y7) (x1,y1) (x2,y2) (x9,y9) (x10,y10) (x8,y8)
  • 22. 20 CONSTRUYENDO GEOMETRÍAS Utilice la instrucción SQL “INSERT” para la construcción de las geometrías y la insercion de las mismas en las tablas. El constructor SDO_GEOMETRY es llamado para crear una instancia de un objeto geometrico. INSERT INTO LINES VALUES ( attribute_1, …. attribute_n, SDO_GEOMETRY ( 2002, null, null, SDO_ELEM_INFO_ARRAY (1,2,1), SDO_ORDINATE_ARRAY ( 10,10, 20,25, 30,10, 40,10)) ); (10,10) (30,10) (40,10) Anteriormente, se vio la forma de insertar un punto a través de la utilización de SDO_POINT. Este es el primer ejemplo para insertar datos de carácter geométrico utilizando los campos (SDO_ELEM_INFO y SDO_ORDINATES) del objeto SDO_GEOMETRY. La instrucción INSERT utiliza un constructor SDO_GEOMETRY, establece el SRID y los campos de SDO_POINT a null, y utiliza el SDO_ELEM_INFO_ARRAY y constructores SDO_ORDINATE_ARRAY para rellenar los campos faltantes. Nota: Cuando almacenemos un valor NULL en una columna que tiene asociado un tipo de dato geometrico, solo bastara con colocar un solo NULL y no uno por cada valor de SDO_GEOMETRY. Ejemplo: correcto INSERT INTO LINES VALUES (attribute1, … attribute_n, NULL); incorrecto INSERT INTO LINES VALUES (attribute1, … attribute_n, SDO_GEOMETRY(NULL, NULL, NULL, NULL, NULL));
  • 23. Cuando se llama a un constructor, se utiliza el nombre del tipo y no el nombre de columna o nombre de campo. INSERT INTO PARKS VALUES( attribute_1, …, attribute_n, SDO_GEOMETRY( 2003, null, null, SDO_ELEM_INFO_ARRAY (1,1005,2, 1,2,1, 7,2,2, 17,2003,3), SDO_ORDINATE_ARRAY (10,50,10,30,50,30,50,50,45,60, 30,50,15,60,10,50,25,35,35,40))); (45,60) (50,50) (50,30) (30,50) (15,60) (10,50) (10,30) (25,35) (35,40) (10,50) Este es otro ejemplo para insertar información en los campos (SDO_ELEM_INFO y SDO_ORDINATES) del objeto SDO_GEOMETRY. En este ejemplo se inserta el polígono compuesto con un hueco, mismo que se habia presentado con anterioridad. La instrucción INSERT utiliza un constructor SDO_GEOMETRY, establece el SRID y campos SDO_POINT a null, y utiliza constructores SDO_ELEM_INFO_ARRAY y SDO_ORDINATE_ARRAY para rellenar los campos correspondientes. Se debe tener en cuenta que cuando se llama a un constructor, se utiliza el nombre del tipo y no el nombre de la columna o el nombre del campo. Para el campo SDO_ELEM_INFO, se debe de escribir el nombre SDO_ELEM_INFO_ARRAY y el campo SDO_ORDINATES es del tipo SDO_ORDINATE_ARRAY. Nota: SDO_GTYPE de esta geometría es 2003 (un único polígono en 2D). Un polígono con uno o más huecos todavía puede ser considerado como un único polígono (que no es clasificado como un MultiPolygon).
  • 24. 21 REGLAS PARA INSERTAR GEOMETRÍAS EN TABLAS ESPACIALES. Todas las geometrías deben tener la misma dimensión en una tabla espacial. El valor D en SDO_GTYPE debe ser el mismo. Todas las geometrías deben estar asociadas con el mismo sistema de coordenadas. El valor SDO_SRID debe ser el mismo. 2005 30055. MULTIPOINT 2004 30044. HETEROGENEOUS COLLECTION 2003 30033. POLYGON 2006 30066. MULTILINESTRING 2007 30077. MULTIPOLYGON 2002 30022. LINESTRING 2001 30011. POINT 4 dÍgitos para el GTYPEs: Incluida la dimensión. 2D 3D SDO_GTYPE
  • 25. 22 METADATOS ESPACIALES Por cada columna SDO_GEOMETRY, se deben de insertar los metadatos en una vista de diccionario de datos llamada USER_SDO_GEOM_METADATA. Usted es responsable de la actualización de la vista USER_SDO_GEOM_METADATA con información de metadatos sobre cualquier columna SDO_GEOMETRY que cree. Oracle Spatial se asegura de que la vista ALL_SDO_GEOM_METADATA se actualice con el obejtivo de reflejar las filas que se insertan en USER_SDO_GEOM_METADATA. ALL_SDO_GEOM_METADATA contiene información de metadatos sobre todas las tablas Esta vista contiene todos los metadatos para el usuario de Oracle que se ha identificado con el nombre “X”, y todos los metadatos para las columnas de las geometrías para las cuales “x” tiene permisos de select. Oracle Spatial nunca actualiza o elimina información de la vista de USER_SDO_GEOM_METADATA. Nota: Usted debe actualizar esta vista antes de crear índices espaciales. Actualizar la vista USER_SDO_GEOM_METADATA con la información de metadatos acerca de cada columna SDO_GEOMETRY. Las siguientes vistas están disponibles para cada usuario: USER_SDO_GEOM_METADATA ALL_SDO_GEOM_METADATA: Esta contiene información de metadatos sobre todas las tablas espaciales sobre las cuales el usuario tiene privilegios de SELECT Nunca se debe de insertar información en esta vista, ya que su propósito principal es mostrar información. USER_SDO_GEOM_METADATA DESCRIBE USER_SDO_GEOM_METADATA Name Null? Type -------------- ---------- ------------------ TABLE_NAME NOT NULL VARCHAR2(32) COLUMN_NAME NOT NULL VARCHAR2(1024) DIMINFO SDO_DIM_ARRAY SRID NUMBER
  • 26. MDSYS.SDO_DIM_ARRAY: VARRAY(4) OF SDO_DIM_ELEMENT MDSYS.SDO_DIM_ELEMENT object SDO_DIMNAME VARCHAR2(64) SDO_LB NUMBER SDO_UB NUMBER SDO_TOLERANCE NUMBER USER_SDO_GEOM_METADATA Descripcion de la vista USER_SDO_GEOM_METADATA TABLE_NAME: El nombre de la tabla que contiene la columna SDO_GEOMETRY COLUMN_NAME: el nombre de la columna SDO_GEOMETRY DIMINFO: muestra el VARRAY de los objetos SDO_DIM_ELEMENT. Aquí es donde se define el sistema de coordenadas (2, 3 ó 4 ejes pueden ser definidos). Los campos del objeto SDO_DIM_ELEMENT se describen mas adelante. SRID: SRID es un acrónimo para el sistema de identificación de referencia espacial. Este puede recibir los valores NULL o coincidir con un valor en la columna de la tabla de SRID MDSYS.CS_SRS, donde todos los sistemas de coordenadas están definidos. USER_SDO_GEOM_METADATA: SDO_DIM_ELEMENT Object SDO_DIMNAME, SDO_LB, y SDO_UB, SDO_TOLERANCE son los campos del objeto SDO_DIM_ELEMENT. SDO_DIMNAME: es una cadena de caracteres para identificar el eje. Este valor no es utilizado actualmente por Oracle Spatial 11g; fue utilizado en versiones previas a Oracle 9i. SDO_LB: LB es un acrónimo para el límite inferior. Representa el valor más mas pequeño para esta dimensión. SDO_UB: UB es un acrónimo para el límite superior. Representa el mayor valor posible para esta dimensión.
  • 27. SDO_TOLERANCE: Es la distancia requerida entre dos coordenadas de manera que sean considerados como coordenadas individuales. Es utilizado por la indexación de Oracle Spatial Datos simples: La unidad de tolerancia y la unidad de datos son los mismos. Datos geodésicos: Para los datos almacenados con longitud y latitud, la unidad de la tolerancia es metros (es decir, 0,5m de tolerancia ). Los márgenes más pequeños de tolerancia permitidos para los datos geodésicos son de 0,05 metros (5 centímetros). 23 INSERTANDO DATOS EN LA VISTA USER_SDO_GEOM_METADATA. INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID) VALUES ( 'ROADS', 'GEOMETRY', SDO_DIM_ARRAY ( SDO_DIM_ELEMENT('Long', -180, 180, 0.5), SDO_DIM_ELEMENT('Lat', -90, 90, 0.5)), 8307); Para los datos geodésicos, en el eje x los límites deben ser desde -180 hasta 180, y en el eje y los límites deben ser desde -90 hasta 90. Establezca el mismo valor en la columna SRID de la vista USER_SDO_GEOM_METADATA que aquel que inserto en el campo de SDO_SRID. Por cada columna de carácter geométrico, una fila de metadatos debe ser insertada en USER_SDO_GEOM_METADATA. Esto se hace con insert convencional. Nota: Usted debe especificar el eje "x" antes que el eje “y”.