Universidad Tecnológica Nacional
This presentation is the property of its rightful owner.
Sponsored Links
1 / 10

Universidad Tecnológica Nacional Facultad Regional Buenos Aires PowerPoint PPT Presentation


  • 60 Views
  • Uploaded on
  • Presentation posted in: General

Universidad Tecnológica Nacional Facultad Regional Buenos Aires Ingeniería en Sistemas de Información. Sistemas Operativos. Introducción a BerkeleyDB. Introducción. Los datos en formato nativo del lenguaje de programación. No tiene modo cliente-servidor . Caché configurable

Download Presentation

Universidad Tecnológica Nacional Facultad Regional Buenos Aires

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Universidad tecnol gica nacional facultad regional buenos aires

Universidad Tecnológica Nacional

Facultad Regional Buenos Aires

Ingeniería en Sistemas de Información

Sistemas Operativos

Introducción a BerkeleyDB


Universidad tecnol gica nacional facultad regional buenos aires

Introducción

  • Los datos en formato nativo del lenguaje de programación.

  • No tiene modo cliente-servidor.

  • Caché configurable

  • Bloqueos detallados

  • Copias de seguridad y replicación en caliente.

  • Transacciones ACID.

  • Compatible con dbm, ndbm y hsearch.

  • Snapshots


Universidad tecnol gica nacional facultad regional buenos aires

Puesta en marcha

# apt-get install libdb4.2-dev

# gcc bdb.c –o bdb –ldb


Universidad tecnol gica nacional facultad regional buenos aires

Creación de Base

#include <db.h>

DB *dbp;

u_int32_t flags; int ret;

if (!ret = db_create(&dbp, NULL, 0) {

flags = DB_CREATE;

if (!ret = dbp->open(dbp, NULL, "my_db.db", NULL, DB_BTREE, flags, 0)) {

if (dbp != NULL)

dbp->close(dbp, 0);

}

}


Universidad tecnol gica nacional facultad regional buenos aires

Construcción de la base

1) Dos punteros de tipo DBT.

a)Dato

b)Clave

2) Asigno el valor al par

3) Invoco el método putpara almacenar en la base


Universidad tecnol gica nacional facultad regional buenos aires

Grabado de datos

long dni = 31190867;

char *nombre = “Pablo Sandoval";

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;

ret = dbp->put(dbp, NULL, &key, &data, DB_NOOVERWRITE);

if (ret == DB_KEYEXIST) {

dbp->err(dbp, ret, “La clave %d ya existe!\n", dni);

}


Universidad tecnol gica nacional facultad regional buenos aires

Lectura de datos

long dni = 31190867;

char nombre[50];

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, NULL, &key, &data, 0);

printf("Clave: %d - Valor: %s\n", dni, nombre);


Universidad tecnol gica nacional facultad regional buenos aires

Borrado de datos

long dni = 31190867;

DBT key;

memset(&key, 0, sizeof(DBT));

key.data = &dni;

key.size = sizeof(long);

dbp->del(dbp, NULL, &key, 0);


Universidad tecnol gica nacional facultad regional buenos aires

Corrupción

dbp->sync();

db_dump y db_load


Universidad tecnol gica nacional facultad regional buenos aires

Manejo con estructuras

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;

key.data = &(p.dni);

key.size = sizeof(long);

data.data = &p;

data.size = sizeof(persona);

ret = dbp->put(dbp, NULL, &key, &data, DB_NOOVERWRITE);


  • Login