database - soporta - Sistema de base de datos que no es relacional
optimizar consultas mysql explain (13)
¿Cuáles son los otros tipos de sistemas de bases de datos que hay? Recientemente me encontré con couchDB que maneja datos de una manera no relacional. Me hizo pensar en qué otros modelos están usando otras personas.
Entonces, quiero saber qué otros tipos de modelos de datos hay disponibles. (No estoy buscando información específica, solo quiero ver cómo otras personas manejan el almacenamiento de datos, mi interés es puramente académico)
Los que ya sé son:
- RDBMS (mysql, postgres, etc.)
- Enfoque basado en documentos (couchDB, notas de loto)
- Par clave / valor (BerkeleyDB)
Antiguas bases de datos no relacionales:
Ambas cosas pasaron de moda cuando las relaciones se volvieron factibles.
Hay bases de datos basadas en objetos (Gemstore, por ejemplo). Big-Table de Google y Almacenamiento simple de Amason No estoy seguro de cómo se categorizaría, pero ambos están basados en mapas reducidos.
db4o, como lo menciona Eric, es un sistema de gestión de bases de datos orientadas a objetos (OODBMS).
Las bases de datos orientadas a columnas también son un animal diferente. Sin embargo, muchos de ellos admiten SQL de base de datos relacional estándar. Estos se usan generalmente para aplicaciones de tipo depósito de datos.
Cita de la página "sobre":
db4o es la base de datos de objetos de código abierto que permite a los desarrolladores de Java y .NET almacenar y recuperar cualquier objeto de aplicación con solo una línea de código, eliminando la necesidad de predefinir o mantener un modelo de datos rígido por separado.
Una base de datos orientada a documentos no relacionales que hemos estado buscando es Apache CouchDB .
Apache CouchDB es una base de datos distribuida, tolerante a fallos y libre de esquemas orientada a documentos accesible a través de una API RESTful HTTP / JSON. Entre otras características, proporciona una replicación robusta e incremental con detección y resolución bidireccional de conflictos, y es consultable e indexable utilizando un motor de visualización orientado a tablas con JavaScript como el lenguaje de definición de vista predeterminado.
Nuestro interés era proporcionar un acceso distribuido a la tienda de preferencias del usuario que fuera inmune a los cambios de forma en los que pudiéramos serializar los objetos de preferencia de Java y acceder a ellos con la misma facilidad con Javascript desde una aplicación cliente basada en XULRunner.
La Web Semántica es también un paradigma de almacenamiento de datos no relacionales. No hay relaciones, todos los metadatos se almacenan de la misma manera que los datos, y cada entidad tiene potencialmente su propio conjunto único de atributos. Los proyectos de código abierto que implementan RDF, un estándar de la Web Semántica, incluyen Jena y Sesame .
4. Navegacional. Incluye Árbol / Jerarquía y Gráfico / Red.
Los sistemas de archivos, la web semántica, XML, bases de datos de objetos, CODASYL y muchos otros encajan en esta categoría.
Esos 4 son más o menos así.
También hay lo que se conoce como una base de datos de "índice invertido" o "lista invertida". El producto Adabas de Software AG sería un ejemplo. Al igual que con la jerárquica, estas bases de datos continúan utilizándose en grandes entornos corporativos o universitarios debido a consideraciones heredadas o debido a una ventaja de rendimiento en ciertas situaciones (típicamente aplicaciones transaccionales de alta gama).
Existen sistemas BASE (Básicamente Disponibles, Soft State, Eventualmente consistentes) y funcionan bien con modelos de datos simples que contienen grandes volúmenes de datos. BigTable de Google, Dojo''s Persevere, Amazon''s Dynamo, Facebook, Cassandra son algunos ejemplos.
Ver LINK
La base de datos Correlation Database es una nueva y revolucionaria base de datos no relacional. El sistema de gestión de la base de datos de correlación (CDBMS) es independiente del modelo de datos y está diseñado para manejar de forma eficiente consultas improvisadas y ad hoc en un entorno de sistema analítico. A diferencia de los sistemas de gestión de bases de datos relacionales o bases de datos orientadas a columnas, una base de datos de correlación utiliza una arquitectura de almacenamiento basado en valores (VBS) en la que cada valor de datos único se almacena solo una vez y un sistema de indexación autogenerado mantiene el contexto para todos 100% indexado). Las consultas se realizan usando lenguaje natural en lugar de SQL (NoSQL).
Obtenga más información en: www.datainnovationsgroup.com
Me gustaría detallar más sobre la respuesta de Bill Karwin sobre web semántica y tiendas triples, ya que es en lo que estoy trabajando en este momento, y tengo algo que decir al respecto.
La idea detrás de un almacén múltiple es almacenar una base de datos basada en gráficos, cuyo modelo de datos se basa en RDF. Con RDF, describe nodos y asociaciones entre nodos (en otras palabras, bordes). Los datos se organizan en triples:
start node ----relation----> end node
(en RDF speech: subject --predicate -> object). Con este modelo de datos muy simple, cualquier red de datos puede representarse agregando más y más tripletas, siempre que le dé sentido a los nodos y las relaciones.
RDF es muy general, y es un modelo de datos basado en gráficos muy adecuado para los criterios de búsqueda que buscan todos los triples con una combinación particular de sujeto, predicado u objeto, en cualquier combinación. Eventualmente, a través de un lenguaje de consulta llamado SPARQL, también puede realizar consultas más complejas, una operación que se reduce a una búsqueda de isomorfismo gráfico en el gráfico, tanto en términos de topología como en términos de significado de nodo-borde (veremos esto en un momento). SPARQL le permite solo consultas SELECT (y similares). No DELETE, no INSERT, no UPDATE. La información que consulta (por ejemplo, los nodos específicos que le interesan) se mapean en una tabla, que es lo que obtiene como resultado de su consulta.
Ahora, la topología en sí misma no significa mucho. Para esto, se ha inventado un lenguaje de esquema. De hecho, más de uno, y denominarlos lenguajes de esquema es, en algunos casos, muy limitativo. Los más famosos y usados en la actualidad son RDF-Schema, OWL (Lite y Full), y son anteriores al obsoleto DAML + OIL. El objetivo de estos lenguajes es, hirviendo cosas, dar un significado a los nodos (otorgándoles un tipo, también descrito como un triple) y a las relaciones (bordes). Además, puede definir el "rango" y el "dominio" de estas relaciones, o decir de manera diferente qué tipo es el nodo de inicio y qué tipo es el nodo final: puede decir, por ejemplo, que la propiedad "numberOfWheels" solo se puede aplicar para conectar un nodo de tipo Vehículo a un valor entero distinto de cero.
ns:MyFiat --rdf:type--> ns:Vehicle
ns:MyFiat --ns:numberOfWheels-> 4
Ahora puede usar estas ontologías en dos direcciones: validación e inferencia. Hoy la validación no es tan elegante, pero he visto instancias de uso. La inferencia es lo que es genial hoy, porque permite el razonamiento. La inferencia básicamente toma un gráfico RDF que contiene un conjunto de tripletas, toma una ontología, las mezcla en una base de datos triplestore que contiene un "motor de inferencia" y, como la magia, el motor de inferencia inverte triplica según su descripción ontológica. Ejemplo: supongamos que solo almacena esta información en la base de datos
ns:MyFiat --ns:numberOfWheels--> 4
y nada más. No se especifica ningún tipo de este nodo, pero el motor de inferencia agregará automáticamente un triple que indica que
ns:MyFiat --rdf:type--> ns:Vehicle
porque dijiste en tu ontología que solo los objetos del tipo Vehículo pueden describirse mediante un número de propiedad de Ruedas.
Por el contrario, puede utilizar el motor de inferencia para validar sus datos con la ontología, de modo que rechace los datos no conformes (algo así como XML-Schema for XML). En este caso, necesitarás ambas tripletas para que tus datos sean aceptados con éxito por el almacén múltiple.
Las características adicionales de los triplestores son Fórmulas y almacenamiento sensible al contexto. Las fórmulas son enunciados (como de costumbre, objeto sujeto predicado triples) que describen algo hipotético. Nunca utilicé Fórmulas, así que no entraré en más detalles de algo que no sé. La conciencia del contexto son básicamente subgrafos: el problema con el almacenamiento de triples es que no tienes nada que decir de dónde vienen estos triples. Supongamos que tiene dos distribuidores que describen el mismo precio de un componente. Uno dice que el precio es 5.99 y el otro 4.99. Si solo almacena ambas tripletas en una base de datos, ahora no sabe nada sobre quién indicó cada información. Hay dos formas de resolver este problema.
Una es la reificación. Reificación significa que usted almacena triples adicionales para describir otro triple. Es un desperdicio y hace que la vida sea un infierno porque tienes que reificar todas y cada una de las triples que almacenas. La alternativa es conciencia de contexto. Tener un almacenamiento sensible al contexto Es como poder encapsular un grupo de tripletas en un contenedor con una etiqueta (el identificador de contexto). Ahora puede usar este identificador como sujeto para declaraciones adicionales, por lo tanto, describiendo un grupo de tripletas en una sola acción.