Tipos de Datos en Oracle Database – Parte 3 (Final)

8 minuto(s)

Talves nunca lleguemos a usar todos los tipos de datos que tiene Oracle, pero siempre es importante conocerlos ya que uno nunca sabe cuando es el momento en el que llegue a usarlos. Si tenemos el conocimiento de ellos, sabremos que hacer con los datos respectivos, evitaremos errores en la gestión de los datos y tareas CRUD (Create, Read, Update y Delete). En esta tercera parte te compartiré otro grupo de Tipos de Datos en Oracle Database, vamos con ello.

Partes

Antes de continuar, te invito a escuchar el Podcast: “Herramientas Online Para el Trabajo en Equipo” y “5 Habilidades que Debe Tener un Desarrollador Backend” (Anchor Podcast): 

Spotify: Sound Cloud: Apple Podcasts Anchor Podcasts

Bien ahora continuemos con el Post: Tipos de Datos en Oracle Database – Parte 3 (Final). 

Tipos suministrados por Oracle

Oracle proporciona interfaces basadas en SQL para definir nuevos tipos cuando los tipos integrados o compatibles con ANSI no son suficientes. El comportamiento de estos tipos se puede implementar en C/C++, Java o PL/SQL. Oracle Database proporciona automáticamente los servicios de infraestructura de bajo nivel necesarios para entrada-salida, acceso heterogéneo del lado del cliente para nuevos tipos de datos y optimizaciones para transferencias de datos entre la aplicación y la base de datos.

Estas interfaces se pueden usar para crear tipos definidos por el usuario (u objetos) y Oracle también las usa para crear algunos tipos de datos comúnmente útiles. Varios de estos tipos de datos se suministran con el servidor y sirven tanto para áreas de aplicación horizontales amplias (por ejemplo, los tipos Any), asi como como verticales específicas (por ejemplo, los tipos espaciales).

Tipos Any

Los tipo Any proporcionan un modelado altamente flexible de los parámetros del procedimiento y las columnas de la tabla donde no se conoce el tipo real. Estos tipos de datos te permiten encapsular y acceder dinámicamente a descripciones de tipos, instancias de datos y conjuntos de instancias de datos de cualquier otro tipo de SQL. Estos tipos tienen interfaces OCI y PL/SQL para construcción y acceso.

AnyType

Este tipo puede contener una descripción de tipo de cualquier tipo SQL con nombre o tipo transitorio sin nombre.

AnyData

Este tipo contiene una instancia de un tipo determinado, con datos, además de una descripción del tipo. ANYDATA se puede usar como un tipo de datos de columna de tabla y te permite almacenar valores heterogéneos en una sola columna. Los valores pueden ser de tipos integrados de SQL, así como tipos definidos por el usuario.

AnyDataset

Este tipo contiene una descripción de un tipo determinado más un conjunto de instancias de datos de ese tipo. ANYDATASET se puede utilizar como un tipo de datos de parámetro de procedimiento donde se necesita tal flexibilidad. Los valores de las instancias de datos pueden ser tipos integrados de SQL, así como tipos definidos por el usuario.

Tipos XML

El lenguaje de marcado extensible (XML) es un formato estándar desarrollado por el World Wide Web Consortium (W3C) para representar datos estructurados y no estructurados en la World Wide Web. Los identificadores de recursos universales (URI) identifican recursos como páginas web en cualquier parte de la web. Oracle proporciona tipos para manejar datos XML y URI, así como una clase de URI denominada tipos DBURIRef para acceder a los datos almacenados dentro de la propia base de datos. También proporciona un conjunto de tipos para almacenar y acceder a URI internos y externos desde la base de datos.

Tipo XML

Este tipo proporcionado por Oracle se puede utilizar para almacenar y consultar datos XML en la base de datos. XMLType tiene funciones de miembro que puedes usar para acceder, extraer y consultar los datos XML usando expresiones XPath. XPath es otro estándar desarrollado por el comité W3C para atravesar documentos XML. Las funciones de Oracle XMLType admiten muchas expresiones W3C XPath. Oracle también proporciona un conjunto de funciones SQL y paquetes PL/SQL para crear valores XMLType a partir de datos relacionales o relacionales de objetos existentes.

XMLType es un tipo definido por el sistema, por lo que puedes usarlo como argumento de una función o como tipo de datos de una tabla o columna de vista. También puedes crear tablas y vistas de archivos XMLType. Cuando creas una columna XMLType en una tabla, puedes optar por almacenar los datos XML en una columna CLOB, como XML binario (almacenado internamente como un CLOB) u objeto relacionalmente.

También puedes registrar el esquema (usando el paquete DBMS_XMLSCHEMA) y crear una tabla o columna conforme al esquema registrado. En este caso, Oracle almacena los datos XML en columnas relacionales de objetos subyacentes de forma predeterminada, pero puedes especificar el almacenamiento en una columna CLOB XML binaria incluso para datos basados ​​en esquemas.

Las consultas y DML en columnas XMLType funcionan igual independientemente del mecanismo de almacenamiento.

Tipos de Datos URI

Oracle proporciona una familia de tipos de URI URIType, DBURIType, XDBURIType, y HTTPURIType, que están relacionados por una jerarquía de herencia. URIType es un tipo de objeto y los demás son subtipos de URIType. Dado que URIType es el supertipo, puedes crear columnas de este tipo y almacenar DBURIType o escribir instancias HTTPURIType en esta columna.

Tipo HTTPURIT

Puedes utilizar HTTPURIType para almacenar direcciones URL en páginas web externas o en archivos. Oracle accede a estos archivos mediante HTTP (protocolo de transferencia de hipertexto).

Tipo XDBURI

Puedes usar XDBURIType para exponer documentos en la jerarquía de la base de datos XML como URI que se pueden incrustar en cualquier columna URIType de una tabla. El XDBURIType consta de una URL, que comprende el nombre jerárquico del documento XML al que hace referencia y un fragmento opcional que representa la sintaxis XPath. El fragmento está separado de la parte de la URL por un signo de almohadilla (#). Las siguientes líneas son ejemplos de XDBURIType:

Tipo DBURIT

DBURIType se puede utilizar para almacenar valores DBURIRef, que hacen referencia a datos dentro de la base de datos. El almacenamiento de valores DBURIRef te permite hacer referencia a los datos almacenados dentro o fuera de la base de datos y acceder a los datos de forma coherente.

Los valores DBURIRef utilizan una representación similar a XPath para hacer referencia a los datos dentro de la base de datos. Si imaginas la base de datos como un árbol XML, verás las tablas, filas y columnas como elementos en el documento XML. Por ejemplo, el usuario de recursos humanos de muestra hr vería el siguiente árbol XML:


DBURIRef es una expresión XPath sobre el documento XML virtual anterior. Entonces, para hacer referencia al valor  SALARY en la tabla EMPLOYEES para el empleado con el número de empleado 205, puedes escribir como DBURIRef.

Con este modelo, puedes hacer referencia a datos almacenados en columnas CLOB u otras columnas y exponerlos como direcciones URL al mundo externo.

Paquete URIFactory

Oracle también proporciona el paquete URIFactory, que puedes crear y devolver instancias de los diversos subtipos de URITypes. El paquete analiza la cadena de URL, identifica el tipo de URL (HTTP, DBURI, etc.) y crea una instancia del subtipo. Para crear una instancia DBURI, la URL debe comenzar con el prefijo /oradb. Por ejemplo,  URIFactory.getURI(‘/oradb/HR/EMPLOYEES’) crearía una instancia DBURIType y URIFactory.getUri(‘/sys/schema’) crearía una instancia XDBURIType.

Tipos Espaciales

Oracle Spatial and Graph está diseñado para hacer que la gestión de datos espaciales sea más fácil y natural para los usuarios de aplicaciones habilitadas para ubicación, aplicaciones de sistemas de información geográfica (GIS) y aplicaciones de geoimágenes. Una vez que los datos espaciales se almacenan en una base de datos de Oracle, puedes manipularlos, recuperarlos y relacionarlos fácilmente con todos los demás datos almacenados en la base de datos. Los siguientes tipos de datos están disponibles solo si has instalado Oracle Spatial y Graph.

SDO_GEOMETRY

La descripción geométrica de un objeto espacial se almacena en una sola fila, en una sola columna de tipo de objeto SDO_GEOMETRY en una tabla definida por el usuario. Cualquier tabla que tenga una columna de tipo SDO_GEOMETRY debe tener otra columna, o conjunto de columnas, que defina una clave primaria única para esa tabla. Las tablas de este tipo a veces se denominan tablas de geometría.

El tipo de objeto SDO_GEOMETRY tiene la siguiente definición:

SDO_TOPO_GEOMETRY

Este tipo describe una geometría de topología, que se almacena en una sola fila, en una sola columna de tipo de objeto SDO_TOPO_GEOMETRY en una tabla definida por el usuario.

El tipo de objeto SDO_TOPO_GEOMETRY tiene la siguiente definición:

SDO_GEORASTER

En el modelo relacional de objetos GeoRaster, una cuadrícula ráster o un objeto de imagen se almacena en una sola fila, en una sola columna de tipo de objeto SDO_GEORASTER en una tabla definida por el usuario. Las tablas de este tipo se denominan tablas GeoRaster.

El tipo de objeto SDO_GEORASTER tiene la siguiente definición:

Tipos de Medios

Oracle Multimedia utiliza tipos de objetos, similares a las clases de Java o C++, para describir datos multimedia. Una instancia de estos tipos de objetos consta de atributos, incluidos metadatos y datos multimedia, y métodos. Los tipos de datos Multimedia se crean en el esquema ORDSYS. Existen sinónimos públicos para todos los tipos de datos, por lo que puedes acceder a ellos sin especificar el nombre del esquema.

Oracle Multimedia proporciona los siguientes tipos de objetos:

  • ORDAudio

Admite el almacenamiento y la gestión de datos de audio.

  • ORDDicom

Admite el almacenamiento y la gestión de imágenes y comunicaciones digitales en medicina (DICOM), el formato universalmente reconocido como el estándar para imágenes médicas.

  • ORDDoc

Admite el almacenamiento y la gestión de cualquier tipo de datos multimedia, incluidos los datos de audio, imagen y vídeo. Utiliza este tipo cuando desees que todos los medios se almacenen en una sola columna.

  • ORDImage

Admite el almacenamiento y la gestión de datos de imágenes.

  • ORDVideo

Admite el almacenamiento y la gestión de datos de vídeo.

Los siguientes tipos de datos cumplen con el estándar ISO-IEC 13249-5 Still Image, comúnmente conocido como SQL/MM StillImage:

  • SI_AverageColor

Representa una característica que caracteriza una imagen por su color medio.

  • SI_Color

Encapsula valores de color.

  • SI_ColorHistogram

Representa una característica que caracteriza una imagen por las frecuencias relativas de los colores exhibidos por muestras de la imagen sin procesar.

  • SI_FeatureList

Una lista que contiene hasta cuatro de las características de la imagen representadas por los tipos de objeto anteriores (SI_AverageColor, SI_ColorHistogram, SI_PositionalColor y SI_Texture), donde cada característica está asociada con un peso de característica.

  • SI_PositionalColor

Dada una imagen dividida en n por m rectángulos, el tipo de objeto SI_PositionalColor representa la característica que caracteriza una imagen por los colores n por m más  significativos de los rectángulos.

  • SI_StillImage

Representa imágenes digitales con características de imagen inherentes, como alto, ancho y formato.

  • SI_Texture

Representa una característica que caracteriza una imagen por el tamaño de los elementos repetidos (grosoridad), las variaciones de brillo (contraste) y la dirección predominante (direccionalidad).

Y bien, hasta aquí llegamos con todos los tipos de datos que existen en la base de datos Oracle. Como se mencionó en la primera parte de este post, hemos visto aspectos teóricos de estos tipos de datos y más adelante desarrollaremos proyectos en donde podamos ver como funcionan y se ven estos tipos de datos en una tabla.

Conclusión

Conocer los tipos de datos que existen en Oracle es un aspecto muy importante que todo desarrolladores que quiera trabajar con Oracle debe conocer. El conocer los tipos de datos de Oracle, ns permite trabajar de manera profesional y organizada, sabiendo a que tipo de columnas en la base de datos Oracle se deben enviar determinados tipos de datos.

Si te parece complejo la variedad de tipos de datos que existen en Oracle, no te preocupes todo se aprende poco a poco, como dice la frase “Roma no se construyo en un día”, recuerda que la práctica hace al maestro.

Nota (s)

  • No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo. 

Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.