<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hu">
	<id>https://vik.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gollam</id>
	<title>VIK Wiki - Felhasználó közreműködései [hu]</title>
	<link rel="self" type="application/atom+xml" href="https://vik.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gollam"/>
	<link rel="alternate" type="text/html" href="https://vik.wiki/Speci%C3%A1lis:Szerkeszt%C5%91_k%C3%B6zrem%C5%B1k%C3%B6d%C3%A9sei/Gollam"/>
	<updated>2026-05-18T01:31:55Z</updated>
	<subtitle>Felhasználó közreműködései</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://vik.wiki/index.php?title=Adatb%C3%A1zisok_-_Rel%C3%A1ci%C3%B3s_lek%C3%A9rdez%C3%A9sek_optimaliz%C3%A1l%C3%A1sa_gyakorlat&amp;diff=166253</id>
		<title>Adatbázisok - Relációs lekérdezések optimalizálása gyakorlat</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Adatb%C3%A1zisok_-_Rel%C3%A1ci%C3%B3s_lek%C3%A9rdez%C3%A9sek_optimaliz%C3%A1l%C3%A1sa_gyakorlat&amp;diff=166253"/>
		<updated>2013-05-24T07:09:29Z</updated>

		<summary type="html">&lt;p&gt;Gollam: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Az aktuális tematika és feladatsor elérhető a [https://www.db.bme.hu/targyak/adatbazisok/gyakorlatok/5-gyakorlat tárgyhonlapon].&lt;br /&gt;
&lt;br /&gt;
==Feladatok==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. feladat: (bemelegítés, jelölések, katalógusinformációk és alap algoritmusok)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Egy bank nyilvántartásából &amp;lt;math&amp;gt; \text{ACCOUNT(BRANCH-NAME, BALANCE,} \dots\text{)}&amp;lt;/math&amp;gt; szeretnénk megtudni a budapesti számlák adatait. Ezeket tudjuk a relációról:&lt;br /&gt;
* &amp;lt;math&amp;gt; f_\text{ACCOUNT} = 20 &amp;lt;/math&amp;gt; (Az ACCOUNT reláció 20 rekordja fér bele egy lemezblokkba)&lt;br /&gt;
* &amp;lt;math&amp;gt; V(\text{BRANCH-NAME}, \text{ACCOUNT}) = 50 &amp;lt;/math&amp;gt; (50 különböző fiók-név létezik az ACCOUNT relációban)&lt;br /&gt;
* &amp;lt;math&amp;gt; V(\text{BALANCE}, \text{ACCOUNT}) = 500 &amp;lt;/math&amp;gt; (500 különboző értékű számla van az ACCOUNT relációban)&lt;br /&gt;
* &amp;lt;math&amp;gt; n_\text{ACCOUNT} = 10 000 &amp;lt;/math&amp;gt; (Az ACCOUNT relációnak 10 000 eleme van)&lt;br /&gt;
* &amp;lt;math&amp;gt; P &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Kérdések:&lt;br /&gt;
* 1. Adjuk meg a feladatot megoldó relációalgebrai lekérdezést.&lt;br /&gt;
* 2. Mennyi minimális/maximális/átlagos költség, ha lineáris keresést alkalmazunk? Mitől függ, hogy mennyi?&lt;br /&gt;
* 3. Tfh. a rekordok a fiók szerint rendezetten tárolódnak. Mennyi a bináris keresés költsége várható értékben?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. feladat: a join nagyságának becslése&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Adott két relációs sémánk, A BETETES és az UGYFEL. Illesszük a két (sémára illeszkedő) relációt a mindkettőben szereplő ÜGYFÉL_NÉV attribútúm szerint. Tegyük fel, hogy a két relációról a következő katalógusinformációk állnak rendelkezésre:&lt;br /&gt;
* &amp;lt;math&amp;gt; n_{\text{UGYFEL}} = 10 000 &amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt; f_{\text{UGYFEL}} = 24; b_{\text{UGYFEL}} = ? &amp;lt;/math&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
* &amp;lt;math&amp;gt; n_{\text{BETETES}} = 5000 &amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt; f_{\text{BETETES}} = 50; b_{\text{BETETES}} = ? &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; V(\text{UGYFEL\_NEV}, \text{BETETES}) = 2500 &amp;lt;/math&amp;gt;, azaz átlagban minden felhasználónak két számlája van.&lt;br /&gt;
Mekkora a BETÉTES és az ÜGYFÉL természetes illesztésének mérete, ha egyetlen közös attribútumunk az ÜGYÉL_NÉV?&lt;br /&gt;
Általánosítsuk a feladatot az alábbi esetekre (R és S az illesztendő relációk sémái, természetes illesztéssel)!&lt;br /&gt;
* 1. &amp;lt;math&amp;gt; R \cap S = \emptyset &amp;lt;/math&amp;gt;.&lt;br /&gt;
* 2. &amp;lt;math&amp;gt; R \cap S &amp;lt;/math&amp;gt; az R reláció kulcsa.&lt;br /&gt;
* 3. &amp;lt;math&amp;gt; R \cap S \neq \emptyset &amp;lt;/math&amp;gt; egyik relációs sémának sem kulcsa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. feladat: Hash-join költsége&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Számítsd ki a &amp;quot;hash join&amp;quot; algoritmussal végrehajtott join költségét, ha vödrös hashelést alkalmazunk! A hash függvény egyenletes eloszlással képezi le a kulcsokat az értékkészletére. Hogyan érdemes a join-t végrehajtani? A blokkméret nettó 2000 byte, a hash tábla szokás szerint elfér a memóriában.&lt;br /&gt;
* 1. reláció: 120 000 rekord, rekordhossz 150 byte, kulcs 12 byte, mutató 5 byte, a hash tábla mérete 10 000 byte.&lt;br /&gt;
* 2. reláció: 10 000 rekord, rekordhossz 250 byte, kulcs 15 byte, mutató 8 byte, a hash tábla mérete 1000 byte.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. feladat: index-alapú illesztés&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Számítsd ki az illesztés költségét, ha elsődleges, B*-fa struktúrájú indexeket használhatunk a join attribútumok sziernti rekordelérésre! A blokkméret nettó 4000 byte. Melyik reláció legyen a külcső hurokban? Hányszoros válszidőt kapunk, ha az optimalizáló rosszul dönt?&lt;br /&gt;
* 1. reláció: 140 000 rekord, rekordhossz 140 byte, kulcs 10 byte, mutató 4 byte.&lt;br /&gt;
* 2. reláció: 15 000 rekord, rekordhossz 300 byte, kulcs 6 byte, mutató 4 byte.&lt;br /&gt;
&lt;br /&gt;
==Gondolkodtató kérdések==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Relacióanalízis feladat: A relációs lekérdezések költség alapú optimalizációjakor az ekvivalens alakokat előállító szabályoknak nincs jelentősége, mert csak a heurisztikus (vagy szbály alapú) optimalizálás alapszik átalakítási szabályokon.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Vizsgáld meg a blokkalapú egymásba ágyazott ciklikus illesztés és az egymásba ágyazott ciklikus illesztés algoritmusokban: a legbelső ciklusmag hányszor fut le worst-case esetben. Vesd össze az eredményt a két algorimtuss worst-case költségével, és magyarázd meg a tapasztaltakat.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. A természetes illesztésnél előbb &amp;quot;érdemes&amp;quot; végrehajtani az egy relációt érintő szelekció műveleteket, és ezt meg is tehetjük: ekvivalens algebrai alakot kapunk, ha lentebb (az alaprelációk irányába) süllyesztjük a szelekciókat. Megtehető-e ugyanez külső illesztés esetén? Mitől függ, hogy megtehető-e?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Lehet-e értelme olyan alapos költségbecslést és optimalizációt végezni, amelynek a kölstsége eléri/meghaladja a lekérdezés legköltségesebb szóba jövő végrehajtási módja költségét?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Melyek azoka műveletek, ahol elsődleges index használata olcsóbb végrehajtást eredményez, mint egy egyszerű index használata?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6. Mutass példát arra, amikor az elsődleges index használata ront a teljesítményen!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7. Mutass példát, amikor a lineáris keresés olcsóbb, mint az indexelt keresés! Próbáld általánosan megfogalmazi az eredményt!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8. Mi a biztos jele annak, hogy adatbázisunkból a szekvenciálisan generált ID nevű, elsődleges kulcsmezőt törölni kell? Mit vesztünk azzal, ha nem töröljük?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9. A relációs lekérdezések végrehajtási folyamatában szereplő optimalizálás bemenete miért relációalgebrajellegű kifejezés, ahelyett hogy valamilyen kalkulus-kifejezés lenne?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10. Az &amp;quot;index alapú illesztés&amp;quot; feladatban a relációs sémák kulcsait különböző hosszon tároltuk, azonban a természetes illesztés miatt rajtuk egyenlőségvizsgálatot kellett végezni. Lhetséges ilyen eset? Mutass példát rá, ha lehetséges, és indokold, ha nem!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11. Az &amp;quot;index alapú illeszteés&amp;quot; feladatban erre vonatkozó információ hiányában feltételeztük, hogy az indexelt kulcsok egyedi értékűek a sémára illeszkedő relációban. Hogyan változik a join költsége/memóriaigénye, ha az egyes relációkban:&#039;&#039;&#039;&lt;br /&gt;
* 1. SC(Kulcs, R) &amp;lt; &amp;lt;math&amp;gt; f_R &amp;lt;/math&amp;gt;?&lt;br /&gt;
* 2. SC(Kulcs, R) tetszőleges?&lt;br /&gt;
&lt;br /&gt;
-- [[KotelesGergo|soyer]] - 2008.11.18.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infoalap]]&lt;/div&gt;</summary>
		<author><name>Gollam</name></author>
	</entry>
</feed>