Está en la página 1de 8

UNIVERSIDAD TECNOLOGICA SANTA CATARINA

ORIENTDB

Un Enfoque Integral para Sistemas de Bases de Datos Multi-Modelo

Nombre:
Diego Jauregui Jaras
Héctor Iracheta Contreras
Grupo: 5 C
Maestra: Ing. Martha Cecilia Rodríguez
INDICE

HISTORIA.........................................................................................................2
¿QUE ES?..........................................................................................................3
VENTAJAS Y DESVENTAJAS........................................................................4
RENDIMIENTO Y OPTIMIZACION..............................................................5
COSTOS............................................................................................................5
PERFILADO Y OPTIMIZACION DE CODIGO.............................................7

1
HISTORIA
OrientDB fue escrito originalmente por Luca Garulli en 2010. Luca lo escribió como una
reescritura en Java de la capa rápida y persistente de la base de datos Orient ODBMS
(desarrollada originalmente por Luca Garulli en 1999 en C++). Durante los años 2012-
2014, Andrey Lomakin reconstruyó el motor de almacenamiento. Tiene un nuevo nombre
"plocal" que significa "local paginado". Este nombre implica que el nuevo motor de
almacenamiento se basa en el concepto de división de archivos de datos por páginas y la
página se trata como una única unidad atómica de cambio. Desde 2012, el proyecto está
patrocinado por OrientDB LTD (anteriormente Orient Technologies LTD), una empresa con
fines de lucro cuyo director ejecutivo y fundador es Luca. En 2013, Andrey Lomakin se
incorporó a la empresa como ingeniero jefe de I+D y copropietario de la empresa.
La primera vez que se asoció la palabra "multimodelo" a las bases de datos fue el 30 de
mayo de 2012, en Colonia, Alemania, durante la conferencia magistral de Luca Garulli "
Adopción de NoSQL: ¿cuál es el siguiente paso? ". Luca Garulli imaginó la evolución de
los productos NoSQL de primera generación hacia nuevos productos con más funciones
capaces de ser utilizados en múltiples casos de uso. OrientDB fue el primer producto que
incluyó documentos, gráficos, modelos clave-valor, geoespaciales y reactivos en el mismo
producto, en el nivel central. Esto significa que los múltiples modelos se integraron en el
núcleo sin utilizar capas. Por esta razón, OrientDB es una base de datos multimodelo
"nativa".
OrientDB ha sido cubierto por los medios de comunicación y es el ganador del premio
InfoWorld Bossie 2015. El 15 de septiembre de 2017, la empresa OrientDB LTD fue
adquirida por CallidusCloud, una empresa pública que cotiza en NASDAQ.
El 30 de enero de 2018, se anunció que SAP (la empresa) adquirió CallidusCloud por 2.400
millones de dólares. y por lo tanto OrientDB ahora es compatible con SAP (empresa).
El 1 de septiembre de 2021, el fundador original, Luca Garulli, dejó SAP (empresa) y
bifurcó el proyecto en ArcadeDB después de que SAP decidiera dejar de brindar soporte
comercial a OrientDB.

¿QUE ES?
OrientDB es un sistema de gestión de bases de datos NoSQL de código abierto escrito en
Java. Es una base de datos multimodelo, que admite modelos de gráficos, documentos,
clave/valor y objetos, pero las relaciones se gestionan como en las bases de datos de
gráficos con conexiones directas entre registros. Admite modos sin esquema, con esquema
2
completo y con esquema mixto. Tiene un sólido sistema de creación de perfiles de
seguridad basado en usuarios y roles y admite consultas con Gremlin junto con SQL
extendido para recorrido de gráficos. OrientDB utiliza varios mecanismos de indexación
basados en B-tree y hash extensible, el último se conoce como "índice hash", hay planes
para implementar índices basados en índices de árbol LSM y árbol Fractal. Cada registro
tiene una clave sustituta que indica la posición del registro dentro de la lista de matriz, los
enlaces entre registros se almacenan como un valor único de la posición del registro
almacenado dentro de la referencia o como un árbol B de posiciones de registros (los
llamados ID de registro o RID) que permite recorrido rápido (con complejidad O de
relaciones de uno a muchos y rápida adición/eliminación de nuevos enlaces. OrientDB es la
quinta base de datos de gráficos más popular según la clasificación de bases de datos de
gráficos de DB-Engines , en diciembre de 2021.
El desarrollo de OrientDB todavía depende de una comunidad de código abierto liderada
por la empresa OrientDB LTD creada por su autor original Luca Garulli. El proyecto utiliza
GitHub para administrar las fuentes, los contribuyentes y el control de versiones, Google
Group y Stack Overflow [6] para brindar soporte gratuito a los usuarios de todo el mundo.
OrientDB también ofrece un curso gratuito de Udemy para aquellos que deseen aprender
los conceptos básicos y empezar a utilizar OrientDB.
OrientDB está construido con un motor de documentos/gráficos multimodelo. OrientDB se
siente primero como una base de datos gráfica, pero no hay razón para que el almacén
clave-valor no pueda usarse por sí solo. Si bien OrientDB incluye una capa SQL, el soporte
para bordes significa efectivamente que estos pueden usarse para atravesar relaciones en
lugar de emplear una declaración JOIN . OrientDB maneja cada registro/documento como
un objeto y el vínculo entre objetos/documentos no se realiza a través de referencias, sino
que es un vínculo directo (guardando un puntero al objeto). Esto conduce a una
recuperación rápida de datos relacionados en comparación con las uniones en un RDBMS.

VENTAJAS Y DESVENTAJAS
Ventajas:
 Modelo Multi-Modelo: OrientDB permite trabajar con diferentes modelos de
datos, como documentos, grafos y clave-valor en la misma base de datos. Esto
proporciona flexibilidad al elegir el modelo de datos más adecuado para un caso de
uso específico.
 Escritura ACID y Lectura ACID opcional: OrientDB ofrece operaciones de
escritura ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad) por defecto y
permite configurar el nivel de consistencia para operaciones de lectura.

3
 Lenguaje de Consulta SQL-like: OrientDB utiliza un lenguaje de consulta similar
a SQL, llamado SQL++ que facilita la transición para aquellos familiarizados con
bases de datos relacionales.
 Soporte para Indexación y Búsqueda Compleja: Proporciona capacidades
avanzadas de indexación y búsqueda para consultas eficientes, incluso en grandes
conjuntos de datos
 Alta Disponibilidad y Tolerancia a Fallos: OrientDB ofrece mecanismos de
replicación y particionamiento para garantizar la alta disponibilidad y la tolerancia a
fallos
 Almacenamiento en Memoria: Permite la opción de almacenar datos en memoria
para un rendimiento más rápido en ciertos casos de uso.

Desventajas:
 Curva de Aprendizaje: Aunque OrientDB utiliza un lenguaje de consulta similar a
SQL, puede haber una curva de aprendizaje para aquellos acostumbrados a bases de
datos relacionales tradicionales.
 Comunidad y Ecosistema Menores: Comparado con sistemas de gestión de bases
de datos más establecidos como MongoDB o MySQL, OrientDB tiene una
comunidad y un ecosistema de desarrollo más pequeños, lo que podría traducirse en
menos recursos y plugins disponibles.
 Complejidad en Escenarios de Modelo de Datos Complejos: En situaciones
donde se necesitan modelos de datos complejos o cambios frecuentes en el
esquema, la gestión de estos aspectos puede volverse más compleja.
 Rendimiento Variable: El rendimiento puede ser variable según la naturaleza de la
consulta y el modelo de datos, y podría requerir ajustes finos para optimizar el
rendimiento en situaciones específicas.

RENDIMIENTO Y OPTIMIZACION
El rendimiento y la optimización en OrientDB son aspectos cruciales para garantizar un
funcionamiento eficiente de la base de datos. Es por ello por lo que algunas
recomendaciones para el buen rendimiento de esta base de datos son las siguientes:

 Índices Eficientes: Utiliza índices de manera efectiva para acelerar las consultas.
Identifica las consultas más frecuentes y crea índices en los atributos utilizados en
esas consultas para mejorar la velocidad de recuperación de datos.
 Ajuste de Configuración: Realiza ajustes en la configuración de OrientDB según
los requisitos específicos del proyecto. Configura adecuadamente parámetros como
el tamaño del búfer, el número de hilos, la memoria asignada, etc.

4
 Caché en Memoria: Aprovecha la capacidad de OrientDB para almacenar datos en
memoria. Esto puede mejorar significativamente el rendimiento, especialmente para
operaciones de lectura frecuentes.
 Optimización de Consultas: Analiza y optimiza las consultas. Utiliza el analizador
de perfiles de consultas de OrientDB para identificar cuellos de botella y áreas de
mejora en la ejecución de consultas.
 Particionamiento: Divide grandes conjuntos de datos mediante el uso de
particionamiento. Esto ayuda a distribuir la carga de trabajo y mejora la
escalabilidad.
 Replicación: Configura la replicación para distribuir datos entre nodos y mejorar la
disponibilidad. La replicación también puede ayudar en la carga balanceada y en la
tolerancia a fallos.

COSTOS
Los costos asociados con OrientDB pueden variar según varios factores, como la versión de
OrientDB que estás utilizando (Community o Enterprise), el tipo de soporte que necesitas,
los requisitos de escalabilidad y las características específicas que requieres.
1.
 Community Edition: OrientDB está disponible como una versión de código
abierto llamada Community Edition. Esta edición es gratuita y puede ser
utilizada sin costo.
 Enterprise Edition: Si necesitas características y soporte adicionales, como
funciones de seguridad avanzadas, monitoreo mejorado o asistencia técnica,
podrías optar por la Enterprise Edition, que generalmente implica costos de
licencia.
2. Soporte Técnico:
 Si decides optar por la Enterprise Edition, es posible que quieras considerar
la suscripción a un plan de soporte técnico. Los planes de soporte suelen
incluir asistencia directa, actualizaciones regulares y acceso a recursos
exclusivos.
3. Escalabilidad y Licenciamiento:
 Algunas implementaciones pueden requerir escalabilidad horizontal o
vertical, lo que podría influir en los costos. Asegúrate de entender cómo se
licencian las instancias adicionales y cómo afectará esto a tu presupuesto.
4. Características Adicionales:

5
 Algunas características avanzadas, como la replicación multi-master, la
integración con LDAP/Active Directory, y otras, pueden estar disponibles en
la Enterprise Edition o como módulos adicionales. Estos elementos pueden
tener costos asociados.
5. Recursos de Hardware y Alojamiento:
 Dependiendo de tu elección de implementación (local o en la nube), los
costos pueden incluir el hardware necesario, los servicios en la nube, los
costos de almacenamiento y otros recursos asociados.
6. Formación y Certificación:
 Si necesitas capacitación específica para tu equipo o la certificación en el
uso de OrientDB, es posible que quieras incluir estos costos en tu
presupuesto.
7. Costos Operativos:
 Considera los costos operativos generales, como el tiempo dedicado a la
administración y mantenimiento de la base de datos, así como los costos
asociados con la monitorización y la gestión del rendimiento.
8. Actualizaciones y Mantenimiento:
 Asegúrate de tener en cuenta los costos asociados con la aplicación de
actualizaciones

PERFILADO Y OPTIMIZACION DE CODIGO

La optimización del código debe ser un proceso continuo y se beneficia de pruebas y


ajustes periódicos a medida que la aplicación y los datos evolucionan. El perfilado regular y
la revisión del rendimiento son esenciales para identificar oportunidades de mejora y
garantizar un rendimiento eficiente a lo largo del tiempo. El perfilado y la optimización del
código de la aplicación son prácticas esenciales para garantizar un rendimiento eficiente
cuando se trabaja con OrientDB.
Estas son algunas estrategias:
1. Perfilado de Consultas:
 Utiliza herramientas de perfilado para analizar el rendimiento de las
consultas ejecutadas en OrientDB. Identifica consultas lentas o ineficientes
que podrían beneficiarse de la optimización.
2. Índices y Claves Externas:

6
 Asegúrate de que estás utilizando índices de manera efectiva en las
consultas. Identifica las claves externas y úsalas para establecer relaciones
eficientes entre las entidades.
3. Batch Operations:
 Cuando sea posible, realiza operaciones en lote (batch operations) en lugar
de operaciones individuales. Esto reduce la cantidad de transacciones y
puede mejorar significativamente el rendimiento.
4. Caching:
 Utiliza técnicas de caching apropiadas para almacenar en memoria los
resultados de consultas frecuentes. Esto puede reducir la necesidad de
realizar consultas repetitivas contra la base de datos.
5. Optimización de Consultas:
 Examina y optimiza las consultas para reducir la carga en la base de datos.
Asegúrate de que las consultas solo recuperen los datos necesarios y evita
traer datos innecesarios al cliente.
6. Modelo de Datos Eficiente:
 Diseña un modelo de datos eficiente que minimice la necesidad de realizar
operaciones complejas de unión (join) en las consultas. Considera la
desnormalización de datos cuando sea apropiado.

También podría gustarte