Metakit


Metakit es una biblioteca de base de datos integrada que ocupa poco espacio . Se llena el hueco entre fichero plano , relacional , orientado a objetos , y la estructura de árbol bases de datos , el apoyo se une relacional, la serialización, estructuras anidadas, y la evolución del esquema instantánea. Las interfaces para C ++ (nativo), Python y Tcl son las más utilizadas.

Metakit fue escrito por Jean-Claude Wippler , un desarrollador de software de los Países Bajos . Su desarrollo comenzó alrededor de 1997 y en 2001 se lanzó como código abierto bajo la licencia MIT X11 . El autor brinda soporte comercial. En los últimos años, sin embargo, Wippler ha dedicado menos tiempo a Metakit y más a sus otros proyectos.

La base de datos se utiliza en varios productos comerciales (incluida la libreta de direcciones en Mac OS X 10.4 y versiones anteriores) y en varios proyectos de código abierto (por ejemplo, el lector de feeds de KDE, Akregator ) y en proyectos internos (normalmente con interfaz Python o TCL). Un proyecto relacionado, Starkit ( sistema de archivos virtual para TCL), escrito por Wippler, alcanzó popularidad entre los programadores de TCL.

La lista de correo de Metakit tiene suscriptores activos y Wippler la envía regularmente. [ cuando? ] Otros desarrolladores han contribuido al proyecto con correcciones de errores y sugerencias.

A diferencia de la mayoría de los otros sistemas de bases de datos que almacenan filas de una tabla de base de datos en un solo lugar (arquitectura orientada a filas), Metakit almacena columnas individuales por separado ( arquitectura orientada a columnas ). Durante muchos años, solo fue posible el acceso lineal a las tablas (con complejidad O (1) para el acceso y O (N) para la búsqueda), luego se agregaron estructuras hash y estructuras tipo árbol B (reduciendo la complejidad de búsqueda típica a O (1) ). Las operaciones relacionales (como agrupaciones y combinaciones ) también se agregaron a lo largo de los años. Es posible combinar y procesar datos de tablas a través de mecanismos flexibles llamados vistas.. Los datos de la base de datos son portátiles entre plataformas. La sobrecarga de espacio en disco de Metakit es muy baja; se emplean varias técnicas automáticamente para reducirla tanto como sea posible. Se proporciona un visor de estructuras de base de datos Metakit (llamado Kitview ).

El límite práctico para el tamaño de la base de datos es de alrededor de 1 GB (incluso en plataformas de 64 bits ). El acceso multiproceso y multiusuario requiere soporte manual del programador y no se recomienda (en C ++, TCL y Python se usa un bloqueo global automático). Las combinaciones de funciones más avanzadas a menudo no se prueban y pueden fallar. Es posible obtener un rendimiento algo mejor que con otras bases de datos (los puntos de referencia publicados incluyen SQLite y Berkeley DB ) pero requiere muchas pruebas y mucho conocimiento de los componentes internos de Metakit. La API de Metakit es de bajo nivel, en comparación con SQL .