#Modelo de datos

0 Seguidores · 27 Publicaciones

Un modelo de base de datos es un tipo de modelo en el que se determina la estructura lógica de una base de datos y determina fundamentalmente la manera en que los datos pueden almacenarse, organizarse y manipularse. El ejemplo más frecuente de un modelo de base de datos es el modelo relacional, el cual utiliza un formato basado en tablas.

Obtener más información.

Artículo Ricardo Paiva · jul 7, 2025 3m read

Quizá esto sea bien conocido, pero quería ayudar a compartirlo.

Considerad que tenéis las siguientes definiciones de clases persistentes:

Una clase Factura con una propiedad que referencia a Proveedor.

Class Sample.Invoice Extends (%Persistent, %Populate)
{
Parameter DSTIME = "AUTO";Property InvoiceNumber As%Integer(MINVAL = 100000) [ Required ];Property ServiceDate As%Date(MINVAL = "+$h-730") [ Required ];
Index InvoiceNumber On InvoiceNumber;Property Provider As Sample.Provider [ Required ];
Index Provider On Provider [ Type = bitmap ];/// Build some invoices, this will

0
1 54
Artículo Ricardo Paiva · mar 17, 2025 6m read

InterSystems ha estado a la vanguardia de la tecnología de bases de datos desde su creación, siendo pionera en innovaciones que superan constantemente a competidores como Oracle, IBM y Microsoft. Al centrarse en un diseño eficiente del núcleo y adoptar un enfoque sin concesiones en el rendimiento de los datos, InterSystems se ha hecho un hueco en las aplicaciones de misión crítica, garantizando fiabilidad, velocidad y escalabilidad.


Una historia de excelencia técnica

Durante sus primeros años, InterSystems se distinguió por su innovadora arquitectura de bases de datos, que abordaba las i





0
0 112
Artículo Alberto Fuentes · sep 18, 2024 2m read

¡Hola a todos!

Me alegra anunciaros una nueva versión de iris-datapipe, un framework potente que, acompañado de una interfaz gráfica, te permitirá obtener una visión integral de la ingesta y procesamiento de datos en InterSystems IRIS.

¿Por qué iris-datapipe?

En múltiples proyectos, nos dimos cuenta de que repetíamos un patrón común: ingestión de datos de diversas fuentes, enriquecimiento al combinarlos con otros datos, normalización, aplicación de reglas de validación y, finalmente, la realización de alguna acción u operación sobre estos datos (por ejemplo, almacenarlos o enviarlos a otro sis

image

0
0 115
Artículo Arvind Menon · jun 27, 2024 3m read

Introducción

Con el auge de la inteligencia artificial generativa (Gen AI), creemos que ahora los usuarios deberían poder acceder a datos no estructurados de una manera mucho más sencilla. La mayoría de las personas tienen muchos correos electrónicos que no pueden seguir de manera eficiente. Por ejemplo, en las estrategias para inversión/comercio, los profesionales dependen de tomar decisiones rápidas aprovechando la mayor cantidad de información posible. Del mismo modo, los empleados senior en una startup que trabajan con muchos equipos y disciplinas pueden encontrar difícil organizar tod



0
0 167
Artículo Ricardo Paiva · jul 25, 2023 9m read

Antes de empezar a hablar de bases de datos y de los distintos modelos de datos que existen, primero explicaré qué es una base de datos y cómo se utiliza.

Una base de datos es una colección organizada de datos, almacenados y accesibles de forma electrónica. Se utiliza para almacenar y recuperar datos estructurados, semiestructurados o sin procesar, que normalmente están relacionados con un tema o una actividad.

En el corazón de toda base de datos hay al menos un modelo utilizado para describir sus datos. Y según el modelo que utilice, una base de datos puede tener características ligeramente diferentes y almacenar distintos tipos de datos.

Para escribir, recuperar, modificar, ordenar, transformar o imprimir la información de la base de datos, se utiliza un software llamado Sistema de Gestión de Bases de Datos (DBMS, por sus siglas en inglés).

El tamaño, la capacidad y el rendimiento de las bases de datos y sus respectivos DBMS ha aumentado de forma significativa. Esto ha sido posible gracias a los avances tecnológicos en varios ámbitos, como los procesadores, la memoria y almacenamiento de los ordenadores y las redes informáticas. En general, el desarrollo de la tecnología de bases de datos puede dividirse en cuatro generaciones basadas en los modelos o la estructura de los datos: navegacional, relacional, de objetos y post-relacionales.

2
0 472
Artículo Alberto Fuentes · jul 4, 2023 2m read

Hoy en día es muy común que los datos que necesitas vengan de diferentes fuentes (e.g. aplicaciones externas e internas, distintas bases de datos y servicios, APIs, etc.). Además, seguro que tienes múltiples tipos de consumidores diferentes (e.g. usuarios finales, otras aplicaciones, servicios que publicas a terceros, etc.) y cada uno necesitará acceder a la información de forma diferente y para distintos objetivos. ¿Cómo construir una capa que de forma sencilla te permita gestionar estas necesidades? Hoy hablamos de Data Fabric 👈.

image

0
0 174
Artículo Luis Angel Pérez Ramos · ene 16, 2023 4m read

Motivación

Empecé en este proyecto pensando en cómo permitir que el código Python trabaje de forma natural con el almacenamiento escalable y el eficiente mecanismo de recuperación de datos ofrecido por los globals de IRIS, a través de Python Embebido.

Mi idea inicial era crear algo como un diccionario de implementación de Python usando globals, pero pronto me di cuenta de que antes debía ocuparme de la abstracción de objetos.

Así que empecé creando algunas clases en Python que pudieran envolver objetos Python, almacenando y recuperando sus datos en globals, es decir, serializar y deserializar

0
0 160
Artículo Alberto Fuentes · abr 15, 2021 4m read

Hola a todos! Comentamos hoy una entrada de Timothy Leavitt cuyo equipo (Application Services en InterSystems - encargado de desarrollar y mantener muchas de nuestras aplicaciones internas, y proporcionar herramientas y prácticas recomendadas a otras aplicaciones departamentales), durante el último año, se embarcó en un viaje hacia el desarrollo de interfaces de usuario basadas en Angular/REST, para las aplicaciones existentes construidas originalmente con CSP y/o Zen. Esto ha planteado un interesante reto, que os puede resultar familiar a muchos de vosotros: desarrollar nuevas APIs REST para

2
0 221
Artículo Ricardo Paiva · sep 22, 2022 5m read

¡Hola Comunidad!

Durante años he trabajado en muchos proyectos diferentes y he podido encontrar muchos datos interesantes.

Pero la mayoría de las veces el conjunto de datos con el que trabajaba era de los clientes. Cuando hace un par de años empecé a participar en los Concursos de Programación de InterSystems, comencé a buscar conjuntos de datos web específicos.

Yo mismo he ido seleccionando algunos datos, pero he pensado: "¿Este conjunto de datos es suficiente para ayudar a otras personas?"

Y discutiendo estas ideas con @José Pereira, decidimos enfocar este tema usando una perspectiva diferen

Conjunto de datos de devolución de Socrata

0
1 135
Artículo Dmitrii Kuznetsov · sep 19, 2022 17m read

Una sesión simultánea en IRIS: SQL, Objects, REST y GraphQL  

Kazimir Malevich, "Deportistas" (1932)

"¡Pues claro que no lo entiende! ¿Cómo puede una persona que siempre ha viajado en un carruaje tirado por caballos entender los sentimientos e impresiones del viajero expres o del piloto de aviones?"
Kazimir Malevich (1916)

Introducción

Ya hemos abordado el tema de por qué la representación de objetos/clases es superior a la de SQL para implementar modelos de áreas temáticas. Y esas conclusiones y hechos son tan ciertos ahora como lo han sido siempre. Entonces, ¿por qué deberíamos dar un paso atrás y hablar sobre las tecnologías que arrastran las abstracciones de vuelta al nivel global, donde habían estado en la era pre-objetos y pre-clases? ¿Por qué debemos fomentar el uso de "código espagueti", que provoca errores que son difíciles de rastrear y se basa en las habilidades de desarrolladores virtuosos? 

Hay varios argumentos a favor de la transmisión de datos por medio de APIs basadas en SQL/REST/GraphQL en lugar de representarlos como clases/objetos:

0
0 2567
Artículo Alberto Fuentes · mayo 11, 2022 2m read

¡Hola desarrolladores!

A veces necesitamos insertar o referir los datos de clases directamente en globals.

Y quizá muchos de vosotros esperáis que la estructura de datos de una global con registros sea:

^Sample.Person(Id)=$listbuild("",col1,col2,...,coln).

Este artículo es un aviso de que esto no siempre es verdad, así que no se debe dar por supuesto!

0
0 180
Artículo Renan Santos · abr 13, 2022 4m read

La interoperabilidad es uno de los temas más discutidos en los últimos años. Notamos cada vez más que nuestros datos de salud se comparten entre múltiples sistemas con el fin de acercar el concepto de salud del paciente.

A través de la interoperabilidad, utilizamos diferentes estándares de comunicación (independientemente del lenguaje/tecnología en el que esté integrado un sistema dado) para mover información entre diferentes sistemas. Cada día se hace más explícita la necesidad no solo del intercambio de información entre sistemas (interoperabilidad funcional/técnica) sino también del uso de






























0
0 140
Artículo Muhammad Waseem · abr 6, 2022 7m read

image

¡Hola Comunidad!

Esta publicación es una introducción a mi aplicación iris-globals-graphDB en Open Exchange.

En este artículo, mostraré cómo guardar y recuperar Graph Data en InterSystems Globals con la ayuda del frameworkPython Flask Web y la librería PYVIS Interactive network visualizations.

Recomendación

Paso 1: Establecer conexión con IRIS Globals mediante el SDK nativo de Python

 #create and establish connection
  if not self.iris_connection:
 
0
0 223
Artículo Eduardo Anglada · mar 29, 2022 2m read

¡Hola a todos!

Hoy quiero hablar sobre nuestro proyecto y utilizar el tema del conjunto de datos para el concurso.

Nuestra intención nunca fue ser unos gestores de datos, sobre todo porque a veces nuestros preciosos datos significan mucho para nosotros, pero no para el resto del mundo.

Mi Tesoro

Queremos ir un paso más allá y permitir que los usuarios encuentren el conjunto de datos perfecto para satisfacer sus necesidades.

Nuestro proyecto es un puente entre la comunidad de la Ciencia de Datos y la Comunidad de Desarrolladores, utilizando InterSystems IRIS para lograr esta misión.

0
0 312
Artículo Ricardo Paiva · feb 24, 2022 2m read

¡Hola desarrolladores!

Como probablemente sabéis, en IRIS 2021 los nombres de los globals son aleatorios.

Y si creas clases de IRIS con DDL y quieres estar seguro de qué global se creó, seguramente te gustaría darle un nombre.

De hecho, se puede hacer. 

Usa WITH %CLASSPARAMETER DEFAULTGLOBAL='^GLobalName' en la Tabla CREATE para que funcione. Documentación. Mirad este ejemplo:

0
0 161
Artículo Rob Tweed · ene 7, 2022 2m read

Para aquellos que sois nuevos en IRIS, e incluso para los que habéis utilizado Cache o IRIS durante un tiempo pero queréis explorar más allá de los límites y prácticas normalmente admitidos, puede que os guste bucear en esta investigación detallada del motor de la base de datos, situado en su centro, y descubrir lo que realmente podéis hacer con él, yendo más allá de lo que InterSystems ha hecho con él por vosotros. 

Descubriréis que en realidad es un motor de almacenamiento increíblemente sencillo, además de extremadamente potente, que permite modelar cualquier tipo de base de datos de vuest

0
0 144
Artículo Ricardo Paiva · sep 16, 2021 3m read

Como ayuda para aquellos que quieren utilizar las funciones de la Base de datos documental (DocDB) dentro de InterSystems IRIS, y específicamente la API REST que proporciona, reuní una ColecciónPostman que ofrece muestras para varias llamadas básicas.

Por ejemplo:

0
0 348
Artículo Ricardo Paiva · ago 19, 2021 2m read
Este es el ejemplo de un código que funciona en Caché 2018.1.3 e IRIS 2020.2 
No se mantendrá sincronizado con las nuevas versiones 
¡Además NO cuenta con el servicio de Soporte de InterSystems!

Durante mi búsqueda de un snapshot de un objeto persistente, conocí una característica que me gustaría compartir, ya que podría ser útil en algunas situaciones especiales. Mi objetivo era tener una imagen del antes y el después durante las pruebas unitarias.

0
0 124
Artículo Ricardo Paiva · mayo 22, 2020 9m read

¡Hola desarrollador!

En este articulo repasaremos una publicación original de Maks Atygaev sobre la Implementación de una API de MongoDB, basada en InterSystems Caché - MonCaché.

https://habrastorage.org/files/26f/995/320/26f995320d4a4d5fbe44c8ba3b3fe24d.png

Descargo de responsabilidad: En este artículo se muestra la opinión personal del autor y no tiene ninguna relación con opinión oficial de InterSystems.

Idea

La idea del proyecto es implementar las características básicas de la API en MongoDB (v2.4.9) , con la finalidad de buscar, guardar, actualizar y eliminar documentos de una manera que permita el uso de InterSystems Caché, en lugar de MongoDB, sin cambiar el código del lado del cliente.

0
0 441
Artículo Estevan Martinez · feb 11, 2020 7m read

Esta publicación es el resultado directo de trabajar con un cliente de InterSystems que acudió a mí con el siguiente problema:

SELECT COUNT(*) FROM MyCustomTable

Esto tarda 0.005 segundos, con 2300 filas en total.  Sin embargo:

SELECT * FROM MyCustomTable

Tardó algunos minutos. La razón de que esto sucediera es lo suficientemente sutil e interesante para mí como para escribir una publicación sobre ello. Esta publicación es extensa, pero si va hasta el final verá que escribí un resumen rápido. Por ello, si llegó hasta aquí y cree que ya leyó demasiado, desplácese hasta el final para leer ún



0
0 190
Artículo Kurro Lopez · dic 5, 2019 8m read

¡Hola a tod@s!

En las partes anteriores (1, 2) de este artículo, hablamos de Globals como árboles. En esta tercera parte, los veremos como matrices dispersas.

Una matriz dispersa es un tipo de matriz donde la mayoría de los valores asumen un valor idéntico.

En la práctica, a menudo veréis matrices dispersas tan grandes que no tiene sentido ocupar memoria con elementos idénticos. Por lo tanto, tiene sentido organizar matrices dispersas de tal manera que no se desperdicie memoria al almacenar valores duplicados.

En algunos lenguajes de programación, las matrices dispersas son parte del lenguaje (por ejemplo, en J, MATLAB). En otros lenguajes, hay bibliotecas especiales que permiten usarlas. Para C ++, esos serían Eigen y similares.

Los Globals son buenos candidatos para implementar matrices dispersas por las siguientes razones:

0
0 672
Artículo Kurro Lopez · nov 25, 2019 11m read

Principiantes- ver Parte 1.

3. Variantes de estructuras cuando se usan globals

Una estructura, como un árbol ordenado, tiene varios casos especiales. Echemos un vistazo a aquellos que tienen un valor práctico para trabajar con globals.

3.1 Caso especial 1. Un nodo sin ramas

Los globals pueden usarse no solo como una matriz, sino como variables regulares. Por ejemplo, para crear un contador:
 

1
1 349
Pregunta Evgeny Shvarov · jun 29, 2019

¡Hola chicos!

Como saben, hay dos (al menos) formas de obtener el valor almacenado de una propiedad de una clase InterSystems IRIS si se conoce el ID de una instancia (o un registro).

1. Obtenerlo mediante la propiedad de una instancia con "Acceso a objetos":

ClassMethod GetPropertyForID(stId As %Integer) As %String

{

set obj=..%OpenId(stId)

return obj.StringData

} +++ ++ 
 

2. Obtenerlo mediante una columna del registro con "acceso SQL":

ClassMethod GetColumnForID(stId As %Integer) As %String

{

&sql(select StringData into :sd from Ideal.StoredData where id = :stId)

return sd

}
1
0 200