<?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=S%C3%A1ndor+M%C3%A1ty%C3%A1s+M%C3%A1rton</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=S%C3%A1ndor+M%C3%A1ty%C3%A1s+M%C3%A1rton"/>
	<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/S%C3%A1ndor_M%C3%A1ty%C3%A1s_M%C3%A1rton"/>
	<updated>2026-04-28T13:31:03Z</updated>
	<subtitle>Felhasználó közreműködései</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://vik.wiki/index.php?title=M%C3%A9rn%C3%B6kinformatikus_BSc&amp;diff=188420</id>
		<title>Mérnökinformatikus BSc</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=M%C3%A9rn%C3%B6kinformatikus_BSc&amp;diff=188420"/>
		<updated>2016-03-03T13:48:10Z</updated>

		<summary type="html">&lt;p&gt;Sándor Mátyás Márton: /* A BSc képzés tárgyai (2014, vagy azután kezdett hallgatóknak) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Hasznos linkek ==&lt;br /&gt;
&lt;br /&gt;
A következő linkek a hivatalos egyetemi és kari weboldalakra mutatnak. Minden információ, ami a wikiről vagy egyéb forrásból származik, csupán tájékoztató jellegű.&lt;br /&gt;
&lt;br /&gt;
* [http://www.bme.hu/ BME], [http://www.vik.bme.hu/ VIK], [http://kth.bme.hu/ KTH]&lt;br /&gt;
* &#039;&#039;&#039;[https://www.vik.bme.hu/hallgatoknak/ Általános képzési információk a VIK.BME oldalon]&#039;&#039;&#039;, ebből pár fontosabb link:&lt;br /&gt;
** [http://kth.bme.hu/document/1401/original/2015_2016_tanev_idobeosztasa_3.PDF A 2015-16-os tanév időbeosztása (KTH)], [https://www.vik.bme.hu/page/856/ kari kiegészítés]&lt;br /&gt;
** [https://www.vik.bme.hu/document/667/original/zh15_16_tavasz-info.pdf A számonkérések ütemezése (2016 tavasz)]&lt;br /&gt;
** [https://portal.vik.bme.hu/kepzes/targyak/ Tantárgyi adatlapok]&lt;br /&gt;
** [https://www.vik.bme.hu/hallgatoknak/gyakorlat/ Szakmai gyakorlat]&lt;br /&gt;
* &#039;&#039;&#039;[https://www.vik.bme.hu/hallgatoknak/alapkepzes/info/ Mérnök informatikus szak információi a VIK.BME oldalon]&#039;&#039;&#039;, ebből pár fontosabb link:&lt;br /&gt;
** [https://www.vik.bme.hu/page/52/ Mintatanterv (2013 vagy azelőtt kezdett hallgatóknak)]&lt;br /&gt;
** [http://www.vik.bme.hu/page/800/ Mintatanterv (2014 vagy azután kezdett hallgatóknak)]&lt;br /&gt;
** [https://www.vik.bme.hu/files/00002166.pdf Előtanulmányi rend (2013 vagy azelőtt kezdett hallgatóknak)]&lt;br /&gt;
** [https://www.vik.bme.hu/document/105/original/MI_BSc_elotanulmanyi_140624.pdf Előtanulmányi rend (2014 vagy azután kezdett hallgatóknak)]&lt;br /&gt;
** [https://www.vik.bme.hu/kepzes/alapkepzes/altalanos/287.html Keresztféléves tantárgymeghirdetések]&lt;br /&gt;
** [https://www.vik.bme.hu/kepzes/alapkepzes/altalanos/500.html Első féléves speciális követelmények]&lt;br /&gt;
** [https://www.vik.bme.hu/files/00003106.pdf A BSc képzés programja]&lt;br /&gt;
** [https://www.vik.bme.hu/files/00002023.pdf Szakirányok]&lt;br /&gt;
&lt;br /&gt;
== A BSc képzés tárgyai (2014, vagy azután kezdett hallgatóknak)==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-spacing: 1em;&amp;quot;&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
; 1. félév&lt;br /&gt;
: [[Analízis_I.|Analízis 1]]&lt;br /&gt;
: [[A_programozás_alapjai_I.|A programozás alapjai 1]]&lt;br /&gt;
: [[Bevezetés_a_számításelméletbe_I.|Bevezetés a számításelméletbe 1]]&lt;br /&gt;
: [[Bevezető_Fizika|Bevezető fizika]]&lt;br /&gt;
: [[Bevezető_Matematika|Bevezető matematika]]&lt;br /&gt;
: [[Digitális_technika|Digitális technika]]&lt;br /&gt;
: [[Fizika_I.|Fizika 1i]]&lt;br /&gt;
: [[Mérnök_leszek|Mérnök leszek]]&lt;br /&gt;
; 2. félév&lt;br /&gt;
: [[Analízis_II.|Analízis 2]]&lt;br /&gt;
: [[Analízis_szigorlat_informatikusoknak|Analízis szigorlat informatikusoknak]]&lt;br /&gt;
: [[A_programozás_alapjai_II.|A programozás alapjai 2]]&lt;br /&gt;
: [[Bevezetés_a_számításelméletbe_II.|Bevezetés a számításelméletbe 2]]&lt;br /&gt;
: [[Fizika_II.|Fizika 2i]]&lt;br /&gt;
: [[Rendszermodellezés|Rendszermodellezés]]&lt;br /&gt;
: [[Számítógép_architektúrák|Számítógép architektúrák]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
; 3. félév&lt;br /&gt;
: [[A_programozás_alapjai_3|A programozás alapjai 3]]&lt;br /&gt;
: [[Adatbázisok|Adatbázisok]]&lt;br /&gt;
: [[Kódolástechnika|Kódolástechnika]]&lt;br /&gt;
: [[Kommunikációs_hálózatok_1|Kommunikációs hálózatok 1]]&lt;br /&gt;
: [[Rendszerelmélet|Rendszerelmélet]]&lt;br /&gt;
: [[Szoftvertechnológia|Szoftvertechnológia]]&lt;br /&gt;
: [[Valószínűségszámítás|Valószínűségszámítás]]&lt;br /&gt;
; 4. félév&lt;br /&gt;
: [[Adatbázisok_laboratórium|Adatbázisok laboratórium]]&lt;br /&gt;
: [[Algoritmuselmélet|Algoritmuselmélet]]&lt;br /&gt;
: [[Kommunikációs_hálózatok_2|Kommunikációs hálózatok 2]]&lt;br /&gt;
: [[Menedzsment_és_vállalkozásgazdaságtan|Menedzsment és vállalkozásgazdaságtan]]&lt;br /&gt;
: [[Operációs_rendszerek|Operációs rendszerek]]&lt;br /&gt;
: [[Számítógépes_grafika|Számítógépes grafika]]&lt;br /&gt;
: [[Szoftver projekt laboratórium|Szoftver_projekt_laboratórium]]&lt;br /&gt;
: [[Szoftvertechnikák|Szoftvertechnikák]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
; 5. félév&lt;br /&gt;
: [[IT_eszközök_technológiája|IT eszközök technológiája]]&lt;br /&gt;
: [[Mesterséges_intelligencia|Mesterséges intelligencia]]&lt;br /&gt;
: [[Mikro-_és_makroökonómia|Mikro- és makroökonómia]]&lt;br /&gt;
: [[Üzleti_jog|Üzleti jog]]&lt;br /&gt;
: [[Webes_és_mobil_szoftverek|Webes és mobil szoftverek]]&lt;br /&gt;
; 6. félév&lt;br /&gt;
: [[Információs_rendszerek_üzemeltetése|Információs rendszerek üzemeltetése]]&lt;br /&gt;
: [[IT_biztonság|IT biztonság]]&lt;br /&gt;
; 7. félév&lt;br /&gt;
: [[Mérnök_informatikus_szakmai_gyakorlat|Szakmai gyakorlat]]&lt;br /&gt;
: [[Mérnök_informatikus_BSc_záróvizsga|Záróvizsga]]&lt;br /&gt;
|}&lt;br /&gt;
=== Szakirányok ===&lt;br /&gt;
&lt;br /&gt;
Még kidolgozás alatt.&lt;br /&gt;
&lt;br /&gt;
== A BSc képzés tárgyai (2013, vagy azelőtt kezdett hallgatóknak)==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-spacing: 1em;&amp;quot;&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
; 1. félév&lt;br /&gt;
: [[Analízis_I.|Analízis 1]]&lt;br /&gt;
: [[A_programozás_alapjai_I.|A programozás alapjai 1]] [[A_programozás_alapjai_I._(régi)|(régi)]]&lt;br /&gt;
: [[Bevezetés_a_számításelméletbe_I.|Bevezetés a számításelméletbe 1]]&lt;br /&gt;
: [[Bevezető_Fizika|Bevezető fizika]]&lt;br /&gt;
: [[Bevezető_Matematika|Bevezető matematika]]&lt;br /&gt;
: [[Digitális_technika_I.|Digitális technika 1]]&lt;br /&gt;
: [[Mikro-_és_makroökonómia|Mikro- és makroökonómia]]&lt;br /&gt;
: [[Szoftver_labor_I.|Szoftver laboratórium 1]]&lt;br /&gt;
; 2. félév&lt;br /&gt;
: [[Analízis_II.|Analízis 2]]&lt;br /&gt;
: [[A_programozás_alapjai_II.|A programozás alapjai 2]]&lt;br /&gt;
: [[Bevezetés_a_számításelméletbe_II.|Bevezetés a számításelméletbe 2]]&lt;br /&gt;
: [[Digitális_technika_II.|Digitális technika 2]]&lt;br /&gt;
: [[Fizika_I.|Fizika 1]]&lt;br /&gt;
: [[Menedzsment_és_vállalkozásgazdaságtan|Menedzsment és vállalkozásgazdaságtan]]&lt;br /&gt;
: [[Szoftver_labor_II.|Szoftver laboratórium 2]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
; 3. félév&lt;br /&gt;
: [[Fizika_II.|Fizika 2]]&lt;br /&gt;
: [[Kódolástechnika|Kódolástechnika]]&lt;br /&gt;
: [[Mérés_laboratórium_1.|Mérés laboratórium 1]]&lt;br /&gt;
: [[Számítógép_architektúrák|Számítógép-architektúrák]]&lt;br /&gt;
: [[Szoftver_labor_III.|Szoftver laboratórium 3]]&lt;br /&gt;
: [[Szoftvertechnológia|Szoftvertechnológia]]&lt;br /&gt;
: [[Üzleti_jog|Üzleti jog]]&lt;br /&gt;
: [[Valószínűségszámítás|Valószínűségszámítás]] [[Valószínűségszámítás_(régi)|(régi)]]&lt;br /&gt;
; 4. félév&lt;br /&gt;
: [[Algoritmuselmélet|Algoritmuselmélet]]&lt;br /&gt;
: [[Jelek_és_rendszerek|Jelek és rendszerek]]&lt;br /&gt;
: [[Mérés_laboratórium_2.|Mérés laboratórium 2]]&lt;br /&gt;
: [[Operációs_rendszerek|Operációs rendszerek]]&lt;br /&gt;
: [[Számítógép-hálózatok|Számítógép-hálózatok]]&lt;br /&gt;
: [[Szoftver_labor_IV.|Szoftver laboratórium 4]]&lt;br /&gt;
: [[Szoftvertechnikák|Szoftvertechnikák]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
; 5. félév&lt;br /&gt;
: [[Adatbázisok|Adatbázisok]]&lt;br /&gt;
: [[Elektronika|Elektronika]]&lt;br /&gt;
: [[Mérés_laboratórium_3.|Mérés laboratórium 3]]&lt;br /&gt;
: [[Mesterséges_intelligencia|Mesterséges intelligencia]]&lt;br /&gt;
: [[Szabályozástechnika_(info)|Szabályozástechnika]]&lt;br /&gt;
: [[Számítógépes_grafika_és_képfeldolgozás|Számítógépes grafika és képfeldolgozás]]&lt;br /&gt;
: [[Távközlő_hálózatok_és_szolgáltatások|Távközlő hálózatok és szolgáltatások]]&lt;br /&gt;
; 6. félév&lt;br /&gt;
: [[Információs_rendszerek_üzemeltetése|Információs rendszerek üzemeltetése]]&lt;br /&gt;
: [[Mérés_laboratórium_4.|Mérés laboratórium 4]]&lt;br /&gt;
: [[Szoftver_labor_V.|Szoftver laboratórium 5]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
; 7. félév&lt;br /&gt;
: [[Beszéd-információs_rendszerek|Beszédinformációs rendszerek]]&lt;br /&gt;
: [[Deklaratív_programozás|Deklaratív programozás]]&lt;br /&gt;
: [[Rendszermodellezés|Rendszermodellezés]] [[Rendszermodellezés_(régi)|(régi)]]&lt;br /&gt;
: [[Mérnök_informatikus_szakmai_gyakorlat|Szakmai gyakorlat]]&lt;br /&gt;
: [[Mérnök informatikus BSc záróvizsga|Záróvizsga]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Szakirányok ===&lt;br /&gt;
&lt;br /&gt;
* [[BSc Autonóm intelligens rendszerek szakirány|Autonóm intelligens rendszerek (IIT, MIT)]]&lt;br /&gt;
* [[BSc Infokommunikációs hálózatok szakirány|Infokommunikációs hálózatok (HIT, TMIT)]]&lt;br /&gt;
* [[BSc Informatikai technológiák szakirány|Informatikai technológiák (AAIT, IIT, MIT)]]&lt;br /&gt;
* [[BSc Médiainformatika és -biztonság szakirány|Médiainformatika és -biztonság (TMIT, HIT)]]&lt;br /&gt;
* [[BSc Vállalati információs rendszerek szakirány|Vállalati információs rendszerek (ETT, TMIT, SZIT)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Kategória:Mérnök informatikus]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sándor Mátyás Márton</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=M%C3%A9rn%C3%B6kinformatikus_BSc&amp;diff=188419</id>
		<title>Mérnökinformatikus BSc</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=M%C3%A9rn%C3%B6kinformatikus_BSc&amp;diff=188419"/>
		<updated>2016-03-03T13:47:44Z</updated>

		<summary type="html">&lt;p&gt;Sándor Mátyás Márton: Rossz volt a link a &amp;#039;Szoftver projekt labor&amp;#039; tárgyra&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Hasznos linkek ==&lt;br /&gt;
&lt;br /&gt;
A következő linkek a hivatalos egyetemi és kari weboldalakra mutatnak. Minden információ, ami a wikiről vagy egyéb forrásból származik, csupán tájékoztató jellegű.&lt;br /&gt;
&lt;br /&gt;
* [http://www.bme.hu/ BME], [http://www.vik.bme.hu/ VIK], [http://kth.bme.hu/ KTH]&lt;br /&gt;
* &#039;&#039;&#039;[https://www.vik.bme.hu/hallgatoknak/ Általános képzési információk a VIK.BME oldalon]&#039;&#039;&#039;, ebből pár fontosabb link:&lt;br /&gt;
** [http://kth.bme.hu/document/1401/original/2015_2016_tanev_idobeosztasa_3.PDF A 2015-16-os tanév időbeosztása (KTH)], [https://www.vik.bme.hu/page/856/ kari kiegészítés]&lt;br /&gt;
** [https://www.vik.bme.hu/document/667/original/zh15_16_tavasz-info.pdf A számonkérések ütemezése (2016 tavasz)]&lt;br /&gt;
** [https://portal.vik.bme.hu/kepzes/targyak/ Tantárgyi adatlapok]&lt;br /&gt;
** [https://www.vik.bme.hu/hallgatoknak/gyakorlat/ Szakmai gyakorlat]&lt;br /&gt;
* &#039;&#039;&#039;[https://www.vik.bme.hu/hallgatoknak/alapkepzes/info/ Mérnök informatikus szak információi a VIK.BME oldalon]&#039;&#039;&#039;, ebből pár fontosabb link:&lt;br /&gt;
** [https://www.vik.bme.hu/page/52/ Mintatanterv (2013 vagy azelőtt kezdett hallgatóknak)]&lt;br /&gt;
** [http://www.vik.bme.hu/page/800/ Mintatanterv (2014 vagy azután kezdett hallgatóknak)]&lt;br /&gt;
** [https://www.vik.bme.hu/files/00002166.pdf Előtanulmányi rend (2013 vagy azelőtt kezdett hallgatóknak)]&lt;br /&gt;
** [https://www.vik.bme.hu/document/105/original/MI_BSc_elotanulmanyi_140624.pdf Előtanulmányi rend (2014 vagy azután kezdett hallgatóknak)]&lt;br /&gt;
** [https://www.vik.bme.hu/kepzes/alapkepzes/altalanos/287.html Keresztféléves tantárgymeghirdetések]&lt;br /&gt;
** [https://www.vik.bme.hu/kepzes/alapkepzes/altalanos/500.html Első féléves speciális követelmények]&lt;br /&gt;
** [https://www.vik.bme.hu/files/00003106.pdf A BSc képzés programja]&lt;br /&gt;
** [https://www.vik.bme.hu/files/00002023.pdf Szakirányok]&lt;br /&gt;
&lt;br /&gt;
== A BSc képzés tárgyai (2014, vagy azután kezdett hallgatóknak)==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-spacing: 1em;&amp;quot;&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
; 1. félév&lt;br /&gt;
: [[Analízis_I.|Analízis 1]]&lt;br /&gt;
: [[A_programozás_alapjai_I.|A programozás alapjai 1]]&lt;br /&gt;
: [[Bevezetés_a_számításelméletbe_I.|Bevezetés a számításelméletbe 1]]&lt;br /&gt;
: [[Bevezető_Fizika|Bevezető fizika]]&lt;br /&gt;
: [[Bevezető_Matematika|Bevezető matematika]]&lt;br /&gt;
: [[Digitális_technika|Digitális technika]]&lt;br /&gt;
: [[Fizika_I.|Fizika 1i]]&lt;br /&gt;
: [[Mérnök_leszek|Mérnök leszek]]&lt;br /&gt;
; 2. félév&lt;br /&gt;
: [[Analízis_II.|Analízis 2]]&lt;br /&gt;
: [[Analízis_szigorlat_informatikusoknak|Analízis szigorlat informatikusoknak]]&lt;br /&gt;
: [[A_programozás_alapjai_II.|A programozás alapjai 2]]&lt;br /&gt;
: [[Bevezetés_a_számításelméletbe_II.|Bevezetés a számításelméletbe 2]]&lt;br /&gt;
: [[Fizika_II.|Fizika 2i]]&lt;br /&gt;
: [[Rendszermodellezés|Rendszermodellezés]]&lt;br /&gt;
: [[Számítógép_architektúrák|Számítógép architektúrák]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
; 3. félév&lt;br /&gt;
: [[A_programozás_alapjai_3|A programozás alapjai 3]]&lt;br /&gt;
: [[Adatbázisok|Adatbázisok]]&lt;br /&gt;
: [[Kódolástechnika|Kódolástechnika]]&lt;br /&gt;
: [[Kommunikációs_hálózatok_1|Kommunikációs hálózatok 1]]&lt;br /&gt;
: [[Rendszerelmélet|Rendszerelmélet]]&lt;br /&gt;
: [[Szoftvertechnológia|Szoftvertechnológia]]&lt;br /&gt;
: [[Valószínűségszámítás|Valószínűségszámítás]]&lt;br /&gt;
; 4. félév&lt;br /&gt;
: [[Adatbázisok_laboratórium|Adatbázisok laboratórium]]&lt;br /&gt;
: [[Algoritmuselmélet|Algoritmuselmélet]]&lt;br /&gt;
: [[Kommunikációs_hálózatok_2|Kommunikációs hálózatok 2]]&lt;br /&gt;
: [[Menedzsment_és_vállalkozásgazdaságtan|Menedzsment és vállalkozásgazdaságtan]]&lt;br /&gt;
: [[Operációs_rendszerek|Operációs rendszerek]]&lt;br /&gt;
: [[Számítógépes_grafika|Számítógépes grafika]]&lt;br /&gt;
: [[Szoftver_projekt_laboratórium|Szoftver_projekt_laboratórium]]&lt;br /&gt;
: [[Szoftvertechnikák|Szoftvertechnikák]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
; 5. félév&lt;br /&gt;
: [[IT_eszközök_technológiája|IT eszközök technológiája]]&lt;br /&gt;
: [[Mesterséges_intelligencia|Mesterséges intelligencia]]&lt;br /&gt;
: [[Mikro-_és_makroökonómia|Mikro- és makroökonómia]]&lt;br /&gt;
: [[Üzleti_jog|Üzleti jog]]&lt;br /&gt;
: [[Webes_és_mobil_szoftverek|Webes és mobil szoftverek]]&lt;br /&gt;
; 6. félév&lt;br /&gt;
: [[Információs_rendszerek_üzemeltetése|Információs rendszerek üzemeltetése]]&lt;br /&gt;
: [[IT_biztonság|IT biztonság]]&lt;br /&gt;
; 7. félév&lt;br /&gt;
: [[Mérnök_informatikus_szakmai_gyakorlat|Szakmai gyakorlat]]&lt;br /&gt;
: [[Mérnök_informatikus_BSc_záróvizsga|Záróvizsga]]&lt;br /&gt;
|}&lt;br /&gt;
=== Szakirányok ===&lt;br /&gt;
&lt;br /&gt;
Még kidolgozás alatt.&lt;br /&gt;
&lt;br /&gt;
== A BSc képzés tárgyai (2013, vagy azelőtt kezdett hallgatóknak)==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-spacing: 1em;&amp;quot;&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
; 1. félév&lt;br /&gt;
: [[Analízis_I.|Analízis 1]]&lt;br /&gt;
: [[A_programozás_alapjai_I.|A programozás alapjai 1]] [[A_programozás_alapjai_I._(régi)|(régi)]]&lt;br /&gt;
: [[Bevezetés_a_számításelméletbe_I.|Bevezetés a számításelméletbe 1]]&lt;br /&gt;
: [[Bevezető_Fizika|Bevezető fizika]]&lt;br /&gt;
: [[Bevezető_Matematika|Bevezető matematika]]&lt;br /&gt;
: [[Digitális_technika_I.|Digitális technika 1]]&lt;br /&gt;
: [[Mikro-_és_makroökonómia|Mikro- és makroökonómia]]&lt;br /&gt;
: [[Szoftver_labor_I.|Szoftver laboratórium 1]]&lt;br /&gt;
; 2. félév&lt;br /&gt;
: [[Analízis_II.|Analízis 2]]&lt;br /&gt;
: [[A_programozás_alapjai_II.|A programozás alapjai 2]]&lt;br /&gt;
: [[Bevezetés_a_számításelméletbe_II.|Bevezetés a számításelméletbe 2]]&lt;br /&gt;
: [[Digitális_technika_II.|Digitális technika 2]]&lt;br /&gt;
: [[Fizika_I.|Fizika 1]]&lt;br /&gt;
: [[Menedzsment_és_vállalkozásgazdaságtan|Menedzsment és vállalkozásgazdaságtan]]&lt;br /&gt;
: [[Szoftver_labor_II.|Szoftver laboratórium 2]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
; 3. félév&lt;br /&gt;
: [[Fizika_II.|Fizika 2]]&lt;br /&gt;
: [[Kódolástechnika|Kódolástechnika]]&lt;br /&gt;
: [[Mérés_laboratórium_1.|Mérés laboratórium 1]]&lt;br /&gt;
: [[Számítógép_architektúrák|Számítógép-architektúrák]]&lt;br /&gt;
: [[Szoftver_labor_III.|Szoftver laboratórium 3]]&lt;br /&gt;
: [[Szoftvertechnológia|Szoftvertechnológia]]&lt;br /&gt;
: [[Üzleti_jog|Üzleti jog]]&lt;br /&gt;
: [[Valószínűségszámítás|Valószínűségszámítás]] [[Valószínűségszámítás_(régi)|(régi)]]&lt;br /&gt;
; 4. félév&lt;br /&gt;
: [[Algoritmuselmélet|Algoritmuselmélet]]&lt;br /&gt;
: [[Jelek_és_rendszerek|Jelek és rendszerek]]&lt;br /&gt;
: [[Mérés_laboratórium_2.|Mérés laboratórium 2]]&lt;br /&gt;
: [[Operációs_rendszerek|Operációs rendszerek]]&lt;br /&gt;
: [[Számítógép-hálózatok|Számítógép-hálózatok]]&lt;br /&gt;
: [[Szoftver_labor_IV.|Szoftver laboratórium 4]]&lt;br /&gt;
: [[Szoftvertechnikák|Szoftvertechnikák]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
; 5. félév&lt;br /&gt;
: [[Adatbázisok|Adatbázisok]]&lt;br /&gt;
: [[Elektronika|Elektronika]]&lt;br /&gt;
: [[Mérés_laboratórium_3.|Mérés laboratórium 3]]&lt;br /&gt;
: [[Mesterséges_intelligencia|Mesterséges intelligencia]]&lt;br /&gt;
: [[Szabályozástechnika_(info)|Szabályozástechnika]]&lt;br /&gt;
: [[Számítógépes_grafika_és_képfeldolgozás|Számítógépes grafika és képfeldolgozás]]&lt;br /&gt;
: [[Távközlő_hálózatok_és_szolgáltatások|Távközlő hálózatok és szolgáltatások]]&lt;br /&gt;
; 6. félév&lt;br /&gt;
: [[Információs_rendszerek_üzemeltetése|Információs rendszerek üzemeltetése]]&lt;br /&gt;
: [[Mérés_laboratórium_4.|Mérés laboratórium 4]]&lt;br /&gt;
: [[Szoftver_labor_V.|Szoftver laboratórium 5]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
; 7. félév&lt;br /&gt;
: [[Beszéd-információs_rendszerek|Beszédinformációs rendszerek]]&lt;br /&gt;
: [[Deklaratív_programozás|Deklaratív programozás]]&lt;br /&gt;
: [[Rendszermodellezés|Rendszermodellezés]] [[Rendszermodellezés_(régi)|(régi)]]&lt;br /&gt;
: [[Mérnök_informatikus_szakmai_gyakorlat|Szakmai gyakorlat]]&lt;br /&gt;
: [[Mérnök informatikus BSc záróvizsga|Záróvizsga]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Szakirányok ===&lt;br /&gt;
&lt;br /&gt;
* [[BSc Autonóm intelligens rendszerek szakirány|Autonóm intelligens rendszerek (IIT, MIT)]]&lt;br /&gt;
* [[BSc Infokommunikációs hálózatok szakirány|Infokommunikációs hálózatok (HIT, TMIT)]]&lt;br /&gt;
* [[BSc Informatikai technológiák szakirány|Informatikai technológiák (AAIT, IIT, MIT)]]&lt;br /&gt;
* [[BSc Médiainformatika és -biztonság szakirány|Médiainformatika és -biztonság (TMIT, HIT)]]&lt;br /&gt;
* [[BSc Vállalati információs rendszerek szakirány|Vállalati információs rendszerek (ETT, TMIT, SZIT)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Kategória:Mérnök informatikus]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sándor Mátyás Márton</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=3._Perzisztencia_(2012)&amp;diff=186011</id>
		<title>3. Perzisztencia (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=3._Perzisztencia_(2012)&amp;diff=186011"/>
		<updated>2015-06-01T11:18:41Z</updated>

		<summary type="html">&lt;p&gt;Sándor Mátyás Márton: /* Lekérdezések */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RightTOC}}&lt;br /&gt;
==Szerializálás==&lt;br /&gt;
===Serializable interfész===&lt;br /&gt;
* csak az szerializálódik, ami meg van vele jelölve&lt;br /&gt;
* formális&lt;br /&gt;
* tömbök szerializálódnak&lt;br /&gt;
* Object, Thread, Socket, nem szerializálódnak&lt;br /&gt;
* transient és static cuccok nem szerializálódnak&lt;br /&gt;
* a private static final %ObjectStreamField[] serialPersistentFields tömbben megjelölt cuccok szerializálódnak&lt;br /&gt;
* Leszármazottak szerializálás-lánca megszakítható a read/writeObject-ben NotSerializableException dobásával&lt;br /&gt;
===Kimentés===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class SerializableClass implements java.io.Serializable&lt;br /&gt;
&lt;br /&gt;
try {&lt;br /&gt;
	 FileOutputStream f = new FileOutputStream(&amp;quot;filename&amp;quot;);&lt;br /&gt;
	 ObjectOutputStream out = new ObjectOutputStream(f);&lt;br /&gt;
	 out.writeObject(_SerializableClass);&lt;br /&gt;
	 out.close();&lt;br /&gt;
}&lt;br /&gt;
catch(IOException ex) {&lt;br /&gt;
	 ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
===Visszaállítás===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
	 FileInputStream f = new FileInputStream(&amp;quot;filename&amp;quot;);&lt;br /&gt;
	 ObjectInputStream in = new ObjectInputStream(f);&lt;br /&gt;
	 o_ins = (SerializableClass)in.readObject();&lt;br /&gt;
	 in.close();&lt;br /&gt;
}&lt;br /&gt;
catch(IOException ex) { ... }&lt;br /&gt;
catch(ClassNotFoundException ex) { ... }&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
===ObjectOutput interfész===&lt;br /&gt;
* mindenre throws IOException&lt;br /&gt;
* writeObject(Object obj)&lt;br /&gt;
* write(int b)&lt;br /&gt;
* write(byte b[])&lt;br /&gt;
* write(byte b[], int off, int len)&lt;br /&gt;
* flush()&lt;br /&gt;
* close()&lt;br /&gt;
* http://download.oracle.com/javase/1.4.2/docs/api/java/io/ObjectOutput.html&lt;br /&gt;
===ObjectInput interfész===&lt;br /&gt;
* throws ClassNotFoundException, IOException&lt;br /&gt;
* Object readObject()&lt;br /&gt;
* read...()&lt;br /&gt;
* public long skip(long n)&lt;br /&gt;
* public int available()&lt;br /&gt;
* public void close()&lt;br /&gt;
* http://download.oracle.com/javase/1.4.2/docs/api/java/io/ObjectInput.html&lt;br /&gt;
===Externalizable interfész===&lt;br /&gt;
* csak az osztály azonosítása mentődik automatikusan, a többi a mi kezünkben&lt;br /&gt;
* kiírás/beolvasás felüldefiniálása&lt;br /&gt;
* writeExternal(ObjectOutput out)&lt;br /&gt;
* readExternal(ObjectInput in)&lt;br /&gt;
[[Fájl:srl-osztalydiagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Hibernate 3.0==&lt;br /&gt;
===Alkalmazás átalakítása===&lt;br /&gt;
* ID attribútumok (jól jöhet)&lt;br /&gt;
* konfigurációs fájl (xml)&lt;br /&gt;
* HSQL DB indítás&lt;br /&gt;
===Leképezés===&lt;br /&gt;
* &amp;amp;lt;hibernate-mapping&amp;amp;gt; gyökérelem&lt;br /&gt;
* &amp;amp;lt;class&amp;amp;gt; perzisztens osztály -&amp;amp;gt; tábla&lt;br /&gt;
* &amp;amp;lt;id&amp;amp;gt;, &amp;amp;lt;generator&amp;amp;gt; azonosító, generátor algoritmus (pl native)&lt;br /&gt;
* &amp;amp;lt;property&amp;amp;gt; attribútum -&amp;amp;gt; oszlop&lt;br /&gt;
* &amp;amp;lt;many-to-one&amp;amp;gt;, &amp;amp;lt;one-to-one&amp;amp;gt;, reláció&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;hibernate-mapping&amp;gt;&lt;br /&gt;
	 &amp;lt;class name=&amp;quot;auto.Person&amp;quot; table=&amp;quot;PERSON&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;id name=&amp;quot;id&amp;quot; column=&amp;quot;PERSON_ID&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;generator class=&amp;quot;native&amp;quot;/&amp;gt;&lt;br /&gt;
		  &amp;lt;/id&amp;gt;&lt;br /&gt;
		  &amp;lt;property name=&amp;quot;name&amp;quot;/&amp;gt;&lt;br /&gt;
		  &amp;lt;set name=&amp;quot;cars&amp;quot; inverse=&amp;quot;true&amp;quot; cascade=&amp;quot;persist&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;key column=&amp;quot;PERSON_ID&amp;quot; not-null=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
				&amp;lt;one-to-many class=&amp;quot;auto.Car&amp;quot;/&amp;gt;&lt;br /&gt;
		  &amp;lt;/set&amp;gt;&lt;br /&gt;
	 &amp;lt;/class&amp;gt;&lt;br /&gt;
	 &amp;lt;class name=&amp;quot;auto.Car&amp;quot; table=&amp;quot;CAR&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;id name=&amp;quot;id&amp;quot; column=&amp;quot;CAR_ID&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;generator class=&amp;quot;native&amp;quot;/&amp;gt;&lt;br /&gt;
		  &amp;lt;/id&amp;gt;&lt;br /&gt;
		  &amp;lt;property name=&amp;quot;platenr&amp;quot;/&amp;gt;&lt;br /&gt;
		  &amp;lt;many-to-one name=&amp;quot;owner&amp;quot; class=&amp;quot;auto.Person&amp;quot; column=&amp;quot;PERSON_ID&amp;quot; not-null=&amp;quot;true&amp;quot; cascade=&amp;quot;persist&amp;quot;/&amp;gt;&lt;br /&gt;
	 &amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/hibernate-mapping&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
===Kollekciók===&lt;br /&gt;
* &amp;amp;lt;set&amp;amp;gt;, &amp;amp;lt;list&amp;amp;gt;, &amp;amp;lt;map&amp;amp;gt;, &amp;amp;lt;bag&amp;amp;gt;, &amp;amp;lt;array&amp;amp;gt;, &amp;amp;lt;&amp;amp;lt;p&amp;amp;gt;-array&amp;amp;gt;&lt;br /&gt;
* Javaban a megfelelő Collection interfészt kell használni, nem castolható&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;class name=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;id name=&amp;quot;serialNumber&amp;quot; column=&amp;quot;SN&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;set name=&amp;quot;parts&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;key column=&amp;quot;SN&amp;quot; not-null=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;one-to-many class=&amp;quot;Part&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/set&amp;gt;&lt;br /&gt;
&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
===Asszociáció===&lt;br /&gt;
* kapcsolótáblával (join table) vagy anélkül&lt;br /&gt;
* referencia más osztályokra&lt;br /&gt;
* lásd reláció (1:1, 1:n, n:1, n:m)&lt;br /&gt;
===Öröklés===&lt;br /&gt;
* Támogatott: &lt;br /&gt;
** table-per-class-hierarchy (minden egy táblában, discriminator: típusjelölő)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;class ...&amp;gt;&lt;br /&gt;
	 &amp;lt;discriminator column=&amp;quot;PAYMENT_TYPE&amp;quot; type=&amp;quot;string&amp;quot;/&amp;gt;&lt;br /&gt;
	 &amp;lt;subclass name=&amp;quot;CredCPay&amp;quot; discriminator-value=&amp;quot;CREDIT&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;property name=&amp;quot;credCType&amp;quot; column=&amp;quot;CCTYPE&amp;quot;/&amp;gt;&lt;br /&gt;
		  ...&lt;br /&gt;
	 &amp;lt;/subclass&amp;gt;&lt;br /&gt;
&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
** table-per-subclass&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;class ...&amp;gt;&lt;br /&gt;
	 &amp;lt;joined-subclass name=&amp;quot;CredCPayment&amp;quot; table=&amp;quot;CREDIT_PAYMENT&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;key column=&amp;quot;PAYMENT_ID&amp;quot;/&amp;gt;&lt;br /&gt;
		  &amp;lt;property name=&amp;quot;credCType&amp;quot; column=&amp;quot;CCTYPE&amp;quot;/&amp;gt;&lt;br /&gt;
		  ...&lt;br /&gt;
	 &amp;lt;/joined-subclass&amp;gt;&lt;br /&gt;
&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
** table-per-concrete-class&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;class ...&amp;gt;&lt;br /&gt;
	 &amp;lt;union-subclass name=&amp;quot;CredCPayment&amp;quot; table=&amp;quot;CREDIT_PAYMENT&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;property name=&amp;quot;credCType&amp;quot; column=&amp;quot;CCTYPE&amp;quot;/&amp;gt;&lt;br /&gt;
		  ...&lt;br /&gt;
	 &amp;lt;/union-subclass&amp;gt;&lt;br /&gt;
&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objektumok kezelése===&lt;br /&gt;
* Állapotok (Session-höz képest):&lt;br /&gt;
** tranziens - még nem kapcsolódótt&lt;br /&gt;
** perzisztens - adatbázistáblával összekötve&lt;br /&gt;
** lekapcsolt (detached) - már nem kapcsolódik&lt;br /&gt;
* Műveletek:&lt;br /&gt;
** session.flush() - módosítások mentése&lt;br /&gt;
** session.update(x) - újrakapcsolódás DB-hez, mentés&lt;br /&gt;
** session.saveOrUpdate(x) - elmenti az objektumot. Ha az id property-je null, akkor SQL INSERT utasítást hajt végre, ha not null, akkor SQL UPDATE utasítást hajt végre&lt;br /&gt;
** session.merge(x) - DB-ben és memóriában lévő cuccok összefésülése&lt;br /&gt;
** session.delete(x) - törlés&lt;br /&gt;
===Tranzakciók===&lt;br /&gt;
* csak így érhető el a DB&lt;br /&gt;
* Session osztály&lt;br /&gt;
===Lekérdezések===&lt;br /&gt;
* Query q = session.createQuery(&amp;amp;hellip;);&lt;br /&gt;
* visszatérés: skalár vagy tömb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
X x = (X)session.createQuery(..).uniqueResult();&lt;br /&gt;
List l = session.createQuery(..).list();&lt;br /&gt;
Iterator i = session.createQuery(..).iterate();&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
* paraméterek: név (:xname) vagy sorszám (? ? ?)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
q.setString(&amp;quot;x&amp;quot;, &amp;quot;param&amp;quot;);&lt;br /&gt;
q.setString(1, &amp;quot;param1&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
===HQL===&lt;br /&gt;
* From&lt;br /&gt;
* Join (inner, left outer, right outer, full outer)&lt;br /&gt;
* Select&lt;br /&gt;
* Aggregáló funkciók (avg(), sum(), min(), max(), count())&lt;br /&gt;
* Where&lt;br /&gt;
* Order by, Group by&lt;br /&gt;
* Constrainteket is kezel&lt;br /&gt;
&lt;br /&gt;
==JPA (Java Persistance API)==&lt;br /&gt;
=== Alapok ===&lt;br /&gt;
* entitások: POJO (Plain olda java object) - szerializálhatónak kell lennie (más nem is kell)&lt;br /&gt;
* szabványos O-R kapcsolat&lt;br /&gt;
* lekérdezhetöség&lt;br /&gt;
* Entity Manager (EM) a felügyelö&lt;br /&gt;
** Persistence context (PC): perzisztens objektumok futási környezete, élettartamár a konténer vagy az alkalmazás menedzseli&lt;br /&gt;
* Session (hibernate) == EM (JPA) ??&lt;br /&gt;
* Persistence Unit: standard könyvtárszerkezet, O-R leképezéseket, relációkat, ezek hatásközét tartalmazza, illetve Java annotációkat és/vagy XML-t (persistence.xml)&lt;br /&gt;
&lt;br /&gt;
=== Entitás ===&lt;br /&gt;
* @Entity annotáció (vagy XML)&lt;br /&gt;
* public vagy protected argumentum nélküli konstruktora van (final kizárva: osztály, metódus, változó)&lt;br /&gt;
* Serializable-t implementálja&lt;br /&gt;
* örökölhet entitástól vagy POJO-tól, POJO örökölhet entitástól&lt;br /&gt;
* konténeren kívül is használhatóak&lt;br /&gt;
[[Fájl:oo_jpa_entitas.png]]&lt;br /&gt;
&lt;br /&gt;
==== Perzisztens elemek ====&lt;br /&gt;
* mezötöl és propertytöl is függ hogy perzisztens-e&lt;br /&gt;
* nem szerializálható elemek: static, transient, @Transient&lt;br /&gt;
* szerializálhatóak: mezök és propertyk (@Basic): primitiv, string, wrapper, byte[], char[], enum, Collection, Set, List, Map (generic is), összetett, beágyazott (@Embedded)&lt;br /&gt;
* betöltés lehet: Eager és Lazy&lt;br /&gt;
&lt;br /&gt;
==== Kulcs ====&lt;br /&gt;
* Primary key kötelezö&lt;br /&gt;
* egyszerü kulcs: @Id, ami lehet primitiv, wrapper, string, date&lt;br /&gt;
* összetett kulcs&lt;br /&gt;
** Primary Key osztály: @IdClass&lt;br /&gt;
** Kulcs elem: @EmbeddedId&lt;br /&gt;
* kulcsgenerálás: @GeneratedValue(strategy = GenerationType.X), ahol X = AUTO, SEQUENCE, IDENTITY, TABLE&lt;br /&gt;
&lt;br /&gt;
==== Entitások életciklusa ====&lt;br /&gt;
* Entity Manager müveletei: persist, refresh, remove, merge&lt;br /&gt;
* Entity Manager egyéb müveletei: find, getReference, flush, clear, Query&lt;br /&gt;
* tranzitivitas: reláció paramétere, cascase = (müveletek) + ALL&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@Entity&lt;br /&gt;
public class MyClass implements Serializable {&lt;br /&gt;
      @Basic&lt;br /&gt;
      Date birthday;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;entity name=&amp;quot;mydonain.MyClass&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attributes&amp;gt;&lt;br /&gt;
            &amp;lt;basic name=&amp;quot;birthday&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attributes&amp;gt;&lt;br /&gt;
&amp;lt;/entity&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Relációk ===&lt;br /&gt;
* megegyezik a Hibernate-tel&lt;br /&gt;
* Annotációs: @OneToOne, @OneToMany, @ManyToOne, @ManyToMany&lt;br /&gt;
* egy- és kétirányú, kétirányúnál tulajdonos oldal - idegen kulcs, inverz oldal - referencia (mappedBy = )&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@Entity&lt;br /&gt;
public class Car implements Serializable {&lt;br /&gt;
      @ManyToOne&lt;br /&gt;
      private Person owner;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@Entity&lt;br /&gt;
public class Person implements Serializable {&lt;br /&gt;
      @OneToMany(mappedBy = &amp;quot;owner&amp;quot;)&lt;br /&gt;
      private Collection&amp;lt;Car&amp;gt; cars = new HastSet();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Öröklés ====&lt;br /&gt;
* table-per-class-hierarchy, table-per-subclass, table-per-concrete-class&lt;br /&gt;
&lt;br /&gt;
=== Lekérdezések ===&lt;br /&gt;
* JPQL (Java Persistence Query Language)&lt;br /&gt;
* Statikus lekérdezések: @NamedQuery, @NamedNativeQuery&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@Entity&lt;br /&gt;
@NamedQuery(name = &amp;quot;carByPlate&amp;quot;, query = &amp;quot;SELECT c FROM Car c WHERE c.plate = :rsz&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Car c = (Car) em.createNamedQuery(&amp;quot;carByPlate&amp;quot;).setParameter(&amp;quot;rsz&amp;quot;, plate).getSingleResult();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Dinamikus lekérdezések: runtime string komponálás, paraméterezéssel&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Query query = em.createQuery(&amp;quot;SELECT p FROM Product p WHERE p.param2 &amp;lt; :threshold ORDER BY p.param1 ascending&amp;quot;);&lt;br /&gt;
query.setParamater(&amp;quot;threshold&amp;quot;, my_threshold);&lt;br /&gt;
&lt;br /&gt;
List results = query.getResultList();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Natív SQL lekérdés a konkrét DB nyelve szerint, számozott paraméterezéssel&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Query query = em.createNativeQuery(&amp;quot;SELECT * FROM Product p WHERE p.param2 &amp;lt; ?1&amp;quot;);&lt;br /&gt;
query.setParameter(1, my_threshold).setMaxResults(10);&lt;br /&gt;
List results = query.getResultList();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Criteria Query (Hibernate), Builder minta szerint futás közben&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CriteriaQuery cq1 = em.getCriteriaBuilder().createQuery();&lt;br /&gt;
cq1.select(cg1.from(Person.class));&lt;br /&gt;
&lt;br /&gt;
Iterator iter = ((List&amp;lt;Person&amp;gt;) em.createQuery(cq1).getResultList()).iterator();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PSEPro (ObjectStore)==&lt;br /&gt;
* OO adatbázis, 50 MB adatkezelés, egy-felhasználós, konkurens session-ök, alkalmazáson belül fut, nincs külsö adatbázis, szemétgyüjtés megoldva&lt;br /&gt;
===Objektumok tulajdonságai===&lt;br /&gt;
* Állapotok:&lt;br /&gt;
** hollow (üres) - egy üres objektum, amibe az adatbázisból késleltetetten betölthetőek az adatok&lt;br /&gt;
** aktív - adatbázisban kapcsolatban áll (clean/dirty)&lt;br /&gt;
** stale (lejárt) - adatbázishoz nem kapcsolt&lt;br /&gt;
&lt;br /&gt;
===Szálak és Sessionök===&lt;br /&gt;
* egyidőben egy adatbázishoz kapcsolódhat&lt;br /&gt;
* tetszőleges read-only tranzakciója lehet&lt;br /&gt;
* egyetlen update tranzakciója lehet&lt;br /&gt;
* session public static Session create(String host, Properties props)&lt;br /&gt;
* session létrehozása és törlése&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
public static Session create(String host, Properties props)&lt;br /&gt;
public boolean isActive()&lt;br /&gt;
public void terminate()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* szálak kapcsolódása és lecsatolása&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
public void join()&lt;br /&gt;
public static void leave()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Adatbázisok===&lt;br /&gt;
* adatbázis létrehozás, megnyitás, bezárás&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
public static Database create(String name, int fileMod)&lt;br /&gt;
public static Database open(String name, int openMode)&lt;br /&gt;
public void close(boolean RetainAsTransient)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Tranzakciók===&lt;br /&gt;
* egyszerre egy sessionhöz kapcsolódhat&lt;br /&gt;
* kiadhat read-lockot és update-lockot is&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
public static Transaction begin(int type)&lt;br /&gt;
public void commit(int retain)&lt;br /&gt;
public void abort(int retain)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Fájl:os-tranzakciok.png]]&lt;br /&gt;
&lt;br /&gt;
===Objektumok===&lt;br /&gt;
* perzisztenciához az objektumok root-tá tesszük&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
db.createRoot(&amp;quot;foo&amp;quot;, new Integer(5));&lt;br /&gt;
int x = (int)db.getRoot(&amp;quot;foo&amp;quot;);&lt;br /&gt;
db.setRoot(&amp;quot;foo&amp;quot;, null);&lt;br /&gt;
db.destroyRoot(&amp;quot;foo&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
* minden kollekciónak megvan a maga OS... megfelelője&lt;br /&gt;
===Query===&lt;br /&gt;
* paraméteres lekérdezés (fv opcionális)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FreeVariables fv = new FreeVariables();&lt;br /&gt;
fv.put(&amp;quot;IS&amp;quot;, Integer.TYPE);&lt;br /&gt;
Query q = new Query(Person.class, &amp;quot;getSalary()&amp;gt;=IS&amp;quot;, fv);&lt;br /&gt;
&lt;br /&gt;
Collection employees = (Collection)db.getRoot(&amp;quot;employees&amp;quot;);&lt;br /&gt;
FreeVariableBindings fvb = new FreeVariableBindings();&lt;br /&gt;
fvb.put(&amp;quot;IS&amp;quot;, new Integer(20000));&lt;br /&gt;
Set result1 = q.select(employees, fvb); // több eredmény&lt;br /&gt;
Object result2 = q.pick(employees, fvb); // egyetlen eredmény&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Példa===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
private String dbName = &amp;quot;cardb.odb&amp;quot;;&lt;br /&gt;
private Session session;&lt;br /&gt;
private Database db;&lt;br /&gt;
private Set carOwners;&lt;br /&gt;
&lt;br /&gt;
public void initDB() {&lt;br /&gt;
	session = Session.create(null, null);&lt;br /&gt;
	session.join();&lt;br /&gt;
	try {&lt;br /&gt;
		db = Database.open(dbName, ObjectStore.UPDATE);&lt;br /&gt;
	}&lt;br /&gt;
	catch (DatabaseNotFoundException e) {&lt;br /&gt;
		db = Database.create(dbName, ObjectStore.ALL_READ | ObjectStore.ALL_WRITE);&lt;br /&gt;
	}&lt;br /&gt;
	Transaction tr = Transaction.begin(ObjectStore.UPDATE);&lt;br /&gt;
	try	{&lt;br /&gt;
		carOwners = (Set)db.getRoot(&amp;quot;OwnersRoot&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
	catch (DatabaseRootNotFoundException ex) {&lt;br /&gt;
		carOwners = new OSHashSet();&lt;br /&gt;
		db.createRoot(&amp;quot;OwnersRoot&amp;quot;, carOwners);&lt;br /&gt;
	}&lt;br /&gt;
	tr.commit(ObjectStore.RETAIN_HOLLOW);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- [[MeszegetoBalazsIstvan|MeszegetoBalazsIstvan]] - 2008.05.27.&lt;br /&gt;
&lt;br /&gt;
-- [[PallosTamas|Velias]] - 2009.05.26.&lt;br /&gt;
&lt;br /&gt;
-- [[VadZsolt|Vad Zsolt]] - 2011.04.07.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infoszak]]&lt;/div&gt;</summary>
		<author><name>Sándor Mátyás Márton</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=3._Perzisztencia_(2012)&amp;diff=186010</id>
		<title>3. Perzisztencia (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=3._Perzisztencia_(2012)&amp;diff=186010"/>
		<updated>2015-06-01T11:09:59Z</updated>

		<summary type="html">&lt;p&gt;Sándor Mátyás Márton: /* Öröklés */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RightTOC}}&lt;br /&gt;
==Szerializálás==&lt;br /&gt;
===Serializable interfész===&lt;br /&gt;
* csak az szerializálódik, ami meg van vele jelölve&lt;br /&gt;
* formális&lt;br /&gt;
* tömbök szerializálódnak&lt;br /&gt;
* Object, Thread, Socket, nem szerializálódnak&lt;br /&gt;
* transient és static cuccok nem szerializálódnak&lt;br /&gt;
* a private static final %ObjectStreamField[] serialPersistentFields tömbben megjelölt cuccok szerializálódnak&lt;br /&gt;
* Leszármazottak szerializálás-lánca megszakítható a read/writeObject-ben NotSerializableException dobásával&lt;br /&gt;
===Kimentés===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class SerializableClass implements java.io.Serializable&lt;br /&gt;
&lt;br /&gt;
try {&lt;br /&gt;
	 FileOutputStream f = new FileOutputStream(&amp;quot;filename&amp;quot;);&lt;br /&gt;
	 ObjectOutputStream out = new ObjectOutputStream(f);&lt;br /&gt;
	 out.writeObject(_SerializableClass);&lt;br /&gt;
	 out.close();&lt;br /&gt;
}&lt;br /&gt;
catch(IOException ex) {&lt;br /&gt;
	 ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
===Visszaállítás===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
	 FileInputStream f = new FileInputStream(&amp;quot;filename&amp;quot;);&lt;br /&gt;
	 ObjectInputStream in = new ObjectInputStream(f);&lt;br /&gt;
	 o_ins = (SerializableClass)in.readObject();&lt;br /&gt;
	 in.close();&lt;br /&gt;
}&lt;br /&gt;
catch(IOException ex) { ... }&lt;br /&gt;
catch(ClassNotFoundException ex) { ... }&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
===ObjectOutput interfész===&lt;br /&gt;
* mindenre throws IOException&lt;br /&gt;
* writeObject(Object obj)&lt;br /&gt;
* write(int b)&lt;br /&gt;
* write(byte b[])&lt;br /&gt;
* write(byte b[], int off, int len)&lt;br /&gt;
* flush()&lt;br /&gt;
* close()&lt;br /&gt;
* http://download.oracle.com/javase/1.4.2/docs/api/java/io/ObjectOutput.html&lt;br /&gt;
===ObjectInput interfész===&lt;br /&gt;
* throws ClassNotFoundException, IOException&lt;br /&gt;
* Object readObject()&lt;br /&gt;
* read...()&lt;br /&gt;
* public long skip(long n)&lt;br /&gt;
* public int available()&lt;br /&gt;
* public void close()&lt;br /&gt;
* http://download.oracle.com/javase/1.4.2/docs/api/java/io/ObjectInput.html&lt;br /&gt;
===Externalizable interfész===&lt;br /&gt;
* csak az osztály azonosítása mentődik automatikusan, a többi a mi kezünkben&lt;br /&gt;
* kiírás/beolvasás felüldefiniálása&lt;br /&gt;
* writeExternal(ObjectOutput out)&lt;br /&gt;
* readExternal(ObjectInput in)&lt;br /&gt;
[[Fájl:srl-osztalydiagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Hibernate 3.0==&lt;br /&gt;
===Alkalmazás átalakítása===&lt;br /&gt;
* ID attribútumok (jól jöhet)&lt;br /&gt;
* konfigurációs fájl (xml)&lt;br /&gt;
* HSQL DB indítás&lt;br /&gt;
===Leképezés===&lt;br /&gt;
* &amp;amp;lt;hibernate-mapping&amp;amp;gt; gyökérelem&lt;br /&gt;
* &amp;amp;lt;class&amp;amp;gt; perzisztens osztály -&amp;amp;gt; tábla&lt;br /&gt;
* &amp;amp;lt;id&amp;amp;gt;, &amp;amp;lt;generator&amp;amp;gt; azonosító, generátor algoritmus (pl native)&lt;br /&gt;
* &amp;amp;lt;property&amp;amp;gt; attribútum -&amp;amp;gt; oszlop&lt;br /&gt;
* &amp;amp;lt;many-to-one&amp;amp;gt;, &amp;amp;lt;one-to-one&amp;amp;gt;, reláció&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;hibernate-mapping&amp;gt;&lt;br /&gt;
	 &amp;lt;class name=&amp;quot;auto.Person&amp;quot; table=&amp;quot;PERSON&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;id name=&amp;quot;id&amp;quot; column=&amp;quot;PERSON_ID&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;generator class=&amp;quot;native&amp;quot;/&amp;gt;&lt;br /&gt;
		  &amp;lt;/id&amp;gt;&lt;br /&gt;
		  &amp;lt;property name=&amp;quot;name&amp;quot;/&amp;gt;&lt;br /&gt;
		  &amp;lt;set name=&amp;quot;cars&amp;quot; inverse=&amp;quot;true&amp;quot; cascade=&amp;quot;persist&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;key column=&amp;quot;PERSON_ID&amp;quot; not-null=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
				&amp;lt;one-to-many class=&amp;quot;auto.Car&amp;quot;/&amp;gt;&lt;br /&gt;
		  &amp;lt;/set&amp;gt;&lt;br /&gt;
	 &amp;lt;/class&amp;gt;&lt;br /&gt;
	 &amp;lt;class name=&amp;quot;auto.Car&amp;quot; table=&amp;quot;CAR&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;id name=&amp;quot;id&amp;quot; column=&amp;quot;CAR_ID&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;generator class=&amp;quot;native&amp;quot;/&amp;gt;&lt;br /&gt;
		  &amp;lt;/id&amp;gt;&lt;br /&gt;
		  &amp;lt;property name=&amp;quot;platenr&amp;quot;/&amp;gt;&lt;br /&gt;
		  &amp;lt;many-to-one name=&amp;quot;owner&amp;quot; class=&amp;quot;auto.Person&amp;quot; column=&amp;quot;PERSON_ID&amp;quot; not-null=&amp;quot;true&amp;quot; cascade=&amp;quot;persist&amp;quot;/&amp;gt;&lt;br /&gt;
	 &amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/hibernate-mapping&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
===Kollekciók===&lt;br /&gt;
* &amp;amp;lt;set&amp;amp;gt;, &amp;amp;lt;list&amp;amp;gt;, &amp;amp;lt;map&amp;amp;gt;, &amp;amp;lt;bag&amp;amp;gt;, &amp;amp;lt;array&amp;amp;gt;, &amp;amp;lt;&amp;amp;lt;p&amp;amp;gt;-array&amp;amp;gt;&lt;br /&gt;
* Javaban a megfelelő Collection interfészt kell használni, nem castolható&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;class name=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;id name=&amp;quot;serialNumber&amp;quot; column=&amp;quot;SN&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;set name=&amp;quot;parts&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;key column=&amp;quot;SN&amp;quot; not-null=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;one-to-many class=&amp;quot;Part&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/set&amp;gt;&lt;br /&gt;
&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
===Asszociáció===&lt;br /&gt;
* kapcsolótáblával (join table) vagy anélkül&lt;br /&gt;
* referencia más osztályokra&lt;br /&gt;
* lásd reláció (1:1, 1:n, n:1, n:m)&lt;br /&gt;
===Öröklés===&lt;br /&gt;
* Támogatott: &lt;br /&gt;
** table-per-class-hierarchy (minden egy táblában, discriminator: típusjelölő)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;class ...&amp;gt;&lt;br /&gt;
	 &amp;lt;discriminator column=&amp;quot;PAYMENT_TYPE&amp;quot; type=&amp;quot;string&amp;quot;/&amp;gt;&lt;br /&gt;
	 &amp;lt;subclass name=&amp;quot;CredCPay&amp;quot; discriminator-value=&amp;quot;CREDIT&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;property name=&amp;quot;credCType&amp;quot; column=&amp;quot;CCTYPE&amp;quot;/&amp;gt;&lt;br /&gt;
		  ...&lt;br /&gt;
	 &amp;lt;/subclass&amp;gt;&lt;br /&gt;
&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
** table-per-subclass&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;class ...&amp;gt;&lt;br /&gt;
	 &amp;lt;joined-subclass name=&amp;quot;CredCPayment&amp;quot; table=&amp;quot;CREDIT_PAYMENT&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;key column=&amp;quot;PAYMENT_ID&amp;quot;/&amp;gt;&lt;br /&gt;
		  &amp;lt;property name=&amp;quot;credCType&amp;quot; column=&amp;quot;CCTYPE&amp;quot;/&amp;gt;&lt;br /&gt;
		  ...&lt;br /&gt;
	 &amp;lt;/joined-subclass&amp;gt;&lt;br /&gt;
&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
** table-per-concrete-class&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;class ...&amp;gt;&lt;br /&gt;
	 &amp;lt;union-subclass name=&amp;quot;CredCPayment&amp;quot; table=&amp;quot;CREDIT_PAYMENT&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;property name=&amp;quot;credCType&amp;quot; column=&amp;quot;CCTYPE&amp;quot;/&amp;gt;&lt;br /&gt;
		  ...&lt;br /&gt;
	 &amp;lt;/union-subclass&amp;gt;&lt;br /&gt;
&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objektumok kezelése===&lt;br /&gt;
* Állapotok (Session-höz képest):&lt;br /&gt;
** tranziens - még nem kapcsolódótt&lt;br /&gt;
** perzisztens - adatbázistáblával összekötve&lt;br /&gt;
** lekapcsolt (detached) - már nem kapcsolódik&lt;br /&gt;
* Műveletek:&lt;br /&gt;
** session.flush() - módosítások mentése&lt;br /&gt;
** session.update(x) - újrakapcsolódás DB-hez, mentés&lt;br /&gt;
** session.saveOrUpdate(x) - elmenti az objektumot. Ha az id property-je null, akkor SQL INSERT utasítást hajt végre, ha not null, akkor SQL UPDATE utasítást hajt végre&lt;br /&gt;
** session.merge(x) - DB-ben és memóriában lévő cuccok összefésülése&lt;br /&gt;
** session.delete(x) - törlés&lt;br /&gt;
===Tranzakciók===&lt;br /&gt;
* csak így érhető el a DB&lt;br /&gt;
* Session osztály&lt;br /&gt;
===Lekérdezések===&lt;br /&gt;
* Query q = session.createQuery(&amp;amp;hellip;);&lt;br /&gt;
* visszatérés: skalár vagy tömb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
X x = (X)session.createQuery(..).uniqueResult();&lt;br /&gt;
List l = session.createQuery(..).list();&lt;br /&gt;
Iterator i = session.createQuery(..).iterate();&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
* paraméterek: név (:xname) vagy sorszám (? ? ?)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
q.setString(&amp;quot;x&amp;quot;, &amp;quot;param&amp;quot;);&lt;br /&gt;
q.setString(1, &amp;quot;param1&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
===HQL===&lt;br /&gt;
* From&lt;br /&gt;
* Join (inner, left outer, right outer, full outer)&lt;br /&gt;
* Select&lt;br /&gt;
* Aggregáló funkciók (avg(), sum(), min(), max(), count())&lt;br /&gt;
* Where&lt;br /&gt;
* Order by, Group by&lt;br /&gt;
* Constrainteket is kezel&lt;br /&gt;
&lt;br /&gt;
==JPA (Java Persistance API)==&lt;br /&gt;
=== Alapok ===&lt;br /&gt;
* entitások: POJO (Plain olda java object) - szerializálhatónak kell lennie (más nem is kell)&lt;br /&gt;
* szabványos O-R kapcsolat&lt;br /&gt;
* lekérdezhetöség&lt;br /&gt;
* Entity Manager (EM) a felügyelö&lt;br /&gt;
** Persistence context (PC): perzisztens objektumok futási környezete, élettartamár a konténer vagy az alkalmazás menedzseli&lt;br /&gt;
* Session (hibernate) == EM (JPA) ??&lt;br /&gt;
* Persistence Unit: standard könyvtárszerkezet, O-R leképezéseket, relációkat, ezek hatásközét tartalmazza, illetve Java annotációkat és/vagy XML-t (persistence.xml)&lt;br /&gt;
&lt;br /&gt;
=== Entitás ===&lt;br /&gt;
* @Entity annotáció (vagy XML)&lt;br /&gt;
* public vagy protected argumentum nélküli konstruktora van (final kizárva: osztály, metódus, változó)&lt;br /&gt;
* Serializable-t implementálja&lt;br /&gt;
* örökölhet entitástól vagy POJO-tól, POJO örökölhet entitástól&lt;br /&gt;
* konténeren kívül is használhatóak&lt;br /&gt;
[[Fájl:oo_jpa_entitas.png]]&lt;br /&gt;
&lt;br /&gt;
==== Perzisztens elemek ====&lt;br /&gt;
* mezötöl és propertytöl is függ hogy perzisztens-e&lt;br /&gt;
* nem szerializálható elemek: static, transient, @Transient&lt;br /&gt;
* szerializálhatóak: mezök és propertyk (@Basic): primitiv, string, wrapper, byte[], char[], enum, Collection, Set, List, Map (generic is), összetett, beágyazott (@Embedded)&lt;br /&gt;
* betöltés lehet: Eager és Lazy&lt;br /&gt;
&lt;br /&gt;
==== Kulcs ====&lt;br /&gt;
* Primary key kötelezö&lt;br /&gt;
* egyszerü kulcs: @Id, ami lehet primitiv, wrapper, string, date&lt;br /&gt;
* összetett kulcs&lt;br /&gt;
** Primary Key osztály: @IdClass&lt;br /&gt;
** Kulcs elem: @EmbeddedId&lt;br /&gt;
* kulcsgenerálás: @GeneratedValue(strategy = GenerationType.X), ahol X = AUTO, SEQUENCE, IDENTITY, TABLE&lt;br /&gt;
&lt;br /&gt;
==== Entitások életciklusa ====&lt;br /&gt;
* Entity Manager müveletei: persist, refresh, remove, merge&lt;br /&gt;
* Entity Manager egyéb müveletei: find, getReference, flush, clear, Query&lt;br /&gt;
* tranzitivitas: reláció paramétere, cascase = (müveletek) + ALL&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@Entity&lt;br /&gt;
public class MyClass implements Serializable {&lt;br /&gt;
      @Basic&lt;br /&gt;
      Date birthday;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;entity name=&amp;quot;mydonain.MyClass&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attributes&amp;gt;&lt;br /&gt;
            &amp;lt;basic name=&amp;quot;birthday&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attributes&amp;gt;&lt;br /&gt;
&amp;lt;/entity&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Relációk ===&lt;br /&gt;
* megegyezik a Hibernate-tel&lt;br /&gt;
* Annotációs: @OneToOne, @OneToMany, @ManyToOne, @ManyToMany&lt;br /&gt;
* egy- és kétirányú, kétirányúnál tulajdonos oldal - idegen kulcs, inverz oldal - referencia (mappedBy = )&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@Entity&lt;br /&gt;
public class Car implements Serializable {&lt;br /&gt;
      @ManyToOne&lt;br /&gt;
      private Person owner;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@Entity&lt;br /&gt;
public class Person implements Serializable {&lt;br /&gt;
      @OneToMany(mappedBy = &amp;quot;owner&amp;quot;)&lt;br /&gt;
      private Collection&amp;lt;Car&amp;gt; cars = new HastSet();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Öröklés ====&lt;br /&gt;
* table-per-class-hierarchy, table-per-subclass, table-per-concrete-class&lt;br /&gt;
&lt;br /&gt;
=== Lekérdezések ===&lt;br /&gt;
* JPQL (Java Persistence Query Language)&lt;br /&gt;
* Statikus lekérdezések: @NamedQuery, @NamedNativeQuery&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@Entity&lt;br /&gt;
@NamedQuery(name = &amp;quot;carByplate&amp;quot;, query = &amp;quot;SELECT c FROM Car c WHERE c.plate = :rsz&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Car c = (Car) em.createNamedQuery(&amp;quot;carBypalte&amp;quot;).setParameter(&amp;quot;rsz&amp;quot;, plate).getSingleResult();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Dinamikus lekérdezések: runtime string komponálás, paraméterezéssel&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Query query = em.createQuery(&amp;quot;SELECT p FROM Product p WHERE p.param2 &amp;lt; :threshold ORDER BY p.param1 ascending&amp;quot;);&lt;br /&gt;
query.setParamater(&amp;quot;threshold&amp;quot;, my_threshold);&lt;br /&gt;
&lt;br /&gt;
List results = query.getResultList();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Natív SQL lekérdés a konkrét DB nyelve szerint, számozott paraméterezéssel&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Query query = em.createNativeQuery(&amp;quot;SELECT * FROM Product p WHERE p.param2 &amp;lt; ?1&amp;quot;);&lt;br /&gt;
query.setParameter(1, my_threshold).setMaxResults(10);&lt;br /&gt;
List results = query.getResultList();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Criteria Query (Hibernate), Builder minta szerint futás közben&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CriteriaQuery cq1 = em.getCriteriaBuilder().createQuery();&lt;br /&gt;
cq1.select(cg1.from(Person.class));&lt;br /&gt;
&lt;br /&gt;
Iterator iter = ((List&amp;lt;Person&amp;gt;) em.createQuery(cq1).getResultList()).iterator();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PSEPro (ObjectStore)==&lt;br /&gt;
* OO adatbázis, 50 MB adatkezelés, egy-felhasználós, konkurens session-ök, alkalmazáson belül fut, nincs külsö adatbázis, szemétgyüjtés megoldva&lt;br /&gt;
===Objektumok tulajdonságai===&lt;br /&gt;
* Állapotok:&lt;br /&gt;
** hollow (üres) - egy üres objektum, amibe az adatbázisból késleltetetten betölthetőek az adatok&lt;br /&gt;
** aktív - adatbázisban kapcsolatban áll (clean/dirty)&lt;br /&gt;
** stale (lejárt) - adatbázishoz nem kapcsolt&lt;br /&gt;
&lt;br /&gt;
===Szálak és Sessionök===&lt;br /&gt;
* egyidőben egy adatbázishoz kapcsolódhat&lt;br /&gt;
* tetszőleges read-only tranzakciója lehet&lt;br /&gt;
* egyetlen update tranzakciója lehet&lt;br /&gt;
* session public static Session create(String host, Properties props)&lt;br /&gt;
* session létrehozása és törlése&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
public static Session create(String host, Properties props)&lt;br /&gt;
public boolean isActive()&lt;br /&gt;
public void terminate()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* szálak kapcsolódása és lecsatolása&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
public void join()&lt;br /&gt;
public static void leave()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Adatbázisok===&lt;br /&gt;
* adatbázis létrehozás, megnyitás, bezárás&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
public static Database create(String name, int fileMod)&lt;br /&gt;
public static Database open(String name, int openMode)&lt;br /&gt;
public void close(boolean RetainAsTransient)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Tranzakciók===&lt;br /&gt;
* egyszerre egy sessionhöz kapcsolódhat&lt;br /&gt;
* kiadhat read-lockot és update-lockot is&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
public static Transaction begin(int type)&lt;br /&gt;
public void commit(int retain)&lt;br /&gt;
public void abort(int retain)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Fájl:os-tranzakciok.png]]&lt;br /&gt;
&lt;br /&gt;
===Objektumok===&lt;br /&gt;
* perzisztenciához az objektumok root-tá tesszük&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
db.createRoot(&amp;quot;foo&amp;quot;, new Integer(5));&lt;br /&gt;
int x = (int)db.getRoot(&amp;quot;foo&amp;quot;);&lt;br /&gt;
db.setRoot(&amp;quot;foo&amp;quot;, null);&lt;br /&gt;
db.destroyRoot(&amp;quot;foo&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
* minden kollekciónak megvan a maga OS... megfelelője&lt;br /&gt;
===Query===&lt;br /&gt;
* paraméteres lekérdezés (fv opcionális)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FreeVariables fv = new FreeVariables();&lt;br /&gt;
fv.put(&amp;quot;IS&amp;quot;, Integer.TYPE);&lt;br /&gt;
Query q = new Query(Person.class, &amp;quot;getSalary()&amp;gt;=IS&amp;quot;, fv);&lt;br /&gt;
&lt;br /&gt;
Collection employees = (Collection)db.getRoot(&amp;quot;employees&amp;quot;);&lt;br /&gt;
FreeVariableBindings fvb = new FreeVariableBindings();&lt;br /&gt;
fvb.put(&amp;quot;IS&amp;quot;, new Integer(20000));&lt;br /&gt;
Set result1 = q.select(employees, fvb); // több eredmény&lt;br /&gt;
Object result2 = q.pick(employees, fvb); // egyetlen eredmény&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Példa===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
private String dbName = &amp;quot;cardb.odb&amp;quot;;&lt;br /&gt;
private Session session;&lt;br /&gt;
private Database db;&lt;br /&gt;
private Set carOwners;&lt;br /&gt;
&lt;br /&gt;
public void initDB() {&lt;br /&gt;
	session = Session.create(null, null);&lt;br /&gt;
	session.join();&lt;br /&gt;
	try {&lt;br /&gt;
		db = Database.open(dbName, ObjectStore.UPDATE);&lt;br /&gt;
	}&lt;br /&gt;
	catch (DatabaseNotFoundException e) {&lt;br /&gt;
		db = Database.create(dbName, ObjectStore.ALL_READ | ObjectStore.ALL_WRITE);&lt;br /&gt;
	}&lt;br /&gt;
	Transaction tr = Transaction.begin(ObjectStore.UPDATE);&lt;br /&gt;
	try	{&lt;br /&gt;
		carOwners = (Set)db.getRoot(&amp;quot;OwnersRoot&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
	catch (DatabaseRootNotFoundException ex) {&lt;br /&gt;
		carOwners = new OSHashSet();&lt;br /&gt;
		db.createRoot(&amp;quot;OwnersRoot&amp;quot;, carOwners);&lt;br /&gt;
	}&lt;br /&gt;
	tr.commit(ObjectStore.RETAIN_HOLLOW);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- [[MeszegetoBalazsIstvan|MeszegetoBalazsIstvan]] - 2008.05.27.&lt;br /&gt;
&lt;br /&gt;
-- [[PallosTamas|Velias]] - 2009.05.26.&lt;br /&gt;
&lt;br /&gt;
-- [[VadZsolt|Vad Zsolt]] - 2011.04.07.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infoszak]]&lt;/div&gt;</summary>
		<author><name>Sándor Mátyás Márton</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=BSc_Informatikai_technol%C3%B3gi%C3%A1k_szakir%C3%A1ny&amp;diff=184464</id>
		<title>BSc Informatikai technológiák szakirány</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=BSc_Informatikai_technol%C3%B3gi%C3%A1k_szakir%C3%A1ny&amp;diff=184464"/>
		<updated>2015-02-08T18:28:24Z</updated>

		<summary type="html">&lt;p&gt;Sándor Mátyás Márton: /* Felvételi ponthatárok ágazatonként */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== Bevezető ==&lt;br /&gt;
&lt;br /&gt;
A szakirány koordinátora: &#039;&#039;&#039;AAIT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&#039;&#039;&#039;A szakirány ismertetője&#039;&#039;&#039;&lt;br /&gt;
|szöveg= &lt;br /&gt;
&lt;br /&gt;
Összességében ezen a szakirányon egy szem ZH van, és sok-sok beadandó feladat. Úgy gondolom, hogy ez egy jó irány, a legeredményesebb amerikai egyetemek a teljes képzés során legalább ennyi otthoni feladattal dolgoznak. Tényleg úgy lehet (és úgy is érdemes) a legtöbbet tanulni, hogy egy hozzáértő ember személyre szabottan mond véleményt a munkáidról&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Aki büfézni szeretne az ne ide jöjjön, vannak arra baromi jó helyek!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== A megcélzott szakterület főbb jellegzetességei, trendjei ===&lt;br /&gt;
Az elmúlt néhány évben az informatikai technológiák robbanásszerű fejlődésének lehettünk tanúi. Az informatikai technológia, többek között, magába foglalja az adatvezérelt alkalmazások tervezési és fejlesztési aspektusait, a modell alapú, objektumorientált tervezési és megvalósítási elveket, valamint a nagy kiterjedésű IT infrastruktúrák rendszer- és szolgáltatás-felügyeleti módszereinek kérdéseit. A szakirány a korszerű technológiák által kínált új lehetőségek alapján célozza meg, hogy szakmai ismereteket rendszerezett formában, folyamatosan aktualizált tartalommal adjon át, jártasságot és alkalmazási készséget fejlesszen ki a hallgatóságban az informatikai rendszerek tervezése, fejlesztése és felügyelete során alkalmazott módszerek, eszközök és technológiák területén.&lt;br /&gt;
&lt;br /&gt;
=== A megszerezhető kompetenciák ===&lt;br /&gt;
* adatbázisra épülő komplex (többrétegű) rendszerek megvalósítására,&lt;br /&gt;
* adatbázisok teljesítményoptimalizálására,&lt;br /&gt;
* kliensoldali alkalmazások fejlesztésére,&lt;br /&gt;
* vékony, vastag és mobilkliensek fejlesztésére,&lt;br /&gt;
* objektumorientált tervezésre és programozásra,&lt;br /&gt;
* architekturális mintákat megvalósító komponensek alkalmazására,&lt;br /&gt;
* szoftverek metrikák alapján történő elemzésére,&lt;br /&gt;
* informatikai rendszerek teljesítményének és szolgáltatásminőségének mérésére és szabályozására,&lt;br /&gt;
* IT rendszerek szűk keresztmetszeteinek meghatározására, elemzésére és javítására&lt;br /&gt;
* bonyolult, sok felhasználós (pl. üzleti) IT infrastruktúrák méretezésére, ilyenek rendszerek tervezésre illetve a szervezetek IT támogató munkájába rendszermérnöki jelleggel való bekapcsolódásra.&lt;br /&gt;
&lt;br /&gt;
=== A megszerezhető ismeretek főbb témakörei ===&lt;br /&gt;
* Többrétegű alkalmazásfejlesztés ismerete az adattól a megjelenítési rétegig,&lt;br /&gt;
* XML-alapú adatkezelés,&lt;br /&gt;
* objektumorientált tervezés és programozás szabványos modelljei, programnyelvei, fejlesztő környezetei,&lt;br /&gt;
* elemzési és tervezési minták, reengineering, reverse engineering, refaktorálás, antipatternek,&lt;br /&gt;
* nagyvállalati rendszerfelügyelet, konfigurációmenedzsment, szoftverkarbantartás,&lt;br /&gt;
* teljesítménymonitorozás, egyedi alkalmazások teljesítménymérése, felhasználó monitorozása,&lt;br /&gt;
* számítógéprendszerek behatolásvédelme,&lt;br /&gt;
* heterogén szoftver környezetek menedzsmentje.&lt;br /&gt;
&lt;br /&gt;
=== A témakörökhöz kapcsolódó legfontosabb módszertanok és technológiák ===&lt;br /&gt;
* adatvezérelt alkalmazások tervezési elvei, adatbázis-elérési technológiák,&lt;br /&gt;
* MS SQL Server, Oracle Server, MySQL, ADO, OLEDB, ODBC, JDBC,&lt;br /&gt;
* .NET és Java technológiák,&lt;br /&gt;
* objektumorientált módszertanok, UML&lt;br /&gt;
* XML, XSLT, XPath, DTD és XSD,&lt;br /&gt;
* CORBA,&lt;br /&gt;
* elemzési minták, reengineering, reverse engineering, refaktorálás, antipatternek&lt;br /&gt;
* ITIL, ISO/IEC 17799., intelligens rendszerfelügyeleti eszközök&lt;br /&gt;
* Rendszermenedzsment eszközök szabványai&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Felvételi ponthatárok ágazatonként ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! width=&amp;quot;20%&amp;quot;|Ágazat neve&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Ágazat tanszéke&lt;br /&gt;
! width=&amp;quot;5%&amp;quot;|2008&lt;br /&gt;
! width=&amp;quot;5%&amp;quot;|2009&lt;br /&gt;
! width=&amp;quot;5%&amp;quot;|2010&lt;br /&gt;
! width=&amp;quot;5%&amp;quot;|2011&lt;br /&gt;
! width=&amp;quot;5%&amp;quot;|2012&lt;br /&gt;
! width=&amp;quot;5%&amp;quot;|2013&lt;br /&gt;
! width=&amp;quot;5%&amp;quot;|2014&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.inf.mit.bme.hu/edu/specialization/bsc Rendszertervezés]&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|MIT&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|2.24&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|2.29&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|2.30&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|2.29&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|2.26&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|2.27&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|2.44&lt;br /&gt;
|-&lt;br /&gt;
! [https://www.iit.bme.hu/mérnök-informatikus-szak Rendszerfejlesztés]&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|IIT&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|3.41&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|2.49&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|2.64&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|2.77&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|3.01&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|2.77&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|2.87&lt;br /&gt;
|-&lt;br /&gt;
! [https://www.aut.bme.hu/Education/BScInfo/Infotech Szoftverfejlesztés]&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|AAIT&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|3.62&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|3.52&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|3.24&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|2.99&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|3.27&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|3.04&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot;|3.17&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Forrás: [http://vik.hk/szakiranyatlagok http://vik.hk/szakiranyatlagok]&lt;br /&gt;
&lt;br /&gt;
== Közös tárgyak ==&lt;br /&gt;
&lt;br /&gt;
* [[Intelligens rendszerfelügyelet]] - MIT&lt;br /&gt;
* [[Objektumorientált szoftvertervezés]] - IIT&lt;br /&gt;
* [[Adatvezérelt alkalmazások fejlesztése]] - AAIT&lt;br /&gt;
* [[Informatikai technológiák laboratórium 1]]&lt;br /&gt;
* [[Informatikai technológiák laboratórium 2]]&lt;br /&gt;
&lt;br /&gt;
== Ágazatok ==&lt;br /&gt;
Mind a 3 ágazat hallgatói ugyanazokat a tantárgyakat hallgatják, ugyanazokat a méréseket végzik el, ugyanazokat a ZH-kat írják. Röviden: egy-egy mérési alkalmat leszámítva mind a három mindenben ugyanaz.&lt;br /&gt;
A különbséget az adja hogy melyik tanszéken szeretnél szakdolgozni, azaz: melyik tanszék kutatási/ipari profilja érdekes számodra, illetve melyik tanszéki apparátusból szeretnél konzulenst a munkádhoz. Mind a három tanszék tart 1-1 tárgyat a szakirányon.&lt;br /&gt;
&lt;br /&gt;
=== Rendszertervezés (MIT) ===&lt;br /&gt;
* Önálló laboratórium&lt;br /&gt;
** [https://www.vik.bme.hu/kepzes/targyak/VIMIA376/ Tantárgy adatlapja]&lt;br /&gt;
** [https://www.inf.mit.bme.hu/edu/specialization/bsc-project Önálló laboratórium témák]&lt;br /&gt;
* Szakdolgozat&lt;br /&gt;
** [https://www.vik.bme.hu/kepzes/targyak/VIMIA411/ Tantárgy adatlapja]&lt;br /&gt;
** [https://www.inf.mit.bme.hu/edu/specialization/bsc-thesis Szakdolgozat laboratórium témák]&lt;br /&gt;
** [[Szakdolgozat-készítés_-_Rendszertervezés_ágazat|Rendszertervezés szakdolgozat]]&lt;br /&gt;
&lt;br /&gt;
=== Rendszerfejlesztés (IIT) ===&lt;br /&gt;
* Önálló laboratórium&lt;br /&gt;
** [https://www.vik.bme.hu/kepzes/targyak/VIIIA377/ Tantárgy adatlapja]&lt;br /&gt;
** [https://www.iit.bme.hu/oktatas/onallo-laboratorium Önálló laboratórium témák]&lt;br /&gt;
* Szakdolgozat&lt;br /&gt;
** [https://www.vik.bme.hu/kepzes/targyak/VIIIA412/ Tantárgy adatlapja]&lt;br /&gt;
** [https://www.iit.bme.hu/bsc/info/rfsz/szakdolgozat Szakdolgozat laboratórium témák]&lt;br /&gt;
&lt;br /&gt;
=== Szoftverfejlesztés (AAIT) ===&lt;br /&gt;
* Önálló laboratórium&lt;br /&gt;
** [https://www.vik.bme.hu/kepzes/targyak/VIAUA375/ Tantárgy adatlapja]&lt;br /&gt;
** [https://www.aut.bme.hu/Onlab Önálló laboratórium témák]&lt;br /&gt;
* Szakdolgozat&lt;br /&gt;
** [https://www.vik.bme.hu/kepzes/targyak/VIAUA406/ Tantárgy adatlapja]&lt;br /&gt;
** [https://www.aut.bme.hu/Szakdolgozat Szakdolgozat laboratórium témák]&lt;br /&gt;
&lt;br /&gt;
== Szakirányhoz kapcsolódó szabadon választható tárgyak ==&lt;br /&gt;
&lt;br /&gt;
=== 2 kredites ===&lt;br /&gt;
&lt;br /&gt;
{{Szakaszcsonk}}&lt;br /&gt;
&lt;br /&gt;
=== Több mint 2 kredites ===&lt;br /&gt;
&lt;br /&gt;
{{Szakaszcsonk}}&lt;br /&gt;
&lt;br /&gt;
== Szakmai gyakorlat ==&lt;br /&gt;
&lt;br /&gt;
{{Szakaszcsonk}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Mérnök informatikus]]&lt;/div&gt;</summary>
		<author><name>Sándor Mátyás Márton</name></author>
	</entry>
</feed>