ADATBÁZISOK http://users.nik.uni-obuda.hu/szabozs/ 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
KÖVETELMÉNYEK 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Követelmények TVSZ szerinti gyakorlat-látogatás Otthoni felkészülés! Kis ZH-k megírása (minden gyakorlaton, a következőn: normalizálás) Nagy ZH-k megírása (2 db, központi pótlásokkal) Féléves feladat (Pontozás!!!) 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Követelmények Oracle10g / Oracle11g / OracleXE telepítése Példatár (~4500 Ft?) http://analog.nik.uni-obuda.hu/ Telepítési útmutatók (10g, XE) AB-KGK (FF Követelmény, FF Értékelés, FF Feladatkiírás) http://users.nik.uni-obuda.hu/szabozs/ 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
analog.nik.uni-obuda.hu Fontos fileok FF_Feladatkiírás Következő foglalkozásra elhozni, aláíratni, megőrizni min. 3 entitás leírása kell a feladatkiírásban NEM dvd, vhs, könyvtár … Menetrend Javasolt tematika (…) FÉLÉVBEVEZETŐ Alap információk SQL Bevezető Feladatgyűjtemény, Analitikus SQL Feladatgyűjtemény Otthoni gyakorlás!!! 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
ALAPOK 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Logikai adatmodellek típusai Hierarchikus adatmodell Fa Hálós adatmodell Gráf Relációs adatmodell Táblázatok (~Excel munkalapok) közötti kapcsolatok rendszere Objektum-Orientált adatmodell Adat + Utasítások egységbe zárása (elvként létezik, ORM rendszerekkel elég jól megközelíthető, az adat tárolása ugyanúgy relációs) 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
A relációs adatmodell Oszlop-fejlécek: adatmező (mező, attribútum) Sorok: rekord Tárolási elv: ~táblázat: adattábla, tábla - a sorok sorrendje nem számít, - az oszlopok sorrendje sem számít és - nem lehet két azonos sor. Több táblázat RELÁCIÓS rendszere: adatbázis 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Google keresés: "Az adatmodellezés szintjei" Bércesné Novák Ágnes RELÁCIÓK ER Diagram http://en.wikipedia.org/wiki/Entity–relationship_model Google keresés: "Az adatmodellezés szintjei" Bércesné Novák Ágnes 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Egyedek, Relációk Egy-az-egyhez kapcsolat 1:1, ritka eset (vállalkozók + adószámok – belső függőségek?) 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Egy-a-többhöz kapcsolat 1:N Relációk Kulcsok Egy-a-többhöz kapcsolat 1:N 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Kulcsok Elsődleges kulcs, idegen kulcs, összetett kulcs Összetett kulcsok használata esetén rész-kulcsokat nem viszünk át másik táblába (Mi most összetett kulcsokat használunk) Kulcsok relációs rendszere = adatbázis Később lesz szó ezek gyakorlati megvalósításáról 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Több-a-többhöz kapcsolat M:N Relációk Több-a-többhöz kapcsolat M:N 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
ER diagram alapelemei Egyed + kapcsolat Attribútum Elsődleges kulcs 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Programozók, Projektek, Modulok Programozók mezői? Modulok mezői? Projektek mezői? Kapcsolatok: 1 modul 1 projekt; 1 projekt több modul 1:N 1 programozó több modul; egy modul több programozó N:M mikortól és meddig? 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
NORMALIZÁLÁS http://en.wikipedia.org/wiki/Database_normalization 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Példa egy tipikus Excel táblára RENDELÉS-SZÁM CIKK- SZÁM CIKK MEGNEVE-ZÉS REND. MENNYISÉG HATÁR- IDŐ SZÁLL. CÍM VEVŐ- NÉV 991201 0001 Barna kenyér 25 Bpest. Barna u.1 Julius Meinl 35 991202 0002 Fehér kenyér 24 Bpest Fehér u.2 Penny Market REDUNDANCIA, INKONZISZTENCIA 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Normalizálás Az itt ismertetett táblázatos módszer GYAKORLATI megközelítésből ábrázolja, hogy miért is szükséges a normalizálás A TÁBLÁZATOS LEÍRÁS FORMAILAG NEM MEGFELELŐ, a függőségek (egyedek) formális felírása az elvárt: Fvalami: {kulcs1, kulcs2} {mező1, mező2, mező3} A táblázatos forma a könnyebb, gyakorlatias megértés miatt van itt használva, de a későbbi cél a reláció-algebrai / ER megközelítés 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Ősmodell A rendelkezésre álló, a megoldandó feladatra jellemző adatcsoportok sora, minden struktúra és elv nélkül Például: megrendelés-nyilvántartás Cikkszám, Cikknév, Egységár, Adókulcs, Adószázalék, Rendelésszám, Mennyiség, Szállítási cím, Szín, Súly, Ország, Csomagolás 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
0NF Csak a szükséges mezőket hagyjuk meg az adatok táblázatba rendezhetőek Cikkszám, Cikknév, Egységár, Adókulcs, Adószázalék, Rendelésszám, Szállítási cím, Mennyiség Törölve: Szín, Súly, Ország, Csomagolás 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
0NF Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz. Menny. Cím C1 N1 500 2 20 R1 5 A1 C2 N2 600 C3 N3 700 1 10 C4 N4 1000 3 25 R2 A2 Frendelések: {Cikkszám, Cikknév, Egységár, Adókulcs, Adószázalék, Mennyiség, {Rendelésszám, Cím} } 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
1NF „A reláció minden sorában pontosan egy elemi attribútumérték áll.” Megszüntetjük az ismétlődő csoportokat avagy Megszüntetjük az összetett adattagokat 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Módosítási, törlési, beszúrási anomáliák !!! 1NF Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny. Cím C1 N1 500 2 20 R1 5 A1 C2 N2 600 C3 N3 700 1 10 C4 N4 1000 3 25 R2 A2 Módosítási, törlési, beszúrási anomáliák !!! 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
2NF Funkcionális függőség: Funkcionális függőség akkor áll fenn, ha egy tulajdonság értékét egy másik tulajdonság értéke egyértelműen meghatározza. A funkcionális függés egyirányú kapcsolatot jelent. Például: Személyigazolvány-szám és név, anyja neve, születési dátum, stb. összerendelése, hiszen egy személyigazolvány-szám esetén biztosan tudjuk a kapcsolódó egyed minden adatát 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
2NF „Minden másodlagos attribútum funkcionálisan teljesen függ a reláció bármely kulcsától” Elvárás: egy táblában egy tetszőleges mező vagy kulcsmező, vagy a kulcsmezőtől funkcionálisan függő mező Megszüntetjük a többszörös funkcionális függőségeket: tábla-struktúra átdolgozása, több tábla létrehozása ( Egyedek létrehozása) Ehhez először fel kell írnunk a függőségeket 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
2NF Fcikkek: {Cikkszám} {Cikknév, Egységár, Adókulcs, Adószázalék} Rend.sz Menny. Cím Fcikkek: {Cikkszám} {Cikknév, Egységár, Adókulcs, Adószázalék} Frendelések: {Rendelésszám} {Cím} Mennyiség??? Fmennyiségek: {Cikkszám, Rendelésszám} {Mennyiség} Függőség = Tábla = Egyed !!! Elsődleges kulcs, Idegen kulcs, Összetett kulcs !!! 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
2NF Rend.sz. Cikksz. Menny. R1 C1 5 C2 C3 10 R2 C4 2 Rend.sz. Cím R1 A1 R2 A2 Cikksz. Cikkn. Ár Adók. Adósz. C1 N1 500 2 20 C2 N2 600 C3 N3 700 1 10 C4 N4 1000 3 25 Kulcsok?? Összetett kulcsok??? 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
3NF Tranzitív függőség: Egy nem-kulcs C tulajdonság akkor és csak akkor függ tranzitívan az egyed A kulcsától, ha meghatározza az azonosítótól függő B tulajdonság is „egy másodlagos attribútum sem függ tranzitívan a reláció egyetlen kulcsától sem” CSAK az elsődleges kulcstól lehet függés! Nem lehet függés az egyed nem-kulcs attribútumai között 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
3NF Megszüntetjük a tranzitív függőségeket, vagyis elérjük azt, hogy CSAK az elsődleges kulcstól legyen a táblán belül függés Jelenleg: Fadó: {Adókulcs} {Adószázalék} Az új függőség új táblát jelent új idegen kulcs az eredeti táblában 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
3NF Rend.sz. Cikksz. Menny. R1 C1 5 C2 C3 10 R2 C4 2 Rend.sz. Cím R1 A1 R2 A2 Cikksz. Cikkn. Ár Adók. C1 N1 500 2 C2 N2 600 C3 N3 700 1 C4 N4 1000 3 Adók. Adósz. 1 10 2 20 3 25 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Előnyök Adatbázis szintű inkonzisztencia kiküszöbölve, az értelmetlen redundancia csökkent A relációk együttes mérete szinte mindig kisebb Törlés esetén sem veszhet el információ, az anomáliák megszűntek A relációk konzisztensen bővíthetők Minden módosítás könnyebb és gyorsabban hajtható végre 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
BCNF vs 3NF 3NF: Az R relációban lévő minden XY, a meglévő funkcionális függőségeken belüli funkcionális függőségre az egyik igaz: Y valójában X részhalmaza VAGY X az R reláció szuperkulcsa VAGY Y az R tetszőleges kulcsának részhalmaza (ez egyben kiköti, hogy az Y egyedül nem lehet kulcs: egy összetett kulcs részhalmaza nem lehet önmagában kulcs!) A 3NF-ben amúgy megengedett harmadik pont A BCNF-BEN NEM MEGENGEDETT! 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
BCNF (3.5NF) Összetett kulcson belüli / kulcsok közötti függés nem megengedett “A kulcsattribútumoknak nincs olyan részhalmaza, mely más kulcs- vagy másodlagos attribútumoktól (funkcionálisan) függene (vagyis nincs kulcstörés)” Egy 3NF reláció nincs BCNF-ben, ha (a) több lehetséges kulcs-jelölt van, (b) a kulcsok összetett kulcsok, és (c) a különböző kulcsok között van közös attribútum ID PK esetén ilyen nincs 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Összefoglalva 0NF: Ősmodell 1NF: Nincsenek ismétlődő/komplex adattagok 2NF: Minden mező függ a kulcstól (funkcionális függőség) 3NF: Minden mező csak a kulcstól függ (nincs tranzitív függőség) BCNF: A kulcsmezők között nincs belső függés 4NF, 5NF, DKNF ………… 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Levezetés ER diagram segítségével??? BCNF Rend.sz. Cikksz. Menny. R1 C1 5 C2 C3 10 R2 C4 2 Rend.sz. Cím R1 A1 R2 A2 Cikksz. Cikkn. Ár Adók. C1 N1 500 2 C2 N2 600 C3 N3 700 1 C4 N4 1000 3 Adók. Adósz. 1 10 2 20 3 25 2017.04.04. szabo.zsolt@nik.uni-obuda.hu Levezetés ER diagram segítségével???
ER-ből táblák 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
ER-ből táblák 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
ER-ből táblák 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
EMP, DEPT 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
DEFINÍCIÓK 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Kulcsjelölt Definíció: Az {A1, A2, ...An} attribútumhalmaz az R (A1, A2, ...An, B1, B2, ...Bk) sémájú reláció kulcsjelöltje, ha 1.) A1, A2, ...An => B1, B2, ...Bk fennáll, és 2.) nincsen olyan valódi részhalmaza az { A1, A2, ...An } halmaznak, amely az R reláció összes többi attribútumát funkcionálisan meghatározná. (Egy reláció attribútumainak minimális részhalmaza, amely összetett kulcsként használható lenne: azonos kulcshoz azonos nem-kulcs értékek vannak) 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Szuperkulcs Gyakorlatilag a szuperkulcs a kulcsjelölt kiegészítése más attribútumokkal (Kulcsjelölt: a minimális szuperkulcs (a legkevesebb oszlopból álló szuperkulcs)) Azokat az attribútumhalmazokat, amelyek tartalmaznak kulcsjelöltet, szuperkulcsoknak nevezzük Rövidítése a „kulcsnál bővebb halmazoknak” 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Lezárt X={A1,A2,...,An} attribútumhalmazra egy S funkcionális függőségi halmaz szerint vett (X+ jelölésű) lezárásának kiszámítási algoritmusa: Legyen X attribútumhalmaz, amely végül maga a lezárt lesz. Legyen először X kezdőértéke {A1,A2,...,An}. Keressünk olyan {B1,B2,...,Bm} => C funkcionális függőségeket S-ből, amelyekre a teljes B1,B2,...,Bm benne van az X attribútumhalmazban, de C nincs. Ekkor C-t hozzávesszük az X halmazhoz. A 2. lépést mindaddíg ismételjük, ameddig már nem tudunk több attribútumot hozzávenni X-hez. 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Armstrong axiómák A funkcionális függőség: Reflexív (önmagát meghatározza): Az egyszerű kulcs meghatározza önmagát, egy összetett kulcs meghatározza minden részhalmazát ( esetén ) Tranzitív: Ha és akkor Bővíthető: Ha , akkor 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Függőségőrző felbontás A felbontás után kapott relációkban meglevő függőségekből az eredeti függőségekre tudjunk következtetni Adott az R reláció és az F függőségi halmaz. Azt mondjuk, hogy az R reláció egy R1, R2, …Rk felbontása függőségőrző az F függőségi halmaz szerint, ha az R1, R2, …Rk relációkra vetített függőségek unióiból az eredeti F függőségi halmaz logikailag következik. (Pl. levezethető az Armstrong axiómákkal) 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Veszteségmentes felbontás A résztáblák összekapcsolásával előállítható a normalizálás előtti állapot A 3NF és BCNF állapot elvártan MINDIG veszteségmentes! A 3NF mindig függőségmegőrző, a BCNF nem! 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
FÜGGŐSÉGMEGŐRZÉS ELLENŐRZÉSE Google keresés: Relációk felbontása abkr4 "Bércesné Novák Ágnes” 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Függőségmegőrzés Adottak: R=(A, B, C) , F={AB, BC} R egy felbontása: R1=(A, C) R2=(B, C) R1-beli vetített, nem triviális függőségek: F1={AC} (tranzitív) R2-beli vetített, nem triviális függőségek: F2= {BC} A nem triviális függőségek F1-ben és F2-ben: {BC, AC}. Ezekből AB nem vezethető le 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Függőségmegőrzés Adottak: R=(A, B, C) , F={AB, BC} R egy felbontása: R1’=(A, B) és R2’=(B, C) R1’-beli vetített, nem triviális függőségek: F1={AB} R2’-beli vetített, nem triviális függőségek: F2= {BC} A nem triviális függőségek F1-ben és F2-ben: {AB, BC}. Ez így jó 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Függőségmegőrzés Adottak: R(VÁROS, UTCA, IRÁNYíTÓSZÁM)=R(V, U, Ir) F={VUIr, IrV} R felbontása BCNF-re: R1(U, Ir) és R2(V, Ir) Veszteségmentes (bizonyítást ld. hamarosan) R1-beli vetített, nem triviális függőségek: F1={} R2-beli vetített, nem triviális függőségek: F2= {IrV} Hiányzó függőség, de *bármilyen* BCNF felosztásnál az adott példán 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Függőségmegőrzés Hiányzó függőség, de *bármilyen* BCNF felosztásnál az adott példán Nem mindig létezik függőségmegőrző felbontás BCNF-re Mindig létezik veszteségmentes és függőségmegőrző felbontás 3NF-re (a gyakorlatban a kiindulási R reláció a 3NF, mert az IrV nem igaz) 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
VESZTESÉGMENTESSÉG ELLENŐRZÉSE http://www.cs.sjsu.edu/faculty/lee/cs157/Lossless_Decomposition_Anannya_Sengupta.ppt Google keresés: veszteségmentesség ellenőrzése "Bércesné Novák Ágnes" 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Veszteségmentes? Veszteségmentesség: a résztáblák összekapcsolásával előállítható a normalizálás előtti állapot A 3NF és BCNF állapot elvártan MINDIG veszteségmentes! Veszteségmentesség nélkül a normalizálásnak nem lenne értelme . . . 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Példa R1 (A1, A2, A3, A5) R2 (A1, A3, A4) R3 (A4, A5) FD1: A1 A3 A5
Példa A1 A2 A3 A4 A5 R1 a(1) a(2) a(3) b(1,4) a(5) R2 a(1) b(2,2) a(3) a(4) b(2,5) R3 b(3,1) b(3,2) b(3,3) a(4) a(5) R1 (A1, A2, A3, A5) R2 (A1, A3, A4) R3 (A4, A5)
Példa FD1: A1 A3 A5 A1 A2 A3 A4 A5 R1 a(1) a(2) a(3) b(1,4) a(5) R2 a(1) b(2,2) a(3) a(4) b(2,5) R3 b(3,1) b(3,2) b(3,3) a(4) a(5) R1 a(1) a(2) a(3) b(1,4) a(5) R2 a(1) b(2,2) a(3) a(4) a(5) R3 b(3,1) b(3,2) b(3,3) a(4) a(5)
Példa FD2: A5 A1 A4 A1 A2 A3 A4 A5 R1 a(1) a(2) a(3) b(1,4) a(5) R2 a(1) b(2,2) a(3) a(4) a(5) R3 b(3,1) b(3,2) b(3,3) a(4) a(5) R1 a(1) a(2) a(3) a(4) a(5) R3 a(1) b(3,2) b(3,3) a(4) a(5)
Példa FD3: A3 A4 A2 A1 A2 A3 A4 A5 R1 a(1) a(2) a(3) a(4) a(5) R2 a(1) b(2,2) a(3) a(4) a(5) R3 a(1) b(3,2) b(3,3) a(4) a(5) R2 a(1) a(2) a(3) a(4) a(5)
Veszteségmentes? Döntés: Ha már nincsen alkalmazható függőség, akkor ellenőrizzük, az így kapott táblázatban van-e csupa “ak”- ból álló sor. Ha igen, akkor a felbontás veszteségmentes. Ha nem, akkor veszteséges. az utolsó lépés kihagyható, mert már előtte is tudjuk, hogy veszteségmentes Veszteséges dekompozícióból nem állítható vissza a normalizáció előtti állapot HIBÁS STRUKTÚRA 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
BCNF Fcikkek: {Cikkszám} {Cikknév, Egységár, Adókulcs} Adósz. Rend.sz Menny. Cím Fcikkek: {Cikkszám} {Cikknév, Egységár, Adókulcs} Frendelések: {Rendelésszám} {Cím} Fmennyiségek: {Cikkszám, Rendelésszám} {Mennyiség} Fadó: {Adókulcs} {Adószázalék} 2017.04.04. szabo.zsolt@nik.uni-obuda.hu
Példa Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cím Cikksz. Cikkn. B(1,1) B(1,2) B(1,3) B(1,4) B(1,5) B(1,6) B(1,7) B(1,8) B(2,1) B(2,2) B(2,3) B(2,4) B(2,5) B(2,6) B(2,7) B(2,8) B(3,1) B(3,2) B(3,3) B(3,4) B(3,5) B(3,6) B(3,7) B(3,8) B(4,1) B(4,2) B(4,3) B(4,4) B(4,5) B(4,6) B(4,7) B(4,8) Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cím A(1) A(2) A(3) A(4) B(1,5) B(1,6) B(1,7) B(1,8) B(2,1) B(2,2) B(2,3) B(2,4) B(2,5) A(6) B(2,7) A(8) B(3,2) B(3,3) B(3,4) B(3,5) A(7) B(3,8) B(4,1) B(4,2) B(4,3) A(5) B(4,6) B(4,7) B(4,8)
Fcikkek: {Cikkszám} {Cikknév, Egységár, Adókulcs} Példa Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cím A(1) A(2) A(3) A(4) B(1,5) B(1,6) B(1,7) B(1,8) B(2,1) B(2,2) B(2,3) B(2,4) B(2,5) A(6) B(2,7) A(8) B(3,2) B(3,3) B(3,4) B(3,5) A(7) B(3,8) B(4,1) B(4,2) B(4,3) A(5) B(4,6) B(4,7) B(4,8) Fcikkek: {Cikkszám} {Cikknév, Egységár, Adókulcs} Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cím A(1) A(2) A(3) A(4) B(1,5) B(1,6) B(1,7) B(1,8) B(2,1) B(2,2) B(2,3) B(2,4) B(2,5) A(6) B(2,7) A(8) B(3,5) A(7) B(3,8) B(4,1) B(4,2) B(4,3) A(5) B(4,6) B(4,7) B(4,8)
Frendelések: {Rendelésszám} {Cím} Példa Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cím A(1) A(2) A(3) A(4) B(1,5) B(1,6) B(1,7) B(1,8) B(2,1) B(2,2) B(2,3) B(2,4) B(2,5) A(6) B(2,7) A(8) B(3,5) A(7) B(3,8) B(4,1) B(4,2) B(4,3) A(5) B(4,6) B(4,7) B(4,8) Frendelések: {Rendelésszám} {Cím} Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cím A(1) A(2) A(3) A(4) B(1,5) B(1,6) B(1,7) B(1,8) B(2,1) B(2,2) B(2,3) B(2,4) B(2,5) A(6) B(2,7) A(8) B(3,5) A(7) B(4,1) B(4,2) B(4,3) A(5) B(4,6) B(4,7) B(4,8)
Fmennyiségek: {Cikkszám, Rendelésszám} {Mennyiség} Példa Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cím A(1) A(2) A(3) A(4) B(1,5) B(1,6) B(1,7) B(1,8) B(2,1) B(2,2) B(2,3) B(2,4) B(2,5) A(6) B(2,7) A(8) B(3,5) A(7) B(4,1) B(4,2) B(4,3) A(5) B(4,6) B(4,7) B(4,8) Fmennyiségek: {Cikkszám, Rendelésszám} {Mennyiség}
Fadó: {Adókulcs} {Adószázalék} Példa Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cím A(1) A(2) A(3) A(4) B(1,5) B(1,6) B(1,7) B(1,8) B(2,1) B(2,2) B(2,3) B(2,4) B(2,5) A(6) B(2,7) A(8) B(3,5) A(7) B(4,1) B(4,2) B(4,3) A(5) B(4,6) B(4,7) B(4,8) Fadó: {Adókulcs} {Adószázalék} Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cím A(1) A(2) A(3) A(4) A(5) B(1,6) B(1,7) B(1,8) B(2,1) B(2,2) B(2,3) B(2,4) B(2,5) A(6) B(2,7) A(8) A(7) B(4,1) B(4,2) B(4,3) B(4,6) B(4,7) B(4,8)