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.