Szűcs Miklós: Adatbázis példatár

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Szűcs Miklós: Adatbázis példatár"

Átírás

1 1. oldal Adatbázis tervezés Az adatbázis tervezés az adatokat kezelő alkalmazások fejlesztésének a legelső és egyben a legmeghatározóbb lépése. Komolyabb alkalmazásoknál általában igen sok adat kerül tárolásra, illetve feldolgozásra. Az adatok nem önmagukban, hanem egymáshoz való viszonyukkal, kapcsolódási rendszerükkel, és integritási (formai, tartalmi, hivatkozási, függőségi előírások) megkötéseikkel együtt kezeljük, ezért az adatbázisokat úgy kell megtervezni, hogy az adatok közötti kapcsolatok megmaradjanak, de az egyes adatok lehetőleg csak egyszer szerepeljenek, vagyis minimális legyen a redundancia. A tervezés két nagy fázisra bontható: Logikai tervezés: amely a logikai összetartozásuk alapján kialakítja az adatok csoportjait (az egyedeket), majd meghatározza a csoportok közötti kapcsolatokat. Fizikai tervezés: amely a logikai modell alapján megtervezi a fizikailag is megvalósítható adatbázist, ahol a választott adatbázis-kezelő rendszernek megfelelően jelennek meg az adatbázis egyes elemei. Az ER modell Az ER Entity Relationship (Egyed Kapcsolat) modell az adatbázisban található elemek logikai struktúrájának modellezésére szolgál. Grafikus jelölő rendszert használ, melynek elemei a következők: Egyed: Azonosítóval ellátott, összetartozó adat csoport, amelyről információt tárolunk az adatbázisban. Jele egy téglalap, melybe beleírjuk az egyed nevét (azonosítóját). A gyenge egyedet, melyet saját tulajdonságai nem határoznak meg egyértelműen, emiatt a vele kapcsolatban lévő másik egyeddel együtt azonosítjuk, dupla vonalas téglalappal ábrázoljuk. Kapcsolat: Az egyedek egymáshoz való viszonyát leíró összefüggés. Jele egy rombusz, amelybe általában beleírjuk a két egyed közötti viszony fogalmát. A kapcsolatokat nyilakkal kötjük az egyedekhez. A nyilak alakja is információkat hordoz, a dupla vonal a kötelező jelleget, a dupla nyílfej többes kapcsolatot jelenti. A dupla vonal mindig annak az egyednek az oldalán van, amely kötelezően vesz részt a kapcsolatban. Egy raktárhely kötelezően egy raktárhoz tartozik, de egy raktárban több raktárhely is lehet. A gyenge egyed kapcsolatát dupla vonalas rombusszal jelöljük. Az alábbi ábra azt jelzi, hogy egy tételt úgy tudunk egyértelműen azonosítani, ha megnevezzük a számlát is, amelyhez tartozik. Tulajdonság: Egyedekhez vagy kapcsolatokhoz tartozó adatok, amelyek jellemzik azt. Jelük ellipszis, benne a tulajdonság nevével. Az ellipsziseket egyszerű vonalakkal

2 2. oldal kapcsoljuk ahhoz az egyedhez vagy kapcsolathoz, amelyet jellemez. A név aláhúzásával jelöljük a kulcs tulajdonságot, a származtatott tulajdonság ellipszise szaggatott körvonalú. A többértékű tulajdonságot dupla vonallal jelöljük, az összetett tulajdonság több elemi tulajdonságból áll. Az ER modell ábrázolására nincs teljesen egységes szabvány, az itt bemutatott Chen féle jelölési módtól bizonyos dokumentumokban kisebb-nagyobb mértékben eltérhetnek. 1.1 ER modell készítése Feladat Tervezze meg a VaKer élelmiszerekkel kereskedő cég raktárának ER modelljét. A cég külön raktárakban tárolja a fagyasztott, a hűtött élelmiszereket, az italokat, a zöldségeket, és többi terméket. Minden termék külön vonalkóddal rendelkezik, egy termékből több raktárhelyen is lehet készlet (pl. más-más lejárati dátummal), és az egyes raktárhelyeken többféle termék is lehet. Az egyértelmű azonosíthatóság miatt az egyes raktárakban nem lehetnek egyforma kódú raktárhelyek, és raktárhelyet csak raktárban lehet kialakítani. Előfordulhat olyan eset, amikor néhány raktárhely vagy akár a teljes raktár nem használható, pl. ha elromlik a fagyasztó. A statisztikák miatt szükség lehet az egyes raktárakban lévő, és az egy adott napon betárolt termékek listájára. A termékek mennyiségén kívül tárolni kell a mennyiségi egységet is (darab, kg, liter ) Feladat megoldása Feladat Tervezze meg a VaKer élelmiszerekkel kereskedő cég számlázási rendszerének ER modelljét. A számlákon legyen egyedi azonosító, dátum, a pénztár és a pénztáros kódja, a vevő adatai, a vásárolt tételek adatai (terméknév, mennyiség, mennyiségi egység, egységár, tétel összege), és az összár. A vevők adatait tároljuk le Feladat megoldása

3 3. oldal Feladat Tervezze meg a VaKer élelmiszerekkel kereskedő cég raktári megrendeléseinek ER modelljét. Minden termék külön vonalkóddal rendelkezik, de kategóriákat alkotnak, pl. többféle tej és sajt lehet a tejtermék kategóriában. A rendelésben szerepeljen a rendelésszám, a kiállítás dátuma, a megrendelés határideje, a beszállító adatai, a rendelést készítő dolgozó adatai, és minden megrendelt tételnél a termék neve, mennyiségi egysége és mennyisége. Egy rendelés az egy beszállítótól igényelt termékeket tartalmazza Feladat megoldása

4 4. oldal Feladat Tervezze meg a VaKer élelmiszerekkel kereskedő cég raktári beszállításainak ER modelljét. Az egyes beszállítások mindig egy beszállítótól érkeznek, a beszállított árukat valamelyik raktáros veszi át. Minden tétel esetén tárolni kell a mennyiséget és az egységárat is. A tételek átvétel és betárolás után növelik a raktári készletet Feladat megoldása Feladat Tervezze meg a VaKer élelmiszerekkel kereskedő cég dolgozói adatbázisának ER modelljét. Vannak fix munkakört betöltő dolgozók, és olyanok is, akik többféle munkakörben is dolgozhatnak. A tervezett és a tényleges munkabeosztást tárolni kell. Vannak olyan dolgozók, akik fix havibért kapnak (alapbér), több munkakörben viszont az alapbéren felül a ledolgozott órákkal arányos juttatás is jár (órabér alapján). Szinte minden dolgozónak van céges telefonja, a telefonnak csak a típusát tartják nyilván. Akik céges autót használnak útnyilvántartást vezetnek, az autóknál nyilván kell tartani, hogy mikor melyik autót ki vezette Feladat megoldása Feladat

5 5. oldal Tervezze meg a VaKer élelmiszerekkel kereskedő cég webáruházának ER modelljét. Tárolni kell a megrendelők adatait, a rendelések dátumát, határidejét, tételeit, a rendelést összekészítő és a kiszállító végző dolgozó azonosítóját. A könnyebb eligazodás miatt a weblapon a termékek kategóriákba vannak sorolva. A rendelést összekészítő dolgozó mindig kiállít egy számlát is, a megrendelő adatai alapján Feladat megoldása Feladat Tervezze meg a VaKer élelmiszerekkel kereskedő cég bolti átszállításának egyszerűsített ER modelljét. Az átszállítási feladatról tárolni kell, hogy ki mikor kezdeményezte, és melyik tételt melyik dolgozó mikor teljesítette. A raktárból kikerült áruk mennyisége a bolti áruk mennyiségét növeli Feladat megoldása

6 6. oldal 1.2 EER modellezés Az objektum orientált szemléletmód a számára nélkülözhetetlen öröklődési kapcsolatok megjelenítésére alakította ki az EER Extended ER (Kibővített ER) modellt, melyben a főtípus és az altípus közötti viszony leírására két új kapcsolattípust vezettek be: Tartalmazás: Az altípus a főtípusnak egy része, a főtípus minden egyes egyed előfordulása tartalmazza az altípus egy-egy egyed előfordulását. Jele egy HAS ( van ) feliratot tartalmazó nyíl a két egyed között, amely a főtípus felől az altípus felé mutat. Minden autóhoz tartozik egy útnyilvántartás. Specializáció: Az altípus a főtípus minden tulajdonságát örökli, de saját tulajdonságai is lehetnek. Jele egy ISA (is a az egy ) feliratot tartalmazó nyíl, amely az altípustól a főtípus felé mutat. A pénztáros az egy olyan dolgozó, akinek a pénztárakhoz is van kódja Feladat Tervezze meg a VaKer élelmiszerekkel kereskedő cég raktárának EER modelljét. A cég külön raktárakban tárolja a fagyasztott és a hűtött élelmiszereket, van egy többszintes raklapos raktár, és polcos, amelynek egy részén kenyereket, másik részén dobozos árukat, harmadik részében zöldségféléket tárolnak. Minden termék külön vonalkóddal rendelkezik, egy termékből több raktárhelyen is lehet készlet (pl. más-más lejárati dátummal), és az egyes raktárhelyeken többféle termék is lehet. Az egyértelmű azonosíthatóság miatt az egyes raktárakban nem lehetnek egyforma kódú raktárhelyek, és raktárhelyet csak raktárban lehet

7 7. oldal kialakítani. Előfordulhat olyan eset, amikor néhány raktárhely vagy akár a teljes raktár nem használható, pl. ha elromlik a fagyasztó. A statisztikák miatt szükség lehet az egyes raktárakban lévő, és az egy adott napon betárolt termékek listájára. A termékek mennyiségén kívül tárolni kell a mennyiségi egységet is (darab, kg, liter ) Feladat megoldása Feladat Tervezze meg a VaKer élelmiszerekkel kereskedő cég dolgozói adatbázisának EER modelljét. Vannak fix munkakört betöltő dolgozók, és olyanok is, akik többféle munkakörben is dolgozhatnak. A tervezett és a tényleges munkabeosztást tárolni kell. Minden dolgozónak van havi alapbére, több munkakörben viszont az alapbéren felül a ledolgozott órákkal arányos juttatás is jár (órabér alapján). Akik céges autót használnak, azoknak vezetni kell az autóhoz tartozó útnyilvántartást Feladat megoldása

8 8. oldal Feladat Tervezze meg a VaKer élelmiszerekkel kereskedő cég számlázási rendszerének EER modelljét. A számlákon legyen egyedi azonosító, dátum, a pénztár és a pénztáros kódja, a vásárolt tételek adatai (terméknév, mennyiség, mennyiségi egység, egységár, tétel összege), és az összár. A cég 3 féle számlát használ: 1. Egyszerű bolti eladáskor nem kerülnek a vevő személyes adatai a számlára. 2. Áfás számla esetén a bolti vevők adatai rákerülnek a számlára. 3. Webes rendelés esetén a megrendelő által regisztrált név és cím kerül a számlára Feladat megoldása 1.3 A hierarchikus adatmodell A hierarchikus adatmodell kétféle alkotóelemből építkezik: Rekord: Az egy egyedhez tartozó tulajdonságok összessége. Az azonos típusú rekordok csoportjai rekordtípusokat alkotnak, melyeket a hozzájuk rendelt azonosítóval különböztetünk meg. A rekordtípust egy téglalappal adjuk meg, fejrészében az azonosító, testében az egyes tulajdonságok, a kulcs tulajdonságot aláhúzással jelezzük. PCR Parent Child Relationship (szülő-gyerek kapcsolat): Két rekordtípus közötti 1:N típusú kapcsolat, melyben egy szülőhöz több gyerek rekord is kapcsolódhat, de egy gyereknek csak egy szülője lehet. Többszintű, azaz a gyerek lehet egy következő PCR-ben a szülő. A kapcsolat jele egy nyíl, amely a szülőből mutat a gyerek felé. A modell szerkezetileg egy fa típusú gráf, a csomópontok a rekordtípusok, az élek a PCR-ek. Egy nagyobb méretű adatbázisban több előfordulási fa is található (pl. dolgozók, áruk, számlák ), de ezek önállóak, nincs köztük kapcsolat. A klasszikus modellben a rekordokat az elfoglalt pozíciójuknak megfelelően, ún. hierarchikus rekord formában tárolták, ami a fa elemeinek a bejárási sorrend alapján képzett lineáris sorozata. Ha egy rekordtípus többször is előfordult (pl. készlet az adott termékből, az adott helyen), akkor azt többször is letárolták.

9 9. oldal A kapcsolatokat adó PCR-eket külön elemként tárolta a modell, minden PCR egy-egy lista volt, amelyben pontosan leírták, hogy a szülő egyedtípus egy-egy konkrét előfordulásához a gyerek rekordtípus mely előfordulásai tartoznak. A PCR-ben tehát egy szülőhöz több gyerek is tartozhat, de alkalmatlan arra, hogy egy gyerek rekord más szülőhöz is kapcsolódjon, vagyis nem alkalmas az N:M kapcsolat leírására. A probléma megoldására a fejlettebb változatban bevezették a virtuális rekordtípust, melynek minden rekordja tartalmaz egy mutatót (pointer), ami egy másik szinten lévő rekordra mutat, ez kapcsolja össze a gyereket a szülővel. Az így létrehozott mesterséges kapcsolat elnevezése VPCR Virtual Parent Child Relationship (virtuális szülő-gyerek kapcsolat), melynek segítségével a hierarchikus modellben redundancia nélkül megvalósíthatók az N:M típusú kapcsolatok. A VPCR-hez tartozó listát a PCR-hez hasonlóan szintén külön elemként tárolja a modell, jele egy szaggatott vonalas nyíl, amely a gyerekből mutat a szülő felé. A raktári készlet nyilvántartása a klasszikus és a fejlettebb hierarchikus modellben Feladat Tervezze meg a VaKer élelmiszerekkel kereskedő cég dolgozói adatbázisának hierarchikus modelljét. Bizonyos munkakörökhöz autót biztosít a cég, az autó mindig a munkakört betöltő személynél van, akinek útnyilvántartást kell vezetnie. A dolgozóknál nyilván kell tartani a munkaidőt, és szinte minden dolgozónak van céges telefonja Feladat megoldása

10 10. oldal Feladat Tervezze meg a VaKer élelmiszerekkel kereskedő cég hierarchikus adatmodelljét Feladat megoldása Feladat Tervezze meg a VaKer élelmiszerekkel kereskedő cég raktári beszállításainak hierarchikus modelljét. Az egyes beszállítások mindig egy beszállítótól érkeznek, az egyes tételek esetén tárolni kell a mennyiséget és az egységárat is. A termékek kategóriákba vannak sorolva, minden termék egy-egy kategóriába tartozik.

11 11. oldal Feladat megoldása 1.4 Konvertálás ER modellről hierarchikusra Az egyedeknek a hierarchikus modellben a rekordtípusok felelnek meg. Az 1:1 és 1:N típusú kapcsolatok PCR-ként ábrázolhatók, az N:M típusú kapcsolatokat két kapcsolatra kell bontani, az így keletkezett új rekord az egyik szülőhöz PCR-el, a másik szülőhöz VPCR-el fog kapcsolódni. Az összetett tulajdonságok esetén elhagyjuk az összefogó tulajdonságot, és csak a komponenseket tároljuk a rekordban. A többértékű tulajdonság nem ábrázolható közvetlenül a hierarchikus modellben, ezért a tulajdonságot külön rekordba helyezzük el, és PCR-el kapcsoljuk a szülőhöz Feladat Alakítsa át az alábbi ER modellt hierarchikus modellé! Készítse el mind a klasszikus mind a fejlettebb változat modelljét.

12 12. oldal Feladat megoldása

13 13. oldal Feladat Alakítsa át az alábbi ER modellt hierarchikus modellé! Készítse el mind a klasszikus mind a fejlettebb változat modelljét.

14 14. oldal

15 15. oldal 1.5 A hálós adatmodell A hierarchikus modell továbbfejlesztése, mely támogatja az N:M típusú kapcsolatokat, és rekord szerkezetével megvalósíthatók az összetett és a többértékű tulajdonságok. Legfőbb újítás a SET, mely az azonos rekordból kiinduló PCR elemeket fogja össze. A set a szülőről (owner), vagyis a gyökér rekordról van elnevezve, ez a rekord a set tulajdonosa, a gyerek rekordtípusok a setben a tagok (member). Egy rekordtípus több setben is szerepelhet, így tetszőleges kapcsolatok leírhatók. A setek kialakításának szabályrendszerét a CODASYL szabályok írják le. Az alábbi példában az adatmodell két setből áll, a képzés rekordtípus mindkét set tagja. A dolgozó rekordokban a végzettség többértékű (ezt a [*] jelöli), az oktató rekordban a lakcím több mezőből álló összetett tulajdonság. Az összevethetőség miatt megadom a hálós modellnek megfelelő ER modellt is Feladat Tervezze meg a VaKer élelmiszerekkel kereskedő cég raktárának hálós adatmodelljét. A cég külön raktárakban tárolja a fagyasztott és a hűtött élelmiszereket, a raklapos és a dobozos árukat. Minden termék külön vonalkóddal rendelkezik, egy termékből több raktárhelyen is lehet készlet (pl. más-más lejárati dátummal), és az egyes raktárhelyeken többféle termék is lehet. Az egyértelmű azonosíthatóság miatt az egyes raktárakban nem lehetnek egyforma kódú raktárhelyek. A termékek kategóriákba vannak sorolva, minden termék egy-egy kategóriába tartozik Feladat megoldása

16 16. oldal Feladat Tervezze meg a VaKer élelmiszerekkel kereskedő cég számlázási rendszerének hálós modelljét. A számlákon legyen egyedi azonosító, dátum, a pénztáros kódja, a vevő adatai, a vásárolt tételek adatai (terméknév, mennyiség, mennyiségi egység, egységár, tétel összege), és az összár. A dolgozóknál több telefonszám is lehet, a vevő címe összetett érték Feladat megoldása Feladat Tervezze meg a VaKer élelmiszerekkel kereskedő cég autóflotta nyilvántartási rendszerének hálós modelljét. Az autókhoz különböző események tartoznak (kötelező szerviz, hibajavítás, gumicsere), mely munkálatokat különböző szervizekben szoktak elvégeztetni. A kötelező szervizek esedékességét a vezetett útnyilvántartásokból lehet kideríteni. Az útnyilvántartást havonta adják le a sofőrök, de közben nemcsak egy, hanem több autót is használhatnak Feladat megoldása

17 17. oldal 1.6 Konvertálás ER modellről hálósra Az egyedeknek a hálós modellben a rekordtípusok felelnek meg. Átalakítás nélkül ábrázolhatók az összetett és a többértékű tulajdonságok, az 1:1 és az 1:N kapcsolatokból set lesz, az N:M kapcsolatok megvalósításához kapcsoló rekordokat használunk, a kapcsoló rekord mindig két setben lesz a tag, a setek tulajdonosai pedig az összekapcsolt egyedeknek megfelelő rekordtípusok lesznek Feladat Alakítsa át az alábbi ER modellt hálós modellé! Feladat megoldása Feladat Alakítsa át az alábbi ER modellt hálós modellé!

18 18. oldal Feladat megoldása 1.7 A relációs adatmodell A relációs adatmodellben a statikus tárolási szerkezet mellett a tárolt adatokra és azok tartalmára, az értékekre vonatkozó integritási szabályok is megadhatók. A tárolási szerkezet rendkívül egyszerű, az egyedeket relációkban tároljuk, ezekből a relációkból épül fel az adatbázis. A reláció leegyszerűsítve egy táblázat (tábla), melynek minden egyes cellájában egy-egy elemi érték tárolódik. Egy vízszintes irányú cellasort rekordnak nevezünk, ez egy konkrét egyed előfordulás, az egyes cellákban lévő értékek pedig az egyed tulajdonságai. A függőleges irányú cella-oszlopot mezőnek nevezzük, ezek sorrendje minden rekordban kötelezően azonos. Mivel egy cellába csak egy érték kerülhet, a modellben közvetlenül nem tárolhatók az összetett és a többértékű tulajdonságok. A modell nem tárolja külön elemként a kapcsolatokat, hanem az egymással összefüggésben lévő relációkban megismétli valamelyik mezőt, és a kapcsolatot a mezőbe beírt adatok értékegyezősége adja. Az integritási szabályok az adatokba kerülő értékekre, és az egyes adatok viszonyára vonatkoznak. Előírható egyszerű érték ellenőrzés, mely egy mezőre (pl. nem hagyható üresen

19 19. oldal a mező) vagy egy rekordra vonatkozik (egy konkrét beírt városnévhez csak bizonyos irányítószámok megengedettek). Az adatok viszonyára vonatkozó legfontosabb megkötés az elsődleges kulcs, amellyel a reláción belüli rekordok egyértelműen megkülönböztethetők egymástól. Két reláció között értelmezett a kapcsoló (idegen) kulcs, amely olyan értékeket tartalmaz, amely egy másik tábla elsődleges kulcsával megegyezik, így megvalósítva a két tábla közötti kapcsolatot. A példában a Sorszám és a Rendszám mező elsődleges kulcs, ezt az aláhúzás jelzi. Az Rszám mező idegen kulcs, ezt szaggatott aláhúzás jelöli, kötelező kitöltését pedig a sötét háttér jelzi. Jelentése: a mezőbe csak olyan érték írható, mely az autó táblában Rendszámként már megtalálható. A nyíl a két reláció közötti adatkapcsolatot jelzi, iránya mindig az idegen kulcs felől a hivatkozott elsődleges kulcs felé mutat. A rajz helyett alkalmazható a séma leírás is, melyben megadjuk a relációk nevét, és felsoroljuk azok mezőit. Az elsődleges kulcsot aláhúzással, az idegen kulcsot szaggatott aláhúzással jelöljük. Az egyértelműség miatt, az egymással kapcsolatot tartó mezők elnevezésénél használjuk ugyanazokat a mezőneveket (Rendszám)! Autó [ Rendszám, Típus, Fogyaszt ] Útnyilvántartás [ Sorszám, Rendszám, Dátum, Útvonal, Km ] Feladat Tervezze meg a VaKer élelmiszerekkel kereskedő cég tanfolyamainak relációs adatmodelljét. A dolgozóknál kódjukon és nevükön kívül tároljuk a végzettségeiket is. A tanfolyamokat több témában tartják, egy-egy témából különböző időpontokban és általában más helyszínen többet is. Egy tanfolyamot általában több oktató tart, bizonyos oktatók több tanfolyamban is részt vesznek. Az oktatóknál nevükön és kódjukon kívül tároljuk címüket is, ami összetett tulajdonság. Adja meg a relációk sémáját is Feladat megoldása Dolgozó [ Dkód, Dnév ] Végzettség [ Dkód, Leírás ] Tanfolyam [ Tkód, Téma ] Képzés [ Dkód, Dátum, Hely, Tkód ] Oktató [ Okód, Onév, IrSz, Város, UHsz ] T-O [ Tkód, Okód ]

20 20. oldal Feladat Tervezze meg a VaKer élelmiszerekkel kereskedő cég raktárának relációs adatmodelljét. A cég külön raktárakban tárolja a fagyasztott és a hűtött élelmiszereket, a raklapos és a dobozos árukat. Minden termék külön vonalkóddal rendelkezik, egy termékből több raktárhelyen is lehet készlet (pl. más-más lejárati dátummal), és az egyes raktárhelyeken többféle termék is lehet. Az egyértelmű azonosíthatóság miatt az egyes raktárakban nem lehetnek egyforma kódú raktárhelyek. A termékek kategóriákba vannak sorolva, minden termék egy-egy kategóriába tartozik. A készlet mellett tárolni kell a betárolási és a lejárati dátumot. Adja meg a relációk sémáját is Feladat megoldása Kategória [ Kkód, Leírás ] Termék [ Tkód, Tnév, MEgys, Kkód ] Raktár [ Rkód, Leírás, Aktív ] Raktárhely [ Rhkód, Aktív, Rkód ] Készlet [ Tkód, Menny, Bedat, Ledat, Rhkód ] Feladat Tervezze meg a VaKer élelmiszerekkel kereskedő cég számlázási rendszerének relációs adatmodelljét. A számlákon legyen egyedi azonosító, dátum, a pénztáros kódja, a vevő adatai, a vásárolt tételek adatai (terméknév, mennyiség, mennyiségi egység, egységár, tétel összege), és az összár. Adja meg a relációk sémáját is Feladat megoldása Vevő [ Vkód, Vnév, IrSz, Város, UHsz ] Dolgozó [ Dkód, Dnév ] Számla [ SzSzám, Dkód, Dátum, Összár, Vkód ] Termék [ Tkód, Tnév, MEgys, EgysÁr ] Tétel [ SzSzám, Sorszám, Tkód, Menny, Összeg ]

21 21. oldal Feladat Tervezze meg a VaKer élelmiszerekkel kereskedő cég raktári megrendeléseinek relációs adatmodelljét. Minden termék külön vonalkóddal rendelkezik, de kategóriákat alkotnak, pl. többféle tej és sajt lehet a tejtermék kategóriában. A rendelésben szerepeljen a rendelésszám, a kiállítás dátuma, a megrendelés határideje, a beszállító adatai, a rendelést készítő dolgozó adatai, és minden megrendelt tételnél a termék neve, mennyiségi egysége és mennyisége. Egy rendelésben több beszállító is részt vehet Feladat megoldása 1.8 Konvertálás ER modellről relációsra Az egyedeknek a relációs modellben a relációk felelnek meg, az egyértékű tulajdonságokból lesznek a mezők, az összetett tulajdonságok esetén elhagyjuk az összefogó tulajdonságot, és csak a komponenseket tároljuk a relációban. A többértékű tulajdonság nem ábrázolható közvetlenül, ezért a tulajdonságot egy új relációba helyezzük el, melyet kibővítünk egy idegen kulcs mezővel, és ezen keresztül teremtjük meg a kapcsolatot az eredeti reláció elsődleges kulcsával. Az 1:1 és az 1:N kapcsolatokat szintén idegen kulcs mező beszúrásával alakítjuk át, az N:M kapcsolatokat pedig egy új kapcsoló reláció kialakításával realizáljuk Feladat Alakítsa át az alábbi ER modellt relációs modellé! Feladat megoldása

22 22. oldal Feladat Alakítsa át az alábbi ER modellt relációs modellé! Feladat megoldása Feladat Alakítsa át az alábbi ER modellt relációs modellé! Feladat megoldása

23 23. oldal 1.9. Normalizálás A normalizálás az adatbázis belső szerkezetének ellenőrzése, lépésenkénti átalakítása oly módon, hogy az adatbázis minden egyes lépésben egy-egy újabb kritériumnak, egymásra épülő normálformának feleljen meg. A műveletsorozat célja a redundancia- és anomáliamentes adatbázisok kialakítása. Nézzük az alábbi példát, egy bolti számlát: SzSzám Dátum Vnév Vcím Dkód Dnév Tkód Tnév Menny EgysÁr Összeg Összár Kis Mc. Jég 14 Hó Ida A673 Izzósor Éva u.1 C193 Gyertya F003 Fenyő 2, Egy vevő általában több terméket vásárol, emiatt a Tkód..Összeg mezők többértékűek. Írjuk fel a mezők közötti összefüggéseket: FD Functional Dependency, funkcionális függőség. SzSzám Dátum, Vnév, Vcím, Dkód, Dnév, Összár SzSzám, Tkód Tnév, Menny, EgysÁr, Összeg Induljon a normalizálás: 1NF Első normálforma: Egy reláció 1NF-ben van, ha minden attribútum egyértékű, és a relációban van kulcs. (A kulcs miatt a sorok különböznek egymástól.) Ha az FD-knek megfelelően az eredeti relációt két új relációra bontjuk, akkor egy olyan adatbázist kapunk, amely 1NF-ben van: R1 [SzSzám, Dátum, Vnév, Vcím, Dkód, Dnév, Összár] R2 [SzSzám, Tkód, Tnév, Menny, EgysÁr, Összeg] 2NF Második normálforma: Egy reláció 2NF-ben van, ha 1NF teljesül, és minden attribútum a teljes kulcstól függ. Ha a kulcs egyetlen mező, a 2NF automatikusan teljesül! Vizsgáljuk az R2 relációt, hiszen ott összetett a kulcs. Keressünk FD-ket! Tkód Tnév, EgysÁr SzSzám, Tkód Menny, Összeg

24 24. oldal A termékkódtól függ a terméknév és az egységár. A vásárolt mennyiséget és az adott mennyiségért fizetett összeget továbbra is a számlaszám-termékkód kulcs határozza meg. Most már minden a kiválasztott kulcsoktól függ, így az ennek megfelelően felbontott relációk 2NF-ben lévő adatbázist adnak. R1 [SzSzám, Dátum, Vnév, Vcím, Dkód, Dnév, Összár] R2 [Tkód, Tnév, EgysÁr] R3 [SzSzám, Tkód, Menny, Összeg] 3NF Harmadik normálforma: Egy reláció 3NF-ben van, ha 2NF teljesül, és a nem kulcs attribútumok nem függnek tranzitíven a kulcstól. Ez azt jelenti, hogy a nem kulcs attribútumok között nem találunk FD-t! Keressünk a relációkban a mezők között összefüggéseket! Vnév Vcím Dkód Dnév A vevő neve egyértelműen meghatározza a vevő címét! A dolgozó kódja egyértelműen meghatározza a dolgozó nevét! A megtalált FD-knek megfelelően újból átalakítjuk a relációkat, és így egy 3NF-ben lévő adatbázishoz jutunk. Számla [SzSzám, Dátum, Vnév, Dkód, Összár] Vevő [Vnév, Vcím] Dolgozó [Dkód, Dnév] Termék [Tkód, Tnév, EgysÁr] Tétel [SzSzám, Tkód, Menny, Összeg] A relációknak megfelelő ER modell: BCNF Boyce-Codd normálforma: Egy reláció BCNF-ben van, ha minden függőség csak jelölt kulcsból indul ki. Tételezzük fel, hogy a vevőknél tárolnánk az adószám mezőt is: R2 [Vnév, Vcím, Adószám] Ebben az esetben találnánk egy (Adószám Vnév, Vcím) FD-t, és az R2 reláció nem teljesítené a 3NF kritériumot, vagyis tovább kellene bontani két relációra. Ennek viszont semmi értelme nem lenne, hiszen olyan függőséget szüntetnénk meg, amely nem okoz ismétlődést, az adószám ugyanis éppúgy egyedi mező, mint a Vnév. Vagyis ha az R2

25 25. oldal relációban az adószám is jelölt kulcs, akkor az adatbázis bár nem 3NF, de redundancia mentes BCNF, és ez tökéletesen megfelel a normalizálás céljának: R2 [Vnév, Vcím, Adószám] Most nézzünk egy általános normalizálási példát: normalizáljuk az alábbi sémát 3NF-ig, alkalmazzuk a tanult szabályokat és axiómákat: R(A,B,C,D,E,F) ahol A C, C E, (A,B) F, B D. Armstrong 1. axiómája alapján (az egész meghatározza a részét): (A,B) A és (A,B) B Armstrong 3. axiómája alapján (a függőségek tranzitívek): (A,B) A és A C (A,B) C (A,B) C és C E (A,B) E (A,B) B és B D (A,B) D A fentiekből következik, hogy (A,B) meghatározza az összes többi attribútumot, így 1NF-ben ez lesz a kulcs: 1NF: R(A,B,C,D,E,F) 2N-hez úgy daraboljuk a relációkat, hogy a relációban maradó teljes kulcstól függjenek: A C, C E R1(A,C,E) (A,B) F R2(A,B,F) B D R3(B,D) Vagyis 2NF: R1(A,C,E) R2(A,B,F) R3(B,D) 3NF-hez nem kulcsból kiinduló FD-ket keresünk (most: C E), és ezek alapján daraboljuk az adott relációkat, vagyis: R1(A,C,E) R1(A,C) R2(C,E) Vagyis 3NF: R1(A,C) R2(C,E) R3(A,B,F) R4(B,D) Feladatok: Normalizálja az alábbi sémát 3NF-ig: R(X,Y,Z,Q,W) ahol Y W, X (Q,Z), Z Y Feladat megoldása: Normalizálja az alábbi sémát 3NF-ig: R(X,Y,Z,Q,W) ahol Y W, X (Q,Z), Z Y. A szétvághatósági szabály alapján: X (Q,Z) X Q és X Z Armstrong 3. axiómája alapján: X Z és Z Y X Y X Y és Y W X W A mezők atomiságát feltételezve: 1NF: R(X,Y,Z,Q,W) 2NF: = 1NF 3NF: R1(X,Q,Z) R2(Z,Y) R3(Y,W)

26 26. oldal Normalizálja az alábbi sémát BCNF-ig: R(A,B,C,D,E) ahol C E, A D, E B, (A,E) A Feladat megoldása: Normalizálja az alábbi sémát BCNF-ig: R(A,B,C,D,E) ahol C E, A D, E B, (A,E) A. Armstrong 1. axiómája alapján: Armstrong 3. axiómája alapján: A mezők atomiságát feltételezve: 1NF: R(A,C,B,D,E) 2NF: R1(A,C) R2(A,D) R3(C,E,B) 3NF: R1(A,C) R2(A,D) R3(C,E) R4(E,B) BCNF: = 3NF (A,E) A és (A,E) E (A,E) A és A D (A,E) D (A,E) E és E B (A,E) B De C E, ezért (A,C) a kulcs Normalizálja az alábbi sémát BCNF-ig: R(X,Y,Z,Q,R,S) ahol (Y,Q) Y, Q Z, Y S, (Y,Q) R, S X Feladat megoldása: Normalizálja az alábbi sémát BCNF-ig: R(X,Y,Z,Q,R,S) ahol (Y,Q) Y, Q Z, Y S, (Y,Q) R, S X. Armstrong 1. axiómája alapján: (Y,Q) Y és (Y,Q) Q Armstrong 2. axiómája alapján: Q Z (Y,Q) (Y,Z) A szétvághatósági szabály alapján: (Y,Q) (Y,Z) (Y,Q) (Y) és (Y,Q) (Z) Armstrong 3. axiómája alapján: (Y,Q) Y és Y S (Y,Q) S (Y,Q) S és S X (Y,Q) X A mezők atomiságát feltételezve: 1NF: R(Y,Q,X,Z,R,S) 2NF: R1(Y,Q,R) R2(Y,S,X) R3(Q,Z) 3NF: R1(Y,Q,R) R2(Y,S) R3(S,X) R4(Q,Z) BCNF: = 3NF Normalizálja az alábbi sémát BCNF-ig: R(A,B,C,D,E,F) ahol A C, E B, C (F,C), (A,E) D Feladat megoldása: Normalizálja az alábbi sémát BCNF-ig: R(A,B,C,D,E,F) ahol A C, E B, C (F,C), (A,E) D. Armstrong 1. axiómája alapján: (A,E) A és (A,E) E A szétvághatósági szabály alapján: C (F,C) C (F) és C (C) Armstrong 3. axiómája alapján: (A,E) A és A C (A,E) C (A,E) C és C F (A,E) F (A,E) E és E B (A,E) B

27 27. oldal A mezők atomiságát feltételezve: 1NF: R(A,E,B,C,D,F) 2NF: R1(A,E,D) R2(A,C,F) R3(E,B) 3NF: R1(A,E,D) R2(A,C) R3(C,F) R4(E,B) BCNF: = 3NF Normalizálja az alábbi sémát BCNF-ig: R(A,B,C,D,E) ahol A B, A C, B A, B C, C D, D E Feladat megoldása: Normalizálja az alábbi sémát BCNF-ig: R(A,B,C,D,E) ahol A B, A C, B A, B C, C D, D E. Armstrong 3. axiómája alapján: B C és C D B D B D és D E B E De A B, tehát A vagy B lehet a kulcs. A mezők atomiságát feltételezve: 1NF: R(B,A,C,D,E) 2NF: = 1NF 3NF: R1(B,A) R2(A,C) R3(C,D) R4(D,E) BCNF: R1(B,A,C) R2(C,D) R3(D,E) Lekérdezési feladatok a hálós adatmodellben Az NDQL (Network Data Query Language) rekordorientált, navigációs jellegű lekérdező nyelv, amelyben úgy kell mozgatni a rekord pointereket, hogy a kívánt rekord előfordulás kerüljön a gazdanyelv és az adatbázis által is látott osztott memória területre. Az értelmezett műveletek: p 1 feltétel (rekord): A megadott rekordtípuson belül az első olyan rekord előfordulásra áll rá, mely teljesíti a paraméterként megadott feltételt. p n feltétel (rekord): o (set, rekord): Pozícionálás a feltételnek eleget tevő következő rekord előfordulásra. Pozícionálás a megadott setben a megadott rekordtípushoz tartozó tulajdonos rekord előfordulásra. m 1 feltétel (set, rekord): Pozícionálás a megadott setben a megadott rekordtípushoz tartozó, feltételnek eleget tevő első tag rekord előfordulásra. m n feltétel (set, rekord): Pozícionálás a megadott setben a megadott rekordtípushoz tartozó, feltételnek eleget tevő következő tag rekord előfordulásra. Használjunk C szerű gazdanyelvet, a kiírásra alkalmazzuk a print utasítást, a navigációs lépések sikeres elvégzését pedig a db_status változó jelezze. Adott a következő hálós adatmodell, a feladatokat ezen oldjuk meg!

28 28. oldal Az A40-es raktárhelyen lévő termékek neve, mennyisége: p 1 Rhkód= A40 (Raktárhely) while (db_status = = 0) { m 1 (Rh, Készlet) while (db_status = = 0) { o (Tk, Készlet) print(tnév, Menny) m n (Rh, Készlet) } p n Rhkód= A40 (Raktárhely) } Összesen mekkora mennyiség van a Gumikolbász nevű termékből? szum=0 p 1 Tnév= Gumikolbász (Termék) while (db_status = = 0) { m 1 (Tk, Készlet) szum=szum+menny m n (Tk, Készlet) } print(szum) } Feladat: Mely raktárhelyeken van Ft-nál drágább termék? Feladat megoldása: p 1 EgysÁr>10000 (Termék) while (db_status = = 0) { m 1 (Tk, Készlet) while (db_status = = 0) { o (Rh, Készlet) print(rhkód) m n (Tk, Készlet) } p n EgysÁr>10000 (Termék) }

29 29. oldal Feladat: Mely raktárhelyeken mekkora mennyiség van a Gumikolbász nevű termékből? Feladat megoldása: p 1 Tnév= Gumikolbász (Termék) while (db_status = = 0) { m 1 (Tk, Készlet) while (db_status = = 0) { o (Rh, Készlet) print(rhkód, Menny) m n (Tk, Készlet) } pn 1 Tnév= Gumikolbász (Termék) } Feladat: Hányféle termék van az A40-es raktárhelyen? Feladat megoldása: db=0 p 1 Rhkód= A40 (Raktárhely) while (db_status = = 0) { m 1 (Rh, Készlet) db=db+1 m n (Rh, Készlet) } print(db) } Feladat: Mekkora értékű készlet van az A40-es raktárhelyen? Feladat megoldása: Érték=0 p 1 Rhkód= A40 (Raktárhely) while (db_status = = 0) { m 1 (Rh, Készlet) while (db_status = = 0) { o (Tk, Készlet) Érték=Érték+Menny*EgysÁr m n (Rh, Készlet) } print(érték) }

30 30. oldal Relációs algebra Olyan lekérdező nyelv, mely a matematika halmazelméletén alapul. Csak lekérdezésekre használható, az eredmény mindig egy új reláció. Műveletek, jelük, jelentésük: Szelekció: feltétel (R) feltételes rekordkiválogatás Projekció: mezőlista (R) mezőlista szűkítés Join: R1 R2 relációk összekapcsolása Alap join: R1x R2 relációk teljes összekapcsolása Szelekciós join: R1 feltétel R2 a feltételnek megfelelő rekordpárosok Equijoin: R1 = R2 az azonos elnevezésű mezők rekordpárosai Natural join: R1 * R2 az azonos elnevezésű mezők rekordpárosai, ismétlődés nélkül Outer join: R1 + feltétel R2 a feltételnek megfelelő rekordpárosok, és az illeszkedő pár nélküli rekordok, a túloldalon üres étékekkel kiegészítve (left, right, full típusok) Kiterjesztés: mezőlista (R) reláció kibővítése származtatott mezőkkel Aggregáció: aggregációs-lista (R) összesítő érték előállítása Sum, Halmazműveletek: unió R1 R2, metszet R1 R2, különbség R1 \ R2, hányados R1 R2 Adott a következő relációs modell, a feladatokat ezen kell megoldani. Magyarázat: a projektek egy havi időtartamúak, általában minden hónapban újraindulnak, így a dátum mindig az adott hónap első napja. A projektben a Tbér az egy havi teljesítménybér Feladatsor 1. Adja meg az osztályok nevét! 2. Adja meg a könyvelés dolgozóinak nevét, alapbérét! 3. Hány Osztály van? 4. Hányan dolgoznak a könyvelésen? 5. Kik vettek részt a 2010 májusi raktártakarítás projektben? 6. Adja meg a legnagyobb teljesítménybérű projektben részt vevők nevét! 7. Kik nem vettek még részt projektben? 8. Összesen mennyibe került már a fásítás projekt? 9. Hányan vettek részt a 2010 májusi projektekben projektenként? 10. Ki vett részt már legalább ötször projektekben? Feladatsor megoldása: 1. П Onév (Osztály) 2. П Dnév, Alapbér (σ Onév= könyvelés (Dolgozó * Osztály)) 3. Γ count(*) (Osztály) Azt írja ki, hány darab rekord van az Osztály relációban.

31 31. oldal 4. Γ count(*) (σ Onév= könyvelés (Dolgozó * Osztály)) A dolgozó és az osztály rekordpárosaiban hányszor fordul elő olyan rekord, ahol az osztálynév könyvelés. 5. П Dnév, (σ Pnév= raktártakarítás AND Dátum= ((Dolgozó * Részt vesz) * Projekt )) 6. П Dnév, (σ Tbér= Γ max(tbér) (Projekt) ((Dolgozó * Résztvesz) * Projekt )) 7. П Dnév (Dolgozó) \ П Dnév (Dolgozó * Résztvesz) Az összes dolgozó nevéből kivonjuk a projektekben részt vettek nevét. 8. Γ sum(tbér) ( σ Pnév= fásítás (Résztvesz * Projekt )) 9. Γ Pnév Pnév, count(*) (σ Dátum= (Résztvesz * Projekt )) 10. П Dnév (σ db>=5 (Γ Dnév Dnév, count(*) db (Dolgozó * Résztvesz))) Feladatsor A relációk ugyanazok, de a mezőnevek megváltoztak! 1. Adja meg a könyvelés dolgozóinak nevét, alapbérét! 2. A pénztárosok mely projektekben vettek részt 2010 májusában? 3. Mennyi volt a fizetése Kiss Dezsőnek 2010 májusában? 4. Az egyes osztályokon hány miskolci dolgozó van? 5. Az egyes projekteken dolgozóknak mennyi az átlagéletkora? 6. Van olyan projekt, amelynek neve megegyezik egy osztály nevével? 7. Ki (név és osztály) és mikor vett részt fásítás projekten? 8. A projekteken részt vettek közül kinek a legmagasabb az alapbére? 9. Ki hány projekten vett már részt? 10. Adja meg annak a dolgozónak a nevét, aki 2010 májusában az alapbére felénél több jövedelmet szerzett projektekből! Feladatsor megoldása: 1. П Dolgozó.Név, Alapbér (σ Osztály.Név= könyvelés (Dolgozó Oszt=Osztály.Kód Osztály)) 2. Megoldás az alap join felhasználásával: П Projekt.Név (σ Dátum= AND Beosztás= pénztáros AND Dolgozó.Kód=Résztvesz.Dolg AND Résztvesz.Proj=Projekt.Kód (Dolgozó x Résztvesz x Projekt )) 2. Megoldás szelekciós joinnal: П Projekt.Név (σ Dátum= AND Beosztás= pénztáros ((Dolgozó Dolgozó.Kód=Résztvesz.Dolg Résztvesz) Résztvesz.Proj=Projekt.Kód Projekt )) 3. Alapbér+ Γ sum(tbér) (σ Dátum= AND Dolgozó.Név= Kiss Dezső ((Dolgozó Dolgozó.Kód=Résztvesz.Dolg Résztvesz) Résztvesz.Proj=Projekt.Kód Projekt )) 4. Γ Osztály.Név Osztály.név, count(*) (σ Város= Miskolc (Dolgozó Oszt=Osztály.Kód Osztály)) 5. Γ Projekt.Név Projekt.név, avg(kor) ((Dolgozó Dolgozó.Kód=Résztvesz.Dolg Résztvesz) Résztvesz.Proj=Projekt.Kód Projekt )) 6. П Osztály.Név (σ Osztály.Név=Projekt.Név (((Osztály Osztály.Kód=Oszt Dolgozó) Dolgozó.Kód=Résztvesz.Dolg Résztvesz) Résztvesz.Proj=Projekt.Kód Projekt ))

32 32. oldal 7. П Osztály.Név, Dolgozó.Név, Dátum ( σ Projekt.Név= fásítás (((Osztály Osztály.Kód=Oszt Dolgozó) Dolgozó.Kód=Résztvesz.Dolg Résztvesz) Résztvesz.Proj=Projekt.Kód Projekt )) 8. П Dolgozó.Név, Alapbér ( σ Alapbér= Γ max(alapbér) (Dolgozó Dolgozó.Kód=Résztvesz.Dolg Résztvesz) Dolgozó) 9. Γ Dolgozó.Név DolgozóNév, count(*) (Dolgozó Dolgozó.Kód=Résztvesz.Dolg Résztvesz) 10. П Dolgozó.Név ( σ Dátum= AND Alapbér/2< Γ sum(tbér) (σ D.kód=Dolg (Résztvesz) Résztvesz.Proj=Projekt.Kód Projekt ) Dolgozó D ) 2. SQL feladatok Structured Query Language az adatbázis kezelő rendszerek szabványosított nyelve. Utasításai négy nagy csoportba sorolhatók: 1. Data Definition Language adat meghatározó nyelv: Create létrehozás: create table táblanév(mezőnév típus integritási feltételek, ); Alter módosítás: alter table táblanév add modify (mév tip intfelt, ); Drop törlés: drop table táblanév; 2. Data Manipulation Language adatkezelő nyelv: Insert adat felvitel: insert into táblanév(érték, ); Delete adat törlés: delete from táblanév feltétel; Update adat módosítás: update táblanév set mezőnév=érték feltétel; 3. Data Query Language adat lekérdező nyelv: Select adat kiválasztás: select mezőnevek from táblanév feltétel; 4. Data Control Language adat felügyelő nyelv (felhasználói jogosultságok): Grant jogosultság adás: grant művelet on táblanév to felhasználó; Revoke jogosultság visszavonás: revoke on táblanév from felhasználó; Deny jogosultság megtagadás: deny művelet on táblanév to felhasználó; 2.1. Feladatsor A feladatokat az alábbi modellnek megfelelően kell megoldani. Magyarázat: a projektek egy havi időtartamúak, általában minden hónapban újraindulnak, így a dátum mindig az adott hónap első napja. A projektben a Tbér az egy havi teljesítménybér, az aktív mező értéke I vagy N lehet. Ha I, akkor fel lehet iratkozni rá Feladat: hozza létre a táblákat! A projekt táblában a tbér értéke nem érheti el a Ft-ot, az aktív mezőbe pedig csak az I és az N betűket lehessen bevinni. A Dolgozó táblában a kor 18 és 62 év közötti lehet, az alapbér pedig nem lehet nél kevesebb. A Résztvesz táblában írjuk elő, hogy egy dolgozó egy projektre egy adott hónapban csak egyszer jelentkezhessen.

33 33. oldal Feladat megoldása: Az egyes feladatoknál az SQL92-nek megfelelő elvi megoldást adom meg, de ettől az egyes adatbázis kezelő rendszerek az implementációban, a konkrét megvalósításban eltérhetnek. A jegyzetben található konkrét megoldásokhoz a Microsoft SQL Server 2005-ös rendszerében implementált SQL nyelvet használtam. Create table Osztály( Kód char(3) primary key, Név char(20)); Create table Projekt( Kód char(3) primary key, Név char(20), Tbér numeric(5) check (Tbér<30000), Aktív char(1) check (Aktív in('i','n'))); Create table Dolgozó( Kód char(3) primary key, Név char(20), Város char(20), Beosztás char(20), Kor numeric(2) check (Kor between 18 and 62), Alapbér numeric(6) check (Alapbér>85000), Oszt char(3) not null references Osztály); Create table Résztvesz( Dolg char(3) not null references Dolgozó, Dátum date, Proj char(3) not null references Projekt, unique (Dolg, Dátum, Proj)); Az unique előírás így megadva azt jelenti, hogy az adott mezőket együtt figyelve nem lehet ismétlődés, vagyis egy dolgozókód egy adott dátummal az adott projekt mellett csak egyszer fordulhat elő Feladat Utasítás: ne a dátumot tároljunk a Résztvesz táblában, hanem számként az évet és a hónapot. Törljük a táblát, és hozzuk létre ennek megfelelően. Alakítsuk úgy ki a hónap mezőt, hogy csak a hónapoknak megfelelő számok kerülhessenek bele Feladat megoldása:

34 34. oldal Drop table Résztvesz; Create table Résztvesz( Dolg char(3) not null references Dolgozó, Év numeric(4), Hónap numeric(2) check (Hónap between 1 and 12), Proj char(3) not null references Projekt, unique (Dolg, Év, Hónap, Proj)); Feladat: Írjunk elő olyan megszorítást, hogy az év 2011 és 2020 között lehessen! Miután megoldottuk, újabb utasítás: az év inkább 2010 és 2020 között lehessen! Feladat megoldása: alter table Résztvesz add constraint évellenőr check (Év between 2011 and 2020) alter table Résztvesz drop constraint évellenőr alter table Résztvesz add constraint évellenőr check (Év between 2010 and 2020) Feladat: Írjon elő olyan feltételt, hogy egy projektre maximum négyen jelentkezhessenek. Írja elő azt a feltételt is, hogy csak aktív projektre lehessen jelentkezni! Feladat megoldása: Create assertion maxlétszám check (SELECT count(dolg) from Résztvesz group by Év, Hónap, Proj having count(dolg)>4)=0; Jelentése:azon csoportok száma, ahol a projekten 4-nél többen dolgoznak nulla kell legyen! Create assertion aktívprojekt check (SELECT count(*) from résztvesz, projekt where proj=kód and aktív='n')=0 Azon rekordok száma a résztvesz táblában, ahol a projekt nem aktív, nulla kell legyen! Az előírások elvileg működnek, gyakorlatilag az assertion parancsot a nagyobb adatbázis kezelő rendszerek nem implementálták. Ehelyett használhatók olyan triggerek, amelyek adatbeszúráskor ellenőrzik az előírt feltételeket, és ha nem teljesednek, akkor visszavonják a kiadott insert utasítást. (Ez a rollback parancs, bővebben később!) CREATE TRIGGER maxlétszám ON résztvesz FOR INSERT AS IF (SELECT count(dolg) from Résztvesz group by Év, Hónap, Proj having count(dolg)>4) >0 ROLLBACK; CREATE TRIGGER aktívprojekt ON résztvesz FOR INSERT AS IF (SELECT count(*) from résztvesz, projekt where proj=kód and aktív='n')>0 ROLLBACK; Feladat: vigye fel az alábbi adatokat az osztály táblába:

35 35. oldal b01-bolt, b02-bérügy, s01-számlázás, s02-szállítás, r01-raktár Feladat megoldása: Az első rekordot beszúró parancs: insert into Osztály values('b01', 'Bolt'); - a többi parancs ugyailyen szintaktikájú Mi az eredménye a következő parancsoknak? Működnek? Hibásak? Miért? a) insert into Osztály values('b01', 'Beszerzés'); b) insert into Osztály values('b03'); c) insert into Osztály values('b03', ); d) insert into Osztály values('b03', null); e) insert into Osztály (Kód) values('b04'); Feladat megoldása: a) A parancs hibás, mert van már b01 kódú rekord, és az elsődleges kulcs előírás egyben egyediséget is jelent. b) Hibás, a values után minden értéket meg kell adni, itt kimaradt az osztály neve. c) Hibás, így nem lehet üres értéket megadni. d) Működik, így kell az üres értéket megadni. e) Működik, így lehet nem teljes adatsort felvinni Feladat: Vigyen be minden táblába néhány rekordot! Feladat megoldása: insert into Dolgozó values('d44', 'Kék Alma', 'Miskolc', 'számlázó', 31, , 's01'); insert into Dolgozó values('d09', 'Zöld Galamb', null, 'eladó', 27, 85000, 'b01'); insert into Dolgozó values('d16', 'Fekete Farkas', 'Eger', 'raktáros', null, , 'r01'); insert into projekt values('fas', 'Fásítás', 10000, 'I') insert into projekt values('bt2', 'Bolt takarítás', 29000, 'N') insert into projekt values('rt1', 'Raktár takarítás', 10000, 'I') insert into résztvesz values ('d12', 2010, 9, 'fas') insert into résztvesz values ('d33', 2010, 10, 'rt1') insert into résztvesz values ('d04', 2010, 12, 'rt1') Kiadjuk egymás után a következő három parancsot: 1. insert into Dolgozó values('d66', 'Barna Barna', null, 'számlázó', 31, , 's01'); 2. insert into Dolgozó (Kód, Név, Beosztás, Kor, Alapbér, Oszt) values('d67', 'Fehér Hannibál', 'számlázó', 31, , 's01'); 3. update dolgozó set Város='Miskolc' where Város is null; Kérdések: a) Az update parancs hatására mindkét rekordban megváltozik a város Miskolcra? b) Hogyan lehet a d25 és a d32 közötti kódú rekordokban kijavítani a várost Miskolcra? c) Hogyan lehet kitörölni Kék Alma rekordjából a várost? d) Hogyan lehet évváltáskor mindekinél a kort megnövelni 1-el? e) Mindig, minden rekordra működik az előző parancs?

36 36. oldal f) Hogyan lehet kitörölni Kék Alma rekordját? g) Bármikor ki lehet törölni Kék Almát? Feladat megoldása: a) Igen, a nem megadott és a null-ként bevitt érték egyformán viselkedik. b) update dolgozó set Város='Miskolc' where Kód between 'd25' and 'd32'; c) update dolgozó set Város=null where Név='Kék Alma'; d) update dolgozó set Kor=Kor+1; e) Nem, az előző parancs csak akkor módosítja a rekordot, ha a kor módosítás után nem éri el a 62-t, erről gondoskodik a korra előírt check feltétel. f) delete from dolgozó where Név='Kék Alma'; g) Nem lehet bármikor törölni a rekordot: ha Kék Alma kódja szerepel a résztvesz táblában mivel ott idegen kulcs a rekord a dolgozó táblából nem törölhető Adja meg a következő lekérdezéseket megvalósító SQL parancsokat! a) A nem Béla keresztnevű raktárosok vagy eladók neve b) Hány olyan dolgózó van, akinek a kódjában a középső karakter 2-es? c) A negyedévében futó projektek neve (egy név csak egyszer szerepeljen!) d) Osztályok és dolgozóik neve, abc sorrendben e) A 04-re vagy 07-re végződő kódú 30-as korú dolgozók neve, alapbére, alapbér szerinti csökkenő sorrendben Feladat megoldása: a) Select név from dolgozó where név not like '% Béla' and beosztás ='eladó' or név not like '% Béla' and beosztás='raktáros'; b) select count(*) from dolgozó where kód like '_2_'; c) Select distinct név from projekt, résztvesz where proj=kód and év=2010 and hónap in (7, 8, 9); A distinct kulcsszó biztosítja az egyediséget, ezért egy név csak egyszer íródik ki. d) Select osztály.név, dolgozó.név from osztály, dolgozó where oszt=osztály.kód order by osztály.név, dolgozó.név; e) Select név, alapbér from dolgozó where kód like '_04' and kor like '3_' or kód like '_07' and kor like '3_' order by alapbér desc; Adja meg a következő lekérdezéseket megvalósító SQL parancsokat! a) A bérügy dolgozóinak neve, éves alapfizetése b) Az összes különböző beosztás kiírása (csak létező beosztások!) c) A raktáros beosztásúak átlag alapbére d) A nem miskolci dolgozók száma, városonként csoportosítva e) A legmagasabb alapbérű dolgozó(k) neve, alapbére Feladat megoldása: a) Select dolgozó.név, 12*alapbér Éves_alapfizetés from osztály, dolgozó where oszt=osztály.kód and osztály.név='bérügy'; b) Select distinct beosztás from dolgozó where beosztás is not null; c) Select avg(alapbér) from dolgozó where beosztás='raktáros'; d) Select város, count(*) from dolgozó where város!= 'Miskolc' group by város; e) Select név, alapbér from dolgozó where alapbér = (select max(alapbér) from dolgozó);

37 37. oldal Feladat. Mi az eredménye a következő SQL parancsoknak? a) Select osztály.név, avg(alapbér) from osztály, dolgozó where oszt=osztály.kód group by osztály.név order by avg(alapbér); b) select dolgozó.név from dolgozó, résztvesz, projekt where dolg=dolgozó.kód and proj=projekt.kód and projekt.név='fásítás'; c) select név from dolgozó where név not in(select dolgozó.név from dolgozó, résztvesz, projekt where dolg=dolgozó.kód and proj=projekt.kód and projekt.név='fásítás'); d) select osztály.név, projekt.név from osztály, dolgozó, résztvesz, projekt where oszt=osztály.kód and dolg=dolgozó.kód and proj=projekt.kód and év=2010 and hónap=12 group by osztály.név, projekt.név; e) Select dolgozó.név, sum(tbér)+sum(alapbér)/count(alapbér) from dolgozó, résztvesz, projekt where dolg=dolgozó.kód and proj=projekt.kód and év=2010 and hónap=12 group by dolgozó.név; Feladat megoldása: a) Osztályok szerinti átlagfizetés, átlagfizetés szerinti növekvő sorrendben b) Azok neve, akik dolgoztak már a fásítás projektben c) Azok neve, akik nem dolgoztak még a fásítás projektben d) 2010 decemberében mely osztályok, milyen projektekben vettek részt e) A 2010, decemberi fizetések: alapbér és a projektek után járó teljesítménybér Adja meg a következő lekérdezéseket megvalósító SQL parancsokat! a) Azon osztályok neve és létszáma, ahol 10-nél kevesebben dolgoznak b) A legmagasabb átlagos alapbérű osztály neve, és átlag alapbére c) Az egyes osztályokon hány Ft-nál többet kereső személy van d) Az egyes projektekre hányszor jelentkeztek (kellenek azok a projektek is, amelyekre még sosem jelentkeztek!) e) Kék Alma az egyes projektekre hányszor jelentkezett (kellenek azok a projektek is, amelyekre még sosem jelentkezett!) f) Ki hány projektekre jelentkezett már (azok neve is kell, akik még nem jelentkeztek sosem projektre!) g) Az egyes osztályokról hányszor jelentkeztek már projektre (azon osztályok neve is kell, ahonnan még sosem jelentkeztek projektre!) Feladat megoldása: a) Select osztály.név, count(oszt) from osztály, dolgozó where oszt=osztály.kód group by osztály.név having count(oszt) <10; b) create view osztatlagfiz as select oszt, avg(alapbér) átlag from dolgozó group by oszt; select oszt, átlag from osztatlagfiz where átlag=(select max(átlag) from osztatlagfiz); Ha már nem kell: drop view osztatlagfiz; c) select osztály.név, count(*) from osztály join dolgozó on oszt=osztály.kód where alapbér> group by osztály.név; d) select projekt.név, count(proj) from projekt left outer join résztvesz on projekt.kód=proj group by projekt.név; e) select projekt.név, count(proj) from projekt left outer join résztvesz on projekt.kód=proj left outer join dolgozó on dolg=dolgozó.kód and dolgozó.név='kék Alma' group by projekt.név; f) select név, count(dolg) from dolgozó left outer join résztvesz on dolgozó.kód=dolg group by név;

38 38. oldal g) select osztály.név, count(dolg) from osztály left outer join dolgozó on osztály.kód=oszt left outer join résztvesz on dolgozó.kód=dolg group by osztály.név; 2.4. Adja meg a szükséges SQL parancsokat! a) Engedélyezze Péter5-nek, hogy lekérdezzen a dolgozó táblából. b) Engedélyezze mindenkinek a lekérdezést a dolgozó táblából. c) Engedélyezze a beszúrást és a módosítást Péter5-nek a projekt és a résztvesz táblára. d) Vonja vissza a beszúrás jogot a projekt tábla esetén Péter5-től. e) Tiltsa le Péter5 minden jogát a résztvesz táblával kapcsolatban. f) Engedélyezze Péter5-nek, hogy lekérdezzen a résztvesz táblából Feladat megoldása: a) Grant select on dolgozó to Péter5; b) Grant select on dolgozó to public; c) Grant insert, update on projekt, résztvesz to Péter5; d) Revoke insert on projekt from Péter5; e) Dany all on résztvesz to Péter5; f) Először meg kell szüntetni a Dany hatását: Revoke all on résztvesz to Péter5; ezután engedélyezni a lekérdezést: Grant select on résztvesz to Péter5;

Adatbázis rendszerek Ea: A rendes állapot. Normalizálás

Adatbázis rendszerek Ea: A rendes állapot. Normalizálás Adatbázis rendszerek 1. 3. Ea: A rendes állapot Normalizálás 1/31 B ITv: MAN 2017.10.08 Normalizálás A normalizálás az adatbázis belső szerkezetének ellenőrzése, lépésenkénti átalakítása oly módon, hogy

Részletesebben

Adatbázis rendszerek Ea: A rendes állapot. Normalizálás

Adatbázis rendszerek Ea: A rendes állapot. Normalizálás Adatbázis rendszerek 1. 3. Ea: A rendes állapot Normalizálás 19/1 B ITv: MAN 2015.09.08 Normalizálás A normalizálás az adatbázis belső szerkezetének ellenőrzése, lépésenkénti átalakítása oly módon, hogy

Részletesebben

11. Gyakorlat Adatbázis-tervezés, normalizálás. Redundancia: egyes adatelemek feleslegesen többször is le vannak tárolva

11. Gyakorlat Adatbázis-tervezés, normalizálás. Redundancia: egyes adatelemek feleslegesen többször is le vannak tárolva 11. Gyakorlat Adatbázis-tervezés, normalizálás Redundancia: egyes adatelemek feleslegesen többször is le vannak tárolva Problémák: helypazarlás konzisztencia-őrzés nehéz Következmény -> Anomáliák: Beszúrási:

Részletesebben

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis AB1 ZH mintafeladatok 1. Töltse ki, és egészítse ki! Matematikai formalizmus arra, hogy hogyan építhetünk új relációkat a régi relációkból. Az adatoknak egy jól strukturált halmaza, amelyből információ

Részletesebben

Adatbázis rendszerek SQL nyomkövetés

Adatbázis rendszerek SQL nyomkövetés Adatbázis rendszerek 1. 12. SQL nyomkövetés 1/32 B ITv: MAN 2017.10.26 Nyomkövetési feladat 2/32 Gyakorló feladatok Termék-Vásárlás-Vásárló Oktató-Tantárgy-Hallgató 3/32 Gyakorló feladat: Termék-Vásárlás-Vásárló

Részletesebben

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai: 8. Gyakorlat SQL SQL: Structured Query Language; a relációs adatbáziskezelők szabványos, strukturált lekérdező nyelve SQL szabványok: SQL86, SQL89, SQL92, SQL99, SQL3 Az SQL utasításokat mindig pontosvessző

Részletesebben

Adatbázis rendszerek 1. 5.Gy: ER relációs konverzió

Adatbázis rendszerek 1. 5.Gy: ER relációs konverzió Adatbázis rendszerek 1. 5.Gy: ER relációs konverzió 1/60 B ITv: MAN 2018.10.14 A féléves feladat Témakör: Relációs adatbázis tervezés, SQL Feladat részletezése: A tervezett adatbázis szöveges leírása:

Részletesebben

Adatbázis rendszerek 1. 4.Gy: ER modell

Adatbázis rendszerek 1. 4.Gy: ER modell Adatbázis rendszerek 1. 4.Gy: ER modell. 1/23 B ITv: MAN 2018.10.10 Az ER (Entity Relationship) modell Egyed Kapcsolat modell Kidolgozója: Chen (1976) Egyszerűsített szemantikai adatmodell Csak strukturális

Részletesebben

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei 1. Mi az elsődleges következménye a gyenge logikai redundanciának? inkonzisztencia veszélye felesleges tárfoglalás feltételes függés 2. Az olyan tulajdonság az egyeden belül, amelynek bármely előfordulása

Részletesebben

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT ÓBUDAI EGYETEM Neumann János Informatikai Kar Nappali Tagozat ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT NÉV: MÁK VIRÁG NEPTUN KÓD: A DOLGOZAT CÍME: Jani bácsi székadatbázisa Beadási határidő: 14. oktatási hét

Részletesebben

BEVEZETÉS Az objektum fogalma

BEVEZETÉS Az objektum fogalma BEVEZETÉS Az objektum fogalma Program (1) Adat (2) Objektum Kiadványszerkesztés Word Táblázatkezelés Excel CAD AutoCad Adatbáziskezelés Access 1 Program (1) Adat (2) Objektum Adatmodell (2) A valós világ

Részletesebben

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP-4.1.2-08/1/A-2009-0010

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP-4.1.2-08/1/A-2009-0010 INFORMATIKA ÁGAZATI ALKALMAZÁSAI Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP-4.1.2-08/1/A-2009-0010 2. Adatbáziskezelés eszközei Adatbáziskezelés feladata Adatmodell típusai Relációs adatmodell

Részletesebben

Adatbázis rendszerek 1. 7.Gy: Rakjunk rendet. Normalizálás

Adatbázis rendszerek 1. 7.Gy: Rakjunk rendet. Normalizálás Adatbázis rendszerek 1. 7.Gy: Rakjunk rendet Normalizálás 51/1 B ITv: MAN 2018.12.06 Normalizálás Adatbázis tervezés során olyan adatstruktúrákat kell kialakítani amelyek segítik a hatékony adatkezelést

Részletesebben

Adatbázisok* tulajdonságai

Adatbázisok* tulajdonságai Gazdasági folyamatok térbeli elemzése 4. előadás 2010. 10. 05. Adatbázisok* tulajdonságai Rendezett, logikailag összefüggő és meghatározott szempont szerint tárolt adatok és/vagy információk halmaza Az

Részletesebben

Adatbázis, adatbázis-kezelő

Adatbázis, adatbázis-kezelő Adatbázisok I. rész Adatbázis, adatbázis-kezelő Adatbázis: Nagy adathalmaz Közvetlenül elérhető háttértárolón (pl. merevlemez) Jól szervezett Osztott Adatbázis-kezelő szoftver hozzáadás, lekérdezés, módosítás,

Részletesebben

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17 Adatbázisok 8. gyakorlat SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT 2015. október 26. 2015. október 26. Adatbázisok 1 / 17 SQL nyelv Structured Query Language Struktúrált lekérdez

Részletesebben

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai SQL ALAPOK Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai BEVEZETÉS SQL: Structured Query Language Strukturált Lekérdező Nyelv Szabvány határozza meg, azonban számos nyelvjárása létezik

Részletesebben

5. Gyakorlat. 5.1 Hálós adatbázis modell műveleti része. NDQL, hálós lekérdező nyelv:

5. Gyakorlat. 5.1 Hálós adatbázis modell műveleti része. NDQL, hálós lekérdező nyelv: 5. Gyakorlat 5.1 Hálós adatbázis modell műveleti része NDQL, hálós lekérdező nyelv: A lekérdezés navigációs jellegű, vagyis a lekérdezés megfogalmazása során azt kell meghatározni, hogy milyen irányban

Részletesebben

Adatbázis-kezelés. 3. Ea: Viszonyított betűszámtan (2013) Relációs algebra alapok (átgondolt verzió) v: 2015.02.15 Szűcs Miklós - ME, ÁIT. 1.

Adatbázis-kezelés. 3. Ea: Viszonyított betűszámtan (2013) Relációs algebra alapok (átgondolt verzió) v: 2015.02.15 Szűcs Miklós - ME, ÁIT. 1. Adatbázis-kezelés 3. Ea: Viszonyított betűszámtan (2013) Relációs algebra alapok (átgondolt verzió) v: 2015.02.15 Szűcs Miklós - ME, ÁIT. 1.o Témakörök Relációs algebra Ellenőrző kérdések 2.o Relációs

Részletesebben

Adatbázis-kezelés. alapfogalmak

Adatbázis-kezelés. alapfogalmak Adatbázis-kezelés alapfogalmak Témakörök Alapfogalmak Adatmodellek Relációalgebra Normalizálás VÉGE Adatbázis-kezelő rendszer Database Management System - DBMS Integrált programcsomag, melynek funkciói:

Részletesebben

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2 Tartalomjegyzék Tartalomjegyzék 1 Az SQL nyelv 1 Az SQL DDL alapjai 2 Adatbázis parancsok 2 Táblaparancsok 2 A táblázat létrehozása 2 A táblázat módosítása 3 A tábla törlése 3 Indextábla létrehozása 3

Részletesebben

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány) Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány) 23/1 B IT v: 2018.10.31 MAN DML adatokon műveletet végző utasítások DML Data Manipulation Language Rekordok (sorok) beszúrása (felvitele) Mezők

Részletesebben

Adatbázis-kezelés. Harmadik előadás

Adatbázis-kezelés. Harmadik előadás Adatbázis-kezelés Harmadik előadás 39 Műveletek csoportosítása DDL adat definiálás Objektum létrehozás CREATE Objektum törlés DROP Objektum módosítás ALTER DML adat módosítás Rekord felvitel INSERT Rekord

Részletesebben

Mezők viszonya a relációs adatbázis tábláiban

Mezők viszonya a relációs adatbázis tábláiban Mezők viszonya a relációs adatbázis tábláiban A normalizálás megértéséhez szükségünk van néhány további fogalom ismeretére, ezért most kisebb kitérőt teszünk. Megismerjük - a funkcionális függés, - a teljes

Részletesebben

B I T M A N B I v: T 2015.03.01 M A N

B I T M A N B I v: T 2015.03.01 M A N Adatbázis Rendszerek MSc 2. Gy: MySQL Táblák, adatok B I v: T 2015.03.01 M A N 1/41 Témakörök SQL alapok DDL utasítások DML utasítások DQL utasítások DCL utasítások 2/41 Az SQL jellemzése Az SQL a relációs

Részletesebben

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv)

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv) Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv) Az SQL a relációs adatbázis-kezelő rendszerek ma legelterjedtebb szabványosított adatbáziskezelő nyelve. Az IBM dolgozta ki 1983-ban,

Részletesebben

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER Adatbázisok I 1 SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER Módosítás: DML: - rekord felvitel INSERT - rekord törlés

Részletesebben

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte Adattípusok Típus Méret Megjegyzés Konstans BIT 1 bit TRUE/FALSE SMALLINT 2 byte -123 INTEGER 4 byte -123 COUNTER 4 byte Automatikus 123 REAL 4 byte -12.34E-2 FLOAT 8 byte -12.34E-2 CURRENCY / MONEY 8

Részletesebben

Adatbázis Rendszerek II. 8. Gyakorló környezet

Adatbázis Rendszerek II. 8. Gyakorló környezet Adatbázis Rendszerek II. 8. Gyakorló környezet 1/24 B IT v: 2017.10.26 MAN Gyakorló környezet Géptermek 193.6.5.58:8080/apex H16_neptunkód ADMIN neptunkód 2/24 Jelszó váltás 1 2 3 4 3/24 Gyakorló környezet

Részletesebben

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák SQL Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák A SELECT UTASÍTÁS ÁLTALÁNOS ALAKJA (ISM.) SELECT [DISTINCT] megjelenítendő oszlopok FROM táblá(k direkt szorzata) [WHERE feltétel]

Részletesebben

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte Adattípusok Típus Méret Megjegyzés Konstans BIT 1 bit TRUE/FALSE TINIINT 1 byte 12 SMALLINT 2 byte -123 INTEGER 4 byte -123 COUNTER 4 byte Automatikus 123 REAL 4 byte -12.34E-2 FLOAT 8 byte -12.34E-2 CURRENCY

Részletesebben

Adatbázis kezelés Delphiben. SQL lekérdezések

Adatbázis kezelés Delphiben. SQL lekérdezések Adatbázis kezelés Delphiben. SQL lekérdezések Structured Query Language adatbázisok kezelésére szolgáló lekérdező nyelv Szabályok: Utasítások tetszés szerint tördelhetők Utasítások végét pontosvessző zárja

Részletesebben

Adatbázis-kezelés, információs-rendszerek

Adatbázis-kezelés, információs-rendszerek Adatbázis-kezelés, információs-rendszerek 3. Ea: Eskúel (2011) Structured Query Language v: 2011.09.05 Szűcs Miklós - ME, ÁIT. 1.o Témakörök SQL alapok DDL utasítások DML utasítások DQL utasítás DCL utasítások

Részletesebben

Bevezetés: az SQL-be

Bevezetés: az SQL-be Bevezetés: az SQL-be Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.3. Relációsémák definiálása SQL-ben, adattípusok, kulcsok megadása 02B_BevSQLsemak

Részletesebben

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT ADATBÁZISOK 9-10. gyakorlat: SQL 2. rész SELECT SELECT utasítás általános alakja SELECT [DISTINCT] oszloplista FROM táblanévlista [WHERE feltétel] [GROUP BY oszloplista [HAVING feltétel] ] [ORDER BY oszloplista];

Részletesebben

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14 Adatbázisok 9. gyakorlat SQL: SELECT 2015. október 26. 2015. október 26. Adatbázisok 1 / 14 SQL SELECT Lekérdezésre a SELECT utasítás szolgál, mely egy vagy több adattáblából egy eredménytáblát állít el

Részletesebben

Gyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal.

Gyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal. Adatbázis létrehozása Adatleíró műveletek CREATE DATABASE "tan1" WITH ENCODING= LATIN2 ; vagy parancssorból a terminál alatt $ createdb tan1 E=latin2 Kapcsolódás az adatbázishoz $ psql tan1 Adattábla létrehozása

Részletesebben

SQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére

SQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére SQL PÉLDATÁR készült a PTE TTK Iskolai informatika III. kurzus teljesítésére PTE TTK Czimmermann Gergely MA matematika informatika tanár szakos hallgató 2017 Tartalomjegyzék 1. Adatleíró műveletek... 3

Részletesebben

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai 8. gyakorlat Structured Query Language Struktúrált lekérdező nyelv A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai DDL (Data Definition Language) adatstruktúra definiáló

Részletesebben

ADATBÁZIS RENDSZEREK I BEADANDÓ

ADATBÁZIS RENDSZEREK I BEADANDÓ ADATBÁZIS RENDSZEREK I BEADANDÓ n é v : H u zynets Erik n e p t un: BJ8BDJ t a n k ö r: G2-BGI G y a k. v ezető: Smid László G y a k. időpontja: Szerda 16-18 Feladat megfogalmazása Beadandóm főként számítógépes

Részletesebben

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások SQL haladó Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások 1 Külső összekapcsolás Összekapcsoljuk R és S relációkat: R C S. R azon sorait,

Részletesebben

Adatmodellek. 2. rész

Adatmodellek. 2. rész Adatmodellek 2. rész Makány György Alapfogalmak JEL ADAT INFORMÁCIÓ ADATHALMAZ ADATÁLLOMÁNY ADATBÁZIS 2 Alapfogalmak JEL ADATHALMAZ észlelhető, felfogható fizikai érték ADAT a valós világ egy jelenségéből

Részletesebben

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

Adatbázis-lekérdezés. Az SQL nyelv. Makány György Adatbázis-lekérdezés Az SQL nyelv Makány György SQL (Structured Query Language=struktúrált lekérdező nyelv): relációs adatbázisok adatainak visszakeresésére, frissítésére, kezelésére szolgáló nyelv. Születési

Részletesebben

Programozás. Adatbázis-kezelés (alapok) Fodor Attila

Programozás. Adatbázis-kezelés (alapok) Fodor Attila Programozás Adatbázis-kezelés (alapok) Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. április 22. Bevezetés Adatbáziskezelés

Részletesebben

Adatbázis Rendszerek II. 3. SQL alapok

Adatbázis Rendszerek II. 3. SQL alapok Adatbázis Rendszerek II. 3. SQL alapok 22/1 B IT v: 2016.10.20 MAN Oracle adattípusok Szöveges adattípusok CHAR (1-2000) VARCHAR (1-4000) VARCHAR2 (1-4000, nemzeti karakterekhez) CLOB (max. 8 TB) NCLOB

Részletesebben

Adatbáziskezelés. Indexek, normalizálás NZS 1

Adatbáziskezelés. Indexek, normalizálás NZS 1 Adatbáziskezelés Indexek, normalizálás NZS 1 Fáljszervezés módjai Soros elérés: a rekordok a fájlban tetszőleges sorrendben, például a felvitel sorrendjében helyezkednek el. A rekord azonosítója vagyis

Részletesebben

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Magas szintű adatmodellek Egyed/kapcsolat modell I. Magas szintű adatmodellek Egyed/kapcsolat modell I. Ullman-Widom: Adatbázisrendszerek. Alapvetés. 4.fejezet Magas szintű adatmodellek (4.1-4.3.fej.) (köv.héten folyt.köv. 4.4-4.6.fej.) Az adatbázis modellezés

Részletesebben

Adatbázisok. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31

Adatbázisok. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31 Adatbázisok 2. gyakorlat SQL 2016. november 12. 2016. november 12. Adatbázisok 1 / 31 SQL nyelv Structured Query Language Struktúrált lekérdez nyelv A relációs adatbáziskezelés szabványos nyelve Két f

Részletesebben

Adatbázis Rendszerek I. 9. SQL alapok (DDL esettanulmány)

Adatbázis Rendszerek I. 9. SQL alapok (DDL esettanulmány) Adatbázis Rendszerek I. 9. SQL alapok (DDL esettanulmány) 41/1 B IT v: 2017.10.30 MAN DDL Adatstruktúra definiáló utasítások DDL Data Definition Language Adatszerkezetek (elsősorban táblák) létrehozása,

Részletesebben

ADATBÁZIS-KEZELÉS Demetrovics Katalin

ADATBÁZIS-KEZELÉS Demetrovics Katalin ADATBÁZIS-KEZELÉS Demetrovics Katalin 1. Alapfogalmak...1 1.1. Adat... 1 1.2. Információ... 1 1.3. Egyed, Tulajdonság, Kapcsolat... 1 1.4. Adatmodellek... 2 1.5. Adatbázis (DATABASE, DB)... 3 2. A relációs

Részletesebben

Adatbázisok elmélete 9. előadás

Adatbázisok elmélete 9. előadás Adatbázisok elmélete 9. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu http://www.cs.bme.hu/ kiskat 2005 ADATBÁZISOK ELMÉLETE

Részletesebben

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE) október október 22. Adatbázisok 1 / 14

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE) október október 22. Adatbázisok 1 / 14 Adatbázisok 8. gyakorlat SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE) 2014. október 22. 2014. október 22. Adatbázisok 1 / 14 SQL nyelv Structured Query Language Struktúrált lekérdez nyelv A

Részletesebben

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni: 1 Adatbázis kezelés 3. gyakorlat A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni: Tábla kapcsolatok létrehozása,

Részletesebben

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla Adatbázisok-1 előadás Előadó: dr. Hajas Csilla Áttekintés az I.zh-ig Áttekintés az 1ZH-ig // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1 Hol tartunk? Mit tanultunk

Részletesebben

ADATBÁZISKEZELÉS ADATBÁZIS

ADATBÁZISKEZELÉS ADATBÁZIS ADATBÁZISKEZELÉS 1 ADATBÁZIS Az adatbázis adott (meghatározott) témakörre vagy célra vonatkozó adatok gyűjteménye. - Pl. A megrendelések nyomon követése kereskedelemben. Könyvek nyilvántartása egy könyvtárban.

Részletesebben

Adatmodellezés, alapfogalmak. Vassányi István

Adatmodellezés, alapfogalmak. Vassányi István Adatmodellezés, alapfogalmak Vassányi István Alapok A helyes modell az információs rendszer későbbi használhatóságánakazalapja, olyanmint a jómunkaruha: véd, de nem akadályozza a munkát Objektum-orientált

Részletesebben

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1 SQL 1.rész 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1 SQL története, szabványok Szabvány adatbázis-kezelő nyelv: SQL SQL (angol kiejtésben

Részletesebben

Adatmodellezés. 1. Fogalmi modell

Adatmodellezés. 1. Fogalmi modell Adatmodellezés MODELL: a bonyolult (és időben változó) valóság leegyszerűsített mása, egy adott vizsgálat céljából. A modellben többnyire a vizsgálat szempontjából releváns jellemzőket (tulajdonságokat)

Részletesebben

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 Bevezetés az SQL-be Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.3. Relációsémák definiálása SQL-ben Kulcsok megadása (folyt.köv.7.fej.) -- még: Relációs

Részletesebben

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni: 1 Adatbázis kezelés 2. gyakorlat A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni: Táblák létrehozása,

Részletesebben

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok SQL jogosultság-kezelés Privilégiumok Grant és Revoke Grant Diagrammok 1 Jogosultság-kezelés Egy fájlrendszer általában jogosultságokat rendel az általa kezelt objektumokhoz. Tipikusan olvasható, írható,

Részletesebben

Adatbázis alapú rendszerek

Adatbázis alapú rendszerek Adatbázis alapú rendszerek BookIt projekt dokumentáció Kotosz Tibor, Krajcsovszki Gergely, Seres Regina 2011 Tartalomjegyzék Jelenlegi rendszer... 2 Jelenlegi rendszer fizikai AFD-je... 2 Jelenlegi rendszer

Részletesebben

Adatbázisok elmélete 10. előadás

Adatbázisok elmélete 10. előadás Adatbázisok elmélete 10. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu http://www.cs.bme.hu/ kiskat 2004 ADATBÁZISOK ELMÉLETE

Részletesebben

Készítette: Szabóné Nacsa Rozália

Készítette: Szabóné Nacsa Rozália Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu 1 Structured Query Language (Struktúrált lekérdező nyelv) Relációs adatbázisok kezelésére kifejlesztett szabvány 2 DIAKOK dkód vnév knév 1001 Kiss János

Részletesebben

Adatbázisok I. Az SQL nyelv

Adatbázisok I. Az SQL nyelv Adatbázisok I Az SQL nyelv SQL (Structured Query Language) Deklaratív nyelv, 1974-ben publikálták Halmaz orientált megközelítés, a relációs algebra műveleteinek megvalósítására Előzménye a SEQUEL (IBM)(Structured

Részletesebben

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK Az adatbázis-kezelők elvárásai közé tartozik az, hogy legyen egy olyan adatbázis-kezelőktől független nyelv, amely az adatdefiníciós, az adatmanipulációs és a lekérdező

Részletesebben

SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER Adatbázisok I SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER Módosítás: DML: - rekord felvitel INSERT - rekord törlés

Részletesebben

NORMALIZÁLÁS. Funkcionális függés Redundancia 1NF, 2NF, 3NF

NORMALIZÁLÁS. Funkcionális függés Redundancia 1NF, 2NF, 3NF NORMALIZÁLÁS Funkcionális függés Redundancia 1NF, 2NF, 3NF FUNKCIONÁLIS FÜGGŐSÉG Legyen adott R(A 1,, A n ) relációséma, valamint P, Q {A 1,, A n } (magyarán P és Q a séma attribútumainak részhalmazai)

Részletesebben

SQL parancsok feldolgozása

SQL parancsok feldolgozása Az SQL nyelv SQL nyelv szerepe Sequental Query Language, deklaratív nyelv Halmaz orientált megközelítés, a relációs algebra műveleteinek megvalósítására Előzménye a SEQUEL (IBM) Algoritmus szerkezeteket

Részletesebben

7. előadás. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF. Adatbázisrendszerek előadás november 3.

7. előadás. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF. Adatbázisrendszerek előadás november 3. 7. előadás,,,, Adatbázisrendszerek előadás 2008. november 3. és Debreceni Egyetem Informatikai Kar 7.1 relációs adatbázisokhoz Mit jelent a relációs adatbázis-tervezés? Az csoportosítását, hogy jó relációsémákat

Részletesebben

Webfejlesztés 4. alkalom

Webfejlesztés 4. alkalom Webfejlesztés 4. alkalom Adatbázis kezelés, SQL alapismeretek, MySQL és a PHPMyAdmin használata Adatbázis kezelési alapok Az adatbázisok alapvetően adatkiszolgálást, illetve különböző szűréi, szeparálási

Részletesebben

Adatbázisok elmélete 9. előadás

Adatbázisok elmélete 9. előadás Adatbázisok elmélete 9. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu http://www.cs.bme.hu/ kiskat 2005 ADATBÁZISOK ELMÉLETE

Részletesebben

B I T M A N B I v: T 2015.03.09 M A N

B I T M A N B I v: T 2015.03.09 M A N Adatbázis Rendszerek MSc 3. Gy: MySQL Lekérdezések B I v: T 2015.03.09 M A N 1/61 Témakörök SQL alapok DDL utasítások DML utasítások DQL utasítások DCL utasítások 2/61 DQL Adat lekérdező utasítás Az SQL

Részletesebben

Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) );

Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) ); Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) ); CREATE TABLE `dihunor`.`csapat` ( `ID` INT( 4 ) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'A csapat azonositoja',

Részletesebben

Az SQL nyelv. SQL (Structured Query Language = Strukturált Lekérdező Nyelv).

Az SQL nyelv. SQL (Structured Query Language = Strukturált Lekérdező Nyelv). Az SQL nyelv SQL (Structured Query Language = Strukturált Lekérdező Nyelv). A lekérdezési funkciók mellett a nyelv több olyan elemmel is rendelkezik, amelyek más adatkezelési funkciók végrehajtására is

Részletesebben

Függőségek felismerése és attribútum halmazok lezártja

Függőségek felismerése és attribútum halmazok lezártja Függőségek felismerése és attribútum halmazok lezártja Elméleti összefoglaló Függőségek: mezők közötti érték kapcsolatok leírása. A Funkcionális függőség (FD=Functional Dependency): Ha R két sora megegyezik

Részletesebben

B I T M A N B I v: T 2014.02.15 M A N

B I T M A N B I v: T 2014.02.15 M A N Adatbázis Rendszerek II. 3. Ea: MySQL alapok B I v: T 2014.02.15 M A N 1/106 Témakörök MySQL letöltés, telepítés Beállítások, indítófájl Parancssoros használat MySQL adatbázisok MySQL adattáblák Bolt adatbázis

Részletesebben

Adatbázis használat I. 1. gyakorlat

Adatbázis használat I. 1. gyakorlat Adatbázis használat I. 1. gyakorlat Tudnivalók Nagy Gabriella nagy.gabriella@nik.uni-obuda.hu BA. 306. szoba www.orakulum.com => Adatbázis-kezelés => AKT (Adatbázis-Kezelés Technológiája) 2011. 02. 08.

Részletesebben

Adatbázisrendszerek 7. előadás: Az ER modell március 20.

Adatbázisrendszerek 7. előadás: Az ER modell március 20. Adatbázisrendszerek Jelölések, az 2018. március 20. Egyedtípusok 2 Definíció Azokat az egyedtípusokat, amelyek nem rendelkeznek saját kulcsattribútumokkal, gyenge egyedtípusoknak nevezzük. Ezzel ellentétben

Részletesebben

Adatbázis rendszerek 2. előadás. Relációs algebra

Adatbázis rendszerek 2. előadás. Relációs algebra Adatbázis rendszerek. előadás Relációs algebra Molnár Bence Szerkesztette: Koppányi Zoltán Bevezetés Relációs algebra általában A relációs algebra néhány tulajdonsága: Matematikailag jól definiált Halmazelméletből

Részletesebben

ADATBÁZIS-KEZELÉS. Modellek

ADATBÁZIS-KEZELÉS. Modellek ADATBÁZIS-KEZELÉS Modellek MODELLEZÉS Információsűrítés, egyszerűsítés Absztrakciós lépésekkel eljutunk egy egyszerűbb modellig, mely hűen tükrözi a modellezni kívánt világot. ADATMODELL Információ vagy

Részletesebben

Példa 2012.05.11. Többértékű függőségek, 4NF, 5NF

Példa 2012.05.11. Többértékű függőségek, 4NF, 5NF Többértékű függőségek, 4NF, 5NF Szendrői Etelka datbázisok I szendroi@pmmk.pte.hu harmadik normálformáig mindenképpen érdemes normalizálni a relációkat. Legtöbbször elegendő is az első három normálformának

Részletesebben

7. Gyakorlat A relációs adatmodell műveleti része

7. Gyakorlat A relációs adatmodell műveleti része 7. Gyakorlat A relációs adatmodell műveleti része Relációs algebra: az operandusok és az eredmények relációk; azaz a relációs algebra műveletei zártak a relációk halmazára Műveletei: Egy operandusú Két

Részletesebben

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.4. Relációs algebra (áttekintés) 5.1.

Részletesebben

A könyv tartalomjegyzéke

A könyv tartalomjegyzéke A könyv tartalomjegyzéke Elıszó Bevezetés Adatbázis-kezelı rendszerek Adatmodellezés Alapfogalmak Egyedhalmaz, egyed Kapcsolat, kapcsolat-elıfordulás, kapcsolat típusa Tulajdonság, tulajdonságérték, értékhalmaz

Részletesebben

Bódy Bence Az SQL egy újabb példán keresztül

Bódy Bence Az SQL egy újabb példán keresztül Bódy Bence Az SQL egy újabb példán keresztül Ez az oktatási anyag elektronikus formában, változtatások nélkül, oktatási célra szabadon felhasználható a szerző és a forrás megjelölésével. Minden más célú

Részletesebben

Adatbáziskezelés 1 / 12

Adatbáziskezelés 1 / 12 Adatbáziskezelés Demeter István-Hunor Adatbáziskezelés Adatbáziskezelés... 1 Alapfogalmak... 2 Adatmodellek... 3 Relációs adatmodell... 3 Attribútumok közötti függőségek... 5 Normál formák... 5 Feladat...

Részletesebben

Adatbázis tervezés normál formák segítségével

Adatbázis tervezés normál formák segítségével Adatbázis tervezés normál formák segítségével A normál formák - egzakt módszer a redundancia mentes adatbázis létrehozására A normál formák egymásra épülnek Funkcionális függőségek és a kulcsok ismeretére

Részletesebben

Adatbázis rendszerek Ea: Viszonyított betűszámtan. Relációs algebra alapok

Adatbázis rendszerek Ea: Viszonyított betűszámtan. Relációs algebra alapok Adatbázis rendszerek 1. 2. Ea: Viszonyított betűszámtan Relációs algebra alapok 52/1 B ITv: MAN 2015.09.08 Témakörök Relációs algebra Ellenőrző kérdések 52/2 Relációs algebra Műveletek Gyakorlás 52/3 Relációs

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. november 20. 10. El adás SQLite SQLite: Adatbázis kezel rendszer SQL standardokat nagyrészt követi Nagyon elterjedt, pl böngész kben is használt Nehéz olyan programnyelvet

Részletesebben

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése BEVEZETÉS Célkitűzések Az Oracle10g felépítésének, használatának alapszíntű megismerése A relációs adatbázis-kezelés elméleti és gyakorlati vonatkozásainak áttekintése Az SQL, PL/SQL nyelvek használatának

Részletesebben

Adatbázismodellek. 1. ábra Hierarchikus modell

Adatbázismodellek. 1. ábra Hierarchikus modell Eddig az adatbázisokkal általános szempontból foglalkoztunk: mire valók, milyen elemekből épülnek fel. Ennek során tisztáztuk, hogy létezik az adatbázis fogalmi modellje (adatbázisterv), amely az egyedek,

Részletesebben

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu Számonkérés 2 Papíros (90 perces) zh az utolsó gyakorlaton. Segédanyag nem használható Tematika 1. félév 3 Óra Dátum Gyakorlat 1. 2010.09.28.

Részletesebben

ADATBÁZISOK. 3. gyakorlat E-K modell

ADATBÁZISOK. 3. gyakorlat E-K modell ADATBÁZISOK 3. gyakorlat E-K modell EK-diagram Elemei: Egyed Kapcsolat Attribútum amiről adatokat tárolunk egyedek közötti összefüggés tárolandó adat (egyedé vagy kapcsolaté) kulcs: egyértelműen meghatározza

Részletesebben

MIKOVINY SÁMUEL TÉRINFORMATIKAI EMLÉKVERSENY

MIKOVINY SÁMUEL TÉRINFORMATIKAI EMLÉKVERSENY FVM VIDÉKFEJLESZTÉSI, KÉPZÉSI ÉS SZAKTANÁCSADÁSI INTÉZET NYUGAT MAGYARORSZÁGI EGYETEM GEOINFORMATIKAI KAR MIKOVINY SÁMUEL TÉRINFORMATIKAI EMLÉKVERSENY 2008/2009. TANÉV Az I. FORDULÓ FELADATAI NÉV:... Tudnivalók

Részletesebben

modell, amiben csak bináris sok-egy kapcsolatok (link, memberowner,

modell, amiben csak bináris sok-egy kapcsolatok (link, memberowner, Informatika szigorlat 10-es tétel: Adatmodellezés Adatmodellezésnek azt az absztrakciós folyamatot nevezzük, amelyben a valós (mikró)világ tényeit, valamint a tények közötti kapcsolatokat tükröző adatokat,

Részletesebben

SQL DDL-1: táblák és megszorítások

SQL DDL-1: táblák és megszorítások SQL DDL-1: táblák és megszorítások Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.3. Relációsémák definiálása 7.1. Kulcsok és idegen kulcsok 7.2. Értékekre

Részletesebben

ABR ( Adatbázisrendszerek) 2. Előadás : Műveletek a relációs modellben

ABR ( Adatbázisrendszerek) 2. Előadás : Műveletek a relációs modellben ABR ( Adatbázisrendszerek) 2. Előadás : Műveletek a relációs modellben 2.2 Műveletek a relációs modellben 2.2.1 Relációra vonatkozó megszorítások 2.2.2 Multihalmazon értelmezett műveletek 2.2.3 A relációs

Részletesebben

Vizuális programozás gyakorlat

Vizuális programozás gyakorlat Vizuális programozás gyakorlat A gyakorlat célja az entitás modell készítésének és az MS SQLEXPRESS használatának gyakorlása. A gyakorlat során egy könyvtári szoftver adatmodelljét tervezzük meg, valamint

Részletesebben

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1 SZE INFORMATIKAI KÉPZÉS 1 ADATBÁZIS-KEZELÉS MS ACCESS 2010 A feladat megoldása során a Microsoft Office Access 2010 használata a javasolt. Ebben a feladatban a következőket fogjuk gyakorolni: Adatok importálása

Részletesebben