La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Universidad Tecnológica Nacional Facultad Regional Buenos Aires Ingeniería en Sistemas de Información Introducción a BerkeleyDB Sistemas Operativos.

Presentaciones similares


Presentación del tema: "Universidad Tecnológica Nacional Facultad Regional Buenos Aires Ingeniería en Sistemas de Información Introducción a BerkeleyDB Sistemas Operativos."— Transcripción de la presentación:

1 Universidad Tecnológica Nacional Facultad Regional Buenos Aires Ingeniería en Sistemas de Información Introducción a BerkeleyDB Sistemas Operativos

2 nativoLos datos en formato nativo del lenguaje de programación. cliente-servidorNo tiene modo cliente-servidor. Caché configurable Bloqueos detallados Copias de seguridad y replicación en caliente. ACIDTransacciones ACID. Compatible con dbm, ndbm y hsearch. Snapshots Introducción

3 # apt-get install libdb4.2-dev # gcc bdb.c –o bdb –ldb Puesta en marcha

4 #include DB *dbp; u_int32_t flags; int ret; db_create if (!ret = db_create(&dbp, NULL, 0) { DB_CREATE flags = DB_CREATE; dbp->open if (!ret = dbp->open(dbp, NULL, "my_db.db", NULL, DB_BTREE, flags, 0)) { dbp if (dbp != NULL) dbp dbp->close(dbp, 0); } Creación de Base

5 1) Dos punteros de tipo DBT. a)Dato b)Clave 2) Asigno el valor al par put 3) Invoco el método put para almacenar en la base Construcción de la base

6 long dni = 31190867; char *nombre = Pablo Sandoval"; DBT key, data DBT key, data; memset(&key, 0, sizeof(DBT)); memset(&data, 0, sizeof(DBT)); key.data = &dni; key.size = sizeof(long); data.data = nombre; data.size = strlen(nombre) + 1; dbp->put ret = dbp->put(dbp, NULL, &key, &data, DB_NOOVERWRITE); if (ret == DB_KEYEXIST) { dbp->err(dbp, ret, La clave %d ya existe!\n", dni); } Grabado de datos

7 long dni = 31190867; char nombre[50]; DBT key, data DBT key, data; memset(&key, 0, sizeof(DBT)); memset(&data, 0, sizeof(DBT)); key.data = &dni; key.size = sizeof(long); data.data = nombre; data.ulen = 50; data.flags = DB_DBT_USERMEM; dbp->get dbp->get(dbp, NULL, &key, &data, 0); printf("Clave: %d - Valor: %s\n", dni, nombre); Lectura de datos

8 long dni = 31190867; DBT key DBT key; memset(&key, 0, sizeof(DBT)); key.data = &dni; key.size = sizeof(long); dbp->del dbp->del(dbp, NULL, &key, 0); Borrado de datos

9 dbp->sync(); db_dump y db_load Corrupción

10 typedef struct t_persona { long dni; char nombre[50]; char apellido[50]; } persona p;... strcpy(p.nombre, Pablo); strcpy(p.apellido, Sandoval); p.dni = 31190867; p.dni key.data = &(p.dni); key.size = sizeof(long); data.data = &p; data.size = sizeof(persona); dbp->put ret = dbp->put(dbp, NULL, &key, &data, DB_NOOVERWRITE); Manejo con estructuras


Descargar ppt "Universidad Tecnológica Nacional Facultad Regional Buenos Aires Ingeniería en Sistemas de Información Introducción a BerkeleyDB Sistemas Operativos."

Presentaciones similares


Anuncios Google