A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Következő változat | Előző változat | ||
oktatas:linux:adatbazisok [2019/08/16 21:29] admin létrehozva |
oktatas:linux:adatbazisok [2020/07/15 00:10] (aktuális) admin [Használat] |
||
---|---|---|---|
Sor 2: | Sor 2: | ||
====== Adatbázisok ====== | ====== Adatbázisok ====== | ||
- | ===== Dbm ===== | ||
- | apt-get install libgdbm-dev | + | * **Szerző:** Sallai András |
+ | * Copyright (c) Sallai András, 2020 | ||
+ | * [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]] | ||
+ | * Web: https://szit.hu | ||
+ | ===== GDBM ===== | ||
+ | |||
+ | A GNU dbm, rövdien GDBM, egy adatbázis függvényeket tartalmazó programozói könyvtár, | ||
+ | hasonlít a UNIX dbm-hez. A dbm egy úgynevezett hasított adatbázis, | ||
+ | amely kulcs, adat párokat tartalmaz. | ||
+ | |||
+ | apt install libgdbm-dev | ||
Sor 13: | Sor 22: | ||
man gdbm | man gdbm | ||
+ | |||
+ | ===== Kulcsok és adatok ===== | ||
+ | A kulcsokat és az adatokat egy datum nevű struktúrában tároljuk: | ||
+ | <code c> | ||
+ | typedef struct { | ||
+ | char *dptr; | ||
+ | int dsize; | ||
+ | } datum; | ||
+ | </code> | ||
+ | |||
+ | |||
+ | |||
+ | ===== Használat ===== | ||
+ | |||
+ | <code c prog.c> | ||
+ | #include <gdbm.h> | ||
+ | |||
+ | int main() { | ||
+ | GDBM_FILE fp; | ||
+ | fp = gdbm_open("valami.db", 512, GDBM_WRCREAT, 0666, 0 ); | ||
+ | datum key = { "nev1", 4 }; | ||
+ | datum value = { "Nagy Janos", 10 }; | ||
+ | gdbm_store(fp, key, value, GDBM_INSERT); | ||
+ | gdbm_close(fp); | ||
+ | } | ||
+ | |||
+ | </code> | ||
Fordítás: | Fordítás: | ||
gcc -o prog prog.c -lgdbm | gcc -o prog prog.c -lgdbm | ||
+ | |||
+ | |||
+ | A harmadik paraméter jelzők: | ||
+ | * GDBM_READER | ||
+ | * GDBM_WRITER | ||
+ | * GDBM_WRCREAT | ||
+ | * GDBM_NEWDB | ||
+ | |||
+ | Szintaxis: | ||
+ | <code> | ||
+ | gdbm_open (const char *name, int block_size, int flags, | ||
+ | int mode, void (*fatal_func)(const char *)) | ||
+ | </code> | ||
+ | |||
+ | <code> | ||
+ | int gdbm_store (GDBM_FILE dbf, datum key, datum content, int flag) | ||
+ | </code> | ||
+ | |||
+ | |||
+ | * GDBM_REPLACE | ||
+ | * GDBM_INSERT | ||
+ | |||
+ | <code> | ||
+ | int gdbm_close (GDBM_FILE dbf) | ||
+ | </code> | ||
+ | |||
+ | ===== Eszközök ===== | ||
+ | |||
+ | Kész eszközök telepítése: | ||
+ | apt install gdbmtool | ||
+ | |||
+ | Indítás: | ||
+ | gdbmtool | ||
+ | |||
+ | Indítható egy fájl megnyitásáva: | ||
+ | gdbm_dump fajl.db | ||
+ | |||
+ | |||
+ | |||
+ | <code> | ||
+ | gdbmtool> store | ||
+ | KEY? nev1 | ||
+ | DATA? Nagy Janos | ||
+ | gdbmtool> list | ||
+ | nev1 Nagy Janos | ||
+ | </code> | ||
+ | |||
+ | |||
+ | <code> | ||
+ | gdbmtool> store nev2 "Baranyi Ferenc" | ||
+ | </code> | ||
+ | |||
+ | |||
+ | Dump: | ||
+ | gdbm_dump fajl.db | ||
===== Linkek ===== | ===== Linkek ===== |