Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE)
ABR 2( Adatbázisrendszerek 2) Előadás: MongoDB
3
Köszönet Andrew Erlichsonnak az M101P-es felkészítő kidolgozásához.
Ez képezi alapját az előadás MongoDB részének Szinte MINDEN onnan van, csak valamennyire lefordítva.
4
Mi a MongoDB Nem relációs adattár JSON dokumentumok számára. JSON (Java Script Object Notation) {“nev”:”Laszlo”} {kulcs : érték} {“a”:4, ”b”:5, ”c”:7} Mitől nem relációs? Lehetnek benne hierarchiák. {“a”:6,”b”:7, ”gyumolcs”:[“alma”,”korte”,”banan”]}
5
Egy dokumentumot Collection-nak nevezünk.
Sémanélküli: Ugyanaz a Collection tartalmazhatja a következő két bejegyzést: {a:7,b:8} {a:4,b:9,c:12} Skálázhatóság és teljesítőképesség memcached, kulcs:érték tipusú tárolás Funkcionalitási mélység Relációs adatbázisok MongoDB köztes állapot.
6
Mivel kevesebb a MongoDB, mint a Relációs adatbázis
Nem támogatja a JOIN operátort Nem támogatja a Tranzakciókat Mire van szükség: Mongod folyamatra, amelyik magát a szerver futását jelenti Mongo shell-re (kurzorvezérelt felület), amelyik kötődik a folyamathoz. mongod indítja a szervert mongo indítja az utasításvezérelt interfészt
7
Quiz Mely funkcionalitásokat nem támogatja a MongoDB azért, hogy a skálázhatósága megmaradjon? Indexeket Több collection-on átívelő tranzakciókat JOIN műveleteket Másodlagos indexeket
8
show dbs megmutatja az adatbázisokat use test átvált a test adatbázisra show collections megmutatja a tárolt dokumentumokat db.dolgok.save({a:1, b:2, c:3}) db.dolgok.find() db.dolgok.save({a:3, b:4, c:6, d:200}) ObjectID – mindig indexelve van, egyedi egy collection-on belül db.dolgok.find({a:1})
9
Quiz Melyik(ek) az érvényes JSON dokumentumok? {a:1, b:2, c:3}
10
További JSON db.dolgok.save({nev:”Laszlo”, cim:{utca:”Testveriseg s.u.”,varos:”Csikszereda”,postakod:150701,szam:15}}) db.dolgok.find().pretty()
11
Quiz Mely dokumentumokat fogadja el az alábbiakból a mongo shell:
{ a : 1, b : 2, c : 3 } { a : 1, b : 2, c : [ 1, 2, 3, 4, 5 ] } { a : 1, b : { }, c : [ { a : 1, b : 2 }, 5, 6 ] } { }
12
MongoDB for Windows Google-ben: download MongoDB (64 bit) mongod.exe --smallfiles –noprealloc (m.bat) Ez a beállítás csökkenti az erőforrás-használatot. System, advenced system settings, environment variables, system variables, path, edit C:\Program Files\MongoDB\Server\3.0\bin C:\data\db
13
db. names. save({name:”Laszlo”}) db. names. find() var j = db. names
db.names.save({name:”Laszlo”}) db.names.find() var j = db.names.findOne() j j.name = “Antal” db.names.save(j) db.names.findOne() db.names.save
14
Séma. Milyen séma? db.users.insert({nev:”Laszlo”, szul_hely:”Gyergyoszentmiklos”}) db.users.insert({nev:”Antal”,szul_hely:”Csikszereda”,kedv_szin: ”piros”}) db.users.find().pretty() var j = db.users.findOne({nev:”Laszlo”}) j.kedv_szin = “kek” db.users.save(j)
15
JSON újratöltve Kétféle adatstruktúra létezik a MongoDB-ben:
mezők (arrays) – dolgok listája [“alma”, “korte”] szótárak (dictionaries) {kulcs:ertek,} és ezek mindenféle kombinációban A legfelső szint kötelezően szótár. QUIZ Készítsünk egy olyan JSON dokumentumot, amelyik gyümölcs kulcsot tartalmaz, és az értéke “alma”, “körte” és “barack” lista
16
JSON aldokumentumok QUIZ Készítsünk egy olyan JSON dokumentumot, amelyik egyetlen kulcsot tartalmaz a legmagasabb szinten: lakcim, amelynek értéke egy olyan JSON aldokumentum, amelyik tartalmaz 3 kulcsot: utca, varos, megye, postakod a következő értékekkel: “Testveriseg s.u.”, “Csikszereda”, ”Hargita”, ”530171”
17
Blog relációsan szerzok(szerzo_id, nev, , jelszo) posztok(poszt_id, szerzo_id, cim, tartalom, datum) kommentek(komm_id, nev, , tartalom) posztkomm(poszt_id, komm_id) tagek(tag_id, nev) post_tagek(poszt_id, tag_id)
18
Hány táblát kell felhasználnunk, hogy kiírassuk a blogot a tagekkel együtt??????
19
Blog JSON-ban posztok nevű dokumentum kollekció: {cim:”MongoDB kurzus”,tartalom: ”…………..”,szerzo: “Illyes”, datum:”….”, kommentek:[{nev:”Andrew Erlichson”, tartalom:”…………”}, tagek: [“uszas”,”foci”,”tanulas”] } szerzok nevű dokumentum kollekció:
20
Séma tervezés. Beépíteni vagy nem???
tagek, kommentek, miért beépíteni? Csak a posztokkal egyszerre használjuk. Kevés lekérdezés születik arra, hogy milyen tagok vannak összesen pl. A komment csak 1 posztra vonatkozik. Nincs értelme külön kollekciónak. Az, hogy beépítsük vagy sem, attól függ, hogy az adatok elérése hogyan valósul meg. 16 MB-nál kisebb dokumentumok vannak MongoDB-ben. Ez lehet egy oka annak, hogy bizonyos aldokumentumokat beápítsünk-e vagy sem.
21
QUIZ Mely esetben(tekben) lehetetlen beépíteni az adatot egy dokumentumba (át kell tenni külön kollekcióba?) Egy indexre van szükségünk az adatelemnél A beépített adat meghaladhatja a 16 MB dokumentum határt a MongoDB-n belül Az információ többszörözve lesz több dokumentumában ugyanannak a kollekciónak (redundancia) Az adat nem izomorf
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.