AB MEGAKVÍZ - Záróvizsga 2025

0.0(0)
studied byStudied by 14 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/59

flashcard set

Earn XP

Description and Tags

Téma követelmények: https://www.cs.ubbcluj.ro/wp-content/uploads/TematicaInformatica_2025_Hu.pdf

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

60 Terms

1
New cards

Mi az ABKR (DBMS)?

Az ABKR az AdatBázis Kezelő Rendszer rövidítése, angolul Database Management System (DBMS). Ez a rendszer implementálja az adatok tárolását, kezelését és lekérdezését.

2
New cards

Mit nevezünk relációnak?

A reláció az attribútumok nem feltétlenül kizáró halmazain értelmezett Descartes-féle szorzat részhalmaza. A relációk az adatbázisokban táblázatokként jelennek meg.

A1,A2,…,An - attribútumok halmaza

R - reláció az attribútumok között

R ⊆ A1 × A2 × … × An

3
New cards

Mit nevezünk relációsémának?

A reláció nevét és a reláció attribútumainak a halmazát együtt relációsémának nevezzük.

4
New cards

Mik a relációs adatmodell tulajdonságai?

  • A tábla nem tartalmazhat két teljesen azonos sort.

  • Kulcsok:

    • A relációnak nem lehet két sora, melynek értékei megegyeznek a kulcsot alkotó attribútumok esetén.

    • A kulcsot alkotó attribútumok egyetlen valódi részhalmaza sem rendelkezik az előző tulajdonsággal.

  • A táblázat sorainak vagyis az egyedelőfordulásoknak a sorrendje lényegtelen.

  • Két attribútumnak nem lehet ugyanaz a neve.

  • A táblázat oszlopainak a sorrendje lényegtelen.

5
New cards

Milyen attribútumok lehetnek kulcsjelöltek?

Egy reláció esetén azok az attribútumok lehetnek kulcsjelöltek, amelyek értéke egyedi minden egyes előfordulásra nézve.

6
New cards

Mi lehet elsődleges kulcs?

Elsődleges kulcsot a kulcsjelöltek közül kell választani, ez lehet összetett is.

Mindig kell legyen elsődleges kulcs, ha más nem, a teljes sor mindig egyedi.

Elsődleges kulcs értéke soha nem lehet null vagy üres.

7
New cards

Miért van szükség összetett kulcsra?

Ha nincs olyan tulajdonság, amelynek értéke egyedi lenne az egyed-előfordulásokra nézve, akkor több tulajdonság értéke együtt fogja jelenteni az elsődleges (összetett) kulcsot.

8
New cards

Milyen típusú megszorítások léteznek?

  • Egyedi kulcs feltétel

    • Egy relációban nem lehet két sor, melyeknek ugyanaz a kulcsértéke.

  • Hivatkozási épség megszorítás

    • Külső kulcs esetén a hivatkozott értéknek léteznie kell a hivatkozott táblában.

  • Értelmezéstartomány-megszorítás

    • Egy attribútum az értékeit a megadott értékhalmazból vagy értéktartományból veheti fel.

  • Általános megszorítás

    • Tetszőleges követelmények, amelyeket be kell tartani az

      adatbázisban.

9
New cards

Jelölések

R(A1, A2,…, An) - reláció

A = {A1, A2,…, An} - attribútumok halmaza

X, Y ⊂ A

X → Y - az Y funkcionálisan függ X-től

10
New cards

Mit nevezünk funkcionális függőségek?

X attribútumhalmaz funkcionálisan meghatározza Y attribútumhalmazt (vagy Y funkcionálisan függ X-től), ha R minden előfordulásában ugyanazt az értéket veszi fel Y, amikor az X értéke ugyanaz.

pl. SzállID → {SzállNév, SzállCím}

Egy kulcs funkcionálisan meghatározza a reláció minden más attribútumát.

<p><strong>X</strong> attribútumhalmaz funkcionálisan meghatározza <strong>Y</strong> attribútumhalmazt (vagy <strong>Y</strong> funkcionálisan függ <strong>X</strong>-től), ha <strong>R</strong> minden előfordulásában ugyanazt az értéket veszi fel <strong>Y</strong>, amikor az <strong>X</strong> értéke ugyanaz. </p><p>pl. SzállID → {SzállNév,<em> </em>SzállCím}</p><p>Egy kulcs funkcionálisan meghatározza a reláció minden más attribútumát.</p>
11
New cards

Mit nevezünk szuperkulcsnak?

Szuperkulcsoknak nevezzük azon attribútumhalmazokat, melyek tartalmaznak kulcsot.

A szuperkulcsok eleget tesznek a kulcs definíció első feltételének, de nem feltétlenül tesznek eleget a minimalitásnak.

Tehát minden kulcs szuperkulcs.

12
New cards

Mit nevezünk prím attribútumnak?

Ai attribútum prím, ha létezik egy C kulcsa az R-nek, úgy hogy Ai ∈ C. Ha egy attribútum nem része egy kulcsnak, akkor nem prím attribútumnak nevezzük.

13
New cards

Mit nevezünk triviális funkcionális függőségnek?

Triviális funkcionális függőségről beszélünk, ha az Y attribútum halmaz részhalmaza az X attribútum halmaznak (Y ⊂ X) , akkor Y attribútum halmaz funkcionálisan függ X attribútum halmaztól (X → Y).

pl. {SzállID, ÁruID} → SzállID

14
New cards

Mit nevezünk nem triviális funkcionális függőségnek?

Nem triviális egy funkcionális függőség, ha az Y-ok közül legalább egy különbözik az X-ektől, X → Y függőség esetén.

15
New cards

Mit nevezünk teljesen nem triviális funkcionális függőségnek?

Teljesen nem triviális egy funkcionális függőség, ha az Y-ok közül egy sem egyezik meg az X-ek valamelyikével, X → Y függőség esetén.

16
New cards

Mit nevezünk parciális függőségnek?

X → Y parciális függőség, ha C egy kulcsa az R relációnak, az Y attribútumhalmaz valódi részhalmaza a C-nek (Y ⊂ C) és A egy attribútum, mely nem része az Y-nak (A ∉ Y).

Más szóval, az A függ a kulcs egy részétől.

17
New cards

Mit nevezünk tranzitív függőségnek?

Y → B tranzitív függőség, ha Y ⊂ A egy attribútumhalmaz és B egy attribútum, mely nem része Y-nak és ha Y nem szuperkulcs R relációban és nem is valódi részhalmaza R egy kulcsának.

Tehát C → Y és Y → B, és erre mondhatjuk, hogy B tranzitív függőséggel függ C-től.

pl.

Rendelések (RendelésSzám, Dátum, VevőID, VevőNév, Részletek)

RendelésSzám VevőID

VevőID VevőNév

Tehát RendelésSzám VevőNév tranzitív függőség.

18
New cards

Mik az anomáliák?

Azokat a problémákat, amelyek akkor jelennek meg, amikor túl sok információt probálunk egyetlen relációba belegyömöszölni, anomáliának nevezzük.

Típusai:

  • Redundancia

    • Az információk feleslegesen ismétlődnek több sorban.

  • Módosítási problémák

    • Megváltoztatjuk az egyik sorban tárolt információt, miközben ugyanaz az információ változatlan marad egy másik sorban.

  • Törlési problémák

    • Ha az értékek halmaza üres halmazzá válik, akkor ennek mellékhatásaként más információt is elveszthetünk.

  • Illesztési problémák

    • Például, ha hozzáilleszteni akarunk egy szállítót, amely nem szállít egy árut sem, a szállító címét kitöltjük úgy, hogy az áruhoz „null” értékeket viszünk be, melyet majd utólag ki kell törölni, ha el nem felejtjük.

19
New cards

Miket nevezünk normálformáknak?

Az optimális adatmodell kialakítására egyéb technikák mellett a normalizálás szolgál. A normalizálás az a folyamat, amellyel kialakítjuk a relációk normálformáját (NF).

A normálformák: 1NF < 2NF < 3NF < BCNF < 4NF < 5NF

A normálalakok nem függetlenek egymástól, hanem logikusan egymásra épülnek.

20
New cards

Mikor van egy reláció 1NF-ben?

Egy R reláció 1NF–ben van, ha az attribútumoknak csak elemi (nem összetett vagy ismétlődő) értékei vannak.

pl. A reláció nincs 1NF-ben mert a Cím összetett attribútum, a Helység, Utca és Szám attribútumokból áll. A Gyerek1, SzülDát1,…, Gyerek5, SzülDát5 ismétlődő attribútum.

<p>Egy <strong>R</strong> reláció <strong>1NF</strong>–ben van, ha az attribútumoknak csak elemi (nem összetett vagy ismétlődő) értékei vannak. </p><p>pl. A reláció nincs <strong>1NF</strong>-ben mert a Cím összetett attribútum, a Helység, Utca és Szám attribútumokból áll. A Gyerek1, SzülDát1,…, Gyerek5, SzülDát5 ismétlődő attribútum.</p>
21
New cards

Hogyan kell 1NF-re alakítani egy relációt?

  • Az összetett attribútum helyett beírjuk az azt alkotó elemi attribútumokat.

  • Az ismétlődő attribútumok esetén két relációra bontjuk fel az eredetit. Az egyik relációban a kulcs attribútum mellett az ismétlődő attribútumok fognak szerepelni (csak egyszer), a másikban pedig a kulcs mellett azon attribútumok, melyek nem ismétlődőek.

pl. Átalakítás után:

Alkalmazottak(SzemSzám, Név, Helység, Utca, Szám)

AlkalmazottakGyerekei(SzemSzám, GyerekNév, SzülDátum)

<ul><li><p>Az összetett attribútum helyett beírjuk az azt alkotó elemi attribútumokat.</p></li><li><p>Az ismétlődő attribútumok esetén két relációra bontjuk fel az eredetit. Az egyik relációban a kulcs attribútum mellett az ismétlődő attribútumok fognak szerepelni (csak egyszer), a másikban pedig a kulcs mellett azon attribútumok, melyek nem ismétlődőek.</p></li></ul><p>pl. Átalakítás után:</p><p>Alkalmazottak(SzemSzám, Név, Helység, Utca, Szám)</p><p>AlkalmazottakGyerekei(SzemSzám, GyerekNév, SzülDátum)</p>
22
New cards

Mikor van egy reláció 2NF-ben?

Egy reláció 2NF formában van, ha már 1NF és nem tartalmaz Y → B alakú parciális függőséget, ahol B nem prím attribútum.

Csak akkor tevődik fel, hogy egy reláció nincs 2NF-ben, ha a kulcs összetett.

pl. A SzállításiInformációk relációja nincs 2NF-ben, mivel a reláció kulcsa a {SzállID, ÁruID} és fennáll a SzállID → SzállNév, tehát SzállNév függ a kulcs egy részétől is, tehát létezik parciális függőség.

<p>Egy reláció <strong>2NF</strong> formában van, ha már <strong>1NF</strong> és nem tartalmaz <strong><em>Y  → B</em></strong> alakú parciális függőséget, ahol <strong>B</strong> nem prím attribútum.</p><p class="p1">Csak akkor tevődik fel, hogy egy reláció nincs 2NF-ben, ha a kulcs összetett.</p><p class="p1">pl. A SzállításiInformációk relációja nincs <strong>2NF</strong>-ben, mivel a reláció kulcsa a {SzállID, ÁruID} és fennáll a SzállID → SzállNév, tehát SzállNév függ a kulcs egy részétől is, tehát létezik parciális függőség.</p>
23
New cards

Hogyan kell 2NF-re alakítani egy relációt?

Az R relációt felbontjuk két relációra, melyek sémái:

  • S(A - B)

    • A - Az összes attribútum

    • B - Az attribútumhalmaz amely függ a kulcs egy részétől.

  • T(D, B)

    • D - A kulcsnak az a része amelytől függ B.

pl. Első lépésben B = {SzállNév, SzállCím}, D = {SzállID}. Felbontás után:

Szállítók (SzállID, SzállNév, SzállCím)

SzállInf (SzállID, ÁruID, ÁruNév, MértEgys, Ár)

A Szállítók reláció 2NF-ben van, mivel a kulcs nem összetett. A SzállInf nincs 2NF-ben, mert fennáll a ÁruID → {ÁruNév, MértEgys}. Ebben az esetben B = {ÁruNév, MértEgys}, D = {ÁruID}. További felbontás után:

Áruk (ÁruID, ÁruNév, MértEgys)

Szállít (SzállID, ÁruID, Ár)

<p>Az <strong>R</strong> relációt felbontjuk két relációra, melyek sémái:</p><ul><li><p class="p1"><strong>S(A - B)</strong></p><ul><li><p class="p1"><strong>A</strong> - Az összes attribútum</p></li><li><p class="p1"><strong>B</strong> - Az attribútumhalmaz amely függ a kulcs egy részétől.</p></li></ul></li></ul><ul><li><p class="p1"><strong>T(D, B)</strong></p><ul><li><p class="p1"><strong>D</strong> - A kulcsnak az a része amelytől függ <strong>B</strong>.</p></li></ul></li></ul><p>pl. Első lépésben B = {SzállNév, SzállCím}, D = {SzállID}. Felbontás után:</p><p>Szállítók (<u>SzállID</u>, SzállNév, SzállCím)</p><p>SzállInf (<u>SzállID, ÁruID</u>, ÁruNév, MértEgys, Ár)</p><p>A Szállítók reláció <strong>2NF</strong>-ben van, mivel a kulcs nem összetett. A SzállInf nincs <strong>2NF</strong>-ben, mert fennáll a ÁruID → {ÁruNév, MértEgys}. Ebben az esetben B = {ÁruNév, MértEgys}, D = {ÁruID}. További felbontás után:</p><p>Áruk (<u>ÁruID</u>, ÁruNév, MértEgys)</p><p>Szállít (<u>SzállID, ÁruID</u>, Ár)</p>
24
New cards

Mikor van egy reláció 3NF-ben?

Egy reláció 3NF formában van, ha már 2NF és nem tartalmaz Y → B alakú tranzitív funkcionális függőséget, ahol B nem prím attribútum.

pl. Rendelések (RendelésSzám, Dátum, VevőID, VevőNév, Részletek)

A Rendelések reláció nincs 3NF-ben, mivel tartalmaz tranzitív funkcionális függőséget:

RendelésSzám → VevőID

VevőID → VevőNév

25
New cards

Hogyan kell 3NF-re alakítani egy relációt?

Az R relációt felbontjuk két relációra, melyek sémái:

  • S(A - B)

    • A - Az összes attribútum

    • B - Az attribútumhalmaz amely tranzitívan függ a kulcstól (D → B).

  • T(D, B)

    • D - Azok az attribútumok amelyek nem kulcsok, függnek a kulcstól és a B-ben lévők tőlük függnek: C → D, D → B. (C - kulcs)

pl. Rendelések (RendelésSzám, Dátum, VevőID, VevőNév, Részletek)

A Rendelések reláció esetén: B = {VevőNév}, D = {VevőID}, a felbontás után:

Vevők (VevőID, VevőNév)

RendelésInf (RendelésSzám, Dátum, VevőID)

26
New cards

Melyik az öt alapvető relációs algebrai művelet?

  • Kiválasztás (selection)

  • Vetítés (projection)

  • Descartes szorzat

  • Egyesítés

  • Különbség

Ez az öt az alapvető művelet. Még vannak hasznos műveletek: ezek az öt alapvető művelettel kifejezhetőek.

27
New cards

Mi a Kiválasztás (Selection) relációs algebrai művelet?

Az R relációra alkalmazott kiválasztás operátor f feltétellel olyan új relációt hoz létre, melynek sorai teljesítik az f feltételt. Az eredmény reláció attribútumainak a száma megegyezik az R reláció attribútumainak a számával.

Jelölés: σf (R) (sigma)

pl. σFizetés <= 500 (Alkalmazottak)

Megfelel annak, hogy:

SELECT *

FROM R

WHERE f_azaz_feltetelek

28
New cards

Mi a Vetítés (Projection) relációs algebrai művelet?

A vetítés művelet eredményeként olyan relációt kapunk, mely R-nek csak bizonyos attribútumait tartalmazza. Ha kiválasztunk k attribútumot az n-ből: A1,A2,…,Ak-et, és ha esetleg a sorrendet is megváltoztatjuk, az eredmény reláció a kiválasztott k attribútumhoz tartozó oszlopokat fogja tartalmazni, viszont az összes sorból. Mivel az eredmény is egy reláció, nem lehet két azonos sor a vetítés eredményében, az azonos sorokból csak egy marad az eredmény relációban.

Jelölés: πA1, A2,…,Ak (R) (pi)

pl. πNév, Fizetés (Alkalmazottak)

Megfelel annak, hogy:

SELECT DISTINCT attr1, attr2, … attrk

FROM R

29
New cards

Mi a Descartes szorzat relációs algebrai művelet?

Ha adottak az R1 és R2 relációk, a két reláció Descartes szorzata azon párok halmaza, amelyeknek első eleme az R1 tetszőleges eleme, a második pedig az R2 egy eleme. Az eredményreláció sémája az R1 és R2 sémájának egyesítése.

Jelölés: R1 × R2

pl. lásd kép

Megfelel annak, hogy:

SELECT *

FROM R1, R2

<p>Ha adottak az <strong>R1</strong> és <strong>R2</strong> relációk, a két reláció Descartes szorzata azon párok halmaza, amelyeknek első eleme az <strong>R1</strong> tetszőleges eleme, a második pedig az <strong>R2</strong> egy eleme. Az eredményreláció sémája az <strong>R1</strong> és <strong>R2</strong> sémájának egyesítése.</p><p>Jelölés: <strong>R1</strong> <strong>×</strong> <strong>R2</strong></p><p>pl. lásd kép</p><p>Megfelel annak, hogy:</p><pre><code>SELECT *

FROM R1, R2</code></pre><p></p>
30
New cards

Mi az Egyesítés relációs algebrai művelet?

Ha adottak az R1 és R2 relációk, R1 és R2 attribútumainak a száma megegyezik, és ugyanabban a pozícióban levő attribútumnak ugyanaz az értékhalmaza, a két reláció egyesítése tartalmazni fogja R1 és R2 sorait. Az egyesítésben egy elem csak egyszer szerepel, még akkor is, ha jelen van R1- és R2-ben is.

Jelölés: R1 ∪ R2

pl. lásd kép

<p>Ha adottak az <strong>R1</strong> és <strong>R2</strong> relációk, <strong>R1</strong> és <strong>R2</strong> attribútumainak a száma megegyezik, és ugyanabban a pozícióban levő attribútumnak ugyanaz az értékhalmaza, a két reláció egyesítése tartalmazni fogja <strong>R1</strong> és <strong>R2</strong> sorait. Az egyesítésben egy elem csak egyszer szerepel, még akkor is, ha jelen van <strong>R1</strong>- és <strong>R2</strong>-ben is.</p><p>Jelölés: <strong>R1 ∪ R2</strong></p><p>pl. lásd kép</p>
31
New cards

Mi a Különbség relációs algebrai művelet?

Ha adottak az R1 és R2 relációk, R1 és R2 attribútumainak a száma megegyezik és ugyanabban a pozícióban levő attribútumnak ugyanaz az értékhalmaza, a két reláció különbsége azon sorok halmaza, amelyek R1-ben szerepelnek és R2-ben nem.

Jelölés: R1 - R2

pl. lásd kép

<p>Ha adottak az <strong><em>R</em>1</strong> és <strong><em>R</em>2</strong> relációk, <strong><em>R</em>1</strong> és <strong><em>R</em>2</strong> attribútumainak a száma megegyezik és ugyanabban a pozícióban levő attribútumnak ugyanaz az értékhalmaza, a két reláció különbsége azon sorok halmaza, amelyek <strong><em>R</em>1</strong>-ben szerepelnek és <strong><em>R</em>2</strong>-ben nem.</p><p>Jelölés: <strong>R1 - R2</strong></p><p>pl. lásd kép</p>
32
New cards

Mi a Metszet relációs algebrai művelet?

Legyenek az R1 és R2 relációk, a két reláció metszete:

R1 ∩ R2 = R1 - (R1 - R2)

Jelölés: R1 ∩ R2

pl. Hasonló a különbséghez de a közös elemek tűnnek el

33
New cards

Mi a Théta-összekapcsolás (theta-join) relációs algebrai művelet?

Legyenek az R1 és R2 relációk. A Théta-összekapcsolás során az R1 és R2 relációk Descartes szorzatából kiválasztjuk azon sorokat, melyek eleget tesznek a θ feltételnek, vagyis: R1 ⋈θ R2 = σθ(R1 × R2) (a theta alulírott kéne legyen, de azt nem lehet)

Jelölés: R1 ⋈θ R2 (theta)

Pl. lásd kép

Megfelel annak, hogy:

SELECT *

FROM R1, R2

WHERE theta_feltetelek

<p>Legyenek az <strong><em>R</em>1</strong> és <strong><em>R</em>2</strong> relációk. A Théta-összekapcsolás<em> </em>során az <strong><em>R</em>1</strong> és <strong><em>R</em>2</strong> relációk Descartes szorzatából kiválasztjuk azon sorokat, melyek eleget tesznek a <strong>θ</strong> feltételnek, vagyis: <strong><em>R1 </em>⋈θ R2 = σθ(R1 × R2) </strong><em>(a theta alulírott kéne legyen, de azt nem lehet)</em></p><p><em>Jelölés: </em><strong><em>R1 </em>⋈θ R2 </strong>(theta)</p><p>Pl. lásd kép</p><p>Megfelel annak, hogy:</p><pre><code>SELECT *

FROM R1, R2

WHERE theta_feltetelek</code></pre><p></p>
34
New cards

Mi a Természetes összekapcsolás (natural join) relációs algebrai művelet?

Legyenek az R1 és R2 relációk. A természetes összekapcsolás művelete akkor alkalmazható, ha az R1 és R2 relációknak egy vagy több közös attribútuma van. Legyen B az R1, illetve C az R2 reláció attribútumainak a halmaza, a közös attribútumok pedig: BC = {A1, A2, …, Ap}. A természetes összekapcsolást a következő képlettel fejezhetjük ki:

R1 ⋈ R2 = πBC(R1 ⋈(R1.A1 = R2.A1)^…(R1.Ap = R2.Ap) R2)

Jelölés: R1 ⋈ R2

pl. Az összes sima join

Megfelel annak, hogy:

SELECT *

FROM R1

JOIN R2 ON R1.A1 = R2.A1 AND … R1.Ap = R2.Ap

vagy

SELECT *

FROM R1, R2

WHERE R1.A1 = R2.A1 AND … R1.Ap = R2.Ap

35
New cards

Mi a Átnevezés (rename) relációs algebrai művelet?

Legyen R(A1, A2, …, An) egy reláció, az átnevezés operátor: ρS(B1, B2, …, Bn) (R) az R relációt S relációvá nevezi át, az attribútumokat pedig balról jobbra B1, B2, …, Bn-né. Ha az attribútum neveket nem akarjuk megváltoztatni, akkor ρS (R) operátort használunk.

Jelölés: ρS(…) (R) (rho)

Pl. sima átnevezés amit a select-be írunk

Megfelel annak (ha mindent átnevezünk), hogy:

SELECT A1 AS B1, …, An AS Bn

FROM R AS S

36
New cards

Mi a Hányados (quotient) relációs algebrai művelet?

{…nagyon hosszú érthetetlen magyarázat… akit nagyon érdekel olvassa el…ha nem akkor a példába jól látszik}

Jelölés: R1 DIVIDE BY R2

pl. lásd kép

<p>{…nagyon hosszú érthetetlen magyarázat… akit nagyon érdekel olvassa el…ha nem akkor a példába jól látszik}</p><p>Jelölés: <strong><em>R</em>1 DIVIDE BY <em>R</em>2</strong></p><p>pl. lásd kép</p>
37
New cards

Melyek az SQL nyelv logikai műveletei és ezek eredményei? Mi a végrehajtási sorrend?

AND, OR és NOT

A NOT megelőzi az AND és OR műveletet, az AND pedig az OR-t.

Egy kifejezés logikai értéke lehet: igaz (1), hamis (0), ismeretlen (unknown) (0.5). Egy kifejezés logikai értéke akkor ismeretlen, ha a kifejezésben szereplő valamelyik operandus értéke NULL.

<p><strong>AND</strong>, <strong>OR</strong> és <strong>NOT</strong></p><p>A <strong>NOT</strong> megelőzi az <strong>AND</strong> és <strong>OR</strong> műveletet, az <strong>AND</strong> pedig az <strong>OR</strong>-t.</p><p>Egy kifejezés logikai értéke lehet: <strong>igaz (1), hamis (0), ismeretlen (unknown) (0.5)</strong>. Egy kifejezés logikai értéke akkor ismeretlen, ha a kifejezésben szereplő valamelyik operandus értéke NULL.</p>
38
New cards

Mire való a LIKE kulcsszó? Milyen szerepet töltenek be a “%” és “_” szimbólumok?

A LIKE kulcsszót karakterláncok összehasonlítása esetén használhatjuk, hogy a karakterláncokat egy mintával hasonlítsunk össze a következőképpen:

k LIKE m

ahol k egy karakterlánc és m egy minta. A mintában használhatjuk a % és _ karaktereket. A % jelnek a k-ban megfelel bármilyen karakter 0 vagy nagyobb hosszúságú sorozata. Az _ jelnek megfelel egy akármilyen karakter a k-ból.

pl.

SELECT *

FROM Alkalmazottak

WHERE Név LIKE ‘Kovács%’;

39
New cards

Mire való a BETWEEN kulcsszó?

A BETWEEN kulcsszó segítségével megadunk egy intervallumot, és azt vizsgáljuk, hogy adott oszlop, mely értéke esik a megadott intervallumba.

pl.

SELECT Név

FROM Alkalmazottak

WHERE Fizetés BETWEEN 300 AND 500;

40
New cards

Mire való az IN kulcsszó?

Az IN operátor után megadunk egy értéklistát, és azt vizsgáljuk, hogy az adott oszlop mely mezőinek értéke egyezik az adott lista valamelyik elemével.

pl.

SELECT Név
FROM Diákok
WHERE CsopKod IN ('531', '532', '631');

41
New cards

k darab reláció összekapcsolása esetén hány join feltétel szükséges?

Ha az összekapcsolandó relációk száma k, és minden két-két relációnak egy-egy közös attribútuma van, akkor a join feltételek száma k–1.

42
New cards

Mit nevezünk sorváltozónak? Mikor használatos? Mire kell odafigyelni ennek használatakor?

A FROM záradékban szereplő R relációhoz hozzárendelhetünk egy másodnevet, melyet sorváltozónak nevezünk.

Sorváltozót akkor használunk, ha rövidebb vagy más nevet akarunk adni a relációnak, illetve ha a FROM után kétszer is ugyanaz a reláció szerepel.

Ha használtunk másodnevet, akkor az adott lekérdezésben azt kell használjuk.

pl.

SELECT Alk1.Név AS Név1, Alk2.Név AS Név2
FROM Alkalmazottak AS Alk1, Alkalmazottak AS Alk2
WHERE Alk1.Cím = Alk2.Cím
AND Alk1.Név < Alk2.Név;

43
New cards

Milyen halmazműveleteket támogat az SQL nyelv?

  • UNION - egyesítés

    (SELECT Név, UtcaSzám
    FROM Szállítók
    WHERE Helység = 'Kolozsvár')
    UNION
    (SELECT Név, UtcaSzám
    FROM Vevők
    WHERE Helység = 'Kolozsvár');
  • INTERSECT - metszet

    (SELECT SzemSzám, Név FROM Alkalmazottak)
    EXCEPT
    (SELECT SzemSzám, Név FROM Managerek, Alkalmazottak
    WHERE Managerek.SzemSzám = Alkalmazottak.SzemSzám);
  • EXCEPT - különbség (helyettesíthető NOT EXISTS vagy NOT IN operátorokkal)

    (SELECT SzemSzám FROM Alkalmazottak)
    EXCEPT
    (SELECT SzemSzám FROM Managerek);

44
New cards

Mire való a DISTINCT kulcsszó?

A SELECT parancs eredményében szerepelhet két vagy több teljesen azonos sor, viszont van lehetőség ezen ismétlődések megszüntetésére.

A SELECT kulcsszó után a DISTINCT szó segítségével kérhetjük az azonos sorok megszüntetését.

45
New cards

Milyen esetben vonja össze a rendszer az ismétlődéseket? Hogyan lehet ezt meggátolni?

A SELECT paranccsal ellentétben, a UNION, EXCEPT és INTERSECT halmazelméleti műveletek megszüntetik az ismétlődéseket. Ha nem szeretnénk, hogy az ismétlődő sorok eltűnjenek, a műveletet kifejező kulcsszó után az ALL kulcsszót kell használjuk.

pl.

(SELECT Név FROM Tanárok)
UNION ALL
(SELECT Név FROM Diákok);

46
New cards

Milyen összesítőfüggvények léteznek az SQL nyelvben?

  • SUM, megadja az oszlop értékeinek az összegét

  • AVG, megadja az oszlop értékeinek a átlagértékét

  • MIN, megadja az oszlop értékeinek a minimumát

  • MAX, megadja az oszlop értékeinek a maximumát

  • COUNT, megadja az oszlopban szereplő értékek számát, beleértve az ismétlődéseket is, ha azok nincsenek megszüntetve a DISTINCT kulcsszóval

47
New cards

A COUNT összesítőfüggvény milyen formákkal rendelkezik? (Mire lehet mehívni?)

  • COUNT(*) - az eredmény-reláció kardinalitását (az összes sor számát) adja vissza

  • COUNT(oszlop_név) - azon sorok számát adja vissza, ahol oszlop_név értéke NULL-tól különböző érték

  • COUNT(DISTINCT oszlop_név) - megszámolja, hány különböző értéke van az oszlop_név mezőnek.

48
New cards

A GROUP BY használatakor, mire kell odafigyelni a SELECT után megadott attribútumok esetében?

A GROUP BY után megadjuk a csoportosító attribútumok (oszlopok) listáját, melyek azonos értéke szerint történik a csoportosítás. Csak ezeket az oszlopokat válogathatjuk ki a SELECT kulcsszó után és azokat, melyekre valamilyen összesítő függvényt alkalmazunk.

Ha a SELECT kulcsszó után olyan oszlopot választunk ki, melynek értékei különbözőek a lekérdezett relációban, a lekérdezés processzor nem tudja, hogy a különböző értékekből melyiket válassza az eredménybe.

A SELECT parancs megengedi viszont, hogy a csoportosító attribútum hiányozzon a vetített attribútumok listájából.

<p>A <strong>GROUP BY</strong> után megadjuk a csoportosító attribútumok (oszlopok) listáját, melyek azonos értéke szerint történik a csoportosítás. Csak ezeket az oszlopokat válogathatjuk ki a <strong>SELECT</strong> kulcsszó után és azokat, melyekre valamilyen összesítő függvényt alkalmazunk.</p><p>Ha a <strong>SELECT</strong> kulcsszó után olyan oszlopot választunk ki, melynek értékei különbözőek a lekérdezett relációban, a lekérdezés processzor nem tudja, hogy a különböző értékekből melyiket válassza az eredménybe.</p><p>A <strong>SELECT</strong> parancs megengedi viszont, hogy a csoportosító attribútum hiányozzon a vetített attribútumok listájából.</p>
49
New cards

Hogyan tudunk feltételeket szabni a csoportosítás után?

A csoportosítás után kapott eredmény reláció soraira a HAVING kulcsszót használva egy feltételt alkalmazhatunk. Ha csoportosítás előtt szeretnénk kiszűrni sorokat, azokra a WHERE feltételt lehet alkalmazni. A HAVING kulcsszó utáni feltételben azon oszlopok szerepelhetnek, melyekre a SELECT parancsban összesítő függvényt alkalmaztunk.

pl.

SELECT RészlegID, AVG(Fizetés)
FROM Alkalmazottak
GROUP BY RészlegID
HAVING AVG(Fizetés) > 500
ORDER BY AVG(Fizetés);

50
New cards

Hogyan valósítható meg és hogyan működik egy alkérés?

Alkérdést tartalmazó SELECT parancs általános formája a következő:

SELECT attribútum_lista
FROM tábla
WHERE kifejezés operátor
	(SELECT attribútum_lista
		FROM tábla);

A rendszer először az alkérdést hajtja végre és annak eredményét használja a „fő” lekérdezés, kivéve a korrelált alkérdéseket.

51
New cards

Többsoros alkérések esetén, milyen operátorokkal tudunk feltételeket alkalmazni az eredményen?

A többsoros alkérdések esetén a WHERE záradék feltétele olyan operátorokat tartalmazhat, amelyeket egy R relációra alkalmazhatunk, ebben az esetben az eredmény logikai érték lesz. Bizonyos operátoroknak egy skaláris s értékre is szükségük van. Ilyen operátorok:

  • EXISTS R – feltétel, mely akkor és csak akkor igaz, ha R nem üres.

  • s IN R, mely akkor igaz, ha s egyenlő valamelyik R-beli értékkel. Az s NOT IN R akkor igaz, ha s egyetlen R-beli értékkel sem egyenlő.

  • s > ALL R, mely akkor igaz, ha s nagyobb, mint az R reláció minden értéke, ahol az R relációnak csak egy oszlopa van. A > operátor helyett bármelyik összehasonlítási operátort használhatjuk. Az s <> ALL R eredménye ugyanaz, mint az s NOT IN R feltételé.

  • s > ANY R, mely akkor igaz, ha s nagyobb az R egyoszlopos reláció legalább egy értékénél. A > operátor helyett akármelyik összehasonlítási operátort használhatjuk.

52
New cards

Mit nevezünk korrelált alkérésnek?

A beágyazott alkérdéseket úgy is lehet használni, hogy az alkérdés többször is kiértékelésre kerül. Az alkérdés többszöri kiértékelését egy, az alkérdésen kívüli sorváltozóval érjük el. Az ilyen típusú alkérdést korrelált alkérdésnek nevezzük.

pl.

SELECT Név, CsopKod
FROM Diákok D1
WHERE Átlag = 10 AND NOT EXISTS
	(SELECT D2.BeiktatásiSzám
		FROM Diákok D2
		WHERE D1.CsopKod = D2.CsopKod
		AND D1.BeiktatásiSzám <> D2.BeiktatásiSzám
		AND D2.Átlag = 10);

A lekérdezés kiértékelése során a D1 sorváltozó végigjárja a Diákok relációt. Minden sorra a D1-ből a D2 sorváltozó segítségével ismét végigjárjuk a Diákok relációt.

53
New cards

Mit eredményez az OUTER kulcsszó használata egy JOIN esetén? Milyen változatai vannak?

Az OUTER JOIN kulcsszó segítségével azon sorok is megjelennek az eredményben, melyek értéke a közös attribútumra nem található meg a másik táblában, vagyis a lógó sorok, melyekben a másik tábla attribútumai NULL értékeket kapnak.

R LEFT OUTER JOIN S ON R.X = S.X

Az eredmény tartalmazza a bal oldali R reláció összes sorát, azokat is, amelyek esetében az X attribútumhalmaz értéke nem létezik az S reláció X értékei között.

R RIGHT OUTER JOIN S ON R.X = S.X

Az eredmény a jobb oldali S reláció összes sorát tartalmazza, azokat is amelyek esetében az X attribútumhalmaz értéke nem létezik az R reláció X értékei között.

R FULL OUTER JOIN S ON R.X = S.X

Az eredmény azon sorokat tartalmazza, melyek esetében a közös attribútum értéke megegyezik mindkét relációban és mind a bal oldali R reláció lógó sorait, mind az S reláció lógó sorait magában foglalja.

<p>Az <strong>OUTER JOIN</strong> kulcsszó segítségével azon sorok is megjelennek az eredményben, melyek értéke a közös attribútumra nem található meg a másik táblában, vagyis a lógó sorok, melyekben a másik tábla attribútumai <strong>NULL</strong> értékeket kapnak.</p><pre><code>R LEFT OUTER JOIN S ON R.X = S.X</code></pre><p><em>Az eredmény tartalmazza a bal oldali </em><strong><em>R</em></strong><em> reláció összes sorát, azokat is, amelyek esetében az </em><strong><em>X</em></strong><em> attribútumhalmaz értéke nem létezik az </em><strong><em>S</em></strong><em> reláció </em><strong><em>X</em></strong><em> értékei között.</em></p><pre><code>R RIGHT OUTER JOIN S ON R.X = S.X</code></pre><p><em>Az eredmény a jobb oldali </em><strong><em>S</em></strong><em> reláció összes sorát tartalmazza, azokat is amelyek esetében az </em><strong><em>X</em></strong><em> attribútumhalmaz értéke nem létezik az </em><strong><em>R</em></strong><em> reláció </em><strong><em>X</em></strong><em> értékei között. </em></p><pre><code>R FULL OUTER JOIN S ON R.X = S.X</code></pre><p><em>Az eredmény azon sorokat tartalmazza, melyek esetében a közös attribútum értéke megegyezik mindkét relációban és mind a bal oldali </em><strong><em>R</em></strong><em> reláció lógó sorait, mind az </em><strong><em>S</em></strong><em> reláció lógó sorait magában foglalja.</em></p>
54
New cards

Milyen sorrendben hajtódnak végre az SQL záradékok?

  1. FROM és/vagy JOIN

  2. WHERE

  3. GROUP BY

  4. HAVING

  5. SELECT

  6. DISTINCT

  7. ORDER BY

  8. LIMIT

55
New cards

Hogyan kell egy táblát létrehozni SQL nyelvben?

pl. (A legfontosabb kulcsszavakkal)

CREATE TABLE Employees (
    EmpID INT PRIMARY KEY,
    EmpNum INT UNIQUE,
    FirstName VARCHAR(50) NOT NULL,
    LastName VARCHAR(50) NULL,
    Age INT CHECK (Age >= 18 AND Age <= 65),
    DeptID INT,
    Salary DECIMAL(10,2) DEFAULT 3000.00,
    CONSTRAINT FK_Dept FOREIGN KEY (DeptID) REFERENCES Departments(DeptID)
);

56
New cards

Hogyan kell értékeket beszúrni egy táblába SQL nyelvben?

pl.

INSERT INTO Employees (EmpID, EmpNum, FirstName, LastName, Age, DeptID)
VALUES
    (100, 2001, 'János', 'Kiss', 30, 1),
    (101, 2002, 'Anna', 'Nagy', 25, 2);

57
New cards

Hogyan kell értékeket frissíteni SQL nyelvben?

pl.

UPDATE Employees
SET Salary = 3500.00
WHERE EmpID = 100;

58
New cards

Hogyan kell sorokat törölni SQL nyelvben?

pl.

DELETE FROM Employees
WHERE EmpID = 101;

59
New cards

Hogyan kell egy meglévő táblát módosítani SQL nyelvben?

pl.

-- Új oszlop hozzáadása
ALTER TABLE Employees
ADD Email VARCHAR(100) UNIQUE;

-- Egy meglévő oszlop módosítása
ALTER TABLE Employees
ALTER COLUMN Age INT NULL;

-- Egy megszorítás (CHECK) hozzáadása
ALTER TABLE Employees
ADD CONSTRAINT CHK_Salary CHECK (Salary >= 2000);

-- Egy megszorítás (UNIQUE) eltávolítása
ALTER TABLE Employees
DROP CONSTRAINT CHK_Salary;

-- Egy oszlop törlése
ALTER TABLE Departments
DROP COLUMN DeptLocation;

60
New cards

Hogyan lehet limitálni a sorok számát egy lekérdezésben?

A TOP kulcsszó arra szolgál SQL-ben, hogy lekérdezések eredményében korlátozzuk a visszaadott sorok számát.

pl.

-- Az első 3 sort adja vissza
SELECT TOP 3 * FROM vasarlok;

-- Az első 50%-át adja vissza
SELECT TOP 50 PERCENT * FROM vasarlok;