<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hu">
	<id>https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=Adatb%C3%A1zisok_szerver_oldali_programoz%C3%A1sa_Labor%2C_2006.03.28.</id>
	<title>Adatbázisok szerver oldali programozása Labor, 2006.03.28. - Laptörténet</title>
	<link rel="self" type="application/atom+xml" href="https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=Adatb%C3%A1zisok_szerver_oldali_programoz%C3%A1sa_Labor%2C_2006.03.28."/>
	<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Adatb%C3%A1zisok_szerver_oldali_programoz%C3%A1sa_Labor,_2006.03.28.&amp;action=history"/>
	<updated>2026-05-16T17:52:42Z</updated>
	<subtitle>Az oldal laptörténete a wikiben</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://vik.wiki/index.php?title=Adatb%C3%A1zisok_szerver_oldali_programoz%C3%A1sa_Labor,_2006.03.28.&amp;diff=163832&amp;oldid=prev</id>
		<title>2001:738:2001:2078:0:208:37:0: Új oldal, tartalma: „{{GlobalTemplate|Valaszthato|AdatbServerProgJegyzet20060328}}  &lt;!--  * Set DENYTOPICVIEW = TWikiGuest --&gt;   &lt;style&gt;  	code.pre { white-space: pre; display: block; m…”</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Adatb%C3%A1zisok_szerver_oldali_programoz%C3%A1sa_Labor,_2006.03.28.&amp;diff=163832&amp;oldid=prev"/>
		<updated>2013-03-31T19:03:24Z</updated>

		<summary type="html">&lt;p&gt;Új oldal, tartalma: „{{GlobalTemplate|Valaszthato|AdatbServerProgJegyzet20060328}}  &amp;lt;!--  * Set DENYTOPICVIEW = &lt;a href=&quot;/index.php?title=TWikiGuest&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;TWikiGuest (a lap nem létezik)&quot;&gt;TWikiGuest&lt;/a&gt; --&amp;gt;   &amp;lt;style&amp;gt;  	code.pre { white-space: pre; display: block; m…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Új lap&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{GlobalTemplate|Valaszthato|AdatbServerProgJegyzet20060328}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
* Set DENYTOPICVIEW = [[TWikiGuest]]&lt;br /&gt;
--&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;style&amp;gt; &lt;br /&gt;
	code.pre { white-space: pre; display: block; margin-top: 2px; margin-bottom: 2px; }&lt;br /&gt;
	li { line-height: 18px; }&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; [[AdatbServerProgJegyzet20060324|&amp;amp;lt;&amp;amp;lt;]] Labor, 2006.03.28. [[AdatbServerProgJegyzet20060331|&amp;amp;gt;&amp;amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
==Tárolt alprogramok==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Írj egy tárolt eljárást, aminek a segítségével kurzusokat lehet felvenni. Az eljárásnak&lt;br /&gt;
két bemenő paramétere van, a diák azonosító, és a kurzusazonosító. Az eljárás a&lt;br /&gt;
következő esetekben generáljon hibát:&lt;br /&gt;
* ha a kurzus már betelt&lt;br /&gt;
* ha a hallgató már jelentkezett erre a kurzusra&lt;br /&gt;
* ha nem létezik a paraméterként beadott diák vagy kurzus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Írj egy tárolt eljárást, aminek a segítségével ki lehet törölni egy hallgatót egy&lt;br /&gt;
kurzusról. Az eljárásnak legyen két bemenő paramétere, a diák azonosító és a törölni&lt;br /&gt;
kívánt kurzusazonosító. Az eljárás akkor dobjon hibát, ha nem létezik a törölni kívánt&lt;br /&gt;
diák vagy kurzus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Írj függvényt, aminek két bemeneti paramétere van, a pilóta azonosítója és egy&lt;br /&gt;
évszám, visszatérési értéke pedig a pilóta adott évben szerzett pontjainak az összege!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Írj függvényt, aminek bemenete egy helyezés, visszatérési értéke pedig a helyezéshez&lt;br /&gt;
tartozó pontszám!&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Triggerek==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Írj egy triggert, ami az anyag táblába való beszúrás esetén automatikusan generál&lt;br /&gt;
azonosítót, ha a beszúrni kívánt adatok közt nincs megadva az azonosító!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code class=&amp;quot;pre&amp;quot;&amp;gt;CREATE SEQUENCE anyag_seq START WITH 100 INCREMENT BY 1&lt;br /&gt;
CREATE OR REPLACE TRIGGER anyag_idtr BEFORE INSERT ON anyag FOR EACH ROW&lt;br /&gt;
BEGIN&lt;br /&gt;
	IF :new.anyag_id IS NULL THEN&lt;br /&gt;
		SELECT anyag_seq.NEXTVAL INTO :new.anyag_id FROM DUAL;&lt;br /&gt;
	END IF;&lt;br /&gt;
END;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Írj egy triggert, ami csak akkor engedi, hogy egy hallgató felvegyen egy kurzust, ha a&lt;br /&gt;
kurzus még nincs betelve.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Készíts el egy nézetet, aminek segítségével a FELKESZ_ANYAG táblát láthatjuk, de&lt;br /&gt;
az anyag és a félkész nevét láthatjuk, nem pedig a kódját. Ezek után írj egy triggert,&lt;br /&gt;
ami lehetővé teszi, hogy új anyagot adjunk hozzá a félkészhez a nézeten keresztül!&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;View létrehozása&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code class=&amp;quot;pre&amp;quot;&amp;gt;CREATE VIEW felkeszanyag AS&lt;br /&gt;
	SELECT felkesz_nev, anyag_nev, fa_mennyiseg&lt;br /&gt;
	FROM felkesz, anyag, felkesz_anyag&lt;br /&gt;
	WHERE felkesz.felkesz_id = felkesz_anyag.fa_felkeszid&lt;br /&gt;
		AND anyag.anyag_id = felkesz_anyag.fa_anyagid&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Trigger létrehozása&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code class=&amp;quot;pre&amp;quot;&amp;gt;CREATE OR REPLACE TRIGGER felkesz_anyag_insert&lt;br /&gt;
	INSTEAD OF INSERT ON felkeszanyag FOR EACH ROW&lt;br /&gt;
DECLARE&lt;br /&gt;
	anyagid INT;&lt;br /&gt;
	felkeszid INT;&lt;br /&gt;
BEGIN&lt;br /&gt;
	SELECT anyag_id INTO anyagid FROM anyag &lt;br /&gt;
		WHERE anyag_nev = :new.anyag_nev;&lt;br /&gt;
	SELECT felkesz_id INTO felkeszid FROM felkesz&lt;br /&gt;
		WHERE felkesz_nev = :new.felkesz_nev;&lt;br /&gt;
	INSERT INTO felkesz_anyag (fa_felkeszid, fa_anyagid, fa_mennyiseg)&lt;br /&gt;
		VALUES (felkeszid, anyagid, :new.fa_mennyiseg);&lt;br /&gt;
END;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Tesztelés&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code class=&amp;quot;pre&amp;quot;&amp;gt;INSERT INTO felkeszanyag VALUES (&amp;#039;tejszinhab&amp;#039;, &amp;#039;liszt&amp;#039;, 1);&lt;br /&gt;
COMMIT;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Módosítsd a PILOTA_FUTAM táblát úgy, hogy legyen egy oszlop a pilóta&lt;br /&gt;
pontszámának tárolására is (ez származtatott adat, a PILOTA_FUTAM tábla alapján&lt;br /&gt;
számítható). Készíts triggert, ami karbantartja az új oszlop értékét, bármilyen&lt;br /&gt;
módosítást is hajtunk végre a pilóta pontszámát érintő táblában! Próbálj meg olyan&lt;br /&gt;
megoldást találni, ami a lehető legkevesebb mővelettel oldja meg a feladatot!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code class=&amp;quot;pre&amp;quot;&amp;gt;ALTER TABLE futam_pilota ADD pontszam INT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code class=&amp;quot;pre&amp;quot;&amp;gt;CREATE OR REPLACE TRIGGER pilota_pontszam&lt;br /&gt;
	BEFORE INSERT OR UPDATE &lt;br /&gt;
	ON futam_pilota FOR EACH ROW&lt;br /&gt;
BEGIN&lt;br /&gt;
	SELECT decode(:new.helyezes, NULL, 0, 1, 10, 2, 8, 3, 6, 4, 5, 5, 4, 6, 3, 7, 2, 8, 1, 0) &lt;br /&gt;
		INTO :new.pontszam&lt;br /&gt;
		FROM dual;&lt;br /&gt;
END;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Készíts nézetet, ami az alábbi mezőket tartalmazza: évszám, csapat neve, pilóta neve,&lt;br /&gt;
pilóta típusa az adott csapatban az adott évben. Készíts triggert, ami lehetővé teszi új&lt;br /&gt;
pilótát felvenni egy adott csapatba a nézeten keresztül.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Készíts triggert, ami biztosítja, hogy egy évben egy pilóta csak egy csapatban&lt;br /&gt;
szerepelhessen, valamint egy csapatban egyszerre csak egy elsőszámú és egy&lt;br /&gt;
másodszámú pilóta lehessen, de akármennyi teszt pilóta.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;A cukrász adatbázisban módosítsd a FELKESZ táblát úgy, hogy egy mezőben a&lt;br /&gt;
félkész egységárát is el tudjuk tárolni. Ez egy származtatott adat lesz, annak az&lt;br /&gt;
érdekében, hogy a termék árának a lekérdezése egyszerőbb és gyorsabb legyen. Az új&lt;br /&gt;
oszlop a (felkesz_ar float). Írd meg a triggereket, amik karban tartják ezt a mezőt.&lt;br /&gt;
Triggereket az alábbi eseményekre kell írni:&lt;br /&gt;
* Egy anyag ára megváltozott.&lt;br /&gt;
* Új anyag kerül a félkész anyaglistájába.&lt;br /&gt;
* Egy anyagot törölnek a félkész anyaglistájából.&lt;br /&gt;
* Megváltozik a mennyisége a félkész által tartalmazott anyagnak (FELKESZ_ANYAG táblában).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code class=&amp;quot;pre&amp;quot;&amp;gt;ALTER TABLE felkesz ADD felkesz_ar FLOAT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;A cukrászat adatbázist egészítsd ki az alábbi rendelés táblával!&lt;br /&gt;
&amp;lt;code class=&amp;quot;pre&amp;quot;&amp;gt;CREATE TABLE rendeles&lt;br /&gt;
(&lt;br /&gt;
	rendeles_id INT CONSTRAINT rendeles_primary_key PRIMARY KEY,&lt;br /&gt;
	rendeles_datum date NOT NULL,&lt;br /&gt;
	rendeles_anyagid int NOT NULL,&lt;br /&gt;
	rendeles_mennyiseg float NOT NULL,&lt;br /&gt;
	rendeles_rendezve date&lt;br /&gt;
)&amp;lt;/code&amp;gt;&lt;br /&gt;
Írj triggert, ami felad egy újabb rendelést, ha valamely anyag mennyisége a minimális&lt;br /&gt;
érték alá csökken. A rendelés mennyisége legyen annyi, hogy utána a maximális&lt;br /&gt;
mennyiség legyen a raktárban.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- [[PallosPeter|Peti]] - 2006.03.28.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Valaszthato]]&lt;/div&gt;</summary>
		<author><name>2001:738:2001:2078:0:208:37:0</name></author>
	</entry>
</feed>