Praktikus bevezető útmutató

A relációs adatbázisok táblázatos formában tárolják az adatokat, címkézett sorokkal és oszlopokkal. Bár a relációs adatbázisok általában megfelelő megoldást kínálnak az adatok tárolására, a sebesség és a méretezhetőség bizonyos esetekben problémát jelenthet.

Az SQL-t (Structured Query Language) a legtöbb relációs adatbázis-kezelő rendszer használja az adatokat táblázatos formában tároló adatbázisok kezelésére. A NoSQL nem SQL-alapú vagy nem relációs adatbázis-tervezésre utal. Továbbra is rendszerezett módot biztosít az adatok tárolására, de nem táblázatos formában.

A NoSQL adatbázisok által az adatok tárolására adaptált általános struktúrák kulcs-érték párok, széles oszlopok, grafikonok vagy dokumentumok. Számos NoSQL-adatbázist használnak az adattudományi ökoszisztémában. Ebben a cikkben az egyik legnépszerűbbet fogjuk használni, a MongoDB-t.

A MongoDB dokumentumokként tárolja az adatokat. A MongoDB dokumentumai mező-érték párokból állnak. Például a következő lehet egy dokumentum a MongoDB-ben.

{
 "name": "John",
 "age": 26,
 "gender": "Male",
}

A dokumentumokat a „gyűjtemény” nevű struktúrába rendezik. Analógiaként a dokumentumokat egy táblázat sorainak, a gyűjteményeket pedig táblázatoknak tekinthetjük.

A dokumentum JSON (JavaScript Object Notation) formátumú. A JSON egy gyakran használt formátum, de van néhány hátránya.

Mivel a JSON szövegalapú formátum, megnehezíti az elemzést. A memória hatékonysága szempontjából sem túl optimális választás. A támogatott adattípusok száma a JSON esetében is korlátozott.

E kihívások leküzdése érdekében a MongoDB új formátumot vezet be, BSON (bináris JSON) néven. A JSON bináris reprezentációjának tekinthető. A JSON-hoz képest rendkívül rugalmas és gyors. A BSON másik előnye, hogy kevesebb memóriát fogyaszt, mint a JSON.

Mivel a BSON bináris kódolású, ember által nem olvasható, ami probléma lehet. A MongoDB azonban megoldja ezt a problémát azáltal, hogy lehetővé teszi a felhasználók számára, hogy BSON-fájlokat exportáljanak JSON formátumban.

Az adatokat BSON formátumban tárolhatjuk és JSON formátumban tekinthetjük meg. Bármely JSON formátumú fájl BSON-ként tárolható a MongoDB-ben.

Rövid bemutatkozás után gyakoroljunk egy kicsit. Telepítheti a MongoDB közösségi kiadását Linuxra, macOS-re vagy Windowsra. A telepítést egyértelműen a MongoDB "dokumentáció" tartalmazza.

Feltelepítettem a linuxos gépemre. A MongoDB-t a terminálról indítjuk a következő paranccsal.

$ sudo systemctl start mongod

Ezután egyszerűen beírjuk a mongo-t a terminálba, hogy elkezdjük használni.

$ mongo

A következő parancs kinyomtatja a MongoDB adatbázisokat a kiszolgálón.

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
test    0.000GB

A use paranccsal tudunk adatbázist kiválasztani.

> use test
switched to db test

Korábban már említettük, hogy a MongoDB dokumentumai egy gyűjtemény nevű struktúrába vannak rendezve. A gyűjtemények adatbázisban történő megtekintéséhez a show collections parancsot használjuk.

> show collections
inventory

Jelenleg egy gyűjtemény található a tesztadatbázisban. Szeretnénk létrehozni egy új kollekciót „vevők” néven. Ez meglehetősen egyszerű. Csak létrehozunk egy új dokumentumot, és beillesztjük a gyűjteménybe. Ha a megadott gyűjtemény nem létezik az adatbázisban, a MongoDB automatikusan létrehozza azt.

> db.customers.insertOne(
... {name: "John",
...  age: 26,
...  gender: "Male",
... }
... )
{
 "acknowledged" : true,
 "insertedId" : ObjectId("60098638be451fc77a72a108")
}

Amint a kimenetben látjuk, a dokumentum sikeresen bekerült a gyűjteménybe. Futtassuk újra a „show collections” parancsot.

> show collections
customers
inventory

Most már két gyűjteményünk van a tesztadatbázisban. A find paranccsal lekérdezhetjük a gyűjtemény dokumentumait.

> db.customers.find()
{ "_id" : ObjectId("60098638be451fc77a72a108"), "name" : "John", "age" : 26, "gender" : "Male" }

Megjelennek a mező-érték párok, valamint az objektumazonosító. Mivel az ügyfelek gyűjteményében csak egy dokumentum található, a keresés funkcióban nem adunk meg feltételt.

A Find funkció lehetővé teszi az adatbázis lekérdezéséhez szükséges feltételek megadását. Ebben az értelemben hasonló a select utasításhoz az SQL-ben.

Következtetés

Röviden bemutattuk a NoSQL-t a MongoDB-vel. Természetesen a NoSQL-ben és a MongoDB-ben is sokkal többről van szó.

Mind az SQL, mind a NoSQL kulcsfontosságú az adattudományi ökoszisztémában. Az adattudomány üzemanyaga az adatok, így minden a megfelelő, jól karbantartott és könnyen hozzáférhető adatokkal kezdődik. Mind az SQL, mind a NoSQL kritikus szereplői ezeknek a folyamatoknak.

További cikkeket fogok írni SQL és NoSQL adatbázisokról. Maradjon velünk!

Köszönöm hogy elolvastad. Kérjük, jelezze, ha bármilyen visszajelzése van.