Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) ABR 2( Adatbázisrendszerek 2) 8. Előadás:

Hasonló dokumentumok
MySQL kontra MongoDB programozás. SQL és NoSQL megközelítés egy konkrét példán keresztül

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése

Tranzakció-kezelés, alapfogalmak. Vassányi István, 2012.

Adatbázis I. 11. előadás. Kulcsok az SQL ben. Hivatkozásépségi megszorítások és idegen kulcsok.

Adatbázis rendszerek. dr. Siki Zoltán

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP /1/A

Adatmodellezés. 1. Fogalmi modell

ABR ( Adatbázisrendszerek) 1. Előadás : Műveletek a relációs medellben

Adatbáziskezelés. Indexek, normalizálás NZS 1

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet

Szathmáry László Debreceni Egyetem Informatikai Kar

Bevezetés: az SQL-be

Magas szintű adatmodellek Egyed/kapcsolat modell I.

ADATBÁZIS-KEZELÉS. Adatbázis-kezelő rendszerek

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Marosvásárhely. ABR ( Adatbázisrendszerek) 12. Előadás:

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

9.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

7. előadás. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF. Adatbázisrendszerek előadás november 3.

Adatbáziskezelı-szerver SQL. Relációs adatbázis-kezelık. Relációs adatszerkezet. Házi feladat

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

Adatbázis rendszerek SQL nyomkövetés

Az adatbáziskezelés alapjai

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-1

Adatbázis-kezelés alapjai 1. Ea: Infó Mátrix. Lehet, nem lehet

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

Adatbázis rendszerek tervezése

RELÁCIÓS ADATBÁZISSÉMÁK. Egyed-kapcsolat modellről átírás

Adatbázis-kezelés. alapfogalmak

B I T M A N B I v: T M A N

Adatbázis használat I. 1. gyakorlat

Tájékoztató. Használható segédeszköz: -

Adatbázis alapú rendszerek

Adatbázisok - 1. előadás

KÉPZÉS NEVE: Informatikai statisztikus és gazdasági tervezı TANTÁRGY CÍME: Adatbáziskezelés III. (elmélet+gyakorlat) Készítette: Kupcsikné Fitus Ilona

SQL DDL-2 (aktív elemek) triggerek

Relációsémák létrehozása SQL nyelvben

Szoftvertechnolo gia 7. gyakorlat

Adatbázis-kezelés. Harmadik előadás

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

SQL DDL-1: táblák és megszorítások

Adatbázis rendszerek 2. előadás. Relációs algebra

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

Adatbázisok gyakorlat

Adatmodellezés, alapfogalmak. Vassányi István

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

Személyügyi nyilvántartás szoftver

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Webfejlesztés 4. alkalom

BEVEZETÉS Az objektum fogalma

Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) );

Két tűz között. statikus site generátorok és javascript alkalmazások és a Drupal

Adatbázisok I Adatmodellek komponensei. Adatbázis modellek típusai. Adatbázisrendszer-specifikus tervezés

Adatbázisok elmélete 1. előadás

Adatmodellek. 2. rész

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

SQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére

file:///d:/okt/ad/jegyzet/ad1/b+fa.html

Adatbázis rendszerek 2. előadás. Relációs algebra

Tranzakciók, nézettáblák, indexek. Párhuzamos folyamatok irányítása Virtuális és materializált nézettáblák Az adathozzáférés felgyorsítása

Elosztott adatbázis-kezelő formális elemzése

Adatbázis-kezelő rendszerek alkalmazása. MongoDB beadandó feladat Programtervező informatikus szak

Nem klaszterezett index. Klaszterezett index. Beágyazott oszlopok. Index kitöltési faktor. Indexek tulajdonságai

ADATBÁZISOK, 2018 ősz

ABR ( Adatbázisrendszerek) 2. Előadás : Műveletek a relációs modellben

Nem klaszterezett index. Beágyazott oszlopok. Klaszterezett index. Indexek tulajdonságai. Index kitöltési faktor

Előszó. Bevezetés. Java objektumok leképzése relációs adatbázisokra OJB-vel Viczián István Viczián István

MIKOVINY SÁMUEL TÉRINFORMATIKAI EMLÉKVERSENY

Data Vault 2.0 és az Oracle DW/BD referencia architektúra. Gollnhofer Gábor Meta Consulting Kft.

Adatbázis rendszerek Ea: A rendes állapot. Normalizálás

Fájlszervezés. Adatbázisok tervezése, megvalósítása és menedzselése

Táblák és a közöttük / az adatmezők közötti kapcsolatok grafikusan megjelenítve. 7 tábla, adatmezőik, bennük elsődleges és külső kulcsok

Adatbázis rendszerek I

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

Adatbázis rendszerek 7. előadás State of the art

Adatbázis-kezelés az Excel 2013-ban

A relációs adatmodell

A TANTÁRGY ADATLAPJA

MongoDB THE NOSQL DATABASE. Készítette: Hugyák Tamás v2.1.1

Adatbázisok webalkalmazásokban

Adatbázis használata PHP-ből

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 6.ELŐADÁS. Fájlkezelés PHP-ben

IT biztonsági szintek és biztonsági kategorizálási minta

mongodb gyakorlat április.

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

Az adatbázisrendszerek világa

Mezők viszonya a relációs adatbázis tábláiban

Bevezetés: Relációs adatmodell

Adatbázisrendszerek. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF, 4NF, 5NF március 13.

Tranzakciók az SQL-ben

Adatbázisok elmélete 1. előadás

BaBér. Bérügyviteli rendszer. Telepítési segédlet 2014.

Relációs adatbázisok tervezése 2.rész (dekompozíció)

Tranzakciókezelés PL/SQL-ben

SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Adatbázis, adatbázis-kezelő

8. Mezőutasítások. Schulcz Róbert 8. Mezőutasítások. v

Átírás:

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) ABR 2( Adatbázisrendszerek 2) 8. Előadás: 1

Alkalmazásvezérelt séma Legfontosabb MongoDB-ben, hogy a séma az alkalmazáshoz alkalmazkodjon. MongoDB jellemzői: Gazdag dokumentumok Beültetett, beépített, előre összekötött adatok Nincs külső JOIN Nincsenek megszorítások (FOREIGN KEY) Atomi operációk (1 dokumentumon belül) Nincs séma (de mégis jó, ha a dokumentumok hasonlítanak egymásra valamennyire) 2

QUIZ Melyik az egyedüli legfontosabb faktor, amely meghatározza a MongoDB séma készítését? o Kibővíthető legyen a séma o Ember által könnyen olvasható legyen o Az alkalmazáshoz alkalmazkodjon az adatminta o Harmadik normálformában legyen az adat 3

Normálformák és célok (poszt tábla) Poszt_id Cim Test Szerzo szerzoemail 1 Elvis lives Yes, he lives! Andrew andrew@x.com 2 Mongolocks This v Richard richard@x.com 3 Hello World! Hi Andrew andrew@x.com 1. A módosítási anomáliák kiküszöbölése 2. Minimalizálni az újrakészítést, ha bővítést szeretnénk 3. Minden elérési minta egyértelmű legyen A legutolsó nem teljesül a MongoDB esetén, de nem is biztos hogy kell teljesüljön. Az elsőre ügyelünk, hogy ne forduljon elő. 4

{ "_id" : ObjectId("50ab0f8bbcf1bfe2536dc40b"), "body": this is a blog body", "permalink" : "HKMCDonfjpXsVwErqiCL", "author" : "machine", "title" : "Bill of Rights", "tags" : ["kayak, "tenor, "parentheses ], "comments" : [ { "author" : "Barbera Lippman", "body": This is a comment body", "email" : "mnuflnqy@hsdvzffs.com" }, { "email" : "asfjwkwy@ukvhynsh.com", "body": This is another comment body", "author" : "Mikaela Meidinger" } ], "date" : ISODate("2012-11-20T05:05:15.259Z ) } 5

QUIZ Második kollekció a users kollekció lesz: {_id: Erlichson,password: ZZXXa789_ } Milyen adat-minta nincs rendesen támogatva a blog séma által. o Előhozni a legújabb blog bemenetet a blog honlaphoz o Előhozni minden információt, hogy meg lehessen jeleníteni egy blogot o Összeszedni az összes kommentet, amelyik egy személyhez tartozik o Megadni tag-ra a tartalomjegyzéket 6

Alternatív séma a bloghoz Posztok Kommentek tagek _id: _id: _id: Title: Post_id: Tag: Body: Author: Post_id: Author: Author_email: Date: Order: Body: Mivel nincs semmiféle JOIN lehetőség a MongoDB-ben, manuálisan kell összeszedni az infót több helyről, hogy meg lehessen jeleníteni. Ha ugyanolyan struktúrát kaptunk, mint a relációs adatbázisban, akkor valahol, valami rossz. 7

Megszorítások nélküli élet A beépítés segít. PREJOIN QUIZ Mire vonatkozik az a mondás, hogy megszorítás nélküli élet: o Mindennap úgy élni, mintha az utolsó lenne o Elmondani mindent, amit akarunk, amikor akarjuk o Konszisztensként tartani az adatokat, még ha a MongoDB nem támogatja az idegen kulcsokat, akkor is o Golyóálló mellény mellőzése 8

Élet tranzakciók nélkül Tranzakció ACID (Atomicity, Consistency, Isolation, Durability) Atomi operációk (MongoDB-ben) 1 dokumentumon elvégzett operációkat nem látja addig senki, amíg meg nem történt a módosítás 1 2 3 Újra strukturálni Szoftver imlementációval megoldani lockot Tolerálni az inkonszisztenciát 9

QUIZ tranzakciók nélküli élet Mely utasítások működnek atomian egy dokumentumon belül? Pipázzuk ki mindeniket, amelyik talál. Update findandmodify $addtoset (egy update-n belül) $push egy update-n belül 10

1 az 1-hez reláció MongoDB-ben Alkalmazott: CV Épület: földszint Páciens: beteglap Alkalmazott és cv kollekció. Alkalmazott kollekcióba beépíteni a CV kollekciót. CV kollekcióba beépíteni az alkalmazott kollekciót. Minden attól függ, hogyan kérdezzük le az adatokat, mi az elsődleges szempont. Lényeges az elérési frekvencia. Ha a CV-t keveset használjuk, lehet, hogy érdemes külön kollekcióba tenni, hogy ne hozzuk be minden alkalommal a memóriába a CV-t is, amikor az alkalmazott adatokkal dolgozunk. Másik lényeges dolog az adat kiterjedése. Adatok atomicitása 11

QUIZ: 1 az 1-hez relációk Mikor ésszerű két dokumentumot, amelyik egy-azegyhez kötődik egymáshoz különálló kollekciókban tartani? Mikor atomi módosítást szeretnénk mindkét dokumentumon egyszerre Hogy lecsökkentsük a működő részét az alkalmazásnak Hogy külső kulcs megszorítást idézzünk elő Ha az egyesített dokumentum mérete meghaladja a 16 MB-ot 12

1 a sokhoz (1:n) reláció város: személy People kollekció:{name: Otto, city:{name: Csikszereda,zip:153170}} Ilyen esetben igazi összekötés javasolt. 1 a kevéshez kapcsolat Blog posztok: kommentek Blog posztok: tagek 13

QUIZ - 1 a sokhoz (1:n) reláció Mikor ajánlott az egy a sokhoz relációkat több kollekcióban tartani? o Mindig o Amikor a sok, az tényleg sokat jelent o Amikor a sok az csak egy párat jelent o Soha 14

Könyvek: szerzők hallgatók: tanárok Sok a sokhoz reláció (n:m) Kevés a kevéshez esetben haszálhatjuk a beágyazást. Nagyon meg kell gondolnunk, minden az alkalmazástól függ és attól, hogy milyen kérdésekre kell választ adjon a rendszer, s azt milyen strukturánál tudjuk a legkönyebben megadni. Pl., ha a tanárokat beágyaztuk a hallgatók kollekcióba, egy új tanárnak a rendszerbe való bevétele probléma lehet 15

A beágyazás előnyei Javított olvasási teljesítmény Egy körút az adatbázishoz 1 ms, míg megtalálja az első bitet a lemezen, de utána folytonosan olvas, mert az adatok folytonosan következnek. 16

Fák Home: outdoors: winter: snow Gyökér: házon kívül: tél: hó Gyökér: Informatika: Adatbázisok: SQL könyvadat(konyv_id, cim, szerzo) targyszo(_id,megnevezes,szulo_id) konyvtargyszo(konyv_id,targyszo_id) MongoDB-ben vagy a szülők vagy a leszármazottak listáját kell nyilvántartani. 17

QUIZ fák Adott a következő e-kereskedelmi tipikus kategória-hierarchia kollekció, melynek neve categories { _id: 34, name : "Snorkeling", parent_id: 12, ancestors: [12, 35, 90] } Mely kérdés találja meg a snorkeling kategória összes leszármazottját: o db.categories.find({ancestors:{'$in':[12,35,90]}}) o db.categories.find({parent_id: 34}) o db.categories.find({_id:{'$in':[12,35,90]}}) o db.categories.find({ancestors:34}) 18

Mikor denormalizáljunk? 1:1 esetben Ágyazzuk be 1:N esetben Ágyazzuk be az 1-be a sokat N:M esetben (sok a sokhoz) kössük össze azonosítókkal 19

Blob-ok kezelése Nagy állományok kezelése Blob (Binary large object) GRIDFS (16MB) Darabokban (chunks) tároljuk. 20