Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Cómo modificar el archivo de base de datos db?

¿Cómo modificar el archivo de base de datos db?

Berkeley DB (DB) es una biblioteca de programación de bases de datos integrada de alto rendimiento con enlaces para C, Java, Perl, Python, PHP, Tcl y muchos otros lenguajes. Berkeley DB puede guardar cualquier tipo de pares clave/valor y puede guardar varios datos para una clave. Berkeley DB puede admitir miles de subprocesos simultáneos que operan la base de datos al mismo tiempo, admite hasta 256 TB de datos y se usa ampliamente en varios sistemas operativos, incluida la mayoría de los sistemas operativos tipo Unix, sistemas operativos Windows y sistemas operativos en tiempo real. Berkeley DB versión 2.0 o superior es desarrollada por Sleepycat Software y se proporciona mediante un método de autorización dual basado en el Acuerdo de licencia de software libre/Acuerdo de licencia privada [1], con el código fuente adjunto. Los desarrolladores que quieran integrar Berkeley DB en software propietario deben obtener permiso de Sleepycat. Si el software también se publica bajo GPL, se puede utilizar sin permiso. Las versiones inferiores a 2.0 tienen licencia de BSD y se pueden utilizar libremente con fines comerciales. Berkeley DB se desarrolló originalmente para reemplazar la antigua función hsearch y una gran cantidad de implementaciones de dbm (como dbm de AT&T, ndbm de Berkeley, gdbm del proyecto GNU) con el nuevo algoritmo de acceso HASH. Es la primera versión de Berkeley DB. 1991 y también incluyó el algoritmo de acceso a datos del árbol B. En 1992, la versión 1.85 de Berkeley DB se incluyó en la versión 4.4 de BSD UNIX. Básicamente esta se considera la primera versión oficial de Berkeley DB. A mediados de 1996, se formó Sleepycat Software para brindar soporte comercial a Berkeley DB. Desde entonces, Berkeley DB se ha utilizado ampliamente y se ha convertido en un sistema de base de datos integrado único. En 2006, Oracle adquirió Sleepycat y Berkeley DB se convirtió en miembro de la familia de bases de datos Oracle. Los desarrolladores originales de Sleepycat continuaron desarrollando Berkeley DB en Oracle. Continuaron con el método de autorización original y aumentaron el desarrollo de Berkeley DB. mejorarlo. Mejoró la reputación de Berkeley DB en la industria del software. La última versión actual de Berkeley DB es 4.7.25. Vale la pena señalar que DB es un sistema de base de datos integrado, no una base de datos relacional/de objetos común. No es compatible con el lenguaje SQL y no proporciona funciones avanzadas comunes de las bases de datos, como procedimientos almacenados, activadores, etc. Arquitectura de Berkeley DB Berkeley DB es conocida por tener una arquitectura más simple que los sistemas de bases de datos como Microsoft SQL Server y Oracle. Por ejemplo, no admite el acceso a la red: los programas acceden a la base de datos a través de una API en proceso. No es compatible con SQL u otros lenguajes de consulta de bases de datos, estructuras de tablas y columnas de datos. El programa que accede a la base de datos decide de forma independiente cómo se almacenan los datos en el registro. Berkeley DB no empaqueta los datos en el registro. Cada registro tiene solo dos partes: clave y valor, por lo que en el contexto de Berkeley DB, clave/datos. Generalmente se utiliza par. Se refiere a un registro. Tanto un registro como su clave pueden tener una longitud de hasta 4G bytes. Aunque la arquitectura es simple, Berkeley DB admite muchas funciones avanzadas de bases de datos, como el procesamiento de transacciones de bases de datos ACID, bloqueo detallado, interfaz XA, copia de seguridad en caliente y replicación sincrónica. Berkeley DB incluye interfaces compatibles con algunas bibliotecas de programación de bases de datos clásicas de Unix, incluidas: dbm, ndbm y hsearch.

Estructura de datos central del entorno de base de datos Berkeley DB que maneja DB_ENV: cada DB_ENV es equivalente a una base de datos, que contiene información global de la base de datos, como el tamaño del búfer, e información de configuración global de subsistemas, como transacciones, registros y bloqueos. Estructura del identificador de la base de datos DB: cada base de datos es equivalente a una tabla en una base de datos relacional, que almacena muchos pares clave/datos. El identificador de la base de datos representa un parámetro que contiene varios parámetros que describen los atributos de la tabla de la base de datos, como el tipo de método de acceso a la base de datos, el tamaño de la página lógica, el nombre de la base de datos, etc., y la estructura de la base de datos contiene una gran cantidad de procesamiento de la base de datos; punteros de función, la mayoría de los cuales tienen la forma de (*dosomething )(DB *, arg1, arg2,…). Las más importantes son abrir, cerrar, poner, obtener y otras funciones. Estructura de registros de la base de datos DBT: los registros en la base de datos se componen de palabras clave y datos, y tanto las palabras clave como los datos están representados por la estructura DBT. De hecho, las palabras clave pueden considerarse datos especiales. Los dos campos más importantes de la estructura son void * data y u_int32_t size, que corresponden a los datos en sí y a la longitud de los datos, respectivamente. Estructura del cursor de la base de datos DBC: un cursor es un concepto común en las aplicaciones de bases de datos. Es esencialmente un recorrido para un registro específico. Tenga en cuenta que DB admite varios registros (registros duplicados), es decir, varios registros tienen las mismas palabras clave. Al procesar varios registros, utilizar un cursor es la forma más sencilla. Estructura de manejo del entorno de la base de datos DB_ENV: el entorno es una característica avanzada en DB. En esencia, el entorno es un contenedor para múltiples bases de datos. Cuando se abren una o más bases de datos en el entorno, el entorno puede proporcionar una variedad de servicios de subsistema para estas bases de datos, como soporte de procesamiento de procesos/líneas múltiples, soporte de procesamiento de transacciones, soporte de alto rendimiento, soporte de recuperación de registros, etc. La estructura de datos central en la base de datos debe inicializarse antes de su uso. Luego, se pueden llamar las funciones (punteros) en la estructura para completar varias operaciones. Desde la perspectiva del pensamiento de diseño, este método de diseño es un modelo de uso de lenguajes orientados a procesos para implementar la programación orientada a objetos. Algoritmo de acceso a datos de Berkeley DB En el campo de la base de datos, el algoritmo de acceso a datos corresponde al formato de almacenamiento y método de operación de los datos en el disco duro. Al escribir una aplicación, elegir el algoritmo correcto puede aumentar la velocidad en uno o más órdenes de magnitud. La mayoría de las bases de datos utilizan el algoritmo de árbol B y DB no es una excepción. También admite el algoritmo HASH, el algoritmo Recno y el algoritmo de cola. A continuación, discutiremos las características de estos algoritmos y cómo elegir uno en función de las características de los datos que necesita almacenar. Algoritmo de árbol B El árbol B es un árbol equilibrado, las claves se almacenan en orden y su estructura se puede ajustar dinámicamente con la inserción y eliminación de datos. Para simplificar el código, DB no implementa la compresión de código de prefijo para palabras clave. B-tree admite una velocidad constante para la consulta, inserción y eliminación de datos. La palabra clave puede ser cualquier estructura de datos Algoritmo HASH. Lo que realmente se utiliza en DB es el algoritmo de hash lineal extendido (hashing lineal extendido), que se puede ajustar adecuadamente de acuerdo con el crecimiento de la tabla HASH. Las palabras clave pueden ser cualquier estructura de datos. Se requiere que cada registro tenga un número de registro lógico, y el algoritmo mismo genera el número de registro lógico. De hecho, este es el mismo concepto que la clave primaria lógica en una base de datos relacional que generalmente se define como tipo int AUTO. Recho se basa en el algoritmo del árbol B y proporciona una interfaz para almacenar datos ordenados. La longitud del registro puede ser fija o variable. Es similar al método Recno, excepto que la longitud del registro es fija. Los datos se almacenan en la cola como registros de longitud fija y la operación de inserción inserta el registro al final de la cola. En comparación, la velocidad de inserción es la más rápida. La elección del algoritmo depende primero del tipo de palabra clave. Si es un tipo complejo, solo puede elegir el algoritmo B-tree o HASH. Si la palabra clave es un número de registro lógico, debe elegir el algoritmo Recno o Queue.

Cuando las palabras clave del conjunto de trabajo están ordenadas, el algoritmo de árbol B es más adecuado si el conjunto de trabajo es relativamente grande y las palabras clave se distribuyen básicamente al azar, se selecciona el algoritmo HASH; El algoritmo de cola solo puede almacenar registros de longitud fija. En el caso de un procesamiento concurrente elevado, el algoritmo de cola es más eficiente; en otros casos, elija el algoritmo Recno. El algoritmo Recno almacena datos en un formato de archivo plano. Enlace de recursos de Berkeley DB: Página de inicio oficial: /database/berkeley-db/db/index.html Descarga del producto: /technology/software/products/berkeley-db/index.html Centro de documentación oficial para desarrolladores: /technology/documentation/berkeley -db /db/index.html Información técnica del producto: /technology/products/berkeley-db/pdf/berkeley-db-family-datasheet.pdf /database/docs/berkeley-db-datasheet.pdf /database/docs/Berkeley -DB -v-Relational.pdf Hay muchos libros blancos interesantes y documentos técnicos sobre casos exitosos en la página de inicio oficial, que vale la pena aprender