2008-09-09 30 views
6

¿Cuáles son los otros tipos de sistemas de bases de datos que existen? 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.Sistema de base de datos que no es relacional

Entonces, quiero saber qué otros tipos de modelos de datos hay disponibles. (No estoy buscando nada específico, sólo quiero mirar cómo otras personas están manejando el almacenamiento de datos, mi interés puramente académico)

los que ya conozco son:

  1. RDBMS (MySQL, postgres etc ..)
  2. enfoque basado en el Documento (couchdb, Lotus notes)
  3. clave/valor par (BerkeleyDB)

Respuesta

7

db4o

Cita del "sobre" la página:

db4o es la base de datos de objetos de código abierto que permite a los desarrolladores de Java y .NET para almacenar y recuperar cualquier objeto de aplicación con una sola línea de código, lo que elimina la necesidad de predefinir o mantener un modelo de datos rígido por separado.

1

¿No es SimpleDB de Amazon no relacional?

1

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.

+0

BigTable es una tienda orientada a columnas. – Till

3

mayores bases de datos no relacionales:

Network Database

Hierarchical Database

Tanto su mayoría pasó de moda cuando relacional hizo factible.

+1

Creo que tanto LDAP como el Registro de Windows son bases de datos jerárquicas de amplio uso. Si amplía un poco las definiciones, también podría incluir bastantes sistemas de archivos. –

2

Column-oriented databases son también 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.

1

Una base de datos orientada a documentos no relacionales que hemos estado viendo es Apache CouchDB.

Apache CouchDB es una base de datos distribuida, tolerante a fallos y sin documentos 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 vistas orientado a tablas con JavaScript como el lenguaje de definición de vista predeterminado.

Nuestro interés era en la prestación de un almacén de preferencias de usuario de acceso distribuido que sería inmune a los cambios de forma en que podríamos serializar objetos de preferencias de Java y acceder a aquellos con la misma facilidad con Javascript desde una aplicación de cliente basado en XULRunner.

2

Semantic Web 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 Web Semántica, incluyen Jena y Sesame.

0

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 bastante.

0

También existe 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).

0

hay sistemas de base (Básicamente disponibles, estado blando, eventualmente consistentes) y trabajan bien con los modelos de datos simples sosteniendo grandes volúmenes de datos. BigTable de Google, Dojo's Persevere, Amazon's Dynamo, Facebook, Cassandra son algunos ejemplos.

Ver LINK

0

La base de datos de correlación iluminar es una nueva base de datos no relacionales revolucionaria. 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).

Más información en: www.datainnovationsgroup.com

1

me gustaría a los detalles más en la respuesta de Bill Karwin sobre web semántica y triplestores, ya que es lo que estoy trabajando en este momento, y tengo algo de dígalo.

La idea detrás de un triplestore es almacenar una base de datos basada en el gráfico, cuyo modelo de datos raíces 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 el lenguaje RDF: según el --predicate -> objeto). 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 en los que está interesado) se asigna a 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. Ningún tipo se especifica sobre este nodo, pero el motor de inferencia añadirá automáticamente un triple dicho que

ns:MyFiat --rdf:type--> ns:Vehicle 

porque usted dijo en su ontología que sólo los objetos de tipo de vehículos pueden ser descritos por un numberOfWheels propiedad.

Por el contrario, puede utilizar el motor de inferencia para validar sus datos contra la ontología para rechazar datos no compatibles (algo así como XML-Schema para 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 las Fórmulas y el 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 una reificación. Reificación significa que 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.

Cuestiones relacionadas