Informatika 2 - Adatbázisok használata labor

A VIK Wikiből


Ez az oldal az Informatika 2 című tárgy - Adatbázisok használata labor beugrókérdéseinek kidolgozását tartalmazza.
Az aktuális segédlet az aktuális (ajánlott) beugrókérdésekkel bejelentkezés után megtalálható a tanszéki honlapon a 4. gyakorlat segédlet címen (2013 tavasz).

Jelenleg még elég hiányos a kidolgozás, továbbá évről évre kismértékben változhatnak beugrókérdések. A tanszéki honlapról mindig elérhető az aktuális mérési útmutató, mely az aktuális beugrókérdéseket tartalmazza.

FONTOS: Ezektől eltérő kérdések is előfordulhatnak a beugrókban! Ezek csak irányadó kérdések, így ajánlott a segédlet alapos áttanulmányozása is.

Kérlek szerkesszétek, aktualizáljátok!

Hogyan lehet vizsgálni egy kifejezés nullitását?

A where feltételben lehet egyedül vizsgálni, a következő módon:

WHERE pelda IS NULL

Miképp működik a like operátor? Milyen joker karaktereket lehet használni?

kifejezés LIKE string minta

String összehasonlító operátor, a kifejezésben keres a mintának megfelelően, és ha a minta illeszthető a kifejezésre, akkor az operátor igaz értékkel tér vissza. A mintaillesztés case sensitive, a használható joker karakterek:

_: Pontosan EGY tetszőleges karakter helyettesítése
%: Tetszőleges hosszúságú karaktersorozat helyettesítése
": szimpla aposztróf, mivel, a szimpla aposztróf jel önmagában a stringhatároló karakter

Pl.: SELECT * FROM termek WHERE nev LIKE '%er%'

Azon termékek listája, amelyek neve tartalmazza az er karaktersorozatot

Hogyan működnek az oszlopfüggvények?

A lekérdezés eredményeként kapott rekordhalmazon lehet utólagos kalkulációt végezni velük:

  • SUM: Értékek összegzése
  • MIN: Legkisebb érték megkeresése
  • MAX: Legnagyobb érték
  • AVG: Átlag számítása
  • COUNT: Rekordok megszámolása

A kiszámítandó oszlopfüggvényeket a select listában kell megadni. Az adatbázis-kezelő szerver először lefuttatja a lekérdezést az oszlopfüggvények nélkül, majd az egyes rekordokat átadja az oszlopfüggvényeknek, az értékek kiszámítására. Az oszlopfüggvények a null értéket nem veszik figyelembe, kivéve a count(*) függvény (megszámolja, hogy hány rekordja van az adott relációnak).

Mire szolgál a having kulcsszó?

Ha az oszlopfüggvény eredményére teszünk megkötést, akkor ezt a where részben nem adhatjuk meg, mivel az kiértékelődik még az oszlopfüggvények kiszámítása előtt. Ezért ha az oszlopfüggvények kimenetére szeretnénk szűrni, akkor azt külön a having kulcsszó után lehet megadni.

Írja fel a select utasítás általános szintaktikáját!

SELECT [DISTINCT] oszloplista
FROM táblalista
[WHERE logikai kifejezés]
[GROUP BY oszloplista]
[HAVING logikai kifejezés]
[ORDER BY oszloplista]

Mire szolgál az ifnull függvény MySQL Serveren?

IFNULL(kifejezés1,kifejezés2)

Ha kifejezés1 értéke nem NULL, akkor kifejezés1 értéke kerül kiírásra. Ha kifejezés1 értéke NULL, akkor kifejezés2 értéke kerül kiírásra.

Miképp lehet megadni két tábla outer joinját?

A join művelet tulajdonsága, hogy a nem párosítható rekordokat nem tartalmazza az eredményhalmaz. A left outer join abban tér el ettől, hogy ha mondjuk az első táblának volt olyan sora, ami semmilyen módon nem került be a kiválasztott sorok közé, akkor nem kerül be, itt viszont bekerül, és a hozzá tartozó második táblabeli oszlopok értékei mind null-ok lesznek. A right outer join ugyanez, csak a két tábla szerepe felcserélve.

SELECT *
FROM termek RIGHT OUTER JOIN gyarto ON gyartoid=gyarto.id

SELECT *
FROM gyarto LEFT OUTER JOIN termek ON gyartoid=gyarto.id

Mit értünk az alatt, hogy egy tranzakció atomi?

Oszthatatlan, azaz vagy teljes egészében végrehajtódik, vagy teljes egészében elvetésre kerül. Köztes állapot nincs!

Mit jelent a tranzakciók konzisztencia tulajdonsága?

Az adatbázist konzisztens állapotból konzisztens állapotba viszi.

Mit jelent a tranzakciók tartósság tulajdonsága?

Ha egy tranzakció lefutott akkor annak hatása tartósan megmarad. Azaz az adatmódosítás nemcsak a memóriában történik meg, hanem háttértárolón is rögzítésre kerül.

Mit jelent a tranzakciók izolációs tulajdonsága?

A párhuzamosan futó tranzakciók egymástól függetlenül hajtódnak végre úgy, mintha egymás után hajtódnának végre.

Mit értünk elveszett módosítás problémája alatt?

Ha két vagy több tranzakció ugyanazon az adatelemen dolgozik, akkor a tranzakciók felül tudják írni egymás módosításait és csak annak a tranzakciónak marad meg a hatása, mely utolsónak adta ki a commit utasítást.

Mit értünk fantom rekordok problémája alatt?

A fantom rekordok olyan rekordok, melyek "megjelenhetnek" illetve "eltűnhetnek" egy táblából egy tranzakció élete során. Mivel egy párhuzamosan futó tranzakció vihet fel új rekordokat egy táblába, illetve törölhet meglévőket.

Mit jelent a read committed izolációs szint?

Az egyes tranzakciók a rekordoknak csak a commitált képét láthatják.

Mit jelent a serializable izolációs szint?

A tranzakciók ütemezése konfliktus ekvivalens egy soros ütemezéssel. Azaz a tranzakciók úgy ütemeződnek, mintha egymás után futnának le.

Mi a holtpont?

Előfordulhat olyan szituáció, hogy két vagy több a párhuzamosan futó tranzakció egymásra vár, és egyik sem tudja folytatni futását. Mivel olyan erőforrásra vár amit a másik tranzakció birtokol, viszont a másik olyan erőforrásra vár, melyet az egyik birtokol. Ezt a szituációt nevezik holtpontnak.

Ismertesse az erőforrás foglaltsági gráf működését!

Holtponti helyzetet erőforrás foglaltsági gráffal lehet szemléltetni és felismerni. Az erőforrás foglaltsági gráf olyan irányított páros gráf, melynek a csomópontjai: az erőforrások és folyamatok.
Az élek jelentése (iránytól függően):

  • Az adott erőforrást az adott tranzakció birtokol (erőforrás -> tranzakció).
  • Egy adott erőforrásra vár az adott tranzakció (tranzakció -> erőforrás).

Holtponti helyzet akkor és csak akkor van, ha az erőforrás foglaltsági gráfban irányított kör van.